A/MNCmP5IVRjAAAAAAAAAAAJAAAAQAAAAHNgAgAAZAAAWgAAZAEAZAIAbAEAWgEAZQEAagIAZAMAawIAWgMAZAEAZAIAbAQAWgQAZAEAZAIAbAUAWgUAZAEAZAIAbAYAWgYAZAEAZAIAbAcAWgcAZAEAZAIAbAgAWggAZAEAZAIAbAkAWgkAZAQAZQoAZgEAZAUAhAAAgwAAWVoLAGUDAHLSAGQBAGQCAGwMAFoMAGQBAGQCAGwNAFoNAGQBAGQCAGwOAFoOAGQGAGYAAGQHAIQAAIMAAFlaDwBkCABmAABkCQCEAACDAABZWhAAbkUAZAEAZAIAbBEAWhEAZRIAZREAZAoAgwIAWhMAZAEAZAIAbBQAWhQAZAEAZAIAbBUAWhUAZRYAZREAZAsAZAwAgwMAWhcAZA0AZA4AZA8AZBAAZBEAZBIAZAQAZwcAWhgAZQMAcpoBZAEAZBMAbA4AbRkAWhkAbRoAWhoAbRsAWhsAbRwAWhwAbR0AWh0AbR4AWh4AbR8AWh8AbSAAWiAAAWUYAGohAGQUAGQVAGQWAGQXAGQYAGQZAGQaAGQbAGcIAIMBAAFuAAB5EwBlBABqIgBkHACDAQBaIwBXbg0AAQEBZB0AWiMAbgEAWGcAAFokAGQeAIQAAFolAGQBAFomAGQfAFonAGQgAIQAAFooAGQhAIQAAFopAGQiAIQAAFoqAGQjAIQAAForAGQkAIQAAFosAGQlAIQAAFotAGQNAGUuAGYBAGQmAIQAAIMAAFlaLwBkJwCEAABaMABkKACEAABaMQBlMgBkKQBrAgByXAJlAwByUgJlMQCDAAABbgcAZTAAgwAAAW4AAGQCAFMoKgAAAHObMAAAc3VicHJvY2VzcyAtIFN1YnByb2Nlc3NlcyB3aXRoIGFjY2Vzc2libGUgSS9PIHN0cmVhbXMKClRoaXMgbW9kdWxlIGFsbG93cyB5b3UgdG8gc3Bhd24gcHJvY2Vzc2VzLCBjb25uZWN0IHRvIHRoZWlyCmlucHV0L291dHB1dC9lcnJvciBwaXBlcywgYW5kIG9idGFpbiB0aGVpciByZXR1cm4gY29kZXMuICBUaGlzIG1vZHVsZQppbnRlbmRzIHRvIHJlcGxhY2Ugc2V2ZXJhbCBvdGhlciwgb2xkZXIgbW9kdWxlcyBhbmQgZnVuY3Rpb25zLCBsaWtlOgoKb3Muc3lzdGVtCm9zLnNwYXduKgpvcy5wb3BlbioKcG9wZW4yLioKY29tbWFuZHMuKgoKSW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSBzdWJwcm9jZXNzIG1vZHVsZSBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZXNlCm1vZHVsZXMgYW5kIGZ1bmN0aW9ucyBjYW4gYmUgZm91bmQgYmVsb3cuCgoKClVzaW5nIHRoZSBzdWJwcm9jZXNzIG1vZHVsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhpcyBtb2R1bGUgZGVmaW5lcyBvbmUgY2xhc3MgY2FsbGVkIFBvcGVuOgoKY2xhc3MgUG9wZW4oYXJncywgYnVmc2l6ZT0wLCBleGVjdXRhYmxlPU5vbmUsCiAgICAgICAgICAgIHN0ZGluPU5vbmUsIHN0ZG91dD1Ob25lLCBzdGRlcnI9Tm9uZSwKICAgICAgICAgICAgcHJlZXhlY19mbj1Ob25lLCBjbG9zZV9mZHM9RmFsc2UsIHNoZWxsPUZhbHNlLAogICAgICAgICAgICBjd2Q9Tm9uZSwgZW52PU5vbmUsIHVuaXZlcnNhbF9uZXdsaW5lcz1GYWxzZSwKICAgICAgICAgICAgc3RhcnR1cGluZm89Tm9uZSwgY3JlYXRpb25mbGFncz0wKToKCgpBcmd1bWVudHMgYXJlOgoKYXJncyBzaG91bGQgYmUgYSBzdHJpbmcsIG9yIGEgc2VxdWVuY2Ugb2YgcHJvZ3JhbSBhcmd1bWVudHMuICBUaGUKcHJvZ3JhbSB0byBleGVjdXRlIGlzIG5vcm1hbGx5IHRoZSBmaXJzdCBpdGVtIGluIHRoZSBhcmdzIHNlcXVlbmNlIG9yCnN0cmluZywgYnV0IGNhbiBiZSBleHBsaWNpdGx5IHNldCBieSB1c2luZyB0aGUgZXhlY3V0YWJsZSBhcmd1bWVudC4KCk9uIFVOSVgsIHdpdGggc2hlbGw9RmFsc2UgKGRlZmF1bHQpOiBJbiB0aGlzIGNhc2UsIHRoZSBQb3BlbiBjbGFzcwp1c2VzIG9zLmV4ZWN2cCgpIHRvIGV4ZWN1dGUgdGhlIGNoaWxkIHByb2dyYW0uICBhcmdzIHNob3VsZCBub3JtYWxseQpiZSBhIHNlcXVlbmNlLiAgQSBzdHJpbmcgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2VxdWVuY2Ugd2l0aCB0aGUgc3RyaW5nCmFzIHRoZSBvbmx5IGl0ZW0gKHRoZSBwcm9ncmFtIHRvIGV4ZWN1dGUpLgoKT24gVU5JWCwgd2l0aCBzaGVsbD1UcnVlOiBJZiBhcmdzIGlzIGEgc3RyaW5nLCBpdCBzcGVjaWZpZXMgdGhlCmNvbW1hbmQgc3RyaW5nIHRvIGV4ZWN1dGUgdGhyb3VnaCB0aGUgc2hlbGwuICBJZiBhcmdzIGlzIGEgc2VxdWVuY2UsCnRoZSBmaXJzdCBpdGVtIHNwZWNpZmllcyB0aGUgY29tbWFuZCBzdHJpbmcsIGFuZCBhbnkgYWRkaXRpb25hbCBpdGVtcwp3aWxsIGJlIHRyZWF0ZWQgYXMgYWRkaXRpb25hbCBzaGVsbCBhcmd1bWVudHMuCgpPbiBXaW5kb3dzOiB0aGUgUG9wZW4gY2xhc3MgdXNlcyBDcmVhdGVQcm9jZXNzKCkgdG8gZXhlY3V0ZSB0aGUgY2hpbGQKcHJvZ3JhbSwgd2hpY2ggb3BlcmF0ZXMgb24gc3RyaW5ncy4gIElmIGFyZ3MgaXMgYSBzZXF1ZW5jZSwgaXQgd2lsbCBiZQpjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgdXNpbmcgdGhlIGxpc3QyY21kbGluZSBtZXRob2QuICBQbGVhc2Ugbm90ZSB0aGF0Cm5vdCBhbGwgTVMgV2luZG93cyBhcHBsaWNhdGlvbnMgaW50ZXJwcmV0IHRoZSBjb21tYW5kIGxpbmUgdGhlIHNhbWUKd2F5OiBUaGUgbGlzdDJjbWRsaW5lIGlzIGRlc2lnbmVkIGZvciBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIHNhbWUKcnVsZXMgYXMgdGhlIE1TIEMgcnVudGltZS4KCmJ1ZnNpemUsIGlmIGdpdmVuLCBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcyB0aGUgY29ycmVzcG9uZGluZyBhcmd1bWVudAp0byB0aGUgYnVpbHQtaW4gb3BlbigpIGZ1bmN0aW9uOiAwIG1lYW5zIHVuYnVmZmVyZWQsIDEgbWVhbnMgbGluZQpidWZmZXJlZCwgYW55IG90aGVyIHBvc2l0aXZlIHZhbHVlIG1lYW5zIHVzZSBhIGJ1ZmZlciBvZgooYXBwcm94aW1hdGVseSkgdGhhdCBzaXplLiAgQSBuZWdhdGl2ZSBidWZzaXplIG1lYW5zIHRvIHVzZSB0aGUgc3lzdGVtCmRlZmF1bHQsIHdoaWNoIHVzdWFsbHkgbWVhbnMgZnVsbHkgYnVmZmVyZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IKYnVmc2l6ZSBpcyAwICh1bmJ1ZmZlcmVkKS4KCnN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBzcGVjaWZ5IHRoZSBleGVjdXRlZCBwcm9ncmFtcycgc3RhbmRhcmQKaW5wdXQsIHN0YW5kYXJkIG91dHB1dCBhbmQgc3RhbmRhcmQgZXJyb3IgZmlsZSBoYW5kbGVzLCByZXNwZWN0aXZlbHkuClZhbGlkIHZhbHVlcyBhcmUgUElQRSwgYW4gZXhpc3RpbmcgZmlsZSBkZXNjcmlwdG9yIChhIHBvc2l0aXZlCmludGVnZXIpLCBhbiBleGlzdGluZyBmaWxlIG9iamVjdCwgYW5kIE5vbmUuICBQSVBFIGluZGljYXRlcyB0aGF0IGEKbmV3IHBpcGUgdG8gdGhlIGNoaWxkIHNob3VsZCBiZSBjcmVhdGVkLiAgV2l0aCBOb25lLCBubyByZWRpcmVjdGlvbgp3aWxsIG9jY3VyOyB0aGUgY2hpbGQncyBmaWxlIGhhbmRsZXMgd2lsbCBiZSBpbmhlcml0ZWQgZnJvbSB0aGUKcGFyZW50LiAgQWRkaXRpb25hbGx5LCBzdGRlcnIgY2FuIGJlIFNURE9VVCwgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlCnN0ZGVyciBkYXRhIGZyb20gdGhlIGFwcGxpY2F0aW9ucyBzaG91bGQgYmUgY2FwdHVyZWQgaW50byB0aGUgc2FtZQpmaWxlIGhhbmRsZSBhcyBmb3Igc3Rkb3V0LgoKSWYgcHJlZXhlY19mbiBpcyBzZXQgdG8gYSBjYWxsYWJsZSBvYmplY3QsIHRoaXMgb2JqZWN0IHdpbGwgYmUgY2FsbGVkCmluIHRoZSBjaGlsZCBwcm9jZXNzIGp1c3QgYmVmb3JlIHRoZSBjaGlsZCBpcyBleGVjdXRlZC4KCklmIGNsb3NlX2ZkcyBpcyB0cnVlLCBhbGwgZmlsZSBkZXNjcmlwdG9ycyBleGNlcHQgMCwgMSBhbmQgMiB3aWxsIGJlCmNsb3NlZCBiZWZvcmUgdGhlIGNoaWxkIHByb2Nlc3MgaXMgZXhlY3V0ZWQuCgppZiBzaGVsbCBpcyB0cnVlLCB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZCB0aHJvdWdoIHRoZQpzaGVsbC4KCklmIGN3ZCBpcyBub3QgTm9uZSwgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdpbGwgYmUgY2hhbmdlZCB0byBjd2QKYmVmb3JlIHRoZSBjaGlsZCBpcyBleGVjdXRlZC4KCklmIGVudiBpcyBub3QgTm9uZSwgaXQgZGVmaW5lcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgbmV3CnByb2Nlc3MuCgpJZiB1bml2ZXJzYWxfbmV3bGluZXMgaXMgdHJ1ZSwgdGhlIGZpbGUgb2JqZWN0cyBzdGRvdXQgYW5kIHN0ZGVyciBhcmUKb3BlbmVkIGFzIGEgdGV4dCBmaWxlcywgYnV0IGxpbmVzIG1heSBiZSB0ZXJtaW5hdGVkIGJ5IGFueSBvZiAnXG4nLAp0aGUgVW5peCBlbmQtb2YtbGluZSBjb252ZW50aW9uLCAnXHInLCB0aGUgTWFjaW50b3NoIGNvbnZlbnRpb24gb3IKJ1xyXG4nLCB0aGUgV2luZG93cyBjb252ZW50aW9uLiAgQWxsIG9mIHRoZXNlIGV4dGVybmFsIHJlcHJlc2VudGF0aW9ucwphcmUgc2VlbiBhcyAnXG4nIGJ5IHRoZSBQeXRob24gcHJvZ3JhbS4gIE5vdGU6IFRoaXMgZmVhdHVyZSBpcyBvbmx5CmF2YWlsYWJsZSBpZiBQeXRob24gaXMgYnVpbHQgd2l0aCB1bml2ZXJzYWwgbmV3bGluZSBzdXBwb3J0ICh0aGUKZGVmYXVsdCkuICBBbHNvLCB0aGUgbmV3bGluZXMgYXR0cmlidXRlIG9mIHRoZSBmaWxlIG9iamVjdHMgc3Rkb3V0LApzdGRpbiBhbmQgc3RkZXJyIGFyZSBub3QgdXBkYXRlZCBieSB0aGUgY29tbXVuaWNhdGUoKSBtZXRob2QuCgpUaGUgc3RhcnR1cGluZm8gYW5kIGNyZWF0aW9uZmxhZ3MsIGlmIGdpdmVuLCB3aWxsIGJlIHBhc3NlZCB0byB0aGUKdW5kZXJseWluZyBDcmVhdGVQcm9jZXNzKCkgZnVuY3Rpb24uICBUaGV5IGNhbiBzcGVjaWZ5IHRoaW5ncyBzdWNoIGFzCmFwcGVhcmFuY2Ugb2YgdGhlIG1haW4gd2luZG93IGFuZCBwcmlvcml0eSBmb3IgdGhlIG5ldyBwcm9jZXNzLgooV2luZG93cyBvbmx5KQoKClRoaXMgbW9kdWxlIGFsc28gZGVmaW5lcyBzb21lIHNob3J0Y3V0IGZ1bmN0aW9uczoKCmNhbGwoKnBvcGVuYXJncywgKiprd2FyZ3MpOgogICAgUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMuICBXYWl0IGZvciBjb21tYW5kIHRvIGNvbXBsZXRlLCB0aGVuCiAgICByZXR1cm4gdGhlIHJldHVybmNvZGUgYXR0cmlidXRlLgoKICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIGZvciB0aGUgUG9wZW4gY29uc3RydWN0b3IuICBFeGFtcGxlOgoKICAgIHJldGNvZGUgPSBjYWxsKFsibHMiLCAiLWwiXSkKCmNoZWNrX2NhbGwoKnBvcGVuYXJncywgKiprd2FyZ3MpOgogICAgUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMuICBXYWl0IGZvciBjb21tYW5kIHRvIGNvbXBsZXRlLiAgSWYgdGhlCiAgICBleGl0IGNvZGUgd2FzIHplcm8gdGhlbiByZXR1cm4sIG90aGVyd2lzZSByYWlzZQogICAgQ2FsbGVkUHJvY2Vzc0Vycm9yLiAgVGhlIENhbGxlZFByb2Nlc3NFcnJvciBvYmplY3Qgd2lsbCBoYXZlIHRoZQogICAgcmV0dXJuIGNvZGUgaW4gdGhlIHJldHVybmNvZGUgYXR0cmlidXRlLgoKICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIGZvciB0aGUgUG9wZW4gY29uc3RydWN0b3IuICBFeGFtcGxlOgoKICAgIGNoZWNrX2NhbGwoWyJscyIsICItbCJdKQoKY2hlY2tfb3V0cHV0KCpwb3BlbmFyZ3MsICoqa3dhcmdzKToKICAgIFJ1biBjb21tYW5kIHdpdGggYXJndW1lbnRzIGFuZCByZXR1cm4gaXRzIG91dHB1dCBhcyBhIGJ5dGUgc3RyaW5nLgoKICAgIElmIHRoZSBleGl0IGNvZGUgd2FzIG5vbi16ZXJvIGl0IHJhaXNlcyBhIENhbGxlZFByb2Nlc3NFcnJvci4gIFRoZQogICAgQ2FsbGVkUHJvY2Vzc0Vycm9yIG9iamVjdCB3aWxsIGhhdmUgdGhlIHJldHVybiBjb2RlIGluIHRoZSByZXR1cm5jb2RlCiAgICBhdHRyaWJ1dGUgYW5kIG91dHB1dCBpbiB0aGUgb3V0cHV0IGF0dHJpYnV0ZS4KCiAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIFBvcGVuIGNvbnN0cnVjdG9yLiAgRXhhbXBsZToKCiAgICBvdXRwdXQgPSBjaGVja19vdXRwdXQoWyJscyIsICItbCIsICIvZGV2L251bGwiXSkKCgpFeGNlcHRpb25zCi0tLS0tLS0tLS0KRXhjZXB0aW9ucyByYWlzZWQgaW4gdGhlIGNoaWxkIHByb2Nlc3MsIGJlZm9yZSB0aGUgbmV3IHByb2dyYW0gaGFzCnN0YXJ0ZWQgdG8gZXhlY3V0ZSwgd2lsbCBiZSByZS1yYWlzZWQgaW4gdGhlIHBhcmVudC4gIEFkZGl0aW9uYWxseSwKdGhlIGV4Y2VwdGlvbiBvYmplY3Qgd2lsbCBoYXZlIG9uZSBleHRyYSBhdHRyaWJ1dGUgY2FsbGVkCidjaGlsZF90cmFjZWJhY2snLCB3aGljaCBpcyBhIHN0cmluZyBjb250YWluaW5nIHRyYWNlYmFjayBpbmZvcm1hdGlvbgpmcm9tIHRoZSBjaGlsZCdzIHBvaW50IG9mIHZpZXcuCgpUaGUgbW9zdCBjb21tb24gZXhjZXB0aW9uIHJhaXNlZCBpcyBPU0Vycm9yLiAgVGhpcyBvY2N1cnMsIGZvcgpleGFtcGxlLCB3aGVuIHRyeWluZyB0byBleGVjdXRlIGEgbm9uLWV4aXN0ZW50IGZpbGUuICBBcHBsaWNhdGlvbnMKc2hvdWxkIHByZXBhcmUgZm9yIE9TRXJyb3JzLgoKQSBWYWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkIGlmIFBvcGVuIGlzIGNhbGxlZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLgoKY2hlY2tfY2FsbCgpIGFuZCBjaGVja19vdXRwdXQoKSB3aWxsIHJhaXNlIENhbGxlZFByb2Nlc3NFcnJvciwgaWYgdGhlCmNhbGxlZCBwcm9jZXNzIHJldHVybnMgYSBub24temVybyByZXR1cm4gY29kZS4KCgpTZWN1cml0eQotLS0tLS0tLQpVbmxpa2Ugc29tZSBvdGhlciBwb3BlbiBmdW5jdGlvbnMsIHRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBuZXZlciBjYWxsCi9iaW4vc2ggaW1wbGljaXRseS4gIFRoaXMgbWVhbnMgdGhhdCBhbGwgY2hhcmFjdGVycywgaW5jbHVkaW5nIHNoZWxsCm1ldGFjaGFyYWN0ZXJzLCBjYW4gc2FmZWx5IGJlIHBhc3NlZCB0byBjaGlsZCBwcm9jZXNzZXMuCgoKUG9wZW4gb2JqZWN0cwo9PT09PT09PT09PT09Ckluc3RhbmNlcyBvZiB0aGUgUG9wZW4gY2xhc3MgaGF2ZSB0aGUgZm9sbG93aW5nIG1ldGhvZHM6Cgpwb2xsKCkKICAgIENoZWNrIGlmIGNoaWxkIHByb2Nlc3MgaGFzIHRlcm1pbmF0ZWQuICBSZXR1cm5zIHJldHVybmNvZGUKICAgIGF0dHJpYnV0ZS4KCndhaXQoKQogICAgV2FpdCBmb3IgY2hpbGQgcHJvY2VzcyB0byB0ZXJtaW5hdGUuICBSZXR1cm5zIHJldHVybmNvZGUgYXR0cmlidXRlLgoKY29tbXVuaWNhdGUoaW5wdXQ9Tm9uZSkKICAgIEludGVyYWN0IHdpdGggcHJvY2VzczogU2VuZCBkYXRhIHRvIHN0ZGluLiAgUmVhZCBkYXRhIGZyb20gc3Rkb3V0CiAgICBhbmQgc3RkZXJyLCB1bnRpbCBlbmQtb2YtZmlsZSBpcyByZWFjaGVkLiAgV2FpdCBmb3IgcHJvY2VzcyB0bwogICAgdGVybWluYXRlLiAgVGhlIG9wdGlvbmFsIGlucHV0IGFyZ3VtZW50IHNob3VsZCBiZSBhIHN0cmluZyB0byBiZQogICAgc2VudCB0byB0aGUgY2hpbGQgcHJvY2Vzcywgb3IgTm9uZSwgaWYgbm8gZGF0YSBzaG91bGQgYmUgc2VudCB0bwogICAgdGhlIGNoaWxkLgoKICAgIGNvbW11bmljYXRlKCkgcmV0dXJucyBhIHR1cGxlIChzdGRvdXQsIHN0ZGVycikuCgogICAgTm90ZTogVGhlIGRhdGEgcmVhZCBpcyBidWZmZXJlZCBpbiBtZW1vcnksIHNvIGRvIG5vdCB1c2UgdGhpcwogICAgbWV0aG9kIGlmIHRoZSBkYXRhIHNpemUgaXMgbGFyZ2Ugb3IgdW5saW1pdGVkLgoKVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBhbHNvIGF2YWlsYWJsZToKCnN0ZGluCiAgICBJZiB0aGUgc3RkaW4gYXJndW1lbnQgaXMgUElQRSwgdGhpcyBhdHRyaWJ1dGUgaXMgYSBmaWxlIG9iamVjdAogICAgdGhhdCBwcm92aWRlcyBpbnB1dCB0byB0aGUgY2hpbGQgcHJvY2Vzcy4gIE90aGVyd2lzZSwgaXQgaXMgTm9uZS4KCnN0ZG91dAogICAgSWYgdGhlIHN0ZG91dCBhcmd1bWVudCBpcyBQSVBFLCB0aGlzIGF0dHJpYnV0ZSBpcyBhIGZpbGUgb2JqZWN0CiAgICB0aGF0IHByb3ZpZGVzIG91dHB1dCBmcm9tIHRoZSBjaGlsZCBwcm9jZXNzLiAgT3RoZXJ3aXNlLCBpdCBpcwogICAgTm9uZS4KCnN0ZGVycgogICAgSWYgdGhlIHN0ZGVyciBhcmd1bWVudCBpcyBQSVBFLCB0aGlzIGF0dHJpYnV0ZSBpcyBmaWxlIG9iamVjdCB0aGF0CiAgICBwcm92aWRlcyBlcnJvciBvdXRwdXQgZnJvbSB0aGUgY2hpbGQgcHJvY2Vzcy4gIE90aGVyd2lzZSwgaXQgaXMKICAgIE5vbmUuCgpwaWQKICAgIFRoZSBwcm9jZXNzIElEIG9mIHRoZSBjaGlsZCBwcm9jZXNzLgoKcmV0dXJuY29kZQogICAgVGhlIGNoaWxkIHJldHVybiBjb2RlLiAgQSBOb25lIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSBwcm9jZXNzCiAgICBoYXNuJ3QgdGVybWluYXRlZCB5ZXQuICBBIG5lZ2F0aXZlIHZhbHVlIC1OIGluZGljYXRlcyB0aGF0IHRoZQogICAgY2hpbGQgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsIE4gKFVOSVggb25seSkuCgoKUmVwbGFjaW5nIG9sZGVyIGZ1bmN0aW9ucyB3aXRoIHRoZSBzdWJwcm9jZXNzIG1vZHVsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluIHRoaXMgc2VjdGlvbiwgImEgPT0+IGIiIG1lYW5zIHRoYXQgYiBjYW4gYmUgdXNlZCBhcyBhIHJlcGxhY2VtZW50CmZvciBhLgoKTm90ZTogQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZmFpbCAobW9yZSBvciBsZXNzKSBzaWxlbnRseSBpZgp0aGUgZXhlY3V0ZWQgcHJvZ3JhbSBjYW5ub3QgYmUgZm91bmQ7IHRoaXMgbW9kdWxlIHJhaXNlcyBhbiBPU0Vycm9yCmV4Y2VwdGlvbi4KCkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZXMsIHdlIGFzc3VtZSB0aGF0IHRoZSBzdWJwcm9jZXNzIG1vZHVsZSBpcwppbXBvcnRlZCB3aXRoICJmcm9tIHN1YnByb2Nlc3MgaW1wb3J0ICoiLgoKClJlcGxhY2luZyAvYmluL3NoIHNoZWxsIGJhY2txdW90ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kb3V0cHV0PWBteWNtZCBteWFyZ2AKPT0+Cm91dHB1dCA9IFBvcGVuKFsibXljbWQiLCAibXlhcmciXSwgc3Rkb3V0PVBJUEUpLmNvbW11bmljYXRlKClbMF0KCgpSZXBsYWNpbmcgc2hlbGwgcGlwZSBsaW5lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kb3V0cHV0PWBkbWVzZyB8IGdyZXAgaGRhYAo9PT4KcDEgPSBQb3BlbihbImRtZXNnIl0sIHN0ZG91dD1QSVBFKQpwMiA9IFBvcGVuKFsiZ3JlcCIsICJoZGEiXSwgc3RkaW49cDEuc3Rkb3V0LCBzdGRvdXQ9UElQRSkKb3V0cHV0ID0gcDIuY29tbXVuaWNhdGUoKVswXQoKClJlcGxhY2luZyBvcy5zeXN0ZW0oKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3RzID0gb3Muc3lzdGVtKCJteWNtZCIgKyAiIG15YXJnIikKPT0+CnAgPSBQb3BlbigibXljbWQiICsgIiBteWFyZyIsIHNoZWxsPVRydWUpCnBpZCwgc3RzID0gb3Mud2FpdHBpZChwLnBpZCwgMCkKCk5vdGU6CgoqIENhbGxpbmcgdGhlIHByb2dyYW0gdGhyb3VnaCB0aGUgc2hlbGwgaXMgdXN1YWxseSBub3QgcmVxdWlyZWQuCgoqIEl0J3MgZWFzaWVyIHRvIGxvb2sgYXQgdGhlIHJldHVybmNvZGUgYXR0cmlidXRlIHRoYW4gdGhlCiAgZXhpdHN0YXR1cy4KCkEgbW9yZSByZWFsLXdvcmxkIGV4YW1wbGUgd291bGQgbG9vayBsaWtlIHRoaXM6Cgp0cnk6CiAgICByZXRjb2RlID0gY2FsbCgibXljbWQiICsgIiBteWFyZyIsIHNoZWxsPVRydWUpCiAgICBpZiByZXRjb2RlIDwgMDoKICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsICJDaGlsZCB3YXMgdGVybWluYXRlZCBieSBzaWduYWwiLCAtcmV0Y29kZQogICAgZWxzZToKICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsICJDaGlsZCByZXR1cm5lZCIsIHJldGNvZGUKZXhjZXB0IE9TRXJyb3IsIGU6CiAgICBwcmludCA+PnN5cy5zdGRlcnIsICJFeGVjdXRpb24gZmFpbGVkOiIsIGUKCgpSZXBsYWNpbmcgb3Muc3Bhd24qCi0tLS0tLS0tLS0tLS0tLS0tLS0KUF9OT1dBSVQgZXhhbXBsZToKCnBpZCA9IG9zLnNwYXdubHAob3MuUF9OT1dBSVQsICIvYmluL215Y21kIiwgIm15Y21kIiwgIm15YXJnIikKPT0+CnBpZCA9IFBvcGVuKFsiL2Jpbi9teWNtZCIsICJteWFyZyJdKS5waWQKCgpQX1dBSVQgZXhhbXBsZToKCnJldGNvZGUgPSBvcy5zcGF3bmxwKG9zLlBfV0FJVCwgIi9iaW4vbXljbWQiLCAibXljbWQiLCAibXlhcmciKQo9PT4KcmV0Y29kZSA9IGNhbGwoWyIvYmluL215Y21kIiwgIm15YXJnIl0pCgoKVmVjdG9yIGV4YW1wbGU6Cgpvcy5zcGF3bnZwKG9zLlBfTk9XQUlULCBwYXRoLCBhcmdzKQo9PT4KUG9wZW4oW3BhdGhdICsgYXJnc1sxOl0pCgoKRW52aXJvbm1lbnQgZXhhbXBsZToKCm9zLnNwYXdubHBlKG9zLlBfTk9XQUlULCAiL2Jpbi9teWNtZCIsICJteWNtZCIsICJteWFyZyIsIGVudikKPT0+ClBvcGVuKFsiL2Jpbi9teWNtZCIsICJteWFyZyJdLCBlbnY9eyJQQVRIIjogIi91c3IvYmluIn0pCgoKUmVwbGFjaW5nIG9zLnBvcGVuKgotLS0tLS0tLS0tLS0tLS0tLS0tCnBpcGUgPSBvcy5wb3BlbigiY21kIiwgbW9kZT0ncicsIGJ1ZnNpemUpCj09PgpwaXBlID0gUG9wZW4oImNtZCIsIHNoZWxsPVRydWUsIGJ1ZnNpemU9YnVmc2l6ZSwgc3Rkb3V0PVBJUEUpLnN0ZG91dAoKcGlwZSA9IG9zLnBvcGVuKCJjbWQiLCBtb2RlPSd3JywgYnVmc2l6ZSkKPT0+CnBpcGUgPSBQb3BlbigiY21kIiwgc2hlbGw9VHJ1ZSwgYnVmc2l6ZT1idWZzaXplLCBzdGRpbj1QSVBFKS5zdGRpbgoKCihjaGlsZF9zdGRpbiwgY2hpbGRfc3Rkb3V0KSA9IG9zLnBvcGVuMigiY21kIiwgbW9kZSwgYnVmc2l6ZSkKPT0+CnAgPSBQb3BlbigiY21kIiwgc2hlbGw9VHJ1ZSwgYnVmc2l6ZT1idWZzaXplLAogICAgICAgICAgc3RkaW49UElQRSwgc3Rkb3V0PVBJUEUsIGNsb3NlX2Zkcz1UcnVlKQooY2hpbGRfc3RkaW4sIGNoaWxkX3N0ZG91dCkgPSAocC5zdGRpbiwgcC5zdGRvdXQpCgoKKGNoaWxkX3N0ZGluLAogY2hpbGRfc3Rkb3V0LAogY2hpbGRfc3RkZXJyKSA9IG9zLnBvcGVuMygiY21kIiwgbW9kZSwgYnVmc2l6ZSkKPT0+CnAgPSBQb3BlbigiY21kIiwgc2hlbGw9VHJ1ZSwgYnVmc2l6ZT1idWZzaXplLAogICAgICAgICAgc3RkaW49UElQRSwgc3Rkb3V0PVBJUEUsIHN0ZGVycj1QSVBFLCBjbG9zZV9mZHM9VHJ1ZSkKKGNoaWxkX3N0ZGluLAogY2hpbGRfc3Rkb3V0LAogY2hpbGRfc3RkZXJyKSA9IChwLnN0ZGluLCBwLnN0ZG91dCwgcC5zdGRlcnIpCgoKKGNoaWxkX3N0ZGluLCBjaGlsZF9zdGRvdXRfYW5kX3N0ZGVycikgPSBvcy5wb3BlbjQoImNtZCIsIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZnNpemUpCj09PgpwID0gUG9wZW4oImNtZCIsIHNoZWxsPVRydWUsIGJ1ZnNpemU9YnVmc2l6ZSwKICAgICAgICAgIHN0ZGluPVBJUEUsIHN0ZG91dD1QSVBFLCBzdGRlcnI9U1RET1VULCBjbG9zZV9mZHM9VHJ1ZSkKKGNoaWxkX3N0ZGluLCBjaGlsZF9zdGRvdXRfYW5kX3N0ZGVycikgPSAocC5zdGRpbiwgcC5zdGRvdXQpCgpPbiBVbml4LCBvcy5wb3BlbjIsIG9zLnBvcGVuMyBhbmQgb3MucG9wZW40IGFsc28gYWNjZXB0IGEgc2VxdWVuY2UgYXMKdGhlIGNvbW1hbmQgdG8gZXhlY3V0ZSwgaW4gd2hpY2ggY2FzZSBhcmd1bWVudHMgd2lsbCBiZSBwYXNzZWQKZGlyZWN0bHkgdG8gdGhlIHByb2dyYW0gd2l0aG91dCBzaGVsbCBpbnRlcnZlbnRpb24uICBUaGlzIHVzYWdlIGNhbiBiZQpyZXBsYWNlZCBhcyBmb2xsb3dzOgoKKGNoaWxkX3N0ZGluLCBjaGlsZF9zdGRvdXQpID0gb3MucG9wZW4yKFsiL2Jpbi9scyIsICItbCJdLCBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmc2l6ZSkKPT0+CnAgPSBQb3BlbihbIi9iaW4vbHMiLCAiLWwiXSwgYnVmc2l6ZT1idWZzaXplLCBzdGRpbj1QSVBFLCBzdGRvdXQ9UElQRSkKKGNoaWxkX3N0ZGluLCBjaGlsZF9zdGRvdXQpID0gKHAuc3RkaW4sIHAuc3Rkb3V0KQoKUmV0dXJuIGNvZGUgaGFuZGxpbmcgdHJhbnNsYXRlcyBhcyBmb2xsb3dzOgoKcGlwZSA9IG9zLnBvcGVuKCJjbWQiLCAndycpCi4uLgpyYyA9IHBpcGUuY2xvc2UoKQppZiByYyBpcyBub3QgTm9uZSBhbmQgcmMgJSAyNTY6CiAgICBwcmludCAiVGhlcmUgd2VyZSBzb21lIGVycm9ycyIKPT0+CnByb2Nlc3MgPSBQb3BlbigiY21kIiwgJ3cnLCBzaGVsbD1UcnVlLCBzdGRpbj1QSVBFKQouLi4KcHJvY2Vzcy5zdGRpbi5jbG9zZSgpCmlmIHByb2Nlc3Mud2FpdCgpICE9IDA6CiAgICBwcmludCAiVGhlcmUgd2VyZSBzb21lIGVycm9ycyIKCgpSZXBsYWNpbmcgcG9wZW4yLioKLS0tLS0tLS0tLS0tLS0tLS0tCihjaGlsZF9zdGRvdXQsIGNoaWxkX3N0ZGluKSA9IHBvcGVuMi5wb3BlbjIoInNvbWVzdHJpbmciLCBidWZzaXplLCBtb2RlKQo9PT4KcCA9IFBvcGVuKFsic29tZXN0cmluZyJdLCBzaGVsbD1UcnVlLCBidWZzaXplPWJ1ZnNpemUKICAgICAgICAgIHN0ZGluPVBJUEUsIHN0ZG91dD1QSVBFLCBjbG9zZV9mZHM9VHJ1ZSkKKGNoaWxkX3N0ZG91dCwgY2hpbGRfc3RkaW4pID0gKHAuc3Rkb3V0LCBwLnN0ZGluKQoKT24gVW5peCwgcG9wZW4yIGFsc28gYWNjZXB0cyBhIHNlcXVlbmNlIGFzIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUsIGluCndoaWNoIGNhc2UgYXJndW1lbnRzIHdpbGwgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBwcm9ncmFtIHdpdGhvdXQKc2hlbGwgaW50ZXJ2ZW50aW9uLiAgVGhpcyB1c2FnZSBjYW4gYmUgcmVwbGFjZWQgYXMgZm9sbG93czoKCihjaGlsZF9zdGRvdXQsIGNoaWxkX3N0ZGluKSA9IHBvcGVuMi5wb3BlbjIoWyJteWNtZCIsICJteWFyZyJdLCBidWZzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpCj09PgpwID0gUG9wZW4oWyJteWNtZCIsICJteWFyZyJdLCBidWZzaXplPWJ1ZnNpemUsCiAgICAgICAgICBzdGRpbj1QSVBFLCBzdGRvdXQ9UElQRSwgY2xvc2VfZmRzPVRydWUpCihjaGlsZF9zdGRvdXQsIGNoaWxkX3N0ZGluKSA9IChwLnN0ZG91dCwgcC5zdGRpbikKClRoZSBwb3BlbjIuUG9wZW4zIGFuZCBwb3BlbjIuUG9wZW40IGJhc2ljYWxseSB3b3JrcyBhcyBzdWJwcm9jZXNzLlBvcGVuLApleGNlcHQgdGhhdDoKCiogc3VicHJvY2Vzcy5Qb3BlbiByYWlzZXMgYW4gZXhjZXB0aW9uIGlmIHRoZSBleGVjdXRpb24gZmFpbHMKKiB0aGUgY2FwdHVyZXN0ZGVyciBhcmd1bWVudCBpcyByZXBsYWNlZCB3aXRoIHRoZSBzdGRlcnIgYXJndW1lbnQuCiogc3RkaW49UElQRSBhbmQgc3Rkb3V0PVBJUEUgbXVzdCBiZSBzcGVjaWZpZWQuCiogcG9wZW4yIGNsb3NlcyBhbGwgZmlsZWRlc2NyaXB0b3JzIGJ5IGRlZmF1bHQsIGJ1dCB5b3UgaGF2ZSB0byBzcGVjaWZ5CiAgY2xvc2VfZmRzPVRydWUgd2l0aCBzdWJwcm9jZXNzLlBvcGVuLgpp/////050BQAAAHdpbjMydBIAAABDYWxsZWRQcm9jZXNzRXJyb3JjAAAAAAAAAAACAAAAQgAAAHMjAAAAZQAAWgEAZAAAWgIAZAMAZAEAhAEAWgQAZAIAhAAAWgUAUlMoBAAAAHP9AAAAVGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gYSBwcm9jZXNzIHJ1biBieSBjaGVja19jYWxsKCkgb3IKICAgIGNoZWNrX291dHB1dCgpIHJldHVybnMgYSBub24temVybyBleGl0IHN0YXR1cy4KICAgIFRoZSBleGl0IHN0YXR1cyB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgcmV0dXJuY29kZSBhdHRyaWJ1dGU7CiAgICBjaGVja19vdXRwdXQoKSB3aWxsIGFsc28gc3RvcmUgdGhlIG91dHB1dCBpbiB0aGUgb3V0cHV0IGF0dHJpYnV0ZS4KICAgIGMEAAAABAAAAAIAAABDAAAAcx8AAAB8AQB8AABfAAB8AgB8AABfAQB8AwB8AABfAgBkAABTKAEAAABOKAMAAAB0CgAAAHJldHVybmNvZGV0AwAAAGNtZHQGAAAAb3V0cHV0KAQAAAB0BAAAAHNlbGZSAgAAAFIDAAAAUgQAAAAoAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHl0CAAAAF9faW5pdF9flgEAAHMGAAAAAAEJAQkBYwEAAAABAAAAAwAAAEMAAABzFAAAAGQBAHwAAGoAAHwAAGoBAGYCABZTKAIAAABOcy0AAABDb21tYW5kICclcycgcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBzdGF0dXMgJWQoAgAAAFIDAAAAUgIAAAAoAQAAAFIFAAAAKAAAAAAoAAAAAHN1AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9zdWJwcm9jZXNzLnB5dAcAAABfX3N0cl9fmgEAAHMCAAAAAAFOKAYAAAB0CAAAAF9fbmFtZV9fdAoAAABfX21vZHVsZV9fdAcAAABfX2RvY19fdAQAAABOb25lUgYAAABSBwAAACgAAAAAKAAAAAAoAAAAAHN1AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9zdWJwcm9jZXNzLnB5UgEAAACQAQAAcwYAAAAGBQYBDAR0CwAAAFNUQVJUVVBJTkZPYwAAAAAAAAAAAQAAAEIAAABzJgAAAGUAAFoBAGQAAFoCAGQBAFoEAGQBAFoFAGQBAFoGAGQAAFoHAFJTKAIAAABpAAAAAE4oCAAAAFIIAAAAUgkAAAB0BwAAAGR3RmxhZ3NSCwAAAHQJAAAAaFN0ZElucHV0dAoAAABoU3RkT3V0cHV0dAkAAABoU3RkRXJyb3J0CwAAAHdTaG93V2luZG93KAAAAAAoAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHlSDAAAAKIBAABzCgAAAAYBBgEGAQYBBgF0CgAAAHB5d2ludHlwZXNjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZQIAWgMAUlMoAAAAACgEAAAAUggAAABSCQAAAHQHAAAASU9FcnJvcnQFAAAAZXJyb3IoAAAAACgAAAAAKAAAAABzdQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvc3VicHJvY2Vzcy5weVISAAAAqAEAAHMCAAAABgF0BAAAAHBvbGx0CAAAAFBJUEVfQlVGaQACAAB0BQAAAFBvcGVudAQAAABQSVBFdAYAAABTVERPVVR0BAAAAGNhbGx0CgAAAGNoZWNrX2NhbGx0DAAAAGNoZWNrX291dHB1dCgIAAAAdBIAAABDUkVBVEVfTkVXX0NPTlNPTEV0GAAAAENSRUFURV9ORVdfUFJPQ0VTU19HUk9VUHQQAAAAU1REX0lOUFVUX0hBTkRMRXQRAAAAU1REX09VVFBVVF9IQU5ETEV0EAAAAFNURF9FUlJPUl9IQU5ETEV0BwAAAFNXX0hJREV0FAAAAFNUQVJURl9VU0VTVERIQU5ETEVTdBQAAABTVEFSVEZfVVNFU0hPV1dJTkRPV1IdAAAAUh4AAABSHwAAAFIgAAAAUiEAAABSIgAAAFIjAAAAUiQAAAB0CwAAAFNDX09QRU5fTUFYaQABAABjAAAAAAIAAAAGAAAAQwAAAHNfAAAAeFgAdAAAHkRdTwB9AAB8AABqAQBkAQB0AgBqAwCDAAF9AQB8AQBkAABrCQByCAB5EQB0AABqBQB8AACDAQABV3FXAAR0BgBrCgByUwABAQFxVwBYcQgAcQgAV2QAAFMoAgAAAE50CgAAAF9kZWFkc3RhdGUoBwAAAHQHAAAAX2FjdGl2ZXQOAAAAX2ludGVybmFsX3BvbGx0AwAAAHN5c3QGAAAAbWF4aW50UgsAAAB0BgAAAHJlbW92ZXQKAAAAVmFsdWVFcnJvcigCAAAAdAQAAABpbnN0dAMAAAByZXMoAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHl0CAAAAF9jbGVhbnVwygEAAHMOAAAAAAEOARUBDAEDAREBDQNp/v///2MBAAAAAwAAAAYAAABHAAAAc1YAAAB4TwB0AAByUQB5DgB8AAB8AQCMAABTV3EDAAR0AQB0AgBmAgBrCgByTQABfQIAAXwCAGoDAHQDAGoEAGsCAHJHAHEDAG4AAIIAAHEDAFhxAwBXZAAAUygBAAAATigFAAAAdAQAAABUcnVldAcAAABPU0Vycm9yUhMAAAB0BQAAAGVycm5vdAUAAABFSU5UUigDAAAAdAQAAABmdW5jdAQAAABhcmdzdAEAAABlKAAAAAAoAAAAAHN1AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9zdWJwcm9jZXNzLnB5dBEAAABfZWludHJfcmV0cnlfY2FsbNkBAABzDgAAAAABCQEDAQ4BFQESAQYBYwAAAAAFAAAABQAAAEMAAABzzgAAAGkKAGQBAGQCADZkAwBkBAA2ZAUAZAYANmQHAGQIADZkCQBkCgA2ZAsAZAwANmQNAGQOADZkDwBkEAA2ZBEAZBIANmQTAGQUADZ9AABnAAB9AQB4UAB8AABqAACDAABEXUIAXAIAfQIAfQMAdAEAdAIAagMAfAIAgwIAfQQAfAQAZBUAawQAcl8AfAEAagQAZBYAfAMAfAQAFBeDAQABcV8AcV8AV3giAHQCAGoFAERdFwB9AwB8AQBqBABkFwB8AwAXgwEAAXGvAFd8AQBTKBgAAABzbgAAAFJldHVybiBhIGxpc3Qgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyByZXByb2R1Y2luZyB0aGUgY3VycmVudAogICAgc2V0dGluZ3MgaW4gc3lzLmZsYWdzIGFuZCBzeXMud2Fybm9wdGlvbnMudAEAAABkdAUAAABkZWJ1Z3QBAAAAT3QIAAAAb3B0aW1pemV0AQAAAEJ0EwAAAGRvbnRfd3JpdGVfYnl0ZWNvZGV0AQAAAHN0DAAAAG5vX3VzZXJfc2l0ZXQBAAAAU3QHAAAAbm9fc2l0ZXQBAAAARXQSAAAAaWdub3JlX2Vudmlyb25tZW50dAEAAAB2dAcAAAB2ZXJib3NldAEAAABidA0AAABieXRlc193YXJuaW5ndAEAAABSdBIAAABoYXNoX3JhbmRvbWl6YXRpb250AQAAADN0DAAAAHB5M2tfd2FybmluZ2kAAAAAdAEAAAAtcwIAAAAtVygGAAAAdAUAAABpdGVtc3QHAAAAZ2V0YXR0clIpAAAAdAUAAABmbGFnc3QGAAAAYXBwZW5kdAsAAAB3YXJub3B0aW9ucygFAAAAdAwAAABmbGFnX29wdF9tYXBSNQAAAHQEAAAAZmxhZ3QDAAAAb3B0UkQAAAAoAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHl0HAAAAF9hcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3PnAQAAcyYAAAAAAwMBBwMHAQcBBwEHAQcBBwEHAQcBCgIGARkBEgEMARwBEAEVAWMAAAAAAgAAAAMAAABPAAAAcxMAAAB0AAB8AAB8AQCOAABqAQCDAABTKAEAAABz0wAAAFJ1biBjb21tYW5kIHdpdGggYXJndW1lbnRzLiAgV2FpdCBmb3IgY29tbWFuZCB0byBjb21wbGV0ZSwgdGhlbgogICAgcmV0dXJuIHRoZSByZXR1cm5jb2RlIGF0dHJpYnV0ZS4KCiAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIFBvcGVuIGNvbnN0cnVjdG9yLiAgRXhhbXBsZToKCiAgICByZXRjb2RlID0gY2FsbChbImxzIiwgIi1sIl0pCiAgICAoAgAAAFIXAAAAdAQAAAB3YWl0KAIAAAB0CQAAAHBvcGVuYXJnc3QGAAAAa3dhcmdzKAAAAAAoAAAAAHN1AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9zdWJwcm9jZXNzLnB5UhoAAAACAgAAcwIAAAAACGMAAAAABAAAAAMAAABPAAAAc1MAAAB0AAB8AAB8AQCOAAB9AgB8AgByTwB8AQBqAQBkAQCDAQB9AwB8AwBkAwBrCAByPQB8AABkAgAZfQMAbgAAdAMAfAIAfAMAgwIAggEAbgAAZAIAUygEAAAAc1MBAABSdW4gY29tbWFuZCB3aXRoIGFyZ3VtZW50cy4gIFdhaXQgZm9yIGNvbW1hbmQgdG8gY29tcGxldGUuICBJZgogICAgdGhlIGV4aXQgY29kZSB3YXMgemVybyB0aGVuIHJldHVybiwgb3RoZXJ3aXNlIHJhaXNlCiAgICBDYWxsZWRQcm9jZXNzRXJyb3IuICBUaGUgQ2FsbGVkUHJvY2Vzc0Vycm9yIG9iamVjdCB3aWxsIGhhdmUgdGhlCiAgICByZXR1cm4gY29kZSBpbiB0aGUgcmV0dXJuY29kZSBhdHRyaWJ1dGUuCgogICAgVGhlIGFyZ3VtZW50cyBhcmUgdGhlIHNhbWUgYXMgZm9yIHRoZSBQb3BlbiBjb25zdHJ1Y3Rvci4gIEV4YW1wbGU6CgogICAgY2hlY2tfY2FsbChbImxzIiwgIi1sIl0pCiAgICBSNQAAAGkAAAAATigEAAAAUhoAAAB0AwAAAGdldFILAAAAUgEAAAAoBAAAAFJXAAAAUlgAAAB0BwAAAHJldGNvZGVSAwAAACgAAAAAKAAAAABzdQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvc3VicHJvY2Vzcy5weVIbAAAA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IEMgcnVudGltZToKCiAgICAxKSBBcmd1bWVudHMgYXJlIGRlbGltaXRlZCBieSB3aGl0ZSBzcGFjZSwgd2hpY2ggaXMgZWl0aGVyIGEKICAgICAgIHNwYWNlIG9yIGEgdGFiLgoKICAgIDIpIEEgc3RyaW5nIHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyBpcwogICAgICAgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgYXJndW1lbnQsIHJlZ2FyZGxlc3Mgb2Ygd2hpdGUgc3BhY2UKICAgICAgIGNvbnRhaW5lZCB3aXRoaW4uICBBIHF1b3RlZCBzdHJpbmcgY2FuIGJlIGVtYmVkZGVkIGluIGFuCiAgICAgICBhcmd1bWVudC4KCiAgICAzKSBBIGRvdWJsZSBxdW90YXRpb24gbWFyayBwcmVjZWRlZCBieSBhIGJhY2tzbGFzaCBpcwogICAgICAgaW50ZXJwcmV0ZWQgYXMgYSBsaXRlcmFsIGRvdWJsZSBxdW90YXRpb24gbWFyay4KCiAgICA0KSBCYWNrc2xhc2hlcyBhcmUgaW50ZXJwcmV0ZWQgbGl0ZXJhbGx5LCB1bmxlc3MgdGhleQogICAgICAgaW1tZWRpYXRlbHkgcHJlY2VkZSBhIGRvdWJsZSBxdW90YXRpb24gbWFyay4KCiAgICA1KSBJZiBiYWNrc2xhc2hlcyBpbW1lZGlhdGVseSBwcmVjZWRlIGEgZG91YmxlIHF1b3RhdGlvbiBtYXJrLAogICAgICAgZXZlcnkgcGFpciBvZiBiYWNrc2xhc2hlcyBpcyBpbnRlcnByZXRlZCBhcyBhIGxpdGVyYWwKICAgICAgIGJhY2tzbGFzaC4gIElmIHRoZSBudW1iZXIgb2YgYmFja3NsYXNoZXMgaXMgb2RkLCB0aGUgbGFzdAogICAgICAgYmFja3NsYXNoIGVzY2FwZXMgdGhlIG5leHQgZG91YmxlIHF1b3RhdGlvbiBtYXJrIGFzCiAgICAgICBkZXNjcmliZWQgaW4gcnVsZSAzLgogICAgdAEAAAAgcwEAAAAJdAEAAAAicwEAAABcaQIAAABzAgAAAFwidAAAAAAoBQAAAHQFAAAARmFsc2VSUAAAAHQDAAAAbGVudAYAAABleHRlbmR0BAAA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YXRmb3Jtc2kAAAAAczQAAABjcmVhdGlvbmZsYWdzIGlzIG9ubHkgc3VwcG9ydGVkIG9uIFdpbmRvd3MgcGxhdGZvcm1zdAIAAAB3YnQCAAAAclV0AgAAAHJiTigdAAAAUi8AAABSYgAAAHQOAAAAX2NoaWxkX2NyZWF0ZWR0CgAAAGlzaW5zdGFuY2V0AwAAAGludHQEAAAAbG9uZ3QJAAAAVHlwZUVycm9ydAkAAABtc3dpbmRvd3NSCwAAAFIsAAAAdAUAAABzdGRpblJbAAAAdAYAAABzdGRlcnJ0AwAAAHBpZFICAAAAdBIAAAB1bml2ZXJzYWxfbmV3bGluZXN0DAAAAF9nZXRfaGFuZGxlc3QOAAAAX2V4ZWN1dGVfY2hpbGR0CQAAAEV4Y2VwdGlvblIpAAAAdAgAAABleGNfaW5mb3QFAAAAQ2xvc2V0AgAAAG9zdAUAAABjbG9zZXQQAAAARW52aXJvbm1lbnRFcnJvcnQGAAAAbXN2Y3J0dA4AAABvcGVuX29zZmhhbmRsZXQGAAAARGV0YWNodAYAAABmZG9wZW4oGgAAAFIFAAAAUjUAAAB0BwAAAGJ1ZnNpemV0CgAAAGV4ZWN1dGFibGVSdgAAAFJbAAAAUncAAAB0CgAAAHByZWV4ZWNfZm50CQAAAGNsb3NlX2Zkc3QFAAAAc2hlbGx0AwAAAGN3ZHQDAAAAZW52UnkAAAB0CwAAAHN0YXJ0dXBpbmZvdA0AAABjcmVhdGlvbmZsYWdzdAcAAABwMmNyZWFkdAgAAABwMmN3cml0ZXQHAAAAYzJwcmVhZHQIAAAAYzJwd3JpdGV0BwAAAGVycnJlYWR0CAAAAGVycndyaXRldAgAAAB0b19jbG9zZXQIAAAAZXhjX3R5cGV0CQAAAGV4Y192YWx1ZXQJAAAAZXhjX3RyYWNldAIAAABmZCgAAAAAKAAAAABzdQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvc3VicHJvY2Vzcy5weVIGAAAAiAIAAHNuAAAAAAYHAgkBFQEPAgYBDAEPAh4BDAESBAwBDwIMAQ8DCQEJAQkBCQEJAQkT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c3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHlSFQAAACEDAABzAgAAAAABYwQAAAAMAAAACAAAAEMAAABzIwMAAHQAAIMAAH0EAHwBAGQCAGsIAHI3AHwCAGQCAGsIAHI3AHwDAGQCAGsIAHI3AGQDAHwEAGYCAFNkBABcAgB9BQB9BgBkBQBcAgB9BwB9CABkBgBcAgB9CQB9CgB8AQBkAgBrCAByowB0AgBqAwB0AgBqBACDAQB9BQB8BQBkAgBrCAByAAF0AgBqBQBkAgBkAQCDAgBcAgB9BQB9CwBxAAFuXQB8AQB0BgBrAgByygB0AgBqBQBkAgBkAQCDAgBcAgB9BQB9BgBuNgB0BwB8AQB0CACDAgBy6wB0CQBqCgB8AQCDAQB9BQBuFQB0CQBqCgB8AQBqCwCDAACDAQB9BQB8AABqDAB8BQCDAQB9BQB8BABqDQB8BQCDAQABfAEAdAYAawIAcjgBfAQAag0AfAYAgwEAAW4AAHwCAGQCAGsIAHKAAXQCAGoDAHQCAGoOAIMBAH0IAHwIAGQCAGsIAHLdAXQCAGoFAGQCAGQBAIMCAFwCAH0LAH0IAHHdAW5dAHwCAHQGAGsCAHKnAXQCAGoFAGQCAGQBAIMCAFwCAH0HAH0IAG42AHQHAHwCAHQIAIMCAHLIAXQJAGoKAHwCAIMBAH0IAG4VAHQJAGoKAHwCAGoLAIMAAIMBAH0IAHwAAGoMAHwIAIMBAH0IAHwEAGoNAHwIAIMBAAF8AgB0BgBrAgByFQJ8BABqDQB8BwCDAQABbgAAfAMAZAIAawgAcl0CdAIAagMAdAIAag8AgwEAfQoAfAoAZAIAawgAcs8CdAIAagUAZAIAZAEAgwIAXAIAfQsAfQoAcc8CbnIAfAMAdAYAawIAcoQCdAIAagUAZAIAZAEAgwIAXAIAfQkAfQoAbksAfAMAdBAAawIAcpkCfAgAfQoAbjYAdAcAfAMAdAgAgwIAcroCdAkAagoAfAMAgwEAfQoAbhUAdAkAagoAfAMAagsAgwAAgwEAfQoAfAAAagwAfAoAgwEAfQoAfAQAag0AfAoAgwEAAXwDAHQGAGsCAHIHA3wEAGoNAHwJAIMBAAFuAAB8BQB8BgB8BwB8CAB8CQB8CgBmBgB8BABmAgBTKAcAAABzfAAAAENvbnN0cnVjdCBhbmQgcmV0dXJuIHR1cGxlIHdpdGggSU8gb2JqZWN0czoKICAgICAgICAgICAgcDJjcmVhZCwgcDJjd3JpdGUsIGMycHJlYWQsIGMycHdyaXRlLCBlcnJyZWFkLCBlcnJ3cml0ZQogICAgICAgICAgICBpAAAAAE4oBgAAAE5OTk5OTigCAAAATk4oAgAAAE5OKAIAAABOTigRAAAAdAMAAABzZXRSCwAAAHQLAAAAX3N1YnByb2Nlc3N0DAAAAEdldFN0ZEhhbmRsZVIfAAAAdAoAAABDcmVhdGVQaXBlUhgAAABScQAAAFJyAAAAUoIAAAB0DQAAAGdldF9vc2ZoYW5kbGV0BgAAAGZpbGVub3QRAAAAX21ha2VfaW5oZXJpdGFibGV0AwAAAGFkZFIgAAAAUiEAAABSGQAAACgMAAAAUgUAAABSdgAAAFJbAAAAUncAAABSlQAAAFKPAAAAUpAAAABSkQAAAFKSAAAAUpMAAABSlAAAAHQBAAAAXygAAAAAKAAAAABzdQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvc3VicHJvY2Vzcy5weVJ6AAAAKQMAAHNkAAAAAAQJASQBCgIMAQwBDAIMARIBDAEeAQwBGwEPARIDFQEPAg0BDAEQAgwBEgEMAR4BDAEbAQ8BEgMVAQ8CDQEMARACDAESAQwBHgEMARsBDAEJAQ8BEgMVAQ8CDQEMARACBgEGAWMCAAAAAgAAAAcAAABDAAAAcysAAAB0AABqAQB0AABqAgCDAAB8AQB0AABqAgCDAABkAQBkAgB0AABqAwCDBgBTKAMAAABzMgAAAFJldHVybiBhIGR1cGxpY2F0ZSBvZiBoYW5kbGUsIHdoaWNoIGlzIGluaGVyaXRhYmxlaQAAAABpAQAAACgEAAAAUqcAAAB0DwAAAER1cGxpY2F0ZUhhbmRsZXQRAAAAR2V0Q3VycmVudFByb2Nlc3N0FQAAAERVUExJQ0FURV9TQU1FX0FDQ0VTUygCAAAAUgUAAAB0BgAAAGhhbmRsZSgAAAAAKAAAAABzdQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvc3VicHJvY2Vzcy5weVKsAAAAbwMAAHMGAAAAAAIPARIBYwEAAAACAAAABAAAAEMAAABziAAAAHQAAGoBAGoCAHQAAGoBAGoDAHQEAGoFAGQBAIMBAIMBAGQCAIMCAH0BAHQAAGoBAGoGAHwBAIMBAHOEAHQAAGoBAGoCAHQAAGoBAGoDAHQHAGoIAIMBAGQCAIMCAH0BAHQAAGoBAGoGAHwBAIMBAHOEAHQJAGQDAIMBAIIBAHGEAG4AAHwBAFMoBAAAAHMsAAAARmluZCBhbmQgcmV0dXJuIGFic29sdXQgcGF0aCB0byB3OXhwb3Blbi5leGVpAAAAAHMMAAAAdzl4cG9wZW4uZXhlc1oAAABDYW5ub3QgbG9jYXRlIHc5eHBvcGVuLmV4ZSwgd2hpY2ggaXMgbmVlZGVkIGZvciBQb3BlbiB0byB3b3JrIHdpdGggeW91ciBzaGVsbCBvciBwbGF0Zm9ybS4oCgAAAFJ/AAAAdAQAAABwYXRoUmUAAAB0BwAAAGRpcm5hbWVSpwAAAHQRAAAAR2V0TW9kdWxlRmlsZU5hbWV0BgAAAGV4aXN0c1IpAAAAdAsAAABleGVjX3ByZWZpeHQMAAAAUnVudGltZUVycm9yKAIAAABSBQAAAHQIAAAAdzl4cG9wZW4oAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHl0DgAAAF9maW5kX3c5eHBvcGVudgMAAHMSAAAAAAIJARgBCQESAxsBCQESARIDYxIAAAAaAAAACwAAAAMAAABzGQIAAHQAAHwBAHQBAGoCAIMCAHMhAHQDAHwBAIMBAH0BAG4AAHwIAGQI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IGluIGl0cyBsb2NhbCBzY29wZS4KCiAgICAgICAgICAgIGkAAAAATigDAAAAUgIAAABSCwAAAFLGAAAAKAUAAABSBQAAAFImAAAAdBQAAABfV2FpdEZvclNpbmdsZU9iamVjdHQOAAAAX1dBSVRfT0JKRUNUXzB0EwAAAF9HZXRFeGl0Q29kZVByb2Nlc3MoAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHlSKAAAANgDAABzCAAAAAALDwEYARgBYwEAAAABAAAAAwAAAEMAAABzRAAAAHwAAGoAAGQBAGsIAHI9AHQCAGoDAHwAAGoEAHQCAGoFAIMCAAF0AgBqBgB8AABqBACDAQB8AABfAABuAAB8AABqAABTKAIAAABzTwAAAFdhaXQgZm9yIGNoaWxkIHByb2Nlc3MgdG8gdGVybWluYXRlLiAgUmV0dXJucyByZXR1cm5jb2RlCiAgICAgICAgICAgIGF0dHJpYnV0ZS5OKAcAAABSAgAAAFILAAAAUqcAAAB0EwAAAFdhaXRGb3JTaW5nbGVPYmplY3RSxgAAAHQIAAAASU5GSU5JVEV0EgAAAEdldEV4aXRDb2RlUHJvY2VzcygBAAAAUgUAAAAoAAAAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHlSVgAAAOkDAABzCgAAAAADDwEMAQoBGAFjAwAAAAMAAAACAAAAQwAAAHMXAAAAfAIAagAAfAEAagEAgwAAgwEAAWQAAFMoAQAAAE4oAgAAAFJQAAAAUqMAAAAoAwAAAFIFAAAAdAIAAABmaHQGAAAAYnVmZmVyKAAAAAAoAAAAAHN1AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3Ri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bGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHl0EwAAAHJlZ2lzdGVyX2FuZF9hcHBlbmSXBQAAcwQAAAAAARYBYwEAAAABAAAAAgAAABMAAABzLAAAAIgBAGoAAHwAAIMBAAGIAAB8AAAZagEAgwAAAYgAAGoCAHwAAIMBAAFkAABTKAEAAABOKAMAAAB0CgAAAHVucmVnaXN0ZXJSgAAAAHQDAAAAcG9wKAEAAABSmQAAACgCAAAAUiwBAABSLQEAACgAAAAAc3UAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3N1YnByb2Nlc3MucHl0GwAAAGNsb3NlX3VucmVnaXN0ZXJfYW5kX3JlbW92ZZsFAABzBgAAAAABDQEOAWkAAAAAaQAQAAAoFgAAAFILAAAAdAYAAABzZWxlY3RSFQAAAFJ2AAAAdAcAAABQT0xMT1VUdAYAAABQT0xMSU50BwAAAFBPTExQUklSWwAAAFKrAAAAUncAAABSFAAAAFI1AAAAUjIAAABSMwAAAHQJAAAAX1BJUEVfQlVGUn8AAABSoAAAAFIxAAAAUqEAAABSYwAAAFKjAAAAUlAAAAAoDwAAAFIFAAAAUqUAAABSWwAAAFJ3AAAAdAkAAABmZDJvdXRwdXRSLgEAAFIxAQAAdBUAAABzZWxlY3RfUE9MTElOX1BPTExQUkl0DAAAAGlucHV0X29mZnNldHQFAAAAcmVhZHlSNgAAAFKZAAAAdAQAAABtb2RldAUAAABjaHVua1KbAAAAKAAAAAAoAgAAAFIsAQAAUi0BAABzdQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvc3VicHJvY2Vzcy5weVInAQAAkAUAAHNUAAAAAAEGAQYBBgEGAgwBEgQSBQ8BFgIQAQkBEAEaAQkBEAEaAgYBCQEDARAB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