@paraspell/descriptors 14.2.2 → 14.3.3

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.
@@ -1,3 +0,0 @@
1
- const binMeta = "bWV0YRAlEAAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAg8aHlkcmFkeF9ydW50aW1lLFJ1bnRpbWVDYWxsAAENARhTeXN0ZW0EABABrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3lzdGVtLCBSdW50aW1lPgABACRUaW1lc3RhbXAEADABuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgADACBCYWxhbmNlcwQAOAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ABwBcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQEAFAB8QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlUcmFuc2FjdGlvblBheW1lbnQsIFJ1bnRpbWU+AMsAIFRyZWFzdXJ5BABoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgALABxVdGlsaXR5BAB4AbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFV0aWxpdHksIFJ1bnRpbWU+AA0AIFByZWltYWdlBADoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByZWltYWdlLCBSdW50aW1lPgAPACBJZGVudGl0eQQA8AG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AEQAkRGVtb2NyYWN5BAClAQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEZW1vY3JhY3ksIFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAyQEB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGVjaG5pY2FsQ29tbWl0dGVlLCBSdW50aW1lPgAZABRQcm94eQQA0QEBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+AB0AIE11bHRpc2lnBADdAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aXNpZywgUnVudGltZT4AHwAcVW5pcXVlcwQA6QEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VW5pcXVlcywgUnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBAAFAgHdAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGF0ZVRyaWVNaWdyYXRpb24sIFJ1bnRpbWU+ACMAQENvbnZpY3Rpb25Wb3RpbmcEAB0CAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbnZpY3Rpb25Wb3RpbmcsIFJ1bnRpbWU+ACQAJFJlZmVyZW5kYQQAMQIBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVmZXJlbmRhLCBSdW50aW1lPgAlACRXaGl0ZWxpc3QEADkCAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFdoaXRlbGlzdCwgUnVudGltZT4AJwAoRGlzcGF0Y2hlcgQAPQIBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RGlzcGF0Y2hlciwgUnVudGltZT4AKAA0QXNzZXRSZWdpc3RyeQQAQQIByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSZWdpc3RyeSwgUnVudGltZT4AMwAYQ2xhaW1zBABlAgGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDbGFpbXMsIFJ1bnRpbWU+ADUAOEdlbmVzaXNIaXN0b3J5BABtAgHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHZW5lc2lzSGlzdG9yeSwgUnVudGltZT4ANwAgT21uaXBvb2wEAHECAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sLCBSdW50aW1lPgA7AEBUcmFuc2FjdGlvblBhdXNlBACJAgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUcmFuc2FjdGlvblBhdXNlLCBSdW50aW1lPgA8ABhEdXN0ZXIEAI0CAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER1c3RlciwgUnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAkQIB4QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T21uaXBvb2xXYXJlaG91c2VMTSwgUnVudGltZT4APgBcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcEAJUCAfEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgA/AAxPVEMEAMkCAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9UQywgUnVudGltZT4AQAA4Q2lyY3VpdEJyZWFrZXIEAM0CAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENpcmN1aXRCcmVha2VyLCBSdW50aW1lPgBBABhSb3V0ZXIEAOECAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJvdXRlciwgUnVudGltZT4AQwAsRHluYW1pY0ZlZXMEAPkCAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER5bmFtaWNGZWVzLCBSdW50aW1lPgBEABxTdGFraW5nBAAFAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFraW5nLCBSdW50aW1lPgBFAChTdGFibGVzd2FwBAAJAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFibGVzd2FwLCBSdW50aW1lPgBGABRCb25kcwQALQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Qm9uZHMsIFJ1bnRpbWU+AEcAOE90Y1NldHRsZW1lbnRzBAAxAwHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPdGNTZXR0bGVtZW50cywgUnVudGltZT4ASAAMTEJQBAA1AwGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxMQlAsIFJ1bnRpbWU+AEkADFhZSwQAQQMBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLLCBSdW50aW1lPgBKACRSZWZlcnJhbHMEAEUDAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVycmFscywgUnVudGltZT4ASwAsTGlxdWlkYXRpb24EAFUDAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPExpcXVpZGF0aW9uLCBSdW50aW1lPgBMAAxIU00EAFkDAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhTTSwgUnVudGltZT4AUgAYU2lnbmV0BAB1AwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTaWduZXQsIFJ1bnRpbWU+AFQAMEV0aERpc3BlbnNlcgQAtQMBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RXRoRGlzcGVuc2VyLCBSdW50aW1lPgBVABxHaWdhSGR4BAC9AwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHaWdhSGR4LCBSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAwQMBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8R2lnYUhkeFJld2FyZHMsIFJ1bnRpbWU+AFcAGFRva2VucwQAxQMBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VG9rZW5zLCBSdW50aW1lPgBNAChDdXJyZW5jaWVzBADJAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdXJyZW5jaWVzLCBSdW50aW1lPgBPABxWZXN0aW5nBADRAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxWZXN0aW5nLCBSdW50aW1lPgBRAAxFVk0EAN0DAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVWTSwgUnVudGltZT4AWgAgRXRoZXJldW0EAPkDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEV0aGVyZXVtLCBSdW50aW1lPgBcACxFVk1BY2NvdW50cwQAKQQBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RVZNQWNjb3VudHMsIFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQALQQB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgBfADhYWUtXYXJlaG91c2VMTQQAPQQBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLV2FyZWhvdXNlTE0sIFJ1bnRpbWU+AGAAOFJlbGF5Q2hhaW5JbmZvBABBBAHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWxheUNoYWluSW5mbywgUnVudGltZT4AyQAMRENBBABFBAGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEQ0EsIFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQAUQQBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NoZWR1bGVyLCBSdW50aW1lPgAFADxQYXJhY2hhaW5TeXN0ZW0EAFUEAdEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFjaGFpblN5c3RlbSwgUnVudGltZT4AZwA0UGFyYWNoYWluSW5mbwQAoQQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluSW5mbywgUnVudGltZT4AaQAsUG9sa2Fkb3RYY20EAKUEAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgBrAChDdW11bHVzWGNtBABpBgG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgBtADBNZXNzYWdlUXVldWUEAG0GAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AcgBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEAHUGAeUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tNaWdyYXRpb25zLCBSdW50aW1lPgB0ABxPcm1sWGNtBACVBgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPcm1sWGNtLCBSdW50aW1lPgCHABxYVG9rZW5zBACZBgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxYVG9rZW5zLCBSdW50aW1lPgCJAERDb2xsYXRvclNlbGVjdGlvbgQApQYB2QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29sbGF0b3JTZWxlY3Rpb24sIFJ1bnRpbWU+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+AABNAwhAcGFsbGV0X3JlZmVycmFscxRMZXZlbAABGBBOb25lAAAAFFRpZXIwAAEAFFRpZXIxAAIAFFRpZXIyAAMAFFRpZXIzAAQAFFRpZXI0AAUAAFEDCEBwYWxsZXRfcmVmZXJyYWxzPEZlZURpc3RyaWJ1dGlvbgAACAEgcmVmZXJyZXJ1AgEcUGVybWlsbAABGHRyYWRlcnUCARxQZXJtaWxsAABVAwxIcGFsbGV0X2xpcXVpZGF0aW9uGHBhbGxldBBDYWxsBARUAAEIJGxpcXVpZGF0ZRQBQGNvbGxhdGVyYWxfYXNzZXQoARxBc3NldElkAAEoZGVidF9hc3NldCgBHEFzc2V0SWQAARB1c2VyWAEoRXZtQWRkcmVzcwABNGRlYnRfdG9fY292ZXJAARxCYWxhbmNlAAEUcm91dGXlAgE4Um91dGU8QXNzZXRJZD4AAGy0TGlxdWlkYXRlcyBhbiBleGlzdGluZyBtb25leSBtYXJrZXQgcG9zaXRpb24ugENhbiBiZSBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQuANxQZXJmb3JtcyBhIGZsYXNoIGxvYW4gdG8gZ2V0IGZ1bmRzIHRvIHBheSBmb3IgdGhlIGRlYnQuOQFSZWNlaXZlZCBjb2xsYXRlcmFsIGlzIHN3YXBwZWQgYW5kIHRoZSBwcm9maXQgaXMgdHJhbnNmZXJyZWQgdG8gYEZlZVJlY2VpdmVyYC4AMQFQZXJtaXNzaW9ubGVzcyBhbmQgY2FsbGVyLXN1cHBsaWVkIGByb3V0ZWAgYXJlIGludGVudGlvbmFsLiBUaGlzIGNhbGwgZXhpc3RzHQFvbmx5IHRvIGtlZXAgdGhlIG1vbmV5IG1hcmtldCBzb2x2ZW50OiB0aGUgZ29hbCBpcyB0aGF0IHRoZSBwb3NpdGlvbiBpcy0BbGlxdWlkYXRlZCwgbm90IHRoYXQgdGhlIHByb3RvY29sIGNhcHR1cmVzIHRoZSBzdXJwbHVzLiBBIGNhbGxlciBjYW4gcGljayBhGQFgcm91dGVgIHRoYXQgcHJpY2VzIHRoZSBjb2xsYXRlcmFsIHNvIHRoYXQgbGl0dGxlIG9yIG5vIHByb2ZpdCByZWFjaGVzOQFgRmVlUmVjZWl2ZXJgIOKAlCB0aGF0IGlzIGFjY2VwdGFibGUuIEl0IGlzIG5vdCBhbiBleHBsb2l0OiBhbnlvbmUgY2FuIGFscmVhZHkxAWxpcXVpZGF0ZSB0aGUgc2FtZSBwb3NpdGlvbiBieSBjYWxsaW5nIEFhdmUncyBgbGlxdWlkYXRpb25DYWxsYCBkaXJlY3RseSBhbmQtAWtlZXAgdGhlIGVudGlyZSBib251cyB0aGVtc2VsdmVzLiBTbyByZXBvcnRzIGZyYW1pbmcgdGhlIG9wZW4gb3JpZ2luIG9yIHRoZTUBYXR0YWNrZXItY2hvc2VuIHJvdXRlIGFzIGEgZnVuZC1yZWRpcmVjdGlvbiB2dWxuZXJhYmlsaXR5IGFyZSBvdXQgb2Ygc2NvcGUgYnkxAWRlc2lnbjsgdGhlIG9ubHkgaW52YXJpYW50IHRoYXQgbWF0dGVycyBoZXJlIGlzIHRoYXQgdW5oZWFsdGh5IHBvc2l0aW9ucyBjYW5EYWx3YXlzIGJlIGNsb3NlZC4ALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IFNpZ25lZCBvcmlnaW4uFQEtIGBjb2xsYXRlcmFsX2Fzc2V0YDogQXNzZXQgSUQgdXNlZCBhcyBjb2xsYXRlcmFsIGluIHRoZSBNTSBwb3NpdGlvbi7kLSBgZGVidF9hc3NldGA6IEFzc2V0IElEIHVzZWQgYXMgZGVidCBpbiB0aGUgTU0gcG9zaXRpb24uDQEtIGB1c2VyYDogRVZNIGFkZHJlc3Mgb2YgdGhlIE1NIHBvc2l0aW9uIHRoYXQgd2Ugd2FudCB0byBsaXF1aWRhdGUu3C0gYGRlYnRfdG9fY292ZXJgOiBBbW91bnQgb2YgZGVidCB3ZSB3YW50IHRvIGxpcXVpZGF0ZS4hAS0gYHJvdXRlYDogVGhlIHJvdXRlIHdlIHRyYWRlIGFnYWluc3QuIFJlcXVpcmVkIGZvciB0aGUgZmVlIGNhbGN1bGF0aW9uLgCkRW1pdHMgYExpcXVpZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AWHNldF9ib3Jyb3dpbmdfY29udHJhY3QEASBjb250cmFjdFgBKEV2bUFkZHJlc3MAAQSoU2V0IHRoZSBib3Jyb3dpbmcgbWFya2V0IGNvbnRyYWN0IGFkZHJlc3MuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkDDChwYWxsZXRfaHNtGHBhbGxldBBDYWxsBARUAAEcUGFkZF9jb2xsYXRlcmFsX2Fzc2V0HAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAATBwdXJjaGFzZV9mZWV1AgEcUGVybWlsbAABZG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRUAUBDb2VmZmljaWVudFJhdGlvAAEwYnV5X2JhY2tfZmVldQIBHFBlcm1pbGwAATBidXliYWNrX3JhdGUpAwEcUGVyYmlsbAABOG1heF9pbl9ob2xkaW5n9QEBPE9wdGlvbjxCYWxhbmNlPgAAYGhBZGQgYSBuZXcgY29sbGF0ZXJhbCBhc3NldABVAVRoaXMgZnVuY3Rpb24gYWRkcyBhIG5ldyBhc3NldCBhcyBhbiBhcHByb3ZlZCBjb2xsYXRlcmFsIGZvciBIb2xsYXIuIE9ubHkgY2FsbGFibGUgYnl0dGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS4ALFBhcmFtZXRlcnM6YC0gYG9yaWdpbmA6IE11c3QgYmUgUm9vdMAtIGBhc3NldF9pZGA6IEFzc2V0IElEIHRvIGJlIGFkZGVkIGFzIGNvbGxhdGVyYWwZAS0gYHBvb2xfaWRgOiBTdGFibGVTd2FwIHBvb2wgSUQgd2hlcmUgdGhpcyBhc3NldCBhbmQgSG9sbGFyIGFyZSBwYWlyZWRpAS0gYHB1cmNoYXNlX2ZlZWA6IEZlZSBhcHBsaWVkIHdoZW4gYnV5aW5nIEhvbGxhciB3aXRoIHRoaXMgYXNzZXQgKGFkZGVkIHRvIHB1cmNoYXNlIHByaWNlKV0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE1heGltdW0gYnV5IHByaWNlIGNvZWZmaWNpZW50IGZvciBIU00gdG8gYnV5IGJhY2sgSG9sbGFyRQEtIGBidXlfYmFja19mZWVgOiBGZWUgYXBwbGllZCB3aGVuIGJ1eWluZyBiYWNrIEhvbGxhciAoc3VidHJhY3RlZCBmcm9tIGJ1eSBwcmljZSlhAS0gYGJ1eWJhY2tfcmF0ZWA6IFBhcmFtZXRlciB0aGF0IGNvbnRyb2xzIGhvdyBxdWlja2x5IEhTTSBjYW4gYnV5IEhvbGxhciB3aXRoIHRoaXMgYXNzZXQZAS0gYG1heF9pbl9ob2xkaW5nYDogT3B0aW9uYWwgbWF4aW11bSBhbW91bnQgb2YgY29sbGF0ZXJhbCBIU00gY2FuIGhvbGQAGEVtaXRzOvQtIGBDb2xsYXRlcmFsQWRkZWRgIHdoZW4gdGhlIGNvbGxhdGVyYWwgaXMgc3VjY2Vzc2Z1bGx5IGFkZGVkABxFcnJvcnM6LQEtIGBBc3NldEFscmVhZHlBcHByb3ZlZGAgaWYgdGhlIGFzc2V0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBhcyBhIGNvbGxhdGVyYWxRAS0gYFBvb2xBbHJlYWR5SGFzQ29sbGF0ZXJhbGAgaWYgYW5vdGhlciBhc3NldCBmcm9tIHRoZSBzYW1lIHBvb2wgaXMgYWxyZWFkeSBhcHByb3ZlZAEBLSBgSG9sbGFyTm90SW5Qb29sYCBpZiBIb2xsYXIgaXMgbm90IGZvdW5kIGluIHRoZSBzcGVjaWZpZWQgcG9vbDUBLSBgQXNzZXROb3RJblBvb2xgIGlmIHRoZSBjb2xsYXRlcmFsIGFzc2V0IGlzIG5vdCBmb3VuZCBpbiB0aGUgc3BlY2lmaWVkIHBvb2yQLSBPdGhlciBlcnJvcnMgZnJvbSB1bmRlcmx5aW5nIGNhbGxzXHJlbW92ZV9jb2xsYXRlcmFsX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE8ZFJlbW92ZSBhIGNvbGxhdGVyYWwgYXNzZXQAjQFSZW1vdmVzIGFuIGFzc2V0IGZyb20gdGhlIGFwcHJvdmVkIGNvbGxhdGVyYWxzIGxpc3QuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS5RAVRoZSBjb2xsYXRlcmFsIG11c3QgaGF2ZSBhIHplcm8gYmFsYW5jZSBpbiB0aGUgSFNNIGFjY291bnQgYmVmb3JlIGl0IGNhbiBiZSByZW1vdmVkLgAsUGFyYW1ldGVyczpgLSBgb3JpZ2luYDogTXVzdCBiZSBSb290xC0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gcmVtb3ZlIGZyb20gY29sbGF0ZXJhbHMAGEVtaXRzOgUBLSBgQ29sbGF0ZXJhbFJlbW92ZWRgIHdoZW4gdGhlIGNvbGxhdGVyYWwgaXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQAHEVycm9yczoBAS0gYEFzc2V0Tm90QXBwcm92ZWRgIGlmIHRoZSBhc3NldCBpcyBub3QgYSByZWdpc3RlcmVkIGNvbGxhdGVyYWwhAS0gYENvbGxhdGVyYWxOb3RFbXB0eWAgaWYgdGhlIEhTTSBhY2NvdW50IHN0aWxsIGhvbGRzIHNvbWUgb2YgdGhpcyBhc3NldFx1cGRhdGVfY29sbGF0ZXJhbF9hc3NldBgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABMHB1cmNoYXNlX2ZlZV0DATxPcHRpb248UGVybWlsbD4AAWRtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50YQMBYE9wdGlvbjxDb2VmZmljaWVudFJhdGlvPgABMGJ1eV9iYWNrX2ZlZV0DATxPcHRpb248UGVybWlsbD4AATBidXliYWNrX3JhdGVlAwE8T3B0aW9uPFBlcmJpbGw+AAE4bWF4X2luX2hvbGRpbmdpAwFcT3B0aW9uPE9wdGlvbjxCYWxhbmNlPj4AAkyIVXBkYXRlIGNvbGxhdGVyYWwgYXNzZXQgcGFyYW1ldGVycwCdAVVwZGF0ZXMgdGhlIHBhcmFtZXRlcnMgZm9yIGFuIGV4aXN0aW5nIGNvbGxhdGVyYWwgYXNzZXQuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS4hAUVhY2ggcGFyYW1ldGVyIGlzIG9wdGlvbmFsIGFuZCBvbmx5IHByb3ZpZGVkIHBhcmFtZXRlcnMgd2lsbCBiZSB1cGRhdGVkLgAsUGFyYW1ldGVyczpgLSBgb3JpZ2luYDogTXVzdCBiZSBSb290gC0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gdXBkYXRltC0gYHB1cmNoYXNlX2ZlZWA6IE5ldyBwdXJjaGFzZSBmZWUgKG9wdGlvbmFsKR0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE5ldyBtYXggYnV5IHByaWNlIGNvZWZmaWNpZW50IChvcHRpb25hbCm0LSBgYnV5X2JhY2tfZmVlYDogTmV3IGJ1eSBiYWNrIGZlZSAob3B0aW9uYWwp3C0gYGJ1eWJhY2tfcmF0ZWA6IE5ldyBidXliYWNrIHJhdGUgcGFyYW1ldGVyIChvcHRpb25hbCnkLSBgbWF4X2luX2hvbGRpbmdgOiBOZXcgbWF4aW11bSBob2xkaW5nIGFtb3VudCAob3B0aW9uYWwpABhFbWl0czoFAS0gYENvbGxhdGVyYWxVcGRhdGVkYCB3aGVuIHRoZSBjb2xsYXRlcmFsIGlzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkABxFcnJvcnM6AQEtIGBBc3NldE5vdEFwcHJvdmVkYCBpZiB0aGUgYXNzZXQgaXMgbm90IGEgcmVnaXN0ZXJlZCBjb2xsYXRlcmFsEHNlbGwQASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABOHNsaXBwYWdlX2xpbWl0QAEcQmFsYW5jZQADbERTZWxsIGFzc2V0IHRvIEhTTQB4VGhpcyBmdW5jdGlvbiBhbGxvd3MgdXNlcnMgdG868DEuIFNlbGwgSG9sbGFyIGJhY2sgdG8gSFNNIGluIGV4Y2hhbmdlIGZvciBjb2xsYXRlcmFsIGFzc2V0cxEBMi4gU2VsbCBjb2xsYXRlcmFsIGFzc2V0cyB0byBIU00gaW4gZXhjaGFuZ2UgZm9yIG5ld2x5IG1pbnRlZCBIb2xsYXIAdQFUaGUgdmFsaWQgcGFpcnMgbXVzdCBpbmNsdWRlIEhvbGxhciBhcyBvbmUgc2lkZSBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbCBhcyB0aGUgb3RoZXIgc2lkZS4ALFBhcmFtZXRlcnM6lC0gYG9yaWdpbmA6IEFjY291bnQgc2VsbGluZyB0aGUgYXNzZXSELSBgYXNzZXRfaW5gOiBBc3NldCBJRCBiZWluZyBzb2xkkC0gYGFzc2V0X291dGA6IEFzc2V0IElEIGJlaW5nIGJvdWdodKQtIGBhbW91bnRfaW5gOiBBbW91bnQgb2YgYXNzZXRfaW4gdG8gc2VsbPgtIGBzbGlwcGFnZV9saW1pdGA6IE1pbmltdW0gYW1vdW50IG91dCBmb3Igc2xpcHBhZ2UgcHJvdGVjdGlvbgAYRW1pdHM6oC0gYFN3YXBwZWQzYCB3aGVuIHRoZSBzZWxsIGlzIHN1Y2Nlc3NmdWwAHEVycm9yczolAS0gYEludmFsaWRBc3NldFBhaXJgIGlmIHRoZSBwYWlyIGlzIG5vdCBIb2xsYXIgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWz0LSBgQXNzZXROb3RBcHByb3ZlZGAgaWYgdGhlIGNvbGxhdGVyYWwgYXNzZXQgaXNuJ3QgcmVnaXN0ZXJlZEEBLSBgU2xpcHBhZ2VMaW1pdEV4Y2VlZGVkYCBpZiB0aGUgYW1vdW50IHJlY2VpdmVkIGlzIGxlc3MgdGhhbiB0aGUgc2xpcHBhZ2UgbGltaXQlAS0gYE1heEJ1eUJhY2tFeGNlZWRlZGAgaWYgdGhlIHNlbGwgd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGJ1eSBiYWNrIHJhdGUZAS0gYE1heEJ1eVByaWNlRXhjZWVkZWRgIGlmIHRoZSBzZWxsIHdvdWxkIGV4Y2VlZCB0aGUgbWF4aW11bSBidXkgcHJpY2UdAS0gYEluc3VmZmljaWVudENvbGxhdGVyYWxCYWxhbmNlYCBpZiBIU00gZG9lc24ndCBoYXZlIGVub3VnaCBjb2xsYXRlcmFsYQEtIGBJbnZhbGlkRVZNSW50ZXJhY3Rpb25gIGlmIHRoZXJlJ3MgYW4gZXJyb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgSG9sbGFyIEVSQzIwIGNvbnRyYWN0kC0gT3RoZXIgZXJyb3JzIGZyb20gdW5kZXJseWluZyBjYWxscwxidXkQASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEoYW1vdW50X291dEABHEJhbGFuY2UAAThzbGlwcGFnZV9saW1pdEABHEJhbGFuY2UABGRIQnV5IGFzc2V0IGZyb20gSFNNAHhUaGlzIGZ1bmN0aW9uIGFsbG93cyB1c2VycyB0bzq4MS4gQnV5IEhvbGxhciBmcm9tIEhTTSB1c2luZyBjb2xsYXRlcmFsIGFzc2V0c7gyLiBCdXkgY29sbGF0ZXJhbCBhc3NldHMgZnJvbSBIU00gdXNpbmcgSG9sbGFyAHUBVGhlIHZhbGlkIHBhaXJzIG11c3QgaW5jbHVkZSBIb2xsYXIgYXMgb25lIHNpZGUgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWwgYXMgdGhlIG90aGVyIHNpZGUuACxQYXJhbWV0ZXJzOpAtIGBvcmlnaW5gOiBBY2NvdW50IGJ1eWluZyB0aGUgYXNzZXS0LSBgYXNzZXRfaW5gOiBBc3NldCBJRCBiZWluZyBzb2xkIGJ5IHRoZSB1c2VywC0gYGFzc2V0X291dGA6IEFzc2V0IElEIGJlaW5nIGJvdWdodCBieSB0aGUgdXNlcqgtIGBhbW91bnRfb3V0YDogQW1vdW50IG9mIGFzc2V0X291dCB0byBidXn0LSBgc2xpcHBhZ2VfbGltaXRgOiBNYXhpbXVtIGFtb3VudCBpbiBmb3Igc2xpcHBhZ2UgcHJvdGVjdGlvbgAYRW1pdHM6nC0gYFN3YXBwZWQzYCB3aGVuIHRoZSBidXkgaXMgc3VjY2Vzc2Z1bAAcRXJyb3JzOiUBLSBgSW52YWxpZEFzc2V0UGFpcmAgaWYgdGhlIHBhaXIgaXMgbm90IEhvbGxhciBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbPQtIGBBc3NldE5vdEFwcHJvdmVkYCBpZiB0aGUgY29sbGF0ZXJhbCBhc3NldCBpc24ndCByZWdpc3RlcmVkIQEtIGBTbGlwcGFnZUxpbWl0RXhjZWVkZWRgIGlmIHRoZSBhbW91bnQgaW5wdXQgZXhjZWVkcyB0aGUgc2xpcHBhZ2UgbGltaXQ9AS0gYE1heEhvbGRpbmdFeGNlZWRlZGAgaWYgdGhlIGJ1eSB3b3VsZCBjYXVzZSBIU00gdG8gZXhjZWVkIGl0cyBtYXhpbXVtIGhvbGRpbmdhAS0gYEludmFsaWRFVk1JbnRlcmFjdGlvbmAgaWYgdGhlcmUncyBhbiBlcnJvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBIb2xsYXIgRVJDMjAgY29udHJhY3SQLSBPdGhlciBlcnJvcnMgZnJvbSB1bmRlcmx5aW5nIGNhbGxzRGV4ZWN1dGVfYXJiaXRyYWdlCAFMY29sbGF0ZXJhbF9hc3NldF9pZCgBKFQ6OkFzc2V0SWQAASRhcmJpdHJhZ2VtAwFET3B0aW9uPEFyYml0cmFnZT4ABYhZAUV4ZWN1dGUgYXJiaXRyYWdlIG9wcG9ydHVuaXR5IGJldHdlZW4gSFNNIGFuZCBjb2xsYXRlcmFsIHN0YWJsZSBwb29sIHVzaW5nIGZsYXNoIGxvYW5zAFEBVGhpcyBjYWxsIGlzIGRlc2lnbmVkIHRvIGJlIHRyaWdnZXJlZCBhdXRvbWF0aWNhbGx5IGJ5IG9mZmNoYWluIHdvcmtlcnMuIEl0IGV4ZWN1dGVzWQFhcmJpdHJhZ2UgYnkgdGFraW5nIGEgZmxhc2ggbG9hbiBmcm9tIHRoZSBHSE8gY29udHJhY3QgYW5kIHBlcmZvcm1pbmcgdHJhZGVzIHRvIHByb2ZpdOhmcm9tIHByaWNlIGltYmFsYW5jZXMgYmV0d2VlbiBIU00gYW5kIHRoZSBTdGFibGVTd2FwIHBvb2wuAHRUaGUgYXJiaXRyYWdlIGV4ZWN1dGlvbiBmbG93OtQxLiBUYWtlcyBhIGZsYXNoIGxvYW4gb2YgSG9sbGFyIGZyb20gdGhlIEdITyBjb250cmFjdEEBMi4gRXhlY3V0ZXMgdHJhZGVzIGJldHdlZW4gSFNNIGFuZCBTdGFibGVTd2FwIHBvb2wgYmFzZWQgb24gYXJiaXRyYWdlIGRpcmVjdGlvbjrJASAgIC0gRm9yIEhvbGxhckluIChidXkgZGlyZWN0aW9uKTogU2VsbCBIb2xsYXIgdG8gSFNNIGZvciBjb2xsYXRlcmFsLCB0aGVuIHNlbGwgY29sbGF0ZXJhbCBiYWNrIGZvciBIb2xsYXIgaW4gcG9vbJkBICAgLSBGb3IgSG9sbGFyT3V0IChzZWxsIGRpcmVjdGlvbik6IFNlbGwgSG9sbGFyIGZvciBjb2xsYXRlcmFsIGluIHBvb2wsIHRoZW4gYnV5IEhvbGxhciBiYWNrIGZyb20gSFNNYDMuIFJlcGF5cyB0aGUgZmxhc2ggbG9hblUBNC4gQW55IHJlbWFpbmluZyBwcm9maXQgKGluIGNvbGxhdGVyYWwpIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBBcmJpdHJhZ2VQcm9maXRSZWNlaXZlcgBhAVRoaXMgaGVscHMgbWFpbnRhaW4gdGhlIHBlZyBvZiBIb2xsYXIgYnkgcHJvZml0aW5nIGZyb20gYW5kIGNvcnJlY3RpbmcgcHJpY2UgaW1iYWxhbmNlcy4VAVRoZSBjYWxsIGlzIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBleGVjdXRlZCBieSBvZmZjaGFpbiB3b3JrZXJzLgAsUGFyYW1ldGVyczqMLSBgb3JpZ2luYDogTXVzdCBiZSBOb25lICh1bnNpZ25lZCkxAS0gYGNvbGxhdGVyYWxfYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGNvbGxhdGVyYWwgYXNzZXQgdG8gdXNlIGZvciBhcmJpdHJhZ2VpAS0gYGFyYml0cmFnZWA6IE9wdGlvbmFsIGFyYml0cmFnZSBwYXJhbWV0ZXJzIChkaXJlY3Rpb24gYW5kIGFtb3VudCkuIElmIE5vbmUsIHRoZSBmdW5jdGlvbikBICB3aWxsIGF1dG9tYXRpY2FsbHkgZmluZCBhbmQgY2FsY3VsYXRlIHRoZSBvcHRpbWFsIGFyYml0cmFnZSBvcHBvcnR1bml0eS4AGEVtaXRzOtgtIGBBcmJpdHJhZ2VFeGVjdXRlZGAgd2hlbiB0aGUgYXJiaXRyYWdlIGlzIHN1Y2Nlc3NmdWwAHEVycm9yczpJAS0gYEZsYXNoTWludGVyTm90U2V0YCBpZiB0aGUgZmxhc2ggbWludGVyIGNvbnRyYWN0IGFkZHJlc3MgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQBAS0gYEFzc2V0Tm90QXBwcm92ZWRgIGlmIHRoZSBhc3NldCBpcyBub3QgYSByZWdpc3RlcmVkIGNvbGxhdGVyYWwlAS0gYE5vQXJiaXRyYWdlT3Bwb3J0dW5pdHlgIGlmIHRoZXJlJ3Mgbm8gcHJvZml0YWJsZSBhcmJpdHJhZ2Ugb3Bwb3J0dW5pdHktAS0gYE1heEJ1eVByaWNlRXhjZWVkZWRgIGlmIHRoZSBhcmJpdHJhZ2Ugd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGJ1eSBwcmljZRkBLSBgTWF4QnV5QmFja0V4Y2VlZGVkYCBpZiB0aGUgYXJiaXRyYWdlIHdvdWxkIGV4Y2VlZCB0aGUgYnV5YmFjayBsaW1pdGEBLSBgSW52YWxpZEVWTUludGVyYWN0aW9uYCBpZiB0aGVyZSdzIGFuIGVycm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEhvbGxhciBFUkMyMCBjb250cmFjdJAtIE90aGVyIGVycm9ycyBmcm9tIHVuZGVybHlpbmcgY2FsbHNAc2V0X2ZsYXNoX21pbnRlcgQBRGZsYXNoX21pbnRlcl9hZGRyWAEoRXZtQWRkcmVzcwAGPJRTZXQgdGhlIGZsYXNoIG1pbnRlciBjb250cmFjdCBhZGRyZXNzAFUBQ29uZmlndXJlcyB0aGUgRVZNIGFkZHJlc3Mgb2YgdGhlIGZsYXNoIGxvYW4gY29udHJhY3QgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFyYml0cmFnZVkBb3BlcmF0aW9ucy4gVGhpcyBjb250cmFjdCBtdXN0IHN1cHBvcnQgdGhlIEVSQy0zMTU2IGZsYXNoIGxvYW4gc3RhbmRhcmQgYW5kIGJlIHRydXN0ZWScdG8gaGFuZGxlIGZsYXNoIGxvYW5zIG9mIEhvbGxhciB0b2tlbnMuACxQYXJhbWV0ZXJzOsAtIGBvcmlnaW5gOiBNdXN0IGJlIGF1dGhvcml6ZWQgKGdvdmVybmFuY2Uvcm9vdCkNAS0gYGZsYXNoX21pbnRlcl9hZGRyYDogVGhlIEVWTSBhZGRyZXNzIG9mIHRoZSBmbGFzaCBtaW50ZXIgY29udHJhY3QAGEVtaXRzOvgtIGBGbGFzaE1pbnRlclNldGAgd2hlbiB0aGUgYWRkcmVzcyBpcyBzdWNjZXNzZnVsbHkgY29uZmlndXJlZAAcRXJyb3JzOsgtIEF1dGhvcml6YXRpb24gZXJyb3JzIGlmIG9yaWdpbiBpcyBub3QgYXV0aG9yaXplZAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5dAwQYT3B0aW9uBARUAXUCAQgQTm9uZQAAABBTb21lBAB1AgAAAQAAYQMEGE9wdGlvbgQEVAFUAQgQTm9uZQAAABBTb21lBABUAAABAABlAwQYT3B0aW9uBARUASkDAQgQTm9uZQAAABBTb21lBAApAwAAAQAAaQMEGE9wdGlvbgQEVAH1AQEIEE5vbmUAAAAQU29tZQQA9QEAAAEAAG0DBBhPcHRpb24EBFQBcQMBCBBOb25lAAAAEFNvbWUEAHEDAAABAABxAwwocGFsbGV0X2hzbRR0eXBlcyRBcmJpdHJhZ2UAAQgkSG9sbGFyT3V0BABAARxCYWxhbmNlAAAAIEhvbGxhckluBABAARxCYWxhbmNlAAEAAHUDDDRwYWxsZXRfc2lnbmV0GHBhbGxldBBDYWxsBARUAAEkKHNldF9jb25maWcQAURzaWduYXR1cmVfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABTG1heF9jaGFpbl9pZF9sZW5ndGgoAQx1MzIAAUxtYXhfZXZtX2RhdGFfbGVuZ3RoKAEMdTMyAAEgY2hhaW5faWSxAQG0Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0NIQUlOX0lEX0xFTkdUSD4+AAAonFNldCBvciB1cGRhdGUgdGhlIHNpZ25ldCBjb25maWd1cmF0aW9uLgDkQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byB1cGRhdGUgdGhlIGNvbmZpZ3VyYXRpb24uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAu9C0gYHNpZ25hdHVyZV9kZXBvc2l0YDogRGVwb3NpdCBhbW91bnQgZm9yIHNpZ25hdHVyZSByZXF1ZXN0cy7ELSBgbWF4X2NoYWluX2lkX2xlbmd0aGA6IE1heGltdW0gY2hhaW4gSUQgbGVuZ3RoLvQtIGBtYXhfZXZtX2RhdGFfbGVuZ3RoYDogTWF4aW11bSBFVk0gdHJhbnNhY3Rpb24gZGF0YSBsZW5ndGguqC0gYGNoYWluX2lkYDogVGhlIENBSVAtMiBjaGFpbiBpZGVudGlmaWVyLjh3aXRoZHJhd19mdW5kcwgBJHJlY2lwaWVudAABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABGJxXaXRoZHJhdyBmdW5kcyBmcm9tIHRoZSBwYWxsZXQgYWNjb3VudC4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYC7YLSBgcmVjaXBpZW50YDogQWNjb3VudCB0byByZWNlaXZlIHRoZSB3aXRoZHJhd24gZnVuZHMufC0gYGFtb3VudGA6IEFtb3VudCB0byB3aXRoZHJhdy4Qc2lnbhgBHHBheWxvYWQEASBbdTg7IDMyXQABLGtleV92ZXJzaW9uKAEMdTMyAAEQcGF0aHkDAaRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfUEFUSF9MRU5HVEg+PgABEGFsZ299AwGkQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0FMR09fTEVOR1RIPj4AARBkZXN0gQMBpEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9ERVNUX0xFTkdUSD4+AAEYcGFyYW1zhQMBrEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9QQVJBTVNfTEVOR1RIPj4AAgSEUmVxdWVzdCBhIHNpZ25hdHVyZSBmb3IgYSBwYXlsb2FkSHNpZ25fYmlkaXJlY3Rpb25hbCQBWHNlcmlhbGl6ZWRfdHJhbnNhY3Rpb26JAwHAQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX1RSQU5TQUNUSU9OX0xFTkdUSD4+AAEgY2FpcDJfaWSBAwFwQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8NjQ+PgABLGtleV92ZXJzaW9uKAEMdTMyAAEQcGF0aHkDAaRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfUEFUSF9MRU5HVEg+PgABEGFsZ299AwGkQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0FMR09fTEVOR1RIPj4AARBkZXN0gQMBpEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9ERVNUX0xFTkdUSD4+AAEYcGFyYW1zhQMBrEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9QQVJBTVNfTEVOR1RIPj4AAXRvdXRwdXRfZGVzZXJpYWxpemF0aW9uX3NjaGVtYY0DAaxCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfU0NIRU1BX0xFTkdUSD4+AAFwcmVzcG9uZF9zZXJpYWxpemF0aW9uX3NjaGVtYY0DAaxCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfU0NIRU1BX0xFTkdUSD4+AAMEwFJlcXVlc3QgYSBzaWduYXR1cmUgZm9yIGEgc2VyaWFsaXplZCB0cmFuc2FjdGlvbhxyZXNwb25kCAEscmVxdWVzdF9pZHORAwG4Qm91bmRlZFZlYzxbdTg7IDMyXSwgQ29uc3RVMzI8TUFYX0JBVENIX1NJWkU+PgABKHNpZ25hdHVyZXOZAwG8Qm91bmRlZFZlYzxTaWduYXR1cmUsIENvbnN0VTMyPE1BWF9CQVRDSF9TSVpFPj4ABAS0UmVzcG9uZCB0byBzaWduYXR1cmUgcmVxdWVzdHMgKGJhdGNoIHN1cHBvcnQpNHJlc3BvbmRfZXJyb3IEARhlcnJvcnOpAwHMQm91bmRlZFZlYzxFcnJvclJlc3BvbnNlLCBDb25zdFUzMjxNQVhfQkFUQ0hfU0laRT4+AAUEyFJlcG9ydCBzaWduYXR1cmUgZ2VuZXJhdGlvbiBlcnJvcnMgKGJhdGNoIHN1cHBvcnQpVHJlc3BvbmRfYmlkaXJlY3Rpb25hbAwBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABRHNlcmlhbGl6ZWRfb3V0cHV0iQMB2EJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9TRVJJQUxJWkVEX09VVFBVVF9MRU5HVEg+PgABJHNpZ25hdHVyZZ0DASRTaWduYXR1cmUABgSYUHJvdmlkZSBhIHJlYWQgcmVzcG9uc2Ugd2l0aCBzaWduYXR1cmUUcGF1c2UABxD0UGF1c2UgdGhlIHNpZ25ldCBzbyB0aGF0IG5vIG5ldyBzaWduaW5nIHJlcXVlc3RzIGNhbiBiZSBtYWRlLgAsUGFyYW1ldGVyczqgLSBgb3JpZ2luYDogTXVzdCBzYXRpc2Z5IGBVcGRhdGVPcmlnaW5gLhx1bnBhdXNlAAgQ+FVucGF1c2UgdGhlIHNpZ25ldCBzbyB0aGF0IHNpZ25pbmcgcmVxdWVzdHMgYXJlIGFsbG93ZWQgYWdhaW4uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnkDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAfQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACBAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAIUDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAiQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACNAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAJEDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAJUDARhWZWM8VD4AAJUDAAACBACZAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZ0DBFMAAAQApQMBGFZlYzxUPgAAnQMMNHBhbGxldF9zaWduZXQYcGFsbGV0JFNpZ25hdHVyZQAADAEUYmlnX3KhAwEsQWZmaW5lUG9pbnQAAQRzBAEgW3U4OyAzMl0AASxyZWNvdmVyeV9pZAgBCHU4AAChAww0cGFsbGV0X3NpZ25ldBhwYWxsZXQsQWZmaW5lUG9pbnQAAAgBBHgEASBbdTg7IDMyXQABBHkEASBbdTg7IDMyXQAApQMAAAKdAwCpAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAa0DBFMAAAQAsQMBGFZlYzxUPgAArQMMNHBhbGxldF9zaWduZXQYcGFsbGV0NEVycm9yUmVzcG9uc2UAAAgBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABNGVycm9yX21lc3NhZ2WFAwHIQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0VSUk9SX01FU1NBR0VfTEVOR1RIPj4AALEDAAACrQMAtQMMQHBhbGxldF9kaXNwZW5zZXIYcGFsbGV0EENhbGwEBFQAARAwcmVxdWVzdF9mdW5kEAEIdG9YAShFdm1BZGRyZXNzAAEYYW1vdW50QAEcQmFsYW5jZQABKHJlcXVlc3RfaWQEARxCeXRlczMyAAEIdHi5AwFQRXZtVHJhbnNhY3Rpb25QYXJhbXMAABz0UmVxdWVzdCBFVEggZnJvbSB0aGUgZXh0ZXJuYWwgZmF1Y2V0IGZvciBhIGdpdmVuIEVWTSBhZGRyZXNzLgAsUGFyYW1ldGVyczqoLSBgdG9gOiBUYXJnZXQgRVZNIGFkZHJlc3MgdG8gcmVjZWl2ZSBFVEguuC0gYGFtb3VudGA6IEFtb3VudCBvZiBFVEggKGluIHdlaSkgdG8gcmVxdWVzdC4JAS0gYHJlcXVlc3RfaWRgOiBDbGllbnQtc3VwcGxpZWQgcmVxdWVzdCBJRDsgbXVzdCBtYXRjaCBkZXJpdmVkIElELg0BLSBgdHhgOiBQYXJhbWV0ZXJzIGZvciB0aGUgRVZNIHRyYW5zYWN0aW9uIHN1Ym1pdHRlZCB0byB0aGUgZmF1Y2V0LihzZXRfY29uZmlnGAE4ZmF1Y2V0X2FkZHJlc3NYAShFdm1BZGRyZXNzAAFQbWluX2ZhdWNldF90aHJlc2hvbGRAARxCYWxhbmNlAAEsbWluX3JlcXVlc3RAARxCYWxhbmNlAAEwbWF4X2Rpc3BlbnNlQAEcQmFsYW5jZQABNGRpc3BlbnNlcl9mZWVAARxCYWxhbmNlAAFIZmF1Y2V0X2JhbGFuY2Vfd2VpQAEcQmFsYW5jZQABNKhTZXQgb3IgdXBkYXRlIHRoZSBkaXNwZW5zZXIgY29uZmlndXJhdGlvbi4A/E9uIGZpcnN0IGNhbGwsIHRoZSBwYWxsZXQgc3RhcnRzIHVucGF1c2VkLiBPbiBzdWJzZXF1ZW50IGNhbGxzLHBgcGF1c2VkYCBzdGF0ZSBpcyBwcmVzZXJ2ZWQuACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAuEQEtIGBmYXVjZXRfYWRkcmVzc2A6IEVWTSBhZGRyZXNzIG9mIHRoZSBleHRlcm5hbCBnYXMgZmF1Y2V0IGNvbnRyYWN0LhkBLSBgbWluX2ZhdWNldF90aHJlc2hvbGRgOiBNaW5pbXVtIHJlbWFpbmluZyBFVEggKHdlaSkgYWZ0ZXIgYSByZXF1ZXN0LqAtIGBtaW5fcmVxdWVzdGA6IE1pbmltdW0gcmVxdWVzdCBhbW91bnQupC0gYG1heF9kaXNwZW5zZWA6IE1heGltdW0gcmVxdWVzdCBhbW91bnQu2C0gYGRpc3BlbnNlcl9mZWVgOiBGbGF0IGZlZSBpbiBgRmVlQXNzZXRgIHBlciByZXF1ZXN0LvAtIGBmYXVjZXRfYmFsYW5jZV93ZWlgOiBUcmFja2VkIGZhdWNldCBFVEggYmFsYW5jZSAoaW4gd2VpKS4UcGF1c2UAAhABAVBhdXNlIHRoZSBkaXNwZW5zZXIgc28gdGhhdCBubyBuZXcgZnVuZGluZyByZXF1ZXN0cyBjYW4gYmUgbWFkZS4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYC4cdW5wYXVzZQADEAUBVW5wYXVzZSB0aGUgZGlzcGVuc2VyIHNvIHRoYXQgZnVuZGluZyByZXF1ZXN0cyBhcmUgYWxsb3dlZCBhZ2Fpbi4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYARcRGlzcGF0Y2hhYmxlIGZ1bmN0aW9ucy65AwhAcGFsbGV0X2Rpc3BlbnNlclBFdm1UcmFuc2FjdGlvblBhcmFtcwAAGAEUdmFsdWVAARB1MTI4AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzQAEQdTEyOAABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc0ABEHUxMjgAARRub25jZRgBDHU2NAABIGNoYWluX2lkGAEMdTY0AAC9Aww4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0EENhbGwEBFQAARwoZ2lnYV9zdGFrZQQBGGFtb3VudEABHEJhbGFuY2UAAFxBAUxvY2sgSERYIGluIHRoZSBjYWxsZXIncyBhY2NvdW50LCBtaW50IHN0SERYLCBhbmQgc3VwcGx5IGl0IHRvIHRoZSBtb25leSBtYXJrZXQuADEBVGhlIHBhbGxldCBsb2NrcyBgYW1vdW50YCBIRFggaW4gdGhlIGNhbGxlcidzIGFjY291bnQgdW5kZXIgYENvbmZpZzo6TG9ja0lkYDUBKHNvIGl0IHJlbWFpbnMgdm90ZWFibGUgdmlhIGBMb2NrYWJsZUN1cnJlbmN5YCBzZW1hbnRpY3MpLCBtaW50cyBzdEhEWCBhdCB0aGUxAWN1cnJlbnQgZXhjaGFuZ2UgcmF0ZSwgYW5kIHN1cHBsaWVzIHRoZSBzdEhEWCB0byB0aGUgbW9uZXkgbWFya2V0LiBUaGUgbW9uZXkFAW1hcmtldCBtaW50cyBHSUdBSERYIChhVG9rZW4pIHRvIHRoZSBjYWxsZXIncyBFVk0tbWFwcGVkIGFkZHJlc3MuADUBYFN0YWtlc1tjYWxsZXJdLmdpZ2FoZHhgIHJlY29yZHMgdGhlICoqYWN0dWFsKiogYVRva2VuIGFtb3VudCByZXR1cm5lZCBieSB0aGUVAW1vbmV5IG1hcmtldCAobWF5IGRpZmZlciBmcm9tIHRoZSByZXF1ZXN0ZWQgbWludCBhbW91bnQgYnkgcm91bmRpbmcpLgD8RmFpbHMgd2l0aCBgQmVsb3dNaW5TdGFrZWAgaWYgYGFtb3VudCA8IENvbmZpZzo6TWluU3Rha2VgLCB3aXRoDQFgQmxvY2tlZEJ5RXh0ZXJuYWxMb2NrYCBpZiBgQ29uZmlnOjpFeHRlcm5hbENsYWltczo6b24oY2FsbGVyKSA+IDBg+Ch0aGUgY2FsbGVyIGhvbGRzIGEgbm9uLWFsbG93ZWQgbG9jayDigJQgc3RyaWN0IHBvbGljeSByZWplY3Rz8HN0YWtlIGFkbWlzc2lvbiBlbnRpcmVseSksIHdpdGggYEluc3VmZmljaWVudEZyZWVCYWxhbmNlYCBpZuBgZnJlZV9iYWxhbmNlIOKIkiBvd25fZ2lnYWhkeF9jb21taXRtZW50IDwgYW1vdW50YCwgd2l0aMRgU3RIZHhNaW50RmFpbGVkYCBpZiBzdEhEWCBtaW50aW5nIGZhaWxzLCBvciB3aXRoBQFgTW9uZXlNYXJrZXRTdXBwbHlGYWlsZWRgIGlmIHRoZSBBQVZFIGBQb29sLnN1cHBseWAgY2FsbCByZXZlcnRzLgAsUGFyYW1ldGVyczoVAS0gYGFtb3VudGA6IEhEWCBhbW91bnQgdG8gc3Rha2UuIE11c3QgYmUgYXQgbGVhc3QgYENvbmZpZzo6TWluU3Rha2VgLgCURW1pdHMgYFN0YWtlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAwZ2lnYV91bnN0YWtlBAE4Z2lnYWhkeF9hbW91bnRAARxCYWxhbmNlAAF8BQFVbnN0YWtlIHRoZSBjYWxsZXIncyBHSUdBSERYIGFuZCBvcGVuIGEgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9uLgA5AUJ1cm5zIGBnaWdhaGR4X2Ftb3VudGAgb2YgdGhlIGNhbGxlcidzIEdJR0FIRFggdGhyb3VnaCB0aGUgbW9uZXkgbWFya2V0LCB3aGljaDEBcmV0dXJucyBzdEhEWCB0byB0aGUgY2FsbGVyOyB0aGUgcGFsbGV0IHRoZW4gYnVybnMgdGhhdCBzdEhEWC4gVGhlIEhEWCB2YWx1ZSUBKGN1cnJlbnQgcmF0ZSDDlyBgZ2lnYWhkeF9hbW91bnRgKSBpcyBtb3ZlZCBpbnRvIGEgc2luZ2xlIHBlbmRpbmctdW5zdGFrZT0BcG9zaXRpb24gd2l0aCBhIGNvb2xkb3duIG9mIGBDb25maWc6OkNvb2xkb3duUGVyaW9kYC4gQW55IHBvcnRpb24gb2YgdGhlIHBheW91dCEBdGhhdCBleGNlZWRzIHRoZSB1c2VyJ3MgYWN0aXZlIHN0YWtlIHByaW5jaXBhbCBpcyBwYWlkIGFzIHlpZWxkIGZyb20gdGhlQGdpZ2Fwb3QgYWNjb3VudC4ARQFBdCBtb3N0IG9uZSBwZW5kaW5nIHBvc2l0aW9uIHBlciBhY2NvdW50IOKAlCB0aGUgY2FsbGVyIG11c3QgYHVubG9ja2AgYW4gZXhpc3RpbmclAXBvc2l0aW9uIGJlZm9yZSBjYWxsaW5nIGFnYWluLCBvdGhlcndpc2UgYFBlbmRpbmdVbnN0YWtlQWxyZWFkeUV4aXN0c2AgaXMkcmV0dXJuZWQuACUBSW1wbGVtZW50YXRpb24gZGV0YWlsIChtdXN0IG1hdGNoIGBMb2NrYWJsZUFUb2tlbi5zb2xgKTogdGhlIGxvY2stbWFuYWdlcjUBcHJlY29tcGlsZSAoYDB4MDgwNmApIHJlYWRzIGBTdGFrZXNbd2hvXS5naWdhaGR4YCBhbmQgdHJlYXRzIGl0IGFzIHRoZSB1c2VyJ3PcbG9ja2VkIEdJR0FIRFguIFRoZSBhVG9rZW4gY29udHJhY3QgcmVqZWN0cyBidXJucyB3aGVyZSEBYGFtb3VudCA+IGJhbGFuY2UgLSBsb2NrZWRgLCBzbyB0aGUgcGFsbGV0ICoqcHJlLWRlY3JlbWVudHMgYGdpZ2FoZHhgIGJ5LQFgZ2lnYWhkeF9hbW91bnRgIGJlZm9yZSB0aGUgbW9uZXktbWFya2V0IGNhbGwqKi4gVGhlIGRpc3BhdGNoYWJsZSBydW5zIGluIGEVAXN0b3JhZ2UgbGF5ZXIgc28gYW55IGZhaWx1cmUgcm9sbHMgYmFjayB0aGUgcHJlLWRlY3JlbWVudCBhdG9taWNhbGx5LgAdAUZhaWxzIHdpdGggYE5vU3Rha2VgIGlmIHRoZSBjYWxsZXIgaGFzIG5vIGFjdGl2ZSBzdGFrZSwgYFplcm9BbW91bnRgIGlmKQFgZ2lnYWhkeF9hbW91bnQgPT0gMGAsIGBJbnN1ZmZpY2llbnRTdGFrZWAgaWYgYGdpZ2FoZHhfYW1vdW50YCBleGNlZWRzIHRoZRUBY2FsbGVyJ3MgYFN0YWtlcy5naWdhaGR4YCwgb3IgYE1vbmV5TWFya2V0V2l0aGRyYXdGYWlsZWRgIGlmIHRoZSBBQVZFdGBQb29sLndpdGhkcmF3YCBjYWxsIHJldmVydHMuACxQYXJhbWV0ZXJzOjEBLSBgZ2lnYWhkeF9hbW91bnRgOiBHSUdBSERYIChhVG9rZW4pIGFtb3VudCB0byB1bnN0YWtlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbtAgIHplcm8gYW5kIG5vdCBleGNlZWQgdGhlIGNhbGxlcidzIGBTdGFrZXMuZ2lnYWhkeGAuAJxFbWl0cyBgVW5zdGFrZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ARHNldF9wb29sX2NvbnRyYWN0BAEgY29udHJhY3RYAShFdm1BZGRyZXNzAAJQHQFTZXQgdGhlIEFBVkUgVjMgUG9vbCBjb250cmFjdCBhZGRyZXNzIHVzZWQgYnkgdGhlIG1vbmV5LW1hcmtldCBhZGFwdGVyLgANAVJlZnVzZXMgdG8gc3dhcCB0aGUgcG9vbCB3aGlsZSBnaWdhaGR4IChhVG9rZW4gLyBzdEhEWCkgaXMgc3RpbGwgaW4dAWNpcmN1bGF0aW9uIOKAlCBhIHN3YXAgbWlkLWZsaWdodCB3b3VsZCByb3V0ZSBzdWJzZXF1ZW50IGBnaWdhX3Vuc3Rha2VgDQFjYWxscyB0byBhIHBvb2wgdGhhdCBkb2Vzbid0IGhvbGQgdGhlIHVzZXIncyBhdG9rZW5zLCByZXZlcnRpbmcgdGhlDQFidXJuIGFuZCBsZWF2aW5nIEhEWCBwZXJtYW5lbnRseSBsb2NrZWQuIFJldHVybnMgYE91dHN0YW5kaW5nU3Rha2VgkHdoZW4gdG90YWwgc3RIRFggc3VwcGx5IGlzIG5vbi16ZXJvLgD4Tm90ZTogaXQgaXMgbm90IGVub3VnaCB0byBjaGVjayBgVG90YWxMb2NrZWQgPT0gMGAgKHRoZSBzdW0gb2b8YFN0YWtlcy5oZHhgKS4gV2hlbiBhbiB1bnN0YWtlIHBheW91dCBleGNlZWRzIHRoZSB1c2VyJ3MgYWN0aXZlAQFzdGFrZSwgdGhlIGFjdGl2ZSBzdGFrZSBpcyBkcmFpbmVkIGJ1dCBgU3Rha2VzLmdpZ2FoZHhgIChhbmQgdGhlAQFjb3JyZXNwb25kaW5nIGFUb2tlbiBiYWxhbmNlKSBjYW4gc3RheSBub24temVybyDigJQgdGhvc2UgdG9rZW5zhHJlbWFpbiBib3VuZCB0byB0aGUgY3VycmVudCBwb29sLgAsUGFyYW1ldGVyczqkLSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6QXV0aG9yaXR5T3JpZ2luYC7wLSBgY29udHJhY3RgOiBIMTYwIGFkZHJlc3Mgb2YgdGhlIG5ldyBBQVZFIFYzIFBvb2wgY29udHJhY3QuAMhFbWl0cyBgUG9vbENvbnRyYWN0VXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAYdW5sb2NrBAEscG9zaXRpb25faWQoAURCbG9ja051bWJlckZvcjxUPgADLBUBUmVsZWFzZSBhIHNpbmdsZSBwZW5kaW5nLXVuc3Rha2UgcG9zaXRpb24gd2hvc2UgY29vbGRvd24gaGFzIGVsYXBzZWQuABUBRmFpbHMgd2l0aCBgUGVuZGluZ1Vuc3Rha2VOb3RGb3VuZGAgaWYgbm8gcG9zaXRpb24gd2l0aCBgcG9zaXRpb25faWRgKQFleGlzdHMsIG9yIGBDb29sZG93bk5vdEVsYXBzZWRgIGlmIHRoZSB0YXJnZXRlZCBwb3NpdGlvbiBpcyBzdGlsbCBjb29saW5nLgAsUGFyYW1ldGVyczoJAS0gYHBvc2l0aW9uX2lkYDogaWQgb2YgdGhlIHBvc2l0aW9uIHRvIHJlbGVhc2UgKGFzIHJlY29yZGVkIGluIHRoZcAgIGBVbnN0YWtlZGAgZXZlbnQgZm9yIHRoZSBvcmlnaW5hdGluZyB1bnN0YWtlKS4AnEVtaXRzIGBVbmxvY2tlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4Y2FuY2VsX3Vuc3Rha2UEASxwb3NpdGlvbl9pZCgBREJsb2NrTnVtYmVyRm9yPFQ+AARICQFDYW5jZWwgYSBzaW5nbGUgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9uLCBmb2xkaW5nIGl0cyBgYW1vdW50YCBIRFjgYmFjayBpbnRvIHRoZSBhY3RpdmUgc3Rha2UgYXQgdGhlIGN1cnJlbnQgZXhjaGFuZ2UgcmF0ZS4A/FRoZSBwZW5kaW5nIEhEWCBpcyBhbHJlYWR5IGxvY2tlZCBpbiB0aGUgY2FsbGVyJ3MgYWNjb3VudDsgdGhpcwEBZXh0cmluc2ljIHJlbGFiZWxzIGl0IGFzIGFjdGl2ZSBzdGFrZSBhbmQgbWludHMgZnJlc2ggYVRva2VucyBhdPh0b2RheSdzIHJhdGUuIFRoZSBudW1iZXIgb2YgYVRva2VucyBtaW50ZWQgbWF5IGRpZmZlciBmcm9tIHRoZeRhbW91bnQgYnVybmVkIGF0IHVuc3Rha2UgdGltZSBpZiB0aGUgZXhjaGFuZ2UgcmF0ZSBtb3ZlZC4A/ENvb2xkb3duIGlzIG5vdCBhIGdhdGUg4oCUIGNhbmNlbGxhdGlvbiBpcyB2YWxpZCB0aHJvdWdob3V0IHRoZchwZW5kaW5nIHdpbmRvdywgdW50aWwgdGhlIGNhbGxlciBpbnZva2VzIGB1bmxvY2tgLgARAUZhaWxzIHdpdGggYFBlbmRpbmdVbnN0YWtlTm90Rm91bmRgIGlmIGBwb3NpdGlvbl9pZGAgaXMgbm90IHByZXNlbnQuACxQYXJhbWV0ZXJzOrgtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBwb3NpdGlvbiB0byBjYW5jZWwuALxFbWl0cyBgVW5zdGFrZUNhbmNlbGxlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAcbWlncmF0ZQAFTPhNaWdyYXRlIHRoZSBjYWxsZXIncyBsZWdhY3kgTkZUIHN0YWtpbmcgcG9zaXRpb24gaW50byBnaWdhaGR4LgD0QXRvbWljYWxseTogZGVzdHJveXMgdGhlIGxlZ2FjeSBwb3NpdGlvbiB2aWEgYExlZ2FjeVN0YWtpbmc6Og0BZm9yY2VfdW5zdGFrZWAgKHBheWluZyBvdXQgMTAwJSBvZiByZXdhcmRzIOKAlCBubyBzaWdtb2lkIHNsYXNoLCBub/x1bmNsYWltYWJsZS1wZXJpb2QgcGVuYWx0eSksIHRoZW4gcmUtc3Rha2VzIHRoZSBmcmVlZCBIRFggdW5kZXIJAXRoZSBzYW1lIGFkbWlzc2lvbiBnYXRlIGFzIGBnaWdhX3N0YWtlYC4gUmVmdXNlcyBwYXJ0aWFsIG1pZ3JhdGlvbuDigJQgdGhlIGxlZ2FjeSBwb3NpdGlvbiBpcyBjb25zdW1lZCB3aG9sZSBvciBub3QgYXQgYWxsLgD8QWRtaXNzaW9uIHJ1bnMgKmFmdGVyKiBgZm9yY2VfdW5zdGFrZWAgc28gdGhlIGxlZ2FjeSBsb2NrIGlzIG5voGxvbmdlciBjb3VudGVkIGFnYWluc3QgYEV4dGVybmFsQ2xhaW1zYC4A+EZhaWxzIHdpdGggYEJlbG93TWluU3Rha2VgIGlmIHRoZSBsZWdhY3kgcG9zaXRpb24gdW5sb2NrcyBsZXNz8HRoYW4gYENvbmZpZzo6TWluU3Rha2VgLCB3aXRoIGBCbG9ja2VkQnlFeHRlcm5hbExvY2tgIGlmIHRoZfxjYWxsZXIgc3RpbGwgY2FycmllcyBhbm90aGVyIG5vbi1vdmVybGFwLXdoaXRlbGlzdGVkIGxvY2ssIHdpdGgFAWBJbnN1ZmZpY2llbnRGcmVlQmFsYW5jZWAgaWYgdGhlIHBvc3QtdW5zdGFrZSBiYWxhbmNlIGNhbid0IGNvdmVy9HRoZSBuZXcgZ2lnYWhkeCBjbGFpbSwgb3Igd2l0aCB3aGF0ZXZlciBlcnJvciBgZm9yY2VfdW5zdGFrZWDocmFpc2VzIChlLmcuIG9uZ29pbmcgcmVmZXJlbmR1bSB2b3RlLCBubyBsZWdhY3kgcG9zaXRpb24pLgDERW1pdHMgYE1pZ3JhdGVkRnJvbUxlZ2FjeWAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRyZWFsaXplX3lpZWxkAAYoFQFSZWFsaXplIHRoZSBjYWxsZXIncyBhY2NydWVkIHlpZWxkIGludG8gdGhlaXIgbG9ja2VkIHN0YWtlIHByaW5jaXBhbC4AFQFNb3ZlcyB0aGUgSERYIHZhbHVlIHRoZSBjYWxsZXIncyBHSUdBSERYIGhhcyBnYWluZWQgc2luY2UgaXQgd2FzIGxhc3QhAXJlY29uY2lsZWQgKGByYXRlIMOXIGdpZ2FoZHgg4oiSIFN0YWtlc1t3aG9dLmhkeGApIGZyb20gdGhlIGdpZ2Fwb3QgaW50bxEBdGhlIGNhbGxlcidzIGFjY291bnQsIGZvbGRzIGl0IGludG8gYFN0YWtlc1t3aG9dLmhkeGAsIGFuZCByZWZyZXNoZXMBAXRoZSBsb2NrLiBHSUdBSERYIGJhbGFuY2UgYW5kIHRoZSBleGNoYW5nZSByYXRlIGFyZSB1bmNoYW5nZWQuIEEFAWNhbGxlciB3aXRoIG5vIGFjY3J1ZWQgeWllbGQgKG9yIG5vIHN0YWtlKSBpcyBhIHN1Y2Nlc3NmdWwgbm8tb3AuAPBFbWl0cyBgWWllbGRSZWFsaXplZGAgZXZlbnQgd2hlbiB0aGVyZSB3YXMgeWllbGQgdG8gcmVhbGl6ZS4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsEDDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzGHBhbGxldBBDYWxsBARUAAEENGNsYWltX3Jld2FyZHMAADARAUNvbnZlcnQgdGhlIGNhbGxlcidzIGFjY3VtdWxhdGVkIEhEWCByZXdhcmRzIGludG8gR0lHQUhEWCBieSBzdGFraW5ncHRoZW0gb24gdGhlIGNhbGxlcidzIGJlaGFsZi4ACQFUaGUgZnVsbCBgUGVuZGluZ1Jld2FyZHNbd2hvXWAgc3VtIGlzIHRha2VuIGF0b21pY2FsbHkuIFRoZSBIRFggaXP8dHJhbnNmZXJyZWQgZnJvbSB0aGUgYWxsb2NhdGVkLXJld2FyZHMgcG90IHRvIHRoZSBjYWxsZXIncyBmcmVlCQFiYWxhbmNlLCB0aGVuIGBwYWxsZXRfZ2lnYWhkeDo6ZG9fc3Rha2VgIGlzIGNhbGxlZCB0byBtaW50IEdJR0FIRFiEaW50byB0aGUgY2FsbGVyJ3Mgc3Rha2UgcG9zaXRpb24uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBzaWduZWQgYnkgdGhlIHVzZXIgY2xhaW1pbmcuALRFbWl0cyBgUmV3YXJkc0NsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuxQMMLG9ybWxfdG9rZW5zGG1vZHVsZRBDYWxsBARUAAEUIHRyYW5zZmVyDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQAANNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgAFAWB0cmFuc2ZlcmAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIu4El0IHdpbGwgZGVjcmVhc2UgdGhlIHRvdGFsIGlzc3VhbmNlIG9mIHRoZSBzeXN0ZW0gYnkgdGhl/GBUcmFuc2ZlckZlZWAuIElmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbAEBZGVwb3NpdCBhcyBhIHJlc3VsdCBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIufC0gYGN1cnJlbmN5X2lkYDogY3VycmVuY3kgdHlwZS6wLSBgYW1vdW50YDogZnJlZSBiYWxhbmNlIGFtb3VudCB0byB0cmFuc2Zlci4wdHJhbnNmZXJfYWxsDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEoa2VlcF9hbGl2ZUQBEGJvb2wAAUzQVHJhbnNmZXIgYWxsIHJlbWFpbmluZyBiYWxhbmNlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgDwTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVf+GJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXQgYW55IGxvY2tlZCwgcmVzZXJ2ZWQsIG9yIGV4aXN0ZW50aWFsCQFkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmUgdHJhbnNmZXJyZWQgYnn8dGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVk+GFjY291bnQsIHlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55sHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZSBkZXBvc2l0cywgZXRjLi4uAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLvAtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAFASAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbCBvZiB0aGUgZnVuZHMgdGhlIGFjY291bnQgaGFzLCBjYXVzaW5nBQEgIHRoZSBzZW5kZXIgYWNjb3VudCB0byBiZSBraWxsZWQgKGZhbHNlKSwgb3IgdHJhbnNmZXIgZXZlcnl0aGluZwkBICBleGNlcHQgYXQgbGVhc3QgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQsIHdoaWNoIHdpbGwgZ3VhcmFudGVlIHRvnCAga2VlcCB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUgKHRydWUpLkx0cmFuc2Zlcl9rZWVwX2FsaXZlDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQACLAUBU2FtZSBhcyB0aGUgW2B0cmFuc2ZlcmBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXKEd2lsbCBub3Qga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuALg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2ZlcmBdIGluc3RlYWQuAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLrAtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5zZmVyLjhmb3JjZV90cmFuc2ZlchABGHNvdXJjZQABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQADJBEBRXhhY3RseSBhcyBgdHJhbnNmZXJgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2VkYWNjb3VudCBtYXkgYmUgc3BlY2lmaWVkLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgCcLSBgc291cmNlYDogVGhlIHNlbmRlciBvZiB0aGUgdHJhbnNmZXIuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLrAtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5zZmVyLixzZXRfYmFsYW5jZRABDHdobwABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEgbmV3X2ZyZWU8AShUOjpCYWxhbmNlAAEwbmV3X3Jlc2VydmVkPAEoVDo6QmFsYW5jZQAEIJBTZXQgdGhlIGJhbGFuY2VzIG9mIGEgZ2l2ZW4gYWNjb3VudC4ACQFUaGlzIHdpbGwgYWx0ZXIgYEZyZWVCYWxhbmNlYCBhbmQgYFJlc2VydmVkQmFsYW5jZWAgaW4gc3RvcmFnZS4gaXTMd2lsbCBhbHNvIGRlY3JlYXNlIHRoZSB0b3RhbCBpc3N1YW5jZSBvZiB0aGUgc3lzdGVtDQEoYFRvdGFsSXNzdWFuY2VgKS4gSWYgdGhlIG5ldyBmcmVlIG9yIHJlc2VydmVkIGJhbGFuY2UgaXMgYmVsb3cgdGhl0GV4aXN0ZW50aWFsIGRlcG9zaXQsIGl0IHdpbGwgcmVhcCB0aGUgYEFjY291bnRJbmZvYC4AsFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLskDDERwYWxsZXRfY3VycmVuY2llcxhtb2R1bGUQQ2FsbAQEVAABDCB0cmFuc2ZlcgwBEGRlc3QAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEYYW1vdW50PAEwQmFsYW5jZU9mPFQ+AAAQ9FRyYW5zZmVyIHNvbWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQgdW5kZXIgYGN1cnJlbmN5X2lkYC4A5FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSx0cmFuc2FjdG9yLmB0cmFuc2Zlcl9uYXRpdmVfY3VycmVuY3kIARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAARhhbW91bnQ8ATBCYWxhbmNlT2Y8VD4AARDEVHJhbnNmZXIgc29tZSBuYXRpdmUgY3VycmVuY3kgdG8gYW5vdGhlciBhY2NvdW50LgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuOHVwZGF0ZV9iYWxhbmNlDAEMd2hvAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABGGFtb3VudM0DASxBbW91bnRPZjxUPgACDMx1cGRhdGUgYW1vdW50IG9mIGFjY291bnQgYHdob2AgdW5kZXIgYGN1cnJlbmN5X2lkYC4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7NAwAABQ0A0QMMMG9ybWxfdmVzdGluZxhtb2R1bGUQQ2FsbAQEVAABEBRjbGFpbQAAADx2ZXN0ZWRfdHJhbnNmZXIIARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASBzY2hlZHVsZdUDAVBWZXN0aW5nU2NoZWR1bGVPZjxUPgABAGB1cGRhdGVfdmVzdGluZ19zY2hlZHVsZXMIAQx3aG8AAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABRHZlc3Rpbmdfc2NoZWR1bGVz2QMBZFZlYzxWZXN0aW5nU2NoZWR1bGVPZjxUPj4AAgAkY2xhaW1fZm9yBAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAMABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtUDCDBvcm1sX3Zlc3Rpbmc8VmVzdGluZ1NjaGVkdWxlCCxCbG9ja051bWJlcgEoHEJhbGFuY2UBQAAQARRzdGFydCgBLEJsb2NrTnVtYmVyAAEYcGVyaW9kKAEsQmxvY2tOdW1iZXIAATBwZXJpb2RfY291bnQoAQx1MzIAAShwZXJfcGVyaW9kPAEcQmFsYW5jZQAA2QMAAALVAwDdAwwocGFsbGV0X2V2bRhwYWxsZXQQQ2FsbAQEVAABECB3aXRoZHJhdwgBHGFkZHJlc3NYARBIMTYwAAEUdmFsdWVAATBCYWxhbmNlT2Y8VD4AAATgV2l0aGRyYXcgYmFsYW5jZSBmcm9tIEVWTSBpbnRvIGN1cnJlbmN5L2JhbGFuY2VzIHBhbGxldC4QY2FsbCgBGHNvdXJjZVgBEEgxNjAAARh0YXJnZXRYARBIMTYwAAEUaW5wdXQUARxWZWM8dTg+AAEUdmFsdWVgARBVMjU2AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+EDATBPcHRpb248VTI1Nj4AARRub25jZeEDATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdOUDAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN07QMBREF1dGhvcml6YXRpb25MaXN0AAEEXQFJc3N1ZSBhbiBFVk0gY2FsbCBvcGVyYXRpb24uIFRoaXMgaXMgc2ltaWxhciB0byBhIG1lc3NhZ2UgY2FsbCB0cmFuc2FjdGlvbiBpbiBFdGhlcmV1bS4YY3JlYXRlJAEYc291cmNlWAEQSDE2MAABEGluaXQUARxWZWM8dTg+AAEUdmFsdWVgARBVMjU2AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+EDATBPcHRpb248VTI1Nj4AARRub25jZeEDATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdOUDAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN07QMBREF1dGhvcml6YXRpb25MaXN0AAIIUQFJc3N1ZSBhbiBFVk0gY3JlYXRlIG9wZXJhdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGEgY29udHJhY3QgY3JlYXRpb24gdHJhbnNhY3Rpb24gaW4kRXRoZXJldW0uHGNyZWF0ZTIoARhzb3VyY2VYARBIMTYwAAEQaW5pdBQBHFZlYzx1OD4AARBzYWx0LAEQSDI1NgABFHZhbHVlYAEQVTI1NgABJGdhc19saW1pdBgBDHU2NAABPG1heF9mZWVfcGVyX2dhc2ABEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXPhAwEwT3B0aW9uPFUyNTY+AAEUbm9uY2XhAwEwT3B0aW9uPFUyNTY+AAEsYWNjZXNzX2xpc3TlAwFYVmVjPChIMTYwLCBWZWM8SDI1Nj4pPgABSGF1dGhvcml6YXRpb25fbGlzdO0DAURBdXRob3JpemF0aW9uTGlzdAADBHxJc3N1ZSBhbiBFVk0gY3JlYXRlMiBvcGVyYXRpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuEDBBhPcHRpb24EBFQBYAEIEE5vbmUAAAAQU29tZQQAYAAAAQAA5QMAAALpAwDpAwAABAhY7ADtAwAAAvEDAPEDECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXA3NzAyVEF1dGhvcml6YXRpb25MaXN0SXRlbQAAEAEgY2hhaW5faWQYAQx1NjQAARxhZGRyZXNzWAEcQWRkcmVzcwABFG5vbmNlYAEQVTI1NgABJHNpZ25hdHVyZfUDAXRNYWxsZWFibGVUcmFuc2FjdGlvblNpZ25hdHVyZQAA9QMQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzB0TWFsbGVhYmxlVHJhbnNhY3Rpb25TaWduYXR1cmUAAAwBMG9kZF95X3Bhcml0eUQBEGJvb2wAAQRyLAEQSDI1NgABBHMsARBIMjU2AAD5Aww8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBBDYWxsBARUAAEEIHRyYW5zYWN0BAEsdHJhbnNhY3Rpb279AwEsVHJhbnNhY3Rpb24AAASEVHJhbnNhY3QgYW4gRXRoZXJldW0gdHJhbnNhY3Rpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLv0DDCBldGhlcmV1bSx0cmFuc2FjdGlvbjRUcmFuc2FjdGlvblYzAAEQGExlZ2FjeQQAAQQBRExlZ2FjeVRyYW5zYWN0aW9uAAAAHEVJUDI5MzAEABEEAUhFSVAyOTMwVHJhbnNhY3Rpb24AAQAcRUlQMTU1OQQAIQQBSEVJUDE1NTlUcmFuc2FjdGlvbgACABxFSVA3NzAyBAAlBAFIRUlQNzcwMlRyYW5zYWN0aW9uAAMAAAEEECBldGhlcmV1bSx0cmFuc2FjdGlvbhhsZWdhY3lETGVnYWN5VHJhbnNhY3Rpb24AABwBFG5vbmNlYAEQVTI1NgABJGdhc19wcmljZWABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEYYWN0aW9uBQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEUaW5wdXQUARRCeXRlcwABJHNpZ25hdHVyZQkEAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAABQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uGGxlZ2FjeURUcmFuc2FjdGlvbkFjdGlvbgABCBBDYWxsBABYARBIMTYwAAAAGENyZWF0ZQABAAAJBBAgZXRoZXJldW0sdHJhbnNhY3Rpb24YbGVnYWN5UFRyYW5zYWN0aW9uU2lnbmF0dXJlAAAMAQR2DQQBVFRyYW5zYWN0aW9uUmVjb3ZlcnlJZAABBHIsARBIMjU2AAEEcywBEEgyNTYAAA0EECBldGhlcmV1bSx0cmFuc2FjdGlvbhhsZWdhY3lUVHJhbnNhY3Rpb25SZWNvdmVyeUlkAAAEABgBDHU2NAAAEQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzBIRUlQMjkzMFRyYW5zYWN0aW9uAAAkASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlYAEQVTI1NgABJGdhc19wcmljZWABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEYYWN0aW9uBQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEUaW5wdXQUARRCeXRlcwABLGFjY2Vzc19saXN0FQQBKEFjY2Vzc0xpc3QAASRzaWduYXR1cmUdBAFQVHJhbnNhY3Rpb25TaWduYXR1cmUAABUEAAACGQQAGQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzA4QWNjZXNzTGlzdEl0ZW0AAAgBHGFkZHJlc3NYARxBZGRyZXNzAAEwc3RvcmFnZV9rZXlz7AEkVmVjPEgyNTY+AAAdBBAgZXRoZXJldW0sdHJhbnNhY3Rpb24cZWlwMjkzMFBUcmFuc2FjdGlvblNpZ25hdHVyZQAADAEwb2RkX3lfcGFyaXR5RAEQYm9vbAABBHIsARBIMjU2AAEEcywBEEgyNTYAACEEECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXAxNTU5SEVJUDE1NTlUcmFuc2FjdGlvbgAAKAEgY2hhaW5faWQYAQx1NjQAARRub25jZWABEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXNgARBVMjU2AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABJGdhc19saW1pdGABEFUyNTYAARhhY3Rpb24FBAFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZWABEFUyNTYAARRpbnB1dBQBFEJ5dGVzAAEsYWNjZXNzX2xpc3QVBAEoQWNjZXNzTGlzdAABJHNpZ25hdHVyZR0EAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAAJQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDc3MDJIRUlQNzcwMlRyYW5zYWN0aW9uAAAsASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc2ABEFUyNTYAATxtYXhfZmVlX3Blcl9nYXNgARBVMjU2AAEkZ2FzX2xpbWl0YAEQVTI1NgABLGRlc3RpbmF0aW9uBQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEQZGF0YRQBFEJ5dGVzAAEsYWNjZXNzX2xpc3QVBAEoQWNjZXNzTGlzdAABSGF1dGhvcml6YXRpb25fbGlzdO0DAURBdXRob3JpemF0aW9uTGlzdAABJHNpZ25hdHVyZR0EAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAAKQQMTHBhbGxldF9ldm1fYWNjb3VudHMYcGFsbGV0EENhbGwEBFQAARxAYmluZF9ldm1fYWRkcmVzcwAAMKRCaW5kcyBhIFN1YnN0cmF0ZSBhZGRyZXNzIHRvIEVWTSBhZGRyZXNzLm0BQWZ0ZXIgYmluZGluZywgdGhlIEVWTSBpcyBhYmxlIHRvIGNvbnZlcnQgYW4gRVZNIGFkZHJlc3MgdG8gdGhlIG9yaWdpbmFsIFN1YnN0cmF0ZSBhZGRyZXNzLq0BV2l0aG91dCBiaW5kaW5nLCB0aGUgRVZNIGNvbnZlcnRzIGFuIEVWTSBhZGRyZXNzIHRvIGEgdHJ1bmNhdGVkIFN1YnN0cmF0ZSBhZGRyZXNzLCB3aGljaCBkb2Vzbid0IGNvcnJlc3BvbmRYdG8gdGhlIG9yaWdpbiBhZGRyZXNzLgAFAUJpbmRpbmcgYW4gYWRkcmVzcyBpcyBub3QgbmVjZXNzYXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBFVk0uoEluY3JlYXNlcyBgc3VmZmljaWVudHNgIGZvciB0aGUgYWNjb3VudC4ALFBhcmFtZXRlcnM6wC0gYG9yaWdpbmA6IFN1YnN0cmF0ZSBhY2NvdW50IGJpbmRpbmcgYW4gYWRkcmVzcwC4RW1pdHMgYEV2bUFjY291bnRCb3VuZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlRhZGRfY29udHJhY3RfZGVwbG95ZXIEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwABHGEBQWRkcyBhbiBFVk0gYWRkcmVzcyB0byB0aGUgbGlzdCBvZiBhZGRyZXNzZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBkZXBsb3kgc21hcnQgY29udHJhY3RzLgAsUGFyYW1ldGVyczpJAS0gYG9yaWdpbmA6IFN1YnN0cmF0ZSBhY2NvdW50IHdoaXRlbGlzdGluZyBhbiBhZGRyZXNzLiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC6wLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgd2hpdGVsaXN0ZWQAsEVtaXRzIGBEZXBsb3llckFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuYHJlbW92ZV9jb250cmFjdF9kZXBsb3llcgQBHGFkZHJlc3NYAShFdm1BZGRyZXNzAAIcdQFSZW1vdmVzIGFuIEVWTSBhZGRyZXNzIGZyb20gdGhlIGxpc3Qgb2YgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHNtYXJ0IGNvbnRyYWN0cy4ALFBhcmFtZXRlcnM6mQEtIGBvcmlnaW5gOiBTdWJzdHJhdGUgYWNjb3VudCByZW1vdmluZyB0aGUgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7sLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSB3aGl0ZWxpc3QAuEVtaXRzIGBEZXBsb3llclJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5ocmVub3VuY2VfY29udHJhY3RfZGVwbG95ZXIAAxyhAVJlbW92ZXMgdGhlIGFjY291bnQncyBFVk0gYWRkcmVzcyBmcm9tIHRoZSBsaXN0IG9mIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGRlcGxveSBzbWFydCBjb250cmFjdHMu2QFCYXNlZCBvbiB0aGUgYmVzdCBwcmFjdGljZXMsIHRoaXMgZXh0cmluc2ljIGNhbiBiZSBjYWxsZWQgYnkgYW55IHdoaXRlbGlzdGVkIGFjY291bnQgdG8gcmVub3VuY2UgdGhlaXIgb3duIHBlcm1pc3Npb24uACxQYXJhbWV0ZXJzOjEBLSBgb3JpZ2luYDogU3Vic3RyYXRlIGFjY291bnQgcmVtb3ZpbmcgdGhlaXIgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LgC4RW1pdHMgYERlcGxveWVyUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkBhcHByb3ZlX2NvbnRyYWN0BAEcYWRkcmVzc1gBKEV2bUFkZHJlc3MABCRJAUFkZHMgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgY29udHJhY3RzIHRvIG1hbmFnZSBiYWxhbmNlcy4A/EVmZmVjdGl2ZWx5IGdpdmluZyBpdCBhbGxvd2FuY2UgdG8gZm9yIGFueSBiYWxhbmNlcyBhbmQgdG9rZW5zLgAsUGFyYW1ldGVyczqgLSBgb3JpZ2luYDogIE11c3QgYmUgYENvbnRyb2xsZXJPcmlnaW5gLswtIGBhZGRyZXNzYDogQ29udHJhY3QgYWRkcmVzcyB0aGF0IHdpbGwgYmUgYXBwcm92ZWQAvEVtaXRzIGBDb250cmFjdEFwcHJvdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuTGRpc2FwcHJvdmVfY29udHJhY3QEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwAFHF0BUmVtb3ZlcyBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCBmcm9tIHRoZSBsaXN0IG9mIGFwcHJvdmVkIGNvbnRyYWN0cyB0byBtYW5hZ2UgYmFsYW5jZXMuACxQYXJhbWV0ZXJzOpwtIGBvcmlnaW5gOiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7YLSBgYWRkcmVzc2A6IENvbnRyYWN0IGFkZHJlc3MgdGhhdCB3aWxsIGJlIGRpc2FwcHJvdmVkAMhFbWl0cyBgQ29udHJhY3REaXNhcHByb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRjbGFpbV9hY2NvdW50DAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABJHNpZ25hdHVyZZUBASRTaWduYXR1cmUABiz8UHJvdmVzIG93bmVyc2hpcCBvZiBhbiBhY2NvdW50IGFuZCBiaW5kcyBpdCB0byB0aGUgRVZNIGFkZHJlc3MuUQFUaGlzIGlzIHVzZWZ1bCBmb3IgYWNjb3VudHMgdGhhdCB3YW50IHRvIHN1Ym1pdCBzb21lIHN1YnN0cmF0ZSB0cmFuc2FjdGlvbiwgYnV0IG9ubHl1AXJlY2VpdmVkIHNvbWUgRVJDMjAgYmFsYW5jZSBhbmQgYFN5c3RlbWAgcGFsbGV0IGRvZXNuJ3QgcmVnaXN0ZXIgdGhlbSBhcyBhIHN1YnN0cmF0ZSBhY2NvdW50LgAsUGFyYW1ldGVyczpwLSBgb3JpZ2luYDogVW5zaWduZWQgb3JpZ2luLtgtIGBhY2NvdW50YDogQWNjb3VudCBwcm92aW5nIG93bmVyc2hpcCBvZiB0aGUgYWRkcmVzcy4FAS0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gYmUgc2V0IGFzIGZlZSBjdXJyZW5jeSBmb3IgdGhlIGFjY291bnQuSQEtIGBzaWduYXR1cmVgOiBTaWduZWQgbWVzc2FnZSBieSB0aGUgYWNjb3VudCB0aGF0IHByb3ZlcyBvd25lcnNoaXAgb2YgdGhlIGFjY291bnQuALRFbWl0cyBgQWNjb3VudENsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuLQQMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAQEVAABPEhjcmVhdGVfZ2xvYmFsX2Zhcm0kATR0b3RhbF9yZXdhcmRzQAEcQmFsYW5jZQABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABSGluY2VudGl2aXplZF9hc3NldCgBHEFzc2V0SWQAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAAAdPRDcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMuAD0BYG93bmVyYCBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IGB0b3RhbF9yZXdhcmRzYCBiYWxhbmNlLiBUaGlzIGZ1bmQgd2lsbCBiZaR0cmFuc2ZlcnJlZCBmcm9tIGBvd25lcmAgdG8gZmFybSBhY2NvdW50LmUBSW4gY2FzZSBvZiBgcmV3YXJkX2N1cnJlbmN5YCBpcyBpbnN1ZmZpY2llbnQgYXNzZXQsIGZhcm0ncyBgb3duZXJgIGhhcyB0byBwYXkgZXhpc3RlbnRpYWwdAWRlcG9zaXQgZm9yIGdsb2JhbCBmYXJtIGFjY291bnQgYW5kIGZvciBsaXF1aWRpdHkgbWluaW5nIGBwb3RgIGFjY291bnQuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4xAS0gYHRvdGFsX3Jld2FyZHNgOiB0b3RhbCByZXdhcmRzIHBsYW5uZWQgdG8gZGlzdHJpYnV0ZS4gVGhpcyByZXdhcmRzIHdpbGwgYmXcZGlzdHJpYnV0ZWQgYmV0d2VlbiBhbGwgeWllbGQgZmFybXMgaW4gdGhlIGdsb2JhbCBmYXJtLlkBLSBgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYDogcGxhbm5lZCBudW1iZXIgb2YgcGVyaW9kcyB0byBkaXN0cmlidXRlIGB0b3RhbF9yZXdhcmRzYC4pAVdBUk46IFRISVMgSVMgTk9UIEhBUkQgREVBRExJTkUuIE5vdCBhbGwgcmV3YXJkcyBoYXZlIHRvIGJlIGRpc3RyaWJ1dGVkIGluXQFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYC4gUmV3YXJkcyBhcmUgZGlzdHJpYnV0ZWQgYmFzZWQgb24gdGhlIHNpdHVhdGlvbiBpbiB0aGUgeWllbGRhAWZhcm1zIGFuZCBjYW4gYmUgZGlzdHJpYnV0ZWQgaW4gYSBsb25nZXIgdGltZSBmcmFtZSBidXQgbmV2ZXIgaW4gdGhlIHNob3J0ZXIgdGltZSBmcmFtZS5ZAS0gYGJsb2Nrc19wZXJfcGVyaW9kYDogIG51bWJlciBvZiBibG9ja3MgaW4gYSBzaW5nbGUgcGVyaW9kLiBNaW4uIG51bWJlciBvZiBibG9ja3MgcGVyMHBlcmlvZCBpcyAxLmUBLSBgaW5jZW50aXZpemVkX2Fzc2V0YDogYXNzZXQgdG8gYmUgaW5jZW50aXZpemVkIGluIFhZSyBwb29scy4gQWxsIHlpZWxkIGZhcm1zIGFkZGVkIGludG8RAWxpcS4gbWluaW5nIHByb2dyYW0gaGF2ZSB0byBoYXZlIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGluIHRoZWlyIHBhaXIuwC0gYHJld2FyZF9jdXJyZW5jeWA6IHBheW9mZiBjdXJyZW5jeSBvZiByZXdhcmRzLpQtIGBvd25lcmA6IGxpcS4gbWluaW5nIHByb2dyYW0gb3duZXIuOQEtIGB5aWVsZF9wZXJfcGVyaW9kYDogcGVyY2VudGFnZSByZXR1cm4gb24gYHJld2FyZF9jdXJyZW5jeWAgb2YgYWxsIGZhcm1zIHAuYS4JAS0gYG1pbl9kZXBvc2l0YDogbWluaW11bSBhbW91bnQgd2hpY2ggY2FuIGJlIGRlcG9zaXRlZCB0byB0aGUgZmFybVQtIGBwcmljZV9hZGp1c3RtZW50YDrARW1pdHMgYEdsb2JhbEZhcm1DcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuSHVwZGF0ZV9nbG9iYWxfZmFybQgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAABKJxVcGRhdGUgZ2xvYmFsIGZhcm0ncyBwcmljZXMgYWRqdXN0bWVudC4AqE9ubHkgZmFybSdzIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7MLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiB0aGUgZ2xvYmFsIGZhcm0gdG8gdXBkYXRl0C0gYHByaWNlX2FkanVzdG1lbnRgOiBuZXcgdmFsdWUgZm9yIHByaWNlIGFkanVzdG1lbnQAwEVtaXRzIGBHbG9iYWxGYXJtVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlR0ZXJtaW5hdGVfZ2xvYmFsX2Zhcm0EAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACLJxUZXJtaW5hdGUgZXhpc3RpbmcgbGlxLiBtaW5pbmcgcHJvZ3JhbS4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4A0QFXQVJOOiBUbyBzdWNjZXNzZnVsbHkgdGVybWluYXRlIGEgZmFybSwgZmFybSBoYXZlIHRvIGJlIGVtcHR5KGFsbCB5aWVsZCBmYXJtcyBpbiBoZSBnbG9iYWwgZmFybSBtdXN0IGJlIHRlcm1pbmF0ZWQpLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7cLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byBiZSB0ZXJtaW5hdGVkLgDMRW1pdHMgYEdsb2JhbEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuRGNyZWF0ZV95aWVsZF9mYXJtEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AA0i8QWRkIHlpZWxkIGZhcm0gZm9yIGdpdmVuIGBhc3NldF9wYWlyYCBYWUsgcG9vbC4EIKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uAFUBT25seSBYWUtzIHdpdGggYGFzc2V0X3BhaXJgIHdpdGggYGluY2VudGl2aXplZF9hc3NldGAgY2FuIGJlIGFkZGVkIGludG8gdGhlIGZhcm0uIFhZSxUBcG9vbCBmb3IgYGFzc2V0X3BhaXJgIGhhcyB0byBleGlzdCB0byBzdWNjZXNzZnVsbHkgY3JlYXRlIHlpZWxkIGZhcm0uIQFZaWVsZCBmYXJtIGZvciBzYW1lIGBhc3NldF9wYWlyYCBjYW4gZXhpc3Qgb25seSBvbmNlIGluIHRoZSBnbG9iYWwgZmFybS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuAQEtIGBmYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgdG8gd2hpY2ggYSB5aWVsZCBmYXJtIHdpbGwgYmUgYWRkZWQuXQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtLiBMaXEuIG1pbmluZyB3aWxsIGJlIGFsbG93ZWQgZm9yIHRoaXMxAWBhc3NldF9wYWlyYCBhbmQgb25lIG9mIHRoZSBhc3NldHMgaW4gdGhlIHBhaXIgbXVzdCBiZSBgaW5jZW50aXZpemVkX2Fzc2V0YC6YLSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0gbXVsdGlwbGllci5dAS0gYGxveWFsdHlfY3VydmVgOiBjdXJ2ZSB0byBjYWxjdWxhdGUgbG95YWx0eSBtdWx0aXBsaWVyIHRvIGRpc3RyaWJ1dGUgcmV3YXJkcyB0byB1c2Vyc+B3aXRoIHRpbWUgaW5jZW50aXZlLiBgTm9uZWAgbWVhbnMgbm8gbG95YWx0eSBtdWx0aXBsaWVyLgC8RW1pdHMgYFlpZWxkRmFybUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EdXBkYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABKGFzc2V0X3BhaXIxBAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAQsdFVwZGF0ZSB5aWVsZCBmYXJtIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLqgtIGBtdWx0aXBsaWVyYDogbmV3IHlpZWxkIGZhcm0gbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHN0b3BfeWllbGRfZmFybQgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEoYXNzZXRfcGFpcjEEASRBc3NldFBhaXIABTykU3RvcCBsaXEuIG1pbWluZyBmb3Igc3BlY2lmaWMgeWllbGQgZmFybS4ANQFUaGlzIGZ1bmN0aW9uIGNsYWltcyByZXdhcmRzIGZyb20gYEdsb2JhbEZhcm1gIGxhc3QgdGltZSBhbmQgc3RvcHMgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uQQFgZGVwb3NpdF9zaGFyZXMoKWAgYW5kIGBjbGFpbV9yZXdhcmRzKClgIGFyZSBub3QgYWxsb3dlZCBvbiBjYW5jZWxlZCB5aWVsZCBmYXJtLgQgoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuBQEtIGBnbG9iYWxfZmFybV9pZGA6IGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIGNhbmNlbGVkLvgtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBmYXJtLgC8RW1pdHMgYFlpZWxkRmFybVN0b3BwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EcmVzdW1lX3lpZWxkX2Zhcm0QAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGFzc2V0X3BhaXIxBAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAZEpFJlc3VtZSB5aWVsZCBmYXJtIGZvciBzdG9wcGVkIHlpZWxkIGZhcm0uAFUBVGhpcyBmdW5jdGlvbiByZXN1bWUgaW5jZW50aXZpemF0aW9uIGZyb20gYEdsb2JhbEZhcm1gIGFuZCByZXN0b3JlIGZ1bGwgZnVuY3Rpb25hbGl0eSEBZm9yIHlpZWxkIGZhcm0uIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBkZXBvc2l0LCBjbGFpbSBhbmQgd2l0aGRyYXcgYWdhaW4uAORXQVJOOiBZaWVsZCBmYXJtIGlzIE5PVCByZXdhcmRlZCBmb3IgdGltZSBpdCB3YXMgc3RvcHBlZC4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIGluIHdoaWNoIHlpZWxkIGZhcm0gd2lsbCBiZSByZXN1bWVkLsgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgeWllbGQgZmFybSB0byBiZSByZXN1bWVkLgUBLSBgYXNzZXRfcGFpcmA6IGFzc2V0IHBhaXIgaWRlbnRpZnlpbmcgeWllbGQgZmFybSBpbiBnbG9iYWwgZmFybS7ILSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0gbXVsdGlwbGllciBpbiB0aGUgZmFybS4AvEVtaXRzIGBZaWVsZEZhcm1SZXN1bWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuUHRlcm1pbmF0ZV95aWVsZF9mYXJtDAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgAHTERSZW1vdmUgeWllbGQgZmFybQCBAVRoaXMgZnVuY3Rpb24gbWFya3MgYSB5aWVsZCBmYXJtIGFzIHJlYWR5IHRvIGJlIHJlbW92ZWQgZnJvbSBzdG9yYWdlIHdoZW4gaXQncyBlbXB0eS4gVXNlcnMgd2lsbGUBYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3IHNoYXJlcyh3aXRob3V0IGNsYWltaW5nIHJld2FyZHMgZnJvbSB5aWVsZCBmYXJtKS4gVW5wYWlkIHJld2FyZHNxAXdpbGwgYmUgdHJhbnNmZXJyZWQgYmFjayB0byBnbG9iYWwgZmFybSBhbmQgd2lsbCBiZSB1c2VkIHRvIGRpc3RyaWJ1dGUgdG8gb3RoZXIgeWllbGQgZmFybXMuAOBZaWVsZCBmYXJtIG11c3QgYmUgc3RvcHBlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgBxAU9ubHkgZ2xvYmFsIGZhcm0ncyBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4gWWllbGQgZmFybSBzdGF5cyBpbiB0aGUgc3RvcmFnZSB1bnRpbCBpdCdzbQFlbXB0eShhbGwgZmFybSBlbnRyaWVzIGFyZSB3aXRoZHJhd24pLiBMYXN0IHdpdGhkcmF3biBmcm9tIHlpZWxkIGZhcm0gdHJpZ2dlciByZW1vdmluZyBmcm9tMHRoZSBzdG9yYWdlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZmFybSBpZCBmcm9tIHdoaWNoIHlpZWxkIGZhcm0gc2hvdWxkIGJlIHRlcm1pbmF0ZWQu1C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGJlIHRlcm1pbmF0ZWQuFQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS4AyEVtaXRzIGBZaWVsZEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuOGRlcG9zaXRfc2hhcmVzEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgABNHNoYXJlc19hbW91bnRAARxCYWxhbmNlAAg4jERlcG9zaXQgTFAgc2hhcmVzIHRvIGEgbGlxLiBtaW5pbmcuAFEBVGhpcyBmdW5jdGlvbiB0cmFuc2ZlcnMgTFAgc2hhcmVzIGZyb20gYG9yaWdpbmAgdG8gcGFsbGV0J3MgYWNjb3VudCBhbmQgbWludCBuZnQgZm9yDQFgb3JpZ2luYCBhY2NvdW50LiBNaW50ZWQgbmZ0IHJlcHJlc2VudHMgZGVwb3NpdCBpbiB0aGUgbGlxLiBtaW5pbmcuACxQYXJhbWV0ZXJzOi0BLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0dGBzaGFyZXNfYW1vdW50YCBvZiBMUCBzaGFyZXMuPQEtIGBnbG9iYWxfZmFybV9pZGA6IGlkIG9mIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gZGVwb3NpdCBMUCBzaGFyZXMuyC0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGRlcG9zaXQgdG8uHQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyBMUCBzaGFyZXMgdXNlciB3YW50cyB0byBkZXBvc2l0LvQtIGBzaGFyZXNfYW1vdW50YDogYW1vdW50IG9mIExQIHNoYXJlcyB1c2VyIHdhbnRzIHRvIGRlcG9zaXQuALhFbWl0cyBgU2hhcmVzRGVwb3NpdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuKGpvaW5fZmFybXMMATBmYXJtX2VudHJpZXM1BAERAUJvdW5kZWRWZWM8KEdsb2JhbEZhcm1JZCwgWWllbGRGYXJtSWQpLCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AAEoYXNzZXRfcGFpcjEEASRBc3NldFBhaXIAATRzaGFyZXNfYW1vdW50QAEcQmFsYW5jZQAMNLRKb2luIG11bHRpcGxlIGZhcm1zIHdpdGggYSBnaXZlbiBzaGFyZSBhbW91bnQA/FRoZSBzaGFyZSBpcyBkZXBvc2l0ZWQgdG8gdGhlIGZpcnN0IGZhcm0gb2YgdGhlIHNwZWNpZmllZCBmYW1zLNBhbmQgdGhlbiByZWRlcG9zaXQgdGhlIHNoYXJlcyB0byB0aGUgcmVtYWluaW5nIGZhcm1zACxQYXJhbWV0ZXJzOi0BLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IQEtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGdsb2JhbCBmYXJtIGlkIGFuZCB5aWVsZCBmYXJtIGlkIHBhaXJzIHRvIGpvaW4dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIExQIHNoYXJlcyB1c2VyIHdhbnRzIHRvIGRlcG9zaXQu9C0gYHNoYXJlc19hbW91bnRgOiBhbW91bnQgb2YgTFAgc2hhcmVzIHVzZXIgd2FudHMgdG8gZGVwb3NpdC4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVwYWRkX2xpcXVpZGl0eV9hbmRfam9pbl9mYXJtcxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABHEJhbGFuY2UAAUhhbW91bnRfYl9tYXhfbGltaXRAARxCYWxhbmNlAAEwZmFybV9lbnRyaWVzNQQBEQFCb3VuZGVkVmVjPChHbG9iYWxGYXJtSWQsIFlpZWxkRmFybUlkKSwgVDo6TWF4RmFybUVudHJpZXNQZXJEZXBvc2l0PgANPC0BQWRkIGxpcXVpZGl0eSB0byBYWUsgcG9vbCBhbmQgam9pbiBtdWx0aXBsZSBmYXJtcyB3aXRoIGEgZ2l2ZW4gc2hhcmUgYW1vdW50AAkBVGhlIHNoYXJlIGlzIGRlcG9zaXRlZCB0byB0aGUgZmlyc3QgZmFybSBvZiB0aGUgc3BlY2lmaWVkIGVudHJpZXMs0GFuZCB0aGVuIHJlZGVwb3NpdCB0aGUgc2hhcmVzIHRvIHRoZSByZW1haW5pbmcgZmFybXMALFBhcmFtZXRlcnM6LQEtIGBvcmlnaW5gOiBhY2NvdW50IGRlcG9zaXRpbmcgTFAgc2hhcmVzLiBUaGlzIGFjY291bnQgaGFzIHRvIGhhdmUgYXQgbGVhc3TQLSBgYXNzZXRfYWA6IGFzc2V0IGlkIG9mIHRoZSBmaXJzdCBhc3NldCBpbiB0aGUgcGFpctQtIGBhc3NldF9iYDogYXNzZXQgaWQgb2YgdGhlIHNlY29uZCBhc3NldCBpbiB0aGUgcGFpcsgtIGBhbW91bnRfYWA6IGFtb3VudCBvZiB0aGUgZmlyc3QgYXNzZXQgdG8gZGVwb3NpdBUBLSBgYW1vdW50X2JfbWF4X2xpbWl0YDogbWF4aW11bSBhbW91bnQgb2YgdGhlIHNlY29uZCBhc3NldCB0byBkZXBvc2l0IQEtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGdsb2JhbCBmYXJtIGlkIGFuZCB5aWVsZCBmYXJtIGlkIHBhaXJzIHRvIGpvaW4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVAcmVkZXBvc2l0X3NoYXJlcxABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpcjEEASRBc3NldFBhaXIAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAk85FJlZGVwb3NpdCBhbHJlYWR5IGxvY2tlZCBMUCBzaGFyZXMgdG8gYW5vdGhlciB5aWVsZCBmYXJtLgBlAVRoaXMgZnVuY3Rpb24gY3JlYXRlIHlpZWxkIGZhcm0gZW50cnkgZm9yIGV4aXN0aW5nIGRlcG9zaXQuIExQIHNoYXJlcyBhcmUgbm90IHRyYW5zZmVycmVk1GFuZCBhbW91bnQgb2YgTFAgc2hhcmVzIGlzIGJhc2VkIG9uIGV4aXN0aW5nIGRlcG9zaXQuAKRUaGlzIGZ1bmN0aW9uIERPRVNOJ1QgY3JlYXRlIG5ldyBkZXBvc2l0LgAsUGFyYW1ldGVyczoxAS0gYG9yaWdpbmA6IGFjY291bnQgZGVwb3NpdGluZyBMUCBzaGFyZXMuIFRoaXMgYWNjb3VudCBoYXZlIHRvIGhhdmUgYXQgbGVhc3SsLSBgZ2xvYmFsX2Zhcm1faWRgOiBnbG9iYWwgZmFybSBpZGVudGlmaWVyLuQtIGB5aWVsZF9mYXJtX2lkYDogeWllbGQgZmFybSBpZGVudGlmaWVyIHJlZGVwb3NpdGluZyB0by4ZAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIExQIHNoYXJlcyB1c2VyIHdhbnQgdG8gZGVwb3NpdC6oLSBgZGVwb3NpdF9pZGA6IGlkZW50aWZpZXIgb2YgdGhlIGRlcG9zaXQuAMBFbWl0cyBgU2hhcmVzUmVkZXBvc2l0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40Y2xhaW1fcmV3YXJkcwgBKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQACiwNAUNsYWltIHJld2FyZHMgZnJvbSBsaXEuIG1pbmluZyBmb3IgZGVwb3NpdCByZXByZXNlbnRlZCBieSBgbmZ0X2lkYC4AWQFUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZSB1c2VyIHJld2FyZHMgZnJvbSBsaXEuIG1pbmluZyBhbmQgdHJhbnNmZXIgcmV3YXJkcyB0byBgb3JpZ2luYOhhY2NvdW50LiBDbGFpbWluZyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgYWxsb3dlZCBvbmx5IG9uY2UuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS78LSBgeWllbGRfZmFybV9pZGA6IHlpZWxkIGZhcm0gaWRlbnRpZmllciB0byBjbGFpbSByZXdhcmRzIGZyb20uALBFbWl0cyBgUmV3YXJkQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjx3aXRoZHJhd19zaGFyZXMMAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpcjEEASRBc3NldFBhaXIAC1gVAVdpdGhkcmF3IExQIHNoYXJlcyBmcm9tIGxpcS4gbWluaW5nIHdpdGggcmV3YXJkIGNsYWltaW5nIGlmIHBvc3NpYmxlLgAVAUxpc3Qgb2YgcG9zc2libGUgY2FzZXMgb2YgdHJhbnNmZXJzIG9mIExQIHNoYXJlcyBhbmQgY2xhaW1lZCByZXdhcmRzOgBRASogeWllbGQgZmFybSBpcyBhY3RpdmUoeWllbGQgZmFybSBpcyBub3Qgc3RvcHBlZCkgLSBjbGFpbSBhbmQgdHJhbnNmZXIgcmV3YXJkcyhpZiBpdNh3YXNuJ3QgY2xhaW1lZCBpbiB0aGlzIHBlcmlvZCkgYW5kIHRyYW5zZmVyIExQIHNoYXJlcy7sKiBsaXEuIG1pbmluZyBpcyBzdG9wcGVkIC0gY2xhaW0gYW5kIHRyYW5zZmVyIHJld2FyZHMoaWYgaXTYd2Fzbid0IGNsYWltZWQgaW4gdGhpcyBwZXJpb2QpIGFuZCB0cmFuc2ZlciBMUCBzaGFyZXMuBQEqIHlpZWxkIGZhcm0gd2FzIHRlcm1pbmF0ZWQgLSBvbmx5IExQIHNoYXJlcyB3aWxsIGJlIHRyYW5zZmVycmVkLuwqIGZhcm0gd2FzIHRlcm1pbmF0ZWQgLSBvbmx5IExQIHNoYXJlcyB3aWxsIGJlIHRyYW5zZmVycmVkLgA1AVVzZXIncyB1bmNsYWltYWJsZSByZXdhcmRzIHdpbGwgYmUgdHJhbnNmZXJyZWQgYmFjayB0byBnbG9iYWwgZmFybSdzIGFjY291bnQuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS4FAS0gYHlpZWxkX2Zhcm1faWRgOiB5aWVsZCBmYXJtIGlkZW50aWZpZXIgdG8gZGl0aGRyYXcgc2hhcmVzIGZyb20uBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLgAYRW1pdHM6hCogYFJld2FyZENsYWltZWRgIGlmIGNsYWltIGhhcHBlbqQqIGBTaGFyZXNXaXRoZHJhd25gIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bChleGl0X2Zhcm1zDAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABKGFzc2V0X3BhaXIxBAEkQXNzZXRQYWlyAAEwZmFybV9lbnRyaWVzOQQB0EJvdW5kZWRWZWM8WWllbGRGYXJtSWQsIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4ADkCMRXhpdCBmcm9tIGFsbCBzcGVjaWZpZWQgeWllbGQgZmFybXMAXQFUaGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byB3aXRoZHJhdyBzaGFyZXMgYW5kIGNsYWltIHJld2FyZHMgKGlmIGF2YWlsYWJsZSkgZnJvbSBhbGyoc3BlY2lmaWVkIHlpZWxkIGZhcm1zIGZvciBhIGdpdmVuIGRlcG9zaXQuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS4dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0ocykgaW4gZ2xvYmFsIGZhcm0ocyku2C0gYGZhcm1fZW50cmllc2A6IGlkKHMpIG9mIHlpZWxkIGZhcm0ocykgdG8gZXhpdCBmcm9tLgAYRW1pdHM6rCogYFJld2FyZENsYWltZWRgIGZvciBlYWNoIHN1Y2Nlc3NmdWwgY2xhaW3IKiBgU2hhcmVzV2l0aGRyYXduYCBmb3IgZWFjaCBzdWNjZXNzZnVsIHdpdGhkcmF3YWzYKiBgRGVwb3NpdERlc3Ryb3llZGAgaWYgdGhlIGRlcG9zaXQgaXMgZnVsbHkgd2l0aGRyYXduAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4xBAwocGFsbGV0X3h5axR0eXBlcyRBc3NldFBhaXIAAAgBIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAADUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBqQIEUwAABACtAgEYVmVjPFQ+AAA5BAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AAA9BAxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0EENhbGwIBFQABEkAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuQQQMWHBhbGxldF9yZWxheWNoYWluX2luZm8YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQQMKHBhbGxldF9kY2EYcGFsbGV0EENhbGwEBFQAAQwgc2NoZWR1bGUIASBzY2hlZHVsZUkEAdRTY2hlZHVsZTxUOjpBY2NvdW50SWQsIFQ6OkFzc2V0SWQsIEJsb2NrTnVtYmVyRm9yPFQ+PgABVHN0YXJ0X2V4ZWN1dGlvbl9ibG9ja3QBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAGQ9AUNyZWF0ZXMgYSBuZXcgRENBIChEb2xsYXItQ29zdCBBdmVyYWdpbmcpIHNjaGVkdWxlIGFuZCBwbGFucyB0aGUgbmV4dCBleGVjdXRpb25gZm9yIHRoZSBzcGVjaWZpZWQgYmxvY2suAC0BSWYgdGhlIGJsb2NrIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBleGVjdXRpb24gaXMgcGxhbm5lZCBmb3IgdGhlIG5leHQgYmxvY2suSQFJZiB0aGUgZ2l2ZW4gYmxvY2sgaXMgZnVsbCwgdGhlIGV4ZWN1dGlvbiB3aWxsIGJlIHBsYW5uZWQgaW4gdGhlIHN1YnNlcXVlbnQgYmxvY2suAFEBT25jZSB0aGUgc2NoZWR1bGUgaXMgY3JlYXRlZCwgdGhlIHNwZWNpZmllZCBgdG90YWxfYW1vdW50YCB3aWxsIGJlIHJlc2VydmVkIGZvciBEQ0EuHQFUaGUgcmVzZXJ2YXRpb24gY3VycmVuY3kgd2lsbCBiZSB0aGUgYGFtb3VudF9pbmAgY3VycmVuY3kgb2YgdGhlIG9yZGVyLgDgVHJhZGVzIGFyZSBleGVjdXRlZCBhcyBsb25nIGFzIHRoZXJlIGlzIGJ1ZGdldCByZW1haW5pbmdNAWZyb20gdGhlIGluaXRpYWwgYHRvdGFsX2Ftb3VudGAgYWxsb2NhdGlvbiwgdW5sZXNzIGB0b3RhbF9hbW91bnRgIGlzIDAsIHRoZW4gdHJhZGVzqGFyZSBleGVjdXRlZCB1bnRpbCBzY2hlZHVsZSBpcyB0ZXJtaW5hdGVkLgBVAUlmIGEgdHJhZGUgZmFpbHMgZHVlIHRvIHNsaXBwYWdlIGxpbWl0IG9yIHByaWNlIHN0YWJpbGl0eSBlcnJvcnMsIGl0IHdpbGwgYmUgcmV0cmllZC7USWYgdGhlIG51bWJlciBvZiByZXRyaWVzIHJlYWNoZXMgdGhlIG1heGltdW0gYWxsb3dlZCywdGhlIHNjaGVkdWxlIHdpbGwgYmUgdGVybWluYXRlZCBwZXJtYW5lbnRseS74SW4gdGhlIGNhc2Ugb2YgYSBzdWNjZXNzZnVsIHRyYWRlLCB0aGUgcmV0cnkgY291bnRlciBpcyByZXNldC4ALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IHNjaGVkdWxlIG93bmVyeC0gYHNjaGVkdWxlYDogc2NoZWR1bGUgZGV0YWlscykBLSBgc3RhcnRfZXhlY3V0aW9uX2Jsb2NrYDogZmlyc3QgcG9zc2libGUgZXhlY3V0aW9uIGJsb2NrIGZvciB0aGUgc2NoZWR1bGUA/EVtaXRzIGBTY2hlZHVsZWRgIGFuZCBgRXhlY3V0aW9uUGxhbm5lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAkdGVybWluYXRlCAEsc2NoZWR1bGVfaWQoAShTY2hlZHVsZUlkAAFQbmV4dF9leGVjdXRpb25fYmxvY2t0AWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAEsCQFUZXJtaW5hdGVzIGEgRENBIHNjaGVkdWxlIGFuZCByZW1vdmUgaXQgY29tcGxldGVseSBmcm9tIHRoZSBjaGFpbi4AQQFUaGlzIGNhbiBiZSBjYWxsZWQgYnkgYm90aCBzY2hlZHVsZSBvd25lciBvciB0aGUgY29uZmlndXJlZCBgVDo6VGVybWluYXRlT3JpZ2luYAAsUGFyYW1ldGVyczpoLSBgb3JpZ2luYDogc2NoZWR1bGUgb3duZXJwLSBgc2NoZWR1bGVfaWRgOiBzY2hlZHVsZSBpZBUBLSBgbmV4dF9leGVjdXRpb25fYmxvY2tgOiBibG9jayBudW1iZXIgd2hlcmUgdGhlIHNjaGVkdWxlIGlzIHBsYW5uZWQuAKRFbWl0cyBgVGVybWluYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA8dW5sb2NrX3Jlc2VydmVzCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAI0XQFVbmxvY2tzIERDQSByZXNlcnZlcyBvZiBwcm92aWRlZCBhc3NldCBmb3IgdGhlIGNhbGxlciBpZiB0aGV5IGhhdmUgbm8gYWN0aXZlIHNjaGVkdWxlcy4ANQFUaGlzIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBoZWxwIHVzZXJzIHJlY292ZXIgdGhlaXIgcmVzZXJ2ZWQgZnVuZHMgaW4gY2FzZfRhIERDQSBzY2hlZHVsZSB3YXMgdGVybWluYXRlZCBidXQgbGVmdCBzb21lIHJlc2VydmVkIGFtb3VudHMuAAkBVGhpcyBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgdXNlciBoYXMgbm8gYWN0aXZlIERDQSBzY2hlZHVsZXMuACxQYXJhbWV0ZXJzOvwtIGBvcmlnaW5gOiBUaGUgYWNjb3VudCB0byB1bmxvY2sgcmVzZXJ2ZXMgZm9yIChtdXN0IGJlIHNpZ25lZCkFAS0gYGFzc2V0X2lkYDogVGhlIGFzc2V0IElEIGZvciB3aGljaCByZXNlcnZlcyBzaG91bGQgYmUgdW5sb2NrZWQuALhFbWl0cyBgUmVzZXJ2ZVVubG9ja2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5JBAwocGFsbGV0X2RjYRR0eXBlcyBTY2hlZHVsZQwkQWNjb3VudElkAQAcQXNzZXRJZAEoLEJsb2NrTnVtYmVyASgAHAEUb3duZXIAASRBY2NvdW50SWQAARhwZXJpb2QoASxCbG9ja051bWJlcgABMHRvdGFsX2Ftb3VudEABHEJhbGFuY2UAASxtYXhfcmV0cmllc1ECAShPcHRpb248dTg+AAFMc3RhYmlsaXR5X3RocmVzaG9sZF0DATxPcHRpb248UGVybWlsbD4AASBzbGlwcGFnZV0DATxPcHRpb248UGVybWlsbD4AARRvcmRlck0EAThPcmRlcjxBc3NldElkPgAATQQMKHBhbGxldF9kY2EUdHlwZXMUT3JkZXIEHEFzc2V0SWQBKAEIEFNlbGwUASBhc3NldF9pbigBHEFzc2V0SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABOG1pbl9hbW91bnRfb3V0QAEcQmFsYW5jZQABFHJvdXRl5QIB6EJvdW5kZWRWZWM8VHJhZGU8QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9OVU1CRVJfT0ZfVFJBREVTPj4AAAAMQnV5FAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABKGFtb3VudF9vdXRAARxCYWxhbmNlAAE0bWF4X2Ftb3VudF9pbkABHEJhbGFuY2UAARRyb3V0ZeUCAehCb3VuZGVkVmVjPFRyYWRlPEFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfTlVNQkVSX09GX1RSQURFUz4+AAEAAFEEDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBBDYWxsBARUAAEoIHNjaGVkdWxlEAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPRAgGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAARwQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrLhhjYW5jZWwIARB3aGVuKAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleCgBDHUzMgABBJRDYW5jZWwgYW4gYW5vbnltb3VzbHkgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX25hbWVkFAEIaWQEASBUYXNrTmFtZQABEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj0QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAIEWFNjaGVkdWxlIGEgbmFtZWQgdGFzay4wY2FuY2VsX25hbWVkBAEIaWQEASBUYXNrTmFtZQADBHhDYW5jZWwgYSBuYW1lZCBzY2hlZHVsZWQgdGFzay44c2NoZWR1bGVfYWZ0ZXIQARRhZnRlcigBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPRAgGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABASoQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrIGFmdGVyIGEgZGVsYXkuUHNjaGVkdWxlX25hbWVkX2FmdGVyFAEIaWQEASBUYXNrTmFtZQABFGFmdGVyKAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY9ECAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAFBJBTY2hlZHVsZSBhIG5hbWVkIHRhc2sgYWZ0ZXIgYSBkZWxheS4kc2V0X3JldHJ5DAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AARxyZXRyaWVzCAEIdTgAARhwZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgAGMFkBU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0IHdpbGxVAWJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwgaXQkc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjxzZXRfcmV0cnlfbmFtZWQMAQhpZAQBIFRhc2tOYW1lAAEccmV0cmllcwgBCHU4AAEYcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4ABzBdAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgbmFtZWQgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdF0Bd2lsbCBiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsMGl0IHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC4wY2FuY2VsX3JldHJ5BAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4ACASoUmVtb3ZlcyB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIHRhc2suSGNhbmNlbF9yZXRyeV9uYW1lZAQBCGlkBAEgVGFza05hbWUACQS8Q2FuY2VsIHRoZSByZXRyeSBjb25maWd1cmF0aW9uIG9mIGEgbmFtZWQgdGFzay4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuVQQMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAAQhMc2V0X3ZhbGlkYXRpb25fZGF0YQQBEGRhdGFZBAFUUGFyYWNoYWluSW5oZXJlbnREYXRhAAAkgFNldCB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGRhdGEuAEEBVGhpcyBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb26IcGhhc2UgaWYgdGhlIGNhbGwgd2FzIG5vdCBpbnZva2VkLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYEluaGVyZW50YAAhAUFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gdXBncmFkZXMgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBmdW5jdGlvboRpZiB0aGUgYXBwcm9wcmlhdGUgdGltZSBoYXMgY29tZS5gc3Vkb19zZW5kX3Vwd2FyZF9tZXNzYWdlBAEcbWVzc2FnZRQBNFVwd2FyZE1lc3NhZ2UAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuWQQIlGN1bXVsdXNfcHJpbWl0aXZlc19wYXJhY2hhaW5faW5oZXJlbnRUUGFyYWNoYWluSW5oZXJlbnREYXRhAAAYATx2YWxpZGF0aW9uX2RhdGFdBAFcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEAAURyZWxheV9jaGFpbl9zdGF0ZWUEAVRzcF90cmllOjpTdG9yYWdlUHJvb2YAAURkb3dud2FyZF9tZXNzYWdlc20EAWxWZWM8SW5ib3VuZERvd253YXJkTWVzc2FnZT4AAUxob3Jpem9udGFsX21lc3NhZ2VzdQQBpEJUcmVlTWFwPFBhcmFJZCwgVmVjPEluYm91bmRIcm1wTWVzc2FnZT4+AAFgcmVsYXlfcGFyZW50X2Rlc2NlbmRhbnRziQQBQFZlYzxSZWxheUhlYWRlcj4AAUBjb2xsYXRvcl9wZWVyX2lknQQBWE9wdGlvbjxBcHByb3ZlZFBlZXJJZD4AAF0EDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4XFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhCARIASwETgEoABABLHBhcmVudF9oZWFkYQQBIEhlYWREYXRhAAFMcmVsYXlfcGFyZW50X251bWJlcigBBE4AAWRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290LAEESAABMG1heF9wb3Zfc2l6ZSgBDHUzMgAAYQQMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXMgSGVhZERhdGEAAAQAFAEcVmVjPHU4PgAAZQQMHHNwX3RyaWU0c3RvcmFnZV9wcm9vZjBTdG9yYWdlUHJvb2YAAAQBKHRyaWVfbm9kZXNpBAFEQlRyZWVTZXQ8VmVjPHU4Pj4AAGkEBCBCVHJlZVNldAQEVAEUAAQAJAAAAG0EAAACcQQAcQQIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc1hJbmJvdW5kRG93bndhcmRNZXNzYWdlBCxCbG9ja051bWJlcgEoAAgBHHNlbnRfYXQoASxCbG9ja051bWJlcgABDG1zZxQBPERvd253YXJkTWVzc2FnZQAAdQQEIEJUcmVlTWFwCARLAeAEVgF5BAAEAIEEAAAAeQQAAAJ9BAB9BAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBKAAIARxzZW50X2F0KAEsQmxvY2tOdW1iZXIAARBkYXRhFAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAAgQQAAAKFBACFBAAABAjgeQQAiQQAAAKNBACNBBAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgEoEEhhc2gAABQBLHBhcmVudF9oYXNoLAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVybAEYTnVtYmVyAAEoc3RhdGVfcm9vdCwBMEhhc2g6Ok91dHB1dAABPGV4dHJpbnNpY3Nfcm9vdCwBMEhhc2g6Ok91dHB1dAABGGRpZ2VzdJEEARhEaWdlc3QAAJEEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0GERpZ2VzdAAABAEQbG9nc5UEATxWZWM8RGlnZXN0SXRlbT4AAJUEAAACmQQAmQQQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QoRGlnZXN0SXRlbQABFChQcmVSdW50aW1lCAC4AURDb25zZW5zdXNFbmdpbmVJZAAAFAEcVmVjPHU4PgAGACRDb25zZW5zdXMIALgBRENvbnNlbnN1c0VuZ2luZUlkAAAUARxWZWM8dTg+AAQAEFNlYWwIALgBRENvbnNlbnN1c0VuZ2luZUlkAAAUARxWZWM8dTg+AAUAFE90aGVyBAAUARxWZWM8dTg+AAAAZFJ1bnRpbWVFbnZpcm9ubWVudFVwZGF0ZWQACAAAnQQEGE9wdGlvbgQEVAGBAwEIEE5vbmUAAAAQU29tZQQAgQMAAAEAAKEEDFhzdGFnaW5nX3BhcmFjaGFpbl9pbmZvGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqUEDChwYWxsZXRfeGNtGHBhbGxldBBDYWxsBARUAAFEEHNlbmQIARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxtZXNzYWdl9QQBVEJveDxWZXJzaW9uZWRYY208KCk+PgAAADx0ZWxlcG9ydF9hc3NldHMQARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeakEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzLQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAAUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAB0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZWggIGZlZSBvbiB0aGUgYGRlc3RgIGNoYWluLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLlxyZXNlcnZlX3RyYW5zZmVyX2Fzc2V0cxABEGRlc3SpBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHMtBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbSgBDHUzMgACeF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWwseGRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLgA9AWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gYW5kIG1heSBub3QgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC5NASAtIGBhc3NldHNgIGhhdmUgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5VASAtIGBhc3NldHNgIGhhdmUgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLmEBIC0gYGFzc2V0c2AgaGF2ZSByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZWEBICAgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YPQgICB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuAD0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuHGV4ZWN1dGUIARxtZXNzYWdlMQYBtEJveDxWZXJzaW9uZWRYY208PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+PgABKG1heF93ZWlnaHTkARhXZWlnaHQAAyDQRXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSBmcm9tIGEgbG9jYWwsIHNpZ25lZCwgb3JpZ2luLgBNAUFuIGV2ZW50IGlzIGRlcG9zaXRlZCBpbmRpY2F0aW5nIHdoZXRoZXIgYG1zZ2AgY291bGQgYmUgZXhlY3V0ZWQgY29tcGxldGVseSBvciBvbmx5KHBhcnRpYWxseS4AXQFObyBtb3JlIHRoYW4gYG1heF93ZWlnaHRgIHdpbGwgYmUgdXNlZCBpbiBpdHMgYXR0ZW1wdGVkIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBsZXNzIHRoYW5BAXRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgdGhhdCB0aGUgbWVzc2FnZSBjb3VsZCB0YWtlIHRvIGJlIGV4ZWN1dGVkLCB0aGVuIG5vfGV4ZWN1dGlvbiBhdHRlbXB0IHdpbGwgYmUgbWFkZS5EZm9yY2VfeGNtX3ZlcnNpb24IASBsb2NhdGlvbpwBNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uKAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb250AUhPcHRpb248WGNtVmVyc2lvbj4ABRRZAVNldCBhIHNhZmUgWENNIHZlcnNpb24gKHRoZSB2ZXJzaW9uIHRoYXQgWENNIHNob3VsZCBiZSBlbmNvZGVkIHdpdGggaWYgdGhlIG1vc3QgcmVjZW50tHZlcnNpb24gYSBkZXN0aW5hdGlvbiBjYW4gYWNjZXB0IGlzIHVua25vd24pLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLjkBLSBgbWF5YmVfeGNtX3ZlcnNpb25gOiBUaGUgZGVmYXVsdCBYQ00gZW5jb2RpbmcgdmVyc2lvbiwgb3IgYE5vbmVgIHRvIGRpc2FibGUueGZvcmNlX3N1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9uqQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABhA5AUFzayBhIGxvY2F0aW9uIHRvIG5vdGlmeSB1cyByZWdhcmRpbmcgdGhlaXIgWENNIHZlcnNpb24gYW5kIGFueSBjaGFuZ2VzIHRvIGl0LgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLlkBLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2Ugc2hvdWxkIHN1YnNjcmliZSBmb3IgWENNIHZlcnNpb24gbm90aWZpY2F0aW9ucy6AZm9yY2VfdW5zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbqkEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAcYSQFSZXF1aXJlIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIHNob3VsZCBubyBsb25nZXIgbm90aWZ5IHVzIHJlZ2FyZGluZyBhbnkgWENNQHZlcnNpb24gY2hhbmdlcy4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi49AS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgc3Vic2NyaWJlZCBmb3IgWENNIHZlcnNpb26oICBub3RpZmljYXRpb25zIHdoaWNoIHdlIG5vIGxvbmdlciBkZXNpcmUufGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMUARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeakEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzLQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAATB3ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQACHhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5cbGltaXRlZF90ZWxlcG9ydF9hc3NldHMUARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeakEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzLQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAATB3ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQACUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLkBmb3JjZV9zdXNwZW5zaW9uBAEkc3VzcGVuZGVkRAEQYm9vbAAKEPRTZXQgb3IgdW5zZXQgdGhlIGdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u0C0gYHN1c3BlbmRlZGA6IGB0cnVlYCB0byBzdXNwZW5kLCBgZmFsc2VgIHRvIHJlc3VtZS48dHJhbnNmZXJfYXNzZXRzFAEQZGVzdKkEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmpBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cy0GAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtKAEMdTMyAAEwd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0AAuEXQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCzQZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUsIG9yIHRocm91Z2ggdGVsZXBvcnRzLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZjUBaW5kZXggYGZlZV9hc3NldF9pdGVtYCAoaGVuY2UgcmVmZXJyZWQgdG8gYXMgYGZlZXNgKSwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3JBAWB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHQgaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhl3G9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AYQFgYXNzZXRzYCAoZXhjbHVkaW5nIGBmZWVzYCkgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBvciBvdGhlcndpc2UgYmUgdGVsZXBvcnRhYmxlsHRvIGBkZXN0YCwgbm8gbGltaXRhdGlvbnMgaW1wb3NlZCBvbiBgZmVlc2AuTQEgLSBmb3IgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uIGNoYWluIGFuZE0BICAgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG9EICAgYGJlbmVmaWNpYXJ5YC5hASAtIGZvciBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0byBgZGVzdGAgY2hhaW5ZASAgIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmQgZGVwb3NpdCB0aGVtUCAgIHRvIGBiZW5lZmljaWFyeWAuXQEgLSBmb3IgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXNdASAgIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGAgdG8gbWludNQgICBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlEBIC0gZm9yIHRlbGVwb3J0czogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0byBtaW50L3RlbGVwb3J0sCAgIGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4tAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgWDIoUGFyZW50LFUBICBQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBYMShQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZGggIGZyb20gcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLjBjbGFpbV9hc3NldHMIARhhc3NldHMtBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AASxiZW5lZmljaWFyeakEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAwYVQFDbGFpbXMgYXNzZXRzIHRyYXBwZWQgb24gdGhpcyBwYWxsZXQgYmVjYXVzZSBvZiBsZWZ0b3ZlciBhc3NldHMgZHVyaW5nIFhDTSBleGVjdXRpb24uAKwtIGBvcmlnaW5gOiBBbnlvbmUgY2FuIGNhbGwgdGhpcyBleHRyaW5zaWMuXQEtIGBhc3NldHNgOiBUaGUgZXhhY3QgYXNzZXRzIHRoYXQgd2VyZSB0cmFwcGVkLiBVc2UgdGhlIHZlcnNpb24gdG8gc3BlY2lmeSB3aGF0IHZlcnNpb26Yd2FzIHRoZSBsYXRlc3Qgd2hlbiB0aGV5IHdlcmUgdHJhcHBlZC5FAS0gYGJlbmVmaWNpYXJ5YDogVGhlIGxvY2F0aW9uL2FjY291bnQgd2hlcmUgdGhlIGNsYWltZWQgYXNzZXRzIHdpbGwgYmUgZGVwb3NpdGVkLox0cmFuc2Zlcl9hc3NldHNfdXNpbmdfdHlwZV9hbmRfdGhlbhwBEGRlc3SpBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0cy0GAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABUGFzc2V0c190cmFuc2Zlcl90eXBlXQYBREJveDxUcmFuc2ZlclR5cGU+AAE4cmVtb3RlX2ZlZXNfaWRhBgFUQm94PFZlcnNpb25lZEFzc2V0SWQ+AAFIZmVlc190cmFuc2Zlcl90eXBlXQYBREJveDxUcmFuc2ZlclR5cGU+AAFIY3VzdG9tX3hjbV9vbl9kZXN09QQBVEJveDxWZXJzaW9uZWRYY208KCk+PgABMHdlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAANwFUBVHJhbnNmZXIgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB1c2luZyBleHBsaWNpdCB0cmFuc2Zlcmh0eXBlcyBmb3IgYXNzZXRzIGFuZCBmZWVzLgBZAWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3IgbWF5IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuIENhbGxlciBtdXN07HByb3ZpZGUgdGhlIGBhc3NldHNfdHJhbnNmZXJfdHlwZWAgdG8gYmUgdXNlZCBmb3IgYGFzc2V0c2A6UQEgLSBgVHJhbnNmZXJUeXBlOjpMb2NhbFJlc2VydmVgOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6RGVzdGluYXRpb25SZXNlcnZlYDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6UmVtb3RlUmVzZXJ2ZShyZXNlcnZlKWA6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byBgcmVzZXJ2ZWBhASAgIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXJVASAgIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLiBUeXBpY2FsbHmUICAgdGhlIHJlbW90ZSBgcmVzZXJ2ZWAgaXMgQXNzZXQgSHViLkUBIC0gYFRyYW5zZmVyVHlwZTo6VGVsZXBvcnRgOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBYQ00gdG8gYGRlc3RgIGNoYWluIHRv6CAgIG1pbnQvdGVsZXBvcnQgYXNzZXRzIGFuZCBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC4AVQFPbiB0aGUgZGVzdGluYXRpb24gY2hhaW4sIGFzIHdlbGwgYXMgYW55IGludGVybWVkaWFyeSBob3BzLCBgQnV5RXhlY3V0aW9uYCBpcyB1c2VkIHRvIQFidXkgZXhlY3V0aW9uIHVzaW5nIHRyYW5zZmVycmVkIGBhc3NldHNgIGlkZW50aWZpZWQgYnkgYHJlbW90ZV9mZWVzX2lkYC5ZAU1ha2Ugc3VyZSBlbm91Z2ggb2YgdGhlIHNwZWNpZmllZCBgcmVtb3RlX2ZlZXNfaWRgIGFzc2V0IGlzIGluY2x1ZGVkIGluIHRoZSBnaXZlbiBsaXN0YQFvZiBgYXNzZXRzYC4gYHJlbW90ZV9mZWVzX2lkYCBzaG91bGQgYmUgZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgBFAWByZW1vdGVfZmVlc19pZGAgbWF5IHVzZSBkaWZmZXJlbnQgdHJhbnNmZXIgdHlwZSB0aGFuIHJlc3Qgb2YgYGFzc2V0c2AgYW5kIGNhbiBiZZxzcGVjaWZpZWQgdGhyb3VnaCBgZmVlc190cmFuc2Zlcl90eXBlYC4AYQFUaGUgY2FsbGVyIG5lZWRzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgaGFwcGVuIHRvIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMgb25jZSB0aGV5IHJlYWNoQQF0aGUgYGRlc3RgIGNoYWluLiBUaGlzIGlzIGRvbmUgdGhyb3VnaCB0aGUgYGN1c3RvbV94Y21fb25fZGVzdGAgcGFyYW1ldGVyLCB3aGljaPxjb250YWlucyB0aGUgaW5zdHJ1Y3Rpb25zIHRvIGV4ZWN1dGUgb24gYGRlc3RgIGFzIGEgZmluYWwgc3RlcC58ICBUaGlzIGlzIHVzdWFsbHkgYXMgc2ltcGxlIGFzOlEBICBgWGNtKHZlYyFbRGVwb3NpdEFzc2V0IHsgYXNzZXRzOiBXaWxkKEFsbENvdW50ZWQoYXNzZXRzLmxlbigpKSksIGJlbmVmaWNpYXJ5IH1dKWAsMQEgIGJ1dCBjb3VsZCBiZSBzb21ldGhpbmcgbW9yZSBleG90aWMgbGlrZSBzZW5kaW5nIHRoZSBgYXNzZXRzYCBldmVuIGZ1cnRoZXIuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb209ASAgcmVsYXkgdG8gcGFyYWNoYWluLCBvciBgKHBhcmVudHM6IDIsIChHbG9iYWxDb25zZW5zdXMoLi4pLCAuLikpYCB0byBzZW5kIGZyb230ICBwYXJhY2hhaW4gYWNyb3NzIGEgYnJpZGdlIHRvIGFub3RoZXIgZWNvc3lzdGVtIGRlc3RpbmF0aW9uLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy49AS0gYGFzc2V0c190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgYXNzZXRzYC4hAS0gYHJlbW90ZV9mZWVzX2lkYDogT25lIG9mIHRoZSBpbmNsdWRlZCBgYXNzZXRzYCB0byBiZSB1c2VkIHRvIHBheSBmZWVzLkkBLSBgZmVlc190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgZmVlc2AgYXNzZXRzLlkBLSBgY3VzdG9tX3hjbV9vbl9kZXN0YDogVGhlIFhDTSB0byBiZSBleGVjdXRlZCBvbiBgZGVzdGAgY2hhaW4gYXMgdGhlIGxhc3Qgc3RlcCBvZiB0aGVZASAgdHJhbnNmZXIsIHdoaWNoIGFsc28gZGV0ZXJtaW5lcyB3aGF0IGhhcHBlbnMgdG8gdGhlIGFzc2V0cyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5QYWRkX2F1dGhvcml6ZWRfYWxpYXMIARxhbGlhc2VyqQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxleHBpcmVzZQYBLE9wdGlvbjx1NjQ+AA4sXQFBdXRob3JpemUgYW5vdGhlciBgYWxpYXNlcmAgbG9jYXRpb24gdG8gYWxpYXMgaW50byB0aGUgbG9jYWwgYG9yaWdpbmAgbWFraW5nIHRoaXMgY2FsbC4pAVRoZSBgYWxpYXNlcmAgaXMgb25seSBhdXRob3JpemVkIHVudGlsIHRoZSBwcm92aWRlZCBgZXhwaXJ5YCBibG9jayBudW1iZXIuSQFUaGUgY2FsbCBjYW4gYWxzbyBiZSB1c2VkIGZvciBhIHByZXZpb3VzbHkgYXV0aG9yaXplZCBhbGlhcyBpbiBvcmRlciB0byB1cGRhdGUgaXRzWGBleHBpcnlgIGJsb2NrIG51bWJlci4AUQFVc3VhbGx5IHVzZWZ1bCB0byBhbGxvdyB5b3VyIGxvY2FsIGFjY291bnQgdG8gYmUgYWxpYXNlZCBpbnRvIGZyb20gYSByZW1vdGUgbG9jYXRpb270YWxzbyB1bmRlciB5b3VyIGNvbnRyb2wgKGxpa2UgeW91ciBhY2NvdW50IG9uIGFub3RoZXIgY2hhaW4pLgBRAVdBUk5JTkc6IG1ha2Ugc3VyZSB0aGUgY2FsbGVyIGBvcmlnaW5gICh5b3UpIHRydXN0cyB0aGUgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFjdCBpblkBdGhlaXIveW91ciBuYW1lLiBPbmNlIGF1dGhvcml6ZWQgdXNpbmcgdGhpcyBjYWxsLCB0aGUgYGFsaWFzZXJgIGNhbiBmcmVlbHkgaW1wZXJzb25hdGXUYG9yaWdpbmAgaW4gWENNIHByb2dyYW1zIGV4ZWN1dGVkIG9uIHRoZSBsb2NhbCBjaGFpbi5ccmVtb3ZlX2F1dGhvcml6ZWRfYWxpYXMEARxhbGlhc2VyqQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ADwhdAVJlbW92ZSBhIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmAgZnJvbSB0aGUgbGlzdCBvZiBsb2NhdGlvbnMgdGhhdCBjYW4gYWxpYXMgaW50b5B0aGUgbG9jYWwgYG9yaWdpbmAgbWFraW5nIHRoaXMgY2FsbC50cmVtb3ZlX2FsbF9hdXRob3JpemVkX2FsaWFzZXMAEAhJAVJlbW92ZSBhbGwgcHJldmlvdXNseSBhdXRob3JpemVkIGBhbGlhc2VyYHMgdGhhdCBjYW4gYWxpYXMgaW50byB0aGUgbG9jYWwgYG9yaWdpbmBEbWFraW5nIHRoaXMgY2FsbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqQQIDHhjbURWZXJzaW9uZWRMb2NhdGlvbgABDAhWMwQArQQBRHYzOjpNdWx0aUxvY2F0aW9uAAMACFY0BADBBAEwdjQ6OkxvY2F0aW9uAAQACFY1BACcATB2NTo6TG9jYXRpb24ABQAArQQQLHN0YWdpbmdfeGNtCHYzNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3KxBAEkSnVuY3Rpb25zAACxBBAMeGNtCHYzJGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAtQQBIEp1bmN0aW9uAAEACFgyCAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgACAAhYMwwAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgADAAhYNBAAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAQACFg1FAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAFAAhYNhgAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAGAAhYNxwAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAcACFg4IAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAAtQQBIEp1bmN0aW9uAAC1BAEgSnVuY3Rpb24AALUEASBKdW5jdGlvbgAIAAC1BBAMeGNtCHYzIGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAbAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya7kEAURPcHRpb248TmV0d29ya0lkPgABCGlkBAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JruQQBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXg0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya7kEAURPcHRpb248TmV0d29ya0lkPgABDGtleVwBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEADwBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YQQBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZLQBGEJvZHlJZAABEHBhcnS8ASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAL0EASROZXR3b3JrSWQACQAAuQQEGE9wdGlvbgQEVAG9BAEIEE5vbmUAAAAQU29tZQQAvQQAAAEAAL0EEAx4Y20IdjMganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyGAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZDQBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAMEEECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3LFBAEkSnVuY3Rpb25zAADFBBAsc3RhZ2luZ194Y20IdjQkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBADJBAFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBADZBAFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBADdBAFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BADhBAFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BADlBAFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BADpBAFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BADtBAFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BADxBAFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAMkEAAADAQAAAM0EAM0EECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAGwBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmvRBAFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya9EEAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4NAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmvRBAFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXlcASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAA8ARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWS0ARhCb2R5SWQAARBwYXJ0vAEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBADVBAEkTmV0d29ya0lkAAkAANEEBBhPcHRpb24EBFQB1QQBCBBOb25lAAAAEFNvbWUEANUEAAABAADVBBAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyGAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZDQBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAANkEAAADAgAAAM0EAN0EAAADAwAAAM0EAOEEAAADBAAAAM0EAOUEAAADBQAAAM0EAOkEAAADBgAAAM0EAO0EAAADBwAAAM0EAPEEAAADCAAAAM0EAPUECAx4Y20wVmVyc2lvbmVkWGNtBCxSdW50aW1lQ2FsbAABDAhWMwQA+QQBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BABlBQFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAIVjUEALEFAVB2NTo6WGNtPFJ1bnRpbWVDYWxsPgAFAAD5BAwMeGNtCHYzDFhjbQQQQ2FsbAAABAD9BAFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAA/QQAAAIBBQABBQwMeGNtCHYzLEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAAUFASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAAUFASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAFBQEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABIHJlc3BvbnNlHQUBIFJlc3BvbnNlAAEobWF4X3dlaWdodOQBGFdlaWdodAABHHF1ZXJpZXJFBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMFBQEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyea0EATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzBQUBLE11bHRpQXNzZXRzAAEQZGVzdK0EATRNdWx0aUxvY2F0aW9uAAEMeGNt+QQBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZEkFAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdOQBGFdlaWdodAABEGNhbGxNBQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBACxBAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABRBQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzVQUBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyea0EATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHNVBQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3StBAE0TXVsdGlMb2NhdGlvbgABDHhjbfkEARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlVQUBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50BQUBLE11bHRpQXNzZXRzAAEcbWF4aW1hbEQBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNVBQFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmWtBAE0TXVsdGlMb2NhdGlvbgABDHhjbfkEARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHNVBQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3StBAE0TXVsdGlMb2NhdGlvbgABDHhjbfkEARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvUQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzVQUBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlcw0FAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAD5BAEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAD5BAEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cwUFASxNdWx0aUFzc2V0cwABGHRpY2tldK0EATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAFBQEsTXVsdGlBc3NldHMAHAAsRXhwZWN0QXNzZXQEAAUFASxNdWx0aUFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAEUFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACEFAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAPQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb1EFAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAFEFAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAtQQBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrvQQBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9usQQBVEludGVyaW9yTXVsdGlMb2NhdGlvbgABDHhjbfkEARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0DQUBKE11bHRpQXNzZXQAASB1bmxvY2tlcq0EATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQNBQEoTXVsdGlBc3NldAABGHRhcmdldK0EATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXQNBQEoTXVsdGlBc3NldAABFG93bmVyrQQBNE11bHRpTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0DQUBKE11bHRpQXNzZXQAARhsb2NrZXKtBAE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAK0EATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkUFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAABQUQDHhjbQh2MyhtdWx0aWFzc2V0LE11bHRpQXNzZXRzAAAEAAkFATxWZWM8TXVsdGlBc3NldD4AAAkFAAACDQUADQUQDHhjbQh2MyhtdWx0aWFzc2V0KE11bHRpQXNzZXQAAAgBCGlkEQUBHEFzc2V0SWQAAQxmdW4VBQEsRnVuZ2liaWxpdHkAABEFEAx4Y20IdjMobXVsdGlhc3NldBxBc3NldElkAAEIIENvbmNyZXRlBACtBAE0TXVsdGlMb2NhdGlvbgAAACBBYnN0cmFjdAQABAEgW3U4OyAzMl0AAQAAFQUQDHhjbQh2MyhtdWx0aWFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAA8ARB1MTI4AAAALE5vbkZ1bmdpYmxlBAAZBQE0QXNzZXRJbnN0YW5jZQABAAAZBRAMeGNtCHYzKG11bHRpYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEADwBEHUxMjgAAQAYQXJyYXk0BAC4ARxbdTg7IDRdAAIAGEFycmF5OAQAIQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAQQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAAB0FDAx4Y20IdjMgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAAUFASxNdWx0aUFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEACEFAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAoAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQALQUBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BAA9BQE4TWF5YmVFcnJvckNvZGUABQAAIQUEGE9wdGlvbgQEVAElBQEIEE5vbmUAAAAQU29tZQQAJQUAAAEAACUFAAAECCgpBQApBRAMeGNtCHYzGHRyYWl0cxRFcnJvcgABoCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAYAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgBMVW5oYW5kbGVkWGNtVmVyc2lvbgAjAEhXZWlnaHRMaW1pdFJlYWNoZWQEAOQBGFdlaWdodAAkABxCYXJyaWVyACUATFdlaWdodE5vdENvbXB1dGFibGUAJgBERXhjZWVkc1N0YWNrTGltaXQAJwAALQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAExBQRTAAAEADkFARhWZWM8VD4AADEFDAx4Y20IdjMoUGFsbGV0SW5mbwAAGAEUaW5kZXhsAQx1MzIAARBuYW1lNQUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWU1BQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmwBDHUzMgABFG1pbm9ybAEMdTMyAAEUcGF0Y2hsAQx1MzIAADUFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAOQUAAAIxBQA9BQwMeGNtCHYzOE1heWJlRXJyb3JDb2RlAAEMHFN1Y2Nlc3MAAAAURXJyb3IEAEEFAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgABADhUcnVuY2F0ZWRFcnJvcgQAQQUBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAIAAEEFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAARQUEGE9wdGlvbgQEVAGtBAEIEE5vbmUAAAAQU29tZQQArQQAAAEAAEkFDAx4Y20IdjMoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAAE0FDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBQBHFZlYzx1OD4AAFEFDAx4Y20IdjNEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9urQQBNE11bHRpTG9jYXRpb24AASBxdWVyeV9pZDQBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AABVBRAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQABQUBLE11bHRpQXNzZXRzAAAAEFdpbGQEAFkFAThXaWxkTXVsdGlBc3NldAABAABZBRAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWQRBQEcQXNzZXRJZAABDGZ1bl0FATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAbAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkEQUBHEFzc2V0SWQAAQxmdW5dBQE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRsAQx1MzIAAwAAXQUQDHhjbQh2MyhtdWx0aWFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAABhBQwMeGNtCHYzLFdlaWdodExpbWl0AAEIJFVubGltaXRlZAAAABxMaW1pdGVkBADkARhXZWlnaHQAAQAAZQUMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABABpBQFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAaQUAAAJtBQBtBQwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAcQUBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAHEFARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAcQUBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEgcmVzcG9uc2WJBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAEccXVlcmllcp0FAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHNxBQEYQXNzZXRzAAEsYmVuZWZpY2lhcnnBBAEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHNxBQEYQXNzZXRzAAEQZGVzdMEEASBMb2NhdGlvbgABDHhjbWUFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRJBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3TkARhXZWlnaHQAARBjYWxsTQUBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAxQQBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAKEFAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHOlBQEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyecEEASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzpQUBLEFzc2V0RmlsdGVyAAEQZGVzdMEEASBMb2NhdGlvbgABDHhjbWUFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlpQUBLEFzc2V0RmlsdGVyAAEQd2FudHEFARhBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c6UFASxBc3NldEZpbHRlcgABHHJlc2VydmXBBAEgTG9jYXRpb24AAQx4Y21lBQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzpQUBLEFzc2V0RmlsdGVyAAEQZGVzdMEEASBMb2NhdGlvbgABDHhjbWUFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvoQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzpQUBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXN5BQEUQXNzZXQAATB3ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAGUFASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAGUFASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzcQUBGEFzc2V0cwABGHRpY2tldMEEASBMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAcQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAcQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAJ0FAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAAhBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAD0FAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+hBQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAChBQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAM0EASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya9UEASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbsUEAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtZQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXR5BQEUQXNzZXQAASB1bmxvY2tlcsEEASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0eQUBFEFzc2V0AAEYdGFyZ2V0wQQBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXR5BQEUQXNzZXQAARRvd25lcsEEASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXR5BQEUQXNzZXQAARhsb2NrZXLBBAEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXdEARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADBBAEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lunQUBQE9wdGlvbjxMb2NhdGlvbj4ALwAAcQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0GEFzc2V0cwAABAB1BQEoVmVjPEFzc2V0PgAAdQUAAAJ5BQB5BRAsc3RhZ2luZ194Y20IdjQUYXNzZXQUQXNzZXQAAAgBCGlkfQUBHEFzc2V0SWQAAQxmdW6BBQEsRnVuZ2liaWxpdHkAAH0FECxzdGFnaW5nX3hjbQh2NBRhc3NldBxBc3NldElkAAAEAMEEASBMb2NhdGlvbgAAgQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAA8ARB1MTI4AAAALE5vbkZ1bmdpYmxlBACFBQE0QXNzZXRJbnN0YW5jZQABAACFBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEADwBEHUxMjgAAQAYQXJyYXk0BAC4ARxbdTg7IDRdAAIAGEFycmF5OAQAIQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAQQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAAIkFDCxzdGFnaW5nX3hjbQh2NCBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAcQUBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEACEFAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAoAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAjQUBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BAA9BQE4TWF5YmVFcnJvckNvZGUABQAAjQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGRBQRTAAAEAJkFARhWZWM8VD4AAJEFDCxzdGFnaW5nX3hjbQh2NChQYWxsZXRJbmZvAAAYARRpbmRleGwBDHUzMgABEG5hbWWVBQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZZUFAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9ybAEMdTMyAAEUbWlub3JsAQx1MzIAARRwYXRjaGwBDHUzMgAAlQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACZBQAAApEFAJ0FBBhPcHRpb24EBFQBwQQBCBBOb25lAAAAEFNvbWUEAMEEAAABAAChBQwsc3RhZ2luZ194Y20IdjREUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9uwQQBIExvY2F0aW9uAAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEobWF4X3dlaWdodOQBGFdlaWdodAAApQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBABxBQEYQXNzZXRzAAAAEFdpbGQEAKkFASRXaWxkQXNzZXQAAQAAqQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZH0FARxBc3NldElkAAEMZnVurQUBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBABsAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWR9BQEcQXNzZXRJZAABDGZ1bq0FATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudGwBDHUzMgADAACtBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAALEFDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQAtQUBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AALUFAAACuQUAuQUMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAL0FARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAC9BQEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAL0FARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABIHJlc3BvbnNl1QUBIFJlc3BvbnNlAAEobWF4X3dlaWdodOQBGFdlaWdodAABHHF1ZXJpZXL1BQFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzvQUBGEFzc2V0cwABLGJlbmVmaWNpYXJ5nAEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHO9BQEYQXNzZXRzAAEQZGVzdJwBIExvY2F0aW9uAAEMeGNtsQUBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZEkFAShPcmlnaW5LaW5kAAFMZmFsbGJhY2tfbWF4X3dlaWdodPkFAThPcHRpb248V2VpZ2h0PgABEGNhbGxNBQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBACgAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAD9BQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzAQYBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnmcASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzAQYBLEFzc2V0RmlsdGVyAAEQZGVzdJwBIExvY2F0aW9uAAEMeGNtsQUBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmUBBgEsQXNzZXRGaWx0ZXIAARB3YW50vQUBGEFzc2V0cwABHG1heGltYWxEARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzAQYBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZZwBIExvY2F0aW9uAAEMeGNtsQUBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cwEGASxBc3NldEZpbHRlcgABEGRlc3ScASBMb2NhdGlvbgABDHhjbbEFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv/QUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzAQYBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPFBQEUQXNzZXQAATB3ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEALEFASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEALEFASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzvQUBGEFzc2V0cwABGHRpY2tldJwBIExvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAC9BQEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAC9BQEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQA9QUBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEANkFAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAPQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb/0FAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAP0FAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAqAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmuwASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbqABQEludGVyaW9yTG9jYXRpb24AAQx4Y22xBQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldMUFARRBc3NldAABIHVubG9ja2VynAEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldMUFARRBc3NldAABGHRhcmdldJwBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXTFBQEUQXNzZXQAARRvd25lcpwBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldMUFARRBc3NldAABGGxvY2tlcpwBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3RAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAnAEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lu9QUBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0xQUBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEscmVtb3RlX2ZlZXMNBgFsT3B0aW9uPEFzc2V0VHJhbnNmZXJGaWx0ZXI+AAE8cHJlc2VydmVfb3JpZ2luRAEQYm9vbAABGGFzc2V0cxUGAeBCb3VuZGVkVmVjPEFzc2V0VHJhbnNmZXJGaWx0ZXIsIE1heEFzc2V0VHJhbnNmZXJGaWx0ZXJzPgABKHJlbW90ZV94Y22xBQEcWGNtPCgpPgAxAERFeGVjdXRlV2l0aE9yaWdpbggBRGRlc2NlbmRhbnRfb3JpZ2luHQYBYE9wdGlvbjxJbnRlcmlvckxvY2F0aW9uPgABDHhjbbEFASRYY208Q2FsbD4AMgAgU2V0SGludHMEARRoaW50cyEGAYRCb3VuZGVkVmVjPEhpbnQsIEhpbnROdW1WYXJpYW50cz4AMwAAvQUQLHN0YWdpbmdfeGNtCHY1FGFzc2V0GEFzc2V0cwAABADBBQEoVmVjPEFzc2V0PgAAwQUAAALFBQDFBRAsc3RhZ2luZ194Y20IdjUUYXNzZXQUQXNzZXQAAAgBCGlkyQUBHEFzc2V0SWQAAQxmdW7NBQEsRnVuZ2liaWxpdHkAAMkFECxzdGFnaW5nX3hjbQh2NRRhc3NldBxBc3NldElkAAAEAJwBIExvY2F0aW9uAADNBRAsc3RhZ2luZ194Y20IdjUUYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEADwBEHUxMjgAAAAsTm9uRnVuZ2libGUEANEFATRBc3NldEluc3RhbmNlAAEAANEFECxzdGFnaW5nX3hjbQh2NRRhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQAPAEQdTEyOAABABhBcnJheTQEALgBHFt1ODsgNF0AAgAYQXJyYXk4BAAhAQEcW3U4OyA4XQADABxBcnJheTE2BABBAQEgW3U4OyAxNl0ABAAcQXJyYXkzMgQABAEgW3U4OyAzMl0ABQAA1QUMLHN0YWdpbmdfeGNtCHY1IFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAC9BQEYQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQA2QUBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EACgBOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBADlBQGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAD0FAThNYXliZUVycm9yQ29kZQAFAADZBQQYT3B0aW9uBARUAd0FAQgQTm9uZQAAABBTb21lBADdBQAAAQAA3QUAAAQIKOEFAOEFEAx4Y20IdjUYdHJhaXRzFEVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAEABgBDHU2NAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiADRUb29NYW55QXNzZXRzACMATFVuaGFuZGxlZFhjbVZlcnNpb24AJABIV2VpZ2h0TGltaXRSZWFjaGVkBADkARhXZWlnaHQAJQAcQmFycmllcgAmAExXZWlnaHROb3RDb21wdXRhYmxlACcAREV4Y2VlZHNTdGFja0xpbWl0ACgAAOUFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6QUEUwAABADxBQEYVmVjPFQ+AADpBQwsc3RhZ2luZ194Y20IdjUoUGFsbGV0SW5mbwAAGAEUaW5kZXhsAQx1MzIAARBuYW1l7QUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWXtBQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmwBDHUzMgABFG1pbm9ybAEMdTMyAAEUcGF0Y2hsAQx1MzIAAO0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAA8QUAAALpBQD1BQQYT3B0aW9uBARUAZwBCBBOb25lAAAAEFNvbWUEAJwAAAEAAPkFBBhPcHRpb24EBFQB5AEIEE5vbmUAAAAQU29tZQQA5AAAAQAA/QUMLHN0YWdpbmdfeGNtCHY1RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEobWF4X3dlaWdodOQBGFdlaWdodAAAAQYQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBAC9BQEYQXNzZXRzAAAAEFdpbGQEAAUGASRXaWxkQXNzZXQAAQAABQYQLHN0YWdpbmdfeGNtCHY1FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZMkFARxBc3NldElkAAEMZnVuCQYBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBABsAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWTJBQEcQXNzZXRJZAABDGZ1bgkGATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudGwBDHUzMgADAAAJBhAsc3RhZ2luZ194Y20IdjUUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAAA0GBBhPcHRpb24EBFQBEQYBCBBOb25lAAAAEFNvbWUEABEGAAABAAARBhAsc3RhZ2luZ194Y20IdjUUYXNzZXRMQXNzZXRUcmFuc2ZlckZpbHRlcgABDCBUZWxlcG9ydAQAAQYBLEFzc2V0RmlsdGVyAAAAOFJlc2VydmVEZXBvc2l0BAABBgEsQXNzZXRGaWx0ZXIAAQA8UmVzZXJ2ZVdpdGhkcmF3BAABBgEsQXNzZXRGaWx0ZXIAAgAAFQYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAERBgRTAAAEABkGARhWZWM8VD4AABkGAAACEQYAHQYEGE9wdGlvbgQEVAGgAQgQTm9uZQAAABBTb21lBACgAAABAAAhBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASUGBFMAAAQAKQYBGFZlYzxUPgAAJQYMLHN0YWdpbmdfeGNtCHY1EEhpbnQAAQQwQXNzZXRDbGFpbWVyBAEgbG9jYXRpb26cASBMb2NhdGlvbgAAAAApBgAAAiUGAC0GCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYzBAAFBQE8djM6Ok11bHRpQXNzZXRzAAMACFY0BABxBQEodjQ6OkFzc2V0cwAEAAhWNQQAvQUBKHY1OjpBc3NldHMABQAAMQYIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYzBAA1BgFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEAEUGAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAAhWNQQAUQYBUHY1OjpYY208UnVudGltZUNhbGw+AAUAADUGDAx4Y20IdjMMWGNtBBBDYWxsAAAEADkGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAA5BgAAAj0GAD0GDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQABQUBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQABQUBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAAUFASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEgcmVzcG9uc2UdBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAEccXVlcmllckUFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cwUFASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5rQQBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMFBQEsTXVsdGlBc3NldHMAARBkZXN0rQQBNE11bHRpTG9jYXRpb24AAQx4Y235BAEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kSQUBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N05AEYV2VpZ2h0AAEQY2FsbEEGAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJsAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplbAEMdTMyAAEwbWF4X2NhcGFjaXR5bAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRsAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9ybAEMdTMyAAEYc2VuZGVybAEMdTMyAAEkcmVjaXBpZW50bAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EALEEAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAFEFAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNVBQFATXVsdGlBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5rQQBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c1UFAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdK0EATRNdWx0aUxvY2F0aW9uAAEMeGNt+QQBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmVVBQFATXVsdGlBc3NldEZpbHRlcgABEHdhbnQFBQEsTXVsdGlBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c1UFAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2Za0EATRNdWx0aUxvY2F0aW9uAAEMeGNt+QQBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c1UFAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdK0EATRNdWx0aUxvY2F0aW9uAAEMeGNt+QQBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm9RBQFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHNVBQFATXVsdGlBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzDQUBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEADUGASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEADUGASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzBQUBLE11bHRpQXNzZXRzAAEYdGlja2V0rQQBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQANAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZDQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h05AEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAAUFASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQABQUBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQARQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAIQUBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBAA9BQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvUQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4bAEMdTMyAAEQbmFtZRQBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmwBDHUzMgABPG1pbl9jcmF0ZV9taW5vcmwBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAUQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAC1BAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmu9BAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26xBAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNt+QQBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXQNBQEoTXVsdGlBc3NldAABIHVubG9ja2VyrQQBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldA0FAShNdWx0aUFzc2V0AAEYdGFyZ2V0rQQBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldA0FAShNdWx0aUFzc2V0AAEUb3duZXKtBAE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXQNBQEoTXVsdGlBc3NldAABGGxvY2tlcq0EATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3RAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQArQQBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luRQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAABBBgwMeGNtOGRvdWJsZV9lbmNvZGVkNERvdWJsZUVuY29kZWQEBFQAAAQBHGVuY29kZWQUARxWZWM8dTg+AABFBgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEAEkGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AABJBgAAAk0GAE0GDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BABxBQEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAcQUBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BABxBQEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZDQBHFF1ZXJ5SWQAASByZXNwb25zZYkFASBSZXNwb25zZQABKG1heF93ZWlnaHTkARhXZWlnaHQAARxxdWVyaWVynQUBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c3EFARhBc3NldHMAASxiZW5lZmljaWFyecEEASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c3EFARhBc3NldHMAARBkZXN0wQQBIExvY2F0aW9uAAEMeGNtZQUBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZEkFAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdOQBGFdlaWdodAABEGNhbGxBBgFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBADFBAFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAoQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c6UFASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5wQQBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHOlBQEsQXNzZXRGaWx0ZXIAARBkZXN0wQQBIExvY2F0aW9uAAEMeGNtZQUBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWlBQEsQXNzZXRGaWx0ZXIAARB3YW50cQUBGEFzc2V0cwABHG1heGltYWxEARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzpQUBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZcEEASBMb2NhdGlvbgABDHhjbWUFARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOlBQEsQXNzZXRGaWx0ZXIAARBkZXN0wQQBIExvY2F0aW9uAAEMeGNtZQUBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm+hBQFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHOlBQEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc3kFARRBc3NldAABMHdlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQARQYBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQARQYBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHNxBQEYQXNzZXRzAAEYdGlja2V0wQQBIExvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BABxBQEYQXNzZXRzABwALEV4cGVjdEFzc2V0BABxBQEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAnQUBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACEFAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAPQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb6EFAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAKEFAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAzQQBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr1QQBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uxQQBQEludGVyaW9yTG9jYXRpb24AAQx4Y21lBQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldHkFARRBc3NldAABIHVubG9ja2VywQQBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXR5BQEUQXNzZXQAARh0YXJnZXTBBAEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldHkFARRBc3NldAABFG93bmVywQQBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldHkFARRBc3NldAABGGxvY2tlcsEEASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAMEEASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW6dBQFAT3B0aW9uPExvY2F0aW9uPgAvAABRBgwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEAFUGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AABVBgAAAlkGAFkGDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BAC9BQEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAvQUBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAC9BQEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZDQBHFF1ZXJ5SWQAASByZXNwb25zZdUFASBSZXNwb25zZQABKG1heF93ZWlnaHTkARhXZWlnaHQAARxxdWVyaWVy9QUBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c70FARhBc3NldHMAASxiZW5lZmljaWFyeZwBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzvQUBGEFzc2V0cwABEGRlc3ScASBMb2NhdGlvbgABDHhjbbEFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRJBQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHT5BQE4T3B0aW9uPFdlaWdodD4AARBjYWxsQQYBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAoAFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQA/QUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0cwEGASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5nAEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0cwEGASxBc3NldEZpbHRlcgABEGRlc3ScASBMb2NhdGlvbgABDHhjbbEFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlAQYBLEFzc2V0RmlsdGVyAAEQd2FudL0FARhBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cwEGASxBc3NldEZpbHRlcgABHHJlc2VydmWcASBMb2NhdGlvbgABDHhjbbEFARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMBBgEsQXNzZXRGaWx0ZXIAARBkZXN0nAEgTG9jYXRpb24AAQx4Y22xBQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb/0FAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cwEGASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzxQUBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABRBgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABRBgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c70FARhBc3NldHMAARh0aWNrZXScASBMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAvQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAvQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAPUFAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADZBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAD0FAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/9BQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAD9BQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAKgBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrsAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26gAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtsQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXTFBQEUQXNzZXQAASB1bmxvY2tlcpwBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXTFBQEUQXNzZXQAARh0YXJnZXScASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0xQUBFEFzc2V0AAEUb3duZXKcASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXTFBQEUQXNzZXQAARhsb2NrZXKcASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAJwBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbvUFAUBPcHRpb248TG9jYXRpb24+AC8AHFBheUZlZXMEARRhc3NldMUFARRBc3NldAAwAEBJbml0aWF0ZVRyYW5zZmVyFAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzDQYBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbkQBEGJvb2wAARhhc3NldHMVBgHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNtsQUBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbh0GAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y21RBgEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHMhBgGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAF0GEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQAqQQBRFZlcnNpb25lZExvY2F0aW9uAAMAAGEGCAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABDAhWMwQAEQUBLHYzOjpBc3NldElkAAMACFY0BAB9BQEsdjQ6OkFzc2V0SWQABAAIVjUEAMkFASx2NTo6QXNzZXRJZAAFAABlBgQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAAGkGDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMubQYMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBBDYWxsBARUAAEIJHJlYXBfcGFnZQgBOG1lc3NhZ2Vfb3JpZ2lucQYBSE1lc3NhZ2VPcmlnaW5PZjxUPgABKHBhZ2VfaW5kZXgoASRQYWdlSW5kZXgAAAQ9AVJlbW92ZSBhIHBhZ2Ugd2hpY2ggaGFzIG5vIG1vcmUgbWVzc2FnZXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBvciBpcyBzdGFsZS5IZXhlY3V0ZV9vdmVyd2VpZ2h0EAE4bWVzc2FnZV9vcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+AAEQcGFnZSgBJFBhZ2VJbmRleAABFGluZGV4KAEcVDo6U2l6ZQABMHdlaWdodF9saW1pdOQBGFdlaWdodAABNHhFeGVjdXRlIGFuIG92ZXJ3ZWlnaHQgbWVzc2FnZS4ATQFUZW1wb3JhcnkgcHJvY2Vzc2luZyBlcnJvcnMgd2lsbCBiZSBwcm9wYWdhdGVkIHdoZXJlYXMgcGVybWFuZW50IGVycm9ycyBhcmUgdHJlYXRlZFRhcyBzdWNjZXNzIGNvbmRpdGlvbi4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAuNQEtIGBtZXNzYWdlX29yaWdpbmA6IFRoZSBvcmlnaW4gZnJvbSB3aGljaCB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZCBhcnJpdmVkLj0BLSBgcGFnZWA6IFRoZSBwYWdlIGluIHRoZSBxdWV1ZSBpbiB3aGljaCB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZCBpcyBzaXR0aW5nLgkBLSBgaW5kZXhgOiBUaGUgaW5kZXggaW50byB0aGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQuWQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IGFsbG93ZWQgdG8gYmUgY29uc3VtZWQgaW4gdGhlIGV4ZWN1dGlvbkQgIG9mIHRoZSBtZXNzYWdlLgD0QmVuY2htYXJrIGNvbXBsZXhpdHkgY29uc2lkZXJhdGlvbnM6IE8oaW5kZXggKyB3ZWlnaHRfbGltaXQpLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5xBghcY3VtdWx1c19wcmltaXRpdmVzX2NvcmVYQWdncmVnYXRlTWVzc2FnZU9yaWdpbgABDBBIZXJlAAAAGFBhcmVudAABABxTaWJsaW5nBADgARhQYXJhSWQAAgAAdQYMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBBDYWxsBARUAAEQQGZvcmNlX3NldF9jdXJzb3IEARhjdXJzb3J5BgFMT3B0aW9uPEN1cnNvck9mPFQ+PgAAFF0BQWxsb3dzIHJvb3QgdG8gc2V0IGEgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQsIHN0b3Agb3IgZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEkBU2hvdWxkIG5vcm1hbGx5IG5vdCBiZSBuZWVkZWQgYW5kIGlzIG9ubHkgaW4gcGxhY2UgYXMgZW1lcmdlbmN5IG1lYXN1cmUuIE5vdGUgdGhhdAUBcmVzdGFydGluZyB0aGUgbWlncmF0aW9uIHByb2Nlc3MgaW4gdGhpcyBtYW5uZXIgd2lsbCBub3QgY2FsbCB0aGUtAVtgTWlncmF0aW9uU3RhdHVzSGFuZGxlcjo6c3RhcnRlZGBdIGhvb2sgb3IgZW1pdCBhbiBgVXBncmFkZVN0YXJ0ZWRgIGV2ZW50Llxmb3JjZV9zZXRfYWN0aXZlX2N1cnNvcgwBFGluZGV4KAEMdTMyAAEwaW5uZXJfY3Vyc29yhQYBWE9wdGlvbjxSYXdDdXJzb3JPZjxUPj4AAShzdGFydGVkX2F0dAFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABGFkBQWxsb3dzIHJvb3QgdG8gc2V0IGFuIGFjdGl2ZSBjdXJzb3IgdG8gZm9yY2VmdWxseSBzdGFydC9mb3J3YXJkIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4ARQFUaGlzIGlzIGFuIGVkZ2UtY2FzZSB2ZXJzaW9uIG9mIFtgU2VsZjo6Zm9yY2Vfc2V0X2N1cnNvcmBdIHRoYXQgYWxsb3dzIHRvIHNldCB0aGVhAWBzdGFydGVkX2F0YCB2YWx1ZSB0byB0aGUgbmV4dCBibG9jayBudW1iZXIuIE90aGVyd2lzZSB0aGlzIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSwgc2luY2VFAWBmb3JjZV9zZXRfY3Vyc29yYCB0YWtlcyBhbiBhYnNvbHV0ZSBibG9jayBudW1iZXIuIFNldHRpbmcgYHN0YXJ0ZWRfYXRgIHRvIGBOb25lYAEBaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgYmxvY2sgbnVtYmVyIHBsdXMgb25lIHNob3VsZCBiZSB1c2VkLkhmb3JjZV9vbmJvYXJkX21ibXMAAhCgRm9yY2VzIHRoZSBvbmJvYXJkaW5nIG9mIHRoZSBtaWdyYXRpb25zLgBdAVRoaXMgcHJvY2VzcyBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgb24gYSBydW50aW1lIHVwZ3JhZGUuIEl0IGlzIGluIHBsYWNlIGFzIGFuIGVtZXJnZW5jefxtZWFzdXJlbWVudC4gVGhlIGN1cnNvciBuZWVkcyB0byBiZSBgTm9uZWAgZm9yIHRoaXMgdG8gc3VjY2VlZC44Y2xlYXJfaGlzdG9yaWMEASBzZWxlY3RvcokGAaBIaXN0b3JpY0NsZWFudXBTZWxlY3RvcjxJZGVudGlmaWVyT2Y8VD4+AAMUaENsZWFycyB0aGUgYEhpc3RvcmljYCBzZXQuAA0BYG1hcF9jdXJzb3JgIG11c3QgYmUgc2V0IHRvIHRoZSBsYXN0IHZhbHVlIHRoYXQgd2FzIHJldHVybmVkIGJ5IHRoZV0BYEhpc3RvcmljQ2xlYXJlZGAgZXZlbnQuIFRoZSBmaXJzdCB0aW1lIGBOb25lYCBjYW4gYmUgdXNlZC4gYGxpbWl0YCBtdXN0IGJlIGNob3NlbiBpbiBhqHdheSB0aGF0IHdpbGwgcmVzdWx0IGluIGEgc2Vuc2libGUgd2VpZ2h0LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy55BgQYT3B0aW9uBARUAX0GAQgQTm9uZQAAABBTb21lBAB9BgAAAQAAfQYIRHBhbGxldF9taWdyYXRpb25zPE1pZ3JhdGlvbkN1cnNvcggYQ3Vyc29yAYkDLEJsb2NrTnVtYmVyASgBCBhBY3RpdmUEAIEGAYRBY3RpdmVDdXJzb3I8Q3Vyc29yLCBCbG9ja051bWJlcj4AAAAUU3R1Y2sAAQAAgQYIRHBhbGxldF9taWdyYXRpb25zMEFjdGl2ZUN1cnNvcggYQ3Vyc29yAYkDLEJsb2NrTnVtYmVyASgADAEUaW5kZXgoAQx1MzIAATBpbm5lcl9jdXJzb3KFBgE4T3B0aW9uPEN1cnNvcj4AAShzdGFydGVkX2F0KAEsQmxvY2tOdW1iZXIAAIUGBBhPcHRpb24EBFQBiQMBCBBOb25lAAAAEFNvbWUEAIkDAAABAACJBghEcGFsbGV0X21pZ3JhdGlvbnNcSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3IECElkAXkDAQggU3BlY2lmaWMEAI0GARxWZWM8SWQ+AAAAIFdpbGRjYXJkCAEUbGltaXR0ASxPcHRpb248dTMyPgABPHByZXZpb3VzX2N1cnNvcpEGATxPcHRpb248VmVjPHU4Pj4AAQAAjQYAAAJ5AwCRBgQYT3B0aW9uBARUARQBCBBOb25lAAAAEFNvbWUEABQAAAEAAJUGDCBvcm1sX3hjbRhtb2R1bGUQQ2FsbAQEVAABBERzZW5kX2FzX3NvdmVyZWlnbggBEGRlc3SpBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2X1BAFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAErFNlbmQgYW4gWENNIG1lc3NhZ2UgYXMgcGFyYWNoYWluIHNvdmVyZWlnbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMumQYMMG9ybWxfeHRva2Vucxhtb2R1bGUQQ2FsbAQEVAABGCB0cmFuc2ZlchABLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAAAMGxUcmFuc2ZlciBuYXRpdmUgY3VycmVuY2llcy4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuTHRyYW5zZmVyX211bHRpYXNzZXQMARRhc3NldJ0GAUxCb3g8VmVyc2lvbmVkQXNzZXQ+AAEQZGVzdKkEAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXRhBQEsV2VpZ2h0TGltaXQAATBEVHJhbnNmZXIgYEFzc2V0YC4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuRHRyYW5zZmVyX3dpdGhfZmVlFAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABDGZlZUABKFQ6OkJhbGFuY2UAARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAACVOxUcmFuc2ZlciBuYXRpdmUgY3VycmVuY2llcyBzcGVjaWZ5aW5nIHRoZSBmZWUgYW5kIGFtb3VudCBhcyRzZXBhcmF0ZS4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4ADQFgZmVlYCBpcyB0aGUgYW1vdW50IHRvIGJlIHNwZW50IHRvIHBheSBmb3IgZXhlY3V0aW9uIGluIGRlc3RpbmF0aW9u+GNoYWluLiBCb3RoIGZlZSBhbmQgYW1vdW50IHdpbGwgYmUgc3VidHJhY3RlZCBmb3JtIHRoZSBjYWxsZXJzIGJhbGFuY2UuAA0BSWYgYGZlZWAgaXMgbm90IGhpZ2ggZW5vdWdoIHRvIGNvdmVyIGZvciB0aGUgZXhlY3V0aW9uIGNvc3RzIGluIHRoZeRkZXN0aW5hdGlvbiBjaGFpbiwgdGhlbiB0aGUgYXNzZXRzIHdpbGwgYmUgdHJhcHBlZCBpbiB0aGVEZGVzdGluYXRpb24gY2hhaW4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkucHRyYW5zZmVyX211bHRpYXNzZXRfd2l0aF9mZWUQARRhc3NldJ0GAUxCb3g8VmVyc2lvbmVkQXNzZXQ+AAEMZmVlnQYBTEJveDxWZXJzaW9uZWRBc3NldD4AARBkZXN0qQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdGEFASxXZWlnaHRMaW1pdAADVOxUcmFuc2ZlciBgQXNzZXRgIHNwZWNpZnlpbmcgdGhlIGZlZSBhbmQgYW1vdW50IGFzIHNlcGFyYXRlLgD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgDYYGZlZWAgaXMgdGhlIEFzc2V0IHRvIGJlIHNwZW50IHRvIHBheSBmb3IgZXhlY3V0aW9uIGluCQFkZXN0aW5hdGlvbiBjaGFpbi4gQm90aCBmZWUgYW5kIGFtb3VudCB3aWxsIGJlIHN1YnRyYWN0ZWQgZm9ybSB0aGURAWNhbGxlcnMgYmFsYW5jZSBGb3Igbm93IHdlIG9ubHkgYWNjZXB0IGZlZSBhbmQgYXNzZXQgaGF2aW5nIHRoZSBzYW1lOGBMb2NhdGlvbmAgaWQuAA0BSWYgYGZlZWAgaXMgbm90IGhpZ2ggZW5vdWdoIHRvIGNvdmVyIGZvciB0aGUgZXhlY3V0aW9uIGNvc3RzIGluIHRoZeRkZXN0aW5hdGlvbiBjaGFpbiwgdGhlbiB0aGUgYXNzZXRzIHdpbGwgYmUgdHJhcHBlZCBpbiB0aGVEZGVzdGluYXRpb24gY2hhaW4AEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuYHRyYW5zZmVyX211bHRpY3VycmVuY2llcxABKGN1cnJlbmNpZXOhBgGAVmVjPChUOjpDdXJyZW5jeUlkLCBUOjpCYWxhbmNlKT4AASBmZWVfaXRlbSgBDHUzMgABEGRlc3SpBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0AAQ8BQFUcmFuc2ZlciBzZXZlcmFsIGN1cnJlbmNpZXMgc3BlY2lmeWluZyB0aGUgaXRlbSB0byBiZSB1c2VkIGFzIGZlZQD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgANAWBmZWVfaXRlbWAgaXMgaW5kZXggb2YgdGhlIGN1cnJlbmNpZXMgdHVwbGUgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IccGF5bWVudAARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS5QdHJhbnNmZXJfbXVsdGlhc3NldHMQARhhc3NldHMtBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AASBmZWVfaXRlbSgBDHUzMgABEGRlc3SpBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0YQUBLFdlaWdodExpbWl0AAU8+FRyYW5zZmVyIHNldmVyYWwgYEFzc2V0YCBzcGVjaWZ5aW5nIHRoZSBpdGVtIHRvIGJlIHVzZWQgYXMgZmVlAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuAORgZmVlX2l0ZW1gIGlzIGluZGV4IG9mIHRoZSBBc3NldHMgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IccGF5bWVudAARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMunQYIDHhjbThWZXJzaW9uZWRBc3NldAABDAhWMwQADQUBOHYzOjpNdWx0aUFzc2V0AAMACFY0BAB5BQEkdjQ6OkFzc2V0AAQACFY1BADFBQEkdjU6OkFzc2V0AAUAAKEGAAACPQMApQYMZHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb24YcGFsbGV0EENhbGwEBFQAASREc2V0X2ludnVsbmVyYWJsZXMEAQxuZXdIAURWZWM8VDo6QWNjb3VudElkPgAANDEBU2V0IHRoZSBsaXN0IG9mIGludnVsbmVyYWJsZSAoZml4ZWQpIGNvbGxhdG9ycy4gVGhlc2UgY29sbGF0b3JzIG11c3QgZG8gc29tZdBwcmVwYXJhdGlvbiwgbmFtZWx5IHRvIGhhdmUgcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuAFkBVGhlIGNhbGwgd2lsbCByZW1vdmUgYW55IGFjY291bnRzIHRoYXQgaGF2ZSBub3QgcmVnaXN0ZXJlZCBrZXlzIGZyb20gdGhlIHNldC4gVGhhdCBpcyxdAWl0IGlzIG5vbi1hdG9taWM7IHRoZSBjYWxsZXIgYWNjZXB0cyBhbGwgYEFjY291bnRJZGBzIHBhc3NlZCBpbiBgbmV3YCBfaW5kaXZpZHVhbGx5XyBhczEBYWNjZXB0YWJsZSBJbnZ1bG5lcmFibGVzLCBhbmQgaXMgbm90IHByb3Bvc2luZyBhIF9zZXRfIG9mIG5ldyBJbnZ1bG5lcmFibGVzLgBZAVRoaXMgY2FsbCBkb2VzIG5vdCBtYWludGFpbiBtdXR1YWwgZXhjbHVzaXZpdHkgb2YgYEludnVsbmVyYWJsZXNgIGFuZCBgQ2FuZGlkYXRlc2AuIEl0YQFpcyByZWNvbW1lbmRlZCB0byB1c2UgYSBiYXRjaCBvZiBgYWRkX2ludnVsbmVyYWJsZWAgYW5kIGByZW1vdmVfaW52dWxuZXJhYmxlYCBpbnN0ZWFkLiBBUQFgYmF0Y2hfYWxsYCBjYW4gYWxzbyBiZSB1c2VkIHRvIGVuZm9yY2UgYXRvbWljaXR5LiBJZiBhbnkgY2FuZGlkYXRlcyBhcmUgaW5jbHVkZWQgaW5NAWBuZXdgLCB0aGV5IHNob3VsZCBiZSByZW1vdmVkIHdpdGggYHJlbW92ZV9pbnZ1bG5lcmFibGVfY2FuZGlkYXRlYCBhZnRlciBleGVjdXRpb24uAJRNdXN0IGJlIGNhbGxlZCBieSB0aGUgYFVwZGF0ZU9yaWdpbmAuWHNldF9kZXNpcmVkX2NhbmRpZGF0ZXMEAQxtYXgoAQx1MzIAARRVAVNldCB0aGUgaWRlYWwgbnVtYmVyIG9mIG5vbi1pbnZ1bG5lcmFibGUgY29sbGF0b3JzLiBJZiBsb3dlcmluZyB0aGlzIG51bWJlciwgdGhlbiB0aGVhAW51bWJlciBvZiBydW5uaW5nIGNvbGxhdG9ycyBjb3VsZCBiZSBoaWdoZXIgdGhhbiB0aGlzIGZpZ3VyZS4gQXNpZGUgZnJvbSB0aGF0IGVkZ2UgY2FzZSw1AXRoZXJlIHNob3VsZCBiZSBubyBvdGhlciB3YXkgdG8gaGF2ZSBtb3JlIGNhbmRpZGF0ZXMgdGhhbiB0aGUgZGVzaXJlZCBudW1iZXIuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuSHNldF9jYW5kaWRhY3lfYm9uZAQBEGJvbmRAATBCYWxhbmNlT2Y8VD4AAhx4U2V0IHRoZSBjYW5kaWRhY3kgYm9uZCBhbW91bnQuAFEBSWYgdGhlIGNhbmRpZGFjeSBib25kIGlzIGluY3JlYXNlZCBieSB0aGlzIGNhbGwsIGFsbCBjdXJyZW50IGNhbmRpZGF0ZXMgd2hpY2ggaGF2ZSBhTQFkZXBvc2l0IGxvd2VyIHRoYW4gdGhlIG5ldyBib25kIHdpbGwgYmUga2lja2VkIGZyb20gdGhlIGxpc3QgYW5kIGdldCB0aGVpciBkZXBvc2l0cxRiYWNrLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLlRyZWdpc3Rlcl9hc19jYW5kaWRhdGUAAxBBAVJlZ2lzdGVyIHRoaXMgYWNjb3VudCBhcyBhIGNvbGxhdG9yIGNhbmRpZGF0ZS4gVGhlIGFjY291bnQgbXVzdCAoYSkgYWxyZWFkeSBoYXZlHQFyZWdpc3RlcmVkIHNlc3Npb24ga2V5cyBhbmQgKGIpIGJlIGFibGUgdG8gcmVzZXJ2ZSB0aGUgYENhbmRpZGFjeUJvbmRgLgDcVGhpcyBjYWxsIGlzIG5vdCBhdmFpbGFibGUgdG8gYEludnVsbmVyYWJsZWAgY29sbGF0b3JzLjBsZWF2ZV9pbnRlbnQABBRVAURlcmVnaXN0ZXIgYG9yaWdpbmAgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIE5vdGUgdGhhdCB0aGUgY29sbGF0b3IgY2FuIG9ubHkgbGVhdmUgb24NAXNlc3Npb24gY2hhbmdlLiBUaGUgYENhbmRpZGFjeUJvbmRgIHdpbGwgYmUgdW5yZXNlcnZlZCBpbW1lZGlhdGVseS4AGQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIHRoZSB0b3RhbCBudW1iZXIgb2YgY2FuZGlkYXRlcyB3b3VsZCBkcm9wIGJlbG93XGBNaW5FbGlnaWJsZUNvbGxhdG9yc2AuQGFkZF9pbnZ1bG5lcmFibGUEAQx3aG8AATBUOjpBY2NvdW50SWQABRBFAUFkZCBhIG5ldyBhY2NvdW50IGB3aG9gIHRvIHRoZSBsaXN0IG9mIGBJbnZ1bG5lcmFibGVzYCBjb2xsYXRvcnMuIGB3aG9gIG11c3QgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMuIElmIGB3aG9gIGlzIGEgY2FuZGlkYXRlLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZC4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5McmVtb3ZlX2ludnVsbmVyYWJsZQQBDHdobwABMFQ6OkFjY291bnRJZAAGEGEBUmVtb3ZlIGFuIGFjY291bnQgYHdob2AgZnJvbSB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgSW52dWxuZXJhYmxlc2AgbXVzdChiZSBzb3J0ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuLHVwZGF0ZV9ib25kBAEsbmV3X2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4ABxxdAVVwZGF0ZSB0aGUgY2FuZGlkYWN5IGJvbmQgb2YgY29sbGF0b3IgY2FuZGlkYXRlIGBvcmlnaW5gIHRvIGEgbmV3IGFtb3VudCBgbmV3X2RlcG9zaXRgLgBBAVNldHRpbmcgYSBgbmV3X2RlcG9zaXRgIHRoYXQgaXMgbG93ZXIgdGhhbiB0aGUgY3VycmVudCBkZXBvc2l0IHdoaWxlIGBvcmlnaW5gIGlz4G9jY3VweWluZyBhIHRvcC1gRGVzaXJlZENhbmRpZGF0ZXNgIHNsb3QgaXMgbm90IGFsbG93ZWQuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBgb3JpZ2luYCBpcyBub3QgYSBjb2xsYXRvciBjYW5kaWRhdGUsIHRoZSB1cGRhdGVkIGJvbmQgaXMgbG93ZXIZAXRoYW4gdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQsIGFuZC9vciB0aGUgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC5MdGFrZV9jYW5kaWRhdGVfc2xvdAgBHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AARh0YXJnZXQAATBUOjpBY2NvdW50SWQACBxNAVRoZSBjYWxsZXIgYG9yaWdpbmAgcmVwbGFjZXMgYSBjYW5kaWRhdGUgYHRhcmdldGAgaW4gdGhlIGNvbGxhdG9yIGNhbmRpZGF0ZSBsaXN0IGJ5VQFyZXNlcnZpbmcgYGRlcG9zaXRgLiBUaGUgYW1vdW50IGBkZXBvc2l0YCByZXNlcnZlZCBieSB0aGUgY2FsbGVyIG11c3QgYmUgZ3JlYXRlciB0aGFu4HRoZSBleGlzdGluZyBib25kIG9mIHRoZSB0YXJnZXQgaXQgaXMgdHJ5aW5nIHRvIHJlcGxhY2UuAFkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgY2FsbGVyIGlzIGFscmVhZHkgYSBjb2xsYXRvciBjYW5kaWRhdGUgb3IgaW52dWxuZXJhYmxlLCB0aGVVAWNhbGxlciBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLCB0aGUgdGFyZ2V0IGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSy8YW5kL29yIHRoZSBgZGVwb3NpdGAgYW1vdW50IGNhbm5vdCBiZSByZXNlcnZlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqQYMOHBhbGxldF9zZXNzaW9uGHBhbGxldBBDYWxsBARUAAEIIHNldF9rZXlzCAEQa2V5c60GARxUOjpLZXlzAAEUcHJvb2YUARxWZWM8dTg+AAAk5FNldHMgdGhlIHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIgdG8gYGtleXNgLh0BQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7AVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uANBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuADQjIyBDb21wbGV4aXR5WQEtIGBPKDEpYC4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZiBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyAgIGZpeGVkLihwdXJnZV9rZXlzAAEwyFJlbW92ZXMgYW55IHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIuAMBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgZWl0aGVyIGJlXQFjb252ZXJ0aWJsZSB0byBhIHZhbGlkYXRvciBJRCB1c2luZyB0aGUgY2hhaW4ncyB0eXBpY2FsIGFkZHJlc3Npbmcgc3lzdGVtICh0aGlzIHVzdWFsbHlRAW1lYW5zIGJlaW5nIGEgY29udHJvbGxlciBhY2NvdW50KSBvciBkaXJlY3RseSBjb252ZXJ0aWJsZSBpbnRvIGEgdmFsaWRhdG9yIElEICh3aGljaJR1c3VhbGx5IG1lYW5zIGJlaW5nIGEgc3Rhc2ggYWNjb3VudCkuADQjIyBDb21wbGV4aXR5PQEtIGBPKDEpYCBpbiBudW1iZXIgb2Yga2V5IHR5cGVzLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mmCAgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgZml4ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLq0GDDxoeWRyYWR4X3J1bnRpbWUYb3BhcXVlLFNlc3Npb25LZXlzAAAEARBhdXJhsQYBxDxBdXJhIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAALEGEERzcF9jb25zZW5zdXNfYXVyYRxzcjI1NTE5LGFwcF9zcjI1NTE5GFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAALUGDERwYWxsZXRfZW1hX29yYWNsZRhwYWxsZXQQQ2FsbAQEVAABJChhZGRfb3JhY2xlCAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAACD4QWRkIGFuIG9yYWNsZSB0byB0aGUgd2hpdGVsaXN0IHNvIGl0IGlzIHRyYWNrZWQgYnkgdGhlIHBhbGxldC4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IGBBdXRob3JpdHlPcmlnaW5giC0gYHNvdXJjZWA6IGRhdGEgc291cmNlIGlkZW50aWZpZXKMLSBgYXNzZXRzYDogdGhlIGFzc2V0IHBhaXIgdG8gdHJhY2sAvEVtaXRzIGBBZGRlZFRvV2hpdGVsaXN0YCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuNHJlbW92ZV9vcmFjbGUIARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQABIBkBUmVtb3ZlIGFuIG9yYWNsZSBmcm9tIHRoZSB3aGl0ZWxpc3QgYW5kIGRlbGV0ZSBhbGwgaXRzIHN0b3JlZCBlbnRyaWVzLgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogYEF1dGhvcml0eU9yaWdpbmCILSBgc291cmNlYDogZGF0YSBzb3VyY2UgaWRlbnRpZmllcqwtIGBhc3NldHNgOiB0aGUgYXNzZXQgcGFpciB0byBzdG9wIHRyYWNraW5nAMxFbWl0cyBgUmVtb3ZlZEZyb21XaGl0ZWxpc3RgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5UdXBkYXRlX2JpZnJvc3Rfb3JhY2xlDAEcYXNzZXRfYakEAZBCb3g8cG9sa2Fkb3RfeGNtOjpWZXJzaW9uZWRMb2NhdGlvbj4AARxhc3NldF9iqQQBkEJveDxwb2xrYWRvdF94Y206OlZlcnNpb25lZExvY2F0aW9uPgABFHByaWNlfQIBSChCYWxhbmNlLCBCYWxhbmNlKQACJFUBVXBkYXRlIGFuIG9yYWNsZSBlbnRyeSBmb3IgQklGUk9TVF9TT1VSQ0UuIFRoaW4gd3JhcHBlciBhcm91bmQgYHNldF9leHRlcm5hbF9vcmFjbGVgLgAsUGFyYW1ldGVyczppAS0gYG9yaWdpbmA6IHNpZ25lZCBvcmlnaW4g4oCUIG11c3QgYmUgYXV0aG9yaXplZCBmb3IgdGhlIHNwZWNpZmljIGAoQklGUk9TVF9TT1VSQ0UsIHBhaXIpYLAtIGBhc3NldF9hYDogWENNIGxvY2F0aW9uIG9mIHRoZSBmaXJzdCBhc3NldLQtIGBhc3NldF9iYDogWENNIGxvY2F0aW9uIG9mIHRoZSBzZWNvbmQgYXNzZXS4LSBgcHJpY2VgOiBwcmljZSBhcyBgKG51bWVyYXRvciwgZGVub21pbmF0b3IpYADYRW1pdHMgYE9yYWNsZVVwZGF0ZWRgIGV2ZW50IG9uIHRoZSBuZXh0IGBvbl9maW5hbGl6ZWAuTHNldF9leHRlcm5hbF9vcmFjbGUQARhzb3VyY2UhAQEYU291cmNlAAEcYXNzZXRfYakEAZBCb3g8cG9sa2Fkb3RfeGNtOjpWZXJzaW9uZWRMb2NhdGlvbj4AARxhc3NldF9iqQQBkEJveDxwb2xrYWRvdF94Y206OlZlcnNpb25lZExvY2F0aW9uPgABFHByaWNlfQIBSChCYWxhbmNlLCBCYWxhbmNlKQAGNNRTdWJtaXQgYW4gb3JhY2xlIHByaWNlIHVwZGF0ZSBmb3IgYW4gZXh0ZXJuYWwgc291cmNlLgCwVGhlIGNhbGwgaXMgZmVlbGVzcyBvbiBzdWNjZXNzIChgUGF5czo6Tm9gKS4ALFBhcmFtZXRlcnM6WQEtIGBvcmlnaW5gOiBzaWduZWQgb3JpZ2luIOKAlCBtdXN0IGJlIGF1dGhvcml6ZWQgZm9yIHRoZSBzcGVjaWZpYyBgKHNvdXJjZSwgcGFpcilgIHZpYWggIGBhZGRfYXV0aG9yaXplZF9hY2NvdW50YGkBLSBgc291cmNlYDogZXh0ZXJuYWwgc291cmNlIGlkZW50aWZpZXIgKG11c3QgYmUgcmVnaXN0ZXJlZCB2aWEgYHJlZ2lzdGVyX2V4dGVybmFsX3NvdXJjZWApsC0gYGFzc2V0X2FgOiBYQ00gbG9jYXRpb24gb2YgdGhlIGZpcnN0IGFzc2V0tC0gYGFzc2V0X2JgOiBYQ00gbG9jYXRpb24gb2YgdGhlIHNlY29uZCBhc3NldCEBLSBgcHJpY2VgOiBwcmljZSBhcyBgKG51bWVyYXRvciwgZGVub21pbmF0b3IpYCDigJQgYm90aCBtdXN0IGJlIG5vbi16ZXJvANhFbWl0cyBgT3JhY2xlVXBkYXRlZGAgZXZlbnQgb24gdGhlIG5leHQgYG9uX2ZpbmFsaXplYC5oc2V0X2V4dGVybmFsX29yYWNsZV9ieV9pZHMQARhzb3VyY2UhAQEYU291cmNlAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABFHByaWNlfQIBSChCYWxhbmNlLCBCYWxhbmNlKQAISAEBVXBkYXRlIGFuIGV4dGVybmFsIG9yYWNsZSBlbnRyeSB1c2luZyBsb2NhbCBgQXNzZXRJZGBzIGRpcmVjdGx5LgBBAUNoZWFwZXIgdmFyaWFudCBvZiBgc2V0X2V4dGVybmFsX29yYWNsZWAgZm9yIGNhbGxlcnMgdGhhdCBhbHJlYWR5IGtub3cgdGhlIGxvY2FsLQFBc3NldElkcyDigJQgc2tpcHMgdGhlIGBWZXJzaW9uZWRMb2NhdGlvbmAg4oaSIGBBc3NldElkYCBjb252ZXJzaW9uIGFuZCB0aGUtAWBBc3NldFJlZ2lzdHJ5OjpMb2NhdGlvbkFzc2V0c2Agc3RvcmFnZSByZWFkLiBBdXRob3JpemF0aW9uIHNoYXJlcyB0aGUgc2FtZdRgQXV0aG9yaXplZEFjY291bnRzYCBzdG9yYWdlIGFzIHRoZSBsb2NhdGlvbiB2YXJpYW50LgAsUGFyYW1ldGVyczpZAS0gYG9yaWdpbmA6IHNpZ25lZCBvcmlnaW4g4oCUIG11c3QgYmUgYXV0aG9yaXplZCBmb3IgdGhlIHNwZWNpZmljIGAoc291cmNlLCBwYWlyKWAgdmlhaCAgYGFkZF9hdXRob3JpemVkX2FjY291bnRgaQEtIGBzb3VyY2VgOiBleHRlcm5hbCBzb3VyY2UgaWRlbnRpZmllciAobXVzdCBiZSByZWdpc3RlcmVkIHZpYSBgcmVnaXN0ZXJfZXh0ZXJuYWxfc291cmNlYCm0LSBgYXNzZXRfYWA6IGxvY2FsIEFzc2V0SWQgb2YgdGhlIGZpcnN0IGFzc2V0uC0gYGFzc2V0X2JgOiBsb2NhbCBBc3NldElkIG9mIHRoZSBzZWNvbmQgYXNzZXQhAS0gYHByaWNlYDogcHJpY2UgYXMgYChudW1lcmF0b3IsIGRlbm9taW5hdG9yKWAg4oCUIGJvdGggbXVzdCBiZSBub24temVybwCwVGhlIGNhbGwgaXMgZmVlbGVzcyBvbiBzdWNjZXNzIChgUGF5czo6Tm9gKS4A2EVtaXRzIGBPcmFjbGVVcGRhdGVkYCBldmVudCBvbiB0aGUgbmV4dCBgb25fZmluYWxpemVgLmByZWdpc3Rlcl9leHRlcm5hbF9zb3VyY2UEARhzb3VyY2UhAQEYU291cmNlAAMcmFJlZ2lzdGVyIGEgbmV3IGV4dGVybmFsIG9yYWNsZSBzb3VyY2UuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBgQXV0aG9yaXR5T3JpZ2luYMAtIGBzb3VyY2VgOiA4LWJ5dGUgc291cmNlIGlkZW50aWZpZXIgdG8gcmVnaXN0ZXIA3EVtaXRzIGBFeHRlcm5hbFNvdXJjZVJlZ2lzdGVyZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5YcmVtb3ZlX2V4dGVybmFsX3NvdXJjZQQBGHNvdXJjZSEBARhTb3VyY2UABSBVAVJlbW92ZSBhbiBleHRlcm5hbCBvcmFjbGUgc291cmNlLCBpdHMgcGVyLXBhaXIgYXV0aG9yaXphdGlvbnMsIGFuZCBBTEwgb3JhY2xlIGRhdGEgaXRNAWV2ZXIgd3JvdGUgKGJvdGggY29tbWl0dGVkIGBPcmFjbGVzYCByb3dzIGFuZCBhbnkgaW4tZmxpZ2h0IGBBY2N1bXVsYXRvcmAgZW50cmllcykuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBgQXV0aG9yaXR5T3JpZ2luYJwtIGBzb3VyY2VgOiBzb3VyY2UgaWRlbnRpZmllciB0byByZW1vdmUA0EVtaXRzIGBFeHRlcm5hbFNvdXJjZVJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5YYWRkX2F1dGhvcml6ZWRfYWNjb3VudAwBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAEMDUBQXV0aG9yaXplIGBhY2NvdW50YCB0byBzdWJtaXQgb3JhY2xlIHVwZGF0ZXMgZm9yIGEgc3BlY2lmaWMgYChzb3VyY2UsIHBhaXIpYC4ANQFBdXRob3JpemF0aW9uIGlzIHNjb3BlZCBwZXItcGFpciBzbyBhIGNvbXByb21pc2VkIGFjY291bnQgY2FuIG9ubHkgdXBkYXRlIHRoZfBwYWlycyBpdCB3YXMgZXhwbGljaXRseSBncmFudGVkLCBsaW1pdGluZyBERG9TIGJsYXN0IHJhZGl1cy4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IGBBdXRob3JpdHlPcmlnaW5gDQEtIGBzb3VyY2VgOiBleHRlcm5hbCBzb3VyY2UgaWRlbnRpZmllciAobXVzdCBhbHJlYWR5IGJlIHJlZ2lzdGVyZWQpCQEtIGBhc3NldHNgOiB0aGUgYXNzZXQgcGFpciB0byBhdXRob3JpemUg4oCUIHN0b3JlZCBpbiBvcmRlcmVkIGZvcm2ULSBgYWNjb3VudGA6IHRoZSBhY2NvdW50IHRvIGF1dGhvcml6ZQDURW1pdHMgYEF1dGhvcml6ZWRBY2NvdW50QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5kcmVtb3ZlX2F1dGhvcml6ZWRfYWNjb3VudAwBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAHJEEBUmV2b2tlIG9yYWNsZS11cGRhdGUgYXV0aG9yaXphdGlvbiBmb3IgYGFjY291bnRgIG9uIGEgc3BlY2lmaWMgYChzb3VyY2UsIHBhaXIpYC4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IGBBdXRob3JpdHlPcmlnaW5gDQEtIGBzb3VyY2VgOiBleHRlcm5hbCBzb3VyY2UgaWRlbnRpZmllciAobXVzdCBhbHJlYWR5IGJlIHJlZ2lzdGVyZWQpAQEtIGBhc3NldHNgOiB0aGUgYXNzZXQgcGFpciB0byByZXZva2Ug4oCUIG1hdGNoZWQgaW4gb3JkZXJlZCBmb3JtiC0gYGFjY291bnRgOiB0aGUgYWNjb3VudCB0byByZXZva2UA3EVtaXRzIGBBdXRob3JpemVkQWNjb3VudFJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuuQYMQHBhbGxldF9icm9hZGNhc3QYcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuvQYMUHBhbGxldF9mZWVfcHJvY2Vzc29yGHBhbGxldBBDYWxsBARUAAEEHGNvbnZlcnQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAASoTWFudWFsIGNvbnZlcnNpb24gdHJpZ2dlci4gUGVybWlzc2lvbmxlc3MuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsEGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc1RjaGVja19ub25femVyb19zZW5kZXJIQ2hlY2tOb25aZXJvU2VuZGVyBARUAAAAAMUGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0hjaGVja19zcGVjX3ZlcnNpb25AQ2hlY2tTcGVjVmVyc2lvbgQEVAAAAADJBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNAY2hlY2tfdHhfdmVyc2lvbjhDaGVja1R4VmVyc2lvbgQEVAAAAADNBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM0Y2hlY2tfZ2VuZXNpczBDaGVja0dlbmVzaXMEBFQAAAAA0QYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zPGNoZWNrX21vcnRhbGl0eThDaGVja01vcnRhbGl0eQQEVAAABADVBgEMRXJhAADVBhAoc3BfcnVudGltZRxnZW5lcmljDGVyYQxFcmEAAQEEIEltbW9ydGFsAAAAHE1vcnRhbDEEAAgAAAEAHE1vcnRhbDIEAAgAAAIAHE1vcnRhbDMEAAgAAAMAHE1vcnRhbDQEAAgAAAQAHE1vcnRhbDUEAAgAAAUAHE1vcnRhbDYEAAgAAAYAHE1vcnRhbDcEAAgAAAcAHE1vcnRhbDgEAAgAAAgAHE1vcnRhbDkEAAgAAAkAIE1vcnRhbDEwBAAIAAAKACBNb3J0YWwxMQQACAAACwAgTW9ydGFsMTIEAAgAAAwAIE1vcnRhbDEzBAAIAAANACBNb3J0YWwxNAQACAAADgAgTW9ydGFsMTUEAAgAAA8AIE1vcnRhbDE2BAAIAAAQACBNb3J0YWwxNwQACAAAEQAgTW9ydGFsMTgEAAgAABIAIE1vcnRhbDE5BAAIAAATACBNb3J0YWwyMAQACAAAFAAgTW9ydGFsMjEEAAgAABUAIE1vcnRhbDIyBAAIAAAWACBNb3J0YWwyMwQACAAAFwAgTW9ydGFsMjQEAAgAABgAIE1vcnRhbDI1BAAIAAAZACBNb3J0YWwyNgQACAAAGgAgTW9ydGFsMjcEAAgAABsAIE1vcnRhbDI4BAAIAAAcACBNb3J0YWwyOQQACAAAHQAgTW9ydGFsMzAEAAgAAB4AIE1vcnRhbDMxBAAIAAAfACBNb3J0YWwzMgQACAAAIAAgTW9ydGFsMzMEAAgAACEAIE1vcnRhbDM0BAAIAAAiACBNb3J0YWwzNQQACAAAIwAgTW9ydGFsMzYEAAgAACQAIE1vcnRhbDM3BAAIAAAlACBNb3J0YWwzOAQACAAAJgAgTW9ydGFsMzkEAAgAACcAIE1vcnRhbDQwBAAIAAAoACBNb3J0YWw0MQQACAAAKQAgTW9ydGFsNDIEAAgAACoAIE1vcnRhbDQzBAAIAAArACBNb3J0YWw0NAQACAAALAAgTW9ydGFsNDUEAAgAAC0AIE1vcnRhbDQ2BAAIAAAuACBNb3J0YWw0NwQACAAALwAgTW9ydGFsNDgEAAgAADAAIE1vcnRhbDQ5BAAIAAAxACBNb3J0YWw1MAQACAAAMgAgTW9ydGFsNTEEAAgAADMAIE1vcnRhbDUyBAAIAAA0ACBNb3J0YWw1MwQACAAANQAgTW9ydGFsNTQEAAgAADYAIE1vcnRhbDU1BAAIAAA3ACBNb3J0YWw1NgQACAAAOAAgTW9ydGFsNTcEAAgAADkAIE1vcnRhbDU4BAAIAAA6ACBNb3J0YWw1OQQACAAAOwAgTW9ydGFsNjAEAAgAADwAIE1vcnRhbDYxBAAIAAA9ACBNb3J0YWw2MgQACAAAPgAgTW9ydGFsNjMEAAgAAD8AIE1vcnRhbDY0BAAIAABAACBNb3J0YWw2NQQACAAAQQAgTW9ydGFsNjYEAAgAAEIAIE1vcnRhbDY3BAAIAABDACBNb3J0YWw2OAQACAAARAAgTW9ydGFsNjkEAAgAAEUAIE1vcnRhbDcwBAAIAABGACBNb3J0YWw3MQQACAAARwAgTW9ydGFsNzIEAAgAAEgAIE1vcnRhbDczBAAIAABJACBNb3J0YWw3NAQACAAASgAgTW9ydGFsNzUEAAgAAEsAIE1vcnRhbDc2BAAIAABMACBNb3J0YWw3NwQACAAATQAgTW9ydGFsNzgEAAgAAE4AIE1vcnRhbDc5BAAIAABPACBNb3J0YWw4MAQACAAAUAAgTW9ydGFsODEEAAgAAFEAIE1vcnRhbDgyBAAIAABSACBNb3J0YWw4MwQACAAAUwAgTW9ydGFsODQEAAgAAFQAIE1vcnRhbDg1BAAIAABVACBNb3J0YWw4NgQACAAAVgAgTW9ydGFsODcEAAgAAFcAIE1vcnRhbDg4BAAIAABYACBNb3J0YWw4OQQACAAAWQAgTW9ydGFsOTAEAAgAAFoAIE1vcnRhbDkxBAAIAABbACBNb3J0YWw5MgQACAAAXAAgTW9ydGFsOTMEAAgAAF0AIE1vcnRhbDk0BAAIAABeACBNb3J0YWw5NQQACAAAXwAgTW9ydGFsOTYEAAgAAGAAIE1vcnRhbDk3BAAIAABhACBNb3J0YWw5OAQACAAAYgAgTW9ydGFsOTkEAAgAAGMAJE1vcnRhbDEwMAQACAAAZAAkTW9ydGFsMTAxBAAIAABlACRNb3J0YWwxMDIEAAgAAGYAJE1vcnRhbDEwMwQACAAAZwAkTW9ydGFsMTA0BAAIAABoACRNb3J0YWwxMDUEAAgAAGkAJE1vcnRhbDEwNgQACAAAagAkTW9ydGFsMTA3BAAIAABrACRNb3J0YWwxMDgEAAgAAGwAJE1vcnRhbDEwOQQACAAAbQAkTW9ydGFsMTEwBAAIAABuACRNb3J0YWwxMTEEAAgAAG8AJE1vcnRhbDExMgQACAAAcAAkTW9ydGFsMTEzBAAIAABxACRNb3J0YWwxMTQEAAgAAHIAJE1vcnRhbDExNQQACAAAcwAkTW9ydGFsMTE2BAAIAAB0ACRNb3J0YWwxMTcEAAgAAHUAJE1vcnRhbDExOAQACAAAdgAkTW9ydGFsMTE5BAAIAAB3ACRNb3J0YWwxMjAEAAgAAHgAJE1vcnRhbDEyMQQACAAAeQAkTW9ydGFsMTIyBAAIAAB6ACRNb3J0YWwxMjMEAAgAAHsAJE1vcnRhbDEyNAQACAAAfAAkTW9ydGFsMTI1BAAIAAB9ACRNb3J0YWwxMjYEAAgAAH4AJE1vcnRhbDEyNwQACAAAfwAkTW9ydGFsMTI4BAAIAACAACRNb3J0YWwxMjkEAAgAAIEAJE1vcnRhbDEzMAQACAAAggAkTW9ydGFsMTMxBAAIAACDACRNb3J0YWwxMzIEAAgAAIQAJE1vcnRhbDEzMwQACAAAhQAkTW9ydGFsMTM0BAAIAACGACRNb3J0YWwxMzUEAAgAAIcAJE1vcnRhbDEzNgQACAAAiAAkTW9ydGFsMTM3BAAIAACJACRNb3J0YWwxMzgEAAgAAIoAJE1vcnRhbDEzOQQACAAAiwAkTW9ydGFsMTQwBAAIAACMACRNb3J0YWwxNDEEAAgAAI0AJE1vcnRhbDE0MgQACAAAjgAkTW9ydGFsMTQzBAAIAACPACRNb3J0YWwxNDQEAAgAAJAAJE1vcnRhbDE0NQQACAAAkQAkTW9ydGFsMTQ2BAAIAACSACRNb3J0YWwxNDcEAAgAAJMAJE1vcnRhbDE0OAQACAAAlAAkTW9ydGFsMTQ5BAAIAACVACRNb3J0YWwxNTAEAAgAAJYAJE1vcnRhbDE1MQQACAAAlwAkTW9ydGFsMTUyBAAIAACYACRNb3J0YWwxNTMEAAgAAJkAJE1vcnRhbDE1NAQACAAAmgAkTW9ydGFsMTU1BAAIAACbACRNb3J0YWwxNTYEAAgAAJwAJE1vcnRhbDE1NwQACAAAnQAkTW9ydGFsMTU4BAAIAACeACRNb3J0YWwxNTkEAAgAAJ8AJE1vcnRhbDE2MAQACAAAoAAkTW9ydGFsMTYxBAAIAAChACRNb3J0YWwxNjIEAAgAAKIAJE1vcnRhbDE2MwQACAAAowAkTW9ydGFsMTY0BAAIAACkACRNb3J0YWwxNjUEAAgAAKUAJE1vcnRhbDE2NgQACAAApgAkTW9ydGFsMTY3BAAIAACnACRNb3J0YWwxNjgEAAgAAKgAJE1vcnRhbDE2OQQACAAAqQAkTW9ydGFsMTcwBAAIAACqACRNb3J0YWwxNzEEAAgAAKsAJE1vcnRhbDE3MgQACAAArAAkTW9ydGFsMTczBAAIAACtACRNb3J0YWwxNzQEAAgAAK4AJE1vcnRhbDE3NQQACAAArwAkTW9ydGFsMTc2BAAIAACwACRNb3J0YWwxNzcEAAgAALEAJE1vcnRhbDE3OAQACAAAsgAkTW9ydGFsMTc5BAAIAACzACRNb3J0YWwxODAEAAgAALQAJE1vcnRhbDE4MQQACAAAtQAkTW9ydGFsMTgyBAAIAAC2ACRNb3J0YWwxODMEAAgAALcAJE1vcnRhbDE4NAQACAAAuAAkTW9ydGFsMTg1BAAIAAC5ACRNb3J0YWwxODYEAAgAALoAJE1vcnRhbDE4NwQACAAAuwAkTW9ydGFsMTg4BAAIAAC8ACRNb3J0YWwxODkEAAgAAL0AJE1vcnRhbDE5MAQACAAAvgAkTW9ydGFsMTkxBAAIAAC/ACRNb3J0YWwxOTIEAAgAAMAAJE1vcnRhbDE5MwQACAAAwQAkTW9ydGFsMTk0BAAIAADCACRNb3J0YWwxOTUEAAgAAMMAJE1vcnRhbDE5NgQACAAAxAAkTW9ydGFsMTk3BAAIAADFACRNb3J0YWwxOTgEAAgAAMYAJE1vcnRhbDE5OQQACAAAxwAkTW9ydGFsMjAwBAAIAADIACRNb3J0YWwyMDEEAAgAAMkAJE1vcnRhbDIwMgQACAAAygAkTW9ydGFsMjAzBAAIAADLACRNb3J0YWwyMDQEAAgAAMwAJE1vcnRhbDIwNQQACAAAzQAkTW9ydGFsMjA2BAAIAADOACRNb3J0YWwyMDcEAAgAAM8AJE1vcnRhbDIwOAQACAAA0AAkTW9ydGFsMjA5BAAIAADRACRNb3J0YWwyMTAEAAgAANIAJE1vcnRhbDIxMQQACAAA0wAkTW9ydGFsMjEyBAAIAADUACRNb3J0YWwyMTMEAAgAANUAJE1vcnRhbDIxNAQACAAA1gAkTW9ydGFsMjE1BAAIAADXACRNb3J0YWwyMTYEAAgAANgAJE1vcnRhbDIxNwQACAAA2QAkTW9ydGFsMjE4BAAIAADaACRNb3J0YWwyMTkEAAgAANsAJE1vcnRhbDIyMAQACAAA3AAkTW9ydGFsMjIxBAAIAADdACRNb3J0YWwyMjIEAAgAAN4AJE1vcnRhbDIyMwQACAAA3wAkTW9ydGFsMjI0BAAIAADgACRNb3J0YWwyMjUEAAgAAOEAJE1vcnRhbDIyNgQACAAA4gAkTW9ydGFsMjI3BAAIAADjACRNb3J0YWwyMjgEAAgAAOQAJE1vcnRhbDIyOQQACAAA5QAkTW9ydGFsMjMwBAAIAADmACRNb3J0YWwyMzEEAAgAAOcAJE1vcnRhbDIzMgQACAAA6AAkTW9ydGFsMjMzBAAIAADpACRNb3J0YWwyMzQEAAgAAOoAJE1vcnRhbDIzNQQACAAA6wAkTW9ydGFsMjM2BAAIAADsACRNb3J0YWwyMzcEAAgAAO0AJE1vcnRhbDIzOAQACAAA7gAkTW9ydGFsMjM5BAAIAADvACRNb3J0YWwyNDAEAAgAAPAAJE1vcnRhbDI0MQQACAAA8QAkTW9ydGFsMjQyBAAIAADyACRNb3J0YWwyNDMEAAgAAPMAJE1vcnRhbDI0NAQACAAA9AAkTW9ydGFsMjQ1BAAIAAD1ACRNb3J0YWwyNDYEAAgAAPYAJE1vcnRhbDI0NwQACAAA9wAkTW9ydGFsMjQ4BAAIAAD4ACRNb3J0YWwyNDkEAAgAAPkAJE1vcnRhbDI1MAQACAAA+gAkTW9ydGFsMjUxBAAIAAD7ACRNb3J0YWwyNTIEAAgAAPwAJE1vcnRhbDI1MwQACAAA/QAkTW9ydGFsMjU0BAAIAAD+ACRNb3J0YWwyNTUEAAgAAP8AANkGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9ucyxjaGVja19ub25jZShDaGVja05vbmNlBARUAAAEAGwBIFQ6Ok5vbmNlAADdBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMwY2hlY2tfd2VpZ2h0LENoZWNrV2VpZ2h0BARUAAAAAOEGCGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudGBDaGFyZ2VUcmFuc2FjdGlvblBheW1lbnQEBFQAAAQAPAEwQmFsYW5jZU9mPFQ+AADlBgg0cGFsbGV0X2NsYWltczRWYWxpZGF0ZUNsYWltBARUAAAAAOkGCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbkRDaGVja01ldGFkYXRhSGFzaAQEVAAABAEQbW9kZe0GARBNb2RlAADtBgh0ZnJhbWVfbWV0YWRhdGFfaGFzaF9leHRlbnNpb24QTW9kZQABCCBEaXNhYmxlZAAAABxFbmFibGVkAAEAAPEGBBhPcHRpb24EBFQBBAEIEE5vbmUAAAAQU29tZQQABAAAAQAA9QYIMGZyYW1lX3N5c3RlbSxBY2NvdW50SW5mbwgUTm9uY2UBKCxBY2NvdW50RGF0YQH5BgAUARRub25jZSgBFE5vbmNlAAEkY29uc3VtZXJzKAEgUmVmQ291bnQAASRwcm92aWRlcnMoASBSZWZDb3VudAABLHN1ZmZpY2llbnRzKAEgUmVmQ291bnQAARBkYXRh+QYBLEFjY291bnREYXRhAAD5Bgw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEFjY291bnREYXRhBBxCYWxhbmNlAUAAEAEQZnJlZUABHEJhbGFuY2UAASByZXNlcnZlZEABHEJhbGFuY2UAARhmcm96ZW5AARxCYWxhbmNlAAEUZmxhZ3P9BgEoRXh0cmFGbGFncwAA/QYMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEAEABEHUxMjgAAAEHDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQB5AAMARhub3JtYWzkAQRUAAEsb3BlcmF0aW9uYWzkAQRUAAEkbWFuZGF0b3J55AEEVAAABQcAAAIJBwAJBwgwZnJhbWVfc3lzdGVtLEV2ZW50UmVjb3JkCARFAQ0HBFQBLAAMARRwaGFzZfkIARRQaGFzZQABFGV2ZW50DQcBBEUAARh0b3BpY3PsARhWZWM8VD4AAA0HCDxoeWRyYWR4X3J1bnRpbWUwUnVudGltZUV2ZW50AAEVARhTeXN0ZW0EABEHAXBmcmFtZV9zeXN0ZW06OkV2ZW50PFJ1bnRpbWU+AAEAIEJhbGFuY2VzBAA5BwF8cGFsbGV0X2JhbGFuY2VzOjpFdmVudDxSdW50aW1lPgAHAEhUcmFuc2FjdGlvblBheW1lbnQEAEEHAahwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudDo6RXZlbnQ8UnVudGltZT4ACQBcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQEAEUHAcBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudDo6RXZlbnQ8UnVudGltZT4AywAgVHJlYXN1cnkEAEkHAXxwYWxsZXRfdHJlYXN1cnk6OkV2ZW50PFJ1bnRpbWU+AAsAHFV0aWxpdHkEAE0HAVRwYWxsZXRfdXRpbGl0eTo6RXZlbnQADQAgUHJlaW1hZ2UEAFUHAXxwYWxsZXRfcHJlaW1hZ2U6OkV2ZW50PFJ1bnRpbWU+AA8AIElkZW50aXR5BABZBwF8cGFsbGV0X2lkZW50aXR5OjpFdmVudDxSdW50aW1lPgARACREZW1vY3JhY3kEAF0HAYBwYWxsZXRfZGVtb2NyYWN5OjpFdmVudDxSdW50aW1lPgATAEhUZWNobmljYWxDb21taXR0ZWUEAGUHAfxwYWxsZXRfY29sbGVjdGl2ZTo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2NvbGxlY3RpdmU6Okluc3RhbmNlMj4AGQAUUHJveHkEAGkHAXBwYWxsZXRfcHJveHk6OkV2ZW50PFJ1bnRpbWU+AB0AIE11bHRpc2lnBABxBwF8cGFsbGV0X211bHRpc2lnOjpFdmVudDxSdW50aW1lPgAfABxVbmlxdWVzBAB1BwF4cGFsbGV0X3VuaXF1ZXM6OkV2ZW50PFJ1bnRpbWU+ACAASFN0YXRlVHJpZU1pZ3JhdGlvbgQAeQcBrHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbjo6RXZlbnQ8UnVudGltZT4AIwBAQ29udmljdGlvblZvdGluZwQAhQcBoHBhbGxldF9jb252aWN0aW9uX3ZvdGluZzo6RXZlbnQ8UnVudGltZT4AJAAkUmVmZXJlbmRhBACJBwGAcGFsbGV0X3JlZmVyZW5kYTo6RXZlbnQ8UnVudGltZT4AJQAkV2hpdGVsaXN0BACRBwGAcGFsbGV0X3doaXRlbGlzdDo6RXZlbnQ8UnVudGltZT4AJwAoRGlzcGF0Y2hlcgQAoQcBhHBhbGxldF9kaXNwYXRjaGVyOjpFdmVudDxSdW50aW1lPgAoADRBc3NldFJlZ2lzdHJ5BAClBwGUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5OjpFdmVudDxSdW50aW1lPgAzABhDbGFpbXMEAKkHAXRwYWxsZXRfY2xhaW1zOjpFdmVudDxSdW50aW1lPgA1ADxDb2xsYXRvclJld2FyZHMEALEHAZxwYWxsZXRfY29sbGF0b3JfcmV3YXJkczo6RXZlbnQ8UnVudGltZT4AOQBAQ29sbGF0b3JSb3RhdGlvbgQAtQcBoHBhbGxldF9jb2xsYXRvcl9yb3RhdGlvbjo6RXZlbnQ8UnVudGltZT4AOgAgT21uaXBvb2wEALkHAXxwYWxsZXRfb21uaXBvb2w6OkV2ZW50PFJ1bnRpbWU+ADsAQFRyYW5zYWN0aW9uUGF1c2UEAL0HAaBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2U6OkV2ZW50PFJ1bnRpbWU+ADwAGER1c3RlcgQAwQcBdHBhbGxldF9kdXN0ZXI6OkV2ZW50PFJ1bnRpbWU+AD0ATE9tbmlwb29sV2FyZWhvdXNlTE0EAMUHAUkBd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OkV2ZW50PFJ1bnRpbWUsIHdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjoKSW5zdGFuY2UxPgA+AFxPbW5pcG9vbExpcXVpZGl0eU1pbmluZwQAyQcBwHBhbGxldF9vbW5pcG9vbF9saXF1aWRpdHlfbWluaW5nOjpFdmVudDxSdW50aW1lPgA/AAxPVEMEAM0HAWhwYWxsZXRfb3RjOjpFdmVudDxSdW50aW1lPgBAADhDaXJjdWl0QnJlYWtlcgQA0QcBmHBhbGxldF9jaXJjdWl0X2JyZWFrZXI6OkV2ZW50PFJ1bnRpbWU+AEEAGFJvdXRlcgQA1QcBlHBhbGxldF9yb3V0ZV9leGVjdXRvcjo6RXZlbnQ8UnVudGltZT4AQwAsRHluYW1pY0ZlZXMEANkHAYxwYWxsZXRfZHluYW1pY19mZWVzOjpFdmVudDxSdW50aW1lPgBEABxTdGFraW5nBADdBwF4cGFsbGV0X3N0YWtpbmc6OkV2ZW50PFJ1bnRpbWU+AEUAKFN0YWJsZXN3YXAEAOEHAYRwYWxsZXRfc3RhYmxlc3dhcDo6RXZlbnQ8UnVudGltZT4ARgAUQm9uZHMEAPkHAXBwYWxsZXRfYm9uZHM6OkV2ZW50PFJ1bnRpbWU+AEcAOE90Y1NldHRsZW1lbnRzBAD9BwGYcGFsbGV0X290Y19zZXR0bGVtZW50czo6RXZlbnQ8UnVudGltZT4ASAAMTEJQBAABCAFocGFsbGV0X2xicDo6RXZlbnQ8UnVudGltZT4ASQAMWFlLBAAJCAFocGFsbGV0X3h5azo6RXZlbnQ8UnVudGltZT4ASgAkUmVmZXJyYWxzBAANCAGAcGFsbGV0X3JlZmVycmFsczo6RXZlbnQ8UnVudGltZT4ASwAsTGlxdWlkYXRpb24EABUIAYhwYWxsZXRfbGlxdWlkYXRpb246OkV2ZW50PFJ1bnRpbWU+AEwADEhTTQQAGQgBaHBhbGxldF9oc206OkV2ZW50PFJ1bnRpbWU+AFIAGFNpZ25ldAQAHQgBdHBhbGxldF9zaWduZXQ6OkV2ZW50PFJ1bnRpbWU+AFQAMEV0aERpc3BlbnNlcgQAIQgBgHBhbGxldF9kaXNwZW5zZXI6OkV2ZW50PFJ1bnRpbWU+AFUAHEdpZ2FIZHgEACUIAXhwYWxsZXRfZ2lnYWhkeDo6RXZlbnQ8UnVudGltZT4AVgA4R2lnYUhkeFJld2FyZHMEACkIAZhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzOjpFdmVudDxSdW50aW1lPgBXABhUb2tlbnMEAC0IAWxvcm1sX3Rva2Vuczo6RXZlbnQ8UnVudGltZT4ATQAoQ3VycmVuY2llcwQAMQgBhHBhbGxldF9jdXJyZW5jaWVzOjpFdmVudDxSdW50aW1lPgBPABxWZXN0aW5nBAA1CAFwb3JtbF92ZXN0aW5nOjpFdmVudDxSdW50aW1lPgBRAAxFVk0EADkIAWhwYWxsZXRfZXZtOjpFdmVudDxSdW50aW1lPgBaACBFdGhlcmV1bQQAQQgBWHBhbGxldF9ldGhlcmV1bTo6RXZlbnQAXAAsRVZNQWNjb3VudHMEAGUIAYxwYWxsZXRfZXZtX2FjY291bnRzOjpFdmVudDxSdW50aW1lPgBdAEhYWUtMaXF1aWRpdHlNaW5pbmcEAGkIAaxwYWxsZXRfeHlrX2xpcXVpZGl0eV9taW5pbmc6OkV2ZW50PFJ1bnRpbWU+AF8AOFhZS1dhcmVob3VzZUxNBABtCAFJAXdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjpFdmVudDxSdW50aW1lLCB3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6Ckluc3RhbmNlMj4AYAA4UmVsYXlDaGFpbkluZm8EAHEIAZhwYWxsZXRfcmVsYXljaGFpbl9pbmZvOjpFdmVudDxSdW50aW1lPgDJAAxEQ0EEAHUIAWhwYWxsZXRfZGNhOjpFdmVudDxSdW50aW1lPgBCACRTY2hlZHVsZXIEAHkIAYBwYWxsZXRfc2NoZWR1bGVyOjpFdmVudDxSdW50aW1lPgAFADxQYXJhY2hhaW5TeXN0ZW0EAH0IAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFdmVudDxSdW50aW1lPgBnACxQb2xrYWRvdFhjbQQAgQgBaHBhbGxldF94Y206OkV2ZW50PFJ1bnRpbWU+AGsAKEN1bXVsdXNYY20EAJEIAYhjdW11bHVzX3BhbGxldF94Y206OkV2ZW50PFJ1bnRpbWU+AG0AJFhjbXBRdWV1ZQQAlQgBpGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AG8AME1lc3NhZ2VRdWV1ZQQAmQgBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFdmVudDxSdW50aW1lPgByAFBNdWx0aUJsb2NrTWlncmF0aW9ucwQAoQgBhHBhbGxldF9taWdyYXRpb25zOjpFdmVudDxSdW50aW1lPgB0ABxPcm1sWGNtBAClCAFgb3JtbF94Y206OkV2ZW50PFJ1bnRpbWU+AIcAHFhUb2tlbnMEAKkIAXBvcm1sX3h0b2tlbnM6OkV2ZW50PFJ1bnRpbWU+AIkANFVua25vd25Ub2tlbnMEAK0IAWhvcm1sX3Vua25vd25fdG9rZW5zOjpFdmVudACLAERDb2xsYXRvclNlbGVjdGlvbgQAsQgBpHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb246OkV2ZW50PFJ1bnRpbWU+AKMAHFNlc3Npb24EALUIAXhwYWxsZXRfc2Vzc2lvbjo6RXZlbnQ8UnVudGltZT4ApQAkRW1hT3JhY2xlBAC5CAGEcGFsbGV0X2VtYV9vcmFjbGU6OkV2ZW50PFJ1bnRpbWU+AMoAJEJyb2FkY2FzdAQAzQgBgHBhbGxldF9icm9hZGNhc3Q6OkV2ZW50PFJ1bnRpbWU+AMwAMEZlZVByb2Nlc3NvcgQA9QgBkHBhbGxldF9mZWVfcHJvY2Vzc29yOjpFdmVudDxSdW50aW1lPgDPAAARBwwwZnJhbWVfc3lzdGVtGHBhbGxldBRFdmVudAQEVAABIEBFeHRyaW5zaWNTdWNjZXNzBAE0ZGlzcGF0Y2hfaW5mbxUHAUREaXNwYXRjaEV2ZW50SW5mbwAABJBBbiBleHRyaW5zaWMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS48RXh0cmluc2ljRmFpbGVkCAE4ZGlzcGF0Y2hfZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgABNGRpc3BhdGNoX2luZm8VBwFERGlzcGF0Y2hFdmVudEluZm8AAQRQQW4gZXh0cmluc2ljIGZhaWxlZC4sQ29kZVVwZGF0ZWQAAgRQYDpjb2RlYCB3YXMgdXBkYXRlZC4oTmV3QWNjb3VudAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAAwRoQSBuZXcgYWNjb3VudCB3YXMgY3JlYXRlZC40S2lsbGVkQWNjb3VudAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQABARYQW4gYWNjb3VudCB3YXMgcmVhcGVkLiBSZW1hcmtlZAgBGHNlbmRlcgABMFQ6OkFjY291bnRJZAABEGhhc2gsARxUOjpIYXNoAAUEcE9uIG9uLWNoYWluIHJlbWFyayBoYXBwZW5lZC5EVXBncmFkZUF1dGhvcml6ZWQIASRjb2RlX2hhc2gsARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbkQBEGJvb2wABgRoQW4gdXBncmFkZSB3YXMgYXV0aG9yaXplZC6AUmVqZWN0ZWRJbnZhbGlkQXV0aG9yaXplZFVwZ3JhZGUIASRjb2RlX2hhc2gsARxUOjpIYXNoAAEUZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgAHBBEBQW4gaW52YWxpZCBhdXRob3JpemVkIHVwZ3JhZGUgd2FzIHJlamVjdGVkIHdoaWxlIHRyeWluZyB0byBhcHBseSBpdC4EcEV2ZW50IGZvciB0aGUgU3lzdGVtIHBhbGxldC4VBwgwZnJhbWVfc3lzdGVtRERpc3BhdGNoRXZlbnRJbmZvAAAMARh3ZWlnaHTkARhXZWlnaHQAARRjbGFzcxkHATREaXNwYXRjaENsYXNzAAEgcGF5c19mZWUdBwEQUGF5cwAAGQcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2g0RGlzcGF0Y2hDbGFzcwABDBhOb3JtYWwAAAAsT3BlcmF0aW9uYWwAAQAkTWFuZGF0b3J5AAIAAB0HDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoEFBheXMAAQgMWWVzAAAACE5vAAEAACEHCChzcF9ydW50aW1lNERpc3BhdGNoRXJyb3IAATwUT3RoZXIAAAAwQ2Fubm90TG9va3VwAAEAJEJhZE9yaWdpbgACABhNb2R1bGUEACUHASxNb2R1bGVFcnJvcgADAERDb25zdW1lclJlbWFpbmluZwAEACxOb1Byb3ZpZGVycwAFAEBUb29NYW55Q29uc3VtZXJzAAYAFFRva2VuBAApBwEoVG9rZW5FcnJvcgAHAChBcml0aG1ldGljBAAtBwE8QXJpdGhtZXRpY0Vycm9yAAgANFRyYW5zYWN0aW9uYWwEADEHAUhUcmFuc2FjdGlvbmFsRXJyb3IACQAkRXhoYXVzdGVkAAoAKENvcnJ1cHRpb24ACwAsVW5hdmFpbGFibGUADAA4Um9vdE5vdEFsbG93ZWQADQAQVHJpZQQANQcBJFRyaWVFcnJvcgAOAAAlBwgoc3BfcnVudGltZSxNb2R1bGVFcnJvcgAACAEUaW5kZXgIAQh1OAABFGVycm9yuAGMW3U4OyBNQVhfTU9EVUxFX0VSUk9SX0VOQ09ERURfU0laRV0AACkHCChzcF9ydW50aW1lKFRva2VuRXJyb3IAAShARnVuZHNVbmF2YWlsYWJsZQAAADBPbmx5UHJvdmlkZXIAAQAwQmVsb3dNaW5pbXVtAAIAMENhbm5vdENyZWF0ZQADADBVbmtub3duQXNzZXQABAAYRnJvemVuAAUALFVuc3VwcG9ydGVkAAYAQENhbm5vdENyZWF0ZUhvbGQABwA0Tm90RXhwZW5kYWJsZQAIABxCbG9ja2VkAAkAAC0HCDRzcF9hcml0aG1ldGljPEFyaXRobWV0aWNFcnJvcgABDCRVbmRlcmZsb3cAAAAgT3ZlcmZsb3cAAQA4RGl2aXNpb25CeVplcm8AAgAAMQcIKHNwX3J1bnRpbWVIVHJhbnNhY3Rpb25hbEVycm9yAAEIMExpbWl0UmVhY2hlZAAAABxOb0xheWVyAAEAADUHDChzcF9ydW50aW1lMHByb3ZpbmdfdHJpZSRUcmllRXJyb3IAAThASW52YWxpZFN0YXRlUm9vdAAAAEhJbmNvbXBsZXRlRGF0YWJhc2UAAQBQVmFsdWVBdEluY29tcGxldGVLZXkAAgAwRGVjb2RlckVycm9yAAMALEludmFsaWRIYXNoAAQAMER1cGxpY2F0ZUtleQAFADhFeHRyYW5lb3VzTm9kZQAGADxFeHRyYW5lb3VzVmFsdWUABwBcRXh0cmFuZW91c0hhc2hSZWZlcmVuY2UACABUSW52YWxpZENoaWxkUmVmZXJlbmNlAAkANFZhbHVlTWlzbWF0Y2gACgA8SW5jb21wbGV0ZVByb29mAAsAMFJvb3RNaXNtYXRjaAAMACxEZWNvZGVFcnJvcgANAAA5Bww8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABWBxFbmRvd2VkCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZUABKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEIPQFBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvdyBFeGlzdGVudGlhbERlcG9zaXQseHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlcgwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJlZUABKFQ6OkJhbGFuY2UAAwRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC4gUmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAQE4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABSGRlc3RpbmF0aW9uX3N0YXR1cz0HARhTdGF0dXMABghNAVNvbWUgYmFsYW5jZSB3YXMgbW92ZWQgZnJvbSB0aGUgcmVzZXJ2ZSBvZiB0aGUgZmlyc3QgYWNjb3VudCB0byB0aGUgc2Vjb25kIGFjY291bnQu2EZpbmFsIGFyZ3VtZW50IGluZGljYXRlcyB0aGUgZGVzdGluYXRpb24gYmFsYW5jZSB0eXBlLhxEZXBvc2l0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAHBNhTb21lIGFtb3VudCB3YXMgZGVwb3NpdGVkIChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4gV2l0aGRyYXcIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAgEHQFTb21lIGFtb3VudCB3YXMgd2l0aGRyYXduIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLhxTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAJBAEBU29tZSBhbW91bnQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgbWlzYmVoYXZpb3IpLhhNaW50ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAoEnFNvbWUgYW1vdW50IHdhcyBtaW50ZWQgaW50byBhbiBhY2NvdW50LhhCdXJuZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAsEnFNvbWUgYW1vdW50IHdhcyBidXJuZWQgZnJvbSBhbiBhY2NvdW50LiRTdXNwZW5kZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAwEFQFTb21lIGFtb3VudCB3YXMgc3VzcGVuZGVkIGZyb20gYW4gYWNjb3VudCAoaXQgY2FuIGJlIHJlc3RvcmVkIGxhdGVyKS4gUmVzdG9yZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAA0EpFNvbWUgYW1vdW50IHdhcyByZXN0b3JlZCBpbnRvIGFuIGFjY291bnQuIFVwZ3JhZGVkBAEMd2hvAAEwVDo6QWNjb3VudElkAA4EYEFuIGFjY291bnQgd2FzIHVwZ3JhZGVkLhhJc3N1ZWQEARhhbW91bnRAAShUOjpCYWxhbmNlAA8ELQFUb3RhbCBpc3N1YW5jZSB3YXMgaW5jcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGNyZWRpdCB0byBiZSBiYWxhbmNlZC4kUmVzY2luZGVkBAEYYW1vdW50QAEoVDo6QmFsYW5jZQAQBCUBVG90YWwgaXNzdWFuY2Ugd2FzIGRlY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBkZWJ0IHRvIGJlIGJhbGFuY2VkLhhMb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlABEEYFNvbWUgYmFsYW5jZSB3YXMgbG9ja2VkLiBVbmxvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAEgRoU29tZSBiYWxhbmNlIHdhcyB1bmxvY2tlZC4YRnJvemVuCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQATBGBTb21lIGJhbGFuY2Ugd2FzIGZyb3plbi4YVGhhd2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAUBGBTb21lIGJhbGFuY2Ugd2FzIHRoYXdlZC5MVG90YWxJc3N1YW5jZUZvcmNlZAgBDG9sZEABKFQ6OkJhbGFuY2UAAQxuZXdAAShUOjpCYWxhbmNlABUErFRoZSBgVG90YWxJc3N1YW5jZWAgd2FzIGZvcmNlZnVsbHkgY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ9BxQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2M0QmFsYW5jZVN0YXR1cwABCBBGcmVlAAAAIFJlc2VydmVkAAEAAEEHDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQRIVHJhbnNhY3Rpb25GZWVQYWlkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEoYWN0dWFsX2ZlZUABMEJhbGFuY2VPZjxUPgABDHRpcEABMEJhbGFuY2VPZjxUPgAACFkBQSB0cmFuc2FjdGlvbiBmZWUgYGFjdHVhbF9mZWVgLCBvZiB3aGljaCBgdGlwYCB3YXMgYWRkZWQgdG8gdGhlIG1pbmltdW0gaW5jbHVzaW9uIGZlZSxcaGFzIGJlZW4gcGFpZCBieSBgd2hvYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRFBwyAcGFsbGV0X3RyYW5zYWN0aW9uX211bHRpX3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEULEN1cnJlbmN5U2V0CAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEwQXNzZXRJZE9mPFQ+AAAILEN1cnJlbmN5U2V0PFt3aG8sIGN1cnJlbmN5XTRDdXJyZW5jeUFkZGVkBAEgYXNzZXRfaWQoATBBc3NldElkT2Y8VD4AAQhsTmV3IGFjY2VwdGVkIGN1cnJlbmN5IGFkZGVkKFtjdXJyZW5jeV08Q3VycmVuY3lSZW1vdmVkBAEgYXNzZXRfaWQoATBBc3NldElkT2Y8VD4AAghkQWNjZXB0ZWQgY3VycmVuY3kgcmVtb3ZlZChbY3VycmVuY3ldMEZlZVdpdGhkcmF3bhQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBMEFzc2V0SWRPZjxUPgABRG5hdGl2ZV9mZWVfYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAFUbm9uX25hdGl2ZV9mZWVfYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAFYZGVzdGluYXRpb25fYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAADCKxUcmFuc2FjdGlvbiBmZWUgcGFpZCBpbiBub24tbmF0aXZlIGN1cnJlbmN5SQFbQWNjb3VudCwgQ3VycmVuY3ksIE5hdGl2ZSBmZWUgYW1vdW50LCBOb24tbmF0aXZlIGZlZSBhbW91bnQsIERlc3RpbmF0aW9uIGFjY291bnRdMEZlZVNwb25zb3JlZAgBEGZyb21YARBIMTYwAAEkZmVlX3BheWVyAAEwVDo6QWNjb3VudElkAAQEnFNpZ25lZC1icmFuY2ggZGlzcGF0Y2ggcGVybWl0IGZlZSBwYXllcgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldEkHDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0FEV2ZW50CARUAARJAAEwIFNwZW5kaW5nBAFAYnVkZ2V0X3JlbWFpbmluZ0ABPEJhbGFuY2VPZjxULCBJPgAABORXZSBoYXZlIGVuZGVkIGEgc3BlbmQgcGVyaW9kIGFuZCB3aWxsIG5vdyBhbGxvY2F0ZSBmdW5kcy4cQXdhcmRlZAwBOHByb3Bvc2FsX2luZGV4KAE0UHJvcG9zYWxJbmRleAABFGF3YXJkQAE8QmFsYW5jZU9mPFQsIEk+AAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABBHxTb21lIGZ1bmRzIGhhdmUgYmVlbiBhbGxvY2F0ZWQuFEJ1cm50BAEsYnVybnRfZnVuZHNAATxCYWxhbmNlT2Y8VCwgST4AAgSIU29tZSBvZiBvdXIgZnVuZHMgaGF2ZSBiZWVuIGJ1cm50LiBSb2xsb3ZlcgQBQHJvbGxvdmVyX2JhbGFuY2VAATxCYWxhbmNlT2Y8VCwgST4AAwQtAVNwZW5kaW5nIGhhcyBmaW5pc2hlZDsgdGhpcyBpcyB0aGUgYW1vdW50IHRoYXQgcm9sbHMgb3ZlciB1bnRpbCBuZXh0IHNwZW5kLhxEZXBvc2l0BAEUdmFsdWVAATxCYWxhbmNlT2Y8VCwgST4ABAR8U29tZSBmdW5kcyBoYXZlIGJlZW4gZGVwb3NpdGVkLjRTcGVuZEFwcHJvdmVkDAE4cHJvcG9zYWxfaW5kZXgoATRQcm9wb3NhbEluZGV4AAEYYW1vdW50QAE8QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAATBUOjpBY2NvdW50SWQABQScQSBuZXcgc3BlbmQgcHJvcG9zYWwgaGFzIGJlZW4gYXBwcm92ZWQuPFVwZGF0ZWRJbmFjdGl2ZQgBLHJlYWN0aXZhdGVkQAE8QmFsYW5jZU9mPFQsIEk+AAEsZGVhY3RpdmF0ZWRAATxCYWxhbmNlT2Y8VCwgST4ABgTMVGhlIGluYWN0aXZlIGZ1bmRzIG9mIHRoZSBwYWxsZXQgaGF2ZSBiZWVuIHVwZGF0ZWQuSEFzc2V0U3BlbmRBcHByb3ZlZBgBFGluZGV4KAEoU3BlbmRJbmRleAABKGFzc2V0X2tpbmRwATBUOjpBc3NldEtpbmQAARhhbW91bnRAAVBBc3NldEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAE4VDo6QmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tKAFQQmxvY2tOdW1iZXJGb3I8VCwgST4AASRleHBpcmVfYXQoAVBCbG9ja051bWJlckZvcjxULCBJPgAHBLRBIG5ldyBhc3NldCBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC5AQXNzZXRTcGVuZFZvaWRlZAQBFGluZGV4KAEoU3BlbmRJbmRleAAIBHRBbiBhcHByb3ZlZCBzcGVuZCB3YXMgdm9pZGVkLhBQYWlkCAEUaW5kZXgoAShTcGVuZEluZGV4AAEocGF5bWVudF9pZHABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACQRMQSBwYXltZW50IGhhcHBlbmVkLjRQYXltZW50RmFpbGVkCAEUaW5kZXgoAShTcGVuZEluZGV4AAEocGF5bWVudF9pZHABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACgSQQSBwYXltZW50IGZhaWxlZCBhbmQgY2FuIGJlIHJldHJpZWQuOFNwZW5kUHJvY2Vzc2VkBAEUaW5kZXgoAShTcGVuZEluZGV4AAsITQFBIHNwZW5kIHdhcyBwcm9jZXNzZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZS4gSXQgbWlnaHQgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseXBwYWlkIG9yIGl0IG1heSBoYXZlIGV4cGlyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0TQcMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFdmVudAABIEBCYXRjaEludGVycnVwdGVkCAEUaW5kZXgoAQx1MzIAARRlcnJvciEHATREaXNwYXRjaEVycm9yAAAIVQFCYXRjaCBvZiBkaXNwYXRjaGVzIGRpZCBub3QgY29tcGxldGUgZnVsbHkuIEluZGV4IG9mIGZpcnN0IGZhaWxpbmcgZGlzcGF0Y2ggZ2l2ZW4sIGFzSHdlbGwgYXMgdGhlIGVycm9yLjhCYXRjaENvbXBsZXRlZAABBMhCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBmdWxseSB3aXRoIG5vIGVycm9yLmBCYXRjaENvbXBsZXRlZFdpdGhFcnJvcnMAAgS0QmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgYnV0IGhhcyBlcnJvcnMuNEl0ZW1Db21wbGV0ZWQAAwQdAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggbm8gZXJyb3IuKEl0ZW1GYWlsZWQEARRlcnJvciEHATREaXNwYXRjaEVycm9yAAQEEQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIGVycm9yLjBEaXNwYXRjaGVkQXMEARhyZXN1bHRRBwE4RGlzcGF0Y2hSZXN1bHQABQRYQSBjYWxsIHdhcyBkaXNwYXRjaGVkLkRJZkVsc2VNYWluU3VjY2VzcwAGBGRNYWluIGNhbGwgd2FzIGRpc3BhdGNoZWQuUElmRWxzZUZhbGxiYWNrQ2FsbGVkBAEobWFpbl9lcnJvciEHATREaXNwYXRjaEVycm9yAAcEhFRoZSBmYWxsYmFjayBjYWxsIHdhcyBkaXNwYXRjaGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFEHBBhSZXN1bHQIBFQBcARFASEHAQgIT2sEAHAAAAAADEVycgQAIQcAAAEAAFUHDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0FEV2ZW50BARUAAEMFE5vdGVkBAEQaGFzaCwBHFQ6Okhhc2gAAARoQSBwcmVpbWFnZSBoYXMgYmVlbiBub3RlZC4kUmVxdWVzdGVkBAEQaGFzaCwBHFQ6Okhhc2gAAQR4QSBwcmVpbWFnZSBoYXMgYmVlbiByZXF1ZXN0ZWQuHENsZWFyZWQEARBoYXNoLAEcVDo6SGFzaAACBGxBIHByZWltYWdlIGhhcyBiZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRZBww8cGFsbGV0X2lkZW50aXR5GHBhbGxldBRFdmVudAQEVAABWCxJZGVudGl0eVNldAQBDHdobwABMFQ6OkFjY291bnRJZAAABOxBIG5hbWUgd2FzIHNldCBvciByZXNldCAod2hpY2ggd2lsbCByZW1vdmUgYWxsIGp1ZGdlbWVudHMpLjxJZGVudGl0eUNsZWFyZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEEzEEgbmFtZSB3YXMgY2xlYXJlZCwgYW5kIHRoZSBnaXZlbiBiYWxhbmNlIHJldHVybmVkLjhJZGVudGl0eUtpbGxlZAgBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AAgTEQSBuYW1lIHdhcyByZW1vdmVkIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSBzbGFzaGVkLkhKdWRnZW1lbnRSZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgoAThSZWdpc3RyYXJJbmRleAADBJxBIGp1ZGdlbWVudCB3YXMgYXNrZWQgZnJvbSBhIHJlZ2lzdHJhci5QSnVkZ2VtZW50VW5yZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgoAThSZWdpc3RyYXJJbmRleAAEBIhBIGp1ZGdlbWVudCByZXF1ZXN0IHdhcyByZXRyYWN0ZWQuOEp1ZGdlbWVudEdpdmVuCAEYdGFyZ2V0AAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4KAE4UmVnaXN0cmFySW5kZXgABQSUQSBqdWRnZW1lbnQgd2FzIGdpdmVuIGJ5IGEgcmVnaXN0cmFyLjhSZWdpc3RyYXJBZGRlZAQBPHJlZ2lzdHJhcl9pbmRleCgBOFJlZ2lzdHJhckluZGV4AAYEWEEgcmVnaXN0cmFyIHdhcyBhZGRlZC5AU3ViSWRlbnRpdHlBZGRlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAcE9EEgc3ViLWlkZW50aXR5IHdhcyBhZGRlZCB0byBhbiBpZGVudGl0eSBhbmQgdGhlIGRlcG9zaXQgcGFpZC5AU3ViSWRlbnRpdGllc1NldAwBEG1haW4AATBUOjpBY2NvdW50SWQAAThudW1iZXJfb2Zfc3VicygBDHUzMgABLG5ld19kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAgEvEFuIGFjY291bnQncyBzdWItaWRlbnRpdGllcyB3ZXJlIHNldCAoaW4gYnVsaykuSFN1YklkZW50aXR5UmVuYW1lZAgBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQACQQhAUEgZ2l2ZW4gc3ViLWFjY291bnQncyBhc3NvY2lhdGVkIG5hbWUgd2FzIGNoYW5nZWQgYnkgaXRzIHN1cGVyLWlkZW50aXR5LkhTdWJJZGVudGl0eVJlbW92ZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAKBAkBQSBzdWItaWRlbnRpdHkgd2FzIHJlbW92ZWQgZnJvbSBhbiBpZGVudGl0eSBhbmQgdGhlIGRlcG9zaXQgZnJlZWQuSFN1YklkZW50aXR5UmV2b2tlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAsIGQFBIHN1Yi1pZGVudGl0eSB3YXMgY2xlYXJlZCwgYW5kIHRoZSBnaXZlbiBkZXBvc2l0IHJlcGF0cmlhdGVkIGZyb20gdGhlyG1haW4gaWRlbnRpdHkgYWNjb3VudCB0byB0aGUgc3ViLWlkZW50aXR5IGFjY291bnQuOEF1dGhvcml0eUFkZGVkBAEkYXV0aG9yaXR5AAEwVDo6QWNjb3VudElkAAwEfEEgdXNlcm5hbWUgYXV0aG9yaXR5IHdhcyBhZGRlZC5AQXV0aG9yaXR5UmVtb3ZlZAQBJGF1dGhvcml0eQABMFQ6OkFjY291bnRJZAANBIRBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgcmVtb3ZlZC4sVXNlcm5hbWVTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAOBHRBIHVzZXJuYW1lIHdhcyBzZXQgZm9yIGB3aG9gLjhVc2VybmFtZVF1ZXVlZAwBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+AAEoZXhwaXJhdGlvbigBREJsb2NrTnVtYmVyRm9yPFQ+AA8EGQFBIHVzZXJuYW1lIHdhcyBxdWV1ZWQsIGJ1dCBgd2hvYCBtdXN0IGFjY2VwdCBpdCBwcmlvciB0byBgZXhwaXJhdGlvbmAuSFByZWFwcHJvdmFsRXhwaXJlZAQBFHdob3NlAAEwVDo6QWNjb3VudElkABAEOQFBIHF1ZXVlZCB1c2VybmFtZSBwYXNzZWQgaXRzIGV4cGlyYXRpb24gd2l0aG91dCBiZWluZyBjbGFpbWVkIGFuZCB3YXMgcmVtb3ZlZC5IUHJpbWFyeVVzZXJuYW1lU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AEQQBAUEgdXNlcm5hbWUgd2FzIHNldCBhcyBhIHByaW1hcnkgYW5kIGNhbiBiZSBsb29rZWQgdXAgZnJvbSBgd2hvYC5cRGFuZ2xpbmdVc2VybmFtZVJlbW92ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgASCF0BQSBkYW5nbGluZyB1c2VybmFtZSAoYXMgaW4sIGEgdXNlcm5hbWUgY29ycmVzcG9uZGluZyB0byBhbiBhY2NvdW50IHRoYXQgaGFzIHJlbW92ZWQgaXRzbGlkZW50aXR5KSBoYXMgYmVlbiByZW1vdmVkLjxVc2VybmFtZVVuYm91bmQEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgATBHBBIHVzZXJuYW1lIGhhcyBiZWVuIHVuYm91bmQuPFVzZXJuYW1lUmVtb3ZlZAQBIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABQEcEEgdXNlcm5hbWUgaGFzIGJlZW4gcmVtb3ZlZC44VXNlcm5hbWVLaWxsZWQEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAVBGxBIHVzZXJuYW1lIGhhcyBiZWVuIGtpbGxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRdBwxAcGFsbGV0X2RlbW9jcmFjeRhwYWxsZXQURXZlbnQEBFQAAUQgUHJvcG9zZWQIAThwcm9wb3NhbF9pbmRleCgBJFByb3BJbmRleAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AAAS8QSBtb3Rpb24gaGFzIGJlZW4gcHJvcG9zZWQgYnkgYSBwdWJsaWMgYWNjb3VudC4YVGFibGVkCAE4cHJvcG9zYWxfaW5kZXgoASRQcm9wSW5kZXgAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEE2EEgcHVibGljIHByb3Bvc2FsIGhhcyBiZWVuIHRhYmxlZCBmb3IgcmVmZXJlbmR1bSB2b3RlLjhFeHRlcm5hbFRhYmxlZAACBJRBbiBleHRlcm5hbCBwcm9wb3NhbCBoYXMgYmVlbiB0YWJsZWQuHFN0YXJ0ZWQIASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAASR0aHJlc2hvbGRhBwE0Vm90ZVRocmVzaG9sZAADBFxBIHJlZmVyZW5kdW0gaGFzIGJlZ3VuLhhQYXNzZWQEASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgABASsQSBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZCBieSByZWZlcmVuZHVtLiROb3RQYXNzZWQEASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgABQSsQSBwcm9wb3NhbCBoYXMgYmVlbiByZWplY3RlZCBieSByZWZlcmVuZHVtLiRDYW5jZWxsZWQEASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgABgSAQSByZWZlcmVuZHVtIGhhcyBiZWVuIGNhbmNlbGxlZC4kRGVsZWdhdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYdGFyZ2V0AAEwVDo6QWNjb3VudElkAAcE3EFuIGFjY291bnQgaGFzIGRlbGVnYXRlZCB0aGVpciB2b3RlIHRvIGFub3RoZXIgYWNjb3VudC4sVW5kZWxlZ2F0ZWQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAgE5EFuIGFjY291bnQgaGFzIGNhbmNlbGxlZCBhIHByZXZpb3VzIGRlbGVnYXRpb24gb3BlcmF0aW9uLhhWZXRvZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABFHVudGlsKAFEQmxvY2tOdW1iZXJGb3I8VD4ACQSUQW4gZXh0ZXJuYWwgcHJvcG9zYWwgaGFzIGJlZW4gdmV0b2VkLixCbGFja2xpc3RlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAoExEEgcHJvcG9zYWxfaGFzaCBoYXMgYmVlbiBibGFja2xpc3RlZCBwZXJtYW5lbnRseS4UVm90ZWQMARR2b3RlcgABMFQ6OkFjY291bnRJZAABJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAABEHZvdGW1AQFkQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQ+PgALBJBBbiBhY2NvdW50IGhhcyB2b3RlZCBpbiBhIHJlZmVyZW5kdW0gU2Vjb25kZWQIASBzZWNvbmRlcgABMFQ6OkFjY291bnRJZAABKHByb3BfaW5kZXgoASRQcm9wSW5kZXgADASMQW4gYWNjb3VudCBoYXMgc2VjY29uZGVkIGEgcHJvcG9zYWxAUHJvcG9zYWxDYW5jZWxlZAQBKHByb3BfaW5kZXgoASRQcm9wSW5kZXgADQRgQSBwcm9wb3NhbCBnb3QgY2FuY2VsZWQuLE1ldGFkYXRhU2V0CAEUb3duZXLBAQE0TWV0YWRhdGFPd25lcgQ8TWV0YWRhdGEgb3duZXIuARBoYXNoLAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4OBNRNZXRhZGF0YSBmb3IgYSBwcm9wb3NhbCBvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gc2V0LjxNZXRhZGF0YUNsZWFyZWQIARRvd25lcsEBATRNZXRhZGF0YU93bmVyBDxNZXRhZGF0YSBvd25lci4BEGhhc2gsARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg8E5E1ldGFkYXRhIGZvciBhIHByb3Bvc2FsIG9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjbGVhcmVkLkxNZXRhZGF0YVRyYW5zZmVycmVkDAEocHJldl9vd25lcsEBATRNZXRhZGF0YU93bmVyBGBQcmV2aW91cyBtZXRhZGF0YSBvd25lci4BFG93bmVywQEBNE1ldGFkYXRhT3duZXIETE5ldyBtZXRhZGF0YSBvd25lci4BEGhhc2gsARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLhAErE1ldGFkYXRhIGhhcyBiZWVuIHRyYW5zZmVycmVkIHRvIG5ldyBvd25lci4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRhBwxAcGFsbGV0X2RlbW9jcmFjeTh2b3RlX3RocmVzaG9sZDRWb3RlVGhyZXNob2xkAAEMUFN1cGVyTWFqb3JpdHlBcHByb3ZlAAAAUFN1cGVyTWFqb3JpdHlBZ2FpbnN0AAEAOFNpbXBsZU1ham9yaXR5AAIAAGUHDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQURXZlbnQIBFQABEkAASggUHJvcG9zZWQQARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE4cHJvcG9zYWxfaW5kZXgoATRQcm9wb3NhbEluZGV4AAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAASR0aHJlc2hvbGQoASxNZW1iZXJDb3VudAAACEkBQSBtb3Rpb24gKGdpdmVuIGhhc2gpIGhhcyBiZWVuIHByb3Bvc2VkIChieSBnaXZlbiBhY2NvdW50KSB3aXRoIGEgdGhyZXNob2xkIChnaXZlbjxgTWVtYmVyQ291bnRgKS4UVm90ZWQUARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARR2b3RlZEQBEGJvb2wAAQx5ZXMoASxNZW1iZXJDb3VudAABCG5vKAEsTWVtYmVyQ291bnQAAQgFAUEgbW90aW9uIChnaXZlbiBoYXNoKSBoYXMgYmVlbiB2b3RlZCBvbiBieSBnaXZlbiBhY2NvdW50LCBsZWF2aW5nFQFhIHRhbGx5ICh5ZXMgdm90ZXMgYW5kIG5vIHZvdGVzIGdpdmVuIHJlc3BlY3RpdmVseSBhcyBgTWVtYmVyQ291bnRgKS4gQXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAACBMBBIG1vdGlvbiB3YXMgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4sRGlzYXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAADBNBBIG1vdGlvbiB3YXMgbm90IGFwcHJvdmVkIGJ5IHRoZSByZXF1aXJlZCB0aHJlc2hvbGQuIEV4ZWN1dGVkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHRRBwE4RGlzcGF0Y2hSZXN1bHQABAQhAUEgbW90aW9uIHdhcyBleGVjdXRlZDsgcmVzdWx0IHdpbGwgYmUgYE9rYCBpZiBpdCByZXR1cm5lZCB3aXRob3V0IGVycm9yLjhNZW1iZXJFeGVjdXRlZAgBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAUESQFBIHNpbmdsZSBtZW1iZXIgZGlkIHNvbWUgYWN0aW9uOyByZXN1bHQgd2lsbCBiZSBgT2tgIGlmIGl0IHJldHVybmVkIHdpdGhvdXQgZXJyb3IuGENsb3NlZAwBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEMeWVzKAEsTWVtYmVyQ291bnQAAQhubygBLE1lbWJlckNvdW50AAYEVQFBIHByb3Bvc2FsIHdhcyBjbG9zZWQgYmVjYXVzZSBpdHMgdGhyZXNob2xkIHdhcyByZWFjaGVkIG9yIGFmdGVyIGl0cyBkdXJhdGlvbiB3YXMgdXAuGEtpbGxlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAcEWEEgcHJvcG9zYWwgd2FzIGtpbGxlZC5IUHJvcG9zYWxDb3N0QnVybmVkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAQx3aG8AATBUOjpBY2NvdW50SWQACASwU29tZSBjb3N0IGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgd2FzIGJ1cm5lZC5QUHJvcG9zYWxDb3N0UmVsZWFzZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABDHdobwABMFQ6OkFjY291bnRJZAAJBLhTb21lIGNvc3QgZm9yIHN0b3JpbmcgYSBwcm9wb3NhbCB3YXMgcmVsZWFzZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0aQcMMHBhbGxldF9wcm94eRhwYWxsZXQURXZlbnQEBFQAARw0UHJveHlFeGVjdXRlZAQBGHJlc3VsdFEHAThEaXNwYXRjaFJlc3VsdAAABLxBIHByb3h5IHdhcyBleGVjdXRlZCBjb3JyZWN0bHksIHdpdGggdGhlIGdpdmVuLixQdXJlQ3JlYXRlZBABEHB1cmUAATBUOjpBY2NvdW50SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBl2QEBMFQ6OlByb3h5VHlwZQABUGRpc2FtYmlndWF0aW9uX2luZGV4gAEMdTE2AAEI3EEgcHVyZSBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgYnkgbmV3IHByb3h5IHdpdGggZ2l2ZW6QZGlzYW1iaWd1YXRpb24gaW5kZXggYW5kIHByb3h5IHR5cGUuKFB1cmVLaWxsZWQQARBwdXJlAAEwVDo6QWNjb3VudElkAAEcc3Bhd25lcgABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXiAAQx1MTYAAgScQSBwdXJlIHByb3h5IHdhcyBraWxsZWQgYnkgaXRzIHNwYXduZXIuJEFubm91bmNlZAwBEHJlYWwAATBUOjpBY2NvdW50SWQAARRwcm94eQABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4AAwTgQW4gYW5ub3VuY2VtZW50IHdhcyBwbGFjZWQgdG8gbWFrZSBhIGNhbGwgaW4gdGhlIGZ1dHVyZS4oUHJveHlBZGRlZBABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgAEBEhBIHByb3h5IHdhcyBhZGRlZC4wUHJveHlSZW1vdmVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAUEUEEgcHJveHkgd2FzIHJlbW92ZWQuMERlcG9zaXRQb2tlZBABDHdobwABMFQ6OkFjY291bnRJZAABEGtpbmRtBwEsRGVwb3NpdEtpbmQAASxvbGRfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAYECQFBIGRlcG9zaXQgc3RvcmVkIGZvciBwcm94aWVzIG9yIGFubm91bmNlbWVudHMgd2FzIHBva2VkIC8gdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRtBwgwcGFsbGV0X3Byb3h5LERlcG9zaXRLaW5kAAEIHFByb3hpZXMAAAA0QW5ub3VuY2VtZW50cwABAABxBww8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFdmVudAQEVAABFCxOZXdNdWx0aXNpZwwBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAASMQSBuZXcgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWd1bi5ATXVsdGlzaWdBcHByb3ZhbBABJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludOUBAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABBMhBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBhcHByb3ZlZCBieSBzb21lb25lLkBNdWx0aXNpZ0V4ZWN1dGVkFAEkYXBwcm92aW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW505QEBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAIEnEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLkRNdWx0aXNpZ0NhbmNlbGxlZBABKGNhbmNlbGxpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnTlAQFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAwSgQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gY2FuY2VsbGVkLjBEZXBvc2l0UG9rZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABLG9sZF9kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEsbmV3X2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4ABATwVGhlIGRlcG9zaXQgZm9yIGEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQvcG9rZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0dQcMOHBhbGxldF91bmlxdWVzGHBhbGxldBRFdmVudAgEVAAESQABbBxDcmVhdGVkDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABHGNyZWF0b3IAATBUOjpBY2NvdW50SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAAABGxBIGBjb2xsZWN0aW9uYCB3YXMgY3JlYXRlZC4wRm9yY2VDcmVhdGVkCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEEhEEgYGNvbGxlY3Rpb25gIHdhcyBmb3JjZS1jcmVhdGVkLiREZXN0cm95ZWQEAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAIEdEEgYGNvbGxlY3Rpb25gIHdhcyBkZXN0cm95ZWQuGElzc3VlZAwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAwRUQW4gYGl0ZW1gIHdhcyBpc3N1ZWQuLFRyYW5zZmVycmVkEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQABARoQW4gYGl0ZW1gIHdhcyB0cmFuc2ZlcnJlZC4YQnVybmVkDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAAFBGBBbiBgaXRlbWAgd2FzIGRlc3Ryb3llZC4YRnJvemVuCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQABgRcU29tZSBgaXRlbWAgd2FzIGZyb3plbi4YVGhhd2VkCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQABwRcU29tZSBgaXRlbWAgd2FzIHRoYXdlZC5AQ29sbGVjdGlvbkZyb3plbgQBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQACAR0U29tZSBgY29sbGVjdGlvbmAgd2FzIGZyb3plbi5AQ29sbGVjdGlvblRoYXdlZAQBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQACQR0U29tZSBgY29sbGVjdGlvbmAgd2FzIHRoYXdlZC4wT3duZXJDaGFuZ2VkCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABJG5ld19vd25lcgABMFQ6OkFjY291bnRJZAAKBEhUaGUgb3duZXIgY2hhbmdlZC4sVGVhbUNoYW5nZWQQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEYaXNzdWVyAAEwVDo6QWNjb3VudElkAAEUYWRtaW4AATBUOjpBY2NvdW50SWQAARxmcmVlemVyAAEwVDo6QWNjb3VudElkAAsEcFRoZSBtYW5hZ2VtZW50IHRlYW0gY2hhbmdlZC5AQXBwcm92ZWRUcmFuc2ZlchABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQABMFQ6OkFjY291bnRJZAAMCDEBQW4gYGl0ZW1gIG9mIGEgYGNvbGxlY3Rpb25gIGhhcyBiZWVuIGFwcHJvdmVkIGJ5IHRoZSBgb3duZXJgIGZvciB0cmFuc2ZlciBieTRhIGBkZWxlZ2F0ZWAuREFwcHJvdmFsQ2FuY2VsbGVkEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlAAEwVDo6QWNjb3VudElkAA0IGQFBbiBhcHByb3ZhbCBmb3IgYSBgZGVsZWdhdGVgIGFjY291bnQgdG8gdHJhbnNmZXIgdGhlIGBpdGVtYCBvZiBhbiBpdGVtqGBjb2xsZWN0aW9uYCB3YXMgY2FuY2VsbGVkIGJ5IGl0cyBgb3duZXJgLkRJdGVtU3RhdHVzQ2hhbmdlZAQBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQADgQRAUEgYGNvbGxlY3Rpb25gIGhhcyBoYWQgaXRzIGF0dHJpYnV0ZXMgY2hhbmdlZCBieSB0aGUgYEZvcmNlYCBvcmlnaW4uVENvbGxlY3Rpb25NZXRhZGF0YVNldAwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBkYXRhAQIBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wADwS0TmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYSBgY29sbGVjdGlvbmAuZENvbGxlY3Rpb25NZXRhZGF0YUNsZWFyZWQEAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkABAEtE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGEgYGNvbGxlY3Rpb25gLixNZXRhZGF0YVNldBABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEQZGF0YQECAXhCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5EARBib29sABEEmE5ldyBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGFuIGl0ZW0uPE1ldGFkYXRhQ2xlYXJlZAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkABIEmE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGFuIGl0ZW0uLFJlZGVwb3NpdGVkCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABQHN1Y2Nlc3NmdWxfaXRlbXPxAQE4VmVjPFQ6Okl0ZW1JZD4AEwSYTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gaXRlbS4wQXR0cmlidXRlU2V0EAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heWJlX2l0ZW31AQFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXn5AQFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWX9AQF0Qm91bmRlZFZlYzx1OCwgVDo6VmFsdWVMaW1pdD4AFAQFAU5ldyBhdHRyaWJ1dGUgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhIGBjb2xsZWN0aW9uYCBvciBgaXRlbWAuQEF0dHJpYnV0ZUNsZWFyZWQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbfUBAURPcHRpb248VDo6SXRlbUlkPgABDGtlefkBAWxCb3VuZGVkVmVjPHU4LCBUOjpLZXlMaW1pdD4AFQQFAUF0dHJpYnV0ZSBtZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhIGBjb2xsZWN0aW9uYCBvciBgaXRlbWAuaE93bmVyc2hpcEFjY2VwdGFuY2VDaGFuZ2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAFAbWF5YmVfY29sbGVjdGlvbvUBAVxPcHRpb248VDo6Q29sbGVjdGlvbklkPgAWBMBPd25lcnNoaXAgYWNjZXB0YW5jZSBoYXMgY2hhbmdlZCBmb3IgYW4gYWNjb3VudC5YQ29sbGVjdGlvbk1heFN1cHBseVNldAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAAShtYXhfc3VwcGx5KAEMdTMyABcEpE1heCBzdXBwbHkgaGFzIGJlZW4gc2V0IGZvciBhIGNvbGxlY3Rpb24uMEl0ZW1QcmljZVNldBABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEUcHJpY2VAATxJdGVtUHJpY2U8VCwgST4AAUR3aGl0ZWxpc3RlZF9idXllcs0BAVBPcHRpb248VDo6QWNjb3VudElkPgAYBIxUaGUgcHJpY2Ugd2FzIHNldCBmb3IgdGhlIGluc3RhbmNlLkBJdGVtUHJpY2VSZW1vdmVkCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAGQScVGhlIHByaWNlIGZvciB0aGUgaW5zdGFuY2Ugd2FzIHJlbW92ZWQuKEl0ZW1Cb3VnaHQUAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFHByaWNlQAE8SXRlbVByaWNlPFQsIEk+AAEYc2VsbGVyAAEwVDo6QWNjb3VudElkAAEUYnV5ZXIAATBUOjpBY2NvdW50SWQAGgRMQW4gaXRlbSB3YXMgYm91Z2h0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkHDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0FEV2ZW50BARUAAEQIE1pZ3JhdGVkDAEMdG9wKAEMdTMyAAEUY2hpbGQoAQx1MzIAARxjb21wdXRlfQcBQE1pZ3JhdGlvbkNvbXB1dGUAAAg5AUdpdmVuIG51bWJlciBvZiBgKHRvcCwgY2hpbGQpYCBrZXlzIHdlcmUgbWlncmF0ZWQgcmVzcGVjdGl2ZWx5LCB3aXRoIHRoZSBnaXZlbihgY29tcHV0ZWAuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AAQS0U29tZSBhY2NvdW50IGdvdCBzbGFzaGVkIGJ5IHRoZSBnaXZlbiBhbW91bnQuVEF1dG9NaWdyYXRpb25GaW5pc2hlZAACBIRUaGUgYXV0byBtaWdyYXRpb24gdGFzayBmaW5pc2hlZC4YSGFsdGVkBAEUZXJyb3KBBwEgRXJyb3I8VD4AAwTsTWlncmF0aW9uIGdvdCBoYWx0ZWQgZHVlIHRvIGFuIGVycm9yIG9yIG1pc3MtY29uZmlndXJhdGlvbi4EcElubmVyIGV2ZW50cyBvZiB0aGlzIHBhbGxldC59BwxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldEBNaWdyYXRpb25Db21wdXRlAAEIGFNpZ25lZAAAABBBdXRvAAEAAIEHDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0FEVycm9yBARUAAEYPE1heFNpZ25lZExpbWl0cwAABIBNYXggc2lnbmVkIGxpbWl0cyBub3QgcmVzcGVjdGVkLihLZXlUb29Mb25nAAEctEEga2V5IHdhcyBsb25nZXIgdGhhbiB0aGUgY29uZmlndXJlZCBtYXhpbXVtLgARAVRoaXMgbWVhbnMgdGhhdCB0aGUgbWlncmF0aW9uIGhhbHRlZCBhdCB0aGUgY3VycmVudCBbYFByb2dyZXNzYF0gYW5kAQFjYW4gYmUgcmVzdW1lZCB3aXRoIGEgbGFyZ2VyIFtgY3JhdGU6OkNvbmZpZzo6TWF4S2V5TGVuYF0gdmFsdWUuIQFSZXRyeWluZyB3aXRoIHRoZSBzYW1lIFtgY3JhdGU6OkNvbmZpZzo6TWF4S2V5TGVuYF0gdmFsdWUgd2lsbCBub3Qgd29yay5FAVRoZSB2YWx1ZSBzaG91bGQgb25seSBiZSBpbmNyZWFzZWQgdG8gYXZvaWQgYSBzdG9yYWdlIG1pZ3JhdGlvbiBmb3IgdGhlIGN1cnJlbnRseZBzdG9yZWQgW2BjcmF0ZTo6UHJvZ3Jlc3M6Okxhc3RLZXlgXS44Tm90RW5vdWdoRnVuZHMAAgSUc3VibWl0dGVyIGRvZXMgbm90IGhhdmUgZW5vdWdoIGZ1bmRzLihCYWRXaXRuZXNzAAMEaEJhZCB3aXRuZXNzIGRhdGEgcHJvdmlkZWQuZFNpZ25lZE1pZ3JhdGlvbk5vdEFsbG93ZWQABAQlAVNpZ25lZCBtaWdyYXRpb24gaXMgbm90IGFsbG93ZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBsaW1pdCBpcyBub3Qgc2V0IHlldC4wQmFkQ2hpbGRSb290AAUEYEJhZCBjaGlsZCByb290IHByb3ZpZGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6FBwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nGHBhbGxldBRFdmVudAgEVAAESQABFCREZWxlZ2F0ZWQIAAABMFQ6OkFjY291bnRJZAAAAAEwVDo6QWNjb3VudElkAAAEHQFBbiBhY2NvdW50IGhhcyBkZWxlZ2F0ZWQgdGhlaXIgdm90ZSB0byBhbm90aGVyIGFjY291bnQuIFxbd2hvLCB0YXJnZXRcXSxVbmRlbGVnYXRlZAQAAAEwVDo6QWNjb3VudElkAAEE9EFuIFxbYWNjb3VudFxdIGhhcyBjYW5jZWxsZWQgYSBwcmV2aW91cyBkZWxlZ2F0aW9uIG9wZXJhdGlvbi4UVm90ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARB2b3RlIQIBcEFjY291bnRWb3RlPEJhbGFuY2VPZjxULCBJPj4AAgRQQW4gYWNjb3VudCBoYXMgdm90ZWQsVm90ZVJlbW92ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARB2b3RlIQIBcEFjY291bnRWb3RlPEJhbGFuY2VPZjxULCBJPj4AAwRcQSB2b3RlIGhhcyBiZWVuIHJlbW92ZWQwVm90ZVVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEUY2xhc3OAATRDbGFzc09mPFQsIEk+AAQERQFUaGUgbG9ja3VwIHBlcmlvZCBvZiBhIGNvbnZpY3Rpb24gdm90ZSBleHBpcmVkLCBhbmQgdGhlIGZ1bmRzIGhhdmUgYmVlbiB1bmxvY2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSJBwxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXZlbnQIBFQABEkAAUAkU3VibWl0dGVkDAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2uAATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbKkBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgAEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzdWJtaXR0ZWQuVERlY2lzaW9uRGVwb3NpdFBsYWNlZAwBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudEABPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAQSUVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcGxhY2VkLlxEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudEABPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAgScVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuOERlcG9zaXRTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50QAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4DBGxBIGRlcG9zaXQgaGFzIGJlZW4gc2xhc2hlZC48RGVjaXNpb25TdGFydGVkEAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2uAATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbKkBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmNBwEgVDo6VGFsbHkEuFRoZSBjdXJyZW50IHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4EBLxBIHJlZmVyZW5kdW0gaGFzIG1vdmVkIGludG8gdGhlIGRlY2lkaW5nIHBoYXNlLjhDb25maXJtU3RhcnRlZAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4FADhDb25maXJtQWJvcnRlZAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4GACRDb25maXJtZWQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseY0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4HBCEBQSByZWZlcmVuZHVtIGhhcyBlbmRlZCBpdHMgY29uZmlybWF0aW9uIHBoYXNlIGFuZCBpcyByZWFkeSBmb3IgYXBwcm92YWwuIEFwcHJvdmVkBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLggEDQFBIHJlZmVyZW5kdW0gaGFzIGJlZW4gYXBwcm92ZWQgYW5kIGl0cyBwcm9wb3NhbCBoYXMgYmVlbiBzY2hlZHVsZWQuIFJlamVjdGVkCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmNBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCQSsQSBwcm9wb3NhbCBoYXMgYmVlbiByZWplY3RlZCBieSByZWZlcmVuZHVtLiBUaW1lZE91dAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5jQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgoE2EEgcmVmZXJlbmR1bSBoYXMgYmVlbiB0aW1lZCBvdXQgd2l0aG91dCBiZWluZyBkZWNpZGVkLiRDYW5jZWxsZWQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseY0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4LBIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2FuY2VsbGVkLhhLaWxsZWQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseY0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4MBHRBIHJlZmVyZW5kdW0gaGFzIGJlZW4ga2lsbGVkLmRTdWJtaXNzaW9uRGVwb3NpdFJlZnVuZGVkDAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50QAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4NBKRUaGUgc3VibWlzc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHJlZnVuZGVkLixNZXRhZGF0YVNldAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BEGhhc2gsARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg4EnE1ldGFkYXRhIGZvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gc2V0LjxNZXRhZGF0YUNsZWFyZWQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoLAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4PBKxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0jQcMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxR0eXBlcxRUYWxseQgUVm90ZXMBQBRUb3RhbAAADAEQYXllc0ABFFZvdGVzAAEQbmF5c0ABFFZvdGVzAAEcc3VwcG9ydEABFFZvdGVzAACRBwxAcGFsbGV0X3doaXRlbGlzdBhwYWxsZXQURXZlbnQEBFQAAQw8Q2FsbFdoaXRlbGlzdGVkBAEkY2FsbF9oYXNoLAEcVDo6SGFzaAAAAFhXaGl0ZWxpc3RlZENhbGxSZW1vdmVkBAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABAGRXaGl0ZWxpc3RlZENhbGxEaXNwYXRjaGVkCAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdJUHAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwACAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJUHBBhSZXN1bHQIBFQBmQcERQGdBwEICE9rBACZBwAAAAAMRXJyBACdBwAAAQAAmQcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUG9zdERpc3BhdGNoSW5mbwAACAE0YWN0dWFsX3dlaWdodPkFAThPcHRpb248V2VpZ2h0PgABIHBheXNfZmVlHQcBEFBheXMAAJ0HCChzcF9ydW50aW1lZERpc3BhdGNoRXJyb3JXaXRoUG9zdEluZm8EEEluZm8BmQcACAEkcG9zdF9pbmZvmQcBEEluZm8AARRlcnJvciEHATREaXNwYXRjaEVycm9yAAChBwxEcGFsbGV0X2Rpc3BhdGNoZXIYcGFsbGV0FEV2ZW50BARUAAEMdFRyZWFzdXJ5TWFuYWdlckNhbGxEaXNwYXRjaGVkCAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdJUHAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwAAAGRBYXZlTWFuYWdlckNhbGxEaXNwYXRjaGVkCAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdJUHAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwABAHBFbWVyZ2VuY3lBZG1pbkNhbGxEaXNwYXRjaGVkCAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdJUHAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwACAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUHDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkYcGFsbGV0FEV2ZW50BARUAAEYWEV4aXN0ZW50aWFsRGVwb3NpdFBhaWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASRmZWVfYXNzZXQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQAACNBFeGlzdGVudGlhbCBkZXBvc2l0IGZvciBpbnN1ZmZpY2luZXQgYXNzZXQgd2FzIHBhaWQunGBTdWZmaWNpZW5jeUNoZWNrYCB0cmlnZ2VycyB0aGlzIGV2ZW50LihSZWdpc3RlcmVkIAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEoYXNzZXRfbmFtZUUCAZhPcHRpb248Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVNAgEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdEABHEJhbGFuY2UAATh4Y21fcmF0ZV9saW1pdPUBATxPcHRpb248QmFsYW5jZT4AARhzeW1ib2xFAgGYT3B0aW9uPEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0Pj4AASBkZWNpbWFsc1ECAShPcHRpb248dTg+AAE0aXNfc3VmZmljaWVudEQBEGJvb2wAAQRUQXNzZXQgd2FzIHJlZ2lzdGVyZWQuHFVwZGF0ZWQgASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAShhc3NldF9uYW1lRQIBmE9wdGlvbjxCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4+AAEoYXNzZXRfdHlwZU0CASRBc3NldFR5cGUAAUxleGlzdGVudGlhbF9kZXBvc2l0QAEcQmFsYW5jZQABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABGHN5bWJvbEUCAZhPcHRpb248Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzUQIBKE9wdGlvbjx1OD4AATRpc19zdWZmaWNpZW50RAEQYm9vbAACBEhBc3NldCB3YXMgdXBkYXRlZC4sTG9jYXRpb25TZXQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASBsb2NhdGlvblkCAVhUOjpBc3NldE5hdGl2ZUxvY2F0aW9uAAMEhE5hdGl2ZSBsb2NhdGlvbiBzZXQgZm9yIGFuIGFzc2V0LixBc3NldEJhbm5lZAQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAEBERBc3NldCB3YXMgYmFubmVkLjRBc3NldFVuYmFubmVkBAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAUEYEFzc2V0J3MgYmFuIHdhcyByZW1vdmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKkHDDRwYWxsZXRfY2xhaW1zGHBhbGxldBRFdmVudAQEVAABBBRDbGFpbQwAAAEwVDo6QWNjb3VudElkAACtBwE8RXRoZXJldW1BZGRyZXNzAABAATBCYWxhbmNlT2Y8VD4AAAAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXStBww0cGFsbGV0X2NsYWltcxh0cmFpdHM8RXRoZXJldW1BZGRyZXNzAAAEAFwBIFt1ODsgMjBdAACxBwxccGFsbGV0X2NvbGxhdG9yX3Jld2FyZHMYcGFsbGV0FEV2ZW50BARUAAEEQENvbGxhdG9yUmV3YXJkZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEgY3VycmVuY3koATRUOjpDdXJyZW5jeUlkAAAEWENvbGxhdG9yIHdhcyByZXdhcmRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS1BwxgcGFsbGV0X2NvbGxhdG9yX3JvdGF0aW9uGHBhbGxldBRFdmVudAQEVAABBDxDb2xsYXRvckJlbmNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATRzZXNzaW9uX2luZGV4KAEwU2Vzc2lvbkluZGV4AAAABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0uQcMPHBhbGxldF9vbW5pcG9vbBhwYWxsZXQURXZlbnQEBFQAATgoVG9rZW5BZGRlZAwBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABOGluaXRpYWxfYW1vdW50QAEcQmFsYW5jZQABNGluaXRpYWxfcHJpY2VUARRQcmljZQAABHhBbiBhc3NldCB3YXMgYWRkZWQgdG8gT21uaXBvb2wwVG9rZW5SZW1vdmVkDAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABNGh1Yl93aXRoZHJhd25AARxCYWxhbmNlAAEEiEFuIGFzc2V0IHdhcyByZW1vdmVkIGZyb20gT21uaXBvb2w4TGlxdWlkaXR5QWRkZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAACBLBMaXF1aWRpdHkgb2YgYW4gYXNzZXQgd2FzIGFkZGVkIHRvIE9tbmlwb29sLkBMaXF1aWRpdHlSZW1vdmVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABOHNoYXJlc19yZW1vdmVkQAEcQmFsYW5jZQABDGZlZVQBJEZpeGVkVTEyOAADBMBMaXF1aWRpdHkgb2YgYW4gYXNzZXQgd2FzIHJlbW92ZWQgZnJvbSBPbW5pcG9vbC5gUHJvdG9jb2xMaXF1aWRpdHlSZW1vdmVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABKGh1Yl9hbW91bnRAARxCYWxhbmNlAAE4c2hhcmVzX3JlbW92ZWRAARxCYWxhbmNlAAQEtFBSb3RvY29sIExpcXVpZGl0eSB3YXMgcmVtb3ZlZCBmcm9tIE9tbmlwb29sLjBTZWxsRXhlY3V0ZWQkAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAE0aHViX2Ftb3VudF9pbkABHEJhbGFuY2UAAThodWJfYW1vdW50X291dEABHEJhbGFuY2UAAUBhc3NldF9mZWVfYW1vdW50QAEcQmFsYW5jZQABTHByb3RvY29sX2ZlZV9hbW91bnRAARxCYWxhbmNlAAUIUFNlbGwgdHJhZGUgZXhlY3V0ZWQuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQsQnV5RXhlY3V0ZWQkAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAE0aHViX2Ftb3VudF9pbkABHEJhbGFuY2UAAThodWJfYW1vdW50X291dEABHEJhbGFuY2UAAUBhc3NldF9mZWVfYW1vdW50QAEcQmFsYW5jZQABTHByb3RvY29sX2ZlZV9hbW91bnRAARxCYWxhbmNlAAYITEJ1eSB0cmFkZSBleGVjdXRlZC7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZDxQb3NpdGlvbkNyZWF0ZWQYASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAARRhc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEYc2hhcmVzQAEcQmFsYW5jZQABFHByaWNlVAEUUHJpY2UABwTATFAgUG9zaXRpb24gd2FzIGNyZWF0ZWQgYW5kIE5GVCBpbnN0YW5jZSBtaW50ZWQuRFBvc2l0aW9uRGVzdHJveWVkCAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAgEyExQIFBvc2l0aW9uIHdhcyBkZXN0cm95ZWQgYW5kIE5GVCBpbnN0YW5jZSBidXJuZWQuPFBvc2l0aW9uVXBkYXRlZBgBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABFGFzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAARhzaGFyZXNAARxCYWxhbmNlAAEUcHJpY2VUARRQcmljZQAJBGBMUCBQb3NpdGlvbiB3YXMgdXBkYXRlZC5QVHJhZGFibGVTdGF0ZVVwZGF0ZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRzdGF0ZXkCASxUcmFkYWJpbGl0eQAKBKBBc3NldCdzIHRyYWRhYmxlIHN0YXRlIGhhcyBiZWVuIHVwZGF0ZWQuNEFzc2V0UmVmdW5kZWQMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEkcmVjaXBpZW50AAEwVDo6QWNjb3VudElkAAsESQFBbW91bnQgaGFzIGJlZW4gcmVmdW5kZWQgZm9yIGFzc2V0IHdoaWNoIGhhcyBub3QgYmVlbiBhY2NlcHRlZCB0byBhZGQgdG8gb21uaXBvb2wuVEFzc2V0V2VpZ2h0Q2FwVXBkYXRlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDGNhcHUCARxQZXJtaWxsAAwEkEFzc2V0J3Mgd2VpZ2h0IGNhcCBoYXMgYmVlbiB1cGRhdGVkLihTbGlwRmVlU2V0BAEgc2xpcF9mZWWBAgFUT3B0aW9uPFNsaXBGZWVDb25maWc+AA0EjFNsaXAgZmVlIGNvbmZpZ3VyYXRpb24gd2FzIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0vQcMYHBhbGxldF90cmFuc2FjdGlvbl9wYXVzZRhwYWxsZXQURXZlbnQEBFQAAQhEVHJhbnNhY3Rpb25QYXVzZWQIAURwYWxsZXRfbmFtZV9ieXRlcxQBHFZlYzx1OD4AAUxmdW5jdGlvbl9uYW1lX2J5dGVzFAEcVmVjPHU4PgAABEhQYXVzZWQgdHJhbnNhY3Rpb25MVHJhbnNhY3Rpb25VbnBhdXNlZAgBRHBhbGxldF9uYW1lX2J5dGVzFAEcVmVjPHU4PgABTGZ1bmN0aW9uX25hbWVfYnl0ZXMUARxWZWM8dTg+AAEEUFVucGF1c2VkIHRyYW5zYWN0aW9uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0wQcMNHBhbGxldF9kdXN0ZXIYcGFsbGV0FEV2ZW50BARUAAEMGER1c3RlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABHEJhbGFuY2UAAAQ8QWNjb3VudCBkdXN0ZWQuFEFkZGVkBAEMd2hvAAEwVDo6QWNjb3VudElkAAEEjEFjY291bnQgYWRkZWQgdG8gbm9uLWR1c3RhYmxlIGxpc3QuHFJlbW92ZWQEAQx3aG8AATBUOjpBY2NvdW50SWQAAgScQWNjb3VudCByZW1vdmVkIGZyb20gbm9uLWR1c3RhYmxlIGxpc3QuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0xQcMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFdmVudAgEVAAESQABDFxHbG9iYWxGYXJtQWNjUlBaVXBkYXRlZAwBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE8YWNjdW11bGF0ZWRfcnB6VAEkRml4ZWRVMTI4AAE4dG90YWxfc2hhcmVzX3pAARxCYWxhbmNlAAAE1Edsb2JhbCBmYXJtIGFjY3VtdWxhdGVkIHJld2FyZCBwZXIgc2hhcmUgd2FzIHVwZGF0ZWQuXFlpZWxkRmFybUFjY1JQVlNVcGRhdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAUBhY2N1bXVsYXRlZF9ycHZzVAEkRml4ZWRVMTI4AAFMdG90YWxfdmFsdWVkX3NoYXJlc0ABHEJhbGFuY2UAAQTsWWllbGQgZmFybSBhY2N1bXVsYXRlZCByZXdhcmQgcGVyIHZhbHVlZCBzaGFyZSB3YXMgdXBkYXRlZC5UQWxsUmV3YXJkc0Rpc3RyaWJ1dGVkBAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAgTwR2xvYmFsIGZhcm0gaGFzIG5vIG1vcmUgcmV3YXJkcyB0byBkaXN0cmlidXRlIGluIHRoZSBtb21lbnQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0yQcMgHBhbGxldF9vbW5pcG9vbF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFdmVudAQEVAABNERHbG9iYWxGYXJtQ3JlYXRlZCgBCGlkKAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAATR0b3RhbF9yZXdhcmRzQAEcQmFsYW5jZQABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzKAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAFUbWF4X3Jld2FyZF9wZXJfcGVyaW9kQAEcQmFsYW5jZQABLG1pbl9kZXBvc2l0QAEcQmFsYW5jZQABVGxybmFfcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAAABHBOZXcgZ2xvYmFsIGZhcm0gd2FzIGNyZWF0ZWQuREdsb2JhbEZhcm1VcGRhdGVkEAEIaWQoATBHbG9iYWxGYXJtSWQAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoASxQZXJpb2RPZjxUPgABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAQRcR2xvYmFsIGZhcm0gd2FzIHVwZGF0ZWRQR2xvYmFsRmFybVRlcm1pbmF0ZWQQAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAAVR1bmRpc3RyaWJ1dGVkX3Jld2FyZHNAARxCYWxhbmNlAAIEbEdsb2JhbCBmYXJtIHdhcyB0ZXJtaW5hdGVkLkBZaWVsZEZhcm1DcmVhdGVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIAATRsb3lhbHR5X2N1cnZlnQIBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AAMElE5ldyB5aWVsZCBmYXJtIHdhcyBhZGRlZCB0byB0aGUgZmFybS5AWWllbGRGYXJtVXBkYXRlZBQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAQEiFlpZWxkIGZhcm0gbXVsdGlwbGllciB3YXMgdXBkYXRlZC5AWWllbGRGYXJtU3RvcHBlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAUEmFlpZWxkIGZhcm0gZm9yIGBhc3NldF9pZGAgd2FzIHN0b3BwZWQuQFlpZWxkRmFybVJlc3VtZWQUAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgAGBJhZaWVsZCBmYXJtIGZvciBgYXNzZXRfaWRgIHdhcyByZXN1bWVkLkxZaWVsZEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQABwS8WWllbGQgZmFybSB3YXMgdGVybWluYXRlZCBmcm9tIHRoZSBnbG9iYWwgZmFybS48U2hhcmVzRGVwb3NpdGVkHAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAE0c2hhcmVzX2Ftb3VudEABHEJhbGFuY2UAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAgEqE5ldyBMUCBzaGFyZXMoTFAgcG9zaXRpb24pIHdlcmUgZGVwb3NpdGVkLkRTaGFyZXNSZWRlcG9zaXRlZBwBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABNHNoYXJlc19hbW91bnRAARxCYWxhbmNlAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAAJBAEBQWxyZWFkeSBsb2NrZWQgTFAgc2hhcmVzIHdlcmUgcmVkZXBvc2l0ZWQgdG8gYW5vdGhlciB5aWVsZCBmYXJtLjRSZXdhcmRDbGFpbWVkGAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARxjbGFpbWVkQAEcQmFsYW5jZQABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAoEVFJld2FyZHMgd2VyZSBjbGFpbWVkLjxTaGFyZXNXaXRoZHJhd24UAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABHEJhbGFuY2UAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAsEZExQIHNoYXJlcyB3ZXJlIHdpdGhkcmF3bi5ARGVwb3NpdERlc3Ryb3llZAgBDHdobwABMFQ6OkFjY291bnRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQADAQdAUFsbCBMUCBzaGFyZXMgd2VyZSB1bmxvY2tlZCBhbmQgTkZUIHJlcHJlc2VudGluZyBkZXBvc2l0IHdhcyBkZXN0cm95ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0zQcMKHBhbGxldF9vdGMYcGFsbGV0FEV2ZW50BARUAAEQJENhbmNlbGxlZAQBIG9yZGVyX2lkKAEcT3JkZXJJZAAABGxBbiBPcmRlciBoYXMgYmVlbiBjYW5jZWxsZWQYRmlsbGVkFAEgb3JkZXJfaWQoARxPcmRlcklkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAEMZmVlQAEcQmFsYW5jZQABCIxBbiBPcmRlciBoYXMgYmVlbiBjb21wbGV0ZWx5IGZpbGxlZMREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkPFBhcnRpYWxseUZpbGxlZBQBIG9yZGVyX2lkKAEcT3JkZXJJZAABDHdobwABMFQ6OkFjY291bnRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABDGZlZUABHEJhbGFuY2UAAgiIQW4gT3JkZXIgaGFzIGJlZW4gcGFydGlhbGx5IGZpbGxlZMREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkGFBsYWNlZBgBIG9yZGVyX2lkKAEcT3JkZXJJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAAUhwYXJ0aWFsbHlfZmlsbGFibGVEARBib29sAAMEYEFuIE9yZGVyIGhhcyBiZWVuIHBsYWNlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNEHDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyGHBhbGxldBRFdmVudAQEVAABNFxUcmFkZVZvbHVtZUxpbWl0Q2hhbmdlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABSHRyYWRlX3ZvbHVtZV9saW1pdKkCASgodTMyLCB1MzIpAAAErFRyYWRlIHZvbHVtZSBsaW1pdCBvZiBhbiBhc3NldCB3YXMgY2hhbmdlZC5gQWRkTGlxdWlkaXR5TGltaXRDaGFuZ2VkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE8bGlxdWlkaXR5X2xpbWl00QIBSE9wdGlvbjwodTMyLCB1MzIpPgABBLBBZGQgbGlxdWlkaXR5IGxpbWl0IG9mIGFuIGFzc2V0IHdhcyBjaGFuZ2VkLmxSZW1vdmVMaXF1aWRpdHlMaW1pdENoYW5nZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAATxsaXF1aWRpdHlfbGltaXTRAgFIT3B0aW9uPCh1MzIsIHUzMik+AAIEvFJlbW92ZSBsaXF1aWRpdHkgbGltaXQgb2YgYW4gYXNzZXQgd2FzIGNoYW5nZWQuNEFzc2V0TG9ja2Rvd24IASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARR1bnRpbCgBREJsb2NrTnVtYmVyRm9yPFQ+AAMEWEFzc2V0IHdlbnQgdG8gbG9ja2Rvd25QQXNzZXRMb2NrZG93blJlbW92ZWQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQABARoQXNzZXQgbG9ja2Rvd24gd2FzIHJlbW92ZWQ8RGVwb3NpdFJlbGVhc2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAUErEFsbCByZXNlcnZlZCBhbW91bnQgb2YgZGVwb3NpdCB3YXMgcmVsZWFzZWRYV2l0aGRyYXdMb2NrZG93bkxpZnRlZAAGBB0BR2xvYmFsIHdpdGhkcmF3IGxvY2tkb3duIHdhcyBsaWZ0ZWQgKGVpdGhlciBhdXRvbWF0aWNhbGx5IG9yIGJ5IHJlc2V0KS5UV2l0aGRyYXdMb2NrZG93blJlc2V0AAcECQFXaXRoZHJhdyBsb2NrZG93biBhY2N1bXVsYXRvciBhbmQgc3RhdGVzIHdlcmUgcmVzZXQgYnkgZ292ZXJuYW5jZS5oV2l0aGRyYXdMaW1pdENvbmZpZ1VwZGF0ZWQIARRsaW1pdEABKFQ6OkJhbGFuY2UAARh3aW5kb3cYAUhwcmltaXRpdmVzOjpNb21lbnQACATUR2xvYmFsIHdpdGhkcmF3IGxpbWl0IGNvbmZpZyBwYXJhbWV0ZXJzIHdlcmUgdXBkYXRlZC5kV2l0aGRyYXdMb2NrZG93blRyaWdnZXJlZAQBFHVudGlsGAFIcHJpbWl0aXZlczo6TW9tZW50AAkEvEdsb2JhbCB3aXRoZHJhdyBsb2NrZG93biB3YXMgc2V0IGJ5IGdvdmVybmFuY2UuTEVncmVzc0FjY291bnRzQWRkZWQEARRjb3VudCgBDHUzMgAKBLBBIG51bWJlciBvZiBlZ3Jlc3MgYWNjb3VudHMgYWRkZWQgdG8gYSBsaXN0LlRFZ3Jlc3NBY2NvdW50c1JlbW92ZWQEARRjb3VudCgBDHUzMgALBMBBIG51bWJlciBvZiBlZ3Jlc3MgYWNjb3VudHMgcmVtb3ZlZCBmcm9tIGEgbGlzdC5QQXNzZXRDYXRlZ29yeVVwZGF0ZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASBjYXRlZ29yedkCAWxPcHRpb248R2xvYmFsQXNzZXRDYXRlZ29yeT4ADASAQXNzZXQgY2F0ZWdvcnkgb3ZlcnJpZGUgdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTVBwxUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yGHBhbGxldBRFdmVudAQEVAABCCBFeGVjdXRlZBQBIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AAShUOjpCYWxhbmNlAAEoYW1vdW50X291dEABKFQ6OkJhbGFuY2UAASBldmVudF9pZCgBREluY3JlbWVudGFsSWRUeXBlAAAE0FRoZSByb3V0ZSB3aXRoIHRyYWRlcyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQwUm91dGVVcGRhdGVkBAEkYXNzZXRfaWRztQIBPFZlYzxUOjpBc3NldElkPgABBNBUaGUgcm91dGUgd2l0aCB0cmFkZXMgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV02QcMTHBhbGxldF9keW5hbWljX2ZlZXMYcGFsbGV0FEV2ZW50BARUAAEIREFzc2V0RmVlQ29uZmlnU2V0CAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYcGFyYW1z/QIBWEFzc2V0RmVlQ29uZmlnPFQ6OkZlZT4AAASQQXNzZXQgZmVlIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gc2V0VEFzc2V0RmVlQ29uZmlnUmVtb3ZlZAQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABBKBBc3NldCBmZWUgY29uZmlndXJhdGlvbiBoYXMgYmVlbiByZW1vdmVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV03QcMOHBhbGxldF9zdGFraW5nGHBhbGxldBRFdmVudAQEVAABHDxQb3NpdGlvbkNyZWF0ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEUc3Rha2VAARxCYWxhbmNlAAAE0E5ldyBzdGFraW5nIHBvc2l0aW9uIHdhcyBjcmVhdGVkIGFuZCBORlQgd2FzIG1pbnRlZC4oU3Rha2VBZGRlZBwBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARRzdGFrZUABHEJhbGFuY2UAASx0b3RhbF9zdGFrZUABHEJhbGFuY2UAAThsb2NrZWRfcmV3YXJkc0ABHEJhbGFuY2UAAThzbGFzaGVkX3BvaW50c0ABFFBvaW50AAFIcGF5YWJsZV9wZXJjZW50YWdlVAEkRml4ZWRVMTI4AAEEyFN0YWtlZCBhbW91bnQgZm9yIGV4aXN0aW5nIHBvc2l0aW9uIHdhcyBpbmNyZWFzZWQuOFJld2FyZHNDbGFpbWVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABMHBhaWRfcmV3YXJkc0ABHEJhbGFuY2UAAUB1bmxvY2tlZF9yZXdhcmRzQAEcQmFsYW5jZQABOHNsYXNoZWRfcG9pbnRzQAEUUG9pbnQAAVhzbGFzaGVkX3VucGFpZF9yZXdhcmRzQAEcQmFsYW5jZQABSHBheWFibGVfcGVyY2VudGFnZVQBJEZpeGVkVTEyOAACBFRSZXdhcmRzIHdlcmUgY2xhaW1lZC4gVW5zdGFrZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAE4dW5sb2NrZWRfc3Rha2VAARxCYWxhbmNlAAMEvFN0YWtlZCBhbW91bnQgd2FzIHdpdGhkcmF3biBhbmQgTkZUIHdhcyBidXJuZWQuSFN0YWtpbmdJbml0aWFsaXplZAQBUG5vbl9kdXN0YWJsZV9iYWxhbmNlQAEcQmFsYW5jZQAEBGBTdGFraW5nIHdhcyBpbml0aWFsaXplZC5UQWNjdW11bGF0ZWRScHNVcGRhdGVkCAE8YWNjdW11bGF0ZWRfcnBzVAEkRml4ZWRVMTI4AAEsdG90YWxfc3Rha2VAARxCYWxhbmNlAAUE1FN0YWtpbmcncyBgYWNjdW11bGF0ZWRfcmV3YXJkX3Blcl9zdGFrZWAgd2FzIHVwZGF0ZWQuNEZvcmNlVW5zdGFrZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEUc3Rha2VAARxCYWxhbmNlAAE4bG9ja2VkX3Jld2FyZHNAARxCYWxhbmNlAAEwcGFpZF9yZXdhcmRzQAEcQmFsYW5jZQAGCAUBUG9zaXRpb24gd2FzIGZvcmNlLXVuc3Rha2VkIHRocm91Z2ggdGhlIEdJR0FIRFggbWlncmF0aW9uIGhlbHBlci7sRGlzdGluY3QgZnJvbSBgVW5zdGFrZWRgIGJlY2F1c2Ugbm8gcmV3YXJkcyB3ZXJlIGZvcmZlaXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXThBwxEcGFsbGV0X3N0YWJsZXN3YXAYcGFsbGV0FEV2ZW50BARUAAEsLFBvb2xDcmVhdGVkFAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAARhhc3NldHO1AgE8VmVjPFQ6OkFzc2V0SWQ+AAE0YW1wbGlmaWNhdGlvbuUHAShOb25aZXJvVTE2AAEMZmVldQIBHFBlcm1pbGwAAQxwZWfpBwHIT3B0aW9uPFBvb2xQZWdJbmZvPEJsb2NrTnVtYmVyRm9yPFQ+LCBUOjpBc3NldElkPj4AAARMQSBwb29sIHdhcyBjcmVhdGVkLihGZWVVcGRhdGVkCAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAQxmZWV1AgEcUGVybWlsbAABBGhQb29sIGZlZSBoYXMgYmVlbiB1cGRhdGVkLjhMaXF1aWRpdHlBZGRlZBABHHBvb2xfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYc2hhcmVzQAEcQmFsYW5jZQABGGFzc2V0c8ECAXBWZWM8QXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4+AAIEqExpcXVpZGl0eSBvZiBhbiBhc3NldCB3YXMgYWRkZWQgdG8gYSBwb29sLkBMaXF1aWRpdHlSZW1vdmVkFAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhzaGFyZXNAARxCYWxhbmNlAAEcYW1vdW50c8ECAXBWZWM8QXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4+AAEMZmVlQAEcQmFsYW5jZQADBEhMaXF1aWRpdHkgcmVtb3ZlZC4wU2VsbEV4ZWN1dGVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAEMZmVlQAEcQmFsYW5jZQAECI0BU2VsbCB0cmFkZSBleGVjdXRlZC4gVHJhZGUgZmVlIHBhaWQgaW4gYXNzZXQgbGVhdmluZyB0aGUgcG9vbCAoYWxyZWFkeSBzdWJ0cmFjdGVkIGZyb20gYW1vdW50X291dCkuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQsQnV5RXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAAQxmZWVAARxCYWxhbmNlAAUIeQFCdXkgdHJhZGUgZXhlY3V0ZWQuIFRyYWRlIGZlZSBwYWlkIGluIGFzc2V0IGVudGVyaW5nIHRoZSBwb29sIChhbHJlYWR5IGluY2x1ZGVkIGluIGFtb3VudF9pbikuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRQVHJhZGFibGVTdGF0ZVVwZGF0ZWQMARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABFHN0YXRlEQMBLFRyYWRhYmlsaXR5AAYEoEFzc2V0J3MgdHJhZGFibGUgc3RhdGUgaGFzIGJlZW4gdXBkYXRlZC5UQW1wbGlmaWNhdGlvbkNoYW5naW5nFAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAVRjdXJyZW50X2FtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABTGZpbmFsX2FtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABLHN0YXJ0X2Jsb2NrKAFEQmxvY2tOdW1iZXJGb3I8VD4AASRlbmRfYmxvY2soAURCbG9ja051bWJlckZvcjxUPgAHBNRBbXBsaWZpY2F0aW9uIG9mIGEgcG9vbCBoYXMgYmVlbiBzY2hlZHVsZWQgdG8gY2hhbmdlLjRQb29sRGVzdHJveWVkBAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQACARoQSBwb29sIGhhcyBiZWVuIGRlc3Ryb3llZC5QUG9vbFBlZ1NvdXJjZVVwZGF0ZWQMARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKHBlZ19zb3VyY2UZAwFUUGVnU291cmNlPFQ6OkFzc2V0SWQ+AAkEhFBvb2wgcGVnIHNvdXJjZSBoYXMgYmVlbiB1cGRhdGVkLlxQb29sTWF4UGVnVXBkYXRlVXBkYXRlZAgBHHBvb2xfaWQoAShUOjpBc3NldElkAAE4bWF4X3BlZ191cGRhdGUpAwEcUGVyYmlsbAAKBJRQb29sIG1heCBwZWcgdXBkYXRlIGhhcyBiZWVuIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV05QcEKE5vblplcm9VMTYAAAQAgAAAAOkHBBhPcHRpb24EBFQB7QcBCBBOb25lAAAAEFNvbWUEAO0HAAABAADtBwxEcGFsbGV0X3N0YWJsZXN3YXAUdHlwZXMsUG9vbFBlZ0luZm8ILEJsb2NrTnVtYmVyASgcQXNzZXRJZAEoABABGHNvdXJjZRUDAWhCb3VuZGVkUGVnU291cmNlczxBc3NldElkPgABKHVwZGF0ZWRfYXQoASxCbG9ja051bWJlcgABOG1heF9wZWdfdXBkYXRlKQMBHFBlcmJpbGwAARxjdXJyZW508QcBLEJvdW5kZWRQZWdzAADxBwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0CBFMAAAQA9QcBGFZlYzxUPgAA9QcAAAJ9AgD5BwwwcGFsbGV0X2JvbmRzGHBhbGxldBRFdmVudAQEVAABDDBUb2tlbkNyZWF0ZWQQARhpc3N1ZXIAATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBHEFzc2V0SWQAARxib25kX2lkKAEcQXNzZXRJZAABIG1hdHVyaXR5GAEYTW9tZW50AAAEbEEgYm9uZCBhc3NldCB3YXMgcmVnaXN0ZXJlZBhJc3N1ZWQQARhpc3N1ZXIAATBUOjpBY2NvdW50SWQAARxib25kX2lkKAEcQXNzZXRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAQxmZWVAAShUOjpCYWxhbmNlAAEEUE5ldyBib25kIHdlcmUgaXNzdWVkIFJlZGVlbWVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYm9uZF9pZCgBHEFzc2V0SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAIETEJvbmRzIHdlcmUgcmVkZWVtZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXT9BwxYcGFsbGV0X290Y19zZXR0bGVtZW50cxhwYWxsZXQURXZlbnQEBFQAAQQgRXhlY3V0ZWQIASBhc3NldF9pZCgBMEFzc2V0SWRPZjxUPgABGHByb2ZpdEABHEJhbGFuY2UAAARkQSB0cmFkZSBoYXMgYmVlbiBleGVjdXRlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAEIDChwYWxsZXRfbGJwGHBhbGxldBRFdmVudAQEVAABGCxQb29sQ3JlYXRlZAgBEHBvb2wAASRQb29sSWQ8VD4AARBkYXRhBQgBlFBvb2w8VDo6QWNjb3VudElkLCBCbG9ja051bWJlckZvcjxUPj4AAASwUG9vbCB3YXMgY3JlYXRlZCBieSB0aGUgYENyZWF0ZVBvb2xgIG9yaWdpbi4sUG9vbFVwZGF0ZWQIARBwb29sAAEkUG9vbElkPFQ+AAEQZGF0YQUIAZRQb29sPFQ6OkFjY291bnRJZCwgQmxvY2tOdW1iZXJGb3I8VD4+AAEEXFBvb2wgZGF0YSB3ZXJlIHVwZGF0ZWQuOExpcXVpZGl0eUFkZGVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABIGFtb3VudF9hQAEwQmFsYW5jZU9mPFQ+AAEgYW1vdW50X2JAATBCYWxhbmNlT2Y8VD4AAgScTmV3IGxpcXVpZGl0eSB3YXMgcHJvdmlkZWQgdG8gdGhlIHBvb2wuQExpcXVpZGl0eVJlbW92ZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEgYW1vdW50X2FAATBCYWxhbmNlT2Y8VD4AASBhbW91bnRfYkABMEJhbGFuY2VPZjxUPgADBPxMaXF1aWRpdHkgd2FzIHJlbW92ZWQgZnJvbSB0aGUgcG9vbCBhbmQgdGhlIHBvb2wgd2FzIGRlc3Ryb3llZC4wU2VsbEV4ZWN1dGVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABKHNhbGVfcHJpY2VAATBCYWxhbmNlT2Y8VD4AASRmZWVfYXNzZXQoARxBc3NldElkAAEoZmVlX2Ftb3VudEABMEJhbGFuY2VPZjxUPgAECDhTYWxlIGV4ZWN1dGVkLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkLEJ1eUV4ZWN1dGVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABJGJ1eV9wcmljZUABMEJhbGFuY2VPZjxUPgABJGZlZV9hc3NldCgBHEFzc2V0SWQAAShmZWVfYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAUISFB1cmNoYXNlIGV4ZWN1dGVkLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0BQgIKHBhbGxldF9sYnAQUG9vbAgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKAAoARRvd25lcgABJEFjY291bnRJZAABFHN0YXJ0dAFMT3B0aW9uPEJsb2NrTnVtYmVyPgABDGVuZHQBTE9wdGlvbjxCbG9ja051bWJlcj4AARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAE4aW5pdGlhbF93ZWlnaHQoASRMQlBXZWlnaHQAATBmaW5hbF93ZWlnaHQoASRMQlBXZWlnaHQAATB3ZWlnaHRfY3VydmU5AwE8V2VpZ2h0Q3VydmVUeXBlAAEMZmVlqQIBKCh1MzIsIHUzMikAATRmZWVfY29sbGVjdG9yAAEkQWNjb3VudElkAAEwcmVwYXlfdGFyZ2V0QAEcQmFsYW5jZQAACQgMKHBhbGxldF94eWsYcGFsbGV0FEV2ZW50BARUAAEYOExpcXVpZGl0eUFkZGVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABIGFtb3VudF9hQAEcQmFsYW5jZQABIGFtb3VudF9iQAEcQmFsYW5jZQAABJxOZXcgbGlxdWlkaXR5IHdhcyBwcm92aWRlZCB0byB0aGUgcG9vbC5ATGlxdWlkaXR5UmVtb3ZlZBABDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAARhzaGFyZXNAARxCYWxhbmNlAAEEkExpcXVpZGl0eSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBwb29sLixQb29sQ3JlYXRlZBgBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAAVRpbml0aWFsX3NoYXJlc19hbW91bnRAARxCYWxhbmNlAAEsc2hhcmVfdG9rZW4oARxBc3NldElkAAEQcG9vbAABMFQ6OkFjY291bnRJZAACBERQb29sIHdhcyBjcmVhdGVkLjRQb29sRGVzdHJveWVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABLHNoYXJlX3Rva2VuKAEcQXNzZXRJZAABEHBvb2wAATBUOjpBY2NvdW50SWQAAwRMUG9vbCB3YXMgZGVzdHJveWVkLjBTZWxsRXhlY3V0ZWQgAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pbigBHEFzc2V0SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABKHNhbGVfcHJpY2VAARxCYWxhbmNlAAEkZmVlX2Fzc2V0KAEcQXNzZXRJZAABKGZlZV9hbW91bnRAARxCYWxhbmNlAAEQcG9vbAABMFQ6OkFjY291bnRJZAAECFBBc3NldCBzYWxlIGV4ZWN1dGVkLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkLEJ1eUV4ZWN1dGVkIAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASRidXlfcHJpY2VAARxCYWxhbmNlAAEkZmVlX2Fzc2V0KAEcQXNzZXRJZAABKGZlZV9hbW91bnRAARxCYWxhbmNlAAEQcG9vbAABMFQ6OkFjY291bnRJZAAFCGBBc3NldCBwdXJjaGFzZSBleGVjdXRlZC7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldA0IDEBwYWxsZXRfcmVmZXJyYWxzGHBhbGxldBRFdmVudAQEVAABHDhDb2RlUmVnaXN0ZXJlZAgBEGNvZGVJAwFsUmVmZXJyYWxDb2RlPFQ6OkNvZGVMZW5ndGg+AAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAABIhSZWZlcnJhbCBjb2RlIGhhcyBiZWVuIHJlZ2lzdGVyZWQuKENvZGVMaW5rZWQMARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEQY29kZUkDAWxSZWZlcnJhbENvZGU8VDo6Q29kZUxlbmd0aD4AAUByZWZlcnJhbF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAEEsFJlZmVycmFsIGNvZGUgaGFzIGJlZW4gbGlua2VkIHRvIGFuIGFjY291bnQuJENvbnZlcnRlZAgBEGZyb20RCAFcQXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4AAQh0bxEIAVxBc3NldEFtb3VudDxUOjpBc3NldElkPgACBKBBc3NldCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gUmV3YXJkQXNzZXQuQENvbnZlcnNpb25GYWlsZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhyZWFzb24hBwE0RGlzcGF0Y2hFcnJvcgADBPhBIHBlbmRpbmcgYXNzZXQgY291bGQgbm90IGJlIGNvbnZlcnRlZDsgc2tpcHBlZCwgbm90IGJsb2NraW5nLhxDbGFpbWVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAFAcmVmZXJyZXJfcmV3YXJkc0ABHEJhbGFuY2UAATR0cmFkZV9yZXdhcmRzQAEcQmFsYW5jZQAEBEBSZXdhcmRzIGNsYWltZWQuTEFzc2V0UmV3YXJkc1VwZGF0ZWQMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRsZXZlbE0DARRMZXZlbAABHHJld2FyZHNRAwE8RmVlRGlzdHJpYnV0aW9uAAUEfE5ldyBhc3NldCByZXdhcmRzIGhhcyBiZWVuIHNldC4cTGV2ZWxVcAgBDHdobwABMFQ6OkFjY291bnRJZAABFGxldmVsTQMBFExldmVsAAYEbFJlZmVycmVyIHJlYWNoZWQgbmV3IGxldmVsLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBEICEBwYWxsZXRfcmVmZXJyYWxzLEFzc2V0QW1vdW50BBxBc3NldElkASgACAEgYXNzZXRfaWQoARxBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQAAFQgMSHBhbGxldF9saXF1aWRhdGlvbhhwYWxsZXQURXZlbnQEBFQAAQgoTGlxdWlkYXRlZBABEHVzZXJYAShFdm1BZGRyZXNzAAFAY29sbGF0ZXJhbF9hc3NldCgBHEFzc2V0SWQAAShkZWJ0X2Fzc2V0KAEcQXNzZXRJZAABGHByb2ZpdEABHEJhbGFuY2UAAASkTW9uZXkgbWFya2V0IHBvc2l0aW9uIGhhcyBiZWVuIGxpcXVpZGF0ZWRER2lnYUhkeExpcXVpZGF0ZWQQARB1c2VyWAEoRXZtQWRkcmVzcwABLGRlYnRfcmVwYWlkQAEcQmFsYW5jZQABKGhkeF9zZWl6ZWRAARxCYWxhbmNlAAE4Z2lnYWhkeF9zZWl6ZWRAARxCYWxhbmNlAAEQ/EEgZ2lnYWhkeCBNb25leSBNYXJrZXQgcG9zaXRpb24gd2FzIGxpcXVpZGF0ZWQgYnkgdGhlIHByb3RvY29sLuxgaGR4X3NlaXplZGAgaXMgdGhlIG1hdGNoaW5nIEhEWCBtb3ZlZCBmcm9tIHRoZSBib3Jyb3dlciB0b/x0aGUgZ2lnYWhkeCBsaXF1aWRhdGlvbiBhY2NvdW50OyBgZ2lnYWhkeF9zZWl6ZWRgIGlzIHRoZSBhVG9rZW7oYW1vdW50IHRyYW5zZmVycmVkIG91dCBvZiB0aGUgYm9ycm93ZXIncyBnaWdhaGR4IHBvc2l0aW9uLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBkIDChwYWxsZXRfaHNtGHBhbGxldBRFdmVudAQEVAABFDxDb2xsYXRlcmFsQWRkZWQYASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARxwb29sX2lkKAEoVDo6QXNzZXRJZAABMHB1cmNoYXNlX2ZlZXUCARxQZXJtaWxsAAFkbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudFQBQENvZWZmaWNpZW50UmF0aW8AATBidXlfYmFja19mZWV1AgEcUGVybWlsbAABMGJ1eWJhY2tfcmF0ZSkDARxQZXJiaWxsAAAkgEEgbmV3IGNvbGxhdGVyYWwgYXNzZXQgd2FzIGFkZGVkACxQYXJhbWV0ZXJzOtQtIGBhc3NldF9pZGA6IFRoZSBJRCBvZiB0aGUgYXNzZXQgYWRkZWQgYXMgY29sbGF0ZXJhbPAtIGBwb29sX2lkYDogVGhlIFN0YWJsZVN3YXAgcG9vbCBJRCB3aGVyZSB0aGlzIGFzc2V0IGJlbG9uZ3MBAS0gYHB1cmNoYXNlX2ZlZWA6IEZlZSBhcHBsaWVkIHdoZW4gYnV5aW5nIEhvbGxhciB3aXRoIHRoaXMgYXNzZXRdAS0gYG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRgOiBNYXhpbXVtIGJ1eSBwcmljZSBjb2VmZmljaWVudCBmb3IgSFNNIHRvIGJ1eSBiYWNrIEhvbGxhctQtIGBidXlfYmFja19mZWVgOiBGZWUgYXBwbGllZCB3aGVuIGJ1eWluZyBiYWNrIEhvbGxhcmEBLSBgYnV5YmFja19yYXRlYDogUGFyYW1ldGVyIHRoYXQgY29udHJvbHMgaG93IHF1aWNrbHkgSFNNIGNhbiBidXkgSG9sbGFyIHdpdGggdGhpcyBhc3NldERDb2xsYXRlcmFsUmVtb3ZlZAQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABEHhBIGNvbGxhdGVyYWwgYXNzZXQgd2FzIHJlbW92ZWQALFBhcmFtZXRlcnM66C0gYGFzc2V0X2lkYDogVGhlIElEIG9mIHRoZSBhc3NldCByZW1vdmVkIGZyb20gY29sbGF0ZXJhbHNEQ29sbGF0ZXJhbFVwZGF0ZWQYASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAATBwdXJjaGFzZV9mZWVdAwE8T3B0aW9uPFBlcm1pbGw+AAFkbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGEDAWBPcHRpb248Q29lZmZpY2llbnRSYXRpbz4AATBidXlfYmFja19mZWVdAwE8T3B0aW9uPFBlcm1pbGw+AAEwYnV5YmFja19yYXRlZQMBPE9wdGlvbjxQZXJiaWxsPgABOG1heF9pbl9ob2xkaW5naQMBXE9wdGlvbjxPcHRpb248QmFsYW5jZT4+AAIkeEEgY29sbGF0ZXJhbCBhc3NldCB3YXMgdXBkYXRlZAAsUGFyYW1ldGVyczrQLSBgYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIHVwZGF0ZWQgY29sbGF0ZXJhbCBhc3NldA0BLSBgcHVyY2hhc2VfZmVlYDogTmV3IHB1cmNoYXNlIGZlZSBpZiB1cGRhdGVkIChOb25lIGlmIG5vdCBjaGFuZ2VkKXUBLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE5ldyBtYXggYnV5IHByaWNlIGNvZWZmaWNpZW50IGlmIHVwZGF0ZWQgKE5vbmUgaWYgbm90IGNoYW5nZWQpDQEtIGBidXlfYmFja19mZWVgOiBOZXcgYnV5IGJhY2sgZmVlIGlmIHVwZGF0ZWQgKE5vbmUgaWYgbm90IGNoYW5nZWQpDQEtIGBidXliYWNrX3JhdGVgOiBOZXcgYnV5YmFjayByYXRlIGlmIHVwZGF0ZWQgKE5vbmUgaWYgbm90IGNoYW5nZWQpPQEtIGBtYXhfaW5faG9sZGluZ2A6IE5ldyBtYXggY29sbGF0ZXJhbCBob2xkaW5nIGlmIHVwZGF0ZWQgKE5vbmUgaWYgbm90IGNoYW5nZWQpREFyYml0cmFnZUV4ZWN1dGVkEAEkYXJiaXRyYWdlCAEIdTgAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAATRob2xsYXJfYW1vdW50QAEcQmFsYW5jZQABGHByb2ZpdEABHEJhbGFuY2UAAxR8QXJiaXRyYWdlIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseQAsUGFyYW1ldGVyczrgLSBgYXNzZXRfaWRgOiBUaGUgY29sbGF0ZXJhbCBhc3NldCB1c2VkIGluIHRoZSBhcmJpdHJhZ2VBAS0gYGhvbGxhcl9hbW91bnRgOiBBbW91bnQgb2YgSG9sbGFyIHRoYXQgd2FzIGluY2x1ZGVkIGluIHRoZSBhcmJpdHJhZ2Ugb3BlcmF0aW9uOEZsYXNoTWludGVyU2V0BAEwZmxhc2hfbWludGVyWAEoRXZtQWRkcmVzcwAEEGBGbGFzaCBtaW50ZXIgYWRkcmVzcyBzZXQALFBhcmFtZXRlcnM6+C0gYGZsYXNoX21pbnRlcmA6IFRoZSBFVk0gYWRkcmVzcyBvZiB0aGUgZmxhc2ggbWludGVyIGNvbnRyYWN0BHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0HQgMNHBhbGxldF9zaWduZXQYcGFsbGV0FEV2ZW50BARUAAEkNENvbmZpZ1VwZGF0ZWQQAURzaWduYXR1cmVfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABTG1heF9jaGFpbl9pZF9sZW5ndGgoAQx1MzIAAUxtYXhfZXZtX2RhdGFfbGVuZ3RoKAEMdTMyAAEgY2hhaW5faWQUARxWZWM8dTg+AAAEmFNpZ25ldCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQuGFBhdXNlZAABBORTaWduZXQgaGFzIGJlZW4gcGF1c2VkLiBObyBuZXcgcmVxdWVzdHMgd2lsbCBiZSBhY2NlcHRlZC4gVW5wYXVzZWQAAgTkU2lnbmV0IGhhcyBiZWVuIHVucGF1c2VkLiBOZXcgcmVxdWVzdHMgYXJlIGFsbG93ZWQgYWdhaW4uOEZ1bmRzV2l0aGRyYXduCAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAEkcmVjaXBpZW50AAEwVDo6QWNjb3VudElkAAMEpEZ1bmRzIGhhdmUgYmVlbiB3aXRoZHJhd24gZnJvbSB0aGUgcGFsbGV0SFNpZ25hdHVyZVJlcXVlc3RlZCQBGHNlbmRlcgABMFQ6OkFjY291bnRJZAABHHBheWxvYWQEASBbdTg7IDMyXQABLGtleV92ZXJzaW9uKAEMdTMyAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABIGNoYWluX2lkFAEcVmVjPHU4PgABEHBhdGgUARxWZWM8dTg+AAEQYWxnbxQBHFZlYzx1OD4AARBkZXN0FAEcVmVjPHU4PgABGHBhcmFtcxQBHFZlYzx1OD4ABAR4QSBzaWduYXR1cmUgaGFzIGJlZW4gcmVxdWVzdGVkaFNpZ25CaWRpcmVjdGlvbmFsUmVxdWVzdGVkLAEYc2VuZGVyAAEwVDo6QWNjb3VudElkAAFYc2VyaWFsaXplZF90cmFuc2FjdGlvbhQBHFZlYzx1OD4AASBjYWlwMl9pZBQBHFZlYzx1OD4AASxrZXlfdmVyc2lvbigBDHUzMgABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AARBwYXRoFAEcVmVjPHU4PgABEGFsZ28UARxWZWM8dTg+AAEQZGVzdBQBHFZlYzx1OD4AARhwYXJhbXMUARxWZWM8dTg+AAF0b3V0cHV0X2Rlc2VyaWFsaXphdGlvbl9zY2hlbWEUARxWZWM8dTg+AAFwcmVzcG9uZF9zZXJpYWxpemF0aW9uX3NjaGVtYRQBHFZlYzx1OD4ABQSAU2lnbiBiaWRpcmVjdGlvbmFsIHJlcXVlc3QgZXZlbnRIU2lnbmF0dXJlUmVzcG9uZGVkDAEocmVxdWVzdF9pZAQBIFt1ODsgMzJdAAEkcmVzcG9uZGVyAAEwVDo6QWNjb3VudElkAAEkc2lnbmF0dXJlnQMBJFNpZ25hdHVyZQAGBGBTaWduYXR1cmUgcmVzcG9uc2UgZXZlbnQ4U2lnbmF0dXJlRXJyb3IMAShyZXF1ZXN0X2lkBAEgW3U4OyAzMl0AASRyZXNwb25kZXIAATBUOjpBY2NvdW50SWQAARRlcnJvchQBHFZlYzx1OD4ABwRUU2lnbmF0dXJlIGVycm9yIGV2ZW50ZFJlc3BvbmRCaWRpcmVjdGlvbmFsRXZlbnQQAShyZXF1ZXN0X2lkBAEgW3U4OyAzMl0AASRyZXNwb25kZXIAATBUOjpBY2NvdW50SWQAAURzZXJpYWxpemVkX291dHB1dBQBHFZlYzx1OD4AASRzaWduYXR1cmWdAwEkU2lnbmF0dXJlAAgEbFJlc3BvbmQgYmlkaXJlY3Rpb25hbCBldmVudAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCEIDEBwYWxsZXRfZGlzcGVuc2VyGHBhbGxldBRFdmVudAQEVAABEDRDb25maWdVcGRhdGVkGAE4ZmF1Y2V0X2FkZHJlc3NYAShFdm1BZGRyZXNzAAFQbWluX2ZhdWNldF90aHJlc2hvbGRAARxCYWxhbmNlAAEsbWluX3JlcXVlc3RAARxCYWxhbmNlAAEwbWF4X2Rpc3BlbnNlQAEcQmFsYW5jZQABNGRpc3BlbnNlcl9mZWVAARxCYWxhbmNlAAFIZmF1Y2V0X2JhbGFuY2Vfd2VpQAEcQmFsYW5jZQAABMBEaXNwZW5zZXIgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBzZXQgb3IgdXBkYXRlZC4YUGF1c2VkAAEE8ERpc3BlbnNlciBoYXMgYmVlbiBwYXVzZWQuIE5vIG5ldyByZXF1ZXN0cyB3aWxsIGJlIGFjY2VwdGVkLiBVbnBhdXNlZAACBPBEaXNwZW5zZXIgaGFzIGJlZW4gdW5wYXVzZWQuIE5ldyByZXF1ZXN0cyBhcmUgYWxsb3dlZCBhZ2Fpbi40RnVuZFJlcXVlc3RlZBABKHJlcXVlc3RfaWQEARxCeXRlczMyBMhVbmlxdWUgcmVxdWVzdCBJRCBkZXJpdmVkIGZyb20gcmVxdWVzdCBwYXJhbWV0ZXJzLgEkcmVxdWVzdGVyAAEwVDo6QWNjb3VudElkBIxBY2NvdW50IHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0LgEIdG9YAShFdm1BZGRyZXNzBIhUYXJnZXQgRVZNIGFkZHJlc3MgdG8gcmVjZWl2ZSBFVEguARhhbW91bnRAARxCYWxhbmNlBIRSZXF1ZXN0ZWQgYW1vdW50IG9mIEVUSCAoaW4gd2VpKS4DELxBIGZ1bmRpbmcgcmVxdWVzdCBoYXMgYmVlbiBzdWJtaXR0ZWQgdG8gU2lnTmV0LgANAU5vdGU6IFRoaXMgaW5kaWNhdGVzIHRoZSByZXF1ZXN0IHdhcyBmb3JtZWQgYW5kIHN1Ym1pdHRlZCwgbm90IHRoYXTodGhlIEVWTSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBpbmNsdWRlZCBvbiB0aGUgdGFyZ2V0IGNoYWluLgQ4UGFsbGV0IGV2ZW50cy4lCAw4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0FEV2ZW50BARUAAEcGFN0YWtlZAwBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABHEJhbGFuY2UAARxnaWdhaGR4QAEcQmFsYW5jZQAAACBVbnN0YWtlZBgBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkKAFEQmxvY2tOdW1iZXJGb3I8VD4AAThnaWdhaGR4X2Ftb3VudEABHEJhbGFuY2UAARhwYXlvdXRAARxCYWxhbmNlAAEseWllbGRfc2hhcmVAARxCYWxhbmNlAAEoZXhwaXJlc19hdCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEAIFVubG9ja2VkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWQoAURCbG9ja051bWJlckZvcjxUPgABGGFtb3VudEABHEJhbGFuY2UAAgBAVW5zdGFrZUNhbmNlbGxlZBABDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkKAFEQmxvY2tOdW1iZXJGb3I8VD4AARhhbW91bnRAARxCYWxhbmNlAAEcZ2lnYWhkeEABHEJhbGFuY2UAAwBMUG9vbENvbnRyYWN0VXBkYXRlZAQBIGNvbnRyYWN0WAEoRXZtQWRkcmVzcwAEAEhNaWdyYXRlZEZyb21MZWdhY3kMAQx3aG8AATBUOjpBY2NvdW50SWQAATBoZHhfdW5sb2NrZWRAARxCYWxhbmNlAAFAZ2lnYWhkeF9yZWNlaXZlZEABHEJhbGFuY2UABRD8Q2FsbGVyIG1pZ3JhdGVkIHRoZWlyIGxlZ2FjeSBORlQgc3Rha2luZyBwb3NpdGlvbiBpbnRvIGdpZ2FoZHgu9GBoZHhfdW5sb2NrZWRgIGlzIHRoZSBzdW0gb2YgbGVnYWN5IHN0YWtlICsgcHJldmlvdXNseSBsb2NrZWQBAXJld2FyZHMgKyBmcmVzaGx5IHBhaWQgcmV3YXJkczsgYGdpZ2FoZHhfcmVjZWl2ZWRgIGlzIHRoZSBhVG9rZW60YW1vdW50IGFjdHVhbGx5IGNyZWRpdGVkIGJ5IHRoZSBtb25leSBtYXJrZXQuNFlpZWxkUmVhbGl6ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAYMBQFBY2NydWVkIHlpZWxkIHdhcyBtb3ZlZCBmcm9tIHRoZSBnaWdhcG90IGludG8gdGhlIGNhbGxlcidzIGxvY2tlZPRzdGFrZSBwcmluY2lwYWwuIGBhbW91bnRgIGlzIHRoZSBIRFggdHJhbnNmZXJyZWQgYW5kIGFkZGVkIHRvBQFgU3Rha2VzW3dob10uaGR4YDsgYGdpZ2FoZHhgIGFuZCB0aGUgZXhjaGFuZ2UgcmF0ZSBhcmUgdW5jaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCkIDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzGHBhbGxldBRFdmVudAQEVAABDExSZXdhcmRQb29sQWxsb2NhdGVkFAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAEgdHJhY2tfaWSAAShUOjpUcmFja0lkAAEwdG90YWxfcmV3YXJkQAEcQmFsYW5jZQABUHRvdGFsX3dlaWdodGVkX3ZvdGVzQAEQdTEyOAABQHZvdGVyc19yZW1haW5pbmcoAQx1MzIAAAj8UmV3YXJkcyBmb3IgYSBjb21wbGV0ZWQgcmVmZXJlbmR1bSBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gdGhlQGFjY3VtdWxhdG9yIHBvdC5IVXNlclJld2FyZFJlY29yZGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAE0cmV3YXJkX2Ftb3VudEABHEJhbGFuY2UAAQj8QSB1c2VyJ3Mgc2hhcmUgb2YgYSByZWZlcmVuZHVtJ3MgcmV3YXJkIHBvb2wgd2FzIGFkZGVkIHRvIHRoZWlyRGBQZW5kaW5nUmV3YXJkc2AuOFJld2FyZHNDbGFpbWVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEkdG90YWxfaGR4QAEcQmFsYW5jZQABQGdpZ2FoZHhfcmVjZWl2ZWRAARxCYWxhbmNlAAII/EEgdXNlciBjb252ZXJ0ZWQgdGhlaXIgYWNjdW11bGF0ZWQgSERYIHJld2FyZHMgaW50byBHSUdBSERYIHZpYUBgY2xhaW1fcmV3YXJkc2AuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0LQgMLG9ybWxfdG9rZW5zGG1vZHVsZRRFdmVudAQEVAABRBxFbmRvd2VkDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0DAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABCOxBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvd8hFeGlzdGVudGlhbERlcG9zaXQsIHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlchABLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLiBSZXNlcnZlZAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAwTgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UABAToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQUASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEYc3RhdHVzPQcBNEJhbGFuY2VTdGF0dXMABQj0U29tZSByZXNlcnZlZCBiYWxhbmNlIHdhcyByZXBhdHJpYXRlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0b0Rhbm90aGVyIGFjY291bnQpLihCYWxhbmNlU2V0EAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJlZUABKFQ6OkJhbGFuY2UAASByZXNlcnZlZEABKFQ6OkJhbGFuY2UABgRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC5AVG90YWxJc3N1YW5jZVNldAgBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UABwS4VGhlIHRvdGFsIGlzc3VhbmNlIG9mIGFuIGN1cnJlbmN5IGhhcyBiZWVuIHNldCRXaXRoZHJhd24MASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAgE7FNvbWUgYmFsYW5jZXMgd2VyZSB3aXRoZHJhd24gKGUuZy4gcGF5IGZvciB0cmFuc2FjdGlvbiBmZWUpHFNsYXNoZWQQASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASxmcmVlX2Ftb3VudEABKFQ6OkJhbGFuY2UAATxyZXNlcnZlZF9hbW91bnRAAShUOjpCYWxhbmNlAAkE1FNvbWUgYmFsYW5jZXMgd2VyZSBzbGFzaGVkIChlLmcuIGR1ZSB0byBtaXMtYmVoYXZpb3IpJERlcG9zaXRlZAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACgSYRGVwb3NpdGVkIHNvbWUgYmFsYW5jZSBpbnRvIGFuIGFjY291bnQcTG9ja1NldBABHGxvY2tfaWQhAQE4TG9ja0lkZW50aWZpZXIAASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAsEVFNvbWUgZnVuZHMgYXJlIGxvY2tlZCxMb2NrUmVtb3ZlZAwBHGxvY2tfaWQhAQE4TG9ja0lkZW50aWZpZXIAASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQADAR8U29tZSBsb2NrZWQgZnVuZHMgd2VyZSB1bmxvY2tlZBhMb2NrZWQMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAA0EdFNvbWUgZnJlZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAOBHhTb21lIGxvY2tlZCBiYWxhbmNlIHdhcyBmcmVlZC4YSXNzdWVkCAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAPACRSZXNjaW5kZWQIASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRAAShUOjpCYWxhbmNlABAABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0MQgMRHBhbGxldF9jdXJyZW5jaWVzGG1vZHVsZRRFdmVudAQEVAABECxUcmFuc2ZlcnJlZBABLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAAEaEN1cnJlbmN5IHRyYW5zZmVyIHN1Y2Nlc3MuOEJhbGFuY2VVcGRhdGVkDAEsY3VycmVuY3lfaWQoATxDdXJyZW5jeUlkT2Y8VD4AAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnTNAwEsQW1vdW50T2Y8VD4AAQRcVXBkYXRlIGJhbGFuY2Ugc3VjY2Vzcy4kRGVwb3NpdGVkDAEsY3VycmVuY3lfaWQoATxDdXJyZW5jeUlkT2Y8VD4AAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AAgRARGVwb3NpdCBzdWNjZXNzLiRXaXRoZHJhd24MASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgADBERXaXRoZHJhdyBzdWNjZXNzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDUIDDBvcm1sX3Zlc3RpbmcYbW9kdWxlFEV2ZW50BARUAAEMUFZlc3RpbmdTY2hlZHVsZUFkZGVkDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAFAdmVzdGluZ19zY2hlZHVsZdUDAVBWZXN0aW5nU2NoZWR1bGVPZjxUPgAABGxBZGRlZCBuZXcgdmVzdGluZyBzY2hlZHVsZS4cQ2xhaW1lZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABBEBDbGFpbWVkIHZlc3RpbmcuXFZlc3RpbmdTY2hlZHVsZXNVcGRhdGVkBAEMd2hvAAEwVDo6QWNjb3VudElkAAIEaFVwZGF0ZWQgdmVzdGluZyBzY2hlZHVsZXMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0OQgMKHBhbGxldF9ldm0YcGFsbGV0FEV2ZW50BARUAAEUDExvZwQBDGxvZz0IAQxMb2cAAAR8RXRoZXJldW0gZXZlbnRzIGZyb20gY29udHJhY3RzLhxDcmVhdGVkBAEcYWRkcmVzc1gBEEgxNjAAAQS0QSBjb250cmFjdCBoYXMgYmVlbiBjcmVhdGVkIGF0IGdpdmVuIGFkZHJlc3MuNENyZWF0ZWRGYWlsZWQEARxhZGRyZXNzWAEQSDE2MAACBAUBQSBjb250cmFjdCB3YXMgYXR0ZW1wdGVkIHRvIGJlIGNyZWF0ZWQsIGJ1dCB0aGUgZXhlY3V0aW9uIGZhaWxlZC4gRXhlY3V0ZWQEARxhZGRyZXNzWAEQSDE2MAADBPhBIGNvbnRyYWN0IGhhcyBiZWVuIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSB3aXRoIHN0YXRlcyBhcHBsaWVkLjhFeGVjdXRlZEZhaWxlZAQBHGFkZHJlc3NYARBIMTYwAAQEZQFBIGNvbnRyYWN0IGhhcyBiZWVuIGV4ZWN1dGVkIHdpdGggZXJyb3JzLiBTdGF0ZXMgYXJlIHJldmVydGVkIHdpdGggb25seSBnYXMgZmVlcyBhcHBsaWVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldD0IDCBldGhlcmV1bQxsb2cMTG9nAAAMARxhZGRyZXNzWAEQSDE2MAABGHRvcGljc+wBJFZlYzxIMjU2PgABEGRhdGEUARRCeXRlcwAAQQgMPHBhbGxldF9ldGhlcmV1bRhwYWxsZXQURXZlbnQAAQQgRXhlY3V0ZWQUARBmcm9tWAEQSDE2MAABCHRvWAEQSDE2MAABQHRyYW5zYWN0aW9uX2hhc2gsARBIMjU2AAEsZXhpdF9yZWFzb25FCAEoRXhpdFJlYXNvbgABKGV4dHJhX2RhdGEUARxWZWM8dTg+AAAEyEFuIGV0aGVyZXVtIHRyYW5zYWN0aW9uIHdhcyBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0RQgMIGV2bV9jb3JlFGVycm9yKEV4aXRSZWFzb24AARAcU3VjY2VlZAQASQgBLEV4aXRTdWNjZWVkAAAAFEVycm9yBABNCAEkRXhpdEVycm9yAAEAGFJldmVydAQAXQgBKEV4aXRSZXZlcnQAAgAURmF0YWwEAGEIASRFeGl0RmF0YWwAAwAASQgMIGV2bV9jb3JlFGVycm9yLEV4aXRTdWNjZWVkAAEMHFN0b3BwZWQAAAAgUmV0dXJuZWQAAQAgU3VpY2lkZWQAAgAATQgMIGV2bV9jb3JlFGVycm9yJEV4aXRFcnJvcgABQDhTdGFja1VuZGVyZmxvdwAAADRTdGFja092ZXJmbG93AAEALEludmFsaWRKdW1wAAIAMEludmFsaWRSYW5nZQADAEREZXNpZ25hdGVkSW52YWxpZAAEACxDYWxsVG9vRGVlcAAFADxDcmVhdGVDb2xsaXNpb24ABgBMQ3JlYXRlQ29udHJhY3RMaW1pdAAHACxJbnZhbGlkQ29kZQQAUQgBGE9wY29kZQAPACxPdXRPZk9mZnNldAAIACBPdXRPZkdhcwAJACRPdXRPZkZ1bmQACgAsUENVbmRlcmZsb3cACwAsQ3JlYXRlRW1wdHkADAAUT3RoZXIEAFUIAURDb3c8J3N0YXRpYywgc3RyPgANACBNYXhOb25jZQAOAABRCAwgZXZtX2NvcmUYb3Bjb2RlGE9wY29kZQAABAAIAQh1OAAAVQgEDENvdwQEVAFZCAAEAFkIAAAAWQgAAAUCAF0IDCBldm1fY29yZRRlcnJvcihFeGl0UmV2ZXJ0AAEEIFJldmVydGVkAAAAAGEIDCBldm1fY29yZRRlcnJvciRFeGl0RmF0YWwAARAwTm90U3VwcG9ydGVkAAAASFVuaGFuZGxlZEludGVycnVwdAABAEBDYWxsRXJyb3JBc0ZhdGFsBABNCAEkRXhpdEVycm9yAAIAFE90aGVyBABVCAFEQ293PCdzdGF0aWMsIHN0cj4AAwAAZQgMTHBhbGxldF9ldm1fYWNjb3VudHMYcGFsbGV0FEV2ZW50BARUAAEYFEJvdW5kCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABHGFkZHJlc3NYAShFdm1BZGRyZXNzAAAEUEJpbmRpbmcgd2FzIGNyZWF0ZWQuNERlcGxveWVyQWRkZWQEAQx3aG9YAShFdm1BZGRyZXNzAAEETERlcGxveWVyIHdhcyBhZGRlZC48RGVwbG95ZXJSZW1vdmVkBAEMd2hvWAEoRXZtQWRkcmVzcwACBFREZXBsb3llciB3YXMgcmVtb3ZlZC5AQ29udHJhY3RBcHByb3ZlZAQBHGFkZHJlc3NYAShFdm1BZGRyZXNzAAMEWENvbnRyYWN0IHdhcyBhcHByb3ZlZC5MQ29udHJhY3REaXNhcHByb3ZlZAQBHGFkZHJlc3NYAShFdm1BZGRyZXNzAAQEZENvbnRyYWN0IHdhcyBkaXNhcHByb3ZlZC44QWNjb3VudENsYWltZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAUEUEFjY291bnQgd2FzIGNsYWltZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0aQgMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQEBFQAATRER2xvYmFsRmFybUNyZWF0ZWQsAQhpZCgBMEdsb2JhbEZhcm1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAE0dG90YWxfcmV3YXJkc0ABHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAFAeWllbGRfcGVyX3BlcmlvZJkCASxQZXJxdWludGlsbAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABSGluY2VudGl2aXplZF9hc3NldCgBHEFzc2V0SWQAAVRtYXhfcmV3YXJkX3Blcl9wZXJpb2RAARxCYWxhbmNlAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAAABHBOZXcgZ2xvYmFsIGZhcm0gd2FzIGNyZWF0ZWQuREdsb2JhbEZhcm1VcGRhdGVkCAEIaWQoATBHbG9iYWxGYXJtSWQAAUBwcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAEEtEdsb2JhbCBmYXJtJ3MgYHByaWNlX2FkanVzdG1lbnRgIHdhcyB1cGRhdGVkLkBZaWVsZEZhcm1DcmVhdGVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAgScTmV3IHlpZWxkIGZhcm0gd2FzIGFkZGVkIGludG8gdGhlIGZhcm0uUEdsb2JhbEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAFUdW5kaXN0cmlidXRlZF9yZXdhcmRzQAEcQmFsYW5jZQADBGxHbG9iYWwgZmFybSB3YXMgdGVybWluYXRlZC48U2hhcmVzRGVwb3NpdGVkGAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAEgbHBfdG9rZW4oARxBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAEBHBOZXcgTFAgdG9rZW5zIHdhcyBkZXBvc2l0ZWQuRFNoYXJlc1JlZGVwb3NpdGVkGAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAEgbHBfdG9rZW4oARxBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAFBMxMUCB0b2tlbiB3YXMgcmVkZXBvc2l0ZWQgZm9yIGEgbmV3IHlpZWxkIGZhcm0gZW50cnk0UmV3YXJkQ2xhaW1lZBgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEcY2xhaW1lZEABHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAGBFBSZXdhcmRzIHdhcyBjbGFpbWVkLjxTaGFyZXNXaXRoZHJhd24YAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABIGxwX3Rva2VuKAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAcEYExQIHRva2VucyB3YXMgd2l0aGRyYXduLkBZaWVsZEZhcm1TdG9wcGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgAIBJhZaWVsZCBmYXJtIGZvciBhc3NldCBwYWlyIHdhcyBzdG9wcGVkLkBZaWVsZEZhcm1SZXN1bWVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgAJBJhZaWVsZCBmYXJtIGZvciBhc3NldCBwYWlyIHdhcyByZXN1bWVkLkxZaWVsZEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyMQQBJEFzc2V0UGFpcgAKBKxZaWVsZCBmYXJtIHdhcyB0ZXJtaW5hdGVkIGZyb20gZ2xvYmFsIGZhcm0uQFlpZWxkRmFybVVwZGF0ZWQUAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABKGFzc2V0X3BhaXIxBAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAsEiFlpZWxkIGZhcm0gbXVsdGlwbGllciB3YXMgdXBkYXRlZC5ARGVwb3NpdERlc3Ryb3llZAgBDHdobwABMFQ6OkFjY291bnRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQADASsTkZUIHJlcHJlc2VudGluZyBkZXBvc2l0IGhhcyBiZWVuIGRlc3Ryb3llZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldG0IDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQIBFQABEkAAQxcR2xvYmFsRmFybUFjY1JQWlVwZGF0ZWQMAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABOHRvdGFsX3NoYXJlc196QAEcQmFsYW5jZQAABNRHbG9iYWwgZmFybSBhY2N1bXVsYXRlZCByZXdhcmQgcGVyIHNoYXJlIHdhcyB1cGRhdGVkLlxZaWVsZEZhcm1BY2NSUFZTVXBkYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABTHRvdGFsX3ZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAEE7FlpZWxkIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciB2YWx1ZWQgc2hhcmUgd2FzIHVwZGF0ZWQuVEFsbFJld2FyZHNEaXN0cmlidXRlZAQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAIE8Edsb2JhbCBmYXJtIGhhcyBubyBtb3JlIHJld2FyZHMgdG8gZGlzdHJpYnV0ZSBpbiB0aGUgbW9tZW50LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHEIDFhwYWxsZXRfcmVsYXljaGFpbl9pbmZvGHBhbGxldBRFdmVudAQEVAABBExDdXJyZW50QmxvY2tOdW1iZXJzCAFYcGFyYWNoYWluX2Jsb2NrX251bWJlcigBREJsb2NrTnVtYmVyRm9yPFQ+AAFccmVsYXljaGFpbl9ibG9ja19udW1iZXIoAURCbG9ja051bWJlckZvcjxUPgAACFRDdXJyZW50IGJsb2NrIG51bWJlcnPMWyBQYXJhY2hhaW4gYmxvY2sgbnVtYmVyLCBSZWxheWNoYWluIEJsb2NrIG51bWJlciBdBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0dQgMKHBhbGxldF9kY2EYcGFsbGV0FEV2ZW50BARUAAEkQEV4ZWN1dGlvblN0YXJ0ZWQIAQhpZCgBKFNjaGVkdWxlSWQAARRibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAAEcFRoZSBEQ0EgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQkU2NoZWR1bGVkFAEIaWQoAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4AATB0b3RhbF9hbW91bnRAARxCYWxhbmNlAAEUb3JkZXJNBAFET3JkZXI8VDo6QXNzZXRJZD4AAQScVGhlIERDQSBpcyBzY2hlZHVsZWQgZm9yIG5leHQgZXhlY3V0aW9uQEV4ZWN1dGlvblBsYW5uZWQMAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARRibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAIEiFRoZSBEQ0EgaXMgcGxhbm5lZCBmb3IgYmxvY2tudW1iZXI0VHJhZGVFeGVjdXRlZBABCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQADBJhUaGUgRENBIHRyYWRlIGlzIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCxUcmFkZUZhaWxlZAwBCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IABASEVGhlIERDQSB0cmFkZSBleGVjdXRpb24gaXMgZmFpbGVkKFRlcm1pbmF0ZWQMAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARRlcnJvciEHATREaXNwYXRjaEVycm9yAAUE7FRoZSBEQ0EgaXMgdGVybWluYXRlZCBhbmQgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIGNoYWluJENvbXBsZXRlZAgBCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAAGBOhUaGUgRENBIGlzIGNvbXBsZXRlZCBhbmQgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIGNoYWluaFJhbmRvbW5lc3NHZW5lcmF0aW9uRmFpbGVkCAEUYmxvY2soAURCbG9ja051bWJlckZvcjxUPgABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IABwRBAVJhbmRvbW5lc3MgZ2VuZXJhdGlvbiBmYWlsZWQgcG9zc2libHkgY29taW5nIGZyb20gbWlzc2luZyBkYXRhIGFib3V0IHJlbGF5IGNoYWluPFJlc2VydmVVbmxvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAIBPREQ0EgcmVzZXJ2ZSBmb3IgdGhlIGdpdmVuIGFzc2V0IGhhdmUgYmVlbiB1bmxvY2tlZCBmb3IgYSB1c2VyBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0eQgMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEV2ZW50BARUAAEoJFNjaGVkdWxlZAgBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4KAEMdTMyAAAEUFNjaGVkdWxlZCBzb21lIHRhc2suIENhbmNlbGVkCAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgoAQx1MzIAAQRMQ2FuY2VsZWQgc29tZSB0YXNrLihEaXNwYXRjaGVkDAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAIEVERpc3BhdGNoZWQgc29tZSB0YXNrLiBSZXRyeVNldBABEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgABGHBlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEccmV0cmllcwgBCHU4AAMEoFNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHNvbWUgdGFzay44UmV0cnlDYW5jZWxsZWQIARB0YXNrqQIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk8QYBQE9wdGlvbjxUYXNrTmFtZT4ABASsQ2FuY2VsIGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjxDYWxsVW5hdmFpbGFibGUIARB0YXNrqQIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk8QYBQE9wdGlvbjxUYXNrTmFtZT4ABQQpAVRoZSBjYWxsIGZvciB0aGUgcHJvdmlkZWQgaGFzaCB3YXMgbm90IGZvdW5kIHNvIHRoZSB0YXNrIGhhcyBiZWVuIGFib3J0ZWQuOFBlcmlvZGljRmFpbGVkCAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAYEPQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJlbmV3ZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2suLFJldHJ5RmFpbGVkCAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAcIXQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJldHJpZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2sgb3IgdGhlcmWcd2FzIG5vdCBlbm91Z2ggd2VpZ2h0IHRvIHJlc2NoZWR1bGUgaXQuVFBlcm1hbmVudGx5T3ZlcndlaWdodAgBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgAIBPBUaGUgZ2l2ZW4gdGFzayBjYW4gbmV2ZXIgYmUgZXhlY3V0ZWQgc2luY2UgaXQgaXMgb3ZlcndlaWdodC5AQWdlbmRhSW5jb21wbGV0ZQQBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgAJBIRBZ2VuZGEgaXMgaW5jb21wbGV0ZSBmcm9tIGB3aGVuYC4EMEV2ZW50cyB0eXBlLn0IDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBRFdmVudAQEVAABGGBWYWxpZGF0aW9uRnVuY3Rpb25TdG9yZWQAAATQVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGFwcGx5LmRWYWxpZGF0aW9uRnVuY3Rpb25BcHBsaWVkBAFUcmVsYXlfY2hhaW5fYmxvY2tfbnVtKAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEERQFUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB3YXMgYXBwbGllZCBhcyBvZiB0aGUgY29udGFpbmVkIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlci5sVmFsaWRhdGlvbkZ1bmN0aW9uRGlzY2FyZGVkAAIEsFRoZSByZWxheS1jaGFpbiBhYm9ydGVkIHRoZSB1cGdyYWRlIHByb2Nlc3MuYERvd253YXJkTWVzc2FnZXNSZWNlaXZlZAQBFGNvdW50KAEMdTMyAAMEAQFTb21lIGRvd253YXJkIG1lc3NhZ2VzIGhhdmUgYmVlbiByZWNlaXZlZCBhbmQgd2lsbCBiZSBwcm9jZXNzZWQuZERvd253YXJkTWVzc2FnZXNQcm9jZXNzZWQIASx3ZWlnaHRfdXNlZOQBGFdlaWdodAABIGRtcV9oZWFkLAFEcmVsYXlfY2hhaW46Okhhc2gABATgRG93bndhcmQgbWVzc2FnZXMgd2VyZSBwcm9jZXNzZWQgdXNpbmcgdGhlIGdpdmVuIHdlaWdodC5EVXB3YXJkTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2jxBgE8T3B0aW9uPFhjbUhhc2g+AAUEuEFuIHVwd2FyZCBtZXNzYWdlIHdhcyBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSBCAwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAXQkQXR0ZW1wdGVkBAEcb3V0Y29tZYUIAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbpwBIExvY2F0aW9uAAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABHG1lc3NhZ2WxBQEcWGNtPCgpPgABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAEEYEFuIFhDTSBtZXNzYWdlIHdhcyBzZW50LihTZW5kRmFpbGVkEAEYb3JpZ2lunAEgTG9jYXRpb24AASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEUZXJyb3KNCAEkU2VuZEVycm9yAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAAgR4QW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHNlbmQuPFByb2Nlc3NYY21FcnJvcgwBGG9yaWdpbpwBIExvY2F0aW9uAAEUZXJyb3LhBQEgWGNtRXJyb3IAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAADBIRBbiBYQ00gbWVzc2FnZSBmYWlsZWQgdG8gcHJvY2Vzcy5IVW5leHBlY3RlZFJlc3BvbnNlCAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQABAxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABIHJlc3BvbnNl1QUBIFJlc3BvbnNlAAUIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZBgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAGCFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZBgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAABNGFjdHVhbF93ZWlnaHTkARhXZWlnaHQAAUxtYXhfYnVkZ2V0ZWRfd2VpZ2h05AEYV2VpZ2h0AAcMSQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uWQFjb3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBiZWNhdXNlIHRoZSBkaXNwYXRjaCB3ZWlnaHQgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHdlaWdodORvcmlnaW5hbGx5IGJ1ZGdldGVkIGJ5IHRoaXMgcnVudGltZSBmb3IgdGhlIHF1ZXJ5IHJlc3VsdC5MTm90aWZ5RGlzcGF0Y2hFcnJvcgwBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAgIVQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlcmUgd2FzIGEgZ2VuZXJhbCBlcnJvciB3aXRoiGRpc3BhdGNoaW5nIHRoZSBub3RpZmljYXRpb24gY2FsbC5ITm90aWZ5RGVjb2RlRmFpbGVkDAEgcXVlcnlfaWQYARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgACQxRAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgZGlzcGF0Y2ggd2FzIHVuYWJsZSB0byBiZVkBZGVjb2RlZCBpbnRvIGEgYENhbGxgOyB0aGlzIG1pZ2h0IGJlIGR1ZSB0byBkaXNwYXRjaCBmdW5jdGlvbiBoYXZpbmcgYSBzaWduYXR1cmUgd2hpY2iUaXMgbm90IGAob3JpZ2luLCBRdWVyeUlkLCBSZXNwb25zZSlgLkBJbnZhbGlkUmVzcG9uZGVyDAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAAURleHBlY3RlZF9sb2NhdGlvbvUFAUBPcHRpb248TG9jYXRpb24+AAoMWQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIG9yaWdpbiBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1UBbm90IG1hdGNoIHRoYXQgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5cSW52YWxpZFJlc3BvbmRlclZlcnNpb24IARhvcmlnaW6cASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAALHFEBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBvcmlnaW4gbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjRSZXNwb25zZVRha2VuBAEgcXVlcnlfaWQYARxRdWVyeUlkAAwEyFJlY2VpdmVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlYWQgYW5kIHJlbW92ZWQuNEFzc2V0c1RyYXBwZWQMARBoYXNoLAEQSDI1NgABGG9yaWdpbpwBIExvY2F0aW9uAAEYYXNzZXRzLQYBPFZlcnNpb25lZEFzc2V0cwANBLhTb21lIGFzc2V0cyBoYXZlIGJlZW4gcGxhY2VkIGluIGFuIGFzc2V0IHRyYXAuVFZlcnNpb25DaGFuZ2VOb3RpZmllZBABLGRlc3RpbmF0aW9unAEgTG9jYXRpb24AARhyZXN1bHQoAShYY21WZXJzaW9uAAEQY29zdL0FARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAODCUBQW4gWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGhhcyBiZWVuIGF0dGVtcHRlZCB0byBiZSBzZW50LgDgVGhlIGNvc3Qgb2Ygc2VuZGluZyBpdCAoYm9ybmUgYnkgdGhlIGNoYWluKSBpcyBpbmNsdWRlZC5cU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQIASBsb2NhdGlvbpwBIExvY2F0aW9uAAEcdmVyc2lvbigBKFhjbVZlcnNpb24ADwg5AVRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBhIGxvY2F0aW9uIGhhcyBiZWVuIGNoYW5nZWQuIFRoaXMgbWlnaHQgYmUgdGhyb3VnaCBhbsBhdXRvbWF0aWMgbm90aWZpY2F0aW9uIG9yIGEgbWFudWFsIGludGVydmVudGlvbi5QTm90aWZ5VGFyZ2V0U2VuZEZhaWwMASBsb2NhdGlvbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkAAEUZXJyb3LhBQEgWGNtRXJyb3IAEAhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9yfHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBpdC5kTm90aWZ5VGFyZ2V0TWlncmF0aW9uRmFpbAgBIGxvY2F0aW9uqQQBRFZlcnNpb25lZExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkABEIWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcrRtaWdyYXRpbmcgdGhlIGxvY2F0aW9uIHRvIG91ciBuZXcgWENNIGZvcm1hdC5USW52YWxpZFF1ZXJpZXJWZXJzaW9uCAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAEhxVAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgcXVlcmllciBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuOEludmFsaWRRdWVyaWVyEAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAAUBleHBlY3RlZF9xdWVyaWVynAEgTG9jYXRpb24AAVBtYXliZV9hY3R1YWxfcXVlcmllcvUFAUBPcHRpb248TG9jYXRpb24+ABMMXQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIHF1ZXJpZXIgbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNRAW5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5QVmVyc2lvbk5vdGlmeVN0YXJ0ZWQMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEQY29zdL0FARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAUCFkBQSByZW1vdGUgaGFzIHJlcXVlc3RlZCBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZyb20gdXMgYW5kIHdlIGhhdmUgaG9ub3JlZCBpdC4dAUEgdmVyc2lvbiBpbmZvcm1hdGlvbiBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlbSBhbmQgaXRzIGNvc3QgaXMgaW5jbHVkZWQuWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEQY29zdL0FARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAVBD0BV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzZW5kIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb25zLmBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEQY29zdL0FARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAWCCUBV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzdG9wcyBzZW5kaW5nIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZThub3RpZmljYXRpb25zLiBGZWVzUGFpZAgBGHBheWluZ5wBIExvY2F0aW9uAAEQZmVlc70FARhBc3NldHMAFwQxAUZlZXMgd2VyZSBwYWlkIGZyb20gYSBsb2NhdGlvbiBmb3IgYW4gb3BlcmF0aW9uIChvZnRlbiBmb3IgdXNpbmcgYFNlbmRYY21gKS40QXNzZXRzQ2xhaW1lZAwBEGhhc2gsARBIMjU2AAEYb3JpZ2lunAEgTG9jYXRpb24AARhhc3NldHMtBgE8VmVyc2lvbmVkQXNzZXRzABgEwFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBjbGFpbWVkIGZyb20gYW4gYXNzZXQgdHJhcGBWZXJzaW9uTWlncmF0aW9uRmluaXNoZWQEARx2ZXJzaW9uKAEoWGNtVmVyc2lvbgAZBIRBIFhDTSB2ZXJzaW9uIG1pZ3JhdGlvbiBmaW5pc2hlZC48QWxpYXNBdXRob3JpemVkDAEcYWxpYXNlcpwBIExvY2F0aW9uAAEYdGFyZ2V0nAEgTG9jYXRpb24AARhleHBpcnllBgEsT3B0aW9uPHU2ND4AGghdAUFuIGBhbGlhc2VyYCBsb2NhdGlvbiB3YXMgYXV0aG9yaXplZCBieSBgdGFyZ2V0YCB0byBhbGlhcyBpdCwgYXV0aG9yaXphdGlvbiB2YWxpZCB1bnRpbFhgZXhwaXJ5YCBibG9jayBudW1iZXIuZEFsaWFzQXV0aG9yaXphdGlvblJlbW92ZWQIARxhbGlhc2VynAEgTG9jYXRpb24AARh0YXJnZXScASBMb2NhdGlvbgAbBMxgdGFyZ2V0YCByZW1vdmVkIGFsaWFzIGF1dGhvcml6YXRpb24gZm9yIGBhbGlhc2VyYC5wQWxpYXNlc0F1dGhvcml6YXRpb25zUmVtb3ZlZAQBGHRhcmdldJwBIExvY2F0aW9uABwEqGB0YXJnZXRgIHJlbW92ZWQgYWxsIGFsaWFzIGF1dGhvcml6YXRpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIUIECxzdGFnaW5nX3hjbQh2NRh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWTkARhXZWlnaHQAAAAoSW5jb21wbGV0ZQgBEHVzZWTkARhXZWlnaHQAARRlcnJvcokIAUBJbnN0cnVjdGlvbkVycm9yAAEAFEVycm9yBACJCAFASW5zdHJ1Y3Rpb25FcnJvcgACAACJCBAsc3RhZ2luZ194Y20IdjUYdHJhaXRzQEluc3RydWN0aW9uRXJyb3IAAAgBFGluZGV4CAFASW5zdHJ1Y3Rpb25JbmRleAABFGVycm9y4QUBFEVycm9yAACNCBAMeGNtCHYzGHRyYWl0cyRTZW5kRXJyb3IAARw0Tm90QXBwbGljYWJsZQAAACRUcmFuc3BvcnQAAQAoVW5yb3V0YWJsZQACAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAAMAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAEADxNaXNzaW5nQXJndW1lbnQABQAQRmVlcwAGAACRCAxIY3VtdWx1c19wYWxsZXRfeGNtGHBhbGxldBRFdmVudAQEVAABDDRJbnZhbGlkRm9ybWF0BAAEASBbdTg7IDMyXQAACIBEb3dud2FyZCBtZXNzYWdlIGlzIGludmFsaWQgWENNLiBcWyBpZCBcXUhVbnN1cHBvcnRlZFZlcnNpb24EAAQBIFt1ODsgMzJdAAEIvERvd253YXJkIG1lc3NhZ2UgaXMgdW5zdXBwb3J0ZWQgdmVyc2lvbiBvZiBYQ00uIFxbIGlkIFxdQEV4ZWN1dGVkRG93bndhcmQIAAQBIFt1ODsgMzJdAACFCAEcT3V0Y29tZQACCMREb3dud2FyZCBtZXNzYWdlIGV4ZWN1dGVkIHdpdGggdGhlIGdpdmVuIG91dGNvbWUuRFxbIGlkLCBvdXRjb21lIFxdBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0lQgMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEEPFhjbXBNZXNzYWdlU2VudAQBMG1lc3NhZ2VfaGFzaAQBHFhjbUhhc2gAAATAQW4gSFJNUCBtZXNzYWdlIHdhcyBzZW50IHRvIGEgc2libGluZyBwYXJhY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0mQgMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFdmVudAQEVAABEEBQcm9jZXNzaW5nRmFpbGVkDAEIaWQsARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuARRlcnJvcp0IAUxQcm9jZXNzTWVzc2FnZUVycm9yEGBUaGUgZXJyb3IgdGhhdCBvY2N1cnJlZC4ASQFUaGlzIGVycm9yIGlzIHByZXR0eSBvcGFxdWUuIE1vcmUgZmluZS1ncmFpbmVkIGVycm9ycyBuZWVkIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAARVAU1lc3NhZ2UgZGlzY2FyZGVkIGR1ZSB0byBhbiBlcnJvciBpbiB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgICh1c3VhbGx5IGEgZm9ybWF0IGVycm9yKS4kUHJvY2Vzc2VkEAEIaWQsARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuASx3ZWlnaHRfdXNlZOQBGFdlaWdodATASG93IG11Y2ggd2VpZ2h0IHdhcyB1c2VkIHRvIHByb2Nlc3MgdGhlIG1lc3NhZ2UuARxzdWNjZXNzRAEQYm9vbBiIV2hldGhlciB0aGUgbWVzc2FnZSB3YXMgcHJvY2Vzc2VkLgBJAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdW5kZXJseWluZyBgTWVzc2FnZVByb2Nlc3NvcmAgd2FzIGludGVybmFsbHk1AXN1Y2Nlc3NmdWwuIEl0ICpzb2xlbHkqIG1lYW5zIHRoYXQgdGhlIE1RIHBhbGxldCB3aWxsIHRyZWF0IHRoaXMgYXMgYSBzdWNjZXNzTQFjb25kaXRpb24gYW5kIGRpc2NhcmQgdGhlIG1lc3NhZ2UuIEFueSBpbnRlcm5hbCBlcnJvciBuZWVkcyB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgEEVE1lc3NhZ2UgaXMgcHJvY2Vzc2VkLkhPdmVyd2VpZ2h0RW5xdWV1ZWQQAQhpZAQBIFt1ODsgMzJdBJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuAShwYWdlX2luZGV4KAEkUGFnZUluZGV4BGBUaGUgcGFnZSBvZiB0aGUgbWVzc2FnZS4BNG1lc3NhZ2VfaW5kZXgoARxUOjpTaXplBKRUaGUgaW5kZXggb2YgdGhlIG1lc3NhZ2Ugd2l0aGluIHRoZSBwYWdlLgIEjE1lc3NhZ2UgcGxhY2VkIGluIG92ZXJ3ZWlnaHQgcXVldWUuKFBhZ2VSZWFwZWQIARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BFhUaGUgcXVldWUgb2YgdGhlIHBhZ2UuARRpbmRleCgBJFBhZ2VJbmRleARYVGhlIGluZGV4IG9mIHRoZSBwYWdlLgMEVFRoaXMgcGFnZSB3YXMgcmVhcGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJ0IEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEYJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEAOQBGFdlaWdodAADABRZaWVsZAAEAERTdGFja0xpbWl0UmVhY2hlZAAFAAChCAxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEgOFVwZ3JhZGVTdGFydGVkBAEobWlncmF0aW9ucygBDHUzMhDQVGhlIG51bWJlciBvZiBtaWdyYXRpb25zIHRoYXQgdGhpcyB1cGdyYWRlIGNvbnRhaW5zLgBBAVRoaXMgY2FuIGJlIHVzZWQgdG8gZGVzaWduIGEgcHJvZ3Jlc3MgaW5kaWNhdG9yIGluIGNvbWJpbmF0aW9uIHdpdGggY291bnRpbmcgdGhlzGBNaWdyYXRpb25Db21wbGV0ZWRgIGFuZCBgTWlncmF0aW9uU2tpcHBlZGAgZXZlbnRzLgAMaEEgUnVudGltZSB1cGdyYWRlIHN0YXJ0ZWQuAPhJdHMgZW5kIGlzIGluZGljYXRlZCBieSBgVXBncmFkZUNvbXBsZXRlZGAgb3IgYFVwZ3JhZGVGYWlsZWRgLkBVcGdyYWRlQ29tcGxldGVkAAEMmFRoZSBjdXJyZW50IHJ1bnRpbWUgdXBncmFkZSBjb21wbGV0ZWQuAB0BVGhpcyBpbXBsaWVzIHRoYXQgYWxsIG9mIGl0cyBtaWdyYXRpb25zIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYXMgd2VsbC40VXBncmFkZUZhaWxlZAACDFxSdW50aW1lIHVwZ3JhZGUgZmFpbGVkLgDoVGhpcyBpcyB2ZXJ5IGJhZCBhbmQgd2lsbCByZXF1aXJlIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uLkBNaWdyYXRpb25Ta2lwcGVkBAEUaW5kZXgoAQx1MzIEKQFUaGUgaW5kZXggb2YgdGhlIHNraXBwZWQgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgMECQFBIG1pZ3JhdGlvbiB3YXMgc2tpcHBlZCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBleGVjdXRlZCBpbiB0aGUgcGFzdC5ETWlncmF0aW9uQWR2YW5jZWQIARRpbmRleCgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaygBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgQEXEEgbWlncmF0aW9uIHByb2dyZXNzZWQuSE1pZ3JhdGlvbkNvbXBsZXRlZAgBFGluZGV4KAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rKAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBQRYQSBNaWdyYXRpb24gY29tcGxldGVkLjxNaWdyYXRpb25GYWlsZWQIARRpbmRleCgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaygBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgYMTEEgTWlncmF0aW9uIGZhaWxlZC4ATQFUaGlzIGltcGxpZXMgdGhhdCB0aGUgd2hvbGUgdXBncmFkZSBmYWlsZWQgYW5kIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHJlcXVpcmVkLjxIaXN0b3JpY0NsZWFyZWQEASxuZXh0X2N1cnNvcpEGATxPcHRpb248VmVjPHU4Pj4E6FNob3VsZCBiZSBwYXNzZWQgdG8gYGNsZWFyX2hpc3RvcmljYCBpbiBhIHN1Y2Nlc3NpdmUgY2FsbC4HBMhUaGUgc2V0IG9mIGhpc3RvcmljYWwgbWlncmF0aW9ucyBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUIDCBvcm1sX3hjbRhtb2R1bGUURXZlbnQEBFQAAQQQU2VudAgBCHRvnAEgTG9jYXRpb24AARxtZXNzYWdlsQUBHFhjbTwoKT4AAASEWENNIG1lc3NhZ2Ugc2VudC4gXFt0bywgbWVzc2FnZVxdBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0qQgMMG9ybWxfeHRva2Vucxhtb2R1bGUURXZlbnQEBFQAAQREVHJhbnNmZXJyZWRBc3NldHMQARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARhhc3NldHO9BQEYQXNzZXRzAAEMZmVlxQUBFEFzc2V0AAEQZGVzdJwBIExvY2F0aW9uAAAEdFRyYW5zZmVycmVkIGBBc3NldGAgd2l0aCBmZWUuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0rQgMTG9ybWxfdW5rbm93bl90b2tlbnMYbW9kdWxlFEV2ZW50AAEIJERlcG9zaXRlZAgBFGFzc2V0xQUBFEFzc2V0AAEMd2hvnAEgTG9jYXRpb24AAARARGVwb3NpdCBzdWNjZXNzLiRXaXRoZHJhd24IARRhc3NldMUFARRBc3NldAABDHdob5wBIExvY2F0aW9uAAEERFdpdGhkcmF3IHN1Y2Nlc3MuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0sQgMZHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb24YcGFsbGV0FEV2ZW50BARUAAEoQE5ld0ludnVsbmVyYWJsZXMEATRpbnZ1bG5lcmFibGVzSAFEVmVjPFQ6OkFjY291bnRJZD4AAARsTmV3IEludnVsbmVyYWJsZXMgd2VyZSBzZXQuREludnVsbmVyYWJsZUFkZGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABBHRBIG5ldyBJbnZ1bG5lcmFibGUgd2FzIGFkZGVkLkxJbnZ1bG5lcmFibGVSZW1vdmVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAACBHBBbiBJbnZ1bG5lcmFibGUgd2FzIHJlbW92ZWQuUE5ld0Rlc2lyZWRDYW5kaWRhdGVzBAFIZGVzaXJlZF9jYW5kaWRhdGVzKAEMdTMyAAMEpFRoZSBudW1iZXIgb2YgZGVzaXJlZCBjYW5kaWRhdGVzIHdhcyBzZXQuQE5ld0NhbmRpZGFjeUJvbmQEASxib25kX2Ftb3VudEABMEJhbGFuY2VPZjxUPgAEBGxUaGUgY2FuZGlkYWN5IGJvbmQgd2FzIHNldC44Q2FuZGlkYXRlQWRkZWQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAFBFxBIG5ldyBjYW5kaWRhdGUgam9pbmVkLlBDYW5kaWRhdGVCb25kVXBkYXRlZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAYEcEJvbmQgb2YgYSBjYW5kaWRhdGUgdXBkYXRlZC5AQ2FuZGlkYXRlUmVtb3ZlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQABwRgQSBjYW5kaWRhdGUgd2FzIHJlbW92ZWQuRENhbmRpZGF0ZVJlcGxhY2VkDAEMb2xkAAEwVDo6QWNjb3VudElkAAEMbmV3AAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAIBPRBbiBhY2NvdW50IHdhcyByZXBsYWNlZCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgYnkgYW5vdGhlciBvbmUuaEludmFsaWRJbnZ1bG5lcmFibGVTa2lwcGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAAJCFUBQW4gYWNjb3VudCB3YXMgdW5hYmxlIHRvIGJlIGFkZGVkIHRvIHRoZSBJbnZ1bG5lcmFibGVzIGJlY2F1c2UgdGhleSBkaWQgbm90IGhhdmUga2V5c8hyZWdpc3RlcmVkLiBPdGhlciBJbnZ1bG5lcmFibGVzIG1heSBoYXZlIGJlZW4gc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLUIDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQURXZlbnQEBFQAARAoTmV3U2Vzc2lvbgQBNHNlc3Npb25faW5kZXgoATBTZXNzaW9uSW5kZXgAAAg5AU5ldyBzZXNzaW9uIGhhcyBoYXBwZW5lZC4gTm90ZSB0aGF0IHRoZSBhcmd1bWVudCBpcyB0aGUgc2Vzc2lvbiBpbmRleCwgbm90IHRoZZxibG9jayBudW1iZXIgYXMgdGhlIHR5cGUgbWlnaHQgc3VnZ2VzdC4kTmV3UXVldWVkAAEISQFUaGUgYE5ld1Nlc3Npb25gIGV2ZW50IGluIHRoZSBjdXJyZW50IGJsb2NrIGFsc28gaW1wbGllcyBhIG5ldyB2YWxpZGF0b3Igc2V0IHRvIGJlHHF1ZXVlZC5EVmFsaWRhdG9yRGlzYWJsZWQEASR2YWxpZGF0b3IAAThUOjpWYWxpZGF0b3JJZAACBHBWYWxpZGF0b3IgaGFzIGJlZW4gZGlzYWJsZWQuSFZhbGlkYXRvclJlZW5hYmxlZAQBJHZhbGlkYXRvcgABOFQ6OlZhbGlkYXRvcklkAAMEeFZhbGlkYXRvciBoYXMgYmVlbiByZS1lbmFibGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLkIDERwYWxsZXRfZW1hX29yYWNsZRhwYWxsZXQURXZlbnQEBFQAARxAQWRkZWRUb1doaXRlbGlzdAgBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAAEiE9yYWNsZSB3YXMgYWRkZWQgdG8gdGhlIHdoaXRlbGlzdC5QUmVtb3ZlZEZyb21XaGl0ZWxpc3QIARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQABBJhPcmFjbGUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgd2hpdGVsaXN0LjRPcmFjbGVVcGRhdGVkDAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARx1cGRhdGVzvQgBdEJUcmVlTWFwPE9yYWNsZVBlcmlvZCwgUHJpY2U+AAIEYE9yYWNsZSBwcmljZSB3YXMgdXBkYXRlZGBFeHRlcm5hbFNvdXJjZVJlZ2lzdGVyZWQEARhzb3VyY2UhAQEYU291cmNlAAMEpEFuIGV4dGVybmFsIG9yYWNsZSBzb3VyY2Ugd2FzIHJlZ2lzdGVyZWQuVEV4dGVybmFsU291cmNlUmVtb3ZlZAQBGHNvdXJjZSEBARhTb3VyY2UABASYQW4gZXh0ZXJuYWwgb3JhY2xlIHNvdXJjZSB3YXMgcmVtb3ZlZC5YQXV0aG9yaXplZEFjY291bnRBZGRlZAwBGHNvdXJjZSEBARhTb3VyY2UAARBwYWlyqQIBSChBc3NldElkLCBBc3NldElkKQABHGFjY291bnQAATBUOjpBY2NvdW50SWQABQT0QW4gYWNjb3VudCB3YXMgYXV0aG9yaXplZCB0byB1cGRhdGUgdGhlIGdpdmVuIChzb3VyY2UsIHBhaXIpLmBBdXRob3JpemVkQWNjb3VudFJlbW92ZWQMARhzb3VyY2UhAQEYU291cmNlAAEQcGFpcqkCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAYEDQFBbiBhdXRob3JpemF0aW9uIHdhcyByZW1vdmVkIGZvciB0aGUgZ2l2ZW4gKHNvdXJjZSwgcGFpciwgYWNjb3VudCkuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0vQgEIEJUcmVlTWFwCARLASEDBFYBwQgABADFCAAAAMEIDDRoeWRyYV9keF9tYXRoFHJhdGlvFFJhdGlvAAAIAQRuQAEQdTEyOAABBGRAARB1MTI4AADFCAAAAskIAMkIAAAECCEDwQgAzQgMQHBhbGxldF9icm9hZGNhc3QYcGFsbGV0FEV2ZW50BARUAAEEIFN3YXBwZWQzIAEcc3dhcHBlcgABMFQ6OkFjY291bnRJZAABGGZpbGxlcgABMFQ6OkFjY291bnRJZAABLGZpbGxlcl90eXBl0QgBGEZpbGxlcgABJG9wZXJhdGlvbtUIAThUcmFkZU9wZXJhdGlvbgABGGlucHV0c9kIAShWZWM8QXNzZXQ+AAEcb3V0cHV0c9kIAShWZWM8QXNzZXQ+AAEQZmVlc+EIAVhWZWM8RmVlPFQ6OkFjY291bnRJZD4+AAE8b3BlcmF0aW9uX3N0YWNr7QgBSFZlYzxFeGVjdXRpb25UeXBlPgAAIDxUcmFkZSBleGVjdXRlZC4A8FN3YXBwZWQzIGlzIGEgZml4ZWQgYW5kIHJlbmFtZWQgdmVyc2lvbiBvZiBvcmlnaW5hbCBTd2FwcGVkLAUBYXMgU3dhcHBlZCBjb250YWluZWQgd3JvbmcgaW5wdXQvb3V0cHV0IGFtb3VudHMgZm9yIFhZSyBidXkgdHJhZGUA9FN3YXBwZWQzIGlzIGEgZml4ZWQgYW5kIHJlbmFtZWQgdmVyc2lvbiBvZiBvcmlnaW5hbCBTd2FwcGVkMyzgYXMgU3dhcHBlZCBjb250YWluZWQgd3JvbmcgZmlsbGVyIGFjY291bnQgb24gQUFWRSB0cmFkZXMABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV00QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMYRmlsbGVyAAEcIE9tbmlwb29sAAAAKFN0YWJsZXN3YXAEACgBHEFzc2V0SWQAAQAMWFlLBAAoARxBc3NldElkAAIADExCUAADAAxPVEMEACgBKE90Y09yZGVySWQABAAQQUFWRQAFAAxIU00ABgAA1QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXM4VHJhZGVPcGVyYXRpb24AARQcRXhhY3RJbgAAACBFeGFjdE91dAABABRMaW1pdAACADBMaXF1aWRpdHlBZGQAAwA8TGlxdWlkaXR5UmVtb3ZlAAQAANkIAAAC3QgA3QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMUQXNzZXQAAAgBFGFzc2V0KAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAOEIAAAC5QgA5QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMMRmVlBCRBY2NvdW50SWQBAAAMARRhc3NldCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEsZGVzdGluYXRpb27pCAFYRGVzdGluYXRpb248QWNjb3VudElkPgAA6QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMsRGVzdGluYXRpb24EJEFjY291bnRJZAEAAQgcQWNjb3VudAQAAAEkQWNjb3VudElkAAAAGEJ1cm5lZAABAADtCAAAAvEIAPEIDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzNEV4ZWN1dGlvblR5cGUAARgYUm91dGVyBAAoAURJbmNyZW1lbnRhbElkVHlwZQAAAAxEQ0EIACgBKFNjaGVkdWxlSWQAACgBREluY3JlbWVudGFsSWRUeXBlAAEAFEJhdGNoBAAoAURJbmNyZW1lbnRhbElkVHlwZQACACBPbW5pcG9vbAQAKAFESW5jcmVtZW50YWxJZFR5cGUAAwAsWGNtRXhjaGFuZ2UEACgBREluY3JlbWVudGFsSWRUeXBlAAQADFhjbQgABAEgW3U4OyAzMl0AACgBREluY3JlbWVudGFsSWRUeXBlAAUAAPUIDFBwYWxsZXRfZmVlX3Byb2Nlc3NvchhwYWxsZXQURXZlbnQEBFQAAQwsRmVlUmVjZWl2ZWQMARRhc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEYdHJhZGVyzQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAAEYEZlZSByZWNlaXZlZCBmcm9tIHRyYWRlLiRDb252ZXJ0ZWQMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEcaGR4X291dEABHEJhbGFuY2UAAQS8QXNzZXQgY29udmVydGVkIHRvIEhEWCBhbmQgZGlzdHJpYnV0ZWQgdG8gcG90cy5AQ29udmVyc2lvbkZhaWxlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGHJlYXNvbiEHATREaXNwYXRjaEVycm9yAAIEsENvbnZlcnNpb24gZmFpbGVkIChsb2dnZWQgYnV0IG5vdCBibG9ja2luZykuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0+QgIMGZyYW1lX3N5c3RlbRRQaGFzZQABDDhBcHBseUV4dHJpbnNpYwQAKAEMdTMyAAAAMEZpbmFsaXphdGlvbgABADhJbml0aWFsaXphdGlvbgACAAD9CAgwZnJhbWVfc3lzdGVtWExhc3RSdW50aW1lVXBncmFkZUluZm8AAAgBMHNwZWNfdmVyc2lvbmwBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWVVCAFEQ293PCdzdGF0aWMsIHN0cj4AAAEJCDBmcmFtZV9zeXN0ZW1gQ29kZVVwZ3JhZGVBdXRob3JpemF0aW9uBARUAAAIASRjb2RlX2hhc2gsARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbkQBEGJvb2wAAAUJDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9ja+QBGFdlaWdodAABJG1heF9ibG9ja+QBGFdlaWdodAABJHBlcl9jbGFzcwkJAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAAkJDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBDQkADAEYbm9ybWFsDQkBBFQAASxvcGVyYXRpb25hbA0JAQRUAAEkbWFuZGF0b3J5DQkBBFQAAA0JDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWPkARhXZWlnaHQAATRtYXhfZXh0cmluc2lj+QUBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFs+QUBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWT5BQE4T3B0aW9uPFdlaWdodD4AABEJDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXgVCQFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AAAVCQw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUASgADAEYbm9ybWFsKAEEVAABLG9wZXJhdGlvbmFsKAEEVAABJG1hbmRhdG9yeSgBBFQAABkJCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZBgBDHU2NAABFHdyaXRlGAEMdTY0AAAdCQgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lVQgBRENvdzwnc3RhdGljLCBzdHI+AAEkaW1wbF9uYW1lVQgBRENvdzwnc3RhdGljLCBzdHI+AAFEYXV0aG9yaW5nX3ZlcnNpb24oAQx1MzIAATBzcGVjX3ZlcnNpb24oAQx1MzIAATBpbXBsX3ZlcnNpb24oAQx1MzIAARBhcGlzIQkBHEFwaXNWZWMAAUx0cmFuc2FjdGlvbl92ZXJzaW9uKAEMdTMyAAE4c3lzdGVtX3ZlcnNpb24IAQh1OAAAIQkEDENvdwQEVAElCQAEACUJAAAAJQkAAAIpCQApCQAABAghASgALQkMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0MQkQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jaxRCbG9jawgYSGVhZGVyAY0EJEV4dHJpbnNpYwE1CQAIARhoZWFkZXKNBAEYSGVhZGVyAAEoZXh0cmluc2ljc0UJAThWZWM8RXh0cmluc2ljPgAANQkMRGZwX3NlbGZfY29udGFpbmVkTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAQAQQ2FsbAEMJFNpZ25hdHVyZQGVASRFeHRlbnNpb24BOQkABABBCQEBAWdlbmVyaWM6OlVuY2hlY2tlZEV4dHJpbnNpYzxBZGRyZXNzLCBDYWxsLCBTaWduYXR1cmUsIEV4dGVuc2lvbj4AADkJCHRjdW11bHVzX3BhbGxldF93ZWlnaHRfcmVjbGFpbVBTdG9yYWdlV2VpZ2h0UmVjbGFpbQgEVAAEUwE9CQAEAD0JAQRTAAA9CQAABCjBBsUGyQbNBtEG2QbdBuEG5QbpBgBBCRAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAQAQQ2FsbAEMJFNpZ25hdHVyZQGVARRFeHRyYQE5CQAEABQAAABFCQAAAjUJAEkJDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBTQkEUwAABABVCQEYVmVjPFQ+AABNCQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEJhbGFuY2VMb2NrBBxCYWxhbmNlAUAADAEIaWQhAQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnRAARxCYWxhbmNlAAEccmVhc29uc1EJARxSZWFzb25zAABRCQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzHFJlYXNvbnMAAQwMRmVlAAAAEE1pc2MAAQAMQWxsAAIAAFUJAAACTQkAWQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFdCQRTAAAEAGEJARhWZWM8VD4AAF0JDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyASEBHEJhbGFuY2UBQAAIAQhpZCEBAURSZXNlcnZlSWRlbnRpZmllcgABGGFtb3VudEABHEJhbGFuY2UAAGEJAAACXQkAZQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFpCQRTAAAEAIEJARhWZWM8VD4AAGkJFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBbQkcQmFsYW5jZQFAAAgBCGlkbQkBCElkAAEYYW1vdW50QAEcQmFsYW5jZQAAbQkIPGh5ZHJhZHhfcnVudGltZURSdW50aW1lSG9sZFJlYXNvbgABECBQcmVpbWFnZQQAcQkBbHBhbGxldF9wcmVpbWFnZTo6SG9sZFJlYXNvbgAPAEhUZWNobmljYWxDb21taXR0ZWUEAHUJAexwYWxsZXRfY29sbGVjdGl2ZTo6SG9sZFJlYXNvbjxwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZAEhTdGF0ZVRyaWVNaWdyYXRpb24EAHkJAZxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkhvbGRSZWFzb24AIwAsUG9sa2Fkb3RYY20EAH0JAVhwYWxsZXRfeGNtOjpIb2xkUmVhc29uAGsAAHEJDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0KEhvbGRSZWFzb24AAQQgUHJlaW1hZ2UAAAAAdQkMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldChIb2xkUmVhc29uBARJAAEESFByb3Bvc2FsU3VibWlzc2lvbgAAAAB5CQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldChIb2xkUmVhc29uAAEEPFNsYXNoRm9yTWlncmF0ZQAAAAB9CQwocGFsbGV0X3hjbRhwYWxsZXQoSG9sZFJlYXNvbgABBDhBdXRob3JpemVBbGlhcwAAAACBCQAAAmkJAIUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBiQkEUwAABACNCQEYVmVjPFQ+AACJCRQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAXAcQmFsYW5jZQFAAAgBCGlkcAEISWQAARhhbW91bnRAARxCYWxhbmNlAACNCQAAAokJAJEJDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6VCQhocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQgUmVsZWFzZXMAAQgkVjFBbmNpZW50AAAACFYyAAEAAJkJDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQURXJyb3IEBFQAATRMVW5zdXBwb3J0ZWRDdXJyZW5jeQAABIxTZWxlY3RlZCBjdXJyZW5jeSBpcyBub3Qgc3VwcG9ydGVkLixaZXJvQmFsYW5jZQABBIxBY2NvdW50IGJhbGFuY2Ugc2hvdWxkIGJlIG5vbi16ZXJvLjxBbHJlYWR5QWNjZXB0ZWQAAgTcQ3VycmVuY3kgaXMgYWxyZWFkeSBpbiB0aGUgbGlzdCBvZiBhY2NlcHRlZCBjdXJyZW5jaWVzLkxDb3JlQXNzZXROb3RBbGxvd2VkAAMEbQFJdCBpcyBub3QgYWxsb3dlZCB0byBhZGQgQ29yZSBBc3NldCBhcyBhY2NlcHRlZCBjdXJyZW5jeS4gQ29yZSBhc3NldCBpcyBhY2NlcHRlZCBieSBkZXNpZ24uJFplcm9QcmljZQAEBHhGYWxsYmFjayBwcmljZSBjYW5ub3QgYmUgemVyby5URmFsbGJhY2tQcmljZU5vdEZvdW5kAAUEdEZhbGxiYWNrIHByaWNlIHdhcyBub3QgZm91bmQuIE92ZXJmbG93AAYENE1hdGggb3ZlcmZsb3dQRXZtQWNjb3VudE5vdEFsbG93ZWQABwT8SXQgaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHBheW1lbnQgY3VycmVuY3kgb2YgYW4gRVZNIGFjY291bnQuQEV2bVBlcm1pdEV4cGlyZWQACARMRVZNIHBlcm1pdCBleHBpcmVkLkBFdm1QZXJtaXRJbnZhbGlkAAkEWEVWTSBwZXJtaXQgaXMgaW52YWxpZC5sRXZtUGVybWl0Q2FsbEV4ZWN1dGlvbkVycm9yAAoEXEVWTSBwZXJtaXQgY2FsbCBmYWlsZWQuUEV2bVBlcm1pdFJ1bm5lckVycm9yAAsEXEVWTSBwZXJtaXQgY2FsbCBmYWlsZWQufEV2bVBlcm1pdE5vbmNlSW52YXJpYW50VmlvbGF0ZWQADASkRVZNIHBlcm1pdCBtdXN0IG5vdCBhZmZlY3QgYWNjb3VudCBub25jZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQunQkIPHBhbGxldF90cmVhc3VyeSBQcm9wb3NhbAgkQWNjb3VudElkAQAcQmFsYW5jZQFAABABIHByb3Bvc2VyAAEkQWNjb3VudElkAAEUdmFsdWVAARxCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASRBY2NvdW50SWQAARBib25kQAEcQmFsYW5jZQAAoQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEoBFMAAAQAtQIBGFZlYzxUPgAApQkIPHBhbGxldF90cmVhc3VyeSxTcGVuZFN0YXR1cxQkQXNzZXRLaW5kAXAwQXNzZXRCYWxhbmNlAUAsQmVuZWZpY2lhcnkBACxCbG9ja051bWJlcgEoJFBheW1lbnRJZAFwABgBKGFzc2V0X2tpbmRwASRBc3NldEtpbmQAARhhbW91bnRAATBBc3NldEJhbGFuY2UAASxiZW5lZmljaWFyeQABLEJlbmVmaWNpYXJ5AAEodmFsaWRfZnJvbSgBLEJsb2NrTnVtYmVyAAEkZXhwaXJlX2F0KAEsQmxvY2tOdW1iZXIAARhzdGF0dXOpCQFcUGF5bWVudFN0YXRlPFBheW1lbnRJZD4AAKkJCDxwYWxsZXRfdHJlYXN1cnkwUGF5bWVudFN0YXRlBAhJZAFwAQwcUGVuZGluZwAAACRBdHRlbXB0ZWQEAQhpZHABCElkAAEAGEZhaWxlZAACAACtCQg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABAAhAQEcW3U4OyA4XQAAsQkMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXJyb3IIBFQABEkAASwwSW52YWxpZEluZGV4AAAErE5vIHByb3Bvc2FsLCBib3VudHkgb3Igc3BlbmQgYXQgdGhhdCBpbmRleC5AVG9vTWFueUFwcHJvdmFscwABBIBUb28gbWFueSBhcHByb3ZhbHMgaW4gdGhlIHF1ZXVlLlhJbnN1ZmZpY2llbnRQZXJtaXNzaW9uAAIIRQFUaGUgc3BlbmQgb3JpZ2luIGlzIHZhbGlkIGJ1dCB0aGUgYW1vdW50IGl0IGlzIGFsbG93ZWQgdG8gc3BlbmQgaXMgbG93ZXIgdGhhbiB0aGVMYW1vdW50IHRvIGJlIHNwZW50LkxQcm9wb3NhbE5vdEFwcHJvdmVkAAMEfFByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC5YRmFpbGVkVG9Db252ZXJ0QmFsYW5jZQAEBFEBVGhlIGJhbGFuY2Ugb2YgdGhlIGFzc2V0IGtpbmQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHRoZSBiYWxhbmNlIG9mIHRoZSBuYXRpdmUgYXNzZXQuMFNwZW5kRXhwaXJlZAAFBLBUaGUgc3BlbmQgaGFzIGV4cGlyZWQgYW5kIGNhbm5vdCBiZSBjbGFpbWVkLixFYXJseVBheW91dAAGBKRUaGUgc3BlbmQgaXMgbm90IHlldCBlbGlnaWJsZSBmb3IgcGF5b3V0LkBBbHJlYWR5QXR0ZW1wdGVkAAcEnFRoZSBwYXltZW50IGhhcyBhbHJlYWR5IGJlZW4gYXR0ZW1wdGVkLixQYXlvdXRFcnJvcgAIBMxUaGVyZSB3YXMgc29tZSBpc3N1ZSB3aXRoIHRoZSBtZWNoYW5pc20gb2YgcGF5bWVudC4wTm90QXR0ZW1wdGVkAAkEpFRoZSBwYXlvdXQgd2FzIG5vdCB5ZXQgYXR0ZW1wdGVkL2NsYWltZWQuMEluY29uY2x1c2l2ZQAKBMRUaGUgcGF5bWVudCBoYXMgbmVpdGhlciBmYWlsZWQgbm9yIHN1Y2NlZWRlZCB5ZXQuBHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC61CQw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEVycm9yBARUAAEEMFRvb01hbnlDYWxscwAABFxUb28gbWFueSBjYWxscyBiYXRjaGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC65CQg8cGFsbGV0X3ByZWltYWdlQE9sZFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAHEJhbGFuY2UBQAEILFVucmVxdWVzdGVkCAEcZGVwb3NpdL0JAVAoQWNjb3VudElkLCBCYWxhbmNlKQABDGxlbigBDHUzMgAAACRSZXF1ZXN0ZWQMARxkZXBvc2l0wQkBcE9wdGlvbjwoQWNjb3VudElkLCBCYWxhbmNlKT4AARRjb3VudCgBDHUzMgABDGxlbnQBLE9wdGlvbjx1MzI+AAEAAL0JAAAECABAAMEJBBhPcHRpb24EBFQBvQkBCBBOb25lAAAAEFNvbWUEAL0JAAABAADFCQg8cGFsbGV0X3ByZWltYWdlNFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAGFRpY2tldAHJCQEILFVucmVxdWVzdGVkCAEYdGlja2V0zQkBTChBY2NvdW50SWQsIFRpY2tldCkAAQxsZW4oAQx1MzIAAAAkUmVxdWVzdGVkDAEwbWF5YmVfdGlja2V00QkBbE9wdGlvbjwoQWNjb3VudElkLCBUaWNrZXQpPgABFGNvdW50KAEMdTMyAAEkbWF5YmVfbGVudAEsT3B0aW9uPHUzMj4AAQAAyQkUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZURIb2xkQ29uc2lkZXJhdGlvbhQEQQAERgAEUgAERAAIRnAAAAQAQAEoRjo6QmFsYW5jZQAAzQkAAAQIAMkJANEJBBhPcHRpb24EBFQBzQkBCBBOb25lAAAAEFNvbWUEAM0JAAABAADVCQAABAgsKADZCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAN0JDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0FEVycm9yBARUAAEgGFRvb0JpZwAABKBQcmVpbWFnZSBpcyB0b28gbGFyZ2UgdG8gc3RvcmUgb24tY2hhaW4uMEFscmVhZHlOb3RlZAABBKRQcmVpbWFnZSBoYXMgYWxyZWFkeSBiZWVuIG5vdGVkIG9uLWNoYWluLjROb3RBdXRob3JpemVkAAIEyFRoZSB1c2VyIGlzIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uIE5vdE5vdGVkAAME/FRoZSBwcmVpbWFnZSBjYW5ub3QgYmUgcmVtb3ZlZCBzaW5jZSBpdCBoYXMgbm90IHlldCBiZWVuIG5vdGVkLiRSZXF1ZXN0ZWQABAQJAUEgcHJlaW1hZ2UgbWF5IG5vdCBiZSByZW1vdmVkIHdoZW4gdGhlcmUgYXJlIG91dHN0YW5kaW5nIHJlcXVlc3RzLjBOb3RSZXF1ZXN0ZWQABQQtAVRoZSBwcmVpbWFnZSByZXF1ZXN0IGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIG5vIG91dHN0YW5kaW5nIHJlcXVlc3RzIGV4aXN0LhxUb29NYW55AAYEVQFNb3JlIHRoYW4gYE1BWF9IQVNIX1VQR1JBREVfQlVMS19DT1VOVGAgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIGF0IG9uY2UuGFRvb0ZldwAHBORUb28gZmV3IGhhc2hlcyB3ZXJlIHJlcXVlc3RlZCB0byBiZSB1cGdyYWRlZCAoaS5lLiB6ZXJvKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu4QkMPHBhbGxldF9pZGVudGl0eRR0eXBlczBSZWdpc3RyYXRpb24MHEJhbGFuY2UBQDRNYXhKdWRnZW1lbnRzADBJZGVudGl0eUluZm8B9AAMAShqdWRnZW1lbnRz5QkB/EJvdW5kZWRWZWM8KFJlZ2lzdHJhckluZGV4LCBKdWRnZW1lbnQ8QmFsYW5jZT4pLCBNYXhKdWRnZW1lbnRzPgABHGRlcG9zaXRAARxCYWxhbmNlAAEQaW5mb/QBMElkZW50aXR5SW5mbwAA5QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHpCQRTAAAEAO0JARhWZWM8VD4AAOkJAAAECCiNAQDtCQAAAukJAPEJAAAECED1CQD1CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABABIARhWZWM8VD4AAPkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB/QkEUwAABAAFCgEYVmVjPFQ+AAD9CQQYT3B0aW9uBARUAQEKAQgQTm9uZQAAABBTb21lBAABCgAAAQAAAQoMPHBhbGxldF9pZGVudGl0eRR0eXBlczRSZWdpc3RyYXJJbmZvDBxCYWxhbmNlAUAkQWNjb3VudElkAQAcSWRGaWVsZAEYAAwBHGFjY291bnQAASRBY2NvdW50SWQAAQxmZWVAARxCYWxhbmNlAAEYZmllbGRzGAEcSWRGaWVsZAAABQoAAAL9CQAJCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAA0KDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXNMQXV0aG9yaXR5UHJvcGVydGllcwQcQWNjb3VudAEAAAgBKGFjY291bnRfaWQAARxBY2NvdW50AAEoYWxsb2NhdGlvbigBKEFsbG9jYXRpb24AABEKDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXNMVXNlcm5hbWVJbmZvcm1hdGlvbggcQWNjb3VudAEAHEJhbGFuY2UBQAAIARRvd25lcgABHEFjY291bnQAASBwcm92aWRlchUKAURQcm92aWRlcjxCYWxhbmNlPgAAFQoMPHBhbGxldF9pZGVudGl0eRR0eXBlcyBQcm92aWRlcgQcQmFsYW5jZQFAAQwoQWxsb2NhdGlvbgAAAEBBdXRob3JpdHlEZXBvc2l0BABAARxCYWxhbmNlAAEAGFN5c3RlbQACAAAZCgAABAwAKBUKAB0KDDxwYWxsZXRfaWRlbnRpdHkYcGFsbGV0FEVycm9yBARUAAF4SFRvb01hbnlTdWJBY2NvdW50cwAABFxUb28gbWFueSBzdWJzLWFjY291bnRzLiBOb3RGb3VuZAABBFBBY2NvdW50IGlzbid0IGZvdW5kLiBOb3ROYW1lZAACBFBBY2NvdW50IGlzbid0IG5hbWVkLihFbXB0eUluZGV4AAMEMEVtcHR5IGluZGV4LihGZWVDaGFuZ2VkAAQEPEZlZSBpcyBjaGFuZ2VkLihOb0lkZW50aXR5AAUESE5vIGlkZW50aXR5IGZvdW5kLjxTdGlja3lKdWRnZW1lbnQABgREU3RpY2t5IGp1ZGdlbWVudC44SnVkZ2VtZW50R2l2ZW4ABwRASnVkZ2VtZW50IGdpdmVuLkBJbnZhbGlkSnVkZ2VtZW50AAgESEludmFsaWQganVkZ2VtZW50LjBJbnZhbGlkSW5kZXgACQRUVGhlIGluZGV4IGlzIGludmFsaWQuNEludmFsaWRUYXJnZXQACgRYVGhlIHRhcmdldCBpcyBpbnZhbGlkLkRUb29NYW55UmVnaXN0cmFycwALBOhNYXhpbXVtIGFtb3VudCBvZiByZWdpc3RyYXJzIHJlYWNoZWQuIENhbm5vdCBhZGQgYW55IG1vcmUuOEFscmVhZHlDbGFpbWVkAAwEcEFjY291bnQgSUQgaXMgYWxyZWFkeSBuYW1lZC4YTm90U3ViAA0EcFNlbmRlciBpcyBub3QgYSBzdWItYWNjb3VudC4gTm90T3duZWQADgSIU3ViLWFjY291bnQgaXNuJ3Qgb3duZWQgYnkgc2VuZGVyLnRKdWRnZW1lbnRGb3JEaWZmZXJlbnRJZGVudGl0eQAPBNBUaGUgcHJvdmlkZWQganVkZ2VtZW50IHdhcyBmb3IgYSBkaWZmZXJlbnQgaWRlbnRpdHkuWEp1ZGdlbWVudFBheW1lbnRGYWlsZWQAEAT4RXJyb3IgdGhhdCBvY2N1cnMgd2hlbiB0aGVyZSBpcyBhbiBpc3N1ZSBwYXlpbmcgZm9yIGp1ZGdlbWVudC40SW52YWxpZFN1ZmZpeAARBIBUaGUgcHJvdmlkZWQgc3VmZml4IGlzIHRvbyBsb25nLlBOb3RVc2VybmFtZUF1dGhvcml0eQASBOBUaGUgc2VuZGVyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBpc3N1ZSBhIHVzZXJuYW1lLjBOb0FsbG9jYXRpb24AEwTEVGhlIGF1dGhvcml0eSBjYW5ub3QgYWxsb2NhdGUgYW55IG1vcmUgdXNlcm5hbWVzLkBJbnZhbGlkU2lnbmF0dXJlABQEqFRoZSBzaWduYXR1cmUgb24gYSB1c2VybmFtZSB3YXMgbm90IHZhbGlkLkRSZXF1aXJlc1NpZ25hdHVyZQAVBAkBU2V0dGluZyB0aGlzIHVzZXJuYW1lIHJlcXVpcmVzIGEgc2lnbmF0dXJlLCBidXQgbm9uZSB3YXMgcHJvdmlkZWQuPEludmFsaWRVc2VybmFtZQAWBLBUaGUgdXNlcm5hbWUgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzLjRVc2VybmFtZVRha2VuABcEeFRoZSB1c2VybmFtZSBpcyBhbHJlYWR5IHRha2VuLihOb1VzZXJuYW1lABgEmFRoZSByZXF1ZXN0ZWQgdXNlcm5hbWUgZG9lcyBub3QgZXhpc3QuKE5vdEV4cGlyZWQAGQQtAVRoZSB1c2VybmFtZSBjYW5ub3QgYmUgZm9yY2VmdWxseSByZW1vdmVkIGJlY2F1c2UgaXQgY2FuIHN0aWxsIGJlIGFjY2VwdGVkLiBUb29FYXJseQAaBBkBVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSByZW1vdmVkIGJlY2F1c2UgaXQncyBzdGlsbCBpbiB0aGUgZ3JhY2UgcGVyaW9kLjBOb3RVbmJpbmRpbmcAGwTsVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm90IHVuYmluZGluZy5AQWxyZWFkeVVuYmluZGluZwAcBPxUaGUgdXNlcm5hbWUgY2Fubm90IGJlIHVuYm91bmQgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHVuYmluZGluZy5YSW5zdWZmaWNpZW50UHJpdmlsZWdlcwAdCEUBVGhlIGFjdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHByaXZpbGVnZXMgKGUuZy4gYXV0aG9yaXR50HRyeWluZyB0byB1bmJpbmQgYSB1c2VybmFtZSBwcm92aWRlZCBieSB0aGUgc3lzdGVtKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuIQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAElCgRTAAAEACkKARhWZWM8VD4AACUKAAAEDCipAQAAKQoAAAIlCgAtCgAABAgxCkAAMQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQASAEYVmVjPFQ+AAA1CgxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlczhSZWZlcmVuZHVtSW5mbwwsQmxvY2tOdW1iZXIBKCBQcm9wb3NhbAGpARxCYWxhbmNlAUABCBxPbmdvaW5nBAA5CgHAUmVmZXJlbmR1bVN0YXR1czxCbG9ja051bWJlciwgUHJvcG9zYWwsIEJhbGFuY2U+AAAAIEZpbmlzaGVkCAEgYXBwcm92ZWREARBib29sAAEMZW5kKAEsQmxvY2tOdW1iZXIAAQAAOQoMQHBhbGxldF9kZW1vY3JhY3kUdHlwZXNAUmVmZXJlbmR1bVN0YXR1cwwsQmxvY2tOdW1iZXIBKCBQcm9wb3NhbAGpARxCYWxhbmNlAUAAFAEMZW5kKAEsQmxvY2tOdW1iZXIAASBwcm9wb3NhbKkBASBQcm9wb3NhbAABJHRocmVzaG9sZGEHATRWb3RlVGhyZXNob2xkAAEUZGVsYXkoASxCbG9ja051bWJlcgABFHRhbGx5PQoBOFRhbGx5PEJhbGFuY2U+AAA9CgxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlcxRUYWxseQQcQmFsYW5jZQFAAAwBEGF5ZXNAARxCYWxhbmNlAAEQbmF5c0ABHEJhbGFuY2UAARx0dXJub3V0QAEcQmFsYW5jZQAAQQoMQHBhbGxldF9kZW1vY3JhY3kQdm90ZRhWb3RpbmcQHEJhbGFuY2UBQCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoIE1heFZvdGVzAAEIGERpcmVjdAwBFHZvdGVzRQoB9EJvdW5kZWRWZWM8KFJlZmVyZW5kdW1JbmRleCwgQWNjb3VudFZvdGU8QmFsYW5jZT4pLCBNYXhWb3Rlcz4AASxkZWxlZ2F0aW9uc1EKAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9yVQoBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AAAAoRGVsZWdhdGluZxQBHGJhbGFuY2VAARxCYWxhbmNlAAEYdGFyZ2V0AAEkQWNjb3VudElkAAEoY29udmljdGlvbr0BAShDb252aWN0aW9uAAEsZGVsZWdhdGlvbnNRCgFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvclUKAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AAEAAEUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBSQoEUwAABABNCgEYVmVjPFQ+AABJCgAABAgotQEATQoAAAJJCgBRCgxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlcyxEZWxlZ2F0aW9ucwQcQmFsYW5jZQFAAAgBFHZvdGVzQAEcQmFsYW5jZQABHGNhcGl0YWxAARxCYWxhbmNlAABVCgxAcGFsbGV0X2RlbW9jcmFjeRB2b3RlJFByaW9yTG9jawgsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAUAACAAoASxCbG9ja051bWJlcgAAQAEcQmFsYW5jZQAAWQoAAAQIqQFhBwBdCgAABAgoMQoAYQoMQHBhbGxldF9kZW1vY3JhY3kYcGFsbGV0FEVycm9yBARUAAFgIFZhbHVlTG93AAAENFZhbHVlIHRvbyBsb3c8UHJvcG9zYWxNaXNzaW5nAAEEXFByb3Bvc2FsIGRvZXMgbm90IGV4aXN0PEFscmVhZHlDYW5jZWxlZAACBJRDYW5ub3QgY2FuY2VsIHRoZSBzYW1lIHByb3Bvc2FsIHR3aWNlRER1cGxpY2F0ZVByb3Bvc2FsAAMEVFByb3Bvc2FsIGFscmVhZHkgbWFkZUxQcm9wb3NhbEJsYWNrbGlzdGVkAAQEaFByb3Bvc2FsIHN0aWxsIGJsYWNrbGlzdGVkRE5vdFNpbXBsZU1ham9yaXR5AAUEqE5leHQgZXh0ZXJuYWwgcHJvcG9zYWwgbm90IHNpbXBsZSBtYWpvcml0eSxJbnZhbGlkSGFzaAAGBDBJbnZhbGlkIGhhc2goTm9Qcm9wb3NhbAAHBFBObyBleHRlcm5hbCBwcm9wb3NhbDRBbHJlYWR5VmV0b2VkAAgEmElkZW50aXR5IG1heSBub3QgdmV0byBhIHByb3Bvc2FsIHR3aWNlRFJlZmVyZW5kdW1JbnZhbGlkAAkEhFZvdGUgZ2l2ZW4gZm9yIGludmFsaWQgcmVmZXJlbmR1bSxOb25lV2FpdGluZwAKBFBObyBwcm9wb3NhbHMgd2FpdGluZyBOb3RWb3RlcgALBMRUaGUgZ2l2ZW4gYWNjb3VudCBkaWQgbm90IHZvdGUgb24gdGhlIHJlZmVyZW5kdW0uME5vUGVybWlzc2lvbgAMBMhUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uLkRBbHJlYWR5RGVsZWdhdGluZwANBIhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGRlbGVnYXRpbmcuREluc3VmZmljaWVudEZ1bmRzAA4E/FRvbyBoaWdoIGEgYmFsYW5jZSB3YXMgcHJvdmlkZWQgdGhhdCB0aGUgYWNjb3VudCBjYW5ub3QgYWZmb3JkLjROb3REZWxlZ2F0aW5nAA8EoFRoZSBhY2NvdW50IGlzIG5vdCBjdXJyZW50bHkgZGVsZWdhdGluZy4oVm90ZXNFeGlzdAAQCFUBVGhlIGFjY291bnQgY3VycmVudGx5IGhhcyB2b3RlcyBhdHRhY2hlZCB0byBpdCBhbmQgdGhlIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCB1bnRpbOh0aGVzZSBhcmUgcmVtb3ZlZCwgZWl0aGVyIHRocm91Z2ggYHVudm90ZWAgb3IgYHJlYXBfdm90ZWAuREluc3RhbnROb3RBbGxvd2VkABEE2FRoZSBpbnN0YW50IHJlZmVyZW5kdW0gb3JpZ2luIGlzIGN1cnJlbnRseSBkaXNhbGxvd2VkLiBOb25zZW5zZQASBJREZWxlZ2F0aW9uIHRvIG9uZXNlbGYgbWFrZXMgbm8gc2Vuc2UuPFdyb25nVXBwZXJCb3VuZAATBFBJbnZhbGlkIHVwcGVyIGJvdW5kLjxNYXhWb3Rlc1JlYWNoZWQAFASATWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgcmVhY2hlZC4cVG9vTWFueQAVBIBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyByZWFjaGVkLjxWb3RpbmdQZXJpb2RMb3cAFgRUVm90aW5nIHBlcmlvZCB0b28gbG93QFByZWltYWdlTm90RXhpc3QAFwRwVGhlIHByZWltYWdlIGRvZXMgbm90IGV4aXN0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5lCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASwEUwAABADsARhWZWM8VD4AAGkKAAAECABwAG0KCERwYWxsZXRfY29sbGVjdGl2ZRRWb3RlcwgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKAAUARRpbmRleCgBNFByb3Bvc2FsSW5kZXgAASR0aHJlc2hvbGQoASxNZW1iZXJDb3VudAABEGF5ZXNIAThWZWM8QWNjb3VudElkPgABEG5heXNIAThWZWM8QWNjb3VudElkPgABDGVuZCgBLEJsb2NrTnVtYmVyAABxCgxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0FEVycm9yCARUAARJAAEwJE5vdE1lbWJlcgAABFxBY2NvdW50IGlzIG5vdCBhIG1lbWJlckREdXBsaWNhdGVQcm9wb3NhbAABBHxEdXBsaWNhdGUgcHJvcG9zYWxzIG5vdCBhbGxvd2VkPFByb3Bvc2FsTWlzc2luZwACBExQcm9wb3NhbCBtdXN0IGV4aXN0KFdyb25nSW5kZXgAAwRATWlzbWF0Y2hlZCBpbmRleDREdXBsaWNhdGVWb3RlAAQEWER1cGxpY2F0ZSB2b3RlIGlnbm9yZWRIQWxyZWFkeUluaXRpYWxpemVkAAUEgE1lbWJlcnMgYXJlIGFscmVhZHkgaW5pdGlhbGl6ZWQhIFRvb0Vhcmx5AAYEAQFUaGUgY2xvc2UgY2FsbCB3YXMgbWFkZSB0b28gZWFybHksIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB2b3RpbmcuQFRvb01hbnlQcm9wb3NhbHMABwT8VGhlcmUgY2FuIG9ubHkgYmUgYSBtYXhpbXVtIG9mIGBNYXhQcm9wb3NhbHNgIGFjdGl2ZSBwcm9wb3NhbHMuTFdyb25nUHJvcG9zYWxXZWlnaHQACATQVGhlIGdpdmVuIHdlaWdodCBib3VuZCBmb3IgdGhlIHByb3Bvc2FsIHdhcyB0b28gbG93LkxXcm9uZ1Byb3Bvc2FsTGVuZ3RoAAkE0FRoZSBnaXZlbiBsZW5ndGggYm91bmQgZm9yIHRoZSBwcm9wb3NhbCB3YXMgdG9vIGxvdy5UUHJpbWVBY2NvdW50Tm90TWVtYmVyAAoEdFByaW1lIGFjY291bnQgaXMgbm90IGEgbWVtYmVyOFByb3Bvc2FsQWN0aXZlAAsEZFByb3Bvc2FsIGlzIHN0aWxsIGFjdGl2ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQudQoAAAQIeQpAAHkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBfQoEUwAABACBCgEYVmVjPFQ+AAB9CggwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQAkUHJveHlUeXBlAdkBLEJsb2NrTnVtYmVyASgADAEgZGVsZWdhdGUAASRBY2NvdW50SWQAAShwcm94eV90eXBl2QEBJFByb3h5VHlwZQABFGRlbGF5KAEsQmxvY2tOdW1iZXIAAIEKAAACfQoAhQoAAAQIiQpAAIkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBjQoEUwAABACRCgEYVmVjPFQ+AACNCggwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQAQSGFzaAEsLEJsb2NrTnVtYmVyASgADAEQcmVhbAABJEFjY291bnRJZAABJGNhbGxfaGFzaCwBEEhhc2gAARhoZWlnaHQoASxCbG9ja051bWJlcgAAkQoAAAKNCgCVCgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQumQoAAAQIAAQAnQoIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAUAkQWNjb3VudElkAQAwTWF4QXBwcm92YWxzAAAQARB3aGVu5QEBWFRpbWVwb2ludDxCbG9ja051bWJlcj4AARxkZXBvc2l0QAEcQmFsYW5jZQABJGRlcG9zaXRvcgABJEFjY291bnRJZAABJGFwcHJvdmFsc6EKAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAAoQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQASAEYVmVjPFQ+AAClCgw8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFcnJvcgQEVAABOEBNaW5pbXVtVGhyZXNob2xkAAAEfFRocmVzaG9sZCBtdXN0IGJlIDIgb3IgZ3JlYXRlci48QWxyZWFkeUFwcHJvdmVkAAEErENhbGwgaXMgYWxyZWFkeSBhcHByb3ZlZCBieSB0aGlzIHNpZ25hdG9yeS5ETm9BcHByb3ZhbHNOZWVkZWQAAgScQ2FsbCBkb2Vzbid0IG5lZWQgYW55IChtb3JlKSBhcHByb3ZhbHMuRFRvb0Zld1NpZ25hdG9yaWVzAAMEqFRoZXJlIGFyZSB0b28gZmV3IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LkhUb29NYW55U2lnbmF0b3JpZXMABASsVGhlcmUgYXJlIHRvbyBtYW55IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LlRTaWduYXRvcmllc091dE9mT3JkZXIABQQNAVRoZSBzaWduYXRvcmllcyB3ZXJlIHByb3ZpZGVkIG91dCBvZiBvcmRlcjsgdGhleSBzaG91bGQgYmUgb3JkZXJlZC5MU2VuZGVySW5TaWduYXRvcmllcwAGBA0BVGhlIHNlbmRlciB3YXMgY29udGFpbmVkIGluIHRoZSBvdGhlciBzaWduYXRvcmllczsgaXQgc2hvdWxkbid0IGJlLiBOb3RGb3VuZAAHBKBNdWx0aXNpZyBvcGVyYXRpb24gbm90IGZvdW5kIGluIHN0b3JhZ2UuIE5vdE93bmVyAAgIUQFPbmx5IHRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoZSBtdWx0aXNpZyBpcyBhYmxlIHRvIGNhbmNlbCBpdCBvciB1cGRhdGU0aXRzIGRlcG9zaXRzLixOb1RpbWVwb2ludAAJBB0BTm8gdGltZXBvaW50IHdhcyBnaXZlbiwgeWV0IHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gaXMgYWxyZWFkeSB1bmRlcndheS44V3JvbmdUaW1lcG9pbnQACgQtAUEgZGlmZmVyZW50IHRpbWVwb2ludCB3YXMgZ2l2ZW4gdG8gdGhlIG11bHRpc2lnIG9wZXJhdGlvbiB0aGF0IGlzIHVuZGVyd2F5LkxVbmV4cGVjdGVkVGltZXBvaW50AAsE9EEgdGltZXBvaW50IHdhcyBnaXZlbiwgeWV0IG5vIG11bHRpc2lnIG9wZXJhdGlvbiBpcyB1bmRlcndheS48TWF4V2VpZ2h0VG9vTG93AAwE0FRoZSBtYXhpbXVtIHdlaWdodCBpbmZvcm1hdGlvbiBwcm92aWRlZCB3YXMgdG9vIGxvdy40QWxyZWFkeVN0b3JlZAANBKBUaGUgZGF0YSB0byBiZSBzdG9yZWQgaXMgYWxyZWFkeSBzdG9yZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqkKDDhwYWxsZXRfdW5pcXVlcxR0eXBlc0RDb2xsZWN0aW9uRGV0YWlscwgkQWNjb3VudElkAQA4RGVwb3NpdEJhbGFuY2UBQAAoARRvd25lcgABJEFjY291bnRJZAABGGlzc3VlcgABJEFjY291bnRJZAABFGFkbWluAAEkQWNjb3VudElkAAEcZnJlZXplcgABJEFjY291bnRJZAABNHRvdGFsX2RlcG9zaXRAAThEZXBvc2l0QmFsYW5jZQABMGZyZWVfaG9sZGluZ0QBEGJvb2wAARRpdGVtcygBDHUzMgABOGl0ZW1fbWV0YWRhdGFzKAEMdTMyAAEoYXR0cmlidXRlcygBDHUzMgABJGlzX2Zyb3plbkQBEGJvb2wAAK0KAAAEDABAQACxCgw4cGFsbGV0X3VuaXF1ZXMUdHlwZXMsSXRlbURldGFpbHMIJEFjY291bnRJZAEAOERlcG9zaXRCYWxhbmNlAUAAEAEUb3duZXIAASRBY2NvdW50SWQAASBhcHByb3ZlZM0BAURPcHRpb248QWNjb3VudElkPgABJGlzX2Zyb3plbkQBEGJvb2wAARxkZXBvc2l0QAE4RGVwb3NpdEJhbGFuY2UAALUKDDhwYWxsZXRfdW5pcXVlcxR0eXBlc0hDb2xsZWN0aW9uTWV0YWRhdGEIOERlcG9zaXRCYWxhbmNlAUAsU3RyaW5nTGltaXQAAAwBHGRlcG9zaXRAAThEZXBvc2l0QmFsYW5jZQABEGRhdGEBAgFsQm91bmRlZFZlYzx1OCwgU3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuRAEQYm9vbAAAuQoMOHBhbGxldF91bmlxdWVzFHR5cGVzMEl0ZW1NZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBQCxTdHJpbmdMaW1pdAAADAEcZGVwb3NpdEABOERlcG9zaXRCYWxhbmNlAAEQZGF0YQECAWxCb3VuZGVkVmVjPHU4LCBTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5EARBib29sAAC9CgAABAxA9QH5AQDBCgAABAj9AUAAxQoAAAQIQM0BAMkKDDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQURXJyb3IIBFQABEkAAVgwTm9QZXJtaXNzaW9uAAAE6FRoZSBzaWduaW5nIGFjY291bnQgaGFzIG5vIHBlcm1pc3Npb24gdG8gZG8gdGhlIG9wZXJhdGlvbi5EVW5rbm93bkNvbGxlY3Rpb24AAQR0VGhlIGdpdmVuIGl0ZW0gSUQgaXMgdW5rbm93bi40QWxyZWFkeUV4aXN0cwACBLhUaGUgaXRlbSBJRCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgZm9yIGFuIGl0ZW0uKFdyb25nT3duZXIAAwToVGhlIG93bmVyIHR1cm5lZCBvdXQgdG8gYmUgZGlmZmVyZW50IHRvIHdoYXQgd2FzIGV4cGVjdGVkLihCYWRXaXRuZXNzAAQEbEludmFsaWQgd2l0bmVzcyBkYXRhIGdpdmVuLhRJblVzZQAFBHRUaGUgaXRlbSBJRCBpcyBhbHJlYWR5IHRha2VuLhhGcm96ZW4ABgSEVGhlIGl0ZW0gb3IgY29sbGVjdGlvbiBpcyBmcm96ZW4uNFdyb25nRGVsZWdhdGUABwT0VGhlIGRlbGVnYXRlIHR1cm5lZCBvdXQgdG8gYmUgZGlmZmVyZW50IHRvIHdoYXQgd2FzIGV4cGVjdGVkLihOb0RlbGVnYXRlAAgEeFRoZXJlIGlzIG5vIGRlbGVnYXRlIGFwcHJvdmVkLihVbmFwcHJvdmVkAAkExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4oVW5hY2NlcHRlZAAKBCUBVGhlIG5hbWVkIG93bmVyIGhhcyBub3Qgc2lnbmVkIG93bmVyc2hpcCBvZiB0aGUgY29sbGVjdGlvbiBpcyBhY2NlcHRhYmxlLhhMb2NrZWQACwRMVGhlIGl0ZW0gaXMgbG9ja2VkLkBNYXhTdXBwbHlSZWFjaGVkAAwEbEFsbCBpdGVtcyBoYXZlIGJlZW4gbWludGVkLkxNYXhTdXBwbHlBbHJlYWR5U2V0AA0EkFRoZSBtYXggc3VwcGx5IGhhcyBhbHJlYWR5IGJlZW4gc2V0LkRNYXhTdXBwbHlUb29TbWFsbAAOBEEBVGhlIHByb3ZpZGVkIG1heCBzdXBwbHkgaXMgbGVzcyB0byB0aGUgYW1vdW50IG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBhbHJlYWR5IGhhcy4sVW5rbm93bkl0ZW0ADwR0VGhlIGdpdmVuIGl0ZW0gSUQgaXMgdW5rbm93bi4oTm90Rm9yU2FsZQAQBFRJdGVtIGlzIG5vdCBmb3Igc2FsZS4kQmlkVG9vTG93ABEEcFRoZSBwcm92aWRlZCBiaWQgaXMgdG9vIGxvdy4oTm9NZXRhZGF0YQASBFRObyBtZXRhZGF0YSBpcyBmb3VuZC40V3JvbmdNZXRhZGF0YQATBKBXcm9uZyBtZXRhZGF0YSBrZXkvdmFsdWUgYnl0ZXMgc3VwcGxpZWQuREF0dHJpYnV0ZU5vdEZvdW5kABQEaEFuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuOFdyb25nQXR0cmlidXRlABUEpFdyb25nIGF0dHJpYnV0ZSBrZXkvdmFsdWUgYnl0ZXMgc3VwcGxpZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ls0KAAAECACAANEKDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRhWb3RpbmcUHEJhbGFuY2UBQCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoJFBvbGxJbmRleAEoIE1heFZvdGVzAAEIHENhc3RpbmcEANUKAchDYXN0aW5nPEJhbGFuY2UsIEJsb2NrTnVtYmVyLCBQb2xsSW5kZXgsIE1heFZvdGVzPgAAAChEZWxlZ2F0aW5nBADtCgGsRGVsZWdhdGluZzxCYWxhbmNlLCBBY2NvdW50SWQsIEJsb2NrTnVtYmVyPgABAADVCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUcQ2FzdGluZxAcQmFsYW5jZQFALEJsb2NrTnVtYmVyASgkUG9sbEluZGV4ASggTWF4Vm90ZXMAAAwBFHZvdGVz2QoB3EJvdW5kZWRWZWM8KFBvbGxJbmRleCwgQWNjb3VudFZvdGU8QmFsYW5jZT4pLCBNYXhWb3Rlcz4AASxkZWxlZ2F0aW9uc+UKAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9y6QoBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AANkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB3QoEUwAABADhCgEYVmVjPFQ+AADdCgAABAgoIQIA4QoAAALdCgDlCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzLERlbGVnYXRpb25zBBxCYWxhbmNlAUAACAEUdm90ZXNAARxCYWxhbmNlAAEcY2FwaXRhbEABHEJhbGFuY2UAAOkKDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZSRQcmlvckxvY2sILEJsb2NrTnVtYmVyASgcQmFsYW5jZQFAAAgAKAEsQmxvY2tOdW1iZXIAAEABHEJhbGFuY2UAAO0KDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZShEZWxlZ2F0aW5nDBxCYWxhbmNlAUAkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKAAUARxiYWxhbmNlQAEcQmFsYW5jZQABGHRhcmdldAABJEFjY291bnRJZAABKGNvbnZpY3Rpb24pAgEoQ29udmljdGlvbgABLGRlbGVnYXRpb25z5QoBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3LpCgF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgAA8QoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAH1CgRTAAAEAPkKARhWZWM8VD4AAPUKAAAECIBAAPkKAAAC9QoA/QoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQURXJyb3IIBFQABEkAATAoTm90T25nb2luZwAABFBQb2xsIGlzIG5vdCBvbmdvaW5nLiBOb3RWb3RlcgABBKxUaGUgZ2l2ZW4gYWNjb3VudCBkaWQgbm90IHZvdGUgb24gdGhlIHBvbGwuME5vUGVybWlzc2lvbgACBMhUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uLjxOb1Blcm1pc3Npb25ZZXQAAwRZAVRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24gcmlnaHQgbm93IGJ1dCB3aWxsIGRvIGluIHRoZSBmdXR1cmUuREFscmVhZHlEZWxlZ2F0aW5nAAQEiFRoZSBhY2NvdW50IGlzIGFscmVhZHkgZGVsZWdhdGluZy40QWxyZWFkeVZvdGluZwAFCFUBVGhlIGFjY291bnQgY3VycmVudGx5IGhhcyB2b3RlcyBhdHRhY2hlZCB0byBpdCBhbmQgdGhlIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCB1bnRpbKB0aGVzZSBhcmUgcmVtb3ZlZCB0aHJvdWdoIGByZW1vdmVfdm90ZWAuREluc3VmZmljaWVudEZ1bmRzAAYE/FRvbyBoaWdoIGEgYmFsYW5jZSB3YXMgcHJvdmlkZWQgdGhhdCB0aGUgYWNjb3VudCBjYW5ub3QgYWZmb3JkLjROb3REZWxlZ2F0aW5nAAcEoFRoZSBhY2NvdW50IGlzIG5vdCBjdXJyZW50bHkgZGVsZWdhdGluZy4gTm9uc2Vuc2UACASURGVsZWdhdGlvbiB0byBvbmVzZWxmIG1ha2VzIG5vIHNlbnNlLjxNYXhWb3Rlc1JlYWNoZWQACQSATWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgcmVhY2hlZC4sQ2xhc3NOZWVkZWQACgQ5AVRoZSBjbGFzcyBtdXN0IGJlIHN1cHBsaWVkIHNpbmNlIGl0IGlzIG5vdCBlYXNpbHkgZGV0ZXJtaW5hYmxlIGZyb20gdGhlIHN0YXRlLiBCYWRDbGFzcwALBIRUaGUgY2xhc3MgSUQgc3VwcGxpZWQgaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuAQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4UmVmZXJlbmR1bUluZm8gHFRyYWNrSWQBgDRSdW50aW1lT3JpZ2luAYQYTW9tZW50ASgQQ2FsbAGpARxCYWxhbmNlAUAUVGFsbHkBjQckQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAakCARgcT25nb2luZwQABQsBjQFSZWZlcmVuZHVtU3RhdHVzPFRyYWNrSWQsIFJ1bnRpbWVPcmlnaW4sIE1vbWVudCwgQ2FsbCwgQmFsYW5jZSwgVGFsbHksCkFjY291bnRJZCwgU2NoZWR1bGVBZGRyZXNzLD4AAAAgQXBwcm92ZWQMACgBGE1vbWVudAAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAANCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAQAgUmVqZWN0ZWQMACgBGE1vbWVudAAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAANCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAgAkQ2FuY2VsbGVkDAAoARhNb21lbnQAAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAMAIFRpbWVkT3V0DAAoARhNb21lbnQAAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAQAGEtpbGxlZAQAKAEYTW9tZW50AAUAAAULDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzQFJlZmVyZW5kdW1TdGF0dXMgHFRyYWNrSWQBgDRSdW50aW1lT3JpZ2luAYQYTW9tZW50ASgQQ2FsbAGpARxCYWxhbmNlAUAUVGFsbHkBjQckQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAakCACwBFHRyYWNrgAEcVHJhY2tJZAABGG9yaWdpboQBNFJ1bnRpbWVPcmlnaW4AASBwcm9wb3NhbKkBARBDYWxsAAEkZW5hY3RtZW50NQIBUERpc3BhdGNoVGltZTxNb21lbnQ+AAEkc3VibWl0dGVkKAEYTW9tZW50AAFIc3VibWlzc2lvbl9kZXBvc2l0CQsBbERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPgABQGRlY2lzaW9uX2RlcG9zaXQNCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AASBkZWNpZGluZxELAXhPcHRpb248RGVjaWRpbmdTdGF0dXM8TW9tZW50Pj4AARR0YWxseY0HARRUYWxseQABIGluX3F1ZXVlRAEQYm9vbAABFGFsYXJtGQsBhE9wdGlvbjwoTW9tZW50LCBTY2hlZHVsZUFkZHJlc3MpPgAACQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMcRGVwb3NpdAgkQWNjb3VudElkAQAcQmFsYW5jZQFAAAgBDHdobwABJEFjY291bnRJZAABGGFtb3VudEABHEJhbGFuY2UAAA0LBBhPcHRpb24EBFQBCQsBCBBOb25lAAAAEFNvbWUEAAkLAAABAAARCwQYT3B0aW9uBARUARULAQgQTm9uZQAAABBTb21lBAAVCwAAAQAAFQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4RGVjaWRpbmdTdGF0dXMELEJsb2NrTnVtYmVyASgACAEUc2luY2UoASxCbG9ja051bWJlcgABKGNvbmZpcm1pbmd0AUxPcHRpb248QmxvY2tOdW1iZXI+AAAZCwQYT3B0aW9uBARUAR0LAQgQTm9uZQAAABBTb21lBAAdCwAAAQAAHQsAAAQIKKkCACELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQMEUwAABAChBgEYVmVjPFQ+AAAlCwAAAikLACkLAAAECIAtCwAtCwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczBUcmFja0RldGFpbHMMHEJhbGFuY2UBQBhNb21lbnQBKBBOYW1lAVkIACQBEG5hbWVZCAEQTmFtZQABMG1heF9kZWNpZGluZygBDHUzMgABQGRlY2lzaW9uX2RlcG9zaXRAARxCYWxhbmNlAAE4cHJlcGFyZV9wZXJpb2QoARhNb21lbnQAATxkZWNpc2lvbl9wZXJpb2QoARhNb21lbnQAAThjb25maXJtX3BlcmlvZCgBGE1vbWVudAABUG1pbl9lbmFjdG1lbnRfcGVyaW9kKAEYTW9tZW50AAEwbWluX2FwcHJvdmFsMQsBFEN1cnZlAAEsbWluX3N1cHBvcnQxCwEUQ3VydmUAADELDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzFEN1cnZlAAEMQExpbmVhckRlY3JlYXNpbmcMARhsZW5ndGgpAwEcUGVyYmlsbAABFGZsb29yKQMBHFBlcmJpbGwAARBjZWlsKQMBHFBlcmJpbGwAAABEU3RlcHBlZERlY3JlYXNpbmcQARRiZWdpbikDARxQZXJiaWxsAAEMZW5kKQMBHFBlcmJpbGwAARBzdGVwKQMBHFBlcmJpbGwAARhwZXJpb2QpAwEcUGVyYmlsbAABAChSZWNpcHJvY2FsDAEYZmFjdG9yNQsBIEZpeGVkSTY0AAEgeF9vZmZzZXQ1CwEgRml4ZWRJNjQAASB5X29mZnNldDULASBGaXhlZEk2NAACAAA1Cww0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCBGaXhlZEk2NAAABAA5CwEMaTY0AAA5CwAABQwAPQsMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEVycm9yCARUAARJAAE4KE5vdE9uZ29pbmcAAARoUmVmZXJlbmR1bSBpcyBub3Qgb25nb2luZy4oSGFzRGVwb3NpdAABBLhSZWZlcmVuZHVtJ3MgZGVjaXNpb24gZGVwb3NpdCBpcyBhbHJlYWR5IHBhaWQuIEJhZFRyYWNrAAIEnFRoZSB0cmFjayBpZGVudGlmaWVyIGdpdmVuIHdhcyBpbnZhbGlkLhBGdWxsAAMEMQFUaGVyZSBhcmUgYWxyZWFkeSBhIGZ1bGwgY29tcGxlbWVudCBvZiByZWZlcmVuZGEgaW4gcHJvZ3Jlc3MgZm9yIHRoaXMgdHJhY2suKFF1ZXVlRW1wdHkABASAVGhlIHF1ZXVlIG9mIHRoZSB0cmFjayBpcyBlbXB0eS40QmFkUmVmZXJlbmR1bQAFBORUaGUgcmVmZXJlbmR1bSBpbmRleCBwcm92aWRlZCBpcyBpbnZhbGlkIGluIHRoaXMgY29udGV4dC4sTm90aGluZ1RvRG8ABgSsVGhlcmUgd2FzIG5vdGhpbmcgdG8gZG8gaW4gdGhlIGFkdmFuY2VtZW50LhxOb1RyYWNrAAcEoE5vIHRyYWNrIGV4aXN0cyBmb3IgdGhlIHByb3Bvc2FsIG9yaWdpbi4oVW5maW5pc2hlZAAIBAEBQW55IGRlcG9zaXQgY2Fubm90IGJlIHJlZnVuZGVkIHVudGlsIGFmdGVyIHRoZSBkZWNpc2lvbiBpcyBvdmVyLjBOb1Blcm1pc3Npb24ACQSoVGhlIGRlcG9zaXQgcmVmdW5kZXIgaXMgbm90IHRoZSBkZXBvc2l0b3IuJE5vRGVwb3NpdAAKBMxUaGUgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgc2luY2Ugbm9uZSB3YXMgbWFkZS4kQmFkU3RhdHVzAAsE0FRoZSByZWZlcmVuZHVtIHN0YXR1cyBpcyBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbi5AUHJlaW1hZ2VOb3RFeGlzdAAMBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuhFByZWltYWdlU3RvcmVkV2l0aERpZmZlcmVudExlbmd0aAANBBUBVGhlIHByZWltYWdlIGlzIHN0b3JlZCB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIHRoZSBvbmUgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkELDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFcnJvcgQEVAABFExVbmF2YWlsYWJsZVByZUltYWdlAAAEyFRoZSBwcmVpbWFnZSBvZiB0aGUgY2FsbCBoYXNoIGNvdWxkIG5vdCBiZSBsb2FkZWQuPFVuZGVjb2RhYmxlQ2FsbAABBHhUaGUgY2FsbCBjb3VsZCBub3QgYmUgZGVjb2RlZC5gSW52YWxpZENhbGxXZWlnaHRXaXRuZXNzAAIE7FRoZSB3ZWlnaHQgb2YgdGhlIGRlY29kZWQgY2FsbCB3YXMgaGlnaGVyIHRoYW4gdGhlIHdpdG5lc3MuUENhbGxJc05vdFdoaXRlbGlzdGVkAAMEdFRoZSBjYWxsIHdhcyBub3Qgd2hpdGVsaXN0ZWQuWENhbGxBbHJlYWR5V2hpdGVsaXN0ZWQABASgVGhlIGNhbGwgd2FzIGFscmVhZHkgd2hpdGVsaXN0ZWQ7IE5vLU9wLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5FCwxEcGFsbGV0X2Rpc3BhdGNoZXIYcGFsbGV0FEVycm9yBARUAAEoNEV2bUNhbGxGYWlsZWQAAAg9AVRoZSBFVk0gY2FsbCBleGVjdXRpb24gZmFpbGVkLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgRVZNIHJldHVybnMgYW4gZXhpdCByZWFzb270b3RoZXIgdGhhbiBgRXhpdFN1Y2NlZWQoUmV0dXJuZWQpYCBvciBgRXhpdFN1Y2NlZWQoU3RvcHBlZClgLihOb3RFdm1DYWxsAAEEbQFUaGUgcHJvdmlkZWQgY2FsbCBpcyBub3QgYW4gRVZNIGNhbGwuIFRoaXMgZXh0cmluc2ljIG9ubHkgYWNjZXB0cyBgcGFsbGV0X2V2bTo6Q2FsbDo6Y2FsbGAuLEV2bU91dE9mR2FzAAIEcFRoZSBFVk0gY2FsbCByYW4gb3V0IG9mIGdhcy6ARXZtQXJpdGhtZXRpY092ZXJmbG93T3JVbmRlcmZsb3cAAwT0VGhlIEVWTSBjYWxsIHJlc3VsdGVkIGluIGFuIGFyaXRobWV0aWMgb3ZlcmZsb3cgb3IgdW5kZXJmbG93LlRBYXZlU3VwcGx5Q2FwRXhjZWVkZWQABASQQWF2ZSAtIHN1cHBseSBjYXAgaGFzIGJlZW4gZXhjZWVkZWQuVEFhdmVCb3Jyb3dDYXBFeGNlZWRlZAAFBJBBYXZlIC0gYm9ycm93IGNhcCBoYXMgYmVlbiBleGNlZWRlZC6EQWF2ZUhlYWx0aEZhY3Rvck5vdEJlbG93VGhyZXNob2xkAAYEwEFhdmUgLSBoZWFsdGggZmFjdG9yIGlzIG5vdCBiZWxvdyB0aGUgdGhyZXNob2xkLrRBYXZlSGVhbHRoRmFjdG9yTG93ZXJUaGFuTGlxdWlkYXRpb25UaHJlc2hvbGQABwT0QWF2ZSAtIGhlYWx0aCBmYWN0b3IgaXMgbGVzc2VyIHRoYW4gdGhlIGxpcXVpZGF0aW9uIHRocmVzaG9sZHhDb2xsYXRlcmFsQ2Fubm90Q292ZXJOZXdCb3Jyb3cACATsQWF2ZSAtIHRoZXJlIGlzIG5vdCBlbm91Z2ggY29sbGF0ZXJhbCB0byBjb3ZlciBhIG5ldyBib3Jyb3dEQWF2ZVJlc2VydmVQYXVzZWQACQToQWF2ZSAtIHRoZSByZXNlcnZlIGlzIHBhdXNlZCBhbmQgbm8gb3BlcmF0aW9ucyBhcmUgYWxsb3dlZASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5JCwxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5FHR5cGVzMEFzc2V0RGV0YWlscwQsU3RyaW5nTGltaXQAABwBEG5hbWVFAgFkT3B0aW9uPE5hbWU8U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVNAgEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdEABHEJhbGFuY2UAARhzeW1ib2xFAgFsT3B0aW9uPFN5bWJvbDxTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHNRAgEoT3B0aW9uPHU4PgABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnREARBib29sAABNCwxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5GHBhbGxldBRFcnJvcgQEVAABPDROb0lkQXZhaWxhYmxlAAAEcQFBc3NldCBJRCBpcyBub3QgYXZhaWxhYmxlLiBUaGlzIG9ubHkgaGFwcGVucyB3aGVuIGl0IHJlYWNoZXMgdGhlIE1BWCB2YWx1ZSBvZiBnaXZlbiBpZCB0eXBlLjRBc3NldE5vdEZvdW5kAAEEdEludmFsaWQgYXNzZXQgbmFtZSBvciBzeW1ib2wuIFRvb1Nob3J0AAIEyExlbmd0aCBvZiBuYW1lIG9yIHN5bWJvbCBpcyBsZXNzIHRoYW4gbWluLiBsZW5ndGguNEludmFsaWRTeW1ib2wAAwTQQXNzZXQncyBzeW1ib2wgY2FuJ3QgY29udGFpbiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgLkhBc3NldE5vdFJlZ2lzdGVyZWQABATEQXNzZXQgSUQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gdGhlIGFzc2V0LXJlZ2lzdHJ5LlhBc3NldEFscmVhZHlSZWdpc3RlcmVkAAUEcEFzc2V0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5USW52YWxpZFNoYXJlZEFzc2V0TGVuAAYE7EluY29ycmVjdCBudW1iZXIgb2YgYXNzZXRzIHByb3ZpZGVkIHRvIGNyZWF0ZSBzaGFyZWQgYXNzZXQuUENhbm5vdFVwZGF0ZUxvY2F0aW9uAAcEdENhbm5vdCB1cGRhdGUgYXNzZXQgbG9jYXRpb24uSE5vdEluUmVzZXJ2ZWRSYW5nZQAIBKxTZWxlY3RlZCBhc3NldCBpZCBpcyBvdXQgb2YgcmVzZXJ2ZWQgcmFuZ2UuZExvY2F0aW9uQWxyZWFkeVJlZ2lzdGVyZWQACQTETG9jYXRpb24gYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggZGlmZmVyZW50IGFzc2V0LiRGb3JiaWRkZW4ACgSgT3JpZ2luIGlzIGZvcmJpZGRlbiB0byBzZXQvdXBkYXRlIHZhbHVlLkxJbnN1ZmZpY2llbnRCYWxhbmNlAAsEQEJhbGFuY2UgdG9vIGxvdy5oRm9yYmlkZGVuU3VmZmljaWVuY3lDaGFuZ2UADATMU3VmZmljaWVudCBhc3NldHMgY2FuJ3QgYmUgY2hhbmdlZCB0byBpbnN1ZmZpY2llbnQuSEFzc2V0QWxyZWFkeUJhbm5lZAANBGBBc3NldCBpcyBhbHJlYWR5IGJhbm5lZC44QXNzZXROb3RCYW5uZWQADgRQQXNzZXQgaXMgbm90IGJhbm5lZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuUQsMNHBhbGxldF9jbGFpbXMYcGFsbGV0FEVycm9yBARUAAEMYEludmFsaWRFdGhlcmV1bVNpZ25hdHVyZQAABHxFdGhlcmV1bSBzaWduYXR1cmUgaXMgbm90IHZhbGlkXE5vQ2xhaW1PckFscmVhZHlDbGFpbWVkAAEESENsYWltIGlzIG5vdCB2YWxpZDxCYWxhbmNlT3ZlcmZsb3cAAgTcVmFsdWUgcmVhY2hlZCBtYXhpbXVtIGFuZCBjYW5ub3QgYmUgaW5jcmVtZW50ZWQgZnVydGhlcgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5VCwhYcGFsbGV0X2dlbmVzaXNfaGlzdG9yeRRDaGFpbgAACAEwZ2VuZXNpc19oYXNoLAEQSDI1NgABPGxhc3RfYmxvY2tfaGFzaCwBEEgyNTYAAFkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAEgBGFZlYzxUPgAAXQsMXHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzGHBhbGxldBRFcnJvcgQEVAABAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5hCww8cGFsbGV0X29tbmlwb29sFHR5cGVzKEFzc2V0U3RhdGUEHEJhbGFuY2UBQAAUASxodWJfcmVzZXJ2ZUABHEJhbGFuY2UAARhzaGFyZXNAARxCYWxhbmNlAAE8cHJvdG9jb2xfc2hhcmVzQAEcQmFsYW5jZQABDGNhcEABEHUxMjgAASB0cmFkYWJsZXkCASxUcmFkYWJpbGl0eQAAZQsMPHBhbGxldF9vbW5pcG9vbBR0eXBlcyBQb3NpdGlvbggcQmFsYW5jZQFAHEFzc2V0SWQBKAAQASBhc3NldF9pZCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEYc2hhcmVzQAEcQmFsYW5jZQABFHByaWNlfQIBSChCYWxhbmNlLCBCYWxhbmNlKQAAaQsQNGh5ZHJhX2R4X21hdGggb21uaXBvb2wUdHlwZXM0U2lnbmVkQmFsYW5jZQABCCBQb3NpdGl2ZQQAQAEcQmFsYW5jZQAAACBOZWdhdGl2ZQQAQAEcQmFsYW5jZQABAABtCww8cGFsbGV0X29tbmlwb29sGHBhbGxldBRFcnJvcgQEVAABjExJbnN1ZmZpY2llbnRCYWxhbmNlAAAEPEJhbGFuY2UgdG9vIGxvd0RBc3NldEFscmVhZHlBZGRlZAABBHBBc3NldCBpcyBhbHJlYWR5IGluIG9tbmlwb29sNEFzc2V0Tm90Rm91bmQAAgRgQXNzZXQgaXMgbm90IGluIG9tbmlwb29sOE1pc3NpbmdCYWxhbmNlAAMEGQFGYWlsZWQgdG8gYWRkIHRva2VuIHRvIE9tbmlwb29sIGR1ZSB0byBpbnN1ZmZpY2llbnQgaW5pdGlhbCBsaXF1aWRpdHkuYEludmFsaWRJbml0aWFsQXNzZXRQcmljZQAEBHBJbnZhbGlkIGluaXRpYWwgYXNzZXQgcHJpY2UuSEJ1eUxpbWl0Tm90UmVhY2hlZAAFBORTbGlwcGFnZSBwcm90ZWN0aW9uIC0gbWluaW11bSBsaW1pdCBoYXMgbm90IGJlZW4gcmVhY2hlZC5EU2VsbExpbWl0RXhjZWVkZWQABgTYU2xpcHBhZ2UgcHJvdGVjdGlvbiAtIG1heGltdW0gbGltaXQgaGFzIGJlZW4gZXhjZWVkZWQuQFBvc2l0aW9uTm90Rm91bmQABwRwUG9zaXRpb24gaGFzIG5vdCBiZWVuIGZvdW5kLkhJbnN1ZmZpY2llbnRTaGFyZXMACAR8SW5zdWZmaWNpZW50IHNoYXJlcyBpbiBwb3NpdGlvbihOb3RBbGxvd2VkAAkEiEFzc2V0IGlzIG5vdCBhbGxvd2VkIHRvIGJlIHRyYWRlZC4kRm9yYmlkZGVuAAoExFNpZ25lZCBhY2NvdW50IGlzIG5vdCBvd25lciBvZiBwb3NpdGlvbiBpbnN0YW5jZS5YQXNzZXRXZWlnaHRDYXBFeGNlZWRlZAALBIxBc3NldCB3ZWlnaHQgY2FwIGhhcyBiZWVuIGV4Y2VlZGVkLkhBc3NldE5vdFJlZ2lzdGVyZWQADASkQXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnlUSW5zdWZmaWNpZW50TGlxdWlkaXR5AA0ExFByb3ZpZGVkIGxpcXVpZGl0eSBpcyBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgbGltaXRkSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAAOBLBUcmFkZWQgYW1vdW50IGlzIGJlbG93IG1pbmltdW0gYWxsb3dlZCBsaW1pdGBTYW1lQXNzZXRUcmFkZU5vdEFsbG93ZWQADwS8U2VsbCBvciBidXkgd2l0aCBzYW1lIGFzc2V0IGlkcyBpcyBub3QgYWxsb3dlZC5MSHViQXNzZXRVcGRhdGVFcnJvcgAQBBUBSHViIGFzc2V0IHJlc2VydmUgdXBkYXRlIGFmdGVyIHRyYWRlIHJlc3VsdGVkIGluIHVuZXhwZWN0ZWQgRGVjcmVhc2UuTEludmFsaWRTaGFyZXNBbW91bnQAEQSYQW1vdW50IG9mIHNoYXJlcyBwcm92aWRlZCBjYW5ub3QgYmUgMC5wSW52YWxpZEh1YkFzc2V0VHJhZGFibGVTdGF0ZQASBJRIdWIgYXNzZXQgaXMgb25seSBhbGxvd2VkIHRvIGJlIHNvbGQuVEFzc2V0UmVmdW5kTm90QWxsb3dlZAATBJBBc3NldCBpcyBub3QgYWxsb3dlZCB0byBiZSByZWZ1bmRlZC5MTWF4T3V0UmF0aW9FeGNlZWRlZAAUBLxNYXggZnJhY3Rpb24gb2YgYXNzZXQgdG8gYnV5IGhhcyBiZWVuIGV4Y2VlZGVkLkhNYXhJblJhdGlvRXhjZWVkZWQAFQTATWF4IGZyYWN0aW9uIG9mIGFzc2V0IHRvIHNlbGwgaGFzIGJlZW4gZXhjZWVkZWQuWFByaWNlRGlmZmVyZW5jZVRvb0hpZ2gAFgS8TWF4IGFsbG93ZWQgcHJpY2UgZGlmZmVyZW5jZSBoYXMgYmVlbiBleGNlZWRlZC5ISW52YWxpZE9yYWNsZVByaWNlABcEoEludmFsaWQgb3JhY2xlIHByaWNlIC0gZGl2aXNpb24gYnkgemVyby5QSW52YWxpZFdpdGhkcmF3YWxGZWUAGASMRmFpbGVkIHRvIGNhbGN1bGF0ZSB3aXRoZHJhd2FsIGZlZS4wRmVlT3ZlcmRyYWZ0ABkE1E1vcmUgdGhhbiBhbGxvd2VkIGFtb3VudCBvZiBmZWUgaGFzIGJlZW4gdHJhbnNmZXJyZWQuPFNoYXJlc1JlbWFpbmluZwAaBD0BVG9rZW4gY2Fubm90IGJlIHJlbW92ZWQgZnJvbSBPbW5pcG9vbCBkdWUgdG8gc2hhcmVzIHN0aWxsIG93bmVkIGJ5IG90aGVyIHVzZXJzLjhBc3NldE5vdEZyb3plbgAbBAkBVG9rZW4gY2Fubm90IGJlIHJlbW92ZWQgZnJvbSBPbW5pcG9vbCBiZWNhdXNlIGFzc2V0IGlzIG5vdCBmcm96ZW4uNFplcm9BbW91bnRPdXQAHAS4Q2FsY3VsYXRlZCBhbW91bnQgb3V0IGZyb20gc2VsbCB0cmFkZSBpcyB6ZXJvLnhFeGlzdGVudGlhbERlcG9zaXROb3RBdmFpbGFibGUAHQS4RXhpc3RlbnRpYWwgZGVwb3NpdCBvZiBhc3NldCBpcyBub3QgYXZhaWxhYmxlLjRTbGlwcGFnZUxpbWl0AB4ETFNsaXBwYWdlIHByb3RlY3Rpb25YUHJvdG9jb2xGZWVOb3RDb25zdW1lZAAfBKRFeHRyYSBwcm90b2NvbCBmZWUgaGFzIG5vdCBiZWVuIGNvbnN1bWVkLkRNYXhTbGlwRmVlVG9vSGlnaAAgBORTbGlwIGZlZSBjb25maWd1cmF0aW9uIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbWF4aW11bSAoNTAlKS44SW52YXJpYW50RXJyb3IAIQT0SW52YXJpYW50IGNoZWNrIGZhaWxlZCBpbnNpZGUgYSB0cmFkZSBvciBsaXF1aWRpdHkgb3BlcmF0aW9uLmRJbnZhbGlkT21uaXBvb2xIdWJSZXNlcnZlACIIPQFIdWIgYXNzZXQgZnJlZSBiYWxhbmNlIGluIHRoZSBwcm90b2NvbCBhY2NvdW50IGlzIGxlc3MgdGhhbiB0aGUgc3VtIG9mIHJlY29yZGVkSQFhc3NldCBodWIgcmVzZXJ2ZXMuIEluZGljYXRlcyBjb3JydXB0ZWQgaHViLWFzc2V0IGFjY291bnRpbmc7IHNob3VsZCBuZXZlciBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnELAAAECHULdQsAdQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAB5CwxgcGFsbGV0X3RyYW5zYWN0aW9uX3BhdXNlGHBhbGxldBRFcnJvcgQEVAABDCxDYW5ub3RQYXVzZQAABDRjYW4gbm90IHBhdXNlQEludmFsaWRDaGFyYWN0ZXIAAQRoaW52YWxpZCBjaGFyYWN0ZXIgZW5jb2RpbmcsTmFtZVRvb0xvbmcAAgSgcGFsbGV0IG5hbWUgb3IgZnVuY3Rpb24gbmFtZSBpcyB0b28gbG9uZwSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC59Cww0cGFsbGV0X2R1c3RlchhwYWxsZXQURXJyb3IEBFQAARhIQWNjb3VudFdoaXRlbGlzdGVkAAAEhEFjY291bnQgaXMgZXhjbHVkZWQgZnJvbSBkdXN0aW5nLlRBY2NvdW50Tm90V2hpdGVsaXN0ZWQAAQTAQWNjb3VudCBpcyBub3QgcHJlc2VudCBpbiB0aGUgbm9uLWR1c3RhYmxlIGxpc3QuLFplcm9CYWxhbmNlAAIEUFRoZSBiYWxhbmNlIGlzIHplcm8uOE5vblplcm9CYWxhbmNlAAMEqQFUaGUgYmFsYW5jZSB3YXMgbm90IGZ1bGx5IGR1c3RlZCwgdGhlcmUgaXMgc29tZSBsZWZ0b3ZlciBvbiB0aGUgYWNjb3VudC4gTm9ybWFsbHksIGl0IHNob3VsZCBuZXZlciBoYXBwZW4uREJhbGFuY2VTdWZmaWNpZW50AAQEvFRoZSBiYWxhbmNlIGlzIHN1ZmZpY2llbnQgdG8ga2VlcCBhY2NvdW50IG9wZW4uUFJlc2VydmVBY2NvdW50Tm90U2V0AAUEbFJlc2VydmUgYWNjb3VudCBpcyBub3Qgc2V0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6BCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4R2xvYmFsRmFybURhdGEIBFQABEkAAEgBCGlkKAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASh1cGRhdGVkX2F0KAEsUGVyaW9kT2Y8VD4AATh0b3RhbF9zaGFyZXNfekABHEJhbGFuY2UAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAE8cGVuZGluZ19yZXdhcmRzQAEcQmFsYW5jZQABYGFjY3VtdWxhdGVkX3BhaWRfcmV3YXJkc0ABHEJhbGFuY2UAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzKAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAFIaW5jZW50aXZpemVkX2Fzc2V0KAEoVDo6QXNzZXRJZAABVG1heF9yZXdhcmRfcGVyX3BlcmlvZEABHEJhbGFuY2UAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVhsaXZlX3lpZWxkX2Zhcm1zX2NvdW50KAEMdTMyAAFcdG90YWxfeWllbGRfZmFybXNfY291bnQoAQx1MzIAAUBwcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAEUc3RhdGWFCwEkRmFybVN0YXRlAACFCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXMkRmFybVN0YXRlAAEMGEFjdGl2ZQAAABxTdG9wcGVkAAEAKFRlcm1pbmF0ZWQAAgAAiQsAAAQMKCgoAI0LDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczRZaWVsZEZhcm1EYXRhCARUAARJAAAwAQhpZCgBGEZhcm1JZAABKHVwZGF0ZWRfYXQoASxQZXJpb2RPZjxUPgABMHRvdGFsX3NoYXJlc0ABHEJhbGFuY2UAAUx0b3RhbF92YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATRsb3lhbHR5X2N1cnZlnQIBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAEUc3RhdGWFCwEkRmFybVN0YXRlAAE0ZW50cmllc19jb3VudBgBDHU2NAABSGxlZnRfdG9fZGlzdHJpYnV0ZUABHEJhbGFuY2UAATR0b3RhbF9zdG9wcGVkKAEsUGVyaW9kT2Y8VD4AAJELDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlcyxEZXBvc2l0RGF0YQgEVAAESQAADAEYc2hhcmVzQAEcQmFsYW5jZQABLGFtbV9wb29sX2lkKAEwVDo6QW1tUG9vbElkAAFIeWllbGRfZmFybV9lbnRyaWVzlQsB9EJvdW5kZWRWZWM8WWllbGRGYXJtRW50cnk8VCwgST4sIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AAJULDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBmQsEUwAABACdCwEYVmVjPFQ+AACZCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4WWllbGRGYXJtRW50cnkIBFQABEkAACABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAE0dmFsdWVkX3NoYXJlc0ABHEJhbGFuY2UAAUBhY2N1bXVsYXRlZF9ycHZzVAEkRml4ZWRVMTI4AAFsYWNjdW11bGF0ZWRfY2xhaW1lZF9yZXdhcmRzQAEcQmFsYW5jZQABKGVudGVyZWRfYXQoASxQZXJpb2RPZjxUPgABKHVwZGF0ZWRfYXQoASxQZXJpb2RPZjxUPgABTHN0b3BwZWRfYXRfY3JlYXRpb24oASxQZXJpb2RPZjxUPgAAnQsAAAKZCwChCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEVycm9yCARUAARJAAF0SEdsb2JhbEZhcm1Ob3RGb3VuZAAABGxHbG9iYWwgZmFybSBkb2VzIG5vdCBleGlzdC5EWWllbGRGYXJtTm90Rm91bmQAAQRoWWllbGQgZmFybSBkb2VzIG5vdCBleGlzdC5MRG91YmxlQ2xhaW1JblBlcmlvZAACBMhNdWx0aXBsZSBjbGFpbXMgaW4gdGhlIHNhbWUgcGVyaW9kIGlzIG5vdCBhbGxvd2VkLlxMaXF1aWRpdHlNaW5pbmdDYW5jZWxlZAADBHRMaXF1aWRpdHkgbWluaW5nIGlzIGNhbmNlbGVkLlxMaXF1aWRpdHlNaW5pbmdJc0FjdGl2ZQAEBIRMaXF1aWRpdHkgbWluaW5nIGlzIG5vdCBjYW5jZWxlZC5sTGlxdWlkaXR5TWluaW5nSXNOb3RTdG9wcGVkAAUEVQFMaXF1aWRpdHkgbWluaW5nIGlzIGluIGBhY3RpdmVgIG9yIGB0ZXJtaW5hdGVkYCBzdGF0ZSBhbmQgYWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQuJEZvcmJpZGRlbgAGBKRBY2NvdW50IGlzIG5vdCBhbGxvd2VkIHRvIHBlcmZvcm0gYWN0aW9uLkRJbnZhbGlkTXVsdGlwbGllcgAHBIRZaWVsZCBmYXJtIG11bHRpcGxpZXIgY2FuJ3QgYmUgMC5YWWllbGRGYXJtQWxyZWFkeUV4aXN0cwAIBAkBWWllbGQgZmFybSB3aXRoIGdpdmVuIGBhbW1fcG9vbF9pZGAgYWxyZWFkeSBleGlzdHMgaW4gZ2xvYmFsIGZhcm0ueEludmFsaWRJbml0aWFsUmV3YXJkUGVyY2VudGFnZQAJBD0BTG95YWx0eSBjdXJ2ZSdzIGluaXRpYWwgcmV3YXJkIHBlcmNlbnRhZ2UgaXMgbm90IHZhbGlkLiBWYWxpZCByYW5nZSBpczogWzAsIDEpLlBHbG9iYWxGYXJtSXNOb3RFbXB0eQAKBLRPbmUgb3IgbW9yZSB5aWVsZCBmYXJtcyBleGlzdCBpbiBnbG9iYWwgZmFybS5gTWlzc2luZ0luY2VudGl2aXplZEFzc2V0AAsE+EZhcm0ncyBgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBtaXNzaW5nIGluIHByb3ZpZGVkIGFzc2V0IHBhaXIuhEluc3VmZmljaWVudFJld2FyZEN1cnJlbmN5QmFsYW5jZQAMBKhSZXdhcmQgY3VycmVuY3kgYmFsYW5jZSBpcyBub3Qgc3VmZmljaWVudC5YSW52YWxpZEJsb2Nrc1BlclBlcmlvZAANBHRCbG9ja3MgcGVyIHBlcmlvZCBjYW4ndCBiZSAwLlRJbnZhbGlkWWllbGRQZXJQZXJpb2QADgRwWWllbGQgcGVyIHBlcmlvZCBjYW4ndCBiZSAwLkxJbnZhbGlkVG90YWxSZXdhcmRzAA8ExFRvdGFsIHJld2FyZHMgaXMgbGVzcyB0aGFuIGBNaW5Ub3RhbEZhcm1SZXdhcmRzYC50SW52YWxpZFBsYW5uZWRZaWVsZGluZ1BlcmlvZHMAEAQJAVBsYW5uZWQgeWllbGRpbmcgcGVyaW9kcyBpcyBsZXNzIHRoYW4gYE1pblBsYW5uZWRZaWVsZGluZ1BlcmlvZHNgLlBNYXhFbnRyaWVzUGVyRGVwb3NpdAARBLBNYXhpbXVtIG51bWJlciBvZiBsb2NrcyByZWFjaGVkIGZvciBkZXBvc2l0LihEb3VibGVMb2NrABIE4FRyeWluZyB0byBsb2NrIExQIHNoYXJlcyBpbnRvIGFscmVhZHkgbG9ja2VkIHlpZWxkIGZhcm0uWFlpZWxkRmFybUVudHJ5Tm90Rm91bmQAEwTEWWllbGQgZmFybSBlbnRyeSBkb2Vzbid0IGV4aXN0IGZvciBnaXZlbiBkZXBvc2l0LkBHbG9iYWxGYXJtSXNGdWxsABQISQFNYXggbnVtYmVyIG9mIHlpZWxkIGZhcm1zIGluIGdsb2JhbCBmYXJtIHdhcyByZWFjaGVkLiBHbG9iYWwgZmFybSBjYW4ndCBhY2NlcHQgbmV3+HlpZWxkIGZhcm1zIHVudGlsIHNvbWUgeWllbGQgZmFybSBpcyBub3QgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuREludmFsaWRNaW5EZXBvc2l0ABUEtEludmFsaWQgbWluLiBkZXBvc2l0IHdhcyBzZXQgZm9yIGdsb2JhbCBmYXJtLlhJbnZhbGlkUHJpY2VBZGp1c3RtZW50ABYEnFByaWNlIGFkanVzdG1lbnQgbXVsdGlwbGllciBjYW4ndCBiZSAwLkRFcnJvckdldEFjY291bnRJZAAXBIBBY2NvdW50IGNyZWF0aW9uIGZyb20gaWQgZmFpbGVkLlRJbmNvcnJlY3RWYWx1ZWRTaGFyZXMAGAQlAVZhbHVlIG9mIGRlcG9zaXRlZCBzaGFyZXMgYW1vdW50IGluIHJld2FyZCBjdXJyZW5jeSBpcyBiZWxsb3cgbWluLiBsaW1pdC5sUmV3YXJkQ3VycmVuY3lOb3RSZWdpc3RlcmVkABkE2GByZXdhcmRfY3VycmVuY3lgIGlzIG5vdCByZWdpc3RlcmVkIGluIGFzc2V0IHJlZ2lzdHJ5LnhJbmNlbnRpdml6ZWRBc3NldE5vdFJlZ2lzdGVyZWQAGgTkYGluY2VudGl2aXplZF9hc3NldGAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkuREFtbVBvb2xJZE1pc21hdGNoABsE9FByb3ZpZGVkIGBhbW1fcG9vbF9pZGAgZG9lc24ndCBtYXRjaCBkZXBvc2l0J3MgYGFtbV9wb29sX2lkYC5ESW5jb25zaXN0ZW50U3RhdGUEAKULAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yABwIZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQupQsMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldFhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAFERFlpZWxkRmFybU5vdEZvdW5kAAAASEdsb2JhbEZhcm1Ob3RGb3VuZAABAFBMaXF1aWRpdHlJc05vdEFjdGl2ZQACAFRHbG9iYWxGYXJtSXNOb3RBY3RpdmUAAwA8RGVwb3NpdE5vdEZvdW5kAAQANEludmFsaWRQZXJpb2QABQBsTm90RW5vdWdoUmV3YXJkc0luWWllbGRGYXJtAAYAZEludmFsaWRMaXZlWWllbEZhcm1zQ291bnQABwBsSW52YWxpZFRvdGFsWWllbGRGYXJtc0NvdW50AAgAcEludmFsaWRZaWVsZEZhcm1FbnRyaWVzQ291bnQACQBISW52YWxpZFRvdGFsU2hhcmVzAAoATEludmFsaWRWYWx1ZWRTaGFyZXMACwBMSW52YWxpZFRvdGFsU2hhcmVzWgAMAHRJbnZhbGlkUGFpZEFjY3VtdWxhdGVkUmV3YXJkcwANADRJbnZhbGlkRmFybUlkAA4AYEludmFsaWRMb3lhbHR5TXVsdGlwbGllcgAPAHBOb0V4aXN0ZW50aWFsRGVwb3NpdEZvckFzc2V0ABAAAKkLDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IEBFQAASQ0QXNzZXROb3RGb3VuZAAABHRBc3NldCBpcyBub3QgaW4gdGhlIG9tbmlwb29sLiRGb3JiaWRkZW4AAQSsU2lnbmVkIGFjY291bnQgaXMgbm90IG93bmVyIG9mIHRoZSBkZXBvc2l0LkhaZXJvQ2xhaW1lZFJld2FyZHMAAgRcUmV3YXJkcyB0byBjbGFpbSBhcmUgMC5ESW5jb25zaXN0ZW50U3RhdGUEAK0LAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAMIZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy5IT3JhY2xlTm90QXZhaWxhYmxlAAQEvE9yYWNsZSBjb3VsZCBub3QgYmUgZm91bmQgZm9yIHJlcXVlc3RlZCBhc3NldHMubFByaWNlQWRqdXN0bWVudE5vdEF2YWlsYWJsZQAFBDEBT3JhY2xlIHByb3ZpZGluZyBgcHJpY2VfYWRqdXN0bWVudGAgY291bGQgbm90IGJlIGZvdW5kIGZvciByZXF1ZXN0ZWQgYXNzZXRzLlhOb0Zhcm1FbnRyaWVzU3BlY2lmaWVkAAYEaE5vIGZhcm1zIHNwZWNpZmllZCB0byBqb2luRE5vQXNzZXRzU3BlY2lmaWVkAAcElE5vIGFzc2V0cyBzcGVjaWZpZWQgaW4gdGhlIHdpdGhkcmF3YWxIUG9zaXRpb25JZE1pc21hdGNoAAgEKQFUaGUgcHJvdmlkZWQgcG9zaXRpb25faWQgZG9lcyBub3QgbWF0Y2ggdGhlIGRlcG9zaXQncyBhc3NvY2lhdGVkIHBvc2l0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6tCwyAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0WEluY29uc2lzdGVudFN0YXRlRXJyb3IAAQhETWlzc2luZ0xwUG9zaXRpb24AAABMRGVwb3NpdERhdGFOb3RGb3VuZAABAACxCwgocGFsbGV0X290YxRPcmRlcggkQWNjb3VudElkAQAcQXNzZXRJZAEoABgBFG93bmVyAAEkQWNjb3VudElkAAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABSHBhcnRpYWxseV9maWxsYWJsZUQBEGJvb2wAALULDChwYWxsZXRfb3RjGHBhbGxldBRFcnJvcgQEVAABIEhBc3NldE5vdFJlZ2lzdGVyZWQAAASAQXNzZXQgZG9lcyBub3QgZXhpc3QgaW4gcmVnaXN0cnk0T3JkZXJOb3RGb3VuZAABBFRPcmRlciBjYW5ub3QgYmUgZm91bmRET3JkZXJJZE91dE9mQm91bmQAAgSIU2l6ZSBvZiBvcmRlciBJRCBleGNlZWRzIHRoZSBib3VuZGRPcmRlck5vdFBhcnRpYWxseUZpbGxhYmxlAAME+ENhbm5vdCBwYXJ0aWFsbHkgZmlsbCBhbiBvcmRlciB3aGljaCBpcyBub3QgcGFydGlhbGx5IGZpbGxhYmxlTE9yZGVyQW1vdW50VG9vU21hbGwABAxhAU9yZGVyIGFtb3VudF9pbiBhbmQgYW1vdW50X291dCBtdXN0IGF0IGFsbCB0aW1lcyBiZSBncmVhdGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXT0Zm9yIHRoZSBhc3NldCBtdWx0aXBsaWVkIGJ5IHRoZSBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyLvBBIGZpbGwgb3JkZXIgbWF5IG5vdCBsZWF2ZSBiZWhpbmQgYW1vdW50cyBzbWFsbGVyIHRoYW4gdGhpcy4kTWF0aEVycm9yAAUEcEVycm9yIHdpdGggbWF0aCBjYWxjdWxhdGlvbnMkRm9yYmlkZGVuAAYE6FRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGNvbXBsZXRlIHRoZSBhY3Rpb25oSW5zdWZmaWNpZW50UmVzZXJ2ZWRBbW91bnQABwR8UmVzZXJ2ZWQgYW1vdW50IG5vdCBzdWZmaWNpZW50LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC65CwhYcGFsbGV0X2NpcmN1aXRfYnJlYWtlckBUcmFkZVZvbHVtZUxpbWl0BARUAAAMASR2b2x1bWVfaW5AAShUOjpCYWxhbmNlAAEodm9sdW1lX291dEABKFQ6OkJhbGFuY2UAARRsaW1pdEABKFQ6OkJhbGFuY2UAAL0LCFhwYWxsZXRfY2lyY3VpdF9icmVha2VyOExpcXVpZGl0eUxpbWl0BARUAAAIASRsaXF1aWRpdHlAAShUOjpCYWxhbmNlAAEUbGltaXRAAShUOjpCYWxhbmNlAADBCwxYcGFsbGV0X2NpcmN1aXRfYnJlYWtlchR0eXBlczhMb2NrZG93blN0YXR1cwgsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAUABCBhMb2NrZWQEACgBLEJsb2NrTnVtYmVyAAAAIFVubG9ja2VkBAA9AwFYKEJsb2NrTnVtYmVyLCBCYWxhbmNlKQABAADFCwAABAhAGADJCwxYcGFsbGV0X2NpcmN1aXRfYnJlYWtlchhwYWxsZXQURXJyb3IEBFQAATRESW52YWxpZExpbWl0VmFsdWUAAATISW52YWxpZCB2YWx1ZSBmb3IgYSBsaW1pdC4gTGltaXQgbXVzdCBiZSBub24temVyby58TGlxdWlkaXR5TGltaXROb3RTdG9yZWRGb3JBc3NldAABBLxBbGxvd2VkIGxpcXVpZGl0eSBsaW1pdCBpcyBub3Qgc3RvcmVkIGZvciBhc3NldGBUb2tlbk91dGZsb3dMaW1pdFJlYWNoZWQAAgS4VG9rZW4gdHJhZGUgb3V0ZmxvdyBwZXIgYmxvY2sgaGFzIGJlZW4gcmVhY2hlZFxUb2tlbkluZmx1eExpbWl0UmVhY2hlZAADBLRUb2tlbiB0cmFkZSBpbmZsdXggcGVyIGJsb2NrIGhhcyBiZWVuIHJlYWNoZWSATWF4TGlxdWlkaXR5TGltaXRQZXJCbG9ja1JlYWNoZWQABATkTWF4aW11bSBwb29sJ3MgbGlxdWlkaXR5IGxpbWl0IHBlciBibG9jayBoYXMgYmVlbiByZWFjaGVkKE5vdEFsbG93ZWQABQSQQXNzZXQgaXMgbm90IGFsbG93ZWQgdG8gaGF2ZSBhIGxpbWl0PEFzc2V0SW5Mb2NrZG93bgAGDDkBQXNzZXQgc3RpbGwgaW4gbG9ja2Rvd24gYXMgaXQgcmVhY2hlZCB0aGUgYWxsb3dlZCBkZXBvc2l0IGxpbWl0IGZvciB0aGUgcGVyaW9kcQFRdWVyeSB0aGUgYGFzc2V0X2xvY2tkb3duX3N0YXRlYCBzdG9yYWdlIHRvIGRldGVybWluZSB1bnRpbCB3aGljaCBibG9jayB0aGUgYXNzZXQgaXMgbG9ja2VkLLhzbyB0aGF0IHRoZSBkZXBvc2l0IGNhbiBiZSByZWxlYXNlZCBhZnRlcndhcmQuSEFzc2V0Tm90SW5Mb2NrZG93bgAHBGhBc3NldCBpcyBub3QgaW4gYSBsb2NrZG93bjRJbnZhbGlkQW1vdW50AAgEeEludmFsaWQgYW1vdW50IHRvIHNhdmUgZGVwb3NpdKREZXBvc2l0TGltaXRFeGNlZWRlZEZvcldoaXRlbGlzdGVkQWNjb3VudAAJCOhEZXBvc2l0IGxpbWl0IHdvdWxkIGJlIGV4Y2VlZGVkIGZvciBhIHdoaXRlbGlzdGVkIGFjY291bnQuEQFPcGVyYXRpb24gcmVqZWN0ZWQgdG8gcHJldmVudCBmdW5kcyBiZWluZyBsb2NrZWQgb24gc3lzdGVtIGFjY291bnRzLlhXaXRoZHJhd0xvY2tkb3duQWN0aXZlAAoEbQFHbG9iYWwgbG9ja2Rvd24gaXMgYWN0aXZlIGFuZCB3aXRoZHJhd2FscyB0aGF0IHBhcnRpY2lwYXRlIGluIHRoZSBnbG9iYWwgbGltaXQgYXJlIGJsb2NrZWQubEdsb2JhbFdpdGhkcmF3TGltaXRFeGNlZWRlZAALBLUBQXBwbHlpbmcgdGhlIGluY3JlbWVudCB3b3VsZCBleGNlZWQgdGhlIGNvbmZpZ3VyZWQgZ2xvYmFsIGxpbWl0IC0+IGxvY2tkb3duIGlzIHRyaWdnZXJlZCBhbmQgb3BlcmF0aW9uIGZhaWxzLlBGYWlsZWRUb0NvbnZlcnRBc3NldAAMBPBBc3NldCB0byB3aXRoZHJhdyBjYW5ub3QgYmUgY29udmVydGVkIHRvIHJlZmVyZW5jZSBjdXJyZW5jeS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuzQsMVHBhbGxldF9yb3V0ZV9leGVjdXRvchhwYWxsZXQURXJyb3IEBFQAAShMVHJhZGluZ0xpbWl0UmVhY2hlZAAABIhUaGUgdHJhZGluZyBsaW1pdCBoYXMgYmVlbiByZWFjaGVkRE1heFRyYWRlc0V4Y2VlZGVkAAEEtFRoZSB0aGUgbWF4IG51bWJlciBvZiB0cmFkZXMgbGltaXQgaXMgcmVhY2hlZEBQb29sTm90U3VwcG9ydGVkAAIEyFRoZSBBTU0gcG9vbCBpcyBub3Qgc3VwcG9ydGVkIGZvciBleGVjdXRpbmcgdHJhZGVzTEluc3VmZmljaWVudEJhbGFuY2UAAwTQVGhlIHVzZXIgaGFzIG5vdCBlbm91Z2ggYmFsYW5jZSB0byBleGVjdXRlIHRoZSB0cmFkZVhSb3V0ZUNhbGN1bGF0aW9uRmFpbGVkAAQEDQFUaGUgY2FsY3VsYXRpb24gb2Ygcm91dGUgdHJhZGUgYW1vdW50cyBmYWlsZWQgaW4gdGhlIHVuZGVybHlpbmcgQU1NMEludmFsaWRSb3V0ZQAFBFBUaGUgcm91dGUgaXMgaW52YWxpZGhSb3V0ZVVwZGF0ZUlzTm90U3VjY2Vzc2Z1bAAGBIxUaGUgcm91dGUgdXBkYXRlIHdhcyBub3Qgc3VjY2Vzc2Z1bEBSb3V0ZUhhc05vT3JhY2xlAAcEtFJvdXRlIGNvbnRhaW5zIGFzc2V0cyB0aGF0IGhhcyBubyBvcmFjbGUgZGF0YVRJbnZhbGlkUm91dGVFeGVjdXRpb24ACATAVGhlIHJvdXRlIGV4ZWN1dGlvbiBmYWlsZWQgaW4gdGhlIHVuZGVybHlpbmcgQU1NKE5vdEFsbG93ZWQACQSMVHJhZGluZyBzYW1lIGFzc2V0cyBpcyBub3QgYWxsb3dlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu0QsMTHBhbGxldF9keW5hbWljX2ZlZXMUdHlwZXMgRmVlRW50cnkIDEZlZQF1AhRCbG9jawEoAAwBJGFzc2V0X2ZlZXUCAQxGZWUAATBwcm90b2NvbF9mZWV1AgEMRmVlAAEkdGltZXN0YW1wKAEUQmxvY2sAANULDExwYWxsZXRfZHluYW1pY19mZWVzGHBhbGxldBRFcnJvcgQEVAABBFBJbnZhbGlkRmVlUGFyYW1ldGVycwAABHxJbnZhbGlkIGZlZSBwYXJhbWV0ZXJzIHByb3ZpZGVkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkLDDhwYWxsZXRfc3Rha2luZxR0eXBlcyxTdGFraW5nRGF0YQAADAEsdG90YWxfc3Rha2VAARxCYWxhbmNlAAFwYWNjdW11bGF0ZWRfcmV3YXJkX3Blcl9zdGFrZVQBJEZpeGVkVTEyOAABUHBvdF9yZXNlcnZlZF9iYWxhbmNlQAEcQmFsYW5jZQAA3QsMOHBhbGxldF9zdGFraW5nFHR5cGVzIFBvc2l0aW9uBCxCbG9ja051bWJlcgEoABwBFHN0YWtlQAEcQmFsYW5jZQABNGFjdGlvbl9wb2ludHNAARRQb2ludAABQHJld2FyZF9wZXJfc3Rha2VUASRGaXhlZFUxMjgAAShjcmVhdGVkX2F0KAEsQmxvY2tOdW1iZXIAAWBhY2N1bXVsYXRlZF9zbGFzaF9wb2ludHNAARRQb2ludAABaGFjY3VtdWxhdGVkX3VucGFpZF9yZXdhcmRzQAEcQmFsYW5jZQABaGFjY3VtdWxhdGVkX2xvY2tlZF9yZXdhcmRzQAEcQmFsYW5jZQAA4QsMOHBhbGxldF9zdGFraW5nFHR5cGVzGFZvdGluZwQgTWF4Vm90ZXMAAAQBFHZvdGVz5QsBtEJvdW5kZWRWZWM8KFJlZmVyZW5kdW1JbmRleCwgVm90ZSksIE1heFZvdGVzPgAA5QsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHpCwRTAAAEAPULARhWZWM8VD4AAOkLAAAECCjtCwDtCww4cGFsbGV0X3N0YWtpbmcUdHlwZXMQVm90ZQAACAEYYW1vdW50QAEcQmFsYW5jZQABKGNvbnZpY3Rpb27xCwEoQ29udmljdGlvbgAA8QsMOHBhbGxldF9zdGFraW5nFHR5cGVzKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAAD1CwAAAukLAPkLAAAECAAoAP0LDDhwYWxsZXRfc3Rha2luZxhwYWxsZXQURXJyb3IEBFQAATxMSW5zdWZmaWNpZW50QmFsYW5jZQAABExCYWxhbmNlIGlzIHRvbyBsb3cuREluc3VmZmljaWVudFN0YWtlAAEEZFN0YWtlZCBhbW91bnQgaXMgdG9vIGxvdy5AUG9zaXRpb25Ob3RGb3VuZAACBJBTdGFraW5nIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBmb3VuZC48TWF4Vm90ZXNSZWFjaGVkAAME6E1heGltdW0gYW1vdW50IG9mIHZvdGVzIHdlcmUgcmVhY2hlZCBmb3Igc3Rha2luZyBwb3NpdGlvbi44Tm90SW5pdGlhbGl6ZWQABARsU3Rha2luZyBpcyBub3QgaW5pdGlhbGl6ZWQuSEFscmVhZHlJbml0aWFsaXplZAAFBHxTdGFraW5nIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuKEFyaXRobWV0aWMABgREQXJpdGhtZXRpYyBlcnJvci5ETWlzc2luZ1BvdEJhbGFuY2UABwRYUG90J3MgYmFsYW5jZSBpcyB6ZXJvLlRQb3NpdGlvbkFscmVhZHlFeGlzdHMACASIQWNjb3VudCdzIHBvc2l0aW9uIGFscmVhZHkgZXhpc3RzLiRGb3JiaWRkZW4ACQS8U2lnbmVyIGlzIG5vdCBhbiBvd25lciBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbi40RXhpc3RpbmdWb3RlcwAKBIxQb3NpdGlvbiBjb250YWlucyByZWdpc3RlcmVkIHZvdGVzLlhFeGlzdGluZ1Byb2Nlc3NlZFZvdGVzAAsEhQFQb3NpdGlvbiBjb250YWlucyBwcm9jZXNzZWQgdm90ZXMuIFJlbW92ZWQgdGhlc2Ugdm90ZXMgZmlyc3QgYmVmb3JlIGluY3JlYXNpbmcgc3Rha2Ugb3IgY2xhaW1pbmcuSEFjdGl2ZVZvdGVzT25nb2luZwAMDBEBUmV0YWluZWQgZm9yIEFQSS9lcnJvci1pbmRleCBzdGFiaWxpdHkuIE5vIGxvbmdlciBlbWl0dGVkOiBtaWdyYXRpb24dAShgZm9yY2VfdW5zdGFrZWApIG5vdyByZWZ1c2VzIGFueSByZWdpc3RlcmVkIHZvdGUgd2l0aCBgRXhpc3RpbmdWb3Rlc2AssG1hdGNoaW5nIHRoZSByZWd1bGFyIGB1bnN0YWtlYCBwcmVjb25kaXRpb24uVEJsb2NrZWRCeUV4dGVybmFsTG9jawANDPBDYWxsZXIncyBIRFggaXMgY2xhaW1lZCBieSBhbm90aGVyIHBhbGxldCAoZS5nLiBgZ2hkeGxvY2tgKS4NAVN0cmljdCBwb2xpY3k6IGxlZ2FjeSBzdGFraW5nIHJlZnVzZXMgYW55IEhEWCBiYWNraW5nIHRoYXQgb3ZlcmxhcHOYd2l0aCBhIG5vbi13aGl0ZWxpc3RlZCBsb2NrIGVsc2V3aGVyZS5ESW5jb25zaXN0ZW50U3RhdGUEAAEMAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAA4IZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuAQwMOHBhbGxldF9zdGFraW5nGHBhbGxldFhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAEUQFBvc2l0aW9uTm90Rm91bmQAAABYTmVnYXRpdmVQZW5kaW5nUmV3YXJkcwABAFROZWdhdGl2ZVVucGFpZFJld2FyZHMAAgBAVG9vTWFueVBvc2l0aW9ucwADAChBcml0aG1ldGljAAQAAAUMDERwYWxsZXRfc3RhYmxlc3dhcBR0eXBlcyBQb29sSW5mbwgcQXNzZXRJZAEoLEJsb2NrTnVtYmVyASgAGAEYYXNzZXRzDQMBxEJvdW5kZWRWZWM8QXNzZXRJZCwgQ29uc3RVMzI8TUFYX0FTU0VUU19JTl9QT09MPj4AAVRpbml0aWFsX2FtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABTGZpbmFsX2FtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABNGluaXRpYWxfYmxvY2soASxCbG9ja051bWJlcgABLGZpbmFsX2Jsb2NrKAEsQmxvY2tOdW1iZXIAAQxmZWV1AgEcUGVybWlsbAAACQwMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzMFBvb2xTbmFwc2hvdAQcQXNzZXRJZAEoABwBGGFzc2V0cw0DAcRCb3VuZGVkVmVjPEFzc2V0SWQsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAEgcmVzZXJ2ZXMNDAHYQm91bmRlZFZlYzxBc3NldFJlc2VydmUsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAE0YW1wbGlmaWNhdGlvbkABEHUxMjgAAQxmZWV1AgEcUGVybWlsbAABJGJsb2NrX2ZlZXUCARxQZXJtaWxsAAEQcGVnc/EHAcRCb3VuZGVkVmVjPFBlZ1R5cGUsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAE4c2hhcmVfaXNzdWFuY2VAARxCYWxhbmNlAAANDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAREMBFMAAAQAFQwBGFZlYzxUPgAAEQwQNGh5ZHJhX2R4X21hdGgoc3RhYmxlc3dhcBR0eXBlczBBc3NldFJlc2VydmUAAAgBGGFtb3VudEABHEJhbGFuY2UAASBkZWNpbWFscwgBCHU4AAAVDAAAAhEMABkMBDhSYW5nZUluY2x1c2l2ZQQMSWR4AeUHAAgBFHN0YXJ05QcBDElkeAABDGVuZOUHAQxJZHgAAB0MDERwYWxsZXRfc3RhYmxlc3dhcBhwYWxsZXQURXJyb3IEBFQAAXw8SW5jb3JyZWN0QXNzZXRzAAAEGQFDcmVhdGluZyBhIHBvb2wgd2l0aCBzYW1lIGFzc2V0cyBvciBsZXNzIHRoYW4gMiBhc3NldHMgaXMgbm90IGFsbG93ZWQuRE1heEFzc2V0c0V4Y2VlZGVkAAEErE1heGltdW0gbnVtYmVyIG9mIGFzc2V0cyBoYXMgYmVlbiBleGNlZWRlZC4wUG9vbE5vdEZvdW5kAAIEoEEgcG9vbCB3aXRoIGdpdmVuIGFzc2V0cyBkb2VzIG5vdCBleGlzdC4oUG9vbEV4aXN0cwADBKBBIHBvb2wgd2l0aCBnaXZlbiBhc3NldHMgYWxyZWFkeSBleGlzdHMuOEFzc2V0Tm90SW5Qb29sAAQEZEFzc2V0IGlzIG5vdCBpbiB0aGUgcG9vbC5cU2hhcmVBc3NldE5vdFJlZ2lzdGVyZWQABQSoU2hhcmUgYXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gUmVnaXN0cnkuWFNoYXJlQXNzZXRJblBvb2xBc3NldHMABgTIU2hhcmUgYXNzZXQgaXMgYW1vdW50IGFzc2V0cyB3aGVuIGNyZWF0aW5nIGEgcG9vbC5IQXNzZXROb3RSZWdpc3RlcmVkAAcE2E9uZSBvciBtb3JlIGFzc2V0cyBhcmUgbm90IHJlZ2lzdGVyZWQgaW4gQXNzZXRSZWdpc3RyeUhJbnZhbGlkQXNzZXRBbW91bnQACAQBAUludmFsaWQgYXNzZXQgYW1vdW50IHByb3ZpZGVkLiBBbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby5MSW5zdWZmaWNpZW50QmFsYW5jZQAJBORCYWxhbmNlIG9mIGFuIGFzc2V0IGlzIG5vdCBzdWZmaWNpZW50IHRvIHBlcmZvcm0gYSB0cmFkZS5ISW5zdWZmaWNpZW50U2hhcmVzAAoEBQFCYWxhbmNlIG9mIGEgc2hhcmUgYXNzZXQgaXMgbm90IHN1ZmZpY2llbnQgdG8gd2l0aGRyYXcgbGlxdWlkaXR5LlRJbnN1ZmZpY2llbnRMaXF1aWRpdHkACwS8TGlxdWlkaXR5IGhhcyBub3QgcmVhY2hlZCB0aGUgcmVxdWlyZWQgbWluaW11bS54SW5zdWZmaWNpZW50TGlxdWlkaXR5UmVtYWluaW5nAAwE5Eluc3VmZmljaWVudCBsaXF1aWRpdHkgbGVmdCBpbiB0aGUgcG9vbCBhZnRlciB3aXRoZHJhd2FsLmRJbnN1ZmZpY2llbnRUcmFkaW5nQW1vdW50AA0E6EFtb3VudCBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gdHJhZGluZyBhbW91bnQgY29uZmlndXJlZC5IQnV5TGltaXROb3RSZWFjaGVkAA4EwE1pbmltdW0gbGltaXQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgZHVyaW5nIHRyYWRlLkRTZWxsTGltaXRFeGNlZWRlZAAPBLRNYXhpbXVtIGxpbWl0IGhhcyBiZWVuIGV4Y2VlZGVkIGR1cmluZyB0cmFkZS5cSW52YWxpZEluaXRpYWxMaXF1aWRpdHkAEAScSW5pdGlhbCBsaXF1aWRpdHkgb2YgYXNzZXQgbXVzdCBiZSA+IDAuUEludmFsaWRBbXBsaWZpY2F0aW9uABEEqEFtcGxpZmljYXRpb24gaXMgb3V0c2lkZSBjb25maWd1cmVkIHJhbmdlLmBJbnN1ZmZpY2llbnRTaGFyZUJhbGFuY2UAEgQZAVJlbWFpbmluZyBiYWxhbmNlIG9mIHNoYXJlIGFzc2V0IGlzIGJlbG93IGFzc2V0J3MgZXhpc3RlbnRpYWwgZGVwb3NpdC4oTm90QWxsb3dlZAATBMxOb3QgYWxsb3dlZCB0byBwZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiBnaXZlbiBhc3NldC4kUGFzdEJsb2NrABQEjEZ1dHVyZSBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuRFNhbWVBbXBsaWZpY2F0aW9uABUExE5ldyBhbXBsaWZpY2F0aW9uIGlzIGVxdWFsIHRvIHRoZSBwcmV2aW91cyB2YWx1ZS40U2xpcHBhZ2VMaW1pdAAWBFBTbGlwcGFnZSBwcm90ZWN0aW9uLjxVbmtub3duRGVjaW1hbHMAFwSIRmFpbGVkIHRvIHJldHJpZXZlIGFzc2V0IGRlY2ltYWxzLlBJbmNvcnJlY3RJbml0aWFsUGVncwAYBIxMaXN0IG9mIHByb3ZpZGVkIHBlZ3MgaXMgaW5jb3JyZWN0LlhNaXNzaW5nVGFyZ2V0UGVnT3JhY2xlABkEgEZhaWxlZCB0byByZXRyaWV2ZSBvcmFjbGUgZW50cnkuWEluY29ycmVjdEFzc2V0RGVjaW1hbHMAGgQlAUNyZWF0aW5nIHBvb2wgd2l0aCBwZWdzIGlzIG5vdCBhbGxvd2VkIGZvciBhc3NldCB3aXRoIGRpZmZlcmVudCBkZWNpbWFscy4sTm9QZWdTb3VyY2UAGwSMUG9vbCBkb2VzIG5vdCBoYXZlIHBlZ3MgY29uZmlndXJlZC40WmVyb0Ftb3VudE91dAAcBJhUcmFkZSB3b3VsZCByZXN1bHQgaW4gemVybyBhbW91bnQgb3V0LjBaZXJvQW1vdW50SW4AHQSUVHJhZGUgd291bGQgcmVzdWx0IGluIHplcm8gYW1vdW50IGluLjhJbnZhcmlhbnRFcnJvcgAeBPRJbnZhcmlhbnQgY2hlY2sgZmFpbGVkIGluc2lkZSBhIHRyYWRlIG9yIGxpcXVpZGl0eSBvcGVyYXRpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiEMAAAECCgYACUMDDBwYWxsZXRfYm9uZHMYcGFsbGV0FEVycm9yBARUAAEcNE5vdFJlZ2lzdGVyZWQAAARMQm9uZCBub3QgcmVnaXN0ZXJlZCROb3RNYXR1cmUAAQRIQm9uZCBpcyBub3QgbWF0dXJlPEludmFsaWRNYXR1cml0eQACBGBNYXR1cml0eSBub3QgbG9uZyBlbm91Z2g8RGlzYWxsb3dlZEFzc2V0AAMErEFzc2V0IHR5cGUgbm90IGFsbG93ZWQgZm9yIHVuZGVybHlpbmcgYXNzZXQ0QXNzZXROb3RGb3VuZAAEBKhBc3NldCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBgQXNzZXRSZWdpc3RyeWA8SW52YWxpZEJvbmROYW1lAAUEcEdlbmVyYXRlZCBuYW1lIGlzIG5vdCB2YWxpZC48RmFpbFRvUGFyc2VOYW1lAAYEmEJvbmQncyBuYW1lIHBhcnNpbmcgd2FzIG5vdyBzdWNjZXNzZnVsBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LikMDFhwYWxsZXRfb3RjX3NldHRsZW1lbnRzGHBhbGxldBRFcnJvcgQEVAABHDRPcmRlck5vdEZvdW5kAAAETE90YyBvcmRlciBub3QgZm91bmRQTm90UGFydGlhbGx5RmlsbGFibGUAAQSMT1RDIG9yZGVyIGlzIG5vdCBwYXJ0aWFsbHkgZmlsbGFibGUwSW52YWxpZFJvdXRlAAIEvFByb3ZpZGVkIHJvdXRlIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4aXN0aW5nIHJvdXRlUEJhbGFuY2VJbmNvbnNpc3RlbmN5AAMEnEluaXRpYWwgYW5kIGZpbmFsIGJhbGFuY2UgYXJlIGRpZmZlcmVudEhUcmFkZUFtb3VudFRvb0hpZ2gABASIVHJhZGUgYW1vdW50IGhpZ2hlciB0aGFuIG5lY2Vzc2FyeURUcmFkZUFtb3VudFRvb0xvdwAFBIRUcmFkZSBhbW91bnQgbG93ZXIgdGhhbiBuZWNlc3NhcnlEUHJpY2VOb3RBdmFpbGFibGUABgSIUHJpY2UgZm9yIGEgcm91dGUgaXMgbm90IGF2YWlsYWJsZQSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tDAwocGFsbGV0X2xicBhwYWxsZXQURXJyb3IEBFQAAVx4Q2Fubm90Q3JlYXRlUG9vbFdpdGhTYW1lQXNzZXRzAAAEfFBvb2wgYXNzZXRzIGNhbiBub3QgYmUgdGhlIHNhbWUgTm90T3duZXIAAQRsQWNjb3VudCBpcyBub3QgYSBwb29sIG93bmVyLFNhbGVTdGFydGVkAAIEUFNhbGUgYWxyZWFkeSBzdGFydGVkMFNhbGVOb3RFbmRlZAADBGRTYWxlIGlzIHN0aWxsIGluIHByb2dyZXNzQFNhbGVJc05vdFJ1bm5pbmcABARMU2FsZSBpcyBub3QgcnVubmluZ1xNYXhTYWxlRHVyYXRpb25FeGNlZWRlZAAFBGRTYWxlIGR1cmF0aW9uIGlzIHRvbyBsb25nWENhbm5vdEFkZFplcm9MaXF1aWRpdHkABgSgTGlxdWlkaXR5IGJlaW5nIGFkZGVkIHNob3VsZCBub3QgYmUgemVyb2BJbnN1ZmZpY2llbnRBc3NldEJhbGFuY2UABwRUQXNzZXQgYmFsYW5jZSB0b28gbG93MFBvb2xOb3RGb3VuZAAIBExQb29sIGRvZXMgbm90IGV4aXN0RFBvb2xBbHJlYWR5RXhpc3RzAAkEdFBvb2wgaGFzIGJlZW4gYWxyZWFkeSBjcmVhdGVkREludmFsaWRCbG9ja1JhbmdlAAoETEludmFsaWQgYmxvY2sgcmFuZ2VYV2VpZ2h0Q2FsY3VsYXRpb25FcnJvcgALBERDYWxjdWxhdGlvbiBlcnJvcjRJbnZhbGlkV2VpZ2h0AAwEaFdlaWdodCBzZXQgaXMgb3V0IG9mIHJhbmdlKFplcm9BbW91bnQADQSgQ2FuIG5vdCBwZXJmb3JtIGEgdHJhZGUgd2l0aCB6ZXJvIGFtb3VudEhNYXhJblJhdGlvRXhjZWVkZWQADgRgVHJhZGUgYW1vdW50IGlzIHRvbyBoaWdoTE1heE91dFJhdGlvRXhjZWVkZWQADwRgVHJhZGUgYW1vdW50IGlzIHRvbyBoaWdoQEZlZUFtb3VudEludmFsaWQAEARISW52YWxpZCBmZWUgYW1vdW50TFRyYWRpbmdMaW1pdFJlYWNoZWQAEQRUVHJhZGluZyBsaW1pdCByZWFjaGVkIE92ZXJmbG93ABIEnEFuIHVuZXhwZWN0ZWQgaW50ZWdlciBvdmVyZmxvdyBvY2N1cnJlZDxOb3RoaW5nVG9VcGRhdGUAEwRETm90aGluZyB0byB1cGRhdGVUSW5zdWZmaWNpZW50TGlxdWlkaXR5ABQEvExpcXVpZGl0eSBoYXMgbm90IHJlYWNoZWQgdGhlIHJlcXVpcmVkIG1pbmltdW0uZEluc3VmZmljaWVudFRyYWRpbmdBbW91bnQAFQSoQW1vdW50IGlzIGxlc3MgdGhhbiBtaW5pbXVtIHRyYWRpbmcgbGltaXQugEZlZUNvbGxlY3RvcldpdGhBc3NldEFscmVhZHlVc2VkABYEsE5vdCBtb3JlIHRoYW4gb25lIGZlZSBjb2xsZWN0b3IgcGVyIGFzc2V0IGlkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LjEMDChwYWxsZXRfeHlrGHBhbGxldBRFcnJvcgQEVAABXHhDYW5ub3RDcmVhdGVQb29sV2l0aFNhbWVBc3NldHMAAATcSXQgaXMgbm90IGFsbG93ZWQgdG8gY3JlYXRlIGEgcG9vbCBiZXR3ZWVuIHNhbWUgYXNzZXRzLlRJbnN1ZmZpY2llbnRMaXF1aWRpdHkAAQS8TGlxdWlkaXR5IGhhcyBub3QgcmVhY2hlZCB0aGUgcmVxdWlyZWQgbWluaW11bS5kSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAACBJhBbW91bnQgaXMgbGVzcyB0aGFuIG1pbiB0cmFkaW5nIGxpbWl0LjRaZXJvTGlxdWlkaXR5AAMESExpcXVpZGl0eSBpcyB6ZXJvLlhJbnZhbGlkTWludGVkTGlxdWlkaXR5AAQEIE92ZXJmbG93WEludmFsaWRMaXF1aWRpdHlBbW91bnQABQQgT3ZlcmZsb3dgQXNzZXRBbW91bnRFeGNlZWRlZExpbWl0AAYEmEFzc2V0IGFtb3VudCBoYXMgZXhjZWVkZWQgZ2l2ZW4gbGltaXQuaEFzc2V0QW1vdW50Tm90UmVhY2hlZExpbWl0AAcEpEFzc2V0IGFtb3VudCBoYXMgbm90IHJlYWNoZWQgZ2l2ZW4gbGltaXQuYEluc3VmZmljaWVudEFzc2V0QmFsYW5jZQAIBIBBc3NldCBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LnBJbnN1ZmZpY2llbnRQb29sQXNzZXRCYWxhbmNlAAkEnE5vdCBlbm91Z2ggYXNzZXQgbGlxdWlkaXR5IGluIHRoZSBwb29sLoRJbnN1ZmZpY2llbnROYXRpdmVDdXJyZW5jeUJhbGFuY2UACgSwTm90IGVub3VnaCBjb3JlIGFzc2V0IGxpcXVpZGl0eSBpbiB0aGUgcG9vbC5EVG9rZW5Qb29sTm90Rm91bmQACwS8TGlxdWlkaXR5IHBvb2wgZm9yIGdpdmVuIGFzc2V0cyBkb2VzIG5vdCBleGlzdC5YVG9rZW5Qb29sQWxyZWFkeUV4aXN0cwAMBLxMaXF1aWRpdHkgcG9vbCBmb3IgZ2l2ZW4gYXNzZXRzIGFscmVhZHkgZXhpc3RzLlRBZGRBc3NldEFtb3VudEludmFsaWQADQQgT3ZlcmZsb3dgUmVtb3ZlQXNzZXRBbW91bnRJbnZhbGlkAA4EIE92ZXJmbG93WFNlbGxBc3NldEFtb3VudEludmFsaWQADwQgT3ZlcmZsb3dUQnV5QXNzZXRBbW91bnRJbnZhbGlkABAEIE92ZXJmbG93QEZlZUFtb3VudEludmFsaWQAEQQgT3ZlcmZsb3dMTWF4T3V0UmF0aW9FeGNlZWRlZAASBBEBTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gYnV5IGluIHNpbmdsZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBleGNlZWRlZC5ITWF4SW5SYXRpb0V4Y2VlZGVkABMEFQFNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBleGNlZWRlZC4gT3ZlcmZsb3cAFAQgT3ZlcmZsb3dAQ2Fubm90Q3JlYXRlUG9vbAAVBLhQb29sIGNhbm5vdCBiZSBjcmVhdGVkIGR1ZSB0byBvdXRzaWRlIGZhY3RvcnMuNFNsaXBwYWdlTGltaXQAFgRQU2xpcHBhZ2UgcHJvdGVjdGlvbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuNQwAAAQITQNAADkMAAAECChNAwA9DAAABAwoQAAAQQwMQHBhbGxldF9yZWZlcnJhbHMYcGFsbGV0FEVycm9yBARUAAE4HFRvb0xvbmcAAARoUmVmZXJyYWwgY29kZSBpcyB0b28gbG9uZy4gVG9vU2hvcnQAAQRsUmVmZXJyYWwgY29kZSBpcyB0b28gc2hvcnQuQEludmFsaWRDaGFyYWN0ZXIAAgRNAVJlZmVycmFsIGNvZGUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIuIE9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQuNEFscmVhZHlFeGlzdHMAAwR0UmVmZXJyYWwgY29kZSBhbHJlYWR5IGV4aXN0cy4sSW52YWxpZENvZGUABAQhAVByb3ZpZGVkIHJlZmVycmFsIGNvZGUgaXMgaW52YWxpZC4gRWl0aGVyIGRvZXMgbm90IGV4aXN0IG9yIGlzIHRvbyBsb25nLjRBbHJlYWR5TGlua2VkAAUE2EFjY291bnQgaXMgYWxyZWFkeSBsaW5rZWQgdG8gYW5vdGhlciByZWZlcnJhbCBhY2NvdW50LihaZXJvQW1vdW50AAYEyE5vdGhpbmcgaW4gdGhlIHJlZmVycmFsIHBvdCBhY2NvdW50IGZvciB0aGUgYXNzZXQuOExpbmtOb3RBbGxvd2VkAAcE/ExpbmtpbmcgYW4gYWNjb3VudCB0byB0aGUgc2FtZSByZWZlcnJhbCBhY2NvdW50IGlzIG5vdCBhbGxvd2VkLmhJbmNvcnJlY3RSZXdhcmRDYWxjdWxhdGlvbgAIBJEBQ2FsY3VsYXRlZCByZXdhcmRzIGFyZSBtb3JlIHRoYW4gdGhlIGZlZSBhbW91bnQuIFRoaXMgY2FuIGhhcHBlbiBpZiBwZXJjZW50YWdlcyBhcmUgaW5jb3JyZWN0bHkgc2V0LmRJbmNvcnJlY3RSZXdhcmRQZXJjZW50YWdlAAkE7EdpdmVuIHJlZmVycmVyIGFuZCB0cmFkZXIgcGVyY2VudGFnZXMgZXhjZWVkcyAxMDAlIHBlcmNlbnQuREFscmVhZHlSZWdpc3RlcmVkAAoEqFRoZSBhY2NvdW50IGhhcyBhbHJlYWR5IGEgY29kZSByZWdpc3RlcmVkLjRQcmljZU5vdEZvdW5kAAsElFByaWNlIGZvciBnaXZlbiBhc3NldCBwYWlyIG5vdCBmb3VuZC6QQ29udmVyc2lvbk1pblRyYWRpbmdBbW91bnROb3RSZWFjaGVkAAwE7E1pbmltdW0gdHJhZGluZyBhbW91bnQgZm9yIGNvbnZlcnNpb24gaGFzIG5vdCBiZWVuIHJlYWNoZWQucENvbnZlcnNpb25aZXJvQW1vdW50UmVjZWl2ZWQADQSUWmVybyBhbW91bnQgcmVjZWl2ZWQgZnJvbSBjb252ZXJzaW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5FDAxIcGFsbGV0X2xpcXVpZGF0aW9uGHBhbGxldBRFcnJvcgQEVAABQFRBc3NldENvbnZlcnNpb25GYWlsZWQAAASgQXNzZXRJZCB0byBFVk0gYWRkcmVzcyBjb252ZXJzaW9uIGZhaWxlZFRMaXF1aWRhdGlvbkNhbGxGYWlsZWQAAQRcTGlxdWlkYXRpb24gY2FsbCBmYWlsZWQwSW52YWxpZFJvdXRlAAIEvFByb3ZpZGVkIHJvdXRlIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4aXN0aW5nIHJvdXRlNE5vdFByb2ZpdGFibGUAAwTkTGlxdWlkYXRpb24gd2FzIG5vdCBwcm9maXRhYmxlIGVub3VnaCB0byByZXBheSBmbGFzaCBsb2FuREZsYXNoTWludGVyTm90U2V0AAQEOQFGbGFzaCBtaW50ZXIgY29udHJhY3QgYWRkcmVzcyBub3Qgc2V0LiBJdCBpcyByZXF1aXJlZCBmb3IgSG9sbGFyIGxpcXVpZGF0aW9ucy5YSW52YWxpZExpcXVpZGF0aW9uRGF0YQAFBIRJbnZhbGlkIGxpcXVpZGF0aW9uIGRhdGEgcHJvdmlkZWRQVW5zdXBwb3J0ZWREZWJ0QXNzZXQABgS4R2lnYWhkeCBsaXF1aWRhdGlvbiBvbmx5IHN1cHBvcnRzIEhPTExBUiBkZWJ0LkROb0dpZ2FIZHhQb3NpdGlvbgAHBKBCb3Jyb3dlciBoYXMgbm8gYWN0aXZlIGdpZ2FoZHggcG9zaXRpb24uSFJlYWxpemVZaWVsZEZhaWxlZAAIBB0BUmVhbGl6aW5nIHRoZSBib3Jyb3dlcidzIGFjY3J1ZWQgZ2lnYWhkeCB5aWVsZCBiZWZvcmUgdGhlIHNlaXplIGZhaWxlZC5oTGlxdWlkYXRpb25BY2NvdW50Tm90Qm91bmQACQgNAVRoZSBnaWdhaGR4IGxpcXVpZGF0aW9uIGFjY291bnQgaXMgbm90IGJvdW5kIHRvIGl0cyBFVk0gYWRkcmVzcywgc28RAXRoZSBzZWl6ZWQgYVRva2VuIHdvdWxkIGxhbmQgaW4gYSBkaWZmZXJlbnQgYWNjb3VudCB0aGFuIHRoZSBsZWRnZXIuWENsZWFyVm90aW5nTG9ja3NGYWlsZWQACgSwU2VsZWN0aXZlIHZvdGUgY2xlYXJpbmcgZmFpbGVkIGJlZm9yZSBzZWl6ZS4wQm9ycm93RmFpbGVkAAsE7FRyZWFzdXJ5J3MgSE9MTEFSIGJvcnJvdyBhZ2FpbnN0IHRoZSBHSUdBSERYIHBvb2wgcmV2ZXJ0ZWQuLFNlaXplRmFpbGVkAAwE2EZpbmFsIHN0YXRlIG1vdmUgKEhEWCB0cmFuc2ZlciArIGxvY2sgcmVmcmVzaCkgZmFpbGVkLkRHaWdhSGR4UG9vbE5vdFNldAANBOhHSUdBSERYIHBvb2wgY29udHJhY3QgYWRkcmVzcyBub3Qgc2V0IGluIGBwYWxsZXRfZ2lnYWhkeGAuKE5vUG9vbERlYnQADggJAUJvcnJvd2VyIGhhcyBubyBgZGVidF9hc3NldGAgZGVidCBvbiB0aGUgR0lHQUhEWCBwb29sLCBzbyB0aGVyZSBpc1Rub3RoaW5nIHRvIGxpcXVpZGF0ZS4sUmVwYXlGYWlsZWQADwQJAVJlcGF5aW5nIHRoZSB1bmNvbnN1bWVkIHByb3RvY29sLWJvcnJvd2VkIEhPTExBUiBzdXJwbHVzIHJldmVydGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5JDAwocGFsbGV0X2hzbRR0eXBlczhDb2xsYXRlcmFsSW5mbwQcQXNzZXRJZAEoABgBHHBvb2xfaWQoARxBc3NldElkAAEwcHVyY2hhc2VfZmVldQIBHFBlcm1pbGwAAWRtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50VAFAQ29lZmZpY2llbnRSYXRpbwABMGJ1eWJhY2tfcmF0ZSkDARxQZXJiaWxsAAEwYnV5X2JhY2tfZmVldQIBHFBlcm1pbGwAAThtYXhfaW5faG9sZGluZ/UBATxPcHRpb248QmFsYW5jZT4AAE0MDChwYWxsZXRfaHNtGHBhbGxldBRFcnJvcgQEVAABVEBBc3NldE5vdEFwcHJvdmVkAAAMjEFzc2V0IGlzIG5vdCBhcHByb3ZlZCBhcyBjb2xsYXRlcmFsAGUBVGhlIG9wZXJhdGlvbiBhdHRlbXB0ZWQgdG8gdXNlIGFuIGFzc2V0IHRoYXQgaXMgbm90IHJlZ2lzdGVyZWQgYXMgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbC5QQXNzZXRBbHJlYWR5QXBwcm92ZWQAAQycQXNzZXQgaXMgYWxyZWFkeSBhcHByb3ZlZCBhcyBjb2xsYXRlcmFsABUBQXR0ZW1wdGVkIHRvIGFkZCBhbiBhc3NldCB0aGF0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBhcyBhIGNvbGxhdGVyYWwuYFBvb2xBbHJlYWR5SGFzQ29sbGF0ZXJhbAACDNBBbm90aGVyIGFzc2V0IGZyb20gdGhlIHNhbWUgcG9vbCBpcyBhbHJlYWR5IGFwcHJvdmVkAA0BT25seSBvbmUgYXNzZXQgZnJvbSBlYWNoIFN0YWJsZVN3YXAgcG9vbCBjYW4gYmUgdXNlZCBhcyBjb2xsYXRlcmFsLkBJbnZhbGlkQXNzZXRQYWlyAAMM6EludmFsaWQgYXNzZXQgcGFpciwgbXVzdCBiZSBIb2xsYXIgYW5kIGFwcHJvdmVkIGNvbGxhdGVyYWwAvQFUaGUgYXNzZXQgcGFpciBmb3IgYnV5L3NlbGwgb3BlcmF0aW9ucyBtdXN0IGluY2x1ZGUgSG9sbGFyIGFzIG9uZSBzaWRlIGFuZCBhbiBhcHByb3ZlZCBjb2xsYXRlcmFsIGFzIHRoZSBvdGhlci5MTWF4QnV5UHJpY2VFeGNlZWRlZAAEDFhNYXggYnV5IHByaWNlIGV4Y2VlZGVkAEkBVGhlIGNhbGN1bGF0ZWQgYnV5IHByaWNlIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCBidXkgcHJpY2UgZm9yIHRoZSBjb2xsYXRlcmFsLkhNYXhCdXlCYWNrRXhjZWVkZWQABQywTWF4IGJ1eSBiYWNrIGFtb3VudCBpbiBzaW5nbGUgYmxvY2sgZXhjZWVkZWQApQFUaGUgYW1vdW50IG9mIEhvbGxhciBiZWluZyBzb2xkIHRvIEhTTSBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWQgaW4gYSBzaW5nbGUgYmxvY2sgZm9yIHRoaXMgY29sbGF0ZXJhbC5ITWF4SG9sZGluZ0V4Y2VlZGVkAAYMqE1heCBob2xkaW5nIGFtb3VudCBmb3IgY29sbGF0ZXJhbCBleGNlZWRlZAB1AVRoZSBvcGVyYXRpb24gd291bGQgY2F1c2UgdGhlIEhTTSB0byBob2xkIG1vcmUgb2YgdGhlIGNvbGxhdGVyYWwgdGhhbiB0aGUgY29uZmlndXJlZCBtYXhpbXVtLlRTbGlwcGFnZUxpbWl0RXhjZWVkZWQABwxcU2xpcHBhZ2UgbGltaXQgZXhjZWVkZWQAAQFUaGUgY2FsY3VsYXRlZCBhbW91bnQgaXMgd29yc2UgdGhhbiB0aGUgcHJvdmlkZWQgc2xpcHBhZ2UgbGltaXQuVEludmFsaWRFVk1JbnRlcmFjdGlvbgAIDIBJbnZhbGlkIEVWTSBjb250cmFjdCBpbnRlcmFjdGlvbgDcVGhlIGNhbGwgdG8gdGhlIEVWTSBjb250cmFjdCAoR0hPIEhvbGxhciB0b2tlbikgZmFpbGVkLlhEZWNpbWFsUmV0cmlldmFsRmFpbGVkAAkMYERlY2ltYWwgcmV0cmlldmFsIGZhaWxlZADgRmFpbGVkIHRvIHJldHJpZXZlIHRoZSBkZWNpbWFsIGluZm9ybWF0aW9uIGZvciBhbiBhc3NldC5YTm9BcmJpdHJhZ2VPcHBvcnR1bml0eQAKDGBObyBhcmJpdHJhZ2Ugb3Bwb3J0dW5pdHkAKQFUaGVyZSBpcyBubyBwcm9maXRhYmxlIGFyYml0cmFnZSBvcHBvcnR1bml0eSBmb3IgdGhlIHNwZWNpZmllZCBjb2xsYXRlcmFsLjRBc3NldE5vdEZvdW5kAAsMVEFzc2V0IG5vdCBpbiB0aGUgcG9vbAC4VGhlIHNwZWNpZmllZCBhc3NldCB3YXMgbm90IGZvdW5kIGluIHRoZSBwb29sLkBJbnZhbGlkUG9vbFN0YXRlAAwMeFByb3ZpZGVkIHBvb2wgc3RhdGUgaXMgaW52YWxpZADoVGhlIHJldHJpZXZlZCBwb29sIHN0YXRlIGhhcyBpbmNvbnNpc3RlbnQgb3IgaW52YWxpZCBkYXRhLkhDb2xsYXRlcmFsTm90RW1wdHkADQxcQ29sbGF0ZXJhbCBpcyBub3QgZW1wdHkAWQFDYW5ub3QgcmVtb3ZlIGEgY29sbGF0ZXJhbCBhc3NldCB0aGF0IHN0aWxsIGhhcyBhIG5vbi16ZXJvIGJhbGFuY2UgaW4gdGhlIEhTTSBhY2NvdW50LjhBc3NldE5vdEluUG9vbAAODFRBc3NldCBub3QgaW4gdGhlIHBvb2wA6FRoZSBjb2xsYXRlcmFsIGFzc2V0IGlzIG5vdCBwcmVzZW50IGluIHRoZSBzcGVjaWZpZWQgcG9vbC48SG9sbGFyTm90SW5Qb29sAA8MZEhvbGxhciBpcyBub3QgaW4gdGhlIHBvb2wA2FRoZSBIb2xsYXIgYXNzZXQgaXMgbm90IHByZXNlbnQgaW4gdGhlIHNwZWNpZmllZCBwb29sLnRJbnN1ZmZpY2llbnRDb2xsYXRlcmFsQmFsYW5jZQAQDHxJbnN1ZmZpY2llbnQgY29sbGF0ZXJhbCBiYWxhbmNlAD0BVGhlIEhTTSBkb2VzIG5vdCBoYXZlIGVub3VnaCBvZiB0aGUgY29sbGF0ZXJhbCBhc3NldCB0byBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uLnRIb2xsYXJDb250cmFjdEFkZHJlc3NOb3RGb3VuZAARDHhHSE8gQ29udHJhY3QgYWRkcmVzcyBub3QgZm91bmQACQFUaGUgRVZNIGFkZHJlc3MgZm9yIHRoZSBHSE8gKEhvbGxhcikgdG9rZW4gY29udHJhY3Qgd2FzIG5vdCBmb3VuZC50TWF4TnVtYmVyT2ZDb2xsYXRlcmFsc1JlYWNoZWQAEgTkSFNNIGNvbnRhaW5zIG1heGltdW0gbnVtYmVyIG9mIGFsbG93ZWQgY29sbGF0ZXJhbCBhc3NldHMuREZsYXNoTWludGVyTm90U2V0ABMEcEZsYXNoIG1pbnRlciBhZGRyZXNzIG5vdCBzZXRQSW52YWxpZEFyYml0cmFnZURhdGEAFASIUHJvdmlkZWQgYXJiaXRyYWdlIGRhdGEgaXMgaW52YWxpZASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5RDAw0cGFsbGV0X3NpZ25ldBhwYWxsZXRAU2lnbmV0Q29uZmlnRGF0YQQcQmFsYW5jZQFAABQBGHBhdXNlZEQBEGJvb2wAAURzaWduYXR1cmVfZGVwb3NpdEABHEJhbGFuY2UAAUxtYXhfY2hhaW5faWRfbGVuZ3RoKAEMdTMyAAFMbWF4X2V2bV9kYXRhX2xlbmd0aCgBDHUzMgABIGNoYWluX2lksQEBtEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9DSEFJTl9JRF9MRU5HVEg+PgAAVQwMNHBhbGxldF9zaWduZXQYcGFsbGV0FEVycm9yBARUAAEgNE5vdENvbmZpZ3VyZWQAAASYVGhlIHBhbGxldCBoYXMgbm90IGJlZW4gY29uZmlndXJlZCB5ZXQYUGF1c2VkAAEEuFBhbGxldCBpcyBwYXVzZWQgYW5kIGNhbm5vdCBwcm9jZXNzIHRoaXMgY2FsbC5ESW5zdWZmaWNpZW50RnVuZHMAAgSESW5zdWZmaWNpZW50IGZ1bmRzIGZvciB3aXRoZHJhd2FsSEludmFsaWRUcmFuc2FjdGlvbgADBIBJbnZhbGlkIHRyYW5zYWN0aW9uIGRhdGEgKGVtcHR5KUhJbnZhbGlkSW5wdXRMZW5ndGgABASAQXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgsRGF0YVRvb0xvbmcABQS8VHJhbnNhY3Rpb24gZGF0YSBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg4SW52YWxpZEFkZHJlc3MABgTESW52YWxpZCBhZGRyZXNzIGZvcm1hdCAtIG11c3QgYmUgZXhhY3RseSAyMCBieXRlczxJbnZhbGlkR2FzUHJpY2UABwQFAVByaW9yaXR5IGZlZSBjYW5ub3QgZXhjZWVkIG1heCBmZWUgcGVyIGdhcyAoRUlQLTE1NTkgcmVxdWlyZW1lbnQpBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlkMDEBwYWxsZXRfZGlzcGVuc2VyGHBhbGxldExEaXNwZW5zZXJDb25maWdEYXRhAAAcARhwYXVzZWREARBib29sAAFIZmF1Y2V0X2JhbGFuY2Vfd2VpQAEcQmFsYW5jZQABOGZhdWNldF9hZGRyZXNzWAEoRXZtQWRkcmVzcwABUG1pbl9mYXVjZXRfdGhyZXNob2xkQAEcQmFsYW5jZQABLG1pbl9yZXF1ZXN0QAEcQmFsYW5jZQABMG1heF9kaXNwZW5zZUABHEJhbGFuY2UAATRkaXNwZW5zZXJfZmVlQAEcQmFsYW5jZQAAXQwMQHBhbGxldF9kaXNwZW5zZXIYcGFsbGV0FEVycm9yBARUAAE0NE5vdENvbmZpZ3VyZWQAAAScVGhlIHBhbGxldCBoYXMgbm90IGJlZW4gY29uZmlndXJlZCB5ZXQuQER1cGxpY2F0ZVJlcXVlc3QAAQSEUmVxdWVzdCBJRCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuNFNlcmlhbGl6YXRpb24AAgR0RmFpbGVkIHRvIChkZSlzZXJpYWxpemUgZGF0YS40SW52YWxpZE91dHB1dAADBLhPdXRwdXQgZGF0YSBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuQEludmFsaWRSZXF1ZXN0SWQABAT8UmVxdWVzdCBJRCBkb2VzIG5vdCBtYXRjaCB0aGUgZGVyaXZlZCBJRCBmb3IgdGhlIHByb3ZpZGVkIGRhdGEuGFBhdXNlZAAFBLhQYWxsZXQgaXMgcGF1c2VkIGFuZCBjYW5ub3QgcHJvY2VzcyB0aGlzIGNhbGwuOEFtb3VudFRvb1NtYWxsAAYExFJlcXVlc3RlZCBhbW91bnQgaXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgbWluaW11bS44QW1vdW50VG9vTGFyZ2UABwTAUmVxdWVzdGVkIGFtb3VudCBleGNlZWRzIHRoZSBjb25maWd1cmVkIG1heGltdW0uOEludmFsaWRBZGRyZXNzAAgE2EVWTSBhZGRyZXNzIHBhcmFtZXRlciBpcyBpbnZhbGlkIChlLmcuLCB6ZXJvIGFkZHJlc3MpLmxGYXVjZXRCYWxhbmNlQmVsb3dUaHJlc2hvbGQACQQxAUZhdWNldCBiYWxhbmNlIHdvdWxkIGZhbGwgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkIGFmdGVyIHRoaXMgcmVxdWVzdC5ETm90RW5vdWdoRmVlRnVuZHMACgTUQ2FsbGVyIGRvZXMgbm90IGhhdmUgZW5vdWdoIGJhbGFuY2Ugb2YgdGhlIGZlZSBhc3NldC5QTm90RW5vdWdoRmF1Y2V0RnVuZHMACwTgQ2FsbGVyIGRvZXMgbm90IGhhdmUgZW5vdWdoIGJhbGFuY2Ugb2YgdGhlIGZhdWNldCBhc3NldC40SW52YWxpZENvbmZpZwAMBCEBQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIChlLmcuLCBtaW5fcmVxdWVzdCA+IG1heF9kaXNwZW5zZSkuBDhQYWxsZXQgZXJyb3JzLmEMDDhwYWxsZXRfZ2lnYWhkeBhwYWxsZXQsU3Rha2VSZWNvcmQAABABDGhkeEABHEJhbGFuY2UAARxnaWdhaGR4QAEcQmFsYW5jZQABJHVuc3Rha2luZ0ABHEJhbGFuY2UAATx1bnN0YWtpbmdfY291bnSAAQx1MTYAAGUMDDhwYWxsZXRfZ2lnYWhkeBhwYWxsZXQ4UGVuZGluZ1Vuc3Rha2UAAAQBGGFtb3VudEABHEJhbGFuY2UAAGkMDDhwYWxsZXRfZ2lnYWhkeBhwYWxsZXQURXJyb3IEBFQAAUQ0QmVsb3dNaW5TdGFrZQAABKRTdGFrZSBhbW91bnQgaXMgYmVsb3cgYENvbmZpZzo6TWluU3Rha2VgLlxJbnN1ZmZpY2llbnRGcmVlQmFsYW5jZQABCPRDYWxsZXIgZG9lc24ndCBoYXZlIGVub3VnaCB1bmVuY3VtYmVyZWQgSERYIHRvIGJhY2sgdGhlIHN0YWtl0GFmdGVyIHN1YnRyYWN0aW5nIHRoZWlyIGV4aXN0aW5nIGdpZ2FoZHggY29tbWl0bWVudC5UQmxvY2tlZEJ5RXh0ZXJuYWxMb2NrAAIUCQFDYWxsZXIgaG9sZHMgYSBub24tb3ZlcmxhcHBpbmcgbG9jayAobGVnYWN5IHN0YWtpbmcsIHZlc3RpbmcsIOKApinwcmVwb3J0ZWQgYnkgYENvbmZpZzo6RXh0ZXJuYWxDbGFpbXNgLiBTdHJpY3QgcG9saWN5OiBnaWdhaGR48GFkbWlzc2lvbiByZXF1aXJlcyB0aGUgY2FsbGVyIHRvIGhhdmUgbm8gY2xhaW1zIG9uIHRoZWlyIEhEWORvdGhlciB0aGFuIHRob3NlIHRoZSBydW50aW1lIGV4cGxpY2l0bHkgYWxsb3dzIHRvIGNvZXhpc3T8KGUuZy4gYHB5Y29udm90YCkuIFJlbGVhc2UgdGhlIGNvbmZsaWN0aW5nIGxvY2sgYmVmb3JlIHN0YWtpbmcuREluc3VmZmljaWVudFN0YWtlAAME1FVuc3Rha2UgYW1vdW50IGV4Y2VlZHMgdGhlIGNhbGxlcidzIGBTdGFrZXMuZ2lnYWhkeGAuHE5vU3Rha2UABASIQ2FsbGVyIGhhcyBubyBhY3RpdmUgc3Rha2UgcmVjb3JkLihaZXJvQW1vdW50AAUEqEFtb3VudCBtdXN0IGJlIHN0cmljdGx5IGdyZWF0ZXIgdGhhbiB6ZXJvLjxTdEhkeE1pbnRGYWlsZWQABhD0c3RIRFggbWludCBmYWlsZWQgKGFzc2V0IG5vdCByZWdpc3RlcmVkLCBtYXggaXNzdWFuY2UgaGl0LCBvcvBvdGhlciBgZnVuZ2libGVzOjpNdXRhdGU6Om1pbnRfaW50b2AgcHJlY29uZGl0aW9uIHZpb2xhdGVkKS4RAURpc3RpbmN0IGZyb20gYE1vbmV5TWFya2V0U3VwcGx5RmFpbGVkYCDigJQgdGhpcyBpcyBhIHN1YnN0cmF0ZS1zaWRluGFzc2V0LXJlZ2lzdHJ5IGVycm9yLCBub3QgYW4gQUFWRS1zaWRlIHJldmVydC5cTW9uZXlNYXJrZXRTdXBwbHlGYWlsZWQABwwRAUFBVkUgYFBvb2wuc3VwcGx5YCByZXZlcnRlZCDigJQgdHlwaWNhbCBjYXVzZXM6IGNhbGxlcidzIEVWTSBhZGRyZXNz+GlzIG5vdCBib3VuZCwgdGhlIGFzc2V0IHJlc2VydmUgaXMgbWlzY29uZmlndXJlZCwgb3IgYFBvb2xgIGlzHHBhdXNlZC5kTW9uZXlNYXJrZXRXaXRoZHJhd0ZhaWxlZAAIBHhBQVZFIGBQb29sLndpdGhkcmF3YCByZXZlcnRlZC4gT3ZlcmZsb3cACQT4QXJpdGhtZXRpYyBvdmVyZmxvdyBkdXJpbmcgcmF0ZSwgbG9jaywgb3Igc3RvcmFnZSB1cGRhdGUgbWF0aC5IQ29vbGRvd25Ob3RFbGFwc2VkAAoECQFUaGUgY29vbGRvd24gcGVyaW9kIGhhcyBub3QgeWV0IGVsYXBzZWQgZm9yIHRoZSB0YXJnZXRlZCBwb3NpdGlvbi5YUGVuZGluZ1Vuc3Rha2VOb3RGb3VuZAALBB0BTm8gcGVuZGluZyB1bnN0YWtlIHBvc2l0aW9uIHdpdGggdGhlIHN1cHBsaWVkIGlkIGV4aXN0cyBmb3IgdGhlIGNhbGxlci5YVG9vTWFueVBlbmRpbmdVbnN0YWtlcwAMBBUBQ2FsbGVyIGhhcyByZWFjaGVkIGBDb25maWc6Ok1heFBlbmRpbmdVbnN0YWtlc2AgY29uY3VycmVudCBwb3NpdGlvbnMuQE91dHN0YW5kaW5nU3Rha2UADQwBAWBzZXRfcG9vbF9jb250cmFjdGAgd2FzIGNhbGxlZCB3aGlsZSBnaWdhaGR4IChhVG9rZW4gLyBzdEhEWCkgaXMBAXN0aWxsIGluIGNpcmN1bGF0aW9uLiBUaGUgcG9vbCBpcyBzZXR0YWJsZSBvbmx5IHdoZW4gdG90YWwgc3RIRFg8c3VwcGx5IGlzIHplcm8uLFN0YWtlRnJvemVuAA4M+FVuc3Rha2Ugd291bGQgZHJvcCBgU3Rha2VzW3dob10uaGR4YCBiZWxvdyB0aGUgSERYIGJhY2tpbmcgdGhlCQFjYWxsZXIncyBhY3RpdmUgdm90ZXMgKGBUOjpWb3RpbmdDb21taXRtZW50YCk7IHJlbW92ZSB0aGUgcmVsZXZhbnRcY29udmljdGlvbiB2b3RlcyBmaXJzdC4sU2VpemVGYWlsZWQADwgBAWBzbGFzaGAgZmFsbGJhY2sgY291bGQgbm90IGV4dHJhY3QgdGhlIGZ1bGwgYHNlaXplX2hkeGAgZnJvbSB0aGXkYm9ycm93ZXIncyBhY2NvdW50IChlLmcuIGV4aXN0ZW50aWFsLWRlcG9zaXQgY29uc3RyYWludCkuTEdpZ2Fwb3RJbnN1ZmZpY2llbnQAEAj4VGhlIGdpZ2Fwb3QgbGFja3MgdGhlIEhEWCB0byBjb3ZlciB0aGUgY2FsbGVyJ3MgYWNjcnVlZCB5aWVsZC4BAU9ubHkgcmVhY2hhYmxlIGluIGEgZHJhaW5lZC9mbG9vcmVkIHN0YXRlLCBub3Qgbm9ybWFsIG9wZXJhdGlvbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQubQwMWHBhbGxldF9naWdhaGR4X3Jld2FyZHMUdHlwZXNMUmVmZXJlbmR1bUxpdmVUYWxseQAACAE4dG90YWxfd2VpZ2h0ZWRAARB1MTI4AAEwdm90ZXJzX2NvdW50KAEMdTMyAABxDAxYcGFsbGV0X2dpZ2FoZHhfcmV3YXJkcxR0eXBlczxSZWZlcmVuZGFSZXdhcmQEHFRyYWNrSWQBgAAUASB0cmFja19pZIABHFRyYWNrSWQAATB0b3RhbF9yZXdhcmRAARxCYWxhbmNlAAFQdG90YWxfd2VpZ2h0ZWRfdm90ZXNAARB1MTI4AAFAdm90ZXJzX3JlbWFpbmluZygBDHUzMgABQHJlbWFpbmluZ19yZXdhcmRAARxCYWxhbmNlAAB1DAxYcGFsbGV0X2dpZ2FoZHhfcmV3YXJkcxR0eXBlczhVc2VyVm90ZVJlY29yZAAADAFIc3Rha2VkX3ZvdGVfYW1vdW50QAEcQmFsYW5jZQABKGNvbnZpY3Rpb24pAgEoQ29udmljdGlvbgABIHdlaWdodGVkQAEQdTEyOAAAeQwMWHBhbGxldF9naWdhaGR4X3Jld2FyZHMYcGFsbGV0FEVycm9yBARUAAEMQE5vUGVuZGluZ1Jld2FyZHMAAAR4YFBlbmRpbmdSZXdhcmRzW3dob11gIGlzIHplcm8uPFBvdEluc3VmZmljaWVudAABBAUBTm90IGVub3VnaCByZXdhcmRzIGluIHRoZSBhbGxvY2F0ZWQgcG90IHRvIGNvdmVyIHRoZSBhbW91bnQgb3dlZC4gT3ZlcmZsb3cAAgS0QXJpdGhtZXRpYyBvdmVyZmxvdyBkdXJpbmcgc2hhcmUgY29tcHV0YXRpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ln0MDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBgQwEUwAABACFDAEYVmVjPFQ+AACBDAgsb3JtbF90b2tlbnMsQmFsYW5jZUxvY2sEHEJhbGFuY2UBQAAIAQhpZCEBAThMb2NrSWRlbnRpZmllcgABGGFtb3VudEABHEJhbGFuY2UAAIUMAAACgQwAiQwILG9ybWxfdG9rZW5zLEFjY291bnREYXRhBBxCYWxhbmNlAUAADAEQZnJlZUABHEJhbGFuY2UAASByZXNlcnZlZEABHEJhbGFuY2UAARhmcm96ZW5AARxCYWxhbmNlAACNDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZEMBFMAAAQAlQwBGFZlYzxUPgAAkQwILG9ybWxfdG9rZW5zLFJlc2VydmVEYXRhCERSZXNlcnZlSWRlbnRpZmllcgEhARxCYWxhbmNlAUAACAEIaWQhAQFEUmVzZXJ2ZUlkZW50aWZpZXIAARhhbW91bnRAARxCYWxhbmNlAACVDAAAApEMAJkMDCxvcm1sX3Rva2Vucxhtb2R1bGUURXJyb3IEBFQAASA0QmFsYW5jZVRvb0xvdwAABFhUaGUgYmFsYW5jZSBpcyB0b28gbG93XEFtb3VudEludG9CYWxhbmNlRmFpbGVkAAEEnENhbm5vdCBjb252ZXJ0IEFtb3VudCBpbnRvIEJhbGFuY2UgdHlwZVRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAgTQRmFpbGVkIGJlY2F1c2UgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBkdWUgdG8gbG9ja2luZ0BNYXhMb2Nrc0V4Y2VlZGVkAAMEtEZhaWxlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIGxvY2tzIHdhcyBleGNlZWRlZCRLZWVwQWxpdmUABASMVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnRIRXhpc3RlbnRpYWxEZXBvc2l0AAUE6FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQsRGVhZEFjY291bnQABgSIQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdDxUb29NYW55UmVzZXJ2ZXMABwAEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQunQwMRHBhbGxldF9jdXJyZW5jaWVzGG1vZHVsZRRFcnJvcgQEVAABEFxBbW91bnRJbnRvQmFsYW5jZUZhaWxlZAAABLxVbmFibGUgdG8gY29udmVydCB0aGUgQW1vdW50IHR5cGUgaW50byBCYWxhbmNlLjRCYWxhbmNlVG9vTG93AAEETEJhbGFuY2UgaXMgdG9vIGxvdy40RGVwb3NpdEZhaWxlZAACBHhEZXBvc2l0IHJlc3VsdCBpcyBub3QgZXhwZWN0ZWQwTm90U3VwcG9ydGVkAAMEsE9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGN1cnJlbmN5BIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqEMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB1QMEUwAABADZAwEYVmVjPFQ+AAClDAwwb3JtbF92ZXN0aW5nGG1vZHVsZRRFcnJvcgQEVAABGERaZXJvVmVzdGluZ1BlcmlvZAAABFhWZXN0aW5nIHBlcmlvZCBpcyB6ZXJvWFplcm9WZXN0aW5nUGVyaW9kQ291bnQAAQRcTnVtYmVyIG9mIHZlc3RzIGlzIHplcm9kSW5zdWZmaWNpZW50QmFsYW5jZVRvTG9jawACBJhJbnN1ZmZpY2llbnQgYW1vdW50IG9mIGJhbGFuY2UgdG8gbG9ja1xUb29NYW55VmVzdGluZ1NjaGVkdWxlcwADBLBUaGlzIGFjY291bnQgaGF2ZSB0b28gbWFueSB2ZXN0aW5nIHNjaGVkdWxlcyRBbW91bnRMb3cABASUVGhlIHZlc3RlZCB0cmFuc2ZlciBhbW91bnQgaXMgdG9vIGxvd2xNYXhWZXN0aW5nU2NoZWR1bGVzRXhjZWVkZWQABQTkRmFpbGVkIGJlY2F1c2UgdGhlIG1heGltdW0gdmVzdGluZyBzY2hlZHVsZXMgd2FzIGV4Y2VlZGVkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqkMCChwYWxsZXRfZXZtMENvZGVNZXRhZGF0YQAACAEQc2l6ZRgBDHU2NAABEGhhc2gsARBIMjU2AACtDAAABAhYLACxDAwocGFsbGV0X2V2bRhwYWxsZXQURXJyb3IEBFQAATwoQmFsYW5jZUxvdwAABJBOb3QgZW5vdWdoIGJhbGFuY2UgdG8gcGVyZm9ybSBhY3Rpb24sRmVlT3ZlcmZsb3cAAQSAQ2FsY3VsYXRpbmcgdG90YWwgZmVlIG92ZXJmbG93ZWQ8UGF5bWVudE92ZXJmbG93AAIEkENhbGN1bGF0aW5nIHRvdGFsIHBheW1lbnQgb3ZlcmZsb3dlZDhXaXRoZHJhd0ZhaWxlZAADBExXaXRoZHJhdyBmZWUgZmFpbGVkOEdhc1ByaWNlVG9vTG93AAQEVEdhcyBwcmljZSBpcyB0b28gbG93LjBJbnZhbGlkTm9uY2UABQRATm9uY2UgaXMgaW52YWxpZDhHYXNMaW1pdFRvb0xvdwAGBFRHYXMgbGltaXQgaXMgdG9vIGxvdy5kR2FzTGltaXRFeGNlZWRzQmxvY2tMaW1pdAAHBIhHYXMgbGltaXQgZXhjZWVkcyBibG9jayBnYXMgbGltaXQuOEludmFsaWRDaGFpbklkAAgEYFRoZSBjaGFpbiBpZCBpcyBpbnZhbGlkLkBJbnZhbGlkU2lnbmF0dXJlAAkEZHRoZSBzaWduYXR1cmUgaXMgaW52YWxpZC4oUmVlbnRyYW5jeQAKBDhFVk0gcmVlbnRyYW5jeWhUcmFuc2FjdGlvbk11c3RDb21lRnJvbUVPQQALBCRFSVAtMzYwNywkVW5kZWZpbmVkAAwEQFVuZGVmaW5lZCBlcnJvci5YQ3JlYXRlT3JpZ2luTm90QWxsb3dlZAANBCkBQWRkcmVzcyBub3QgYWxsb3dlZCB0byBkZXBsb3kgY29udHJhY3RzIGVpdGhlciB2aWEgQ1JFQVRFIG9yIENBTEwoQ1JFQVRFKS50VHJhbnNhY3Rpb25HYXNMaW1pdEV4Y2VlZHNDYXAADgTwRUlQLTc4MjU6IFRyYW5zYWN0aW9uIGdhcyBsaW1pdCBleGNlZWRzIHByb3RvY29sIGNhcCAoMl4yNCkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrUMAAAEDP0DuQzNDAC5DAgYZnBfcnBjRFRyYW5zYWN0aW9uU3RhdHVzAAAcAUB0cmFuc2FjdGlvbl9oYXNoLAEQSDI1NgABRHRyYW5zYWN0aW9uX2luZGV4KAEMdTMyAAEQZnJvbVgBHEFkZHJlc3MAAQh0b70MATxPcHRpb248QWRkcmVzcz4AAUBjb250cmFjdF9hZGRyZXNzvQwBPE9wdGlvbjxBZGRyZXNzPgABEGxvZ3PBDAEgVmVjPExvZz4AAShsb2dzX2Jsb29txQwBFEJsb29tAAC9DAQYT3B0aW9uBARUAVgBCBBOb25lAAAAEFNvbWUEAFgAAAEAAMEMAAACPQgAxQwIIGV0aGJsb29tFEJsb29tAAAEAMkMAUBbdTg7IEJMT09NX1NJWkVdAADJDAAAAwABAAAIAM0MDCBldGhlcmV1bRxyZWNlaXB0JFJlY2VpcHRWNAABEBhMZWdhY3kEANEMAURFSVA2NThSZWNlaXB0RGF0YQAAABxFSVAyOTMwBADRDAFIRUlQMjkzMFJlY2VpcHREYXRhAAEAHEVJUDE1NTkEANEMAUhFSVAxNTU5UmVjZWlwdERhdGEAAgAcRUlQNzcwMgQA0QwBSEVJUDc3MDJSZWNlaXB0RGF0YQADAADRDAwgZXRoZXJldW0ccmVjZWlwdERFSVA2NThSZWNlaXB0RGF0YQAAEAEsc3RhdHVzX2NvZGUIAQh1OAABIHVzZWRfZ2FzYAEQVTI1NgABKGxvZ3NfYmxvb23FDAEUQmxvb20AARBsb2dzwQwBIFZlYzxMb2c+AADVDAwgZXRoZXJldW0UYmxvY2sUQmxvY2sEBFQB/QMADAEYaGVhZGVy2QwBGEhlYWRlcgABMHRyYW5zYWN0aW9uc+EMARhWZWM8VD4AARhvbW1lcnPlDAEsVmVjPEhlYWRlcj4AANkMDCBldGhlcmV1bRhoZWFkZXIYSGVhZGVyAAA8ASxwYXJlbnRfaGFzaCwBEEgyNTYAASxvbW1lcnNfaGFzaCwBEEgyNTYAASxiZW5lZmljaWFyeVgBEEgxNjAAAShzdGF0ZV9yb290LAEQSDI1NgABRHRyYW5zYWN0aW9uc19yb290LAEQSDI1NgABNHJlY2VpcHRzX3Jvb3QsARBIMjU2AAEobG9nc19ibG9vbcUMARRCbG9vbQABKGRpZmZpY3VsdHlgARBVMjU2AAEYbnVtYmVyYAEQVTI1NgABJGdhc19saW1pdGABEFUyNTYAASBnYXNfdXNlZGABEFUyNTYAASR0aW1lc3RhbXAYAQx1NjQAAShleHRyYV9kYXRhFAEUQnl0ZXMAASBtaXhfaGFzaCwBEEgyNTYAARRub25jZd0MAQxINjQAAN0MDDhldGhlcmV1bV90eXBlcxBoYXNoDEg2NAAABAAhAQEcW3U4OyA4XQAA4QwAAAL9AwDlDAAAAtkMAOkMAAACzQwA7QwAAAK5DADxDAw8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBRFcnJvcgQEVAABCEBJbnZhbGlkU2lnbmF0dXJlAAAEVFNpZ25hdHVyZSBpcyBpbnZhbGlkLjBQcmVMb2dFeGlzdHMAAQTYUHJlLWxvZyBpcyBwcmVzZW50LCB0aGVyZWZvcmUgdHJhbnNhY3QgaXMgbm90IGFsbG93ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvUMAAAEDChYWAD5DAxMcGFsbGV0X2V2bV9hY2NvdW50cxhwYWxsZXQURXJyb3IEBFQAARxsVHJ1bmNhdGVkQWNjb3VudEFscmVhZHlVc2VkAAAEiEFjdGl2ZSBFVk0gYWNjb3VudCBjYW5ub3QgYmUgYm91bmRMQWRkcmVzc0FscmVhZHlCb3VuZAABBGBBZGRyZXNzIGlzIGFscmVhZHkgYm91bmRgQm91bmRBZGRyZXNzQ2Fubm90QmVVc2VkAAIEcEJvdW5kIGFkZHJlc3MgY2Fubm90IGJlIHVzZWRUQWRkcmVzc05vdFdoaXRlbGlzdGVkAAMEXEFkZHJlc3Mgbm90IHdoaXRlbGlzdGVkQEludmFsaWRTaWduYXR1cmUABAR0UHJvdmlkZWQgc2lnbmF0dXJlIGlzIGludmFsaWRQQWNjb3VudEFscmVhZHlFeGlzdHMABQSsQWNjb3VudCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgc3lzdGVtIHBhbGxldGBJbnN1ZmZpY2llbnRBc3NldEJhbGFuY2UABgS8SW5zdWZmaWNpZW50IGFzc2V0IGJhbGFuY2Ugb2YgdGhlIGNsYWltZWQgYXNzZXQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu/QwMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IEBFQAATRQQ2FudEZpbmREZXBvc2l0T3duZXIAAASITmZ0IHBhbGxldCBkaWRuJ3QgcmV0dXJuIGFuIG93bmVyLnBJbnN1ZmZpY2llbnRYeWtTaGFyZXNCYWxhbmNlAAEE1EFjY291bnQgYmFsYW5jZSBvZiBYWUsgcG9vbCBzaGFyZXMgaXMgbm90IHN1ZmZpY2llbnQuSFh5a1Bvb2xEb2VzbnRFeGlzdAACBFxYWUsgcG9vbCBkb2VzIG5vdCBleGlzdDxOb3REZXBvc2l0T3duZXIAAwR0QWNjb3VudCBpcyBub3QgZGVwb3NpdCBvd25lci5AQ2FudEdldFh5a0Fzc2V0cwAEBKxYWUsgZGlkIG5vdCByZXR1cm4gYXNzZXRzIGZvciBnaXZlbiBwb29sIGlkTERlcG9zaXREYXRhTm90Rm91bmQABQRYRGVwb3NpdCBkYXRhIG5vdCBmb3VuZEhaZXJvQ2xhaW1lZFJld2FyZHMABgSAQ2FsY3VsYXRlZCByZXdhcmQgdG8gY2xhaW0gaXMgMC5MQXNzZXROb3RJbkFzc2V0UGFpcgAHBIBBc3NldCBpcyBub3QgaW4gdGhlIGBBc3NldFBhaXJgLkBJbnZhbGlkQXNzZXRQYWlyAAgEwFByb3ZpZGVkIGBBc3NldFBhaXJgIGlzIG5vdCB1c2VkIGJ5IHRoZSBkZXBvc2l0LkhBc3NldE5vdFJlZ2lzdGVyZWQACQSoQXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkuOEZhaWxUb0dldFBvdElkAAoEkEZhaWxlZCB0byBjYWxjdWxhdGUgYHBvdGAncyBhY2NvdW50LkBOb0Zhcm1zU3BlY2lmaWVkAAsEzE5vIGdsb2JhbCBmYXJtIC0geWllbGQgZmFybSBwYWlycyBzcGVjaWZpZWQgdG8gam9pbkxGYWlsZWRUb1ZhbHVlU2hhcmVzAAwEnEZhaWxlZCB0byBjYWxjdWxhdGUgdmFsdWUgb2YgeHlrIHNoYXJlcwSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4BDQxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4R2xvYmFsRmFybURhdGEIBFQABEkAAEgBCGlkKAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASh1cGRhdGVkX2F0KAEsUGVyaW9kT2Y8VD4AATh0b3RhbF9zaGFyZXNfekABHEJhbGFuY2UAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAE8cGVuZGluZ19yZXdhcmRzQAEcQmFsYW5jZQABYGFjY3VtdWxhdGVkX3BhaWRfcmV3YXJkc0ABHEJhbGFuY2UAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzKAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAFIaW5jZW50aXZpemVkX2Fzc2V0KAEoVDo6QXNzZXRJZAABVG1heF9yZXdhcmRfcGVyX3BlcmlvZEABHEJhbGFuY2UAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVhsaXZlX3lpZWxkX2Zhcm1zX2NvdW50KAEMdTMyAAFcdG90YWxfeWllbGRfZmFybXNfY291bnQoAQx1MzIAAUBwcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAEUc3RhdGWFCwEkRmFybVN0YXRlAAAFDQAABAwAKCgACQ0MXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzNFlpZWxkRmFybURhdGEIBFQABEkAADABCGlkKAEYRmFybUlkAAEodXBkYXRlZF9hdCgBLFBlcmlvZE9mPFQ+AAEwdG90YWxfc2hhcmVzQAEcQmFsYW5jZQABTHRvdGFsX3ZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIAARRzdGF0ZYULASRGYXJtU3RhdGUAATRlbnRyaWVzX2NvdW50GAEMdTY0AAFIbGVmdF90b19kaXN0cmlidXRlQAEcQmFsYW5jZQABNHRvdGFsX3N0b3BwZWQoASxQZXJpb2RPZjxUPgAADQ0MXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzLERlcG9zaXREYXRhCARUAARJAAAMARhzaGFyZXNAARxCYWxhbmNlAAEsYW1tX3Bvb2xfaWQAATBUOjpBbW1Qb29sSWQAAUh5aWVsZF9mYXJtX2VudHJpZXMRDQH0Qm91bmRlZFZlYzxZaWVsZEZhcm1FbnRyeTxULCBJPiwgVDo6TWF4RmFybUVudHJpZXNQZXJEZXBvc2l0PgAAEQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEVDQRTAAAEABkNARhWZWM8VD4AABUNDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczhZaWVsZEZhcm1FbnRyeQgEVAAESQAAIAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAATR2YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAAWxhY2N1bXVsYXRlZF9jbGFpbWVkX3Jld2FyZHNAARxCYWxhbmNlAAEoZW50ZXJlZF9hdCgBLFBlcmlvZE9mPFQ+AAEodXBkYXRlZF9hdCgBLFBlcmlvZE9mPFQ+AAFMc3RvcHBlZF9hdF9jcmVhdGlvbigBLFBlcmlvZE9mPFQ+AAAZDQAAAhUNAB0NDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IIBFQABEkAAXRIR2xvYmFsRmFybU5vdEZvdW5kAAAEbEdsb2JhbCBmYXJtIGRvZXMgbm90IGV4aXN0LkRZaWVsZEZhcm1Ob3RGb3VuZAABBGhZaWVsZCBmYXJtIGRvZXMgbm90IGV4aXN0LkxEb3VibGVDbGFpbUluUGVyaW9kAAIEyE11bHRpcGxlIGNsYWltcyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgbm90IGFsbG93ZWQuXExpcXVpZGl0eU1pbmluZ0NhbmNlbGVkAAMEdExpcXVpZGl0eSBtaW5pbmcgaXMgY2FuY2VsZWQuXExpcXVpZGl0eU1pbmluZ0lzQWN0aXZlAAQEhExpcXVpZGl0eSBtaW5pbmcgaXMgbm90IGNhbmNlbGVkLmxMaXF1aWRpdHlNaW5pbmdJc05vdFN0b3BwZWQABQRVAUxpcXVpZGl0eSBtaW5pbmcgaXMgaW4gYGFjdGl2ZWAgb3IgYHRlcm1pbmF0ZWRgIHN0YXRlIGFuZCBhY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZC4kRm9yYmlkZGVuAAYEpEFjY291bnQgaXMgbm90IGFsbG93ZWQgdG8gcGVyZm9ybSBhY3Rpb24uREludmFsaWRNdWx0aXBsaWVyAAcEhFlpZWxkIGZhcm0gbXVsdGlwbGllciBjYW4ndCBiZSAwLlhZaWVsZEZhcm1BbHJlYWR5RXhpc3RzAAgECQFZaWVsZCBmYXJtIHdpdGggZ2l2ZW4gYGFtbV9wb29sX2lkYCBhbHJlYWR5IGV4aXN0cyBpbiBnbG9iYWwgZmFybS54SW52YWxpZEluaXRpYWxSZXdhcmRQZXJjZW50YWdlAAkEPQFMb3lhbHR5IGN1cnZlJ3MgaW5pdGlhbCByZXdhcmQgcGVyY2VudGFnZSBpcyBub3QgdmFsaWQuIFZhbGlkIHJhbmdlIGlzOiBbMCwgMSkuUEdsb2JhbEZhcm1Jc05vdEVtcHR5AAoEtE9uZSBvciBtb3JlIHlpZWxkIGZhcm1zIGV4aXN0IGluIGdsb2JhbCBmYXJtLmBNaXNzaW5nSW5jZW50aXZpemVkQXNzZXQACwT4RmFybSdzIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGlzIG1pc3NpbmcgaW4gcHJvdmlkZWQgYXNzZXQgcGFpci6ESW5zdWZmaWNpZW50UmV3YXJkQ3VycmVuY3lCYWxhbmNlAAwEqFJld2FyZCBjdXJyZW5jeSBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LlhJbnZhbGlkQmxvY2tzUGVyUGVyaW9kAA0EdEJsb2NrcyBwZXIgcGVyaW9kIGNhbid0IGJlIDAuVEludmFsaWRZaWVsZFBlclBlcmlvZAAOBHBZaWVsZCBwZXIgcGVyaW9kIGNhbid0IGJlIDAuTEludmFsaWRUb3RhbFJld2FyZHMADwTEVG90YWwgcmV3YXJkcyBpcyBsZXNzIHRoYW4gYE1pblRvdGFsRmFybVJld2FyZHNgLnRJbnZhbGlkUGxhbm5lZFlpZWxkaW5nUGVyaW9kcwAQBAkBUGxhbm5lZCB5aWVsZGluZyBwZXJpb2RzIGlzIGxlc3MgdGhhbiBgTWluUGxhbm5lZFlpZWxkaW5nUGVyaW9kc2AuUE1heEVudHJpZXNQZXJEZXBvc2l0ABEEsE1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHJlYWNoZWQgZm9yIGRlcG9zaXQuKERvdWJsZUxvY2sAEgTgVHJ5aW5nIHRvIGxvY2sgTFAgc2hhcmVzIGludG8gYWxyZWFkeSBsb2NrZWQgeWllbGQgZmFybS5YWWllbGRGYXJtRW50cnlOb3RGb3VuZAATBMRZaWVsZCBmYXJtIGVudHJ5IGRvZXNuJ3QgZXhpc3QgZm9yIGdpdmVuIGRlcG9zaXQuQEdsb2JhbEZhcm1Jc0Z1bGwAFAhJAU1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgaW4gZ2xvYmFsIGZhcm0gd2FzIHJlYWNoZWQuIEdsb2JhbCBmYXJtIGNhbid0IGFjY2VwdCBuZXf4eWllbGQgZmFybXMgdW50aWwgc29tZSB5aWVsZCBmYXJtIGlzIG5vdCByZW1vdmVkIGZyb20gc3RvcmFnZS5ESW52YWxpZE1pbkRlcG9zaXQAFQS0SW52YWxpZCBtaW4uIGRlcG9zaXQgd2FzIHNldCBmb3IgZ2xvYmFsIGZhcm0uWEludmFsaWRQcmljZUFkanVzdG1lbnQAFgScUHJpY2UgYWRqdXN0bWVudCBtdWx0aXBsaWVyIGNhbid0IGJlIDAuREVycm9yR2V0QWNjb3VudElkABcEgEFjY291bnQgY3JlYXRpb24gZnJvbSBpZCBmYWlsZWQuVEluY29ycmVjdFZhbHVlZFNoYXJlcwAYBCUBVmFsdWUgb2YgZGVwb3NpdGVkIHNoYXJlcyBhbW91bnQgaW4gcmV3YXJkIGN1cnJlbmN5IGlzIGJlbGxvdyBtaW4uIGxpbWl0LmxSZXdhcmRDdXJyZW5jeU5vdFJlZ2lzdGVyZWQAGQTYYHJld2FyZF9jdXJyZW5jeWAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkueEluY2VudGl2aXplZEFzc2V0Tm90UmVnaXN0ZXJlZAAaBORgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeS5EQW1tUG9vbElkTWlzbWF0Y2gAGwT0UHJvdmlkZWQgYGFtbV9wb29sX2lkYCBkb2Vzbid0IG1hdGNoIGRlcG9zaXQncyBgYW1tX3Bvb2xfaWRgLkRJbmNvbnNpc3RlbnRTdGF0ZQQApQsBWEluY29uc2lzdGVudFN0YXRlRXJyb3IAHAhlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4hDQxYcGFsbGV0X3JlbGF5Y2hhaW5faW5mbxhwYWxsZXQURXJyb3IEBFQAAQAEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuJQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEoBFMAAAQAtQIBGFZlYzxUPgAAKQ0MNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJjZW50AAAEAAgBCHU4AAAtDQwocGFsbGV0X2RjYRhwYWxsZXQURXJyb3IEBFQAAVBAU2NoZWR1bGVOb3RGb3VuZAAABEhTY2hlZHVsZSBub3QgZXhpc3RgTWluVHJhZGVBbW91bnROb3RSZWFjaGVkAAEEjFRoZSBtaW4gdHJhZGUgYW1vdW50IGlzIG5vdCByZWFjaGVkJEZvcmJpZGRlbgACBNhGb3JiaWRkZW4gYXMgdGhlIHVzZXIgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgc2NoZWR1bGVgQmxvY2tOdW1iZXJJc05vdEluRnV0dXJlAAME0FRoZSBuZXh0IGV4ZWN1dGlvbiBibG9jayBudW1iZXIgaXMgbm90IGluIHRoZSBmdXR1cmU0UHJpY2VVbnN0YWJsZQAEBDUBUHJpY2UgaXMgdW5zdGFibGUgYXMgcHJpY2UgY2hhbmdlIGZyb20gb3JhY2xlIGRhdGEgaXMgYmlnZ2VyIHRoYW4gbWF4IGFsbG93ZWQYQnVtcGVkAAUEsE9yZGVyIHdhcyByYW5kb21seSByZXNjaGVkdWxlZCB0byBuZXh0IGJsb2NrVENhbGN1bGF0aW5nUHJpY2VFcnJvcgAGBJRFcnJvciBvY2N1cnJlZCB3aGVuIGNhbGN1bGF0aW5nIHByaWNlhFRvdGFsQW1vdW50SXNTbWFsbGVyVGhhbk1pbkJ1ZGdldAAHBOhUaGUgdG90YWwgYW1vdW50IHRvIGJlIHJlc2VydmVkIGlzIHNtYWxsZXIgdGhhbiBtaW4gYnVkZ2V0MEJ1ZGdldFRvb0xvdwAIBNxUaGUgYnVkZ2V0IGlzIHRvbyBsb3cgZm9yIGV4ZWN1dGluZyBhdCBsZWFzdCB0d28gb3JkZXJzQE5vRnJlZUJsb2NrRm91bmQACQTIVGhlcmUgaXMgbm8gZnJlZSBibG9jayBmb3VuZCB0byBwbGFuIERDQSBleGVjdXRpb25ITWFudWFsbHlUZXJtaW5hdGVkAAoEtFRoZSBEQ0Egc2NoZWR1bGUgaGFzIGJlZW4gbWFudWFsbHkgdGVybWluYXRlZDxNYXhSZXRyeVJlYWNoZWQACwSoTWF4IG51bWJlciBvZiByZXRyaWVzIHJlYWNoZWQgZm9yIHNjaGVkdWxlRFRyYWRlTGltaXRSZWFjaGVkAAwEwEFic29sdXRlbHkgdHJhZGUgbGltaXQgcmVhY2hlZCwgbGVhZGluZyB0byByZXRyeVBTbGlwcGFnZUxpbWl0UmVhY2hlZAANBAkBU2xpcHBhZ2UgbGltaXQgY2FsY3VsYXRlZCBmcm9tIG9yYWNsZSBpcyByZWFjaGVkLCBsZWFkaW5nIHRvIHJldHJ5RE5vUGFyZW50SGFzaEZvdW5kAA4EuE5vIHBhcmVudCBoYXNoIGhhcyBiZWVuIGZvdW5kIGZyb20gcmVsYXkgY2hhaW4wSW52YWxpZFN0YXRlAA8EhQFFcnJvciB0aGF0IHNob3VsZCBub3QgcmVhbGx5IGhhcHBlbiBvbmx5IGluIGNhc2Ugb2YgaW52YWxpZCBzdGF0ZSBvZiB0aGUgc2NoZWR1bGUgc3RvcmFnZSBlbnRyaWVzOFBlcmlvZFRvb1Nob3J0ABAElFBlcmlvZCBzaG91bGQgYmUgbG9uZ2VyIHRoYW4gNSBibG9ja3NkU3RhYmlsaXR5VGhyZXNob2xkVG9vSGlnaAARBFkBU3RhYmlsaXR5IHRocmVzaG9sZCBjYW5ub3QgYmUgaGlnaGVyIHRoYW4gYE1heENvbmZpZ3VyYWJsZVByaWNlRGlmZmVyZW5jZUJldHdlZW5CbG9ja2BISGFzQWN0aXZlU2NoZWR1bGVzABIE+FVzZXIgc3RpbGwgaGFzIGFjdGl2ZSBEQ0Egc2NoZWR1bGVzIGFuZCBjYW5ub3QgdW5sb2NrIHJlc2VydmVzQE5vUmVzZXJ2ZXNMb2NrZWQAEwTcTm8gcmVzZXJ2ZXMgYXJlIGxvY2tlZCBmb3IgdGhlIHVzZXIgZm9yIHRoZSBnaXZlbiBhc3NldASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4xDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATUNBFMAAAQAPQ0BGFZlYzxUPgAANQ0EGE9wdGlvbgQEVAE5DQEIEE5vbmUAAAAQU29tZQQAOQ0AAAEAADkNCEBwYWxsZXRfc2NoZWR1bGVyJFNjaGVkdWxlZBQQTmFtZQEEEENhbGwBqQEsQmxvY2tOdW1iZXIBKDRQYWxsZXRzT3JpZ2luAYQkQWNjb3VudElkAQAAFAEgbWF5YmVfaWTxBgEwT3B0aW9uPE5hbWU+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsqQEBEENhbGwAAThtYXliZV9wZXJpb2RpY9ECAZRPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlcj4+AAEYb3JpZ2luhAE0UGFsbGV0c09yaWdpbgAAPQ0AAAI1DQBBDQhAcGFsbGV0X3NjaGVkdWxlcixSZXRyeUNvbmZpZwQYUGVyaW9kASgADAE0dG90YWxfcmV0cmllcwgBCHU4AAEkcmVtYWluaW5nCAEIdTgAARhwZXJpb2QoARhQZXJpb2QAAEUNDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFcnJvcgQEVAABFEBGYWlsZWRUb1NjaGVkdWxlAAAEZEZhaWxlZCB0byBzY2hlZHVsZSBhIGNhbGwgTm90Rm91bmQAAQR8Q2Fubm90IGZpbmQgdGhlIHNjaGVkdWxlZCBjYWxsLlxUYXJnZXRCbG9ja051bWJlckluUGFzdAACBKRHaXZlbiB0YXJnZXQgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LkhSZXNjaGVkdWxlTm9DaGFuZ2UAAwTwUmVzY2hlZHVsZSBmYWlsZWQgYmVjYXVzZSBpdCBkb2VzIG5vdCBjaGFuZ2Ugc2NoZWR1bGVkIHRpbWUuFE5hbWVkAAQE0EF0dGVtcHQgdG8gdXNlIGEgbm9uLW5hbWVkIGZ1bmN0aW9uIG9uIGEgbmFtZWQgdGFzay4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuSQ0AAAJNDQBNDQx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBLAAMATh1c2VkX2JhbmR3aWR0aFENATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2jFAQEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsZQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABRDQx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudCgBDHUzMgABPHVtcF90b3RhbF9ieXRlcygBDHUzMgABNGhybXBfb3V0Z29pbmdVDQGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AAFUNBCBCVHJlZU1hcAgESwHgBFYBWQ0ABABdDQAAAFkNDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudERIcm1wQ2hhbm5lbFVwZGF0ZQAACAEkbXNnX2NvdW50KAEMdTMyAAEsdG90YWxfYnl0ZXMoAQx1MzIAAF0NAAACYQ0AYQ0AAAQI4FkNAGUNBBhPcHRpb24EBFQBaQ0BCBBOb25lAAAAEFNvbWUEAGkNAAABAABpDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODhVcGdyYWRlR29BaGVhZAABCBRBYm9ydAAAABxHb0FoZWFkAAEAAG0NDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDhTZWdtZW50VHJhY2tlcgQESAEsAAwBOHVzZWRfYmFuZHdpZHRoUQ0BNFVzZWRCYW5kd2lkdGgAAThocm1wX3dhdGVybWFya3QBgE9wdGlvbjxyZWxheV9jaGFpbjo6QmxvY2tOdW1iZXI+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsZQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABxDQQYT3B0aW9uBARUAXUNAQgQTm9uZQAAABBTb21lBAB1DQAAAQAAdQ0MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAAeQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3RYTWVzc2FnaW5nU3RhdGVTbmFwc2hvdAAAEAEwZG1xX21xY19oZWFkLAFEcmVsYXlfY2hhaW46Okhhc2gAAZxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHl9DQGMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAUBpbmdyZXNzX2NoYW5uZWxzgQ0BiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AATxlZ3Jlc3NfY2hhbm5lbHOBDQGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgAAfQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3SMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAAgBPHJlbWFpbmluZ19jb3VudCgBDHUzMgABOHJlbWFpbmluZ19zaXplKAEMdTMyAACBDQAAAoUNAIUNAAAECOCJDQCJDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OExBYnJpZGdlZEhybXBDaGFubmVsAAAYATBtYXhfY2FwYWNpdHkoAQx1MzIAAThtYXhfdG90YWxfc2l6ZSgBDHUzMgABQG1heF9tZXNzYWdlX3NpemUoAQx1MzIAASRtc2dfY291bnQoAQx1MzIAASh0b3RhbF9zaXplKAEMdTMyAAEgbXFjX2hlYWTFAQEwT3B0aW9uPEhhc2g+AACNDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OGRBYnJpZGdlZEhvc3RDb25maWd1cmF0aW9uAAAoATRtYXhfY29kZV9zaXplKAEMdTMyAAFIbWF4X2hlYWRfZGF0YV9zaXplKAEMdTMyAAFYbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudCgBDHUzMgABVG1heF91cHdhcmRfcXVldWVfc2l6ZSgBDHUzMgABXG1heF91cHdhcmRfbWVzc2FnZV9zaXplKAEMdTMyAAGQbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlKAEMdTMyAAGIaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZSgBDHUzMgABbHZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bigBLEJsb2NrTnVtYmVyAAFgdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5KAEsQmxvY2tOdW1iZXIAAVBhc3luY19iYWNraW5nX3BhcmFtc5ENAUhBc3luY0JhY2tpbmdQYXJhbXMAAJENEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmdIQXN5bmNCYWNraW5nUGFyYW1zAAAIAUxtYXhfY2FuZGlkYXRlX2RlcHRoKAEMdTMyAAFQYWxsb3dlZF9hbmNlc3RyeV9sZW4oAQx1MzIAAJUNCJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50RE1lc3NhZ2VRdWV1ZUNoYWluAAAEACwBJFJlbGF5SGFzaAAAmQ0EIEJUcmVlTWFwCARLAeAEVgGVDQAEAJ0NAAAAnQ0AAAKhDQChDQAABAjglQ0ApQ0AAAKpDQCpDQhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAeAACAEkcmVjaXBpZW504AEISWQAARBkYXRhFAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAArQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEYTE92ZXJsYXBwaW5nVXBncmFkZXMAAAQZAUF0dGVtcHQgdG8gdXBncmFkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdoaWxlIGV4aXN0aW5nIHVwZ3JhZGUgcGVuZGluZy5QUHJvaGliaXRlZEJ5UG9sa2Fkb3QAAQRNAVBvbGthZG90IGN1cnJlbnRseSBwcm9oaWJpdHMgdGhpcyBwYXJhY2hhaW4gZnJvbSB1cGdyYWRpbmcgaXRzIHZhbGlkYXRpb24gZnVuY3Rpb24uGFRvb0JpZwACCEUBVGhlIHN1cHBsaWVkIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGNvbXBpbGVkIGludG8gYSBibG9iIGxhcmdlciB0aGFuIFBvbGthZG90IGlzPHdpbGxpbmcgdG8gcnVuLmhWYWxpZGF0aW9uRGF0YU5vdEF2YWlsYWJsZQADBB0BVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWxpZGF0aW9uIGRhdGEgZGlkIG5vdCBydW4gdGhpcyBibG9jay50SG9zdENvbmZpZ3VyYXRpb25Ob3RBdmFpbGFibGUABAQpAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgaG9zdCBjb25maWd1cmF0aW9uIGRpZCBub3QgcnVuIHRoaXMgYmxvY2suME5vdFNjaGVkdWxlZAAFBNhObyB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVwZ3JhZGUgaXMgY3VycmVudGx5IHNjaGVkdWxlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQusQ0MKHBhbGxldF94Y20YcGFsbGV0LFF1ZXJ5U3RhdHVzBCxCbG9ja051bWJlcgEoAQwcUGVuZGluZxABJHJlc3BvbmRlcqkEAURWZXJzaW9uZWRMb2NhdGlvbgABTG1heWJlX21hdGNoX3F1ZXJpZXK1DQFkT3B0aW9uPFZlcnNpb25lZExvY2F0aW9uPgABMG1heWJlX25vdGlmebkNAUBPcHRpb248KHU4LCB1OCk+AAEcdGltZW91dCgBLEJsb2NrTnVtYmVyAAAAPFZlcnNpb25Ob3RpZmllcggBGG9yaWdpbqkEAURWZXJzaW9uZWRMb2NhdGlvbgABJGlzX2FjdGl2ZUQBEGJvb2wAAQAUUmVhZHkIASByZXNwb25zZcENAURWZXJzaW9uZWRSZXNwb25zZQABCGF0KAEsQmxvY2tOdW1iZXIAAgAAtQ0EGE9wdGlvbgQEVAGpBAEIEE5vbmUAAAAQU29tZQQAqQQAAAEAALkNBBhPcHRpb24EBFQBvQ0BCBBOb25lAAAAEFNvbWUEAL0NAAABAAC9DQAABAgICADBDQgMeGNtRFZlcnNpb25lZFJlc3BvbnNlAAEMCFYzBAAdBQEwdjM6OlJlc3BvbnNlAAMACFY0BACJBQEwdjQ6OlJlc3BvbnNlAAQACFY1BADVBQEwdjU6OlJlc3BvbnNlAAUAAMUNAAAECCipBADJDQAABAwY5CgAzQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHRDQRTAAAEANUNARhWZWM8VD4AANENAAAECKkEKADVDQAAAtENANkNDChwYWxsZXRfeGNtGHBhbGxldFRWZXJzaW9uTWlncmF0aW9uU3RhZ2UAARBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAABcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQBQTm90aWZ5Q3VycmVudFRhcmdldHMEAJEGATxPcHRpb248VmVjPHU4Pj4AAgBoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAwAA3Q0AAAQMKABhBgDhDQwocGFsbGV0X3hjbRhwYWxsZXRoUmVtb3RlTG9ja2VkRnVuZ2libGVSZWNvcmQISENvbnN1bWVySWRlbnRpZmllcgFwME1heENvbnN1bWVycwAAEAEYYW1vdW50QAEQdTEyOAABFG93bmVyqQQBRFZlcnNpb25lZExvY2F0aW9uAAEYbG9ja2VyqQQBRFZlcnNpb25lZExvY2F0aW9uAAEkY29uc3VtZXJz5Q0B0EJvdW5kZWRWZWM8KENvbnN1bWVySWRlbnRpZmllciwgdTEyOCksIE1heENvbnN1bWVycz4AAOUNDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6Q0EUwAABADtDQEYVmVjPFQ+AADpDQAABAhwQADtDQAAAukNAPENDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB9Q0EUwAABAD5DQEYVmVjPFQ+AAD1DQAABAhAqQQA+Q0AAAL1DQD9DQgocGFsbGV0X3hjbVhBdXRob3JpemVkQWxpYXNlc0VudHJ5CBhUaWNrZXQBAQ4MTUFYAQUOAAgBIGFsaWFzZXJzCQ4BeEJvdW5kZWRWZWM8T3JpZ2luQWxpYXNlciwgTUFYPgABGHRpY2tldAEOARhUaWNrZXQAAAEOEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxxzdG9yYWdlIERpc2FibGVkAAAAAAUODChwYWxsZXRfeGNtGHBhbGxldFBNYXhBdXRob3JpemVkQWxpYXNlcwAAAAAJDgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQ0OBFMAAAQAEQ4BGFZlYzxUPgAADQ4MQHhjbV9ydW50aW1lX2FwaXNIYXV0aG9yaXplZF9hbGlhc2VzNE9yaWdpbkFsaWFzZXIAAAgBIGxvY2F0aW9uqQQBRFZlcnNpb25lZExvY2F0aW9uAAEYZXhwaXJ5ZQYBLE9wdGlvbjx1NjQ+AAARDgAAAg0OABUODChwYWxsZXRfeGNtGHBhbGxldBRFcnJvcgQEVAABcCxVbnJlYWNoYWJsZQAACF0BVGhlIGRlc2lyZWQgZGVzdGluYXRpb24gd2FzIHVucmVhY2hhYmxlLCBnZW5lcmFsbHkgYmVjYXVzZSB0aGVyZSBpcyBhIG5vIHdheSBvZiByb3V0aW5nGHRvIGl0LixTZW5kRmFpbHVyZQABCEEBVGhlcmUgd2FzIHNvbWUgb3RoZXIgaXNzdWUgKGkuZS4gbm90IHRvIGRvIHdpdGggcm91dGluZykgaW4gc2VuZGluZyB0aGUgbWVzc2FnZS7IUGVyaGFwcyBhIGxhY2sgb2Ygc3BhY2UgZm9yIGJ1ZmZlcmluZyB0aGUgbWVzc2FnZS4gRmlsdGVyZWQAAgScVGhlIG1lc3NhZ2UgZXhlY3V0aW9uIGZhaWxzIHRoZSBmaWx0ZXIuSFVud2VpZ2hhYmxlTWVzc2FnZQADBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5gRGVzdGluYXRpb25Ob3RJbnZlcnRpYmxlAAQE3FRoZSBkZXN0aW5hdGlvbiBgTG9jYXRpb25gIHByb3ZpZGVkIGNhbm5vdCBiZSBpbnZlcnRlZC4URW1wdHkABQSAVGhlIGFzc2V0cyB0byBiZSBzZW50IGFyZSBlbXB0eS44Q2Fubm90UmVhbmNob3IABgQ1AUNvdWxkIG5vdCByZS1hbmNob3IgdGhlIGFzc2V0cyB0byBkZWNsYXJlIHRoZSBmZWVzIGZvciB0aGUgZGVzdGluYXRpb24gY2hhaW4uNFRvb01hbnlBc3NldHMABwTEVG9vIG1hbnkgYXNzZXRzIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLjRJbnZhbGlkT3JpZ2luAAgEeE9yaWdpbiBpcyBpbnZhbGlkIGZvciBzZW5kaW5nLihCYWRWZXJzaW9uAAkEIQFUaGUgdmVyc2lvbiBvZiB0aGUgYFZlcnNpb25lZGAgdmFsdWUgdXNlZCBpcyBub3QgYWJsZSB0byBiZSBpbnRlcnByZXRlZC4sQmFkTG9jYXRpb24ACghBAVRoZSBnaXZlbiBsb2NhdGlvbiBjb3VsZCBub3QgYmUgdXNlZCAoZS5nLiBiZWNhdXNlIGl0IGNhbm5vdCBiZSBleHByZXNzZWQgaW4gdGhlYGRlc2lyZWQgdmVyc2lvbiBvZiBYQ00pLjhOb1N1YnNjcmlwdGlvbgALBLxUaGUgcmVmZXJlbmNlZCBzdWJzY3JpcHRpb24gY291bGQgbm90IGJlIGZvdW5kLkRBbHJlYWR5U3Vic2NyaWJlZAAMBBEBVGhlIGxvY2F0aW9uIGlzIGludmFsaWQgc2luY2UgaXQgYWxyZWFkeSBoYXMgYSBzdWJzY3JpcHRpb24gZnJvbSB1cy5YQ2Fubm90Q2hlY2tPdXRUZWxlcG9ydAANBCkBQ291bGQgbm90IGNoZWNrLW91dCB0aGUgYXNzZXRzIGZvciB0ZWxlcG9ydGF0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4oTG93QmFsYW5jZQAOBEEBVGhlIG93bmVyIGRvZXMgbm90IG93biAoYWxsKSBvZiB0aGUgYXNzZXQgdGhhdCB0aGV5IHdpc2ggdG8gZG8gdGhlIG9wZXJhdGlvbiBvbi4wVG9vTWFueUxvY2tzAA8EwFRoZSBhc3NldCBvd25lciBoYXMgdG9vIG1hbnkgbG9ja3Mgb24gdGhlIGFzc2V0LkxBY2NvdW50Tm90U292ZXJlaWduABAEMQFUaGUgZ2l2ZW4gYWNjb3VudCBpcyBub3QgYW4gaWRlbnRpZmlhYmxlIHNvdmVyZWlnbiBhY2NvdW50IGZvciBhbnkgbG9jYXRpb24uKEZlZXNOb3RNZXQAEQQpAVRoZSBvcGVyYXRpb24gcmVxdWlyZWQgZmVlcyB0byBiZSBwYWlkIHdoaWNoIHRoZSBpbml0aWF0b3IgY291bGQgbm90IG1lZXQuMExvY2tOb3RGb3VuZAASBPRBIHJlbW90ZSBsb2NrIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBjb3VsZCBub3QgYmUgZm91bmQuFEluVXNlABMESQFUaGUgdW5sb2NrIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCBiZWNhdXNlIHRoZXJlIGFyZSBzdGlsbCBjb25zdW1lcnMgb2YgdGhlIGxvY2suaEludmFsaWRBc3NldFVua25vd25SZXNlcnZlABUE8EludmFsaWQgYXNzZXQsIHJlc2VydmUgY2hhaW4gY291bGQgbm90IGJlIGRldGVybWluZWQgZm9yIGl0LnhJbnZhbGlkQXNzZXRVbnN1cHBvcnRlZFJlc2VydmUAFgRFAUludmFsaWQgYXNzZXQsIGRvIG5vdCBzdXBwb3J0IHJlbW90ZSBhc3NldCByZXNlcnZlcyB3aXRoIGRpZmZlcmVudCBmZWVzIHJlc2VydmVzLjxUb29NYW55UmVzZXJ2ZXMAFwRJAVRvbyBtYW55IGFzc2V0cyB3aXRoIGRpZmZlcmVudCByZXNlcnZlIGxvY2F0aW9ucyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci5gTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlABgEfExvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZS5gVG9vTWFueUF1dGhvcml6ZWRBbGlhc2VzABkEuFRvbyBtYW55IGxvY2F0aW9ucyBhdXRob3JpemVkIHRvIGFsaWFzIG9yaWdpbi40RXhwaXJlc0luUGFzdAAaBIxFeHBpcnkgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LjRBbGlhc05vdEZvdW5kABsE0FRoZSBhbGlhcyB0byByZW1vdmUgYXV0aG9yaXphdGlvbiBmb3Igd2FzIG5vdCBmb3VuZC6ETG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yCAEUaW5kZXgIAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3IZDgE4RXhlY3V0aW9uRXJyb3IAHAg1AUxvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZSB3aXRoIHRoZSBhY3R1YWwgWENNIGVycm9yIGFuZCB0aGUgaW5kZXggb2YgdGhliGluc3RydWN0aW9uIHRoYXQgY2F1c2VkIHRoZSBlcnJvci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuGQ4MKHBhbGxldF94Y20YZXJyb3JzOEV4ZWN1dGlvbkVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAHQ4MTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAeAEUwAABAAhDgEsQlRyZWVTZXQ8VD4AACEOBCBCVHJlZVNldAQEVAHgAAQAJQ4AAAAlDgAAAuAAKQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEtDgRTAAAEADUOARhWZWM8VD4AAC0OCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABQBJHJlY2lwaWVudOABGFBhcmFJZAABFHN0YXRlMQ4BNE91dGJvdW5kU3RhdGUAATRzaWduYWxzX2V4aXN0RAEQYm9vbAABLGZpcnN0X2luZGV4gAEMdTE2AAEobGFzdF9pbmRleIABDHUxNgAAMQ4IZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU0T3V0Ym91bmRTdGF0ZQABCAhPawAAACRTdXNwZW5kZWQAAQAANQ4AAAItDgA5DgAABAjggAA9DgxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAEEOCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlPFF1ZXVlQ29uZmlnRGF0YQAADAFEc3VzcGVuZF90aHJlc2hvbGQoAQx1MzIAAThkcm9wX3RocmVzaG9sZCgBDHUzMgABQHJlc3VtZV90aHJlc2hvbGQoAQx1MzIAAEUODGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABFDhCYWRRdWV1ZUNvbmZpZwAABBEBU2V0dGluZyB0aGUgcXVldWUgY29uZmlnIGZhaWxlZCBzaW5jZSBvbmUgb2YgaXRzIHZhbHVlcyB3YXMgaW52YWxpZC5AQWxyZWFkeVN1c3BlbmRlZAABBIxUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgc3VzcGVuZGVkLjhBbHJlYWR5UmVzdW1lZAACBIRUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgcmVzdW1lZC50VG9vTWFueUFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMAAwSwVGhlcmUgYXJlIHRvbyBtYW55IGFjdGl2ZSBvdXRib3VuZCBjaGFubmVscy4YVG9vQmlnAAQEXFRoZSBtZXNzYWdlIGlzIHRvbyBiaWcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkOCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZSRCb29rU3RhdGUENE1lc3NhZ2VPcmlnaW4BcQYAGAEUYmVnaW4oASRQYWdlSW5kZXgAAQxlbmQoASRQYWdlSW5kZXgAARRjb3VudCgBJFBhZ2VJbmRleAABQHJlYWR5X25laWdoYm91cnNNDgGET3B0aW9uPE5laWdoYm91cnM8TWVzc2FnZU9yaWdpbj4+AAE0bWVzc2FnZV9jb3VudBgBDHU2NAABEHNpemUYAQx1NjQAAE0OBBhPcHRpb24EBFQBUQ4BCBBOb25lAAAAEFNvbWUEAFEOAAABAABRDghQcGFsbGV0X21lc3NhZ2VfcXVldWUoTmVpZ2hib3VycwQ0TWVzc2FnZU9yaWdpbgFxBgAIARBwcmV2cQYBNE1lc3NhZ2VPcmlnaW4AARBuZXh0cQYBNE1lc3NhZ2VPcmlnaW4AAFUOAAAECHEGKABZDghQcGFsbGV0X21lc3NhZ2VfcXVldWUQUGFnZQgQU2l6ZQEoIEhlYXBTaXplAAAYASRyZW1haW5pbmcoARBTaXplAAE4cmVtYWluaW5nX3NpemUoARBTaXplAAEsZmlyc3RfaW5kZXgoARBTaXplAAEUZmlyc3QoARBTaXplAAEQbGFzdCgBEFNpemUAARBoZWFwXQ4BnEJvdW5kZWRWZWM8dTgsIEludG9VMzI8SGVhcFNpemUsIFNpemU+PgAAXQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABhDgxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEVycm9yBARUAAEkLE5vdFJlYXBhYmxlAAAISQFQYWdlIGlzIG5vdCByZWFwYWJsZSBiZWNhdXNlIGl0IGhhcyBpdGVtcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIGFuZCBpcyBub3Qgb2xkHGVub3VnaC4YTm9QYWdlAAEEhFBhZ2UgdG8gYmUgcmVhcGVkIGRvZXMgbm90IGV4aXN0LiROb01lc3NhZ2UAAgSoVGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBjb3VsZCBub3QgYmUgZm91bmQuQEFscmVhZHlQcm9jZXNzZWQAAwQBAVRoZSBtZXNzYWdlIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZCBhZ2Fpbi4YUXVldWVkAAQErFRoZSBtZXNzYWdlIGlzIHF1ZXVlZCBmb3IgZnV0dXJlIGV4ZWN1dGlvbi5ISW5zdWZmaWNpZW50V2VpZ2h0AAUEGQFUaGVyZSBpcyB0ZW1wb3JhcmlseSBub3QgZW5vdWdoIHdlaWdodCB0byBjb250aW51ZSBzZXJ2aWNpbmcgbWVzc2FnZXMuYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQAGEKhUaGlzIG1lc3NhZ2UgaXMgdGVtcG9yYXJpbHkgdW5wcm9jZXNzYWJsZS4AWQFTdWNoIGVycm9ycyBhcmUgZXhwZWN0ZWQsIGJ1dCBub3QgZ3VhcmFudGVlZCwgdG8gcmVzb2x2ZSB0aGVtc2VsdmVzIGV2ZW50dWFsbHkgdGhyb3VnaCRyZXRyeWluZy4sUXVldWVQYXVzZWQABwzsVGhlIHF1ZXVlIGlzIHBhdXNlZCBhbmQgbm8gbWVzc2FnZSBjYW4gYmUgZXhlY3V0ZWQgZnJvbSBpdC4AHQFUaGlzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgYW5kIG1heSByZXNvbHZlIGluIHRoZSBmdXR1cmUgYnkgcmUtdHJ5aW5nLkxSZWN1cnNpdmVEaXNhbGxvd2VkAAgEMQFBbm90aGVyIGNhbGwgaXMgaW4gcHJvZ3Jlc3MgYW5kIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgdGhpcyBjYWxsIGNhbiBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmUODERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQURXJyb3IEBFQAAQQcT25nb2luZwAABOhUaGUgb3BlcmF0aW9uIGNhbm5vdCBjb21wbGV0ZSBzaW5jZSBzb21lIE1CTXMgYXJlIG9uZ29pbmcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmkODCBvcm1sX3hjbRhtb2R1bGUURXJyb3IEBFQAAQwsVW5yZWFjaGFibGUAAAgNAVRoZSBtZXNzYWdlIGFuZCBkZXN0aW5hdGlvbiBjb21iaW5hdGlvbiB3YXMgbm90IHJlY29nbml6ZWQgYXMgYmVpbmcocmVhY2hhYmxlLixTZW5kRmFpbHVyZQABCAUBVGhlIG1lc3NhZ2UgYW5kIGRlc3RpbmF0aW9uIHdhcyByZWNvZ25pemVkIGFzIGJlaW5nIHJlYWNoYWJsZSBidXSUdGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgY29tcGxldGVkLihCYWRWZXJzaW9uAAII7FRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlMGludGVycHJldGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5tDgwwb3JtbF94dG9rZW5zGG1vZHVsZRRFcnJvcgQEVAABUERBc3NldEhhc05vUmVzZXJ2ZQAABHhBc3NldCBoYXMgbm8gcmVzZXJ2ZSBsb2NhdGlvbi5UTm90Q3Jvc3NDaGFpblRyYW5zZmVyAAEEZE5vdCBjcm9zcy1jaGFpbiB0cmFuc2Zlci4sSW52YWxpZERlc3QAAgR0SW52YWxpZCB0cmFuc2ZlciBkZXN0aW5hdGlvbi6ETm90Q3Jvc3NDaGFpblRyYW5zZmVyYWJsZUN1cnJlbmN5AAMEpEN1cnJlbmN5IGlzIG5vdCBjcm9zcy1jaGFpbiB0cmFuc2ZlcmFibGUuSFVud2VpZ2hhYmxlTWVzc2FnZQAEBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5IWGNtRXhlY3V0aW9uRmFpbGVkAAUEVFhDTSBleGVjdXRpb24gZmFpbGVkLjhDYW5ub3RSZWFuY2hvcgAGCOhDb3VsZCBub3QgcmUtYW5jaG9yIHRoZSBhc3NldHMgdG8gZGVjbGFyZSB0aGUgZmVlcyBmb3IgdGhlSGRlc3RpbmF0aW9uIGNoYWluLjxJbnZhbGlkQW5jZXN0cnkABwTEQ291bGQgbm90IGdldCBhbmNlc3RyeSBvZiBhc3NldCByZXNlcnZlIGxvY2F0aW9uLjBJbnZhbGlkQXNzZXQACARUVGhlIEFzc2V0IGlzIGludmFsaWQuYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQAJBNxUaGUgZGVzdGluYXRpb24gYExvY2F0aW9uYCBwcm92aWRlZCBjYW5ub3QgYmUgaW52ZXJ0ZWQuKEJhZFZlcnNpb24ACgjsVGhlIHZlcnNpb24gb2YgdGhlIGBWZXJzaW9uZWRgIHZhbHVlIHVzZWQgaXMgbm90IGFibGUgdG8gYmUwaW50ZXJwcmV0ZWQudERpc3RpbmN0UmVzZXJ2ZUZvckFzc2V0QW5kRmVlAAsI/FdlIHRyaWVkIHNlbmRpbmcgZGlzdGluY3QgYXNzZXQgYW5kIGZlZSBidXQgdGhleSBoYXZlIGRpZmZlcmVudDxyZXNlcnZlIGNoYWlucy4cWmVyb0ZlZQAMBEBUaGUgZmVlIGlzIHplcm8uKFplcm9BbW91bnQADQSYVGhlIHRyYW5zZmVycmluZyBhc3NldCBhbW91bnQgaXMgemVyby5YVG9vTWFueUFzc2V0c0JlaW5nU2VudAAOBNBUaGUgbnVtYmVyIG9mIGFzc2V0cyB0byBiZSBzZW50IGlzIG92ZXIgdGhlIG1heGltdW0uVEFzc2V0SW5kZXhOb25FeGlzdGVudAAPBNhUaGUgc3BlY2lmaWVkIGluZGV4IGRvZXMgbm90IGV4aXN0IGluIGEgQXNzZXRzIHN0cnVjdC4wRmVlTm90RW5vdWdoABAESEZlZSBpcyBub3QgZW5vdWdoLlBOb3RTdXBwb3J0ZWRMb2NhdGlvbgARBFhOb3Qgc3VwcG9ydGVkIExvY2F0aW9uTE1pblhjbUZlZU5vdERlZmluZWQAEgTUTWluWGNtRmVlIG5vdCByZWdpc3RlcmVkIGZvciBjZXJ0YWluIHJlc2VydmUgbG9jYXRpb24sUmF0ZUxpbWl0ZWQAEwSkQXNzZXQgdHJhbnNmZXIgaXMgbGltaXRlZCBieSBSYXRlTGltaXRlci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQucQ4AAAQInJwAdQ4AAAQInBQAeQ4MTG9ybWxfdW5rbm93bl90b2tlbnMYbW9kdWxlFEVycm9yBARUAAEMNEJhbGFuY2VUb29Mb3cAAARcVGhlIGJhbGFuY2UgaXMgdG9vIGxvdy48QmFsYW5jZU92ZXJmbG93AAEEtFRoZSBvcGVyYXRpb24gd2lsbCBjYXVzZSBiYWxhbmNlIHRvIG92ZXJmbG93LjhVbmhhbmRsZWRBc3NldAACBEBVbmhhbmRsZWQgYXNzZXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ln0ODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBgQ4EUwAABACFDgEYVmVjPFQ+AACBDgxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQ0Q2FuZGlkYXRlSW5mbwgkQWNjb3VudElkAQAcQmFsYW5jZQFAAAgBDHdobwABJEFjY291bnRJZAABHGRlcG9zaXRAARxCYWxhbmNlAACFDgAAAoEOAIkODGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFcnJvcgQEVAABRERUb29NYW55Q2FuZGlkYXRlcwAABIxUaGUgcGFsbGV0IGhhcyB0b28gbWFueSBjYW5kaWRhdGVzLlxUb29GZXdFbGlnaWJsZUNvbGxhdG9ycwABBKxMZWF2aW5nIHdvdWxkIHJlc3VsdCBpbiB0b28gZmV3IGNhbmRpZGF0ZXMuQEFscmVhZHlDYW5kaWRhdGUAAgR8QWNjb3VudCBpcyBhbHJlYWR5IGEgY2FuZGlkYXRlLjBOb3RDYW5kaWRhdGUAAwRsQWNjb3VudCBpcyBub3QgYSBjYW5kaWRhdGUuUFRvb01hbnlJbnZ1bG5lcmFibGVzAAQEhFRoZXJlIGFyZSB0b28gbWFueSBJbnZ1bG5lcmFibGVzLkxBbHJlYWR5SW52dWxuZXJhYmxlAAUEjEFjY291bnQgaXMgYWxyZWFkeSBhbiBJbnZ1bG5lcmFibGUuPE5vdEludnVsbmVyYWJsZQAGBHxBY2NvdW50IGlzIG5vdCBhbiBJbnZ1bG5lcmFibGUuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAcEnEFjY291bnQgaGFzIG5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElELlhWYWxpZGF0b3JOb3RSZWdpc3RlcmVkAAgEjFZhbGlkYXRvciBJRCBpcyBub3QgeWV0IHJlZ2lzdGVyZWQubEluc2VydFRvQ2FuZGlkYXRlTGlzdEZhaWxlZAAJBJxDb3VsZCBub3QgaW5zZXJ0IGluIHRoZSBjYW5kaWRhdGUgbGlzdC50UmVtb3ZlRnJvbUNhbmRpZGF0ZUxpc3RGYWlsZWQACgSkQ291bGQgbm90IHJlbW92ZSBmcm9tIHRoZSBjYW5kaWRhdGUgbGlzdC40RGVwb3NpdFRvb0xvdwALBPROZXcgZGVwb3NpdCBhbW91bnQgd291bGQgYmUgYmVsb3cgdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQuZFVwZGF0ZUNhbmRpZGF0ZUxpc3RGYWlsZWQADASQQ291bGQgbm90IHVwZGF0ZSB0aGUgY2FuZGlkYXRlIGxpc3QuQEluc3VmZmljaWVudEJvbmQADQQpAURlcG9zaXQgYW1vdW50IGlzIHRvbyBsb3cgdG8gdGFrZSB0aGUgdGFyZ2V0J3Mgc2xvdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QuUFRhcmdldElzTm90Q2FuZGlkYXRlAA4ELQFUaGUgdGFyZ2V0IGFjY291bnQgdG8gYmUgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGlzIG5vdCBhIGNhbmRpZGF0ZS5ASWRlbnRpY2FsRGVwb3NpdAAPBA0BVGhlIHVwZGF0ZWQgZGVwb3NpdCBhbW91bnQgaXMgZXF1YWwgdG8gdGhlIGFtb3VudCBhbHJlYWR5IHJlc2VydmVkLkBJbnZhbGlkVW5yZXNlcnZlABAEPQFDYW5ub3QgbG93ZXIgY2FuZGlkYWN5IGJvbmQgd2hpbGUgb2NjdXB5aW5nIGEgZnV0dXJlIGNvbGxhdG9yIHNsb3QgaW4gdGhlIGxpc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lo0OAAACkQ4AkQ4AAAQIAK0GAJUOAAACmQ4AmQ4AAAQIKJ0OAJ0ODChzcF9zdGFraW5nHG9mZmVuY2U8T2ZmZW5jZVNldmVyaXR5AAAEACkDARxQZXJiaWxsAAChDgAABAilDhQApQ4MHHNwX2NvcmUYY3J5cHRvJEtleVR5cGVJZAAABAC4ARxbdTg7IDRdAACpDgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEVycm9yBARUAAEUMEludmFsaWRQcm9vZgAABGBJbnZhbGlkIG93bmVyc2hpcCBwcm9vZi5cTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQAAQScTm8gYXNzb2NpYXRlZCB2YWxpZGF0b3IgSUQgZm9yIGFjY291bnQuNER1cGxpY2F0ZWRLZXkAAgRkUmVnaXN0ZXJlZCBkdXBsaWNhdGUga2V5LhhOb0tleXMAAwSkTm8ga2V5cyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWNjb3VudC4kTm9BY2NvdW50AAQEGQFLZXkgc2V0dGluZyBhY2NvdW50IGlzIG5vdCBsaXZlLCBzbyBpdCdzIGltcG9zc2libGUgdG8gYXNzb2NpYXRlIGtleXMuBHRFcnJvciBmb3IgdGhlIHNlc3Npb24gcGFsbGV0Lq0ODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBsQYEUwAABACxDgEYVmVjPFQ+AACxDgAAArEGALUOCEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAYAQx1NjQAALkOAAAECLUOKAC9DgQgQlRyZWVNYXAIBEsBwQ4EVgHFDgAEANEOAAAAwQ4AAAQIIQGpAgDFDgxEcGFsbGV0X2VtYV9vcmFjbGUUdHlwZXMsT3JhY2xlRW50cnkELEJsb2NrTnVtYmVyASgAFAEUcHJpY2XBCAEUUHJpY2UAARh2b2x1bWXJDgE8Vm9sdW1lPEJhbGFuY2U+AAEkbGlxdWlkaXR5zQ4BSExpcXVpZGl0eTxCYWxhbmNlPgABPHNoYXJlc19pc3N1YW5jZfUBATxPcHRpb248QmFsYW5jZT4AASh1cGRhdGVkX2F0KAEsQmxvY2tOdW1iZXIAAMkODDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUYVm9sdW1lBBxCYWxhbmNlAUAAEAEQYV9pbkABHEJhbGFuY2UAARRiX291dEABHEJhbGFuY2UAARRhX291dEABHEJhbGFuY2UAARBiX2luQAEcQmFsYW5jZQAAzQ4MOGh5ZHJhZHhfdHJhaXRzGG9yYWNsZSRMaXF1aWRpdHkEHEJhbGFuY2UBQAAIAQRhQAEcQmFsYW5jZQABBGJAARxCYWxhbmNlAADRDgAAAtUOANUOAAAECMEOxQ4A2Q4AAAQMIQGpAiEDAN0OAAAECMUOKADhDgxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBwQ4EUwAABADlDgEsQlRyZWVTZXQ8VD4AAOUOBCBCVHJlZVNldAQEVAHBDgAEAOkOAAAA6Q4AAALBDgDtDgAABAwhAakCAADxDgxEcGFsbGV0X2VtYV9vcmFjbGUYcGFsbGV0FEVycm9yBARUAAEgUFRvb01hbnlVbmlxdWVFbnRyaWVzAAAAQE9uVHJhZGVWYWx1ZVplcm8AAQA4T3JhY2xlTm90Rm91bmQAAgA0QXNzZXROb3RGb3VuZAADBDxBc3NldCBub3QgZm91bmRcU291cmNlQWxyZWFkeVJlZ2lzdGVyZWQABASoVGhlIGV4dGVybmFsIHNvdXJjZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuOFNvdXJjZU5vdEZvdW5kAAUEiFRoZSBleHRlcm5hbCBzb3VyY2Ugd2FzIG5vdCBmb3VuZC40Tm90QXV0aG9yaXplZAAGBOhUaGUgY2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgZ2l2ZW4gKHNvdXJjZSwgcGFpcikuLFByaWNlSXNaZXJvAAcEXFByaWNlIG11c3Qgbm90IGJlIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvUODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB8QgEUwAABADtCAEYVmVjPFQ+AAD5DgxAcGFsbGV0X2Jyb2FkY2FzdBhwYWxsZXQURXJyb3IEBFQAAQhoRXhlY3V0aW9uQ2FsbFN0YWNrT3ZlcmZsb3cAAAT0VGhlIGV4ZWN1dGlvbiBjb250ZXh0IGNhbGwgc3RhY2sgaGFzIHJlYWNoZWQgaXRzIG1heGltdW0gc2l6ZWxFeGVjdXRpb25DYWxsU3RhY2tVbmRlcmZsb3cAAQQNAVRoZSBleGVjdXRpb24gY29udGV4dCBjYWxsIHN0YWNrIGlzIGVtcHR5LCB1bmFibGUgdG8gZGVjcmVhc2UgbGV2ZWwEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu/Q4MUHBhbGxldF9mZWVfcHJvY2Vzc29yGHBhbGxldBRFcnJvcgQEVAABFChBbHJlYWR5SGR4AAAErEFzc2V0IGlzIGFscmVhZHkgSERYLCBubyBjb252ZXJzaW9uIG5lZWRlZC5AQ29udmVyc2lvbkZhaWxlZAABBEhDb252ZXJzaW9uIGZhaWxlZC44VHJhbnNmZXJGYWlsZWQAAgRAVHJhbnNmZXIgZmFpbGVkLkRQcmljZU5vdEF2YWlsYWJsZQADBKBTcG90IHByaWNlIG5vdCBhdmFpbGFibGUgZm9yIGFzc2V0IHBhaXIuKEFyaXRobWV0aWMABAR4QXJpdGhtZXRpYyBvdmVyZmxvdy91bmRlcmZsb3cuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgEPCChzcF9ydW50aW1lWEV4dHJpbnNpY0luY2x1c2lvbk1vZGUAAQg0QWxsRXh0cmluc2ljcwAAADRPbmx5SW5oZXJlbnRzAAEAAAUPCBxzcF9jb3JlOE9wYXF1ZU1ldGFkYXRhAAAEABQBHFZlYzx1OD4AAAkPBBhPcHRpb24EBFQBBQ8BCBBOb25lAAAAEFNvbWUEAAUPAAABAAANDwQYUmVzdWx0CARUAVEHBEUBEQ8BCAhPawQAUQcAAAAADEVycgQAEQ8AAAEAABEPDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBAAVDwFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EABkPAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAFQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAE0EENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAIAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgBUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAsANFVua25vd25PcmlnaW4ADAAAGQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQACAEIdTgAAgAAHQ8IMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGEhDwGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAIQ8EIEJUcmVlTWFwCARLASEBBFYBFAAEACUPAAAAJQ8AAAIpDwApDwAABAghARQALQ8IMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2theUQBEGJvb2wAASxmYXRhbF9lcnJvckQBEGJvb2wAARhlcnJvcnMdDwEwSW5oZXJlbnREYXRhAAAxDwwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAADUPBBhSZXN1bHQIBFQBOQ8ERQERDwEICE9rBAA5DwAAAAAMRXJyBAARDwAAAQAAOQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkYAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5GAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGVEARBib29sAAA9DwQYT3B0aW9uBARUAUEPAQgQTm9uZQAAABBTb21lBABBDwAAAQAAQQ8AAAJFDwBFDwAABAgUpQ4ASQ8ISHNwX2NvbnNlbnN1c19zbG90czBTbG90RHVyYXRpb24AAAQAGAEMdTY0AABNDwhcY3VtdWx1c19wcmltaXRpdmVzX2NvcmU0Q29sbGF0aW9uSW5mbwAAGAE8dXB3YXJkX21lc3NhZ2VzJAFIVmVjPFVwd2FyZE1lc3NhZ2U+AAFMaG9yaXpvbnRhbF9tZXNzYWdlc6UNAWBWZWM8T3V0Ym91bmRIcm1wTWVzc2FnZT4AAUxuZXdfdmFsaWRhdGlvbl9jb2RlUQ8BjE9wdGlvbjxyZWxheV9jaGFpbjo6VmFsaWRhdGlvbkNvZGU+AAFscHJvY2Vzc2VkX2Rvd253YXJkX21lc3NhZ2VzKAEMdTMyAAE4aHJtcF93YXRlcm1hcmsoAWByZWxheV9jaGFpbjo6QmxvY2tOdW1iZXIAASRoZWFkX2RhdGFhBAEgSGVhZERhdGEAAFEPBBhPcHRpb24EBFQBVQ8BCBBOb25lAAAAEFNvbWUEAFUPAAABAABVDwx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAAUARxWZWM8dTg+AABZDwAABAhdD2EPAF0PDExwb2xrYWRvdF9wcmltaXRpdmVzIHZzdGFnaW5nMENvcmVTZWxlY3RvcgAABAAIAQh1OAAAYQ8MTHBvbGthZG90X3ByaW1pdGl2ZXMgdnN0YWdpbmdAQ2xhaW1RdWV1ZU9mZnNldAAABAAIAQh1OAAAZQ8IhHBhbGxldF9jdXJyZW5jaWVzX3JwY19ydW50aW1lX2FwaSxBY2NvdW50RGF0YQQcQmFsYW5jZQFAAAwBEGZyZWVAARxCYWxhbmNlAAEgcmVzZXJ2ZWRAARxCYWxhbmNlAAEYZnJvemVuQAEcQmFsYW5jZQAAaQ8AAAJtDwBtDwAABAgoZQ8AcQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzTFJ1bnRpbWVEaXNwYXRjaEluZm8IHEJhbGFuY2UBQBhXZWlnaHQB5AAMARh3ZWlnaHTkARhXZWlnaHQAARRjbGFzcxkHATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWVAARxCYWxhbmNlAAB1DwxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQFAAAgBNGluY2x1c2lvbl9mZWV5DwF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXBAARxCYWxhbmNlAAB5DwQYT3B0aW9uBARUAX0PAQgQTm9uZQAAABBTb21lBAB9DwAAAQAAfQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQFAAAwBIGJhc2VfZmVlQAEcQmFsYW5jZQABHGxlbl9mZWVAARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZUABHEJhbGFuY2UAAIEPDAxldm0cYmFja2VuZBRCYXNpYwAACAEcYmFsYW5jZWABEFUyNTYAARRub25jZWABEFUyNTYAAIUPBBhPcHRpb24EBFQB5QMBCBBOb25lAAAAEFNvbWUEAOUDAAABAACJDwQYT3B0aW9uBARUAe0DAQgQTm9uZQAAABBTb21lBADtAwAAAQAAjQ8EGFJlc3VsdAgEVAGRDwRFASEHAQgIT2sEAJEPAAAAAAxFcnIEACEHAAABAACRDwgYZnBfZXZtPEV4ZWN1dGlvbkluZm9WMgQEVAEUABQBLGV4aXRfcmVhc29uRQgBKEV4aXRSZWFzb24AARR2YWx1ZRQBBFQAASB1c2VkX2dhc5UPARxVc2VkR2FzAAEsd2VpZ2h0X2luZm+ZDwFIT3B0aW9uPFdlaWdodEluZm8+AAEQbG9nc8EMASBWZWM8TG9nPgAAlQ8IGGZwX2V2bRxVc2VkR2FzAAAIASBzdGFuZGFyZGABEFUyNTYAASRlZmZlY3RpdmVgARBVMjU2AACZDwQYT3B0aW9uBARUAZ0PAQgQTm9uZQAAABBTb21lBACdDwAAAQAAnQ8IGGZwX2V2bShXZWlnaHRJbmZvAAAQAThyZWZfdGltZV9saW1pdGUGASxPcHRpb248dTY0PgABQHByb29mX3NpemVfbGltaXRlBgEsT3B0aW9uPHU2ND4AAThyZWZfdGltZV91c2FnZWUGASxPcHRpb248dTY0PgABQHByb29mX3NpemVfdXNhZ2VlBgEsT3B0aW9uPHU2ND4AAKEPBBhSZXN1bHQIBFQBpQ8ERQEhBwEICE9rBAClDwAAAAAMRXJyBAAhBwAAAQAApQ8IGGZwX2V2bTxFeGVjdXRpb25JbmZvVjIEBFQBWAAUASxleGl0X3JlYXNvbkUIAShFeGl0UmVhc29uAAEUdmFsdWVYAQRUAAEgdXNlZF9nYXOVDwEcVXNlZEdhcwABLHdlaWdodF9pbmZvmQ8BSE9wdGlvbjxXZWlnaHRJbmZvPgABEGxvZ3PBDAEgVmVjPExvZz4AAKkPBBhPcHRpb24EBFQB1QwBCBBOb25lAAAAEFNvbWUEANUMAAABAACtDwQYT3B0aW9uBARUAekMAQgQTm9uZQAAABBTb21lBADpDAAAAQAAsQ8EGE9wdGlvbgQEVAHtDAEIEE5vbmUAAAAQU29tZQQA7QwAAAEAALUPAAAEDKkPrQ+xDwC5DwAABAipD7EPAL0PBBhSZXN1bHQIBFQBwQ8ERQHFDwEICE9rBADBDwAAAAAMRXJyBADFDwAAAQAAwQ8AAAJhBgDFDwxAeGNtX3J1bnRpbWVfYXBpcxBmZWVzFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAAMkPBBhSZXN1bHQIBFQB5ARFAcUPAQgIT2sEAOQAAAAADEVycgQAxQ8AAAEAAM0PBBhSZXN1bHQIBFQBQARFAcUPAQgIT2sEAEAAAAAADEVycgQAxQ8AAAEAANEPBBhSZXN1bHQIBFQBLQYERQHFDwEICE9rBAAtBgAAAAAMRXJyBADFDwAAAQAA1Q8EGFJlc3VsdAgEVAHZDwRFAfEPAQgIT2sEANkPAAAAAAxFcnIEAPEPAAABAADZDwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuRENhbGxEcnlSdW5FZmZlY3RzBBRFdmVudAENBwAQAUBleGVjdXRpb25fcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAE4ZW1pdHRlZF9ldmVudHPdDwEoVmVjPEV2ZW50PgABJGxvY2FsX3hjbeEPAWBPcHRpb248VmVyc2lvbmVkWGNtPCgpPj4AAThmb3J3YXJkZWRfeGNtc+UPAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA3Q8AAAINBwDhDwQYT3B0aW9uBARUAfUEAQgQTm9uZQAAABBTb21lBAD1BAAAAQAA5Q8AAALpDwDpDwAABAipBO0PAO0PAAAC9QQA8Q8MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bhRFcnJvcgABCDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAA9Q8EGFJlc3VsdAgEVAH5DwRFAfEPAQgIT2sEAPkPAAAAAAxFcnIEAPEPAAABAAD5DwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuQFhjbURyeVJ1bkVmZmVjdHMEFEV2ZW50AQ0HAAwBQGV4ZWN1dGlvbl9yZXN1bHSFCAEcT3V0Y29tZQABOGVtaXR0ZWRfZXZlbnRz3Q8BKFZlYzxFdmVudD4AAThmb3J3YXJkZWRfeGNtc+UPAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA/Q8EGFJlc3VsdAgEVAEABEUBARABCAhPawQAAAAAAAAMRXJyBAABEAAAAQAAARAMQHhjbV9ydW50aW1lX2FwaXMsY29udmVyc2lvbnMURXJyb3IAAQgsVW5zdXBwb3J0ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAAAFEAQYT3B0aW9uBARUAQkQAQgQTm9uZQAAABBTb21lBAAJEAAAAQAACRAAAAQQKCghAyEBAA0QEDxoeWRyYWR4X3J1bnRpbWUMZXZtTGFhdmVfdHJhZGVfZXhlY3V0b3IgUG9vbERhdGEEHEJhbGFuY2UBQAAQARxyZXNlcnZlKAEcQXNzZXRJZAABGGF0b2tlbigBHEFzc2V0SWQAASxsaXF1ZGl0eV9pbkABHEJhbGFuY2UAATBsaXF1ZGl0eV9vdXRAARxCYWxhbmNlAAAREAAAAg0QABUQBBhSZXN1bHQIBFQBcARFAVkIAQgIT2sEAHAAAAAADEVycgQAWQgAAAEAABkQBBhPcHRpb24EBFQBWQgBCBBOb25lAAAAEFNvbWUEAFkIAAABAAAdEAAAAlkIACEQCDxoeWRyYWR4X3J1bnRpbWUwUnVudGltZUVycm9yAAEJARhTeXN0ZW0EAC0JAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAEAIEJhbGFuY2VzBACRCQF8cGFsbGV0X2JhbGFuY2VzOjpFcnJvcjxSdW50aW1lPgAHAFxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudAQAmQkBwHBhbGxldF90cmFuc2FjdGlvbl9tdWx0aV9wYXltZW50OjpFcnJvcjxSdW50aW1lPgDLACBUcmVhc3VyeQQAsQkBfHBhbGxldF90cmVhc3VyeTo6RXJyb3I8UnVudGltZT4ACwAcVXRpbGl0eQQAtQkBeHBhbGxldF91dGlsaXR5OjpFcnJvcjxSdW50aW1lPgANACBQcmVpbWFnZQQA3QkBfHBhbGxldF9wcmVpbWFnZTo6RXJyb3I8UnVudGltZT4ADwAgSWRlbnRpdHkEAB0KAXxwYWxsZXRfaWRlbnRpdHk6OkVycm9yPFJ1bnRpbWU+ABEAJERlbW9jcmFjeQQAYQoBgHBhbGxldF9kZW1vY3JhY3k6OkVycm9yPFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAcQoB/HBhbGxldF9jb2xsZWN0aXZlOjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABRQcm94eQQAlQoBcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4AHQAgTXVsdGlzaWcEAKUKAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+AB8AHFVuaXF1ZXMEAMkKAXhwYWxsZXRfdW5pcXVlczo6RXJyb3I8UnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBACBBwGscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpFcnJvcjxSdW50aW1lPgAjAEBDb252aWN0aW9uVm90aW5nBAD9CgGgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nOjpFcnJvcjxSdW50aW1lPgAkACRSZWZlcmVuZGEEAD0LAYBwYWxsZXRfcmVmZXJlbmRhOjpFcnJvcjxSdW50aW1lPgAlACRXaGl0ZWxpc3QEAEELAYBwYWxsZXRfd2hpdGVsaXN0OjpFcnJvcjxSdW50aW1lPgAnAChEaXNwYXRjaGVyBABFCwGEcGFsbGV0X2Rpc3BhdGNoZXI6OkVycm9yPFJ1bnRpbWU+ACgANEFzc2V0UmVnaXN0cnkEAE0LAZRwYWxsZXRfYXNzZXRfcmVnaXN0cnk6OkVycm9yPFJ1bnRpbWU+ADMAGENsYWltcwQAUQsBdHBhbGxldF9jbGFpbXM6OkVycm9yPFJ1bnRpbWU+ADUAPENvbGxhdG9yUmV3YXJkcwQAXQsBnHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzOjpFcnJvcjxSdW50aW1lPgA5ACBPbW5pcG9vbAQAbQsBfHBhbGxldF9vbW5pcG9vbDo6RXJyb3I8UnVudGltZT4AOwBAVHJhbnNhY3Rpb25QYXVzZQQAeQsBoHBhbGxldF90cmFuc2FjdGlvbl9wYXVzZTo6RXJyb3I8UnVudGltZT4APAAYRHVzdGVyBAB9CwF0cGFsbGV0X2R1c3Rlcjo6RXJyb3I8UnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAoQsBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTE+AD4AXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nBACpCwHAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWU+AD8ADE9UQwQAtQsBaHBhbGxldF9vdGM6OkVycm9yPFJ1bnRpbWU+AEAAOENpcmN1aXRCcmVha2VyBADJCwGYcGFsbGV0X2NpcmN1aXRfYnJlYWtlcjo6RXJyb3I8UnVudGltZT4AQQAYUm91dGVyBADNCwGUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yOjpFcnJvcjxSdW50aW1lPgBDACxEeW5hbWljRmVlcwQA1QsBjHBhbGxldF9keW5hbWljX2ZlZXM6OkVycm9yPFJ1bnRpbWU+AEQAHFN0YWtpbmcEAP0LAXhwYWxsZXRfc3Rha2luZzo6RXJyb3I8UnVudGltZT4ARQAoU3RhYmxlc3dhcAQAHQwBhHBhbGxldF9zdGFibGVzd2FwOjpFcnJvcjxSdW50aW1lPgBGABRCb25kcwQAJQwBcHBhbGxldF9ib25kczo6RXJyb3I8UnVudGltZT4ARwA4T3RjU2V0dGxlbWVudHMEACkMAZhwYWxsZXRfb3RjX3NldHRsZW1lbnRzOjpFcnJvcjxSdW50aW1lPgBIAAxMQlAEAC0MAWhwYWxsZXRfbGJwOjpFcnJvcjxSdW50aW1lPgBJAAxYWUsEADEMAWhwYWxsZXRfeHlrOjpFcnJvcjxSdW50aW1lPgBKACRSZWZlcnJhbHMEAEEMAYBwYWxsZXRfcmVmZXJyYWxzOjpFcnJvcjxSdW50aW1lPgBLACxMaXF1aWRhdGlvbgQARQwBiHBhbGxldF9saXF1aWRhdGlvbjo6RXJyb3I8UnVudGltZT4ATAAMSFNNBABNDAFocGFsbGV0X2hzbTo6RXJyb3I8UnVudGltZT4AUgAYU2lnbmV0BABVDAF0cGFsbGV0X3NpZ25ldDo6RXJyb3I8UnVudGltZT4AVAAwRXRoRGlzcGVuc2VyBABdDAGAcGFsbGV0X2Rpc3BlbnNlcjo6RXJyb3I8UnVudGltZT4AVQAcR2lnYUhkeAQAaQwBeHBhbGxldF9naWdhaGR4OjpFcnJvcjxSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAeQwBmHBhbGxldF9naWdhaGR4X3Jld2FyZHM6OkVycm9yPFJ1bnRpbWU+AFcAGFRva2VucwQAmQwBbG9ybWxfdG9rZW5zOjpFcnJvcjxSdW50aW1lPgBNAChDdXJyZW5jaWVzBACdDAGEcGFsbGV0X2N1cnJlbmNpZXM6OkVycm9yPFJ1bnRpbWU+AE8AHFZlc3RpbmcEAKUMAXBvcm1sX3Zlc3Rpbmc6OkVycm9yPFJ1bnRpbWU+AFEADEVWTQQAsQwBaHBhbGxldF9ldm06OkVycm9yPFJ1bnRpbWU+AFoAIEV0aGVyZXVtBADxDAF8cGFsbGV0X2V0aGVyZXVtOjpFcnJvcjxSdW50aW1lPgBcACxFVk1BY2NvdW50cwQA+QwBjHBhbGxldF9ldm1fYWNjb3VudHM6OkVycm9yPFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQA/QwBrHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZT4AXwA4WFlLV2FyZWhvdXNlTE0EAB0NAUkBd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWUsIHdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjoKSW5zdGFuY2UyPgBgADhSZWxheUNoYWluSW5mbwQAIQ0BmHBhbGxldF9yZWxheWNoYWluX2luZm86OkVycm9yPFJ1bnRpbWU+AMkADERDQQQALQ0BaHBhbGxldF9kY2E6OkVycm9yPFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQARQ0BgHBhbGxldF9zY2hlZHVsZXI6OkVycm9yPFJ1bnRpbWU+AAUAPFBhcmFjaGFpblN5c3RlbQQArQ0BvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AGcALFBvbGthZG90WGNtBAAVDgFocGFsbGV0X3hjbTo6RXJyb3I8UnVudGltZT4AawAkWGNtcFF1ZXVlBABFDgGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXJyb3I8UnVudGltZT4AbwAwTWVzc2FnZVF1ZXVlBABhDgGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkVycm9yPFJ1bnRpbWU+AHIAUE11bHRpQmxvY2tNaWdyYXRpb25zBABlDgGEcGFsbGV0X21pZ3JhdGlvbnM6OkVycm9yPFJ1bnRpbWU+AHQAHE9ybWxYY20EAGkOAWBvcm1sX3hjbTo6RXJyb3I8UnVudGltZT4AhwAcWFRva2VucwQAbQ4BcG9ybWxfeHRva2Vuczo6RXJyb3I8UnVudGltZT4AiQA0VW5rbm93blRva2VucwQAeQ4BjG9ybWxfdW5rbm93bl90b2tlbnM6OkVycm9yPFJ1bnRpbWU+AIsARENvbGxhdG9yU2VsZWN0aW9uBACJDgGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXJyb3I8UnVudGltZT4AowAcU2Vzc2lvbgQAqQ4BeHBhbGxldF9zZXNzaW9uOjpFcnJvcjxSdW50aW1lPgClACRFbWFPcmFjbGUEAPEOAYRwYWxsZXRfZW1hX29yYWNsZTo6RXJyb3I8UnVudGltZT4AygAkQnJvYWRjYXN0BAD5DgGAcGFsbGV0X2Jyb2FkY2FzdDo6RXJyb3I8UnVudGltZT4AzAAwRmVlUHJvY2Vzc29yBAD9DgGQcGFsbGV0X2ZlZV9wcm9jZXNzb3I6OkVycm9yPFJ1bnRpbWU+AM8AAEEBGFN5c3RlbQEYU3lzdGVtTBxBY2NvdW50AQEEAgD1BkEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAE6CBUaGUgZnVsbCBhY2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudCBJRC4AOEV4dHJpbnNpY0NvdW50AAAoBAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay4AQEluaGVyZW50c0FwcGxpZWQBAEQEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4ALEJsb2NrV2VpZ2h0AQABBxgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay4AQEFsbEV4dHJpbnNpY3NMZW4AACgEAARBASBUb3RhbCBsZW5ndGggKGluIGJ5dGVzKSBmb3IgYWxsIGV4dHJpbnNpY3MgcHV0IHRvZ2V0aGVyLCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACRCbG9ja0hhc2gBAQQFKCyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmCBNYXAgb2YgYmxvY2sgbnVtYmVycyB0byBibG9jayBoYXNoZXMuADRFeHRyaW5zaWNEYXRhAQEEBSgUBAAEPQEgRXh0cmluc2ljcyBkYXRhIGZvciB0aGUgY3VycmVudCBibG9jayAobWFwcyBhbiBleHRyaW5zaWMncyBpbmRleCB0byBpdHMgZGF0YSkuABhOdW1iZXIBACgQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLgAoUGFyZW50SGFzaAEALIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwIEhhc2ggb2YgdGhlIHByZXZpb3VzIGJsb2NrLgAYRGlnZXN0AQCRBAQABPAgRGlnZXN0IG9mIHRoZSBjdXJyZW50IGJsb2NrLCBhbHNvIHBhcnQgb2YgdGhlIGJsb2NrIGhlYWRlci4AGEV2ZW50cwEABQcEABygIEV2ZW50cyBkZXBvc2l0ZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAdASBOT1RFOiBUaGUgaXRlbSBpcyB1bmJvdW5kIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5ldmVyIGJlIHJlYWQgb24gY2hhaW4u0CBJdCBjb3VsZCBvdGhlcndpc2UgaW5mbGF0ZSB0aGUgUG9WIHNpemUgb2YgYSBibG9jay4ALQEgRXZlbnRzIGhhdmUgYSBsYXJnZSBpbi1tZW1vcnkgc2l6ZS4gQm94IHRoZSBldmVudHMgdG8gbm90IGdvIG91dC1vZi1tZW1vcnn8IGp1c3QgaW4gY2FzZSBzb21lb25lIHN0aWxsIHJlYWRzIHRoZW0gZnJvbSB3aXRoaW4gdGhlIHJ1bnRpbWUuAChFdmVudENvdW50AQAoEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4ALEV2ZW50VG9waWNzAQEEAiytAgQAKCUBIE1hcHBpbmcgYmV0d2VlbiBhIHRvcGljIChyZXByZXNlbnRlZCBieSBUOjpIYXNoKSBhbmQgYSB2ZWN0b3Igb2YgaW5kZXhlc5Qgb2YgZXZlbnRzIGluIHRoZSBgPEV2ZW50czxUPj5gIGxpc3QuAFEBIEFsbCB0b3BpYyB2ZWN0b3JzIGhhdmUgZGV0ZXJtaW5pc3RpYyBzdG9yYWdlIGxvY2F0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHRvcGljLiBUaGlzRQEgYWxsb3dzIGxpZ2h0LWNsaWVudHMgdG8gbGV2ZXJhZ2UgdGhlIGNoYW5nZXMgdHJpZSBzdG9yYWdlIHRyYWNraW5nIG1lY2hhbmlzbSBhbmTkIGluIGNhc2Ugb2YgY2hhbmdlcyBmZXRjaCB0aGUgbGlzdCBvZiBldmVudHMgb2YgaW50ZXJlc3QuAFkBIFRoZSB2YWx1ZSBoYXMgdGhlIHR5cGUgYChCbG9ja051bWJlckZvcjxUPiwgRXZlbnRJbmRleClgIGJlY2F1c2UgaWYgd2UgdXNlZCBvbmx5IGp1c3RNASB0aGUgYEV2ZW50SW5kZXhgIHRoZW4gaW4gY2FzZSBpZiB0aGUgdG9waWMgaGFzIHRoZSBzYW1lIGNvbnRlbnRzIG9uIHRoZSBuZXh0IGJsb2NrAQEgbm8gbm90aWZpY2F0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIHRodXMgdGhlIGV2ZW50IG1pZ2h0IGJlIGxvc3QuAEhMYXN0UnVudGltZVVwZ3JhZGUAAP0IBAAEVQEgU3RvcmVzIHRoZSBgc3BlY192ZXJzaW9uYCBhbmQgYHNwZWNfbmFtZWAgb2Ygd2hlbiB0aGUgbGFzdCBydW50aW1lIHVwZ3JhZGUgaGFwcGVuZWQuAFRVcGdyYWRlZFRvVTMyUmVmQ291bnQBAEQEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuAGBVcGdyYWRlZFRvVHJpcGxlUmVmQ291bnQBAEQEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC4AOEV4ZWN1dGlvblBoYXNlAAD5CAQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suAERBdXRob3JpemVkVXBncmFkZQAAAQkEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgBgRXh0cmluc2ljV2VpZ2h0UmVjbGFpbWVkAQDkCAAAHKAgVGhlIHdlaWdodCByZWNsYWltZWQgZm9yIHRoZSBleHRyaW5zaWMuACEBIFRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIGV4dHJpbnNpYyBleGVjdXRpb24uIQEgTW9yZSBwcmVjaXNlbHkgdGhpcyBpbmZvcm1hdGlvbiBpcyByZW1vdmVkIGluIGBub3RlX2FwcGxpZWRfZXh0cmluc2ljYC4AcQEgTG9naWMgZG9pbmcgc29tZSBwb3N0IGRpc3BhdGNoIHdlaWdodCByZWR1Y3Rpb24gbXVzdCB1cGRhdGUgdGhpcyBzdG9yYWdlIHRvIGF2b2lkIGR1cGxpY2F0ZSwgcmVkdWN0aW9uLgABEAABEQcAGDBCbG9ja1dlaWdodHMFCZkBwqDnZgALACBKqdEBAgCAAgO4yf9p6bABC0havDBRARpPzwEBCwCY9z5dAQIA4AEBAAADuMn/aemwAQtI4g6bxQEaT28CAQsAIEqp0QECAIACAQcAiFJqdAIAoAADuMn/aemwAAAABNAgQmxvY2sgJiBleHRyaW5zaWNzIHdlaWdodHM6IGJhc2UgdmFsdWVzIGFuZCBsaW1pdHMuACxCbG9ja0xlbmd0aBEJMAAAPAAAAFAAAABQAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGJsb2NrIChpbiBieXRlcykuADhCbG9ja0hhc2hDb3VudCgQYAkAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4AIERiV2VpZ2h0GQlAQHh9AQAAAAAA4fUFAAAAAAQJASBUaGUgd2VpZ2h0IG9mIHJ1bnRpbWUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB0aGUgcnVudGltZSBjYW4gaW52b2tlLgAcVmVyc2lvbh0JOQUcaHlkcmFkeBxoeWRyYWR4AQAAAKwBAAAAAAAAZN9qy2iZB2CbBQAAADfjl/x8kfXkAgAAAED+OtQB+JWaBgAAANK8mJfu0I8VAwAAAPeLJ4vlP0VMAgAAAKs8BXIpH+uLAQAAAN1xjVzFMmLUAQAAAOqT4/FvPWliAwAAAGlcgERriz1OAQAAAJr4Z1G3DBEtAQAAALydiZBPW5I/AQAAADfIuxNQqaKoBAAAAFgiEfZbsUuJBgAAAOZbAORs7dCqAgAAAAu2elL80ED/AQAAADSj1IgWa1pVAQAAAFQjNP5P18raAQAAAG/1LuhY5sW9AQAAANe92KJyyg1lAgAAAATnBSGg09L4AQAAAJGxyLFjKOuSAgAAAJ/7UFqnONacAQAAACtfW80kYOTwAQAAAKKytIT8uGlDAQAAAPvFd7nXR+/WAQAAAAEAAAABBIQgR2V0IHRoZSBjaGFpbidzIGluLWNvZGUgdmVyc2lvbi4AKFNTNThQcmVmaXiACAAAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgABLQkAHCxSdW50aW1lQ2FsbAwEjCBUaGUgYWdncmVnYXRlZCBgUnVudGltZUNhbGxgIHR5cGUuFE5vbmNlKARJASBUaGlzIHN0b3JlcyB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIHRyYW5zYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBzZW5kZXIgYWNjb3VudC4QSGFzaCwEmCBUaGUgb3V0cHV0IG9mIHRoZSBgSGFzaGluZ2AgZnVuY3Rpb24uHEhhc2hpbmetAQQhASBUaGUgaGFzaGluZyBzeXN0ZW0gKGFsZ29yaXRobSkgYmVpbmcgdXNlZCBpbiB0aGUgcnVudGltZSAoZS5nLiBCbGFrZTIpLiRBY2NvdW50SWQABMggVGhlIHVzZXIgYWNjb3VudCBpZGVudGlmaWVyIHR5cGUgZm9yIHRoZSBydW50aW1lLhRCbG9jazEJCGEBIFRoZSBCbG9jayB0eXBlIHVzZWQgYnkgdGhlIHJ1bnRpbWUuIFRoaXMgaXMgdXNlZCBieSBgY29uc3RydWN0X3J1bnRpbWVgIHRvIHJldHJpZXZlIHRoZcwgZXh0cmluc2ljcyBvciBvdGhlciBibG9jayBzcGVjaWZpYyBkYXRhIGFzIG5lZWRlZC4sQWNjb3VudERhdGH5BghhASBEYXRhIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCBhbiBhY2NvdW50IChvdGhlciB0aGFuIG5vbmNlL3RyYW5zYWN0aW9uIGNvdW50ZXIsIHdoaWNoIHRoaXNkIHBhbGxldCBkb2VzIHJlZ2FyZGxlc3MpLgABAAAkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAGCAAAAAAAAAAAASgIFRoZSBjdXJyZW50IHRpbWUgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAkRGlkVXBkYXRlAQBEBAAQ2CBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgaGFzIGJlZW4gdXBkYXRlZCBpbiB0aGlzIGJsb2NrLgBVASBUaGlzIHZhbHVlIGlzIHVwZGF0ZWQgdG8gYHRydWVgIHVwb24gc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uIG9mIGEgdGltZXN0YW1wIGJ5IGEgbm9kZS5FASBJdCBpcyB0aGVuIGNoZWNrZWQgYXQgdGhlIGVuZCBvZiBlYWNoIGJsb2NrIGV4ZWN1dGlvbiBpbiB0aGUgYG9uX2ZpbmFsaXplYCBob29rLgABMAAABDRNaW5pbXVtUGVyaW9kGCC4CwAAAAAAABiMIFRoZSBtaW5pbXVtIHBlcmlvZCBiZXR3ZWVuIGJsb2Nrcy4ATQEgQmUgYXdhcmUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgKmV4cGVjdGVkKiBwZXJpb2QgdGhhdCB0aGUgYmxvY2sgcHJvZHVjdGlvbkkBIGFwcGFyYXR1cyBwcm92aWRlcy4gWW91ciBjaG9zZW4gY29uc2Vuc3VzIHN5c3RlbSB3aWxsIGdlbmVyYWxseSB3b3JrIHdpdGggdGhpcyB0b2EBIGRldGVybWluZSBhIHNlbnNpYmxlIGJsb2NrIHRpbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgQXVyYSBwYWxsZXQgaXQgd2lsbCBiZSBkb3VibGUgdGhpc3AgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAAEGE1vbWVudBgEmCBUeXBlIHVzZWQgZm9yIGV4cHJlc3NpbmcgYSB0aW1lc3RhbXAuAAMAACBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBAEBAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS4AQEluYWN0aXZlSXNzdWFuY2UBAEBAAAAAAAAAAAAAAAAAAAAAAAQJASBUaGUgdG90YWwgdW5pdHMgb2Ygb3V0c3RhbmRpbmcgZGVhY3RpdmF0ZWQgYmFsYW5jZSBpbiB0aGUgc3lzdGVtLgAcQWNjb3VudAEBBAIA+QYBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4AFExvY2tzAQEEAgBJCQQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAIFJlc2VydmVzAQEEAgBZCQQADKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAUSG9sZHMBAQQCAGUJBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLgAcRnJlZXplcwEBBAIAhQkEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgABOAABOQcAEEhFeGlzdGVudGlhbERlcG9zaXRAQAAQpdToAAAAAAAAAAAAAAAgQQEgVGhlIG1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIGtlZXAgYW4gYWNjb3VudCBvcGVuLiBNVVNUIEJFIEdSRUFURVIgVEhBTiBaRVJPIQBZASBJZiB5b3UgKnJlYWxseSogbmVlZCBpdCB0byBiZSB6ZXJvLCB5b3UgY2FuIGVuYWJsZSB0aGUgZmVhdHVyZSBgaW5zZWN1cmVfemVyb19lZGAgZm9yYQEgdGhpcyBwYWxsZXQuIEhvd2V2ZXIsIHlvdSBkbyBzbyBhdCB5b3VyIG93biByaXNrOiB0aGlzIHdpbGwgb3BlbiB1cCBhIG1ham9yIERvUyB2ZWN0b3IuWQEgSW4gY2FzZSB5b3UgaGF2ZSBtdWx0aXBsZSBzb3VyY2VzIG9mIHByb3ZpZGVyIHJlZmVyZW5jZXMsIHlvdSBtYXkgYWxzbyBnZXQgdW5leHBlY3RlZIwgYmVoYXZpb3VyIGlmIHlvdSBzZXQgdGhpcyB0byB6ZXJvLgDwIEJvdHRvbSBsaW5lOiBEbyB5b3Vyc2VsZiBhIGZhdm91ciBhbmQgbWFrZSBpdCBhdCBsZWFzdCBvbmUhACBNYXhMb2NrcygQMgAAABD0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NrcyB0aGF0IHNob3VsZCBleGlzdCBvbiBhbiBhY2NvdW50LtwgTm90IHN0cmljdGx5IGVuZm9yY2VkLCBidXQgdXNlZCBmb3Igd2VpZ2h0IGVzdGltYXRpb24uAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AALE1heFJlc2VydmVzKBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAoTWF4RnJlZXplcygQAAAAAARhASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5kaXZpZHVhbCBmcmVlemUgbG9ja3MgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4AAZEJABBEUnVudGltZUhvbGRSZWFzb25tCQR0IFRoZSBvdmVyYXJjaGluZyBob2xkIHJlYXNvbi4cQmFsYW5jZUAEbCBUaGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LkRSZXNlcnZlSWRlbnRpZmllciEBDGggVGhlIElEIHR5cGUgZm9yIHJlc2VydmVzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYEBGcmVlemVJZGVudGlmaWVycARkIFRoZSBJRCB0eXBlIGZvciBmcmVlemVzLgAHAABIVHJhbnNhY3Rpb25QYXltZW50AUhUcmFuc2FjdGlvblBheW1lbnQIRE5leHRGZWVNdWx0aXBsaWVyAQBUQAAAZKeztuANAAAAAAAAAAAAADhTdG9yYWdlVmVyc2lvbgEAlQkEAAAAAAFBBwAEYE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcggEAFRZASBBIGZlZSBtdWx0aXBsaWVyIGZvciBgT3BlcmF0aW9uYWxgIGV4dHJpbnNpY3MgdG8gY29tcHV0ZSAidmlydHVhbCB0aXAiIHRvIGJvb3N0IHRoZWlyLCBgcHJpb3JpdHlgAFEBIFRoaXMgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgYGZpbmFsX2ZlZWAgdG8gb2J0YWluIGEgInZpcnR1YWwgdGlwIiB0aGF0IGlzIGxhdGVy9CBhZGRlZCB0byBhIHRpcCBjb21wb25lbnQgaW4gcmVndWxhciBgcHJpb3JpdHlgIGNhbGN1bGF0aW9ucy5NASBJdCBtZWFucyB0aGF0IGEgYE5vcm1hbGAgdHJhbnNhY3Rpb24gY2FuIGZyb250LXJ1biBhIHNpbWlsYXJseS1zaXplZCBgT3BlcmF0aW9uYWxgQQEgZXh0cmluc2ljICh3aXRoIG5vIHRpcCksIGJ5IGluY2x1ZGluZyBhIHRpcCB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIHZpcnR1YWwgdGlwLgA8IGBgYHJ1c3QsaWdub3JlQCAvLyBGb3IgYE5vcm1hbGCMIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwKTsAVCAvLyBGb3IgYE9wZXJhdGlvbmFsYBEBIGxldCB2aXJ0dWFsX3RpcCA9IChpbmNsdXNpb25fZmVlICsgdGlwKSAqIE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcjvEIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwICsgdmlydHVhbF90aXApOxAgYGBgAFEBIE5vdGUgdGhhdCBzaW5jZSB3ZSB1c2UgYGZpbmFsX2ZlZWAgdGhlIG11bHRpcGxpZXIgYXBwbGllcyBhbHNvIHRvIHRoZSByZWd1bGFyIGB0aXBgXQEgc2VudCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4gU28sIG5vdCBvbmx5IGRvZXMgdGhlIHRyYW5zYWN0aW9uIGdldCBhIHByaW9yaXR5IGJ1bXAgYmFzZWRhASBvbiB0aGUgYGluY2x1c2lvbl9mZWVgLCBidXQgd2UgYWxzbyBhbXBsaWZ5IHRoZSBpbXBhY3Qgb2YgdGlwcyBhcHBsaWVkIHRvIGBPcGVyYXRpb25hbGA4IHRyYW5zYWN0aW9ucy4AAAAACQAAXE11bHRpVHJhbnNhY3Rpb25QYXltZW50AVxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudBBIQWNjb3VudEN1cnJlbmN5TWFwAAEEAgAoBAAEVCBBY2NvdW50IGN1cnJlbmN5IG1hcABIQWNjZXB0ZWRDdXJyZW5jaWVzAAEEBShUBAAEZQEgQ3VyYXRlZCBsaXN0IG9mIGN1cnJlbmNpZXMgd2hpY2ggZmVlcyBjYW4gYmUgcGFpZCBtYXBwZWQgdG8gY29ycmVzcG9uZGluZyBmYWxsYmFjayBwcmljZQBUQWNjZXB0ZWRDdXJyZW5jeVByaWNlAAEEBShUBAAEIQIgQXNzZXQgcHJpY2VzIGZyb20gdGhlIHNwb3QgcHJpY2UgcHJvdmlkZXIgb3IgdGhlIGZhbGxiYWNrIHByaWNlIGlmIHRoZSBwcmljZSBpcyBub3QgYXZhaWxhYmxlLiBVcGRhdGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZXZlcnkgYmxvY2suAGxUcmFuc2FjdGlvbkN1cnJlbmN5T3ZlcnJpZGUAAQQFACgEAAAAAVAAAUUHAAw0TmF0aXZlQXNzZXRJZCgQAAAAAAQ0IE5hdGl2ZSBBc3NldABUUG9sa2Fkb3ROYXRpdmVBc3NldElkKBAFAAAABHAgUG9sa2Fkb3QgTmF0aXZlIEFzc2V0IChET1QpAChFdm1Bc3NldElkKBAUAAAABCggRVZNIEFzc2V0AAGZCQAAAMsAACBUcmVhc3VyeQEgVHJlYXN1cnkcNFByb3Bvc2FsQ291bnQBACgQAAAAABBBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4ApCBOdW1iZXIgb2YgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACRQcm9wb3NhbHMAAQQFKJ0JBAAQQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuAHwgUHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACxEZWFjdGl2YXRlZAEAQEAAAAAAAAAAAAAAAAAAAAAABPAgVGhlIGFtb3VudCB3aGljaCBoYXMgYmVlbiByZXBvcnRlZCBhcyBpbmFjdGl2ZSB0byBDdXJyZW5jeS4AJEFwcHJvdmFscwEAoQkEABBBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4A+CBQcm9wb3NhbCBpbmRpY2VzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGJ1dCBub3QgeWV0IGF3YXJkZWQuAChTcGVuZENvdW50AQAoEAAAAAAEpCBUaGUgY291bnQgb2Ygc3BlbmRzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuABhTcGVuZHMAAQQFKKUJBAAE0CBTcGVuZHMgdGhhdCBoYXZlIGJlZW4gYXBwcm92ZWQgYW5kIGJlaW5nIHByb2Nlc3NlZC4APExhc3RTcGVuZFBlcmlvZAAAKAQABNQgVGhlIGJsb2NrbnVtYmVyIGZvciB0aGUgbGFzdCB0cmlnZ2VyZWQgc3BlbmQgcGVyaW9kLgABaAgDApUBVGhlIGBzcGVuZF9sb2NhbGAgY2FsbCB3aWxsIGJlIHJlbW92ZWQgYnkgTWF5IDIwMjUuIE1pZ3JhdGUgdG8gdGhlIG5ldyBmbG93IGFuZCB1c2UgdGhlIGBzcGVuZGAgY2FsbC4ABAK1AVRoZSBgcmVtb3ZlX2FwcHJvdmFsYCBjYWxsIHdpbGwgYmUgcmVtb3ZlZCBieSBNYXkgMjAyNS4gSXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXByZWNhdGVkIGBzcGVuZF9sb2NhbGAgY2FsbC4AAUkHABgsU3BlbmRQZXJpb2QoEEA4AAAEiCBQZXJpb2QgYmV0d2VlbiBzdWNjZXNzaXZlIHNwZW5kcy4AEEJ1cm51AhAAAAAABBEBIFBlcmNlbnRhZ2Ugb2Ygc3BhcmUgZnVuZHMgKGlmIGFueSkgdGhhdCBhcmUgYnVybnQgcGVyIHNwZW5kIHBlcmlvZC4AIFBhbGxldElkrQkgcHkvdHJzcnkEGQEgVGhlIHRyZWFzdXJ5J3MgcGFsbGV0IGlkLCB1c2VkIGZvciBkZXJpdmluZyBpdHMgc292ZXJlaWduIGFjY291bnQgSUQuADBNYXhBcHByb3ZhbHMoEGQAAAAYQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuABUBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhcHByb3ZhbHMgdGhhdCBjYW4gd2FpdCBpbiB0aGUgc3BlbmRpbmcgcXVldWUuAE0BIE5PVEU6IFRoaXMgcGFyYW1ldGVyIGlzIGFsc28gdXNlZCB3aXRoaW4gdGhlIEJvdW50aWVzIFBhbGxldCBleHRlbnNpb24gaWYgZW5hYmxlZC4AMFBheW91dFBlcmlvZCgQgJcGAAQZASBUaGUgcGVyaW9kIGR1cmluZyB3aGljaCBhbiBhcHByb3ZlZCB0cmVhc3VyeSBzcGVuZCBoYXMgdG8gYmUgY2xhaW1lZC4ALHBvdF9hY2NvdW50AIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAASgIEdldHMgdGhpcyBwYWxsZXQncyBkZXJpdmVkIHBvdCBhY2NvdW50LgABsQkACCRBc3NldEtpbmRwBC0BIFR5cGUgcGFyYW1ldGVyIHJlcHJlc2VudGluZyB0aGUgYXNzZXQga2luZHMgdG8gYmUgc3BlbnQgZnJvbSB0aGUgdHJlYXN1cnkuLEJlbmVmaWNpYXJ5AARdASBUeXBlIHBhcmFtZXRlciB1c2VkIHRvIGlkZW50aWZ5IHRoZSBiZW5lZmljaWFyaWVzIGVsaWdpYmxlIHRvIHJlY2VpdmUgdHJlYXN1cnkgc3BlbmRzLgALAAAcVXRpbGl0eQABeAABTQcABExiYXRjaGVkX2NhbGxzX2xpbWl0KBCqKgAABKggVGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgYmF0Y2hlZCBjYWxscy4AAbUJAAgsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS40UGFsbGV0c09yaWdpboQE8CBUaGUgY2FsbGVyIG9yaWdpbiwgb3ZlcmFyY2hpbmcgdHlwZSBvZiBhbGwgcGFsbGV0cyBvcmlnaW5zLgANAAAgUHJlaW1hZ2UBIFByZWltYWdlDCRTdGF0dXNGb3IAAQQGLLkJBAAEkCBUaGUgcmVxdWVzdCBzdGF0dXMgb2YgYSBnaXZlbiBoYXNoLgJAUmVxdWVzdFN0YXR1c0ZvcgBAUmVxdWVzdFN0YXR1c0ZvcgABBAYsxQkEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guACxQcmVpbWFnZUZvcgABBAbVCdkJBAAAAAHoAAFVBwAAAd0JAAAADwAAIElkZW50aXR5ASBJZGVudGl0eSQoSWRlbnRpdHlPZgABBAUA4QkEABBpASBJbmZvcm1hdGlvbiB0aGF0IGlzIHBlcnRpbmVudCB0byBpZGVudGlmeSB0aGUgZW50aXR5IGJlaGluZCBhbiBhY2NvdW50LiBGaXJzdCBpdGVtIGlzIHRoZeAgcmVnaXN0cmF0aW9uLCBzZWNvbmQgaXMgdGhlIGFjY291bnQncyBwcmltYXJ5IHVzZXJuYW1lLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAChVc2VybmFtZU9mAAEEBQChAQQABLwgSWRlbnRpZmllcyB0aGUgcHJpbWFyeSB1c2VybmFtZSBvZiBhbiBhY2NvdW50LgAcU3VwZXJPZgABBAIAiQEEAAhhASBUaGUgc3VwZXItaWRlbnRpdHkgb2YgYW4gYWx0ZXJuYXRpdmUgInN1YiIgaWRlbnRpdHkgdG9nZXRoZXIgd2l0aCBpdHMgbmFtZSwgd2l0aGluIHRoYXRRASBjb250ZXh0LiBJZiB0aGUgYWNjb3VudCBpcyBub3Qgc29tZSBvdGhlciBhY2NvdW50J3Mgc3ViLWlkZW50aXR5LCB0aGVuIGp1c3QgYE5vbmVgLgAYU3Vic09mAQEEBQDxCUQAAAAAAAAAAAAAAAAAAAAAABS4IEFsdGVybmF0aXZlICJzdWIiIGlkZW50aXRpZXMgb2YgdGhpcyBhY2NvdW50LgAdASBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgZGVwb3NpdCwgdGhlIHNlY29uZCBpcyBhIHZlY3RvciBvZiB0aGUgYWNjb3VudHMuAMAgVFdPWC1OT1RFOiBPSyDigJUgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4AKFJlZ2lzdHJhcnMBAPkJBAAQTQEgVGhlIHNldCBvZiByZWdpc3RyYXJzLiBOb3QgZXhwZWN0ZWQgdG8gZ2V0IHZlcnkgYmlnIGFzIGNhbiBvbmx5IGJlIGFkZGVkIHRocm91Z2ggYaggc3BlY2lhbCBvcmlnaW4gKGxpa2VseSBhIGNvdW5jaWwgbW90aW9uKS4AKQEgVGhlIGluZGV4IGludG8gdGhpcyBjYW4gYmUgY2FzdCB0byBgUmVnaXN0cmFySW5kZXhgIHRvIGdldCBhIHZhbGlkIHZhbHVlLgAsQXV0aG9yaXR5T2YAAQQFCQoNCgQABPQgQSBtYXAgb2YgdGhlIGFjY291bnRzIHdobyBhcmUgYXV0aG9yaXplZCB0byBncmFudCB1c2VybmFtZXMuADhVc2VybmFtZUluZm9PZgABBAKhAREKBAAYdQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0IGFuZCB0aGUgcHJvdmlkZXIgb2ZtASB0aGUgdXNlcm5hbWUuIFRoZSBgb3duZXJgIHZhbHVlIHNob3VsZCBiZSBhIGtleSBpbiB0aGUgYFVzZXJuYW1lT2ZgIG1hcCwgYnV0IGl0IG1heSBub3QgaWbwIHRoZSB1c2VyIGhhcyBjbGVhcmVkIHRoZWlyIHVzZXJuYW1lIG9yIGl0IGhhcyBiZWVuIHJlbW92ZWQuAGkBIE11bHRpcGxlIHVzZXJuYW1lcyBtYXkgbWFwIHRvIHRoZSBzYW1lIGBBY2NvdW50SWRgLCBidXQgYFVzZXJuYW1lT2ZgIHdpbGwgb25seSBtYXAgdG8gb25lSCBwcmltYXJ5IHVzZXJuYW1lLgBAUGVuZGluZ1VzZXJuYW1lcwABBAKhARkKBAAYbQEgVXNlcm5hbWVzIHRoYXQgYW4gYXV0aG9yaXR5IGhhcyBncmFudGVkLCBidXQgdGhhdCB0aGUgYWNjb3VudCBjb250cm9sbGVyIGhhcyBub3QgY29uZmlybWVkcQEgdGhhdCB0aGV5IHdhbnQgaXQuIFVzZWQgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBgQWNjb3VudElkYCBjYW5ub3QgcHJvdmlkZSBhIHNpZ25hdHVyZV0BIGJlY2F1c2UgdGhleSBhcmUgYSBwdXJlIHByb3h5LCBtdWx0aXNpZywgZXRjLiBJbiBvcmRlciB0byBjb25maXJtIGl0LCB0aGV5IHNob3VsZCBjYWxssCBbYWNjZXB0X3VzZXJuYW1lXShgQ2FsbDo6YWNjZXB0X3VzZXJuYW1lYCkuAB0BIEZpcnN0IHR1cGxlIGl0ZW0gaXMgdGhlIGFjY291bnQgYW5kIHNlY29uZCBpcyB0aGUgYWNjZXB0YW5jZSBkZWFkbGluZS4ASFVuYmluZGluZ1VzZXJuYW1lcwABBAKhASgEABBdASBVc2VybmFtZXMgZm9yIHdoaWNoIHRoZSBhdXRob3JpdHkgdGhhdCBncmFudGVkIHRoZW0gaGFzIHN0YXJ0ZWQgdGhlIHJlbW92YWwgcHJvY2VzcyBieXEBIHVuYmluZGluZyB0aGVtLiBFYWNoIHVuYmluZGluZyB1c2VybmFtZSBtYXBzIHRvIGl0cyBncmFjZSBwZXJpb2QgZXhwaXJ5LCB3aGljaCBpcyB0aGUgZmlyc3TcIGJsb2NrIGluIHdoaWNoIHRoZSB1c2VybmFtZSBjb3VsZCBiZSBkZWxldGVkIHRocm91Z2ggYcQgW3JlbW92ZV91c2VybmFtZV0oYENhbGw6OnJlbW92ZV91c2VybmFtZWApIGNhbGwuAAHwAAFZBwAoMEJhc2ljRGVwb3NpdEBAAEBjUr/GAQAAAAAAAAAAAATYIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuACxCeXRlRGVwb3NpdEBAAKByThgJAAAAAAAAAAAAAAQdASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgZW5jb2RlZCBieXRlIGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuADxVc2VybmFtZURlcG9zaXRAQABAY1K/xgEAAAAAAAAAAAAIVQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIHJlZ2lzdGVyZWQgdXNlcm5hbWUuIFRoaXMgdmFsdWUgc2hvdWxkIGNoYW5nZSBvbmx5IGlu9CBydW50aW1lIHVwZ3JhZGVzIHdpdGggcHJvcGVyIG1pZ3JhdGlvbiBvZiBleGlzdGluZyBkZXBvc2l0cy4ARFN1YkFjY291bnREZXBvc2l0QEAAQGNSv8YBAAAAAAAAAAAADGUBIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgc3ViYWNjb3VudC4gVGhpcyBzaG91bGQgYWNjb3VudCBmb3IgdGhlIGZhY3RlASB0aGF0IG9uZSBzdG9yYWdlIGl0ZW0ncyB2YWx1ZSB3aWxsIGluY3JlYXNlIGJ5IHRoZSBzaXplIG9mIGFuIGFjY291bnQgSUQsIGFuZCB0aGVyZSB3aWxsNQEgYmUgYW5vdGhlciB0cmllIGl0ZW0gd2hvc2UgdmFsdWUgaXMgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCBwbHVzIDMyIGJ5dGVzLgA4TWF4U3ViQWNjb3VudHMoEGQAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN1Yi1hY2NvdW50cyBhbGxvd2VkIHBlciBpZGVudGlmaWVkIGFjY291bnQuADRNYXhSZWdpc3RyYXJzKBAUAAAACE0BIE1heGltdW0gbnVtYmVyIG9mIHJlZ2lzdHJhcnMgYWxsb3dlZCBpbiB0aGUgc3lzdGVtLiBOZWVkZWQgdG8gYm91bmQgdGhlIGNvbXBsZXhpdHl8IG9mLCBlLmcuLCB1cGRhdGluZyBqdWRnZW1lbnRzLgBkUGVuZGluZ1VzZXJuYW1lRXhwaXJhdGlvbigQwIkBAAQVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB3aXRoaW4gd2hpY2ggYSB1c2VybmFtZSBncmFudCBtdXN0IGJlIGFjY2VwdGVkLgBMVXNlcm5hbWVHcmFjZVBlcmlvZCgQgJcGAAhZASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IG11c3QgcGFzcyB0byBlbmFibGUgdGhlIHBlcm1hbmVudCBkZWxldGlvbiBvZiBhIHVzZXJuYW1lIGJ5aCBpdHMgcmVzcGVjdGl2ZSBhdXRob3JpdHkuADxNYXhTdWZmaXhMZW5ndGgoEAcAAAAEgCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBzdWZmaXguAERNYXhVc2VybmFtZUxlbmd0aCgQIAAAAARhASBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSB1c2VybmFtZSwgaW5jbHVkaW5nIGl0cyBzdWZmaXggYW5kIGFueSBzeXN0ZW0tYWRkZWQgZGVsaW1pdGVycy4AAR0KAARET2ZmY2hhaW5TaWduYXR1cmWVAQzgIFNpZ25hdHVyZSB0eXBlIGZvciBwcmUtYXV0aG9yaXppbmcgdXNlcm5hbWVzIG9mZi1jaGFpbi4AEQEgQ2FuIHZlcmlmeSB3aGV0aGVyIGFuIGBTZWxmOjpTaWduaW5nUHVibGljS2V5YCBjcmVhdGVkIGEgc2lnbmF0dXJlLgARAAAkRGVtb2NyYWN5ASREZW1vY3JhY3kwPFB1YmxpY1Byb3BDb3VudAEAKBAAAAAABPQgVGhlIG51bWJlciBvZiAocHVibGljKSBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZSBzbyBmYXIuACxQdWJsaWNQcm9wcwEAIQoEAAQFASBUaGUgcHVibGljIHByb3Bvc2Fscy4gVW5zb3J0ZWQuIFRoZSBzZWNvbmQgaXRlbSBpcyB0aGUgcHJvcG9zYWwuACREZXBvc2l0T2YAAQQFKC0KBAAMhCBUaG9zZSB3aG8gaGF2ZSBsb2NrZWQgYSBkZXBvc2l0LgDYIFRXT1gtTk9URTogU2FmZSwgYXMgaW5jcmVhc2luZyBpbnRlZ2VyIGtleXMgYXJlIHNhZmUuADxSZWZlcmVuZHVtQ291bnQBACgQAAAAAAQxASBUaGUgbmV4dCBmcmVlIHJlZmVyZW5kdW0gaW5kZXgsIGFrYSB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBzdGFydGVkIHNvIGZhci4ANExvd2VzdFVuYmFrZWQBACgQAAAAAAglASBUaGUgbG93ZXN0IHJlZmVyZW5kdW0gaW5kZXggcmVwcmVzZW50aW5nIGFuIHVuYmFrZWQgcmVmZXJlbmR1bS4gRXF1YWwgdG/cIGBSZWZlcmVuZHVtQ291bnRgIGlmIHRoZXJlIGlzbid0IGEgdW5iYWtlZCByZWZlcmVuZHVtLgBAUmVmZXJlbmR1bUluZm9PZgABBAUoNQoEAAy0IEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgYW55IGdpdmVuIHJlZmVyZW5kdW0uAAkBIFRXT1gtTk9URTogU0FGRSBhcyBpbmRleGVzIGFyZSBub3QgdW5kZXIgYW4gYXR0YWNrZXLigJlzIGNvbnRyb2wuACBWb3RpbmdPZgEBBAUAQQrYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF0BIEFsbCB2b3RlcyBmb3IgYSBwYXJ0aWN1bGFyIHZvdGVyLiBXZSBzdG9yZSB0aGUgYmFsYW5jZSBmb3IgdGhlIG51bWJlciBvZiB2b3RlcyB0aGF0IHdlXQEgaGF2ZSByZWNvcmRlZC4gVGhlIHNlY29uZCBpdGVtIGlzIHRoZSB0b3RhbCBhbW91bnQgb2YgZGVsZWdhdGlvbnMsIHRoYXQgd2lsbCBiZSBhZGRlZC4A6CBUV09YLU5PVEU6IFNBRkUgYXMgYEFjY291bnRJZGBzIGFyZSBjcnlwdG8gaGFzaGVzIGFueXdheS4AVExhc3RUYWJsZWRXYXNFeHRlcm5hbAEARAQACFkBIFRydWUgaWYgdGhlIGxhc3QgcmVmZXJlbmR1bSB0YWJsZWQgd2FzIHN1Ym1pdHRlZCBleHRlcm5hbGx5LiBGYWxzZSBpZiBpdCB3YXMgYSBwdWJsaWMoIHByb3Bvc2FsLgAwTmV4dEV4dGVybmFsAABZCgQAEFkBIFRoZSByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCB3aGVuZXZlciBpdCB3b3VsZCBiZSB2YWxpZCB0byB0YWJsZSBhbiBleHRlcm5hbCBwcm9wb3NhbC5VASBUaGlzIGhhcHBlbnMgd2hlbiBhIHJlZmVyZW5kdW0gbmVlZHMgdG8gYmUgdGFibGVkIGFuZCBvbmUgb2YgdHdvIGNvbmRpdGlvbnMgYXJlIG1ldDqkIC0gYExhc3RUYWJsZWRXYXNFeHRlcm5hbGAgaXMgYGZhbHNlYDsgb3JoIC0gYFB1YmxpY1Byb3BzYCBpcyBlbXB0eS4AJEJsYWNrbGlzdAABBAYsXQoEAAhRASBBIHJlY29yZCBvZiB3aG8gdmV0b2VkIHdoYXQuIE1hcHMgcHJvcG9zYWwgaGFzaCB0byBhIHBvc3NpYmxlIGV4aXN0ZW50IGJsb2NrIG51bWJlcuggKHVudGlsIHdoZW4gaXQgbWF5IG5vdCBiZSByZXN1Ym1pdHRlZCkgYW5kIHdobyB2ZXRvZWQgaXQuADRDYW5jZWxsYXRpb25zAQEEBixEBAAEKQEgUmVjb3JkIG9mIGFsbCBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gc3ViamVjdCB0byBlbWVyZ2VuY3kgY2FuY2VsbGF0aW9uLgAoTWV0YWRhdGFPZgABBALBASwEABjsIEdlbmVyYWwgaW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgcHJvcG9zYWwgb3IgcmVmZXJlbmR1bS5JASBUaGUgYEhhc2hgIHJlZmVycyB0byB0aGUgcHJlaW1hZ2Ugb2YgdGhlIGBQcmVpbWFnZXNgIHByb3ZpZGVyIHdoaWNoIGNhbiBiZSBhIEpTT06IIGR1bXAgb3IgSVBGUyBoYXNoIG9mIGEgSlNPTiBmaWxlLgB1ASBDb25zaWRlciBhIGdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgYSBtZXRhZGF0YSBvZiBmaW5pc2hlZCByZWZlcmVuZHVtcyB0byBgdW5yZXF1ZXN0YCAocmVtb3ZlKUQgbGFyZ2UgcHJlaW1hZ2VzLgABpQEAAV0HADA8RW5hY3RtZW50UGVyaW9kKBBAOAAAFOggVGhlIHBlcmlvZCBiZXR3ZWVuIGEgcHJvcG9zYWwgYmVpbmcgYXBwcm92ZWQgYW5kIGVuYWN0ZWQuADEBIEl0IHNob3VsZCBnZW5lcmFsbHkgYmUgYSBsaXR0bGUgbW9yZSB0aGFuIHRoZSB1bnN0YWtlIHBlcmlvZCB0byBlbnN1cmUgdGhhdFEBIHZvdGluZyBzdGFrZXJzIGhhdmUgYW4gb3Bwb3J0dW5pdHkgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJvbSB0aGUgc3lzdGVtIGluIHRoZSBjYXNltCB3aGVyZSB0aGV5IGFyZSBvbiB0aGUgbG9zaW5nIHNpZGUgb2YgYSB2b3RlLgAwTGF1bmNoUGVyaW9kKBDAqAAABOQgSG93IG9mdGVuIChpbiBibG9ja3MpIG5ldyBwdWJsaWMgcmVmZXJlbmRhIGFyZSBsYXVuY2hlZC4AMFZvdGluZ1BlcmlvZCgQwKgAAAS4IEhvdyBvZnRlbiAoaW4gYmxvY2tzKSB0byBjaGVjayBmb3IgbmV3IHZvdGVzLgBEVm90ZUxvY2tpbmdQZXJpb2QoEIBRAQAQkCBUaGUgbWluaW11bSBwZXJpb2Qgb2Ygdm90ZSBsb2NraW5nLgBlASBJdCBzaG91bGQgYmUgbm8gc2hvcnRlciB0aGFuIGVuYWN0bWVudCBwZXJpb2QgdG8gZW5zdXJlIHRoYXQgaW4gdGhlIGNhc2Ugb2YgYW4gYXBwcm92YWwsSQEgdGhvc2Ugc3VjY2Vzc2Z1bCB2b3RlcnMgYXJlIGxvY2tlZCBpbnRvIHRoZSBjb25zZXF1ZW5jZXMgdGhhdCB0aGVpciB2b3RlcyBlbnRhaWwuADhNaW5pbXVtRGVwb3NpdEBAAACKXXhFYwEAAAAAAAAAAAQ1ASBUaGUgbWluaW11bSBhbW91bnQgdG8gYmUgdXNlZCBhcyBhIGRlcG9zaXQgZm9yIGEgcHVibGljIHJlZmVyZW5kdW0gcHJvcG9zYWwuADhJbnN0YW50QWxsb3dlZEQEAQxVASBJbmRpY2F0b3IgZm9yIHdoZXRoZXIgYW4gZW1lcmdlbmN5IG9yaWdpbiBpcyBldmVuIGFsbG93ZWQgdG8gaGFwcGVuLiBTb21lIGNoYWlucyBtYXlhASB3YW50IHRvIHNldCB0aGlzIHBlcm1hbmVudGx5IHRvIGBmYWxzZWAsIG90aGVycyBtYXkgd2FudCB0byBjb25kaXRpb24gaXQgb24gdGhpbmdzIHN1Y2igIGFzIGFuIHVwZ3JhZGUgaGF2aW5nIGhhcHBlbmVkIHJlY2VudGx5LgBURmFzdFRyYWNrVm90aW5nUGVyaW9kKBAIBwAABOwgTWluaW11bSB2b3RpbmcgcGVyaW9kIGFsbG93ZWQgZm9yIGEgZmFzdC10cmFjayByZWZlcmVuZHVtLgA0Q29vbG9mZlBlcmlvZCgQwIkBAARhASBQZXJpb2QgaW4gYmxvY2tzIHdoZXJlIGFuIGV4dGVybmFsIHByb3Bvc2FsIG1heSBub3QgYmUgcmUtc3VibWl0dGVkIGFmdGVyIGJlaW5nIHZldG9lZC4AIE1heFZvdGVzKBBkAAAAELAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGVzIGZvciBhbiBhY2NvdW50LgDUIEFsc28gdXNlZCB0byBjb21wdXRlIHdlaWdodCwgYW4gb3Zlcmx5IGJpZyB2YWx1ZSBjYW4VASBsZWFkIHRvIGV4dHJpbnNpYyB3aXRoIHZlcnkgYmlnIHdlaWdodDogc2VlIGBkZWxlZ2F0ZWAgZm9yIGluc3RhbmNlLgAwTWF4UHJvcG9zYWxzKBBkAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwdWJsaWMgcHJvcG9zYWxzIHRoYXQgY2FuIGV4aXN0IGF0IGFueSB0aW1lLgAsTWF4RGVwb3NpdHMoEGQAAAAEHQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGRlcG9zaXRzIGEgcHVibGljIHByb3Bvc2FsIG1heSBoYXZlIGF0IGFueSB0aW1lLgA4TWF4QmxhY2tsaXN0ZWQoEGQAAAAE2CBUaGUgbWF4aW11bSBudW1iZXIgb2YgaXRlbXMgd2hpY2ggY2FuIGJlIGJsYWNrbGlzdGVkLgABYQoAAAATAABIVGVjaG5pY2FsQ29tbWl0dGVlAUhUZWNobmljYWxDb21taXR0ZWUcJFByb3Bvc2FscwEAZQoEAASQIFRoZSBoYXNoZXMgb2YgdGhlIGFjdGl2ZSBwcm9wb3NhbHMuAChQcm9wb3NhbE9mAAEEBiwMBAAEzCBBY3R1YWwgcHJvcG9zYWwgZm9yIGEgZ2l2ZW4gaGFzaCwgaWYgaXQncyBjdXJyZW50LgAYQ29zdE9mAAEEBixpCgQAEAkBIENvbnNpZGVyYXRpb24gY29zdCBjcmVhdGVkIGZvciBwdWJsaXNoaW5nIGFuZCBzdG9yaW5nIGEgcHJvcG9zYWwuAHEBIERldGVybWluZWQgYnkgW0NvbmZpZzo6Q29uc2lkZXJhdGlvbl0gYW5kIG1heSBiZSBub3QgcHJlc2VudCBmb3IgY2VydGFpbiBwcm9wb3NhbHMgKGUuZy4gaWYNASB0aGUgcHJvcG9zYWwgY291bnQgYXQgdGhlIHRpbWUgb2YgY3JlYXRpb24gd2FzIGJlbG93IHRocmVzaG9sZCBOKS4AGFZvdGluZwABBAYsbQoEAAS0IFZvdGVzIG9uIGEgZ2l2ZW4gcHJvcG9zYWwsIGlmIGl0IGlzIG9uZ29pbmcuADRQcm9wb3NhbENvdW50AQAoEAAAAAAESCBQcm9wb3NhbHMgc28gZmFyLgAcTWVtYmVycwEASAQABDkBIFRoZSBjdXJyZW50IG1lbWJlcnMgb2YgdGhlIGNvbGxlY3RpdmUuIFRoaXMgaXMgc3RvcmVkIHNvcnRlZCAoanVzdCBieSB2YWx1ZSkuABRQcmltZQAAAAQABGEBIFRoZSBwcmltZSBtZW1iZXIgdGhhdCBoZWxwcyBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgdm90ZSBiZWhhdmlvciBpbiBjYXNlIG9mIGFic3RlbnRpb25zLgAByQEAAWUHAARETWF4UHJvcG9zYWxXZWlnaHTkKAcAEKXU6AIAQAEEJQEgVGhlIG1heGltdW0gd2VpZ2h0IG9mIGEgZGlzcGF0Y2ggY2FsbCB0aGF0IGNhbiBiZSBwcm9wb3NlZCBhbmQgZXhlY3V0ZWQuAAFxCgAEIFByb3Bvc2FsDASAIFRoZSBydW50aW1lIGNhbGwgZGlzcGF0Y2ggdHlwZS4AGQAAFFByb3h5ARRQcm94eQgcUHJveGllcwEBBAUAdQpEAAAAAAAAAAAAAAAAAAAAAAAIRQEgVGhlIHNldCBvZiBhY2NvdW50IHByb3hpZXMuIE1hcHMgdGhlIGFjY291bnQgd2hpY2ggaGFzIGRlbGVnYXRlZCB0byB0aGUgYWNjb3VudHMhASB3aGljaCBhcmUgYmVpbmcgZGVsZWdhdGVkIHRvLCB0b2dldGhlciB3aXRoIHRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0LgA0QW5ub3VuY2VtZW50cwEBBAUAhQpEAAAAAAAAAAAAAAAAAAAAAAAErCBUaGUgYW5ub3VuY2VtZW50cyBtYWRlIGJ5IHRoZSBwcm94eSAoa2V5KS4AAdEBAAFpBwAYQFByb3h5RGVwb3NpdEJhc2VAQADgEQIetgAAAAAAAAAAAAAQEQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIHByb3h5LgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMlASBgc2l6ZW9mKEJhbGFuY2UpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXMgYHNpemVvZihBY2NvdW50SWQpYCBieXRlcy4ASFByb3h5RGVwb3NpdEZhY3RvckBAACyZgOYAAAAAAAAAAAAAABS8IFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBwcm94eSBhZGRlZC4ANQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgcGx1cyBhbiBpbnN0YW5jZSBvZiBgUHJveHlUeXBlYCBtb3JlIGludG8gYWEBIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLiBUaHVzLCB3aGVuIGNvbmZpZ3VyaW5nIGBQcm94eURlcG9zaXRGYWN0b3JgIG9uZSBzaG91bGQgdGFrZfQgaW50byBhY2NvdW50IGAzMiArIHByb3h5X3R5cGUuZW5jb2RlKCkubGVuKClgIGJ5dGVzIG9mIGRhdGEuAChNYXhQcm94aWVzKBAgAAAABPAgVGhlIG1heGltdW0gYW1vdW50IG9mIHByb3hpZXMgYWxsb3dlZCBmb3IgYSBzaW5nbGUgYWNjb3VudC4AKE1heFBlbmRpbmcoECAAAAAERQEgVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUtZGVsYXllZCBhbm5vdW5jZW1lbnRzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgcGVuZGluZy4AXEFubm91bmNlbWVudERlcG9zaXRCYXNlQEAA4BECHrYAAAAAAAAAAAAAEDEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYW4gYW5ub3VuY2VtZW50LgBJASBUaGlzIGlzIGhlbGQgd2hlbiBhIG5ldyBzdG9yYWdlIGl0ZW0gaG9sZGluZyBhIGBCYWxhbmNlYCBpcyBjcmVhdGVkICh0eXBpY2FsbHkgMTYgIGJ5dGVzKS4AZEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JAQABYMgHNAQAAAAAAAAAAAAAQ1CBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgYW5ub3VuY2VtZW50IG1hZGUuAFkBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIGFuIGBBY2NvdW50SWRgLCBgSGFzaGAgYW5kIGBCbG9ja051bWJlcmAgKHR5cGljYWxseSA2OCBieXRlcymMIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4AAZUKAAgsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4kUHJveHlUeXBl2QEQVQEgQSBraW5kIG9mIHByb3h5OyBzcGVjaWZpZWQgd2l0aCB0aGUgcHJveHkgYW5kIHBhc3NlZCBpbiB0byB0aGUgYElzUHJveHlhYmxlYCBmaWx0ZXIuUQEgVGhlIGluc3RhbmNlIGZpbHRlciBkZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBjYWxsIG1heSBiZSBwcm94aWVkIHVuZGVyIHRoaXMgdHlwZS4ATQEgSU1QT1JUQU5UOiBgRGVmYXVsdGAgbXVzdCBiZSBwcm92aWRlZCBhbmQgTVVTVCBCRSB0aGUgdGhlICptb3N0IHBlcm1pc3NpdmUqIHZhbHVlLggYCdeDRnJ6DvWMD6A7r6Mjy8UUiNkqGqcTewO/tQ78F0RjaGVja19wZXJtaXNzaW9ucwgQY2FsbAwocHJveHlfdHlwZdkBRAT0IENoZWNrIGlmIGEgYFJ1bnRpbWVDYWxsYCBpcyBhbGxvd2VkIGZvciBhIGdpdmVuIGBQcm94eVR5cGVgLgAYCdeDRnJ6DvWMD6A7r6MjFxSwYH1irwo7OwrSxdVcWCxpc19zdXBlcnNldAggdG9fY2hlY2vZARxhZ2FpbnN02QFEBPQgQ2hlY2sgaWYgb25lIGBQcm94eVR5cGVgIGlzIGEgc3Vic2V0IG9mIGFub3RoZXIgYFByb3h5VHlwZWAuAB0AACBNdWx0aXNpZwEgTXVsdGlzaWcEJE11bHRpc2lncwABCAUCmQqdCgQABJQgVGhlIHNldCBvZiBvcGVuIG11bHRpc2lnIG9wZXJhdGlvbnMuAAHdAQABcQcADCxEZXBvc2l0QmFzZUBAAKA3zUy4AAAAAAAAAAAAABhZASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgbXVsdGlzaWcgZXhlY3V0aW9uIG9yIHRvhCBzdG9yZSBhIGRpc3BhdGNoIGNhbGwgZm9yIGxhdGVyLgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMxASBgNCArIHNpemVvZigoQmxvY2tOdW1iZXIsIEJhbGFuY2UsIEFjY291bnRJZCkpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXOAIGAzMiArIHNpemVvZihBY2NvdW50SWQpYCBieXRlcy4ANERlcG9zaXRGYWN0b3JAQACAdYTfAAAAAAAAAAAAAAAMVQEgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHVuaXQgdGhyZXNob2xkIHdoZW4gY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24uACUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIG1vcmUgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLgA4TWF4U2lnbmF0b3JpZXMoEGQAAAAE7CBUaGUgbWF4aW11bSBhbW91bnQgb2Ygc2lnbmF0b3JpZXMgYWxsb3dlZCBpbiB0aGUgbXVsdGlzaWcuAAGlCgAELFJ1bnRpbWVDYWxsDARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuAB8AABxVbmlxdWVzARxVbmlxdWVzKBRDbGFzcwABBAJAqQoEAARkIERldGFpbHMgb2YgYSBjb2xsZWN0aW9uLgBMT3duZXJzaGlwQWNjZXB0YW5jZQABBAIAQAQABCkBIFRoZSBjb2xsZWN0aW9uLCBpZiBhbnksIG9mIHdoaWNoIGFuIGFjY291bnQgaXMgd2lsbGluZyB0byB0YWtlIG93bmVyc2hpcC4AHEFjY291bnQAAQwCAgKtCnAEAAhZASBUaGUgaXRlbXMgaGVsZCBieSBhbnkgZ2l2ZW4gYWNjb3VudDsgc2V0IG91dCB0aGlzIHdheSBzbyB0aGF0IGl0ZW1zIG93bmVkIGJ5IGEgc2luZ2xlbCBhY2NvdW50IGNhbiBiZSBlbnVtZXJhdGVkLgAwQ2xhc3NBY2NvdW50AAEIAgK9CXAEAAhpASBUaGUgY29sbGVjdGlvbnMgb3duZWQgYnkgYW55IGdpdmVuIGFjY291bnQ7IHNldCBvdXQgdGhpcyB3YXkgc28gdGhhdCBjb2xsZWN0aW9ucyBvd25lZCBieZAgYSBzaW5nbGUgYWNjb3VudCBjYW4gYmUgZW51bWVyYXRlZC4AFEFzc2V0AAEIAgJ9ArEKBAAE0CBUaGUgaXRlbXMgaW4gZXhpc3RlbmNlIGFuZCB0aGVpciBvd25lcnNoaXAgZGV0YWlscy4APENsYXNzTWV0YWRhdGFPZgABBAJAtQoEAARoIE1ldGFkYXRhIG9mIGEgY29sbGVjdGlvbi4ASEluc3RhbmNlTWV0YWRhdGFPZgABCAICfQK5CgQABFQgTWV0YWRhdGEgb2YgYW4gaXRlbS4AJEF0dHJpYnV0ZQABDAICAr0KwQoEAARwIEF0dHJpYnV0ZXMgb2YgYSBjb2xsZWN0aW9uLgAsSXRlbVByaWNlT2YAAQgCAn0CxQoEAARwIFByaWNlIG9mIGFuIGFzc2V0IGluc3RhbmNlLgBMQ29sbGVjdGlvbk1heFN1cHBseQABBAJAKAQABPAgS2VlcHMgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gbWlnaHQgaGF2ZS4AAekBAAF1BwAgRENvbGxlY3Rpb25EZXBvc2l0QEAAAAAAAAAAAAAAAAAAAAAABAEBIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBjb2xsZWN0aW9uLgAsSXRlbURlcG9zaXRAQAAAAAAAAAAAAAAAAAAAAAAE9CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gaXRlbS4ATE1ldGFkYXRhRGVwb3NpdEJhc2VAQACAxqR+jQMAAAAAAAAAAAAETQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgbWV0YWRhdGEgdG8geW91ciBpdGVtLgBQQXR0cmlidXRlRGVwb3NpdEJhc2VAQAAQpdToAAAAAAAAAAAAAAAEVQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgYW4gYXR0cmlidXRlIHRvIGFuIGl0ZW0uADhEZXBvc2l0UGVyQnl0ZUBAABCl1OgAAAAAAAAAAAAAAAhZASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgc3RvcmUgaW4gbWV0YWRhdGEswCBlaXRoZXIgIm5vcm1hbCIgbWV0YWRhdGEgb3IgYXR0cmlidXRlIG1ldGFkYXRhLgAsU3RyaW5nTGltaXQoEEgAAAAEsCBUaGUgbWF4aW11bSBsZW5ndGggb2YgZGF0YSBzdG9yZWQgb24tY2hhaW4uACBLZXlMaW1pdCgQAAEAAASgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUga2V5LgAoVmFsdWVMaW1pdCgQAAQAAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUgdmFsdWUuAAHJCgAIMENvbGxlY3Rpb25JZEAEnCBJZGVudGlmaWVyIGZvciB0aGUgY29sbGVjdGlvbiBvZiBpdGVtLhhJdGVtSWRABPQgVGhlIHR5cGUgdXNlZCB0byBpZGVudGlmeSBhIHVuaXF1ZSBpdGVtIHdpdGhpbiBhIGNvbGxlY3Rpb24uACAAAEhTdGF0ZVRyaWVNaWdyYXRpb24BSFN0YXRlVHJpZU1pZ3JhdGlvbgxATWlncmF0aW9uUHJvY2VzcwEAEQI4AAAAAAAAAAAAAAAAAAAQUCBNaWdyYXRpb24gcHJvZ3Jlc3MuAF0BIFRoaXMgc3RvcmVzIHRoZSBzbmFwc2hvdCBvZiB0aGUgbGFzdCBtaWdyYXRlZCBrZXlzLiBJdCBjYW4gYmUgc2V0IGludG8gbW90aW9uIGFuZCBtb3Zl1CBmb3J3YXJkIGJ5IGFueSBvZiB0aGUgbWVhbnMgcHJvdmlkZWQgYnkgdGhpcyBwYWxsZXQuAChBdXRvTGltaXRzAQAJAgQADNQgVGhlIGxpbWl0cyB0aGF0IGFyZSBpbXBvc2VkIG9uIGF1dG9tYXRpYyBtaWdyYXRpb25zLgDUIElmIHNldCB0byBOb25lLCB0aGVuIG5vIGF1dG9tYXRpYyBtaWdyYXRpb24gaGFwcGVucy4AYFNpZ25lZE1pZ3JhdGlvbk1heExpbWl0cwAADQIEAAzgIFRoZSBtYXhpbXVtIGxpbWl0cyB0aGF0IHRoZSBzaWduZWQgbWlncmF0aW9uIGNvdWxkIHVzZS4AtCBJZiBub3Qgc2V0LCBubyBzaWduZWQgc3VibWlzc2lvbiBpcyBhbGxvd2VkLgABBQIAAXkHAAQkTWF4S2V5TGVuKBAAAgAAVLQgTWF4aW1hbCBudW1iZXIgb2YgYnl0ZXMgdGhhdCBhIGtleSBjYW4gaGF2ZS4AsCBGUkFNRSBpdHNlbGYgZG9lcyBub3QgbGltaXQgdGhlIGtleSBsZW5ndGguAQEgVGhlIGNvbmNyZXRlIHZhbHVlIG11c3QgdGhlcmVmb3JlIGRlcGVuZCBvbiB5b3VyIHN0b3JhZ2UgdXNhZ2UuWQEgQSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VOTWFwYF0gZm9yIGV4YW1wbGUgY2FuIGhhdmUgYW4gYXJiaXRyYXJ5IG51bWJlciBvZkUBIGtleXMgd2hpY2ggYXJlIHRoZW4gaGFzaGVkIGFuZCBjb25jYXRlbmF0ZWQsIHJlc3VsdGluZyBpbiBhcmJpdHJhcmlseSBsb25nIGtleXMuAEEBIFVzZSB0aGUgKnN0YXRlIG1pZ3JhdGlvbiBSUEMqIHRvIHJldHJpZXZlIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3Qga2V5IGluIHlvdXIBASBzdG9yYWdlOiA8aHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL2lzc3Vlcy8xMTY0Mj4AKQEgVGhlIG1pZ3JhdGlvbiB3aWxsIGhhbHQgd2l0aCBhIGBIYWx0ZWRgIGV2ZW50IGlmIHRoaXMgdmFsdWUgaXMgdG9vIHNtYWxsLkkBIFNpbmNlIHRoZXJlIGlzIG5vIHJlYWwgcGVuYWx0eSBmcm9tIG92ZXItZXN0aW1hdGluZywgaXQgaXMgYWR2aXNlZCB0byB1c2UgYSBsYXJnZYAgdmFsdWUuIFRoZSBkZWZhdWx0IGlzIDUxMiBieXRlLgCAIFNvbWUga2V5IGxlbmd0aHMgZm9yIHJlZmVyZW5jZTrQIC0gW2BmcmFtZV9zdXBwb3J0OjpzdG9yYWdlOjpTdG9yYWdlVmFsdWVgXTogMzIgYnl0ZcggLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VNYXBgXTogNjQgYnl0ZeAgLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VEb3VibGVNYXBgXTogOTYgYnl0ZQBIIEZvciBtb3JlIGluZm8gc2VlSQEgPGh0dHBzOi8vd3d3LnNoYXdudGFicml6aS5jb20vYmxvZy9zdWJzdHJhdGUvcXVlcnlpbmctc3Vic3RyYXRlLXN0b3JhZ2UtdmlhLXJwYy8+AAGBBwAAACMAAEBDb252aWN0aW9uVm90aW5nAUBDb252aWN0aW9uVm90aW5nCCRWb3RpbmdGb3IBAQgFBc0K0QrYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHUBIEFsbCB2b3RpbmcgZm9yIGEgcGFydGljdWxhciB2b3RlciBpbiBhIHBhcnRpY3VsYXIgdm90aW5nIGNsYXNzLiBXZSBzdG9yZSB0aGUgYmFsYW5jZSBmb3IgdGhlnCBudW1iZXIgb2Ygdm90ZXMgdGhhdCB3ZSBoYXZlIHJlY29yZGVkLgA0Q2xhc3NMb2Nrc0ZvcgEBBAUA8QoEAAxpASBUaGUgdm90aW5nIGNsYXNzZXMgd2hpY2ggaGF2ZSBhIG5vbi16ZXJvIGxvY2sgcmVxdWlyZW1lbnQgYW5kIHRoZSBsb2NrIGFtb3VudHMgd2hpY2ggdGhleW0BIHJlcXVpcmUuIFRoZSBhY3R1YWwgYW1vdW50IGxvY2tlZCBvbiBiZWhhbGYgb2YgdGhpcyBwYWxsZXQgc2hvdWxkIGFsd2F5cyBiZSB0aGUgbWF4aW11bSBvZiwgdGhpcyBsaXN0LgABHQIAAYUHAAggTWF4Vm90ZXMoEBkAAAAQ8CBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCB2b3RlcyBhbiBhY2NvdW50IG1heSBoYXZlLgBVASBBbHNvIHVzZWQgdG8gY29tcHV0ZSB3ZWlnaHQsIGFuIG92ZXJseSBsYXJnZSB2YWx1ZSBjYW4gbGVhZCB0byBleHRyaW5zaWNzIHdpdGggbGFyZ2XAIHdlaWdodCBlc3RpbWF0aW9uOiBzZWUgYGRlbGVnYXRlYCBmb3IgaW5zdGFuY2UuAERWb3RlTG9ja2luZ1BlcmlvZCgQwIkBABCQIFRoZSBtaW5pbXVtIHBlcmlvZCBvZiB2b3RlIGxvY2tpbmcuAGUBIEl0IHNob3VsZCBiZSBubyBzaG9ydGVyIHRoYW4gZW5hY3RtZW50IHBlcmlvZCB0byBlbnN1cmUgdGhhdCBpbiB0aGUgY2FzZSBvZiBhbiBhcHByb3ZhbCxJASB0aG9zZSBzdWNjZXNzZnVsIHZvdGVycyBhcmUgbG9ja2VkIGludG8gdGhlIGNvbnNlcXVlbmNlcyB0aGF0IHRoZWlyIHZvdGVzIGVudGFpbC4AAf0KAAAAJAAAJFJlZmVyZW5kYQEkUmVmZXJlbmRhFDxSZWZlcmVuZHVtQ291bnQBACgQAAAAAAQxASBUaGUgbmV4dCBmcmVlIHJlZmVyZW5kdW0gaW5kZXgsIGFrYSB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBzdGFydGVkIHNvIGZhci4ARFJlZmVyZW5kdW1JbmZvRm9yAAEEAigBCwQABLQgSW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgZ2l2ZW4gcmVmZXJlbmR1bS4AKFRyYWNrUXVldWUBAQQFgCELBAAQXQEgVGhlIHNvcnRlZCBsaXN0IG9mIHJlZmVyZW5kYSByZWFkeSB0byBiZSBkZWNpZGVkIGJ1dCBub3QgeWV0IGJlaW5nIGRlY2lkZWQsIG9yZGVyZWQgYnl8IGNvbnZpY3Rpb24td2VpZ2h0ZWQgYXBwcm92YWxzLgBBASBUaGlzIHNob3VsZCBiZSBlbXB0eSBpZiBgRGVjaWRpbmdDb3VudGAgaXMgbGVzcyB0aGFuIGBUcmFja0luZm86Om1heF9kZWNpZGluZ2AuADREZWNpZGluZ0NvdW50AQEEBYAoEAAAAAAExCBUaGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBiZWluZyBkZWNpZGVkIGN1cnJlbnRseS4AKE1ldGFkYXRhT2YAAQQCKCwEABgFASBUaGUgbWV0YWRhdGEgaXMgYSBnZW5lcmFsIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcgdGhlIHJlZmVyZW5kdW0uSQEgVGhlIGBIYXNoYCByZWZlcnMgdG8gdGhlIHByZWltYWdlIG9mIHRoZSBgUHJlaW1hZ2VzYCBwcm92aWRlciB3aGljaCBjYW4gYmUgYSBKU09OiCBkdW1wIG9yIElQRlMgaGFzaCBvZiBhIEpTT04gZmlsZS4AdQEgQ29uc2lkZXIgYSBnYXJiYWdlIGNvbGxlY3Rpb24gZm9yIGEgbWV0YWRhdGEgb2YgZmluaXNoZWQgcmVmZXJlbmR1bXMgdG8gYHVucmVxdWVzdGAgKHJlbW92ZSlEIGxhcmdlIHByZWltYWdlcy4AATECAAGJBwAURFN1Ym1pc3Npb25EZXBvc2l0QEAAQHoQ81oAAAAAAAAAAAAABDUBIFRoZSBtaW5pbXVtIGFtb3VudCB0byBiZSB1c2VkIGFzIGEgZGVwb3NpdCBmb3IgYSBwdWJsaWMgcmVmZXJlbmR1bSBwcm9wb3NhbC4AJE1heFF1ZXVlZCgQZAAAAATkIE1heGltdW0gc2l6ZSBvZiB0aGUgcmVmZXJlbmR1bSBxdWV1ZSBmb3IgYSBzaW5nbGUgdHJhY2suAERVbmRlY2lkaW5nVGltZW91dCgQgHAAAAhVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBhZnRlciBzdWJtaXNzaW9uIHRoYXQgYSByZWZlcmVuZHVtIG11c3QgYmVnaW4gYmVpbmcgZGVjaWRlZCBieS7kIE9uY2UgdGhpcyBwYXNzZXMsIHRoZW4gYW55b25lIG1heSBjYW5jZWwgdGhlIHJlZmVyZW5kdW0uADRBbGFybUludGVydmFsKBABAAAADF0BIFF1YW50aXphdGlvbiBsZXZlbCBmb3IgdGhlIHJlZmVyZW5kdW0gd2FrZXVwIHNjaGVkdWxlci4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgcmVzdWx0IGluXQEgZmV3ZXIgc3RvcmFnZSByZWFkcy93cml0ZXMgbmVlZGVkIGZvciBzbWFsbGVyIHZvdGVycywgYnV0IGFsc28gcmVzdWx0IGluIGRlbGF5cyB0byB0aGVVASBhdXRvbWF0aWMgcmVmZXJlbmR1bSBzdGF0dXMgY2hhbmdlcy4gRXhwbGljaXQgc2VydmljaW5nIGluc3RydWN0aW9ucyBhcmUgdW5hZmZlY3RlZC4AGFRyYWNrcyULhRAoAABkcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAGSns7bgDQAAAAAAAAAAWAIAAMCJAQAgHAAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAKnUVAQBkd2hpdGVsaXN0ZWRfY2FsbGVyAAAAAAAAAAMAAAAAAMUuvKKxAAAAAAAAAAAAZAAAAMCoAABgCQAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAC38cFAAAAAACiCAwAAAAAAExmKwEAAAAAAgBkcmVmZXJlbmR1bV9jYW5jZWxsZXIAAAAAAAMAAAAAANnprC14AwAAAAAAAAAAWAIAAMCoAABYAgAAZAAAAADbTg8iAGXNHQDKmjsCHex6AAAAAABSIk4BAAAAADS2h///////AwBkcmVmZXJlbmR1bV9raWxsZXIAAAAAAAAAAAMAAAAAAIu9BoloCgAAAAAAAAAAWAIAAMCoAABYAgAAZAAAAADbTg8iAGXNHQDKmjsCHex6AAAAAABSIk4BAAAAADS2h///////BABkZ2VuZXJhbF9hZG1pbgAAAAAAAAAAAAAAAAMAAAAAANnprC14AwAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAACGA7HAQAAAADLwJUEAAAAAOpyWf7/////BQBkdHJlYXN1cmVyAAAAAAAAAAAAAAAAAAAAAAMAAAAAAIu9BoloCgAAAAAAAAAAWAIAAMCJAQAgHAAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAlboKBgBkc3BlbmRlcgAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAIpdeEVjAQAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAAAAypo7AGXNHQDKmjsCGA7HAQAAAADLwJUEAAAAAOpyWf7/////BwBkdGlwcGVyAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAMFv8oYjAAAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAADbTg8iAGXNHQDKmjsCHex6AAAAAABSIk4BAAAAADS2h///////CABkb21uaXBvb2xfYWRtaW4AAAAAAAAAAAAAAAMAAAAAANnprC14AwAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAACGA7HAQAAAADLwJUEAAAAAOpyWf7/////CQBkZWNvbm9taWNfcGFyYW1ldGVycwAAAAAAAAMAAAAAAIu9BoloCgAAAAAAAAAAWAIAAMCJAQAgHAAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAlboKDEggQSBsaXN0IG9mIHRyYWNrcy4AXQEgTm90ZTogaWYgdGhlIHRyYWNrcyBhcmUgZHluYW1pYywgdGhlIHZhbHVlIGluIHRoZSBzdGF0aWMgbWV0YWRhdGEgbWlnaHQgYmUgaW5hY2N1cmF0ZS4AAT0LAAwsUnVudGltZUNhbGwMABRWb3Rlc0AEzCBUaGUgY291bnRpbmcgdHlwZSBmb3Igdm90ZXMuIFVzdWFsbHkganVzdCBiYWxhbmNlLhRUYWxseY0HBEwgVGhlIHRhbGx5aW5nIHR5cGUuACUAABxPcmlnaW5zAAAAAAAAACYAACRXaGl0ZWxpc3QBJFdoaXRlbGlzdAQ8V2hpdGVsaXN0ZWRDYWxsAAEEBSxwBAAAAAE5AgABkQcAAAFBCwAELFJ1bnRpbWVDYWxsDARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuACcAAChEaXNwYXRjaGVyAShEaXNwYXRjaGVyDEhBYXZlTWFuYWdlckFjY291bnQBAACAqn4AAAAAAAAAAAAAAAAAAAAKp+AAAAAAAAAAAAAAAAAAACBFeHRyYUdhcwEAGCAAAAAAAAAAAAAAVExhc3RFdm1DYWxsRXhpdFJlYXNvbgAARQgEAAAAAT0CAAGhBwAAAUULAAQsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AKAAANEFzc2V0UmVnaXN0cnkBNEFzc2V0UmVnaXN0cnkcGEFzc2V0cwABBAIoSQsEAARUIERldGFpbHMgb2YgYW4gYXNzZXQuACxOZXh0QXNzZXRJZAEAKBABAAAABF0BIE5leHQgYXZhaWxhYmxlIGFzc2V0IGlkLiBUaGlzIGlzIHNlcXVlbnRpYWwgaWQgYXNzaWduZWQgZm9yIGVhY2ggbmV3IHJlZ2lzdGVyZWQgYXNzZXQuACBBc3NldElkcwABBAJJAigEAASkIE1hcHBpbmcgYmV0d2VlbiBhc3NldCBuYW1lIGFuZCBhc3NldCBpZC4AOEFzc2V0TG9jYXRpb25zAAEEAihZAgQABHQgTmF0aXZlIGxvY2F0aW9uIG9mIGFuIGFzc2V0LgAwQmFubmVkQXNzZXRzAAEEAihwBAAEsCBOb24tbmF0aXZlIGFzc2V0cyB3aGljaCB0cmFuc2ZlciBpcyBiYW5uZWQuADhMb2NhdGlvbkFzc2V0cwABBAJZAigEAASEIExvY2FsIGFzc2V0IGZvciBuYXRpdmUgbG9jYXRpb24uAGRFeGlzdGVudGlhbERlcG9zaXRDb3VudGVyAQBAQAAAAAAAAAAAAAAAAAAAAAAILQEgTnVtYmVyIG9mIGFjY291bnRzIHRoYXQgcGFpZCBleGlzdGVudGlhbCBkZXBvc2l0cyBmb3IgaW5zdWZmaWNpZW50IGFzc2V0cy6wIFRoaXMgc3RvcmFnZSBpcyB1c2VkIGJ5IGBTdWZmaWNpZW5jeUNoZWNrYC4AAUECAAGlBwAQTFNlcXVlbnRpYWxJZFN0YXJ0QXQoEEBCDwAAACxTdHJpbmdMaW1pdCgQIAAAAATgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi4AOE1pblN0cmluZ0xpbWl0KBADAAAABNAgVGhlIG1pbiBsZW5ndGggb2YgYSBuYW1lIG9yIHN5bWJvbCBzdG9yZWQgb24tY2hhaW4uAGxSZWdFeHRlcm5hbFdlaWdodE11bHRpcGxpZXIYIAoAAAAAAAAABNAgV2VpZ2h0IG11bHRpcGxpZXIgZm9yIGByZWdpc3Rlcl9leHRlcm5hbGAgZXh0cmluc2ljAAFNCwAIHEFzc2V0SWQoBCwgQXNzZXQgdHlwZUxBc3NldE5hdGl2ZUxvY2F0aW9uWQIEUCBBc3NldCBsb2NhdGlvbiB0eXBlADMAABhDbGFpbXMBGENsYWltcwQYQ2xhaW1zAQEEAq0HQEAAAAAAAAAAAAAAAAAAAAAABJwgQXNzZXQgaWQgc3RvcmFnZSBmb3IgZWFjaCBzaGFyZWQgdG9rZW4AAWUCAAGpBwAAAVELAAAANQAAOEdlbmVzaXNIaXN0b3J5AThHZW5lc2lzSGlzdG9yeQQ0UHJldmlvdXNDaGFpbgEAVQsBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtAgAAAAAAADcAADxDb2xsYXRvclJld2FyZHMBPENvbGxhdG9yUmV3YXJkcwQkQ29sbGF0b3JzAQEEBShZCwQABKggU3RvcmVzIHRoZSBjb2xsYXRvcnMgcGVyIHNlc3Npb24gKGluZGV4KS4AAAGxBwAMRFJld2FyZFBlckNvbGxhdG9yQEB4+ot1KJ4BAAAAAAAAAAAABIAgUmV3YXJkIGFtb3VudCBwZXIgb25lIGNvbGxhdG9yLgBAUmV3YXJkQ3VycmVuY3lJZCgQAAAAAARAIFJld2FyZCBBc3NldCBJZAAoUmV3YXJkc0JhZwCAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdCwAIHEJhbGFuY2VABDQgQmFsYW5jZSB0eXBlKEN1cnJlbmN5SWQoAAA5AABAQ29sbGF0b3JSb3RhdGlvbgAAAbUHAAAAAAA6AAAgT21uaXBvb2wBIE9tbmlwb29sHBhBc3NldHMAAQQCKGELBAAEiCBTdGF0ZSBvZiBhbiBhc3NldCBpbiB0aGUgb21uaXBvb2wATEh1YkFzc2V0VHJhZGFiaWxpdHkBAHkCBAEEdCBUcmFkYWJsZSBzdGF0ZSBvZiBodWIgYXNzZXQuACRQb3NpdGlvbnMAAQQCQGULBAAE9CBMUCBwb3NpdGlvbnMuIE1hcHMgTkZUIGluc3RhbmNlIGlkIHRvIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24AOE5leHRQb3NpdGlvbklkAQBAQAAAAAAAAAAAAAAAAAAAAAAEXCBQb3NpdGlvbiBpZHMgc2VxdWVuY2VyABxTbGlwRmVlAACFAgQADHwgR2xvYmFsIHNsaXAgZmVlIGNvbmZpZ3VyYXRpb24uBQEgYE5vbmVgID0gc2xpcCBmZWVzIGRpc2FibGVkIChkZWZhdWx0KS4gYFNvbWUoY29uZmlnKWAgPSBlbmFibGVkLrwgU2V0IHZpYSBgc2V0X3NsaXBfZmVlYCBleHRyaW5zaWMgKGdvdmVybmFuY2UpLgB0U2xpcEZlZUh1YlJlc2VydmVBdEJsb2NrU3RhcnQAAQQCKEAEAAghASBTbmFwc2hvdCBvZiBlYWNoIGFzc2V0J3MgaHViX3Jlc2VydmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGJsb2NrLjUBIExhemlseSBwb3B1bGF0ZWQgb24gZmlyc3QgdHJhZGUgcGVyIGFzc2V0IHBlciBibG9jaywgY2xlYXJlZCBpbiBvbl9maW5hbGl6ZS4AMFNsaXBGZWVEZWx0YQEBBAIoaQtEAAAAAAAAAAAAAAAAAAAAAAAM/CBDdW11bGF0aXZlIG5ldCBodWIgYXNzZXQgZGVsdGEgcGVyIGFzc2V0IGluIHRoZSBjdXJyZW50IGJsb2NrLg0BIE5lZ2F0aXZlID0gbmV0IGh1YiBhc3NldCBvdXRmbG93LCBwb3NpdGl2ZSA9IG5ldCBodWIgYXNzZXQgaW5mbG93LmAgQ2xlYXJlZCBpbiBvbl9maW5hbGl6ZS4AAXECAAG5BwAkKEhkeEFzc2V0SWQoEAAAAAAEQCBOYXRpdmUgQXNzZXQgSUQAKEh1YkFzc2V0SWQoEAEAAAAENCBIdWIgQXNzZXQgSUQAQE1pbldpdGhkcmF3YWxGZWV1AhBkAAAABFwgTWluaW11bSB3aXRoZHJhd2FsIGZlZQBMTWluaW11bVRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAARYIE1pbmltdW0gdHJhZGluZyBsaW1pdABQTWluaW11bVBvb2xMaXF1aWRpdHlAQEBCDwAAAAAAAAAAAAAAAAAEqCBNaW5pbXVtIHBvb2wgbGlxdWlkaXR5IHdoaWNoIGNhbiBiZSBhZGRlZAAoTWF4SW5SYXRpb0BAAwAAAAAAAAAAAAAAAAAAAATwIE1heCBmcmFjdGlvbiBvZiBhc3NldCByZXNlcnZlIHRvIHNlbGwgaW4gc2luZ2xlIHRyYW5zYWN0aW9uACxNYXhPdXRSYXRpb0BAAwAAAAAAAAAAAAAAAAAAAATsIE1heCBmcmFjdGlvbiBvZiBhc3NldCByZXNlcnZlIHRvIGJ1eSBpbiBzaW5nbGUgdHJhbnNhY3Rpb24APE5GVENvbGxlY3Rpb25JZEBAOQUAAAAAAAAAAAAAAAAAAARYIE5vbiBmdW5naWJsZSBjbGFzcyBpZAA8QnVyblByb3RvY29sRmVldQIQAAAAAAAAAW0LAAwcQXNzZXRJZCgEMCBBc3NldCB0eXBlLjhQb3NpdGlvbkl0ZW1JZEAEZCBQb3NpdGlvbiBpZGVudGlmaWVyIHR5cGUwQ29sbGVjdGlvbklkQARMIENvbGxlY3Rpb24gaWQgdHlwZQA7AABAVHJhbnNhY3Rpb25QYXVzZQFAVHJhbnNhY3Rpb25QYXVzZQRIUGF1c2VkVHJhbnNhY3Rpb25zAAEEBXELcAQADGwgVGhlIHBhdXNlZCB0cmFuc2FjdGlvbiBtYXAA3CBtYXAgKFBhbGxldE5hbWVCeXRlcywgRnVuY3Rpb25OYW1lQnl0ZXMpID0+IE9wdGlvbjwoKT4AAYkCAAG9BwAAAXkLAAAAPAAAGER1c3RlcgEYRHVzdGVyBEBBY2NvdW50V2hpdGVsaXN0AAEEAgBwBAAEgCBBY2NvdW50cyBleGNsdWRlZCBmcm9tIGR1c3RpbmcuAAGNAgABwQcABERUcmVhc3VyeUFjY291bnRJZACAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAErCBUcmVhc3VyeSBhY2NvdW50LCB3aGljaCByZWNlaXZlcyB0aGUgZHVzdC4AAX0LAAQcQXNzZXRJZCgELCBBc3NldCB0eXBlAD0AAExPbW5pcG9vbFdhcmVob3VzZUxNAUxPbW5pcG9vbFdhcmVob3VzZUxNGDRGYXJtU2VxdWVuY2VyAQAoEAAAAAAEvCBJZCBzZXF1ZW5jZXIgZm9yIGBHbG9iYWxGYXJtYCBhbmQgYFlpZWxkRmFybWAuAEBEZXBvc2l0U2VxdWVuY2VyAQBAQAAAAAAAAAAAAAAAAAAAAAAAAChHbG9iYWxGYXJtAAEEAiiBCwQAAAAkWWllbGRGYXJtAAEMAgICiQuNCwQABFAgWWllbGQgZmFybSBkZXRhaWxzLgAcRGVwb3NpdAABBAVAkQsEAAREIERlcG9zaXQgZGV0YWlscy4APEFjdGl2ZVlpZWxkRmFybQABCAICqQIoBAAE+CBBY3RpdmUoZmFybXMgYWJsZSB0byByZWNlaXZlIExQIHNoYXJlcyBkZXBvc2l0cykgeWllbGQgZmFybXMuAAGRAgABxQcAGCBQYWxsZXRJZK0JIE9tbmlXaExNBCwgUGFsbGV0IGlkLgBEVHJlYXN1cnlBY2NvdW50SWQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABOggVHJlYXN1cnkgYWNjb3VudCB0byByZWNlaXZlIGNsYWltZWQgcmV3YXJkcyBsb3dlciB0aGFuIEVEAExNaW5Ub3RhbEZhcm1SZXdhcmRzQEAAEKXU6AAAAAAAAAAAAAAABDkBIE1pbmltdW0gdG90YWwgcmV3YXJkcyB0byBkaXN0cmlidXRlIGZyb20gZ2xvYmFsIGZhcm0gZHVyaW5nIGxpcXVpZGl0eSBtaW5pbmcuAGRNaW5QbGFubmVkWWllbGRpbmdQZXJpb2RzKBBoOAAABOwgTWluaW11bSBudW1iZXIgb2YgcGVyaW9kcyB0byBydW4gbGlxdWlkaXR5IG1pbmluZyBwcm9ncmFtLgBgTWF4RmFybUVudHJpZXNQZXJEZXBvc2l0KBAFAAAACGUBIE1heGltdW0gbnVtYmVyIG9mIHlpZWxkIGZhcm1zIHNhbWUgTFAgc2hhcmVzIGNhbiBiZSByZS9kZXBvc2l0ZWQgaW50by4gVGhpcyB2YWx1ZSBhbHdheXNcIE1VU1QgQkUgPj0gMS4gICAgICAgICAAaE1heFlpZWxkRmFybXNQZXJHbG9iYWxGYXJtKBAyAAAACE0BIE1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgY2FuIGV4aXN0IGluIGdsb2JhbCBmYXJtLiBUaGlzIGluY2x1ZGVzIGFsbCBmYXJtcyBpbiB0aGWYIHN0b3JhZ2UoYWN0aXZlLCBzdG9wcGVkLCB0ZXJtaW5hdGVkKS4AAaELAAgcQXNzZXRJZCgEMCBBc3NldCB0eXBlLiRBbW1Qb29sSWQoBOQgSWQgdXNlZCB0byBpZGVudGlmeSBhbW0gcG9vbCBpbiBsaXF1aWRpdHkgbWluaW5nIHBhbGxldC4APgAAXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nAVxPbW5pcG9vbExpcXVpZGl0eU1pbmluZwQ4T21uaVBvc2l0aW9uSWQAAQQCQEAEAATQIE1hcCBvZiBvbW5pcG9vbCBwb3NpdGlvbidzIGlkcyB0byBMTSdzIGRlcG9zaXQgaWRzLgABlQIAAckHAAw8TkZUQ29sbGVjdGlvbklkQEAYCgAAAAAAAAAAAAAAAAAABNwgTkZUIGNvbGxlY3Rpb24gaWQgZm9yIGxpcXVpZGl0eSBtaW5pbmcncyBkZXBvc2l0IG5mdHMuADBPcmFjbGVTb3VyY2UhASBvbW5pcG9vbASEIElkZW50aWZpZXIgb2Ygb3JhY2xlIGRhdGEgc29ydWNlADBPcmFjbGVQZXJpb2QhAwQCBIwgT3JhY2xlJ3MgcHJpY2UgYWdncmVnYXRpb24gcGVyaW9kLgABqQsAAAA/AAAMT1RDAQxPVEMILE5leHRPcmRlcklkAQAoEAAAAAAEYCBJRCBzZXF1ZW5jZXIgZm9yIE9yZGVycwAYT3JkZXJzAAEEAiixCwQAAAAByQIAAc0HAAxwRXhpc3RlbnRpYWxEZXBvc2l0TXVsdGlwbGllcggEBQRBASBNdWx0aXBsaWVyIHVzZWQgdG8gY29tcHV0ZSBtaW5pbWFsIGFtb3VudHMgb2YgYXNzZXRfaW4gYW5kIGFzc2V0X291dCBpbiBhbiBPVEMuAAxGZWV1AhDoAwAABHggRmVlIGRlZHVjdGVkIGZyb20gYW1vdW50X291dC4ALEZlZVJlY2VpdmVyAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAQ4IEZlZSByZWNlaXZlci4AAbULAAQcQXNzZXRJZCgEjCBJZGVudGlmaWVyIGZvciB0aGUgY2xhc3Mgb2YgYXNzZXQuAEAAADhDaXJjdWl0QnJlYWtlcgE4Q2lyY3VpdEJyZWFrZXI4YFRyYWRlVm9sdW1lTGltaXRQZXJBc3NldAEBBAIoqQIgiBMAABAnAAAI9CBUcmFkZSB2b2x1bWUgbGltaXRzIG9mIGFzc2V0cyBzZXQgYnkgc2V0X3RyYWRlX3ZvbHVtZV9saW1pdC6cIElmIG5vdCBzZXQsIHJldHVybnMgdGhlIGRlZmF1bHQgbGltaXQuAHxBbGxvd2VkVHJhZGVWb2x1bWVMaW1pdFBlckFzc2V0AAEEAii5CwQABGAgVHJhZGUgdm9sdW1lcyBwZXIgYXNzZXQAZExpcXVpZGl0eUFkZExpbWl0UGVyQXNzZXQBAQQCKNECJAH0AQAAECcAAAjEIExpcXVpZGl0eSBsaW1pdHMgb2YgYXNzZXRzIGZvciBhZGRpbmcgbGlxdWlkaXR5LpwgSWYgbm90IHNldCwgcmV0dXJucyB0aGUgZGVmYXVsdCBsaW1pdC4AhEFsbG93ZWRBZGRMaXF1aWRpdHlBbW91bnRQZXJBc3NldAABBAIovQsEAASAIEFkZCBsaXF1aWRpdHkgdm9sdW1lcyBwZXIgYXNzZXQASEFzc2V0TG9ja2Rvd25TdGF0ZQABBAIowQsEAAAAcExpcXVpZGl0eVJlbW92ZUxpbWl0UGVyQXNzZXQBAQQCKNECJAH0AQAAECcAAAjMIExpcXVpZGl0eSBsaW1pdHMgb2YgYXNzZXRzIGZvciByZW1vdmluZyBsaXF1aWRpdHkunCBJZiBub3Qgc2V0LCByZXR1cm5zIHRoZSBkZWZhdWx0IGxpbWl0LgCQQWxsb3dlZFJlbW92ZUxpcXVpZGl0eUFtb3VudFBlckFzc2V0AAEEAii9CwQABIwgUmVtb3ZlIGxpcXVpZGl0eSB2b2x1bWVzIHBlciBhc3NldABkR2xvYmFsV2l0aGRyYXdMaW1pdENvbmZpZwAA1QIEAASwIENvbmZpZ3VyZWQgZ2xvYmFsIHdpdGhkcmF3IGxpbWl0IHBhcmFtZXRlcnMAYFdpdGhkcmF3TGltaXRBY2N1bXVsYXRvcgEAxQtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEBIFR1cGxlIG9mIChjdXJyZW50X2FjY3VtdWxhdG9yX2luX3JlZiwgbGFzdF91cGRhdGVfdGltZXN0YW1wX21zKQBUV2l0aGRyYXdMb2NrZG93blVudGlsAAAYBAAE5CBJZiBzb21lLCBnbG9iYWwgbG9ja2Rvd24gaXMgYWN0aXZlIHVudGlsIHRoaXMgdGltZXN0YW1wLgA4RWdyZXNzQWNjb3VudHMAAQQCAHAEAATQIEEgbWFwIG9mIGFjY291bnRzIHRoYXQgYXJlIGNvbnNpZGVyZWQgZWdyZXNzIHNpbmtzLgBMSWdub3JlV2l0aGRyYXdMaW1pdAEARAQABMAgV2hlbiBzZXQgdG8gdHJ1ZSwgZWdyZXNzIGFjY291bnRpbmcgaXMgc2tpcHBlZC4AUEdsb2JhbEFzc2V0T3ZlcnJpZGVzAAEEAijdAgQABKwgT3ZlcnJpZGVzIGZvciBnbG9iYWwgYXNzZXQgY2F0ZWdvcml6YXRpb24uADxYY21FZ3Jlc3NCdWZmZXIAAH0CBAAI6CBQZXItWENNLW1lc3NhZ2UgYnVmZmVyIG9mICh3aXRoZHJhd25faGR4LCBkZXBvc2l0ZWRfaGR4KS4NASBOb25lIG1lYW5zIGJ1ZmZlciBpcyBpbmFjdGl2ZSAobm90IGluc2lkZSBYQ00gbWVzc2FnZSBwcm9jZXNzaW5nKS4AAc0CAAHRBwAMlERlZmF1bHRNYXhOZXRUcmFkZVZvbHVtZUxpbWl0UGVyQmxvY2upAiCIEwAAECcAAAgxASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSB0cmFkZWQgaW4gYSBibG9jay51ASBSZXByZXNlbnRlZCBhcyBhIG5vbi16ZXJvIGZyYWN0aW9uIChub21pbmF0b3IsIGRlbm9taW5hdG9yKSB3aXRoIHRoZSBtYXggdmFsdWUgYmVpbmcgMTBfMDAwLgCMRGVmYXVsdE1heEFkZExpcXVpZGl0eUxpbWl0UGVyQmxvY2vRAiQB9AEAABAnAAAMLQEgVGhlIG1heGltdW0gcGVyY2VudGFnZSBvZiBhIHBvb2wncyBsaXF1aWRpdHkgdGhhdCBjYW4gYmUgYWRkZWQgaW4gYSBibG9jay6dASBSZXByZXNlbnRlZCBhcyBhbiBvcHRpb25hbCBub24temVybyBmcmFjdGlvbiAobm9taW5hdG9yLCBkZW5vbWluYXRvcikgd2l0aCB0aGUgbWF4IHZhbHVlIGJlaW5nIDEwXzAwMC60IElmIHNldCB0byBOb25lLCB0aGUgbGltaXRzIGFyZSBub3QgZW5mb3JjZWQuAJhEZWZhdWx0TWF4UmVtb3ZlTGlxdWlkaXR5TGltaXRQZXJCbG9ja9ECJAH0AQAAECcAAAw1ASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSByZW1vdmVkIGluIGEgYmxvY2sunQEgUmVwcmVzZW50ZWQgYXMgYW4gb3B0aW9uYWwgbm9uLXplcm8gZnJhY3Rpb24gKG5vbWluYXRvciwgZGVub21pbmF0b3IpIHdpdGggdGhlIG1heCB2YWx1ZSBiZWluZyAxMF8wMDAutCBJZiBzZXQgdG8gTm9uZSwgdGhlIGxpbWl0cyBhcmUgbm90IGVuZm9yY2VkLgAByQsACBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC4cQmFsYW5jZUAEOCBCYWxhbmNlIHR5cGUuAEEAABhSb3V0ZXIBGFJvdXRlcgQYUm91dGVzAAEEAvUC5QIEAAR8IFN0b3Jpbmcgcm91dGVzIGZvciBhc3NldCBwYWlycwAB4QIAAdUHAAg0TmF0aXZlQXNzZXRJZCgQAAAAAARAIE5hdGl2ZSBBc3NldCBJZAAwT3JhY2xlUGVyaW9kIQMEAgSMIE9yYWNsZSdzIHByaWNlIGFnZ3JlZ2F0aW9uIHBlcmlvZC4AAc0LAAgcQXNzZXRJZCgEOCBBc3NldCBpZCB0eXBlHEJhbGFuY2VABDQgQmFsYW5jZSB0eXBlAEMAACxEeW5hbWljRmVlcwEsRHluYW1pY0ZlZXMIIEFzc2V0RmVlAAEEBSjRCwQACEkBIFN0b3JlcyBsYXN0IGNhbGN1bGF0ZWQgZmVlIG9mIGFuIGFzc2V0IGFuZCBibG9jayBudW1iZXIgaW4gd2hpY2ggaXQgd2FzIGNoYW5nZWQuLsggU3RvcmVkIGFzIChBc3NldCBmZWUsIFByb3RvY29sIGZlZSwgQmxvY2sgbnVtYmVyKQBUQXNzZXRGZWVDb25maWd1cmF0aW9uAAEEBSj9AgQABNggU3RvcmVzIHBlci1hc3NldCBmZWUgY29uZmlndXJhdGlvbiAoRml4ZWQgb3IgRHluYW1pYykAAfkCAAHZBwAISEFzc2V0RmVlUGFyYW1ldGVycwEDoMQJAABQwwAAACA9iHktAAAAAAAAAAAAAAAAyE5nbcEbAAAAAAAAAAAAAFRQcm90b2NvbEZlZVBhcmFtZXRlcnMBA6D0AQAAxAkAAACQHsS8FgAAAAAAAAAAAAAAAGSns7bgDQAAAAAAAAAAAAAB1QsACAxGZWV1AgRIIEZlZSBQZXJUaGluZyB0eXBlHEFzc2V0SWQoBDggQXNzZXQgaWQgdHlwZQBEAAAcU3Rha2luZwEcU3Rha2luZyAcU3Rha2luZwEA2QvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFggR2xvYmFsIHN0YWtpbmcgc3RhdGUuACRQb3NpdGlvbnMAAQQCQN0LBAAEXCBVc2VyJ3MgcG9zaXRpb24gc3RhdGUuADhOZXh0UG9zaXRpb25JZAEAQEAAAAAAAAAAAAAAAAAAAAAABGAgUG9zaXRpb24gaWRzIHNlcXVlbmNlci4AFFZvdGVzAQEEAkDhCwQABGAgTGlzdCBvZiBwb3NpdGlvbiB2b3Rlcy4ANFZvdGVzUmV3YXJkZWQAAQgCAvkL7QsEAASdASBMaXN0IG9mIHByb2Nlc3NlZCB2b3RlLiBVc2VkIHRvIGRldGVybWluZSBpZiB0aGUgdm90ZSBzaG91bGQgYmUgbG9ja2VkIGluIGNhc2Ugb2Ygdm90aW5nIG5vdCBpbiBmYXZvci4ANFBvc2l0aW9uVm90ZXMBAQQCQOELBAAEaQEgTGVnYWN5IHN0b3JhZ2UhIC0gVXNlZCB0byBoYW5kbGUgZGVtb2NyYWN5IHZvdGVzIHVudGlsIGRlbW9jcmFjeSBwYWxsZXQgaXMgZnVsbHkgcmVtb3ZlZC4AOFByb2Nlc3NlZFZvdGVzAAEIAgL5C+0LBAAEkQEgTGVnYWN5IHN0b3JhZ2UhIC0gVXNlZCB0byBoYW5kbGUgZGVtb2NyYWN5IHByb2Nlc3NlZCB2b3RlcyB1bnRpbCBkZW1vY3JhY3kgcGFsbGV0IGlzIGZ1bGx5IHJlbW92ZWQuAERTaXhTZWNCbG9ja3NTaW5jZQEAKBD/////BMAgQmxvY2sgbnVtYmVyIHdoZW4gd2Ugc3dpdGNoZWQgdG8gNiBzZWMuIGJsb2Nrcy4AAQUDAAHdBwAsMFBlcmlvZExlbmd0aCgQIBwAAASEIFN0YWtpbmcgcGVyaW9kIGxlbmd0aCBpbiBibG9ja3MuACBQYWxsZXRJZK0JIHN0YWtpbmcjBCwgUGFsbGV0IGlkLgA0TmF0aXZlQXNzZXRJZCgQAAAAAAREIE5hdGl2ZSBBc3NldCBJRC4AIE1pblN0YWtlQEAAgMakfo0DAAAAAAAAAAAABHAgTWluIGFtb3VudCB1c2VyIG11c3Qgc3Rha2UuAEBUaW1lUG9pbnRzV2VpZ2h0dQIQQEIPAATgIFdlaWdodCBvZiB0aGUgdGltZSBwb2ludHMgaW4gdG90YWwgcG9pbnRzIGNhbGN1bGF0aW9ucy4ASEFjdGlvblBvaW50c1dlaWdodCkDEADC6wsE6CBXZWlnaHQgb2YgdGhlIGFjdGlvbiBwb2ludHMgaW4gdG90YWwgcG9pbnRzIGNhbGN1bGF0aW9ucy4ATFRpbWVQb2ludHNQZXJQZXJpb2QIBAEE1CBOdW1iZXIgb2YgdGltZSBwb2ludHMgdXNlcnMgcmVjZWl2ZSBmb3IgZWFjaCBwZXJpb2QuAEhVbmNsYWltYWJsZVBlcmlvZHNAQAEAAAAAAAAAAAAAAAAAAAAIdQEgTnVtYmVyIG9mIHBlcmlvZHMgdXNlciBjYW4ndCBjbGFpbSByZXdhcmRzIGZvci4gVXNlciBjYW4gZXhpdCBidXQgd29uJ3QgcmVjZWl2ZSBhbnkgcmV3YXJkcy5xASBJZiBoZSBzdGF5IGxvbmdlciB0aGFuIGBVbmNsYWltYWJsZVBlcmlvZHNgIGhlIHdpbGwgcmVjZWl2ZSByZXdhcmRzIGFsc28gZm9yIHRoZXNlIHBlcmlvZHMuAEhDdXJyZW50U3Rha2VXZWlnaHQIBAIEsQEgV2VpZ2h0IG9mIHRoZSBhY3R1YWwgc3Rha2UgaW4gc2xhc2ggcG9pbnRzIGNhbGN1bGF0aW9uLiBCaWdnZXIgdGhlIHZhbHVlIGxvd2VyIHRoZSBjYWxjdWxhdGVkIHNsYXNoIHBvaW50cy4AIE1heFZvdGVzKBAZAAAABMwgTWF4IGFtb3VudCBvZiB2b3RlcyB0aGUgdXNlciBjYW4gaGF2ZSBhdCBhbnkgdGltZS4APE5GVENvbGxlY3Rpb25JZEBArggAAAAAAAAAAAAAAAAAAARMIE5GVCBjb2xsZWN0aW9uIGlkLgAB/QsADBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC44UG9zaXRpb25JdGVtSWRABGggUG9zaXRpb24gaWRlbnRpZmllciB0eXBlLjBDb2xsZWN0aW9uSWRABFAgQ29sbGVjdGlvbiBpZCB0eXBlLgBFAAAoU3RhYmxlc3dhcAEoU3RhYmxlc3dhcBQUUG9vbHMAAQQCKAUMBAAEPCBFeGlzdGluZyBwb29scwAgUG9vbFBlZ3MAAQQCKO0HBAAEPCBQb29sIHBlZyBpbmZvLgBAQXNzZXRUcmFkYWJpbGl0eQEBCAICqQIRAwQPBIggVHJhZGFiaWxpdHkgc3RhdGUgb2YgcG9vbCBhc3NldHMuADRQb29sU25hcHNob3RzAAEEAigJDAQABDkBIFRlbXBvcmFyeSBwb29sIHN0YXRlIHN0b3JhZ2UuIFVzZWQgdG8gc2F2ZSBhIHN0YXRlIG9mIHBvb2wgaW4gYSBzaW5nbGUgYmxvY2suACBCbG9ja0ZlZQABBAIodQIEAAS4IFRlbXBvcmFyeSBwb29sJ3MgdHJhZGUgZmVlIGZvciBjdXJyZW50IGJsb2NrLgABCQMAAeEHAAxATWluUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkAPE1pblRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gdHJhZGluZyBhbW91bnQASEFtcGxpZmljYXRpb25SYW5nZRkMEAIAECcEPQEgQW1wbGlmaWNhdGlvbiBpbmNsdXNpdmUgcmFuZ2UuIFBvb2wncyBhbXAgY2FuIGJlIHNlbGVjdGVkIGZyb20gdGhlIHJhbmdlIG9ubHkuAAEdDAAEHEFzc2V0SWQoBIwgSWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIG9mIGFzc2V0LgBGAAAUQm9uZHMBFEJvbmRzCBxCb25kSWRzAAEEAiEMKAQACFQgUmVnaXN0ZXJlZCBib25kIGlkcy7AIE1hcHMgKHVuZGVybHlpbmcgYXNzZXQgSUQsIG1hdHVyaXR5KSAtPiBib25kIElEABRCb25kcwABBAIoIQwEAAhIIFJlZ2lzdGVyZWQgYm9uZHMuwCBNYXBzIGJvbmQgSUQgLT4gKHVuZGVybHlpbmcgYXNzZXQgSUQsIG1hdHVyaXR5KQABLQMAAfkHAAggUGFsbGV0SWStCSBwbHRib25kcwTsIFRoZSBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4ANElzc3VlckFjY291bnQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABFkBIEFjY291bnQgdGhhdCBwYXlzIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGFuZCByZWNlaXZlcyB0aGUgYm9uZHMgd2hlbiBgaXNzdWVgIGlzIGNhbGxlZC4AASUMAAQcQmFsYW5jZUAEOCBCYWxhbmNlIHR5cGUuAEcAADhPdGNTZXR0bGVtZW50cwABMQMAAf0HABQ4UHJvZml0UmVjZWl2ZXIAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABIQgQWNjb3VudCB3aG8gcmVjZWl2ZXMgdGhlIHByb2ZpdC4ATE1pblByb2ZpdFBlcmNlbnRhZ2UpAxAQJwAABJwgTWluaW11bSBwcm9maXQgaW4gdGVybXMgb2YgcGVyY2VudGFnZS4AOFByaWNlUHJlY2lzaW9uVEAAAMFv8oYjAAAAAAAAAAAABNAgRGV0ZXJtaW5lcyB3aGVuIHdlIGNvbnNpZGVyIGFuIGFyYml0cmFnZSBhcyBjbG9zZWQuADxNaW5UcmFkaW5nTGltaXRAQOgDAAAAAAAAAAAAAAAAAAAEXCBNaW5pbXVtIHRyYWRpbmcgbGltaXQuADRNYXhJdGVyYXRpb25zKBAoAAAABG0BIE1heGltdW0gbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdXNlZCBpbiB0aGUgYmluYXJ5IHNlYXJjaCBhbGdvcml0aG0gdG8gZmluZCB0aGUgdHJhZGUgYW1vdW50LgABKQwAAABIAAAMTEJQAQxMQlAIIFBvb2xEYXRhAAEEAgAFCAQABEwgRGV0YWlscyBvZiBhIHBvb2wuAFRGZWVDb2xsZWN0b3JXaXRoQXNzZXQBAQgCAvkLRAQACMggU3RvcmFnZSB1c2VkIGZvciB0cmFja2luZyBleGlzdGluZyBmZWUgY29sbGVjdG9yc8wgTm90IG1vcmUgdGhhbiBvbmUgZmVlIGNvbGxlY3RvciBwZXIgYXNzZXQgcG9zc2libGUAATUDAAEBCAAUPE1pblRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAAQhASBNaW5pbXVtIHRyYWRpbmcgbGltaXQsIHNvbGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGtlZXAgdGhlIG1hdGggd29ya2luZwBATWluUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAAQlASBNaW5pbXVtIHBvb2wgbGlxdWlkaXR5LCBzb2xlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBrZWVwIHRoZSBtYXRoIHdvcmtpbmcAKE1heEluUmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEzCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbgAsTWF4T3V0UmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEyCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBidXkgaW4gc2luZ2xlIHRyYW5zYWN0aW9uACRyZXBheV9mZWWpAiACAAAACgAAAAAAAS0MAAAASQAADFhZSwEMWFlLDChTaGFyZVRva2VuAQEEAgAoEAAAAAAEoCBBc3NldCBpZCBzdG9yYWdlIGZvciBzaGFyZWQgcG9vbCB0b2tlbnMAOFRvdGFsTGlxdWlkaXR5AQEEAgBAQAAAAAAAAAAAAAAAAAAAAAAEbCBUb3RhbCBsaXF1aWRpdHkgaW4gYSBwb29sLgAoUG9vbEFzc2V0cwABBAIAqQIEAARYIEFzc2V0IHBhaXIgaW4gYSBwb29sLgABQQMAAQkIABw0TmF0aXZlQXNzZXRJZCgQAAAAAARAIE5hdGl2ZSBBc3NldCBJZAA4R2V0RXhjaGFuZ2VGZWWpAiADAAAA6AMAAAREIFRyYWRpbmcgZmVlIHJhdGUAPE1pblRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAARYIE1pbmltdW0gdHJhZGluZyBsaW1pdABATWluUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkAKE1heEluUmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEzCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbgAsTWF4T3V0UmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEyCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBidXkgaW4gc2luZ2xlIHRyYW5zYWN0aW9uADBPcmFjbGVTb3VyY2UhASBoeWRyYXh5awSoIE9yYWNsZSBzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhpcyBwYWxsZXQuAAExDAAAAEoAACRSZWZlcnJhbHMBJFJlZmVycmFscyg0UmVmZXJyYWxDb2RlcwABBAJJAwAEAAg8IFJlZmVycmFsIGNvZGVzkCBNYXBzIGEgcmVmZXJyYWwgY29kZSB0byBhbiBhY2NvdW50LgBAUmVmZXJyYWxBY2NvdW50cwABBAIASQMEAAhIIFJlZmVycmFsIGFjY291bnRzkCBNYXBzIGFuIGFjY291bnQgdG8gYSByZWZlcnJhbCBjb2RlLgA4TGlua2VkQWNjb3VudHMAAQQCAAAEAAhEIExpbmtlZCBhY2NvdW50cy6cIE1hcHMgYW4gYWNjb3VudCB0byBhIHJlZmVycmFsIGFjY291bnQuADhSZWZlcnJlclNoYXJlcwEBBAIAQEAAAAAAAAAAAAAAAAAAAAAABHQgU2hhcmVzIG9mIGEgcmVmZXJyYWwgYWNjb3VudAAwVHJhZGVyU2hhcmVzAQEEAgBAQAAAAAAAAAAAAAAAAAAAAAAEbCBTaGFyZXMgb2YgYSB0cmFkZXIgYWNjb3VudAAsVG90YWxTaGFyZXMBAEBAAAAAAAAAAAAAAAAAAAAAAARYIFRvdGFsIHNoYXJlIGlzc3VhbmNlLgAgUmVmZXJyZXIAAQQCADUMBAAM3CBSZWZlcmVyIGxldmVsIGFuZCB0b3RhbCBhY2N1bXVsYXRlZCByZXdhcmRzIG92ZXIgdGltZS7VASBNYXBzIHJlZmVycmVyIGFjY291bnQgdG8gKExldmVsLCBCYWxhbmNlKS4gTGV2ZWwgaW5kaWNhdGVzIGN1cnJlbnQgcmV3YXJkcyBhbmQgQmFsYW5jZSBpcyB1c2VkIHRvIHVubG9jayBuZXh0IGxldmVsLrkBIERldiBub3RlOiB3ZSB1c2UgT3B0aW9uUXVlcnkgaGVyZSBiZWNhdXNlIHRoaXMgaGVscHMgdG8gZWFzaWx5IGRldGVybWluZSB0aGF0IGFuIGFjY291bnQgaWYgcmVmZXJyZXIgYWNjb3VudC4AMEFzc2V0UmV3YXJkcwABCAICOQxRAwQACLAgQXNzZXQgZmVlIGRpc3RyaWJ1dGlvbiByZXdhcmRzIGluZm9ybWF0aW9uLtAgTWFwcyAoYXNzZXRfaWQsIGxldmVsKSB0byBhc3NldCByZXdhcmQgcGVyY2VudGFnZXMuAEhQZW5kaW5nQ29udmVyc2lvbnMAAQQCKHAEAAgBASBJbmZvcm1hdGlvbiBhYm91dCBhc3NldHMgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSByZXdhcmRzIHBvdC4NASBVc2VkIHRvIGVhc2lseSBkZXRlcm1pbmUgbGlzdCBvZiBhc3NldHMgdGhhdCBuZWVkIHRvIGJlIGNvbnZlcnRlZC4AcENvdW50ZXJGb3JQZW5kaW5nQ29udmVyc2lvbnMBACgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAABRQMAAQ0IABgsUmV3YXJkQXNzZXQoEAAAAAAE2CBJRCBvZiBhbiBhc3NldCB0aGF0IGlzIHVzZWQgdG8gZGlzdHJpYnV0ZSByZXdhcmRzIGluLgAgUGFsbGV0SWStCSByZWZlcnJhbARFASBQYWxsZXQgaWQuIERldGVybWluZXMgYWNjb3VudCB3aGljaCBob2xkcyBhY2N1bXVsYXRlZCByZXdhcmRzIGluIHZhcmlvdXMgYXNzZXRzLgA8UmVnaXN0cmF0aW9uRmVlPQzQAAAAAADgI2foyQAAAAAAAAAAAABtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAhoIFJlZ2lzdHJhdGlvbiBmZWUgZGV0YWlscy4lASAoSUQgb2YgYW4gYXNzZXQgd2hpY2ggZmVlIGlzIHRvIGJlIHBhaWQgaW4sIEFtb3VudCwgQmVuZWZpY2lhcnkgYWNjb3VudCkAKENvZGVMZW5ndGgoEAoAAAAEeCBNYXhpbXVtIHJlZmVycmFsIGNvZGUgbGVuZ3RoLgA0TWluQ29kZUxlbmd0aCgQBAAAAAR4IE1pbmltdW0gcmVmZXJyYWwgY29kZSBsZW5ndGguAEBTZWVkTmF0aXZlQW1vdW50QEAAoHJOGAkAAAAAAAAAAAAABLQgU2VlZCBhbW91bnQgdGhhdCB3YXMgc2VudCB0byB0aGUgcmV3YXJkIHBvdC4AAUEMAAAASwAALExpcXVpZGF0aW9uASxMaXF1aWRhdGlvbgREQm9ycm93aW5nQ29udHJhY3QBAFhQGwLgUWg7XPrFkpwl6ErbJuz4ezgEiCBCb3Jyb3dpbmcgbWFya2V0IGNvbnRyYWN0IGFkZHJlc3MAAVUDAAEVCAAMIEdhc0xpbWl0GCAACT0AAAAAAATkIFRoZSBnYXMgbGltaXQgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGxpcXVpZGF0aW9uIGNhbGwuADhQcm9maXRSZWNlaXZlcgCARVRIAOUlZ/8GrNbL57qU3Hd6MSbhgLbZAAAAAAAAAAAEhCBBY2NvdW50IHdobyByZWNlaXZlcyB0aGUgcHJvZml0LgAgSG9sbGFySWQoEN4AAAAETCBBc3NldCBJRCBvZiBIb2xsYXIAAUUMAAAATAAADEhTTQEMSFNNDCxDb2xsYXRlcmFscwABBAIoSQwEABToIExpc3Qgb2YgYXBwcm92ZWQgYXNzZXRzIHRoYXQgSG9sbGFyIGNhbiBiZSBwdXJjaGFzZWQgd2l0aAAtASBUaGlzIHN0b3JhZ2UgbWFwcyBhc3NldCBJRHMgdG8gdGhlaXIgY29sbGF0ZXJhbCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLikBIE9ubHkgYXNzZXRzIGluIHRoaXMgbWFwIGNhbiBiZSB1c2VkIHRvIG1pbnQgb3IgcmVkZWVtIEhvbGxhciB0aHJvdWdoIEhTTS5RASBFYWNoIGNvbGxhdGVyYWwgaGFzIHNwZWNpZmljIHBhcmFtZXRlcnMgY29udHJvbGxpbmcgaXRzIHVzYWdlIGluIHRoZSBIU00gbWVjaGFuaXNtLgBQSG9sbGFyQW1vdW50UmVjZWl2ZWQBAQQCKEBAAAAAAAAAAAAAAAAAAAAAABTgIEFtb3VudCBvZiBIb2xsYXIgYm91Z2h0IHdpdGggYW4gYXNzZXQgaW4gYSBzaW5nbGUgYmxvY2sAUQEgVGhpcyBzdG9yYWdlIHRyYWNrcyBob3cgbXVjaCBIb2xsYXIgaGFzIGJlZW4gYm91Z2h0IGJhY2sgYnkgSFNNIGZvciBlYWNoIGNvbGxhdGVyYWx1ASBhc3NldCB3aXRoaW4gdGhlIGN1cnJlbnQgYmxvY2suIFRoaXMgaXMgdXNlZCB0byBlbmZvcmNlIHJhdGUgbGltaXRpbmcgb24gSG9sbGFyIHJlZGVtcHRpb25zLgkBIFZhbHVlcyBhcmUgcmVzZXQgdG8gemVybyBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgaW4gb25fZmluYWxpemUuACxGbGFzaE1pbnRlcgAAWAQABJAgQWRkcmVzcyBvZiB0aGUgZmxhc2ggbG9hbiByZWNlaXZlci4AAVkDAAEZCAAUIEhvbGxhcklkKBDeAAAABEwgQXNzZXQgSUQgb2YgSG9sbGFyACBQYWxsZXRJZK0JIHB5L2hzbW9kBIwgUGFsbGV0IElEIHRvIGRldGVybWluZSBIU00gYWNjb3VudABITWluQXJiaXRyYWdlQW1vdW50QEAAAGSns7bgDQAAAAAAAAAAAABERmxhc2hMb2FuUmVjZWl2ZXJYUAAAAAAAAAAAAAAAAAAAAAAAAAkKAAAgR2FzTGltaXQYIIAaBgAAAAAABLQgVGhlIGdhcyBsaW1pdCBmb3IgdGhlIGV4ZWN1dGlvbiBvZiBFVk0gY2FsbHMAAU0MAAAAUgAAKFBhcmFtZXRlcnMBKFBhcmFtZXRlcnMIJElzVGVzdG5ldAEARAQAAABkUmVsYXlQYXJlbnRPZmZzZXRPdmVycmlkZQEARAQAAAAAAAAAAABTAAAYU2lnbmV0ARhTaWduZXQEMFNpZ25ldENvbmZpZwAAUQwEAAywIEdsb2JhbCBjb25maWd1cmF0aW9uIGZvciB0aGUgc2lnbmV0IHBhbGxldC4AGQEgSWYgYE5vbmVgLCB0aGUgcGFsbGV0IGhhcyBub3QgYmVlbiBjb25maWd1cmVkIHlldCBhbmQgY2Fubm90IGJlIHVzZWQuAAF1AwABHQgABCBQYWxsZXRJZK0JIHB5L3NpZ250BMAgVGhlIHBhbGxldCdzIHVuaXF1ZSBJRCBmb3IgZGVyaXZpbmcgaXRzIGFjY291bnQAAVUMAAAAVAAAMEV0aERpc3BlbnNlcgEwRXRoRGlzcGVuc2VyCDxEaXNwZW5zZXJDb25maWcAAFkMBAAMoCBHbG9iYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGRpc3BlbnNlci4ALQEgSWYgYE5vbmVgLCB0aGUgcGFsbGV0IGhhcyBub3QgYmVlbiBjb25maWd1cmVkIGFuZCBjYW5ub3QgcHJvY2VzcyByZXF1ZXN0cy4AOFVzZWRSZXF1ZXN0SWRzAAEEAgRwBAAMpCBSZXF1ZXN0IElEcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHVzZWQuACUBIFRoaXMgcHJldmVudHMgYWNjaWRlbnRhbCBvciBtYWxpY2lvdXMgcmUtc3VibWlzc2lvbiBvZiB0aGUgc2FtZSByZXF1ZXN0LgABtQMAASEIABAgRmVlQXNzZXQoEAAAAAAIwCBBc3NldCBJRCB1c2VkIHRvIGNoYXJnZSB0aGUgZmF1Y2V0IHJlcXVlc3QgZmVlLiggKEhEWCAtIDApACxGYXVjZXRBc3NldCgQFAAAAAj4IEFzc2V0IElEIGRlZHVjdGVkIHRvIHJlY2VpdmUgZmF1Y2V0IG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4wIChXRVRIIC0gMjApADhGZWVEZXN0aW5hdGlvbgCAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAEFQEgQWNjb3VudCB0aGF0IHJlY2VpdmVzIHRoZSBjb2xsZWN0ZWQgZGlzcGVuc2VyIGZlZXMgYW5kIGZhdWNldCBhc3NldC4AIFBhbGxldElkrQkgcHkvZnVjZXQE5CBQYWxsZXQgSUQgdXNlZCB0byBkZXJpdmUgdGhlIHBhbGxldCdzIHNvdmVyZWlnbiBhY2NvdW50LgABXQwAAABVAAAcR2lnYUhkeAEcR2lnYUhkeBAYU3Rha2VzAAEEAgBhDAQACBEBIFBlci1hY2NvdW50IHN0YWtlIHJlY29yZC4gQWJzZW50IGlmIHRoZSBhY2NvdW50IGhhcyBuZXZlciBzdGFrZWQgb3JQIGhhcyBmdWxseSB1bnN0YWtlZC4ALFRvdGFsTG9ja2VkAQBAQAAAAAAAAAAAAAAAAAAAAAAEcCBTdW0gb2YgYWxsIGBTdGFrZXNbYV0uaGR4YC4ATEdpZ2FIZHhQb29sQ29udHJhY3QAAFgEAAzkIEFhdmUgVjMgUG9vbCBjb250cmFjdCBhZGRyZXNzLiBNdXN0IGJlIHNldCBleHBsaWNpdGx5IGJ5FQEgYEF1dGhvcml0eU9yaWdpbmAgYmVmb3JlIGFueSBzdGFrZS91bnN0YWtlIOKAlCB0aGUgcGFsbGV0IHJlZnVzZXMgdG+YIHNpbGVudGx5IGRlZmF1bHQgdG8gdGhlIHplcm8gYWRkcmVzcy4APFBlbmRpbmdVbnN0YWtlcwABCAIF+QtlDAQADBEBIFBlbmRpbmcgdW5zdGFrZSBwb3NpdGlvbnMsIGtleWVkIGJ5IGAoYWNjb3VudCwgb3JpZ2luYXRpbmdfYmxvY2spYC4FASBTYW1lLWJsb2NrIHVuc3Rha2VzIGJ5IHRoZSBzYW1lIGFjY291bnQgY29tcG91bmQgaW50byBvbmUgZW50cnku7CBQZXItYWNjb3VudCBjb3VudCBib3VuZGVkIGJ5IGBDb25maWc6Ok1heFBlbmRpbmdVbnN0YWtlc2AuAAG9AwABJQgAGDBTdEhkeEFzc2V0SWQoEJ4CAAAAACBQYWxsZXRJZK0JIGdpZ2FoZHghCPwgUGFsbGV0IGFjY291bnQgaWQgdXNlZCBhcyB0aGUgZ2lnYXBvdCAoeWllbGQpIGFjY291bnQuIERlcml2ZWSkIHZpYSBgUGFsbGV0SWQ6OmludG9fYWNjb3VudF90cnVuY2F0aW5nYC4AGExvY2tJZCEBIGdoZHhsb2NrCPAgTG9ja0lkZW50aWZpZXIgdW5kZXIgd2hpY2ggdXNlciBIRFggKGFjdGl2ZSBzdGFrZSArIHBlbmRpbmdQIHVuc3Rha2UpIGlzIGxvY2tlZC4AIE1pblN0YWtlQEAAEKXU6AAAAAAAAAAAAAAABOAgTWluaW11bSBIRFggdGhhdCBjYW4gYmUgc3Rha2VkIGluIG9uZSBjYWxsIChhbnRpLWR1c3QpLgA4Q29vbGRvd25QZXJpb2QoEAAnBgAI7CBDb29sZG93biBwZXJpb2QgKGluIGJsb2NrcykgYmV0d2VlbiBgZ2lnYV91bnN0YWtlYCBhbmQgdGhlYCBtYXRjaGluZyBgdW5sb2NrYCBjYWxsLgBITWF4UGVuZGluZ1Vuc3Rha2VzKBAKAAAABBEBIE1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9ucyBwZXIgYWNjb3VudC4AAWkMAAAAVgAAOEdpZ2FIZHhSZXdhcmRzAThHaWdhSGR4UmV3YXJkcxhsUmVmZXJlbmRhVG90YWxXZWlnaHRlZFZvdGVzAAEEAihtDAQACBkBIExpdmUgdGFsbHkgbWFpbnRhaW5lZCBkdXJpbmcgdGhlIHZvdGluZyBwZXJpb2QuIERlbGV0ZWQgYXQgYWxsb2NhdGlvbsggdGltZTsgdGhlIHZhbHVlcyBtb3ZlIGludG8gYFJlZmVyZW5kYVJld2FyZFBvb2xgLgBAUmVmZXJlbmR1bVRyYWNrcwABBAIogAQACAUBIFRyYWNrIGlkIGNhY2hlZCBhdCB2b3RlIHRpbWUuIERlbGV0ZWQgYXQgYWxsb2NhdGlvbjsgbGl2ZXMgb24gaW6UIGBSZWZlcmVuZGFSZXdhcmRQb29sW3JlZl0udHJhY2tfaWRgLgBMUmVmZXJlbmRhUmV3YXJkUG9vbAABBAIocQwEAAgRASBQZXItcmVmZXJlbmR1bSBmcm96ZW4gc25hcHNob3QuIFByZXNlbmNlIGRvdWJsZXMgYXMgImFsbG9jYXRpb24gaGFz2CBydW4uIiBEZWxldGVkIHdoZW4gdGhlIGxhc3Qgdm90ZXIgY2xhaW1zIHRoZWlyIHNoYXJlLgA8VXNlclZvdGVSZWNvcmRzAAEIAgL5C3UMBAAIEQEgUGVyICh1c2VyLCByZWZlcmVuZHVtKSBzbmFwc2hvdCBvZiB0aGUgZWxpZ2libGUgdm90ZSB3ZWlnaHQgYXQgY2FzdOAgdGltZS4gVXBkYXRlZCBvbiB2b3RlIGVkaXRzOyB0YWtlbiBvbiBgb25fcmVtb3ZlX3ZvdGVgLgA0VXNlclZvdGVDb3VudAEBBAIAKBAAAAAAECEBIE51bWJlciBvZiBgVXNlclZvdGVSZWNvcmRzYCBlbnRyaWVzIGhlbGQgYnkgYHdob2AsIG1haW50YWluZWQgb24gaW5zZXJ0GQEgYW5kIHJlbW92YWwuIExldHMgdGhlIGdpZ2FoZHggbGlxdWlkYXRpb24gY2hhcmdlIGV4YWN0IHdlaWdodCBmb3IgdGhlHQEgdm90ZS1jbGVhcmFuY2UgbG9vcCBmcm9tIHRoZSBib3Jyb3dlcidzIGNvdW50LCB3aXRob3V0IGFuIE8obikgc2NhbiBhdGQgd2VpZ2h0LWNhbGN1bGF0aW9uIHRpbWUuADhQZW5kaW5nUmV3YXJkcwEBBAIAQEAAAAAAAAAAAAAAAAAAAAAABAUBIFJ1bm5pbmcgc3VtIG9mIEhEWCBvd2VkIHRvIGB3aG9gIGFjcm9zcyBhbGwgY29tcGxldGVkIHJlZmVyZW5kYS4AAcEDAAEpCAAERFJld2FyZFBvdFBhbGxldElkrQkgZ2lnYXJ3ZCEM9CBQYWxsZXRJZCBvZiB0aGUgZXh0ZXJuYWxseS1mdW5kZWQgYWNjdW11bGF0b3IgcG90LiBTb3VyY2Ugb2b4IGV2ZXJ5IHBlci1yZWZlcmVuZHVtIGFsbG9jYXRpb24uIFRoZSBhbGxvY2F0ZWQtcmV3YXJkcyBwb3QgaXPcIGRlcml2ZWQgZGV0ZXJtaW5pc3RpY2FsbHkgYXMgYSBzdWItYWNjb3VudCBvZiB0aGlzIGlkLgABeQwABBxUcmFja0lkgAAAVwAAGFRva2VucwEYVG9rZW5zEDRUb3RhbElzc3VhbmNlAQEEBShAQAAAAAAAAAAAAAAAAAAAAAAEkCBUaGUgdG90YWwgaXNzdWFuY2Ugb2YgYSB0b2tlbiB0eXBlLgAUTG9ja3MBAQgCBfkLfQwEAAjYIEFueSBsaXF1aWRpdHkgbG9ja3Mgb2YgYSB0b2tlbiB0eXBlIHVuZGVyIGFuIGFjY291bnQuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suACBBY2NvdW50cwEBCAIF+QuJDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYuCBUaGUgYmFsYW5jZSBvZiBhIHRva2VuIHR5cGUgdW5kZXIgYW4gYWNjb3VudC4A/CBOT1RFOiBJZiB0aGUgdG90YWwgaXMgZXZlciB6ZXJvLCBkZWNyZWFzZSBhY2NvdW50IHJlZiBhY2NvdW50LgAZASBOT1RFOiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0aGUgY2FzZSB0aGF0IHRoaXMgbW9kdWxlIGlzIHVzZWQgdG8gc3RvcmUoIGJhbGFuY2VzLgAgUmVzZXJ2ZXMBAQgCBfkLjQwEAASkIE5hbWVkIHJlc2VydmVzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4AAcUDAAEtCAAIIE1heExvY2tzKBAyAAAAAAAsTWF4UmVzZXJ2ZXMoEDIAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQuAAGZDAAMGEFtb3VudM0DBNwgVGhlIGFtb3VudCB0eXBlLCBzaG91bGQgYmUgc2lnbmVkIHZlcnNpb24gb2YgYEJhbGFuY2VgKEN1cnJlbmN5SWQoBFQgVGhlIGN1cnJlbmN5IElEIHR5cGVEUmVzZXJ2ZUlkZW50aWZpZXIhAQSAIFRoZSBpZCB0eXBlIGZvciBuYW1lZCByZXNlcnZlcy4ATQAAKEN1cnJlbmNpZXMAAckDAAExCAAIOFJlc2VydmVBY2NvdW50AIBtb2RsY3VycmVzZXIAAAAAAAAAAAAAAAAAAAAAAAAAAAAATEdldE5hdGl2ZUN1cnJlbmN5SWQoEAAAAAAAAAGdDAAAAE8AABxWZXN0aW5nARxWZXN0aW5nBEBWZXN0aW5nU2NoZWR1bGVzAQEEAgChDAQADIQgVmVzdGluZyBzY2hlZHVsZXMgb2YgYW4gYWNjb3VudC4A4CBWZXN0aW5nU2NoZWR1bGVzOiBtYXAgQWNjb3VudElkID0+IFZlYzxWZXN0aW5nU2NoZWR1bGU+AAHRAwABNQgABERNaW5WZXN0ZWRUcmFuc2ZlckBAZAAAAAAAAAAAAAAAAAAAAAToIFRoZSBtaW5pbXVtIGFtb3VudCB0cmFuc2ZlcnJlZCB0byBjYWxsIGB2ZXN0ZWRfdHJhbnNmZXJgLgABpQwAAABRAAAMRVZNAQxFVk0MMEFjY291bnRDb2RlcwEBBAJYFAQAAABQQWNjb3VudENvZGVzTWV0YWRhdGEAAQQCWKkMBAAAADxBY2NvdW50U3RvcmFnZXMBAQgCAq0MLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd0DAAE5CAAAAbEMAAAAWgAAKEVWTUNoYWluSWQBKEVWTUNoYWluSWQEHENoYWluSWQBABggAAAAAAAAAAAESCBUaGUgRVZNIGNoYWluIElELgAAAAAAAABbAAAgRXRoZXJldW0BIEV0aGVyZXVtGBxQZW5kaW5nAAEEBii1DAQABDUBIE1hcHBpbmcgZnJvbSB0cmFuc2FjdGlvbiBpbmRleCB0byB0cmFuc2FjdGlvbiBpbiB0aGUgY3VycmVudCBidWlsZGluZyBibG9jay4ARENvdW50ZXJGb3JQZW5kaW5nAQAoEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAMEN1cnJlbnRCbG9jawAA1QwEAARwIFRoZSBjdXJyZW50IEV0aGVyZXVtIGJsb2NrLgA8Q3VycmVudFJlY2VpcHRzAADpDAQABHwgVGhlIGN1cnJlbnQgRXRoZXJldW0gcmVjZWlwdHMuAGhDdXJyZW50VHJhbnNhY3Rpb25TdGF0dXNlcwAA7QwEAASIIFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIHN0YXR1c2VzLgAkQmxvY2tIYXNoAQEEBWAsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+QMAAUEIAAAB8QwAAABcAAAsRVZNQWNjb3VudHMBLEVWTUFjY291bnRzFEBBY2NvdW50RXh0ZW5zaW9uAAEEAlgxAQQABAUBIE1hcHMgYW4gRVZNIGFkZHJlc3MgdG8gdGhlIGxhc3QgMTIgYnl0ZXMgb2YgYSBzdWJzdHJhdGUgYWNjb3VudC4AQENvbnRyYWN0RGVwbG95ZXIAAQQCWHAEAAQJASBXaGl0ZWxpc3RlZCBhZGRyZXNzZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBkZXBsb3kgc21hcnQgY29udHJhY3RzLgBAQXBwcm92ZWRDb250cmFjdAABBAJYcAQABBkBIFdoaXRlbGlzdGVkIGNvbnRyYWN0cyB0aGF0IGFyZSBhbGxvd2VkIHRvIG1hbmFnZSBiYWxhbmNlcyBhbmQgdG9rZW5zLgBETWFya2VkRXZtQWNjb3VudHMAAQQCAHAEABTcIFRyYWNrcyBhY2NvdW50cyB0aGF0IGhhdmUgYmVlbiBtYXJrZWQgYXMgRVZNIGFjY291bnRzLh0BIEFuIGFjY291bnQgaXMgbWFya2VkIGFzIEVWTSBhY2NvdW50IHJpZ2h0IGJlZm9yZSB3ZSBjaGFyZ2UgdGhlIGV2bSBmZWUBASBUaGlzIGlzIHVzZWQgdG8gYXZvaWQgcmVzZXR0aW5nIGZyYW1lIHN5c3RlbSBub25jZSBvZiBhY2NvdW50cy5FASBXaGVuIHdlIG1hcmsgYWNjb3VudCBhcyBFVk0gYWNjb3VudCwgd2UgaW5jcmVhc2UgaXRzIHN1ZmZpY2llbnRzIGNvdW50ZXIgYnkgb25lLl0BIFdlIG5ldmVyIGRlY3JlYXNlIHRoaXMgc3VmZmljaWVudHMsIHNvIHNpZGUgZWZmZWN0IGlzIHRoYXQgYWNjb3VudCBjYW4gbmV2ZXIgYmUgcmVhcGVkAChBbGxvd2FuY2VzAQEMAgIC9QxAQAAAAAAAAAAAAAAAAAAAAAAIBQEgRVJDMjAtc3R5bGUgYWxsb3dhbmNlcyBzdG9yYWdlIGZvciB0aGUgTXVsdGlDdXJyZW5jeSBwcmVjb21waWxlOqAgKGFzc2V0X2lkLCBvd25lciwgc3BlbmRlcikgLT4gYWxsb3dhbmNlAAEpBAABZQgABDRGZWVNdWx0aXBsaWVyKBAyAAAABLQgRmVlIG11bHRpcGxpZXIgZm9yIHRoZSBiaW5kaW5nIG9mIGFkZHJlc3Nlcy4AAfkMAAQcQXNzZXRJZCgEPCBBc3NldCBpZCB0eXBlLgBdAAA0RHluYW1pY0V2bUZlZQE0RHluYW1pY0V2bUZlZQQ0QmFzZUZlZVBlckdhcwEAYIDA4eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAREIEJhc2UgZmVlIHBlciBnYXMAAAAELFdldGhBc3NldElkKBAUAAAABDggV0VUSCBBc3NldCBJZAAABBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC4AXgAASFhZS0xpcXVpZGl0eU1pbmluZwABLQQAAWkIAAw8TkZUQ29sbGVjdGlvbklkQEANFQAAAAAAAAAAAAAAAAAABNwgTkZUIGNvbGxlY3Rpb24gaWQgZm9yIGxpcXVpZGl0eSBtaW5pbmcncyBkZXBvc2l0IG5mdHMuADBPcmFjbGVTb3VyY2UhASBoeWRyYXh5awSoIE9yYWNsZSBzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhpcyBwYWxsZXQuADBPcmFjbGVQZXJpb2QhAwQCBJwgT3JhY2xlJ3MgbGlxdWlkaXR5IGFnZ3JlZ2F0aW9uIHBlcmlvZC4AAf0MAAAAXwAAOFhZS1dhcmVob3VzZUxNAThYWUtXYXJlaG91c2VMTRg0RmFybVNlcXVlbmNlcgEAKBAAAAAABLwgSWQgc2VxdWVuY2VyIGZvciBgR2xvYmFsRmFybWAgYW5kIGBZaWVsZEZhcm1gLgBARGVwb3NpdFNlcXVlbmNlcgEAQEAAAAAAAAAAAAAAAAAAAAAAAAAoR2xvYmFsRmFybQABBAIoAQ0EAAAAJFlpZWxkRmFybQABDAICAgUNCQ0EAARQIFlpZWxkIGZhcm0gZGV0YWlscy4AHERlcG9zaXQAAQQFQA0NBAAERCBEZXBvc2l0IGRldGFpbHMuADxBY3RpdmVZaWVsZEZhcm0AAQgCAvkLKAQABPggQWN0aXZlKGZhcm1zIGFibGUgdG8gcmVjZWl2ZSBMUCBzaGFyZXMgZGVwb3NpdHMpIHlpZWxkIGZhcm1zLgABPQQAAW0IABggUGFsbGV0SWStCSB4eWtMTXBJRAQsIFBhbGxldCBpZC4ARFRyZWFzdXJ5QWNjb3VudElkAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAToIFRyZWFzdXJ5IGFjY291bnQgdG8gcmVjZWl2ZSBjbGFpbWVkIHJld2FyZHMgbG93ZXIgdGhhbiBFRABMTWluVG90YWxGYXJtUmV3YXJkc0BAABCl1OgAAAAAAAAAAAAAAAQ5ASBNaW5pbXVtIHRvdGFsIHJld2FyZHMgdG8gZGlzdHJpYnV0ZSBmcm9tIGdsb2JhbCBmYXJtIGR1cmluZyBsaXF1aWRpdHkgbWluaW5nLgBkTWluUGxhbm5lZFlpZWxkaW5nUGVyaW9kcygQaDgAAATsIE1pbmltdW0gbnVtYmVyIG9mIHBlcmlvZHMgdG8gcnVuIGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbS4AYE1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdCgQBQAAAAhlASBNYXhpbXVtIG51bWJlciBvZiB5aWVsZCBmYXJtcyBzYW1lIExQIHNoYXJlcyBjYW4gYmUgcmUvZGVwb3NpdGVkIGludG8uIFRoaXMgdmFsdWUgYWx3YXlzXCBNVVNUIEJFID49IDEuICAgICAgICAgAGhNYXhZaWVsZEZhcm1zUGVyR2xvYmFsRmFybSgQMgAAAAhNASBNYXggbnVtYmVyIG9mIHlpZWxkIGZhcm1zIGNhbiBleGlzdCBpbiBnbG9iYWwgZmFybS4gVGhpcyBpbmNsdWRlcyBhbGwgZmFybXMgaW4gdGhlmCBzdG9yYWdlKGFjdGl2ZSwgc3RvcHBlZCwgdGVybWluYXRlZCkuAAEdDQAIHEFzc2V0SWQoBDAgQXNzZXQgdHlwZS4kQW1tUG9vbElkAATkIElkIHVzZWQgdG8gaWRlbnRpZnkgYW1tIHBvb2wgaW4gbGlxdWlkaXR5IG1pbmluZyBwYWxsZXQuAGAAADhSZWxheUNoYWluSW5mbwABQQQAAXEIAAABIQ0AAADJAAAMRENBAQxEQ0EgTFNjaGVkdWxlSWRTZXF1ZW5jZXIBACgQAAAAAARsIElkIHNlcXVlbmNlciBmb3Igc2NoZWR1bGVzACRTY2hlZHVsZXMAAQQCKEkEBAAEZCBTdG9yaW5nIHNjaGVkdWxlIGRldGFpbHMARFNjaGVkdWxlT3duZXJzaGlwAAEIAgX5C3AEAARsIFN0b3Jpbmcgc2NoZWR1bGUgb3duZXJzaGlwAEBSZW1haW5pbmdBbW91bnRzAAEEAihABAAE/CBLZWVwIHRyYWNraW5nIHRoZSByZW1haW5pbmcgYW1vdW50cyB0byBzcGVuZCBmb3IgRENBIHNjaGVkdWxlcwA4UmV0cmllc09uRXJyb3IBAQQCKAgEAATgIEtlZXAgdHJhY2tpbmcgdGhlIHJldHJ5IG9uIGVycm9yIGZsYWcgZm9yIERDQSBzY2hlZHVsZXMAWFNjaGVkdWxlRXhlY3V0aW9uQmxvY2sAAQQCKCgEAAQpASBLZWVwIHRyYWNraW5nIHRoZSBibG9ja251bWJlciB3aGVuIHRoZSBzY2hlZHVsZSBpcyBwbGFubmVkIHRvIGJlIGV4ZWN1dGVkAExTY2hlZHVsZUlkc1BlckJsb2NrAQEEAiglDQQABPggS2VlcCB0cmFja2luZyBvZiB0aGUgc2NoZWR1bGUgaWRzIHRvIGJlIGV4ZWN1dGVkIGluIHRoZSBibG9jawBAU2NoZWR1bGVFeHRyYUdhcwEBBAIoGCAAAAAAAAAAAAzYIFN0b3JlcyB0aGUgY3VycmVudCBleHRyYSBnYXMgdmFsdWUgZm9yIGVhY2ggc2NoZWR1bGUuSQEgSW5pdGlhbGl6ZWQgdG8gMCwgaW5jcmVtZW50cyBvbiBFdm1PdXRPZkdhcywgcGVyc2lzdHMgYWZ0ZXIgc3VjY2Vzc2Z1bCBleGVjdXRpb24uyCBDbGVhbmVkIHVwIHdoZW4gc2NoZWR1bGUgdGVybWluYXRlcyBvciBjb21wbGV0ZXMuAAFFBAABdQgAMHxNYXhQcmljZURpZmZlcmVuY2VCZXR3ZWVuQmxvY2tzdQIQmDoAAASsTWF4IHByaWNlIGRpZmZlcmVuY2UgYWxsb3dlZCBiZXR3ZWVuIGJsb2NrcwCsTWF4Q29uZmlndXJhYmxlUHJpY2VEaWZmZXJlbmNlQmV0d2VlbkJsb2Nrc3UCEFDDAAAE4E1heCBjb25maWd1cmFibGUgcHJpY2UgZGlmZmVyZW5jZSBhbGxvd2VkIGJldHdlZW4gYmxvY2tzAExNYXhTY2hlZHVsZVBlckJsb2NrKBAGAAAABNBUaGUgbnVtYmVyIG9mIG1heCBzY2hlZHVsZXMgdG8gYmUgZXhlY3V0ZWQgcGVyIGJsb2NrAGRNYXhOdW1iZXJPZlJldHJpZXNPbkVycm9yCAQDBNhUaGUgbnVtYmVyIG9mIG1heCByZXRyaWVzIGluIGNhc2Ugb2YgdHJhZGUgbGltaXQgZXJyb3IANE1pbmltYWxQZXJpb2QoEAUAAAAEhE1pbmltYWwgcGVyaW9kIGJldHdlZW4gZXhlY3V0aW9ucwAoQnVtcENoYW5jZSkNBBEEhENoYW5jZSBvZiB0aGUgcmFuZG9tIHJlc2NoZWR1bGluZwBMTWluaW11bVRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAASkIE1pbmltdW0gdHJhZGluZyBsaW1pdCBmb3IgYSBzaW5nbGUgdHJhZGUANE5hdGl2ZUFzc2V0SWQoEAAAAAAEQCBOYXRpdmUgQXNzZXQgSWQAVFBvbGthZG90TmF0aXZlQXNzZXRJZCgQBQAAAAR8IFBvbGthZG90IE5hdGl2ZSBBc3NldCBJZCAoRE9UKQBkTWluQnVkZ2V0SW5OYXRpdmVDdXJyZW5jeUBAAIDGpH6NAwAAAAAAAAAAAAQlAU1pbmltdW0gYnVkZ2V0IHRvIGJlIGFibGUgdG8gc2NoZWR1bGUgYSBEQ0EsIHNwZWNpZmllZCBpbiBuYXRpdmUgY3VycmVuY3kALEZlZVJlY2VpdmVyAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAASUVGhlIGZlZSByZWNlaXZlciBmb3IgdHJhbnNhY3Rpb24gZmVlcwA4TmFtZWRSZXNlcnZlSWQhASBkY2FvcmRlcgQpASBOYW1lZCByZXNlcnZlIGlkZW50aWZpZXIgdG8gc3RvcmUgbmFtZWQgcmVzZXJ2ZXMgZm9yIG9yZGVycyBvZiBlYWNoIHVzZXJzAAEtDQAEHEFzc2V0SWQoBDggQXNzZXQgaWQgdHlwZQBCAAAkU2NoZWR1bGVyASRTY2hlZHVsZXIQPEluY29tcGxldGVTaW5jZQAAKAQABPQgQmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZSBhZ2VuZGEgYmVnYW4gaW5jb21wbGV0ZSBleGVjdXRpb24uABhBZ2VuZGEBAQQFKDENBAAETQEgSXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGhlIGJsb2NrIG51bWJlciB0aGF0IHRoZXkgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uLgAcUmV0cmllcwABBAKpAkENBAAEIQEgUmV0cnkgY29uZmlndXJhdGlvbnMgZm9yIGl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRhc2sgYWRkcmVzcy4AGExvb2t1cAABBAUEqQIEABD4IExvb2t1cCBmcm9tIGEgbmFtZSB0byB0aGUgYmxvY2sgbnVtYmVyIGFuZCBpbmRleCBvZiB0aGUgdGFzay4AWQEgRm9yIHYzIC0+IHY0IHRoZSBwcmV2aW91c2x5IHVuYm91bmRlZCBpZGVudGl0aWVzIGFyZSBCbGFrZTItMjU2IGhhc2hlZCB0byBmb3JtIHRoZSB2NDAgaWRlbnRpdGllcy4AAVEEAAF5CAAINE1heGltdW1XZWlnaHTkLAsAgG6HdAECAAACBCkBIFRoZSBtYXhpbXVtIHdlaWdodCB0aGF0IG1heSBiZSBzY2hlZHVsZWQgcGVyIGJsb2NrIGZvciBhbnkgZGlzcGF0Y2hhYmxlcy4AUE1heFNjaGVkdWxlZFBlckJsb2NrKBAyAAAAFB0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzY2hlZHVsZWQgY2FsbHMgaW4gdGhlIHF1ZXVlIGZvciBhIHNpbmdsZSBibG9jay4AGCBOT1RFOlEBICsgRGVwZW5kZW50IHBhbGxldHMnIGJlbmNobWFya3MgbWlnaHQgcmVxdWlyZSBhIGhpZ2hlciBsaW1pdCBmb3IgdGhlIHNldHRpbmcuIFNldCBhxCBoaWdoZXIgbGltaXQgdW5kZXIgYHJ1bnRpbWUtYmVuY2htYXJrc2AgZmVhdHVyZS4AAUUNAAQsUnVudGltZUNhbGwMBGggVGhlIGFnZ3JlZ2F0ZWQgY2FsbCB0eXBlLgAFAAA8UGFyYWNoYWluU3lzdGVtATxQYXJhY2hhaW5TeXN0ZW1gRFVuaW5jbHVkZWRTZWdtZW50AQBJDQQAGEkBIExhdGVzdCBpbmNsdWRlZCBibG9jayBkZXNjZW5kYW50cyB0aGUgcnVudGltZSBhY2NlcHRlZC4gSW4gb3RoZXIgd29yZHMsIHRoZXNlIGFyZWEBIGFuY2VzdG9ycyBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBibG9jayB3aGljaCBoYXZlIG5vdCBiZWVuIGluY2x1ZGVkIGluIHRoZSBvYnNlcnZlZEwgcmVsYXktY2hhaW4gc3RhdGUuAHUBIFRoZSBzZWdtZW50IGxlbmd0aCBpcyBsaW1pdGVkIGJ5IHRoZSBjYXBhY2l0eSByZXR1cm5lZCBmcm9tIHRoZSBbYENvbnNlbnN1c0hvb2tgXSBjb25maWd1cmVkPCBpbiB0aGUgcGFsbGV0LgBsQWdncmVnYXRlZFVuaW5jbHVkZWRTZWdtZW50AABtDQQADGkBIFN0b3JhZ2UgZmllbGQgdGhhdCBrZWVwcyB0cmFjayBvZiBiYW5kd2lkdGggdXNlZCBieSB0aGUgdW5pbmNsdWRlZCBzZWdtZW50IGFsb25nIHdpdGggdGhlLQEgbGF0ZXN0IEhSTVAgd2F0ZXJtYXJrLiBVc2VkIGZvciBsaW1pdGluZyB0aGUgYWNjZXB0YW5jZSBvZiBuZXcgYmxvY2tzIHdpdGiQIHJlc3BlY3QgdG8gcmVsYXkgY2hhaW4gY29uc3RyYWludHMuAFRQZW5kaW5nVmFsaWRhdGlvbkNvZGUBABQEABhZASBJbiBjYXNlIG9mIGEgc2NoZWR1bGVkIHVwZ3JhZGUsIHRoaXMgc3RvcmFnZSBmaWVsZCBjb250YWlucyB0aGUgdmFsaWRhdGlvbiBjb2RlIHRvIGJlJCBhcHBsaWVkLgA9ASBBcyBzb29uIGFzIHRoZSByZWxheSBjaGFpbiBnaXZlcyB1cyB0aGUgZ28tYWhlYWQgc2lnbmFsLCB3ZSB3aWxsIG92ZXJ3cml0ZSB0aGVxASBbYDpjb2RlYF1bc3BfY29yZTo6c3RvcmFnZTo6d2VsbF9rbm93bl9rZXlzOjpDT0RFXSB3aGljaCB3aWxsIHJlc3VsdCB0aGUgbmV4dCBibG9jayBwcm9jZXNzCQEgd2l0aCB0aGUgbmV3IHZhbGlkYXRpb24gY29kZS4gVGhpcyBjb25jbHVkZXMgdGhlIHVwZ3JhZGUgcHJvY2Vzcy4ARE5ld1ZhbGlkYXRpb25Db2RlAAAUBAAUXQEgVmFsaWRhdGlvbiBjb2RlIHRoYXQgaXMgc2V0IGJ5IHRoZSBwYXJhY2hhaW4gYW5kIGlzIHRvIGJlIGNvbW11bmljYXRlZCB0byBjb2xsYXRvciBhbmR4IGNvbnNlcXVlbnRseSB0aGUgcmVsYXktY2hhaW4uAGUBIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jayBpZiBubyBvdGhlciBwYWxsZXQgYWxyZWFkeSBzZXQsIHRoZSB2YWx1ZS4AOFZhbGlkYXRpb25EYXRhAABdBAQADNAgVGhlIFtgUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGFgXSBzZXQgZm9yIHRoaXMgYmxvY2suLQEgVGhpcyB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSBzZXQgb25seSBvbmNlIHBlciBibG9jayBhbmQgaXQncyBuZXZlciBzdG9yZWQ0IGluIHRoZSB0cmllLgBQRGlkU2V0VmFsaWRhdGlvbkNvZGUBAEQEAATgIFdlcmUgdGhlIHZhbGlkYXRpb24gZGF0YSBzZXQgdG8gbm90aWZ5IHRoZSByZWxheSBjaGFpbj8AZExhc3RSZWxheUNoYWluQmxvY2tOdW1iZXIBACgQAAAAAAwdASBUaGUgcmVsYXkgY2hhaW4gYmxvY2sgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFzdCBwYXJhY2hhaW4gYmxvY2suAIggVGhpcyBpcyB1cGRhdGVkIGluIGBvbl9maW5hbGl6ZWAuAGBVcGdyYWRlUmVzdHJpY3Rpb25TaWduYWwBAHENBAAcdQEgQW4gb3B0aW9uIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgcmVsYXktY2hhaW4gcmVzdHJpY3RzIHNpZ25hbGxpbmcgYSB2YWxpZGF0aW9uIGNvZGUgdXBncmFkZS5hASBJbiBvdGhlciB3b3JkcywgaWYgdGhpcyBpcyBgU29tZWAgYW5kIFtgTmV3VmFsaWRhdGlvbkNvZGVgXSBpcyBgU29tZWAgdGhlbiB0aGUgcHJvZHVjZWRsIGNhbmRpZGF0ZSB3aWxsIGJlIGludmFsaWQuAHEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIGEgbWlycm9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gZnJvbSB0aGVtASByZWxheS1jaGFpbi4gVGhpcyB2YWx1ZSBpcyBlcGhlbWVyYWwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBoaXQgdGhlIHN0b3JhZ2UuIFRoaXMgdmFsdWUgaXNgIHNldCBhZnRlciB0aGUgaW5oZXJlbnQuADhVcGdyYWRlR29BaGVhZAEAZQ0EABTcIE9wdGlvbmFsIHVwZ3JhZGUgZ28tYWhlYWQgc2lnbmFsIGZyb20gdGhlIHJlbGF5LWNoYWluLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LgA8UmVsYXlTdGF0ZVByb29mAABlBAQAGMQgVGhlIHN0YXRlIHByb29mIGZvciB0aGUgbGFzdCByZWxheSBwYXJlbnQgYmxvY2suAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AWFJlbGV2YW50TWVzc2FnaW5nU3RhdGUAAHkNBAAcZQEgVGhlIHNuYXBzaG90IG9mIHNvbWUgc3RhdGUgcmVsYXRlZCB0byBtZXNzYWdpbmcgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgcGFyYWNoYWluIGFzIHBlckggdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgBESG9zdENvbmZpZ3VyYXRpb24AAI0NBAAYKQEgVGhlIHBhcmFjaGFpbiBob3N0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgb2J0YWluZWQgZnJvbSB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuADhMYXN0RG1xTXFjSGVhZAEAlQ2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ9CBUaGUgbGFzdCBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWQgd2UgaGF2ZSBvYnNlcnZlZC4AZQEgVGhpcyB2YWx1ZSBpcyBsb2FkZWQgYmVmb3JlIGFuZCBzYXZlZCBhZnRlciBwcm9jZXNzaW5nIGluYm91bmQgZG93bndhcmQgbWVzc2FnZXMgY2FycmllZGAgYnkgdGhlIHN5c3RlbSBpbmhlcmVudC4AQExhc3RIcm1wTXFjSGVhZHMBAJkNBAAQSQEgVGhlIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZHMgd2UgaGF2ZSBvYnNlcnZlZCBwZXIgZWFjaCBjaGFubmVsIGluY29taW5nIGNoYW5uZWwuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAGRQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2VzAQAoEAAAAAAMyCBOdW1iZXIgb2YgZG93bndhcmQgbWVzc2FnZXMgcHJvY2Vzc2VkIGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgA0SHJtcFdhdGVybWFyawEAKBAAAAAADKAgSFJNUCB3YXRlcm1hcmsgdGhhdCB3YXMgc2V0IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgBQSHJtcE91dGJvdW5kTWVzc2FnZXMBAKUNBAAMpCBIUk1QIG1lc3NhZ2VzIHRoYXQgd2VyZSBzZW50IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgA4VXB3YXJkTWVzc2FnZXMBACQEAAysIFVwd2FyZCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AVFBlbmRpbmdVcHdhcmRNZXNzYWdlcwEAJAQABDEBIFVwd2FyZCBtZXNzYWdlcyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nIGFuZCBub3QgeWV0IHNlbmQgdG8gdGhlIHJlbGF5IGNoYWluLgBcVXB3YXJkRGVsaXZlcnlGZWVGYWN0b3IBAFRAAABkp7O24A0AAAAAAAAAAATkIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5IGZvciBVTVAuAIRBbm5vdW5jZWRIcm1wTWVzc2FnZXNQZXJDYW5kaWRhdGUBACgQAAAAAAhlASBUaGUgbnVtYmVyIG9mIEhSTVAgbWVzc2FnZXMgd2Ugb2JzZXJ2ZWQgaW4gYG9uX2luaXRpYWxpemVgIGFuZCB0aHVzIHVzZWQgdGhhdCBudW1iZXIgZm9y8CBhbm5vdW5jaW5nIHRoZSB3ZWlnaHQgb2YgYG9uX2luaXRpYWxpemVgIGFuZCBgb25fZmluYWxpemVgLgBoUmVzZXJ2ZWRYY21wV2VpZ2h0T3ZlcnJpZGUAAOQEAAhdASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgWENNUCBtZXNzYWdlcy4gVGhpc7ggb3ZlcnJpZGVzIHRoZSBhbW91bnQgc2V0IGluIHRoZSBDb25maWcgdHJhaXQuAGRSZXNlcnZlZERtcFdlaWdodE92ZXJyaWRlAADkBAAIWQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIERNUCBtZXNzYWdlcy4gVGhpc7ggb3ZlcnJpZGVzIHRoZSBhbW91bnQgc2V0IGluIHRoZSBDb25maWcgdHJhaXQuAGBDdXN0b21WYWxpZGF0aW9uSGVhZERhdGEAABQEAAwpASBBIGN1c3RvbSBoZWFkIGRhdGEgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgcmVzdWx0IG9mIGB2YWxpZGF0ZV9ibG9ja2AuABEBIFNlZSBgUGFsbGV0OjpzZXRfY3VzdG9tX3ZhbGlkYXRpb25faGVhZF9kYXRhYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4AAVUEAAF9CAAEKFNlbGZQYXJhSWTgEPIHAAAEuCBSZXR1cm5zIHRoZSBwYXJhY2hhaW4gSUQgd2UgYXJlIHJ1bm5pbmcgd2l0aC4AAa0NAAAAZwAANFBhcmFjaGFpbkluZm8BNFBhcmFjaGFpbkluZm8ELFBhcmFjaGFpbklkAQDgEGQAAAAAAAGhBAAAAAAAAGkAACxQb2xrYWRvdFhjbQEsUG9sa2Fkb3RYY208MFF1ZXJ5Q291bnRlcgEAGCAAAAAAAAAAAASIIFRoZSBsYXRlc3QgYXZhaWxhYmxlIHF1ZXJ5IGluZGV4LgAcUXVlcmllcwABBAIYsQ0EAARUIFRoZSBvbmdvaW5nIHF1ZXJpZXMuAChBc3NldFRyYXBzAQEEBiwoEAAAAAAQaCBUaGUgZXhpc3RpbmcgYXNzZXQgdHJhcHMuAGEBIEtleSBpcyB0aGUgYmxha2UyIDI1NiBoYXNoIG9mIChvcmlnaW4sIHZlcnNpb25lZCBgQXNzZXRzYCkgcGFpci4gVmFsdWUgaXMgdGhlIG51bWJlciBvZh0BIHRpbWVzIHRoaXMgcGFpciBoYXMgYmVlbiB0cmFwcGVkICh1c3VhbGx5IGp1c3QgMSBpZiBpdCBleGlzdHMgYXQgYWxsKS4AOFNhZmVYY21WZXJzaW9uAAAoBAAIYQEgRGVmYXVsdCB2ZXJzaW9uIHRvIGVuY29kZSBYQ00gd2hlbiBsYXRlc3QgdmVyc2lvbiBvZiBkZXN0aW5hdGlvbiBpcyB1bmtub3duLiBJZiBgTm9uZWAsPQEgdGhlbiB0aGUgZGVzdGluYXRpb25zIHdob3NlIFhDTSB2ZXJzaW9uIGlzIHVua25vd24gYXJlIGNvbnNpZGVyZWQgdW5yZWFjaGFibGUuAEBTdXBwb3J0ZWRWZXJzaW9uAAEIBQLFDSgEAATwIFRoZSBMYXRlc3QgdmVyc2lvbnMgdGhhdCB3ZSBrbm93IHZhcmlvdXMgbG9jYXRpb25zIHN1cHBvcnQuAEBWZXJzaW9uTm90aWZpZXJzAAEIBQLFDRgEAAQFASBBbGwgbG9jYXRpb25zIHRoYXQgd2UgaGF2ZSByZXF1ZXN0ZWQgdmVyc2lvbiBub3RpZmljYXRpb25zIGZyb20uAFBWZXJzaW9uTm90aWZ5VGFyZ2V0cwABCAUCxQ3JDQQACHEBIFRoZSB0YXJnZXQgbG9jYXRpb25zIHRoYXQgYXJlIHN1YnNjcmliZWQgdG8gb3VyIHZlcnNpb24gY2hhbmdlcywgYXMgd2VsbCBhcyB0aGUgbW9zdCByZWNlbnSUIG9mIG91ciB2ZXJzaW9ucyB3ZSBpbmZvcm1lZCB0aGVtIG9mLgBUVmVyc2lvbkRpc2NvdmVyeVF1ZXVlAQDNDQQADGUBIERlc3RpbmF0aW9ucyB3aG9zZSBsYXRlc3QgWENNIHZlcnNpb24gd2Ugd291bGQgbGlrZSB0byBrbm93LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLCBhbmRxASB0aGUgYHUzMmAgY291bnRlciBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgYSBzZW5kIHRvIHRoZSBkZXN0aW5hdGlvbiBoYXMgYmVlbiBhdHRlbXB0ZWQsjCB3aGljaCBpcyB1c2VkIGFzIGEgcHJpb3JpdGl6YXRpb24uAEBDdXJyZW50TWlncmF0aW9uAADZDQQABJwgVGhlIGN1cnJlbnQgbWlncmF0aW9uJ3Mgc3RhZ2UsIGlmIGFueS4AVFJlbW90ZUxvY2tlZEZ1bmdpYmxlcwABDAUCAt0N4Q0EAATwIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gYSByZW1vdGUgY2hhaW4uADxMb2NrZWRGdW5naWJsZXMAAQQCAPENBAAE4CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIHRoaXMgY2hhaW4uAFRYY21FeGVjdXRpb25TdXNwZW5kZWQBAEQEAAS0IEdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuADxTaG91bGRSZWNvcmRYY20BAEQEABxZASBXaGV0aGVyIG9yIG5vdCBpbmNvbWluZyBYQ01zIChib3RoIGV4ZWN1dGVkIGxvY2FsbHkgYW5kIHJlY2VpdmVkKSBzaG91bGQgYmUgcmVjb3JkZWQuxCBPbmx5IG9uZSBYQ00gcHJvZ3JhbSB3aWxsIGJlIHJlY29yZGVkIGF0IGEgdGltZS4pASBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgaW4gcnVudGltZSBBUElzLCBhbmQgaXQncyBhZHZpc2VkIGl0IHN0YXlzIGZhbHNlDQEgZm9yIGFsbCBvdGhlciB1c2UgY2FzZXMsIHNvIGFzIHRvIG5vdCBkZWdyYWRlIHJlZ3VsYXIgcGVyZm9ybWFuY2UuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4ALFJlY29yZGVkWGNtAACxBQQAGEkBIElmIFtgU2hvdWxkUmVjb3JkWGNtYF0gaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGxhc3QgWENNIHByb2dyYW0gZXhlY3V0ZWQgbG9jYWxseVQgd2lsbCBiZSBzdG9yZWQgaGVyZS4pASBSdW50aW1lIEFQSXMgY2FuIGZldGNoIHRoZSBYQ00gdGhhdCB3YXMgZXhlY3V0ZWQgYnkgYWNjZXNzaW5nIHRoaXMgdmFsdWUuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4AREF1dGhvcml6ZWRBbGlhc2VzAAEEAqkE/Q0EAAxlASBNYXAgb2YgYXV0aG9yaXplZCBhbGlhc2VycyBvZiBsb2NhbCBvcmlnaW5zLiBFYWNoIGxvY2FsIGxvY2F0aW9uIGNhbiBhdXRob3JpemUgYSBsaXN0IG9mWQEgb3RoZXIgbG9jYXRpb25zIHRvIGFsaWFzIGludG8gaXQuIEVhY2ggYWxpYXNlciBpcyBvbmx5IHZhbGlkIHVudGlsIGl0cyBpbm5lciBgZXhwaXJ5YDggYmxvY2sgbnVtYmVyLgABpQQIAQK5AVRoaXMgZXh0cmluc2ljIHVzZXMgYFdlaWdodExpbWl0OjpVbmxpbWl0ZWRgLCBwbGVhc2UgbWlncmF0ZSB0byBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAIC2QFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAGBCAAQRFVuaXZlcnNhbExvY2F0aW9uoBgCCQIAyR8EhCBUaGlzIGNoYWluJ3MgVW5pdmVyc2FsIExvY2F0aW9uLgBQQWR2ZXJ0aXNlZFhjbVZlcnNpb24oEAUAAAAIJQEgVGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbiB0aGF0IHdlIGFkdmVydGlzZS4gR2VuZXJhbGx5IGp1c3Qgc2V0IGl0IHRvhCBgcGFsbGV0X3hjbTo6Q3VycmVudFhjbVZlcnNpb25gLgAoTWF4TG9ja2VycygQCAAAAAQZASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9jYWwgWENNIGxvY2tzIHRoYXQgYSBzaW5nbGUgYWNjb3VudCBtYXkgaGF2ZS4AWE1heFJlbW90ZUxvY2tDb25zdW1lcnMoEAAAAAAE/CBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uc3VtZXJzIGEgc2luZ2xlIHJlbW90ZSBsb2NrIG1heSBoYXZlLgABFQ4EGAK8VXNlIGBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3JgIGluc3RlYWQBGDIwLjAuMAgsUnVudGltZUNhbGwMBGQgVGhlIHJ1bnRpbWUgYENhbGxgIHR5cGUucFJlbW90ZUxvY2tDb25zdW1lcklkZW50aWZpZXJwBMQgVGhlIElEIHR5cGUgZm9yIGxvY2FsIGNvbnN1bWVycyBvZiByZW1vdGUgbG9ja3MuAGsAAChDdW11bHVzWGNtAAFpBgABkQgAAAAAAG0AACRYY21wUXVldWUBJFhjbXBRdWV1ZRxQSW5ib3VuZFhjbXBTdXNwZW5kZWQBAB0OBAAgDQEgVGhlIHN1c3BlbmRlZCBpbmJvdW5kIFhDTVAgY2hhbm5lbHMuIEFsbCBvdGhlcnMgYXJlIG5vdCBzdXNwZW5kZWQuAHEBIFRoaXMgaXMgYSBgU3RvcmFnZVZhbHVlYCBpbnN0ZWFkIG9mIGEgYFN0b3JhZ2VNYXBgIHNpbmNlIHdlIGV4cGVjdCBtdWx0aXBsZSByZWFkcyBwZXIgYmxvY2tpASB0byBkaWZmZXJlbnQga2V5cyB3aXRoIGEgb25lIGJ5dGUgcGF5bG9hZC4gVGhlIGFjY2VzcyB0byBgQm91bmRlZEJUcmVlU2V0YCB3aWxsIGJlIGNhY2hlZBUBIHdpdGhpbiB0aGUgYmxvY2sgYW5kIHRoZXJlZm9yZSBvbmx5IGluY2x1ZGVkIG9uY2UgaW4gdGhlIHByb29mIHNpemUuAGUBIE5PVEU6IFRoZSBQb1YgYmVuY2htYXJraW5nIGNhbm5vdCBrbm93IHRoaXMgYW5kIHdpbGwgb3Zlci1lc3RpbWF0ZSwgYnV0IHRoZSBhY3R1YWwgcHJvb2ZEIHdpbGwgYmUgc21hbGxlci4ASE91dGJvdW5kWGNtcFN0YXR1cwEAKQ4EABhdASBUaGUgbm9uLWVtcHR5IFhDTVAgY2hhbm5lbHMgaW4gb3JkZXIgb2YgYmVjb21pbmcgbm9uLWVtcHR5LCBhbmQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdFEBIGFuZCBsYXN0IG91dGJvdW5kIG1lc3NhZ2UuIElmIHRoZSB0d28gaW5kaWNlcyBhcmUgZXF1YWwsIHRoZW4gaXQgaW5kaWNhdGVzIGFuIGVtcHR5WQEgcXVldWUgYW5kIHRoZXJlIG11c3QgYmUgYSBub24tYE9rYCBgT3V0Ym91bmRTdGF0dXNgLiBXZSBhc3N1bWUgcXVldWVzIGdyb3cgbm8gZ3JlYXRlclkBIHRoYW4gNjU1MzUgaXRlbXMuIFF1ZXVlIGluZGljZXMgZm9yIG5vcm1hbCBtZXNzYWdlcyBiZWdpbiBhdCBvbmU7IHplcm8gaXMgcmVzZXJ2ZWQgaW4RASBjYXNlIG9mIHRoZSBuZWVkIHRvIHNlbmQgYSBoaWdoLXByaW9yaXR5IHNpZ25hbCBtZXNzYWdlIHRoaXMgYmxvY2suCQEgVGhlIGJvb2wgaXMgdHJ1ZSBpZiB0aGVyZSBpcyBhIHNpZ25hbCBtZXNzYWdlIHdhaXRpbmcgdG8gYmUgc2VudC4AUE91dGJvdW5kWGNtcE1lc3NhZ2VzAQEIAgU5Dj0OBAAEvCBUaGUgbWVzc2FnZXMgb3V0Ym91bmQgaW4gYSBnaXZlbiBYQ01QIGNoYW5uZWwuADhTaWduYWxNZXNzYWdlcwEBBALgPQ4EAASgIEFueSBzaWduYWwgbWVzc2FnZXMgd2FpdGluZyB0byBiZSBzZW50LgAsUXVldWVDb25maWcBAEEOMCAAAAAwAAAACAAAAAQVASBUaGUgY29uZmlndXJhdGlvbiB3aGljaCBjb250cm9scyB0aGUgZHluYW1pY3Mgb2YgdGhlIG91dGJvdW5kIHF1ZXVlLgA4UXVldWVTdXNwZW5kZWQBAEQEAARBASBXaGV0aGVyIG9yIG5vdCB0aGUgWENNUCBxdWV1ZSBpcyBzdXNwZW5kZWQgZnJvbSBleGVjdXRpbmcgaW5jb21pbmcgWENNcyBvciBub3QuAEREZWxpdmVyeUZlZUZhY3RvcgEBBAXgVEAAAGSns7bgDQAAAAAAAAAABMQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkuAAABlQgADExNYXhJbmJvdW5kU3VzcGVuZGVkKBDoAwAAFEkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmJvdW5kIFhDTVAgY2hhbm5lbHMgdGhhdCBjYW4gYmUgc3VzcGVuZGVkIHNpbXVsdGFuZW91c2x5LgBdASBBbnkgZnVydGhlciBjaGFubmVsIHN1c3BlbnNpb25zIHdpbGwgZmFpbCBhbmQgbWVzc2FnZXMgbWF5IGdldCBkcm9wcGVkIHdpdGhvdXQgZnVydGhlckUBIG5vdGljZS4gQ2hvb3NpbmcgYSBoaWdoIHZhbHVlICgxMDAwKSBpcyBva2F5OyB0aGUgdHJhZGUtb2ZmIHRoYXQgaXMgZGVzY3JpYmVkIGlu2CBbYEluYm91bmRYY21wU3VzcGVuZGVkYF0gc3RpbGwgYXBwbGllcyBhdCB0aGF0IHNjYWxlLgBkTWF4QWN0aXZlT3V0Ym91bmRDaGFubmVscygQgAAAACBlASBNYXhpbWFsIG51bWJlciBvZiBvdXRib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGhhdmUgbWVzc2FnZXMgcXVldWVkIGF0IHRoZSBzYW1lIHRpbWUuAFUBIElmIHRoaXMgaXMgcmVhY2hlZCwgdGhlbiBubyBmdXJ0aGVyIG1lc3NhZ2VzIGNhbiBiZSBzZW50IHRvIGNoYW5uZWxzIHRoYXQgZG8gbm90IHlldF0BIGhhdmUgYSBtZXNzYWdlIHF1ZXVlZC4gVGhpcyBzaG91bGQgYmUgc2V0IHRvIHRoZSBleHBlY3RlZCBtYXhpbXVtIG9mIG91dGJvdW5kIGNoYW5uZWxzYQEgd2hpY2ggaXMgZGV0ZXJtaW5lZCBieSBbYFNlbGY6OkNoYW5uZWxJbmZvYF0uIEl0IGlzIGltcG9ydGFudCB0byBzZXQgdGhpcyBsYXJnZSBlbm91Z2gsXQEgc2luY2Ugb3RoZXJ3aXNlIHRoZSBjb25nZXN0aW9uIGNvbnRyb2wgcHJvdG9jb2wgd2lsbCBub3Qgd29yayBhcyBpbnRlbmRlZCBhbmQgbWVzc2FnZXNRASBtYXkgYmUgZHJvcHBlZC4gVGhpcyB2YWx1ZSBpbmNyZWFzZXMgdGhlIFBvViBhbmQgc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgcGlja2VkIHRvb00BIGhpZ2guIEdvdmVybmFuY2UgbmVlZHMgdG8gcGF5IGF0dGVudGlvbiB0byBub3Qgb3BlbiBtb3JlIGNoYW5uZWxzIHRoYW4gdGhpcyB2YWx1ZS4ALE1heFBhZ2VTaXplKBAAAAIAFLggVGhlIG1heGltYWwgcGFnZSBzaXplIGZvciBIUk1QIG1lc3NhZ2UgcGFnZXMuAGEBIEEgbG93ZXIgbGltaXQgY2FuIGJlIHNldCBkeW5hbWljYWxseSwgYnV0IHRoaXMgaXMgdGhlIGhhcmQtbGltaXQgZm9yIHRoZSBQb1Ygd29yc3QgY2FzZVUBIGJlbmNobWFya2luZy4gVGhlIGxpbWl0IGZvciB0aGUgc2l6ZSBvZiBhIG1lc3NhZ2UgaXMgc2xpZ2h0bHkgYmVsb3cgdGhpcywgc2luY2Ugc29tZbggb3ZlcmhlYWQgaXMgaW5jdXJyZWQgZm9yIGVuY29kaW5nIHRoZSBmb3JtYXQuAAFFDgAAAG8AADBNZXNzYWdlUXVldWUBME1lc3NhZ2VRdWV1ZQwwQm9va1N0YXRlRm9yAQEEBXEGSQ50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzCBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGFuZCBsYXN0IChub24tZW1wdHkpIHBhZ2VzLgAsU2VydmljZUhlYWQAAHEGBAAEvCBUaGUgb3JpZ2luIGF0IHdoaWNoIHdlIHNob3VsZCBiZWdpbiBzZXJ2aWNpbmcuABRQYWdlcwABCAUFVQ5ZDgQABIggVGhlIG1hcCBvZiBwYWdlIGluZGljZXMgdG8gcGFnZXMuAAFtBgABmQgAECBIZWFwU2l6ZSgQAAwCABQ9ASBUaGUgc2l6ZSBvZiB0aGUgcGFnZTsgdGhpcyBpbXBsaWVzIHRoZSBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSB3aGljaCBjYW4gYmUgc2VudC4AWQEgQSBnb29kIHZhbHVlIGRlcGVuZHMgb24gdGhlIGV4cGVjdGVkIG1lc3NhZ2Ugc2l6ZXMsIHRoZWlyIHdlaWdodHMsIHRoZSB3ZWlnaHQgdGhhdCBpc10BIGF2YWlsYWJsZSBmb3IgcHJvY2Vzc2luZyB0aGVtIGFuZCB0aGUgbWF4aW1hbCBuZWVkZWQgbWVzc2FnZSBzaXplLiBUaGUgbWF4aW1hbCBtZXNzYWdlEQEgc2l6ZSBpcyBzbGlnaHRseSBsb3dlciB0aGFuIHRoaXMgYXMgZGVmaW5lZCBieSBbYE1heE1lc3NhZ2VMZW5PZmBdLgAgTWF4U3RhbGUoEAgAAAAMXQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0YWxlIHBhZ2VzIChpLmUuIG9mIG92ZXJ3ZWlnaHQgbWVzc2FnZXMpIGFsbG93ZWQgYmVmb3JlIGN1bGxpbmdRASBjYW4gaGFwcGVuLiBPbmNlIHRoZXJlIGFyZSBtb3JlIHN0YWxlIHBhZ2VzIHRoYW4gdGhpcywgdGhlbiBoaXN0b3JpY2FsIHBhZ2VzIG1heSBiZfwgZHJvcHBlZCwgZXZlbiBpZiB0aGV5IGNvbnRhaW4gdW5wcm9jZXNzZWQgb3ZlcndlaWdodCBtZXNzYWdlcy4ANFNlcnZpY2VXZWlnaHT5BSwBBwCg2yFdAgCAABhBASBUaGUgYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB3aGljaCBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yqCBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2luaXRpYWxpemVgLgD8IFRoaXMgbWF5IGJlIGxlZ2l0aW1hdGVseSBgTm9uZWAgaW4gdGhlIGNhc2UgdGhhdCB5b3Ugd2lsbCBjYWxsXQEgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBtYW51YWxseSBvciBzZXQgW2BTZWxmOjpJZGxlTWF4U2VydmljZVdlaWdodGBdIHRvIGhhdmVUIGl0IHJ1biBpbiBgb25faWRsZWAuAFBJZGxlTWF4U2VydmljZVdlaWdodPkFBAAUXQEgVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB0byBiZSB1c2VkIGZyb20gcmVtYWluaW5nIHdlaWdodCBgb25faWRsZWAgd2hpY2hBASBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yIHNlcnZpY2luZyBlbnF1ZXVlZCBpdGVtcyBgb25faWRsZWAuPQEgVXNlZnVsIGZvciBwYXJhY2hhaW5zIHRvIHByb2Nlc3MgbWVzc2FnZXMgYXQgdGhlIHNhbWUgYmxvY2sgdGhleSBhcmUgcmVjZWl2ZWQuACkBIElmIGBOb25lYCwgaXQgd2lsbCBub3QgY2FsbCBgU2VydmljZVF1ZXVlczo6c2VydmljZV9xdWV1ZXNgIGluIGBvbl9pZGxlYC4AAWEOAAQQU2l6ZSgEVCBQYWdlL2hlYXAgc2l6ZSB0eXBlLgByAAA0V2VpZ2h0UmVjbGFpbQAAAAAAAABzCIEBIFBhbGxldCB0byB1c2UgYWxvbmdzaWRlIHRoZSB0cmFuc2FjdGlvbiBleHRlbnNpb24gW2BTdG9yYWdlV2VpZ2h0UmVjbGFpbWBdLCB0aGUgcGFsbGV0IHByb3ZpZGVzjCB3ZWlnaHQgaW5mb3JtYXRpb24gYW5kIGJlbmNobWFya3MuAFBNdWx0aUJsb2NrTWlncmF0aW9ucwFQTXVsdGlCbG9ja01pZ3JhdGlvbnMIGEN1cnNvcgAAfQYEAAzYIFRoZSBjdXJyZW50bHkgYWN0aXZlIG1pZ3JhdGlvbiB0byBydW4gYW5kIGl0cyBjdXJzb3IuALwgYE5vbmVgIGluZGljYXRlcyB0aGF0IG5vIG1pZ3JhdGlvbiBpcyBydW5uaW5nLgAgSGlzdG9yaWMAAQQFeQNwBAAQtCBTZXQgb2YgYWxsIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCBtaWdyYXRpb25zLgBxASBUaGlzIGlzIHVzZWQgYXMgYmxhY2tsaXN0LCB0byBub3QgcmUtZXhlY3V0ZSBtaWdyYXRpb25zIHRoYXQgaGF2ZSBub3QgYmVlbiByZW1vdmVkIGZyb20gdGhlMQEgY29kZWJhc2UgeWV0LiBHb3Zlcm5hbmNlIGNhbiByZWd1bGFybHkgY2xlYXIgdGhpcyBvdXQgdmlhIGBjbGVhcl9oaXN0b3JpY2AuAAF1BgABoQgACDBDdXJzb3JNYXhMZW4oEAAAAQAQpCBUaGUgbWF4aW1hbCBsZW5ndGggb2YgYW4gZW5jb2RlZCBjdXJzb3IuAGUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYSBjdXJzb3Igd2l0aCBNRUwJASBhYm92ZSB0aGlzIGxpbWl0LiBUaGlzIGlzIHN0YXRpY2FsbHkgY2hlY2tlZCBpbiBgaW50ZWdyaXR5X3Rlc3RgLgBASWRlbnRpZmllck1heExlbigQAAEAABC0IFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGlkZW50aWZpZXIuAFUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYW4gaWRlbnRpZmllci0BIHdpdGggTUVMIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAAFlDgAAAHQAABxPcm1sWGNtAAGVBgABpQgAAAFpDgAAAIcAABxYVG9rZW5zAAGZBgABqQgADDBTZWxmTG9jYXRpb26cFAEBAMkfBFQgU2VsZiBjaGFpbiBsb2NhdGlvbi4ANEJhc2VYY21XZWlnaHTkFAKE1xcAEEQgQmFzZSBYQ00gd2VpZ2h0LgD4IFRoZSBhY3R1YWxseSB3ZWlnaHQgZm9yIGFuIFhDTSBtZXNzYWdlIGlzIGBUOjpCYXNlWGNtV2VpZ2h0ICtsIFQ6OldlaWdoZXI6OndlaWdodCgmbXNnKWAuADRSYXRlTGltaXRlcklkcAAEbCBUaGUgaWQgb2YgdGhlIFJhdGVMaW1pdGVyLgABbQ4ACBxCYWxhbmNlQARIIFRoZSBiYWxhbmNlIHR5cGUuKEN1cnJlbmN5SWQoBDQgQ3VycmVuY3kgSWQuAIkAADRVbmtub3duVG9rZW5zATRVbmtub3duVG9rZW5zCGBDb25jcmV0ZUZ1bmdpYmxlQmFsYW5jZXMBAQgCAnEOQEAAAAAAAAAAAAAAAAAAAAAAEAUBIENvbmNyZXRlIGZ1bmdpYmxlIGJhbGFuY2VzIHVuZGVyIGEgZ2l2ZW4gbG9jYXRpb24gYW5kIGEgY29uY3JldGU0IGZ1bmdpYmxlIGlkLgCIIGRvdWJsZV9tYXA6IHdobywgYXNzZXRfaWQgPT4gdTEyOABgQWJzdHJhY3RGdW5naWJsZUJhbGFuY2VzAQEIAgJ1DkBAAAAAAAAAAAAAAAAAAAAAABAFASBBYnN0cmFjdCBmdW5naWJsZSBiYWxhbmNlcyB1bmRlciBhIGdpdmVuIGxvY2F0aW9uIGFuZCBhIGFic3RyYWN0NCBmdW5naWJsZSBpZC4AiCBkb3VibGVfbWFwOiB3aG8sIGFzc2V0X2lkID0+IHUxMjgAAAGtCAAAAXkOAAAAiwAAKEF1dGhvcnNoaXABKEF1dGhvcnNoaXAEGEF1dGhvcgAAAAQABGQgQXV0aG9yIG9mIGN1cnJlbnQgYmxvY2suAAAAAAAAAKEAAERDb2xsYXRvclNlbGVjdGlvbgFEQ29sbGF0b3JTZWxlY3Rpb24UNEludnVsbmVyYWJsZXMBAFkLBAAEEQEgVGhlIGludnVsbmVyYWJsZSwgcGVybWlzc2lvbmVkIGNvbGxhdG9ycy4gVGhpcyBsaXN0IG11c3QgYmUgc29ydGVkLgA0Q2FuZGlkYXRlTGlzdAEAfQ4EABRpASBUaGUgKGNvbW11bml0eSwgbGltaXRlZCkgY29sbGF0aW9uIGNhbmRpZGF0ZXMuIGBDYW5kaWRhdGVzYCBhbmQgYEludnVsbmVyYWJsZXNgIHNob3VsZCBiZVAgbXV0dWFsbHkgZXhjbHVzaXZlLgB1ASBUaGlzIGxpc3QgaXMgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSBkZXBvc2l0IGFuZCB3aGVuIHRoZSBkZXBvc2l0cyBhcmUgZXF1YWwsIHRoZSBsZWFzdKAgcmVjZW50bHkgdXBkYXRlZCBpcyBjb25zaWRlcmVkIGdyZWF0ZXIuAERMYXN0QXV0aG9yZWRCbG9jawEBBAUAKBAAAAAABIQgTGFzdCBibG9jayBhdXRob3JlZCBieSBjb2xsYXRvci4ARERlc2lyZWRDYW5kaWRhdGVzAQAoEAAAAAAMeCBEZXNpcmVkIG51bWJlciBvZiBjYW5kaWRhdGVzLgB1ASBUaGlzIHNob3VsZCBpZGVhbGx5IGFsd2F5cyBiZSBsZXNzIHRoYW4gW2BDb25maWc6Ok1heENhbmRpZGF0ZXNgXSBmb3Igd2VpZ2h0cyB0byBiZSBjb3JyZWN0LgA0Q2FuZGlkYWN5Qm9uZAEAQEAAAAAAAAAAAAAAAAAAAAAADLggRml4ZWQgYW1vdW50IHRvIGRlcG9zaXQgdG8gYmVjb21lIGEgY29sbGF0b3IuAEEBIFdoZW4gYSBjb2xsYXRvciBjYWxscyBgbGVhdmVfaW50ZW50YCB0aGV5IGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhlIGRlcG9zaXQgYmFjay4AAaUGAAGxCAAYFFBvdElkrQkgUG90U3Rha2UE9CBBY2NvdW50IElkZW50aWZpZXIgZnJvbSB3aGljaCB0aGUgaW50ZXJuYWwgUG90IGlzIGdlbmVyYXRlZC4ANE1heENhbmRpZGF0ZXMoEAAAAAAMyCBNYXhpbXVtIG51bWJlciBvZiBjYW5kaWRhdGVzIHRoYXQgd2Ugc2hvdWxkIGhhdmUuAMwgVGhpcyBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgaW52dWxuZXJhYmxlcy4AUE1pbkVsaWdpYmxlQ29sbGF0b3JzKBAEAAAADFUBIE1pbmltdW0gbnVtYmVyIGVsaWdpYmxlIGNvbGxhdG9ycy4gU2hvdWxkIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4gemVyby4gVGhpcyBpbmNsdWRlc1EBIEludnVsbmVyYWJsZSBjb2xsYXRvcnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIG9uZSBjb2xsYXRvciB3aG8gY2FuRCBwcm9kdWNlIGEgYmxvY2suAEBNYXhJbnZ1bG5lcmFibGVzKBAyAAAABIQgTWF4aW11bSBudW1iZXIgb2YgaW52dWxuZXJhYmxlcy4ANEtpY2tUaHJlc2hvbGQoEGAJAAAAACxwb3RfYWNjb3VudACAbW9kbFBvdFN0YWtlAAAAAAAAAAAAAAAAAAAAAAAAAAAEoCBHZXRzIHRoaXMgcGFsbGV0J3MgZGVyaXZlZCBwb3QgYWNjb3VudC4AAYkOAAQsVmFsaWRhdG9ySWQABHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLgCjAAAcU2Vzc2lvbgEcU2Vzc2lvbhwoVmFsaWRhdG9ycwEASAQABHwgVGhlIGN1cnJlbnQgc2V0IG9mIHZhbGlkYXRvcnMuADBDdXJyZW50SW5kZXgBACgQAAAAAAR4IEN1cnJlbnQgaW5kZXggb2YgdGhlIHNlc3Npb24uADRRdWV1ZWRDaGFuZ2VkAQBEBAAIOQEgVHJ1ZSBpZiB0aGUgdW5kZXJseWluZyBlY29ub21pYyBpZGVudGl0aWVzIG9yIHdlaWdodGluZyBiZWhpbmQgdGhlIHZhbGlkYXRvcnOkIGhhcyBjaGFuZ2VkIGluIHRoZSBxdWV1ZWQgdmFsaWRhdG9yIHNldC4AKFF1ZXVlZEtleXMBAI0OBAAIPQEgVGhlIHF1ZXVlZCBrZXlzIGZvciB0aGUgbmV4dCBzZXNzaW9uLiBXaGVuIHRoZSBuZXh0IHNlc3Npb24gYmVnaW5zLCB0aGVzZSBrZXlz4CB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZGF0b3IncyBzZXNzaW9uIGtleXMuAEhEaXNhYmxlZFZhbGlkYXRvcnMBAJUOBAAUgCBJbmRpY2VzIG9mIGRpc2FibGVkIHZhbGlkYXRvcnMuAD0BIFRoZSB2ZWMgaXMgYWx3YXlzIGtlcHQgc29ydGVkIHNvIHRoYXQgd2UgY2FuIGZpbmQgd2hldGhlciBhIGdpdmVuIHZhbGlkYXRvciBpcz0BIGRpc2FibGVkIHVzaW5nIGJpbmFyeSBzZWFyY2guIEl0IGdldHMgY2xlYXJlZCB3aGVuIGBvbl9zZXNzaW9uX2VuZGluZ2AgcmV0dXJuc2QgYSBuZXcgc2V0IG9mIGlkZW50aXRpZXMuACBOZXh0S2V5cwABBAUArQYEAAScIFRoZSBuZXh0IHNlc3Npb24ga2V5cyBmb3IgYSB2YWxpZGF0b3IuACBLZXlPd25lcgABBAWhDgAEAAQJASBUaGUgb3duZXIgb2YgYSBrZXkuIFRoZSBrZXkgaXMgdGhlIGBLZXlUeXBlSWRgICsgdGhlIGVuY29kZWQga2V5LgABqQYAAbUIAAABqQ4ACCxWYWxpZGF0b3JJZAAEdCBBIHN0YWJsZSBJRCBmb3IgYSB2YWxpZGF0b3IuEEtleXOtBgQoIFRoZSBrZXlzLgClAAAQQXVyYQEQQXVyYQgsQXV0aG9yaXRpZXMBAK0OBAAEbCBUaGUgY3VycmVudCBhdXRob3JpdHkgc2V0LgAsQ3VycmVudFNsb3QBALUOIAAAAAAAAAAADIAgVGhlIGN1cnJlbnQgc2xvdCBvZiB0aGlzIGJsb2NrLgCUIFRoaXMgd2lsbCBiZSBzZXQgaW4gYG9uX2luaXRpYWxpemVgLgAAAAQwU2xvdER1cmF0aW9uGCBwFwAAAAAAABANASBUaGUgc2xvdCBkdXJhdGlvbiBBdXJhIHNob3VsZCBydW4gd2l0aCwgZXhwcmVzc2VkIGluIG1pbGxpc2Vjb25kcy49ASBUaGUgZWZmZWN0aXZlIHZhbHVlIG9mIHRoaXMgdHlwZSBzaG91bGQgbm90IGNoYW5nZSB3aGlsZSB0aGUgY2hhaW4gaXMgcnVubmluZy4ANQEgRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGVpdGhlciB1c2UgW2BNaW5pbXVtUGVyaW9kVGltZXNUd29gXSBvciBhIGNvbnN0LgAABCxBdXRob3JpdHlJZLEGBJggVGhlIGlkZW50aWZpZXIgdHlwZSBmb3IgYW4gYXV0aG9yaXR5LgCnAAAcQXVyYUV4dAEcQXVyYUV4dAgsQXV0aG9yaXRpZXMBAK0OBAAUlCBTZXJ2ZXMgYXMgY2FjaGUgZm9yIHRoZSBhdXRob3JpdGllcy4AcQEgVGhlIGF1dGhvcml0aWVzIGluIEF1UmEgYXJlIG92ZXJ3cml0dGVuIGluIGBvbl9pbml0aWFsaXplYCB3aGVuIHdlIHN3aXRjaCB0byBhIG5ldyBzZXNzaW9uLF0BIGJ1dCB3ZSByZXF1aXJlIHRoZSBvbGQgYXV0aG9yaXRpZXMgdG8gdmVyaWZ5IHRoZSBzZWFsIHdoZW4gdmFsaWRhdGluZyBhIFBvVi4gVGhpcyB3aWxsDQEgYWx3YXlzIGJlIHVwZGF0ZWQgdG8gdGhlIGxhdGVzdCBBdVJhIGF1dGhvcml0aWVzIGluIGBvbl9maW5hbGl6ZWAuADRSZWxheVNsb3RJbmZvAAC5DgQAEAkBIEN1cnJlbnQgcmVsYXkgY2hhaW4gc2xvdCBwYWlyZWQgd2l0aCBhIG51bWJlciBvZiBhdXRob3JlZCBibG9ja3MuAGUBIFRoaXMgaXMgdXBkYXRlZCBpbiBbYEZpeGVkVmVsb2NpdHlDb25zZW5zdXNIb29rOjpvbl9zdGF0ZV9wcm9vZmBdIHdpdGggdGhlIGN1cnJlbnQgcmVsYXncIGNoYWluIHNsb3QgYXMgcHJvdmlkZWQgYnkgdGhlIHJlbGF5IGNoYWluIHN0YXRlIHByb29mLgAAAAAAAACpAAAkRW1hT3JhY2xlASRFbWFPcmFjbGUULEFjY3VtdWxhdG9yAQC9DgQABHEBIEFjY3VtdWxhdG9yIGZvciBvcmFjbGUgZGF0YSBpbiBjdXJyZW50IGJsb2NrIHRoYXQgd2lsbCBiZSByZWNvcmRlZCBhdCB0aGUgZW5kIG9mIHRoZSBibG9jay4AHE9yYWNsZXMAAQwFBQXZDt0OBAAMdQEgT3JhY2xlIHN0b3JhZ2Uga2V5ZWQgYnkgZGF0YSBzb3VyY2UsIGludm9sdmVkIGFzc2V0IGlkcyBhbmQgdGhlIHBlcmlvZCBsZW5ndGggb2YgdGhlIG9yYWNsZS4AZQEgU3RvcmVzIHRoZSBkYXRhIGVudHJ5IGFzIHdlbGwgYXMgdGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBvcmFjbGUgd2FzIGZpcnN0IGluaXRpYWxpemVkLgBEV2hpdGVsaXN0ZWRBc3NldHMBAOEOBAAE3CBBc3NldHMgdGhhdCBhcmUgd2hpdGVsaXN0ZWQgYW5kIHRyYWNrZWQgYnkgdGhlIHBhbGxldC4APEV4dGVybmFsU291cmNlcwABBAUhAXAEAASQIFJlZ2lzdGVyZWQgZXh0ZXJuYWwgb3JhY2xlIHNvdXJjZXMuAEhBdXRob3JpemVkQWNjb3VudHMAAQwFBQXtDnAEABT4IEF1dGhvcml6ZWQgYWNjb3VudHMgcGVyIChleHRlcm5hbCBvcmFjbGUgc291cmNlLCBhc3NldCBwYWlyKS4ATQEgQXV0aG9yaXphdGlvbiBpcyBzY29wZWQgcGVyLXBhaXIgc28gdGhhdCBhIGNvbXByb21pc2VkIGV4dGVybmFsIG9yYWNsZSBhY2NvdW50IGNhbkkBIG9ubHkgdXBkYXRlIHRoZSBzcGVjaWZpYyBwYWlycyBpdCB3YXMgYXV0aG9yaXplZCBmb3IsIGxpbWl0aW5nIEREb1MgYmxhc3QgcmFkaXVzLsQgVGhlIGFzc2V0IHBhaXIgaXMgc3RvcmVkIGluIGBvcmRlcmVkX3BhaXJgIGZvcm0uAAG1BgQCAtkBVXNlIGBzZXRfZXh0ZXJuYWxfb3JhY2xlYCBpbnN0ZWFkLiBLZXB0IG9ubHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBiaWZyb3N0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZQABuQgABEBNYXhVbmlxdWVFbnRyaWVzKBAoAAAABPwgTWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIG9yYWNsZSBlbnRyaWVzIGV4cGVjdGVkIGluIG9uZSBibG9jay4AAfEOAAAAygAAJEJyb2FkY2FzdAEkQnJvYWRjYXN0DDRJbmNyZW1lbnRhbElkAQAoEAAAAAAEeCBOZXh0IGF2YWlsYWJsZSBpbmNyZW1lbnRhbCBJRABARXhlY3V0aW9uQ29udGV4dAEA9Q4EAAQNASBFeGVjdXRpb24gY29udGV4dCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSB0cmFkZSBpcyBvcmlnaW5hdGVkIGZyb20AHFN3YXBwZXIAAAAEAASlAUlmIGZpbGxlZCwgd2Ugb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBzd2FwcGVyLiBNYWlubHkgdXNlZCBpbiByb3V0ZXIgdG8gbm90IHRvIHVzZSB0ZW1wb3JhcnkgdHJhZGUgYWNjb3VudAABuQYAAc0IAAAB+Q4AAADMAAAwRmVlUHJvY2Vzc29yATBGZWVQcm9jZXNzb3IMSFBlbmRpbmdDb252ZXJzaW9ucwABBAIocAQABIggQXNzZXRzIHBlbmRpbmcgY29udmVyc2lvbiB0byBIRFguAHBDb3VudGVyRm9yUGVuZGluZ0NvbnZlcnNpb25zAQAoEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAIEhlbGRGZWVzAQEEAgBAQAAAAAAAAAAAAAAAAAAAAAAQKQEgSERYIGhlbGQgaW4gdGhlIHBvdCBmb3IgYSBgaG9sZF91bnRpbF9lZGAgcmVjZWl2ZXIgd2hvc2UgYWNjb3VudCBpcyBzdGlsbOwgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQuIFRoZSBIRFggcGh5c2ljYWxseSBsaXZlcyBpbikBIGBwb3RfYWNjb3VudF9pZCgpYDsgdGhpcyBtYXAgb25seSBlYXJtYXJrcyBob3cgbXVjaCBvZiBpdCBiZWxvbmdzIHRvIGVhY2g5ASBkZXN0aW5hdGlvbi4gRmx1c2hlZCB0byB0aGUgZGVzdGluYXRpb24gb25jZSBgYmFsYW5jZSArIGhlbGQgKyBzbGljZSDiiaUgRURgLgABvQYAAfUIABAgUGFsbGV0SWStCSBmZWVwcm9jLwSwIFBhbGxldCBJRCBmb3IgdGhlIGZlZSBhY2N1bXVsYXRpb24gYWNjb3VudC4AKEhkeEFzc2V0SWQoEAAAAAAEtCBIRFggYXNzZXQgSUQgKHRhcmdldCBhc3NldCBmb3IgY29udmVyc2lvbnMpLgAsTHJuYUFzc2V0SWQoEAEAAAAE1CBMUk5BIGFzc2V0IElEIChodWIgYXNzZXQsIGZlZXMgaW4gTFJOQSBhcmUgc2tpcHBlZCkuAFhNYXhDb252ZXJzaW9uc1BlckJsb2NrKBAFAAAABJggTWF4aW11bSBjb252ZXJzaW9ucyBwZXIgb25faWRsZSBjYWxsLgAB/Q4ABBxBc3NldElkKAQ8IEFzc2V0IElEIHR5cGUuAM8AAAgEBQAMlQEEACwABAgMEBQYHCAkKCxIQ2hlY2tOb25aZXJvU2VuZGVywQZwQENoZWNrU3BlY1ZlcnNpb27FBig4Q2hlY2tUeFZlcnNpb27JBigwQ2hlY2tHZW5lc2lzzQYsOENoZWNrTW9ydGFsaXR50QYsKENoZWNrTm9uY2XZBnAsQ2hlY2tXZWlnaHTdBnBgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW504QZwNFZhbGlkYXRlQ2xhaW3lBnBEQ2hlY2tNZXRhZGF0YUhhc2jpBvEGUFN0b3JhZ2VXZWlnaHRSZWNsYWltcHBkEENvcmUMHHZlcnNpb24AHQkEkCBSZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgA0ZXhlY3V0ZV9ibG9jawQUYmxvY2sxCXAEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay4AQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlco0EAQ8EQQEgSW5pdGlhbGl6ZSBhIGJsb2NrIHdpdGggdGhlIGdpdmVuIGhlYWRlciBhbmQgcmV0dXJuIHRoZSBydW50aW1lIGV4ZWN1dGl2ZSBtb2RlLgAEIQEgVGhlIGBDb3JlYCBydW50aW1lIGFwaSB0aGF0IGV2ZXJ5IFN1YnN0cmF0ZSBydW50aW1lIG5lZWRzIHRvIGltcGxlbWVudC4UACBNZXRhZGF0YQwgbWV0YWRhdGEABQ8EjCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBvZiBhIHJ1bnRpbWUuAExtZXRhZGF0YV9hdF92ZXJzaW9uBBx2ZXJzaW9uKAkPEKQgUmV0dXJucyB0aGUgbWV0YWRhdGEgYXQgYSBnaXZlbiB2ZXJzaW9uLgAFASBJZiB0aGUgZ2l2ZW4gYHZlcnNpb25gIGlzbid0IHN1cHBvcnRlZCwgdGhpcyB3aWxsIHJldHVybiBgTm9uZWAudQEgVXNlIFtgU2VsZjo6bWV0YWRhdGFfdmVyc2lvbnNgXSB0byBmaW5kIG91dCBhYm91dCBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbiBvZiB0aGUgcnVudGltZS4ARG1ldGFkYXRhX3ZlcnNpb25zALUCDKQgUmV0dXJucyB0aGUgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb25zLgDAIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsbCBgbWV0YWRhdGFfYXRfdmVyc2lvbmAuAAQBASBUaGUgYE1ldGFkYXRhYCBhcGkgdHJhaXQgdGhhdCByZXR1cm5zIG1ldGFkYXRhIGZvciB0aGUgcnVudGltZS4IADBCbG9ja0J1aWxkZXIQPGFwcGx5X2V4dHJpbnNpYwQkZXh0cmluc2ljNQkNDxBsIEFwcGx5IHRoZSBnaXZlbiBleHRyaW5zaWMuADkBIFJldHVybnMgYW4gaW5jbHVzaW9uIG91dGNvbWUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoaXMgZXh0cmluc2ljIGlzIGluY2x1ZGVkIGluTCB0aGlzIGJsb2NrIG9yIG5vdC4AOGZpbmFsaXplX2Jsb2NrAI0EBGggRmluaXNoIHRoZSBjdXJyZW50IGJsb2NrLgBMaW5oZXJlbnRfZXh0cmluc2ljcwQgaW5oZXJlbnQdD0UJBD0BIEdlbmVyYXRlIGluaGVyZW50IGV4dHJpbnNpY3MuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgA8Y2hlY2tfaW5oZXJlbnRzCBRibG9jazEJEGRhdGEdDy0PBFUBIENoZWNrIHRoYXQgdGhlIGluaGVyZW50cyBhcmUgdmFsaWQuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgAEcQEgVGhlIGBCbG9ja0J1aWxkZXJgIGFwaSB0cmFpdCB0aGF0IHByb3ZpZGVzIHRoZSByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBidWlsZGluZyBhIGJsb2NrLhgAWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2UxDwh0eDUJKGJsb2NrX2hhc2gsNQ8kaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgAETQEgVGhlIGBUYWdnZWRUcmFuc2FjdGlvblF1ZXVlYCBhcGkgdHJhaXQgZm9yIGludGVyZmVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIHF1ZXVlLgwARE9mZmNoYWluV29ya2VyQXBpBDxvZmZjaGFpbl93b3JrZXIEGGhlYWRlco0EcATIIFN0YXJ0cyB0aGUgb2ZmLWNoYWluIHRhc2sgZm9yIGdpdmVuIGJsb2NrIGhlYWRlci4ABGQgVGhlIG9mZmNoYWluIHdvcmtlciBhcGkuCAAsU2Vzc2lvbktleXMIVGdlbmVyYXRlX3Nlc3Npb25fa2V5cwQQc2VlZJEGFBwVASBHZW5lcmF0ZSBhIHNldCBvZiBzZXNzaW9uIGtleXMgd2l0aCBvcHRpb25hbGx5IHVzaW5nIHRoZSBnaXZlbiBzZWVkLgkBIFRoZSBrZXlzIHNob3VsZCBiZSBzdG9yZWQgd2l0aGluIHRoZSBrZXlzdG9yZSBleHBvc2VkIHZpYSBydW50aW1lPCBleHRlcm5hbGl0aWVzLgCwIFRoZSBzZWVkIG5lZWRzIHRvIGJlIGEgdmFsaWQgYHV0ZjhgIHN0cmluZy4A0CBSZXR1cm5zIHRoZSBjb25jYXRlbmF0ZWQgU0NBTEUgZW5jb2RlZCBwdWJsaWMga2V5cy4ATGRlY29kZV9zZXNzaW9uX2tleXMEHGVuY29kZWQUPQ8MmCBEZWNvZGUgdGhlIGdpdmVuIHB1YmxpYyBzZXNzaW9uIGtleXMuANwgUmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWMgcmF3IHB1YmxpYyBrZXlzICsga2V5IHR5cGUuAARoIFNlc3Npb24ga2V5cyBydW50aW1lIGFwaS4EABxBdXJhQXBpCDRzbG90X2R1cmF0aW9uAEkPDJAgUmV0dXJucyB0aGUgc2xvdCBkdXJhdGlvbiBmb3IgQXVyYS4AJQEgQ3VycmVudGx5LCBvbmx5IHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGlzIHR5cGUgYXQgZ2VuZXNpcyB3aWxsIGJlIHVzZWQuACxhdXRob3JpdGllcwCxDgScIFJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgYXV0aG9yaXRpZXMuAAS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBhdXJhLgQAUENvbGxlY3RDb2xsYXRpb25JbmZvBFhjb2xsZWN0X2NvbGxhdGlvbl9pbmZvBBhoZWFkZXKNBE0PEJwgQ29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbGxhdGlvbi4A9CBUaGUgZ2l2ZW4gYGhlYWRlcmAgaXMgdGhlIGhlYWRlciBvZiB0aGUgYnVpbHQgYmxvY2sgZm9yIHRoYXSoIHdlIGFyZSBjb2xsZWN0aW5nIHRoZSBjb2xsYXRpb24gaW5mbyBmb3IuABTYIFJ1bnRpbWUgYXBpIHRvIGNvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uAEQgVmVyc2lvbiBoaXN0b3J5OgEBIC0gVmVyc2lvbiAyOiBDaGFuZ2VkIFtgU2VsZjo6Y29sbGVjdF9jb2xsYXRpb25faW5mb2BdIHNpZ25hdHVyZTUBIC0gVmVyc2lvbiAzOiBTaWduYWxzIHRvIHRoZSBub2RlIHRvIHVzZSB2ZXJzaW9uIDEgb2YgW2BQYXJhY2hhaW5CbG9ja0RhdGFgXS4MAEhHZXRDb3JlU2VsZWN0b3JBcGkENGNvcmVfc2VsZWN0b3IAWQ8ECQEgUmV0cmlldmUgY29yZSBzZWxlY3RvciBhbmQgY2xhaW0gcXVldWUgb2Zmc2V0IGZvciB0aGUgbmV4dCBibG9jay4ABDEBIFJ1bnRpbWUgYXBpIHVzZWQgdG8gc2VsZWN0IHRoZSBjb3JlIGZvciB3aGljaCB0aGUgbmV4dCBibG9jayB3aWxsIGJlIGJ1aWx0LgQANEN1cnJlbmNpZXNBcGkQHGFjY291bnQIIGFzc2V0X2lkKAx3aG8AZQ8AACBhY2NvdW50cwQMd2hvAGkPAAAwZnJlZV9iYWxhbmNlCCBhc3NldF9pZCgMd2hvAEAAADxtaW5pbXVtX2JhbGFuY2UEIGFzc2V0X2lkKEAAAAAEADxBY2NvdW50Tm9uY2VBcGkENGFjY291bnRfbm9uY2UEHGFjY291bnQAKATAIEdldCBjdXJyZW50IGFjY291bnQgbm9uY2Ugb2YgZ2l2ZW4gYEFjY291bnRJZGAuAASAIFRoZSBBUEkgdG8gcXVlcnkgYWNjb3VudCBub25jZS4EAFRUcmFuc2FjdGlvblBheW1lbnRBcGkQKHF1ZXJ5X2luZm8IDHV4dDUJDGxlbihxDwAARHF1ZXJ5X2ZlZV9kZXRhaWxzCAx1eHQ1CQxsZW4odQ8AAExxdWVyeV93ZWlnaHRfdG9fZmVlBBh3ZWlnaHTkQAAATHF1ZXJ5X2xlbmd0aF90b19mZWUEGGxlbmd0aChAAAAAEABURXRoZXJldW1SdW50aW1lUlBDQXBpRCBjaGFpbl9pZAAYBLQgUmV0dXJucyBydW50aW1lIGRlZmluZWQgcGFsbGV0X2V2bTo6Q2hhaW5JZC4ANGFjY291bnRfYmFzaWMEHGFkZHJlc3NYgQ8EpCBSZXR1cm5zIHBhbGxldF9ldm06OkFjY291bnRzIGJ5IGFkZHJlc3MuACRnYXNfcHJpY2UAYASUIFJldHVybnMgRml4ZWRHYXNQcmljZTo6bWluX2dhc19wcmljZQA8YWNjb3VudF9jb2RlX2F0BBxhZGRyZXNzWBQE/CBGb3IgYSBnaXZlbiBhY2NvdW50IGFkZHJlc3MsIHJldHVybnMgcGFsbGV0X2V2bTo6QWNjb3VudENvZGVzLgAYYXV0aG9yAFgE8CBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgRmluZEF1dGhvcjo6ZmluZF9hdXRob3IgYXV0aG9yaXR5IGlkLgAoc3RvcmFnZV9hdAgcYWRkcmVzc1gUaW5kZXhgLAQxASBGb3IgYSBnaXZlbiBhY2NvdW50IGFkZHJlc3MgYW5kIGluZGV4LCByZXR1cm5zIHBhbGxldF9ldm06OkFjY291bnRTdG9yYWdlcy4AEGNhbGwsEGZyb21YCHRvWBBkYXRhFBR2YWx1ZWAkZ2FzX2xpbWl0YDxtYXhfZmVlX3Blcl9nYXPhA2BtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXPhAxRub25jZeEDIGVzdGltYXRlRCxhY2Nlc3NfbGlzdIUPSGF1dGhvcml6YXRpb25fbGlzdIkPjQ8AABhjcmVhdGUoEGZyb21YEGRhdGEUFHZhbHVlYCRnYXNfbGltaXRgPG1heF9mZWVfcGVyX2dhc+EDYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+EDFG5vbmNl4QMgZXN0aW1hdGVELGFjY2Vzc19saXN0hQ9IYXV0aG9yaXphdGlvbl9saXN0iQ+hDwAANGN1cnJlbnRfYmxvY2sAqQ8EaCBSZXR1cm4gdGhlIGN1cnJlbnQgYmxvY2suAEBjdXJyZW50X3JlY2VpcHRzAK0PBHAgUmV0dXJuIHRoZSBjdXJyZW50IHJlY2VpcHQuAHBjdXJyZW50X3RyYW5zYWN0aW9uX3N0YXR1c2VzALEPBJwgUmV0dXJuIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIHN0YXR1cy4ALGN1cnJlbnRfYWxsALUPAABAZXh0cmluc2ljX2ZpbHRlcgQMeHRzRQnhDAQ1ASBSZWNlaXZlcyBhIGBWZWM8T3BhcXVlRXh0cmluc2ljPmAgYW5kIGZpbHRlcnMgYWxsIHRoZSBldGhlcmV1bSB0cmFuc2FjdGlvbnMuAChlbGFzdGljaXR5AF0DBIggUmV0dXJuIHRoZSBlbGFzdGljaXR5IG11bHRpcGxpZXIuAHBnYXNfbGltaXRfbXVsdGlwbGllcl9zdXBwb3J0AHAIdQEgVXNlZCB0byBkZXRlcm1pbmUgaWYgZ2FzIGxpbWl0IG11bHRpcGxpZXIgZm9yIG5vbi10cmFuc2FjdGlvbmFsIGNhbGxzIChldGhfY2FsbC9lc3RpbWF0ZUdhcyk4IGlzIHN1cHBvcnRlZC4ANHBlbmRpbmdfYmxvY2sEDHh0c0UJuQ8EaCBSZXR1cm4gdGhlIHBlbmRpbmcgYmxvY2suAGBpbml0aWFsaXplX3BlbmRpbmdfYmxvY2sEGGhlYWRlco0EcBR4IEluaXRpYWxpemUgdGhlIHBlbmRpbmcgYmxvY2suNQEgVGhlIGJlaGF2aW9yIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgcnVudGltZSBhcGkgQ29yZV9pbml0aWFsaXplX2Jsb2NrIGJ1dFwgZm9yIGEgInBlbmRpbmciIGJsb2NrLmEBIElmIHlvdXIgcHJvamVjdCBkb24ndCBuZWVkIHRvIGhhdmUgYSBkaWZmZXJlbnQgYmVoYXZpb3IgdG8gaW5pdGlhbGl6ZSAicGVuZGluZyIgYmxvY2tzLOAgeW91IGNhbiBjb3B5IHlvdXIgQ29yZV9pbml0aWFsaXplX2Jsb2NrIGltcGxlbWVudGF0aW9uLgAEwCBBUEkgbmVjZXNzYXJ5IGZvciBFdGhlcmV1bS1jb21wYXRpYmlsaXR5IGxheWVyLhgAcENvbnZlcnRUcmFuc2FjdGlvblJ1bnRpbWVBcGkETGNvbnZlcnRfdHJhbnNhY3Rpb24ELHRyYW5zYWN0aW9u/QM1CQAAAAgAOEV2bUFjY291bnRzQXBpDCxldm1fYWRkcmVzcwQoYWNjb3VudF9pZABYBMAgZ2V0IHRoZSBFVk0gYWRkcmVzcyBmcm9tIHRoZSBzdWJzdHJhdGUgYWRkcmVzcy4AQGJvdW5kX2FjY291bnRfaWQELGV2bV9hZGRyZXNzWM0BBFUBIFJldHVybiB0aGUgU3Vic3RyYXRlIGFkZHJlc3MgYm91bmQgdG8gdGhlIEVWTSBhY2NvdW50LiBJZiBub3QgYm91bmQsIHJldHVybnMgYE5vbmVgLgAoYWNjb3VudF9pZAQsZXZtX2FkZHJlc3NYAAjAIEdldCB0aGUgU3Vic3RyYXRlIGFkZHJlc3MgZnJvbSB0aGUgRVZNIGFkZHJlc3MuJQEgUmV0dXJucyB0aGUgdHJ1bmNhdGVkIHZlcnNpb24gb2YgdGhlIGFkZHJlc3MgaWYgdGhlIGFkZHJlc3Mgd2Fzbid0IGJpbmQuAASoIFRoZSBBUEkgdG8gcXVlcnkgRVZNIGFjY291bnQgY29udmVyc2lvbnMuBAAkRHVzdGVyQXBpBDhpc193aGl0ZWxpc3RlZAQcYWNjb3VudABECPQgQ2hlY2sgaWYgYW4gYWNjb3VudCBpcyB3aGl0ZWxpc3RlZCAocHJvdGVjdGVkIGZyb20gZHVzdGluZyku9CBSZXR1cm5zIHRydWUgaWYgdGhlIGFjY291bnQgaXMgd2hpdGVsaXN0ZWQsIGZhbHNlIG90aGVyd2lzZS4ABIwgUnVudGltZSBBUEkgZm9yIHRoZSBkdXN0ZXIgcGFsbGV0LgQAPEVyYzIwTWFwcGluZ0FwaQg0YXNzZXRfYWRkcmVzcwQgYXNzZXRfaWQoWASIIEdldCB0aGUgRVZNIGFkZHJlc3Mgb2YgdGhlIGFzc2V0LgBAYWRkcmVzc190b19hc3NldAQcYWRkcmVzc1h0BDUBIEdldCB0aGUgYXNzZXQgaWQgY29ycmVzcG9uZGluZyB0byBFVk0gYWRkcmVzcy4gSWYgbm90IGZvdW5kLCByZXR1cm5zIGBOb25lYC4ABNggVGhlIEFQSSB0byBxdWVyeSBBc3NldElkIDwtPiBFVk0gYWRkcmVzcyBjb252ZXJzaW9ucy4EADRYY21QYXltZW50QXBpEHxxdWVyeV9hY2NlcHRhYmxlX3BheW1lbnRfYXNzZXRzBCx4Y21fdmVyc2lvbii9DxS0IFJldHVybnMgYSBsaXN0IG9mIGFjY2VwdGFibGUgcGF5bWVudCBhc3NldHMuADAgIyBBcmd1bWVudHMAaCAqIGB4Y21fdmVyc2lvbmA6IFZlcnNpb24uAEBxdWVyeV94Y21fd2VpZ2h0BBxtZXNzYWdl9QTJDxSoIFJldHVybnMgYSB3ZWlnaHQgbmVlZGVkIHRvIGV4ZWN1dGUgYSBYQ00uADAgIyBBcmd1bWVudHMAdCAqIGBtZXNzYWdlYDogYFZlcnNpb25lZFhjbWAuAGRxdWVyeV93ZWlnaHRfdG9fYXNzZXRfZmVlCBh3ZWlnaHTkFGFzc2V0YQbNDxjoIENvbnZlcnRzIGEgd2VpZ2h0IGludG8gYSBmZWUgZm9yIHRoZSBzcGVjaWZpZWQgYEFzc2V0SWRgLgAwICMgQXJndW1lbnRzAIggKiBgd2VpZ2h0YDogY29udmVydGlibGUgYFdlaWdodGAufCAqIGBhc3NldGA6IGBWZXJzaW9uZWRBc3NldElkYC4ATHF1ZXJ5X2RlbGl2ZXJ5X2ZlZXMILGRlc3RpbmF0aW9uqQQcbWVzc2FnZfUE0Q8gHQEgR2V0IGRlbGl2ZXJ5IGZlZXMgZm9yIHNlbmRpbmcgYSBzcGVjaWZpYyBgbWVzc2FnZWAgdG8gYSBgZGVzdGluYXRpb25gLvQgVGhlc2UgYWx3YXlzIGNvbWUgaW4gYSBzcGVjaWZpYyBhc3NldCwgZGVmaW5lZCBieSB0aGUgY2hhaW4uADAgIyBBcmd1bWVudHOBASAqIGBtZXNzYWdlYDogVGhlIG1lc3NhZ2UgdGhhdCdsbCBiZSBzZW50LCBuZWNlc3NhcnkgYmVjYXVzZSBtb3N0IGRlbGl2ZXJ5IGZlZXMgYXJlIGJhc2VkIG9uIHRoZVwgICBzaXplIG9mIHRoZSBtZXNzYWdlLmEBICogYGRlc3RpbmF0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRvIHNlbmQgdGhlIG1lc3NhZ2UgdG8uIERpZmZlcmVudCBkZXN0aW5hdGlvbnMgbWF5IHVzZcAgICBkaWZmZXJlbnQgc2VuZGVycyB0aGF0IGNoYXJnZSBkaWZmZXJlbnQgZmVlcy4ALHAgQSB0cmFpdCBvZiBYQ00gcGF5bWVudCBBUEkuAKggQVBJIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIG9idGFpbmluZzoAxCAqIHRoZSB3ZWlnaHQgcmVxdWlyZWQgdG8gZXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSwFASAqIGEgbGlzdCBvZiBhY2NlcHRhYmxlIGBBc3NldElkYHMgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uIHBheW1lbnQsAQEgKiB0aGUgY29zdCBvZiB0aGUgd2VpZ2h0IGluIHRoZSBzcGVjaWZpZWQgYWNjZXB0YWJsZSBgQXNzZXRJZGAuoCAqIHRoZSBmZWVzIGZvciBhbiBYQ00gbWVzc2FnZSBkZWxpdmVyeS4A8CBUbyBkZXRlcm1pbmUgdGhlIGV4ZWN1dGlvbiB3ZWlnaHQgb2YgdGhlIGNhbGxzIHJlcXVpcmVkIGZvcnUBIFtgeGNtOjpsYXRlc3Q6Okluc3RydWN0aW9uOjpUcmFuc2FjdGBdIGluc3RydWN0aW9uLCBgVHJhbnNhY3Rpb25QYXltZW50Q2FsbEFwaWAgY2FuIGJlIHVzZWQuBABgQXVyYVVuaW5jbHVkZWRTZWdtZW50QXBpBDhjYW5fYnVpbGRfdXBvbgg0aW5jbHVkZWRfaGFzaCwQc2xvdLUORCg5ASBXaGV0aGVyIGl0IGlzIGxlZ2FsIHRvIGV4dGVuZCB0aGUgY2hhaW4sIGFzc3VtaW5nIHRoZSBnaXZlbiBibG9jayBpcyB0aGUgbW9zdDUBIHJlY2VudGx5IGluY2x1ZGVkIG9uZSBhcy1vZiB0aGUgcmVsYXkgcGFyZW50IHRoYXQgd2lsbCBiZSBidWlsdCBhZ2FpbnN0LCBhbmRwIHRoZSBnaXZlbiByZWxheSBjaGFpbiBzbG90LgBRASBUaGlzIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvZ2ljIHRoZSBydW50aW1lIHVzZXMgd2hlbiB2YWxpZGF0aW5nIGJsb2NrcyB0bzggYXZvaWQgaXNzdWVzLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgZW1wdHksIGkuZS4gYGluY2x1ZGVkX2hhc2ggPT0gYXRgLCB3aGVyZSBhdCBpcyB0aGUgYmxvY2thASB3aG9zZSBzdGF0ZSB3ZSBhcmUgcXVlcnlpbmcgYWdhaW5zdCwgdGhpcyBtdXN0IGFsd2F5cyByZXR1cm4gYHRydWVgIGFzIGxvbmcgYXMgdGhlIHNsb3S8IGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlIGluY2x1ZGVkIGJsb2NrIGl0c2VsZi4ANDUBIFRoaXMgcnVudGltZSBBUEkgaXMgdXNlZCB0byBpbmZvcm0gcG90ZW50aWFsIGJsb2NrIGF1dGhvcnMgd2hldGhlciB0aGV5IHdpbGwlASBoYXZlIHRoZSByaWdodCB0byBhdXRob3IgYXQgYSBzbG90LCBhc3N1bWluZyB0aGV5IGhhdmUgY2xhaW1lZCB0aGUgc2xvdC4AdQEgSW4gcGFydGljdWxhciwgdGhpcyBBUEkgYWxsb3dzIEF1cmEtYmFzZWQgcGFyYWNoYWlucyB0byByZWd1bGF0ZSB0aGVpciAidW5pbmNsdWRlZCBzZWdtZW50IixtASB3aGljaCBpcyB0aGUgc2VjdGlvbiBvZiB0aGUgaGVhZCBvZiB0aGUgY2hhaW4gd2hpY2ggaGFzIG5vdCB5ZXQgYmVlbiBtYWRlIGF2YWlsYWJsZSBpbiB0aGU0IHJlbGF5IGNoYWluLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgc2hvcnQsIEF1cmEgY2hhaW5zIHdpbGwgYWxsb3cgYXV0aG9ycyB0byBjcmVhdGUgbXVsdGlwbGVdASBibG9ja3MgcGVyIHNsb3QgaW4gb3JkZXIgdG8gYnVpbGQgYSBiYWNrbG9nLiBXaGVuIGl0IGlzIHNhdHVyYXRlZCwgdGhpcyBBUEkgd2lsbCBsaW1pdKggdGhlIGFtb3VudCBvZiBibG9ja3MgdGhhdCBjYW4gYmUgY3JlYXRlZC4AJCBDaGFuZ2VzOpEBIC0gVmVyc2lvbiAyOiBVcGRhdGUgdG8gYGNhbl9idWlsZF91cG9uYCB0byB0YWtlIGEgcmVsYXkgY2hhaW4gYFNsb3RgIGluc3RlYWQgb2YgYSBwYXJhY2hhaW4gYFNsb3RgLggAUFJlbGF5UGFyZW50T2Zmc2V0QXBpBExyZWxheV9wYXJlbnRfb2Zmc2V0ACgE9CBGZXRjaCB0aGUgc2xvdCBvZmZzZXQgdGhhdCBpcyBleHBlY3RlZCBmcm9tIHRoZSByZWxheSBjaGFpbi4AEAUBIEFQSSB0byB0ZWxsIHRoZSBub2RlIHNpZGUgaG93IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIGJlIGNob3Nlbi4AaQEgQSBsYXJnZXIgb2Zmc2V0IGluZGljYXRlcyB0aGF0IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIG5vdCBiZSB0aGUgdGlwIG9mIHRoZSByZWxheSBjaGFpbiwxASBidXQgYE5gIGJsb2NrcyBiZWhpbmQgdGhlIHRpcC4gVGhpcyBvZmZzZXQgaXMgdGhlbiBlbmZvcmNlZCBieSB0aGUgcnVudGltZS4EACREcnlSdW5BcGkIMGRyeV9ydW5fY2FsbAwYb3JpZ2luhBBjYWxsDExyZXN1bHRfeGNtc192ZXJzaW9uKNUPBEQgRHJ5IHJ1biBjYWxsIFYyLgAsZHJ5X3J1bl94Y20IPG9yaWdpbl9sb2NhdGlvbqkEDHhjbTEG9Q8EUCBEcnkgcnVuIFhDTSBwcm9ncmFtACSxASBBUEkgZm9yIGRyeS1ydW5uaW5nIGV4dHJpbnNpY3MgYW5kIFhDTSBwcm9ncmFtcyB0byBnZXQgdGhlIHByb2dyYW1zIHRoYXQgbmVlZCB0byBiZSBwYXNzZWQgdG8gdGhlIGZlZXMgQVBJLgCBASBBbGwgY2FsbHMgcmV0dXJuIGEgdmVjdG9yIG9mIHR1cGxlcyAobG9jYXRpb24sIHhjbSkgd2hlcmUgZWFjaCAieGNtIiBpcyBleGVjdXRlZCBpbiAibG9jYXRpb24iLuQgSWYgdGhlcmUncyBsb2NhbCBleGVjdXRpb24sIHRoZSBsb2NhdGlvbiB3aWxsIGJlICJIZXJlIi4dASBUaGlzIHZlY3RvciBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgYm90aCBleGVjdXRpb24gYW5kIGRlbGl2ZXJ5IGZlZXMuAJkBIENhbGxzIG9yIFhDTXMgbWlnaHQgZmFpbCB3aGVuIGV4ZWN1dGVkLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgcmVzdWx0IG9mIHRoZXNlIGNhbGxzIHdpbGwgYmUgYW4gYEVycmAuZQEgSW4gdGhvc2UgY2FzZXMsIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIGEgdmFsaWQgcmVzdWx0LCB3aXRoIHRoZSBleGVjdXRpb24gZXJyb3IgaW5zaWRlIGl0LmUBIFRoZSBvbmx5IHJlYXNvbnMgd2h5IHRoZXNlIGNhbGxzIG1pZ2h0IHJldHVybiBhbiBlcnJvciBhcmUgbGlzdGVkIGluIHRoZSBbYEVycm9yYF0gZW51bS4IAFBMb2NhdGlvblRvQWNjb3VudEFwaQRAY29udmVydF9sb2NhdGlvbgQgbG9jYXRpb26pBP0PBJAgQ29udmVydHMgYExvY2F0aW9uYCB0byBgQWNjb3VudElkYC4ABA0BIEFQSSBmb3IgdXNlZnVsIGNvbnZlcnNpb25zIGJldHdlZW4gWENNIGBMb2NhdGlvbmAgYW5kIGBBY2NvdW50SWRgLgQATENoYWlubGlua0FkYXB0ZXJBcGkIVGVuY29kZV9vcmFjbGVfYWRkcmVzcxAoYXNzZXRfaWRfYSgoYXNzZXRfaWRfYigYcGVyaW9kIQMYc291cmNlIQFYAABUZGVjb2RlX29yYWNsZV9hZGRyZXNzBDhvcmFjbGVfYWRkcmVzc1gFEAAABKggVGhlIEFQSSB0byBxdWVyeSBFVk0gYWNjb3VudCBjb252ZXJzaW9ucy4EAERBYXZlVHJhZGVFeGVjdXRvchAUcGFpcnMArQIAADxsaXF1aWRpdHlfZGVwdGgIIGFzc2V0X2luKCRhc3NldF9vdXQo9QEAABBwb29sCBxyZXNlcnZlKBhhdG9rZW4oDRAAABRwb29scwAREAAAAAQAOEdlbmVzaXNCdWlsZGVyDCxidWlsZF9zdGF0ZQQQanNvbhQVEChlASBCdWlsZCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gYSBKU09OIGJsb2Igbm90IHVzaW5nIGFueSBkZWZhdWx0cyBhbmQgc3RvcmUgaXQgaW4gdGhlJCBzdG9yYWdlLgApASBJbiB0aGUgY2FzZSBvZiBhIEZSQU1FLWJhc2VkIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gZGVzZXJpYWxpemVzIHRoZSBmdWxsVQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIHRoZSBnaXZlbiBKU09OIGJsb2IgYW5kIHB1dHMgaXQgaW50byB0aGUgc3RvcmFnZS4gSWYgdGhlVQEgcHJvdmlkZWQgSlNPTiBibG9iIGlzIGluY29ycmVjdCBvciBpbmNvbXBsZXRlIG9yIHRoZSBkZXNlcmlhbGl6YXRpb24gZmFpbHMsIGFuIGVycm9yNCBpcyByZXR1cm5lZC4AXQEgUGxlYXNlIG5vdGUgdGhhdCBwcm92aWRlZCBKU09OIGJsb2IgbXVzdCBjb250YWluIGFsbCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZpZWxkcywgbm9cIGRlZmF1bHRzIHdpbGwgYmUgdXNlZC4AKGdldF9wcmVzZXQECGlkGRCRBjhhASBSZXR1cm5zIGEgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiBgUnVudGltZUdlbmVzaXNDb25maWdgIGlkZW50aWZpZWQgYnkYIGBpZGAuAFUBIElmIGBpZGAgaXMgYE5vbmVgIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVmYXVsdEkBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2Agc3RydWN0IG9mIHRoZSBydW50aW1lLiBJbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgZGVmYXVsdGAgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYC4AIQEgT3RoZXJ3aXNlIGZ1bmN0aW9uIHJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiwgbmFtZWRRASBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldCBpZGVudGlmaWVkIGJ5IGBpZGAsIG9yIGBOb25lYCBpZiBzdWNoIHByZXNldCBkb2VzIG5vdGEBIGV4aXN0LiBSZXR1cm5lZCBgVmVjPHU4PmAgY29udGFpbnMgYnl0ZXMgb2YgSlNPTiBibG9iIChwYXRjaCkgd2hpY2ggY29tcHJpc2VzIGEgbGlzdCBvZk0BIChwb3RlbnRpYWxseSBuZXN0ZWQpIGtleS12YWx1ZSBwYWlycyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgY3VzdG9taXppbmcgdGhlIGRlZmF1bHRlASBydW50aW1lIGdlbmVzaXMgY29uZmlnLiBUaGUgcGF0Y2ggc2hhbGwgYmUgbWVyZ2VkIChyZmM3Mzg2KSB3aXRoIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uYQEgb2YgdGhlIGRlZmF1bHQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIGdlbmVzaXMgY29uZmlnIHRoYXQgY2FuhCBiZSB1c2VkIGluIGBidWlsZF9zdGF0ZWAgbWV0aG9kLgAwcHJlc2V0X25hbWVzAB0QEFEBIFJldHVybnMgYSBsaXN0IG9mIGlkZW50aWZpZXJzIGZvciBhdmFpbGFibGUgYnVpbHRpbiBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldHMuAGEBIFRoZSBwcmVzZXRzIGZyb20gdGhlIGxpc3QgY2FuIGJlIHF1ZXJpZWQgd2l0aCBbYEdlbmVzaXNCdWlsZGVyOjpnZXRfcHJlc2V0YF0gbWV0aG9kLiBJZgEBIG5vIG5hbWVkIHByZXNldHMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lIHRoZSBsaXN0IGlzIGVtcHR5LgAE8CBBUEkgdG8gaW50ZXJhY3Qgd2l0aCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZvciB0aGUgcnVudGltZQQADA0HIRAA";
2
-
3
- export { binMeta as default };