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GwBkHABsagBaagBkGwBkHABsKABaKABlagBqawBlKABqbABlaQAZgwEAAW4AAGQcAFMoiQAAAHOvCQAAClRoaXMgaXMgYSBQeTIuMyBpbXBsZW1lbnRhdGlvbiBvZiBkZWNpbWFsIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgYmFzZWQgb24KdGhlIEdlbmVyYWwgRGVjaW1hbCBBcml0aG1ldGljIFNwZWNpZmljYXRpb246CgogICAgaHR0cDovL3NwZWxlb3Ryb3ZlLmNvbS9kZWNpbWFsL2RlY2FyaXRoLmh0bWwKCmFuZCBJRUVFIHN0YW5kYXJkIDg1NC0xOTg3OgoKICAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSUVFRV84NTQtMTk4NwoKRGVjaW1hbCBmbG9hdGluZyBwb2ludCBoYXMgZmluaXRlIHByZWNpc2lvbiB3aXRoIGFyYml0cmFyaWx5IGxhcmdlIGJvdW5kcy4KClRoZSBwdXJwb3NlIG9mIHRoaXMgbW9kdWxlIGlzIHRvIHN1cHBvcnQgYXJpdGhtZXRpYyB1c2luZyBmYW1pbGlhcgoic2Nob29saG91c2UiIHJ1bGVzIGFuZCB0byBhdm9pZCBzb21lIG9mIHRoZSB0cmlja3kgcmVwcmVzZW50YXRpb24KaXNzdWVzIGFzc29jaWF0ZWQgd2l0aCBiaW5hcnkgZmxvYXRpbmcgcG9pbnQuICBUaGUgcGFja2FnZSBpcyBlc3BlY2lhbGx5CnVzZWZ1bCBmb3IgZmluYW5jaWFsIGFwcGxpY2F0aW9ucyBvciBmb3IgY29udGV4dHMgd2hlcmUgdXNlcnMgaGF2ZQpleHBlY3RhdGlvbnMgdGhhdCBhcmUgYXQgb2RkcyB3aXRoIGJpbmFyeSBmbG9hdGluZyBwb2ludCAoZm9yIGluc3RhbmNlLAppbiBiaW5hcnkgZmxvYXRpbmcgcG9pbnQsIDEuMDAgJSAwLjEgZ2l2ZXMgMC4wOTk5OTk5OTk5OTk5OTk5NSBpbnN0ZWFkCm9mIHRoZSBleHBlY3RlZCBEZWNpbWFsKCcwLjAwJykgcmV0dXJuZWQgYnkgZGVjaW1hbCBmbG9hdGluZyBwb2ludCkuCgpIZXJlIGFyZSBzb21lIGV4YW1wbGVzIG9mIHVzaW5nIHRoZSBkZWNpbWFsIG1vZHVsZToKCj4+PiBmcm9tIGRlY2ltYWwgaW1wb3J0ICoKPj4+IHNldGNvbnRleHQoRXh0ZW5kZWRDb250ZXh0KQo+Pj4gRGVjaW1hbCgwKQpEZWNpbWFsKCcwJykKPj4+IERlY2ltYWwoJzEnKQpEZWNpbWFsKCcxJykKPj4+IERlY2ltYWwoJy0uMDEyMycpCkRlY2ltYWwoJy0wLjAxMjMnKQo+Pj4gRGVjaW1hbCgxMjM0NTYpCkRlY2ltYWwoJzEyMzQ1NicpCj4+PiBEZWNpbWFsKCcxMjMuNDVlMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnKQpEZWNpbWFsKCcxLjIzNDVFKzEyMzQ1Njc4OTAxMjM0NTY3ODkyJykKPj4+IERlY2ltYWwoJzEuMzMnKSArIERlY2ltYWwoJzEuMjcnKQpEZWNpbWFsKCcyLjYwJykKPj4+IERlY2ltYWwoJzEyLjM0JykgKyBEZWNpbWFsKCczLjg3JykgLSBEZWNpbWFsKCcxOC40MScpCkRlY2ltYWwoJy0yLjIwJykKPj4+IGRpZyA9IERlY2ltYWwoMSkKPj4+IHByaW50IGRpZyAvIERlY2ltYWwoMykKMC4zMzMzMzMzMzMKPj4+IGdldGNvbnRleHQoKS5wcmVjID0gMTgKPj4+IHByaW50IGRpZyAvIERlY2ltYWwoMykKMC4zMzMzMzMzMzMzMzMzMzMzMzMKPj4+IHByaW50IGRpZy5zcXJ0KCkKMQo+Pj4gcHJpbnQgRGVjaW1hbCgzKS5zcXJ0KCkKMS43MzIwNTA4MDc1Njg4NzcyOQo+Pj4gcHJpbnQgRGVjaW1hbCgzKSAqKiAxMjMKNC44NTE5Mjc4MDk3Njg5NjQyN0UrNTgKPj4+IGluZiA9IERlY2ltYWwoMSkgLyBEZWNpbWFsKDApCj4+PiBwcmludCBpbmYKSW5maW5pdHkKPj4+IG5lZ2luZiA9IERlY2ltYWwoLTEpIC8gRGVjaW1hbCgwKQo+Pj4gcHJpbnQgbmVnaW5mCi1JbmZpbml0eQo+Pj4gcHJpbnQgbmVnaW5mICsgaW5mCk5hTgo+Pj4gcHJpbnQgbmVnaW5mICogaW5mCi1JbmZpbml0eQo+Pj4gcHJpbnQgZGlnIC8gMApJbmZpbml0eQo+Pj4gZ2V0Y29udGV4dCgpLnRyYXBzW0RpdmlzaW9uQnlaZXJvXSA9IDEKPj4+IHByaW50IGRpZyAvIDAKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIC4uLgogIC4uLgogIC4uLgpEaXZpc2lvbkJ5WmVybzogeCAvIDAKPj4+IGMgPSBDb250ZXh0KCkKPj4+IGMudHJhcHNbSW52YWxpZE9wZXJhdGlvbl0gPSAwCj4+PiBwcmludCBjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dCjAKPj4+IGMuZGl2aWRlKERlY2ltYWwoMCksIERlY2ltYWwoMCkpCkRlY2ltYWwoJ05hTicpCj4+PiBjLnRyYXBzW0ludmFsaWRPcGVyYXRpb25dID0gMQo+Pj4gcHJpbnQgYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXQoxCj4+PiBjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dID0gMAo+Pj4gcHJpbnQgYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXQowCj4+PiBwcmludCBjLmRpdmlkZShEZWNpbWFsKDApLCBEZWNpbWFsKDApKQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgLi4uCiAgLi4uCiAgLi4uCkludmFsaWRPcGVyYXRpb246IDAgLyAwCj4+PiBwcmludCBjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dCjEKPj4+IGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0gPSAwCj4+PiBjLnRyYXBzW0ludmFsaWRPcGVyYXRpb25dID0gMAo+Pj4gcHJpbnQgYy5kaXZpZGUoRGVjaW1hbCgwKSwgRGVjaW1hbCgwKSkKTmFOCj4+PiBwcmludCBjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dCjEKPj4+CnQHAAAARGVjaW1hbHQHAAAAQ29udGV4dHQOAAAARGVmYXVsdENvbnRleHR0DAAAAEJhc2ljQ29udGV4dHQPAAAARXh0ZW5kZWRDb250ZXh0dBAAAABEZWNpbWFsRXhjZXB0aW9udAcAAABDbGFtcGVkdBAAAABJbnZhbGlkT3BlcmF0aW9udA4AAABEaXZpc2lvbkJ5WmVyb3QHAAAASW5leGFjdHQHAAAAUm91bmRlZHQJAAAAU3Vibm9ybWFsdAgAAABPdmVyZmxvd3QJAAAAVW5kZXJmbG93dAoAAABST1VORF9ET1dOdA0AAABST1VORF9IQUxGX1VQdA8AAABST1VORF9IQUxGX0VWRU50DQAAAFJPVU5EX0NFSUxJTkd0CwAAAFJPVU5EX0ZMT09SdAgAAABST1VORF9VUHQPAAAAUk9VTkRfSEFMRl9ET1dOdAoAAABST1VORF8wNVVQdAoAAABzZXRjb250ZXh0dAoAAABnZXRjb250ZXh0dAwAAABsb2NhbGNvbnRleHRzBAAAADEuNzBp/////04oAQAAAHQKAAAAbmFtZWR0dXBsZXQMAAAARGVjaW1hbFR1cGxlcxQAAABzaWduIGRpZ2l0cyBleHBvbmVudGMAAAAAAQAAAAEAAABHAAAAcwQAAAB8AABTKAEAAABOKAAAAAAoAQAAAHQEAAAAYXJncygAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQIAAAAPGxhbWJkYT6TAAAAcwAAAABjAAAAAAAAAAABAAAAQgAAAHMXAAAAZQAAWgEAZAAAWgIAZAEAhAAAWgMAUlMoAgAAAHMxAwAAQmFzZSBleGNlcHRpb24gY2xhc3MuCgogICAgVXNlZCBleGNlcHRpb25zIGRlcml2ZSBmcm9tIHRoaXMuCiAgICBJZiBhbiBleGNlcHRpb24gZGVyaXZlcyBmcm9tIGFub3RoZXIgZXhjZXB0aW9uIGJlc2lkZXMgdGhpcyAoc3VjaCBhcwogICAgVW5kZXJmbG93IChJbmV4YWN0LCBSb3VuZGVkLCBTdWJub3JtYWwpIHRoYXQgaW5kaWNhdGVzIHRoYXQgaXQgaXMgb25seQogICAgY2FsbGVkIGlmIHRoZSBvdGhlcnMgYXJlIHByZXNlbnQuICBUaGlzIGlzbid0IGFjdHVhbGx5IHVzZWQgZm9yCiAgICBhbnl0aGluZywgdGhvdWdoLgoKICAgIGhhbmRsZSAgLS0gQ2FsbGVkIHdoZW4gY29udGV4dC5fcmFpc2VfZXJyb3IgaXMgY2FsbGVkIGFuZCB0aGUKICAgICAgICAgICAgICAgdHJhcF9lbmFibGVyIGlzIG5vdCBzZXQuICBGaXJzdCBhcmd1bWVudCBpcyBzZWxmLCBzZWNvbmQgaXMgdGhlCiAgICAgICAgICAgICAgIGNvbnRleHQuICBNb3JlIGFyZ3VtZW50cyBjYW4gYmUgZ2l2ZW4sIHRob3NlIGJlaW5nIGFmdGVyCiAgICAgICAgICAgICAgIHRoZSBleHBsYW5hdGlvbiBpbiBfcmFpc2VfZXJyb3IgKEZvciBleGFtcGxlLAogICAgICAgICAgICAgICBjb250ZXh0Ll9yYWlzZV9lcnJvcihOZXdFcnJvciwgJygteCkhJywgc2VsZi5fc2lnbikgd291bGQKICAgICAgICAgICAgICAgY2FsbCBOZXdFcnJvcigpLmhhbmRsZShjb250ZXh0LCBzZWxmLl9zaWduKS4pCgogICAgVG8gZGVmaW5lIGEgbmV3IGV4Y2VwdGlvbiwgaXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBpdCBkZXJpdmUKICAgIGZyb20gRGVjaW1hbEV4Y2VwdGlvbi4KICAgIGMCAAAAAwAAAAEAAABHAAAAcwQAAABkAABTKAEAAABOKAAAAAAoAwAAAHQEAAAAc2VsZnQHAAAAY29udGV4dFIbAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5dAYAAABoYW5kbGW0AAAAcwIAAAAAASgEAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QHAAAAX19kb2NfX1IfAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSBQAAAKEAAABzBAAAAAYSBgFjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZAAAWgIAUlMoAQAAAHMpAgAARXhwb25lbnQgb2YgYSAwIGNoYW5nZWQgdG8gZml0IGJvdW5kcy4KCiAgICBUaGlzIG9jY3VycyBhbmQgc2lnbmFscyBjbGFtcGVkIGlmIHRoZSBleHBvbmVudCBvZiBhIHJlc3VsdCBoYXMgYmVlbgogICAgYWx0ZXJlZCBpbiBvcmRlciB0byBmaXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgc3BlY2lmaWMgY29uY3JldGUKICAgIHJlcHJlc2VudGF0aW9uLiAgVGhpcyBtYXkgb2NjdXIgd2hlbiB0aGUgZXhwb25lbnQgb2YgYSB6ZXJvIHJlc3VsdCB3b3VsZAogICAgYmUgb3V0c2lkZSB0aGUgYm91bmRzIG9mIGEgcmVwcmVzZW50YXRpb24sIG9yIHdoZW4gYSBsYXJnZSBub3JtYWwKICAgIG51bWJlciB3b3VsZCBoYXZlIGFuIGVuY29kZWQgZXhwb25lbnQgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQuICBJbgogICAgdGhpcyBsYXR0ZXIgY2FzZSwgdGhlIGV4cG9uZW50IGlzIHJlZHVjZWQgdG8gZml0IGFuZCB0aGUgY29ycmVzcG9uZGluZwogICAgbnVtYmVyIG9mIHplcm8gZGlnaXRzIGFyZSBhcHBlbmRlZCB0byB0aGUgY29lZmZpY2llbnQgKCJmb2xkLWRvd24iKS4KICAgICgDAAAAUiAAAABSIQAAAFIiAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSBgAAALgAAABzAgAAAAYKYwAAAAAAAAAAAQAAAEIAAABzFwAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAFJTKAIAAABzMAIAAEFuIGludmFsaWQgb3BlcmF0aW9uIHdhcyBwZXJmb3JtZWQuCgogICAgVmFyaW91cyBiYWQgdGhpbmdzIGNhdXNlIHRoaXM6CgogICAgU29tZXRoaW5nIGNyZWF0ZXMgYSBzaWduYWxpbmcgTmFOCiAgICAtSU5GICsgSU5GCiAgICAwICogKCstKUlORgogICAgKCstKUlORiAvICgrLSlJTkYKICAgIHggJSAwCiAgICAoKy0pSU5GICUgeAogICAgeC5fcmVzY2FsZSggbm9uLWludGVnZXIgKQogICAgc3FydCgteCkgLCB4ID4gMAogICAgMCAqKiAwCiAgICB4ICoqIChub24taW50ZWdlcikKICAgIHggKiogKCstKUlORgogICAgQW4gb3BlcmFuZCBpcyBpbnZhbGlkCgogICAgVGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uIGFmdGVyIHRoZXNlIGlzIGEgcXVpZXQgcG9zaXRpdmUgTmFOLAogICAgZXhjZXB0IHdoZW4gdGhlIGNhdXNlIGlzIGEgc2lnbmFsaW5nIE5hTiwgaW4gd2hpY2ggY2FzZSB0aGUgcmVzdWx0IGlzCiAgICBhbHNvIGEgcXVpZXQgTmFOLCBidXQgd2l0aCB0aGUgb3JpZ2luYWwgc2lnbiwgYW5kIGFuIG9wdGlvbmFsCiAgICBkaWFnbm9zdGljIGluZm9ybWF0aW9uLgogICAgYwIAAAAEAAAABQAAAEcAAABzOgAAAHwCAHI2AHQAAHwCAGQBABlqAQB8AgBkAQAZagIAZAIAdAMAgwQAfQMAfAMAagQAfAEAgwEAU3QFAFMoAwAAAE5pAAAAAHQBAAAAbigGAAAAdBAAAABfZGVjX2Zyb21fdHJpcGxldAUAAABfc2lnbnQEAAAAX2ludHQEAAAAVHJ1ZXQIAAAAX2ZpeF9uYW50BAAAAF9OYU4oBAAAAFIdAAAAUh4AAABSGwAAAHQDAAAAYW5zKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5Uh8AAADbAAAAcwgAAAAAAQYBIwENASgEAAAAUiAAAABSIQAAAFIiAAAAUh8AAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIHAAAAxAAAAHMEAAAABhYGAXQQAAAAQ29udmVyc2lvblN5bnRheGMAAAAAAAAAAAEAAABCAAAAcxcAAABlAABaAQBkAABaAgBkAQCEAABaAwBSUygCAAAAc90AAABUcnlpbmcgdG8gY29udmVydCBiYWRseSBmb3JtZWQgc3RyaW5nLgoKICAgIFRoaXMgb2NjdXJzIGFuZCBzaWduYWxzIGludmFsaWQtb3BlcmF0aW9uIGlmIGFuIHN0cmluZyBpcyBiZWluZwogICAgY29udmVydGVkIHRvIGEgbnVtYmVyIGFuZCBpdCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBudW1lcmljIHN0cmluZwogICAgc3ludGF4LiAgVGhlIHJlc3VsdCBpcyBbMCxxTmFOXS4KICAgIGMCAAAAAwAAAAEAAABHAAAAcwQAAAB0AABTKAEAAABOKAEAAABSKQAAACgDAAAAUh0AAABSHgAAAFIbAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5Uh8AAADoAAAAcwIAAAAAASgEAAAAUiAAAABSIQAAAFIiAAAAUh8AAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIrAAAA4QAAAHMEAAAABgYGAWMAAAAAAAAAAAEAAABCAAAAcxcAAABlAABaAQBkAABaAgBkAQCEAABaAwBSUygCAAAAc7IBAABEaXZpc2lvbiBieSAwLgoKICAgIFRoaXMgb2NjdXJzIGFuZCBzaWduYWxzIGRpdmlzaW9uLWJ5LXplcm8gaWYgZGl2aXNpb24gb2YgYSBmaW5pdGUgbnVtYmVyCiAgICBieSB6ZXJvIHdhcyBhdHRlbXB0ZWQgKGR1cmluZyBhIGRpdmlkZS1pbnRlZ2VyIG9yIGRpdmlkZSBvcGVyYXRpb24sIG9yIGEKICAgIHBvd2VyIG9wZXJhdGlvbiB3aXRoIG5lZ2F0aXZlIHJpZ2h0LWhhbmQgb3BlcmFuZCksIGFuZCB0aGUgZGl2aWRlbmQgd2FzCiAgICBub3QgemVyby4KCiAgICBUaGUgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24gaXMgW3NpZ24saW5mXSwgd2hlcmUgc2lnbiBpcyB0aGUgZXhjbHVzaXZlCiAgICBvciBvZiB0aGUgc2lnbnMgb2YgdGhlIG9wZXJhbmRzIGZvciBkaXZpZGUsIG9yIGlzIDEgZm9yIGFuIG9kZCBwb3dlciBvZgogICAgLTAsIGZvciBwb3dlci4KICAgIGMDAAAABAAAAAIAAABHAAAAcwgAAAB0AAB8AgAZUygBAAAATigBAAAAdA8AAABfU2lnbmVkSW5maW5pdHkoBAAAAFIdAAAAUh4AAAB0BAAAAHNpZ25SGwAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIfAAAA+AAAAHMCAAAAAAEoBAAAAFIgAAAAUiEAAABSIgAAAFIfAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSCAAAAOsAAABzBAAAAAYLBgJ0EgAAAERpdmlzaW9uSW1wb3NzaWJsZWMAAAAAAAAAAAEAAABCAAAAcxcAAABlAABaAQBkAABaAgBkAQCEAABaAwBSUygCAAAAc/MAAABDYW5ub3QgcGVyZm9ybSB0aGUgZGl2aXNpb24gYWRlcXVhdGVseS4KCiAgICBUaGlzIG9jY3VycyBhbmQgc2lnbmFscyBpbnZhbGlkLW9wZXJhdGlvbiBpZiB0aGUgaW50ZWdlciByZXN1bHQgb2YgYQogICAgZGl2aWRlLWludGVnZXIgb3IgcmVtYWluZGVyIG9wZXJhdGlvbiBoYWQgdG9vIG1hbnkgZGlnaXRzICh3b3VsZCBiZQogICAgbG9uZ2VyIHRoYW4gcHJlY2lzaW9uKS4gIFRoZSByZXN1bHQgaXMgWzAscU5hTl0uCiAgICBjAgAAAAMAAAABAAAARwAAAHMEAAAAdAAAUygBAAAATigBAAAAUikAAAAoAwAAAFIdAAAAUh4AAABSGwAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIfAAAAAwEAAHMCAAAAAAEoBAAAAFIgAAAAUiEAAABSIgAAAFIfAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSLgAAAPsAAABzBAAAAAYGBgJ0EQAAAERpdmlzaW9uVW5kZWZpbmVkYwAAAAAAAAAAAQAAAEIAAABzFwAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAFJTKAIAAABz7gAAAFVuZGVmaW5lZCByZXN1bHQgb2YgZGl2aXNpb24uCgogICAgVGhpcyBvY2N1cnMgYW5kIHNpZ25hbHMgaW52YWxpZC1vcGVyYXRpb24gaWYgZGl2aXNpb24gYnkgemVybyB3YXMKICAgIGF0dGVtcHRlZCAoZHVyaW5nIGEgZGl2aWRlLWludGVnZXIsIGRpdmlkZSwgb3IgcmVtYWluZGVyIG9wZXJhdGlvbiksIGFuZAogICAgdGhlIGRpdmlkZW5kIGlzIGFsc28gemVyby4gIFRoZSByZXN1bHQgaXMgWzAscU5hTl0uCiAgICBjAgAAAAMAAAABAAAARwAAAHMEAAAAdAAAUygBAAAATigBAAAAUikAAAAoAwAAAFIdAAAAUh4AAABSGwAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIfAAAADgEAAHMCAAAAAAEoBAAAAFIgAAAAUiEAAABSIgAAAFIfAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSLwAAAAYBAABzBAAAAAYGBgJjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZAAAWgIAUlMoAQAAAHOtAQAASGFkIHRvIHJvdW5kLCBsb3NpbmcgaW5mb3JtYXRpb24uCgogICAgVGhpcyBvY2N1cnMgYW5kIHNpZ25hbHMgaW5leGFjdCB3aGVuZXZlciB0aGUgcmVzdWx0IG9mIGFuIG9wZXJhdGlvbiBpcwogICAgbm90IGV4YWN0ICh0aGF0IGlzLCBpdCBuZWVkZWQgdG8gYmUgcm91bmRlZCBhbmQgYW55IGRpc2NhcmRlZCBkaWdpdHMKICAgIHdlcmUgbm9uLXplcm8pLCBvciBpZiBhbiBvdmVyZmxvdyBvciB1bmRlcmZsb3cgY29uZGl0aW9uIG9jY3Vycy4gIFRoZQogICAgcmVzdWx0IGluIGFsbCBjYXNlcyBpcyB1bmNoYW5nZWQuCgogICAgVGhlIGluZXhhY3Qgc2lnbmFsIG1heSBiZSB0ZXN0ZWQgKG9yIHRyYXBwZWQpIHRvIGRldGVybWluZSBpZiBhIGdpdmVuCiAgICBvcGVyYXRpb24gKG9yIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMpIHdhcyBpbmV4YWN0LgogICAgKAMAAABSIAAAAFIhAAAAUiIAAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIJAAAAEQEAAHMCAAAABgp0DgAAAEludmFsaWRDb250ZXh0YwAAAAAAAAAAAQAAAEIAAABzFwAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAFJTKAIAAABz7AEAAEludmFsaWQgY29udGV4dC4gIFVua25vd24gcm91bmRpbmcsIGZvciBleGFtcGxlLgoKICAgIFRoaXMgb2NjdXJzIGFuZCBzaWduYWxzIGludmFsaWQtb3BlcmF0aW9uIGlmIGFuIGludmFsaWQgY29udGV4dCB3YXMKICAgIGRldGVjdGVkIGR1cmluZyBhbiBvcGVyYXRpb24uICBUaGlzIGNhbiBvY2N1ciBpZiBjb250ZXh0cyBhcmUgbm90IGNoZWNrZWQKICAgIG9uIGNyZWF0aW9uIGFuZCBlaXRoZXIgdGhlIHByZWNpc2lvbiBleGNlZWRzIHRoZSBjYXBhYmlsaXR5IG9mIHRoZQogICAgdW5kZXJseWluZyBjb25jcmV0ZSByZXByZXNlbnRhdGlvbiBvciBhbiB1bmtub3duIG9yIHVuc3VwcG9ydGVkIHJvdW5kaW5nCiAgICB3YXMgc3BlY2lmaWVkLiAgVGhlc2UgYXNwZWN0cyBvZiB0aGUgY29udGV4dCBuZWVkIG9ubHkgYmUgY2hlY2tlZCB3aGVuCiAgICB0aGUgdmFsdWVzIGFyZSByZXF1aXJlZCB0byBiZSB1c2VkLiAgVGhlIHJlc3VsdCBpcyBbMCxxTmFOXS4KICAgIGMCAAAAAwAAAAEAAABHAAAAcwQAAAB0AABTKAEAAABOKAEAAABSKQAAACgDAAAAUh0AAABSHgAAAFIbAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5Uh8AAAAoAQAAcwIAAAAAASgEAAAAUiAAAABSIQAAAFIiAAAAUh8AAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIwAAAAHQEAAHMEAAAABgkGAmMAAAAAAAAAAAEAAABCAAAAcw4AAABlAABaAQBkAABaAgBSUygBAAAAc9kBAABOdW1iZXIgZ290IHJvdW5kZWQgKG5vdCAgbmVjZXNzYXJpbHkgY2hhbmdlZCBkdXJpbmcgcm91bmRpbmcpLgoKICAgIFRoaXMgb2NjdXJzIGFuZCBzaWduYWxzIHJvdW5kZWQgd2hlbmV2ZXIgdGhlIHJlc3VsdCBvZiBhbiBvcGVyYXRpb24gaXMKICAgIHJvdW5kZWQgKHRoYXQgaXMsIHNvbWUgemVybyBvciBub24temVybyBkaWdpdHMgd2VyZSBkaXNjYXJkZWQgZnJvbSB0aGUKICAgIGNvZWZmaWNpZW50KSwgb3IgaWYgYW4gb3ZlcmZsb3cgb3IgdW5kZXJmbG93IGNvbmRpdGlvbiBvY2N1cnMuICBUaGUKICAgIHJlc3VsdCBpbiBhbGwgY2FzZXMgaXMgdW5jaGFuZ2VkLgoKICAgIFRoZSByb3VuZGVkIHNpZ25hbCBtYXkgYmUgdGVzdGVkIChvciB0cmFwcGVkKSB0byBkZXRlcm1pbmUgaWYgYSBnaXZlbgogICAgb3BlcmF0aW9uIChvciBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zKSBjYXVzZWQgYSBsb3NzIG9mIHByZWNpc2lvbi4KICAgICgDAAAAUiAAAABSIQAAAFIiAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSCgAAACsBAABzAgAAAAYKYwAAAAAAAAAAAQAAAEIAAABzDgAAAGUAAFoBAGQAAFoCAFJTKAEAAABzmAEAAEV4cG9uZW50IDwgRW1pbiBiZWZvcmUgcm91bmRpbmcuCgogICAgVGhpcyBvY2N1cnMgYW5kIHNpZ25hbHMgc3Vibm9ybWFsIHdoZW5ldmVyIHRoZSByZXN1bHQgb2YgYSBjb252ZXJzaW9uIG9yCiAgICBvcGVyYXRpb24gaXMgc3Vibm9ybWFsICh0aGF0IGlzLCBpdHMgYWRqdXN0ZWQgZXhwb25lbnQgaXMgbGVzcyB0aGFuCiAgICBFbWluLCBiZWZvcmUgYW55IHJvdW5kaW5nKS4gIFRoZSByZXN1bHQgaW4gYWxsIGNhc2VzIGlzIHVuY2hhbmdlZC4KCiAgICBUaGUgc3Vibm9ybWFsIHNpZ25hbCBtYXkgYmUgdGVzdGVkIChvciB0cmFwcGVkKSB0byBkZXRlcm1pbmUgaWYgYSBnaXZlbgogICAgb3Igb3BlcmF0aW9uIChvciBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zKSB5aWVsZGVkIGEgc3Vibm9ybWFsIHJlc3VsdC4KICAgICgDAAAAUiAAAABSIQAAAFIiAAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSCwAAADcBAABzAgAAAAYJYwAAAAAAAAAAAQAAAEIAAABzFwAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAFJTKAIAAABzGgQAAE51bWVyaWNhbCBvdmVyZmxvdy4KCiAgICBUaGlzIG9jY3VycyBhbmQgc2lnbmFscyBvdmVyZmxvdyBpZiB0aGUgYWRqdXN0ZWQgZXhwb25lbnQgb2YgYSByZXN1bHQKICAgIChmcm9tIGEgY29udmVyc2lvbiBvciBmcm9tIGFuIG9wZXJhdGlvbiB0aGF0IGlzIG5vdCBhbiBhdHRlbXB0IHRvIGRpdmlkZQogICAgYnkgemVybyksIGFmdGVyIHJvdW5kaW5nLCB3b3VsZCBiZSBncmVhdGVyIHRoYW4gdGhl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aGUgdmFsdWUKICAgIEVtaW4pLiAgVGhhdCBpcywgdGhlIHJlc3VsdCBpcyBib3RoIGluZXhhY3QgYW5kIHN1Ym5vcm1hbC4KCiAgICBUaGUgcmVzdWx0IGFmdGVyIGFuIHVuZGVyZmxvdyB3aWxsIGJlIGEgc3Vibm9ybWFsIG51bWJlciByb3VuZGVkLCBpZgogICAgbmVjZXNzYXJ5LCBzbyB0aGF0IGl0cyBleHBvbmVudCBpcyBub3QgbGVzcyB0aGFuIEV0aW55LiAgVGhpcyBtYXkgcmVzdWx0CiAgICBpbiAwIHdpdGggdGhlIHNpZ24gb2YgdGhlIGludGVybWVkaWF0ZSByZXN1bHQgYW5kIGFuIGV4cG9uZW50IG9mIEV0aW55LgoKICAgIEluIGFsbCBjYXNlcywgSW5leGFjdCwgUm91bmRlZCwgYW5kIFN1Ym5vcm1hbCB3aWxsIGFsc28gYmUgcmFpc2VkLgogICAgKAMAAABSIAAAAFIhAAAAUiIAAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVINAAAAaAEAAHMCAAAABg10DQAAAE1vY2tUaHJlYWRpbmdjAAAAAAAAAAACAAAAQgAAAHMUAAAAZQAAWgEAZQIAZAAAhAEAWgMAUlMoAQAAAGMCAAAAAgAAAAIAAABDAAAAcwsAAAB8AQBqAAB0AQAZUygBAAAATigCAAAAdAcAAABtb2R1bGVzUiAAAAAoAgAAAFIdAAAAdAMAAABzeXMoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHl0BQAAAGxvY2FsjwEAAHMCAAAAAAEoBAAAAFIgAAAAUiEAAABSNwAAAFI4AAAAKAAAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSNQAAAI4BAABzAgAAAAYBdBMAAABfX2RlY2ltYWxfY29udGV4dF9fYwEAAAABAAAABAAAAEMAAABzQQAAAHwAAHQAAHQBAHQCAGYDAGsGAHIuAHwAAGoDAIMAAH0AAHwAAGoEAIMAAAFuAAB8AAB0BQBqBgCDAABfBwBkAQBTKAIAAABzJQAAAFNldCB0aGlzIHRocmVhZCdzIGNvbnRleHQgdG8gY29udGV4dC5OKAgAAABSAgAAAFIDAAAAUgQAAAB0BAAAAGNvcHl0CwAAAGNsZWFyX2ZsYWdzdAkAAAB0aHJlYWRpbmd0DQAAAGN1cnJlbnRUaHJlYWRSOQAAACgBAAAAUh4AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSFgAAAJ4BAABzCAAAAAACFQEMAQ0BYwAAAAABAAAABQAAAEMAAABzQgAAAHkRAHQAAGoBAIMAAGoCAFNXbioABHQDAGsKAHI9AAEBAXQEAIMAAH0AAHwAAHQAAGoBAIMAAF8CAHwAAFNYZAEAUygCAAAAc80AAABSZXR1cm5zIHRoaXMgdGhyZWFkJ3MgY29udGV4dC4KCiAgICAgICAgSWYgdGhpcyB0aHJlYWQgZG9lcyBub3QgeWV0IGhhdmUgYSBjb250ZXh0LCByZXR1cm5zCiAgICAgICAgYSBuZXcgY29udGV4dCBhbmQgc2V0cyB0aGlzIHRocmVhZCdzIGNvbnRleHQuCiAgICAgICAgTmV3IGNvbnRleHRzIGFyZSBjb3BpZXMgb2YgRGVmYXVsdENvbnRleHQuCiAgICAgICAgTigFAAAAUjwAAABSPQAAAFI5AAAAdA4AAABBdHRyaWJ1dGVFcnJvclIBAAAAKAEAAABSHgAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIXAAAApQEAAHMMAAAAAAcDAREBDQEJAQ8BYwEAAAACAAAABQAAAEMAAABzNgAAAHkLAHwAAGoAAFNXbiQABHQBAGsKAHIxAAEBAXQCAIMAAH0BAHwBAHwAAF8AAHwBAFNYZAEAUygCAAAAc80AAABSZXR1cm5zIHRoaXMgdGhyZWFkJ3MgY29udGV4dC4KCiAgICAgICAgSWYgdGhpcyB0aHJlYWQgZG9lcyBub3QgeWV0IGhhdmUgYSBjb250ZXh0LCByZXR1cm5zCiAgICAgICAgYSBuZXcgY29udGV4dCBhbmQgc2V0cyB0aGlzIHRocmVhZCdzIGNvbnRleHQuCiAgICAgICAgTmV3IGNvbnRleHRzIGFyZSBjb3BpZXMgb2YgRGVmYXVsdENvbnRleHQuCiAgICAgICAgTigDAAAAUjkAAABSPgAAAFIBAAAAKAIAAAB0BgAAAF9sb2NhbFIeAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UhcAAAC5AQAAcwwAAAAABwMBCwENAQkBCQFjAgAAAAIAAAAEAAAAQwAAAHM7AAAAfAAAdAAAdAEAdAIAZgMAawYAci4AfAAAagMAgwAAfQAAfAAAagQAgwAAAW4AAHwAAHwBAF8FAGQBAFMoAgAAAHMlAAAAU2V0IHRoaXMgdGhyZWFkJ3MgY29udGV4dCB0byBjb250ZXh0Lk4oBgAAAFICAAAAUgMAAABSBAAAAFI6AAAAUjsAAABSOQAAACgCAAAAUh4AAABSPwAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1l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ZSMAWiQAZIIAZCEAhAEAWiUAZCIAhAAAWiYAZIIAZCMAhAEAWicAZSUAWigAZScAWikAZIIAZCQAhAEAWioAZIIAZCUAhAEAWisAZIIAZCYAhAEAWiwAZIIAZCcAhAEAWi0AZIIAZCgAhAEAWi4AZIIAZCkAhAEAWi8AZIIAZCoAhAEAWjAAZCsAhAAAWjEAZCwAhAAAWjIAZTIAWjMAZC0AhAAAWjQAZTUAZTQAgwEAWjQAZC4AhAAAWjYAZTUAZTYAgwEAWjYAZC8AhAAAWjcAZDAAhAAAWjgAZDEAhAAAWjkAZDIAhAAAWjoAZDMAhAAAWjsAZDQAhAAAWjwAZDUAhAAAWj0AZDYAhAAAWj4AZDcAhAAAWj8AZDgAhAAAWkAAZDkAhAAAWkEAZDoAhAAAWkIAZDsAhAAAWkMAZUQAZDwAZTwAZD0AZT0AZD4AZT4AZD8AZT8AZEAAZUAAZEEAZUEAZEIAZUIAZEMAZUMAgwAIWkUAZIIAZEQAhAEAWkYAZIIAZEUAhAEAWkcAZEYAhAAAWkgAZIIAZIIAZEcAhAIAWkkAZIIAZEgAhAEAWkoAZIIAZEkAhAEAWksAZIIAZIIAZR0AZEoAhAMAWkwAZEsAhAAAWk0AZEwAhAAAWk4AZE0AhAAAWk8AZIIAZIIAZE4AhAIAWlAAZIIAZIIAZE8AhAIAWlEAZVEAWlIAZIIAZFAAhAEAWlMAZIIAZFEAhAEAWlQAZIIAZFIAhAEAWlUAZFMAhAAAWlYAZFQAhAAAWlcAZFUAhAAAWlgAZIIAZFYAhAEAWlkAZIIAZFcAhAEAWloAZFgAhAAAWlsAZFkAhAAAWlwAZFoAhAAAWl0AZFsAhAAAWl4AZFwAhAAAWl8AZIIAZF0AhAEAWmAAZF4AhAAAWmEAZF8AhAAAWmIAZGAAhAAAWmMAZGEAhAAAWmQAZIIAZGIAhAEAWmUAZGMAhAAAWmYAZGQAhAAAWmcAZGUAhAAAWmgAZIIAZGYAhAEAWmkAZGcAhAAAWmoAZGgAhAAAWmsAZIIAZGkAhAEAWmwAZGoAhAAAWm0AZIIAZGsAhAEAWm4AZIIAZGwAhAEAWm8AZG0AhAAAWnAAZG4AhAAAWnEAZIIAZG8AhAEAWnIAZIIAZHAAhAEAWnMAZIIAZHEAhAEAWnQAZIIAZHIAhAEAWnUAZIIAZHMAhAEAWnYAZIIAZHQAhAEAWncAZIIAZHUAhAEAWngAZIIAZHYAhAEAWnkAZIIAZHcAhAEAWnoAZIIAZHgAhAEAWnsAZHkAhAAAWnwAZIIAZHoAhAEAWn0AZIIAZHsAhAEAWn4AZIIAZHwAhAEAWn8AZH0AhAAAWoAAZH4AhAAAWoEAZH8AhAAAWoIAZIIAZIIAZIAAhAIAWoMAUlMogwAAAHMsAAAARmxvYXRpbmcgcG9pbnQgY2xhc3MgZm9yIGRlY2ltYWwgYXJpdGhtZXRpYy50BAAAAF9leHBSJgAAAFIlAAAAdAsAAABfaXNfc3BlY2lhbHQBAAAAMGMDAAAACwAAAAkAAABDAAAAc8QEAAB0AABqAQB8AACDAQB9AwB0AgB8AQB0AwCDAgBymgF0BAB8AQBqBQCDAACDAQB9BAB8BABkGABrCAByaAB8AgBkGABrCAByVAB0BwCDAAB9AgBuAAB8AgBqCAB0CQBkAQB8AQAWgwIAU3wEAGoKAGQCAIMBAGQDAGsCAHKJAGQEAHwDAF8LAG4JAGQFAHwDAF8LAHwEAGoKAGQGAIMBAH0FAHwFAGQYAGsJAHIVAXwEAGoKAGQHAIMBAHC/AGQIAH0GAHQMAHwEAGoKAGQJAIMBAHDXAGQKAIMBAH0HAHQNAHQMAHwFAHwGABeDAQCDAQB8AwBfDgB8BwB0DwB8BgCDAQAYfAMAXxAAdBEAfAMAXxIAboEAfAQAagoAZAsAgwEAfQgAfAgAZBgAawkAcnsBdA0AdAwAfAgAcD8BZAoAgwEAgwEAahMAZAoAgwEAfAMAXw4AfAQAagoAZAwAgwEAcm8BZA0AfAMAXxAAcY0BZA4AfAMAXxAAbhIAZAoAfAMAXw4AZA8AfAMAXxAAdBQAfAMAXxIAfAMAU3QCAHwBAHQMAHQVAGYCAIMCAHL7AXwBAGQFAGsFAHLHAWQFAHwDAF8LAG4JAGQEAHwDAF8LAGQFAHwDAF8QAHQNAHQWAHwBAIMBAIMBAHwDAF8OAHQRAHwDAF8SAHwDAFN0AgB8AQB0FwCDAgByPgJ8AQBqEAB8AwBfEAB8AQBqCwB8AwBfCwB8AQBqDgB8AwBfDgB8AQBqEgB8AwBfEgB8AwBTdAIAfAEAdBgAgwIAcooCfAEAahkAfAMAXwsAdA0AfAEAagwAgwEAfAMAXw4AdAwAfAEAahoAgwEAfAMA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AAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQIAAAAX19oYXNoX1+nAwAAcyIAAAAADQkBDAEPAQwCBAQJAQQCBwYMARUBCgIMARIHKwUJARMBYwEAAAABAAAABgAAAEMAAABzKAAAAHQAAHwAAGoBAHQCAHQDAHQEAHwAAGoFAIMCAIMBAHwAAGoGAIMDAFMoAQAAAHNlAAAAUmVwcmVzZW50cyB0aGUgbnVtYmVyIGFzIGEgdHJpcGxlIHR1cGxlLgoKICAgICAgICBUbyBzaG93IHRoZSBpbnRlcm5hbHMgZXhhY3RseSBhcyB0aGV5IGFyZS4KICAgICAgICAoBwAAAFIaAAAAUiUAAABSXwAAAFJjAAAAUkcAAABSJgAAAFJDAAAAKAEAAABSHQAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQIAAAAYXNfdHVwbGXbAwAAcwIAAAAABWMBAAAAAQAAAAMAAABDAAAAcw4AAABkAQB0AAB8AACDAQAWUygCAAAAczAAAABSZXByZXNlbnRzIHRoZSBudW1iZXIgYXMgYW4gaW5zdGFuY2Ugb2YgRGVjaW1hbC5zDQAAAERlY2ltYWwoJyVzJykoAQAAAFJXAAAAKAEAAABSHQAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQIAAAAX19yZXByX1/iAwAAcwIAAAAAA2MDAAAACQAAAAYAAABDAAAAc8MBAABkAQBkAgBnAgB8AABqAAAZfQMAfAAAagEAcmMAfAAAagIA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AHQAAGQBAIMBAFMoAgAAAE5pAAAAACgBAAAAUgAAAAAoAQAAAFIdAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5dAQAAABpbWFnSwYAAHMCAAAAAAFjAQAAAAEAAAABAAAAQwAAAHMEAAAAfAAAUygBAAAATigAAAAAKAEAAABSHQAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQJAAAAY29uanVnYXRlTwYAAHMCAAAAAAFjAQAAAAEAAAADAAAAQwAAAHMQAAAAdAAAdAEAfAAAgwEAgwEAUygBAAAATigCAAAAdAcAAABjb21wbGV4UmQAAAAoAQAAAFIdAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5dAsAAABfX2NvbXBsZXhfX1IGAABzAgAAAAABYwEAAAABAAAAAgAAAEMAAABzEAAAAHQAAHwAAGoBAIMAAIMBAFMoAQAAAHNDAAAAQ29udmVydHMgdG8gYSBsb25nLgoKICAgICAgICBFcXVpdmFsZW50IHRvIGxvbmcoaW50KHNlbGYpKQogICAgICAgICgCAAAAUlsAAABS2wAAACgBAAAAUh0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHl0CAAAAF9f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AABleHBfbWluUioAAAB0EQAAAHNlbGZfaXNfc3Vibm9ybWFsUmwAAAB0DwAAAHJvdW5kaW5nX21ldGhvZHQHAAAAY2hhbmdlZFLEAAAAUokAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSrwAAAGgGAABzbgAAAAAKCQEMAg0DDQQMAQwBBgEWARsBDwENARMCDQQdAQwCGAENAQ0BBAIMAQYBCQMPARoBDAEZAQkBEAEPARMBDAEWARUBCgEQAwwBGwIVBAwBEAEGARABBgEQAQ0BBgIQAQQCBgEQAx4BDQEYARMDYwIAAAACAAAAAwAAAEMAAABzHgAAAHQAAHwAAGoBAHwBAIMCAHIWAGQBAFNkAgBTZAMAUygEAAAAcygAAABBbHNvIGtub3duIGFzIHJvdW5kLXRvd2FyZHMtMCwgdHJ1bmNhdGUuaQAAAABp/////04oAgAAAHQKAAAAX2FsbF96ZXJvc1ImAAAAKAIAAABSHQAAAFIzAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5dAsAAABfcm91bmRfZG93bs4GAABzBgAAAAACEgEEAmMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AABqAAB8AQCDAQALUygBAAAAcxMAAABSb3VuZHMgYXdheSBmcm9tIDAuKAEAAABS7gAAACgCAAAAUh0AAABSMwAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQJAAAAX3JvdW5kX3Vw1QYAAHMCAAAAAAJjAgAAAAIA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cHl0DAAAAGlzX2Nhbm9uaWNhbL8LAABzAgAAAAAGYwEAAAABAAAAAQAAAEMAAABzCAAAAHwAAGoAAAxTKAEAAABznQAAAFJldHVybiBUcnVlIGlmIHNlbGYgaXMgZmluaXRlOyBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLgoKICAgICAgICBBIERlY2ltYWwgaW5zdGFuY2UgaXMgY29uc2lkZXJlZCBmaW5pdGUgaWYgaXQgaXMgbmVpdGhlcgogICAgICAgIGluZmluaXRlIG5vciBhIE5hTi4KICAgICAgICAoAQAAAFJEAAAAKAEAAABSHQAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQJAAAAaXNfZmluaXRlxwsAAHMCAAAAAAZjAQAAAAEAAAACAAAAQwAAAHMNAAAAfAAAagAAZAEAawIAUygCAAAAczgAAABSZXR1cm4gVHJ1ZSBpZiBzZWxmIGlzIGluZmluaXRlOyBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLlJOAAAAKAEAAABSQwAAACgBAAAAUh0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSLQEAAM8LAABzAgAAAAACYwEAAAABAAAAAwAAAEMAAABzDQAAAHwAAGoAAGQDAGsGAFMoBAAAAHM+AAAAUmV0dXJuIFRydWUgaWYgc2VsZiBpcyBhIHFOYU4gb3Igc05hTjsgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS5SIwAAAFJNAAAAKAIAAABSIwAAAFJNAAAAKAEAAABSQwAAACgBAAAAUh0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSlwAAANMLAABzAgAAAAACYwIAAAACAAAAAwAAAEMAAABzPwAAAHwAAGoAAHMQAHwAAAxyFAB0AQBTfAEAZAEAawgAciwAdAMAgwAAfQEAbgAAfAEAagQAfAAAagUAgwAAawEAUygCAAAAcz8AAABSZXR1cm4gVHJ1ZSBpZiBzZWxmIGlzIGEgbm9ybWFsIG51bWJlcjsgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS5OKAYAAABSRAAAAFJZAAAAUkAAAABSFwAAAFIqAQAAUoQAAAAoAgAAAFIdAAAAUh4AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHl0CQAAAGlzX25vcm1hbNcLAABzCgAAAAACEAEEAQwBDAFjAQAAAAEAAAACAAAAQwAAAHMNAAAAfAAAagAAZAEAawIAUygCAAAAczsAAABSZXR1cm4gVHJ1ZSBpZiBzZWxmIGlzIGEgcXVpZXQgTmFOOyBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLlIjAAAAKAEAAABSQwAAACgBAAAAUh0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSgQAAAN8LAABzAgAAAAACYwEAAAABAAAAAgAAAEMAAABzDQAAAHwAAGoAAGQBAGsCAFMoAgAAAHM4AAAAUmV0dXJuIFRydWUgaWYgc2VsZiBpcyBuZWdhdGl2ZTsgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS5pAQAAACgBAAAAUiUAAAAoAQAAAFIdAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5dAkAAABpc19zaWduZWTjCwAAcwIAAAAAAmMBAAAAAQAAAAIAAABDAAAAcw0AAAB8AABqAABkAQBrAgBTKAIAAABzPwAAAFJldHVybiBUcnVlIGlmIHNlbGYgaXMgYSBzaWduYWxpbmcgTmFOOyBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLlJNAAAAKAEAAABSQwAAACgBAAAAUh0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSgAAAAOcLAABzAgAAAAACYwIAAAACAAAAAwAAAEMAAABzPwAAAHwAAGoAAHMQAHwAAAxyFAB0AQBTfAEAZAEAawgAciwAdAMAgwAAfQEAbgAAfAAAagQAgwAAfAEAagUAawAAUygCAAAAczkAAABSZXR1cm4gVHJ1ZSBpZiBzZWxmIGlzIHN1Ym5vcm1hbDsgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS5OKAYAAABSRAAAAFJZAAAAUkAAAABSFwAAAFKEAAAAUioBAAAoAgAAAFIdAAAAUh4AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHl0DAAAAGlzX3N1Ym5vcm1hbOsLAABzCgAAAAACEAEEAQwBDAFjAQAAAAEAAAADAAAAQwAAAHMXAAAAfAAAagAADG8WAHwAAGoBAGQBAGsCAFMoAgAAAHM2AAAAUmV0dXJuIFRydWUgaWYgc2VsZiBpcyBhIHplcm87IG90aGVyd2lzZSByZXR1cm4gRmFsc2UuUkUAAAAoAgAAAFJEAAAAUiYAAAAoAQAAAFIdAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUv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AABaJwBkJQCEAABaKABkJgCEAABaKQBkJwCEAABaKgBkKACEAABaKwBkKQCEAABaLABkKgCEAABaLQBkKwCEAABaLgBkLACEAABaLwBkLQCEAABaMABkLgCEAABaMQBkLwCEAABaMgBkMACEAABaMwBkMQCEAABaNABkMgCEAABaNQBkMwCEAABaNgBkNACEAABaNwBkNQCEAABaOABkNgCEAABaOQBkNwCEAABaOgBkOACEAABaOwBkOQCEAABaPABkOgCEAABaPQBkOwCEAABaPgBkPACEAABaPwBkPQCEAABaQABkPgCEAABaQQBkTgBkPwCEAQBaQgBkQACEAABaQwBkQQCEAABaRABkQgCEAABaRQBkQwCEAABaRgBkRACEAABaRwBkRQCEAABaSABkRgCEAABaSQBkRwCEAABaSgBkSACEAABaSwBkSQCEAABaTABkSgCEAABaTQBkSwCEAABaTgBkTACEAABaTwBkTQCEAABaUABlUABaUQBSUyhPAAAAc98CAABDb250YWlucyB0aGUgY29udGV4dCBmb3IgYSBEZWNpbWFsIGluc3RhbmNlLgoKICAgIENvbnRhaW5zOgogICAgcHJlYyAtIHByZWNpc2lvbiAoZm9yIHVzZSBpbiByb3VuZGluZywgZGl2aXNpb24sIHNxdWFyZSByb290cy4uKQogICAgcm91bmRpbmcgLSByb3VuZGluZyB0eXBlIChob3cgeW91IHJvdW5kKQogICAgdHJhcHMgLSBJZiB0cmFwc1tleGNlcHRpb25dID0gMSwgdGhlbiB0aGUgZXhjZXB0aW9uIGlzCiAgICAgICAgICAgICAgICAgICAgcmFpc2VkIHdoZW4gaXQgaXMgY2F1c2VkLiAgT3RoZXJ3aXNlLCBhIHZhbHVlIGlzCiAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0ZWQgaW4uCiAgICBmbGFncyAgLSBXaGVuIGFuIGV4Y2VwdGlvbiBpcyBjYXVzZWQsIGZsYWdzW2V4Y2VwdGlvbl0gaXMgc2V0LgogICAgICAgICAgICAgKFdoZXRoZXIgb3Igbm90IHRoZSB0cmFwX2VuYWJsZXIgaXMgc2V0KQogICAgICAgICAgICAgU2hvdWxkIGJlIHJlc2V0IGJ5IHVzZXIgb2YgRGVjaW1h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ZSwgaXQgcmV0dXJucwogICAgICAgIHRoZSBkZWZhdWx0IHZhbHVlIGFmdGVyIHNldHRpbmcgdGhlIGZsYWcuCiAgICAgICAgaQEAAABOKAYAAAB0DgAAAF9jb25kaXRpb25fbWFwdAMAAABnZXRSpgEAAFIfAAAAUhwBAABSGwEAACgFAAAAUh0AAAB0CQAAAGNvbmRpdGlvbnQLAAAAZXhwbGFuYXRpb25SGwAAAHQFAAAAZXJyb3IoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSVQAAAAwPAABzDgAAAAAIEgEPAhMCDQENAhMEYwEAAAABAAAAAgAAAEMAAABzDQAAAHwAAGoAAHQBAIwAAFMoAQAAAHMkAAAASWdub3JlIGFsbCBmbGFncywgaWYgdGhleSBhcmUgcmFpc2VkKAIAAAB0DQAAAF9pZ25vcmVfZmxhZ3NSGgEAACgBAAAAUh0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSaQEAACIPAABzAgAAAAACYwEAAAACAAAAAwAAAEcAAABzIAAAAHwAAGoAAHQBAHwBAIMBABd8AABfAAB0AQB8AQCDAQBTKAEAAABzJAAAAElnbm9yZSB0aGUgZmxhZ3MsIGlmIHRoZXkgYXJlIHJhaXNlZCgCAAAAUqYBAABSXgAAACgCAAAAUh0AAABSHAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVK1AQAAJg8AAHMEAAAAAAQWAWMBAAAAAwAAAAUAAABHAAAA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bmV3IERlY2ltYWwgaW5zdGFuY2UgYnV0IHVzaW5nIHNlbGYgYXMgY29udGV4dC4KCiAgICAgICAgVGhpcyBtZXRob2QgaW1wbGVtZW50cyB0aGUgdG8tbnVtYmVyIG9wZXJhdGlvbiBvZiB0aGUKICAgICAgICBJQk0gRGVjaW1hbCBzcGVjaWZpY2F0aW9uLnMvAAAAbm8gdHJhaWxpbmcgb3IgbGVhZGluZyB3aGl0ZXNwYWNlIGlzIHBlcm1pdHRlZC5SHgAAAHMfAAAAZGlhZ25vc3RpYyBpbmZvIHRvbyBsb25nIGluIE5hTigMAAAAUlEAAABSUgAAAFJUAAAAUlUAAABSKwAAAFIAAAAAUnkAAABSWAAAAFImAAAAUjMAAABS4gAAAFKvAAAAKAMAAABSHQAAAFJPAQAAUnYAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHl0DgAAAGNyZWF0ZV9kZWNpbWFsUg8AAHMQAAAAAAYhAQkBBwMSASsBCQEHAWMCAAAAAwAAAAIAAABDAAAAcxwAAAB0AABqAQB8AQCDAQB9AgB8AgBqAgB8AACDAQBTKAEAAABzxwEAAENyZWF0ZXMgYSBuZXcgRGVjaW1hbCBpbnN0YW5jZSBmcm9tIGEgZmxvYXQgYnV0IHJvdW5kaW5nIHVzaW5nIHNlbGYKICAgICAgICBhcyB0aGUgY29udGV4dC4KCiAgICAgICAgPj4+IGNvbnRleHQgPSBDb250ZXh0KHByZWM9NSwgcm91bmRpbmc9Uk9VTkRfRE9XTikKICAgICAgICA+Pj4gY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0KDMuMTQxNTkyNjUzNTg5NzkzMikKICAgICAgICBEZWNpbWFsKCczLjE0MTUnKQogICAgICAgID4+PiBjb250ZXh0ID0gQ29udGV4dChwcmVjPTUsIHRyYXBzPVtJbmV4YWN0XSkKICAgICAgICA+Pj4gY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0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AAAAUh0AAABSFAEAAFJiAQAAUssAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHl0AwAAAGFkZIoPAABzCgAAAAAOEgEVAQwBEwJjAgAAAAIAAAADAAAAQwAAAHMTAAAAdAAAfAEAagEAfAAAgwEAgwEAUygBAAAATigCAAAAUlcAAABSrwAAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQGAAAAX2FwcGx5nw8AAHMCAAAAAAFjAgAAAAIAAAADAAAAQwAAAHMQAAAAfAEAagAAZAEAfAAAgwABUygCAAAAc/sAAABSZXR1cm5zIHRoZSBzYW1lIERlY2ltYWwgb2JqZWN0LgoKICAgICAgICBBcyB3ZSBkbyBub3QgaGF2ZSBkaWZmZXJlbnQgZW5jb2RpbmdzIGZvciB0aGUgc2FtZSBudW1iZXIsIHRoZQogICAgICAgIHJlY2VpdmVkIG9iamVjdCBhbHJlYWR5IGlzIGluIGl0cyBjYW5vbmljYWwgZm9ybS4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jYW5vbmljYWwoRGVjaW1hbCgnMi41MCcpKQogICAgICAgIERlY2ltYWwoJzIuNTAnKQogICAgICAgIFIeAAAAKAEAAABSPAEAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVI8AQAAog8AAHMCAAAAAAljAwAAAAMAAAAEAAAAQwAAAHMl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dHkgbXVjaCBsaWtlIGNvbXBhcmUoKSwgYnV0IGFsbCBOYU5zIHNpZ25hbCwgd2l0aCBzaWduYWxpbmcKICAgICAgICBOYU5zIHRha2luZyBwcmVjZWRlbmNlIG92ZXIgcXVpZXQgTmFOcy4KCiAgICAgICAgPj4+IGMgPSBFeHRlbmRlZENvbnRleHQKICAgICAgICA+Pj4gYy5jb21wYXJlX3NpZ25hbChEZWNpbWFsKCcyLjEnKSwgRGVjaW1hbCgnMycpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gYy5jb21wYXJlX3NpZ25hbChEZWNpbWFsKCcyLjEnKSwgRGVjaW1hbCgnMi4xJykpCiAgICAgICAgRGVjaW1hbCgnMCcpCiAgICAgICAgPj4+IGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0gPSAwCiAgICAgICAgPj4+IHByaW50IGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0KICAgICAgICAwCiAgICAgICAgPj4+IGMuY29tcGFyZV9zaWduYWwoRGVjaW1hbCgnTmFOJyksIERlY2ltYWwoJzIuMScpKQogICAgICAgIERlY2ltYWwoJ05hTicpCiAgICAgICAgPj4+IHByaW50IGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0KICAgICAgICAxCiAgICAgICAgPj4+IGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0gPSAwCiAgICAgICAgPj4+IHByaW50IGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0KICAgICAgICAwCiAgICAgICAgPj4+IGMuY29tcGFyZV9zaWduYWwoRGVjaW1hbCgnc05hTicpLCBEZWNpbWFsKCcyLjEnKSkKICAgICAgICBEZWNpbWFsKCdOYU4nKQogICAgICAgID4+PiBwcmludCBjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dCiAgICAgICAgMQogICAgICAgID4+PiBjLmNvbXBhcmVfc2lnbmFsKC0xLCAyKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gYy5jb21wYXJlX3NpZ25hbChEZWNpbWFsKC0xKSwgMikKICAgICAgICBEZWNpbWFsKCctMScpCiAgICAgICAgPj4+IGMuY29tcGFyZV9zaWduYWwoLTEsIERlY2ltYWwoMikpCiAgICAgICAgRGVjaW1hbCgnLTEnKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicAAABSPQEAACgDAAAAUh0AAABSFAEAAFJiAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5Uj0BAADRDwAAcwQAAAAAIBIBYwMAAAADAAAABAAAAEMAAABzHwAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAHwCAIMBAFMoAgAAAHMrBAAAQ29tcGFyZXMgdHdvIG9wZXJhbmRzIHVzaW5nIHRoZWlyIGFic3RyYWN0IHJlcHJlc2VudGF0aW9uLgoKICAgICAgICBUaGlzIGlzIG5vdCBsaWtlIHRoZSBzdGFuZGFyZCBjb21wYXJlLCB3aGljaCB1c2UgdGhlaXIgbnVtZXJpY2FsCiAgICAgICAgdmFsdWUuIE5vdGUgdGhhdCBhIHRvdGFsIG9yZGVyaW5nIGlzIGRlZmluZWQgZm9yIGFsbCBwb3NzaWJsZSBhYnN0cmFjdAogICAgICAgIHJlcHJlc2VudGF0aW9ucy4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jb21wYXJlX3RvdGFsKERlY2ltYWwoJzEyLjczJyksIERlY2ltYWwoJzEyNy45JykpCiAgICAgICAgRGVjaW1hbCgnLTEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29tcGFyZV90b3RhbChEZWNpbWFsKCctMTI3JyksICBEZWNpbWFsKCcxMicpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmNvbXBhcmVfdG90YWwoRGVjaW1hbCgnMTIuMzAnKSwgRGVjaW1hbCgnMTIuMycpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmNvbXBhcmVfdG90YWwoRGVjaW1hbCgnMTIuMzAnKSwgRGVjaW1hbCgnMTIuMzAnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmNvbXBhcmVfdG90YWwoRGVjaW1hbCgnMTIuMycpLCAgRGVjaW1hbCgnMTIuMzAwJykpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jb21wYXJlX3RvdGFsKERlY2ltYWwoJzEyLjMnKSwgIERlY2ltYWwoJ05hTicpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmNvbXBhcmVfdG90YWwoMSwgMikKICAgICAgICBEZWNpbWFsKCctMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jb21wYXJlX3RvdGFsKERlY2ltYWwoMSksIDIpCiAgICAgICAgRGVjaW1hbCgnLTEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29tcGFyZV90b3RhbCgxLCBEZWNpbWFsKDIpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICBSlQAAACgDAAAAUo0AAABSJwAAAFI4AQAAKAMAAABSHQAAAFIUAQAAUmIBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSOAEAAPQPAABzBAAAAAAaEgFjAwAAAAMAAAAEAAAAQwAAAHMfAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAfAIAgwEAUygCAAAAc6MAAABDb21wYXJlcyB0d28gb3BlcmFuZHMgdXNpbmcgdGhlaXIgYWJzdHJhY3QgcmVwcmVzZW50YXRpb24gaWdub3Jpbmcgc2lnbi4KCiAgICAgICAgTGlrZSBjb21wYXJlX3RvdGFsLCBidXQgd2l0aCBvcGVyYW5kJ3Mgc2lnbiBpZ25vcmVkIGFuZCBhc3N1bWVkIHRvIGJlIDAuCiAgICAgICAgUpUAAAAoAwAAAFKNAAAAUicAAABSRQEAACgDAAAAUh0AAABSFAEAAFJiAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UkUBAAAREAAAcwQAAAAABRIBYwIAAAACAAAABAAAAEMAAABzHAAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAIMAAFMoAgAAAHMWAQAAUmV0dXJucyBhIGNvcHkgb2YgdGhlIG9wZXJhbmQgd2l0aCB0aGUgc2lnbiBzZXQgdG8gMC4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jb3B5X2FicyhEZWNpbWFsKCcyLjEnKSkKICAgICAgICBEZWNpbWFsKCcyLjEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29weV9hYnMoRGVjaW1hbCgnLTEwMCcpKQogICAgICAgIERlY2ltYWwoJzEwMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jb3B5X2FicygtMSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICBSlQAAACgDAAAAUo0AAABSJwAAAFKtAAAAKAIAAABSHQAAAFIUAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5Uq0AAAAZEAAAcwQAAAAAChIBYwIAAAACAAAABAAAAEMAAABzHAAAAHQAAHwBAGQBAHQBAIMBAX0BAHQCAHwBAIMBAFMoAgAAAHMUAQAAUmV0dXJucyBhIGNvcHkgb2YgdGhlIGRlY2ltYWwgb2JqZWN0LgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmNvcHlfZGVjaW1hbChEZWNpbWFsKCcyLjEnKSkKICAgICAgICBEZWNpbWFsKCcyLjEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29weV9kZWNpbWFsKERlY2ltYWwoJy0xLjAwJykpCiAgICAgICAgRGVjaW1hbCgnLTEuMDAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29weV9kZWNpbWFsKDEpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgUpUAAAAoAwAAAFKNAAAAUicAAABSAAAAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQMAAAAY29weV9kZWNpbWFsJhAAAHMEAAAAAAoSAWMCAAAAAgAAAAQAAABDAAAAcxwAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgCDAABTKAIAAABzKAEAAFJldHVybnMgYSBjb3B5IG9mIHRoZSBvcGVyYW5kIHdpdGggdGhlIHNpZ24gaW52ZXJ0ZWQuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29weV9uZWdhdGUoRGVjaW1hbCgnMTAxLjUnKSkKICAgICAgICBEZWNpbWFsKCctMTAxLjUnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29weV9uZWdhdGUoRGVjaW1hbCgnLTEwMS41JykpCiAgICAgICAgRGVjaW1hbCgnMTAxLjUnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuY29weV9uZWdhdGUoMSkKICAgICAgICBEZWNpbWFsKCctMScpCiAgICAgICAgUpUAAAAoAwAAAFKNAAAAUicAAABSrgAAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVKuAAAA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YW5vbmljYWw7IG90aGVyd2lzZSByZXR1cm4gRmFsc2UuCgogICAgICAgIEN1cnJlbnRseSwgdGhlIGVuY29kaW5nIG9mIGEgRGVjaW1hbCBpbnN0YW5jZSBpcyBhbHdheXMKICAgICAgICBjYW5vbmljYWwsIHNvIHRoaXMgbWV0aG9kIHJldHVybnMgVHJ1ZSBmb3IgYW55IERlY2ltYWwuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfY2Fub25pY2FsKERlY2ltYWwoJzIuNTAnKSkKICAgICAgICBUcnVlCiAgICAgICAgKAEAAABSSQEAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVJJAQAA2BAAAHMCAAAAAAljAgAAAAIAAAAEAAAAQwAAAHMcAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAgwAAUygCAAAAcywCAABSZXR1cm4gVHJ1ZSBpZiB0aGUgb3BlcmFuZCBpcyBmaW5pdGU7IG90aGVyd2lzZSByZXR1cm4gRmFsc2UuCgogICAgICAgIEEgRGVjaW1hbCBpbnN0YW5jZSBpcyBjb25zaWRlcmVkIGZpbml0ZSBpZiBpdCBpcyBuZWl0aGVyCiAgICAgICAgaW5maW5pdGUgbm9yIGEgTmFOLgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX2Zpbml0ZShEZWNpbWFsKCcyLjUwJykpCiAgICAgICAgVHJ1ZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfZmluaXRlKERlY2ltYWwoJy0wLjMnKSkKICAgICAgICBUcnVlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc19maW5pdGUoRGVjaW1hbCgnMCcpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX2Zpbml0ZShEZWNpbWFsKCdJbmYnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfZmluaXRlKERlY2ltYWwoJ05hTicpKQogICAgICAgIEZhbHNlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc19maW5pdGUoMSkKICAgICAgICBUcnVlCiAgICAgICAgUpUAAAAoAwAAAFKNAAAAUicAAABSSgEAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVJKAQAA4xAAAHMEAAAAABMSAWMCAAAAAgAAAAQAAABDAAAAcxwAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgCDAABTKAIAAABzVQEAAFJldHVybiBUcnVlIGlmIHRoZSBvcGVyYW5kIGlzIGluZmluaXRlOyBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX2luZmluaXRlKERlY2ltYWwoJzIuNTAnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfaW5maW5pdGUoRGVjaW1hbCgnLUluZicpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX2luZmluaXRlKERlY2ltYWwoJ05hTicpKQogICAgICAgIEZhbHNlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc19pbmZpbml0ZSgxKQogICAgICAgIEZhbHNlCiAgICAgICAgUpUAAAAoAwAAAFKNAAAAUicAAABSLQEAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVItAQAA+RAAAHMEAAAA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dWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UoEAAAAvEQAAcwQAAAAADBIBYwIAAAACAAAABAAAAEMAAABzHAAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAIMAAFMoAgAAAHOBAQAAUmV0dXJuIFRydWUgaWYgdGhlIG9wZXJhbmQgaXMgbmVnYXRpdmU7IG90aGVyd2lzZSByZXR1cm4gRmFsc2UuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfc2lnbmVkKERlY2ltYWwoJzIuNTAnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfc2lnbmVkKERlY2ltYWwoJy0xMicpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX3NpZ25lZChEZWNpbWFsKCctMCcpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX3NpZ25lZCg4KQogICAgICAgIEZhbHNlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc19zaWduZWQoLTgpCiAgICAgICAgVHJ1ZQogICAgICAgIFKVAAAAKAMAAABSjQAAAFInAAAAUkwBAAAoAgAAAFIdAAAAUhQBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSTAEAAD4RAABzBAAAAAAOEgFjAgAAAAIAAAAEAAAAQwAAAHMcAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAgwAAUygCAAAAc1QBAABSZXR1cm4gVHJ1ZSBpZiB0aGUgb3BlcmFuZCBpcyBhIHNpZ25hbGluZyBOYU47CiAgICAgICAgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc19zbmFuKERlY2ltYWwoJzIuNTAnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfc25hbihEZWNpbWFsKCdOYU4nKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfc25hbihEZWNpbWFsKCdzTmFOJykpCiAgICAgICAgVHJ1ZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfc25hbigxKQogICAgICAgIEZhbHNlCiAgICAgICAgUpUAAAAoAwAAAFKNAAAAUicAAABSgAAAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVKAAAAATxEAAHMEAAAAAA0SAWMCAAAAAgAAAAQAAABDAAAAcyIAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgBkAgB8AACDAAFTKAMAAABz9AEAAFJldHVybiBUcnVlIGlmIHRoZSBvcGVyYW5kIGlzIHN1Ym5vcm1hbDsgb3RoZXJ3aXNlIHJldHVybiBGYWxzZS4KCiAgICAgICAgPj4+IGMgPSBFeHRlbmRlZENvbnRleHQuY29weSgpCiAgICAgICAgPj4+IGMuRW1pbiA9IC05OTkKICAgICAgICA+Pj4gYy5FbWF4ID0gOTk5CiAgICAgICAgPj4+IGMuaXNfc3Vibm9ybWFsKERlY2ltYWwoJzIuNTAnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBjLmlzX3N1Ym5vcm1hbChEZWNpbWFsKCcwLjFFLTk5OScpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gYy5pc19zdWJub3JtYWwoRGVjaW1hbCgnMC4wMCcpKQogICAgICAgIEZhbHNlCiAgICAgICAgPj4+IGMuaXNfc3Vibm9ybWFsKERlY2ltYWwoJy1JbmYnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBjLmlzX3N1Ym5vcm1hbChEZWNpbWFsKCdOYU4nKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBjLmlzX3N1Ym5vcm1hbCgxKQogICAgICAgIEZhbHNlCiAgICAgICAgUpUAAABSHgAAACgDAAAAUo0AAABSJwAAAFJNAQAAKAIAAABSHQAAAFIUAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5Uk0BAABfEQAAcwQAAAAAExIBYwIAAAACAAAABAAAAEMAAABzHAAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAIMAAFMoAgAAAHN1AQAAUmV0dXJuIFRydWUgaWYgdGhlIG9wZXJhbmQgaXMgYSB6ZXJvOyBvdGhlcndpc2UgcmV0dXJuIEZhbHNlLgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX3plcm8oRGVjaW1hbCgnMCcpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmlzX3plcm8oRGVjaW1hbCgnMi41MCcpKQogICAgICAgIEZhbHNlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc196ZXJvKERlY2ltYWwoJy0wRSsyJykpCiAgICAgICAgVHJ1ZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfemVybygxKQogICAgICAgIEZhbHNlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5pc196ZXJvKDApCiAgICAgICAgVHJ1ZQogICAgICAgIFKVAAAAKAMAAABSjQAAAFInAAAAUk4BAAAoAgAAAFIdAAAAUhQBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSTgEAAHURAABzBAAAAAAOEgFjAgAAAAIAAAAEAAAAQwAAAHMiAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAZAIAfAAAgwABUygDAAAAc/4BAABSZXR1cm5zIHRoZSBuYXR1cmFsIChiYXNlIGUpIGxvZ2FyaXRobSBvZiB0aGUgb3BlcmFuZC4KCiAgICAgICAgPj4+IGMgPSBFeHRlbmRlZENvbnRleHQuY29weSgpCiAgICAgICAgPj4+IGMuRW1pbiA9IC05OTkKICAgICAgICA+Pj4gYy5FbWF4ID0gOTk5CiAgICAgICAgPj4+IGMubG4oRGVjaW1hbCgnMCcpKQogICAgICAgIERlY2ltYWwoJy1JbmZpbml0eScpCiAgICAgICAgPj4+IGMubG4oRGVjaW1hbCgnMS4wMDAnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gYy5sbihEZWNpbWFsKCcyLjcxODI4MTgzJykpCiAgICAgICAgRGVjaW1hbCgnMS4wMDAwMDAwMCcpCiAgICAgICAgPj4+IGMubG4oRGVjaW1hbCgnMTAnKSkKICAgICAgICBEZWNpbWFsKCcyLjMwMjU4NTA5JykKICAgICAgICA+Pj4gYy5sbihEZWNpbWFsKCcrSW5maW5pdHknKSkKICAgICAgICBEZWNpbWFsKCdJbmZpbml0eScpCiAgICAgICAgPj4+IGMubG4oMSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICBSlQAAAFIeAAAAKAMAAABSjQAAAFInAAAAUlUBAAAoAgAAAFIdAAAAUhQBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSVQEAAIYRAABzBAAAAAATEgFjAgAAAAIAAAAEAAAAQwAAAHMiAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAZAIAfAAAgwABUygDAAAAc6cCAABSZXR1cm5zIHRoZSBiYXNlIDEwIGxvZ2FyaXRobSBvZiB0aGUgb3BlcmFuZC4KCiAgICAgICAgPj4+IGMgPSBFeHRlbmRlZENvbnRleHQuY29weSgpCiAgICAgICAgPj4+IGMuRW1pbiA9IC05OTkKICAgICAgICA+Pj4gYy5FbWF4ID0gOTk5CiAgICAgICAgPj4+IGMubG9nMTAoRGVjaW1hbCgnMCcpKQogICAgICAgIERlY2ltYWwoJy1JbmZpbml0eScpCiAgICAgICAgPj4+IGMubG9nMTAoRGVjaW1hbCgnMC4wMDEnKSkKICAgICAgICBEZWNpbWFsKCctMycpCiAgICAgICAgPj4+IGMubG9nMTAoRGVjaW1hbCgnMS4wMDAnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gYy5sb2cxMChEZWNpbWFsKCcyJykpCiAgICAgICAgRGVjaW1hbCgnMC4zMDEwMjk5OTYnKQogICAgICAgID4+PiBjLmxvZzEwKERlY2ltYWwoJzEwJykpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IGMubG9nMTAoRGVjaW1hbCgnNzAnKSkKICAgICAgICBEZWNpbWFsKCcxLjg0NTA5ODA0JykKICAgICAgICA+Pj4gYy5sb2cxMChEZWNpbWFsKCcrSW5maW5pdHknKSkKICAgICAgICBEZWNpbWFsKCdJbmZpbml0eScpCiAgICAgICAgPj4+IGMubG9nMTAoMCkKICAgICAgICBEZWNpbWFsKCctSW5maW5pdHknKQogICAgICAgID4+PiBjLmxvZzEwKDEpCiAgICAgICAgRGVjaW1hbCgnMCcpCiAgICAgICAgUpUAAABSHgAAACgDAAAAUo0AAABSJwAAAFJYAQAAKAIAAABSHQAAAFIUAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UlgBAACcEQAAcwQAAAAAGRIBYwIAAAACAAAABAAAAEMAAABzIgAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAGQCAHwAAIMAAVMoAwAAAHM0AwAAIFJldHVybnMgdGhlIGV4cG9uZW50IG9mIHRoZSBtYWduaXR1ZGUgb2YgdGhlIG9wZXJhbmQncyBNU0QuCgogICAgICAgIFRoZSByZXN1bHQgaXMgdGhlIGludGVnZXIgd2hpY2ggaXMgdGhlIGV4cG9uZW50IG9mIHRoZSBtYWduaXR1ZGUKICAgICAgICBvZiB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdCBvZiB0aGUgb3BlcmFuZCAoYXMgdGhvdWdoIHRoZQogICAgICAgIG9wZXJhbmQgd2VyZSB0cnVuY2F0ZWQgdG8gYSBzaW5nbGUgZGlnaXQgd2hpbGUgbWFpbnRhaW5pbmcgdGhlCiAgICAgICAgdmFsdWUgb2YgdGhhdCBkaWdpdCBhbmQgd2l0aG91dCBsaW1pdGluZyB0aGUgcmVzdWx0aW5nIGV4cG9uZW50KS4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2diKERlY2ltYWwoJzI1MCcpKQogICAgICAgIERlY2ltYWwoJzInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9nYihEZWNpbWFsKCcyLjUwJykpCiAgICAgICAgRGVjaW1hbCgnMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2diKERlY2ltYWwoJzAuMDMnKSkKICAgICAgICBEZWNpbWFsKCctMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2diKERlY2ltYWwoJzAnKSkKICAgICAgICBEZWNpbWFsKCctSW5maW5pdHknKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9nYigxKQogICAgICAgIERlY2ltYWwoJzAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9nYigxMCkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2IoMTAwKQogICAgICAgIERlY2ltYWwoJzInKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicAAABSWQEAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVJZAQAAuBEAAHMEAAAAABcSAWMDAAAAAwAAAAQAAABDAAAAcyUAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgB8AgBkAgB8AACDAQFTKAMAAABzlAMAAEFwcGxpZXMgdGhlIGxvZ2ljYWwgb3BlcmF0aW9uICdhbmQnIGJldHdlZW4gZWFjaCBvcGVyYW5kJ3MgZGlnaXRzLgoKICAgICAgICBUaGUgb3BlcmFuZHMgbXVzdCBiZSBib3RoIGxvZ2ljYWwgbnVtYmVycy4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX2FuZChEZWNpbWFsKCcwJyksIERlY2ltYWwoJzAnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfYW5kKERlY2ltYWwoJzAnKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJzAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9hbmQoRGVjaW1hbCgnMScpLCBEZWNpbWFsKCcwJykpCiAgICAgICAgRGVjaW1hbCgnMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX2FuZChEZWNpbWFsKCcxJyksIERlY2ltYWwoJzEnKSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfYW5kKERlY2ltYWwoJzExMDAnKSwgRGVjaW1hbCgnMTAxMCcpKQogICAgICAgIERlY2ltYWwoJzEwMDAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9hbmQoRGVjaW1hbCgnMTExMScpLCBEZWNpbWFsKCcxMCcpKQogICAgICAgIERlY2ltYWwoJzEwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfYW5kKDExMCwgMTEwMSkKICAgICAgICBEZWNpbWFsKCcxMDAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9hbmQoRGVjaW1hbCgxMTApLCAxMTAxKQogICAgICAgIERlY2ltYWwoJzEwMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX2FuZCgxMTAsIERlY2ltYWwoMTEwMSkpCiAgICAgICAgRGVjaW1hbCgnMTAwJykKICAgICAgICBSlQAAAFIeAAAAKAMAAABSjQAAAFInAAAAUmMBAAAoAwAAAFIdAAAAUhQBAABSYgEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVJjAQAA0hEAAHMEAAAAABgSAWMCAAAAAgAAAAQAAABDAAAAcyIAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgBkAgB8AACDAAFTKAMAAABzCwIAAEludmVydCBhbGwgdGhlIGRpZ2l0cyBpbiB0aGUgb3BlcmFuZC4KCiAgICAgICAgVGhlIG9wZXJhbmQgbXVzdCBiZSBhIGxvZ2ljYWwgbnVtYmVyLgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfaW52ZXJ0KERlY2ltYWwoJzAnKSkKICAgICAgICBEZWNpbWFsKCcxMTExMTExMTEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9pbnZlcnQoRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJzExMTExMTExMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX2ludmVydChEZWNpbWFsKCcxMTExMTExMTEnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfaW52ZXJ0KERlY2ltYWwoJzEwMTAxMDEwMScpKQogICAgICAgIERlY2ltYWwoJzEwMTAxMDEwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfaW52ZXJ0KDExMDEpCiAgICAgICAgRGVjaW1hbCgnMTExMTEwMDEwJykKICAgICAgICBSlQAAAFIeAAAAKAMAAABSjQAAAFInAAAAUmUBAAAoAgAAAFIdAAAAUhQBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSZQEAAO0RAABzBAAAAAAQEgFjAwAAAAMAAAAEAAAAQwAAAHMlAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAfAIAZAIAfAAAgwEBUygDAAAAc48DAABBcHBsaWVzIHRoZSBsb2dpY2FsIG9wZXJhdGlvbiAnb3InIGJldHdlZW4gZWFjaCBvcGVyYW5kJ3MgZGlnaXRzLgoKICAgICAgICBUaGUgb3BlcmFuZHMgbXVzdCBiZSBib3RoIGxvZ2ljYWwgbnVtYmVycy4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX29yKERlY2ltYWwoJzAnKSwgRGVjaW1hbCgnMCcpKQogICAgICAgIERlY2ltYWwoJzAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9vcihEZWNpbWFsKCcwJyksIERlY2ltYWwoJzEnKSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfb3IoRGVjaW1hbCgnMScpLCBEZWNpbWFsKCcwJykpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX29yKERlY2ltYWwoJzEnKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJzEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9vcihEZWNpbWFsKCcxMTAwJyksIERlY2ltYWwoJzEwMTAnKSkKICAgICAgICBEZWNpbWFsKCcxMTEwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfb3IoRGVjaW1hbCgnMTExMCcpLCBEZWNpbWFsKCcxMCcpKQogICAgICAgIERlY2ltYWwoJzExMTAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF9vcigxMTAsIDExMDEpCiAgICAgICAgRGVjaW1hbCgnMTExMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX29yKERlY2ltYWwoMTEwKSwgMTEwMSkKICAgICAgICBEZWNpbWFsKCcxMTExJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfb3IoMTEwLCBEZWNpbWFsKDExMDEpKQogICAgICAgIERlY2ltYWwoJzExMTEnKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicAAABSZgEAACgDAAAAUh0AAABSFAEAAFJiAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UmYBAAAAEgAAcwQAAAAAGBIBYwMAAAADAAAABAAAAEMAAABzJQAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAHwCAGQCAHwAAIMBAVMoAwAAAHOYAwAAQXBwbGllcyB0aGUgbG9naWNhbCBvcGVyYXRpb24gJ3hvcicgYmV0d2VlbiBlYWNoIG9wZXJhbmQncyBkaWdpdHMuCgogICAgICAgIFRoZSBvcGVyYW5kcyBtdXN0IGJlIGJvdGggbG9naWNhbCBudW1iZXJzLgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfeG9yKERlY2ltYWwoJzAnKSwgRGVjaW1hbCgnMCcpKQogICAgICAgIERlY2ltYWwoJzAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF94b3IoRGVjaW1hbCgnMCcpLCBEZWNpbWFsKCcxJykpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5sb2dpY2FsX3hvcihEZWNpbWFsKCcxJyksIERlY2ltYWwoJzAnKSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfeG9yKERlY2ltYWwoJzEnKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJzAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubG9naWNhbF94b3IoRGVjaW1hbCgnMTEwMCcpLCBEZWNpbWFsKCcxMDEwJykpCiAgICAgICAgRGVjaW1hbCgnMTEwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfeG9yKERlY2ltYWwoJzExMTEnKSwgRGVjaW1hbCgnMTAnKSkKICAgICAgICBEZWNpbWFsKCcxMTAxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfeG9yKDExMCwgMTEwMSkKICAgICAgICBEZWNpbWFsKCcxMDExJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfeG9yKERlY2ltYWwoMTEwKSwgMTEwMSkKICAgICAgICBEZWNpbWFsKCcxMDExJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LmxvZ2ljYWxfeG9yKDExMCwgRGVjaW1hbCgxMTAxKSkKICAgICAgICBEZWNpbWFsKCcxMDExJykKICAgICAgICBSlQAAAFIeAAAAKAMAAABSjQAAAFInAAAAUmQBAAAoAwAAAFIdAAAAUhQBAABSYgEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVJkAQAAGxIAAHMEAAAAABgSAWMDAAAAAwAAAAQAAABDAAAAcyUAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgB8AgBkAgB8AACDAQFTKAMAAABzswMAAG1heCBjb21wYXJlcyB0d28gdmFsdWVzIG51bWVyaWNhbGx5IGFuZCByZXR1cm5zIHRoZSBtYXhpbXVtLgoKICAgICAgICBJZiBlaXRoZXIgb3BlcmFuZCBpcyBhIE5hTiB0aGVuIHRoZSBnZW5lcmFsIHJ1bGVzIGFwcGx5LgogICAgICAgIE90aGVyd2lzZSwgdGhlIG9wZXJhbmRzIGFyZSBjb21wYXJlZCBhcyB0aG91Z2ggYnkgdGhlIGNvbXBhcmUKICAgICAgICBvcGVyYXRpb24uICBJZiB0aGV5IGFyZSBudW1lcmljYWxseSBlcXVhbCB0aGVuIHRoZSBsZWZ0LWhhbmQgb3BlcmFuZAogICAgICAgIGlzIGNob3NlbiBhcyB0aGUgcmVzdWx0LiAgT3RoZXJ3aXNlIHRoZSBtYXhpbXVtIChjbG9zZXIgdG8gcG9zaXRpdmUKICAgICAgICBpbmZpbml0eSkgb2YgdGhlIHR3byBvcGVyYW5kcyBpcyBjaG9zZW4gYXMgdGhlIHJlc3VsdC4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5tYXgoRGVjaW1hbCgnMycpLCBEZWNpbWFsKCcyJykpCiAgICAgICAgRGVjaW1hbCgnMycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5tYXgoRGVjaW1hbCgnLTEwJyksIERlY2ltYWwoJzMnKSkKICAgICAgICBEZWNpbWFsKCczJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0Lm1heChEZWNpbWFsKCcxLjAnKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJzEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubWF4KERlY2ltYWwoJzcnKSwgRGVjaW1hbCgnTmFOJykpCiAgICAgICAgRGVjaW1hbCgnNycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5tYXgoMSwgMikKICAgICAgICBEZWNpbWFsKCcyJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0Lm1heChEZWNpbWFsKDEpLCAyKQogICAgICAgIERlY2ltYWwoJzInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubWF4KDEsIERlY2lt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AAAAKAMAAABSjQAAAFInAAAAUmgBAAAoAwAAAFIdAAAAUhQBAABSYgEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVJoAQAAfRIAAHMEAAAAAA4SAWMCAAAAAgAAAAQAAABDAAAAcyIAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgBkAgB8AACDAAFTKAMAAABzzgEAAE1pbnVzIGNvcnJlc3BvbmRzIHRvIHVuYXJ5IHByZWZpeCBtaW51cyBpbiBQeXRob24uCgogICAgICAgIFRoZSBvcGVyYXRpb24gaXMgZXZhbHVhdGVkIHVzaW5nIHRoZSBzYW1lIHJ1bGVzIGFzIHN1YnRyYWN0OyB0aGUKICAgICAgICBvcGVyYXRpb24gbWludXMoYSkgaXMgY2FsY3VsYXRlZCBhcyBzdWJ0cmFjdCgnMCcsIGEpIHdoZXJlIHRoZSAnMCcKICAgICAgICBoYXMgdGhlIHNhbWUgZXhwb25lbnQgYXMgdGhlIG9wZXJhbmQuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubWludXMoRGVjaW1hbCgnMS4zJykpCiAgICAgICAgRGVjaW1hbCgnLTEuMycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5taW51cyhEZWNpbWFsKCctMS4zJykpCiAgICAgICAgRGVjaW1hbCgnMS4zJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0Lm1pbnVzKDEpCiAgICAgICAgRGVjaW1hbCgnLTEnKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicAAABSsAAAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQFAAAAbWlu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AGQCAHwAAIMAAVMoAwAAAHOzAgAAbm9ybWFsaXplIHJlZHVjZXMgYW4gb3BlcmFuZCB0byBpdHMgc2ltcGxlc3QgZm9ybS4KCiAgICAgICAgRXNzZW50aWFsbHkgYSBwbHVzIG9wZXJhdGlvbiB3aXRoIGFsbCB0cmFpbGluZyB6ZXJvcyByZW1vdmVkIGZyb20gdGhlCiAgICAgICAgcmVzdWx0LgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0Lm5vcm1hbGl6ZShEZWNpbWFsKCcyLjEnKSkKICAgICAgICBEZWNpbWFsKCcyLjEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubm9ybWFsaXplKERlY2ltYWwoJy0yLjAnKSkKICAgICAgICBEZWNpbWFsKCctMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5ub3JtYWxpemUoRGVjaW1hbCgnMS4yMDAnKSkKICAgICAgICBEZWNpbWFsKCcxLjInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubm9ybWFsaXplKERlY2ltYWwoJy0xMjAnKSkKICAgICAgICBEZWNpbWFsKCctMS4yRSsyJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0Lm5vcm1hbGl6ZShEZWNpbWFsKCcxMjAuMDAnKSkKICAgICAgICBEZWNpbWFsKCcxLjJFKzInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQubm9ybWFsaXplKERlY2ltYWwoJzAuMDAnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0Lm5vcm1hbGl6ZSg2KQogICAgICAgIERlY2ltYWwoJzYnKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicAAABSKQEAACgCAAAAUh0AAABSFAEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIpAQAAChMAAHMEAAAAABUSAWMCAAAAAgAAAAQAAABDAAAAcyIAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgBkAgB8AACDAAFTKAMAAABz5AQAAFJldHVybnMgYW4gaW5kaWNhdGlvbiBvZiB0aGUgY2xhc3Mgb2YgdGhlIG9wZXJhbmQuCgogICAgICAgIFRoZSBjbGFzcyBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZyBzdHJpbmdzOgogICAgICAgICAgLXNOYU4KICAgICAgICAgIC1OYU4KICAgICAgICAgIC1JbmZpbml0eQogICAgICAgICAgLU5vcm1hbAogICAgICAgICAgLVN1Ym5vcm1hbAogICAgICAgICAgLVplcm8KICAgICAgICAgICtaZXJvCiAgICAgICAgICArU3Vibm9ybWFsCiAgICAgICAgICArTm9ybWFsCiAgICAgICAgICArSW5maW5pdHkKCiAgICAgICAgPj4+IGMgPSBDb250ZXh0KEV4dGVuZGVkQ29udGV4dCkKICAgICAgICA+Pj4gYy5FbWluID0gLTk5OQogICAgICAgID4+PiBjLkVtYXggPSA5OTkKICAgICAgICA+Pj4gYy5udW1iZXJfY2xhc3MoRGVjaW1hbCgnSW5maW5pdHknKSkKICAgICAgICAnK0luZmluaXR5JwogICAgICAgID4+PiBjLm51bWJlcl9jbGFzcyhEZWNpbWFsKCcxRS0xMCcpKQogICAgICAgICcrTm9ybWFsJwogICAgICAgID4+PiBjLm51bWJlcl9jbGFzcyhEZWNpbWFsKCcyLjUwJykpCiAgICAgICAgJytOb3JtYWwnCiAgICAgICAgPj4+IGMubnVtYmVyX2NsYXNzKERlY2ltYWwoJzAuMUUtOTk5JykpCiAgICAgICAgJytTdWJub3JtYWwnCiAgICAgICAgPj4+IGMubnVtYmVyX2NsYXNzKERlY2ltYWwoJzAnKSkKICAgICAgICAnK1plcm8nCiAgICAgICAgPj4+IGMubnVtYmVyX2NsYXNzKERlY2ltYWwoJy0wJykpCiAgICAgICAgJy1aZXJvJwogICAgICAgID4+PiBjLm51bWJlcl9jbGFzcyhEZWNpbWFsKCctMC4xRS05OTknKSkKICAgICAgICAnLVN1Ym5vcm1hbCcKICAgICAg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cmd1bWVudCBmb3JtLCB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9ucyBvbiB0aGUKICAgICAgICBhcmd1bWVudHMgaG9sZDoKCiAgICAgICAgIC0gYWxsIHRocmVlIGFyZ3VtZW50cyBtdXN0IGJlIGludGVncmFsCiAgICAgICAgIC0gYiBtdXN0IGJlIG5vbm5lZ2F0aXZlCiAgICAgICAgIC0gYXQgbGVhc3Qgb25lIG9mIGEgb3IgYiBtdXN0IGJlIG5vbnplcm8KICAgICAgICAgLSBtb2R1bG8gbXVzdCBiZSBub256ZXJvIGFuZCBoYXZlIGF0IG1vc3QgJ3ByZWNpc2lvbicgZGlnaXRzCgogICAgICAgIFRoZSByZXN1bHQgb2YgcG93KGEsIGIsIG1vZHVsbykgaXMgaWRlbnRpY2FsIHRvIHRoZSByZXN1bHQKICAgICAgICB0aGF0IHdvdWxkIGJlIG9idGFpbmVkIGJ5IGNvbXB1dGluZyAoYSoqYikgJSBtb2R1bG8gd2l0aAogICAgICAgIHVuYm91bmRlZCBwcmVjaXNpb24sIGJ1dCBpcyBjb21wdXRlZCBtb3JlIGVmZmljaWVudGx5LiAgSXQgaXMKICAgICAgICBhbHdheXMgZXhhY3QuCgogICAgICAgID4+PiBjID0gRXh0ZW5kZWRDb250ZXh0LmNvcHkoKQogICAgICAgID4+PiBjLkVtaW4gPSAtOTk5CiAgICAgICAgPj4+IGMuRW1heCA9IDk5OQogICAgICAgID4+PiBjLnBvd2VyKERlY2ltYWwoJzInKSwgRGVjaW1hbCgnMycpKQogICAgICAgIERlY2ltYWwoJzgnKQogICAgICAgID4+PiBjLnBvd2VyKERlY2ltYWwoJy0yJyksIERlY2ltYWwoJzMnKSkKICAgICAgICBEZWNpbWFsKCctOCcpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnMicpLCBEZWNpbWFsKCctMycpKQogICAgICAgIERlY2ltYWwoJzAuMTI1JykKICAgICAgICA+Pj4gYy5wb3dlcihEZWNpbWFsKCcxLjcnKSwgRGVjaW1hbCgnOCcpKQogICAgICAgIERlY2ltYWwoJzY5Ljc1NzU3NDQnKQogICAgICAgID4+PiBjLnBvd2VyKERlY2ltYWwoJzEwJyksIERlY2ltYWwoJzAuMzAxMDI5OTk2JykpCiAgICAgICAgRGVjaW1hbCgnMi4wMDAwMDAwMCcpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnSW5maW5pdHknKSwgRGVjaW1hbCgnLTEnKSkKICAgICAgICBEZWNpbWFsKCcwJykKICAgICAgICA+Pj4gYy5wb3dlcihEZWNpbWFsKCdJbmZpbml0eScpLCBEZWNpbWFsKCcwJykpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnSW5maW5pdHknKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJ0luZmluaXR5JykKICAgICAgICA+Pj4gYy5wb3dlcihEZWNpbWFsKCctSW5maW5pdHknKSwgRGVjaW1hbCgnLTEnKSkKICAgICAgICBEZWNpbWFsKCctMCcpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnLUluZmluaXR5JyksIERlY2ltYWwoJzAnKSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gYy5wb3dlcihEZWNpbWFsKCctSW5maW5pdHknKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJy1JbmZpbml0eScpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnLUluZmluaXR5JyksIERlY2ltYWwoJzInKSkKICAgICAgICBEZWNpbWFsKCdJbmZpbml0eScpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnMCcpLCBEZWNpbWFsKCcwJykpCiAgICAgICAgRGVjaW1hbCgnTmFOJykKCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnMycpLCBEZWNpbWFsKCc3JyksIERlY2ltYWwoJzE2JykpCiAgICAgICAgRGVjaW1hbCgnMTEnKQogICAgICAgID4+PiBjLnBvd2VyKERlY2ltYWwoJy0zJyksIERlY2ltYWwoJzcnKSwgRGVjaW1hbCgnMTYnKSkKICAgICAgICBEZWNpbWFsKCctMTEnKQogICAgICAgID4+PiBjLnBvd2VyKERlY2ltYWwoJy0zJyksIERlY2ltYWwoJzgnKSwgRGVjaW1hbCgnMTYnKSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gYy5wb3dlcihEZWNpbWFsKCczJyksIERlY2ltYWwoJzcnKSwgRGVjaW1hbCgnLTE2JykpCiAgICAgICAgRGVjaW1hbCgnMTEnKQogICAgICAgID4+PiBjLnBvd2VyKERlY2ltYWwoJzIzRTEyMzQ1JyksIERlY2ltYWwoJzY3RTE4OScpLCBEZWNpbWFsKCcxMjM0NTY3ODknKSkKICAgICAgICBEZWNpbWFsKCcxMTcyOTgzMCcpCiAgICAgICAgPj4+IGMucG93ZXIoRGVjaW1hbCgnLTAnKSwgRGVjaW1hbCgnMTcnKSwgRGVjaW1hbCgnMTcyOScpKQogICAgICAgIERlY2ltYWwoJy0wJykKICAgICAgICA+Pj4gYy5wb3dlcihEZWNpbWFsKCctMjMnKSwgRGVjaW1hbCgnMCcpLCBEZWNpbWFsKCc2NTUzNycpKQogICAgICAgIERlY2ltYWwoJzEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucG93ZXIoNywgNykKICAgICAgICBEZWNpbWFsKCc4MjM1NDMnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucG93ZXIoRGVjaW1hbCg3KSwgNykKICAgICAgICBEZWNpbWFsKCc4MjM1NDMnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucG93ZXIoNywgRGVjaW1hbCg3KSwgMikKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICBSlQAAAFIeAAAAcx8AAABVbmFibGUgdG8gY29udmVydCAlcyB0byBEZWNpbWFsTigFAAAAUo0AAABSJwAAAFIlAQAAUo4AAABSZgAAACgFAAAAUh0AAABSFAEAAFJiAQAAUv8AAABSywAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weXQFAAAAcG93ZXJlEwAAcwoAAAAASRIBGAEMARMCYwMAAAADAAAABAAAAEMAAABzJQAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAHwCAGQCAHwAAIMBAVMoAwAAAHMVCgAAUmV0dXJucyBhIHZhbHVlIGVxdWFsIHRvICdhJyAocm91bmRlZCksIGhhdmluZyB0aGUgZXhwb25lbnQgb2YgJ2InLgoKICAgICAgICBUaGUgY29lZmZpY2llbnQgb2YgdGhlIHJlc3VsdCBpcyBkZXJpdmVkIGZyb20gdGhhdCBvZiB0aGUgbGVmdC1oYW5kCiAgICAgICAgb3BlcmFuZC4gIEl0IG1heSBiZSByb3VuZGVkIHVzaW5nIHRoZSBjdXJyZW50IHJvdW5kaW5nIHNldHRpbmcgKGlmIHRoZQogICAgICAgIGV4cG9uZW50IGlzIGJlaW5nIGluY3JlYXNlZCksIG11bHRpcGxpZWQgYnkgYSBwb3NpdGl2ZSBwb3dlciBvZiB0ZW4gKGlmCiAgICAgICAgdGhlIGV4cG9uZW50IGlzIGJlaW5nIGRlY3JlYXNlZCksIG9yIGlzIHVuY2hhbmdlZCAoaWYgdGhlIGV4cG9uZW50IGlzCiAgICAgICAgYWxyZWFkeSBlcXVhbCB0byB0aGF0IG9mIHRoZSByaWdodC1oYW5kIG9wZXJhbmQpLgoKICAgICAgICBVbmxpa2Ugb3RoZXIgb3BlcmF0aW9ucywgaWYgdGhlIGxlbmd0aCBvZiB0aGUgY29lZmZpY2llbnQgYWZ0ZXIgdGhlCiAgICAgICAgcXVhbnRpemUgb3BlcmF0aW9uIHdvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwcmVjaXNpb24gdGhlbiBhbiBJbnZhbGlkCiAgICAgICAgb3BlcmF0aW9uIGNvbmRpdGlvbiBpcyByYWlzZWQuICBUaGlzIGd1YXJhbnRlZXMgdGhhdCwgdW5sZXNzIHRoZXJlIGlzCiAgICAgICAgYW4gZXJyb3IgY29uZGl0aW9uLCB0aGUgZXhwb25lbnQgb2YgdGhlIHJlc3VsdCBvZiBhIHF1YW50aXplIGlzIGFsd2F5cwogICAgICAgIGVxdWFsIHRvIHRoYXQgb2YgdGhlIHJpZ2h0LWhhbmQgb3BlcmFuZC4KCiAgICAgICAgQWxzbyB1bmxpa2Ugb3RoZXIgb3BlcmF0aW9ucywgcXVhbnRpemUgd2lsbCBuZXZlciByYWlzZSBVbmRlcmZsb3csIGV2ZW4KICAgICAgICBpZiB0aGUgcmVzdWx0IGlzIHN1Ym5vcm1hbCBhbmQgaW5leGFjdC4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyLjE3JyksIERlY2ltYWwoJzAuMDAxJykpCiAgICAgICAgRGVjaW1hbCgnMi4xNzAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucXVhbnRpemUoRGVjaW1hbCgnMi4xNycpLCBEZWNpbWFsKCcwLjAxJykpCiAgICAgICAgRGVjaW1hbCgnMi4xNycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyLjE3JyksIERlY2ltYWwoJzAuMScpKQogICAgICAgIERlY2ltYWwoJzIuMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyLjE3JyksIERlY2ltYWwoJzFlKzAnKSkKICAgICAgICBEZWNpbWFsKCcyJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnF1YW50aXplKERlY2ltYWwoJzIuMTcnKSwgRGVjaW1hbCgnMWUrMScpKQogICAgICAgIERlY2ltYWwoJzBFKzEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucXVhbnRpemUoRGVjaW1hbCgnLUluZicpLCBEZWNpbWFsKCdJbmZpbml0eScpKQogICAgICAgIERlY2ltYWwoJy1JbmZpbml0eScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyJyksIERlY2ltYWwoJ0luZmluaXR5JykpCiAgICAgICAgRGVjaW1hbCgnTmFOJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnF1YW50aXplKERlY2ltYWwoJy0wLjEnKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJy0wJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnF1YW50aXplKERlY2ltYWwoJy0wJyksIERlY2ltYWwoJzFlKzUnKSkKICAgICAgICBEZWNpbWFsKCctMEUrNScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcrMzUyMzY0NTAuNicpLCBEZWNpbWFsKCcxZS0yJykpCiAgICAgICAgRGVjaW1hbCgnTmFOJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnF1YW50aXplKERlY2ltYWwoJy0zNTIzNjQ1MC42JyksIERlY2ltYWwoJzFlLTInKSkKICAgICAgICBEZWNpbWFsKCdOYU4nKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucXVhbnRpemUoRGVjaW1hbCgnMjE3JyksIERlY2ltYWwoJzFlLTEnKSkKICAgICAgICBEZWNpbWFsKCcyMTcuMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyMTcnKSwgRGVjaW1hbCgnMWUtMCcpKQogICAgICAgIERlY2ltYWwoJzIxNycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyMTcnKSwgRGVjaW1hbCgnMWUrMScpKQogICAgICAgIERlY2ltYWwoJzIuMkUrMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZShEZWNpbWFsKCcyMTcnKSwgRGVjaW1hbCgnMWUrMicpKQogICAgICAgIERlY2ltYWwoJzJFKzInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucXVhbnRpemUoMSwgMikKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnF1YW50aXplKERlY2ltYWwoMSksIDIpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5xdWFudGl6ZSgxLCBEZWNpbWFsKDIpKQogICAgICAgIERlY2ltYWwoJzEnKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicAAABSLAEAACgDAAAAUh0AAABSFAEAAFJiAQAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UiwBAAC1EwAAcwQAAAAANxIBYwEAAAABAAAAAgAAAEMAAABzCgAAAHQAAGQBAIMBAFMoAgAAAHNrAAAASnVzdCByZXR1cm5zIDEwLCBhcyB0aGlzIGlzIERlY2ltYWwsIDopCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucmFkaXgoKQogICAgICAgIERlY2ltYWwoJzEwJykKICAgICAgICBpCgAAACgBAAAAUgAAAAAoAQAAAFIdAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UnEBAADvEwAAcwIAAAAABmMDAAAABAAAAAQAAABDAAAAc04AAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgB8AgBkAgB8AACDAQF9AwB8AwB0AwBrCAByRgB0BABkAwB8AgAWgwEAggEAbgQAfAMAU2QEAFMoBQAAAHMWBQAAUmV0dXJucyB0aGUgcmVtYWluZGVyIGZyb20gaW50ZWdlciBkaXZpc2lvbi4KCiAgICAgICAgVGhlIHJlc3VsdCBpcyB0aGUgcmVzaWR1ZSBvZiB0aGUgZGl2aWRlbmQgYWZ0ZXIgdGhlIG9wZXJhdGlvbiBvZgogICAgICAgIGNhbGN1bGF0aW5nIGludGVnZXIgZGl2aXNpb24gYXMgZGVzY3JpYmVkIGZvciBkaXZpZGUtaW50ZWdlciwgcm91bmRlZAogICAgICAgIHRvIHByZWNpc2lvbiBkaWdpdHMgaWYgbmVjZXNzYXJ5LiAgVGhlIHNpZ24gb2YgdGhlIHJlc3VsdCwgaWYKICAgICAgICBub24temVybywgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgb3JpZ2luYWwgZGl2aWRlbmQuCgogICAgICAgIFRoaXMgb3BlcmF0aW9uIHdpbGwgZmFpbCB1bmRlciB0aGUgc2FtZSBjb25kaXRpb25zIGFzIGludGVnZXIgZGl2aXNpb24KICAgICAgICAodGhhdCBpcywgaWYgaW50ZWdlciBkaXZpc2lvbiBvbiB0aGUgc2FtZSB0d28gb3BlcmFuZHMgd291bGQgZmFpbCwgdGhlCiAgICAgICAgcmVtYWluZGVyIGNhbm5vdCBiZSBjYWxjdWxhdGVkKS4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXIoRGVjaW1hbCgnMi4xJyksIERlY2ltYWwoJzMnKSkKICAgICAgICBEZWNpbWFsKCcyLjEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucmVtYWluZGVyKERlY2ltYWwoJzEwJyksIERlY2ltYWwoJzMnKSkKICAgICAgICBEZWNpbWFsKCcxJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnJlbWFpbmRlcihEZWNpbWFsKCctMTAnKSwgRGVjaW1hbCgnMycpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnJlbWFpbmRlcihEZWNpbWFsKCcxMC4yJyksIERlY2ltYWwoJzEnKSkKICAgICAgICBEZWNpbWFsKCcwLjInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucmVtYWluZGVyKERlY2ltYWwoJzEwJyksIERlY2ltYWwoJzAuMycpKQogICAgICAgIERlY2ltYWwoJzAuMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXIoRGVjaW1hbCgnMy42JyksIERlY2ltYWwoJzEuMycpKQogICAgICAgIERlY2ltYWwoJzEuMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXIoMjIsIDYpCiAgICAgICAgRGVjaW1hbCgnNCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXIoRGVjaW1hbCgyMiksIDYpCiAgICAgICAgRGVjaW1hbCgnNCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXIoMjIsIERlY2ltYWwoNikpCiAgICAgICAgRGVjaW1hbCgnNCcpCiAgICAgICAgUpUAAABSHgAAAHMfAAAAVW5hYmxlIHRvIGNvbnZlcnQgJXMgdG8gRGVjaW1hbE4oBQAAAFKNAAAAUicAAABS0QAAAFKOAAAAUmYAAAAoBAAAAFIdAAAAUhQBAABSYgEAAFLLAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9kZWNpbWFsLnB5UsYAAAD3EwAAcwoAAAAAHxIBFQEMARMCYwMAAAADAAAABAAAAEMAAABzJQAAAHQAAHwBAGQBAHQBAIMBAX0BAHwBAGoCAHwCAGQCAHwAAIMBAVMoAwAAAHNHBQAAUmV0dXJucyB0byBiZSAiYSAtIGIgKiBuIiwgd2hlcmUgbiBpcyB0aGUgaW50ZWdlciBuZWFyZXN0IHRoZSBleGFjdAogICAgICAgIHZhbHVlIG9mICJ4IC8gYiIgKGlmIHR3byBpbnRlZ2VycyBhcmUgZXF1YWxseSBuZWFyIHRoZW4gdGhlIGV2ZW4gb25lCiAgICAgICAgaXMgY2hvc2VuKS4gIElmIHRoZSByZXN1bHQgaXMgZXF1YWwgdG8gMCB0aGVuIGl0cyBzaWduIHdpbGwgYmUgdGhlCiAgICAgICAgc2lnbiBvZiBhLgoKICAgICAgICBUaGlzIG9wZXJhdGlvbiB3aWxsIGZhaWwgdW5kZXIgdGhlIHNhbWUgY29uZGl0aW9ucyBhcyBpbnRlZ2VyIGRpdmlzaW9uCiAgICAgICAgKHRoYXQgaXMsIGlmIGludGVnZXIgZGl2aXNpb24gb24gdGhlIHNhbWUgdHdvIG9wZXJhbmRzIHdvdWxkIGZhaWwsIHRoZQogICAgICAgIHJlbWFpbmRlciBjYW5ub3QgYmUgY2FsY3VsYXRlZCkuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucmVtYWluZGVyX25lYXIoRGVjaW1hbCgnMi4xJyksIERlY2ltYWwoJzMnKSkKICAgICAgICBEZWNpbWFsKCctMC45JykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnJlbWFpbmRlcl9uZWFyKERlY2ltYWwoJzEwJyksIERlY2ltYWwoJzYnKSkKICAgICAgICBEZWNpbWFsKCctMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXJfbmVhcihEZWNpbWFsKCcxMCcpLCBEZWNpbWFsKCczJykpCiAgICAgICAgRGVjaW1hbCgnMScpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXJfbmVhcihEZWNpbWFsKCctMTAnKSwgRGVjaW1hbCgnMycpKQogICAgICAgIERlY2ltYWwoJy0xJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnJlbWFpbmRlcl9uZWFyKERlY2ltYWwoJzEwLjInKSwgRGVjaW1hbCgnMScpKQogICAgICAgIERlY2ltYWwoJzAuMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXJfbmVhcihEZWNpbWFsKCcxMCcpLCBEZWNpbWFsKCcwLjMnKSkKICAgICAgICBEZWNpbWFsKCcwLjEnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucmVtYWluZGVyX25lYXIoRGVjaW1hbCgnMy42JyksIERlY2ltYWwoJzEuMycpKQogICAgICAgIERlY2ltYWwoJy0wLjMnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQucmVtYWluZGVyX25lYXIoMywgMTEpCiAgICAgICAgRGVjaW1hbCgnMycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5yZW1haW5kZXJfbmVhcihEZWNpbWFsKDMpLCAxMSkKICAgICAgICBEZWNpbWFsKCczJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnJlbWFpbmRlcl9uZWFyKDMsIERlY2ltYWwoMTEpKQogICAgICAgIERlY2ltYWwoJzMnKQogICAgICAgIFKVAAAAUh4AAAAoAwAAAFKNAAAAUicA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dWFudHVtKERlY2ltYWwoJzIuMTcnKSwgRGVjaW1hbCgnMC4wMDEnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuc2FtZV9xdWFudHVtKERlY2ltYWwoJzIuMTcnKSwgRGVjaW1hbCgnMC4wMScpKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnNhbWVfcXVhbnR1bShEZWNpbWFsKCcyLjE3JyksIERlY2ltYWwoJzEnKSkKICAgICAgICBGYWxzZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuc2FtZV9xdWFudHVtKERlY2ltYWwoJ0luZicpLCBEZWNpbWFsKCctSW5mJykpCiAgICAgICAgVHJ1ZQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuc2FtZV9xdWFudHVtKDEwMDAwLCAtMSkKICAgICAgICBUcnVlCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zYW1lX3F1YW50dW0oRGVjaW1hbCgxMDAwMCksIC0xKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnNhbWVfcXVhbnR1bSgxMDAwMCwgRGVjaW1hbCgtMSkpCiAgICAgICAgVHJ1ZQogICAgICAgIFKVAAAAKAMAAABSjQAAAFInAAAAUi4BAAAoAwAAAFIdAAAAUhQBAABSYgEAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvZGVjaW1hbC5weVIuAQAAXBQAAHMEAAAAABUSAWMDAAAAAwAAAAQAAABDAAAAcyUAAAB0AAB8AQBkAQB0AQCDAQF9AQB8AQBqAgB8AgBkAgB8AACDAQFTKAMAAABzMwIAAFJldHVybnMgdGhlIGZpcnN0IG9wZXJhbmQgYWZ0ZXIgYWRkaW5nIHRoZSBzZWNvbmQgdmFsdWUgaXRzIGV4cC4KCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zY2FsZWIoRGVjaW1hbCgnNy41MCcpLCBEZWNpbWFsKCctMicpKQogICAgICAgIERlY2ltYWwoJzAuMDc1MCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zY2FsZWIoRGVjaW1hbCgnNy41MCcpLCBEZWNpbWFsKCcwJykpCiAgICAgICAgRGVjaW1hbCgnNy41MCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zY2FsZWIoRGVjaW1hbCgnNy41MCcpLCBEZWNpbWFsKCczJykpCiAgICAgICAgRGVjaW1hbCgnNy41MEUrMycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zY2FsZWIoMSwgNCkKICAgICAgICBEZWNpbWFsKCcxRSs0JykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnNjYWxlYihEZWNpbWFsKDEpLCA0KQogICAgICAgIERlY2ltYWwoJzFFKzQnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuc2NhbGViKDEsIERlY2ltYWwoNCkpCiAgICAgICAgRGVjaW1hbCgnMUUrNCcpCiAgICAgICAgUpUAAABSHgAAACgDAAAAUo0AAABSJwAAAFJ5AQAAKAMAAABSHQAAAFIUAQAAUmIBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSeQEAAHQUAABzBAAAAAAQEgFjAwAAAAMAAAAEAAAAQwAAAHMlAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAfAIAZAIAfAAAgwEBUygDAAAAc3sEAABSZXR1cm5zIGEgc2hpZnRlZCBjb3B5IG9mIGEsIGIgdGltZXMuCgogICAgICAgIFRoZSBjb2VmZmljaWVudCBvZiB0aGUgcmVzdWx0IGlzIGEgc2hpZnRlZCBjb3B5IG9mIHRoZSBkaWdpdHMKICAgICAgICBpbiB0aGUgY29lZmZpY2llbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQuICBUaGUgbnVtYmVyIG9mIHBsYWNlcwogICAgICAgIHRvIHNoaWZ0IGlzIHRha2VuIGZyb20gdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBzZWNvbmQgb3BlcmFuZCwKICAgICAgICB3aXRoIHRoZSBzaGlmdCBiZWluZyB0byB0aGUgbGVmdCBpZiB0aGUgc2Vjb25kIG9wZXJhbmQgaXMKICAgICAgICBwb3NpdGl2ZSBvciB0byB0aGUgcmlnaHQgb3RoZXJ3aXNlLiAgRGlnaXRzIHNoaWZ0ZWQgaW50byB0aGUKICAgICAgICBjb2VmZmljaWVudCBhcmUgemVyb3MuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuc2hpZnQoRGVjaW1hbCgnMzQnKSwgRGVjaW1hbCgnOCcpKQogICAgICAgIERlY2ltYWwoJzQwMDAwMDAwMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zaGlmdChEZWNpbWFsKCcxMicpLCBEZWNpbWFsKCc5JykpCiAgICAgICAgRGVjaW1hbCgnMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zaGlmdChEZWNpbWFsKCcxMjM0NTY3ODknKSwgRGVjaW1hbCgnLTInKSkKICAgICAgICBEZWNpbWFsKCcxMjM0NTY3JykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnNoaWZ0KERlY2ltYWwoJzEyMzQ1Njc4OScpLCBEZWNpbWFsKCcwJykpCiAgICAgICAgRGVjaW1hbCgnMTIzNDU2Nzg5JykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnNoaWZ0KERlY2ltYWwoJzEyMzQ1Njc4OScpLCBEZWNpbWFsKCcrMicpKQogICAgICAgIERlY2ltYWwoJzM0NTY3ODkwMCcpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5zaGlmdCg4ODg4ODg4OCwgMikKICAgICAgICBEZWNpbWFsKCc4ODg4ODg4MDAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuc2hpZnQoRGVjaW1hbCg4ODg4ODg4OCksIDIpCiAgICAgICAgRGVjaW1hbCgnODg4ODg4ODAwJykKICAgICAgICA+Pj4gRXh0ZW5k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ZGUgaXMgdGFrZW4gZnJvbSB0aGUKICAgICAgICBjb250ZXh0LgoKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnRvX2ludGVncmFsX2V4YWN0KERlY2ltYWwoJzIuMScpKQogICAgICAgIERlY2ltYWwoJzInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfZXhhY3QoRGVjaW1hbCgnMTAwJykpCiAgICAgICAgRGVjaW1hbCgnMTAwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnRvX2ludGVncmFsX2V4YWN0KERlY2ltYWwoJzEwMC4wJykpCiAgICAgICAgRGVjaW1hbCgnMTAwJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnRvX2ludGVncmFsX2V4YWN0KERlY2ltYWwoJzEwMS41JykpCiAgICAgICAgRGVjaW1hbCgnMTAyJykKICAgICAgICA+Pj4gRXh0ZW5kZWRDb250ZXh0LnRvX2ludGVncmFsX2V4YWN0KERlY2ltYWwoJy0xMDEuNScpKQogICAgICAgIERlY2ltYWwoJy0xMDInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfZXhhY3QoRGVjaW1hbCgnMTBFKzUnKSkKICAgICAgICBEZWNpbWFsKCcxLjBFKzYnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfZXhhY3QoRGVjaW1hbCgnNy44OUUrNzcnKSkKICAgICAgICBEZWNpbWFsKCc3Ljg5RSs3NycpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC50b19pbnRlZ3JhbF9leGFjdChEZWNpbWFsKCctSW5mJykpCiAgICAgICAgRGVjaW1hbCgnLUluZmluaXR5JykKICAgICAgICBSlQAAAFIeAAAAKAMAAABSjQAAAFInAAAAUjIBAAAoAgAAAFIdAAAAUhQBAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSMgEAAOwUAABzBAAAAAAbEgFjAgAAAAIAAAAEAAAAQwAAAHMiAAAAdAAAfAEAZAEAdAEAgwEBfQEAfAEAagIAZAIAfAAAgwABUygDAAAAc0wEAABSb3VuZHMgdG8gYW4gaW50ZWdlci4KCiAgICAgICAgV2hlbiB0aGUgb3BlcmFuZCBoYXMgYSBuZWdhdGl2ZSBleHBvbmVudCwgdGhlIHJlc3VsdCBpcyB0aGUgc2FtZQogICAgICAgIGFzIHVzaW5nIHRoZSBxdWFudGl6ZSgpIG9wZXJhdGlvbiB1c2luZyB0aGUgZ2l2ZW4gb3BlcmFuZCBhcyB0aGUKICAgICAgICBsZWZ0LWhhbmQtb3BlcmFuZCwgMUUrMCBhcyB0aGUgcmlnaHQtaGFuZC1vcGVyYW5kLCBhbmQgdGhlIHByZWNpc2lvbgogICAgICAgIG9mIHRoZSBvcGVyYW5kIGFzIHRoZSBwcmVjaXNpb24gc2V0dGluZywgZXhjZXB0IHRoYXQgbm8gZmxhZ3Mgd2lsbAogICAgICAgIGJlIHNldC4gIFRoZSByb3VuZGluZyBtb2RlIGlzIHRha2VuIGZyb20gdGhlIGNvbnRleHQuCgogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfdmFsdWUoRGVjaW1hbCgnMi4xJykpCiAgICAgICAgRGVjaW1hbCgnMicpCiAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC50b19pbnRlZ3JhbF92YWx1ZShEZWNpbWFsKCcxMDAnKSkKICAgICAgICBEZWNpbWFsKCcxMDAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfdmFsdWUoRGVjaW1hbCgnMTAwLjAnKSkKICAgICAgICBEZWNpbWFsKCcxMDAnKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfdmFsdWUoRGVjaW1hbCgnMTAxLjUnKSkKICAgICAgICBEZWNpbWFsKCcxMDInKQogICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQudG9faW50ZWdyYWxfdmFsdWUoRGVjaW1hbCgnLTEwMS41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AAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2RlY2ltYWwucHlSjQAAAMsWAABzEgAAAAAIDwEEARUBCgEVAQ0CBgETAVIzAAAAaRwAAABSMgAAAFIbAQAAUhwBAABSNAAAAGn/yZo7UioBAABpATZlxFKnAAAAaQkAAABztwIAACAgICAgICAgIyBBIG51bWVyaWMgc3RyaW5nIGNvbnNpc3RzIG9mOgojICAgIFxzKgogICAgKD9QPHNpZ24+Wy0rXSk/ICAgICAgICAgICAgICAjIGFuIG9wdGlvbmFsIHNpZ24sIGZvbGxvd2VkIGJ5IGVpdGhlci4uLgogICAgKAogICAgICAgICg/PVxkfFwuXGQpICAgICAgICAgICAgICAjIC4uLmEgbnVtYmVyICh3aXRoIGF0IGxlYXN0IG9uZSBkaWdpdCkKICAgICAgICAoP1A8aW50PlxkKikgICAgICAgICAgICAgIyBoYXZpbmcgYSAocG9zc2libHkgZW1wdHkpIGludGVnZXIgcGFydAogICAgICAgIChcLig/UDxmcmFjPlxkKikpPyAgICAgICAjIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIGZyYWN0aW9uYWwgcGFydAogICAgICAgIChFKD9QPGV4cD5bLStdP1xkKykpPyAgICAjIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIGV4cG9uZW50LCBvci4uLgogICAgfAogICAgICAgIEluZihpbml0eSk/ICAgICAgICAgICAgICAjIC4uLmFuIGluZmluaXR5LCBvci4uLgogICAgfAogICAgICAgICg/UDxzaWduYWw+cyk/ICAgICAgICAgICAjIC4uLmFuIChvcHRpb25hbGx5IHNpZ25hbGluZykKICAgICAgICBOYU4gICAgICAgICAgICAgICAgICAgICAgIyBOYU4KICAgICAgICAoP1A8ZGlhZz5cZCopICAgICAgICAgICAgIyB3aXRoIChwb3NzaWJseSBlbXB0eSkgZGlhZ25vc3RpYyBpbmZvLgogICAgKQojICAgIFxzKgogICAgXFoKcwMAAAAwKiRzBAAAADUwKiRzvAAAAFxBCig/OgogICAoP1A8ZmlsbD4uKT8KICAgKD9QPGFsaWduPls8Pj1eXSkKKT8KKD9QPHNpZ24+Wy0rIF0pPwooP1A8emVyb3BhZD4wKT8KKD9QPG1pbmltdW13aWR0aD4oPyEwKVxkKyk/Cig/UDx0aG91c2FuZHNfc2VwPiwpPwooPzpcLig/UDxwcmVjaXNpb24+MHwoPyEwKVxkKykpPwooP1A8dHlwZT5bZUVmRmdHbiVdKT8KXFoKYwIAAAAGAAAABwAAAEMAAABzPgIAAHQAAGoBAHwAAIMBAH0CAHwCAGQcAGsIAHIuAHQDAGQBAHwAABeDAQCCAQBuAAB8AgBqBACDAAB9AwB8AwBkAgAZfQQAfAMAZAMAGX0FAHwDAGQEABlkHABrCQB8AwBkBAA8fAMAZAQAGXKtAHwEAGQcAGsJAHKLAHQDAGQFAHwAABeDAQCCAQBuAAB8BQBkHABrCQByrQB0AwBkBgB8AAAXgwEAggEAca0AbgAAfAQAcLYAZAcAfAMAZAIAPHwFAHDGAGQIAHwDAGQDADx8AwBkCQAZZBwAawgAcuoAZAoAfAMAZAkAPG4AAHQFAHwDAGQLABlw+gBkDACDAQB8AwBkCwA8fAMAZA0AGWQcAGsJAHIrAXQFAHwDAGQNABmDAQB8AwBkDQA8bgAAfAMAZA0AGWQOAGsCAHJrAXwDAGQPABlkHABrCABzWwF8AwBkDwAZZBAAawYAcmsBZBEAfAMAZA0APHFrAW4AAHwDAGQPABlkEgBrAgBy8AFkEwB8AwBkDwA8fAEAZBwAawgAcqABdAYAagcAgwAAfQEAbgAAfAMAZBQAGWQcAGsJAHLDAXQDAGQVAHwAABeDAQCCAQBuAAB8AQBkFAAZfAMAZBQAPHwBAGQWABl8AwBkFgA8fAEAZBcAGXwDAGQXADxuNwB8AwBkFAAZZBwAawgAcg0CZBgAfAMAZBQAPG4AAGQZAGQOAGcCAHwDAGQWADxkGgB8AwBkFwA8dAgAfAAAdAkAgwIAfAMAZBsAPHwDAFMoHQAAAHMOAwAAUGFyc2UgYW5kIHZhbGlkYXRlIGEgZm9ybWF0IHNwZWNpZmllci4KCiAgICBUdXJucyBhIHN0YW5kYXJkIG51bWVyaWMgZm9ybWF0IHNwZWNpZmllciBpbnRvIGEgZGljdCwgd2l0aCB0aGUKICAgIGZvbGxvd2luZyBlbnRyaWVzOgoKICAgICAgZmlsbDogZmlsbCBjaGFyYWN0ZXIgdG8gcGFkIGZpZWxkIHRvIG1pbmltdW0gd2lkdGgKICAgICAgYWxpZ246IGFsaWdubWVudCB0eXBlLCBlaXRoZXIgJzwnLCAnPicsICc9JyBvciAnXicKICAgICAgc2lnbjogZWl0aGVyICcrJywgJy0nIG9yICcgJwogICAgICBtaW5pbXVtd2lkdGg6IG5vbm5lZ2F0aXZlIGludGVnZXIgZ2l2aW5nIG1pbmltdW0gd2lkdGgKICAgICAgemVyb3BhZDogYm9vbGVhbiwgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHBhZCB3aXRoIHplcm9zCiAgICAgIHRob3VzYW5kc19zZXA6IHN0cmluZyB0byB1c2UgYXMgdGhvdXNhbmRzIHNlcGFyYXRvciwgb3IgJycKICAgICAgZ3JvdXBpbmc6IGdyb3VwaW5nIGZvciB0aG91c2FuZHMgc2VwYXJhdG9ycywgaW4gZm9ybWF0CiAgICAgICAgdXNlZCBieSBsb2NhbGVjb252CiAgICAgIGRlY2ltYWxfcG9pbnQ6IHN0cmluZyB0byB1c2UgZm9yIGRlY2ltYWwgcG9pbnQKICAgICAgcHJlY2lzaW9uOiBub25uZWdhdGl2ZSBpbnRlZ2VyIGdpdmluZyBwcmVjaXNpb24sIG9yIE5vbmUKICAgICAgdHlwZTogb25lIG9mIHRoZSBjaGFyYWN0ZXJzICdlRWZGZ0clJywgb3IgTm9uZQogICAgICB1bmljb2RlOiBib29sZWFuIChhbHdheXMgVHJ1ZSBmb3IgUHl0aG9uIDMueCkKCiAgICBzGgAAAEludmFsaWQgZm9ybWF0IHNwZWNpZmllcjogdAQAAABmaWxsdAUAAABhbGlnbnQHAAAAemVyb3BhZHM3AAAARmlsbCBjaGFyYWN0ZXIgY29uZmxpY3RzIHdpdGggJzAnIGluIGZvcm1hdCBzcGVjaWZpZXI6IHMyAAAAQWxpZ25tZW50IGNvbmZsaWN0cyB3aXRoICcwJyBpbiBmb3JtYXQgc3BlY2lmaWVyOiB0AQAAACB0AQAAAD5SLQAA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