LyoKICogT2xlVmlldyAoRnIucmMpCiAqIEZyZW5jZyBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEpvbmF0aGFuIEVybnN0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKSURNX01FTlUgTUVOVQp7CiAgICBQT1BVUCAiJkZpY2hpZXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZMaWVyIGF1IGZpY2hpZXIuLi4iLCAgICBJRE1fQklORAogICAgICAgIE1FTlVJVEVNICImQWZmaWNoZXIgbGEgVHlwZUxpYi4uLiIsICAgIElETV9UWVBFTElCCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZDb25maWd1cmF0aW9uIHN5c3TobWUuLi4iLCAgICBJRE1fU1lTQ09ORgogICAgICAgIE1FTlVJVEVNICImRXjpY3V0ZXIgbCfpZGl0ZXVyIGRlIGxhIGJhc2UgZGUgcmVnaXN0cmUiLCAgICBJRE1fUkVHRURJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUXVpdHRlciIsICAgIElETV9FWElUCiAgICB9CiAgICBQT1BVUCAiJk9iamV0IgogICAgewogICAgICAgIFBPUFVQICImQ29DcmVhdGVJbnN0YW5jZSBGbGFnIgogICAgICAgIHsKICAgICAgICAgICAgTUVOVUlURU0gIkNMU0NUWF8mSU5QUk9DX1NFUlZFUiIsICAgIElETV9GTEFHX0lOU0VSVixDSEVDS0VECiAgICAgICAgICAgIE1FTlVJVEVNICJDTFNDVFhfSU5QUk9DXyZIQU5ETEVSIiwgICAgSURNX0ZMQUdfSU5IQU5ETAogICAgICAgICAgICBNRU5VSVRFTSAiQ0xTQ1RYXyZMT0NBTF9TRVJWRVIiLCAgICAgICAgSURNX0ZMQUdfTE9DU0VSVixDSEVDS0VECiAgICAgICAgICAgIE1FTlVJVEVNICJDTFNDVFhfJlJFTU9URV9TRVJWRVIiLCAgICBJRE1fRkxBR19SRU1TRVJWCiAgICAgICAgfQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBZmZpY2hlciBsZXMgaW5mb3JtYXRpb25zIHN1ciBsZSAmdHlwZSIsICAgIElETV9UWVBFSU5GTywgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkNy6WVyIHVuZSAmaW5zdGFuY2UiLCAgICBJRE1fQ1JFQVRFSU5TVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkNy6WVyIHVuZSBpbnN0YW5jZSAmc3VyLi4uIiwgICAgSURNX0NSRUFURUlOU1RPTiwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZMaWLpcmVyIGwnaW5zdGFuY2UiLCAgICBJRE1fUkVMRUFTRUlOU1QsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDb3BpZXIgbGUgJkNMU0lEIGRhbnMgbGUgcHJlc3NlLXBhcGllcnMiLCAgICBJRE1fQ09QWUNMU0lELCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiQ29waWVyIGxhIGJhbHNlICZIVE1MIGRlIGwnb2JqZXQgZGFucyBsZSBwcmVzc2UtcGFwaWVycyIsIElETV9IVE1MVEFHLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFmZmljaGVyLi4uIiwgICAgSURNX1ZJRVcsIEdSQVlFRAogICAgfQogICAgUE9QVVAgIiZBZmZpY2hhZ2UiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIk1vZGUgJmV4cGVydCIsICAgIElETV9FWFBFUlQsQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDYXTpZ29yaWVzIGRlIGNvbXBzYW50cyAmY2FjaOlzIiwgICAgSURNX0hJRERFTiwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCYXJyZSBkJ291dGlscyIsICAgIElETV9UT09MQkFSLENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiQmFycmUgZCfpJnRhdCIsICAgIElETV9TVEFUVVNCQVIsQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBJmN0dWFsaXNlclx0RjUiLCAgICBJRE1fUkVGUkVTSAogICAgfQogICAgUE9QVVAgIkFpZCZlIgogICAgewogICAgICAgIE1FTlVJVEVNICLAICZwcm9wb3MgZGUgT2xlVmlldyIsICAgIElETV9BQk9VVAogICAgfQp9CgpJRE1fVFlQRUxJQiBNRU5VCnsKICAgIFBPUFVQICImRmljaGllciIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgJnNvdXMuLi4iLCAgICBJRE1fU0FWRUFTCiAgICAgICAgTUVOVUlURU0gIiZGZXJtZXIiLCAgSURNX0NMT1NFCiAgICB9CiAgICBQT1BVUCAiJkFmZmljaGFnZSIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJkdyb3VwZXIgcGFyIHR5cGUiLCBJRE1fR1JPVVAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQmFycmUgZCcmb3V0aWxzIiwgICAgSURNX1RPT0xCQVIKICAgICAgICBNRU5VSVRFTSAiJkJhcnJlIGQn6XRhdCIsIElETV9TVEFUVVNCQVIsQ0hFQ0tFRAogICAgfQp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfQVBQTkFNRSAgICAgICAgICAgICJPbGVWaWV3IgogICAgSURTX0FQUFRJVExFICAgICAgICAgICAiT2xlVmlldyIKICAgIElEU19SRUFEWSAgICAgICAgICAgICAgIlBy6nQiCiAgICBJRFNfQUJPVVQgICAgICAgICAgICAgICJPbGVWaWV3IC0gVmlzaW9ubmV1ciBkJ29iamV0cyBPTEUvQ09NIgogICAgSURTX0FCT1VUVkVSICAgICAgICAgICAidmVyc2lvbiAxLjAiCiAgICBJRFNfVFlQRUxJQlRJVExFICAgICAgICJWaXNpb25uZXVyIGQnSVR5cGVMaWIiCiAgICBJRFNfT1BFTiAgICAgICAgICAgICAgICJPdXZyaXIiCiAgICBJRFNfT1BFTl9UWVBFTElCX0ZJTFRFUiAiVHlwZUxpYiBGaWxlcyAoKi50bGI7Ki5vbGI7Ki5kbGw7Ki5vY3g7Ki5leGUpXDAqLnRsYjsqLm9sYjsqLmRsbDsqLm9jeDsqLmV4ZVwwQWxsIEZpbGVzICgqLiopXDAqLipcMFwwIgoKICAgIElETV9CSU5ELCAgICAgICAgICAgICAgIkxpZSDgIHVuIGZpY2hpZXIg4CBsJ2FpZGUgZCd1biBGaWxlIE1vbmlrZXIiCiAgICBJRE1fVFlQRUxJQiwgICAgICAgICAgICJPdXZyZSB1biBmaWNoaWVyIFR5cGVMaWIgZXQgYWZmaWNoZXIgc29uIGNvbnRlbnUiCiAgICBJRE1fU1lTQ09ORiwgICAgICAgICAgICJNb2RpZmllIGxlcyBwYXJhbeh0cmVzIENPTSBkaXN0cmlidellcyBwb3VyIGwnZW5zZW1ibGUgZGUgbGEgbWFjaGluZSIKICAgIElETV9SRUdFRElULCAgICAgICAgICAgIkV46WN1dGUgbCfpZGl0ZXVyIGRlIGJhc2UgZGUgcmVnaXN0cmUgZGUgV2luZSIKICAgIElETV9FWElULCAgICAgICAgICAgICAgIlF1aXR0ZSBsJ2FwcGxpY2F0aW9uIGFwcuhzIGF2b2lyIGRlbWFuZOkgcydpbCBmYXV0IGVucmVnaXN0cmVyIGxlcyBtb2RpZmljYXRpb25zIgogICAgSURNX0NSRUFURUlOU1QsICAgICAgICAiQ3LpZSB1bmUgaW5zdGFuY2UgZGUgbCdvYmpldCBz6WxlY3Rpb25u6SIKICAgIElETV9DUkVBVEVJTlNUT04sICAgICAgIkNy6WUgdW5lIGluc3RhbmNlIGRlIGwnb2JqZXQgc+lsZWN0aW9ubukgc3VyIHVuZSBtYWNoaW5lIHNw6WNpZmlxdWUiCiAgICBJRE1fUkVMRUFTRUlOU1QsICAgICAgICJMaWLocmUgbCdpbnN0YW5jZSBkZSBsJ29iamV0IGFjdHVlbGxlbWVudCBz6WxlY3Rpb25u6SIKICAgIElETV9DT1BZQ0xTSUQsICAgICAgICAgIkNvcGllIGxlIEdVSUQgZGUgbCdvYmpldCBhY3R1ZWxsZW1lbnQgc+lsZWN0aW9ubukgZGFucyBsZSBwcmVzc2UtcGFwaWVycyIKICAgIElETV9WSUVXLCAgICAgICAgICAgICAgIkFmZmljaGUgbGUgdmlzaW9ubmV1ciBwb3VyIGwnb2JqZXQgYWN0dWVsbGVtZW50IHPpbGVjdGlvbm7pIgogICAgSURNX0ZMQUdfSU5TRVJWLCAgICAgICAiVXRpbGlzZSBDTFNDVFhfSU5QUk9DX1NFUlZFUiBsb3JzIGRlIGwnYXBwZWwg4CBDb0dldENsYXNzT2JqZWN0IgogICAgSURNX0ZMQUdfSU5IQU5ETCwgICAgICAiVXRpbGlzZSBDTFNDVFhfSU5QUk9DX0hBTkRMRVIgbG9ycyBkZSBsJ2FwcGVsIOAgQ29HZXRDbGFzc09iamVjdCIKICAgIElETV9GTEFHX0xPQ1NFUlYsICAgICAgIlV0aWxpc2UgQ0xTQ1RYX0xPQ0FMX1NFUlZFUiBsb3JzIGRlIGwnYXBwZWwg4CBDb0dldENsYXNzT2JqZWN0IgogICAgSURNX0ZMQUdfUkVNU0VSViwgICAgICAiVXRpbGlzZSBDTFNDVFhfUkVNT1RFX1NFUlZFUiBsb3JzIGRlIGwnYXBwZWwg4CBDb0dldENsYXNzT2JqZWN0IgogICAgSURNX0VYUEVSVCwgICAgICAgICAgICAiQmFzY3VsZSBlbnRyZSBsZSBtb2RlIGQnYWZmaWNoYWdlIGV4cGVydCBldCBsZSBtb2RlIGQnYWZmaWNoYWdlIGTpYnV0YW50IgogICAgSURNX0hJRERFTiwgICAgICAgICAgICAiQmFzY3VsZSBsJ2FmZmljaGFnZSBkZXMgY2F06WdvcmllcyBkZXMgY29tcG9zYW50IHF1aSBuZSBzb250IHBhcyBwcul2dWUgcG91ciDqdHJlIHZpc2libGUiCiAgICBJRE1fVE9PTEJBUiwgICAgICAgICAgICJBZmZpY2hlIG91IG1hc3F1ZSBsYSBiYXJyZSBkJ291dGlscyIKICAgIElETV9TVEFUVVNCQVIsICAgICAgICAgIkFmZmljaGUgb3UgbWFzcXVlIGxhIGJhcnJlIGQn6XRhdCIKICAgIElETV9SRUZSRVNILCAgICAgICAgICAgIkFjdHVhbGlzZSB0b3V0ZXMgbGVzIGxpc3RlcyIKICAgIElETV9BQk9VVCwgICAgICAgICAgICAgIkFmZmljaGUgbGVzIGluZm9ybWF0aW9ucyBzdXIgbGUgcHJvZ3JhbW1loDsgbGUgbnVt6XJvIGRlIHZlcnNpb24gZXQgbGEgbGljZW5jZSIKCiAgICBJRE1fU0FWRUFTLCAgICAgICAgICAgICJFbnJlZ2lzdHJlciBlbiB0YW50IHF1ZSBmaWNoaWVyIC5JREwgb3UgLkgiCiAgICBJRE1fQ0xPU0UsICAgICAgICAgICAgICJGZXJtZXIgbGEgZmVu6nRyZSIKICAgIElETV9HUk9VUCwgICAgICAgICAgICAgIkdyb3VwZXIgcGFyIHR5cGVpbmZvcyIKCiAgICBJRFNfVFJFRV9PQywgICAgICAgICAgICJPYmplY3RDbGFzc2VzIgogICAgSURTX1RSRUVfR0JDQywgICAgICAgICAiR3JvdXDpcyBwYXIgY2F06WdvcmllIGRlIGNvbXBvc2FudHMiCiAgICBJRFNfVFJFRV9PMU8sICAgICAgICAgICJPYmpldHMgT0xFIDEuMCIKICAgIElEU19UUkVFX0NMTywgICAgICAgICAgIk9iamV0cyBkZSBsYSBiaWJsaW90aOhxdWUgQ09NIgogICAgSURTX1RSRUVfQU8sICAgICAgICAgICAiVG91cyBsZXMgb2JqZXRzIgogICAgSURTX1RSRUVfQUlELCAgICAgICAgICAiSWRlbnRpZmljYXRldXJzIGQnYXBwbGljYXRpb24iCiAgICBJRFNfVFJFRV9UTCwgICAgICAgICAgICJCaWJsaW90aOhxdWVzIHR5cGUiCiAgICBJRFNfVExfVkVSLCAgICAgICAgICAgICJ2ZXIuIgogICAgSURTX1RSRUVfSSwgICAgICAgICAgICAiSW50ZXJmYWNlcyIKCiAgICBJRFNfVEFCX1JFRywgICAgICAgICAgICJCYXNlIGRlIHJlZ2lzdHJlIgogICAgSURTX1RBQl9JTVBMLCAgICAgICAgICAiSW1wbOltZW50YXRpb24iCiAgICBJRFNfVEFCX0FDVElWLCAgICAgICAgICJBY3RpdmF0aW9uIgoKICAgIElEU19DR0NPRkFJTCwgICAgICAgICAgIkNvR2V0Q2xhc3NPYmplY3QgYSDpY2hvdekuIgogICAgSURTX0VSUk9SX1VOS04sICAgICAgICAiRXJyZXVyIGluY29ubnVlIgogICAgSURTX1RSVUUsICAgICAgICAgICAgICAiVHJ1ZSIKICAgIElEU19GQUxTRSwgICAgICAgICAgICAgIkZhdXgiCiAgICBJRFNfQllURVMsICAgICAgICAgICAgICJvY3RldHMiCgogICAgSURTX0VSUk9SX0xPQURUWVBFTElCLCAiyWNoZWMgZGUgTG9hZFR5cGVMaWIoICVzICkgKCQleCkiCiAgICBJRFNfSU5IRVJJVElOVEVSRkFDRVMsICJJbnRlcmZhY2VzIGjpcml06WVzIgp9CgpETEdfQ1JFQVRFSU5TVE9OIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyNTAsIDQxClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJTZSBjb25uZWN0ZXIg4CB1bmUgYXV0cmUgbWFjaGluZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICJOb20gZGUgbGEgJm1hY2hpbmWgOiIsIC0xLCA1LCA2LCAxOTAsIDgKICAgIEVESVRURVhUICAgIElEQ19NQUNISU5FLCA1LCAxNiwgMTkwLCAxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIiZPSyIsIElET0ssIDIwMCwgNSwgNDUsIDE0CiAgICBQVVNIQlVUVE9OICAiJkFubnVsZXIiLCBJRENBTkNFTCwgMjAwLCAyMiwgNDUsIDE0Cn0KCkRMR19TWVNDT05GIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAxNzAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJhdGlvbiBzeXN06G1lIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICAgIlBhcmFt6HRyZXMgc3lzdOhtZSIsIC0xLCA1LCA2LCAxNjAsIDgKICAgIENIRUNLQk9YICAgICImQWN0aXZlciBsZSBDT00gZGlzdHJpYnXpIiwgSURDX0VOQUJMRURDT00sIDUsIDIwLCAxNjAsIDEwLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIENIRUNLQk9YICAgICJBY3RpdmVyIGxlcyBjb25uZXhpb25zIOAgJmRpc3RhbmNlIChzZXVsZW1lbnQgV2luOTUpIiwgSURDX0VOQUJMRVJFTU9URSwgNSwgMzUsIDE2MCwgMTAsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgTFRFWFQgICAiQ2VzIHBhcmFt6HRyZXMgbmUgZm9udCBxdWUgbW9kaWZpZXIgbGVzIHZhbGV1cnMgZHUgcmVnaXN0cmUuXG5JbHMgbidvbnQgcGFzIGQnZWZmZXQgc3VyIGxlcyBwZXJmb3JtYW5jZXMgZGUgV2luZS4iLCAtMSwgNSwgNTAsIDE2MCwgNDAKICAgIERFRlBVU0hCVVRUT04gICAiJk9LIiwgSURPSywgNzAsIDgwLCA0NSwgMTQKICAgIFBVU0hCVVRUT04gICImQW5udWxlciIsIElEQ0FOQ0VMLCAxMjAsIDgwLCA0NSwgMTQKfQoKRExHX0RFRkFVTFRfSVYgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI4MCwgNTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX05PSURMRU1TRyB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlZpc2lvbm5ldXIgZCdpbnRlcmZhY2UgcGFyIGTpZmF1dCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICJJbnRlcmZhY2UiLCAtMSwgNSwgNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19MQUJFTCwgNjAsIDYsIDE0NSwgOAogICAgTFRFWFQgICAiSUlEOiIsIC0xLCA1LCAxNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19JREVOVElGSUVSLCA2MCwgMTYsIDE2NSwgOAogICAgREVGUFVTSEJVVFRPTiAgICImRmVybWVyIiwgSURDQU5DRUwsIDIzMCwgNiwgNDUsIDE0CiAgICBQVVNIQlVUVE9OICAiJkFmZmljaGVyIGxlcyBpbmZvcm1hdGlvbnMgZGUgdHlwZSIsIElEQ19WSUVXVFlQRUlORk8sIDYsIDMxLCA3MCwgMTQsIFdTX0RJU0FCTEVECn0KCkRMR19JUEVSU0lTVF9JViBESUFMT0cgRElTQ0FSREFCTEUgMCwgMCwgMjgwLCAyOQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSVBlcnNpc3QgSW50ZXJmYWNlIFZpZXdlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICJOb20gZGUgbGEgY2xhc3NloDoiLCAtMSwgNSwgNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19MQUJFTCwgNjAsIDYsIDE0NSwgOAogICAgTFRFWFQgICAiQ0xTSUQ6IiwgLTEsIDUsIDE2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0lERU5USUZJRVIsIDYwLCAxNiwgMTY1LCA4CiAgICBERUZQVVNIQlVUVE9OICAgIiZGZXJtZXIiLCBJRENBTkNFTCwgMjMwLCA2LCA0NSwgMTQKfQoKRExHX0lQRVJTSVNUU1RSRUFNX0lWIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDY4ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJWaXNpb25uZXVyIGQnaW50ZXJmYWNlIElQZXJzaXN0U3RyZWFtIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICAgIk5vbSBkZSBsYSBjbGFzc2WgOiIsIC0xLCA1LCA2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0xBQkVMLCA2MCwgNiwgMTQ1LCA4CiAgICBMVEVYVCAgICJDTFNJRDoiLCAtMSwgNSwgMTYsIDUwLCA4CiAgICBMVEVYVCAgICIiLCBJRENfSURFTlRJRklFUiwgNjAsIDE2LCAxNjUsIDgKICAgIERFRlBVU0hCVVRUT04gICAiJkZlcm1lciIsIElEQ0FOQ0VMLCAyMzAsIDYsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZJc0RpcnR5IiwgSURDX0lTRElSVFlfQlVUVE9OLCA2LCAzMSwgNTAsIDE0CiAgICBMVEVYVCAgICI/Pz8iLCBJRENfSVNESVJUWSwgNjAsIDM0LCAxNDUsIDgKICAgIFBVU0hCVVRUT04gICImR2V0U2l6ZU1heCIsIElEQ19HRVRTSVpFTUFYX0JVVFRPTiwgNiwgNDksIDUwLCAxNAogICAgTFRFWFQgICAiPz8/IiwgSURDX0dFVFNJWkVNQVgsIDYwLCA1MiwgMTQ1LCA4Cn0K