Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1veRUi-00DQHY-0n for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jan 2026 05:26:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1veRUa-009Xhq-33 for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jan 2026 05:26:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1veRUZ-009Xhi-2o for pgsql-hackers@lists.postgresql.org; Sat, 10 Jan 2026 05:26:29 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1veRUX-005Bl4-1a for pgsql-hackers@lists.postgresql.org; Sat, 10 Jan 2026 05:26:27 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-59b79f700a1so2090589e87.0 for ; Fri, 09 Jan 2026 21:26:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768022783; x=1768627583; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=8AFyTfwFvB82dCeUw5bFYRnchpxvmx2d7iyLV4qlPXg=; b=RiiB4rTIU5PwpbMc3J7dPDBOYH0zwgZmMnA5Rp4ROD9IFFx+XMFv6wKbX5sF9Ty0SK 2QbmhmloU34zkah1HijbLQAXDnQciXApTsJAdTR5rALVTmjj2fwc9pedZ82bRS25Kuel CL3NKMEKpllrV0Dv3PC/46F1x0LiUsSKLAvHtnyFRsgdi/98kUAr+DsfNvCoNL+Uqn+9 cSJvo28W16QWXGmlfPpmFH5Wr1oj6qKsDFfW259ddPxYHj53SnDOUmFYDbNtXHqi2c5w IUD05b7ucqa/mnk+/FOqhXgB25Jbgt6/5hGDj0hVeIt8WzTW5kYwpPI0Kjewy/8G18zt ELOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768022783; x=1768627583; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=8AFyTfwFvB82dCeUw5bFYRnchpxvmx2d7iyLV4qlPXg=; b=V4r7dj+s61DUPegmHAGi07C1is78jcBCDsVzg3JI9yVsxqvOZ+8Y3Aa/PpK+ZZIR5Q EfLaXlpiMAzhhmMfDPUr5Mmmbb8ofKePvs0ioYPLEC5C6U+PNUKueKjZocgH09YRGorV umlbzCpJWLWyuDumex6G2+cUJ6zhAb2YmX99YfE07HjbfcczlLwKIbsjEms7pJ3Oc67v j+g/vHBlEcY0b4NJpzjA31d90bk08+w5C/UzmXhmKotb03PWnoIChBgpi6+UtYYYYwEC bLt1BOkx3cuoflMOi6Q3RbP2DuMH8hSUSe78hqXQezmEqgBpSKGNz0H6rWg42s2QMXqz J7mg== X-Forwarded-Encrypted: i=1; AJvYcCVntLTWhzWcHJpIK1kBWakO1JlHKekvaAVVK8jmw8yFXVY7sej1ZeuOkla4AImS92Vs2KV783kC96ZDpraM@lists.postgresql.org X-Gm-Message-State: AOJu0Ywuu0z+cdu3LoVdxvs20QimItm96uVwN19DRgnBiVjQT6mz5s41 l5IU0ISe4AOKaRvROerY3bGwFFyCtR6Yj2GTn4zLfRy/b9y9N5TVdhtODsqvdxPUrvRJ73UuSJt gVqL4KfPP2L3PH4HvjVRVsxiH22jjVTs= X-Gm-Gg: AY/fxX5PxUJGoAAmRygNHA2fu3WFMK5HxqTlUeSXbYKCTzFdcNVCTdhRNho26Dkl7OP FR3NvLwL2WpLRlNOOrtIbAiorJ2D4k+MoCSKu4Z20KLsNfuG9sqQ/+JI9oe9ZvQWFa76MH5k5bH wYUkmgZKQgfSWPZlW5FdyJGL7msNQnWCvmttWYlYCfsufDq4SOLNKf3TCY6X7iB37Z9oRXW0roT JEkx5Sz63HXUXAiIQv/IJefgmyjDh6ppuQ9ukKU4/Kw91QAnEhKER/xWcPHLGP/eXSjVrfklvAR QiTB9LB3DtwCAjC1ScnosWEjYXfj X-Google-Smtp-Source: AGHT+IGjQV1QH5EfDdTtd6/k09slvDX9kDh5E4EZ4J3APyfvv9EZMXvgXcRsGlvwQ3B4kowi82sgWEKFmVhXbPegyJw= X-Received: by 2002:a05:6512:ba7:b0:59b:7bb3:bdc1 with SMTP id 2adb3069b0e04-59b7bb3bef3mr2090472e87.2.1768022783120; Fri, 09 Jan 2026 21:26:23 -0800 (PST) MIME-Version: 1.0 References: <89DE974B-F318-4D0A-A60B-51EDE84054E2@gmail.com> <9A074422-2308-4BD0-9FFA-0B6D70989935@yandex-team.ru> <70c72cb1-a39f-41b3-bfe3-e32ee7fda9c4@uni-muenster.de> <68a012d3-121b-418a-913b-aa0aaf32915d@uni-muenster.de> In-Reply-To: From: Marcos Magueta Date: Sat, 10 Jan 2026 02:26:11 -0300 X-Gm-Features: AQt7F2qsD30--l0JD-CibMX5pUTK_yI49pVhpBL4X_xjW_NR7mP6YPo_Z-uyImQ Message-ID: Subject: Re: WIP - xmlvalidate implementation from TODO list To: Jim Jones Cc: Andrey Borodin , Kirill Reshke , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000f171b2064801e10e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f171b2064801e10e Content-Type: multipart/alternative; boundary="000000000000f171b0064801e10c" --000000000000f171b0064801e10c Content-Type: text/plain; charset="UTF-8" Hello there, Postgres hackers! Since we last talked I tried to actually implement a catalog for XML schemas. It was a bit challenging personally. I particularly had an issue with SYSCACHE so I can search the xmlschema entries. I mostly tried to follow examples around the codebase (specially when it comes to security, which I mostly mirrored from sequences), so if I am misusing something, that's likely the problem, so please point that out. Some highlights of the changes are: What's implemented so far: - New pg_xmlschema catalog (OIDs 6434 to 6438) for storing XML schema definitions - The validation function itself: XMLVALIDATE(DOCUMENT xml_expr ACCORDING TO XMLSCHEMA xml_schema_name) - DDL support: CREATE XMLSCHEMA, DROP XMLSCHEMA, ALTER XMLSCHEMA (with IF NOT EXISTS, RENAME, SET SCHEMA, OWNER TO) - Two syscaches (XMLSCHEMAOID and XMLSCHEMANAMENSP) for lookups during parsing and execution - Dependency tracking so schemas can't be dropped while views/rules reference them (I think I even added a test for it, but it's worth checking more closely) - Integration with PostgreSQL's object system (event triggers, security labels, permissions) -- I was mostly following what was in place already and adding what seemed necessary - Grants and role permissions The flow is the following: schemas are registered via CREATE XMLSCHEMA, then at parse time the schema name gets resolved to an OID (with dependencies recorded), and finally at execution time the schema is fetched by OID and used for validation. Please note that I only implemented DOCUMENT mode for now, as it seemed like the most common use case and kept things simpler. CONTENT mode by the standard seems to require another keyword to make things useful (ELEMENT), which is a bit problematic since it's a fairly used word to conflict on any database (it broke on the current tests when I ran already, so...). With the ELEMENT we could do things like: XMLVALIDATE(CONTENT 'C. J. Date' ACCORDING TO XMLSCHEMA book ELEMENT author), which is fairly powerful if you want to validate just parts of the xml document, but again, it's scrapped from this version because I wanted to pull my hair out dealing with it. Following the SQL/XML standard, XMLVALIDATE returns the validated XML, not a boolean anymore, and raises ERROR on validation failure. So now we can do things like INSERT INTO r VALUES (XMLVALIDATE(...)) and other cool compositions. The documentation is still tracking the old xmlvalidate behavior and nothing about the catalog changes.I can fix all that before submission if the overall approach looks reasonable. Permissions are a bit trickier, I thought of just relying on USAGE, since the question for an XML validation is "Can I use this XML schema in a call?". I think FDW works like that currently. I tried adding a bunch of examples on xml.sql. One change I specifically wanted feedback on are the changes on parse_expr.c. Since I need to resolve the name of the schema, I thought doing so at parsing time was the correct approach. In there I extract schema name before the ResTarget loop runs, resolve it to OID using get_xmlschema_oid(), save the string form in newx->name for deparsing (so views can be displayed correctly) and finally clear x->named_args = NIL so the ResTarget loop below has nothing to process. This approach reuses the existing named_args field as temporary storage during parsing, then converts it properly during transformation. It felt strange, but it avoids adding another field to the XmlExpr structure just for XMLVALIDATE. Also, I made the variables that get modified inside of the PG_TRY block volatile as it seems to be a pattern likely to force the compiler to do memory access instead of relying on registers during jumps. I'm attaching the patch for another round of review (please excuse the lack of the linter, I tried running but had some issues). Any feedback would be really appreciated, this was quite an adventure. PS: I noticed now that I haven't copied the changes over to xml1.out nor xml2.out. But This is just for the feature validation round, so I can fix that later. Thanks for taking a look! --000000000000f171b0064801e10c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello there, Postgres hackers!
Since we last talked I tried to actually implement a catalog for XML sche= mas. It was a bit challenging personally.

I particularly had an issu= e with SYSCACHE so I can search the xmlschema entries. I mostly tried to fo= llow examples around the codebase (specially when it comes to security, whi= ch I mostly mirrored from sequences), so if I am misusing something, that&#= 39;s likely the problem, so please point that out. Some highlights of the c= hanges are:

What's implemented so far:
=C2=A0 - New pg_xmlsch= ema catalog (OIDs 6434 to 6438) for storing XML schema definitions
=C2= =A0 - The validation function itself: XMLVALIDATE(DOCUMENT xml_expr ACCORDI= NG TO XMLSCHEMA xml_schema_name)
=C2=A0 - DDL support: CREATE XMLSCHEMA,= DROP XMLSCHEMA, ALTER XMLSCHEMA (with IF NOT EXISTS, RENAME, SET SCHEMA, O= WNER TO)
=C2=A0 - Two syscaches (XMLSCHEMAOID and XMLSCHEMANAMENSP) for = lookups during parsing and execution
=C2=A0 - Dependency tracking so sch= emas can't be dropped while views/rules reference them (I think I even = added a test for it, but it's worth checking more closely)
=C2= =A0 - Integration with PostgreSQL's object system (event triggers, secu= rity labels, permissions) -- I was mostly following what was in place alrea= dy and adding what seemed necessary
=C2=A0 - Grants and role perm= issions

The flow is the following: schemas are registered via CREA= TE XMLSCHEMA, then at parse time the schema name gets resolved to an OID (w= ith dependencies recorded), and finally at execution time the schema is fet= ched by OID and used for validation. Please note that I only implemented DO= CUMENT mode for now, as it seemed like the most common use case and kept th= ings simpler. CONTENT mode by the standard seems to require another keyword= to make things useful (ELEMENT), which is a bit problematic since it's= a fairly used word to conflict on any database (it broke on the current te= sts when I ran already, so...). With the ELEMENT we could do things like: X= MLVALIDATE(CONTENT '<author>C. J. Date</author>' ACCORD= ING TO XMLSCHEMA book ELEMENT author), which is fairly powerful if you want= to validate just parts of the xml document, but again, it's scrapped f= rom this version because I wanted to pull my hair out dealing with it.
<= br>Following the SQL/XML standard, XMLVALIDATE returns the validated XML, n= ot a boolean anymore, and raises ERROR on validation failure. So now we can= do things like INSERT INTO r VALUES (XMLVALIDATE(...)) and other cool comp= ositions.

The documentation is still tracking the old xmlvalidate be= havior and nothing about the catalog changes.I can fix all that before subm= ission if the overall approach looks reasonable.

Permissi= ons are a bit trickier, I thought of just relying on USAGE, since the quest= ion for an XML validation is "Can I use this XML schema in a call?&quo= t;. I think FDW works like that currently. I tried adding a bunch of exampl= es on xml.sql.

One change=C2=A0I specifically want= ed feedback on are the changes on parse_expr.c. Since I need to resolve the= name of the schema, I thought doing so at parsing time was the correct app= roach. In there I extract schema name before the ResTarget loop runs, resol= ve it to OID using get_xmlschema_oid(), save the string form in newx->na= me for deparsing (so views can be displayed correctly) and finally clear x-= >named_args =3D NIL so the ResTarget loop below has nothing to process. = This approach reuses the existing named_args field as temporary storage dur= ing parsing, then converts it properly during transformation. It felt=C2=A0= strange, but it avoids adding another field to the XmlExpr structure just f= or XMLVALIDATE.

Also, I made the variables that get modif= ied inside of the PG_TRY block volatile as it seems to be a pattern likely = to force the compiler to do memory access instead of relying on registers d= uring jumps.

I'm attaching the patch for another round of= review (please excuse the lack of the linter, I tried running but had some= issues). Any feedback would be really appreciated, this was quite an adven= ture.

PS: I noticed now that I haven't copied the cha= nges over to xml1.out nor xml2.out. But This is just for the feature valida= tion round, so I can fix that later.

Thanks for taking a look= !
--000000000000f171b0064801e10c-- --000000000000f171b2064801e10e Content-Type: application/octet-stream; name="xmlschema_xmlvalidate.patch" Content-Disposition: attachment; filename="xmlschema_xmlvalidate.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk7ureqw0 RnJvbSAyY2QyOGM5Njc2MGRlMjNmYWQ1ZDE3NjZlYWQyNTVjMWE3NmNiYzQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTAgSmFuIDIwMjYgMDI6MDU6NTQgLTAzMDAKU3ViamVjdDogW1BBVENI XSBwZ194bWxzY2hlbWEgY2F0YWxvZyBhbmQgeG1sdmFsaWRhdGUKCi0tLQogZG9jL3NyYy9zZ21s L2Z1bmMvZnVuYy14bWwuc2dtbCAgICAgICB8ICAxMTkgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9h Y2xjaGsuYyAgICAgICAgICB8ICAgMTcgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMgICAgICB8ICAgMzEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICB8 ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICB8ICAgNTYgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICB8ICAgODQgKwogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ194bWxzY2hlbWEuYyAgICB8ICAxOTEgKysKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2FsdGVyLmMgICAgICAgICAgfCAgICA4ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMgICAgICAgfCAgICA3ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YyAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkICAgICAgfCAgICAx ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgICAgICAgfCAgICAxICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3htbHNjaGVtYWNtZHMuYyAgfCAgMTE5ICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgfCAgIDI3ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgfCAgIDgzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgIHwgICA0MiArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgIHwg ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgIHwgICAxNyArCiBz cmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMgICAgICAgICAgIHwgICAgNCArCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgIHwgICAxNiArLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3htbC5jICAgICAgICAgICB8ICAxNDEgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAg ICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfeG1sc2NoZW1hLmggICAgfCAgIDQz ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3htbHNjaGVtYWNtZHMuaCAgfCAgIDEwICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaCAgICAgICAgICAgfCAgICAzICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAg ICAgICAgfCAgICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL2FjbC5oICAgICAgICAgICAgICAgfCAg ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3htbC5oICAgICAgICAgICAgICAgfCAgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sLm91dCAgICAgfCA0MDYzICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3htbC5zcWwgICAgICAgICAgfCAgMjc0 ICsrCiAzMyBmaWxlcyBjaGFuZ2VkLCAzNDgyIGluc2VydGlvbnMoKyksIDE4OTAgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ194bWxzY2hlbWEu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3htbHNjaGVtYWNtZHMu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfeG1sc2NoZW1hLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy94bWxzY2hlbWFjbWRzLmgK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXhtbC5zZ21sIGIvZG9jL3NyYy9z Z21sL2Z1bmMvZnVuYy14bWwuc2dtbAppbmRleCA1MTFiYzkwODUyYS4uYjAyZGI2YzliNWIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMteG1sLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMvZnVuYy14bWwuc2dtbApAQCAtMTAxMCw2ICsxMDEwLDEyNSBAQCBTRUxFQ1QgeG1s dGFibGUuKgogXV0+PC9zY3JlZW4+CiAgICAgPC9wYXJhPgogICAgPC9zZWN0Mz4KKworICAgPHNl Y3QzIGlkPSJmdW5jdGlvbnMteG1sLXByb2Nlc3NpbmcteG1sdmFsaWRhdGUiPgorICAgIDx0aXRs ZT48bGl0ZXJhbD54bWx2YWxpZGF0ZTwvbGl0ZXJhbD48L3RpdGxlPgorCisgICAgPGluZGV4dGVy bT4KKyAgICAgPHByaW1hcnk+eG1sdmFsaWRhdGU8L3ByaW1hcnk+CisgICAgPC9pbmRleHRlcm0+ CisKKzxzeW5vcHNpcz4KKzxmdW5jdGlvbj5YTUxWQUxJREFURTwvZnVuY3Rpb24+ICggezxsaXRl cmFsPkRPQ1VNRU5UPC9saXRlcmFsPnw8bGl0ZXJhbD5DT05URU5UPC9saXRlcmFsPn0gPHJlcGxh Y2VhYmxlPnhtbF92YWx1ZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPkFDQ09SRElORyBUTyBYTUxT Q0hFTUE8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZT5zY2hlbWFfdGV4dDwvcmVwbGFjZWFibGU+ICkg PHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorPC9zeW5vcHNpcz4KKworICAgIDxw YXJhPgorICAgICBUaGUgPGZ1bmN0aW9uPnhtbHZhbGlkYXRlPC9mdW5jdGlvbj4gZnVuY3Rpb24g dmFsaWRhdGVzIGFuIFhNTCB2YWx1ZQorICAgICBhZ2FpbnN0IGFuIFhNTCBTY2hlbWEgKFhTRCku IEl0IHJldHVybnMgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaWYgdGhlCisgICAgIFhNTCBpcyB2 YWxpZCBhY2NvcmRpbmcgdG8gdGhlIHNjaGVtYSwgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+IGlm IGl0IGlzCisgICAgIGludmFsaWQsIG9yIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGlmIGVpdGhl ciBhcmd1bWVudCBpcworICAgICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICA8L3BhcmE+ CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIGZpcnN0IGFyZ3VtZW50IHNwZWNpZmllcyB3aGV0aGVy IHRvIHZhbGlkYXRlIHRoZSBYTUwgYXMgYQorICAgICA8bGl0ZXJhbD5ET0NVTUVOVDwvbGl0ZXJh bD4gKGEgY29tcGxldGUgWE1MIGRvY3VtZW50IHdpdGggYSBzaW5nbGUgcm9vdAorICAgICBlbGVt ZW50KSBvciBhcyA8bGl0ZXJhbD5DT05URU5UPC9saXRlcmFsPiAoYW4gWE1MIGNvbnRlbnQgZnJh Z21lbnQpLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgPHJlcGxhY2VhYmxl PnNjaGVtYV90ZXh0PC9yZXBsYWNlYWJsZT4gYXJndW1lbnQgc2hvdWxkIGJlIGEKKyAgICAgPHR5 cGU+dGV4dDwvdHlwZT4gdmFsdWUgY29udGFpbmluZyBhIHZhbGlkIFhNTCBTY2hlbWEgRGVmaW5p dGlvbiAoWFNEKS4KKyAgICAgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIHRoZSBzY2hlbWEgaXMgdHJl YXRlZCBhcyBwbGFpbiB0ZXh0IGFuZCBwYXJzZWQKKyAgICAgaW4tbWVtb3J5IG9ubHkuIFRoaXMg cHJldmVudHMgbWFsaWNpb3VzIGltcG9ydHMgb3IgZXh0ZXJuYWwgZmlsZSBhY2Nlc3MKKyAgICAg dGhyb3VnaCBzY2hlbWEgbG9jYXRpb24gcmVmZXJlbmNlcyAoc3VjaCBhcyA8bGl0ZXJhbD54czpp bXBvcnQ8L2xpdGVyYWw+LAorICAgICA8bGl0ZXJhbD54czppbmNsdWRlPC9saXRlcmFsPiwgb3Ig PGxpdGVyYWw+c2NoZW1hTG9jYXRpb248L2xpdGVyYWw+CisgICAgIGF0dHJpYnV0ZXMpLiBBbnkg YXR0ZW1wdHMgdG8gcmVmZXJlbmNlIGV4dGVybmFsIHJlc291cmNlcyB3aWxsIGJlCisgICAgIGln bm9yZWQsIHJlc3VsdGluZyBpbiBhbiBlbXB0eSBzY2hlbWEgcmVmZXJlbmNlLgorICAgIDwvcGFy YT4KKworICAgIDxwYXJhPgorICAgICBFeGFtcGxlczoKKzxzY3JlZW4+PCFbQ0RBVEFbCitTRUxF Q1QgeG1sdmFsaWRhdGUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMw PC9hZ2U+PC9wZXJzb24+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BICc8P3htbCB2ZXJzaW9u PSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M U2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0icGVyc29uIj4KKyAgICA8eHM6Y29tcGxleFR5 cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUi IHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9 InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlw ZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+Jyk7CisKKyB4bWx2YWxpZGF0ZQorLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKK11dPjwvc2NyZWVuPgorICAgIDwvcGFyYT4KKworICAg IDxwYXJhPgorICAgICBUaGlzIGV4YW1wbGUgc2hvd3MgYSB2YWxpZGF0aW9uIGZhaWx1cmUgZHVl IHRvIGEgbWlzc2luZyByZXF1aXJlZCBlbGVtZW50OgorPHNjcmVlbj48IVtDREFUQVsKK1NFTEVD VCB4bWx2YWxpZGF0ZShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjwvcGVyc29u PicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6 c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4 czplbGVtZW50IG5hbWU9InBlcnNvbiI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhz OnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJp bmciLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYWdlIiB0eXBlPSJ4czppbnRlZ2VyIi8+ CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxl bWVudD4KKzwveHM6c2NoZW1hPicpOworCisgeG1sdmFsaWRhdGUKKy0tLS0tLS0tLS0tLS0KKyBm CisoMSByb3cpCitdXT48L3NjcmVlbj4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAg VGhlIHNjaGVtYSBjYW4gYWxzbyB2YWxpZGF0ZSBhdHRyaWJ1dGVzOgorPHNjcmVlbj48IVtDREFU QVsKK1NFTEVDVCB4bWx2YWxpZGF0ZShET0NVTUVOVCAnPHByb2R1Y3QgaWQ9IjEyMyI+PG5hbWU+ V2lkZ2V0PC9uYW1lPjxwcmljZT45Ljk5PC9wcmljZT48L3Byb2R1Y3Q+JworICBBQ0NPUkRJTkcg VE8gWE1MU0NIRU1BICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9 Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0i cHJvZHVjdCI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAg ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0icHJpY2UiIHR5cGU9InhzOmRlY2ltYWwiLz4KKyAgICAgIDwveHM6 c2VxdWVuY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpzdHJpbmci IHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+ Cis8L3hzOnNjaGVtYT4nKTsKKworIHhtbHZhbGlkYXRlCistLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorXV0+PC9zY3JlZW4+CisgICAgPC9wYXJhPgorCisgICAgPG5vdGU+CisgICAgIDxwYXJh PgorICAgICAgRm9yIHNlY3VyaXR5LCA8ZnVuY3Rpb24+eG1sdmFsaWRhdGU8L2Z1bmN0aW9uPiBw cm9jZXNzZXMgdGhlIFhNTCBTY2hlbWEKKyAgICAgIGFzIGFuIGluLW1lbW9yeSB0ZXh0IHZhbHVl LiBFeHRlcm5hbCByZXNvdXJjZSByZWZlcmVuY2VzIHN1Y2ggYXMKKyAgICAgIDxsaXRlcmFsPnNj aGVtYUxvY2F0aW9uPC9saXRlcmFsPiBpbiA8bGl0ZXJhbD54czppbXBvcnQ8L2xpdGVyYWw+IG9y CisgICAgICA8bGl0ZXJhbD54czppbmNsdWRlPC9saXRlcmFsPiBkaXJlY3RpdmVzIGFyZSBub3Qg Zm9sbG93ZWQgYW5kIGFyZQorICAgICAgdHJlYXRlZCBhcyBlbXB0eSBzY2hlbWEgcmVmZXJlbmNl cy4gVGhpcyBkZXNpZ24gcHJldmVudHMgcG90ZW50aWFsCisgICAgICBzZWN1cml0eSB2dWxuZXJh YmlsaXRpZXMgd2hlcmUgbWFsaWNpb3VzIHNjaGVtYXMgY291bGQgYXR0ZW1wdCB0bworICAgICAg YWNjZXNzIGV4dGVybmFsIGZpbGVzIG9yIG5ldHdvcmsgcmVzb3VyY2VzLgorICAgICA8L3BhcmE+ CisgICAgPC9ub3RlPgorICAgPC9zZWN0Mz4KICAgPC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9ImZ1 bmN0aW9ucy14bWwtbWFwcGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2Fj bGNoay5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBhNDMxZmMwOTI2Zi4u YzUxOThlYTZlYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfeG1s c2NoZW1hLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgpAQCAt MjkwLDYgKzI5MSw5IEBAIHJlc3RyaWN0X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBB Y2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFS QU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNM OwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCXdob2xlX21hc2sgPSBB Q0xfQUxMX1JJR0hUU19YTUxTQ0hFTUE7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBu b3QgcmVhY2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTUzNCw2ICs1MzgsMTAg QEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9 IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9v cCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJ R0hUU19YTUxTQ0hFTUE7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2 aWxlZ2UgdHlwZSAlcyBmb3IgWE1MIHNjaGVtYSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJ IChpbnQpIHN0bXQtPm9ianR5cGUpOwpAQCAtNjM5LDYgKzY0Nyw5IEBAIEV4ZWNHcmFudFN0bXRf b2lkcyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoK IAkJCUV4ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNU X1hNTFNDSEVNQToKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIFhtbFNjaGVtYVJlbGF0aW9u SWQsIEFDTF9BTExfUklHSFRTX1hNTFNDSEVNQSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwK IAkJCQkgKGludCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtMjY3Nyw2ICsyNjg4LDkgQEAgYWNsY2hl Y2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNl IE9CSkVDVF9DT05WRVJTSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9u IGRlbmllZCBmb3IgY29udmVyc2lvbiAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JK RUNUX1hNTFNDSEVNQToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5p ZWQgZm9yIFhNTCBzY2hlbWEgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9E QVRBQkFTRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9y IGRhdGFiYXNlICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4MDksNiArMjgyMyw5IEBAIGFjbGNo ZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2Fz ZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBv d25lciBvZiBjb252ZXJzaW9uICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1Rf WE1MU0NIRU1BOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIFhN TCBzY2hlbWEgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9EQVRBQkFTRToK IAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBkYXRhYmFzZSAlcyIp OwogCQkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IGY4OTI2N2YwMzQy Li41MGNlMzg3MWU3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTY2LDYgKzY2LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVu dF90cmlnZ2VyLmgiCkBAIC03OSw2ICs4MCw3IEBACiAjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1 ZGUgIm5vZGVzL3ByaW1ub2Rlcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNp bmNsdWRlICJyZXdyaXRlL3Jld3JpdGVSZW1vdmUuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3Iu aCIKQEAgLTE1MTQsNiArMTUxNiw3IEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAq b2JqZWN0LCBpbnQgZmxhZ3MpCiAJCWNhc2UgRXZlbnRUcmlnZ2VyUmVsYXRpb25JZDoKIAkJY2Fz ZSBUcmFuc2Zvcm1SZWxhdGlvbklkOgogCQljYXNlIEF1dGhNZW1SZWxhdGlvbklkOgorCQljYXNl IFhtbFNjaGVtYVJlbGF0aW9uSWQ6CiAJCQlEcm9wT2JqZWN0QnlJZChvYmplY3QpOwogCQkJYnJl YWs7CiAKQEAgLTI0MTYsNiArMjQxOSwzNCBAQCBmaW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIo Tm9kZSAqbm9kZSwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKIAkJLyogZmFsbCB0aHJvdWdo IHRvIGV4YW1pbmUgYXJndW1lbnRzICovCiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBYbWxFeHBy KSkKKwl7CisJCVhtbEV4cHIgICAgKnhtbGV4cHIgPSAoWG1sRXhwciAqKSBub2RlOworCisJCS8q CisJCSAqIFhNTFZBTElEQVRFJ3Mgc2Vjb25kIGFyZ3VtZW50IGlzIGEgQ29uc3QgY29udGFpbmlu ZyB0aGUgc2NoZW1hIE9JRC4KKwkJICogUmVjb3JkIGEgZGVwZW5kZW5jeSBvbiBpdC4KKwkJICov CisJCWlmICh4bWxleHByLT5vcCA9PSBJU19YTUxWQUxJREFURSAmJiBsaXN0X2xlbmd0aCh4bWxl eHByLT5hcmdzKSA9PSAyKQorCQl7CisJCQlOb2RlCSAgICpzY2hlbWFfYXJnID0gKE5vZGUgKikg bHNlY29uZCh4bWxleHByLT5hcmdzKTsKKworCQkJaWYgKElzQShzY2hlbWFfYXJnLCBDb25zdCkp CisJCQl7CisJCQkJQ29uc3QJICAgKnNjaGVtYV9jb25zdCA9IChDb25zdCAqKSBzY2hlbWFfYXJn OworCQkJCU9pZAkJCXNjaGVtYV9vaWQ7CisKKwkJCQlpZiAoIXNjaGVtYV9jb25zdC0+Y29uc3Rp c251bGwgJiYKKwkJCQkJc2NoZW1hX2NvbnN0LT5jb25zdHR5cGUgPT0gT0lET0lEKQorCQkJCXsK KwkJCQkJc2NoZW1hX29pZCA9IERhdHVtR2V0T2JqZWN0SWQoc2NoZW1hX2NvbnN0LT5jb25zdHZh bHVlKTsKKwkJCQkJYWRkX29iamVjdF9hZGRyZXNzKFhtbFNjaGVtYVJlbGF0aW9uSWQsIHNjaGVt YV9vaWQsIDAsCisJCQkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisJCQkJfQorCQkJfQorCQl9 CisJCS8qIGZhbGwgdGhyb3VnaCB0byBleGFtaW5lIGFyZ3VtZW50cyAqLworCX0KIAogCXJldHVy biBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtl ciwKIAkJCQkJCQkJICBjb250ZXh0KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDExZDIx YzVhZDZiLi45YmExNWU3MWI3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNv bi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0zMyw2ICsz Myw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX3N1YnNjcmlwdGlvbi5jJywK ICAgJ3BnX3RhYmxlc3BhY2UuYycsCiAgICdwZ190eXBlLmMnLAorICAncGdfeG1sc2NoZW1hLmMn LAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5nLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKaW5kZXggYzNiNzlhMmJhNDguLjg5ZTg3YTA2NTcyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf ZGF0YWJhc2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgpAQCAtNDE0Myw2ICs0MTQ0LDYxIEBA IGdldF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spCiAJcmV0 dXJuIGNvbm9pZDsKIH0KIAorLyoKKyAqIGdldF94bWxzY2hlbWFfb2lkIC0gZmluZCBhbiBYTUwg c2NoZW1hIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBuYW1lCisgKi8KK09pZAorZ2V0X3htbHNjaGVt YV9vaWQoTGlzdCAqc2NoZW1hbmFtZSwgYm9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJICAgKm5z cG5hbWU7CisJY2hhcgkgICAqc2NoZW1hX25hbWU7CisJT2lkCQkJbmFtZXNwYWNlSWQ7CisJT2lk CQkJc2NoZW1hX29pZCA9IEludmFsaWRPaWQ7CisJTGlzdENlbGwgICAqbDsKKworCS8qIGRlY29u c3RydWN0IHRoZSBuYW1lIGxpc3QgKi8KKwlEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUoc2NoZW1h bmFtZSwgJm5zcG5hbWUsICZzY2hlbWFfbmFtZSk7CisKKwlpZiAobnNwbmFtZSkKKwl7CisJCS8q IHVzZSBleGFjdCBzY2hlbWEgZ2l2ZW4gKi8KKwkJbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNp dE5hbWVzcGFjZShuc3BuYW1lLCBtaXNzaW5nX29rKTsKKwkJaWYgKG1pc3Npbmdfb2sgJiYgIU9p ZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQkJc2NoZW1hX29pZCA9IEludmFsaWRPaWQ7CisJCWVs c2UKKwkJCXNjaGVtYV9vaWQgPSBHZXRTeXNDYWNoZU9pZDIoWE1MU0NIRU1BTkFNRU5TUCwgQW51 bV9wZ194bWxzY2hlbWFfb2lkLAorCQkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0oc2NoZW1hX25h bWUpLAorCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJfQorCWVs c2UKKwl7CisJCS8qIHNlYXJjaCBmb3IgaXQgaW4gc2VhcmNoIHBhdGggKi8KKwkJcmVjb21wdXRl TmFtZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJewor CQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNwYWNlSWQgPT0g bXlUZW1wTmFtZXNwYWNlKQorCQkJCWNvbnRpbnVlOyAvKiBkbyBub3QgbG9vayBpbiB0ZW1wIG5h bWVzcGFjZSAqLworCisJCQlzY2hlbWFfb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFhNTFNDSEVNQU5B TUVOU1AsIEFudW1fcGdfeG1sc2NoZW1hX29pZCwKKwkJCQkJCQkJCQkgUG9pbnRlckdldERhdHVt KHNjaGVtYV9uYW1lKSwKKwkJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkp OworCQkJaWYgKE9pZElzVmFsaWQoc2NoZW1hX29pZCkpCisJCQkJcmV0dXJuIHNjaGVtYV9vaWQ7 CisJCX0KKwl9CisKKwkvKiBOb3QgZm91bmQgaW4gcGF0aCAqLworCWlmICghT2lkSXNWYWxpZChz Y2hlbWFfb2lkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coIlhNTCBzY2hlbWEgXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoc2NoZW1hbmFtZSkp KSk7CisJcmV0dXJuIHNjaGVtYV9vaWQ7Cit9CisKIC8qCiAgKiBGaW5kRGVmYXVsdENvbnZlcnNp b25Qcm9jIC0gZmluZCBkZWZhdWx0IGVuY29kaW5nIGNvbnZlcnNpb24gcHJvYwogICovCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDAyYWY2NGI4MmM2Li42MzA2YjljOGY2ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3htbHNjaGVtYS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNp b24uaCIKQEAgLTE4Nyw2ICsxODgsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlw ZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX0NPTExBVElPTiwKIAkJdHJ1ZQogCX0sCisJ eworCQkieG1sc2NoZW1hIiwKKwkJWG1sU2NoZW1hUmVsYXRpb25JZCwKKwkJWG1sU2NoZW1hT2lk SW5kZXhJZCwKKwkJWE1MU0NIRU1BT0lELAorCQlYTUxTQ0hFTUFOQU1FTlNQLAorCQlBbnVtX3Bn X3htbHNjaGVtYV9vaWQsCisJCUFudW1fcGdfeG1sc2NoZW1hX3NjaGVtYW5hbWUsCisJCUFudW1f cGdfeG1sc2NoZW1hX3NjaGVtYW5hbWVzcGFjZSwKKwkJQW51bV9wZ194bWxzY2hlbWFfc2NoZW1h b3duZXIsCisJCUFudW1fcGdfeG1sc2NoZW1hX3NjaGVtYWFjbCwKKwkJT0JKRUNUX1hNTFNDSEVN QSwKKwkJdHJ1ZQorCX0sCiAJewogCQkiY29uc3RyYWludCIsCiAJCUNvbnN0cmFpbnRSZWxhdGlv bklkLApAQCAtNzIwLDYgKzczNSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVf bWFwCiAJewogCQkiY29sbGF0aW9uIiwgT0JKRUNUX0NPTExBVElPTgogCX0sCisJeworCQkieG1s c2NoZW1hIiwgT0JKRUNUX1hNTFNDSEVNQQorCX0sCiAJewogCQkidGFibGUgY29uc3RyYWludCIs IE9CSkVDVF9UQUJDT05TVFJBSU5UCiAJfSwKQEAgLTEwMjksNiArMTA0NywxMSBAQCBnZXRfb2Jq ZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJYWRkcmVz cy5vYmplY3RJZCA9IGdldF9jb2xsYXRpb25fb2lkKGNhc3ROb2RlKExpc3QsIG9iamVjdCksIG1p c3Npbmdfb2spOwogCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJ Y2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgorCQkJCWFkZHJlc3MuY2xhc3NJZCA9IFhtbFNjaGVtYVJl bGF0aW9uSWQ7CisJCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF94bWxzY2hlbWFfb2lkKGNhc3RO b2RlKExpc3QsIG9iamVjdCksIG1pc3Npbmdfb2spOworCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQg PSAwOworCQkJCWJyZWFrOwogCQkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJCQlhZGRyZXNz LmNsYXNzSWQgPSBDb252ZXJzaW9uUmVsYXRpb25JZDsKIAkJCQlhZGRyZXNzLm9iamVjdElkID0g Z2V0X2NvbnZlcnNpb25fb2lkKGNhc3ROb2RlKExpc3QsIG9iamVjdCksIG1pc3Npbmdfb2spOwpA QCAtMjI4Miw2ICsyMzA1LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQlj YXNlIE9CSkVDVF9DT0xMQVRJT046CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJY2FzZSBP QkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBP QkpFQ1RfVFNQQVJTRVI6CkBAIC0yNDYwLDYgKzI0ODQsNyBAQCBjaGVja19vYmplY3Rfb3duZXJz aGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNz LAogCQkJCQkJCSAgIHN0clZhbChvYmplY3QpKTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9D T0xMQVRJT046CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJY2FzZSBPQkpFQ1RfQ09OVkVS U0lPTjoKIAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CkBA IC00MDY3LDYgKzQwOTIsMzQgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2Fz ZSBYbWxTY2hlbWFSZWxhdGlvbklkOgorCQkJeworCQkJCUhlYXBUdXBsZQlzY2hlbWFUdXA7CisJ CQkJRm9ybV9wZ194bWxzY2hlbWEgc2NoZW1hOworCQkJCWNoYXIJICAgKm5zcG5hbWU7CisKKwkJ CQlzY2hlbWFUdXAgPSBTZWFyY2hTeXNDYWNoZTEoWE1MU0NIRU1BT0lELAorCQkJCQkJCQkJCQlP YmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlz VmFsaWQoc2NoZW1hVHVwKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBYTUwgc2NoZW1hICV1IiwKKwkJCQkJ CQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCXNjaGVtYSA9 IChGb3JtX3BnX3htbHNjaGVtYSkgR0VUU1RSVUNUKHNjaGVtYVR1cCk7CisKKwkJCQkvKiBRdWFs aWZ5IHRoZSBuYW1lIGlmIG5vdCB2aXNpYmxlIGluIHNlYXJjaCBwYXRoICovCisJCQkJbnNwbmFt ZSA9IGdldF9uYW1lc3BhY2VfbmFtZShzY2hlbWEtPnNjaGVtYW5hbWVzcGFjZSk7CisKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oIlhNTCBzY2hlbWEgJXMiKSwKKwkJCQkJCQkJIHF1 b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQlOYW1lU3Ry KHNjaGVtYS0+c2NoZW1hbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUoc2NoZW1hVHVwKTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9y dGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KQEAgLTQ2NjksNiAr NDcyMiwxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAq b2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZm ZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgWG1sU2NoZW1hUmVsYXRpb25J ZDoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgIlhNTCBzY2hlbWEiKTsKKwkJ CWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0 IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNjAxOSw2ICs2MDc2LDMzIEBA IGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJ fQogCQkJYnJlYWs7CiAKKwkJY2FzZSBYbWxTY2hlbWFSZWxhdGlvbklkOgorCQkJeworCQkJCUhl YXBUdXBsZQlzY2hlbWFUdXA7CisJCQkJRm9ybV9wZ194bWxzY2hlbWEgc2NoZW1hOworCQkJCWNo YXIJICAgKm5zcG5hbWU7CisKKwkJCQlzY2hlbWFUdXAgPSBTZWFyY2hTeXNDYWNoZTEoWE1MU0NI RU1BT0lELAorCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsK KwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoc2NoZW1hVHVwKSkKKwkJCQl7CisJCQkJCWlmICgh bWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBY TUwgc2NoZW1hICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOwor CQkJCX0KKwkJCQlzY2hlbWEgPSAoRm9ybV9wZ194bWxzY2hlbWEpIEdFVFNUUlVDVChzY2hlbWFU dXApOworCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChzY2hlbWEtPnNj aGVtYW5hbWVzcGFjZSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJ CQkJCQkJICAgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJ CQkJCQkgIE5hbWVTdHIoc2NoZW1hLT5zY2hlbWFuYW1lKSkpOworCQkJCWlmIChvYmpuYW1lKQor CQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIobnNwbmFtZSwKKwkJCQkJCQkJCQkgIHBzdHJkdXAo TmFtZVN0cihzY2hlbWEtPnNjaGVtYW5hbWUpKSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHNjaGVt YVR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3htbHNjaGVtYS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ194bWxzY2hlbWEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNGQ0NGE0ZWYxMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3htbHNjaGVtYS5jCkBAIC0wLDAgKzEsMTkxIEBACisjaW5jbHVkZSAicG9zdGdyZXMuaCIK KworI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFi bGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2Rl cGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgi CisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWwuaCIKKyNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3htbC5oIgorCisjaWZk ZWYgVVNFX0xJQlhNTAorI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzLmg+CisjZW5kaWYKKwor LyoKKyAqIFhtbFNjaGVtYUNyZWF0ZQorICoKKyAqIEFkZCBhIG5ldyB0dXBsZSB0byBwZ194bWxz Y2hlbWEuCisgKgorICogaWZfbm90X2V4aXN0czogaWYgdHJ1ZSwgZG9uJ3QgZmFpbCBvbiBkdXBs aWNhdGUgbmFtZSwganVzdCBwcmludCBhIG5vdGljZQorICogYW5kIHJldHVybiBJbnZhbGlkT2lk LgorICogcXVpZXQ6IGlmIHRydWUsIGRvbid0IGZhaWwgb24gZHVwbGljYXRlIG5hbWUsIGp1c3Qg c2lsZW50bHkgcmV0dXJuCisgKiBJbnZhbGlkT2lkICh3aGljaCBvdmVyaWRlcyBpZl9ub3RfZXhp c3RzKS4KKyAqLworT2lkCitYbWxTY2hlbWFDcmVhdGUoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwK KyAgICAgICAgICAgICAgICBPaWQgc2NoZW1hbmFtZXNwYWNlLAorICAgICAgICAgICAgICAgIE9p ZCBzY2hlbWFvd25lciwKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzY2hlbWFkYXRhLAor ICAgICAgICAgICAgICAgIGJvb2wgaWZfbm90X2V4aXN0cywKKyAgICAgICAgICAgICAgICBib29s IHF1aWV0KQoreworICAgIFJlbGF0aW9uICAgICAgcmVsOworICAgIFR1cGxlRGVzYyAgICAgdHVw RGVzYzsKKyAgICBIZWFwVHVwbGUgICAgIHR1cDsKKyAgICBEYXR1bSAgICAgICAgIHZhbHVlc1tO YXR0c19wZ194bWxzY2hlbWFdOworICAgIGJvb2wgICAgICAgICAgbnVsbHNbTmF0dHNfcGdfeG1s c2NoZW1hXTsKKyAgICBOYW1lRGF0YSAgICAgIG5hbWVfbmFtZTsKKyAgICBPaWQgICAgICAgICAg IG9pZDsKKyAgICBPYmplY3RBZGRyZXNzIG15c2VsZiwKKyAgICAgICAgICAgICAgICAgIHJlZmVy ZW5jZWQ7CisKKyAgICBBc3NlcnQoc2NoZW1hbmFtZSk7CisgICAgQXNzZXJ0KHNjaGVtYW5hbWVz cGFjZSk7CisgICAgQXNzZXJ0KHNjaGVtYW93bmVyKTsKKyAgICBBc3NlcnQoc2NoZW1hZGF0YSk7 CisKKyNpZmRlZiBVU0VfTElCWE1MCisgICAgLyogVmFsaWRhdGUgdGhlIFhNTCBTY2hlbWEgYmVm b3JlIHN0b3JpbmcgaXQgKi8KKyAgICB7CisgICAgICAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIg cGFyc2VyX2N0eHQ7CisgICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWFfcHRyOworICAgICAgICBQ Z1htbEVycm9yQ29udGV4dCAqeG1sZXJyY3h0OworCisgICAgICAgIHhtbGVycmN4dCA9IHBnX3ht bF9pbml0KFBHX1hNTF9TVFJJQ1RORVNTX1dFTExGT1JNRUQpOworCisgICAgICAgIFBHX1RSWSgp OworICAgICAgICB7CisgICAgICAgICAgICBwYXJzZXJfY3R4dCA9IHhtbFNjaGVtYU5ld01lbVBh cnNlckN0eHQoc2NoZW1hZGF0YSwgc3RybGVuKHNjaGVtYWRhdGEpKTsKKyAgICAgICAgICAgIGlm IChwYXJzZXJfY3R4dCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbF9lcmVwb3J0KHhtbGVy cmN4dCwgRVJST1IsIEVSUkNPREVfSU5WQUxJRF9YTUxfRE9DVU1FTlQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImZhaWxlZCB0byBjcmVhdGUgc2NoZW1hIHBhcnNlciBjb250ZXh0Iik7 CisKKyAgICAgICAgICAgIHNjaGVtYV9wdHIgPSB4bWxTY2hlbWFQYXJzZShwYXJzZXJfY3R4dCk7 CisgICAgICAgICAgICBpZiAoc2NoZW1hX3B0ciA9PSBOVUxMKQorICAgICAgICAgICAgICAgIHht bF9lcmVwb3J0KHhtbGVycmN4dCwgRVJST1IsIEVSUkNPREVfSU5WQUxJRF9YTUxfRE9DVU1FTlQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgWE1MIHNjaGVtYSBkZWZpbml0 aW9uIik7CisKKyAgICAgICAgICAgIC8qIENsZWFuIHVwICovCisgICAgICAgICAgICB4bWxTY2hl bWFGcmVlKHNjaGVtYV9wdHIpOworICAgICAgICAgICAgeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQo cGFyc2VyX2N0eHQpOworICAgICAgICB9CisgICAgICAgIFBHX0NBVENIKCk7CisgICAgICAgIHsK KyAgICAgICAgICAgIHBnX3htbF9kb25lKHhtbGVycmN4dCwgdHJ1ZSk7CisgICAgICAgICAgICBQ R19SRV9USFJPVygpOworICAgICAgICB9CisgICAgICAgIFBHX0VORF9UUlkoKTsKKworICAgICAg ICBwZ194bWxfZG9uZSh4bWxlcnJjeHQsIGZhbHNlKTsKKyAgICB9CisjZWxzZQorICAgIGVyZXBv cnQoRVJST1IsCisgICAgICAgICAgICAoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisgICAgICAgICAgICAgZXJybXNnKCJ4bWxzY2hlbWEgc3VwcG9ydCByZXF1aXJlcyBs aWJ4bWwiKSkpOworI2VuZGlmCisKKyAgICAvKgorICAgICAqIE1ha2Ugc3VyZSB0aGVyZSBpcyBu byBleGlzdGluZyBYTUwgc2NoZW1hIG9mIHNhbWUgbmFtZSBpbiB0aGUgbmFtZXNwYWNlLgorICAg ICAqCisgICAgICogVGhpcyB3b3VsZCBiZSBjYXVnaHQgYnkgdGhlIHVuaXF1ZSBpbmRleCBhbnl3 YXk7IHdlJ3JlIGp1c3QgZ2l2aW5nIGEKKyAgICAgKiBmcmllbmRsaWVyIGVycm9yIG1lc3NhZ2Uu ICBUaGUgdW5pcXVlIGluZGV4IHByb3ZpZGVzIGEgYmFja3N0b3AgYWdhaW5zdAorICAgICAqIHJh Y2UgY29uZGl0aW9ucy4KKyAgICAgKi8KKyAgICBvaWQgPSBHZXRTeXNDYWNoZU9pZDIoWE1MU0NI RU1BTkFNRU5TUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQW51bV9wZ194bWxzY2hlbWFf b2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludGVyR2V0RGF0dW0oc2NoZW1hbmFt ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElkR2V0RGF0dW0oc2NoZW1hbmFt ZXNwYWNlKSk7CisgICAgaWYgKE9pZElzVmFsaWQob2lkKSkKKyAgICB7CisgICAgICAgIGlmIChx dWlldCkKKyAgICAgICAgICAgIHJldHVybiBJbnZhbGlkT2lkOworICAgICAgICBlbHNlIGlmIChp Zl9ub3RfZXhpc3RzKQorICAgICAgICB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICog SWYgd2UgYXJlIGluIGFuIGV4dGVuc2lvbiBzY3JpcHQsIGluc2lzdCB0aGF0IHRoZSBwcmUtZXhp c3RpbmcKKyAgICAgICAgICAgICAqIG9iamVjdCBiZSBhIG1lbWJlciBvZiB0aGUgZXh0ZW5zaW9u LCB0byBhdm9pZCBzZWN1cml0eSByaXNrcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAg T2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFhtbFNjaGVtYVJlbGF0aW9uSWQsIG9pZCk7CisgICAg ICAgICAgICBjaGVja01lbWJlcnNoaXBJbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZik7CisKKyAg ICAgICAgICAgIC8qIE9LIHRvIHNraXAgKi8KKyAgICAgICAgICAgIGVyZXBvcnQoTk9USUNFLAor ICAgICAgICAgICAgICAgICAgICAoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAor ICAgICAgICAgICAgICAgICAgICAgZXJybXNnKCJYTUwgc2NoZW1hIFwiJXNcIiBhbHJlYWR5IGV4 aXN0cywgc2tpcHBpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYW5hbWUp KSk7CisgICAgICAgICAgICByZXR1cm4gSW52YWxpZE9pZDsKKyAgICAgICAgfQorICAgICAgICBl bHNlCisgICAgICAgICAgICBlcmVwb3J0KEVSUk9SLAorICAgICAgICAgICAgICAgICAgICAoZXJy Y29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorICAgICAgICAgICAgICAgICAgICAgZXJy bXNnKCJYTUwgc2NoZW1hIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NoZW1hbmFtZSkpKTsKKyAgICB9CisKKyAgICAvKiBvcGVuIHBnX3htbHNj aGVtYTsgbG9jayB0byBwcm90ZWN0IGFnYWluc3QgY29uY3VycmVudCBjaGFuZ2VzICovCisgICAg cmVsID0gdGFibGVfb3BlbihYbWxTY2hlbWFSZWxhdGlvbklkLCBTaGFyZVJvd0V4Y2x1c2l2ZUxv Y2spOworCisgICAgdHVwRGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKworICAgIC8qIGZv cm0gYSB0dXBsZSAqLworICAgIG1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKyAg ICBuYW1lc3RyY3B5KCZuYW1lX25hbWUsIHNjaGVtYW5hbWUpOworICAgIG9pZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIFhtbFNjaGVtYU9pZEluZGV4SWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQW51bV9wZ194bWxzY2hlbWFfb2lkKTsKKyAgICB2YWx1ZXNbQW51bV9w Z194bWxzY2hlbWFfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKG9pZCk7CisgICAgdmFsdWVz W0FudW1fcGdfeG1sc2NoZW1hX3NjaGVtYW5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmbmFtZV9u YW1lKTsKKyAgICB2YWx1ZXNbQW51bV9wZ194bWxzY2hlbWFfc2NoZW1hbmFtZXNwYWNlIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKHNjaGVtYW5hbWVzcGFjZSk7CisgICAgdmFsdWVzW0FudW1fcGdf eG1sc2NoZW1hX3NjaGVtYW93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHNjaGVtYW93bmVy KTsKKyAgICB2YWx1ZXNbQW51bV9wZ194bWxzY2hlbWFfc2NoZW1hZGF0YSAtIDFdID0gQ1N0cmlu Z0dldFRleHREYXR1bShzY2hlbWFkYXRhKTsKKworICAgIC8qIFNldCB1cCBkZWZhdWx0IEFDTCAq LworICAgIHsKKyAgICAgICAgQWNsICpzY2hlbWFhY2w7CisKKyAgICAgICAgc2NoZW1hYWNsID0g Z2V0X3VzZXJfZGVmYXVsdF9hY2woT0JKRUNUX1hNTFNDSEVNQSwgc2NoZW1hb3duZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYW5hbWVzcGFjZSk7Cisg ICAgICAgIGlmIChzY2hlbWFhY2wgIT0gTlVMTCkKKyAgICAgICAgICAgIHZhbHVlc1tBbnVtX3Bn X3htbHNjaGVtYV9zY2hlbWFhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShzY2hlbWFhY2wpOwor ICAgICAgICBlbHNlCisgICAgICAgICAgICBudWxsc1tBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFh Y2wgLSAxXSA9IHRydWU7CisgICAgfQorCisgICAgdHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1cERl c2MsIHZhbHVlcywgbnVsbHMpOworCisgICAgLyogaW5zZXJ0IGEgbmV3IHR1cGxlICovCisgICAg Q2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKyAgICBBc3NlcnQoT2lkSXNWYWxpZChvaWQp KTsKKworICAgIC8qIHNldCB1cCBkZXBlbmRlbmNpZXMgZm9yIHRoZSBuZXcgWE1MIHNjaGVtYSAq LworICAgIG15c2VsZi5jbGFzc0lkID0gWG1sU2NoZW1hUmVsYXRpb25JZDsKKyAgICBteXNlbGYu b2JqZWN0SWQgPSBvaWQ7CisgICAgbXlzZWxmLm9iamVjdFN1YklkID0gMDsKKworICAgIC8qIGNy ZWF0ZSBkZXBlbmRlbmN5IG9uIG5hbWVzcGFjZSAqLworICAgIHJlZmVyZW5jZWQuY2xhc3NJZCA9 IE5hbWVzcGFjZVJlbGF0aW9uSWQ7CisgICAgcmVmZXJlbmNlZC5vYmplY3RJZCA9IHNjaGVtYW5h bWVzcGFjZTsKKyAgICByZWZlcmVuY2VkLm9iamVjdFN1YklkID0gMDsKKyAgICByZWNvcmREZXBl bmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKworICAg IC8qIGNyZWF0ZSBkZXBlbmRlbmN5IG9uIG93bmVyICovCisgICAgcmVjb3JkRGVwZW5kZW5jeU9u T3duZXIoWG1sU2NoZW1hUmVsYXRpb25JZCwgb2lkLCBzY2hlbWFvd25lcik7CisKKyAgICAvKiBk ZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLworICAgIHJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRF eHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisgICAgLyogUG9zdCBjcmVhdGlvbiBob29rIGZv ciBuZXcgWE1MIHNjaGVtYSAqLworICAgIEludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFhtbFNj aGVtYVJlbGF0aW9uSWQsIG9pZCwgMCk7CisKKyAgICBoZWFwX2ZyZWV0dXBsZSh0dXApOworICAg IHRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworICAgIHJldHVybiBvaWQ7Cit9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv YWx0ZXIuYwppbmRleCBmN2IyMzg5YjAxOS4uNzc4ZjU0YmRhZTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIu YwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190 ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfeG1sc2NoZW1hLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb2xsYXRpb25jbWRzLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpAQCAtMTQwLDYgKzE0MSwxMCBAQCByZXBv cnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpuYW1lLCBPaWQg bnNwT2lkKQogCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CiAJCQltc2dmbXQgPSBnZXR0 ZXh0X25vb3AoInRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3Rz IGluIHNjaGVtYSBcIiVzXCIiKTsKIAkJCWJyZWFrOworCQljYXNlIFhtbFNjaGVtYVJlbGF0aW9u SWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKKwkJCW1zZ2ZtdCA9IGdldHRleHRf bm9vcCgiWE1MIHNjaGVtYSBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIp OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2Jq ZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7CkBAIC00MjMsNiArNDI4LDcgQEAg RXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfRkRXOgogCQlj YXNlIE9CSkVDVF9GT1JFSUdOX1NFUlZFUjoKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CisJCWNh c2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpF Q1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX0xBTkdVQUdFOgpAQCAtNTY3LDYgKzU3Myw3IEBA IEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAog CQljYXNlIE9CSkVDVF9GVU5DVElPTjoKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2Ug T0JKRUNUX09QQ0xBU1M6CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJY2FzZSBPQkpFQ1Rf T1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BST0NFRFVSRToKIAkJY2FzZSBPQkpFQ1RfUk9VVElO RToKQEAgLTg3Nyw2ICs4ODQsNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQg KnN0bXQpCiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0ZVTkNUSU9O OgogCQljYXNlIE9CSkVDVF9MQU5HVUFHRToKKwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgogCQlj YXNlIE9CSkVDVF9MQVJHRU9CSkVDVDoKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2Ug T0JKRUNUX09QQ0xBU1M6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwppbmRleCA5MjUyNjAxMmQyYS4u MmU4OTM5NjhhYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtMjc4LDYgKzI3OCwxMyBA QCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVj dCkKIAkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsK IAkJCX0KIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6CisJCQlpZiAoIXNjaGVt YV9kb2VzX25vdF9leGlzdF9za2lwcGluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCAmbXNnLCAm bmFtZSkpCisJCQl7CisJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJYTUwgc2NoZW1hIFwiJXNcIiBk b2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhj YXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9T Q0hFTUE6CiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNjaGVtYSBcIiVzXCIgZG9lcyBub3QgZXhp c3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVjdCk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKaW5kZXggMDI4ZjllMmRlOTAuLjRhMDg3OTM1ZjE2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMzE4LDYgKzIzMTgsNyBAQCBzdHJpbmdp ZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1RTVEVN UExBVEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKIAkJY2FzZSBPQkpFQ1RfVklFVzoK KwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCX0KIApAQCAtMjQwMiw2ICsyNDAzLDcg QEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2Fz ZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgogCQljYXNl IE9CSkVDVF9WSUVXOgorCQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6CiAJCQllbG9nKEVSUk9SLCAi dW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVkIiwgKGludCkgb2JqdHlwZSk7CiAJfQogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGNhM2Y1M2M2MjEzLi4zMzYzNzk3ZWNlZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTU1LDQgKzU1LDUgQEAgYmFja2VuZF9zb3VyY2VzICs9 IGZpbGVzKAogICAndmFyaWFibGUuYycsCiAgICd2aWV3LmMnLAogICAnd2FpdC5jJywKKyAgJ3ht bHNjaGVtYWNtZHMuYycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNs YWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA0MTYwZjViNjg1 NS4uODNjNmNkZDliYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVs LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtOTIsNiArOTIsNyBA QCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVD VF9VU0VSX01BUFBJTkc6CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJCXJldHVybiBmYWxz ZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3htbHNjaGVtYWNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3htbHNjaGVtYWNtZHMuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTNhNGQ0Yjc4MzEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy94bWxzY2hlbWFjbWRzLmMKQEAgLTAsMCArMSwxMTkgQEAK KyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5o IgorI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3htbHNjaGVtYS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCisjaW5j bHVkZSAiY29tbWFuZHMveG1sc2NoZW1hY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJl bS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2lu Y2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisj aW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisv KgorICogQ1JFQVRFIFhNTFNDSEVNQQorICovCitPYmplY3RBZGRyZXNzCitEZWZpbmVYbWxTY2hl bWEoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9v bCBpZl9ub3RfZXhpc3RzKQoreworCWNoYXIJICAgKnNjaGVtYU5hbWU7CisJT2lkCQkJc2NoZW1h TmFtZXNwYWNlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJTGlzdENlbGwgICAqcGw7CisJRGVm RWxlbSAgICAqc2NoZW1hRGF0YUVsID0gTlVMTDsKKwljaGFyCSAgICpzY2hlbWFEYXRhOworCU9p ZAkJCW5ld29pZDsKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisKKwlzY2hlbWFOYW1lc3BhY2Ug PSBRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2UobmFtZXMsICZzY2hlbWFOYW1lKTsK KworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBzY2hl bWFOYW1lc3BhY2UsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9 IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9TQ0hFTUEs CisJCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFtZShzY2hlbWFOYW1lc3BhY2UpKTsKKworCS8qIFBh cnNlIHBhcmFtZXRlcnMgKi8KKwlmb3JlYWNoKHBsLCBwYXJhbWV0ZXJzKQorCXsKKwkJRGVmRWxl bSAgICAqZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBwbCk7CisJCURlZkVsZW0gICAqKmRl ZmVscDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAic2NoZW1hIikgPT0gMCkKKwkJ CWRlZmVscCA9ICZzY2hlbWFEYXRhRWw7CisJCWVsc2UKKwkJeworCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJYTUwg c2NoZW1hIGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5k ZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlv bikpKTsKKwkJCWJyZWFrOworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNv bmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0K KworCWlmICghc2NoZW1hRGF0YUVsKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgXCJzY2hlbWFcIiBt dXN0IGJlIHNwZWNpZmllZCIpKSk7CisKKwlzY2hlbWFEYXRhID0gZGVmR2V0U3RyaW5nKHNjaGVt YURhdGFFbCk7CisKKwluZXdvaWQgPSBYbWxTY2hlbWFDcmVhdGUoc2NoZW1hTmFtZSwKKwkJCQkJ CQkgc2NoZW1hTmFtZXNwYWNlLAorCQkJCQkJCSBHZXRVc2VySWQoKSwKKwkJCQkJCQkgc2NoZW1h RGF0YSwKKwkJCQkJCQkgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkgZmFsc2UpOworCisJaWYgKCFP aWRJc1ZhbGlkKG5ld29pZCkpCisJeworCQkvKgorCQkgKiBXaGVuIElGIE5PVCBFWElTVFMgd2Fz IHNwZWNpZmllZCBhbmQgdGhlIG9iamVjdCBhbHJlYWR5IGV4aXN0ZWQsCisJCSAqIFhtbFNjaGVt YUNyZWF0ZSByZXR1cm5lZCBJbnZhbGlkT2lkLiBSZXBvcnQgYW4gaW52YWxpZCBvYmplY3QKKwkJ ICogYWRkcmVzcy4KKwkJICovCisJCWFkZHJlc3MuY2xhc3NJZCA9IFhtbFNjaGVtYVJlbGF0aW9u SWQ7CisJCWFkZHJlc3Mub2JqZWN0SWQgPSBJbnZhbGlkT2lkOworCQlhZGRyZXNzLm9iamVjdFN1 YklkID0gMDsKKwkJcmV0dXJuIGFkZHJlc3M7CisJfQorCisJLyoKKwkgKiBDaGVjayB0aGF0IHRo ZXJlIGlzIG5vdCBhbHJlYWR5IGFuIFhNTCBzY2hlbWEgd2l0aCBzYW1lIG5hbWUgaW4gc2NoZW1h LgorCSAqIFRoaXMgaXMgcmVhbGx5IGp1c3QgYSBmcmllbmRsaWVyIGVycm9yIG1lc3NhZ2UgdGhh biB0aGUgdW5pcXVlIGluZGV4CisJICogdmlvbGF0aW9uLgorCSAqLworCUlzVGhlcmVYbWxTY2hl bWFJbk5hbWVzcGFjZShzY2hlbWFOYW1lLCBzY2hlbWFOYW1lc3BhY2UpOworCisJT2JqZWN0QWRk cmVzc1NldChhZGRyZXNzLCBYbWxTY2hlbWFSZWxhdGlvbklkLCBuZXdvaWQpOworCisJcmV0dXJu IGFkZHJlc3M7Cit9CisKKy8qCisgKiBJc1RoZXJlWG1sU2NoZW1hSW5OYW1lc3BhY2UKKyAqCisg KiBDaGVjayBpZiB0aGVyZSBpcyBhbiBYTUwgc2NoZW1hIHdpdGggdGhlIGdpdmVuIG5hbWUgaW4g dGhlIGdpdmVuIG5hbWVzcGFjZS4KKyAqIElmIHNvLCByYWlzZSBhbiBhcHByb3ByaWF0ZSBlcnJv ci4KKyAqLwordm9pZAorSXNUaGVyZVhtbFNjaGVtYUluTmFtZXNwYWNlKGNvbnN0IGNoYXIgKnNj aGVtYW5hbWUsIE9pZCBuc3BPaWQpCit7CisJLyogbWFrZSBzdXJlIHRoZSBuYW1lIGRvZXNuJ3Qg Y29uZmxpY3QgKi8KKwlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFhNTFNDSEVNQU5BTUVOU1As CisJCQkJCQkJICBQb2ludGVyR2V0RGF0dW0oc2NoZW1hbmFtZSksCisJCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKG5zcE9pZCkpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJIGVycm1zZygiWE1MIHNjaGVtYSBcIiVzXCIgZm9y IHNjaGVtYSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJc2NoZW1hbmFtZSwgZ2V0X25h bWVzcGFjZV9uYW1lKG5zcE9pZCkpKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRl cnAuYwppbmRleCA4NmFiMzcwNGI2Ni4uYWVlNzBmMGM3NDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYwpAQCAtNDYyNiw2ICs0NjI2LDMzIEBAIEV4ZWNFdmFsWG1sRXhwcihF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJ Y2FzZSBJU19YTUxWQUxJREFURToKKwkJCXsKKwkJCQlEYXR1bQkgICAqYXJndmFsdWUgPSBvcC0+ ZC54bWxleHByLmFyZ3ZhbHVlOworCQkJCWJvb2wJICAgKmFyZ251bGwgPSBvcC0+ZC54bWxleHBy LmFyZ251bGw7CisJCQkJeG1sdHlwZSAgICAqZGF0YTsKKwkJCQlPaWQJCQlzY2hlbWFfb2lkOwor CQkJCXhtbHR5cGUgICAgKnJlc3VsdDsKKworCQkJCS8qIFR3byBhcmd1bWVudHM6IFhNTCBkYXRh IGFuZCBzY2hlbWEgT0lEICovCisJCQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHhleHByLT5hcmdzKSA9 PSAyKTsKKworCQkJCWlmIChhcmdudWxsWzBdIHx8IGFyZ251bGxbMV0pCisJCQkJeworCQkJCQkq b3AtPnJlc251bGwgPSB0cnVlOworCQkJCQlyZXR1cm47CisJCQkJfQorCisJCQkJZGF0YSA9IERh dHVtR2V0WG1sUChhcmd2YWx1ZVswXSk7CisJCQkJc2NoZW1hX29pZCA9IERhdHVtR2V0T2JqZWN0 SWQoYXJndmFsdWVbMV0pOworCisJCQkJcmVzdWx0ID0geG1sdmFsaWRhdGVfc2NoZW1hKGRhdGEs IHNjaGVtYV9vaWQpOworCisJCQkJKm9wLT5yZXN2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShyZXN1 bHQpOworCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOworCQkJfQorCQkJYnJlYWs7CisKIAkJY2Fz ZSBJU19ET0NVTUVOVDoKIAkJCXsKIAkJCQlEYXR1bQkgICAqYXJndmFsdWUgPSBvcC0+ZC54bWxl eHByLmFyZ3ZhbHVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzEzZWU1YzEwYTIuLjI0MDRmMmE4NDllIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTcwNyw3ICs3MDcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog ICovCiAKIC8qIG9yZGluYXJ5IGtleSB3b3JkcyBpbiBhbHBoYWJldGljYWwgb3JkZXIgKi8KLSV0 b2tlbiA8a2V5d29yZD4gQUJPUlRfUCBBQlNFTlQgQUJTT0xVVEVfUCBBQ0NFU1MgQUNUSU9OIEFE RF9QIEFETUlOIEFGVEVSCisldG9rZW4gPGtleXdvcmQ+IEFCT1JUX1AgQUJTRU5UIEFCU09MVVRF X1AgQUNDRVNTIEFDQ09SRElORyBBQ1RJT04gQUREX1AgQURNSU4gQUZURVIKIAlBR0dSRUdBVEUg QUxMIEFMU08gQUxURVIgQUxXQVlTIEFOQUxZU0UgQU5BTFlaRSBBTkQgQU5ZIEFSUkFZIEFTIEFT QwogCUFTRU5TSVRJVkUgQVNTRVJUSU9OIEFTU0lHTk1FTlQgQVNZTU1FVFJJQyBBVE9NSUMgQVQg QVRUQUNIIEFUVFJJQlVURSBBVVRIT1JJWkFUSU9OCiAKQEAgLTcyOCw3ICs3MjgsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCURFVEFDSCBESUNUSU9OQVJZIERJU0FCTEVfUCBESVNDQVJE IERJU1RJTkNUIERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNI IEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5GT1JDRUQg RU5VTV9QIEVSUk9SX1AKKwlFQUNIIEVMU0UgRUxFTUVOVCBFTVBUWV9QIEVOQUJMRV9QIEVOQ09E SU5HIEVOQ1JZUFRFRCBFTkRfUCBFTkZPUkNFRCBFTlVNX1AgRVJST1JfUAogCUVTQ0FQRSBFVkVO VCBFWENFUFQgRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExB SU4KIAlFWFBSRVNTSU9OIEVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAKQEAgLTc5OCw3ICs3 OTgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVdBSVQgV0hFTiBXSEVSRSBXSElURVNQ QUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKIAlY TUxfUCBYTUxBVFRSSUJVVEVTIFhNTENPTkNBVCBYTUxFTEVNRU5UIFhNTEVYSVNUUyBYTUxGT1JF U1QgWE1MTkFNRVNQQUNFUwotCVhNTFBBUlNFIFhNTFBJIFhNTFJPT1QgWE1MU0VSSUFMSVpFIFhN TFRBQkxFCisJWE1MUEFSU0UgWE1MUEkgWE1MUk9PVCBYTUxTQ0hFTUEgWE1MU0VSSUFMSVpFIFhN TFRBQkxFIFhNTFZBTElEQVRFCiAKIAlZRUFSX1AgWUVTX1AKIApAQCAtNjY1NCw2ICs2NjU0LDI3 IEBAIERlZmluZVN0bXQ6CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9 IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBDUkVBVEUgWE1MU0NIRU1BIGFueV9uYW1lIEFTIFNj b25zdAorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOwor CisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfWE1MU0NIRU1BOworCQkJCQluLT5hcmdzID0gTklMOwor CQkJCQluLT5kZWZuYW1lcyA9ICQzOworCQkJCQluLT5kZWZpbml0aW9uID0gbGlzdF9tYWtlMSht YWtlRGVmRWxlbSgic2NoZW1hIiwgKE5vZGUgKikgbWFrZVN0cmluZygkNSksIEA1KSk7CisJCQkJ CSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBYTUxTQ0hFTUEgSUZfUCBOT1Qg RVhJU1RTIGFueV9uYW1lIEFTIFNjb25zdAorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAqbiA9IG1h a2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfWE1MU0NIRU1BOwor CQkJCQluLT5hcmdzID0gTklMOworCQkJCQluLT5kZWZuYW1lcyA9ICQ2OworCQkJCQluLT5kZWZp bml0aW9uID0gbGlzdF9tYWtlMShtYWtlRGVmRWxlbSgic2NoZW1hIiwgKE5vZGUgKikgbWFrZVN0 cmluZygkOCksIEA4KSk7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIGRlZmluaXRpb246ICcoJyBkZWZfbGlzdCAnKScJ CQkJCQl7ICQkID0gJDI7IH0KQEAgLTcxOTMsNiArNzIxNCw3IEBAIG9iamVjdF90eXBlX2FueV9u YW1lOgogCQkJfCBJTkRFWAkJCQkJCQkJCXsgJCQgPSBPQkpFQ1RfSU5ERVg7IH0KIAkJCXwgRk9S RUlHTiBUQUJMRQkJCQkJCQl7ICQkID0gT0JKRUNUX0ZPUkVJR05fVEFCTEU7IH0KIAkJCXwgQ09M TEFUSU9OCQkJCQkJCQl7ICQkID0gT0JKRUNUX0NPTExBVElPTjsgfQorCQkJfCBYTUxTQ0hFTUEJ CQkJCQkJCXsgJCQgPSBPQkpFQ1RfWE1MU0NIRU1BOyB9CiAJCQl8IENPTlZFUlNJT05fUAkJCQkJ CQl7ICQkID0gT0JKRUNUX0NPTlZFUlNJT047IH0KIAkJCXwgU1RBVElTVElDUwkJCQkJCQl7ICQk ID0gT0JKRUNUX1NUQVRJU1RJQ19FWFQ7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBQQVJTRVIJCQkJ CXsgJCQgPSBPQkpFQ1RfVFNQQVJTRVI7IH0KQEAgLTgxMDcsNiArODEyOSwxNSBAQCBwcml2aWxl Z2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8 IFhNTFNDSEVNQSBhbnlfbmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gcGFs bG9jX29iamVjdChQcml2VGFyZ2V0KTsKKworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRf T0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1hNTFNDSEVNQTsKKwkJCQkJbi0+b2Jq cyA9ICQyOworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1B IG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAqbiA9IHBhbGxvY19vYmplY3QoUHJp dlRhcmdldCk7CkBAIC05NTczLDYgKzk2MDQsMTYgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVH QVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Np bmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIg WE1MU0NIRU1BIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10 ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVD VF9YTUxTQ0hFTUE7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdu YW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAq KSBuOworCQkJCX0KIAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIFJFTkFNRSBUTyBu YW1lCiAJCQkJewogCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CkBA IC0xMDI1MCw2ICsxMDI5MSwxNiBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1p c3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxU RVIgWE1MU0NIRU1BIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJP YmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwor CQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1hNTFNDSEVNQTsKKwkJCQkJbi0+b2JqZWN0ID0g KE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29r ID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIENPTlZF UlNJT05fUCBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKIAkJCQl7CiAJCQkJCUFsdGVyT2JqZWN0 U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CkBAIC0xMDU4 Myw2ICsxMDYzNCwxNSBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0 ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFhNTFNDSEVNQSBhbnlf bmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBt YWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9Y TUxTQ0hFTUE7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25l ciA9ICQ2OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJT SU9OX1AgYW55X25hbWUgT1dORVIgVE8gUm9sZVNwZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJT dG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQpOwpAQCAtMTYyODgsNiArMTYzNDgsMTcg QEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBYTUxWQUxJREFURSAnKCcgRE9DVU1FTlRf UCBhX2V4cHIgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBhbnlfbmFtZSAnKScKKwkJCQl7CisJCQkJ CVhtbEV4cHIgKnggPSAoWG1sRXhwciAqKQorCQkJCQkJbWFrZVhtbEV4cHIoSVNfWE1MVkFMSURB VEUsIE5VTEwsICQ4LAorCQkJCQkJCQkJbGlzdF9tYWtlMSgkNCksCisJCQkJCQkJCQlAMSk7CisK KwkJCQkJeC0+eG1sb3B0aW9uID0gWE1MT1BUSU9OX0RPQ1VNRU5UOworCQkJCQl4LT5sb2NhdGlv biA9IEAxOworCQkJCQkkJCA9IChOb2RlICopIHg7CisJCQkJfQogCQkJfCBKU09OX09CSkVDVCAn KCcgZnVuY19hcmdfbGlzdCAnKScKIAkJCQl7CiAJCQkJCS8qIFN1cHBvcnQgZm9yIGxlZ2FjeSAo bm9uLXN0YW5kYXJkKSBqc29uX29iamVjdCgpICovCkBAIC0xNzg5OCw2ICsxNzk2OSw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgQUJTRU5UCiAJCQl8IEFCU09MVVRFX1AKIAkJCXwgQUND RVNTCisJCQl8IEFDQ09SRElORwogCQkJfCBBQ1RJT04KIAkJCXwgQUREX1AKIAkJCXwgQURNSU4K QEAgLTE4MjI3LDYgKzE4Mjk5LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBXUkFQUEVS CiAJCQl8IFdSSVRFCiAJCQl8IFhNTF9QCisJCQl8IFhNTFNDSEVNQQogCQkJfCBZRUFSX1AKIAkJ CXwgWUVTX1AKIAkJCXwgWk9ORQpAQCAtMTgzMDYsNiArMTgzNzksNyBAQCBjb2xfbmFtZV9rZXl3 b3JkOgogCQkJfCBYTUxST09UCiAJCQl8IFhNTFNFUklBTElaRQogCQkJfCBYTUxUQUJMRQorCQkJ fCBYTUxWQUxJREFURQogCQk7CiAKIC8qIFR5cGUvZnVuY3Rpb24gaWRlbnRpZmllciAtLS0ga2V5 d29yZHMgdGhhdCBjYW4gYmUgdHlwZSBvciBmdW5jdGlvbiBuYW1lcy4KQEAgLTE4NDQ1LDYgKzE4 NTE5LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBBQlNFTlQKIAkJCXwgQUJTT0xVVEVf UAogCQkJfCBBQ0NFU1MKKwkJCXwgQUNDT1JESU5HCiAJCQl8IEFDVElPTgogCQkJfCBBRERfUAog CQkJfCBBRE1JTgpAQCAtMTg4OTYsOCArMTg5NzEsMTAgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgog CQkJfCBYTUxQQVJTRQogCQkJfCBYTUxQSQogCQkJfCBYTUxST09UCisJCQl8IFhNTFNDSEVNQQog CQkJfCBYTUxTRVJJQUxJWkUKIAkJCXwgWE1MVEFCTEUKKwkJCXwgWE1MVkFMSURBVEUKIAkJCXwg WUVTX1AKIAkJCXwgWk9ORQogCQk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA5Y2JhMTI3 MjI1My4uYjA5NzhmZjZjMWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTYsNiArMTYs NyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRh aWxzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgpAQCAtMjM2MCw2ICsyMzYxLDcgQEAgdHJhbnNmb3JtWG1sRXhwcihQYXJz ZVN0YXRlICpwc3RhdGUsIFhtbEV4cHIgKngpCiAJWG1sRXhwciAgICAqbmV3eDsKIAlMaXN0Q2Vs bCAgICpsYzsKIAlpbnQJCQlpOworCU9pZAkJCXhtbHZhbGlkYXRlX3NjaGVtYV9vaWQgPSBJbnZh bGlkT2lkOwogCiAJbmV3eCA9IG1ha2VOb2RlKFhtbEV4cHIpOwogCW5ld3gtPm9wID0geC0+b3A7 CkBAIC0yMzcyLDYgKzIzNzQsMjEgQEAgdHJhbnNmb3JtWG1sRXhwcihQYXJzZVN0YXRlICpwc3Rh dGUsIFhtbEV4cHIgKngpCiAJbmV3eC0+dHlwbW9kID0gLTE7CiAJbmV3eC0+bG9jYXRpb24gPSB4 LT5sb2NhdGlvbjsKIAorCS8qCisJICogWE1MVkFMSURBVEUgc3RvcmVzIHRoZSBzY2hlbWEgbmFt ZSBsaXN0IGluIG5hbWVkX2FyZ3MsIG5vdCBSZXNUYXJnZXRzLgorCSAqIEV4dHJhY3QgaXQgYmVm b3JlIHByb2Nlc3NpbmcgbmFtZWQgYXJndW1lbnRzLgorCSAqLworCWlmICh4LT5vcCA9PSBJU19Y TUxWQUxJREFURSAmJiB4LT5uYW1lZF9hcmdzICE9IE5JTCkKKwl7CisJCUxpc3QgKnNjaGVtYV9u YW1lX2xpc3Q7CisJCXNjaGVtYV9uYW1lX2xpc3QgPSB4LT5uYW1lZF9hcmdzOworCQl4bWx2YWxp ZGF0ZV9zY2hlbWFfb2lkID0gZ2V0X3htbHNjaGVtYV9vaWQoc2NoZW1hX25hbWVfbGlzdCwgZmFs c2UpOworCQkvKiBQcmVzZXJ2ZSBzY2hlbWEgbmFtZSBmb3IgZGVwYXJzaW5nICovCisJCW5ld3gt Pm5hbWUgPSBOYW1lTGlzdFRvU3RyaW5nKHNjaGVtYV9uYW1lX2xpc3QpOworCQkvKiBDbGVhciB0 byBhdm9pZCBwcm9jZXNzaW5nIGFzIFJlc1RhcmdldHMgKi8KKwkJeC0+bmFtZWRfYXJncyA9IE5J TDsKKwl9CisKIAkvKgogCSAqIGdyYW0ueSBidWlsdCB0aGUgbmFtZWQgYXJncyBhcyBhIGxpc3Qg b2YgUmVzVGFyZ2V0LiAgVHJhbnNmb3JtIGVhY2gsCiAJICogYW5kIGJyZWFrIHRoZSBuYW1lcyBv dXQgYXMgYSBzZXBhcmF0ZSBsaXN0LgpAQCAtMjQ3MSw2ICsyNDg4LDExIEBAIHRyYW5zZm9ybVht bEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBYbWxFeHByICp4KQogCQkJCS8qIG5vdCBoYW5kbGVk IGhlcmUgKi8KIAkJCQlBc3NlcnQoZmFsc2UpOwogCQkJCWJyZWFrOworCQkJY2FzZSBJU19YTUxW QUxJREFURToKKwkJCQkvKiBGaXJzdCBhcmd1bWVudCBpcyB0aGUgWE1MIGRhdGEgKi8KKwkJCQlu ZXdlID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBuZXdlLCBYTUxPSUQsCisJCQkJ CQkJCQkJCSAgICJYTUxWQUxJREFURSIpOworCQkJCWJyZWFrOwogCQkJY2FzZSBJU19ET0NVTUVO VDoKIAkJCQluZXdlID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBuZXdlLCBYTUxP SUQsCiAJCQkJCQkJCQkJCSAgICJJUyBET0NVTUVOVCIpOwpAQCAtMjQ4MCw2ICsyNTAyLDI2IEBA IHRyYW5zZm9ybVhtbEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBYbWxFeHByICp4KQogCQlpKys7 CiAJfQogCisJLyogRm9yIFhNTFZBTElEQVRFLCBhZGQgdGhlIHNjaGVtYSBPSUQgYXMgc2Vjb25k IGFyZ3VtZW50ICovCisJaWYgKHgtPm9wID09IElTX1hNTFZBTElEQVRFKQorCXsKKwkJQ29uc3Qg KnNjaGVtYV9vaWRfY29uc3Q7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQoeG1sdmFsaWRhdGVfc2No ZW1hX29pZCkpOworCisJCXNjaGVtYV9vaWRfY29uc3QgPSBtYWtlQ29uc3QoT0lET0lELAorCQkJ CQkJCQkJIC0xLAorCQkJCQkJCQkJIEludmFsaWRPaWQsCisJCQkJCQkJCQkgc2l6ZW9mKE9pZCks CisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bSh4bWx2YWxpZGF0ZV9zY2hlbWFfb2lkKSwKKwkJ CQkJCQkJCSBmYWxzZSwKKwkJCQkJCQkJCSB0cnVlKTsKKwkJbmV3eC0+YXJncyA9IGxhcHBlbmQo bmV3eC0+YXJncywgc2NoZW1hX29pZF9jb25zdCk7CisKKwkJLyogUmV0dXJuIHR5cGUgaXMgWE1M ICovCisJCW5ld3gtPnR5cGUgPSBYTUxPSUQ7CisJfQorCiAJcmV0dXJuIChOb2RlICopIG5ld3g7 CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBiNWEyZjkxNWI2Ny4uYjM4MGJi MzllYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE5NzYsNiArMTk3Niw5IEBA IEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQljYXNl IElTX1hNTFNFUklBTElaRToKIAkJCQkJKm5hbWUgPSAieG1sc2VyaWFsaXplIjsKIAkJCQkJcmV0 dXJuIDI7CisJCQkJY2FzZSBJU19YTUxWQUxJREFURToKKwkJCQkJKm5hbWUgPSAieG1sdmFsaWRh dGUiOworCQkJCQlyZXR1cm4gMjsKIAkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJCQkvKiBub3Ro aW5nICovCiAJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAzNGRkNmUxOGRmNS4uNjBlMGEw ZjdlN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSAiY29tbWFu ZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmlldy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3dhaXQuaCIKKyNpbmNsdWRlICJjb21tYW5kcy94bWxzY2hlbWFjbWRzLmgiCiAjaW5jbHVk ZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3V0aWxjbWQuaCIKICNpbmNs dWRlICJwb3N0bWFzdGVyL2Jnd3JpdGVyLmgiCkBAIC0xNDQzLDYgKzE0NDQsMTMgQEAgUHJvY2Vz c1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgIHN0bXQtPmRl ZmluaXRpb24sCiAJCQkJCQkJCQkJCQkJICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKIAkJCQkJCQli cmVhazsKKwkJCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJCQlBc3NlcnQoc3RtdC0+ YXJncyA9PSBOSUwpOworCQkJCQkJCWFkZHJlc3MgPSBEZWZpbmVYbWxTY2hlbWEocHN0YXRlLAor CQkJCQkJCQkJCQkJCSAgc3RtdC0+ZGVmbmFtZXMsCisJCQkJCQkJCQkJCQkJICBzdG10LT5kZWZp bml0aW9uLAorCQkJCQkJCQkJCQkJCSAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisJCQkJCQkJYnJl YWs7CiAJCQkJCQlkZWZhdWx0OgogCQkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgZGVm aW5lIHN0bXQgdHlwZTogJWQiLAogCQkJCQkJCQkgKGludCkgc3RtdC0+a2luZCk7CkBAIC0yMjM4 LDYgKzIyNDYsOSBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlw ZSkKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTExB VElPTjsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6CisJCQl0YWcgPSBDTURU QUdfQUxURVJfWE1MU0NIRU1BOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJ CXRhZyA9IENNRFRBR19BTFRFUl9UQUJMRTsKIAkJCWJyZWFrOwpAQCAtMjU3NSw2ICsyNTg2LDkg QEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT0xMQVRJT047CiAJCQkJCWJyZWFrOwor CQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfWE1MU0NI RU1BOworCQkJCQlicmVhazsKIAkJCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQkJCQl0YWcg PSBDTURUQUdfRFJPUF9DT05WRVJTSU9OOwogCQkJCQlicmVhazsKQEAgLTI3NzYsNiArMjc5MCw5 IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX0NP TExBVElPTjoKIAkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xMQVRJT047CiAJCQkJCWJyZWFr OworCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9Y TUxTQ0hFTUE7CisJCQkJCWJyZWFrOwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJ CQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvYWNsLmMKaW5kZXggM2E2OTA1Zjk1NDYuLjQxMmEwNDUwNDMwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYWNsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5j CkBAIC04NjcsNiArODY3LDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQg b3duZXJJZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVm YXVsdCA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBP QkpFQ1RfWE1MU0NIRU1BOgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJCQlv d25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfWE1MU0NIRU1BOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChp bnQpIG9ianR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAg Y29tcGlsZXIgcXVpZXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA0MTZmMWEy MWFlNC4uOTdjYzczYTIyM2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEwMTE5 LDE3ICsxMDExOSwyMCBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4 dCAqY29udGV4dCwKIAkJCQkJY2FzZSBJU19YTUxTRVJJQUxJWkU6CiAJCQkJCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKGJ1ZiwgIlhNTFNFUklBTElaRSgiKTsKIAkJCQkJCWJyZWFrOworCQkJCQlj YXNlIElTX1hNTFZBTElEQVRFOgorCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJY TUxWQUxJREFURSgiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJ CQkJYnJlYWs7CiAJCQkJfQotCQkJCWlmICh4ZXhwci0+b3AgPT0gSVNfWE1MUEFSU0UgfHwgeGV4 cHItPm9wID09IElTX1hNTFNFUklBTElaRSkKKwkJCQlpZiAoeGV4cHItPm9wID09IElTX1hNTFBB UlNFIHx8IHhleHByLT5vcCA9PSBJU19YTUxTRVJJQUxJWkUgfHwgeGV4cHItPm9wID09IElTX1hN TFZBTElEQVRFKQogCQkJCXsKIAkJCQkJaWYgKHhleHByLT54bWxvcHRpb24gPT0gWE1MT1BUSU9O X0RPQ1VNRU5UKQogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJET0NVTUVOVCAi KTsKIAkJCQkJZWxzZQogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDT05URU5U ICIpOwogCQkJCX0KLQkJCQlpZiAoeGV4cHItPm5hbWUpCisJCQkJaWYgKHhleHByLT5uYW1lICYm IHhleHByLT5vcCAhPSBJU19YTUxWQUxJREFURSkKIAkJCQl7CiAJCQkJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiTkFNRSAlcyIsCiAJCQkJCQkJCQkgcXVvdGVfaWRlbnRpZmllcihtYXBfeG1sX25h bWVfdG9fc3FsX2lkZW50aWZpZXIoeGV4cHItPm5hbWUpKSk7CkBAIC0xMDIyNiw2ICsxMDIyOSwx NSBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwK IAkJCQkJCQkJfQogCQkJCQkJCX0KIAkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgSVNfWE1MVkFM SURBVEU6CisJCQkJCQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHhleHByLT5hcmdzKSA9PSAyKTsKKwor CQkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGluaXRpYWwoeGV4cHItPmFyZ3MpLAorCQkJ CQkJCQkJCSAgY29udGV4dCwgdHJ1ZSk7CisKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KGJ1ZiwgIiBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BICIpOworCQkJCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCB4ZXhwci0+bmFtZSk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIElT X0RPQ1VNRU5UOgogCQkJCQkJCWdldF9ydWxlX2V4cHJfcGFyZW4oKE5vZGUgKikgeGV4cHItPmFy Z3MsIGNvbnRleHQsIGZhbHNlLCBub2RlKTsKIAkJCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpp bmRleCBmNjlkYzY4Mjg2Yy4uZTE3OWQ2MWY5MjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC94bWwuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKQEAgLTU4LDYg KzU4LDcgQEAKICNpbmNsdWRlIDxsaWJ4bWwveG1sd3JpdGVyLmg+CiAjaW5jbHVkZSA8bGlieG1s L3hwYXRoLmg+CiAjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8 bGlieG1sL3htbHNjaGVtYXMuaD4KIAogLyoKICAqIFdlIHVzZWQgdG8gY2hlY2sgZm9yIHhtbFN0 cnVjdHVyZWRFcnJvckNvbnRleHQgdmlhIGEgY29uZmlndXJlIHRlc3Q7IGJ1dApAQCAtODQsNiAr ODUsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfeG1sc2NoZW1hLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvdGFibGVmdW5jLmgiCiAjaW5jbHVkZSAiZm1nci5oIgpAQCAtOTQsNiArOTYs NyBAQAogI2luY2x1ZGUgIm5vZGVzL2V4ZWNub2Rlcy5oIgogI2luY2x1ZGUgIm5vZGVzL21pc2Nu b2Rlcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInV0aWxzL2Fj bC5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMu aCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCkBAIC0xMTU4LDEwICsxMTYxLDE0NCBAQCB4bWx2 YWxpZGF0ZShQR19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJ4bWx2YWxpZGF0 ZSBpcyBub3QgaW1wbGVtZW50ZWQiKSkpOworCQkJIGVycm1zZygieG1sdmFsaWRhdGUgaXMgbm90 IGltcGxlbWVudGVkIGFnYWluc3QgZ2VuZXJhbGl6ZWQgc2NoZW1hIGRlZmluaXRpb25zIikpKTsK IAlyZXR1cm4gMDsKIH0KKy8qCisgKiB4bWx2YWxpZGF0ZV9zY2hlbWEgLSB2YWxpZGF0ZSBYTUwg ZG9jdW1lbnQgYWdhaW5zdCBhIHJlZ2lzdGVyZWQgWE1MIFNjaGVtYQorICoKKyAqIFZhbGlkYXRl cyB0aGUgZ2l2ZW4gWE1MIGRvY3VtZW50IGFnYWluc3QgdGhlIHNjaGVtYSBpZGVudGlmaWVkIGJ5 IGEgc2NoZW1hX29pZC4KKyAqIFJldHVybnMgdGhlIHZhbGlkYXRlZCBYTUwgdmFsdWUsIG9yIHJh aXNlcyBhbiBlcnJvciBpZiB0aGUgdmFsaWRhdGlvbiBmYWlscy4KKyAqLworeG1sdHlwZSAqCit4 bWx2YWxpZGF0ZV9zY2hlbWEoeG1sdHlwZSAqZGF0YSwgT2lkIHNjaGVtYV9vaWQpCit7CisjaWZk ZWYgVVNFX0xJQlhNTAorCUhlYXBUdXBsZQl0dXBsZTsKKwlEYXR1bQkJc2NoZW1hX2RhdHVtOwor CWJvb2wJCWlzbnVsbDsKKwl0ZXh0CSAgICpzY2hlbWFfdGV4dDsKKwljaGFyCSAgICpzY2hlbWFz dHI7CisJdm9sYXRpbGUgeG1sRG9jUHRyIGRvYyA9IE5VTEw7CisJdm9sYXRpbGUgeG1sU2NoZW1h UGFyc2VyQ3R4dFB0ciBzY2hlbWFfcGFyc2VyX2N0eHQgPSBOVUxMOworCXZvbGF0aWxlIHhtbFNj aGVtYVB0ciBzY2hlbWFfcHRyID0gTlVMTDsKKwl2b2xhdGlsZSB4bWxTY2hlbWFWYWxpZEN0eHRQ dHIgdmFsaWRfY3R4dCA9IE5VTEw7CisJaW50CQkJcmVzdWx0OworCVBnWG1sRXJyb3JDb250ZXh0 ICp4bWxlcnJjeHQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCS8qIENoZWNrIHVzYWdlIHBl cm1pc3Npb24gZmlyc3QgKi8KKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soWG1sU2NoZW1h UmVsYXRpb25JZCwgc2NoZW1hX29pZCwKKwkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7 CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwl7CisJCS8qIEZldGNoIHR1cGxlIG9u bHkgdG8gZ2V0IG5hbWUgZm9yIHRoZSBlcnJvciBtZXNzYWdlICovCisJCUZvcm1fcGdfeG1sc2No ZW1hIHNjaGVtYV9mb3JtOworCisJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVNQU9J RCwgT2JqZWN0SWRHZXREYXR1bShzY2hlbWFfb2lkKSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXBsZSkpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgWE1MIHNj aGVtYSAldSIsIHNjaGVtYV9vaWQpOworCisJCXNjaGVtYV9mb3JtID0gKEZvcm1fcGdfeG1sc2No ZW1hKSBHRVRTVFJVQ1QodHVwbGUpOworCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJCWFj bGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1hNTFNDSEVNQSwKKwkJCQkJICAgTmFtZVN0 cihzY2hlbWFfZm9ybS0+c2NoZW1hbmFtZSkpOworCX0KKworCXR1cGxlID0gU2VhcmNoU3lzQ2Fj aGUxKFhNTFNDSEVNQU9JRCwgT2JqZWN0SWRHZXREYXR1bShzY2hlbWFfb2lkKSk7CisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIFhNTCBzY2hlbWEgJXUiLCBzY2hlbWFfb2lkKTsKKworCXNjaGVtYV9kYXR1bSA9IFN5 c0NhY2hlR2V0QXR0cihYTUxTQ0hFTUFPSUQsIHR1cGxlLAorCQkJCQkJCQkgICBBbnVtX3BnX3ht bHNjaGVtYV9zY2hlbWFkYXRhLCAmaXNudWxsKTsKKwlpZiAoaXNudWxsKQorCQllbG9nKEVSUk9S LCAibnVsbCBzY2hlbWFkYXRhIGZvciBYTUwgc2NoZW1hICV1Iiwgc2NoZW1hX29pZCk7CisKKwlz Y2hlbWFfdGV4dCA9IERhdHVtR2V0VGV4dFBQKHNjaGVtYV9kYXR1bSk7CisJc2NoZW1hc3RyID0g dGV4dF90b19jc3RyaW5nKHNjaGVtYV90ZXh0KTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwor CisJeG1sZXJyY3h0ID0gcGdfeG1sX2luaXQoUEdfWE1MX1NUUklDVE5FU1NfV0VMTEZPUk1FRCk7 CisKKwlQR19UUlkoKTsKKwl7CisJCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJy b3JTYXZlQ29udGV4dH07CisJCWRvYyA9IHhtbF9wYXJzZSgodGV4dCAqKSBkYXRhLCBYTUxPUFRJ T05fRE9DVU1FTlQsIHRydWUsCisJCQkJCQlHZXREYXRhYmFzZUVuY29kaW5nKCksIE5VTEwsIE5V TEwsIChOb2RlICopICZlc2NvbnRleHQpOworCisJCWlmIChlc2NvbnRleHQuZXJyb3Jfb2NjdXJy ZWQgfHwgZG9jID09IE5VTEwpCisJCXsKKwkJCWlmIChlc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQg JiYgZXNjb250ZXh0LmVycm9yX2RhdGEpCisJCQl7CisJCQkJRXJyb3JEYXRhICplZGF0YSA9IGVz Y29udGV4dC5lcnJvcl9kYXRhOworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfWE1MX0RPQ1VNRU5UKSwKKwkJCQkJCSBlcnJtc2coImludmFsaWQgWE1M IGRvY3VtZW50IiksCisJCQkJCQkgZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVkYXRhLT5tZXNz YWdlID8gZWRhdGEtPm1lc3NhZ2UgOiAidW5rbm93biBlcnJvciIpKSk7CisJCQl9CisJCQl4bWxf ZXJlcG9ydCh4bWxlcnJjeHQsIEVSUk9SLCBFUlJDT0RFX0lOVkFMSURfWE1MX0RPQ1VNRU5ULAor CQkJCQkJImludmFsaWQgWE1MIGRvY3VtZW50Iik7CisJCX0KIAorCQlzY2hlbWFfcGFyc2VyX2N0 eHQgPSB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYXN0ciwgc3RybGVuKHNjaGVtYXN0 cikpOworCQlpZiAoc2NoZW1hX3BhcnNlcl9jdHh0ID09IE5VTEwpCisJCQl4bWxfZXJlcG9ydCh4 bWxlcnJjeHQsIEVSUk9SLCBFUlJDT0RFX0lOVEVSTkFMX0VSUk9SLAorCQkJCQkJImZhaWxlZCB0 byBjcmVhdGUgc2NoZW1hIHBhcnNlciBjb250ZXh0Iik7CisKKwkJc2NoZW1hX3B0ciA9IHhtbFNj aGVtYVBhcnNlKHNjaGVtYV9wYXJzZXJfY3R4dCk7CisJCWlmIChzY2hlbWFfcHRyID09IE5VTEwp CisJCQl4bWxfZXJlcG9ydCh4bWxlcnJjeHQsIEVSUk9SLCBFUlJDT0RFX0lOVkFMSURfWE1MX0RP Q1VNRU5ULAorCQkJCQkJImZhaWxlZCB0byBwYXJzZSBYTUwgc2NoZW1hIik7CisKKwkJdmFsaWRf Y3R4dCA9IHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dChzY2hlbWFfcHRyKTsKKwkJaWYgKHZhbGlkX2N0 eHQgPT0gTlVMTCkKKwkJCXhtbF9lcmVwb3J0KHhtbGVycmN4dCwgRVJST1IsIEVSUkNPREVfT1VU X09GX01FTU9SWSwKKwkJCQkJCSJmYWlsZWQgdG8gY3JlYXRlIHNjaGVtYSB2YWxpZGF0aW9uIGNv bnRleHQiKTsKKworCQl4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnModmFsaWRfY3R4 dCwgeG1sX2Vycm9ySGFuZGxlciwgeG1sZXJyY3h0KTsKKworCQlyZXN1bHQgPSB4bWxTY2hlbWFW YWxpZGF0ZURvYyh2YWxpZF9jdHh0LCBkb2MpOworCQlpZiAocmVzdWx0IDwgMCkKKwkJCXhtbF9l cmVwb3J0KHhtbGVycmN4dCwgRVJST1IsIEVSUkNPREVfSU5URVJOQUxfRVJST1IsCisJCQkJCQki aW50ZXJuYWwgZXJyb3IgZHVyaW5nIHNjaGVtYSB2YWxpZGF0aW9uIik7CisJCWlmIChyZXN1bHQg PiAwKQorCQkJeG1sX2VyZXBvcnQoeG1sZXJyY3h0LCBFUlJPUiwgRVJSQ09ERV9JTlZBTElEX1hN TF9ET0NVTUVOVCwKKwkJCQkJCSJYTUwgdmFsaWRhdGlvbiBmYWlsZWQiKTsKKwl9CisJUEdfQ0FU Q0goKTsKKwl7CisJCWlmICh2YWxpZF9jdHh0KQorCQkJeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCh2 YWxpZF9jdHh0KTsKKwkJaWYgKHNjaGVtYV9wdHIpCisJCQl4bWxTY2hlbWFGcmVlKHNjaGVtYV9w dHIpOworCQlpZiAoc2NoZW1hX3BhcnNlcl9jdHh0KQorCQkJeG1sU2NoZW1hRnJlZVBhcnNlckN0 eHQoc2NoZW1hX3BhcnNlcl9jdHh0KTsKKwkJaWYgKGRvYykKKwkJCXhtbEZyZWVEb2MoZG9jKTsK KwkJcGdfeG1sX2RvbmUoeG1sZXJyY3h0LCB0cnVlKTsKKwkJcGZyZWUoc2NoZW1hc3RyKTsKKwkJ UEdfUkVfVEhST1coKTsKKwl9CisJUEdfRU5EX1RSWSgpOworCisJaWYgKHZhbGlkX2N0eHQpCisJ CXhtbFNjaGVtYUZyZWVWYWxpZEN0eHQodmFsaWRfY3R4dCk7CisJaWYgKHNjaGVtYV9wdHIpCisJ CXhtbFNjaGVtYUZyZWUoc2NoZW1hX3B0cik7CisJaWYgKHNjaGVtYV9wYXJzZXJfY3R4dCkKKwkJ eG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoc2NoZW1hX3BhcnNlcl9jdHh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlwZ194bWxfZG9uZSh4bWxlcnJjeHQsIGZhbHNlKTsKKwlw ZnJlZShzY2hlbWFzdHIpOworCXJldHVybiBkYXRhOworI2Vsc2UKKwlOT19YTUxfU1VQUE9SVCgp OworCXJldHVybiBOVUxMOworI2VuZGlmCit9CiAKIGJvb2wKIHhtbF9pc19kb2N1bWVudCh4bWx0 eXBlICphcmcpCkBAIC0xMTgxLDcgKzEzMTgsNyBAQCB4bWxfaXNfZG9jdW1lbnQoeG1sdHlwZSAq YXJnKQogCXJldHVybiAhZXNjb250ZXh0LmVycm9yX29jY3VycmVkOwogI2Vsc2UJCQkJCQkJLyog bm90IFVTRV9MSUJYTUwgKi8KIAlOT19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBmYWxzZTsKKwly ZXR1cm4gTlVMTDsKICNlbmRpZgkJCQkJCQkvKiBub3QgVVNFX0xJQlhNTCAqLwogfQogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZAppbmRleCBiNjNjZDU4NDA2OC4uNTg0NjkxOWY2MjYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZApAQCAtNTksNiArNTksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAg ICdwZ19zZWNsYWJlbC5oJywKICAgJ3BnX3Noc2VjbGFiZWwuaCcsCiAgICdwZ19jb2xsYXRpb24u aCcsCisgICdwZ194bWxzY2hlbWEuaCcsCiAgICdwZ19wYXJhbWV0ZXJfYWNsLmgnLAogICAncGdf cGFydGl0aW9uZWRfdGFibGUuaCcsCiAgICdwZ19yYW5nZS5oJywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFj ZS5oCmluZGV4IDFhMjU5NzM2ODVjLi5hMGY5NTg1YzUzYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFj ZS5oCkBAIC0xOTEsNiArMTkxLDcgQEAgZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJy ZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCiBleHRlcm4gT2lkCWdl dF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJu IE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsK K2V4dGVybiBPaWQJZ2V0X3htbHNjaGVtYV9vaWQoTGlzdCAqc2NoZW1hbmFtZSwgYm9vbCBtaXNz aW5nX29rKTsKIGV4dGVybiBPaWQJRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBmb3Jf ZW5jb2RpbmcsIGludDMyIHRvX2VuY29kaW5nKTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3htbHNjaGVtYS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ194bWxzY2hl bWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODZkMjI4YWQxNWYK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3htbHNjaGVtYS5oCkBA IC0wLDAgKzEsNDMgQEAKKyNpZm5kZWYgUEdfWE1MU0NIRU1BX0gKKyNkZWZpbmUgUEdfWE1MU0NI RU1BX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z194bWxzY2hlbWFfZC5oIgorCitDQVRBTE9HKHBnX3htbHNjaGVtYSw2NDM0LFhtbFNjaGVtYVJl bGF0aW9uSWQpCit7CisgICAgT2lkICAgICAgb2lkOyAgICAgICAgLyogb2lkICovCisgICAgTmFt ZURhdGEgc2NoZW1hbmFtZTsgLyogWE1MIHNjaGVtYSBuYW1lICovCisgICAgLyogT0lEIG9mIG5h bWVzcGFjZSBjb250YWluaW5nIHRoaXMgWE1MIHNjaGVtYSAqLworICAgIE9pZCBzY2hlbWFuYW1l c3BhY2UgQktJX0RFRkFVTFQocGdfY2F0YWxvZykgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOwor ICAgIC8qIG93bmVyIG9mIFhNTCBzY2hlbWEgKi8KKyAgICBPaWQgc2NoZW1hb3duZXIgQktJX0RF RkFVTFQoUE9TVEdSRVMpIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKyNpZmRlZiBDQVRBTE9HX1ZB UkxFTgorICAgIHRleHQgc2NoZW1hZGF0YSBCS0lfRk9SQ0VfTk9UX05VTEw7IC8qIFhTRCBzY2hl bWEgZGVmaW5pdGlvbiB0ZXh0ICovCisgICAgLyogQWNjZXNzIHByaXZpbGVnZXMgKi8KKyAgICBh Y2xpdGVtIHNjaGVtYWFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworI2VuZGlmCit9IEZvcm1E YXRhX3BnX3htbHNjaGVtYTsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICogICAgICAgIEZvcm1f cGdfeG1sc2NoZW1hIG1hcHMgdG8gYSBwb2ludGVyIHRvIGEgcm93IHdpdGgKKyAqICAgICAgICB0 aGUgZm9ybWF0IG9mIHBnX3htbHNjaGVtYSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ194bWxzY2hlbWEgKkZvcm1fcGdfeG1sc2NoZW1hOwor CitERUNMQVJFX1RPQVNUKHBnX3htbHNjaGVtYSwgNjQzNSwgNjQzNik7CitERUNMQVJFX1VOSVFV RV9JTkRFWChwZ194bWxzY2hlbWFfbmFtZV9uc3BfaW5kZXgsIDY0MzcsIFhtbFNjaGVtYU5hbWVO c3BJbmRleElkLCBwZ194bWxzY2hlbWEsIGJ0cmVlKHNjaGVtYW5hbWUgbmFtZV9vcHMsIHNjaGVt YW5hbWVzcGFjZSBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3htbHNj aGVtYV9vaWRfaW5kZXgsIDY0MzgsIFhtbFNjaGVtYU9pZEluZGV4SWQsIHBnX3htbHNjaGVtYSwg YnRyZWUob2lkIG9pZF9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShYTUxTQ0hFTUFOQU1FTlNQLCBw Z194bWxzY2hlbWFfbmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShYTUxTQ0hFTUFP SUQsIHBnX3htbHNjaGVtYV9vaWRfaW5kZXgsIDgpOworCitleHRlcm4gT2lkICAgIFhtbFNjaGVt YUNyZWF0ZShjb25zdCBjaGFyICpzY2hlbWFuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9pZCBzY2hlbWFuYW1lc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2lk IHNjaGVtYW93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNj aGVtYWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpZl9ub3RfZXhpc3Rz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcXVpZXQpOworCisjZW5kaWYgLyog UEdfWE1MU0NIRU1BX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3htbHNj aGVtYWNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3htbHNjaGVtYWNtZHMuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGI4YzE2OTQ1MmUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy94bWxzY2hlbWFjbWRzLmgKQEAgLTAsMCArMSwx MCBAQAorI2lmbmRlZiBYTUxTQ0hFTUFDTURTX0gKKyNkZWZpbmUgWE1MU0NIRU1BQ01EU19ICisK KyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFy c2Vfbm9kZS5oIgorCitleHRlcm4gT2JqZWN0QWRkcmVzcyBEZWZpbmVYbWxTY2hlbWEoUGFyc2VT dGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3Rf ZXhpc3RzKTsKK2V4dGVybiB2b2lkIElzVGhlcmVYbWxTY2hlbWFJbk5hbWVzcGFjZShjb25zdCBj aGFyICpzY2hlbWFuYW1lLCBPaWQgbnNwT2lkKTsKKworI2VuZGlmIC8qIFhNTFNDSEVNQUNNRFNf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGFhYzRiZmM3MGQ5Li5iMTIyN2YxYTdiNyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjQwMSw2ICsyNDAxLDcgQEAgdHlwZWRlZiBlbnVt IE9iamVjdFR5cGUKIAlPQkpFQ1RfVFlQRSwKIAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAogCU9CSkVD VF9WSUVXLAorCU9CSkVDVF9YTUxTQ0hFTUEsCiB9IE9iamVjdFR5cGU7CiAKIC8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggNTIxMWNhZGMyNTguLmM0MGNi Yzg5ODFhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMTYxMCw2ICsxNjEwLDcgQEAgdHlwZWRl ZiBlbnVtIFhtbEV4cHJPcAogCUlTX1hNTFJPT1QsCQkJCQkvKiBYTUxST09UKHhtbCwgdmVyc2lv biwgc3RhbmRhbG9uZSkgKi8KIAlJU19YTUxTRVJJQUxJWkUsCQkJLyogWE1MU0VSSUFMSVpFKGlz X2RvY3VtZW50LCB4bWx2YWwsIGluZGVudCkgKi8KIAlJU19ET0NVTUVOVCwJCQkJLyogeG1sdmFs IElTIERPQ1VNRU5UICovCisJSVNfWE1MVkFMSURBVEUsCQkJCS8qIFhNTFZBTElEQVRFKHhtbHZh bCwgc2NoZW1hKSAqLwogfSBYbWxFeHByT3A7CiAKIHR5cGVkZWYgZW51bSBYbWxPcHRpb25UeXBl CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKaW5kZXggZjc3NTNjNWM4YTguLjRlOGI1ZTFkN2U3IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCkBAIC0yOSw2ICsyOSw3IEBAIFBHX0tFWVdPUkQoImFib3J0IiwgQUJPUlRfUCwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiYWJzZW50IiwgQUJTRU5U LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJhYnNvbHV0ZSIs IEFCU09MVVRFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo ImFjY2VzcyIsIEFDQ0VTUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZ V09SRCgiYWNjb3JkaW5nIiwgQUNDT1JESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJhY3Rpb24iLCBBQ1RJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoImFkZCIsIEFERF9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJhZG1pbiIsIEFETUlOLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCkBAIC01MjAsOCArNTIxLDEwIEBAIFBHX0tFWVdPUkQoInhtbG5hbWVzcGFj ZXMiLCBYTUxOQU1FU1BBQ0VTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgieG1scGFyc2UiLCBYTUxQQVJTRSwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInhtbHBpIiwgWE1MUEksIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJ4bWxyb290IiwgWE1MUk9PVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9M QUJFTCkKK1BHX0tFWVdPUkQoInhtbHNjaGVtYSIsIFhNTFNDSEVNQSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgieG1sc2VyaWFsaXplIiwgWE1MU0VSSUFMSVpF LCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgieG1sdGFibGUiLCBY TUxUQUJMRSwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInhtbHZh bGlkYXRlIiwgWE1MVkFMSURBVEUsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJ5ZWFyIiwgWUVBUl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdf S0VZV09SRCgieWVzIiwgWUVTX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInpvbmUiLCBaT05FLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oCmluZGV4IDEyOTBjOWJhYjY4Li4xY2QzNTQ1MmFjZCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKQEAgLTMxLDYgKzMxLDcgQEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DQVNU LCAiQUxURVIgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxU RVJfQ09MTEFUSU9OLCAiQUxURVIgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJBSU5ULCAiQUxURVIgQ09OU1RSQUlOVCIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09OVkVSU0lPTiwgIkFMVEVS IENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVS X1hNTFNDSEVNQSwgIkFMVEVSIFhNTFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfQUxURVJfREFUQUJBU0UsICJBTFRFUiBEQVRBQkFTRSIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0RFRkFVTFRfUFJJVklMRUdFUywgIkFM VEVSIERFRkFVTFQgUFJJVklMRUdFUyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQUxURVJfRE9NQUlOLCAiQUxURVIgRE9NQUlOIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpA QCAtODgsNiArODksNyBAQCBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DQVNULCAiQ1JFQVRFIENB U1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xMQVRJ T04sICJDUkVBVEUgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfQ09OU1RSQUlOVCwgIkNSRUFURSBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09OVkVSU0lPTiwgIkNSRUFURSBDT05W RVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfWE1M U0NIRU1BLCAiQ1JFQVRFIFhNTFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfQ1JFQVRFX0RBVEFCQVNFLCAiQ1JFQVRFIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0RPTUFJTiwgIkNSRUFURSBET01BSU4i LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9FVkVOVF9UUklH R0VSLCAiQ1JFQVRFIEVWRU5UIFRSSUdHRVIiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTQw LDYgKzE0Miw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DQVNULCAiRFJPUCBDQVNUIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTExBVElPTiwgIkRST1Ag Q09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NP TlNUUkFJTlQsICJEUk9QIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0RST1BfQ09OVkVSU0lPTiwgIkRST1AgQ09OVkVSU0lPTiIsIHRydWUsIGZhbHNl LCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9YTUxTQ0hFTUEsICJEUk9QIFhNTFNDSEVN QSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9EQVRBQkFTRSwg IkRST1AgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E Uk9QX0RPTUFJTiwgIkRST1AgRE9NQUlOIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0VWRU5UX1RSSUdHRVIsICJEUk9QIEVWRU5UIFRSSUdHRVIiLCBmYWxzZSwg ZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMv aW5jbHVkZS91dGlscy9hY2wuaAppbmRleCBlYzAxZmQ1ODFjZi4uZTI0NDI3Yzk2NjMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Fj bC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsKICNk ZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVm aW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9B TExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19YTUxT Q0hFTUEJKEFDTF9VU0FHRSkKIAogLyogb3BlcmF0aW9uIGNvZGVzIGZvciBwZ18qX2FjbG1hc2sg Ki8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCAwM2FjYjI1NTQ0OS4uZGM2YTRkMzc4NDAgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Niw2ICs3Niw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxlbGVtZW50KFhtbEV4 cHIgKnhleHByLAogZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlv blR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlKTsKIGV4dGVybiB4 bWx0eXBlICp4bWxwaShjb25zdCBjaGFyICp0YXJnZXQsIHRleHQgKmFyZywgYm9vbCBhcmdfaXNf bnVsbCwgYm9vbCAqcmVzdWx0X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHJvb3QoeG1s dHlwZSAqZGF0YSwgdGV4dCAqdmVyc2lvbiwgaW50IHN0YW5kYWxvbmUpOworZXh0ZXJuIHhtbHR5 cGUgKnhtbHZhbGlkYXRlX3NjaGVtYSh4bWx0eXBlICpkYXRhLCBPaWQgc2NoZW1hX29pZCk7CiBl eHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1lbnQoeG1sdHlwZSAqYXJnKTsKIGV4dGVybiB0ZXh0ICp4 bWx0b3RleHRfd2l0aF9vcHRpb25zKHhtbHR5cGUgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywKIAkJCQkJCQkJCWJvb2wgaW5kZW50KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQveG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sLm91 dAppbmRleCAxMDNhMjJhM2IxZC4uOTc5NDYxMGE3NTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQveG1sLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ht bC5vdXQKQEAgLTEsMTg4MyArMSwyMTgwIEBACi1DUkVBVEUgVEFCTEUgeG1sdGVzdCAoCi0gICAg aWQgaW50LAotICAgIGRhdGEgeG1sCi0pOwotSU5TRVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDEs ICc8dmFsdWU+b25lPC92YWx1ZT4nKTsKLUlOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVTICgyLCAn PHZhbHVlPnR3bzwvdmFsdWU+Jyk7Ci1JTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoMywgJzx3 cm9uZycpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50Ci1MSU5FIDE6IElOU0VSVCBJTlRP IHhtbHRlc3QgVkFMVUVTICgzLCAnPHdyb25nJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi1ERVRBSUw6ICBsaW5lIDE6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0 YXJ0IFRhZyB3cm9uZyBsaW5lIDEKLTx3cm9uZwotICAgICAgXgotU0VMRUNUICogRlJPTSB4bWx0 ZXN0OwotIGlkIHwgICAgICAgIGRhdGEgICAgICAgIAotLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LQotICAxIHwgPHZhbHVlPm9uZTwvdmFsdWU+Ci0gIDIgfCA8dmFsdWU+dHdvPC92YWx1ZT4KLSgy IHJvd3MpCi0KLS0tIHRlc3Qgbm9uLXRocm93aW5nIEFQSSwgdG9vCi1TRUxFQ1QgcGdfaW5wdXRf aXNfdmFsaWQoJzx2YWx1ZT5vbmU8L3ZhbHVlPicsICd4bWwnKTsKLSBwZ19pbnB1dF9pc192YWxp ZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCBwZ19pbnB1dF9p c192YWxpZCgnPHZhbHVlPm9uZTwvJywgJ3htbCcpOwotIHBnX2lucHV0X2lzX3ZhbGlkIAotLS0t LS0tLS0tLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VMRUNUIG1lc3NhZ2UgRlJPTSBwZ19p bnB1dF9lcnJvcl9pbmZvKCc8dmFsdWU+b25lPC8nLCAneG1sJyk7Ci0gICAgICAgbWVzc2FnZSAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGludmFsaWQgWE1MIGNvbnRlbnQKLSgxIHJv dykKLQotU0VMRUNUIHBnX2lucHV0X2lzX3ZhbGlkKCc8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5k YWxvbmU9InkiPz48Zm9vLz4nLCAneG1sJyk7Ci0gcGdfaW5wdXRfaXNfdmFsaWQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRUxFQ1QgbWVzc2FnZSBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieSI/Pjxmb28vPics ICd4bWwnKTsKLSAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBpbnZhbGlk IFhNTCBjb250ZW50OiBpbnZhbGlkIFhNTCBkZWNsYXJhdGlvbgotKDEgcm93KQotCi1TRUxFQ1Qg eG1sY29tbWVudCgndGVzdCcpOwotIHhtbGNvbW1lbnQgIAotLS0tLS0tLS0tLS0tLQotIDwhLS10 ZXN0LS0+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxjb21tZW50KCctdGVzdCcpOwotICB4bWxjb21t ZW50ICAKLS0tLS0tLS0tLS0tLS0tCi0gPCEtLS10ZXN0LS0+Ci0oMSByb3cpCi0KLVNFTEVDVCB4 bWxjb21tZW50KCd0ZXN0LScpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBjb21tZW50Ci1TRUxFQ1Qg eG1sY29tbWVudCgnLS10ZXN0Jyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIGNvbW1lbnQKLVNFTEVD VCB4bWxjb21tZW50KCd0ZSBzdCcpOwotICB4bWxjb21tZW50ICAKLS0tLS0tLS0tLS0tLS0tCi0g PCEtLXRlIHN0LS0+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxjb25jYXQoeG1sY29tbWVudCgnaGVs bG8nKSwKLSAgICAgICAgICAgICAgICAgeG1sZWxlbWVudChOQU1FIHF1eCwgJ2ZvbycpLAotICAg ICAgICAgICAgICAgICB4bWxjb21tZW50KCd3b3JsZCcpKTsKLSAgICAgICAgICAgICAgIHhtbGNv bmNhdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSA8IS0taGVsbG8tLT48cXV4PmZvbzwvcXV4PjwhLS13b3JsZC0tPgotKDEgcm93KQot Ci1TRUxFQ1QgeG1sY29uY2F0KCdoZWxsbycsICd5b3UnKTsKLSB4bWxjb25jYXQgCi0tLS0tLS0t LS0tLQotIGhlbGxveW91Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxjb25jYXQoMSwgMik7Ci1FUlJP UjogIGFyZ3VtZW50IG9mIFhNTENPTkNBVCBtdXN0IGJlIHR5cGUgeG1sLCBub3QgdHlwZSBpbnRl Z2VyCi1MSU5FIDE6IFNFTEVDVCB4bWxjb25jYXQoMSwgMik7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgXgotU0VMRUNUIHhtbGNvbmNhdCgnYmFkJywgJzxzeW50YXgnKTsKLUVSUk9SOiAgaW52 YWxpZCBYTUwgY29udGVudAotTElORSAxOiBTRUxFQ1QgeG1sY29uY2F0KCdiYWQnLCAnPHN5bnRh eCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1ERVRBSUw6ICBsaW5lIDE6 IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyBzeW50YXggbGluZSAxCi08c3ludGF4Ci0g ICAgICAgXgotU0VMRUNUIHhtbGNvbmNhdCgnPGZvby8+JywgTlVMTCwgJzw/eG1sIHZlcnNpb249 IjEuMSIgc3RhbmRhbG9uZT0ibm8iPz48YmFyLz4nKTsKLSAgeG1sY29uY2F0ICAgCi0tLS0tLS0t LS0tLS0tLQotIDxmb28vPjxiYXIvPgotKDEgcm93KQotCi1TRUxFQ1QgeG1sY29uY2F0KCc8P3ht bCB2ZXJzaW9uPSIxLjEiPz48Zm9vLz4nLCBOVUxMLCAnPD94bWwgdmVyc2lvbj0iMS4xIiBzdGFu ZGFsb25lPSJubyI/PjxiYXIvPicpOwotICAgICAgICAgICAgIHhtbGNvbmNhdCAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPD94bWwgdmVyc2lvbj0i MS4xIj8+PGZvby8+PGJhci8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxjb25jYXQoTlVMTCk7Ci0g eG1sY29uY2F0IAotLS0tLS0tLS0tLS0KLSAKLSgxIHJvdykKLQotU0VMRUNUIHhtbGNvbmNhdChO VUxMLCBOVUxMKTsKLSB4bWxjb25jYXQgCi0tLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi1TRUxF Q1QgeG1sZWxlbWVudChuYW1lIGVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICB4bWxhdHRyaWJ1 dGVzICgxIGFzIG9uZSwgJ2RldWNlJyBhcyB0d28pLAotICAgICAgICAgICAgICAgICAgJ2NvbnRl bnQnKTsKLSAgICAgICAgICAgICAgICAgICB4bWxlbGVtZW50ICAgICAgICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGVsZW1l bnQgb25lPSIxIiB0d289ImRldWNlIj5jb250ZW50PC9lbGVtZW50PgotKDEgcm93KQotCi1TRUxF Q1QgeG1sZWxlbWVudChuYW1lIGVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICB4bWxhdHRyaWJ1 dGVzICgndW5uYW1lZCBhbmQgd3JvbmcnKSk7Ci1FUlJPUjogIHVubmFtZWQgWE1MIGF0dHJpYnV0 ZSB2YWx1ZSBtdXN0IGJlIGEgY29sdW1uIHJlZmVyZW5jZQotTElORSAyOiAgICAgICAgICAgICAg ICAgICB4bWxhdHRyaWJ1dGVzICgndW5uYW1lZCBhbmQgd3JvbmcnKSk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZWxl bWVudCwgeG1sZWxlbWVudChuYW1lIG5lc3RlZCwgJ3N0dWZmJykpOwotICAgICAgICAgICAgICAg IHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotIDxlbGVtZW50PjxuZXN0ZWQ+c3R1ZmY8L25lc3RlZD48L2VsZW1l bnQ+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZW1wbG95ZWUsIHhtbGZvcmVz dChuYW1lLCBhZ2UsIHNhbGFyeSBhcyBwYXkpKSBGUk9NIGVtcDsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSA8ZW1wbG95ZWU+PG5hbWU+c2hhcm9uPC9uYW1lPjxhZ2U+MjU8L2FnZT48 cGF5PjEwMDA8L3BheT48L2VtcGxveWVlPgotIDxlbXBsb3llZT48bmFtZT5zYW08L25hbWU+PGFn ZT4zMDwvYWdlPjxwYXk+MjAwMDwvcGF5PjwvZW1wbG95ZWU+Ci0gPGVtcGxveWVlPjxuYW1lPmJp bGw8L25hbWU+PGFnZT4yMDwvYWdlPjxwYXk+MTAwMDwvcGF5PjwvZW1wbG95ZWU+Ci0gPGVtcGxv eWVlPjxuYW1lPmplZmY8L25hbWU+PGFnZT4yMzwvYWdlPjxwYXk+NjAwPC9wYXk+PC9lbXBsb3ll ZT4KLSA8ZW1wbG95ZWU+PG5hbWU+Y2ltPC9uYW1lPjxhZ2U+MzA8L2FnZT48cGF5PjQwMDwvcGF5 PjwvZW1wbG95ZWU+Ci0gPGVtcGxveWVlPjxuYW1lPmxpbmRhPC9uYW1lPjxhZ2U+MTk8L2FnZT48 cGF5PjEwMDwvcGF5PjwvZW1wbG95ZWU+Ci0oNiByb3dzKQotCi1TRUxFQ1QgeG1sZWxlbWVudChu YW1lIGR1cGxpY2F0ZSwgeG1sYXR0cmlidXRlcygxIGFzIGEsIDIgYXMgYiwgMyBhcyBhKSk7Ci1F UlJPUjogIFhNTCBhdHRyaWJ1dGUgbmFtZSAiYSIgYXBwZWFycyBtb3JlIHRoYW4gb25jZQotTElO RSAxOiAuLi5tZW50KG5hbWUgZHVwbGljYXRlLCB4bWxhdHRyaWJ1dGVzKDEgYXMgYSwgMiBhcyBi LCAzIGFzIGEpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBudW0sIDM3KTsKLSAg eG1sZWxlbWVudCAgIAotLS0tLS0tLS0tLS0tLS0tCi0gPG51bT4zNzwvbnVtPgotKDEgcm93KQot Ci1TRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZvbywgdGV4dCAnYmFyJyk7Ci0gICB4bWxlbGVtZW50 ICAgCi0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz5iYXI8L2Zvbz4KLSgxIHJvdykKLQotU0VMRUNU IHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbCAnYmFyJyk7Ci0gICB4bWxlbGVtZW50ICAgCi0tLS0t LS0tLS0tLS0tLS0tCi0gPGZvbz5iYXI8L2Zvbz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGVsZW1l bnQobmFtZSBmb28sIHRleHQgJ2I8YS8+cicpOwotICAgICAgIHhtbGVsZW1lbnQgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+YiZsdDthLyZndDtyPC9mb28+Ci0oMSBy b3cpCi0KLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCB4bWwgJ2I8YS8+cicpOwotICAgIHht bGVsZW1lbnQgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+YjxhLz5yPC9mb28+Ci0o MSByb3cpCi0KLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCBhcnJheVsxLCAyLCAzXSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz48ZWxlbWVudD4xPC9lbGVt ZW50PjxlbGVtZW50PjI8L2VsZW1lbnQ+PGVsZW1lbnQ+MzwvZWxlbWVudD48L2Zvbz4KLSgxIHJv dykKLQotU0VUIHhtbGJpbmFyeSBUTyBiYXNlNjQ7Ci1TRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZv bywgYnl0ZWEgJ2JhcicpOwotICAgeG1sZWxlbWVudCAgICAKLS0tLS0tLS0tLS0tLS0tLS0tCi0g PGZvbz5ZbUZ5PC9mb28+Ci0oMSByb3cpCi0KLVNFVCB4bWxiaW5hcnkgVE8gaGV4OwotU0VMRUNU IHhtbGVsZW1lbnQobmFtZSBmb28sIGJ5dGVhICdiYXInKTsKLSAgICB4bWxlbGVtZW50ICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9vPjYyNjE3MjwvZm9vPgotKDEgcm93KQotCi1TRUxF Q1QgeG1sZWxlbWVudChuYW1lIGZvbywgeG1sYXR0cmlidXRlcyh0cnVlIGFzIGJhcikpOwotICAg IHhtbGVsZW1lbnQgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28gYmFyPSJ0cnVlIi8+ Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCB4bWxhdHRyaWJ1dGVzKCcy MDA5LTA0LTA5IDAwOjI0OjM3Jzo6dGltZXN0YW1wIGFzIGJhcikpOwotICAgICAgICAgICAgeG1s ZWxlbWVudCAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IDxmb28gYmFyPSIyMDA5LTA0LTA5VDAwOjI0OjM3Ii8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxl bGVtZW50KG5hbWUgZm9vLCB4bWxhdHRyaWJ1dGVzKCdpbmZpbml0eSc6OnRpbWVzdGFtcCBhcyBi YXIpKTsKLUVSUk9SOiAgdGltZXN0YW1wIG91dCBvZiByYW5nZQotREVUQUlMOiAgWE1MIGRvZXMg bm90IHN1cHBvcnQgaW5maW5pdGUgdGltZXN0YW1wIHZhbHVlcy4KLVNFTEVDVCB4bWxlbGVtZW50 KG5hbWUgZm9vLCB4bWxhdHRyaWJ1dGVzKCc8PiYiJycnIGFzIGZ1bm55LCB4bWwgJ2I8YS8+cicg YXMgZnVubmllcikpOwotICAgICAgICAgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9vIGZ1bm55PSImbHQ7Jmd0OyZhbXA7JnF1b3Q7 JyIgZnVubmllcj0iYiZsdDthLyZndDtyIi8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxwYXJzZShj b250ZW50ICcnKTsKLSB4bWxwYXJzZSAKLS0tLS0tLS0tLS0KLSAKLSgxIHJvdykKLQotU0VMRUNU IHhtbHBhcnNlKGNvbnRlbnQgJyAgJyk7Ci0geG1scGFyc2UgCi0tLS0tLS0tLS0tCi0gICAKLSgx IHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJ2FiYycpOwotIHhtbHBhcnNlIAotLS0t LS0tLS0tLQotIGFiYwotKDEgcm93KQotCi1TRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPGFiYz54 PC9hYmM+Jyk7Ci0gICB4bWxwYXJzZSAgIAotLS0tLS0tLS0tLS0tLS0KLSA8YWJjPng8L2FiYz4K LSgxIHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJzxpbnZhbGlkZW50aXR5PiY8L2lu dmFsaWRlbnRpdHk+Jyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQKLURFVEFJTDogIGxp bmUgMTogeG1sUGFyc2VFbnRpdHlSZWY6IG5vIG5hbWUKLTxpbnZhbGlkZW50aXR5PiY8L2ludmFs aWRlbnRpdHk+Ci0gICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJzx1 bmRlZmluZWRlbnRpdHk+Jmlkb250ZXhpc3Q7PC91bmRlZmluZWRlbnRpdHk+Jyk7Ci1FUlJPUjog IGludmFsaWQgWE1MIGNvbnRlbnQKLURFVEFJTDogIGxpbmUgMTogRW50aXR5ICdpZG9udGV4aXN0 JyBub3QgZGVmaW5lZAotPHVuZGVmaW5lZGVudGl0eT4maWRvbnRleGlzdDs8L3VuZGVmaW5lZGVu dGl0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbHBhcnNlKGNv bnRlbnQgJzxpbnZhbGlkbnMgeG1sbnM9JycmbHQ7JycvPicpOwotICAgICAgICAgeG1scGFyc2Ug ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8aW52YWxpZG5zIHhtbG5z PScmbHQ7Jy8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8cmVsYXRpdmVu cyB4bWxucz0nJ3JlbGF0aXZlJycvPicpOwotICAgICAgICAgICAgeG1scGFyc2UgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPHJlbGF0aXZlbnMgeG1sbnM9 J3JlbGF0aXZlJy8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8dHdvZXJy b3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4nKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgY29u dGVudAotREVUQUlMOiAgbGluZSAxOiBFbnRpdHkgJ2lkb250ZXhpc3QnIG5vdCBkZWZpbmVkCi08 dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4KLSAgICAgICAgICAgICAgICAgICAg ICAgXgotbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0d29lcnJvcnMg bGluZSAxIGFuZCB1bmJhbGFuY2VkCi08dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNl ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLVNFTEVDVCB4bWxwYXJz ZShjb250ZW50ICc8bm9zdWNocHJlZml4OnRhZy8+Jyk7Ci0gICAgICB4bWxwYXJzZSAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxub3N1Y2hwcmVmaXg6dGFnLz4KLSgxIHJvdykKLQot U0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICcgICAnKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgZG9j dW1lbnQKLURFVEFJTDogIGxpbmUgMTogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5k Ci0gICAKLSAgIF4KLVNFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnYWJjJyk7Ci1FUlJPUjogIGlu dmFsaWQgWE1MIGRvY3VtZW50Ci1ERVRBSUw6ICBsaW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwg JzwnIG5vdCBmb3VuZAotYWJjCi1eCi1TRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJzxhYmM+eDwv YWJjPicpOwotICAgeG1scGFyc2UgICAKLS0tLS0tLS0tLS0tLS0tCi0gPGFiYz54PC9hYmM+Ci0o MSByb3cpCi0KLVNFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPGludmFsaWRlbnRpdHk+JjwvYWJj PicpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudAotREVUQUlMOiAgbGluZSAxOiB4bWxQ YXJzZUVudGl0eVJlZjogbm8gbmFtZQotPGludmFsaWRlbnRpdHk+JjwvYWJjPgotICAgICAgICAg ICAgICAgIF4KLWxpbmUgMTogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogaW52YWxp ZGVudGl0eSBsaW5lIDEgYW5kIGFiYwotPGludmFsaWRlbnRpdHk+JjwvYWJjPgotICAgICAgICAg ICAgICAgICAgICAgIF4KLVNFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPHVuZGVmaW5lZGVudGl0 eT4maWRvbnRleGlzdDs8L2FiYz4nKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1lbnQKLURF VEFJTDogIGxpbmUgMTogRW50aXR5ICdpZG9udGV4aXN0JyBub3QgZGVmaW5lZAotPHVuZGVmaW5l ZGVudGl0eT4maWRvbnRleGlzdDs8L2FiYz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgotbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB1bmRlZmluZWRlbnRp dHkgbGluZSAxIGFuZCBhYmMKLTx1bmRlZmluZWRlbnRpdHk+Jmlkb250ZXhpc3Q7PC9hYmM+Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLVNFTEVDVCB4bWxwYXJzZShkb2N1 bWVudCAnPGludmFsaWRucyB4bWxucz0nJyZsdDsnJy8+Jyk7Ci0gICAgICAgICB4bWxwYXJzZSAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxpbnZhbGlkbnMgeG1sbnM9 JyZsdDsnLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8cmVsYXRpdmVu cyB4bWxucz0nJ3JlbGF0aXZlJycvPicpOwotICAgICAgICAgICAgeG1scGFyc2UgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPHJlbGF0aXZlbnMgeG1sbnM9 J3JlbGF0aXZlJy8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPHR3b2Vy cm9ycz4maWRvbnRleGlzdDs8L3VuYmFsYW5jZWQ+Jyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIGRv Y3VtZW50Ci1ERVRBSUw6ICBsaW5lIDE6IEVudGl0eSAnaWRvbnRleGlzdCcgbm90IGRlZmluZWQK LTx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPgotICAgICAgICAgICAgICAgICAg ICAgICBeCi1saW5lIDE6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHR3b2Vycm9y cyBsaW5lIDEgYW5kIHVuYmFsYW5jZWQKLTx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFu Y2VkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbHBh cnNlKGRvY3VtZW50ICc8bm9zdWNocHJlZml4OnRhZy8+Jyk7Ci0gICAgICB4bWxwYXJzZSAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxub3N1Y2hwcmVmaXg6dGFnLz4KLSgxIHJvdykK LQotU0VMRUNUIHhtbHBpKG5hbWUgZm9vKTsKLSAgeG1scGkgIAotLS0tLS0tLS0tCi0gPD9mb28/ PgotKDEgcm93KQotCi1TRUxFQ1QgeG1scGkobmFtZSB4bWwpOwotRVJST1I6ICBpbnZhbGlkIFhN TCBwcm9jZXNzaW5nIGluc3RydWN0aW9uCi1ERVRBSUw6ICBYTUwgcHJvY2Vzc2luZyBpbnN0cnVj dGlvbiB0YXJnZXQgbmFtZSBjYW5ub3QgYmUgInhtbCIuCi1TRUxFQ1QgeG1scGkobmFtZSB4bWxz dHVmZik7Ci0gICAgeG1scGkgICAgIAotLS0tLS0tLS0tLS0tLS0KLSA8P3htbHN0dWZmPz4KLSgx IHJvdykKLQotU0VMRUNUIHhtbHBpKG5hbWUgZm9vLCAnYmFyJyk7Ci0gICAgeG1scGkgICAgCi0t LS0tLS0tLS0tLS0tCi0gPD9mb28gYmFyPz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBpKG5hbWUg Zm9vLCAnaW4/PnZhbGlkJyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIHByb2Nlc3NpbmcgaW5zdHJ1 Y3Rpb24KLURFVEFJTDogIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGNhbm5vdCBjb250YWlu ICI/PiIuCi1TRUxFQ1QgeG1scGkobmFtZSBmb28sIG51bGwpOwotIHhtbHBpIAotLS0tLS0tLQot IAotKDEgcm93KQotCi1TRUxFQ1QgeG1scGkobmFtZSB4bWwsIG51bGwpOwotRVJST1I6ICBpbnZh bGlkIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uCi1ERVRBSUw6ICBYTUwgcHJvY2Vzc2luZyBp bnN0cnVjdGlvbiB0YXJnZXQgbmFtZSBjYW5ub3QgYmUgInhtbCIuCi1TRUxFQ1QgeG1scGkobmFt ZSB4bWxzdHVmZiwgbnVsbCk7Ci0geG1scGkgCi0tLS0tLS0tCi0gCi0oMSByb3cpCi0KLVNFTEVD VCB4bWxwaShuYW1lICJ4bWwtc3R5bGVzaGVldCIsICdocmVmPSJteXN0eWxlLmNzcyIgdHlwZT0i dGV4dC9jc3MiJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgeG1scGkgICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gPD94bWwtc3R5bGVzaGVldCBocmVmPSJteXN0eWxlLmNzcyIgdHlwZT0i dGV4dC9jc3MiPz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBpKG5hbWUgZm9vLCAnICAgYmFyJyk7 Ci0gICAgeG1scGkgICAgCi0tLS0tLS0tLS0tLS0tCi0gPD9mb28gYmFyPz4KLSgxIHJvdykKLQot U0VMRUNUIHhtbHJvb3QoeG1sICc8Zm9vLz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25l IG5vIHZhbHVlKTsKLSB4bWxyb290IAotLS0tLS0tLS0tCi0gPGZvby8+Ci0oMSByb3cpCi0KLVNF TEVDVCB4bWxyb290KHhtbCAnPGZvby8+JywgdmVyc2lvbiAnMi4wJyk7Ci0gICAgICAgICAgIHht bHJvb3QgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8P3htbCB2 ZXJzaW9uPSIyLjAiPz48Zm9vLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHJvb3QoeG1sICc8Zm9v Lz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIHllcyk7Ci0gICAgICAgICAgICAgICAg ICAgeG1scm9vdCAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5 ZXMiPz48Zm9vLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHJvb3QoeG1sICc8P3htbCB2ZXJzaW9u PSIxLjEiPz48Zm9vLz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIHllcyk7Ci0gICAg ICAgICAgICAgICAgICAgeG1scm9vdCAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPD94bWwgdmVyc2lvbj0iMS4wIiBz dGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHJvb3QoeG1scm9v dCh4bWwgJzxmb28vPicsIHZlcnNpb24gJzEuMCcpLCB2ZXJzaW9uICcxLjEnLCBzdGFuZGFsb25l IG5vKTsKLSAgICAgICAgICAgICAgICAgICB4bWxyb290ICAgICAgICAgICAgICAgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPD94bWwgdmVyc2lv bj0iMS4xIiBzdGFuZGFsb25lPSJubyI/Pjxmb28vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1scm9v dCgnPD94bWwgdmVyc2lvbj0iMS4xIiBzdGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4nLCB2ZXJzaW9u IG5vIHZhbHVlLCBzdGFuZGFsb25lIG5vKTsKLSAgICAgICAgICAgICAgICAgICB4bWxyb290ICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pjxmb28vPgotKDEg cm93KQotCi1TRUxFQ1QgeG1scm9vdCgnPD94bWwgdmVyc2lvbj0iMS4xIiBzdGFuZGFsb25lPSJ5 ZXMiPz48Zm9vLz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIG5vIHZhbHVlKTsKLSB4 bWxyb290IAotLS0tLS0tLS0tCi0gPGZvby8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxyb290KCc8 P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9InllcyI/Pjxmb28vPicsIHZlcnNpb24gbm8g dmFsdWUpOwotICAgICAgICAgICAgICAgICAgIHhtbHJvb3QgICAgICAgICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDw/eG1sIHZl cnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+PGZvby8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4 bWxyb290ICgKLSAgeG1sZWxlbWVudCAoCi0gICAgbmFtZSBnYXpvbmssCi0gICAgeG1sYXR0cmli dXRlcyAoCi0gICAgICAndmFsJyBBUyBuYW1lLAotICAgICAgMSArIDEgQVMgbnVtCi0gICAgKSwK LSAgICB4bWxlbGVtZW50ICgKLSAgICAgIE5BTUUgcXV4LAotICAgICAgJ2ZvbycKLSAgICApCi0g ICksCi0gIHZlcnNpb24gJzEuMCcsCi0gIHN0YW5kYWxvbmUgeWVzCi0pOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxyb290ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PjxnYXpvbmsgbmFtZT0idmFs IiBudW09IjIiPjxxdXg+Zm9vPC9xdXg+PC9nYXpvbms+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxz ZXJpYWxpemUoY29udGVudCBkYXRhIGFzIGNoYXJhY3RlciB2YXJ5aW5nKDIwKSkgRlJPTSB4bWx0 ZXN0OwotICAgIHhtbHNlcmlhbGl6ZSAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPHZhbHVl Pm9uZTwvdmFsdWU+Ci0gPHZhbHVlPnR3bzwvdmFsdWU+Ci0oMiByb3dzKQotCi1TRUxFQ1QgeG1s c2VyaWFsaXplKGNvbnRlbnQgJ2dvb2QnIGFzIGNoYXIoMTApKTsKLSB4bWxzZXJpYWxpemUgCi0t LS0tLS0tLS0tLS0tLQotIGdvb2QgICAgICAKLSgxIHJvdykKLQotU0VMRUNUIHhtbHNlcmlhbGl6 ZShkb2N1bWVudCAnYmFkJyBhcyB0ZXh0KTsKLUVSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVudAot LS0gaW5kZW50Ci1TRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8Zm9vPjxiYXI+PHZhbCB4 PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOwotICAgICAgeG1sc2Vy aWFsaXplICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+ICAgICAgICAg ICAgICAgICAgKwotICAgPGJhcj4gICAgICAgICAgICAgICAgKwotICAgICA8dmFsIHg9InkiPjQy PC92YWw+KwotICAgPC9iYXI+ICAgICAgICAgICAgICAgKwotIDwvZm9vPgotKDEgcm93KQotCi1T RUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFs PjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOwotICAgICAgeG1sc2VyaWFsaXplICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+ICAgICAgICAgICAgICAgICAgKwot ICAgPGJhcj4gICAgICAgICAgICAgICAgKwotICAgICA8dmFsIHg9InkiPjQyPC92YWw+KwotICAg PC9iYXI+ICAgICAgICAgICAgICAgKwotIDwvZm9vPgotKDEgcm93KQotCi0tLSBubyBpbmRlbnQK LVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92 YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IE5PIElOREVOVCk7Ci0gICAgICAgICAgICAgICB4bWxz ZXJpYWxpemUgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4K LSgxIHJvdykKLQotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnPGZvbz48YmFyPjx2YWwg eD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgTk8gSU5ERU5UKTsKLSAgICAgICAg ICAgICAgIHhtbHNlcmlhbGl6ZSAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwv YmFyPjwvZm9vPgotKDEgcm93KQotCi0tLSBpbmRlbnQgbm9uIHNpbmdseS1yb290ZWQgeG1sCi1T RUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8Zm9vPjczPC9mb28+PGJhcj48dmFsIHg9Inki PjQyPC92YWw+PC9iYXI+JyBBUyB0ZXh0IElOREVOVCk7Ci1FUlJPUjogIG5vdCBhbiBYTUwgZG9j dW1lbnQKLVNFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+NzM8L2Zvbz48YmFyPjx2 YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj4nIEFTIHRleHQgSU5ERU5UKTsKLSAgICAgeG1sc2VyaWFs aXplICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+NzM8L2Zvbz4gICAgICAg ICsKLSA8YmFyPiAgICAgICAgICAgICAgICArCi0gICA8dmFsIHg9InkiPjQyPC92YWw+KwotIDwv YmFyPgotKDEgcm93KQotCi0tLSBpbmRlbnQgbm9uIHNpbmdseS1yb290ZWQgeG1sIHdpdGggbWl4 ZWQgY29udGVudHMKLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJ3RleHQgbm9kZTxmb28+ NzM8L2Zvbz50ZXh0IG5vZGU8YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj4nIEFTIHRleHQg SU5ERU5UKTsKLUVSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVudAotU0VMRUNUIHhtbHNlcmlhbGl6 ZShDT05URU5UICAndGV4dCBub2RlPGZvbz43MzwvZm9vPnRleHQgbm9kZTxiYXI+PHZhbCB4PSJ5 Ij40MjwvdmFsPjwvYmFyPicgQVMgdGV4dCBJTkRFTlQpOwotICAgICAgeG1sc2VyaWFsaXplICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0ZXh0IG5vZGUgICAgICAgICAgICAgKwot IDxmb28+NzM8L2Zvbz50ZXh0IG5vZGUrCi0gPGJhcj4gICAgICAgICAgICAgICAgICsKLSAgIDx2 YWwgeD0ieSI+NDI8L3ZhbD4gKwotIDwvYmFyPgotKDEgcm93KQotCi0tLSBpbmRlbnQgc2luZ2x5 LXJvb3RlZCB4bWwgd2l0aCBtaXhlZCBjb250ZW50cwotU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NV TUVOVCAnPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48dmFsIHg9InkiPnRleHQgbm9kZTx2 YWw+NzM8L3ZhbD48L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsKLSAgICAgICAg ICAgICAgICB4bWxzZXJpYWxpemUgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgIDxiYXI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgICA8dmFsIHg9InkiPjQyPC92YWw+ICAgICAgICAgICAgICAgICAgICArCi0g ICAgIDx2YWwgeD0ieSI+dGV4dCBub2RlPHZhbD43MzwvdmFsPjwvdmFsPisKLSAgIDwvYmFyPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotIDwvZm9vPgotKDEgcm93KQotCi1T RUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFs Pjx2YWwgeD0ieSI+dGV4dCBub2RlPHZhbD43MzwvdmFsPjwvdmFsPjwvYmFyPjwvZm9vPicgQVMg dGV4dCBJTkRFTlQpOwotICAgICAgICAgICAgICAgIHhtbHNlcmlhbGl6ZSAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9v PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgPGJhcj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIDx2YWwgeD0ieSI+NDI8L3ZhbD4g ICAgICAgICAgICAgICAgICAgICsKLSAgICAgPHZhbCB4PSJ5Ij50ZXh0IG5vZGU8dmFsPjczPC92 YWw+PC92YWw+KwotICAgPC9iYXI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr Ci0gPC9mb28+Ci0oMSByb3cpCi0KLS0tIGluZGVudCBlbXB0eSBzdHJpbmcKLVNFTEVDVCB4bWxz ZXJpYWxpemUoRE9DVU1FTlQgJycgQVMgdGV4dCBJTkRFTlQpOwotRVJST1I6ICBub3QgYW4gWE1M IGRvY3VtZW50Ci1TRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICcnIEFTIHRleHQgSU5ERU5U KTsKLSB4bWxzZXJpYWxpemUgCi0tLS0tLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi0tLSB3aGl0 ZXNwYWNlcwotU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCAnICAnIEFTIHRleHQgSU5ERU5U KTsKLUVSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVudAotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05U RU5UICAnICAnIEFTIHRleHQgSU5ERU5UKTsKLSB4bWxzZXJpYWxpemUgCi0tLS0tLS0tLS0tLS0t LQotICAgCi0oMSByb3cpCi0KLS0tIGluZGVudCBudWxsCi1TRUxFQ1QgeG1sc2VyaWFsaXplKERP Q1VNRU5UIE5VTEwgQVMgdGV4dCBJTkRFTlQpOwotIHhtbHNlcmlhbGl6ZSAKLS0tLS0tLS0tLS0t LS0tCi0gCi0oMSByb3cpCi0KLVNFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgTlVMTCBBUyB0 ZXh0IElOREVOVCk7Ci0geG1sc2VyaWFsaXplIAotLS0tLS0tLS0tLS0tLS0KLSAKLSgxIHJvdykK LQotLS0gaW5kZW50IHdpdGggWE1MIGRlY2xhcmF0aW9uCi1TRUxFQ1QgeG1sc2VyaWFsaXplKERP Q1VNRU5UICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pjxmb28+PGJhcj48 dmFsPjczPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IElOREVOVCk7Ci0gICAgICAgICAgICAg IHhtbHNlcmlhbGl6ZSAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4rCi0g PGZvbz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICA8YmFyPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIDx2YWw+NzM8L3ZhbD4gICAgICAgICAgICAg ICAgICAgICArCi0gICA8L2Jhcj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gPC9m b28+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzw/eG1sIHZlcnNp b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PGZvbz48YmFyPjx2YWw+NzM8L3ZhbD48L2Jhcj48 L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsKLSAgIHhtbHNlcmlhbGl6ZSAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSA8Zm9vPiAgICAgICAgICAgICsKLSAgIDxiYXI+ICAgICAgICAgICsKLSAgICAg PHZhbD43MzwvdmFsPisKLSAgIDwvYmFyPiAgICAgICAgICsKLSA8L2Zvbz4KLSgxIHJvdykKLQot LS0gaW5kZW50IGNvbnRhaW5pbmcgRE9DVFlQRSBkZWNsYXJhdGlvbgotU0VMRUNUIHhtbHNlcmlh bGl6ZShET0NVTUVOVCAnPCFET0NUWVBFIGE+PGEvPicgQVMgdGV4dCBJTkRFTlQpOwotIHhtbHNl cmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gPCFET0NUWVBFIGE+KwotIDxhLz4KLSgxIHJvdykK LQotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnPCFET0NUWVBFIGE+PGEvPicgQVMgdGV4 dCBJTkRFTlQpOwotIHhtbHNlcmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gPCFET0NUWVBFIGE+ KwotIDxhLz4gICAgICAgICsKLSAKLSgxIHJvdykKLQotLS0gaW5kZW50IHhtbCB3aXRoIGVtcHR5 IGVsZW1lbnQKLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48L2Jhcj48 L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsKLSB4bWxzZXJpYWxpemUgCi0tLS0tLS0tLS0tLS0tLQot IDxmb28+ICAgICAgICsKLSAgIDxiYXIvPiAgICArCi0gPC9mb28+Ci0oMSByb3cpCi0KLVNFTEVD VCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+PGJhcj48L2Jhcj48L2Zvbz4nIEFTIHRleHQg SU5ERU5UKTsKLSB4bWxzZXJpYWxpemUgCi0tLS0tLS0tLS0tLS0tLQotIDxmb28+ICAgICAgICsK LSAgIDxiYXIvPiAgICArCi0gPC9mb28+Ci0oMSByb3cpCi0KLS0tICdubyBpbmRlbnQnID0gbm90 IHVzaW5nICdubyBpbmRlbnQnCi1TRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8Zm9vPjxi YXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCkgPSB4bWxzZXJpYWxp emUoRE9DVU1FTlQgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+JyBB UyB0ZXh0IE5PIElOREVOVCk7Ci0gP2NvbHVtbj8gCi0tLS0tLS0tLS0tCi0gdAotKDEgcm93KQot Ci1TRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40Mjwv dmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCkgPSB4bWxzZXJpYWxpemUoQ09OVEVOVCAnPGZvbz48 YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgTk8gSU5ERU5UKTsK LSA/Y29sdW1uPyAKLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLS0tIGluZGVudCB4bWwgc3Ry aW5ncyBjb250YWluaW5nIGJsYW5rIG5vZGVzCi1TRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5U ICc8Zm9vPiAgIDxiYXI+PC9iYXI+ICAgIDwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOwotIHhtbHNl cmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz4gICAgICAgKwotICAgPGJhci8+ICAgICsK LSA8L2Zvbz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAndGV4dCBu b2RlPGZvbz4gICAgPGJhcj48L2Jhcj4gICA8L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsKLSB4bWxz ZXJpYWxpemUgCi0tLS0tLS0tLS0tLS0tLQotIHRleHQgbm9kZSAgICsKLSA8Zm9vPiAgICAgICAr Ci0gICA8YmFyLz4gICAgKwotIDwvZm9vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1sICc8Zm9vPmJh cjwvZm9vPicgSVMgRE9DVU1FTlQ7Ci0gP2NvbHVtbj8gCi0tLS0tLS0tLS0tCi0gdAotKDEgcm93 KQotCi1TRUxFQ1QgeG1sICc8Zm9vPmJhcjwvZm9vPjxiYXI+Zm9vPC9iYXI+JyBJUyBET0NVTUVO VDsKLSA/Y29sdW1uPyAKLS0tLS0tLS0tLS0KLSBmCi0oMSByb3cpCi0KLVNFTEVDVCB4bWwgJzxh YmMvPicgSVMgTk9UIERPQ1VNRU5UOwotID9jb2x1bW4/IAotLS0tLS0tLS0tLQotIGYKLSgxIHJv dykKLQotU0VMRUNUIHhtbCAnYWJjJyBJUyBOT1QgRE9DVU1FTlQ7Ci0gP2NvbHVtbj8gCi0tLS0t LS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxFQ1QgJzw+JyBJUyBOT1QgRE9DVU1FTlQ7Ci1FUlJP UjogIGludmFsaWQgWE1MIGNvbnRlbnQKLUxJTkUgMTogU0VMRUNUICc8PicgSVMgTk9UIERPQ1VN RU5UOwotICAgICAgICAgICAgICAgXgotREVUQUlMOiAgbGluZSAxOiBTdGFydFRhZzogaW52YWxp ZCBlbGVtZW50IG5hbWUKLTw+Ci0gXgotU0VMRUNUIHhtbGFnZyhkYXRhKSBGUk9NIHhtbHRlc3Q7 Ci0gICAgICAgICAgICAgICAgeG1sYWdnICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8dmFsdWU+b25lPC92YWx1ZT48dmFsdWU+dHdvPC92 YWx1ZT4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGFnZyhkYXRhKSBGUk9NIHhtbHRlc3QgV0hFUkUg aWQgPiAxMDsKLSB4bWxhZ2cgCi0tLS0tLS0tLQotIAotKDEgcm93KQotCi1TRUxFQ1QgeG1sZWxl bWVudChuYW1lIGVtcGxveWVlcywgeG1sYWdnKHhtbGVsZW1lbnQobmFtZSBuYW1lLCBuYW1lKSkp IEZST00gZW1wOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4bWxlbGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGVtcGxveWVlcz48 bmFtZT5zaGFyb248L25hbWU+PG5hbWU+c2FtPC9uYW1lPjxuYW1lPmJpbGw8L25hbWU+PG5hbWU+ amVmZjwvbmFtZT48bmFtZT5jaW08L25hbWU+PG5hbWU+bGluZGE8L25hbWU+PC9lbXBsb3llZXM+ Ci0oMSByb3cpCi0KLS0tIENoZWNrIG1hcHBpbmcgU1FMIGlkZW50aWZpZXIgdG8gWE1MIG5hbWUK LVNFTEVDVCB4bWxwaShuYW1lICI6OjpfeG1sX2FiYzEzNS4lLSZfIik7Ci0gICAgICAgICAgICAg ICAgICAgICAgeG1scGkgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPD9feDAwM0FfOjpfeDAwNUZfeG1sX2Fi YzEzNS5feDAwMjVfLV94MDAyNl9fPz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBpKG5hbWUgIjEy MyIpOwotICAgICB4bWxwaSAgICAgCi0tLS0tLS0tLS0tLS0tLS0KLSA8P194MDAzMV8yMz8+Ci0o MSByb3cpCi0KLVBSRVBBUkUgZm9vICh4bWwpIEFTIFNFTEVDVCB4bWxjb25jYXQoJzxmb28vPics ICQxKTsKLVNFVCBYTUwgT1BUSU9OIERPQ1VNRU5UOwotRVhFQ1VURSBmb28gKCc8YmFyLz4nKTsK LSAgeG1sY29uY2F0ICAgCi0tLS0tLS0tLS0tLS0tLQotIDxmb28vPjxiYXIvPgotKDEgcm93KQot Ci1FWEVDVVRFIGZvbyAoJ2JhZCcpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudAotTElO RSAxOiBFWEVDVVRFIGZvbyAoJ2JhZCcpOwotICAgICAgICAgICAgICAgICAgICAgXgotREVUQUlM OiAgbGluZSAxOiBTdGFydCB0YWcgZXhwZWN0ZWQsICc8JyBub3QgZm91bmQKLWJhZAotXgotU0VM RUNUIHhtbCAnPCFET0NUWVBFIGE+PGEvPjxiLz4nOwotRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1 bWVudAotTElORSAxOiBTRUxFQ1QgeG1sICc8IURPQ1RZUEUgYT48YS8+PGIvPic7Ci0gICAgICAg ICAgICAgICAgICAgXgotREVUQUlMOiAgbGluZSAxOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQg b2YgdGhlIGRvY3VtZW50Ci08IURPQ1RZUEUgYT48YS8+PGIvPgotICAgICAgICAgICAgICAgIF4K LVNFVCBYTUwgT1BUSU9OIENPTlRFTlQ7Ci1FWEVDVVRFIGZvbyAoJzxiYXIvPicpOwotICB4bWxj b25jYXQgICAKLS0tLS0tLS0tLS0tLS0tCi0gPGZvby8+PGJhci8+Ci0oMSByb3cpCi0KLUVYRUNV VEUgZm9vICgnZ29vZCcpOwotIHhtbGNvbmNhdCAgCi0tLS0tLS0tLS0tLS0KLSA8Zm9vLz5nb29k Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWwgJzwhLS0gaW4gU1FMOjIwMDYrIGEgZG9jIGlzIGNvbnRl bnQgdG9vLS0+IDw/eSB6Pz4gPCFET0NUWVBFIGE+PGEvPic7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHhtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSA8IS0tIGluIFNRTDoyMDA2KyBhIGRvYyBpcyBjb250ZW50IHRvby0tPiA8P3kgej8+ IDwhRE9DVFlQRSBhPjxhLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbCAnPD94bWwgdmVyc2lvbj0i MS4wIj8+IDwhLS0gaGktLT4gPCFET0NUWVBFIGE+PGEvPic7Ci0gICAgICAgICAgICAgeG1sICAg ICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICA8IS0tIGhpLS0+ IDwhRE9DVFlQRSBhPjxhLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbCAnPCFET0NUWVBFIGE+PGEv Pic7Ci0gICAgICAgeG1sICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLQotIDwhRE9DVFlQRSBh PjxhLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbCAnPCEtLSBoaS0tPiBvb3BzIDwhRE9DVFlQRSBh PjxhLz4nOwotRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50Ci1MSU5FIDE6IFNFTEVDVCB4bWwg JzwhLS0gaGktLT4gb29wcyA8IURPQ1RZUEUgYT48YS8+JzsKLSAgICAgICAgICAgICAgICAgICBe Ci1ERVRBSUw6ICBsaW5lIDE6IFN0YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQgbmFtZQotPCEtLSBo aS0tPiBvb3BzIDwhRE9DVFlQRSBhPjxhLz4KLSAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHht bCAnPCEtLSBoaS0tPiA8b29wcy8+IDwhRE9DVFlQRSBhPjxhLz4nOwotRVJST1I6ICBpbnZhbGlk IFhNTCBjb250ZW50Ci1MSU5FIDE6IFNFTEVDVCB4bWwgJzwhLS0gaGktLT4gPG9vcHMvPiA8IURP Q1RZUEUgYT48YS8+JzsKLSAgICAgICAgICAgICAgICAgICBeCi1ERVRBSUw6ICBsaW5lIDE6IFN0 YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQgbmFtZQotPCEtLSBoaS0tPiA8b29wcy8+IDwhRE9DVFlQ RSBhPjxhLz4KLSAgICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbCAnPCFET0NUWVBFIGE+ PGEvPjxiLz4nOwotRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50Ci1MSU5FIDE6IFNFTEVDVCB4 bWwgJzwhRE9DVFlQRSBhPjxhLz48Yi8+JzsKLSAgICAgICAgICAgICAgICAgICBeCi1ERVRBSUw6 ICBsaW5lIDE6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQKLTwhRE9D VFlQRSBhPjxhLz48Yi8+Ci0gICAgICAgICAgICAgICAgXgotLS0gVGVzdCBiYWNrd2FyZHMgcGFy c2luZwotQ1JFQVRFIFZJRVcgeG1sdmlldzEgQVMgU0VMRUNUIHhtbGNvbW1lbnQoJ3Rlc3QnKTsK LUNSRUFURSBWSUVXIHhtbHZpZXcyIEFTIFNFTEVDVCB4bWxjb25jYXQoJ2hlbGxvJywgJ3lvdScp OwotQ1JFQVRFIFZJRVcgeG1sdmlldzMgQVMgU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbGVtZW50 LCB4bWxhdHRyaWJ1dGVzICgxIGFzICI6b25lOiIsICdkZXVjZScgYXMgdHdvKSwgJ2NvbnRlbnQm Jyk7Ci1DUkVBVEUgVklFVyB4bWx2aWV3NCBBUyBTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGVtcGxv eWVlLCB4bWxmb3Jlc3QobmFtZSwgYWdlLCBzYWxhcnkgYXMgcGF5KSkgRlJPTSBlbXA7Ci1DUkVB VEUgVklFVyB4bWx2aWV3NSBBUyBTRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPGFiYz54PC9hYmM+ Jyk7Ci1DUkVBVEUgVklFVyB4bWx2aWV3NiBBUyBTRUxFQ1QgeG1scGkobmFtZSBmb28sICdiYXIn KTsKLUNSRUFURSBWSUVXIHhtbHZpZXc3IEFTIFNFTEVDVCB4bWxyb290KHhtbCAnPGZvby8+Jywg dmVyc2lvbiBubyB2YWx1ZSwgc3RhbmRhbG9uZSB5ZXMpOwotQ1JFQVRFIFZJRVcgeG1sdmlldzgg QVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShjb250ZW50ICdnb29kJyBhcyBjaGFyKDEwKSk7Ci1DUkVB VEUgVklFVyB4bWx2aWV3OSBBUyBTRUxFQ1QgeG1sc2VyaWFsaXplKGNvbnRlbnQgJ2dvb2QnIGFz IHRleHQpOwotQ1JFQVRFIFZJRVcgeG1sdmlldzEwIEFTIFNFTEVDVCB4bWxzZXJpYWxpemUoZG9j dW1lbnQgJzxmb28+PGJhcj40MjwvYmFyPjwvZm9vPicgQVMgdGV4dCBpbmRlbnQpOwotQ1JFQVRF IFZJRVcgeG1sdmlldzExIEFTIFNFTEVDVCB4bWxzZXJpYWxpemUoZG9jdW1lbnQgJzxmb28+PGJh cj40MjwvYmFyPjwvZm9vPicgQVMgY2hhcmFjdGVyIHZhcnlpbmcgbm8gaW5kZW50KTsKLVNFTEVD VCB0YWJsZV9uYW1lLCB2aWV3X2RlZmluaXRpb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudmll d3MKLSAgV0hFUkUgdGFibGVfbmFtZSBMSUtFICd4bWx2aWV3JScgT1JERVIgQlkgMTsKLSB0YWJs ZV9uYW1lIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2aWV3X2RlZmluaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSB4bWx2aWV3MSAgIHwgIFNFTEVDVCB4bWxjb21tZW50KCd0ZXN0Jzo6dGV4dCkg QVMgeG1sY29tbWVudDsKLSB4bWx2aWV3MTAgIHwgIFNFTEVDVCBYTUxTRVJJQUxJWkUoRE9DVU1F TlQgJzxmb28+PGJhcj40MjwvYmFyPjwvZm9vPic6OnhtbCBBUyB0ZXh0IElOREVOVCkgQVMgInht bHNlcmlhbGl6ZSI7Ci0geG1sdmlldzExICB8ICBTRUxFQ1QgKFhNTFNFUklBTElaRShET0NVTUVO VCAnPGZvbz48YmFyPjQyPC9iYXI+PC9mb28+Jzo6eG1sIEFTIGNoYXJhY3RlciB2YXJ5aW5nIE5P IElOREVOVCkpOjpjaGFyYWN0ZXIgdmFyeWluZyBBUyAieG1sc2VyaWFsaXplIjsKLSB4bWx2aWV3 MiAgIHwgIFNFTEVDVCBYTUxDT05DQVQoJ2hlbGxvJzo6eG1sLCAneW91Jzo6eG1sKSBBUyAieG1s Y29uY2F0IjsKLSB4bWx2aWV3MyAgIHwgIFNFTEVDVCBYTUxFTEVNRU5UKE5BTUUgZWxlbWVudCwg WE1MQVRUUklCVVRFUygxIEFTICI6b25lOiIsICdkZXVjZScgQVMgdHdvKSwgJ2NvbnRlbnQmJykg QVMgInhtbGVsZW1lbnQiOwotIHhtbHZpZXc0ICAgfCAgU0VMRUNUIFhNTEVMRU1FTlQoTkFNRSBl bXBsb3llZSwgWE1MRk9SRVNUKG5hbWUgQVMgbmFtZSwgYWdlIEFTIGFnZSwgc2FsYXJ5IEFTIHBh eSkpIEFTICJ4bWxlbGVtZW50IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICAgICAgICAgfCAgICBGUk9NIGVtcDsKLSB4bWx2aWV3NSAgIHwgIFNFTEVDVCBYTUxQQVJTRShD T05URU5UICc8YWJjPng8L2FiYz4nOjp0ZXh0IFNUUklQIFdISVRFU1BBQ0UpIEFTICJ4bWxwYXJz ZSI7Ci0geG1sdmlldzYgICB8ICBTRUxFQ1QgWE1MUEkoTkFNRSBmb28sICdiYXInOjp0ZXh0KSBB UyAieG1scGkiOwotIHhtbHZpZXc3ICAgfCAgU0VMRUNUIFhNTFJPT1QoJzxmb28vPic6OnhtbCwg VkVSU0lPTiBOTyBWQUxVRSwgU1RBTkRBTE9ORSBZRVMpIEFTICJ4bWxyb290IjsKLSB4bWx2aWV3 OCAgIHwgIFNFTEVDVCAoWE1MU0VSSUFMSVpFKENPTlRFTlQgJ2dvb2QnOjp4bWwgQVMgY2hhcmFj dGVyKDEwKSBOTyBJTkRFTlQpKTo6Y2hhcmFjdGVyKDEwKSBBUyAieG1sc2VyaWFsaXplIjsKLSB4 bWx2aWV3OSAgIHwgIFNFTEVDVCBYTUxTRVJJQUxJWkUoQ09OVEVOVCAnZ29vZCc6OnhtbCBBUyB0 ZXh0IE5PIElOREVOVCkgQVMgInhtbHNlcmlhbGl6ZSI7Ci0oMTEgcm93cykKLQotLS0gVGV4dCBY UGF0aCBleHByZXNzaW9ucyBldmFsdWF0aW9uCi1TRUxFQ1QgeHBhdGgoJy92YWx1ZScsIGRhdGEp IEZST00geG1sdGVzdDsKLSAgICAgICAgeHBhdGggICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSB7PHZhbHVlPm9uZTwvdmFsdWU+fQotIHs8dmFsdWU+dHdvPC92YWx1ZT59Ci0oMiBy b3dzKQotCi1TRUxFQ1QgeHBhdGgoTlVMTCwgTlVMTCkgSVMgTlVMTCBGUk9NIHhtbHRlc3Q7Ci0g P2NvbHVtbj8gCi0tLS0tLS0tLS0tCi0gdAotIHQKLSgyIHJvd3MpCi0KLVNFTEVDVCB4cGF0aCgn JywgJzwhLS0gZXJyb3IgLS0+Jyk7Ci1FUlJPUjogIGVtcHR5IFhQYXRoIGV4cHJlc3Npb24KLUNP TlRFWFQ6ICBTUUwgZnVuY3Rpb24gInhwYXRoIiBzdGF0ZW1lbnQgMQotU0VMRUNUIHhwYXRoKCcv L3RleHQoKScsICc8bG9jYWw6ZGF0YSB4bWxuczpsb2NhbD0iaHR0cDovLzEyNy4wLjAuMSI+PGxv Y2FsOnBpZWNlIGlkPSIxIj5udW1iZXIgb25lPC9sb2NhbDpwaWVjZT48bG9jYWw6cGllY2UgaWQ9 IjIiIC8+PC9sb2NhbDpkYXRhPicpOwotICAgICB4cGF0aCAgICAgIAotLS0tLS0tLS0tLS0tLS0t LQotIHsibnVtYmVyIG9uZSJ9Ci0oMSByb3cpCi0KLVNFTEVDVCB4cGF0aCgnLy9sb2M6cGllY2Uv QGlkJywgJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJodHRwOi8vMTI3LjAuMC4xIj48bG9jYWw6 cGllY2UgaWQ9IjEiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNlPjxsb2NhbDpwaWVjZSBpZD0iMiIg Lz48L2xvY2FsOmRhdGE+JywgQVJSQVlbQVJSQVlbJ2xvYycsICdodHRwOi8vMTI3LjAuMC4xJ11d KTsKLSB4cGF0aCAKLS0tLS0tLS0KLSB7MSwyfQotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGgoJy8v bG9jOnBpZWNlJywgJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJodHRwOi8vMTI3LjAuMC4xIj48 bG9jYWw6cGllY2UgaWQ9IjEiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNlPjxsb2NhbDpwaWVjZSBp ZD0iMiIgLz48L2xvY2FsOmRhdGE+JywgQVJSQVlbQVJSQVlbJ2xvYycsICdodHRwOi8vMTI3LjAu MC4xJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhwYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0geyI8bG9jYWw6cGllY2UgeG1sbnM6bG9jYWw9XCJodHRwOi8vMTI3 LjAuMC4xXCIgaWQ9XCIxXCI+bnVtYmVyIG9uZTwvbG9jYWw6cGllY2U+IiwiPGxvY2FsOnBpZWNl IHhtbG5zOmxvY2FsPVwiaHR0cDovLzEyNy4wLjAuMVwiIGlkPVwiMlwiLz4ifQotKDEgcm93KQot Ci1TRUxFQ1QgeHBhdGgoJy8vbG9jOnBpZWNlJywgJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJo dHRwOi8vMTI3LjAuMC4xIiB4bWxucz0iaHR0cDovLzEyNy4wLjAuMiI+PGxvY2FsOnBpZWNlIGlk PSIxIj48aW50ZXJuYWw+bnVtYmVyIG9uZTwvaW50ZXJuYWw+PGludGVybmFsMi8+PC9sb2NhbDpw aWVjZT48bG9jYWw6cGllY2UgaWQ9IjIiIC8+PC9sb2NhbDpkYXRhPicsIEFSUkFZW0FSUkFZWyds b2MnLCAnaHR0cDovLzEyNy4wLjAuMSddXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4cGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHsiPGxvY2FsOnBpZWNl IHhtbG5zOmxvY2FsPVwiaHR0cDovLzEyNy4wLjAuMVwiIHhtbG5zPVwiaHR0cDovLzEyNy4wLjAu MlwiIGlkPVwiMVwiPjxpbnRlcm5hbD5udW1iZXIgb25lPC9pbnRlcm5hbD48aW50ZXJuYWwyLz48 L2xvY2FsOnBpZWNlPiIsIjxsb2NhbDpwaWVjZSB4bWxuczpsb2NhbD1cImh0dHA6Ly8xMjcuMC4w LjFcIiBpZD1cIjJcIi8+In0KLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoKCcvL2InLCAnPGE+b25l IDxiPnR3bzwvYj4gdGhyZWUgPGI+ZXRjPC9iPjwvYT4nKTsKLSAgICAgICAgICB4cGF0aCAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB7PGI+dHdvPC9iPiw8Yj5ldGM8L2I+ fQotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGgoJy8vdGV4dCgpJywgJzxyb290PiZsdDs8L3Jvb3Q+ Jyk7Ci0geHBhdGggIAotLS0tLS0tLS0KLSB7Jmx0O30KLSgxIHJvdykKLQotU0VMRUNUIHhwYXRo KCcvL0B2YWx1ZScsICc8cm9vdCB2YWx1ZT0iJmx0OyIvPicpOwotIHhwYXRoICAKLS0tLS0tLS0t Ci0geyZsdDt9Ci0oMSByb3cpCi0KLVNFTEVDVCB4cGF0aCgnJyc8PGludmFsaWQ+PicnJywgJzxy b290Lz4nKTsKLSAgICAgICAgICAgeHBhdGggICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0geyZsdDsmbHQ7aW52YWxpZCZndDsmZ3Q7fQotKDEgcm93KQotCi1TRUxFQ1Qg eHBhdGgoJ2NvdW50KC8vKiknLCAnPHJvb3Q+PHN1Yi8+PHN1Yi8+PC9yb290PicpOwotIHhwYXRo IAotLS0tLS0tLQotIHszfQotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGgoJ2NvdW50KC8vKik9MCcs ICc8cm9vdD48c3ViLz48c3ViLz48L3Jvb3Q+Jyk7Ci0gIHhwYXRoICAKLS0tLS0tLS0tLQotIHtm YWxzZX0KLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoKCdjb3VudCgvLyopPTMnLCAnPHJvb3Q+PHN1 Yi8+PHN1Yi8+PC9yb290PicpOwotIHhwYXRoICAKLS0tLS0tLS0tCi0ge3RydWV9Ci0oMSByb3cp Ci0KLVNFTEVDVCB4cGF0aCgnbmFtZSgvKiknLCAnPHJvb3Q+PHN1Yi8+PHN1Yi8+PC9yb290Picp OwotIHhwYXRoICAKLS0tLS0tLS0tCi0ge3Jvb3R9Ci0oMSByb3cpCi0KLVNFTEVDVCB4cGF0aCgn L25vc3VjaHRhZycsICc8cm9vdC8+Jyk7Ci0geHBhdGggCi0tLS0tLS0tCi0ge30KLSgxIHJvdykK LQotU0VMRUNUIHhwYXRoKCdyb290JywgJzxyb290Lz4nKTsKLSAgIHhwYXRoICAgCi0tLS0tLS0t LS0tLQotIHs8cm9vdC8+fQotKDEgcm93KQotCi0tLSBSb3VuZC10cmlwIG5vbi1BU0NJSSBkYXRh IHRocm91Z2ggeHBhdGgoKS4KLURPICQkCi1ERUNMQVJFCi0gIHhtbF9kZWNsYXJhdGlvbiB0ZXh0 IDo9ICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+JzsKLSAgZGVn cmVlX3N5bWJvbCB0ZXh0OwotICByZXMgeG1sW107Ci1CRUdJTgotICAtLSBQZXIgdGhlIGRvY3Vt ZW50YXRpb24sIGV4Y2VwdCB3aGVuIHRoZSBzZXJ2ZXIgZW5jb2RpbmcgaXMgVVRGOCwgeHBhdGgo KQotICAtLSBtYXkgbm90IHdvcmsgb24gbm9uLUFTQ0lJIGRhdGEuICBUaGUgdW50cmFuc2xhdGFi bGVfY2hhcmFjdGVyIGFuZAotICAtLSB1bmRlZmluZWRfZnVuY3Rpb24gdHJhcHMgYmVsb3csIGN1 cnJlbnRseSBkZWFkIGNvZGUsIHdpbGwgYmVjb21lIHJlbGV2YW50Ci0gIC0tIGlmIHdlIHJlbW92 ZSB0aGlzIGxpbWl0YXRpb24uCi0gIElGIGN1cnJlbnRfc2V0dGluZygnc2VydmVyX2VuY29kaW5n JykgPD4gJ1VURjgnIFRIRU4KLSAgICBSQUlTRSBMT0cgJ3NraXA6IGVuY29kaW5nICUgdW5zdXBw b3J0ZWQgZm9yIHhwYXRoJywKLSAgICAgIGN1cnJlbnRfc2V0dGluZygnc2VydmVyX2VuY29kaW5n Jyk7Ci0gICAgUkVUVVJOOwotICBFTkQgSUY7Ci0KLSAgZGVncmVlX3N5bWJvbCA6PSBjb252ZXJ0 X2Zyb20oJ1x4YzJiMCcsICdVVEY4Jyk7Ci0gIHJlcyA6PSB4cGF0aCgndGV4dCgpJywgKHhtbF9k ZWNsYXJhdGlvbiB8fAotICAgICc8eD4nIHx8IGRlZ3JlZV9zeW1ib2wgfHwgJzwveD4nKTo6eG1s KTsKLSAgSUYgZGVncmVlX3N5bWJvbCA8PiByZXNbMV06OnRleHQgVEhFTgotICAgIFJBSVNFICdl eHBlY3RlZCAlICglKSwgZ290ICUgKCUpJywKLSAgICAgIGRlZ3JlZV9zeW1ib2wsIGNvbnZlcnRf dG8oZGVncmVlX3N5bWJvbCwgJ1VURjgnKSwKLSAgICAgIHJlc1sxXSwgY29udmVydF90byhyZXNb MV06OnRleHQsICdVVEY4Jyk7Ci0gIEVORCBJRjsKLUVYQ0VQVElPTgotICAtLSBjaGFyYWN0ZXIg d2l0aCBieXRlIHNlcXVlbmNlIDB4YzIgMHhiMCBpbiBlbmNvZGluZyAiVVRGOCIgaGFzIG5vIGVx dWl2YWxlbnQgaW4gZW5jb2RpbmcgIkxBVElOOCIKLSAgV0hFTiB1bnRyYW5zbGF0YWJsZV9jaGFy YWN0ZXIKLSAgLS0gZGVmYXVsdCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBlbmNvZGluZyAiVVRG OCIgdG8gIk1VTEVfSU5URVJOQUwiIGRvZXMgbm90IGV4aXN0Ci0gIE9SIHVuZGVmaW5lZF9mdW5j dGlvbgotICAtLSB1bnN1cHBvcnRlZCBYTUwgZmVhdHVyZQotICBPUiBmZWF0dXJlX25vdF9zdXBw b3J0ZWQgVEhFTgotICAgIFJBSVNFIExPRyAnc2tpcDogJScsIFNRTEVSUk07Ci1FTkQKLSQkOwot LS0gVGVzdCB4bWxleGlzdHMgYW5kIHhwYXRoX2V4aXN0cwotU0VMRUNUIHhtbGV4aXN0cygnLy90 b3duW3RleHQoKSA9ICcnVG9yb250bycnXScgUEFTU0lORyBCWSBSRUYgJzx0b3ducz48dG93bj5C aWRmb3JkLW9uLUF2b248L3Rvd24+PHRvd24+Q3dtYnJhbjwvdG93bj48dG93bj5CcmlzdG9sPC90 b3duPjwvdG93bnM+Jyk7Ci0geG1sZXhpc3RzIAotLS0tLS0tLS0tLS0KLSBmCi0oMSByb3cpCi0K LVNFTEVDVCB4bWxleGlzdHMoJy8vdG93blt0ZXh0KCkgPSAnJ0N3bWJyYW4nJ10nIFBBU1NJTkcg QlkgUkVGICc8dG93bnM+PHRvd24+QmlkZm9yZC1vbi1Bdm9uPC90b3duPjx0b3duPkN3bWJyYW48 L3Rvd24+PHRvd24+QnJpc3RvbDwvdG93bj48L3Rvd25zPicpOwotIHhtbGV4aXN0cyAKLS0tLS0t LS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxFQ1QgeG1sZXhpc3RzKCdjb3VudCgvbm9zdWNodGFn KScgUEFTU0lORyBCWSBSRUYgJzxyb290Lz4nKTsKLSB4bWxleGlzdHMgCi0tLS0tLS0tLS0tLQot IHQKLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoX2V4aXN0cygnLy90b3duW3RleHQoKSA9ICcnVG9y b250bycnXScsJzx0b3ducz48dG93bj5CaWRmb3JkLW9uLUF2b248L3Rvd24+PHRvd24+Q3dtYnJh bjwvdG93bj48dG93bj5CcmlzdG9sPC90b3duPjwvdG93bnM+Jzo6eG1sKTsKLSB4cGF0aF9leGlz dHMgCi0tLS0tLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoX2V4aXN0cygn Ly90b3duW3RleHQoKSA9ICcnQ3dtYnJhbicnXScsJzx0b3ducz48dG93bj5CaWRmb3JkLW9uLUF2 b248L3Rvd24+PHRvd24+Q3dtYnJhbjwvdG93bj48dG93bj5CcmlzdG9sPC90b3duPjwvdG93bnM+ Jzo6eG1sKTsKLSB4cGF0aF9leGlzdHMgCi0tLS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykKLQot U0VMRUNUIHhwYXRoX2V4aXN0cygnY291bnQoL25vc3VjaHRhZyknLCAnPHJvb3QvPic6OnhtbCk7 Ci0geHBhdGhfZXhpc3RzIAotLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLUlOU0VSVCBJ TlRPIHhtbHRlc3QgVkFMVUVTICg0LCAnPG1lbnU+PGJlZXJzPjxuYW1lPkJ1ZHZhcjwvbmFtZT48 Y29zdD5mcmVlPC9jb3N0PjxuYW1lPkNhcmxpbmc8L25hbWU+PGNvc3Q+bG90czwvY29zdD48L2Jl ZXJzPjwvbWVudT4nOjp4bWwpOwotSU5TRVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDUsICc8bWVu dT48YmVlcnM+PG5hbWU+TW9sc29uPC9uYW1lPjxjb3N0PmZyZWU8L2Nvc3Q+PG5hbWU+Q2FybGlu ZzwvbmFtZT48Y29zdD5sb3RzPC9jb3N0PjwvYmVlcnM+PC9tZW51Pic6OnhtbCk7Ci1JTlNFUlQg SU5UTyB4bWx0ZXN0IFZBTFVFUyAoNiwgJzxteW5zOm1lbnUgeG1sbnM6bXlucz0iaHR0cDovL215 bnMuY29tIj48bXluczpiZWVycz48bXluczpuYW1lPkJ1ZHZhcjwvbXluczpuYW1lPjxteW5zOmNv c3Q+ZnJlZTwvbXluczpjb3N0PjxteW5zOm5hbWU+Q2FybGluZzwvbXluczpuYW1lPjxteW5zOmNv c3Q+bG90czwvbXluczpjb3N0PjwvbXluczpiZWVycz48L215bnM6bWVudT4nOjp4bWwpOwotSU5T RVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDcsICc8bXluczptZW51IHhtbG5zOm15bnM9Imh0dHA6 Ly9teW5zLmNvbSI+PG15bnM6YmVlcnM+PG15bnM6bmFtZT5Nb2xzb248L215bnM6bmFtZT48bXlu czpjb3N0PmZyZWU8L215bnM6Y29zdD48bXluczpuYW1lPkNhcmxpbmc8L215bnM6bmFtZT48bXlu czpjb3N0PmxvdHM8L215bnM6Y29zdD48L215bnM6YmVlcnM+PC9teW5zOm1lbnU+Jzo6eG1sKTsK LVNFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0cygnL21lbnUvYmVl cicgUEFTU0lORyBkYXRhKTsKLSBjb3VudCAKLS0tLS0tLS0KLSAgICAgMAotKDEgcm93KQotCi1T RUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4bWxleGlzdHMoJy9tZW51L2JlZXIn IFBBU1NJTkcgQlkgUkVGIGRhdGEgQlkgUkVGKTsKLSBjb3VudCAKLS0tLS0tLS0KLSAgICAgMAot KDEgcm93KQotCi1TRUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4bWxleGlzdHMo Jy9tZW51L2JlZXJzJyBQQVNTSU5HIEJZIFJFRiBkYXRhKTsKLSBjb3VudCAKLS0tLS0tLS0KLSAg ICAgMgotKDEgcm93KQotCi1TRUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4bWxl eGlzdHMoJy9tZW51L2JlZXJzL25hbWVbdGV4dCgpID0gJydNb2xzb24nJ10nIFBBU1NJTkcgQlkg UkVGIGRhdGEpOwotIGNvdW50IAotLS0tLS0tLQotICAgICAxCi0oMSByb3cpCi0KLVNFTEVDVCBD T1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0cygnL21lbnUvYmVlcicsZGF0 YSk7Ci0gY291bnQgCi0tLS0tLS0tCi0gICAgIDAKLSgxIHJvdykKLQotU0VMRUNUIENPVU5UKGlk KSBGUk9NIHhtbHRlc3QgV0hFUkUgeHBhdGhfZXhpc3RzKCcvbWVudS9iZWVycycsZGF0YSk7Ci0g Y291bnQgCi0tLS0tLS0tCi0gICAgIDIKLSgxIHJvdykKLQotU0VMRUNUIENPVU5UKGlkKSBGUk9N IHhtbHRlc3QgV0hFUkUgeHBhdGhfZXhpc3RzKCcvbWVudS9iZWVycy9uYW1lW3RleHQoKSA9ICcn TW9sc29uJyddJyxkYXRhKTsKLSBjb3VudCAKLS0tLS0tLS0KLSAgICAgMQotKDEgcm93KQotCi1T RUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9teW5zOm1l bnUvbXluczpiZWVyJyxkYXRhLEFSUkFZW0FSUkFZWydteW5zJywnaHR0cDovL215bnMuY29tJ11d KTsKLSBjb3VudCAKLS0tLS0tLS0KLSAgICAgMAotKDEgcm93KQotCi1TRUxFQ1QgQ09VTlQoaWQp IEZST00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9teW5zOm1lbnUvbXluczpiZWVycycs ZGF0YSxBUlJBWVtBUlJBWVsnbXlucycsJ2h0dHA6Ly9teW5zLmNvbSddXSk7Ci0gY291bnQgCi0t LS0tLS0tCi0gICAgIDIKLSgxIHJvdykKLQotU0VMRUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3Qg V0hFUkUgeHBhdGhfZXhpc3RzKCcvbXluczptZW51L215bnM6YmVlcnMvbXluczpuYW1lW3RleHQo KSA9ICcnTW9sc29uJyddJyxkYXRhLEFSUkFZW0FSUkFZWydteW5zJywnaHR0cDovL215bnMuY29t J11dKTsKLSBjb3VudCAKLS0tLS0tLS0KLSAgICAgMQotKDEgcm93KQotCi1DUkVBVEUgVEFCTEUg cXVlcnkgKCBleHByIFRFWFQgKTsKLUlOU0VSVCBJTlRPIHF1ZXJ5IFZBTFVFUyAoJy9tZW51L2Jl ZXJzL2Nvc3RbdGV4dCgpID0gJydsb3RzJyddJyk7Ci1TRUxFQ1QgQ09VTlQoaWQpIEZST00geG1s dGVzdCwgcXVlcnkgV0hFUkUgeG1sZXhpc3RzKGV4cHIgUEFTU0lORyBCWSBSRUYgZGF0YSk7Ci0g Y291bnQgCi0tLS0tLS0tCi0gICAgIDIKLSgxIHJvdykKLQotLS0gVGVzdCB4bWxfaXNfd2VsbF9m b3JtZWQgYW5kIHZhcmlhbnRzCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkX2RvY3VtZW50KCc8 Zm9vPmJhcjwvZm9vPicpOwotIHhtbF9pc193ZWxsX2Zvcm1lZF9kb2N1bWVudCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxf Zm9ybWVkX2RvY3VtZW50KCdhYmMnKTsKLSB4bWxfaXNfd2VsbF9mb3JtZWRfZG9jdW1lbnQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VMRUNUIHhtbF9p c193ZWxsX2Zvcm1lZF9jb250ZW50KCc8Zm9vPmJhcjwvZm9vPicpOwotIHhtbF9pc193ZWxsX2Zv cm1lZF9jb250ZW50IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykK LQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZF9jb250ZW50KCdhYmMnKTsKLSB4bWxfaXNfd2Vs bF9mb3JtZWRfY29udGVudCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSBy b3cpCi0KLVNFVCB4bWxvcHRpb24gVE8gRE9DVU1FTlQ7Ci1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9y bWVkKCdhYmMnKTsKLSB4bWxfaXNfd2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IGYKLSgxIHJvdykKLQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPD4nKTsKLSB4bWxfaXNf d2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VMRUNU IHhtbF9pc193ZWxsX2Zvcm1lZCgnPGFiYy8+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3Jt ZWQoJzxmb28+YmFyPC9mb28+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxmb28+ YmFyPC9mb28nKTsKLSB4bWxfaXNfd2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IGYKLSgxIHJvdykKLQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGZvbz48YmFyPmJhejwv Zm9vPicpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZgot KDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8bG9jYWw6ZGF0YSB4bWxuczps b2NhbD0iaHR0cDovLzEyNy4wLjAuMSI+PGxvY2FsOnBpZWNlIGlkPSIxIj5udW1iZXIgb25lPC9s b2NhbDpwaWVjZT48bG9jYWw6cGllY2UgaWQ9IjIiIC8+PC9sb2NhbDpkYXRhPicpOwotIHhtbF9p c193ZWxsX2Zvcm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxF Q1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8cGc6Zm9vIHhtbG5zOnBnPSJodHRwOi8vcG9zdGdyZXNx bC5vcmcvc3R1ZmYiPmJhcjwvbXk6Zm9vPicpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVk KCc8cGc6Zm9vIHhtbG5zOnBnPSJodHRwOi8vcG9zdGdyZXNxbC5vcmcvc3R1ZmYiPmJhcjwvcGc6 Zm9vPicpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdAot KDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8aW52YWxpZGVudGl0eT4mPC9h YmM+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBmCi0o MSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzx1bmRlZmluZWRlbnRpdHk+Jmlk b250ZXhpc3Q7PC9hYmM+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBmCi0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxpbnZhbGlk bnMgeG1sbnM9JycmbHQ7JycvPicpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8cmVs YXRpdmVucyB4bWxucz0nJ3JlbGF0aXZlJycvPicpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9y bWVkKCc8dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4nKTsKLSB4bWxfaXNfd2Vs bF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VUIHhtbG9w dGlvbiBUTyBDT05URU5UOwotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnYWJjJyk7Ci0geG1s X2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLS0t IFNpbmNlIHhwYXRoKCkgZGVhbHMgd2l0aCBuYW1lc3BhY2VzLCBpdCdzIGEgYml0IHN0cmljdGVy IGFib3V0Ci0tLSB3aGF0J3Mgd2VsbC1mb3JtZWQgYW5kIHdoYXQncyBub3QuIElmIHdlIGRvbid0 IG9iZXkgdGhlc2UgcnVsZXMKLS0tIChpLmUuIGlnbm9yZSBuYW1lc3BhY2UtcmVsYXRlZCBlcnJv cnMgZnJvbSBsaWJ4bWwpLCB4cGF0aCgpCi0tLSBmYWlscyBpbiBzdWJ0bGUgd2F5cy4gVGhlIGZv bGxvd2luZyB3b3VsZCBmb3IgZXhhbXBsZSBwcm9kdWNlCi0tLSB0aGUgeG1sIHZhbHVlCi0tLSAg IDxpbnZhbGlkbnMgeG1sbnM9JzwnLz4KLS0tIHdoaWNoIGlzIGludmFsaWQgYmVjYXVzZSAnPCcg bWF5IG5vdCBhcHBlYXIgdW4tZXNjYXBlZCBpbgotLS0gYXR0cmlidXRlIHZhbHVlcy4KLS0tIFNp bmNlIGRpZmZlcmVudCBsaWJ4bWwgdmVyc2lvbnMgZW1pdCBzbGlnaHRseSBkaWZmZXJlbnQKLS0t IGVycm9yIG1lc3NhZ2VzLCB3ZSBzdXBwcmVzcyB0aGUgREVUQUlMIGluIHRoaXMgdGVzdC4KLVxz ZXQgVkVSQk9TSVRZIHRlcnNlCi1TRUxFQ1QgeHBhdGgoJy8qJywgJzxpbnZhbGlkbnMgeG1sbnM9 JycmbHQ7JycvPicpOwotRVJST1I6ICBjb3VsZCBub3QgcGFyc2UgWE1MIGRvY3VtZW50Ci1cc2V0 IFZFUkJPU0lUWSBkZWZhdWx0Ci0tLSBBZ2FpbiwgdGhlIFhNTCBpc24ndCB3ZWxsLWZvcm1lZCBm b3IgbmFtZXNwYWNlIHB1cnBvc2VzCi1TRUxFQ1QgeHBhdGgoJy8qJywgJzxub3N1Y2hwcmVmaXg6 dGFnLz4nKTsKLUVSUk9SOiAgY291bGQgbm90IHBhcnNlIFhNTCBkb2N1bWVudAotREVUQUlMOiAg bGluZSAxOiBOYW1lc3BhY2UgcHJlZml4IG5vc3VjaHByZWZpeCBvbiB0YWcgaXMgbm90IGRlZmlu ZWQKLTxub3N1Y2hwcmVmaXg6dGFnLz4KLSAgICAgICAgICAgICAgICAgXgotQ09OVEVYVDogIFNR TCBmdW5jdGlvbiAieHBhdGgiIHN0YXRlbWVudCAxCi0tLSBYUGF0aCBkZXByZWNhdGVzIHJlbGF0 aXZlIG5hbWVzcGFjZXMsIGJ1dCB0aGV5J3JlIG5vdCBzdXBwb3NlZCB0bwotLS0gdGhyb3cgYW4g ZXJyb3IsIG9ubHkgYSB3YXJuaW5nLgotU0VMRUNUIHhwYXRoKCcvKicsICc8cmVsYXRpdmVucyB4 bWxucz0nJ3JlbGF0aXZlJycvPicpOwotV0FSTklORzogIGxpbmUgMTogeG1sbnM6IFVSSSByZWxh dGl2ZSBpcyBub3QgYWJzb2x1dGUKLTxyZWxhdGl2ZW5zIHhtbG5zPSdyZWxhdGl2ZScvPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KLSAgICAgICAgICAgICAgICB4cGF0aCAgICAgICAg ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHsiPHJl bGF0aXZlbnMgeG1sbnM9XCJyZWxhdGl2ZVwiLz4ifQotKDEgcm93KQotCi0tLSBFeHRlcm5hbCBl bnRpdHkgcmVmZXJlbmNlcyBzaG91bGQgbm90IGxlYWsgZmlsZXN5c3RlbSBpbmZvcm1hdGlvbi4K LVNFTEVDVCBYTUxQQVJTRShET0NVTUVOVCAnPCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgYyBTWVNU RU0gIi9ldGMvcGFzc3dkIj5dPjxmb28+JmM7PC9mb28+Jyk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgeG1scGFyc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSA8IURPQ1RZUEUgZm9vIFs8IUVOVElUWSBjIFNZU1RFTSAiL2V0Yy9wYXNzd2QiPl0+PGZvbz4m Yzs8L2Zvbz4KLSgxIHJvdykKLQotU0VMRUNUIFhNTFBBUlNFKERPQ1VNRU5UICc8IURPQ1RZUEUg Zm9vIFs8IUVOVElUWSBjIFNZU1RFTSAiL2V0Yy9uby5zdWNoLmZpbGUiPl0+PGZvbz4mYzs8L2Zv bz4nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxwYXJzZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDwhRE9DVFlQRSBmb28gWzwh RU5USVRZIGMgU1lTVEVNICIvZXRjL25vLnN1Y2guZmlsZSI+XT48Zm9vPiZjOzwvZm9vPgotKDEg cm93KQotCi0tLSBUaGlzIG1pZ2h0IG9yIG1pZ2h0IG5vdCBsb2FkIHRoZSByZXF1ZXN0ZWQgRFRE LCBidXQgaXQgbXVzdG4ndCB0aHJvdyBlcnJvci4KLVNFTEVDVCBYTUxQQVJTRShET0NVTUVOVCAn PCFET0NUWVBFIGNoYXB0ZXIgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEu Mi8vRU4iICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jv b2t4LmR0ZCI+PGNoYXB0ZXI+Jm5ic3A7PC9jaGFwdGVyPicpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxw YXJzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSA8IURPQ1RZUEUgY2hhcHRlciBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQu MS4yLy9FTiIgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9j Ym9va3guZHRkIj48Y2hhcHRlcj4mbmJzcDs8L2NoYXB0ZXI+Ci0oMSByb3cpCi0KLS0tIFhNTFBB VEggdGVzdHMKLUNSRUFURSBUQUJMRSB4bWxkYXRhKGRhdGEgeG1sKTsKLUlOU0VSVCBJTlRPIHht bGRhdGEgVkFMVUVTKCc8Uk9XUz4KLTxST1cgaWQ9IjEiPgotICA8Q09VTlRSWV9JRD5BVTwvQ09V TlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5BdXN0cmFsaWE8L0NPVU5UUllfTkFNRT4KLSAgPFJF R0lPTl9JRD4zPC9SRUdJT05fSUQ+Ci08L1JPVz4KLTxST1cgaWQ9IjIiPgotICA8Q09VTlRSWV9J RD5DTjwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5DaGluYTwvQ09VTlRSWV9OQU1FPgot ICA8UkVHSU9OX0lEPjM8L1JFR0lPTl9JRD4KLTwvUk9XPgotPFJPVyBpZD0iMyI+Ci0gIDxDT1VO VFJZX0lEPkhLPC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkhvbmdLb25nPC9DT1VOVFJZ X05BTUU+Ci0gIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPgotPC9ST1c+Ci08Uk9XIGlkPSI0Ij4K LSAgPENPVU5UUllfSUQ+SU48L0NPVU5UUllfSUQ+Ci0gIDxDT1VOVFJZX05BTUU+SW5kaWE8L0NP VU5UUllfTkFNRT4KLSAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+Ci08L1JPVz4KLTxST1cgaWQ9 IjUiPgotICA8Q09VTlRSWV9JRD5KUDwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5KYXBh bjwvQ09VTlRSWV9OQU1FPgotICA8UkVHSU9OX0lEPjM8L1JFR0lPTl9JRD48UFJFTUlFUl9OQU1F PlNpbnpvIEFiZTwvUFJFTUlFUl9OQU1FPgotPC9ST1c+Ci08Uk9XIGlkPSI2Ij4KLSAgPENPVU5U UllfSUQ+U0c8L0NPVU5UUllfSUQ+Ci0gIDxDT1VOVFJZX05BTUU+U2luZ2Fwb3JlPC9DT1VOVFJZ X05BTUU+Ci0gIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPjxTSVpFIHVuaXQ9ImttIj43OTE8L1NJ WkU+Ci08L1JPVz4KLTwvUk9XUz4nKTsKLS0tIFhNTFRBQkxFIHdpdGggY29sdW1ucwotU0VMRUNU ICB4bWx0YWJsZS4qCi0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRhdGEpIHgsCi0gICAg ICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAgICAgICAgICAgICAgICAgICAg ICBQQVNTSU5HIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGlkIGludCBQ QVRIICdAaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JE SU5BTElUWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X25hbWUg dGV4dCBQQVRIICdDT1VOVFJZX05BTUUvdGV4dCgpJyBOT1QgTlVMTCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09VTlRSWV9JRCcsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uX2lkIGludCBQQVRIICdSRUdJ T05fSUQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgZmxvYXQgUEFU SCAnU0laRScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCB0ZXh0IFBB VEggJ1NJWkUvQHVuaXQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZW1p ZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJfTkFNRScgREVGQVVMVCAnbm90IHNwZWNpZmllZCcp OwotIGlkIHwgX2lkIHwgY291bnRyeV9uYW1lIHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNp emUgfCB1bml0IHwgcHJlbWllcl9uYW1lICAKLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gIDEg fCAgIDEgfCBBdXN0cmFsaWEgICAgfCBBVSAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAg ICAgfCBub3Qgc3BlY2lmaWVkCi0gIDIgfCAgIDIgfCBDaGluYSAgICAgICAgfCBDTiAgICAgICAg IHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDMgfCAgIDMgfCBI b25nS29uZyAgICAgfCBISyAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qg c3BlY2lmaWVkCi0gIDQgfCAgIDQgfCBJbmRpYSAgICAgICAgfCBJTiAgICAgICAgIHwgICAgICAg ICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDUgfCAgIDUgfCBKYXBhbiAgICAg ICAgfCBKUCAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBTaW56byBBYmUKLSAg NiB8ICAgNiB8IFNpbmdhcG9yZSAgICB8IFNHICAgICAgICAgfCAgICAgICAgIDMgfCAgNzkxIHwg a20gICB8IG5vdCBzcGVjaWZpZWQKLSg2IHJvd3MpCi0KLUNSRUFURSBWSUVXIHhtbHRhYmxldmll dzEgQVMgU0VMRUNUICB4bWx0YWJsZS4qCi0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRh dGEpIHgsCi0gICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAgICAgICAg ICAgICAgICAgICAgICBQQVNTSU5HIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICBDT0xV TU5TIGlkIGludCBQQVRIICdAaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9pZCBGT1IgT1JESU5BTElUWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUvdGV4dCgpJyBOT1QgTlVMTCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09V TlRSWV9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uX2lkIGlu dCBQQVRIICdSRUdJT05fSUQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emUgZmxvYXQgUEFUSCAnU0laRScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5pdCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHByZW1pZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJfTkFNRScgREVGQVVMVCAnbm90 IHNwZWNpZmllZCcpOwotU0VMRUNUICogRlJPTSB4bWx0YWJsZXZpZXcxOwotIGlkIHwgX2lkIHwg Y291bnRyeV9uYW1lIHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNpemUgfCB1bml0IHwgcHJl bWllcl9uYW1lICAKLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gIDEgfCAgIDEgfCBBdXN0cmFs aWEgICAgfCBBVSAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lm aWVkCi0gIDIgfCAgIDIgfCBDaGluYSAgICAgICAgfCBDTiAgICAgICAgIHwgICAgICAgICAzIHwg ICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDMgfCAgIDMgfCBIb25nS29uZyAgICAgfCBI SyAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDQg fCAgIDQgfCBJbmRpYSAgICAgICAgfCBJTiAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAg ICAgfCBub3Qgc3BlY2lmaWVkCi0gIDUgfCAgIDUgfCBKYXBhbiAgICAgICAgfCBKUCAgICAgICAg IHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBTaW56byBBYmUKLSAgNiB8ICAgNiB8IFNpbmdh cG9yZSAgICB8IFNHICAgICAgICAgfCAgICAgICAgIDMgfCAgNzkxIHwga20gICB8IG5vdCBzcGVj aWZpZWQKLSg2IHJvd3MpCi0KLVxzdiB4bWx0YWJsZXZpZXcxCi1DUkVBVEUgT1IgUkVQTEFDRSBW SUVXIHB1YmxpYy54bWx0YWJsZXZpZXcxIEFTCi0gU0VMRUNUICJ4bWx0YWJsZSIuaWQsCi0gICAg InhtbHRhYmxlIi5faWQsCi0gICAgInhtbHRhYmxlIi5jb3VudHJ5X25hbWUsCi0gICAgInhtbHRh YmxlIi5jb3VudHJ5X2lkLAotICAgICJ4bWx0YWJsZSIucmVnaW9uX2lkLAotICAgICJ4bWx0YWJs ZSIuc2l6ZSwKLSAgICAieG1sdGFibGUiLnVuaXQsCi0gICAgInhtbHRhYmxlIi5wcmVtaWVyX25h bWUKLSAgIEZST00gKCBTRUxFQ1QgeG1sZGF0YS5kYXRhCi0gICAgICAgICAgIEZST00geG1sZGF0 YSkgeCwKLSAgICBMQVRFUkFMIFhNTFRBQkxFKCgnL1JPV1MvUk9XJzo6dGV4dCkgUEFTU0lORyAo eC5kYXRhKSBDT0xVTU5TIGlkIGludGVnZXIgUEFUSCAoJ0BpZCc6OnRleHQpLCBfaWQgRk9SIE9S RElOQUxJVFksIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggKCdDT1VOVFJZX05BTUUvdGV4dCgpJzo6 dGV4dCkgTk9UIE5VTEwsIGNvdW50cnlfaWQgdGV4dCBQQVRIICgnQ09VTlRSWV9JRCc6OnRleHQp LCByZWdpb25faWQgaW50ZWdlciBQQVRIICgnUkVHSU9OX0lEJzo6dGV4dCksIHNpemUgZG91Ymxl IHByZWNpc2lvbiBQQVRIICgnU0laRSc6OnRleHQpLCB1bml0IHRleHQgUEFUSCAoJ1NJWkUvQHVu aXQnOjp0ZXh0KSwgcHJlbWllcl9uYW1lIHRleHQgREVGQVVMVCAoJ25vdCBzcGVjaWZpZWQnOjp0 ZXh0KSBQQVRIICgnUFJFTUlFUl9OQU1FJzo6dGV4dCkpCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00geG1sdGFibGV2aWV3MTsKLSAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IE5lc3RlZCBMb29wCi0gICAtPiAgU2VxIFNjYW4gb24geG1sZGF0YQotICAgLT4gIFRhYmxlIEZ1 bmN0aW9uIFNjYW4gb24gInhtbHRhYmxlIgotKDMgcm93cykKLQotRVhQTEFJTiAoQ09TVFMgT0ZG LCBWRVJCT1NFKSBTRUxFQ1QgKiBGUk9NIHhtbHRhYmxldmlldzE7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIE5lc3RlZCBMb29wCi0gICBPdXRwdXQ6 ICJ4bWx0YWJsZSIuaWQsICJ4bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlfbmFtZSwg InhtbHRhYmxlIi5jb3VudHJ5X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRhYmxlIi5z aXplLCAieG1sdGFibGUiLnVuaXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lCi0gICAtPiAgU2Vx IFNjYW4gb24gcHVibGljLnhtbGRhdGEKLSAgICAgICAgIE91dHB1dDogeG1sZGF0YS5kYXRhCi0g ICAtPiAgVGFibGUgRnVuY3Rpb24gU2NhbiBvbiAieG1sdGFibGUiCi0gICAgICAgICBPdXRwdXQ6 ICJ4bWx0YWJsZSIuaWQsICJ4bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlfbmFtZSwg InhtbHRhYmxlIi5jb3VudHJ5X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRhYmxlIi5z aXplLCAieG1sdGFibGUiLnVuaXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lCi0gICAgICAgICBU YWJsZSBGdW5jdGlvbiBDYWxsOiBYTUxUQUJMRSgoJy9ST1dTL1JPVyc6OnRleHQpIFBBU1NJTkcg KHhtbGRhdGEuZGF0YSkgQ09MVU1OUyBpZCBpbnRlZ2VyIFBBVEggKCdAaWQnOjp0ZXh0KSwgX2lk IEZPUiBPUkRJTkFMSVRZLCBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICgnQ09VTlRSWV9OQU1FL3Rl eHQoKSc6OnRleHQpIE5PVCBOVUxMLCBjb3VudHJ5X2lkIHRleHQgUEFUSCAoJ0NPVU5UUllfSUQn Ojp0ZXh0KSwgcmVnaW9uX2lkIGludGVnZXIgUEFUSCAoJ1JFR0lPTl9JRCc6OnRleHQpLCBzaXpl IGRvdWJsZSBwcmVjaXNpb24gUEFUSCAoJ1NJWkUnOjp0ZXh0KSwgdW5pdCB0ZXh0IFBBVEggKCdT SVpFL0B1bml0Jzo6dGV4dCksIHByZW1pZXJfbmFtZSB0ZXh0IERFRkFVTFQgKCdub3Qgc3BlY2lm aWVkJzo6dGV4dCkgUEFUSCAoJ1BSRU1JRVJfTkFNRSc6OnRleHQpKQotKDcgcm93cykKLQotLS0g ZXJyb3JzCi1TRUxFQ1QgKiBGUk9NIFhNTFRBQkxFIChST1cgKCkgUEFTU0lORyBudWxsIENPTFVN TlMgdjEgdGltZXN0YW1wKSBBUyBmICh2MSwgdjIpOwotRVJST1I6ICBYTUxUQUJMRSBmdW5jdGlv biBoYXMgMSBjb2x1bW5zIGF2YWlsYWJsZSBidXQgMiBjb2x1bW5zIHNwZWNpZmllZAotU0VMRUNU ICogRlJPTSBYTUxUQUJMRSAoUk9XICgpIFBBU1NJTkcgbnVsbCBDT0xVTU5TIHYxIHRpbWVzdGFt cCBfX3BnX19pc19ub3RfbnVsbCAxKSBBUyBmICh2MSk7Ci1FUlJPUjogIG9wdGlvbiBuYW1lICJf X3BnX19pc19ub3RfbnVsbCIgY2Fubm90IGJlIHVzZWQgaW4gWE1MVEFCTEUKLUxJTkUgMTogLi4u TUxUQUJMRSAoUk9XICgpIFBBU1NJTkcgbnVsbCBDT0xVTU5TIHYxIHRpbWVzdGFtcCBfX3BnX19p c19uLi4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgotLS0gWE1MTkFNRVNQQUNFUyB0ZXN0cwotU0VMRUNUICogRlJPTSBYTUxU QUJMRShYTUxOQU1FU1BBQ0VTKCdodHRwOi8veC55JyBBUyB6eiksCi0gICAgICAgICAgICAgICAg ICAgICAgJy96ejpyb3dzL3p6OnJvdycKLSAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HICc8 cm93cyB4bWxucz0iaHR0cDovL3gueSI+PHJvdz48YT4xMDwvYT48L3Jvdz48L3Jvd3M+JwotICAg ICAgICAgICAgICAgICAgICAgIENPTFVNTlMgYSBpbnQgUEFUSCAneno6YScpOwotIGEgIAotLS0t LQotIDEwCi0oMSByb3cpCi0KLUNSRUFURSBWSUVXIHhtbHRhYmxldmlldzIgQVMgU0VMRUNUICog RlJPTSBYTUxUQUJMRShYTUxOQU1FU1BBQ0VTKCdodHRwOi8veC55JyBBUyAiWnoiKSwKLSAgICAg ICAgICAgICAgICAgICAgICAnL1p6OnJvd3MvWno6cm93JwotICAgICAgICAgICAgICAgICAgICAg IFBBU1NJTkcgJzxyb3dzIHhtbG5zPSJodHRwOi8veC55Ij48cm93PjxhPjEwPC9hPjwvcm93Pjwv cm93cz4nCi0gICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBhIGludCBQQVRIICdaejphJyk7 Ci1TRUxFQ1QgKiBGUk9NIHhtbHRhYmxldmlldzI7Ci0gYSAgCi0tLS0tCi0gMTAKLSgxIHJvdykK LQotXHN2IHhtbHRhYmxldmlldzIKLUNSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnhtbHRh YmxldmlldzIgQVMKLSBTRUxFQ1QgYQotICAgRlJPTSBYTUxUQUJMRShYTUxOQU1FU1BBQ0VTICgn aHR0cDovL3gueSc6OnRleHQgQVMgIlp6IiksICgnL1p6OnJvd3MvWno6cm93Jzo6dGV4dCkgUEFT U0lORyAoJzxyb3dzIHhtbG5zPSJodHRwOi8veC55Ij48cm93PjxhPjEwPC9hPjwvcm93Pjwvcm93 cz4nOjp4bWwpIENPTFVNTlMgYSBpbnRlZ2VyIFBBVEggKCdaejphJzo6dGV4dCkpCi1TRUxFQ1Qg KiBGUk9NIFhNTFRBQkxFKFhNTE5BTUVTUEFDRVMoREVGQVVMVCAnaHR0cDovL3gueScpLAotICAg ICAgICAgICAgICAgICAgICAgICcvcm93cy9yb3cnCi0gICAgICAgICAgICAgICAgICAgICAgUEFT U0lORyAnPHJvd3MgeG1sbnM9Imh0dHA6Ly94LnkiPjxyb3c+PGE+MTA8L2E+PC9yb3c+PC9yb3dz PicKLSAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGEgaW50IFBBVEggJ2EnKTsKLUVSUk9S OiAgREVGQVVMVCBuYW1lc3BhY2UgaXMgbm90IHN1cHBvcnRlZAotU0VMRUNUICogRlJPTSBYTUxU QUJMRSgnLicKLSAgICAgICAgICAgICAgICAgICAgICAgUEFTU0lORyAnPGZvby8+JwotICAgICAg ICAgICAgICAgICAgICAgICBDT0xVTU5TIGEgdGV4dCBQQVRIICdmb28vbmFtZXNwYWNlOjpub2Rl KCknKTsKLSAgICAgICAgICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4 L25hbWVzcGFjZQotKDEgcm93KQotCi0tLSB1c2VkIGluIHByZXBhcmUgc3RhdGVtZW50cwotUFJF UEFSRSBwcCBBUwotU0VMRUNUICB4bWx0YWJsZS4qCi0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9N IHhtbGRhdGEpIHgsCi0gICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAg ICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxMLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VO VFJZX0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50 IFBBVEggJ1JFR0lPTl9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZSBmbG9hdCBQQVRIICdTSVpFJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qg c3BlY2lmaWVkJyk7Ci1FWEVDVVRFIHBwOwotIGlkIHwgX2lkIHwgY291bnRyeV9uYW1lIHwgY291 bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNpemUgfCB1bml0IHwgcHJlbWllcl9uYW1lICAKLS0tLS0r LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tCi0gIDEgfCAgIDEgfCBBdXN0cmFsaWEgICAgfCBBVSAgICAgICAg IHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDIgfCAgIDIgfCBD aGluYSAgICAgICAgfCBDTiAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qg c3BlY2lmaWVkCi0gIDMgfCAgIDMgfCBIb25nS29uZyAgICAgfCBISyAgICAgICAgIHwgICAgICAg ICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDQgfCAgIDQgfCBJbmRpYSAgICAg ICAgfCBJTiAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVk Ci0gIDUgfCAgIDUgfCBKYXBhbiAgICAgICAgfCBKUCAgICAgICAgIHwgICAgICAgICAzIHwgICAg ICB8ICAgICAgfCBTaW56byBBYmUKLSAgNiB8ICAgNiB8IFNpbmdhcG9yZSAgICB8IFNHICAgICAg ICAgfCAgICAgICAgIDMgfCAgNzkxIHwga20gICB8IG5vdCBzcGVjaWZpZWQKLSg2IHJvd3MpCi0K LVNFTEVDVCB4bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1Mv Uk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lO RyBkYXRhIENPTFVNTlMgIkNPVU5UUllfTkFNRSIgdGV4dCwgIlJFR0lPTl9JRCIgaW50KTsKLSBD T1VOVFJZX05BTUUgfCBSRUdJT05fSUQgCi0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotIElu ZGlhICAgICAgICB8ICAgICAgICAgMwotIEphcGFuICAgICAgICB8ICAgICAgICAgMwotKDIgcm93 cykKLQotU0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcv Uk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQ QVNTSU5HIGRhdGEgQ09MVU1OUyBpZCBGT1IgT1JESU5BTElUWSwgIkNPVU5UUllfTkFNRSIgdGV4 dCwgIlJFR0lPTl9JRCIgaW50KTsKLSBpZCB8IENPVU5UUllfTkFNRSB8IFJFR0lPTl9JRCAKLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSAgMSB8IEluZGlhICAgICAgICB8ICAgICAg ICAgMwotICAyIHwgSmFwYW4gICAgICAgIHwgICAgICAgICAzCi0oMiByb3dzKQotCi1TRUxFQ1Qg eG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JPV1tDT1VO VFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcgZGF0YSBD T0xVTU5TIGlkIGludCBQQVRIICdAaWQnLCAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lE IiBpbnQpOwotIGlkIHwgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIAotLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQotICA0IHwgSW5kaWEgICAgICAgIHwgICAgICAgICAzCi0gIDUgfCBK YXBhbiAgICAgICAgfCAgICAgICAgIDMKLSgyIHJvd3MpCi0KLVNFTEVDVCB4bWx0YWJsZS4qIEZS T00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFw YW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVNTlMgaWQgaW50 IFBBVEggJ0BpZCcpOwotIGlkIAotLS0tLQotICA0Ci0gIDUKLSgyIHJvd3MpCi0KLVNFTEVDVCB4 bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5U UllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENP TFVNTlMgaWQgRk9SIE9SRElOQUxJVFkpOwotIGlkIAotLS0tLQotICAxCi0gIDIKLSgyIHJvd3Mp Ci0KLVNFTEVDVCB4bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JP V1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFT U0lORyBkYXRhIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsICJDT1VOVFJZX05BTUUiIHRleHQs ICJSRUdJT05fSUQiIGludCwgcmF3ZGF0YSB4bWwgUEFUSCAnLicpOwotIGlkIHwgQ09VTlRSWV9O QU1FIHwgUkVHSU9OX0lEIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd2RhdGEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gIDQgfCBJbmRpYSAgICAgICAgfCAgICAgICAgIDMgfCA8Uk9XIGlkPSI0 Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICA8Q09VTlRSWV9JRD5JTjwvQ09VTlRS WV9JRD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICB8ICAgICAgICAg ICAgICB8ICAgICAgICAgICB8ICAgPENPVU5UUllfTkFNRT5JbmRpYTwvQ09VTlRSWV9OQU1FPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgfCAgIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgPC9ST1c+Ci0g IDUgfCBKYXBhbiAgICAgICAgfCAgICAgICAgIDMgfCA8Uk9XIGlkPSI1Ij4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgIHwgICA8Q09VTlRSWV9JRD5KUDwvQ09VTlRSWV9JRD4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAg ICB8ICAgPENPVU5UUllfTkFNRT5KYXBhbjwvQ09VTlRSWV9OQU1FPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCi0gICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgIDxSRUdJT05f SUQ+MzwvUkVHSU9OX0lEPjxQUkVNSUVSX05BTUU+U2luem8gQWJlPC9QUkVNSUVSX05BTUU+Kwot ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgPC9ST1c+Ci0oMiByb3dzKQotCi1TRUxF Q1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JPV1tD T1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcgZGF0 YSBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLCAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9O X0lEIiBpbnQsIHJhd2RhdGEgeG1sIFBBVEggJy4vKicpOwotIGlkIHwgQ09VTlRSWV9OQU1FIHwg UkVHSU9OX0lEIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJhd2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotICA0IHwgSW5kaWEgICAgICAgIHwgICAgICAgICAzIHwgPENPVU5UUllfSUQ+ SU48L0NPVU5UUllfSUQ+PENPVU5UUllfTkFNRT5JbmRpYTwvQ09VTlRSWV9OQU1FPjxSRUdJT05f SUQ+MzwvUkVHSU9OX0lEPgotICA1IHwgSmFwYW4gICAgICAgIHwgICAgICAgICAzIHwgPENPVU5U UllfSUQ+SlA8L0NPVU5UUllfSUQ+PENPVU5UUllfTkFNRT5KYXBhbjwvQ09VTlRSWV9OQU1FPjxS RUdJT05fSUQ+MzwvUkVHSU9OX0lEPjxQUkVNSUVSX05BTUU+U2luem8gQWJlPC9QUkVNSUVSX05B TUU+Ci0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIHhtbHRhYmxlKCcvcm9vdCcgcGFzc2luZyAn PHJvb3Q+PGVsZW1lbnQ+YTFhPCEtLSBhYWFhIC0tPmEyYTw/YWFhYWE/PiA8IS0tei0tPiAgYmJi Yjx4Pnh4eDwveD5jY2NjPC9lbGVtZW50Pjwvcm9vdD4nIENPTFVNTlMgZWxlbWVudCB0ZXh0KTsK LSAgICAgICBlbGVtZW50ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBhMWFhMmEg ICBiYmJieHh4Y2NjYwotKDEgcm93KQotCi1TRUxFQ1QgKiBGUk9NIHhtbHRhYmxlKCcvcm9vdCcg cGFzc2luZyAnPHJvb3Q+PGVsZW1lbnQ+YTFhPCEtLSBhYWFhIC0tPmEyYTw/YWFhYWE/PiA8IS0t ei0tPiAgYmJiYjx4Pnh4eDwveD5jY2NjPC9lbGVtZW50Pjwvcm9vdD4nIENPTFVNTlMgZWxlbWVu dCB0ZXh0IFBBVEggJ2VsZW1lbnQvdGV4dCgpJyk7IC0tIHNob3VsZCBmYWlsCi1FUlJPUjogIG1v cmUgdGhhbiBvbmUgdmFsdWUgcmV0dXJuZWQgYnkgY29sdW1uIFhQYXRoIGV4cHJlc3Npb24KLS0t IENEQVRBIHRlc3QKLXNlbGVjdCAqIGZyb20geG1sdGFibGUoJ2QvcicgcGFzc2luZyAnPGQ+PHI+ PGM+PCFbQ0RBVEFbPGhlbGxvPiAmIjw+ITxhPmZvbzwvYT5dXT48L2M+PC9yPjxyPjxjPjI8L2M+ PC9yPjwvZD4nIGNvbHVtbnMgYyB0ZXh0KTsKLSAgICAgICAgICAgIGMgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8aGVsbG8+ICYiPD4hPGE+Zm9vPC9hPgotIDIKLSgy IHJvd3MpCi0KLS0tIFhNTCBidWlsdGluIGVudGl0aWVzCi1TRUxFQ1QgKiBGUk9NIHhtbHRhYmxl KCcveC9hJyBQQVNTSU5HICc8eD48YT48ZW50PiZhcG9zOzwvZW50PjwvYT48YT48ZW50PiZxdW90 OzwvZW50PjwvYT48YT48ZW50PiZhbXA7PC9lbnQ+PC9hPjxhPjxlbnQ+Jmx0OzwvZW50PjwvYT48 YT48ZW50PiZndDs8L2VudD48L2E+PC94PicgQ09MVU1OUyBlbnQgdGV4dCk7Ci0gZW50IAotLS0t LS0KLSAnCi0gIgotICYKLSA8Ci0gPgotKDUgcm93cykKLQotU0VMRUNUICogRlJPTSB4bWx0YWJs ZSgnL3gvYScgUEFTU0lORyAnPHg+PGE+PGVudD4mYXBvczs8L2VudD48L2E+PGE+PGVudD4mcXVv dDs8L2VudD48L2E+PGE+PGVudD4mYW1wOzwvZW50PjwvYT48YT48ZW50PiZsdDs8L2VudD48L2E+ PGE+PGVudD4mZ3Q7PC9lbnQ+PC9hPjwveD4nIENPTFVNTlMgZW50IHhtbCk7Ci0gICAgICAgZW50 ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxlbnQ+JzwvZW50PgotIDxlbnQ+IjwvZW50 PgotIDxlbnQ+JmFtcDs8L2VudD4KLSA8ZW50PiZsdDs8L2VudD4KLSA8ZW50PiZndDs8L2VudD4K LSg1IHJvd3MpCi0KLUVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKLVNFTEVDVCAgeG1sdGFi bGUuKgotICAgRlJPTSAoU0VMRUNUIGRhdGEgRlJPTSB4bWxkYXRhKSB4LAotICAgICAgICBMQVRF UkFMIFhNTFRBQkxFKCcvUk9XUy9ST1cnCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEFTU0lO RyBkYXRhCi0gICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBpZCBpbnQgUEFUSCAnQGlk JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaWQgRk9SIE9SRElOQUxJVFks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9uYW1lIHRleHQgUEFU SCAnQ09VTlRSWV9OQU1FJyBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09VTlRSWV9JRCcsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVnaW9uX2lkIGludCBQQVRIICdSRUdJT05fSUQnLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgZmxvYXQgUEFUSCAnU0laRScsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQn LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZW1pZXJfbmFtZSB0ZXh0IFBB VEggJ1BSRU1JRVJfTkFNRScgREVGQVVMVCAnbm90IHNwZWNpZmllZCcpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gTmVzdGVkIExvb3AKLSAgIE91dHB1dDogInhtbHRhYmxl Ii5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1sdGFibGUi LmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUsICJ4bWx0 YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUKLSAgIC0+ICBTZXEgU2NhbiBvbiBw dWJsaWMueG1sZGF0YQotICAgICAgICAgT3V0cHV0OiB4bWxkYXRhLmRhdGEKLSAgIC0+ICBUYWJs ZSBGdW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSIKLSAgICAgICAgIE91dHB1dDogInhtbHRhYmxl Ii5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1sdGFibGUi LmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUsICJ4bWx0 YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUKLSAgICAgICAgIFRhYmxlIEZ1bmN0 aW9uIENhbGw6IFhNTFRBQkxFKCgnL1JPV1MvUk9XJzo6dGV4dCkgUEFTU0lORyAoeG1sZGF0YS5k YXRhKSBDT0xVTU5TIGlkIGludGVnZXIgUEFUSCAoJ0BpZCc6OnRleHQpLCBfaWQgRk9SIE9SRElO QUxJVFksIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggKCdDT1VOVFJZX05BTUUnOjp0ZXh0KSBOT1Qg TlVMTCwgY291bnRyeV9pZCB0ZXh0IFBBVEggKCdDT1VOVFJZX0lEJzo6dGV4dCksIHJlZ2lvbl9p ZCBpbnRlZ2VyIFBBVEggKCdSRUdJT05fSUQnOjp0ZXh0KSwgc2l6ZSBkb3VibGUgcHJlY2lzaW9u IFBBVEggKCdTSVpFJzo6dGV4dCksIHVuaXQgdGV4dCBQQVRIICgnU0laRS9AdW5pdCc6OnRleHQp LCBwcmVtaWVyX25hbWUgdGV4dCBERUZBVUxUICgnbm90IHNwZWNpZmllZCc6OnRleHQpIFBBVEgg KCdQUkVNSUVSX05BTUUnOjp0ZXh0KSkKLSg3IHJvd3MpCi0KLS0tIHRlc3QgcXVhbAotU0VMRUNU IHhtbHRhYmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09V TlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEg Q09MVU1OUyAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnQpIFdIRVJFICJDT1VO VFJZX05BTUUiID0gJ0phcGFuJzsKLSBDT1VOVFJZX05BTUUgfCBSRUdJT05fSUQgCi0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQotIEphcGFuICAgICAgICB8ICAgICAgICAgMwotKDEgcm93KQot Ci1FWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCi1TRUxFQ1QgZi4qIEZST00geG1sZGF0YSwg TEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5U UllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVNTlMgIkNPVU5UUllfTkFNRSIgdGV4 dCwgIlJFR0lPTl9JRCIgaW50KSBBUyBmIFdIRVJFICJDT1VOVFJZX05BTUUiID0gJ0phcGFuJzsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSBOZXN0ZWQgTG9vcAotICAgT3V0cHV0OiBmLiJDT1VOVFJZX05B TUUiLCBmLiJSRUdJT05fSUQiCi0gICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnhtbGRhdGEKLSAg ICAgICAgIE91dHB1dDogeG1sZGF0YS5kYXRhCi0gICAtPiAgVGFibGUgRnVuY3Rpb24gU2NhbiBv biAieG1sdGFibGUiIGYKLSAgICAgICAgIE91dHB1dDogZi4iQ09VTlRSWV9OQU1FIiwgZi4iUkVH SU9OX0lEIgotICAgICAgICAgVGFibGUgRnVuY3Rpb24gQ2FsbDogWE1MVEFCTEUoKCcvUk9XUy9S T1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJzo6dGV4dCkg UEFTU0lORyAoeG1sZGF0YS5kYXRhKSBDT0xVTU5TICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJ T05fSUQiIGludGVnZXIpCi0gICAgICAgICBGaWx0ZXI6IChmLiJDT1VOVFJZX05BTUUiID0gJ0ph cGFuJzo6dGV4dCkKLSg4IHJvd3MpCi0KLUVYUExBSU4gKFZFUkJPU0UsIEZPUk1BVCBKU09OLCBD T1NUUyBPRkYpCi1TRUxFQ1QgZi4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JP V1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFT U0lORyBkYXRhIENPTFVNTlMgIkNPVU5UUllfTkFNRSIgdGV4dCwgIlJFR0lPTl9JRCIgaW50KSBB UyBmIFdIRVJFICJDT1VOVFJZX05BTUUiID0gJ0phcGFuJzsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBbICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAiTm9kZSBU eXBlIjogIk5lc3RlZCBMb29wIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAiQXN5bmMgQ2FwYWJsZSI6 IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgICAiSm9pbiBUeXBlIjogIklubmVyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAi T3V0cHV0IjogWyJmLlwiQ09VTlRSWV9OQU1FXCIiLCAiZi5cIlJFR0lPTl9JRFwiIl0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgICAgICAiSW5uZXIgVW5pcXVlIjogZmFsc2UsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAiUGxhbnMiOiBb ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJT ZXEgU2NhbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg ICAgICAgICAgIlBhcmVudCBSZWxhdGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2Us ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAg IkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgICAgICAgICAgIlJlbGF0aW9uIE5hbWUiOiAieG1sZGF0YSIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIlNjaGVtYSI6 ICJwdWJsaWMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgICAgICAgIkFsaWFzIjogInhtbGRhdGEiLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIkRpc2FibGVkIjogZmFsc2Us ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAg ICAgICAgIk91dHB1dCI6IFsieG1sZGF0YS5kYXRhIl0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJUYWJsZSBGdW5jdGlvbiBTY2FuIiwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIlBhcmVudCBSZWxh dGlvbnNoaXAiOiAiSW5uZXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxz ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAg ICAgIlRhYmxlIEZ1bmN0aW9uIE5hbWUiOiAieG1sdGFibGUiLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgICAgICAgICAgIkFsaWFzIjogImYiLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIkRpc2Fi bGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICAgICAgICAgIk91dHB1dCI6IFsiZi5cIkNPVU5UUllfTkFNRVwiIiwgImYuXCJS RUdJT05fSURcIiJdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIlRhYmxlIEZ1bmN0aW9u IENhbGwiOiAiWE1MVEFCTEUoKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPVwiSmFwYW5cIiBvciBD T1VOVFJZX05BTUU9XCJJbmRpYVwiXSc6OnRleHQpIFBBU1NJTkcgKHhtbGRhdGEuZGF0YSkgQ09M VU1OUyBcIkNPVU5UUllfTkFNRVwiIHRleHQsIFwiUkVHSU9OX0lEXCIgaW50ZWdlcikiLCsKLSAg ICAgICAgICAgIkZpbHRlciI6ICIoZi5cIkNPVU5UUllfTkFNRVwiID0gJ0phcGFuJzo6dGV4dCki ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICBdICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSBdCi0oMSByb3cpCi0KLS0tIHNob3VsZCB0byB3b3JrIHdpdGggbW9yZSBkYXRhCi1JTlNF UlQgSU5UTyB4bWxkYXRhIFZBTFVFUygnPFJPV1M+Ci08Uk9XIGlkPSIxMCI+Ci0gIDxDT1VOVFJZ X0lEPkNaPC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkN6ZWNoIFJlcHVibGljPC9DT1VO VFJZX05BTUU+Ci0gIDxSRUdJT05fSUQ+MjwvUkVHSU9OX0lEPjxQUkVNSUVSX05BTUU+TWlsb3Mg WmVtYW48L1BSRU1JRVJfTkFNRT4KLTwvUk9XPgotPFJPVyBpZD0iMTEiPgotICA8Q09VTlRSWV9J RD5ERTwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5HZXJtYW55PC9DT1VOVFJZX05BTUU+ Ci0gIDxSRUdJT05fSUQ+MjwvUkVHSU9OX0lEPgotPC9ST1c+Ci08Uk9XIGlkPSIxMiI+Ci0gIDxD T1VOVFJZX0lEPkZSPC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkZyYW5jZTwvQ09VTlRS WV9OQU1FPgotICA8UkVHSU9OX0lEPjI8L1JFR0lPTl9JRD4KLTwvUk9XPgotPC9ST1dTPicpOwot SU5TRVJUIElOVE8geG1sZGF0YSBWQUxVRVMoJzxST1dTPgotPFJPVyBpZD0iMjAiPgotICA8Q09V TlRSWV9JRD5FRzwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5FZ3lwdDwvQ09VTlRSWV9O QU1FPgotICA8UkVHSU9OX0lEPjE8L1JFR0lPTl9JRD4KLTwvUk9XPgotPFJPVyBpZD0iMjEiPgot ICA8Q09VTlRSWV9JRD5TRDwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5TdWRhbjwvQ09V TlRSWV9OQU1FPgotICA8UkVHSU9OX0lEPjE8L1JFR0lPTl9JRD4KLTwvUk9XPgotPC9ST1dTPicp OwotU0VMRUNUICB4bWx0YWJsZS4qCi0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRhdGEp IHgsCi0gICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAgICAgICAgICAg ICAgICAgICAgICBQQVNTSU5HIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5T IGlkIGludCBQQVRIICdAaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9p ZCBGT1IgT1JESU5BTElUWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vu dHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxMLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEggJ1JF R0lPTl9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBmbG9hdCBQ QVRIICdTSVpFJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRleHQg UEFUSCAnU0laRS9AdW5pdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl bWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVk Jyk7Ci0gaWQgfCBfaWQgfCAgY291bnRyeV9uYW1lICB8IGNvdW50cnlfaWQgfCByZWdpb25faWQg fCBzaXplIHwgdW5pdCB8IHByZW1pZXJfbmFtZSAgCi0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ci0gIDEgfCAgIDEgfCBBdXN0cmFsaWEgICAgICB8IEFVICAgICAgICAgfCAgICAgICAgIDMgfCAg ICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgMiB8ICAgMiB8IENoaW5hICAgICAgICAgIHwg Q04gICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZAotICAz IHwgICAzIHwgSG9uZ0tvbmcgICAgICAgfCBISyAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8 ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDQgfCAgIDQgfCBJbmRpYSAgICAgICAgICB8IElOICAg ICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgNSB8ICAg NSB8IEphcGFuICAgICAgICAgIHwgSlAgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAg IHwgU2luem8gQWJlCi0gIDYgfCAgIDYgfCBTaW5nYXBvcmUgICAgICB8IFNHICAgICAgICAgfCAg ICAgICAgIDMgfCAgNzkxIHwga20gICB8IG5vdCBzcGVjaWZpZWQKLSAxMCB8ICAgMSB8IEN6ZWNo IFJlcHVibGljIHwgQ1ogICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAgICAgIHwgTWlsb3Mg WmVtYW4KLSAxMSB8ICAgMiB8IEdlcm1hbnkgICAgICAgIHwgREUgICAgICAgICB8ICAgICAgICAg MiB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZAotIDEyIHwgICAzIHwgRnJhbmNlICAgICAg ICAgfCBGUiAgICAgICAgIHwgICAgICAgICAyIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVk Ci0gMjAgfCAgIDEgfCBFZ3lwdCAgICAgICAgICB8IEVHICAgICAgICAgfCAgICAgICAgIDEgfCAg ICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAyMSB8ICAgMiB8IFN1ZGFuICAgICAgICAgIHwg U0QgICAgICAgICB8ICAgICAgICAgMSB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZAotKDEx IHJvd3MpCi0KLVNFTEVDVCAgeG1sdGFibGUuKgotICAgRlJPTSAoU0VMRUNUIGRhdGEgRlJPTSB4 bWxkYXRhKSB4LAotICAgICAgICBMQVRFUkFMIFhNTFRBQkxFKCcvUk9XUy9ST1cnCi0gICAgICAg ICAgICAgICAgICAgICAgICAgUEFTU0lORyBkYXRhCi0gICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyBpZCBpbnQgUEFUSCAnQGlkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfaWQgRk9SIE9SRElOQUxJVFksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY291bnRyeV9uYW1lIHRleHQgUEFUSCAnQ09VTlRSWV9OQU1FJyBOT1QgTlVMTCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09VTlRS WV9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uX2lkIGludCBQ QVRIICdSRUdJT05fSUQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUg ZmxvYXQgUEFUSCAnU0laRScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5p dCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHByZW1pZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJfTkFNRScgREVGQVVMVCAnbm90IHNw ZWNpZmllZCcpCi0gIFdIRVJFIHJlZ2lvbl9pZCA9IDI7Ci0gaWQgfCBfaWQgfCAgY291bnRyeV9u YW1lICB8IGNvdW50cnlfaWQgfCByZWdpb25faWQgfCBzaXplIHwgdW5pdCB8IHByZW1pZXJfbmFt ZSAgCi0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gMTAgfCAgIDEgfCBDemVjaCBSZXB1Ymxp YyB8IENaICAgICAgICAgfCAgICAgICAgIDIgfCAgICAgIHwgICAgICB8IE1pbG9zIFplbWFuCi0g MTEgfCAgIDIgfCBHZXJtYW55ICAgICAgICB8IERFICAgICAgICAgfCAgICAgICAgIDIgfCAgICAg IHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAxMiB8ICAgMyB8IEZyYW5jZSAgICAgICAgIHwgRlIg ICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZAotKDMgcm93 cykKLQotRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQotU0VMRUNUICB4bWx0YWJsZS4qCi0g ICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRhdGEpIHgsCi0gICAgICAgIExBVEVSQUwgWE1M VEFCTEUoJy9ST1dTL1JPVycKLSAgICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGEK LSAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VO VFJZX05BTUUnIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv dW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZSBmbG9hdCBQQVRIICdTSVpFJywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJF TUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJykKLSAgV0hFUkUgcmVnaW9uX2lkID0g MjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIE5lc3RlZCBMb29wCi0gICBP dXRwdXQ6ICJ4bWx0YWJsZSIuaWQsICJ4bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlf bmFtZSwgInhtbHRhYmxlIi5jb3VudHJ5X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRh YmxlIi5zaXplLCAieG1sdGFibGUiLnVuaXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lCi0gICAt PiAgU2VxIFNjYW4gb24gcHVibGljLnhtbGRhdGEKLSAgICAgICAgIE91dHB1dDogeG1sZGF0YS5k YXRhCi0gICAtPiAgVGFibGUgRnVuY3Rpb24gU2NhbiBvbiAieG1sdGFibGUiCi0gICAgICAgICBP dXRwdXQ6ICJ4bWx0YWJsZSIuaWQsICJ4bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlf bmFtZSwgInhtbHRhYmxlIi5jb3VudHJ5X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRh YmxlIi5zaXplLCAieG1sdGFibGUiLnVuaXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lCi0gICAg ICAgICBUYWJsZSBGdW5jdGlvbiBDYWxsOiBYTUxUQUJMRSgoJy9ST1dTL1JPVyc6OnRleHQpIFBB U1NJTkcgKHhtbGRhdGEuZGF0YSkgQ09MVU1OUyBpZCBpbnRlZ2VyIFBBVEggKCdAaWQnOjp0ZXh0 KSwgX2lkIEZPUiBPUkRJTkFMSVRZLCBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICgnQ09VTlRSWV9O QU1FJzo6dGV4dCkgTk9UIE5VTEwsIGNvdW50cnlfaWQgdGV4dCBQQVRIICgnQ09VTlRSWV9JRCc6 OnRleHQpLCByZWdpb25faWQgaW50ZWdlciBQQVRIICgnUkVHSU9OX0lEJzo6dGV4dCksIHNpemUg ZG91YmxlIHByZWNpc2lvbiBQQVRIICgnU0laRSc6OnRleHQpLCB1bml0IHRleHQgUEFUSCAoJ1NJ WkUvQHVuaXQnOjp0ZXh0KSwgcHJlbWllcl9uYW1lIHRleHQgREVGQVVMVCAoJ25vdCBzcGVjaWZp ZWQnOjp0ZXh0KSBQQVRIICgnUFJFTUlFUl9OQU1FJzo6dGV4dCkpCi0gICAgICAgICBGaWx0ZXI6 ICgieG1sdGFibGUiLnJlZ2lvbl9pZCA9IDIpCi0oOCByb3dzKQotCi0tLSBzaG91bGQgZmFpbCwg TlVMTCB2YWx1ZQotU0VMRUNUICB4bWx0YWJsZS4qCi0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9N IHhtbGRhdGEpIHgsCi0gICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAg ICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxMLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VO VFJZX0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50 IFBBVEggJ1JFR0lPTl9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZSBmbG9hdCBQQVRIICdTSVpFJyBOT1QgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZB VUxUICdub3Qgc3BlY2lmaWVkJyk7Ci1FUlJPUjogIG51bGwgaXMgbm90IGFsbG93ZWQgaW4gY29s dW1uICJzaXplIgotLS0gaWYgYWxsIGlzIG9rLCB0aGVuIHJlc3VsdCBpcyBlbXB0eQotLS0gb25l IGxpbmUgeG1sIHRlc3QKLVdJVEgKLSAgIHggQVMgKFNFTEVDVCBwcm9uYW1lLCBwcm9vd25lciwg cHJvY29zdDo6bnVtZXJpYywgcHJvbmFyZ3MsCi0gICAgICAgICAgICAgICAgYXJyYXlfdG9fc3Ry aW5nKHByb2FyZ25hbWVzLCcsJykgYXMgcHJvYXJnbmFtZXMsCi0gICAgICAgICAgICAgICAgY2Fz ZSB3aGVuIHByb2FyZ3R5cGVzIDw+ICcnIHRoZW4gYXJyYXlfdG9fc3RyaW5nKHByb2FyZ3R5cGVz OjpvaWRbXSwnLCcpIGVuZCBhcyBwcm9hcmd0eXBlcwotICAgICAgICAgICBGUk9NIHBnX3Byb2Mg V0hFUkUgcHJvbmFtZSA9ICdmX2xlYWsnKSwKLSAgIHkgQVMgKFNFTEVDVCB4bWxlbGVtZW50KG5h bWUgcHJvYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbGZvcmVzdChwcm9uYW1lLCBw cm9vd25lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jb3N0LCBw cm9uYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9hcmduYW1l cywgcHJvYXJndHlwZXMpKSBhcyBwcm9jCi0gICAgICAgICAgIEZST00geCksCi0gICB6IEFTIChT RUxFQ1QgeG1sdGFibGUuKgotICAgICAgICAgICBGUk9NIHksCi0gICAgICAgICAgICAgICAgTEFU RVJBTCB4bWx0YWJsZSgnL3Byb2MnIFBBU1NJTkcgcHJvYwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ09MVU1OUyBwcm9uYW1lIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByb293bmVyIG9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHJvY29zdCBmbG9hdCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHJvbmFyZ3MgaW50LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcm9hcmduYW1lcyB0ZXh0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcm9hcmd0eXBlcyB0ZXh0KSkKLSAgIFNFTEVDVCAqIEZST00g egotICAgRVhDRVBUIFNFTEVDVCAqIEZST00geDsKLSBwcm9uYW1lIHwgcHJvb3duZXIgfCBwcm9j b3N0IHwgcHJvbmFyZ3MgfCBwcm9hcmduYW1lcyB8IHByb2FyZ3R5cGVzIAotLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ci0oMCByb3dzKQotCi0tLSBtdWx0aSBsaW5lIHhtbCB0ZXN0LCByZXN1bHQgc2hvdWxkIGJlIGVt cHR5IHRvbwotV0lUSAotICAgeCBBUyAoU0VMRUNUIHByb25hbWUsIHByb293bmVyLCBwcm9jb3N0 OjpudW1lcmljLCBwcm9uYXJncywKLSAgICAgICAgICAgICAgICBhcnJheV90b19zdHJpbmcocHJv YXJnbmFtZXMsJywnKSBhcyBwcm9hcmduYW1lcywKLSAgICAgICAgICAgICAgICBjYXNlIHdoZW4g cHJvYXJndHlwZXMgPD4gJycgdGhlbiBhcnJheV90b19zdHJpbmcocHJvYXJndHlwZXM6Om9pZFtd LCcsJykgZW5kIGFzIHByb2FyZ3R5cGVzCi0gICAgICAgICAgIEZST00gcGdfcHJvYyksCi0gICB5 IEFTIChTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICB4bWxhZ2coeG1sZWxlbWVudChuYW1lIHByb2MsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4bWxmb3Jlc3QocHJvbmFtZSwgcHJvb3duZXIsIHByb2Nv c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHJvbmFyZ3MsIHByb2FyZ25hbWVzLCBwcm9hcmd0eXBlcykpKSkgYXMgZG9jCi0gICAgICAg ICAgIEZST00geCksCi0gICB6IEFTIChTRUxFQ1QgeG1sdGFibGUuKgotICAgICAgICAgICBGUk9N IHksCi0gICAgICAgICAgICAgICAgTEFURVJBTCB4bWx0YWJsZSgnL2RhdGEvcHJvYycgUEFTU0lO RyBkb2MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgcHJvbmFtZSBu YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vd25lciBv aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nvc3QgZmxv YXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb25hcmdzIGlu dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXMg dGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYXJndHlw ZXMgdGV4dCkpCi0gICBTRUxFQ1QgKiBGUk9NIHoKLSAgIEVYQ0VQVCBTRUxFQ1QgKiBGUk9NIHg7 Ci0gcHJvbmFtZSB8IHByb293bmVyIHwgcHJvY29zdCB8IHByb25hcmdzIHwgcHJvYXJnbmFtZXMg fCBwcm9hcmd0eXBlcyAKLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotKDAgcm93cykKLQotQ1JFQVRFIFRBQkxFIHht bHRlc3QyKHggeG1sLCBfcGF0aCB0ZXh0KTsKLUlOU0VSVCBJTlRPIHhtbHRlc3QyIFZBTFVFUygn PGQ+PHI+PGFjPjE8L2FjPjwvcj48L2Q+JywgJ0EnKTsKLUlOU0VSVCBJTlRPIHhtbHRlc3QyIFZB TFVFUygnPGQ+PHI+PGJjPjI8L2JjPjwvcj48L2Q+JywgJ0InKTsKLUlOU0VSVCBJTlRPIHhtbHRl c3QyIFZBTFVFUygnPGQ+PHI+PGNjPjM8L2NjPjwvcj48L2Q+JywgJ0MnKTsKLUlOU0VSVCBJTlRP IHhtbHRlc3QyIFZBTFVFUygnPGQ+PHI+PGRjPjI8L2RjPjwvcj48L2Q+JywgJ0QnKTsKLVNFTEVD VCB4bWx0YWJsZS4qIEZST00geG1sdGVzdDIsIExBVEVSQUwgeG1sdGFibGUoJy9kL3InIFBBU1NJ TkcgeCBDT0xVTU5TIGEgaW50IFBBVEggJycgfHwgbG93ZXIoX3BhdGgpIHx8ICdjJyk7Ci0gYSAK LS0tLQotIDEKLSAyCi0gMwotIDIKLSg0IHJvd3MpCi0KLVNFTEVDVCB4bWx0YWJsZS4qIEZST00g eG1sdGVzdDIsIExBVEVSQUwgeG1sdGFibGUoKCcvZC9yLycgfHwgbG93ZXIoX3BhdGgpIHx8ICdj JykgUEFTU0lORyB4IENPTFVNTlMgYSBpbnQgUEFUSCAnLicpOwotIGEgCi0tLS0KLSAxCi0gMgot IDMKLSAyCi0oNCByb3dzKQotCi1TRUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbHRlc3QyLCBMQVRF UkFMIHhtbHRhYmxlKCgnL2Qvci8nIHx8IGxvd2VyKF9wYXRoKSB8fCAnYycpIFBBU1NJTkcgeCBD T0xVTU5TIGEgaW50IFBBVEggJ3gnIERFRkFVTFQgYXNjaWkoX3BhdGgpIC0gNTQpOwotIGEgIAot LS0tLQotIDExCi0gMTIKLSAxMwotIDE0Ci0oNCByb3dzKQotCi0tLSBYUGF0aCByZXN1bHQgY2Fu IGJlIGJvb2xlYW4gb3IgbnVtYmVyIHRvbwotU0VMRUNUICogRlJPTSBYTUxUQUJMRSgnKicgUEFT U0lORyAnPGE+YTwvYT4nIENPTFVNTlMgYSB4bWwgUEFUSCAnLicsIGIgdGV4dCBQQVRIICcuJywg YyB0ZXh0IFBBVEggJyJoaSInLCBkIGJvb2xlYW4gUEFUSCAnLiA9ICJhIicsIGUgaW50ZWdlciBQ QVRIICdzdHJpbmctbGVuZ3RoKC4pJyk7Ci0gICAgYSAgICAgfCBiIHwgYyAgfCBkIHwgZSAKLS0t LS0tLS0tLS0rLS0tKy0tLS0rLS0tKy0tLQotIDxhPmE8L2E+IHwgYSB8IGhpIHwgdCB8IDEKLSgx IHJvdykKLQotXHgKLVNFTEVDVCAqIEZST00gWE1MVEFCTEUoJyonIFBBU1NJTkcgJzxlPnByZTwh LS1jMS0tPjw/cGkgYXJnPz48IVtDREFUQVsmZW50MV1dPjxuMj4mYW1wO2RlZXA8L24yPnBvc3Q8 L2U+JyBDT0xVTU5TIHggeG1sIFBBVEggJy9lL24yJywgeSB4bWwgUEFUSCAnLycpOwotLVsgUkVD T1JEIDEgXS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi14IHwgPG4yPiZhbXA7ZGVlcDwvbjI+Ci15IHwgPGU+cHJlPCEtLWMxLS0+PD9w aSBhcmc/PjwhW0NEQVRBWyZlbnQxXV0+PG4yPiZhbXA7ZGVlcDwvbjI+cG9zdDwvZT4rCi0gIHwg Ci0KLVx4Ci1TRUxFQ1QgKiBGUk9NIFhNTFRBQkxFKCcuJyBQQVNTSU5HIFhNTEVMRU1FTlQoTkFN RSBhKSBjb2x1bW5zIGEgdmFyY2hhcigyMCkgUEFUSCAnIjxmb28vPiInLCBiIHhtbCBQQVRIICci PGZvby8+IicpOwotICAgYSAgICB8ICAgICAgYiAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tCi0gPGZvby8+IHwgJmx0O2Zvby8mZ3Q7Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWx0ZXh0KE5V TEwpOwotIHhtbHRleHQgCi0tLS0tLS0tLS0KLSAKLSgxIHJvdykKLQotU0VMRUNUIHhtbHRleHQo JycpOwotIHhtbHRleHQgCi0tLS0tLS0tLS0KLSAKLSgxIHJvdykKLQotU0VMRUNUIHhtbHRleHQo JyAgJyk7Ci0geG1sdGV4dCAKLS0tLS0tLS0tLQotICAgCi0oMSByb3cpCi0KLVNFTEVDVCB4bWx0 ZXh0KCdmb28gYCRfLSs/PSpeJSF8L1woKVtde30nKTsKLSAgICAgICAgIHhtbHRleHQgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGZvbyBgJF8tKz89Kl4lIXwvXCgpW117 fQotKDEgcm93KQotCi1TRUxFQ1QgeG1sdGV4dCgnZm9vICYgPCJiYXIiPicpOwotICAgICAgICAg ICAgICB4bWx0ZXh0ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gZm9vICZhbXA7ICZsdDsmcXVvdDtiYXImcXVvdDsmZ3Q7Ci0oMSByb3cpCi0KLVNF TEVDVCB4bWx0ZXh0KCd4J3x8ICc8UD43MzwvUD4nOjp4bWwgfHwgLjQyIHx8IHRydWUgfHwgJ2on OjpjaGFyKTsKLSAgICAgICAgICAgICB4bWx0ZXh0ICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0geCZsdDtQJmd0OzczJmx0Oy9QJmd0OzAuNDJ0cnVlagot KDEgcm93KQotCitDUkVBVEUgVEFCTEUgeG1sdGVzdCAoDQorICAgIGlkIGludCwNCisgICAgZGF0 YSB4bWwNCispOw0KK0lOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVTICgxLCAnPHZhbHVlPm9uZTwv dmFsdWU+Jyk7DQorSU5TRVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDIsICc8dmFsdWU+dHdvPC92 YWx1ZT4nKTsNCitJTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoMywgJzx3cm9uZycpOw0KK0VS Uk9SOiAgaW52YWxpZCBYTUwgY29udGVudA0KK0xJTkUgMTogSU5TRVJUIElOVE8geG1sdGVzdCBW QUxVRVMgKDMsICc8d3JvbmcnKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeDQorREVUQUlMOiAgbGluZSAxOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcg d3JvbmcgbGluZSAxDQorPHdyb25nDQorICAgICAgXg0KK1NFTEVDVCAqIEZST00geG1sdGVzdDsN CisgaWQgfCAgICAgICAgZGF0YSAgICAgICAgDQorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyAgMSB8IDx2YWx1ZT5vbmU8L3ZhbHVlPg0KKyAgMiB8IDx2YWx1ZT50d288L3ZhbHVlPg0KKygy IHJvd3MpDQorDQorLS0gdGVzdCBub24tdGhyb3dpbmcgQVBJLCB0b28NCitTRUxFQ1QgcGdfaW5w dXRfaXNfdmFsaWQoJzx2YWx1ZT5vbmU8L3ZhbHVlPicsICd4bWwnKTsNCisgcGdfaW5wdXRfaXNf dmFsaWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCBw Z19pbnB1dF9pc192YWxpZCgnPHZhbHVlPm9uZTwvJywgJ3htbCcpOw0KKyBwZ19pbnB1dF9pc192 YWxpZCANCistLS0tLS0tLS0tLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQorDQorU0VMRUNUIG1l c3NhZ2UgRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCc8dmFsdWU+b25lPC8nLCAneG1sJyk7DQor ICAgICAgIG1lc3NhZ2UgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIGludmFsaWQg WE1MIGNvbnRlbnQNCisoMSByb3cpDQorDQorU0VMRUNUIHBnX2lucHV0X2lzX3ZhbGlkKCc8P3ht bCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InkiPz48Zm9vLz4nLCAneG1sJyk7DQorIHBnX2lu cHV0X2lzX3ZhbGlkIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitT RUxFQ1QgbWVzc2FnZSBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJzw/eG1sIHZlcnNpb249IjEu MCIgc3RhbmRhbG9uZT0ieSI/Pjxmb28vPicsICd4bWwnKTsNCisgICAgICAgICAgICAgICAgICAg bWVzc2FnZSAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBpbnZhbGlkIFhNTCBjb250ZW50OiBpbnZhbGlkIFhNTCBk ZWNsYXJhdGlvbg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sY29tbWVudCgndGVzdCcpOw0KKyB4 bWxjb21tZW50ICANCistLS0tLS0tLS0tLS0tDQorIDwhLS10ZXN0LS0+DQorKDEgcm93KQ0KKw0K K1NFTEVDVCB4bWxjb21tZW50KCctdGVzdCcpOw0KKyAgeG1sY29tbWVudCAgDQorLS0tLS0tLS0t LS0tLS0NCisgPCEtLS10ZXN0LS0+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxjb21tZW50KCd0 ZXN0LScpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgY29tbWVudA0KK1NFTEVDVCB4bWxjb21tZW50 KCctLXRlc3QnKTsNCitFUlJPUjogIGludmFsaWQgWE1MIGNvbW1lbnQNCitTRUxFQ1QgeG1sY29t bWVudCgndGUgc3QnKTsNCisgIHhtbGNvbW1lbnQgIA0KKy0tLS0tLS0tLS0tLS0tDQorIDwhLS10 ZSBzdC0tPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sY29uY2F0KHhtbGNvbW1lbnQoJ2hlbGxv JyksDQorICAgICAgICAgICAgICAgICB4bWxlbGVtZW50KE5BTUUgcXV4LCAnZm9vJyksDQorICAg ICAgICAgICAgICAgICB4bWxjb21tZW50KCd3b3JsZCcpKTsNCisgICAgICAgICAgICAgICB4bWxj b25jYXQgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KKyA8IS0taGVsbG8tLT48cXV4PmZvbzwvcXV4PjwhLS13b3JsZC0tPg0KKygxIHJv dykNCisNCitTRUxFQ1QgeG1sY29uY2F0KCdoZWxsbycsICd5b3UnKTsNCisgeG1sY29uY2F0IA0K Ky0tLS0tLS0tLS0tDQorIGhlbGxveW91DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxjb25jYXQo MSwgMik7DQorRVJST1I6ICBhcmd1bWVudCBvZiBYTUxDT05DQVQgbXVzdCBiZSB0eXBlIHhtbCwg bm90IHR5cGUgaW50ZWdlcg0KK0xJTkUgMTogU0VMRUNUIHhtbGNvbmNhdCgxLCAyKTsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgXg0KK1NFTEVDVCB4bWxjb25jYXQoJ2JhZCcsICc8c3ludGF4 Jyk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50DQorTElORSAxOiBTRUxFQ1QgeG1sY29u Y2F0KCdiYWQnLCAnPHN5bnRheCcpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xg0KK0RFVEFJTDogIGxpbmUgMTogQ291bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQgVGFnIHN5bnRh eCBsaW5lIDENCis8c3ludGF4DQorICAgICAgIF4NCitTRUxFQ1QgeG1sY29uY2F0KCc8Zm9vLz4n LCBOVUxMLCAnPD94bWwgdmVyc2lvbj0iMS4xIiBzdGFuZGFsb25lPSJubyI/PjxiYXIvPicpOw0K KyAgeG1sY29uY2F0ICAgDQorLS0tLS0tLS0tLS0tLS0NCisgPGZvby8+PGJhci8+DQorKDEgcm93 KQ0KKw0KK1NFTEVDVCB4bWxjb25jYXQoJzw/eG1sIHZlcnNpb249IjEuMSI/Pjxmb28vPicsIE5V TEwsICc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9Im5vIj8+PGJhci8+Jyk7DQorICAg ICAgICAgICAgIHhtbGNvbmNhdCAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJzaW9uPSIxLjEiPz48Zm9vLz48YmFyLz4NCisoMSBy b3cpDQorDQorU0VMRUNUIHhtbGNvbmNhdChOVUxMKTsNCisgeG1sY29uY2F0IA0KKy0tLS0tLS0t LS0tDQorIA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sY29uY2F0KE5VTEwsIE5VTEwpOw0KKyB4 bWxjb25jYXQgDQorLS0tLS0tLS0tLS0NCisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxlbGVt ZW50KG5hbWUgZWxlbWVudCwNCisgICAgICAgICAgICAgICAgICB4bWxhdHRyaWJ1dGVzICgxIGFz IG9uZSwgJ2RldWNlJyBhcyB0d28pLA0KKyAgICAgICAgICAgICAgICAgICdjb250ZW50Jyk7DQor ICAgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAgDQorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxlbGVtZW50IG9u ZT0iMSIgdHdvPSJkZXVjZSI+Y29udGVudDwvZWxlbWVudD4NCisoMSByb3cpDQorDQorU0VMRUNU IHhtbGVsZW1lbnQobmFtZSBlbGVtZW50LA0KKyAgICAgICAgICAgICAgICAgIHhtbGF0dHJpYnV0 ZXMgKCd1bm5hbWVkIGFuZCB3cm9uZycpKTsNCitFUlJPUjogIHVubmFtZWQgWE1MIGF0dHJpYnV0 ZSB2YWx1ZSBtdXN0IGJlIGEgY29sdW1uIHJlZmVyZW5jZQ0KK0xJTkUgMjogICAgICAgICAgICAg ICAgICAgeG1sYXR0cmlidXRlcyAoJ3VubmFtZWQgYW5kIHdyb25nJykpOw0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KK1NFTEVDVCB4bWxlbGVtZW50KG5hbWUg ZWxlbWVudCwgeG1sZWxlbWVudChuYW1lIG5lc3RlZCwgJ3N0dWZmJykpOw0KKyAgICAgICAgICAg ICAgICB4bWxlbGVtZW50ICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxlbGVtZW50PjxuZXN0ZWQ+c3R1ZmY8L25lc3RlZD48 L2VsZW1lbnQ+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxlbGVtZW50KG5hbWUgZW1wbG95ZWUs IHhtbGZvcmVzdChuYW1lLCBhZ2UsIHNhbGFyeSBhcyBwYXkpKSBGUk9NIGVtcDsNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4bWxlbGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8ZW1wbG95ZWU+PG5hbWU+c2hhcm9uPC9uYW1lPjxh Z2U+MjU8L2FnZT48cGF5PjEwMDA8L3BheT48L2VtcGxveWVlPg0KKyA8ZW1wbG95ZWU+PG5hbWU+ c2FtPC9uYW1lPjxhZ2U+MzA8L2FnZT48cGF5PjIwMDA8L3BheT48L2VtcGxveWVlPg0KKyA8ZW1w bG95ZWU+PG5hbWU+YmlsbDwvbmFtZT48YWdlPjIwPC9hZ2U+PHBheT4xMDAwPC9wYXk+PC9lbXBs b3llZT4NCisgPGVtcGxveWVlPjxuYW1lPmplZmY8L25hbWU+PGFnZT4yMzwvYWdlPjxwYXk+NjAw PC9wYXk+PC9lbXBsb3llZT4NCisgPGVtcGxveWVlPjxuYW1lPmNpbTwvbmFtZT48YWdlPjMwPC9h Z2U+PHBheT40MDA8L3BheT48L2VtcGxveWVlPg0KKyA8ZW1wbG95ZWU+PG5hbWU+bGluZGE8L25h bWU+PGFnZT4xOTwvYWdlPjxwYXk+MTAwPC9wYXk+PC9lbXBsb3llZT4NCisoNiByb3dzKQ0KKw0K K1NFTEVDVCB4bWxlbGVtZW50KG5hbWUgZHVwbGljYXRlLCB4bWxhdHRyaWJ1dGVzKDEgYXMgYSwg MiBhcyBiLCAzIGFzIGEpKTsNCitFUlJPUjogIFhNTCBhdHRyaWJ1dGUgbmFtZSAiYSIgYXBwZWFy cyBtb3JlIHRoYW4gb25jZQ0KK0xJTkUgMTogLi4ubWVudChuYW1lIGR1cGxpY2F0ZSwgeG1sYXR0 cmlidXRlcygxIGFzIGEsIDIgYXMgYiwgMyBhcyBhKSk7DQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbGVs ZW1lbnQobmFtZSBudW0sIDM3KTsNCisgIHhtbGVsZW1lbnQgICANCistLS0tLS0tLS0tLS0tLS0N CisgPG51bT4zNzwvbnVtPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZv bywgdGV4dCAnYmFyJyk7DQorICAgeG1sZWxlbWVudCAgIA0KKy0tLS0tLS0tLS0tLS0tLS0NCisg PGZvbz5iYXI8L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28s IHhtbCAnYmFyJyk7DQorICAgeG1sZWxlbWVudCAgIA0KKy0tLS0tLS0tLS0tLS0tLS0NCisgPGZv bz5iYXI8L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIHRl eHQgJ2I8YS8+cicpOw0KKyAgICAgICB4bWxlbGVtZW50ICAgICAgICANCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorIDxmb28+YiZsdDthLyZndDtyPC9mb28+DQorKDEgcm93KQ0KKw0KK1NF TEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCB4bWwgJ2I8YS8+cicpOw0KKyAgICB4bWxlbGVtZW50 ICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxmb28+YjxhLz5yPC9mb28+DQorKDEgcm93 KQ0KKw0KK1NFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCBhcnJheVsxLCAyLCAzXSk7DQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz48ZWxlbWVudD4xPC9lbGVt ZW50PjxlbGVtZW50PjI8L2VsZW1lbnQ+PGVsZW1lbnQ+MzwvZWxlbWVudD48L2Zvbz4NCisoMSBy b3cpDQorDQorU0VUIHhtbGJpbmFyeSBUTyBiYXNlNjQ7DQorU0VMRUNUIHhtbGVsZW1lbnQobmFt ZSBmb28sIGJ5dGVhICdiYXInKTsNCisgICB4bWxlbGVtZW50ICAgIA0KKy0tLS0tLS0tLS0tLS0t LS0tDQorIDxmb28+WW1GeTwvZm9vPg0KKygxIHJvdykNCisNCitTRVQgeG1sYmluYXJ5IFRPIGhl eDsNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZvbywgYnl0ZWEgJ2JhcicpOw0KKyAgICB4bWxl bGVtZW50ICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxmb28+NjI2MTcyPC9mb28+DQor KDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCB4bWxhdHRyaWJ1dGVzKHRy dWUgYXMgYmFyKSk7DQorICAgIHhtbGVsZW1lbnQgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0N CisgPGZvbyBiYXI9InRydWUiLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFt ZSBmb28sIHhtbGF0dHJpYnV0ZXMoJzIwMDktMDQtMDkgMDA6MjQ6MzcnOjp0aW1lc3RhbXAgYXMg YmFyKSk7DQorICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbyBiYXI9IjIwMDktMDQtMDlUMDA6MjQ6Mzci Lz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbGF0dHJpYnV0 ZXMoJ2luZmluaXR5Jzo6dGltZXN0YW1wIGFzIGJhcikpOw0KK0VSUk9SOiAgdGltZXN0YW1wIG91 dCBvZiByYW5nZQ0KK0RFVEFJTDogIFhNTCBkb2VzIG5vdCBzdXBwb3J0IGluZmluaXRlIHRpbWVz dGFtcCB2YWx1ZXMuDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbGF0dHJpYnV0ZXMo Jzw+JiInJycgYXMgZnVubnksIHhtbCAnYjxhLz5yJyBhcyBmdW5uaWVyKSk7DQorICAgICAgICAg ICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQorIDxmb28gZnVubnk9IiZsdDsmZ3Q7JmFtcDsmcXVvdDsnIiBmdW5uaWVyPSJiJmx0O2EvJmd0 O3IiLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJycpOw0KKyB4bWxw YXJzZSANCistLS0tLS0tLS0tDQorIA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGFyc2UoY29u dGVudCAnICAnKTsNCisgeG1scGFyc2UgDQorLS0tLS0tLS0tLQ0KKyAgIA0KKygxIHJvdykNCisN CitTRUxFQ1QgeG1scGFyc2UoY29udGVudCAnYWJjJyk7DQorIHhtbHBhcnNlIA0KKy0tLS0tLS0t LS0NCisgYWJjDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8YWJjPng8 L2FiYz4nKTsNCisgICB4bWxwYXJzZSAgIA0KKy0tLS0tLS0tLS0tLS0tDQorIDxhYmM+eDwvYWJj Pg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPGludmFsaWRlbnRpdHk+ JjwvaW52YWxpZGVudGl0eT4nKTsNCitFUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQNCitERVRB SUw6ICBsaW5lIDE6IHhtbFBhcnNlRW50aXR5UmVmOiBubyBuYW1lDQorPGludmFsaWRlbnRpdHk+ JjwvaW52YWxpZGVudGl0eT4NCisgICAgICAgICAgICAgICAgXg0KK1NFTEVDVCB4bWxwYXJzZShj b250ZW50ICc8dW5kZWZpbmVkZW50aXR5PiZpZG9udGV4aXN0OzwvdW5kZWZpbmVkZW50aXR5Picp Ow0KK0VSUk9SOiAgaW52YWxpZCBYTUwgY29udGVudA0KK0RFVEFJTDogIGxpbmUgMTogRW50aXR5 ICdpZG9udGV4aXN0JyBub3QgZGVmaW5lZA0KKzx1bmRlZmluZWRlbnRpdHk+Jmlkb250ZXhpc3Q7 PC91bmRlZmluZWRlbnRpdHk+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQorU0VM RUNUIHhtbHBhcnNlKGNvbnRlbnQgJzxpbnZhbGlkbnMgeG1sbnM9JycmbHQ7JycvPicpOw0KKyAg ICAgICAgIHhtbHBhcnNlICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyA8aW52YWxpZG5zIHhtbG5zPScmbHQ7Jy8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJz ZShjb250ZW50ICc8cmVsYXRpdmVucyB4bWxucz0nJ3JlbGF0aXZlJycvPicpOw0KKyAgICAgICAg ICAgIHhtbHBhcnNlICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCisgPHJlbGF0aXZlbnMgeG1sbnM9J3JlbGF0aXZlJy8+DQorKDEgcm93KQ0KKw0KK1NFTEVD VCB4bWxwYXJzZShjb250ZW50ICc8dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4n KTsNCitFUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQNCitERVRBSUw6ICBsaW5lIDE6IEVudGl0 eSAnaWRvbnRleGlzdCcgbm90IGRlZmluZWQNCis8dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5i YWxhbmNlZD4NCisgICAgICAgICAgICAgICAgICAgICAgIF4NCitsaW5lIDE6IE9wZW5pbmcgYW5k IGVuZGluZyB0YWcgbWlzbWF0Y2g6IHR3b2Vycm9ycyBsaW5lIDEgYW5kIHVuYmFsYW5jZWQNCis8 dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4NCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJzxub3N1Y2hwcmVm aXg6dGFnLz4nKTsNCisgICAgICB4bWxwYXJzZSAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0t LS0NCisgPG5vc3VjaHByZWZpeDp0YWcvPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGFyc2Uo ZG9jdW1lbnQgJyAgICcpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1lbnQNCitERVRBSUw6 ICBsaW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZA0KKyAgIA0KKyAgIF4N CitTRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJ2FiYycpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwg ZG9jdW1lbnQNCitERVRBSUw6ICBsaW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBm b3VuZA0KK2FiYw0KK14NCitTRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJzxhYmM+eDwvYWJjPicp Ow0KKyAgIHhtbHBhcnNlICAgDQorLS0tLS0tLS0tLS0tLS0NCisgPGFiYz54PC9hYmM+DQorKDEg cm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPGludmFsaWRlbnRpdHk+JjwvYWJj PicpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1lbnQNCitERVRBSUw6ICBsaW5lIDE6IHht bFBhcnNlRW50aXR5UmVmOiBubyBuYW1lDQorPGludmFsaWRlbnRpdHk+JjwvYWJjPg0KKyAgICAg ICAgICAgICAgICBeDQorbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBp bnZhbGlkZW50aXR5IGxpbmUgMSBhbmQgYWJjDQorPGludmFsaWRlbnRpdHk+JjwvYWJjPg0KKyAg ICAgICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8dW5kZWZp bmVkZW50aXR5PiZpZG9udGV4aXN0OzwvYWJjPicpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgZG9j dW1lbnQNCitERVRBSUw6ICBsaW5lIDE6IEVudGl0eSAnaWRvbnRleGlzdCcgbm90IGRlZmluZWQN Cis8dW5kZWZpbmVkZW50aXR5PiZpZG9udGV4aXN0OzwvYWJjPg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXg0KK2xpbmUgMTogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDog dW5kZWZpbmVkZW50aXR5IGxpbmUgMSBhbmQgYWJjDQorPHVuZGVmaW5lZGVudGl0eT4maWRvbnRl eGlzdDs8L2FiYz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCitTRUxF Q1QgeG1scGFyc2UoZG9jdW1lbnQgJzxpbnZhbGlkbnMgeG1sbnM9JycmbHQ7JycvPicpOw0KKyAg ICAgICAgIHhtbHBhcnNlICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyA8aW52YWxpZG5zIHhtbG5zPScmbHQ7Jy8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJz ZShkb2N1bWVudCAnPHJlbGF0aXZlbnMgeG1sbnM9JydyZWxhdGl2ZScnLz4nKTsNCisgICAgICAg ICAgICB4bWxwYXJzZSAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQorIDxyZWxhdGl2ZW5zIHhtbG5zPSdyZWxhdGl2ZScvPg0KKygxIHJvdykNCisNCitTRUxF Q1QgeG1scGFyc2UoZG9jdW1lbnQgJzx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2Vk PicpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1lbnQNCitERVRBSUw6ICBsaW5lIDE6IEVu dGl0eSAnaWRvbnRleGlzdCcgbm90IGRlZmluZWQNCis8dHdvZXJyb3JzPiZpZG9udGV4aXN0Ozwv dW5iYWxhbmNlZD4NCisgICAgICAgICAgICAgICAgICAgICAgIF4NCitsaW5lIDE6IE9wZW5pbmcg YW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHR3b2Vycm9ycyBsaW5lIDEgYW5kIHVuYmFsYW5jZWQN Cis8dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4NCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8bm9zdWNo cHJlZml4OnRhZy8+Jyk7DQorICAgICAgeG1scGFyc2UgICAgICAgDQorLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorIDxub3N1Y2hwcmVmaXg6dGFnLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBp KG5hbWUgZm9vKTsNCisgIHhtbHBpICANCistLS0tLS0tLS0NCisgPD9mb28/Pg0KKygxIHJvdykN CisNCitTRUxFQ1QgeG1scGkobmFtZSB4bWwpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgcHJvY2Vz c2luZyBpbnN0cnVjdGlvbg0KK0RFVEFJTDogIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uIHRh cmdldCBuYW1lIGNhbm5vdCBiZSAieG1sIi4NCitTRUxFQ1QgeG1scGkobmFtZSB4bWxzdHVmZik7 DQorICAgIHhtbHBpICAgICANCistLS0tLS0tLS0tLS0tLQ0KKyA8P3htbHN0dWZmPz4NCisoMSBy b3cpDQorDQorU0VMRUNUIHhtbHBpKG5hbWUgZm9vLCAnYmFyJyk7DQorICAgIHhtbHBpICAgIA0K Ky0tLS0tLS0tLS0tLS0NCisgPD9mb28gYmFyPz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBp KG5hbWUgZm9vLCAnaW4/PnZhbGlkJyk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBwcm9jZXNzaW5n IGluc3RydWN0aW9uDQorREVUQUlMOiAgWE1MIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gY2Fubm90 IGNvbnRhaW4gIj8+Ii4NCitTRUxFQ1QgeG1scGkobmFtZSBmb28sIG51bGwpOw0KKyB4bWxwaSAN CistLS0tLS0tDQorIA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGkobmFtZSB4bWwsIG51bGwp Ow0KK0VSUk9SOiAgaW52YWxpZCBYTUwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbg0KK0RFVEFJTDog IFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uIHRhcmdldCBuYW1lIGNhbm5vdCBiZSAieG1sIi4N CitTRUxFQ1QgeG1scGkobmFtZSB4bWxzdHVmZiwgbnVsbCk7DQorIHhtbHBpIA0KKy0tLS0tLS0N CisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwaShuYW1lICJ4bWwtc3R5bGVzaGVldCIsICdo cmVmPSJteXN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiJyk7DQorICAgICAgICAgICAgICAgICAg ICAgICAgIHhtbHBpICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPD94bWwtc3R5bGVzaGVl dCBocmVmPSJteXN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPz4NCisoMSByb3cpDQorDQorU0VM RUNUIHhtbHBpKG5hbWUgZm9vLCAnICAgYmFyJyk7DQorICAgIHhtbHBpICAgIA0KKy0tLS0tLS0t LS0tLS0NCisgPD9mb28gYmFyPz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHJvb3QoeG1sICc8 Zm9vLz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIG5vIHZhbHVlKTsNCisgeG1scm9v dCANCistLS0tLS0tLS0NCisgPGZvby8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxyb290KHht bCAnPGZvby8+JywgdmVyc2lvbiAnMi4wJyk7DQorICAgICAgICAgICB4bWxyb290ICAgICAgICAg ICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJzaW9uPSIyLjAi Pz48Zm9vLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHJvb3QoeG1sICc8Zm9vLz4nLCB2ZXJz aW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIHllcyk7DQorICAgICAgICAgICAgICAgICAgIHhtbHJv b3QgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCisgPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz48 Zm9vLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHJvb3QoeG1sICc8P3htbCB2ZXJzaW9uPSIx LjEiPz48Zm9vLz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIHllcyk7DQorICAgICAg ICAgICAgICAgICAgIHhtbHJvb3QgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPD94bWwgdmVyc2lvbj0iMS4wIiBz dGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHJvb3QoeG1s cm9vdCh4bWwgJzxmb28vPicsIHZlcnNpb24gJzEuMCcpLCB2ZXJzaW9uICcxLjEnLCBzdGFuZGFs b25lIG5vKTsNCisgICAgICAgICAgICAgICAgICAgeG1scm9vdCAgICAgICAgICAgICAgICAgICAN CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPD94bWwg dmVyc2lvbj0iMS4xIiBzdGFuZGFsb25lPSJubyI/Pjxmb28vPg0KKygxIHJvdykNCisNCitTRUxF Q1QgeG1scm9vdCgnPD94bWwgdmVyc2lvbj0iMS4xIiBzdGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4n LCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIG5vKTsNCisgICAgICAgICAgICAgICAgICAg eG1scm9vdCAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCisgPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/ Pjxmb28vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scm9vdCgnPD94bWwgdmVyc2lvbj0iMS4x IiBzdGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25l IG5vIHZhbHVlKTsNCisgeG1scm9vdCANCistLS0tLS0tLS0NCisgPGZvby8+DQorKDEgcm93KQ0K Kw0KK1NFTEVDVCB4bWxyb290KCc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9InllcyI/ Pjxmb28vPicsIHZlcnNpb24gbm8gdmFsdWUpOw0KKyAgICAgICAgICAgICAgICAgICB4bWxyb290 ICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorIDw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+PGZv by8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxyb290ICgNCisgIHhtbGVsZW1lbnQgKA0KKyAg ICBuYW1lIGdhem9uaywNCisgICAgeG1sYXR0cmlidXRlcyAoDQorICAgICAgJ3ZhbCcgQVMgbmFt ZSwNCisgICAgICAxICsgMSBBUyBudW0NCisgICAgKSwNCisgICAgeG1sZWxlbWVudCAoDQorICAg ICAgTkFNRSBxdXgsDQorICAgICAgJ2ZvbycNCisgICAgKQ0KKyAgKSwNCisgIHZlcnNpb24gJzEu MCcsDQorICBzdGFuZGFsb25lIHllcw0KKyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4bWxyb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDw/eG1sIHZlcnNp b249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+PGdhem9uayBuYW1lPSJ2YWwiIG51bT0iMiI+PHF1 eD5mb288L3F1eD48L2dhem9uaz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShj b250ZW50IGRhdGEgYXMgY2hhcmFjdGVyIHZhcnlpbmcoMjApKSBGUk9NIHhtbHRlc3Q7DQorICAg IHhtbHNlcmlhbGl6ZSAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8dmFsdWU+b25lPC92 YWx1ZT4NCisgPHZhbHVlPnR3bzwvdmFsdWU+DQorKDIgcm93cykNCisNCitTRUxFQ1QgeG1sc2Vy aWFsaXplKGNvbnRlbnQgJ2dvb2QnIGFzIGNoYXIoMTApKTsNCisgeG1sc2VyaWFsaXplIA0KKy0t LS0tLS0tLS0tLS0tDQorIGdvb2QgICAgICANCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNlcmlh bGl6ZShkb2N1bWVudCAnYmFkJyBhcyB0ZXh0KTsNCitFUlJPUjogIG5vdCBhbiBYTUwgZG9jdW1l bnQNCistLSBpbmRlbnQNCitTRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8Zm9vPjxiYXI+ PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOw0KKyAgICAg IHhtbHNlcmlhbGl6ZSAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxmb28+ ICAgICAgICAgICAgICAgICAgKw0KKyAgIDxiYXI+ICAgICAgICAgICAgICAgICsNCisgICAgIDx2 YWwgeD0ieSI+NDI8L3ZhbD4rDQorICAgPC9iYXI+ICAgICAgICAgICAgICAgKw0KKyA8L2Zvbz4N CisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnPGZvbz48YmFyPjx2 YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsNCisgICAgICB4 bWxzZXJpYWxpemUgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPiAg ICAgICAgICAgICAgICAgICsNCisgICA8YmFyPiAgICAgICAgICAgICAgICArDQorICAgICA8dmFs IHg9InkiPjQyPC92YWw+Kw0KKyAgIDwvYmFyPiAgICAgICAgICAgICAgICsNCisgPC9mb28+DQor KDEgcm93KQ0KKw0KKy0tIG5vIGluZGVudA0KK1NFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQg Jzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IE5PIElO REVOVCk7DQorICAgICAgICAgICAgICAgeG1sc2VyaWFsaXplICAgICAgICAgICAgICAgIA0KKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz48YmFyPjx2 YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNl cmlhbGl6ZShDT05URU5UICAnPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zv bz4nIEFTIHRleHQgTk8gSU5ERU5UKTsNCisgICAgICAgICAgICAgICB4bWxzZXJpYWxpemUgICAg ICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKyA8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPg0KKygxIHJvdykN CisNCistLSBpbmRlbnQgbm9uIHNpbmdseS1yb290ZWQgeG1sDQorU0VMRUNUIHhtbHNlcmlhbGl6 ZShET0NVTUVOVCAnPGZvbz43MzwvZm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPicg QVMgdGV4dCBJTkRFTlQpOw0KK0VSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVudA0KK1NFTEVDVCB4 bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+NzM8L2Zvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3Zh bD48L2Jhcj4nIEFTIHRleHQgSU5ERU5UKTsNCisgICAgIHhtbHNlcmlhbGl6ZSAgICAgIA0KKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxmb28+NzM8L2Zvbz4gICAgICAgICsNCisgPGJhcj4g ICAgICAgICAgICAgICAgKw0KKyAgIDx2YWwgeD0ieSI+NDI8L3ZhbD4rDQorIDwvYmFyPg0KKygx IHJvdykNCisNCistLSBpbmRlbnQgbm9uIHNpbmdseS1yb290ZWQgeG1sIHdpdGggbWl4ZWQgY29u dGVudHMNCitTRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICd0ZXh0IG5vZGU8Zm9vPjczPC9m b28+dGV4dCBub2RlPGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+JyBBUyB0ZXh0IElOREVO VCk7DQorRVJST1I6ICBub3QgYW4gWE1MIGRvY3VtZW50DQorU0VMRUNUIHhtbHNlcmlhbGl6ZShD T05URU5UICAndGV4dCBub2RlPGZvbz43MzwvZm9vPnRleHQgbm9kZTxiYXI+PHZhbCB4PSJ5Ij40 MjwvdmFsPjwvYmFyPicgQVMgdGV4dCBJTkRFTlQpOw0KKyAgICAgIHhtbHNlcmlhbGl6ZSAgICAg IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0ZXh0IG5vZGUgICAgICAgICAgICAgKw0K KyA8Zm9vPjczPC9mb28+dGV4dCBub2RlKw0KKyA8YmFyPiAgICAgICAgICAgICAgICAgKw0KKyAg IDx2YWwgeD0ieSI+NDI8L3ZhbD4gKw0KKyA8L2Jhcj4NCisoMSByb3cpDQorDQorLS0gaW5kZW50 IHNpbmdseS1yb290ZWQgeG1sIHdpdGggbWl4ZWQgY29udGVudHMNCitTRUxFQ1QgeG1sc2VyaWFs aXplKERPQ1VNRU5UICc8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjx2YWwgeD0ieSI+dGV4 dCBub2RlPHZhbD43MzwvdmFsPjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOw0K KyAgICAgICAgICAgICAgICB4bWxzZXJpYWxpemUgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgIDxiYXI+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKw0KKyAgICAgPHZhbCB4PSJ5Ij40MjwvdmFsPiAgICAgICAgICAg ICAgICAgICAgKw0KKyAgICAgPHZhbCB4PSJ5Ij50ZXh0IG5vZGU8dmFsPjczPC92YWw+PC92YWw+ Kw0KKyAgIDwvYmFyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyA8L2Zv bz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnPGZvbz48YmFy Pjx2YWwgeD0ieSI+NDI8L3ZhbD48dmFsIHg9InkiPnRleHQgbm9kZTx2YWw+NzM8L3ZhbD48L3Zh bD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsNCisgICAgICAgICAgICAgICAgeG1sc2Vy aWFsaXplICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCisgPGZvbz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsNCisgICA8YmFyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisg ICAgIDx2YWwgeD0ieSI+NDI8L3ZhbD4gICAgICAgICAgICAgICAgICAgICsNCisgICAgIDx2YWwg eD0ieSI+dGV4dCBub2RlPHZhbD43MzwvdmFsPjwvdmFsPisNCisgICA8L2Jhcj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgPC9mb28+DQorKDEgcm93KQ0KKw0KKy0tIGlu ZGVudCBlbXB0eSBzdHJpbmcNCitTRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICcnIEFTIHRl eHQgSU5ERU5UKTsNCitFUlJPUjogIG5vdCBhbiBYTUwgZG9jdW1lbnQNCitTRUxFQ1QgeG1sc2Vy aWFsaXplKENPTlRFTlQgICcnIEFTIHRleHQgSU5ERU5UKTsNCisgeG1sc2VyaWFsaXplIA0KKy0t LS0tLS0tLS0tLS0tDQorIA0KKygxIHJvdykNCisNCistLSB3aGl0ZXNwYWNlcw0KK1NFTEVDVCB4 bWxzZXJpYWxpemUoRE9DVU1FTlQgJyAgJyBBUyB0ZXh0IElOREVOVCk7DQorRVJST1I6ICBub3Qg YW4gWE1MIGRvY3VtZW50DQorU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnICAnIEFTIHRl eHQgSU5ERU5UKTsNCisgeG1sc2VyaWFsaXplIA0KKy0tLS0tLS0tLS0tLS0tDQorICAgDQorKDEg cm93KQ0KKw0KKy0tIGluZGVudCBudWxsDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCBO VUxMIEFTIHRleHQgSU5ERU5UKTsNCisgeG1sc2VyaWFsaXplIA0KKy0tLS0tLS0tLS0tLS0tDQor IA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgIE5VTEwgQVMgdGV4 dCBJTkRFTlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisgDQorKDEgcm93 KQ0KKw0KKy0tIGluZGVudCB3aXRoIFhNTCBkZWNsYXJhdGlvbg0KK1NFTEVDVCB4bWxzZXJpYWxp emUoRE9DVU1FTlQgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PGZvbz48 YmFyPjx2YWw+NzM8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsNCisgICAgICAg ICAgICAgIHhtbHNlcmlhbGl6ZSAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYt OCI/PisNCisgPGZvbz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgPGJh cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgPHZhbD43MzwvdmFsPiAg ICAgICAgICAgICAgICAgICAgICsNCisgICA8L2Jhcj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArDQorIDwvZm9vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRF TlQgICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pjxmb28+PGJhcj48dmFs PjczPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IElOREVOVCk7DQorICAgeG1sc2VyaWFsaXpl ICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz4gICAgICAgICAgICArDQorICAgPGJh cj4gICAgICAgICAgKw0KKyAgICAgPHZhbD43MzwvdmFsPisNCisgICA8L2Jhcj4gICAgICAgICAr DQorIDwvZm9vPg0KKygxIHJvdykNCisNCistLSBpbmRlbnQgY29udGFpbmluZyBET0NUWVBFIGRl Y2xhcmF0aW9uDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCAnPCFET0NUWVBFIGE+PGEv PicgQVMgdGV4dCBJTkRFTlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisg PCFET0NUWVBFIGE+Kw0KKyA8YS8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxzZXJpYWxpemUo Q09OVEVOVCAgJzwhRE9DVFlQRSBhPjxhLz4nIEFTIHRleHQgSU5ERU5UKTsNCisgeG1sc2VyaWFs aXplIA0KKy0tLS0tLS0tLS0tLS0tDQorIDwhRE9DVFlQRSBhPisNCisgPGEvPiAgICAgICAgKw0K KyANCisoMSByb3cpDQorDQorLS0gaW5kZW50IHhtbCB3aXRoIGVtcHR5IGVsZW1lbnQNCitTRUxF Q1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8Zm9vPjxiYXI+PC9iYXI+PC9mb28+JyBBUyB0ZXh0 IElOREVOVCk7DQorIHhtbHNlcmlhbGl6ZSANCistLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPiAgICAg ICArDQorICAgPGJhci8+ICAgICsNCisgPC9mb28+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxz ZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+PGJhcj48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5U KTsNCisgeG1sc2VyaWFsaXplIA0KKy0tLS0tLS0tLS0tLS0tDQorIDxmb28+ICAgICAgICsNCisg ICA8YmFyLz4gICAgKw0KKyA8L2Zvbz4NCisoMSByb3cpDQorDQorLS0gJ25vIGluZGVudCcgPSBu b3QgdXNpbmcgJ25vIGluZGVudCcNCitTRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8Zm9v PjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCkgPSB4bWxzZXJp YWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+ JyBBUyB0ZXh0IE5PIElOREVOVCk7DQorID9jb2x1bW4/IA0KKy0tLS0tLS0tLS0NCisgdA0KKygx IHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4 PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCkgPSB4bWxzZXJpYWxpemUoQ09OVEVO VCAnPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgTk8g SU5ERU5UKTsNCisgP2NvbHVtbj8gDQorLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KKy0t IGluZGVudCB4bWwgc3RyaW5ncyBjb250YWluaW5nIGJsYW5rIG5vZGVzDQorU0VMRUNUIHhtbHNl cmlhbGl6ZShET0NVTUVOVCAnPGZvbz4gICA8YmFyPjwvYmFyPiAgICA8L2Zvbz4nIEFTIHRleHQg SU5ERU5UKTsNCisgeG1sc2VyaWFsaXplIA0KKy0tLS0tLS0tLS0tLS0tDQorIDxmb28+ICAgICAg ICsNCisgICA8YmFyLz4gICAgKw0KKyA8L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNl cmlhbGl6ZShDT05URU5UICAndGV4dCBub2RlPGZvbz4gICAgPGJhcj48L2Jhcj4gICA8L2Zvbz4n IEFTIHRleHQgSU5ERU5UKTsNCisgeG1sc2VyaWFsaXplIA0KKy0tLS0tLS0tLS0tLS0tDQorIHRl eHQgbm9kZSAgICsNCisgPGZvbz4gICAgICAgKw0KKyAgIDxiYXIvPiAgICArDQorIDwvZm9vPg0K KygxIHJvdykNCisNCitTRUxFQ1QgeG1sICc8Zm9vPmJhcjwvZm9vPicgSVMgRE9DVU1FTlQ7DQor ID9jb2x1bW4/IA0KKy0tLS0tLS0tLS0NCisgdA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sICc8 Zm9vPmJhcjwvZm9vPjxiYXI+Zm9vPC9iYXI+JyBJUyBET0NVTUVOVDsNCisgP2NvbHVtbj8gDQor LS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWwgJzxhYmMvPicgSVMgTk9U IERPQ1VNRU5UOw0KKyA/Y29sdW1uPyANCistLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQorDQor U0VMRUNUIHhtbCAnYWJjJyBJUyBOT1QgRE9DVU1FTlQ7DQorID9jb2x1bW4/IA0KKy0tLS0tLS0t LS0NCisgdA0KKygxIHJvdykNCisNCitTRUxFQ1QgJzw+JyBJUyBOT1QgRE9DVU1FTlQ7DQorRVJS T1I6ICBpbnZhbGlkIFhNTCBjb250ZW50DQorTElORSAxOiBTRUxFQ1QgJzw+JyBJUyBOT1QgRE9D VU1FTlQ7DQorICAgICAgICAgICAgICAgXg0KK0RFVEFJTDogIGxpbmUgMTogU3RhcnRUYWc6IGlu dmFsaWQgZWxlbWVudCBuYW1lDQorPD4NCisgXg0KK1NFTEVDVCB4bWxhZ2coZGF0YSkgRlJPTSB4 bWx0ZXN0Ow0KKyAgICAgICAgICAgICAgICB4bWxhZ2cgICAgICAgICAgICAgICAgDQorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPHZhbHVlPm9uZTwvdmFsdWU+PHZh bHVlPnR3bzwvdmFsdWU+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxhZ2coZGF0YSkgRlJPTSB4 bWx0ZXN0IFdIRVJFIGlkID4gMTA7DQorIHhtbGFnZyANCistLS0tLS0tLQ0KKyANCisoMSByb3cp DQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbXBsb3llZXMsIHhtbGFnZyh4bWxlbGVtZW50 KG5hbWUgbmFtZSwgbmFtZSkpKSBGUk9NIGVtcDsNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorIDxlbXBsb3llZXM+PG5hbWU+c2hhcm9uPC9uYW1lPjxuYW1lPnNhbTwvbmFtZT48 bmFtZT5iaWxsPC9uYW1lPjxuYW1lPmplZmY8L25hbWU+PG5hbWU+Y2ltPC9uYW1lPjxuYW1lPmxp bmRhPC9uYW1lPjwvZW1wbG95ZWVzPg0KKygxIHJvdykNCisNCistLSBDaGVjayBtYXBwaW5nIFNR TCBpZGVudGlmaWVyIHRvIFhNTCBuYW1lDQorU0VMRUNUIHhtbHBpKG5hbWUgIjo6Ol94bWxfYWJj MTM1LiUtJl8iKTsNCisgICAgICAgICAgICAgICAgICAgICAgeG1scGkgICAgICAgICAgICAgICAg ICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKyA8P194MDAzQV86Ol94MDA1Rl94bWxfYWJjMTM1Ll94MDAyNV8tX3gwMDI2X18/Pg0KKygx IHJvdykNCisNCitTRUxFQ1QgeG1scGkobmFtZSAiMTIzIik7DQorICAgICB4bWxwaSAgICAgDQor LS0tLS0tLS0tLS0tLS0tDQorIDw/X3gwMDMxXzIzPz4NCisoMSByb3cpDQorDQorUFJFUEFSRSBm b28gKHhtbCkgQVMgU0VMRUNUIHhtbGNvbmNhdCgnPGZvby8+JywgJDEpOw0KK1NFVCBYTUwgT1BU SU9OIERPQ1VNRU5UOw0KK0VYRUNVVEUgZm9vICgnPGJhci8+Jyk7DQorICB4bWxjb25jYXQgICAN CistLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vLz48YmFyLz4NCisoMSByb3cpDQorDQorRVhFQ1VURSBm b28gKCdiYWQnKTsNCitFUlJPUjogIGludmFsaWQgWE1MIGRvY3VtZW50DQorTElORSAxOiBFWEVD VVRFIGZvbyAoJ2JhZCcpOw0KKyAgICAgICAgICAgICAgICAgICAgIF4NCitERVRBSUw6ICBsaW5l IDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZA0KK2JhZA0KK14NCitTRUxFQ1Qg eG1sICc8IURPQ1RZUEUgYT48YS8+PGIvPic7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVu dA0KK0xJTkUgMTogU0VMRUNUIHhtbCAnPCFET0NUWVBFIGE+PGEvPjxiLz4nOw0KKyAgICAgICAg ICAgICAgICAgICBeDQorREVUQUlMOiAgbGluZSAxOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQg b2YgdGhlIGRvY3VtZW50DQorPCFET0NUWVBFIGE+PGEvPjxiLz4NCisgICAgICAgICAgICAgICAg Xg0KK1NFVCBYTUwgT1BUSU9OIENPTlRFTlQ7DQorRVhFQ1VURSBmb28gKCc8YmFyLz4nKTsNCisg IHhtbGNvbmNhdCAgIA0KKy0tLS0tLS0tLS0tLS0tDQorIDxmb28vPjxiYXIvPg0KKygxIHJvdykN CisNCitFWEVDVVRFIGZvbyAoJ2dvb2QnKTsNCisgeG1sY29uY2F0ICANCistLS0tLS0tLS0tLS0N CisgPGZvby8+Z29vZA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sICc8IS0tIGluIFNRTDoyMDA2 KyBhIGRvYyBpcyBjb250ZW50IHRvby0tPiA8P3kgej8+IDwhRE9DVFlQRSBhPjxhLz4nOw0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPCEtLSBpbiBTUUw6MjAwNisgYSBkb2MgaXMgY29u dGVudCB0b28tLT4gPD95IHo/PiA8IURPQ1RZUEUgYT48YS8+DQorKDEgcm93KQ0KKw0KK1NFTEVD VCB4bWwgJzw/eG1sIHZlcnNpb249IjEuMCI/PiA8IS0tIGhpLS0+IDwhRE9DVFlQRSBhPjxhLz4n Ow0KKyAgICAgICAgICAgICB4bWwgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKyAgPCEtLSBoaS0tPiA8IURPQ1RZUEUgYT48YS8+DQorKDEgcm93KQ0KKw0K K1NFTEVDVCB4bWwgJzwhRE9DVFlQRSBhPjxhLz4nOw0KKyAgICAgICB4bWwgICAgICAgIA0KKy0t LS0tLS0tLS0tLS0tLS0tLQ0KKyA8IURPQ1RZUEUgYT48YS8+DQorKDEgcm93KQ0KKw0KK1NFTEVD VCB4bWwgJzwhLS0gaGktLT4gb29wcyA8IURPQ1RZUEUgYT48YS8+JzsNCitFUlJPUjogIGludmFs aWQgWE1MIGNvbnRlbnQNCitMSU5FIDE6IFNFTEVDVCB4bWwgJzwhLS0gaGktLT4gb29wcyA8IURP Q1RZUEUgYT48YS8+JzsNCisgICAgICAgICAgICAgICAgICAgXg0KK0RFVEFJTDogIGxpbmUgMTog U3RhcnRUYWc6IGludmFsaWQgZWxlbWVudCBuYW1lDQorPCEtLSBoaS0tPiBvb3BzIDwhRE9DVFlQ RSBhPjxhLz4NCisgICAgICAgICAgICAgICAgIF4NCitTRUxFQ1QgeG1sICc8IS0tIGhpLS0+IDxv b3BzLz4gPCFET0NUWVBFIGE+PGEvPic7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50DQor TElORSAxOiBTRUxFQ1QgeG1sICc8IS0tIGhpLS0+IDxvb3BzLz4gPCFET0NUWVBFIGE+PGEvPic7 DQorICAgICAgICAgICAgICAgICAgIF4NCitERVRBSUw6ICBsaW5lIDE6IFN0YXJ0VGFnOiBpbnZh bGlkIGVsZW1lbnQgbmFtZQ0KKzwhLS0gaGktLT4gPG9vcHMvPiA8IURPQ1RZUEUgYT48YS8+DQor ICAgICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbCAnPCFET0NUWVBFIGE+PGEvPjxiLz4n Ow0KK0VSUk9SOiAgaW52YWxpZCBYTUwgY29udGVudA0KK0xJTkUgMTogU0VMRUNUIHhtbCAnPCFE T0NUWVBFIGE+PGEvPjxiLz4nOw0KKyAgICAgICAgICAgICAgICAgICBeDQorREVUQUlMOiAgbGlu ZSAxOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50DQorPCFET0NUWVBF IGE+PGEvPjxiLz4NCisgICAgICAgICAgICAgICAgXg0KKy0tIFRlc3QgYmFja3dhcmRzIHBhcnNp bmcNCitDUkVBVEUgVklFVyB4bWx2aWV3MSBBUyBTRUxFQ1QgeG1sY29tbWVudCgndGVzdCcpOw0K K0NSRUFURSBWSUVXIHhtbHZpZXcyIEFTIFNFTEVDVCB4bWxjb25jYXQoJ2hlbGxvJywgJ3lvdScp Ow0KK0NSRUFURSBWSUVXIHhtbHZpZXczIEFTIFNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZWxlbWVu dCwgeG1sYXR0cmlidXRlcyAoMSBhcyAiOm9uZToiLCAnZGV1Y2UnIGFzIHR3byksICdjb250ZW50 JicpOw0KK0NSRUFURSBWSUVXIHhtbHZpZXc0IEFTIFNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZW1w bG95ZWUsIHhtbGZvcmVzdChuYW1lLCBhZ2UsIHNhbGFyeSBhcyBwYXkpKSBGUk9NIGVtcDsNCitD UkVBVEUgVklFVyB4bWx2aWV3NSBBUyBTRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPGFiYz54PC9h YmM+Jyk7DQorQ1JFQVRFIFZJRVcgeG1sdmlldzYgQVMgU0VMRUNUIHhtbHBpKG5hbWUgZm9vLCAn YmFyJyk7DQorQ1JFQVRFIFZJRVcgeG1sdmlldzcgQVMgU0VMRUNUIHhtbHJvb3QoeG1sICc8Zm9v Lz4nLCB2ZXJzaW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIHllcyk7DQorQ1JFQVRFIFZJRVcgeG1s dmlldzggQVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShjb250ZW50ICdnb29kJyBhcyBjaGFyKDEwKSk7 DQorQ1JFQVRFIFZJRVcgeG1sdmlldzkgQVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShjb250ZW50ICdn b29kJyBhcyB0ZXh0KTsNCitDUkVBVEUgVklFVyB4bWx2aWV3MTAgQVMgU0VMRUNUIHhtbHNlcmlh bGl6ZShkb2N1bWVudCAnPGZvbz48YmFyPjQyPC9iYXI+PC9mb28+JyBBUyB0ZXh0IGluZGVudCk7 DQorQ1JFQVRFIFZJRVcgeG1sdmlldzExIEFTIFNFTEVDVCB4bWxzZXJpYWxpemUoZG9jdW1lbnQg Jzxmb28+PGJhcj40MjwvYmFyPjwvZm9vPicgQVMgY2hhcmFjdGVyIHZhcnlpbmcgbm8gaW5kZW50 KTsNCitTRUxFQ1QgdGFibGVfbmFtZSwgdmlld19kZWZpbml0aW9uIEZST00gaW5mb3JtYXRpb25f c2NoZW1hLnZpZXdzDQorICBXSEVSRSB0YWJsZV9uYW1lIExJS0UgJ3htbHZpZXclJyBPUkRFUiBC WSAxOw0KKyB0YWJsZV9uYW1lIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2aWV3X2RlZmluaXRpb24gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHhtbHZpZXcxICAgfCAgU0VMRUNUIHhtbGNvbW1lbnQo J3Rlc3QnOjp0ZXh0KSBBUyB4bWxjb21tZW50Ow0KKyB4bWx2aWV3MTAgIHwgIFNFTEVDVCBYTUxT RVJJQUxJWkUoRE9DVU1FTlQgJzxmb28+PGJhcj40MjwvYmFyPjwvZm9vPic6OnhtbCBBUyB0ZXh0 IElOREVOVCkgQVMgInhtbHNlcmlhbGl6ZSI7DQorIHhtbHZpZXcxMSAgfCAgU0VMRUNUIChYTUxT RVJJQUxJWkUoRE9DVU1FTlQgJzxmb28+PGJhcj40MjwvYmFyPjwvZm9vPic6OnhtbCBBUyBjaGFy YWN0ZXIgdmFyeWluZyBOTyBJTkRFTlQpKTo6Y2hhcmFjdGVyIHZhcnlpbmcgQVMgInhtbHNlcmlh bGl6ZSI7DQorIHhtbHZpZXcyICAgfCAgU0VMRUNUIFhNTENPTkNBVCgnaGVsbG8nOjp4bWwsICd5 b3UnOjp4bWwpIEFTICJ4bWxjb25jYXQiOw0KKyB4bWx2aWV3MyAgIHwgIFNFTEVDVCBYTUxFTEVN RU5UKE5BTUUgZWxlbWVudCwgWE1MQVRUUklCVVRFUygxIEFTICI6b25lOiIsICdkZXVjZScgQVMg dHdvKSwgJ2NvbnRlbnQmJykgQVMgInhtbGVsZW1lbnQiOw0KKyB4bWx2aWV3NCAgIHwgIFNFTEVD VCBYTUxFTEVNRU5UKE5BTUUgZW1wbG95ZWUsIFhNTEZPUkVTVChuYW1lIEFTIG5hbWUsIGFnZSBB UyBhZ2UsIHNhbGFyeSBBUyBwYXkpKSBBUyAieG1sZWxlbWVudCIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsNCisgICAgICAgICAgICB8ICAgIEZST00gZW1wOw0KKyB4bWx2aWV3NSAg IHwgIFNFTEVDVCBYTUxQQVJTRShDT05URU5UICc8YWJjPng8L2FiYz4nOjp0ZXh0IFNUUklQIFdI SVRFU1BBQ0UpIEFTICJ4bWxwYXJzZSI7DQorIHhtbHZpZXc2ICAgfCAgU0VMRUNUIFhNTFBJKE5B TUUgZm9vLCAnYmFyJzo6dGV4dCkgQVMgInhtbHBpIjsNCisgeG1sdmlldzcgICB8ICBTRUxFQ1Qg WE1MUk9PVCgnPGZvby8+Jzo6eG1sLCBWRVJTSU9OIE5PIFZBTFVFLCBTVEFOREFMT05FIFlFUykg QVMgInhtbHJvb3QiOw0KKyB4bWx2aWV3OCAgIHwgIFNFTEVDVCAoWE1MU0VSSUFMSVpFKENPTlRF TlQgJ2dvb2QnOjp4bWwgQVMgY2hhcmFjdGVyKDEwKSBOTyBJTkRFTlQpKTo6Y2hhcmFjdGVyKDEw KSBBUyAieG1sc2VyaWFsaXplIjsNCisgeG1sdmlldzkgICB8ICBTRUxFQ1QgWE1MU0VSSUFMSVpF KENPTlRFTlQgJ2dvb2QnOjp4bWwgQVMgdGV4dCBOTyBJTkRFTlQpIEFTICJ4bWxzZXJpYWxpemUi Ow0KKygxMSByb3dzKQ0KKw0KKy0tIFRleHQgWFBhdGggZXhwcmVzc2lvbnMgZXZhbHVhdGlvbg0K K1NFTEVDVCB4cGF0aCgnL3ZhbHVlJywgZGF0YSkgRlJPTSB4bWx0ZXN0Ow0KKyAgICAgICAgeHBh dGggICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHs8dmFsdWU+b25lPC92YWx1 ZT59DQorIHs8dmFsdWU+dHdvPC92YWx1ZT59DQorKDIgcm93cykNCisNCitTRUxFQ1QgeHBhdGgo TlVMTCwgTlVMTCkgSVMgTlVMTCBGUk9NIHhtbHRlc3Q7DQorID9jb2x1bW4/IA0KKy0tLS0tLS0t LS0NCisgdA0KKyB0DQorKDIgcm93cykNCisNCitTRUxFQ1QgeHBhdGgoJycsICc8IS0tIGVycm9y IC0tPicpOw0KK0VSUk9SOiAgZW1wdHkgWFBhdGggZXhwcmVzc2lvbg0KK0NPTlRFWFQ6ICBTUUwg ZnVuY3Rpb24gInhwYXRoIiBzdGF0ZW1lbnQgMQ0KK1NFTEVDVCB4cGF0aCgnLy90ZXh0KCknLCAn PGxvY2FsOmRhdGEgeG1sbnM6bG9jYWw9Imh0dHA6Ly8xMjcuMC4wLjEiPjxsb2NhbDpwaWVjZSBp ZD0iMSI+bnVtYmVyIG9uZTwvbG9jYWw6cGllY2U+PGxvY2FsOnBpZWNlIGlkPSIyIiAvPjwvbG9j YWw6ZGF0YT4nKTsNCisgICAgIHhwYXRoICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLQ0KKyB7Im51 bWJlciBvbmUifQ0KKygxIHJvdykNCisNCitTRUxFQ1QgeHBhdGgoJy8vbG9jOnBpZWNlL0BpZCcs ICc8bG9jYWw6ZGF0YSB4bWxuczpsb2NhbD0iaHR0cDovLzEyNy4wLjAuMSI+PGxvY2FsOnBpZWNl IGlkPSIxIj5udW1iZXIgb25lPC9sb2NhbDpwaWVjZT48bG9jYWw6cGllY2UgaWQ9IjIiIC8+PC9s b2NhbDpkYXRhPicsIEFSUkFZW0FSUkFZWydsb2MnLCAnaHR0cDovLzEyNy4wLjAuMSddXSk7DQor IHhwYXRoIA0KKy0tLS0tLS0NCisgezEsMn0NCisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoKCcv L2xvYzpwaWVjZScsICc8bG9jYWw6ZGF0YSB4bWxuczpsb2NhbD0iaHR0cDovLzEyNy4wLjAuMSI+ PGxvY2FsOnBpZWNlIGlkPSIxIj5udW1iZXIgb25lPC9sb2NhbDpwaWVjZT48bG9jYWw6cGllY2Ug aWQ9IjIiIC8+PC9sb2NhbDpkYXRhPicsIEFSUkFZW0FSUkFZWydsb2MnLCAnaHR0cDovLzEyNy4w LjAuMSddXSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeHBhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQorIHsiPGxvY2FsOnBpZWNlIHhtbG5zOmxvY2FsPVwiaHR0cDov LzEyNy4wLjAuMVwiIGlkPVwiMVwiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNlPiIsIjxsb2NhbDpw aWVjZSB4bWxuczpsb2NhbD1cImh0dHA6Ly8xMjcuMC4wLjFcIiBpZD1cIjJcIi8+In0NCisoMSBy b3cpDQorDQorU0VMRUNUIHhwYXRoKCcvL2xvYzpwaWVjZScsICc8bG9jYWw6ZGF0YSB4bWxuczps b2NhbD0iaHR0cDovLzEyNy4wLjAuMSIgeG1sbnM9Imh0dHA6Ly8xMjcuMC4wLjIiPjxsb2NhbDpw aWVjZSBpZD0iMSI+PGludGVybmFsPm51bWJlciBvbmU8L2ludGVybmFsPjxpbnRlcm5hbDIvPjwv bG9jYWw6cGllY2U+PGxvY2FsOnBpZWNlIGlkPSIyIiAvPjwvbG9jYWw6ZGF0YT4nLCBBUlJBWVtB UlJBWVsnbG9jJywgJ2h0dHA6Ly8xMjcuMC4wLjEnXV0pOw0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhwYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB7Ijxs b2NhbDpwaWVjZSB4bWxuczpsb2NhbD1cImh0dHA6Ly8xMjcuMC4wLjFcIiB4bWxucz1cImh0dHA6 Ly8xMjcuMC4wLjJcIiBpZD1cIjFcIj48aW50ZXJuYWw+bnVtYmVyIG9uZTwvaW50ZXJuYWw+PGlu dGVybmFsMi8+PC9sb2NhbDpwaWVjZT4iLCI8bG9jYWw6cGllY2UgeG1sbnM6bG9jYWw9XCJodHRw Oi8vMTI3LjAuMC4xXCIgaWQ9XCIyXCIvPiJ9DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aCgn Ly9iJywgJzxhPm9uZSA8Yj50d288L2I+IHRocmVlIDxiPmV0YzwvYj48L2E+Jyk7DQorICAgICAg ICAgIHhwYXRoICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgezxiPnR3 bzwvYj4sPGI+ZXRjPC9iPn0NCisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoKCcvL3RleHQoKScs ICc8cm9vdD4mbHQ7PC9yb290PicpOw0KKyB4cGF0aCAgDQorLS0tLS0tLS0NCisgeyZsdDt9DQor KDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aCgnLy9AdmFsdWUnLCAnPHJvb3QgdmFsdWU9IiZsdDsi Lz4nKTsNCisgeHBhdGggIA0KKy0tLS0tLS0tDQorIHsmbHQ7fQ0KKygxIHJvdykNCisNCitTRUxF Q1QgeHBhdGgoJycnPDxpbnZhbGlkPj4nJycsICc8cm9vdC8+Jyk7DQorICAgICAgICAgICB4cGF0 aCAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHsmbHQ7Jmx0O2lu dmFsaWQmZ3Q7Jmd0O30NCisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoKCdjb3VudCgvLyopJywg Jzxyb290PjxzdWIvPjxzdWIvPjwvcm9vdD4nKTsNCisgeHBhdGggDQorLS0tLS0tLQ0KKyB7M30N CisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoKCdjb3VudCgvLyopPTAnLCAnPHJvb3Q+PHN1Yi8+ PHN1Yi8+PC9yb290PicpOw0KKyAgeHBhdGggIA0KKy0tLS0tLS0tLQ0KKyB7ZmFsc2V9DQorKDEg cm93KQ0KKw0KK1NFTEVDVCB4cGF0aCgnY291bnQoLy8qKT0zJywgJzxyb290PjxzdWIvPjxzdWIv Pjwvcm9vdD4nKTsNCisgeHBhdGggIA0KKy0tLS0tLS0tDQorIHt0cnVlfQ0KKygxIHJvdykNCisN CitTRUxFQ1QgeHBhdGgoJ25hbWUoLyopJywgJzxyb290PjxzdWIvPjxzdWIvPjwvcm9vdD4nKTsN CisgeHBhdGggIA0KKy0tLS0tLS0tDQorIHtyb290fQ0KKygxIHJvdykNCisNCitTRUxFQ1QgeHBh dGgoJy9ub3N1Y2h0YWcnLCAnPHJvb3QvPicpOw0KKyB4cGF0aCANCistLS0tLS0tDQorIHt9DQor KDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aCgncm9vdCcsICc8cm9vdC8+Jyk7DQorICAgeHBhdGgg ICANCistLS0tLS0tLS0tLQ0KKyB7PHJvb3QvPn0NCisoMSByb3cpDQorDQorLS0gUm91bmQtdHJp cCBub24tQVNDSUkgZGF0YSB0aHJvdWdoIHhwYXRoKCkuDQorRE8gJCQNCitERUNMQVJFDQorICB4 bWxfZGVjbGFyYXRpb24gdGV4dCA6PSAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNP LTg4NTktMSI/Pic7DQorICBkZWdyZWVfc3ltYm9sIHRleHQ7DQorICByZXMgeG1sW107DQorQkVH SU4NCisgIC0tIFBlciB0aGUgZG9jdW1lbnRhdGlvbiwgZXhjZXB0IHdoZW4gdGhlIHNlcnZlciBl bmNvZGluZyBpcyBVVEY4LCB4cGF0aCgpDQorICAtLSBtYXkgbm90IHdvcmsgb24gbm9uLUFTQ0lJ IGRhdGEuICBUaGUgdW50cmFuc2xhdGFibGVfY2hhcmFjdGVyIGFuZA0KKyAgLS0gdW5kZWZpbmVk X2Z1bmN0aW9uIHRyYXBzIGJlbG93LCBjdXJyZW50bHkgZGVhZCBjb2RlLCB3aWxsIGJlY29tZSBy ZWxldmFudA0KKyAgLS0gaWYgd2UgcmVtb3ZlIHRoaXMgbGltaXRhdGlvbi4NCisgIElGIGN1cnJl bnRfc2V0dGluZygnc2VydmVyX2VuY29kaW5nJykgPD4gJ1VURjgnIFRIRU4NCisgICAgUkFJU0Ug TE9HICdza2lwOiBlbmNvZGluZyAlIHVuc3VwcG9ydGVkIGZvciB4cGF0aCcsDQorICAgICAgY3Vy cmVudF9zZXR0aW5nKCdzZXJ2ZXJfZW5jb2RpbmcnKTsNCisgICAgUkVUVVJOOw0KKyAgRU5EIElG Ow0KKw0KKyAgZGVncmVlX3N5bWJvbCA6PSBjb252ZXJ0X2Zyb20oJ1x4YzJiMCcsICdVVEY4Jyk7 DQorICByZXMgOj0geHBhdGgoJ3RleHQoKScsICh4bWxfZGVjbGFyYXRpb24gfHwNCisgICAgJzx4 PicgfHwgZGVncmVlX3N5bWJvbCB8fCAnPC94PicpOjp4bWwpOw0KKyAgSUYgZGVncmVlX3N5bWJv bCA8PiByZXNbMV06OnRleHQgVEhFTg0KKyAgICBSQUlTRSAnZXhwZWN0ZWQgJSAoJSksIGdvdCAl ICglKScsDQorICAgICAgZGVncmVlX3N5bWJvbCwgY29udmVydF90byhkZWdyZWVfc3ltYm9sLCAn VVRGOCcpLA0KKyAgICAgIHJlc1sxXSwgY29udmVydF90byhyZXNbMV06OnRleHQsICdVVEY4Jyk7 DQorICBFTkQgSUY7DQorRVhDRVBUSU9ODQorICAtLSBjaGFyYWN0ZXIgd2l0aCBieXRlIHNlcXVl bmNlIDB4YzIgMHhiMCBpbiBlbmNvZGluZyAiVVRGOCIgaGFzIG5vIGVxdWl2YWxlbnQgaW4gZW5j b2RpbmcgIkxBVElOOCINCisgIFdIRU4gdW50cmFuc2xhdGFibGVfY2hhcmFjdGVyDQorICAtLSBk ZWZhdWx0IGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIGVuY29kaW5nICJVVEY4IiB0byAiTVVMRV9J TlRFUk5BTCIgZG9lcyBub3QgZXhpc3QNCisgIE9SIHVuZGVmaW5lZF9mdW5jdGlvbg0KKyAgLS0g dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUNCisgIE9SIGZlYXR1cmVfbm90X3N1cHBvcnRlZCBUSEVO DQorICAgIFJBSVNFIExPRyAnc2tpcDogJScsIFNRTEVSUk07DQorRU5EDQorJCQ7DQorLS0gVGVz dCB4bWxleGlzdHMgYW5kIHhwYXRoX2V4aXN0cw0KK1NFTEVDVCB4bWxleGlzdHMoJy8vdG93blt0 ZXh0KCkgPSAnJ1Rvcm9udG8nJ10nIFBBU1NJTkcgQlkgUkVGICc8dG93bnM+PHRvd24+QmlkZm9y ZC1vbi1Bdm9uPC90b3duPjx0b3duPkN3bWJyYW48L3Rvd24+PHRvd24+QnJpc3RvbDwvdG93bj48 L3Rvd25zPicpOw0KKyB4bWxleGlzdHMgDQorLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisN CitTRUxFQ1QgeG1sZXhpc3RzKCcvL3Rvd25bdGV4dCgpID0gJydDd21icmFuJyddJyBQQVNTSU5H IEJZIFJFRiAnPHRvd25zPjx0b3duPkJpZGZvcmQtb24tQXZvbjwvdG93bj48dG93bj5Dd21icmFu PC90b3duPjx0b3duPkJyaXN0b2w8L3Rvd24+PC90b3ducz4nKTsNCisgeG1sZXhpc3RzIA0KKy0t LS0tLS0tLS0tDQorIHQNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGV4aXN0cygnY291bnQoL25v c3VjaHRhZyknIFBBU1NJTkcgQlkgUkVGICc8cm9vdC8+Jyk7DQorIHhtbGV4aXN0cyANCistLS0t LS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aF9leGlzdHMoJy8vdG93blt0 ZXh0KCkgPSAnJ1Rvcm9udG8nJ10nLCc8dG93bnM+PHRvd24+QmlkZm9yZC1vbi1Bdm9uPC90b3du Pjx0b3duPkN3bWJyYW48L3Rvd24+PHRvd24+QnJpc3RvbDwvdG93bj48L3Rvd25zPic6OnhtbCk7 DQorIHhwYXRoX2V4aXN0cyANCistLS0tLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NF TEVDVCB4cGF0aF9leGlzdHMoJy8vdG93blt0ZXh0KCkgPSAnJ0N3bWJyYW4nJ10nLCc8dG93bnM+ PHRvd24+QmlkZm9yZC1vbi1Bdm9uPC90b3duPjx0b3duPkN3bWJyYW48L3Rvd24+PHRvd24+QnJp c3RvbDwvdG93bj48L3Rvd25zPic6OnhtbCk7DQorIHhwYXRoX2V4aXN0cyANCistLS0tLS0tLS0t LS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aF9leGlzdHMoJ2NvdW50KC9ub3N1 Y2h0YWcpJywgJzxyb290Lz4nOjp4bWwpOw0KKyB4cGF0aF9leGlzdHMgDQorLS0tLS0tLS0tLS0t LS0NCisgdA0KKygxIHJvdykNCisNCitJTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoNCwgJzxt ZW51PjxiZWVycz48bmFtZT5CdWR2YXI8L25hbWU+PGNvc3Q+ZnJlZTwvY29zdD48bmFtZT5DYXJs aW5nPC9uYW1lPjxjb3N0PmxvdHM8L2Nvc3Q+PC9iZWVycz48L21lbnU+Jzo6eG1sKTsNCitJTlNF UlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoNSwgJzxtZW51PjxiZWVycz48bmFtZT5Nb2xzb248L25h bWU+PGNvc3Q+ZnJlZTwvY29zdD48bmFtZT5DYXJsaW5nPC9uYW1lPjxjb3N0PmxvdHM8L2Nvc3Q+ PC9iZWVycz48L21lbnU+Jzo6eG1sKTsNCitJTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoNiwg JzxteW5zOm1lbnUgeG1sbnM6bXlucz0iaHR0cDovL215bnMuY29tIj48bXluczpiZWVycz48bXlu czpuYW1lPkJ1ZHZhcjwvbXluczpuYW1lPjxteW5zOmNvc3Q+ZnJlZTwvbXluczpjb3N0PjxteW5z Om5hbWU+Q2FybGluZzwvbXluczpuYW1lPjxteW5zOmNvc3Q+bG90czwvbXluczpjb3N0PjwvbXlu czpiZWVycz48L215bnM6bWVudT4nOjp4bWwpOw0KK0lOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVT ICg3LCAnPG15bnM6bWVudSB4bWxuczpteW5zPSJodHRwOi8vbXlucy5jb20iPjxteW5zOmJlZXJz PjxteW5zOm5hbWU+TW9sc29uPC9teW5zOm5hbWU+PG15bnM6Y29zdD5mcmVlPC9teW5zOmNvc3Q+ PG15bnM6bmFtZT5DYXJsaW5nPC9teW5zOm5hbWU+PG15bnM6Y29zdD5sb3RzPC9teW5zOmNvc3Q+ PC9teW5zOmJlZXJzPjwvbXluczptZW51Pic6OnhtbCk7DQorU0VMRUNUIENPVU5UKGlkKSBGUk9N IHhtbHRlc3QgV0hFUkUgeG1sZXhpc3RzKCcvbWVudS9iZWVyJyBQQVNTSU5HIGRhdGEpOw0KKyBj b3VudCANCistLS0tLS0tDQorICAgICAwDQorKDEgcm93KQ0KKw0KK1NFTEVDVCBDT1VOVChpZCkg RlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0cygnL21lbnUvYmVlcicgUEFTU0lORyBCWSBSRUYg ZGF0YSBCWSBSRUYpOw0KKyBjb3VudCANCistLS0tLS0tDQorICAgICAwDQorKDEgcm93KQ0KKw0K K1NFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0cygnL21lbnUvYmVl cnMnIFBBU1NJTkcgQlkgUkVGIGRhdGEpOw0KKyBjb3VudCANCistLS0tLS0tDQorICAgICAyDQor KDEgcm93KQ0KKw0KK1NFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0 cygnL21lbnUvYmVlcnMvbmFtZVt0ZXh0KCkgPSAnJ01vbHNvbicnXScgUEFTU0lORyBCWSBSRUYg ZGF0YSk7DQorIGNvdW50IA0KKy0tLS0tLS0NCisgICAgIDENCisoMSByb3cpDQorDQorU0VMRUNU IENPVU5UKGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeHBhdGhfZXhpc3RzKCcvbWVudS9iZWVyJyxk YXRhKTsNCisgY291bnQgDQorLS0tLS0tLQ0KKyAgICAgMA0KKygxIHJvdykNCisNCitTRUxFQ1Qg Q09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9tZW51L2JlZXJzJyxk YXRhKTsNCisgY291bnQgDQorLS0tLS0tLQ0KKyAgICAgMg0KKygxIHJvdykNCisNCitTRUxFQ1Qg Q09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9tZW51L2JlZXJzL25h bWVbdGV4dCgpID0gJydNb2xzb24nJ10nLGRhdGEpOw0KKyBjb3VudCANCistLS0tLS0tDQorICAg ICAxDQorKDEgcm93KQ0KKw0KK1NFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhw YXRoX2V4aXN0cygnL215bnM6bWVudS9teW5zOmJlZXInLGRhdGEsQVJSQVlbQVJSQVlbJ215bnMn LCdodHRwOi8vbXlucy5jb20nXV0pOw0KKyBjb3VudCANCistLS0tLS0tDQorICAgICAwDQorKDEg cm93KQ0KKw0KK1NFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0 cygnL215bnM6bWVudS9teW5zOmJlZXJzJyxkYXRhLEFSUkFZW0FSUkFZWydteW5zJywnaHR0cDov L215bnMuY29tJ11dKTsNCisgY291bnQgDQorLS0tLS0tLQ0KKyAgICAgMg0KKygxIHJvdykNCisN CitTRUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9teW5z Om1lbnUvbXluczpiZWVycy9teW5zOm5hbWVbdGV4dCgpID0gJydNb2xzb24nJ10nLGRhdGEsQVJS QVlbQVJSQVlbJ215bnMnLCdodHRwOi8vbXlucy5jb20nXV0pOw0KKyBjb3VudCANCistLS0tLS0t DQorICAgICAxDQorKDEgcm93KQ0KKw0KK0NSRUFURSBUQUJMRSBxdWVyeSAoIGV4cHIgVEVYVCAp Ow0KK0lOU0VSVCBJTlRPIHF1ZXJ5IFZBTFVFUyAoJy9tZW51L2JlZXJzL2Nvc3RbdGV4dCgpID0g Jydsb3RzJyddJyk7DQorU0VMRUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3QsIHF1ZXJ5IFdIRVJF IHhtbGV4aXN0cyhleHByIFBBU1NJTkcgQlkgUkVGIGRhdGEpOw0KKyBjb3VudCANCistLS0tLS0t DQorICAgICAyDQorKDEgcm93KQ0KKw0KKy0tIFRlc3QgeG1sX2lzX3dlbGxfZm9ybWVkIGFuZCB2 YXJpYW50cw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWRfZG9jdW1lbnQoJzxmb28+YmFyPC9m b28+Jyk7DQorIHhtbF9pc193ZWxsX2Zvcm1lZF9kb2N1bWVudCANCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3Jt ZWRfZG9jdW1lbnQoJ2FiYycpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWRfZG9jdW1lbnQgDQorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1s X2lzX3dlbGxfZm9ybWVkX2NvbnRlbnQoJzxmb28+YmFyPC9mb28+Jyk7DQorIHhtbF9pc193ZWxs X2Zvcm1lZF9jb250ZW50IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgdA0KKygx IHJvdykNCisNCitTRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkX2NvbnRlbnQoJ2FiYycpOw0KKyB4 bWxfaXNfd2VsbF9mb3JtZWRfY29udGVudCANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQorIHQNCisoMSByb3cpDQorDQorU0VUIHhtbG9wdGlvbiBUTyBET0NVTUVOVDsNCitTRUxFQ1Qg eG1sX2lzX3dlbGxfZm9ybWVkKCdhYmMnKTsNCisgeG1sX2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0t LS0tLS0tLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbF9pc193ZWxsX2Zv cm1lZCgnPD4nKTsNCisgeG1sX2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0t DQorIGYNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGFiYy8+Jyk7 DQorIHhtbF9pc193ZWxsX2Zvcm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEg cm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxmb28+YmFyPC9mb28+Jyk7DQor IHhtbF9pc193ZWxsX2Zvcm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93 KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxmb28+YmFyPC9mb28nKTsNCisgeG1s X2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQor DQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGZvbz48YmFyPmJhejwvZm9vPicpOw0KKyB4 bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykN CisNCitTRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8bG9jYWw6ZGF0YSB4bWxuczpsb2NhbD0i aHR0cDovLzEyNy4wLjAuMSI+PGxvY2FsOnBpZWNlIGlkPSIxIj5udW1iZXIgb25lPC9sb2NhbDpw aWVjZT48bG9jYWw6cGllY2UgaWQ9IjIiIC8+PC9sb2NhbDpkYXRhPicpOw0KKyB4bWxfaXNfd2Vs bF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgdA0KKygxIHJvdykNCisNCitTRUxF Q1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8cGc6Zm9vIHhtbG5zOnBnPSJodHRwOi8vcG9zdGdyZXNx bC5vcmcvc3R1ZmYiPmJhcjwvbXk6Zm9vPicpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0t LS0tLS0tLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sX2lzX3dlbGxf Zm9ybWVkKCc8cGc6Zm9vIHhtbG5zOnBnPSJodHRwOi8vcG9zdGdyZXNxbC5vcmcvc3R1ZmYiPmJh cjwvcGc6Zm9vPicpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0NCisgdA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8aW52YWxp ZGVudGl0eT4mPC9hYmM+Jyk7DQorIHhtbF9pc193ZWxsX2Zvcm1lZCANCistLS0tLS0tLS0tLS0t LS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzx1 bmRlZmluZWRlbnRpdHk+Jmlkb250ZXhpc3Q7PC9hYmM+Jyk7DQorIHhtbF9pc193ZWxsX2Zvcm1l ZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxf aXNfd2VsbF9mb3JtZWQoJzxpbnZhbGlkbnMgeG1sbnM9JycmbHQ7JycvPicpOw0KKyB4bWxfaXNf d2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgdA0KKygxIHJvdykNCisNCitT RUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8cmVsYXRpdmVucyB4bWxucz0nJ3JlbGF0aXZlJycv PicpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgdA0K KygxIHJvdykNCisNCitTRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8dHdvZXJyb3JzPiZpZG9u dGV4aXN0OzwvdW5iYWxhbmNlZD4nKTsNCisgeG1sX2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0tLS0t LS0tLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQorDQorU0VUIHhtbG9wdGlvbiBUTyBDT05URU5U Ow0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJ2FiYycpOw0KKyB4bWxfaXNfd2VsbF9mb3Jt ZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgdA0KKygxIHJvdykNCisNCistLSBTaW5jZSB4 cGF0aCgpIGRlYWxzIHdpdGggbmFtZXNwYWNlcywgaXQncyBhIGJpdCBzdHJpY3RlciBhYm91dA0K Ky0tIHdoYXQncyB3ZWxsLWZvcm1lZCBhbmQgd2hhdCdzIG5vdC4gSWYgd2UgZG9uJ3Qgb2JleSB0 aGVzZSBydWxlcw0KKy0tIChpLmUuIGlnbm9yZSBuYW1lc3BhY2UtcmVsYXRlZCBlcnJvcnMgZnJv bSBsaWJ4bWwpLCB4cGF0aCgpDQorLS0gZmFpbHMgaW4gc3VidGxlIHdheXMuIFRoZSBmb2xsb3dp bmcgd291bGQgZm9yIGV4YW1wbGUgcHJvZHVjZQ0KKy0tIHRoZSB4bWwgdmFsdWUNCistLSAgIDxp bnZhbGlkbnMgeG1sbnM9JzwnLz4NCistLSB3aGljaCBpcyBpbnZhbGlkIGJlY2F1c2UgJzwnIG1h eSBub3QgYXBwZWFyIHVuLWVzY2FwZWQgaW4NCistLSBhdHRyaWJ1dGUgdmFsdWVzLg0KKy0tIFNp bmNlIGRpZmZlcmVudCBsaWJ4bWwgdmVyc2lvbnMgZW1pdCBzbGlnaHRseSBkaWZmZXJlbnQNCist LSBlcnJvciBtZXNzYWdlcywgd2Ugc3VwcHJlc3MgdGhlIERFVEFJTCBpbiB0aGlzIHRlc3QuDQor XHNldCBWRVJCT1NJVFkgdGVyc2UNCitTRUxFQ1QgeHBhdGgoJy8qJywgJzxpbnZhbGlkbnMgeG1s bnM9JycmbHQ7JycvPicpOw0KK0VSUk9SOiAgY291bGQgbm90IHBhcnNlIFhNTCBkb2N1bWVudA0K K1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQNCistLSBBZ2FpbiwgdGhlIFhNTCBpc24ndCB3ZWxsLWZv cm1lZCBmb3IgbmFtZXNwYWNlIHB1cnBvc2VzDQorU0VMRUNUIHhwYXRoKCcvKicsICc8bm9zdWNo cHJlZml4OnRhZy8+Jyk7DQorRVJST1I6ICBjb3VsZCBub3QgcGFyc2UgWE1MIGRvY3VtZW50DQor REVUQUlMOiAgbGluZSAxOiBOYW1lc3BhY2UgcHJlZml4IG5vc3VjaHByZWZpeCBvbiB0YWcgaXMg bm90IGRlZmluZWQNCis8bm9zdWNocHJlZml4OnRhZy8+DQorICAgICAgICAgICAgICAgICBeDQor Q09OVEVYVDogIFNRTCBmdW5jdGlvbiAieHBhdGgiIHN0YXRlbWVudCAxDQorLS0gWFBhdGggZGVw cmVjYXRlcyByZWxhdGl2ZSBuYW1lc3BhY2VzLCBidXQgdGhleSdyZSBub3Qgc3VwcG9zZWQgdG8N CistLSB0aHJvdyBhbiBlcnJvciwgb25seSBhIHdhcm5pbmcuDQorU0VMRUNUIHhwYXRoKCcvKics ICc8cmVsYXRpdmVucyB4bWxucz0nJ3JlbGF0aXZlJycvPicpOw0KK1dBUk5JTkc6ICBsaW5lIDE6 IHhtbG5zOiBVUkkgcmVsYXRpdmUgaXMgbm90IGFic29sdXRlDQorPHJlbGF0aXZlbnMgeG1sbnM9 J3JlbGF0aXZlJy8+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCisgICAgICAgICAg ICAgICAgeHBhdGggICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorIHsiPHJlbGF0aXZlbnMgeG1sbnM9XCJyZWxhdGl2ZVwiLz4ifQ0KKygx IHJvdykNCisNCistLSBFeHRlcm5hbCBlbnRpdHkgcmVmZXJlbmNlcyBzaG91bGQgbm90IGxlYWsg ZmlsZXN5c3RlbSBpbmZvcm1hdGlvbi4NCitTRUxFQ1QgWE1MUEFSU0UoRE9DVU1FTlQgJzwhRE9D VFlQRSBmb28gWzwhRU5USVRZIGMgU1lTVEVNICIvZXRjL3Bhc3N3ZCI+XT48Zm9vPiZjOzwvZm9v PicpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxwYXJzZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgYyBT WVNURU0gIi9ldGMvcGFzc3dkIj5dPjxmb28+JmM7PC9mb28+DQorKDEgcm93KQ0KKw0KK1NFTEVD VCBYTUxQQVJTRShET0NVTUVOVCAnPCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgYyBTWVNURU0gIi9l dGMvbm8uc3VjaC5maWxlIj5dPjxmb28+JmM7PC9mb28+Jyk7DQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHhtbHBhcnNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyA8IURPQ1RZUEUgZm9vIFs8IUVOVElUWSBjIFNZU1RFTSAiL2V0Yy9u by5zdWNoLmZpbGUiPl0+PGZvbz4mYzs8L2Zvbz4NCisoMSByb3cpDQorDQorLS0gVGhpcyBtaWdo dCBvciBtaWdodCBub3QgbG9hZCB0aGUgcmVxdWVzdGVkIERURCwgYnV0IGl0IG11c3RuJ3QgdGhy b3cgZXJyb3IuDQorU0VMRUNUIFhNTFBBUlNFKERPQ1VNRU5UICc8IURPQ1RZUEUgY2hhcHRlciBQ VUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIgImh0dHA6Ly93d3cu b2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIj48Y2hhcHRlcj4m bmJzcDs8L2NoYXB0ZXI+Jyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxwYXJzZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg DQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDwhRE9DVFlQRSBjaGFw dGVyIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIiAiaHR0cDov L3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiPjxjaGFw dGVyPiZuYnNwOzwvY2hhcHRlcj4NCisoMSByb3cpDQorDQorLS0gWE1MUEFUSCB0ZXN0cw0KK0NS RUFURSBUQUJMRSB4bWxkYXRhKGRhdGEgeG1sKTsNCitJTlNFUlQgSU5UTyB4bWxkYXRhIFZBTFVF UygnPFJPV1M+DQorPFJPVyBpZD0iMSI+DQorICA8Q09VTlRSWV9JRD5BVTwvQ09VTlRSWV9JRD4N CisgIDxDT1VOVFJZX05BTUU+QXVzdHJhbGlhPC9DT1VOVFJZX05BTUU+DQorICA8UkVHSU9OX0lE PjM8L1JFR0lPTl9JRD4NCis8L1JPVz4NCis8Uk9XIGlkPSIyIj4NCisgIDxDT1VOVFJZX0lEPkNO PC9DT1VOVFJZX0lEPg0KKyAgPENPVU5UUllfTkFNRT5DaGluYTwvQ09VTlRSWV9OQU1FPg0KKyAg PFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+DQorPC9ST1c+DQorPFJPVyBpZD0iMyI+DQorICA8Q09V TlRSWV9JRD5ISzwvQ09VTlRSWV9JRD4NCisgIDxDT1VOVFJZX05BTUU+SG9uZ0tvbmc8L0NPVU5U UllfTkFNRT4NCisgIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPg0KKzwvUk9XPg0KKzxST1cgaWQ9 IjQiPg0KKyAgPENPVU5UUllfSUQ+SU48L0NPVU5UUllfSUQ+DQorICA8Q09VTlRSWV9OQU1FPklu ZGlhPC9DT1VOVFJZX05BTUU+DQorICA8UkVHSU9OX0lEPjM8L1JFR0lPTl9JRD4NCis8L1JPVz4N Cis8Uk9XIGlkPSI1Ij4NCisgIDxDT1VOVFJZX0lEPkpQPC9DT1VOVFJZX0lEPg0KKyAgPENPVU5U UllfTkFNRT5KYXBhbjwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+ PFBSRU1JRVJfTkFNRT5TaW56byBBYmU8L1BSRU1JRVJfTkFNRT4NCis8L1JPVz4NCis8Uk9XIGlk PSI2Ij4NCisgIDxDT1VOVFJZX0lEPlNHPC9DT1VOVFJZX0lEPg0KKyAgPENPVU5UUllfTkFNRT5T aW5nYXBvcmU8L0NPVU5UUllfTkFNRT4NCisgIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPjxTSVpF IHVuaXQ9ImttIj43OTE8L1NJWkU+DQorPC9ST1c+DQorPC9ST1dTPicpOw0KKy0tIFhNTFRBQkxF IHdpdGggY29sdW1ucw0KK1NFTEVDVCAgeG1sdGFibGUuKg0KKyAgIEZST00gKFNFTEVDVCBkYXRh IEZST00geG1sZGF0YSkgeCwNCisgICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycN CisgICAgICAgICAgICAgICAgICAgICAgICAgUEFTU0lORyBkYXRhDQorICAgICAgICAgICAgICAg ICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY291bnRyeV9uYW1lIHRleHQgUEFUSCAnQ09VTlRSWV9OQU1FL3RleHQo KScgTk9UIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlf aWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVnaW9uX2lkIGludCBQQVRIICdSRUdJT05fSUQnLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplIGZsb2F0IFBBVEggJ1NJWkUnLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZW1pZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1J RVJfTkFNRScgREVGQVVMVCAnbm90IHNwZWNpZmllZCcpOw0KKyBpZCB8IF9pZCB8IGNvdW50cnlf bmFtZSB8IGNvdW50cnlfaWQgfCByZWdpb25faWQgfCBzaXplIHwgdW5pdCB8IHByZW1pZXJfbmFt ZSAgDQorLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0NCisgIDEgfCAgIDEgfCBBdXN0cmFsaWEgICAg fCBBVSAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkDQor ICAyIHwgICAyIHwgQ2hpbmEgICAgICAgIHwgQ04gICAgICAgICB8ICAgICAgICAgMyB8ICAgICAg fCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgMyB8ICAgMyB8IEhvbmdLb25nICAgICB8IEhLICAg ICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDQgfCAg IDQgfCBJbmRpYSAgICAgICAgfCBJTiAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAg fCBub3Qgc3BlY2lmaWVkDQorICA1IHwgICA1IHwgSmFwYW4gICAgICAgIHwgSlAgICAgICAgICB8 ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgU2luem8gQWJlDQorICA2IHwgICA2IHwgU2luZ2Fw b3JlICAgIHwgU0cgICAgICAgICB8ICAgICAgICAgMyB8ICA3OTEgfCBrbSAgIHwgbm90IHNwZWNp ZmllZA0KKyg2IHJvd3MpDQorDQorQ1JFQVRFIFZJRVcgeG1sdGFibGV2aWV3MSBBUyBTRUxFQ1Qg IHhtbHRhYmxlLioNCisgICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRhdGEpIHgsDQorICAg ICAgICBMQVRFUkFMIFhNTFRBQkxFKCcvUk9XUy9ST1cnDQorICAgICAgICAgICAgICAgICAgICAg ICAgIFBBU1NJTkcgZGF0YQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGlkIGlu dCBQQVRIICdAaWQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaWQgRk9S IE9SRElOQUxJVFksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlf bmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRS90ZXh0KCknIE5PVCBOVUxMLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09VTlRSWV9J RCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbl9pZCBpbnQgUEFU SCAnUkVHSU9OX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBm bG9hdCBQQVRIICdTSVpFJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5p dCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVSX05BTUUnIERFRkFVTFQgJ25vdCBz cGVjaWZpZWQnKTsNCitTRUxFQ1QgKiBGUk9NIHhtbHRhYmxldmlldzE7DQorIGlkIHwgX2lkIHwg Y291bnRyeV9uYW1lIHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNpemUgfCB1bml0IHwgcHJl bWllcl9uYW1lICANCistLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQ0KKyAgMSB8ICAgMSB8IEF1c3Ry YWxpYSAgICB8IEFVICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVj aWZpZWQNCisgIDIgfCAgIDIgfCBDaGluYSAgICAgICAgfCBDTiAgICAgICAgIHwgICAgICAgICAz IHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkDQorICAzIHwgICAzIHwgSG9uZ0tvbmcgICAg IHwgSEsgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0K KyAgNCB8ICAgNCB8IEluZGlhICAgICAgICB8IElOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAg IHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDUgfCAgIDUgfCBKYXBhbiAgICAgICAgfCBKUCAg ICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBTaW56byBBYmUNCisgIDYgfCAgIDYg fCBTaW5nYXBvcmUgICAgfCBTRyAgICAgICAgIHwgICAgICAgICAzIHwgIDc5MSB8IGttICAgfCBu b3Qgc3BlY2lmaWVkDQorKDYgcm93cykNCisNCitcc3YgeG1sdGFibGV2aWV3MQ0KK0NSRUFURSBP UiBSRVBMQUNFIFZJRVcgcHVibGljLnhtbHRhYmxldmlldzEgQVMNCisgU0VMRUNUICJ4bWx0YWJs ZSIuaWQsDQorICAgICJ4bWx0YWJsZSIuX2lkLA0KKyAgICAieG1sdGFibGUiLmNvdW50cnlfbmFt ZSwNCisgICAgInhtbHRhYmxlIi5jb3VudHJ5X2lkLA0KKyAgICAieG1sdGFibGUiLnJlZ2lvbl9p ZCwNCisgICAgInhtbHRhYmxlIi5zaXplLA0KKyAgICAieG1sdGFibGUiLnVuaXQsDQorICAgICJ4 bWx0YWJsZSIucHJlbWllcl9uYW1lDQorICAgRlJPTSAoIFNFTEVDVCB4bWxkYXRhLmRhdGENCisg ICAgICAgICAgIEZST00geG1sZGF0YSkgeCwNCisgICAgTEFURVJBTCBYTUxUQUJMRSgoJy9ST1dT L1JPVyc6OnRleHQpIFBBU1NJTkcgKHguZGF0YSkgQ09MVU1OUyBpZCBpbnRlZ2VyIFBBVEggKCdA aWQnOjp0ZXh0KSwgX2lkIEZPUiBPUkRJTkFMSVRZLCBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICgn Q09VTlRSWV9OQU1FL3RleHQoKSc6OnRleHQpIE5PVCBOVUxMLCBjb3VudHJ5X2lkIHRleHQgUEFU SCAoJ0NPVU5UUllfSUQnOjp0ZXh0KSwgcmVnaW9uX2lkIGludGVnZXIgUEFUSCAoJ1JFR0lPTl9J RCc6OnRleHQpLCBzaXplIGRvdWJsZSBwcmVjaXNpb24gUEFUSCAoJ1NJWkUnOjp0ZXh0KSwgdW5p dCB0ZXh0IFBBVEggKCdTSVpFL0B1bml0Jzo6dGV4dCksIHByZW1pZXJfbmFtZSB0ZXh0IERFRkFV TFQgKCdub3Qgc3BlY2lmaWVkJzo6dGV4dCkgUEFUSCAoJ1BSRU1JRVJfTkFNRSc6OnRleHQpKQ0K K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB4bWx0YWJsZXZpZXcxOw0KKyAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgTmVzdGVkIExvb3ANCisgICAtPiAgU2VxIFNjYW4g b24geG1sZGF0YQ0KKyAgIC0+ICBUYWJsZSBGdW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSINCiso MyByb3dzKQ0KKw0KK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUICogRlJPTSB4 bWx0YWJsZXZpZXcxOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KKyBOZXN0ZWQgTG9vcA0KKyAgIE91dHB1dDogInhtbHRhYmxlIi5pZCwgInhtbHRh YmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1sdGFibGUiLmNvdW50cnlfaWQs ICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUsICJ4bWx0YWJsZSIudW5pdCwg InhtbHRhYmxlIi5wcmVtaWVyX25hbWUNCisgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnhtbGRh dGENCisgICAgICAgICBPdXRwdXQ6IHhtbGRhdGEuZGF0YQ0KKyAgIC0+ICBUYWJsZSBGdW5jdGlv biBTY2FuIG9uICJ4bWx0YWJsZSINCisgICAgICAgICBPdXRwdXQ6ICJ4bWx0YWJsZSIuaWQsICJ4 bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlfbmFtZSwgInhtbHRhYmxlIi5jb3VudHJ5 X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRhYmxlIi5zaXplLCAieG1sdGFibGUiLnVu aXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lDQorICAgICAgICAgVGFibGUgRnVuY3Rpb24gQ2Fs bDogWE1MVEFCTEUoKCcvUk9XUy9ST1cnOjp0ZXh0KSBQQVNTSU5HICh4bWxkYXRhLmRhdGEpIENP TFVNTlMgaWQgaW50ZWdlciBQQVRIICgnQGlkJzo6dGV4dCksIF9pZCBGT1IgT1JESU5BTElUWSwg Y291bnRyeV9uYW1lIHRleHQgUEFUSCAoJ0NPVU5UUllfTkFNRS90ZXh0KCknOjp0ZXh0KSBOT1Qg TlVMTCwgY291bnRyeV9pZCB0ZXh0IFBBVEggKCdDT1VOVFJZX0lEJzo6dGV4dCksIHJlZ2lvbl9p ZCBpbnRlZ2VyIFBBVEggKCdSRUdJT05fSUQnOjp0ZXh0KSwgc2l6ZSBkb3VibGUgcHJlY2lzaW9u IFBBVEggKCdTSVpFJzo6dGV4dCksIHVuaXQgdGV4dCBQQVRIICgnU0laRS9AdW5pdCc6OnRleHQp LCBwcmVtaWVyX25hbWUgdGV4dCBERUZBVUxUICgnbm90IHNwZWNpZmllZCc6OnRleHQpIFBBVEgg KCdQUkVNSUVSX05BTUUnOjp0ZXh0KSkNCisoNyByb3dzKQ0KKw0KKy0tIGVycm9ycw0KK1NFTEVD VCAqIEZST00gWE1MVEFCTEUgKFJPVyAoKSBQQVNTSU5HIG51bGwgQ09MVU1OUyB2MSB0aW1lc3Rh bXApIEFTIGYgKHYxLCB2Mik7DQorRVJST1I6ICBYTUxUQUJMRSBmdW5jdGlvbiBoYXMgMSBjb2x1 bW5zIGF2YWlsYWJsZSBidXQgMiBjb2x1bW5zIHNwZWNpZmllZA0KK1NFTEVDVCAqIEZST00gWE1M VEFCTEUgKFJPVyAoKSBQQVNTSU5HIG51bGwgQ09MVU1OUyB2MSB0aW1lc3RhbXAgX19wZ19faXNf bm90X251bGwgMSkgQVMgZiAodjEpOw0KK0VSUk9SOiAgb3B0aW9uIG5hbWUgIl9fcGdfX2lzX25v dF9udWxsIiBjYW5ub3QgYmUgdXNlZCBpbiBYTUxUQUJMRQ0KK0xJTkUgMTogLi4uTUxUQUJMRSAo Uk9XICgpIFBBU1NJTkcgbnVsbCBDT0xVTU5TIHYxIHRpbWVzdGFtcCBfX3BnX19pc19uLi4uDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4NCistLSBYTUxOQU1FU1BBQ0VTIHRlc3RzDQorU0VMRUNUICogRlJPTSBYTUxUQUJMRShY TUxOQU1FU1BBQ0VTKCdodHRwOi8veC55JyBBUyB6eiksDQorICAgICAgICAgICAgICAgICAgICAg ICcveno6cm93cy96ejpyb3cnDQorICAgICAgICAgICAgICAgICAgICAgIFBBU1NJTkcgJzxyb3dz IHhtbG5zPSJodHRwOi8veC55Ij48cm93PjxhPjEwPC9hPjwvcm93Pjwvcm93cz4nDQorICAgICAg ICAgICAgICAgICAgICAgIENPTFVNTlMgYSBpbnQgUEFUSCAneno6YScpOw0KKyBhICANCistLS0t DQorIDEwDQorKDEgcm93KQ0KKw0KK0NSRUFURSBWSUVXIHhtbHRhYmxldmlldzIgQVMgU0VMRUNU ICogRlJPTSBYTUxUQUJMRShYTUxOQU1FU1BBQ0VTKCdodHRwOi8veC55JyBBUyAiWnoiKSwNCisg ICAgICAgICAgICAgICAgICAgICAgJy9aejpyb3dzL1p6OnJvdycNCisgICAgICAgICAgICAgICAg ICAgICAgUEFTU0lORyAnPHJvd3MgeG1sbnM9Imh0dHA6Ly94LnkiPjxyb3c+PGE+MTA8L2E+PC9y b3c+PC9yb3dzPicNCisgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBhIGludCBQQVRIICda ejphJyk7DQorU0VMRUNUICogRlJPTSB4bWx0YWJsZXZpZXcyOw0KKyBhICANCistLS0tDQorIDEw DQorKDEgcm93KQ0KKw0KK1xzdiB4bWx0YWJsZXZpZXcyDQorQ1JFQVRFIE9SIFJFUExBQ0UgVklF VyBwdWJsaWMueG1sdGFibGV2aWV3MiBBUw0KKyBTRUxFQ1QgYQ0KKyAgIEZST00gWE1MVEFCTEUo WE1MTkFNRVNQQUNFUyAoJ2h0dHA6Ly94LnknOjp0ZXh0IEFTICJaeiIpLCAoJy9aejpyb3dzL1p6 OnJvdyc6OnRleHQpIFBBU1NJTkcgKCc8cm93cyB4bWxucz0iaHR0cDovL3gueSI+PHJvdz48YT4x MDwvYT48L3Jvdz48L3Jvd3M+Jzo6eG1sKSBDT0xVTU5TIGEgaW50ZWdlciBQQVRIICgnWno6YSc6 OnRleHQpKQ0KK1NFTEVDVCAqIEZST00gWE1MVEFCTEUoWE1MTkFNRVNQQUNFUyhERUZBVUxUICdo dHRwOi8veC55JyksDQorICAgICAgICAgICAgICAgICAgICAgICcvcm93cy9yb3cnDQorICAgICAg ICAgICAgICAgICAgICAgIFBBU1NJTkcgJzxyb3dzIHhtbG5zPSJodHRwOi8veC55Ij48cm93Pjxh PjEwPC9hPjwvcm93Pjwvcm93cz4nDQorICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgYSBp bnQgUEFUSCAnYScpOw0KK0VSUk9SOiAgREVGQVVMVCBuYW1lc3BhY2UgaXMgbm90IHN1cHBvcnRl ZA0KK1NFTEVDVCAqIEZST00gWE1MVEFCTEUoJy4nDQorICAgICAgICAgICAgICAgICAgICAgICBQ QVNTSU5HICc8Zm9vLz4nDQorICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGEgdGV4dCBQ QVRIICdmb28vbmFtZXNwYWNlOjpub2RlKCknKTsNCisgICAgICAgICAgICAgICAgICBhICAgICAg ICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor IGh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZQ0KKygxIHJvdykNCisNCistLSB1 c2VkIGluIHByZXBhcmUgc3RhdGVtZW50cw0KK1BSRVBBUkUgcHAgQVMNCitTRUxFQ1QgIHhtbHRh YmxlLioNCisgICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRhdGEpIHgsDQorICAgICAgICBM QVRFUkFMIFhNTFRBQkxFKCcvUk9XUy9ST1cnDQorICAgICAgICAgICAgICAgICAgICAgICAgIFBB U1NJTkcgZGF0YQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGlkIGludCBQQVRI ICdAaWQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaWQgRk9SIE9SRElO QUxJVFksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfbmFtZSB0 ZXh0IFBBVEggJ0NPVU5UUllfTkFNRScgTk9UIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uX2lkIGludCBQQVRIICdSRUdJT05fSUQn LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplIGZsb2F0IFBBVEggJ1NJ WkUnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAn U0laRS9AdW5pdCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZW1pZXJf bmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJfTkFNRScgREVGQVVMVCAnbm90IHNwZWNpZmllZCcpOw0K K0VYRUNVVEUgcHA7DQorIGlkIHwgX2lkIHwgY291bnRyeV9uYW1lIHwgY291bnRyeV9pZCB8IHJl Z2lvbl9pZCB8IHNpemUgfCB1bml0IHwgcHJlbWllcl9uYW1lICANCistLS0tKy0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLQ0KKyAgMSB8ICAgMSB8IEF1c3RyYWxpYSAgICB8IEFVICAgICAgICAgfCAgICAgICAg IDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDIgfCAgIDIgfCBDaGluYSAgICAg ICAgfCBDTiAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVk DQorICAzIHwgICAzIHwgSG9uZ0tvbmcgICAgIHwgSEsgICAgICAgICB8ICAgICAgICAgMyB8ICAg ICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgNCB8ICAgNCB8IEluZGlhICAgICAgICB8IElO ICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDUg fCAgIDUgfCBKYXBhbiAgICAgICAgfCBKUCAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAg ICAgfCBTaW56byBBYmUNCisgIDYgfCAgIDYgfCBTaW5nYXBvcmUgICAgfCBTRyAgICAgICAgIHwg ICAgICAgICAzIHwgIDc5MSB8IGttICAgfCBub3Qgc3BlY2lmaWVkDQorKDYgcm93cykNCisNCitT RUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JP V1tDT1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcg ZGF0YSBDT0xVTU5TICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQiIGludCk7DQorIENP VU5UUllfTkFNRSB8IFJFR0lPTl9JRCANCistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQ0KKyBJ bmRpYSAgICAgICAgfCAgICAgICAgIDMNCisgSmFwYW4gICAgICAgIHwgICAgICAgICAzDQorKDIg cm93cykNCisNCitTRUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFi bGUoJy9ST1dTL1JPV1tDT1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlh Il0nIFBBU1NJTkcgZGF0YSBDT0xVTU5TIGlkIEZPUiBPUkRJTkFMSVRZLCAiQ09VTlRSWV9OQU1F IiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnQpOw0KKyBpZCB8IENPVU5UUllfTkFNRSB8IFJFR0lPTl9J RCANCistLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tDQorICAxIHwgSW5kaWEgICAgICAg IHwgICAgICAgICAzDQorICAyIHwgSmFwYW4gICAgICAgIHwgICAgICAgICAzDQorKDIgcm93cykN CisNCitTRUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9S T1dTL1JPV1tDT1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBB U1NJTkcgZGF0YSBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLCAiQ09VTlRSWV9OQU1FIiB0ZXh0 LCAiUkVHSU9OX0lEIiBpbnQpOw0KKyBpZCB8IENPVU5UUllfTkFNRSB8IFJFR0lPTl9JRCANCist LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tDQorICA0IHwgSW5kaWEgICAgICAgIHwgICAg ICAgICAzDQorICA1IHwgSmFwYW4gICAgICAgIHwgICAgICAgICAzDQorKDIgcm93cykNCisNCitT RUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JP V1tDT1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcg ZGF0YSBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnKTsNCisgaWQgDQorLS0tLQ0KKyAgNA0KKyAg NQ0KKygyIHJvd3MpDQorDQorU0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFM IHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1F PSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEgQ09MVU1OUyBpZCBGT1IgT1JESU5BTElUWSk7DQorIGlk IA0KKy0tLS0NCisgIDENCisgIDINCisoMiByb3dzKQ0KKw0KK1NFTEVDVCB4bWx0YWJsZS4qIEZS T00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFw YW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVNTlMgaWQgaW50 IFBBVEggJ0BpZCcsICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQiIGludCwgcmF3ZGF0 YSB4bWwgUEFUSCAnLicpOw0KKyBpZCB8IENPVU5UUllfTkFNRSB8IFJFR0lPTl9JRCB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByYXdkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgDQorLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgIDQgfCBJ bmRpYSAgICAgICAgfCAgICAgICAgIDMgfCA8Uk9XIGlkPSI0Ij4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICB8ICAgPENPVU5UUllfSUQ+SU48L0NPVU5UUllfSUQ+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArDQorICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwg ICA8Q09VTlRSWV9OQU1FPkluZGlhPC9DT1VOVFJZX05BTUU+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsNCisgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgIDxSRUdJT05fSUQ+ MzwvUkVHSU9OX0lEPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8IDwvUk9XPg0KKyAgNSB8IEphcGFuICAgICAg ICB8ICAgICAgICAgMyB8IDxST1cgaWQ9IjUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArDQorICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg IHwgICA8Q09VTlRSWV9JRD5KUDwvQ09VTlRSWV9JRD4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsNCisgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgIDxDT1VOVFJZ X05BTUU+SmFwYW48L0NPVU5UUllfTkFNRT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0K KyAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgPFJFR0lPTl9JRD4zPC9SRUdJT05f SUQ+PFBSRU1JRVJfTkFNRT5TaW56byBBYmU8L1BSRU1JRVJfTkFNRT4rDQorICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgPC9ST1c+DQorKDIgcm93cykNCisNCitTRUxFQ1QgeG1sdGFi bGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JPV1tDT1VOVFJZX05B TUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcgZGF0YSBDT0xVTU5T IGlkIGludCBQQVRIICdAaWQnLCAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnQs IHJhd2RhdGEgeG1sIFBBVEggJy4vKicpOw0KKyBpZCB8IENPVU5UUllfTkFNRSB8IFJFR0lPTl9J RCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByYXdkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICANCistLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQorICA0IHwgSW5kaWEgICAgICAgIHwgICAgICAgICAzIHwgPENPVU5UUllfSUQ+SU48L0NP VU5UUllfSUQ+PENPVU5UUllfTkFNRT5JbmRpYTwvQ09VTlRSWV9OQU1FPjxSRUdJT05fSUQ+Mzwv UkVHSU9OX0lEPg0KKyAgNSB8IEphcGFuICAgICAgICB8ICAgICAgICAgMyB8IDxDT1VOVFJZX0lE PkpQPC9DT1VOVFJZX0lEPjxDT1VOVFJZX05BTUU+SmFwYW48L0NPVU5UUllfTkFNRT48UkVHSU9O X0lEPjM8L1JFR0lPTl9JRD48UFJFTUlFUl9OQU1FPlNpbnpvIEFiZTwvUFJFTUlFUl9OQU1FPg0K KygyIHJvd3MpDQorDQorU0VMRUNUICogRlJPTSB4bWx0YWJsZSgnL3Jvb3QnIHBhc3NpbmcgJzxy b290PjxlbGVtZW50PmExYTwhLS0gYWFhYSAtLT5hMmE8P2FhYWFhPz4gPCEtLXotLT4gIGJiYmI8 eD54eHg8L3g+Y2NjYzwvZWxlbWVudD48L3Jvb3Q+JyBDT0xVTU5TIGVsZW1lbnQgdGV4dCk7DQor ICAgICAgIGVsZW1lbnQgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgYTFhYTJh ICAgYmJiYnh4eGNjY2MNCisoMSByb3cpDQorDQorU0VMRUNUICogRlJPTSB4bWx0YWJsZSgnL3Jv b3QnIHBhc3NpbmcgJzxyb290PjxlbGVtZW50PmExYTwhLS0gYWFhYSAtLT5hMmE8P2FhYWFhPz4g PCEtLXotLT4gIGJiYmI8eD54eHg8L3g+Y2NjYzwvZWxlbWVudD48L3Jvb3Q+JyBDT0xVTU5TIGVs ZW1lbnQgdGV4dCBQQVRIICdlbGVtZW50L3RleHQoKScpOyAtLSBzaG91bGQgZmFpbA0KK0VSUk9S OiAgbW9yZSB0aGFuIG9uZSB2YWx1ZSByZXR1cm5lZCBieSBjb2x1bW4gWFBhdGggZXhwcmVzc2lv bg0KKy0tIENEQVRBIHRlc3QNCitzZWxlY3QgKiBmcm9tIHhtbHRhYmxlKCdkL3InIHBhc3Npbmcg JzxkPjxyPjxjPjwhW0NEQVRBWzxoZWxsbz4gJiI8PiE8YT5mb288L2E+XV0+PC9jPjwvcj48cj48 Yz4yPC9jPjwvcj48L2Q+JyBjb2x1bW5zIGMgdGV4dCk7DQorICAgICAgICAgICAgYyAgICAgICAg ICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGhlbGxvPiAmIjw+ITxhPmZvbzwv YT4NCisgMg0KKygyIHJvd3MpDQorDQorLS0gWE1MIGJ1aWx0aW4gZW50aXRpZXMNCitTRUxFQ1Qg KiBGUk9NIHhtbHRhYmxlKCcveC9hJyBQQVNTSU5HICc8eD48YT48ZW50PiZhcG9zOzwvZW50Pjwv YT48YT48ZW50PiZxdW90OzwvZW50PjwvYT48YT48ZW50PiZhbXA7PC9lbnQ+PC9hPjxhPjxlbnQ+ Jmx0OzwvZW50PjwvYT48YT48ZW50PiZndDs8L2VudD48L2E+PC94PicgQ09MVU1OUyBlbnQgdGV4 dCk7DQorIGVudCANCistLS0tLQ0KKyAnDQorICINCisgJg0KKyA8DQorID4NCisoNSByb3dzKQ0K Kw0KK1NFTEVDVCAqIEZST00geG1sdGFibGUoJy94L2EnIFBBU1NJTkcgJzx4PjxhPjxlbnQ+JmFw b3M7PC9lbnQ+PC9hPjxhPjxlbnQ+JnF1b3Q7PC9lbnQ+PC9hPjxhPjxlbnQ+JmFtcDs8L2VudD48 L2E+PGE+PGVudD4mbHQ7PC9lbnQ+PC9hPjxhPjxlbnQ+Jmd0OzwvZW50PjwvYT48L3g+JyBDT0xV TU5TIGVudCB4bWwpOw0KKyAgICAgICBlbnQgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLQ0K KyA8ZW50Pic8L2VudD4NCisgPGVudD4iPC9lbnQ+DQorIDxlbnQ+JmFtcDs8L2VudD4NCisgPGVu dD4mbHQ7PC9lbnQ+DQorIDxlbnQ+Jmd0OzwvZW50Pg0KKyg1IHJvd3MpDQorDQorRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKQ0KK1NFTEVDVCAgeG1sdGFibGUuKg0KKyAgIEZST00gKFNFTEVD VCBkYXRhIEZST00geG1sZGF0YSkgeCwNCisgICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dT L1JPVycNCisgICAgICAgICAgICAgICAgICAgICAgICAgUEFTU0lORyBkYXRhDQorICAgICAgICAg ICAgICAgICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9uYW1lIHRleHQgUEFUSCAnQ09VTlRSWV9OQU1F JyBOT1QgTlVMTCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9p ZCB0ZXh0IFBBVEggJ0NPVU5UUllfSUQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemUgZmxvYXQgUEFUSCAnU0laRScsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRIICdTSVpFL0B1bml0JywNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlF Ul9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJyk7DQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyBOZXN0ZWQgTG9vcA0KKyAgIE91dHB1dDogInhtbHRhYmxlIi5pZCwg InhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1sdGFibGUiLmNvdW50 cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUsICJ4bWx0YWJsZSIu dW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUNCisgICAtPiAgU2VxIFNjYW4gb24gcHVibGlj LnhtbGRhdGENCisgICAgICAgICBPdXRwdXQ6IHhtbGRhdGEuZGF0YQ0KKyAgIC0+ICBUYWJsZSBG dW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSINCisgICAgICAgICBPdXRwdXQ6ICJ4bWx0YWJsZSIu aWQsICJ4bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlfbmFtZSwgInhtbHRhYmxlIi5j b3VudHJ5X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRhYmxlIi5zaXplLCAieG1sdGFi bGUiLnVuaXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lDQorICAgICAgICAgVGFibGUgRnVuY3Rp b24gQ2FsbDogWE1MVEFCTEUoKCcvUk9XUy9ST1cnOjp0ZXh0KSBQQVNTSU5HICh4bWxkYXRhLmRh dGEpIENPTFVNTlMgaWQgaW50ZWdlciBQQVRIICgnQGlkJzo6dGV4dCksIF9pZCBGT1IgT1JESU5B TElUWSwgY291bnRyeV9uYW1lIHRleHQgUEFUSCAoJ0NPVU5UUllfTkFNRSc6OnRleHQpIE5PVCBO VUxMLCBjb3VudHJ5X2lkIHRleHQgUEFUSCAoJ0NPVU5UUllfSUQnOjp0ZXh0KSwgcmVnaW9uX2lk IGludGVnZXIgUEFUSCAoJ1JFR0lPTl9JRCc6OnRleHQpLCBzaXplIGRvdWJsZSBwcmVjaXNpb24g UEFUSCAoJ1NJWkUnOjp0ZXh0KSwgdW5pdCB0ZXh0IFBBVEggKCdTSVpFL0B1bml0Jzo6dGV4dCks IHByZW1pZXJfbmFtZSB0ZXh0IERFRkFVTFQgKCdub3Qgc3BlY2lmaWVkJzo6dGV4dCkgUEFUSCAo J1BSRU1JRVJfTkFNRSc6OnRleHQpKQ0KKyg3IHJvd3MpDQorDQorLS0gdGVzdCBxdWFsDQorU0VM RUNUIHhtbHRhYmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1db Q09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRh dGEgQ09MVU1OUyAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnQpIFdIRVJFICJD T1VOVFJZX05BTUUiID0gJ0phcGFuJzsNCisgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIA0KKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tDQorIEphcGFuICAgICAgICB8ICAgICAgICAgMw0KKygx IHJvdykNCisNCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpDQorU0VMRUNUIGYuKiBGUk9N IHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JPV1tDT1VOVFJZX05BTUU9IkphcGFu IiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcgZGF0YSBDT0xVTU5TICJDT1VOVFJZ X05BTUUiIHRleHQsICJSRUdJT05fSUQiIGludCkgQVMgZiBXSEVSRSAiQ09VTlRSWV9OQU1FIiA9 ICdKYXBhbic7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgTmVzdGVkIExvb3ANCisgICBPdXRwdXQ6 IGYuIkNPVU5UUllfTkFNRSIsIGYuIlJFR0lPTl9JRCINCisgICAtPiAgU2VxIFNjYW4gb24gcHVi bGljLnhtbGRhdGENCisgICAgICAgICBPdXRwdXQ6IHhtbGRhdGEuZGF0YQ0KKyAgIC0+ICBUYWJs ZSBGdW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSIgZg0KKyAgICAgICAgIE91dHB1dDogZi4iQ09V TlRSWV9OQU1FIiwgZi4iUkVHSU9OX0lEIg0KKyAgICAgICAgIFRhYmxlIEZ1bmN0aW9uIENhbGw6 IFhNTFRBQkxFKCgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFN RT0iSW5kaWEiXSc6OnRleHQpIFBBU1NJTkcgKHhtbGRhdGEuZGF0YSkgQ09MVU1OUyAiQ09VTlRS WV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnRlZ2VyKQ0KKyAgICAgICAgIEZpbHRlcjogKGYu IkNPVU5UUllfTkFNRSIgPSAnSmFwYW4nOjp0ZXh0KQ0KKyg4IHJvd3MpDQorDQorRVhQTEFJTiAo VkVSQk9TRSwgRk9STUFUIEpTT04sIENPU1RTIE9GRikNCitTRUxFQ1QgZi4qIEZST00geG1sZGF0 YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENP VU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVNTlMgIkNPVU5UUllfTkFNRSIg dGV4dCwgIlJFR0lPTl9JRCIgaW50KSBBUyBmIFdIRVJFICJDT1VOVFJZX05BTUUiID0gJ0phcGFu JzsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBb ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsNCisgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAiUGxh biI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKw0KKyAgICAgICAiTm9kZSBUeXBlIjogIk5lc3RlZCBMb29wIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgIlBhcmFsbGVs IEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArDQorICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAiSm9pbiBUeXBlIjogIklu bmVyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsN CisgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICJPdXRwdXQiOiBbImYuXCJDT1VOVFJZ X05BTUVcIiIsICJmLlwiUkVHSU9OX0lEXCIiXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAg ICAiSW5uZXIgVW5pcXVlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsNCisgICAgICAgIlBsYW5zIjogWyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKw0KKyAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJTZXEgU2NhbiIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgICAgICJQYXJlbnQg UmVsYXRpb25zaGlwIjogIk91dGVyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArDQorICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgICAgIkFzeW5jIENhcGFibGUi OiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisg ICAgICAgICAgICJSZWxhdGlvbiBOYW1lIjogInhtbGRhdGEiLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiU2NoZW1hIjogInB1YmxpYyIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAg ICAgIkFsaWFzIjogInhtbGRhdGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsNCisgICAgICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiT3V0 cHV0IjogWyJ4bWxkYXRhLmRhdGEiXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKw0KKyAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgICB7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr DQorICAgICAgICAgICAiTm9kZSBUeXBlIjogIlRhYmxlIEZ1bmN0aW9uIFNjYW4iLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgICAgIlBhcmVudCBSZWxhdGlvbnNo aXAiOiAiSW5uZXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAg ICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgICAg IlRhYmxlIEZ1bmN0aW9uIE5hbWUiOiAieG1sdGFibGUiLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsNCisgICAgICAgICAgICJBbGlhcyI6ICJmIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiRGlzYWJs ZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKw0KKyAgICAgICAgICAgIk91dHB1dCI6IFsiZi5cIkNPVU5UUllfTkFNRVwiIiwgImYuXCJS RUdJT05fSURcIiJdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgICAgICJUYWJsZSBGdW5jdGlv biBDYWxsIjogIlhNTFRBQkxFKCgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT1cIkphcGFuXCIgb3Ig Q09VTlRSWV9OQU1FPVwiSW5kaWFcIl0nOjp0ZXh0KSBQQVNTSU5HICh4bWxkYXRhLmRhdGEpIENP TFVNTlMgXCJDT1VOVFJZX05BTUVcIiB0ZXh0LCBcIlJFR0lPTl9JRFwiIGludGVnZXIpIiwrDQor ICAgICAgICAgICAiRmlsdGVyIjogIihmLlwiQ09VTlRSWV9OQU1FXCIgPSAnSmFwYW4nOjp0ZXh0 KSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAg XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArDQorICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgIH0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsNCisgXQ0KKygxIHJvdykNCisNCistLSBzaG91bGQgdG8gd29yayB3aXRoIG1vcmUg ZGF0YQ0KK0lOU0VSVCBJTlRPIHhtbGRhdGEgVkFMVUVTKCc8Uk9XUz4NCis8Uk9XIGlkPSIxMCI+ DQorICA8Q09VTlRSWV9JRD5DWjwvQ09VTlRSWV9JRD4NCisgIDxDT1VOVFJZX05BTUU+Q3plY2gg UmVwdWJsaWM8L0NPVU5UUllfTkFNRT4NCisgIDxSRUdJT05fSUQ+MjwvUkVHSU9OX0lEPjxQUkVN SUVSX05BTUU+TWlsb3MgWmVtYW48L1BSRU1JRVJfTkFNRT4NCis8L1JPVz4NCis8Uk9XIGlkPSIx MSI+DQorICA8Q09VTlRSWV9JRD5ERTwvQ09VTlRSWV9JRD4NCisgIDxDT1VOVFJZX05BTUU+R2Vy bWFueTwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lPTl9JRD4yPC9SRUdJT05fSUQ+DQorPC9ST1c+ DQorPFJPVyBpZD0iMTIiPg0KKyAgPENPVU5UUllfSUQ+RlI8L0NPVU5UUllfSUQ+DQorICA8Q09V TlRSWV9OQU1FPkZyYW5jZTwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lPTl9JRD4yPC9SRUdJT05f SUQ+DQorPC9ST1c+DQorPC9ST1dTPicpOw0KK0lOU0VSVCBJTlRPIHhtbGRhdGEgVkFMVUVTKCc8 Uk9XUz4NCis8Uk9XIGlkPSIyMCI+DQorICA8Q09VTlRSWV9JRD5FRzwvQ09VTlRSWV9JRD4NCisg IDxDT1VOVFJZX05BTUU+RWd5cHQ8L0NPVU5UUllfTkFNRT4NCisgIDxSRUdJT05fSUQ+MTwvUkVH SU9OX0lEPg0KKzwvUk9XPg0KKzxST1cgaWQ9IjIxIj4NCisgIDxDT1VOVFJZX0lEPlNEPC9DT1VO VFJZX0lEPg0KKyAgPENPVU5UUllfTkFNRT5TdWRhbjwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lP Tl9JRD4xPC9SRUdJT05fSUQ+DQorPC9ST1c+DQorPC9ST1dTPicpOw0KK1NFTEVDVCAgeG1sdGFi bGUuKg0KKyAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkgeCwNCisgICAgICAgIExB VEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycNCisgICAgICAgICAgICAgICAgICAgICAgICAgUEFT U0lORyBkYXRhDQorICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEgg J0BpZCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5B TElUWSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9uYW1lIHRl eHQgUEFUSCAnQ09VTlRSWV9OQU1FJyBOT1QgTlVMTCwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY291bnRyeV9pZCB0ZXh0IFBBVEggJ0NPVU5UUllfSUQnLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgZmxvYXQgUEFUSCAnU0la RScsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRIICdT SVpFL0B1bml0JywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9u YW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJyk7DQor IGlkIHwgX2lkIHwgIGNvdW50cnlfbmFtZSAgfCBjb3VudHJ5X2lkIHwgcmVnaW9uX2lkIHwgc2l6 ZSB8IHVuaXQgfCBwcmVtaWVyX25hbWUgIA0KKy0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0NCisg IDEgfCAgIDEgfCBBdXN0cmFsaWEgICAgICB8IEFVICAgICAgICAgfCAgICAgICAgIDMgfCAgICAg IHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDIgfCAgIDIgfCBDaGluYSAgICAgICAgICB8IENO ICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDMg fCAgIDMgfCBIb25nS29uZyAgICAgICB8IEhLICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwg ICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDQgfCAgIDQgfCBJbmRpYSAgICAgICAgICB8IElOICAg ICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDUgfCAg IDUgfCBKYXBhbiAgICAgICAgICB8IEpQICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAg ICB8IFNpbnpvIEFiZQ0KKyAgNiB8ICAgNiB8IFNpbmdhcG9yZSAgICAgIHwgU0cgICAgICAgICB8 ICAgICAgICAgMyB8ICA3OTEgfCBrbSAgIHwgbm90IHNwZWNpZmllZA0KKyAxMCB8ICAgMSB8IEN6 ZWNoIFJlcHVibGljIHwgQ1ogICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAgICAgIHwgTWls b3MgWmVtYW4NCisgMTEgfCAgIDIgfCBHZXJtYW55ICAgICAgICB8IERFICAgICAgICAgfCAgICAg ICAgIDIgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgMTIgfCAgIDMgfCBGcmFuY2Ug ICAgICAgICB8IEZSICAgICAgICAgfCAgICAgICAgIDIgfCAgICAgIHwgICAgICB8IG5vdCBzcGVj aWZpZWQNCisgMjAgfCAgIDEgfCBFZ3lwdCAgICAgICAgICB8IEVHICAgICAgICAgfCAgICAgICAg IDEgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgMjEgfCAgIDIgfCBTdWRhbiAgICAg ICAgICB8IFNEICAgICAgICAgfCAgICAgICAgIDEgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZp ZWQNCisoMTEgcm93cykNCisNCitTRUxFQ1QgIHhtbHRhYmxlLioNCisgICBGUk9NIChTRUxFQ1Qg ZGF0YSBGUk9NIHhtbGRhdGEpIHgsDQorICAgICAgICBMQVRFUkFMIFhNTFRBQkxFKCcvUk9XUy9S T1cnDQorICAgICAgICAgICAgICAgICAgICAgICAgIFBBU1NJTkcgZGF0YQ0KKyAgICAgICAgICAg ICAgICAgICAgICAgICBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfaWQgRk9SIE9SRElOQUxJVFksDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRScg Tk9UIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQg dGV4dCBQQVRIICdDT1VOVFJZX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVnaW9uX2lkIGludCBQQVRIICdSRUdJT05fSUQnLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplIGZsb2F0IFBBVEggJ1NJWkUnLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHByZW1pZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJf TkFNRScgREVGQVVMVCAnbm90IHNwZWNpZmllZCcpDQorICBXSEVSRSByZWdpb25faWQgPSAyOw0K KyBpZCB8IF9pZCB8ICBjb3VudHJ5X25hbWUgIHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNp emUgfCB1bml0IHwgcHJlbWllcl9uYW1lICANCistLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tDQor IDEwIHwgICAxIHwgQ3plY2ggUmVwdWJsaWMgfCBDWiAgICAgICAgIHwgICAgICAgICAyIHwgICAg ICB8ICAgICAgfCBNaWxvcyBaZW1hbg0KKyAxMSB8ICAgMiB8IEdlcm1hbnkgICAgICAgIHwgREUg ICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAxMiB8 ICAgMyB8IEZyYW5jZSAgICAgICAgIHwgRlIgICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAg ICAgIHwgbm90IHNwZWNpZmllZA0KKygzIHJvd3MpDQorDQorRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKQ0KK1NFTEVDVCAgeG1sdGFibGUuKg0KKyAgIEZST00gKFNFTEVDVCBkYXRhIEZST00g eG1sZGF0YSkgeCwNCisgICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycNCisgICAg ICAgICAgICAgICAgICAgICAgICAgUEFTU0lORyBkYXRhDQorICAgICAgICAgICAgICAgICAgICAg ICAgIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY291bnRyeV9uYW1lIHRleHQgUEFUSCAnQ09VTlRSWV9OQU1FJyBOT1QgTlVMTCwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9pZCB0ZXh0IFBBVEgg J0NPVU5UUllfSUQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25f aWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemUgZmxvYXQgUEFUSCAnU0laRScsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuaXQgdGV4dCBQQVRIICdTSVpFL0B1bml0JywNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZB VUxUICdub3Qgc3BlY2lmaWVkJykNCisgIFdIRVJFIHJlZ2lvbl9pZCA9IDI7DQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBOZXN0ZWQgTG9vcA0KKyAgIE91dHB1dDogInht bHRhYmxlIi5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1s dGFibGUiLmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUs ICJ4bWx0YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUNCisgICAtPiAgU2VxIFNj YW4gb24gcHVibGljLnhtbGRhdGENCisgICAgICAgICBPdXRwdXQ6IHhtbGRhdGEuZGF0YQ0KKyAg IC0+ICBUYWJsZSBGdW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSINCisgICAgICAgICBPdXRwdXQ6 ICJ4bWx0YWJsZSIuaWQsICJ4bWx0YWJsZSIuX2lkLCAieG1sdGFibGUiLmNvdW50cnlfbmFtZSwg InhtbHRhYmxlIi5jb3VudHJ5X2lkLCAieG1sdGFibGUiLnJlZ2lvbl9pZCwgInhtbHRhYmxlIi5z aXplLCAieG1sdGFibGUiLnVuaXQsICJ4bWx0YWJsZSIucHJlbWllcl9uYW1lDQorICAgICAgICAg VGFibGUgRnVuY3Rpb24gQ2FsbDogWE1MVEFCTEUoKCcvUk9XUy9ST1cnOjp0ZXh0KSBQQVNTSU5H ICh4bWxkYXRhLmRhdGEpIENPTFVNTlMgaWQgaW50ZWdlciBQQVRIICgnQGlkJzo6dGV4dCksIF9p ZCBGT1IgT1JESU5BTElUWSwgY291bnRyeV9uYW1lIHRleHQgUEFUSCAoJ0NPVU5UUllfTkFNRSc6 OnRleHQpIE5PVCBOVUxMLCBjb3VudHJ5X2lkIHRleHQgUEFUSCAoJ0NPVU5UUllfSUQnOjp0ZXh0 KSwgcmVnaW9uX2lkIGludGVnZXIgUEFUSCAoJ1JFR0lPTl9JRCc6OnRleHQpLCBzaXplIGRvdWJs ZSBwcmVjaXNpb24gUEFUSCAoJ1NJWkUnOjp0ZXh0KSwgdW5pdCB0ZXh0IFBBVEggKCdTSVpFL0B1 bml0Jzo6dGV4dCksIHByZW1pZXJfbmFtZSB0ZXh0IERFRkFVTFQgKCdub3Qgc3BlY2lmaWVkJzo6 dGV4dCkgUEFUSCAoJ1BSRU1JRVJfTkFNRSc6OnRleHQpKQ0KKyAgICAgICAgIEZpbHRlcjogKCJ4 bWx0YWJsZSIucmVnaW9uX2lkID0gMikNCisoOCByb3dzKQ0KKw0KKy0tIHNob3VsZCBmYWlsLCBO VUxMIHZhbHVlDQorU0VMRUNUICB4bWx0YWJsZS4qDQorICAgRlJPTSAoU0VMRUNUIGRhdGEgRlJP TSB4bWxkYXRhKSB4LA0KKyAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJw0KKyAg ICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGENCisgICAgICAgICAgICAgICAgICAg ICAgICAgQ09MVU1OUyBpZCBpbnQgUEFUSCAnQGlkJywNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX2lkIEZPUiBPUkRJTkFMSVRZLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxM LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFU SCAnQ09VTlRSWV9JRCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lv bl9pZCBpbnQgUEFUSCAnUkVHSU9OX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZSBmbG9hdCBQQVRIICdTSVpFJyBOT1QgTlVMTCwNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5pdCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQnLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVS X05BTUUnIERFRkFVTFQgJ25vdCBzcGVjaWZpZWQnKTsNCitFUlJPUjogIG51bGwgaXMgbm90IGFs bG93ZWQgaW4gY29sdW1uICJzaXplIg0KKy0tIGlmIGFsbCBpcyBvaywgdGhlbiByZXN1bHQgaXMg ZW1wdHkNCistLSBvbmUgbGluZSB4bWwgdGVzdA0KK1dJVEgNCisgICB4IEFTIChTRUxFQ1QgcHJv bmFtZSwgcHJvb3duZXIsIHByb2Nvc3Q6Om51bWVyaWMsIHByb25hcmdzLA0KKyAgICAgICAgICAg ICAgICBhcnJheV90b19zdHJpbmcocHJvYXJnbmFtZXMsJywnKSBhcyBwcm9hcmduYW1lcywNCisg ICAgICAgICAgICAgICAgY2FzZSB3aGVuIHByb2FyZ3R5cGVzIDw+ICcnIHRoZW4gYXJyYXlfdG9f c3RyaW5nKHByb2FyZ3R5cGVzOjpvaWRbXSwnLCcpIGVuZCBhcyBwcm9hcmd0eXBlcw0KKyAgICAg ICAgICAgRlJPTSBwZ19wcm9jIFdIRVJFIHByb25hbWUgPSAnZl9sZWFrJyksDQorICAgeSBBUyAo U0VMRUNUIHhtbGVsZW1lbnQobmFtZSBwcm9jLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHhtbGZvcmVzdChwcm9uYW1lLCBwcm9vd25lciwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJvY29zdCwgcHJvbmFyZ3MsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByb2FyZ25hbWVzLCBwcm9hcmd0eXBlcykpIGFzIHByb2MNCisgICAgICAg ICAgIEZST00geCksDQorICAgeiBBUyAoU0VMRUNUIHhtbHRhYmxlLioNCisgICAgICAgICAgIEZS T00geSwNCisgICAgICAgICAgICAgICAgTEFURVJBTCB4bWx0YWJsZSgnL3Byb2MnIFBBU1NJTkcg cHJvYw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgcHJvbmFtZSBu YW1lLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb3duZXIg b2lkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY29zdCBm bG9hdCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb25hcmdz IGludCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2FyZ25h bWVzIHRleHQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9h cmd0eXBlcyB0ZXh0KSkNCisgICBTRUxFQ1QgKiBGUk9NIHoNCisgICBFWENFUFQgU0VMRUNUICog RlJPTSB4Ow0KKyBwcm9uYW1lIHwgcHJvb3duZXIgfCBwcm9jb3N0IHwgcHJvbmFyZ3MgfCBwcm9h cmduYW1lcyB8IHByb2FyZ3R5cGVzIA0KKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQ0KKygwIHJvd3MpDQorDQorLS0g bXVsdGkgbGluZSB4bWwgdGVzdCwgcmVzdWx0IHNob3VsZCBiZSBlbXB0eSB0b28NCitXSVRIDQor ICAgeCBBUyAoU0VMRUNUIHByb25hbWUsIHByb293bmVyLCBwcm9jb3N0OjpudW1lcmljLCBwcm9u YXJncywNCisgICAgICAgICAgICAgICAgYXJyYXlfdG9fc3RyaW5nKHByb2FyZ25hbWVzLCcsJykg YXMgcHJvYXJnbmFtZXMsDQorICAgICAgICAgICAgICAgIGNhc2Ugd2hlbiBwcm9hcmd0eXBlcyA8 PiAnJyB0aGVuIGFycmF5X3RvX3N0cmluZyhwcm9hcmd0eXBlczo6b2lkW10sJywnKSBlbmQgYXMg cHJvYXJndHlwZXMNCisgICAgICAgICAgIEZST00gcGdfcHJvYyksDQorICAgeSBBUyAoU0VMRUNU IHhtbGVsZW1lbnQobmFtZSBkYXRhLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbGFn Zyh4bWxlbGVtZW50KG5hbWUgcHJvYywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4bWxmb3Jlc3QocHJvbmFtZSwgcHJvb3duZXIsIHByb2Nvc3QsDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb25h cmdzLCBwcm9hcmduYW1lcywgcHJvYXJndHlwZXMpKSkpIGFzIGRvYw0KKyAgICAgICAgICAgRlJP TSB4KSwNCisgICB6IEFTIChTRUxFQ1QgeG1sdGFibGUuKg0KKyAgICAgICAgICAgRlJPTSB5LA0K KyAgICAgICAgICAgICAgICBMQVRFUkFMIHhtbHRhYmxlKCcvZGF0YS9wcm9jJyBQQVNTSU5HIGRv Yw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgcHJvbmFtZSBuYW1l LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb3duZXIgb2lk LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY29zdCBmbG9h dCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb25hcmdzIGlu dCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2FyZ25hbWVz IHRleHQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9hcmd0 eXBlcyB0ZXh0KSkNCisgICBTRUxFQ1QgKiBGUk9NIHoNCisgICBFWENFUFQgU0VMRUNUICogRlJP TSB4Ow0KKyBwcm9uYW1lIHwgcHJvb3duZXIgfCBwcm9jb3N0IHwgcHJvbmFyZ3MgfCBwcm9hcmdu YW1lcyB8IHByb2FyZ3R5cGVzIA0KKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQ0KKygwIHJvd3MpDQorDQorQ1JFQVRF IFRBQkxFIHhtbHRlc3QyKHggeG1sLCBfcGF0aCB0ZXh0KTsNCitJTlNFUlQgSU5UTyB4bWx0ZXN0 MiBWQUxVRVMoJzxkPjxyPjxhYz4xPC9hYz48L3I+PC9kPicsICdBJyk7DQorSU5TRVJUIElOVE8g eG1sdGVzdDIgVkFMVUVTKCc8ZD48cj48YmM+MjwvYmM+PC9yPjwvZD4nLCAnQicpOw0KK0lOU0VS VCBJTlRPIHhtbHRlc3QyIFZBTFVFUygnPGQ+PHI+PGNjPjM8L2NjPjwvcj48L2Q+JywgJ0MnKTsN CitJTlNFUlQgSU5UTyB4bWx0ZXN0MiBWQUxVRVMoJzxkPjxyPjxkYz4yPC9kYz48L3I+PC9kPics ICdEJyk7DQorU0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4bWx0ZXN0MiwgTEFURVJBTCB4bWx0YWJs ZSgnL2QvcicgUEFTU0lORyB4IENPTFVNTlMgYSBpbnQgUEFUSCAnJyB8fCBsb3dlcihfcGF0aCkg fHwgJ2MnKTsNCisgYSANCistLS0NCisgMQ0KKyAyDQorIDMNCisgMg0KKyg0IHJvd3MpDQorDQor U0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4bWx0ZXN0MiwgTEFURVJBTCB4bWx0YWJsZSgoJy9kL3Iv JyB8fCBsb3dlcihfcGF0aCkgfHwgJ2MnKSBQQVNTSU5HIHggQ09MVU1OUyBhIGludCBQQVRIICcu Jyk7DQorIGEgDQorLS0tDQorIDENCisgMg0KKyAzDQorIDINCisoNCByb3dzKQ0KKw0KK1NFTEVD VCB4bWx0YWJsZS4qIEZST00geG1sdGVzdDIsIExBVEVSQUwgeG1sdGFibGUoKCcvZC9yLycgfHwg bG93ZXIoX3BhdGgpIHx8ICdjJykgUEFTU0lORyB4IENPTFVNTlMgYSBpbnQgUEFUSCAneCcgREVG QVVMVCBhc2NpaShfcGF0aCkgLSA1NCk7DQorIGEgIA0KKy0tLS0NCisgMTENCisgMTINCisgMTMN CisgMTQNCisoNCByb3dzKQ0KKw0KKy0tIFhQYXRoIHJlc3VsdCBjYW4gYmUgYm9vbGVhbiBvciBu dW1iZXIgdG9vDQorU0VMRUNUICogRlJPTSBYTUxUQUJMRSgnKicgUEFTU0lORyAnPGE+YTwvYT4n IENPTFVNTlMgYSB4bWwgUEFUSCAnLicsIGIgdGV4dCBQQVRIICcuJywgYyB0ZXh0IFBBVEggJyJo aSInLCBkIGJvb2xlYW4gUEFUSCAnLiA9ICJhIicsIGUgaW50ZWdlciBQQVRIICdzdHJpbmctbGVu Z3RoKC4pJyk7DQorICAgIGEgICAgIHwgYiB8IGMgIHwgZCB8IGUgDQorLS0tLS0tLS0tLSstLS0r LS0tLSstLS0rLS0tDQorIDxhPmE8L2E+IHwgYSB8IGhpIHwgdCB8IDENCisoMSByb3cpDQorDQor XHgNCitTRUxFQ1QgKiBGUk9NIFhNTFRBQkxFKCcqJyBQQVNTSU5HICc8ZT5wcmU8IS0tYzEtLT48 P3BpIGFyZz8+PCFbQ0RBVEFbJmVudDFdXT48bjI+JmFtcDtkZWVwPC9uMj5wb3N0PC9lPicgQ09M VU1OUyB4IHhtbCBQQVRIICcvZS9uMicsIHkgeG1sIFBBVEggJy8nKTsNCistWyBSRUNPUkQgMSBd LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCit4IHwgPG4yPiZhbXA7ZGVlcDwvbjI+DQoreSB8IDxlPnByZTwhLS1jMS0tPjw/cGkgYXJn Pz48IVtDREFUQVsmZW50MV1dPjxuMj4mYW1wO2RlZXA8L24yPnBvc3Q8L2U+Kw0KKyAgfCANCisN CitceA0KK1NFTEVDVCAqIEZST00gWE1MVEFCTEUoJy4nIFBBU1NJTkcgWE1MRUxFTUVOVChOQU1F IGEpIGNvbHVtbnMgYSB2YXJjaGFyKDIwKSBQQVRIICciPGZvby8+IicsIGIgeG1sIFBBVEggJyI8 Zm9vLz4iJyk7DQorICAgYSAgICB8ICAgICAgYiAgICAgICANCistLS0tLS0tLSstLS0tLS0tLS0t LS0tLQ0KKyA8Zm9vLz4gfCAmbHQ7Zm9vLyZndDsNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHRl eHQoTlVMTCk7DQorIHhtbHRleHQgDQorLS0tLS0tLS0tDQorIA0KKygxIHJvdykNCisNCitTRUxF Q1QgeG1sdGV4dCgnJyk7DQorIHhtbHRleHQgDQorLS0tLS0tLS0tDQorIA0KKygxIHJvdykNCisN CitTRUxFQ1QgeG1sdGV4dCgnICAnKTsNCisgeG1sdGV4dCANCistLS0tLS0tLS0NCisgICANCiso MSByb3cpDQorDQorU0VMRUNUIHhtbHRleHQoJ2ZvbyBgJF8tKz89Kl4lIXwvXCgpW117fScpOw0K KyAgICAgICAgIHhtbHRleHQgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CisgZm9vIGAkXy0rPz0qXiUhfC9cKClbXXt9DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWx0ZXh0 KCdmb28gJiA8ImJhciI+Jyk7DQorICAgICAgICAgICAgICB4bWx0ZXh0ICAgICAgICAgICAgICAN CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBmb28gJmFtcDsgJmx0OyZx dW90O2JhciZxdW90OyZndDsNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHRleHQoJ3gnfHwgJzxQ PjczPC9QPic6OnhtbCB8fCAuNDIgfHwgdHJ1ZSB8fCAnaic6OmNoYXIpOw0KKyAgICAgICAgICAg ICB4bWx0ZXh0ICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKyB4Jmx0O1AmZ3Q7NzMmbHQ7L1AmZ3Q7MC40MnRydWVqDQorKDEgcm93KQ0KKw0KK0NSRUFU RSBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPHhz OnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KKyAg PHhzOmVsZW1lbnQgbmFtZT0icGVyc29uIj4NCisgICAgPHhzOmNvbXBsZXhUeXBlPg0KKyAgICAg IDx4czpzZXF1ZW5jZT4NCisgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9Inhz OnN0cmluZyIvPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYWdlIiB0eXBlPSJ4czppbnRl Z2VyIi8+DQorICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgPC94czpjb21wbGV4VHlwZT4NCisg IDwveHM6ZWxlbWVudD4NCis8L3hzOnNjaGVtYT4nOw0KK0NSRUFURSBYTUxTQ0hFTUEgSUYgTk9U IEVYSVNUUyBwZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2No ZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorICA8eHM6 ZWxlbWVudCBuYW1lPSJvdGhlciIgdHlwZT0ieHM6c3RyaW5nIi8+DQorPC94czpzY2hlbWE+JzsN CitOT1RJQ0U6ICBYTUwgc2NoZW1hICJwZXJzb25fc2NoZW1hIiBhbHJlYWR5IGV4aXN0cywgc2tp cHBpbmcNCitDUkVBVEUgWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249 IjEuMCI/Pg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M U2NoZW1hIj4NCisgIDx4czplbGVtZW50IG5hbWU9ImR1cGxpY2F0ZSIgdHlwZT0ieHM6c3RyaW5n Ii8+DQorPC94czpzY2hlbWE+JzsNCitFUlJPUjogIFhNTCBzY2hlbWEgInBlcnNvbl9zY2hlbWEi IGFscmVhZHkgZXhpc3RzDQorQ1JFQVRFIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9uczsNCitDUkVB VEUgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hIEFTICc8P3htbCB2 ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJwcm9kdWN0Ij4NCisgICAgPHhz OmNvbXBsZXhUeXBlPg0KKyAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgIDx4czplbGVtZW50 IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0icHJpY2UiIHR5cGU9InhzOmRlY2ltYWwiLz4NCisgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAg ICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJl ZCIvPg0KKyAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgPC94czplbGVtZW50Pg0KKzwveHM6c2No ZW1hPic7DQorQ1JFQVRFIFhNTFNDSEVNQSBiYWRfc2NoZW1hIEFTICc8dGhpcy1pcy1ub3QtdmFs aWQteHNkPic7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBzY2hlbWEgZGVmaW5pdGlvbg0KK0RFVEFJ TDogIGxpbmUgMTogUHJlbWF0dXJlIGVuZCBvZiBkYXRhIGluIHRhZyB0aGlzLWlzLW5vdC12YWxp ZC14c2QgbGluZSAxDQorPHRoaXMtaXMtbm90LXZhbGlkLXhzZD4NCisgICAgICAgICAgICAgICAg ICAgICAgIF4NCitDUkVBVEUgWE1MU0NIRU1BIGJhZF94bWxfc2NoZW1hIEFTICdub3QgZXZlbiB4 bWwnOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgc2NoZW1hIGRlZmluaXRpb24NCitERVRBSUw6ICBs aW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZA0KK25vdCBldmVuIHhtbA0K K14NCitDUkVBVEUgWE1MU0NIRU1BIGJvb2tfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAi Pz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJib29rIj4NCisgICAgPHhzOmNvbXBsZXhUeXBlPg0K KyAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InRpdGxlIiB0 eXBlPSJ4czpzdHJpbmciLz4NCisgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImF1dGhvciIgbWF4 T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKyAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQorICAgICAg ICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZmly c3RuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4NCisgICAgICAgICAgICAgIDx4czplbGVtZW50IG5h bWU9Imxhc3RuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4NCisgICAgICAgICAgICA8L3hzOnNlcXVl bmNlPg0KKyAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgICAgICAgPC94czplbGVtZW50 Pg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ieWVhciIgdHlwZT0ieHM6aW50ZWdlciIvPg0K KyAgICAgIDwveHM6c2VxdWVuY2U+DQorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpc2JuIiB0 eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4NCisgICAgPC94czpjb21wbGV4VHlwZT4N CisgIDwveHM6ZWxlbWVudD4NCis8L3hzOnNjaGVtYT4nOw0KK1NFTEVDVCBYTUxWQUxJREFURShE T0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L3BlcnNvbj4n DQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOw0KKyAgICAgICAgICAg ICAgICAgICB4bWx2YWxpZGF0ZSAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxwZXJzb24+PG5hbWU+Sm9objwv bmFtZT48YWdlPjMwPC9hZ2U+PC9wZXJzb24+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCBYTUxWQUxJ REFURShET0NVTUVOVCAnPHByb2R1Y3QgaWQ9IlAxMjMiPjxuYW1lPldpZGdldDwvbmFtZT48cHJp Y2U+OS45OTwvcHJpY2U+PC9wcm9kdWN0PicNCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVz dF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpOw0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeG1sdmFsaWRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KKyA8cHJvZHVjdCBpZD0iUDEyMyI+PG5hbWU+V2lkZ2V0PC9uYW1lPjxwcmljZT45Ljk5 PC9wcmljZT48L3Byb2R1Y3Q+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVA0KKyAgJzxib29rIGlzYm49Ijk3OC0wLTEyMzQ1Ni03OC05Ij4NCisgICAgPHRpdGxlPlBv c3RncmVTUUwgSW50ZXJuYWxzPC90aXRsZT4NCisgICAgPGF1dGhvcj48Zmlyc3RuYW1lPkpvaG48 L2ZpcnN0bmFtZT48bGFzdG5hbWU+VGl0b3I8L2xhc3RuYW1lPjwvYXV0aG9yPg0KKyAgICA8YXV0 aG9yPjxmaXJzdG5hbWU+SmFuZTwvZmlyc3RuYW1lPjwvYXV0aG9yPg0KKyAgICA8eWVhcj4yMDI0 PC95ZWFyPg0KKyAgPC9ib29rPicNCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hl bWEpOw0KK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkDQorU0VMRUNUIFhNTFNFUklBTEla RShET0NVTUVOVA0KKyAgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+QWxpY2U8 L25hbWU+PGFnZT4yNTwvYWdlPjwvcGVyc29uPicNCisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVN QSBwZXJzb25fc2NoZW1hKSBBUyB0ZXh0KTsNCisgICAgICAgICAgICAgICAgICAgeG1sc2VyaWFs aXplICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQorIDxwZXJzb24+PG5hbWU+QWxpY2U8L25hbWU+PGFnZT4yNTwv YWdlPjwvcGVyc29uPg0KKygxIHJvdykNCisNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQg TlVMTCBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOw0KKyB4bWx2YWxpZGF0 ZSANCistLS0tLS0tLS0tLS0tDQorIA0KKygxIHJvdykNCisNCitTRUxFQ1QgWE1MVkFMSURBVEUo RE9DVU1FTlQgTlVMTCBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpIElTIE5V TEwgQVMgaXNfbnVsbDsNCisgaXNfbnVsbCANCistLS0tLS0tLS0NCisgdA0KKygxIHJvdykNCisN CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48 L3BlcnNvbj4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOw0KK0VS Uk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkDQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT5ub3QtYS1udW1iZXI8L2FnZT48L3BlcnNv bj4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOw0KK0VSUk9SOiAg WE1MIHZhbGlkYXRpb24gZmFpbGVkDQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJv ZHVjdD48bmFtZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4nDQor ICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1h KTsNCitFUlJPUjogIFhNTCB2YWxpZGF0aW9uIGZhaWxlZA0KK1NFTEVDVCBYTUxWQUxJREFURShE T0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48ZXh0cmE+ZGF0 YTwvZXh0cmE+PC9wZXJzb24+Jw0KKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2No ZW1hKTsNCitFUlJPUjogIFhNTCB2YWxpZGF0aW9uIGZhaWxlZA0KK1NFTEVDVCBYTUxWQUxJREFU RShET0NVTUVOVCAnPG5vdHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L25v dHBlcnNvbj4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOw0KK0VS Uk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkDQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8dGVzdD52YWx1ZTwvdGVzdD4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIG5vbmV4aXN0 ZW50X3NjaGVtYSk7DQorRVJST1I6ICBYTUwgc2NoZW1hICJub25leGlzdGVudF9zY2hlbWEiIGRv ZXMgbm90IGV4aXN0DQorQ1JFQVRFIFZJRVcgdmFsaWRhdGVkX3Blb3BsZSBBUw0KKyAgU0VMRUNU IFhNTFZBTElEQVRFKERPQ1VNRU5UIGRhdGEgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25f c2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1sDQorICBGUk9NIHhtbHRlc3QgV0hFUkUgaWQgPSAxOw0K K1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFsaWRhdGVkX3Blb3BsZSc6OnJlZ2NsYXNzLCB0cnVl KTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVm ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCBkYXRhIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbCsNCisg ICAgRlJPTSB4bWx0ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICBXSEVSRSBpZCA9IDE7DQorKDEg cm93KQ0KKw0KK0RST1AgVklFVyB2YWxpZGF0ZWRfcGVvcGxlOw0KK0NSRUFURSBWSUVXIHZhbGlk YXRlZF9wcm9kdWN0cyBBUw0KKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJvZHVj dCBpZD0iMTIzIj48bmFtZT5UZXN0PC9uYW1lPjxwcmljZT4xLjk5PC9wcmljZT48L3Byb2R1Y3Q+ Jw0KKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rf c2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1sOw0KK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFsaWRh dGVkX3Byb2R1Y3RzJzo6cmVnY2xhc3MsIHRydWUpOw0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyAgU0VM RUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJvZHVjdCBpZD0iMTIzIj48bmFtZT5UZXN0PC9u YW1lPjxwcmljZT4xLjk5PC9wcmljZT48L3Byb2R1Y3Q+Jzo6eG1sIEFDQ09SRElORyBUTyBYTUxT Q0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpIEFTIHZhbGlkYXRlZF94bWw7 DQorKDEgcm93KQ0KKw0KK0RST1AgVklFVyB2YWxpZGF0ZWRfcHJvZHVjdHM7DQorQUxURVIgWE1M U0NIRU1BIGJvb2tfc2NoZW1hIFJFTkFNRSBUTyBsaWJyYXJ5X2Jvb2tfc2NoZW1hOw0KK1NFTEVD VCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0bGU+VGVzdDwvdGl0 bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+QjwvbGFzdG5hbWU+ PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+Jw0KKyAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSBib29rX3NjaGVtYSk7DQorRVJST1I6ICBYTUwgc2NoZW1hICJib29rX3NjaGVtYSIgZG9l cyBub3QgZXhpc3QNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEy MyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxh c3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicNCisg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3NjaGVtYSk7DQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sdmFsaWRh dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KKyA8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48 YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1 dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4NCisoMSByb3cpDQorDQorQUxURVIgWE1MU0NI RU1BIGxpYnJhcnlfYm9va19zY2hlbWEgU0VUIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9uczsNCitT RUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8 L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3Ru YW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicNCisgIEFDQ09SRElORyBUTyBY TUxTQ0hFTUEgbGlicmFyeV9ib29rX3NjaGVtYSk7DQorRVJST1I6ICBYTUwgc2NoZW1hICJsaWJy YXJ5X2Jvb2tfc2NoZW1hIiBkb2VzIG5vdCBleGlzdA0KK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3Ru YW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAy NDwveWVhcj48L2Jvb2s+Jw0KKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVt YV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWx2YWxpZGF0ZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor IDxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5B PC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3ll YXI+PC9ib29rPg0KKygxIHJvdykNCisNCitDUkVBVEUgUk9MRSB4bWxzY2hlbWFfdGVzdF9yb2xl Ow0KK0FMVEVSIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1h IE9XTkVSIFRPIHhtbHNjaGVtYV90ZXN0X3JvbGU7DQorU0VMRUNUIHNjaGVtYW5hbWUsIHNjaGVt YW5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCBzY2hlbWFvd25lcjo6cmVncm9sZQ0KK0ZST00gcGdf eG1sc2NoZW1hDQorV0hFUkUgc2NoZW1hbmFtZSA9ICdsaWJyYXJ5X2Jvb2tfc2NoZW1hJzsNCisg ICAgIHNjaGVtYW5hbWUgICAgICB8ICBzY2hlbWFuYW1lc3BhY2UgIHwgICAgIHNjaGVtYW93bmVy ICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0NCisgbGlicmFyeV9ib29rX3NjaGVtYSB8IHRlc3RfeG1sc2NoZW1hX25z IHwgeG1sc2NoZW1hX3Rlc3Rfcm9sZQ0KKygxIHJvdykNCisNCitDUkVBVEUgVklFVyBib29rX3Zp ZXcgQVMNCisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iNDU2Ij48 dGl0bGU+RGVwIFRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5YPC9maXJzdG5hbWU+PGxh c3RuYW1lPlk8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjU8L3llYXI+PC9ib29rPicNCisg ICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tf c2NoZW1hKSBBUyB2YWxpZGF0ZWRfYm9vazsNCitEUk9QIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVt YV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hOw0KK0VSUk9SOiAgY2Fubm90IGRyb3AgWE1MIHNjaGVt YSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hIGJlY2F1c2Ugb3RoZXIgb2Jq ZWN0cyBkZXBlbmQgb24gaXQNCitERVRBSUw6ICB2aWV3IGJvb2tfdmlldyBkZXBlbmRzIG9uIFhN TCBzY2hlbWEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYQ0KK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uDQor RFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYSBDQVND QURFOw0KK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyBib29rX3ZpZXcNCitTRUxFQ1Qg KiBGUk9NIGJvb2tfdmlldzsNCitFUlJPUjogIHJlbGF0aW9uICJib29rX3ZpZXciIGRvZXMgbm90 IGV4aXN0DQorTElORSAxOiBTRUxFQ1QgKiBGUk9NIGJvb2tfdmlldzsNCisgICAgICAgICAgICAg ICAgICAgICAgXg0KK0RST1AgWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWE7DQorRFJPUCBYTUxTQ0hF TUEgSUYgRVhJU1RTIHBlcnNvbl9zY2hlbWE7DQorTk9USUNFOiAgWE1MIHNjaGVtYSAicGVyc29u X3NjaGVtYSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nDQorRFJPUCBYTUxTQ0hFTUEgcGVyc29u X3NjaGVtYTsNCitFUlJPUjogIFhNTCBzY2hlbWEgInBlcnNvbl9zY2hlbWEiIGRvZXMgbm90IGV4 aXN0DQorRFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWE7DQor U0VUIFJPTEUgeG1sc2NoZW1hX3Rlc3Rfcm9sZTsNCitDUkVBVEUgWE1MU0NIRU1BIHB1YmxpYy5z aG91bGRfZmFpbF9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzx4czpzY2hlbWEg eG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCisgIDx4czplbGVt ZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPg0KKzwveHM6c2NoZW1hPic7DQorUkVT RVQgUk9MRTsNCitHUkFOVCBDUkVBVEUgT04gU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zIFRPIHht bHNjaGVtYV90ZXN0X3JvbGU7DQorU0VUIFJPTEUgeG1sc2NoZW1hX3Rlc3Rfcm9sZTsNCitDUkVB VEUgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnJvbGVfc2NoZW1hIEFTICc8P3htbCB2ZXJz aW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx L1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0eXBlPSJ4czpzdHJpbmci Lz4NCis8L3hzOnNjaGVtYT4nOw0KK1JFU0VUIFJPTEU7DQorRFJPUCBYTUxTQ0hFTUEgdGVzdF94 bWxzY2hlbWFfbnMucm9sZV9zY2hlbWE7DQorRFJPUCBST0xFIHhtbHNjaGVtYV90ZXN0X3JvbGU7 DQorRVJST1I6ICByb2xlICJ4bWxzY2hlbWFfdGVzdF9yb2xlIiBjYW5ub3QgYmUgZHJvcHBlZCBi ZWNhdXNlIHNvbWUgb2JqZWN0cyBkZXBlbmQgb24gaXQNCitERVRBSUw6ICBwcml2aWxlZ2VzIGZv ciBzY2hlbWEgdGVzdF94bWxzY2hlbWFfbnMNCitvd25lciBvZiBYTUwgc2NoZW1hIHB1YmxpYy5z aG91bGRfZmFpbF9zY2hlbWENCitEUk9QIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucyBDQVNDQURF Ow0KK0NSRUFURSBST0xFIHhtbHNjaGVtYV91c2VyMTsNCitDUkVBVEUgUk9MRSB4bWxzY2hlbWFf dXNlcjI7DQorQ1JFQVRFIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIEFTICc8P3ht bCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAxL1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0eXBlPSJ4czpz dHJpbmciLz4NCis8L3hzOnNjaGVtYT4nOw0KK1NFVCBST0xFIHhtbHNjaGVtYV91c2VyMTsNCitT RUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+Jw0KKyAgICAgICAg ICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEp Ow0KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIFhNTCBzY2hlbWEgcGVybWlzc2lvbl90 ZXN0X3NjaGVtYQ0KK1JFU0VUIFJPTEU7DQorR1JBTlQgVVNBR0UgT04gWE1MU0NIRU1BIHBlcm1p c3Npb25fdGVzdF9zY2hlbWEgVE8geG1sc2NoZW1hX3VzZXIxOw0KK1NFVCBST0xFIHhtbHNjaGVt YV91c2VyMTsNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+ Jw0KKyAgICAgICAgICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25f dGVzdF9zY2hlbWEpOw0KKyAgICB4bWx2YWxpZGF0ZSAgICANCistLS0tLS0tLS0tLS0tLS0tLS0t DQorIDx0ZXN0PmRhdGE8L3Rlc3Q+DQorKDEgcm93KQ0KKw0KK1JFU0VUIFJPTEU7DQorU0VUIFJP TEUgeG1sc2NoZW1hX3VzZXIyOw0KK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ ZGF0YTwvdGVzdD4nDQorICAgICAgICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEg cGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7DQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig WE1MIHNjaGVtYSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hDQorUkVTRVQgUk9MRTsNCitHUkFOVCBV U0FHRSBPTiBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSBUTyB4bWxzY2hlbWFfdXNl cjI7DQorU0VUIFJPTEUgeG1sc2NoZW1hX3VzZXIyOw0KK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nDQorICAgICAgICAgICAgICAgICAgIEFDQ09SRElORyBU TyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7DQorICAgIHhtbHZhbGlkYXRlICAg IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPHRlc3Q+ZGF0YTwvdGVzdD4NCisoMSByb3cpDQor DQorUkVTRVQgUk9MRTsNCitSRVZPS0UgVVNBR0UgT04gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVz dF9zY2hlbWEgRlJPTSB4bWxzY2hlbWFfdXNlcjE7DQorU0VUIFJPTEUgeG1sc2NoZW1hX3VzZXIx Ow0KK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nDQorICAg ICAgICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3Nj aGVtYSk7DQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgWE1MIHNjaGVtYSBwZXJtaXNz aW9uX3Rlc3Rfc2NoZW1hDQorUkVTRVQgUk9MRTsNCitEUk9QIFhNTFNDSEVNQSBwZXJtaXNzaW9u X3Rlc3Rfc2NoZW1hOw0KK0RST1AgUk9MRSB4bWxzY2hlbWFfdXNlcjE7DQorRFJPUCBST0xFIHht bHNjaGVtYV91c2VyMjsNCitDUkVBVEUgVEFCTEUgdmFsaWRhdGVkX3htbF9kYXRhICgNCisgIGlk IHNlcmlhbCBQUklNQVJZIEtFWSwNCisgIGRhdGEgeG1sDQorKTsNCitDUkVBVEUgWE1MU0NIRU1B IGRhdGFfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5z OnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBu YW1lPSJkYXRhIj4NCisgICAgPHhzOmNvbXBsZXhUeXBlPg0KKyAgICAgIDx4czpzZXF1ZW5jZT4N CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4czppbnRlZ2VyIi8+DQor ICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgPC94czpjb21wbGV4VHlwZT4NCisgIDwveHM6ZWxl bWVudD4NCis8L3hzOnNjaGVtYT4nOw0KK0lOU0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAo ZGF0YSkNCitWQUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+NDI8L3Zh bHVlPjwvZGF0YT4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7DQor SU5TRVJUIElOVE8gdmFsaWRhdGVkX3htbF9kYXRhIChkYXRhKQ0KK1ZBTFVFUyAoWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxkYXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4nDQorICBBQ0NPUkRJ TkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7DQorU0VMRUNUIGlkLCBkYXRhIEZST00gdmFs aWRhdGVkX3htbF9kYXRhIE9SREVSIEJZIGlkOw0KKyBpZCB8ICAgICAgICAgICAgICBkYXRhICAg ICAgICAgICAgICAgDQorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisg IDEgfCA8ZGF0YT48dmFsdWU+NDI8L3ZhbHVlPjwvZGF0YT4NCisgIDIgfCA8ZGF0YT48dmFsdWU+ MTAwPC92YWx1ZT48L2RhdGE+DQorKDIgcm93cykNCisNCitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRf eG1sX2RhdGEgKGRhdGEpDQorVkFMVUVTIChYTUxWQUxJREFURShET0NVTUVOVCAnPGRhdGE+PHZh bHVlPm5vdC1hbi1pbnQ8L3ZhbHVlPjwvZGF0YT4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1B IGRhdGFfc2NoZW1hKSk7DQorRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQNCitEUk9QIFRB QkxFIHZhbGlkYXRlZF94bWxfZGF0YTsNCitEUk9QIFhNTFNDSEVNQSBkYXRhX3NjaGVtYTsNCitE Uk9QIFhNTFNDSEVNQSBzaG91bGRfZmFpbF9zY2hlbWE7DQorRFJPUCBST0xFIHhtbHNjaGVtYV90 ZXN0X3JvbGU7DQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwveG1sLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3htbC5zcWwKaW5kZXggMGVhNGY1MDg4MzcuLjUwNTFmZjQ3YjE3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC94bWwuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3htbC5zcWwKQEAgLTY3OSwzICs2NzksMjc3IEBAIFNFTEVDVCB4bWx0ZXh0 KCcgICcpOwogU0VMRUNUIHhtbHRleHQoJ2ZvbyBgJF8tKz89Kl4lIXwvXCgpW117fScpOwogU0VM RUNUIHhtbHRleHQoJ2ZvbyAmIDwiYmFyIj4nKTsKIFNFTEVDVCB4bWx0ZXh0KCd4J3x8ICc8UD43 MzwvUD4nOjp4bWwgfHwgLjQyIHx8IHRydWUgfHwgJ2onOjpjaGFyKTsKKworQ1JFQVRFIFhNTFND SEVNQSBwZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEg eG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1l bnQgbmFtZT0icGVyc29uIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVu Y2U+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgor ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAg IDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50Pgor PC94czpzY2hlbWE+JzsKKworCitDUkVBVEUgWE1MU0NIRU1BIElGIE5PVCBFWElTVFMgcGVyc29u X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9Im90 aGVyIiB0eXBlPSJ4czpzdHJpbmciLz4KKzwveHM6c2NoZW1hPic7CisKK0NSRUFURSBYTUxTQ0hF TUEgcGVyc29uX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHht bG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50 IG5hbWU9ImR1cGxpY2F0ZSIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hzOnNjaGVtYT4nOworCitD UkVBVEUgU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zOworCitDUkVBVEUgWE1MU0NIRU1BIHRlc3Rf eG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4 czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAg PHhzOmVsZW1lbnQgbmFtZT0icHJvZHVjdCI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAg PHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4czpz dHJpbmciLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icHJpY2UiIHR5cGU9InhzOmRlY2lt YWwiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Imlk IiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBl PgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworCitDUkVBVEUgWE1MU0NIRU1BIGJh ZF9zY2hlbWEgQVMgJzx0aGlzLWlzLW5vdC12YWxpZC14c2Q+JzsKKworQ1JFQVRFIFhNTFNDSEVN QSBiYWRfeG1sX3NjaGVtYSBBUyAnbm90IGV2ZW4geG1sJzsKKworQ1JFQVRFIFhNTFNDSEVNQSBi b29rX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhz PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9 ImJvb2siPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0idGl0bGUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8 eHM6ZWxlbWVudCBuYW1lPSJhdXRob3IiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAg ICA8eHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAg ICAgIDx4czplbGVtZW50IG5hbWU9ImZpcnN0bmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAg ICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Imxhc3RuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4K KyAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4K KyAgICAgICAgPC94czplbGVtZW50PgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ5ZWFyIiB0 eXBlPSJ4czppbnRlZ2VyIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJp YnV0ZSBuYW1lPSJpc2JuIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8 L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworCitTRUxF Q1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMw PC9hZ2U+PC9wZXJzb24+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEp OworCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSJQMTIzIj48bmFt ZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4nCisgIEFDQ09SRElO RyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpOworCitTRUxF Q1QgWE1MVkFMSURBVEUoRE9DVU1FTlQKKyAgJzxib29rIGlzYm49Ijk3OC0wLTEyMzQ1Ni03OC05 Ij4KKyAgICA8dGl0bGU+UG9zdGdyZVNRTCBJbnRlcm5hbHM8L3RpdGxlPgorICAgIDxhdXRob3I+ PGZpcnN0bmFtZT5Kb2huPC9maXJzdG5hbWU+PGxhc3RuYW1lPlRpdG9yPC9sYXN0bmFtZT48L2F1 dGhvcj4KKyAgICA8YXV0aG9yPjxmaXJzdG5hbWU+SmFuZTwvZmlyc3RuYW1lPjwvYXV0aG9yPgor ICAgIDx5ZWFyPjIwMjQ8L3llYXI+CisgIDwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hF TUEgYm9va19zY2hlbWEpOworCitTRUxFQ1QgWE1MU0VSSUFMSVpFKERPQ1VNRU5UCisgIFhNTFZB TElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkFsaWNlPC9uYW1lPjxhZ2U+MjU8L2FnZT48 L3BlcnNvbj4nCisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB0 ZXh0KTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIE5VTEwgQUNDT1JESU5HIFRPIFhN TFNDSEVNQSBwZXJzb25fc2NoZW1hKTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIE5V TEwgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBJUyBOVUxMIEFTIGlzX251 bGw7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9u YW1lPjwvcGVyc29uPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKTsK KworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+ PGFnZT5ub3QtYS1udW1iZXI8L2FnZT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hF TUEgcGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHByb2R1 Y3Q+PG5hbWU+V2lkZ2V0PC9uYW1lPjxwcmljZT45Ljk5PC9wcmljZT48L3Byb2R1Y3Q+JworICBB Q0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hKTsK KworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+ PGFnZT4zMDwvYWdlPjxleHRyYT5kYXRhPC9leHRyYT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBU TyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVO VCAnPG5vdHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L25vdHBlcnNvbj4n CisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxW QUxJREFURShET0NVTUVOVCAnPHRlc3Q+dmFsdWU8L3Rlc3Q+JworICBBQ0NPUkRJTkcgVE8gWE1M U0NIRU1BIG5vbmV4aXN0ZW50X3NjaGVtYSk7CisKK0NSRUFURSBWSUVXIHZhbGlkYXRlZF9wZW9w bGUgQVMKKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIGRhdGEgQUNDT1JESU5HIFRPIFhN TFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1sCisgIEZST00geG1sdGVzdCBX SEVSRSBpZCA9IDE7CisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFsaWRhdGVkX3Blb3BsZSc6 OnJlZ2NsYXNzLCB0cnVlKTsKKworRFJPUCBWSUVXIHZhbGlkYXRlZF9wZW9wbGU7CisKK0NSRUFU RSBWSUVXIHZhbGlkYXRlZF9wcm9kdWN0cyBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1F TlQgJzxwcm9kdWN0IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+PHByaWNlPjEuOTk8L3ByaWNl PjwvcHJvZHVjdD4nCisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9u cy5wcm9kdWN0X3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbDsKKworU0VMRUNUIHBnX2dldF92aWV3 ZGVmKCd2YWxpZGF0ZWRfcHJvZHVjdHMnOjpyZWdjbGFzcywgdHJ1ZSk7CisKK0RST1AgVklFVyB2 YWxpZGF0ZWRfcHJvZHVjdHM7CisKK0FMVEVSIFhNTFNDSEVNQSBib29rX3NjaGVtYSBSRU5BTUUg VE8gbGlicmFyeV9ib29rX3NjaGVtYTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8 Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwv Zmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFy PjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hlbWEpOworCitTRUxF Q1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8L3Rp dGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3RuYW1l PjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicKKyAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSBsaWJyYXJ5X2Jvb2tfc2NoZW1hKTsKKworQUxURVIgWE1MU0NIRU1BIGxpYnJhcnlfYm9v a19zY2hlbWEgU0VUIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9uczsKKworU0VMRUNUIFhNTFZBTElE QVRFKERPQ1VNRU5UICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9y PjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48 eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFy eV9ib29rX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNi bj0iMTIzIj48dGl0bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFt ZT48bGFzdG5hbWU+QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+ JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9v a19zY2hlbWEpOworCitDUkVBVEUgUk9MRSB4bWxzY2hlbWFfdGVzdF9yb2xlOworCitBTFRFUiBY TUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYSBPV05FUiBUTyB4 bWxzY2hlbWFfdGVzdF9yb2xlOworCitTRUxFQ1Qgc2NoZW1hbmFtZSwgc2NoZW1hbmFtZXNwYWNl OjpyZWduYW1lc3BhY2UsIHNjaGVtYW93bmVyOjpyZWdyb2xlCitGUk9NIHBnX3htbHNjaGVtYQor V0hFUkUgc2NoZW1hbmFtZSA9ICdsaWJyYXJ5X2Jvb2tfc2NoZW1hJzsKKworQ1JFQVRFIFZJRVcg Ym9va192aWV3IEFTCisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0i NDU2Ij48dGl0bGU+RGVwIFRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5YPC9maXJzdG5h bWU+PGxhc3RuYW1lPlk8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjU8L3llYXI+PC9ib29r PicKKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlf Ym9va19zY2hlbWEpIEFTIHZhbGlkYXRlZF9ib29rOworCitEUk9QIFhNTFNDSEVNQSB0ZXN0X3ht bHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hOworCitEUk9QIFhNTFNDSEVNQSB0ZXN0X3ht bHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hIENBU0NBREU7CisKK1NFTEVDVCAqIEZST00g Ym9va192aWV3OworCitEUk9QIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hOworCitEUk9QIFhNTFND SEVNQSBJRiBFWElTVFMgcGVyc29uX3NjaGVtYTsKKworRFJPUCBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYTsKKworRFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWE7 CisKK1NFVCBST0xFIHhtbHNjaGVtYV90ZXN0X3JvbGU7CisKK0NSRUFURSBYTUxTQ0hFTUEgcHVi bGljLnNob3VsZF9mYWlsX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2No ZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czpl bGVtZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKKwor UkVTRVQgUk9MRTsKKworR1JBTlQgQ1JFQVRFIE9OIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucyBU TyB4bWxzY2hlbWFfdGVzdF9yb2xlOworCitTRVQgUk9MRSB4bWxzY2hlbWFfdGVzdF9yb2xlOwor CitDUkVBVEUgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnJvbGVfc2NoZW1hIEFTICc8P3ht bCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idGVzdCIgdHlwZT0ieHM6c3Ry aW5nIi8+Cis8L3hzOnNjaGVtYT4nOworCitSRVNFVCBST0xFOworCitEUk9QIFhNTFNDSEVNQSB0 ZXN0X3htbHNjaGVtYV9ucy5yb2xlX3NjaGVtYTsKKworRFJPUCBST0xFIHhtbHNjaGVtYV90ZXN0 X3JvbGU7CisKK0RST1AgU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zIENBU0NBREU7CisKK0NSRUFU RSBST0xFIHhtbHNjaGVtYV91c2VyMTsKK0NSRUFURSBST0xFIHhtbHNjaGVtYV91c2VyMjsKKwor Q1JFQVRFIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9u PSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M U2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idGVzdCIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8 L3hzOnNjaGVtYT4nOworCitTRVQgUk9MRSB4bWxzY2hlbWFfdXNlcjE7CitTRUxFQ1QgWE1MVkFM SURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+JworICAgICAgICAgICAgICAgICAgIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7CisKK1JFU0VUIFJP TEU7CisKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIFRP IHhtbHNjaGVtYV91c2VyMTsKKworU0VUIFJPTEUgeG1sc2NoZW1hX3VzZXIxOworU0VMRUNUIFhN TFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0PicKKyAgICAgICAgICAgICAgICAg ICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOworCitSRVNF VCBST0xFOworCitTRVQgUk9MRSB4bWxzY2hlbWFfdXNlcjI7CitTRUxFQ1QgWE1MVkFMSURBVEUo RE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+JworICAgICAgICAgICAgICAgICAgIEFDQ09SRElO RyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7CisKK1JFU0VUIFJPTEU7CisK K0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIFRPIHhtbHNj aGVtYV91c2VyMjsKKworU0VUIFJPTEUgeG1sc2NoZW1hX3VzZXIyOworU0VMRUNUIFhNTFZBTElE QVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0PicKKyAgICAgICAgICAgICAgICAgICBBQ0NP UkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOworCitSRVNFVCBST0xF OworCitSRVZPS0UgVVNBR0UgT04gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgRlJP TSB4bWxzY2hlbWFfdXNlcjE7CisKK1NFVCBST0xFIHhtbHNjaGVtYV91c2VyMTsKK1NFTEVDVCBY TUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAg ICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKKworUkVT RVQgUk9MRTsKKworRFJPUCBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYTsKK0RST1Ag Uk9MRSB4bWxzY2hlbWFfdXNlcjE7CitEUk9QIFJPTEUgeG1sc2NoZW1hX3VzZXIyOworCitDUkVB VEUgVEFCTEUgdmFsaWRhdGVkX3htbF9kYXRhICgKKyAgaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAor ICBkYXRhIHhtbAorKTsKKworQ1JFQVRFIFhNTFNDSEVNQSBkYXRhX3NjaGVtYSBBUyAnPD94bWwg dmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImRhdGEiPgorICAgIDx4czpjb21w bGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i dmFsdWUiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94 czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+JzsKKworSU5TRVJU IElOVE8gdmFsaWRhdGVkX3htbF9kYXRhIChkYXRhKQorVkFMVUVTIChYTUxWQUxJREFURShET0NV TUVOVCAnPGRhdGE+PHZhbHVlPjQyPC92YWx1ZT48L2RhdGE+JworICBBQ0NPUkRJTkcgVE8gWE1M U0NIRU1BIGRhdGFfc2NoZW1hKSk7CisKK0lOU0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAo ZGF0YSkKK1ZBTFVFUyAoWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxkYXRhPjx2YWx1ZT4xMDA8L3Zh bHVlPjwvZGF0YT4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgZGF0YV9zY2hlbWEpKTsKKwor U0VMRUNUIGlkLCBkYXRhIEZST00gdmFsaWRhdGVkX3htbF9kYXRhIE9SREVSIEJZIGlkOworCitJ TlNFUlQgSU5UTyB2YWxpZGF0ZWRfeG1sX2RhdGEgKGRhdGEpCitWQUxVRVMgKFhNTFZBTElEQVRF KERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+bm90LWFuLWludDwvdmFsdWU+PC9kYXRhPicKKyAgQUND T1JESU5HIFRPIFhNTFNDSEVNQSBkYXRhX3NjaGVtYSkpOworCitEUk9QIFRBQkxFIHZhbGlkYXRl ZF94bWxfZGF0YTsKKworRFJPUCBYTUxTQ0hFTUEgZGF0YV9zY2hlbWE7CisKK0RST1AgWE1MU0NI RU1BIHNob3VsZF9mYWlsX3NjaGVtYTsKKworRFJPUCBST0xFIHhtbHNjaGVtYV90ZXN0X3JvbGU7 Ci0tIAoyLjUyLjAud2luZG93cy4xCgo= --000000000000f171b2064801e10e--