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 1wWYGo-002hDA-0q for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Jun 2026 11:35:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wWYGn-002C3r-0g for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Jun 2026 11:35:53 +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 1wWYGm-002C3i-0D for pgsql-hackers@lists.postgresql.org; Mon, 08 Jun 2026 11:35:52 +0000 Received: from mail-yx1-xb12d.google.com ([2607:f8b0:4864:20::b12d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wWYGj-00000001g7n-2UzU for pgsql-hackers@lists.postgresql.org; Mon, 08 Jun 2026 11:35:51 +0000 Received: by mail-yx1-xb12d.google.com with SMTP id 956f58d0204a3-660390acd71so4275510d50.1 for ; Mon, 08 Jun 2026 04:35:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780918549; cv=none; d=google.com; s=arc-20240605; b=UcRx1BgGCdWdul5HERDUypcx0cTXxLDgyxepN0aQl4R4T8e5lorZ/6jVISkNi74DY8 gkjU7fKnqcQvQ5iiWbGisX0eSPCfKAcLxOUw2EJ5gL6m6fN/WMHDHgRp2zfM3oWSMPL+ qHodjz91hsrGHWG1IrtkUwvCsBVutOn//2OBOubYORL8m38e1JF5++pH6USXrW6ni6XV ZR+knoW1GWTDWskZzC/uPPTK5I+2gIjGxJo2SHmgXMgIeHw/giCB/RKHExshnk2hthkQ Q4puNwSmSpEgchh8dVFW7OkbtquqF1x7wb4j8BE8R5/aC34UWD7DT1ApZo997Y/B16d9 XuSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=PH6enl5xoHUs9uZt8JRtHf6nLuavrbi6FCNC5jSon3M=; fh=etbt14CTW7F0pxVxlDiVDrOllup9/1D7sEYXt8Nzz0I=; b=TaARwsETp5NIYzl3q3CtXjbxMNHYQmtCT2a60LPjyXQmzhTISM2gkPNNT8yDQ55Gsl eurzN0GhTkp39x+caUciewzLC2HrutYdwMdI3PrCch7P/fqzU/oSWfdsh5XQVyp4V+ba EEWvH1BOi6tigotn8SzpMkOHGNbrDAt/kyweKe5f0kSnrEPrVAHCVfChxZJTCDKzPOP0 wwLdapO85Amv2jcV8SPAuFcVsFkztvkpbytYPbLjlRIn7zdP+8D3p1ZS2OyFqBZ8DspM nomcr34mU9UPBptlw4/9Sd59SbNdFS08sAQPPyV2Jpf35QDCyMEo1lFRoF2mxaDskbrW tB8g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780918549; x=1781523349; 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=PH6enl5xoHUs9uZt8JRtHf6nLuavrbi6FCNC5jSon3M=; b=ODokUV6hEy/M6PdazhIIBAbkJ2zuf0MEqCIJtuyw3xdkdXNuGgaEQMZfCUVpQLJy4/ HIvM0IkXijuYop1eEwI4bEDI7p62xdlE6i0ws2nnWbI4TPp+li9qxRnHQSBO2I2nE8YM djMdsDsS7kJUiw7tgKltup1pRntwPRAqEhDjKzoWim6wvL4OYTYnDDO8z0LC/my0ClDu lK2g9xrj1bo5+uWisZ443g3cNSxq8bivnZrVPNQtYPQWQeKGPWAXaX2UlUl0oPE+JQIO 2EqlgJ5ljJZhErCgZsCybCmcuqi0AfwzQyYC1d2pyIxembzEFmC1L36zbiV2s7NV3aL3 qcOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780918549; x=1781523349; 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=PH6enl5xoHUs9uZt8JRtHf6nLuavrbi6FCNC5jSon3M=; b=OjV4LMZM62Rumi5KLkYwWSDklaI+a4C7PnlACqj4M7DrE3e1mO1RTnSwzNLJ8/qblT HiUWgdJThmdsNwD7VaTYNrYtoBTKQeThPtdr52h5gSwlJJ8HuPRh7NyTerVnqljecn5r IfxNWT90IrzFKDGO9CGdH8iRQtTMT1IhuWeqsvMuOUFfJ8APYbKk2SjXois/croteVZn NQ2rJAtx40OZtxZgRbfuibMnLioMmWXNZ9bw/cO5XCKjIlUxgcWYpWE6gN2mLSgrhRhE QA8rRwv2ijVVzusxT3CUx2G970TEayNos2yDv8FpLpZ9uIwPwxfD6eBVPz1xNJgDwPCT E/Iw== X-Forwarded-Encrypted: i=1; AFNElJ82MamTLRMYKBCFbISkKteQzncOCVhyf952shGwT6qzSvnPqjYnHkAg275/cq8P+RgjkXM1iqZCYhOhB+Wy@lists.postgresql.org X-Gm-Message-State: AOJu0YwQEnED1bODJit1ssNaNm6wdu3nG/pG1jXWUylGHh+/LG15qPnH RfC63yWvP0zP8cnbnPh5/KMScKif9Di0cxRUC8Jvmsx2VyOySmnP1VtrSC8ELy0P4yN8+rHwtJo qOJynGsHeQU3w4y5Lfs85X3WZ6BpJEo8= X-Gm-Gg: Acq92OHEN+FLQogccytnDSZWUlmFbVily8C2uVTVL4U+1u9sdJ4XU2y96GYT3uPPoSy 4wdub8DPbxbTCLhQAoqNrPUU6ifJqP+5e/iQ76XeBq+tKAIsDgYXquSskkKbgiczuxMDjaSs76J sr8z9OPMBpVhkh9HewKZ5zpqWFbPAuax+m/3LX+oKv2htvTCBtKjFBG7BxF0yyrc/gCflFm8Ujq 7CLBb4gLOO7FROEkVkolpNOTKKO4ulX1/TTkaqr1aHF3RydooIKOjAFJpNo519WdMJyfR+2Ja/Q 89G7e4tTkZKNX3d0Ux5o X-Received: by 2002:a05:690e:11c9:b0:65e:4bcb:2a76 with SMTP id 956f58d0204a3-6610a7f137cmr9782094d50.39.1780918548575; Mon, 08 Jun 2026 04:35:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Mon, 8 Jun 2026 17:05:33 +0530 X-Gm-Features: AVVi8CdF9Lqr-RuwyZnFoKUlZmNtrp35UZCpFH4wJ-4VFQKPJFpZ1uXAN4YJ-pE Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Peter Smith Cc: Dilip Kumar , Nisha Moond , Amit Kapila , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="000000000000768f830653bc69ca" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000768f830653bc69ca Content-Type: text/plain; charset="UTF-8" On Thu, 4 Jun 2026 at 11:59, Peter Smith wrote: > > Some review comments for patch v45-0003. > > 3. > + relid = get_relname_relid(relname, PG_CONFLICT_NAMESPACE); > + if (OidIsValid(relid)) > + { > + /* Existing table from upgrade */ > + Assert(IsBinaryUpgrade); > + } > + else > > Should this be the other way around? > > if (IsBinaryUpgrade) > { > relid = get_relname_relid(relname, PG_CONFLICT_NAMESPACE); > Assert(OidIsValid(relid)); > } This is done intentionally so that the Assert fails if the table exists in case of non binary upgrade mode. > 6. > + if (fout->remoteVersion >= 190000) > + appendPQExpBufferStr(query, > + " s.subconflictlogrelid, s.subconflictlogdest\n"); > else > - appendPQExpBufferStr(query, " NULL AS subservername\n"); > + appendPQExpBufferStr(query, > + " NULL AS subconflictlogrelid, NULL AS subconflictlogdest\n"); > > It seems more natural to think of the 'subconflictlogdest' before the > subconflictlogrelid. Perhaps the SQL should swap those around. I think the existing is better as it does select in the same order as it is maintained in the table. > ~~~ > > 7. > + if (PQgetisnull(res, i, i_subconflictlogrelid)) > + subinfo[i].subconflictlogrelid = InvalidOid; > + else > + { > + TableInfo *tableInfo; > + > + subinfo[i].subconflictlogrelid = > + atooid(PQgetvalue(res, i, i_subconflictlogrelid)); > + > + if (subinfo[i].subconflictlogrelid) > + { > + tableInfo = findTableByOid(subinfo[i].subconflictlogrelid); > + if (!tableInfo) > + pg_fatal("could not find conflict log table with OID %u", > + subinfo[i].subconflictlogrelid); > + > + addObjectDependency(&subinfo[i].dobj, tableInfo->dobj.dumpId); > + } > + } > + > + if (PQgetisnull(res, i, i_sublogdestination)) > + subinfo[i].subconflictlogdest = NULL; > + else > + subinfo[i].subconflictlogdest = > + pg_strdup(PQgetvalue(res, i, i_sublogdestination)); > + > > 7a. > Those new attributes come as a pair -- e.g. the relid only makes sense > depending on the destination value; maybe only look for the CLT relid > is the destination is not LOG/NULL I think the existing is better as it does select in the same order as it is maintained in the table. > Knowing the destination also means you can also do integrity checks > for PQgetisnull(res, i, i_subconflictlogrelid) -- e.g. must be valid > Oid, or must be invalid Oid. I'm not sure if it is pg_dump's responsibility to do these integrity checks in this case. > ~~~ > > dumpSubscription: > > 8. > + if (subinfo->subconflictlogdest && > + (pg_strcasecmp(subinfo->subconflictlogdest, "log") != 0)) > + appendPQExpBuffer(query, > + "\n\nALTER SUBSCRIPTION %s SET (conflict_log_destination = %s);\n", > + qsubname, > + subinfo->subconflictlogdest); > + > 8b. > Not sure why this has a double \n\n prefix instead of just \n. I > didn't see that pattern elsewhere in this file. Generally there is 2 line gaps between the create and alter subscription, it was done to maintain the same line gaps like below: CREATE SUBSCRIPTION sub3 CONNECTION 'dbname=doesnotexist' PUBLICATION pub1 WITH (connect = false, slot_name = 'sub3', streaming = on); ALTER SUBSCRIPTION sub3 SET (conflict_log_destination = table); ALTER SUBSCRIPTION sub3 OWNER TO vignesh; The rest of the comments were fixed. The attached v47 version patch has the changes for the same. Regards, Vignesh --000000000000768f830653bc69ca Content-Type: application/octet-stream; name="v47-0001-Add-configurable-conflict-log-table-for-Logical.patch" Content-Disposition: attachment; filename="v47-0001-Add-configurable-conflict-log-table-for-Logical.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq54pjng0 RnJvbSAwMDA4OTY4ZTBiNTE2YzgyZDA3Yjc3MDU3MjA5ZWViNDUwZGMzMWQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBKdW4gMjAyNiAwNjo0Mzo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjQ3IDEvNV0g QWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwgCiBSZXBsaWNh dGlvbgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhpcyBwYXRjaCBhZGRzIGEg ZmVhdHVyZSB0byBwcm92aWRlIGEgc3RydWN0dXJlZCwgcXVlcnlhYmxlIHJlY29yZCBvZiBhbGwK bG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIFRoZSBjdXJyZW50IGFwcHJvYWNoIG9mIGxv Z2dpbmcgY29uZmxpY3RzIGFzCnBsYWluIHRleHQgaW4gdGhlIHNlcnZlciBsb2dzIG1ha2VzIGl0 IGRpZmZpY3VsdCB0byBxdWVyeSwgYW5hbHl6ZSwgYW5kCnVzZSBmb3IgZXh0ZXJuYWwgbW9uaXRv cmluZyBhbmQgYXV0b21hdGlvbi4KClRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRoZXNlIGxpbWl0YXRp b25zIGJ5IGludHJvZHVjaW5nIGEgY29uZmlndXJhYmxlCmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv bj0oJ2xvZycvJ3RhYmxlJy8nYWxsJykgb3B0aW9uIGluIHRoZSBDUkVBVEUgU1VCU0NSSVBUSU9O CmNvbW1hbmQuCgpJZiB0aGUgdXNlciBjaG9vc2VzIHRvIGVuYWJsZSBsb2dnaW5nIHRvIGEgdGFi bGUgKGJ5IHNlbGVjdGluZyAndGFibGUnIG9yICdhbGwnKSwKYW4gaW50ZXJuYWwgbG9nZ2luZyB0 YWJsZSBuYW1lZCBwZ19jb25mbGljdF9sb2dfPHN1YmlkPiBpcyBhdXRvbWF0aWNhbGx5CmNyZWF0 ZWQgd2l0aGluIGEgZGVkaWNhdGVkLCBzeXN0ZW0tbWFuYWdlZCAncGdfY29uZmxpY3QnIG5hbWVz cGFjZSB0byBwcmV2ZW50CnVzZXJzIGZyb20gbWFudWFsbHkgZHJvcHBpbmcgb3IgYWx0ZXJpbmcg aXQuIFRoaXMgYWxzbyBwcmV2ZW50cyBhY2NpZGVudGFsCm5hbWUgY29sbGlzaW9ucyB3aXRoIHVz ZXItY3JlYXRlZCB0YWJsZXMuIFRoaXMgdGFibGUgaXMgbGlua2VkIHRvIHRoZQpzdWJzY3JpcHRp b24gdmlhIGFuIGludGVybmFsIGRlcGVuZGVuY3ksIGVuc3VyaW5nIGl0IGlzIGF1dG9tYXRpY2Fs bHkgZHJvcHBlZAp3aGVuIHRoZSBzdWJzY3JpcHRpb24gaXMgcmVtb3ZlZAoKVGhlIHBlci1zdWJz Y3JpcHRpb24gdGFibGUgbW9kZWwgd2FzIGNob3NlbiBvdmVyIGEgc2luZ2xlIGdsb2JhbCBsb2cg dG8gZW5zdXJlCnN1cGVyaW9yIGlzb2xhdGlvbiBhbmQgYWRtaW5pc3RyYXRpdmUgZmxleGliaWxp dHkgYnkgZGlyZWN0bHkgYWxpZ25pbmcgdGFibGUgb3duZXJzaGlwCndpdGggdGhlIHN1YnNjcmlw dGlvbuKAmXMgbGlmZWN5Y2xlLiBUaGlzIGFwcHJvYWNoIGFsbG93cyBmb3IgZ3JhbnVsYXIgcGVy bWlzc2lvbgptYW5hZ2VtZW50LCBlbmFibGluZyB0aGUgc3Vic2NyaXB0aW9uIG93bmVyIHRvIHBl cmZvcm0gbmVjZXNzYXJ5IG1haW50ZW5hbmNlCnRhc2tzIGxpa2UgU0VMRUNULCBERUxFVEUsIGFu ZCBUUlVOQ0FURSB3aXRob3V0IHRoZSBzZWN1cml0eSByaXNrcyBvciBjb21wbGV4ClJvdy1MZXZl bCBTZWN1cml0eSByZXF1aXJlZCBieSBhIHNoYXJlZCBnbG9iYWwgdGFibGUuCgpUaGUgY29uZmxp Y3QgZGV0YWlscywgaW5jbHVkaW5nIHRoZSBvcmlnaW5hbCBhbmQgcmVtb3RlIHR1cGxlcywgYXJl IHN0b3JlZCBpbiBKU09OCmNvbHVtbnMsIHByb3ZpZGluZyBhIGZsZXhpYmxlIGZvcm1hdCB0byBh Y2NvbW1vZGF0ZSBkaWZmZXJlbnQgdGFibGUgc2NoZW1hcy4KClRoZSBsb2cgdGFibGUgY2FwdHVy ZXMgZXNzZW50aWFsIGF0dHJpYnV0ZXMgc3VjaCBhcyBsb2NhbCBhbmQgcmVtb3RlIHRyYW5zYWN0 aW9uIElEcywKTFNOcywgY29tbWl0IHRpbWVzdGFtcHMsIGFuZCBjb25mbGljdCB0eXBlLCBwcm92 aWRpbmcgYSBjb21wbGV0ZSByZWNvcmQgZm9yIHBvc3QtbW9ydGVtCmFuYWx5c2lzLgoKVGhpcyBm ZWF0dXJlIHdpbGwgbWFrZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cyBlYXNpZXIgdG8g bW9uaXRvciBhbmQgbWFuYWdlLApzaWduaWZpY2FudGx5IGltcHJvdmluZyB0aGUgb3ZlcmFsbCBy ZXNpbGllbmNlIGFuZCBvcGVyYWJpbGl0eSBvZiByZXBsaWNhdGlvbiBzZXR1cHMuCgpUaGUgY29u ZmxpY3QgbG9nIHRhYmxlcyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiBhIHB1YmxpY2F0aW9uLCBl dmVuIGlmIHRoZSBwdWJsaWNhdGlvbgppcyBjb25maWd1cmVkIHRvIGluY2x1ZGUgQUxMIFRBQkxF UyBvciBBTEwgVEFCTEVTIElOIFNDSEVNQS4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNo ay5jICAgICAgICAgICAgICAgfCAgNTAgKystLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9n LmMgICAgICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAg ICAgICAgICAgICAgfCAgMzIgKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICAg ICAgICAgICAgfCAgMTEgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyAg ICAgICB8ICAxNCArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyAgICAg IHwgICA3ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICB8ICAg NCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgIHwgMjEyICsr KysrKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAg fCAgIDYgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICB8ICAy OCArKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jIHwgMTc1ICsr KysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgIHwg ICAyICstCiBzcmMvYmluL2luaXRkYi9pbml0ZGIuYyAgICAgICAgICAgICAgICAgICAgfCAgIDYg Kwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgIHwgICA4ICstCiBz cmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaCAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2NvbmZsaWN0LmggICAgICAgICB8ICAyNyArKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmggICAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1 YnNjcmlwdGlvbi5vdXQgfCAzMDggKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgfCAyNTYgKysrKysrKysrKysrKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICB8ICAgMiArCiAyMyBmaWxl cyBjaGFuZ2VkLCAxMTQ3IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2Fj bGNoay5jCmluZGV4IDAwN2VkZTk5N2M1Li42NGUxNzY2NTJkMSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j CkBAIC0zMzM3LDI1ICszMzM3LDM5IEBAIHBnX2NsYXNzX2FjbG1hc2tfZXh0KE9pZCB0YWJsZV9v aWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbWFzaywKIAogCWNsYXNzRm9ybSA9IChGb3JtX3BnX2Ns YXNzKSBHRVRTVFJVQ1QodHVwbGUpOwogCi0JLyoKLQkgKiBEZW55IGFueW9uZSBwZXJtaXNzaW9u IHRvIHVwZGF0ZSBhIHN5c3RlbSBjYXRhbG9nIHVubGVzcwotCSAqIHBnX2F1dGhpZC5yb2xzdXBl ciBpcyBzZXQuCi0JICoKLQkgKiBBcyBvZiA3LjQgd2UgaGF2ZSBzb21lIHVwZGF0YWJsZSBzeXN0 ZW0gdmlld3M7IHRob3NlIHNob3VsZG4ndCBiZQotCSAqIHByb3RlY3RlZCBpbiB0aGlzIHdheS4g IEFzc3VtZSB0aGUgdmlldyBydWxlcyBjYW4gdGFrZSBjYXJlIG9mCi0JICogdGhlbXNlbHZlcy4g IEFDTF9VU0FHRSBpcyBpZiB3ZSBldmVyIGhhdmUgc3lzdGVtIHNlcXVlbmNlcy4KLQkgKi8KLQlp ZiAoKG1hc2sgJiAoQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RS VU5DQVRFIHwgQUNMX1VTQUdFKSkgJiYKLQkJSXNTeXN0ZW1DbGFzcyh0YWJsZV9vaWQsIGNsYXNz Rm9ybSkgJiYKLQkJY2xhc3NGb3JtLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVyAmJgotCQkhc3Vw ZXJ1c2VyX2FyZyhyb2xlaWQpKQotCQltYXNrICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUg fCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdFKTsKLQotCS8qCi0JICogT3Ro ZXJ3aXNlLCBzdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVybWlzc2lvbi1jaGVja2luZy4KLQkgKi8K LQlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQorCWlmICghc3VwZXJ1c2VyX2FyZyhyb2xlaWQp KQorCXsKKwkJaWYgKG1hc2sgJiAoQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRF IHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdFKSkKKwkJeworCQkJaWYgKElzQ29uZmxpY3RMb2dU YWJsZUNsYXNzKGNsYXNzRm9ybSkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3Qg bG9nIHRhYmxlcywgYWxsb3cgbm9uLXN1cGVydXNlcnMgdG8gcGVyZm9ybQorCQkJCSAqIERFTEVU RSBhbmQgVFJVTkNBVEUgZm9yIGNsZWFudXAgYW5kIG1haW50ZW5hbmNlLCB3aGlsZSBzdGlsbAor CQkJCSAqIHJlc3RyaWN0aW5nIElOU0VSVCwgVVBEQVRFLCBhbmQgVVNBR0UuCisJCQkJICovCisJ CQkJbWFzayAmPSB+KEFDTF9JTlNFUlQgfCBBQ0xfVVBEQVRFIHwgQUNMX1VTQUdFKTsKKwkJCX0K KwkJCWVsc2UgaWYgKElzU3lzdGVtQ2xhc3ModGFibGVfb2lkLCBjbGFzc0Zvcm0pICYmCisJCQkJ Y2xhc3NGb3JtLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVykKKwkJCXsKKwkJCQkvKgorCQkJCSAq IERlbnkgYW55b25lIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgc3lzdGVtIGNhdGFsb2cgdW5sZXNz CisJCQkJICogcGdfYXV0aGlkLnJvbHN1cGVyIGlzIHNldC4KKwkJCQkgKgorCQkJCSAqIEFzIG9m IDcuNCB3ZSBoYXZlIHNvbWUgdXBkYXRhYmxlIHN5c3RlbSB2aWV3czsgdGhvc2UKKwkJCQkgKiBz aG91bGRuJ3QgYmUgcHJvdGVjdGVkIGluIHRoaXMgd2F5LiAgQXNzdW1lIHRoZSB2aWV3IHJ1bGVz CisJCQkJICogY2FuIHRha2UgY2FyZSBvZiB0aGVtc2VsdmVzLiAgQUNMX1VTQUdFIGlzIGlmIHdl IGV2ZXIgaGF2ZQorCQkJCSAqIHN5c3RlbSBzZXF1ZW5jZXMuCisJCQkJICovCisJCQkJbWFzayAm PSB+KEFDTF9JTlNFUlQgfCBBQ0xfVVBEQVRFIHwgQUNMX0RFTEVURSB8IEFDTF9UUlVOQ0FURSB8 CisJCQkJCQkgIEFDTF9VU0FHRSk7CisJCQl9CisJCX0KKwl9CisJZWxzZQogCXsKKwkJLyogU3Vw ZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Npb24tY2hlY2tpbmcuICovCiAJCVJlbGVhc2VTeXND YWNoZSh0dXBsZSk7CiAJCXJldHVybiBtYXNrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvY2F0YWxvZy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKaW5kZXgg N2JlNDkwMzI5MzQuLmJlODc5MWFmODc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L2NhdGFsb2cuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwpAQCAtODYsNyAr ODYsOSBAQCBib29sCiBJc1N5c3RlbUNsYXNzKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0 dXBsZSkKIHsKIAkvKiBJc0NhdGFsb2dSZWxhdGlvbk9pZCBpcyBhIGJpdCBmYXN0ZXIsIHNvIHRl c3QgdGhhdCBmaXJzdCAqLwotCXJldHVybiAoSXNDYXRhbG9nUmVsYXRpb25PaWQocmVsaWQpIHx8 IElzVG9hc3RDbGFzcyhyZWx0dXBsZSkpOworCXJldHVybiAoSXNDYXRhbG9nUmVsYXRpb25PaWQo cmVsaWQpIHx8CisJCQlJc1RvYXN0Q2xhc3MocmVsdHVwbGUpIHx8CisJCQlJc0NvbmZsaWN0TG9n VGFibGVDbGFzcyhyZWx0dXBsZSkpOwogfQogCiAvKgpAQCAtMjMwLDYgKzIzMiwyMCBAQCBJc1Rv YXN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAlyZXR1cm4gSXNUb2FzdE5hbWVzcGFj ZShyZWxuYW1lc3BhY2UpOwogfQogCisvKgorICogSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MKKyAq CQlUcnVlIGlmZiBwZ19jbGFzcyB0dXBsZSByZXByZXNlbnRzIGEgQ29uZmxpY3QgTG9nIFRhYmxl LgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3JtIGFueSBjYXRhbG9nIGFjY2Vzc2VzLgorICovCiti b29sCitJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQorewor CU9pZAkJCXJlbG5hbWVzcGFjZSA9IHJlbHR1cGxlLT5yZWxuYW1lc3BhY2U7CisKKwlyZXR1cm4g SXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7Cit9CisKIC8qCiAgKiBJ c0NhdGFsb2dOYW1lc3BhY2UKICAqCQlUcnVlIGlmZiBuYW1lc3BhY2UgaXMgcGdfY2F0YWxvZy4K QEAgLTI2NCw2ICsyODAsMTcgQEAgSXNUb2FzdE5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpCiAJ CWlzVGVtcFRvYXN0TmFtZXNwYWNlKG5hbWVzcGFjZUlkKTsKIH0KIAorLyoKKyAqIElzQ29uZmxp Y3RMb2dUYWJsZU5hbWVzcGFjZQorICoJCVRydWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jb25mbGlj dC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9ybSBhbnkgY2F0YWxvZyBhY2Nlc3Nlcy4KKyAqLwor Ym9vbAorSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKK3sKKwly ZXR1cm4gbmFtZXNwYWNlSWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFOworfQogCiAvKgogICog SXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggODgwODc2NTRkZTkuLjVkMDdkY2MxYzVi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzA1LDIzICszMDUsMzEgQEAgaGVhcF9jcmVhdGUoY29uc3Qg Y2hhciAqcmVsbmFtZSwKIAlBc3NlcnQoT2lkSXNWYWxpZChyZWxpZCkpOwogCiAJLyoKLQkgKiBE b24ndCBhbGxvdyBjcmVhdGluZyByZWxhdGlvbnMgaW4gcGdfY2F0YWxvZyBkaXJlY3RseSwgZXZl biB0aG91Z2ggaXQKLQkgKiBpcyBhbGxvd2VkIHRvIG1vdmUgdXNlciBkZWZpbmVkIHJlbGF0aW9u cyB0aGVyZS4gU2VtYW50aWNzIHdpdGggc2VhcmNoCi0JICogcGF0aHMgaW5jbHVkaW5nIHBnX2Nh dGFsb2cgYXJlIHRvbyBjb25mdXNpbmcgZm9yIG5vdy4KKwkgKiBEb24ndCBhbGxvdyBjcmVhdGlu ZyByZWxhdGlvbnMgaW4gcGdfY2F0YWxvZyBvciBwZ19jb25mbGljdCBkaXJlY3RseSwKKwkgKiBl dmVuIHRob3VnaCBpdCBpcyBhbGxvd2VkIHRvIG1vdmUgdXNlciBkZWZpbmVkIHJlbGF0aW9ucyB0 aGVyZS4gU2VtYW50aWNzCisJICogd2l0aCBzZWFyY2ggcGF0aHMgaW5jbHVkaW5nIHBnX2NhdGFs b2cgYXJlIHRvbyBjb25mdXNpbmcgZm9yIG5vdy4KIAkgKgogCSAqIEJ1dCBhbGxvdyBjcmVhdGlu ZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBwZ19jYXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19z eXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBwZXIgbGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0 J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCByZWxhdGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KIAkg Ki8KLQlpZiAoIWFsbG93X3N5c3RlbV90YWJsZV9tb2RzICYmCi0JCSgoSXNDYXRhbG9nTmFtZXNw YWNlKHJlbG5hbWVzcGFjZSkgJiYgcmVsa2luZCAhPSBSRUxLSU5EX0lOREVYKSB8fAotCQkgSXNU b2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKSAmJgotCQlJc05vcm1hbFByb2Nlc3NpbmdNb2Rl KCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRf UFJJVklMRUdFKSwKLQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgXCIl cy4lc1wiIiwKLQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShyZWxuYW1lc3BhY2UpLCByZWxuYW1l KSwKLQkJCQkgZXJyZGV0YWlsKCJTeXN0ZW0gY2F0YWxvZyBtb2RpZmljYXRpb25zIGFyZSBjdXJy ZW50bHkgZGlzYWxsb3dlZC4iKSkpOworCWlmICghYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgJiYg SXNOb3JtYWxQcm9jZXNzaW5nTW9kZSgpKQorCXsKKwkJaWYgKChJc0NhdGFsb2dOYW1lc3BhY2Uo cmVsbmFtZXNwYWNlKSAmJiByZWxraW5kICE9IFJFTEtJTkRfSU5ERVgpIHx8CisJCQlJc1RvYXN0 TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNz aW9uIGRlbmllZCB0byBjcmVhdGUgXCIlc1wiIiwKKwkJCQkJCQlnZXRfcXVhbGlmaWVkX29iam5h bWUocmVsbmFtZXNwYWNlLCByZWxuYW1lKSksCisJCQkJCSBlcnJkZXRhaWwoIlN5c3RlbSBjYXRh bG9nIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJlbnRseSBkaXNhbGxvd2VkLiIpKSk7CisKKwkJaWYg KElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJ CQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQgdG8gY3JlYXRlIFwiJXNcIiIsCisJCQkJCQkJ Z2V0X3F1YWxpZmllZF9vYmpuYW1lKHJlbG5hbWVzcGFjZSwgcmVsbmFtZSkpLAorCQkJCQkgZXJy ZGV0YWlsKCJDb25mbGljdCBzY2hlbWEgbW9kaWZpY2F0aW9ucyBhcmUgY3VycmVudGx5IGRpc2Fs bG93ZWQuIikpKTsKKwl9CiAKIAkqcmVsZnJvemVueGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7 CiAJKnJlbG1pbm14aWQgPSBJbnZhbGlkTXVsdGlYYWN0SWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2Uu YwppbmRleCA1NmI4N2Q4NzhlOC4uNWJkOWJlMzk4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2Uu YwpAQCAtMzUyMyw5ICszNTIzLDggQEAgTG9va3VwQ3JlYXRpb25OYW1lc3BhY2UoY29uc3QgY2hh ciAqbnNwbmFtZSkKIC8qCiAgKiBDb21tb24gY2hlY2tzIG9uIHN3aXRjaGluZyBuYW1lc3BhY2Vz LgogICoKLSAqIFdlIGNvbXBsYWluIGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2Vz IGlzIGEgdGVtcG9yYXJ5IHNjaGVtYQotICogKG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBv ciBpZiBlaXRoZXIgdGhlIG9sZCBvciBuZXcgbmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNj aGVtYS4KKyAqIFdlIGNvbXBsYWluIGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2Vz IGlzIGEgdGVtcG9yYXJ5IHNjaGVtYSwKKyAqIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEsIHRoZSBU T0FTVCBzY2hlbWEsIG9yIHRoZSBjb25mbGljdCBzY2hlbWEuCiAgKi8KIHZvaWQKIENoZWNrU2V0 TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCkBAIC0zNTQxLDYgKzM1NDAsMTIg QEAgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJ CQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9yIG91dCBvZiBUT0FTVCBzY2hl bWEiKSkpOworCisJLyogc2ltaWxhcmx5IGZvciBjb25mbGljdCBzY2hlbWEgKi8KKwlpZiAobnNw T2lkID09IFBHX0NPTkZMSUNUX05BTUVTUEFDRSB8fCBvbGROc3BPaWQgPT0gUEdfQ09ORkxJQ1Rf TkFNRVNQQUNFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBvYmplY3RzIGludG8g b3Igb3V0IG9mIHRoZSBjb25mbGljdCBzY2hlbWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDVjNDU3ZDlhY2E4Li4xZWM5NGM4NTFiMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtOTIsNiArOTIsMTMgQEAgY2hlY2tfcHVi bGljYXRpb25fYWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQogCQkJCSBlcnJt c2coZXJyb3Jtc2csIHJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlz IG5vdCBzdXBwb3J0ZWQgZm9yIHN5c3RlbSB0YWJsZXMuIikpKTsKIAorCS8qIENhbid0IGJlIGNv bmZsaWN0IGxvZyB0YWJsZSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVs YXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZyhlcnJv cm1zZywgcmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1 cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4iKSkpOworCiAJLyogVU5MT0dHRUQgYW5k IFRFTVAgcmVsYXRpb25zIGNhbm5vdCBiZSBwYXJ0IG9mIHB1YmxpY2F0aW9uLiAqLwogCWlmICh0 YXJnZXRyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkK IAkJZXJlcG9ydChFUlJPUiwKQEAgLTExMyw3ICsxMjAsOCBAQCBzdGF0aWMgdm9pZAogY2hlY2tf cHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgc2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUgc3lz dGVtIG5hbWVzcGFjZSAqLwotCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElz VG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpKQorCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1h aWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpIHx8CisJCUlzQ29uZmxpY3RMb2dUYWJs ZU5hbWVzcGFjZShzY2hlbWFpZCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGFkZCBz Y2hlbWEgXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKQEAgLTE0OCw3ICsxNTYsOCBAQCBjaGVja19w dWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBzY2hlbWFpZCkKICAqIGlzIHJlYWxseSBpbmFkZXF1 YXRlIGZvciB0aGF0LCBzaW5jZSB0aGUgaW5mb3JtYXRpb25fc2NoZW1hIGNvdWxkIGJlCiAgKiBk cm9wcGVkIGFuZCByZWxvYWRlZCBhbmQgdGhlbiBpdCdsbCBiZSBjb25zaWRlcmVkIHB1Ymxpc2hh YmxlLiAgVGhlIGJlc3QKICAqIGxvbmctdGVybSBzb2x1dGlvbiBtYXkgYmUgdG8gYWRkIGEgInJl bGlzcHVibGlzaGFibGUiIGJvb2wgdG8gcGdfY2xhc3MsCi0gKiBhbmQgZGVwZW5kIG9uIHRoYXQg aW5zdGVhZCBvZiBPSUQgY2hlY2tzLgorICogYW5kIGRlcGVuZCBvbiB0aGF0IGluc3RlYWQgb2Yg T0lEIGNoZWNrcy4gIElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKCkKKyAqIGV4Y2x1ZGVzIHRhYmxl cyBpbiBjb25mbGljdCBzY2hlbWEuCiAgKi8KIHN0YXRpYyBib29sCiBpc19wdWJsaXNoYWJsZV9j bGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCkBAIC0xNTcsNiArMTY2LDcg QEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxl KQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAog CQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxv Z1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkhSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsdHVw bGUpICYmCiAJCXJlbHR1cGxlLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9QRVJN QU5FTlQgJiYKIAkJcmVsaWQgPj0gRmlyc3ROb3JtYWxPYmplY3RJZDsKIH0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IDFmMWZkYzc1YWY2Li44MDk4MThhZjllYSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC0xMTgsNiArMTE4LDcgQEAgR2V0 U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGFjbGNoZWNrKQog CXN1Yi0+cmV0YWluZGVhZHR1cGxlcyA9IHN1YmZvcm0tPnN1YnJldGFpbmRlYWR0dXBsZXM7CiAJ c3ViLT5tYXhyZXRlbnRpb24gPSBzdWJmb3JtLT5zdWJtYXhyZXRlbnRpb247CiAJc3ViLT5yZXRl bnRpb25hY3RpdmUgPSBzdWJmb3JtLT5zdWJyZXRlbnRpb25hY3RpdmU7CisJc3ViLT5jb25mbGlj dGxvZ3JlbGlkID0gc3ViZm9ybS0+c3ViY29uZmxpY3Rsb2dyZWxpZDsKIAogCS8qIEdldCBjb25u aW5mbyAqLwogCWlmIChPaWRJc1ZhbGlkKHN1YmZvcm0tPnN1YnNlcnZlcikpCkBAIC0xODcsNiAr MTg4LDEyIEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaywgYm9v bCBhY2xjaGVjaykKIAkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luKTsK IAlzdWItPm9yaWdpbiA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwogCisJLyogR2V0IGNv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVs bChTVUJTQ1JJUFRJT05PSUQsCisJCQkJCQkJCSAgIHR1cCwKKwkJCQkJCQkJICAgQW51bV9wZ19z dWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0KTsKKwlzdWItPmNvbmZsaWN0bG9nZGVzdCA9 IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCiAJLyogSXMgdGhlIHN1YnNjcmlwdGlvbiBv d25lciBhIHN1cGVydXNlcj8gKi8KIAlzdWItPm93bmVyc3VwZXJ1c2VyID0gc3VwZXJ1c2VyX2Fy ZyhzdWItPm93bmVyKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDhm MTI5YmFlYzkwLi41OTY3NzYyZTYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bApAQCAtMTUyNyw4ICsxNTI3LDggQEAgR1JBTlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNr aXBsc24sIHN1Ym5hbWUsIHN1Ym93bmVyLCBzdWJlbmFibGVkLAogICAgICAgICAgICAgICBzdWJi aW5hcnksIHN1YnN0cmVhbSwgc3VidHdvcGhhc2VzdGF0ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJ ICBzdWJwYXNzd29yZHJlcXVpcmVkLCBzdWJydW5hc293bmVyLCBzdWJmYWlsb3ZlciwKICAgICAg ICAgICAgICAgc3VicmV0YWluZGVhZHR1cGxlcywgc3VibWF4cmV0ZW50aW9uLCBzdWJyZXRlbnRp b25hY3RpdmUsCi0gICAgICAgICAgICAgIHN1YnNlcnZlciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNj b21taXQsIHN1YndhbHJjdnRpbWVvdXQsCi0gICAgICAgICAgICAgIHN1YnB1YmxpY2F0aW9ucywg c3Vib3JpZ2luKQorICAgICAgICAgICAgICBzdWJzZXJ2ZXIsIHN1YmNvbmZsaWN0bG9ncmVsaWQs IHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vic2xvdG5hbWUsCisgICAgICAgICAgICAgIHN1YnN5bmNj b21taXQsIHN1YndhbHJjdnRpbWVvdXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQogICAg IE9OIHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vi c2NyaXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMK aW5kZXggNTIzOTU5YmEwY2UuLjdkMDliODBiYTVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19h dXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVz cGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBl LmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNj cmlwdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRl ICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtNzksNiArODEsNyBAQAogI2RlZmluZSBTVUJPUFRfV0FM X1JFQ0VJVkVSX1RJTUVPVVQJCQkweDAwMDEwMDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4 MDAwMjAwMDAKICNkZWZpbmUgU1VCT1BUX09SSUdJTgkJCQkweDAwMDQwMDAwCisjZGVmaW5lIFNV Qk9QVF9DT05GTElDVF9MT0dfREVTVAkweDAwMDgwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFs JyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYg KGJpdHMpKSA9PSAoYml0cykpCkBAIC0xMDcsNiArMTEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vi T3B0cwogCWJvb2wJCXJldGFpbmRlYWR0dXBsZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAlj aGFyCSAgICpvcmlnaW47CisJQ29uZmxpY3RMb2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9n UmVjUHRyCWxzbjsKIAljaGFyCSAgICp3YWxfcmVjZWl2ZXJfdGltZW91dDsKIH0gU3ViT3B0czsK QEAgLTE0MCw3ICsxNDQsMTIgQEAgc3RhdGljIExpc3QgKm1lcmdlX3B1YmxpY2F0aW9ucyhMaXN0 ICpvbGRwdWJsaXN0LCBMaXN0ICpuZXdwdWJsaXN0LCBib29sIGFkZHB1YiwKIHN0YXRpYyB2b2lk IFJlcG9ydFNsb3RDb25uZWN0aW9uRXJyb3IoTGlzdCAqcnN0YXRlcywgT2lkIHN1YmlkLCBjaGFy ICpzbG90bmFtZSwgY2hhciAqZXJyKTsKIHN0YXRpYyB2b2lkIENoZWNrQWx0ZXJTdWJPcHRpb24o U3Vic2NyaXB0aW9uICpzdWIsIGNvbnN0IGNoYXIgKm9wdGlvbiwKIAkJCQkJCQkJYm9vbCBzbG90 X25lZWRzX3VwZGF0ZSwgYm9vbCBpc1RvcExldmVsKTsKLQorc3RhdGljIGJvb2wgYWx0ZXJfc3Vi X2NvbmZsaWN0bG9nZGVzdGluYXRpb24oU3Vic2NyaXB0aW9uICpzdWIsCisJCQkJCQkJCQkJCSBD b25mbGljdExvZ0Rlc3Qgb2xkbG9nZGVzdCwKKwkJCQkJCQkJCQkJIENvbmZsaWN0TG9nRGVzdCBu ZXdsb2dkZXN0LAorCQkJCQkJCQkJCQkgT2lkICpjb25mbGljdHRhYmxlcmVsaWQpOworc3RhdGlj IHZvaWQgZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3VibmFt ZSwKKwkJCQkJCQkJCQlPaWQgc3ViY29uZmxpY3Rsb2dyZWxpZCk7CiAKIC8qCiAgKiBDb21tb24g b3B0aW9uIHBhcnNpbmcgZnVuY3Rpb24gZm9yIENSRUFURSBhbmQgQUxURVIgU1VCU0NSSVBUSU9O IGNvbW1hbmRzLgpAQCAtMTk2LDYgKzIwNSw4IEBAIHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25z KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAogCQlvcHRzLT5tYXhyZXRl bnRpb24gPSAwOwogCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJ CW9wdHMtPm9yaWdpbiA9IHBzdHJkdXAoTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKKwlpZiAoSXNT ZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkpCisJCW9wdHMtPmNv bmZsaWN0bG9nZGVzdCA9IENPTkZMSUNUX0xPR19ERVNUX0xPRzsKIAogCS8qIFBhcnNlIG9wdGlv bnMgKi8KIAlmb3JlYWNoKGxjLCBzdG10X29wdGlvbnMpCkBAIC00MzEsNiArNDQyLDE4IEBAIHBh cnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9v cHRpb25zLAogCQkJCQkJCQkJCSBQR0NfQkFDS0VORCwgUEdDX1NfVEVTVCwgR1VDX0FDVElPTl9T RVQsCiAJCQkJCQkJCQkJIGZhbHNlLCAwLCBmYWxzZSk7CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQo c3VwcG9ydGVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkgJiYKKwkJCQkgc3RyY21w KGRlZmVsLT5kZWZuYW1lLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIikgPT0gMCkKKwkJewor CQkJY2hhciAqdmFsOworCisJCQlpZiAoSXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMsIFNVQk9Q VF9DT05GTElDVF9MT0dfREVTVCkpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWws IHBzdGF0ZSk7CisKKwkJCXZhbCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CisJCQlvcHRzLT5jb25m bGljdGxvZ2Rlc3QgPSBHZXRDb25mbGljdExvZ0Rlc3QodmFsKTsKKwkJCW9wdHMtPnNwZWNpZmll ZF9vcHRzIHw9IFNVQk9QVF9DT05GTElDVF9MT0dfREVTVDsKKwkJfQogCQllbHNlCiAJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBAIC02Mjks NiArNjUyLDcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl U3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAl1aW50MzIJCXN1cHBvcnRlZF9vcHRzOwogCVN1Yk9w dHMJCW9wdHMgPSB7MH07CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQlsb2dyZWxpZCA9 IEludmFsaWRPaWQ7CiAKIAkvKgogCSAqIFBhcnNlIGFuZCBjaGVjayBvcHRpb25zLgpAQCAtNjQz LDcgKzY2Nyw4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNV Qk9QVF9GQUlMT1ZFUiB8CiAJCQkJCSAgU1VCT1BUX1JFVEFJTl9ERUFEX1RVUExFUyB8CiAJCQkJ CSAgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04gfAotCQkJCQkgIFNVQk9QVF9XQUxfUkVD RUlWRVJfVElNRU9VVCB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9XQUxfUkVDRUlW RVJfVElNRU9VVCB8IFNVQk9QVF9PUklHSU4gfAorCQkJCQkgIFNVQk9QVF9DT05GTElDVF9MT0df REVTVCk7CiAJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25z LCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwogCiAJLyoKQEAgLTgxNyw2ICs4NDIsMjAgQEAgQ3Jl YXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3Rt dCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luIC0gMV0gPQog CQlDU3RyaW5nR2V0VGV4dERhdHVtKG9wdHMub3JpZ2luKTsKIAorCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCUNTdHJpbmdHZXRUZXh0RGF0 dW0oQ29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3RdKTsKKworCS8qCisJ ICogV2UgY3JlYXRlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGVyZSwgaWYgcmVxdWlyZWQsIHNv IHRoYXQgaXRzIHJlbGF0aW9uCisJICogT0lEIGNhbiBiZSBzdG9yZWQgd2hlbiBpbnNlcnRpbmcg dGhlIHBnX3N1YnNjcmlwdGlvbiB0dXBsZSBiZWxvdy4KKwkgKi8KKwlpZiAoQ09ORkxJQ1RTX0xP R0dFRF9UT19UQUJMRShvcHRzLmNvbmZsaWN0bG9nZGVzdCkpCisJCWxvZ3JlbGlkID0gY3JlYXRl X2NvbmZsaWN0X2xvZ190YWJsZShzdWJpZCwgc3RtdC0+c3VibmFtZSwgb3duZXIpOworCisJLyog U3RvcmUgdGFibGUgT0lEIGluIHRoZSBjYXRhbG9nLiAqLworCXZhbHVlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJT2JqZWN0SWRHZXREYXR1 bShsb2dyZWxpZCk7CisKIAl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihy ZWwpLCB2YWx1ZXMsIG51bGxzKTsKIAogCS8qIEluc2VydCB0dXBsZSBpbnRvIGNhdGFsb2cuICov CkBAIC04MzcsNiArODc2LDI1IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCXJlY29yZERlcGVuZGVuY3lPbigm bXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOwogCX0KIAorCS8qCisJICog RXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9n IHRhYmxlIGFuZAorCSAqIHRoZSBzdWJzY3JpcHRpb24uCisJICoKKwkgKiBXZSB1c2UgREVQRU5E RU5DWV9JTlRFUk5BTCB0byBzaWduaWZ5IHRoYXQgdGhlIHRhYmxlJ3MgbGlmZWN5Y2xlIGlzCisJ ICogc3RyaWN0bHkgdGllZCB0byB0aGUgc3Vic2NyaXB0aW9uLCBzaW1pbGFyIHRvIGhvdyBhIFRP QVNUIHRhYmxlIHJlbGF0ZXMKKwkgKiB0byBpdHMgbWFpbiB0YWJsZSBvciBhIHNlcXVlbmNlIHJl bGF0ZXMgdG8gYW4gaWRlbnRpdHkgY29sdW1uLgorCSAqCisJICogVGhpcyBlbnN1cmVzIHRoZSBj b25mbGljdCBsb2cgdGFibGUgaXMgYXV0b21hdGljYWxseSByZWFwZWQgZHVyaW5nIGEKKwkgKiBE Uk9QIFNVQlNDUklQVElPTiB2aWEgcGVyZm9ybURlbGV0aW9uKCkuCisJICovCisJaWYgKE9pZElz VmFsaWQobG9ncmVsaWQpKQorCXsKKwkJT2JqZWN0QWRkcmVzcyBjbHRhZGRyOworCisJCU9iamVj dEFkZHJlc3NTZXQoY2x0YWRkciwgUmVsYXRpb25SZWxhdGlvbklkLCBsb2dyZWxpZCk7CisJCXJl Y29yZERlcGVuZGVuY3lPbigmY2x0YWRkciwgJm15c2VsZiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7 CisJfQorCiAJLyoKIAkgKiBBIHJlcGxpY2F0aW9uIG9yaWdpbiBpcyBjdXJyZW50bHkgY3JlYXRl ZCBmb3IgYWxsIHN1YnNjcmlwdGlvbnMsCiAJICogaW5jbHVkaW5nIHRob3NlIHRoYXQgb25seSBj b250YWluIHNlcXVlbmNlcyBvciBhcmUgb3RoZXJ3aXNlIGVtcHR5LgpAQCAtMTQwNiw2ICsxNDY0 LDcxIEBAIENoZWNrQWx0ZXJTdWJPcHRpb24oU3Vic2NyaXB0aW9uICpzdWIsIGNvbnN0IGNoYXIg Km9wdGlvbiwKIAl9CiB9CiAKKy8qCisgKiBhbHRlcl9zdWJfY29uZmxpY3Rsb2dkZXN0aW5hdGlv bgorICoKKyAqIFdoZW4gdGhlIHN1YnNjcmlwdGlvbidzICdjb25mbGljdF9sb2dfZGVzdGluYXRp b24nIGlzIGNoYW5nZWQsIHVwZGF0ZSB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBpZiByZXF1 aXJlZC4KKyAqCisgKiBJZiB0aGUgbmV3IGRlc3RpbmF0aW9uIG5vIGxvbmdlciByZXF1aXJlcyBh IGNvbmZsaWN0IGxvZyB0YWJsZSwgdGhlIGV4aXN0aW5nCisgKiBjb25mbGljdCBsb2cgdGFibGUg YXNzb2NpYXRlZCB3aXRoIHRoZSBzdWJzY3JpcHRpb24gaXMgcmVtb3ZlZCB2aWEgaW50ZXJuYWwK KyAqIGRlcGVuZGVuY3kgY2xlYW51cCB0byBwcmV2ZW50IG9ycGhhbmVkIHJlbGF0aW9ucy4KKyAq CisgKiBPbiBzdWNjZXNzLCAqY29uZmxpY3R0YWJsZXJlbGlkIGlzIHNldCB0byB0aGUgT0lEIG9m IHRoZSBjb25mbGljdCBsb2cgdGFibGUKKyAqIHRoYXQgd2FzIGNyZWF0ZWQgb3IgdmFsaWRhdGVk LCBvciB0byBJbnZhbGlkT2lkIGlmIG5vIHRhYmxlIGlzIHJlcXVpcmVkLgorICoKKyAqIFJldHVy bnMgdHJ1ZSBpZiB0aGUgc3Vic2NyaXB0aW9uJ3MgY29uZmxpY3QgbG9nIHRhYmxlIHJlZmVyZW5j ZSBtdXN0IGJlCisgKiB1cGRhdGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBkZXN0aW5hdGlvbiBjaGFu Z2U7IGZhbHNlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGJvb2wKK2FsdGVyX3N1Yl9jb25mbGlj dGxvZ2Rlc3RpbmF0aW9uKFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rlc3Qgb2xkbG9n ZGVzdCwKKwkJCQkJCQkJIENvbmZsaWN0TG9nRGVzdCBuZXdsb2dkZXN0LAorCQkJCQkJCQkgT2lk ICpjb25mbGljdHRhYmxlcmVsaWQpCit7CisJYm9vbAkJd2FudF90YWJsZTsKKwlib29sCQloYXNf b2xkdGFibGU7CisJYm9vbAkJdXBkYXRlX3JlbGlkID0gZmFsc2U7CisJT2lkCQkJcmVsaWQgPSBJ bnZhbGlkT2lkOworCisJd2FudF90YWJsZSA9IENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUobmV3 bG9nZGVzdCk7CisJaGFzX29sZHRhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShvbGRs b2dkZXN0KTsKKworCWlmIChoYXNfb2xkdGFibGUpCisJeworCQkvKiBUaGVyZSBpcyBhIGNvbmZs aWN0IGxvZyB0YWJsZSBhbHJlYWR5LiAqLworCQlpZiAoIXdhbnRfdGFibGUpCisJCXsKKwkJCWRy b3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJsZShzdWItPm9pZCwgc3ViLT5uYW1lLAorCQkJCQkJCQkJ CXN1Yi0+Y29uZmxpY3Rsb2dyZWxpZCk7CisJCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCQl9CisJ fQorCWVsc2UKKwl7CisJCS8qIFRoZXJlIHdhcyBubyBwcmV2aW91cyBjb25mbGljdCBsb2cgdGFi bGUuICovCisJCWlmICh3YW50X3RhYmxlKQorCQl7CisJCQlPYmplY3RBZGRyZXNzIGNsdGFkZHI7 CisJCQlPYmplY3RBZGRyZXNzIHN1Ym9iajsKKworCQkJcmVsaWQgPSBjcmVhdGVfY29uZmxpY3Rf bG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsIHN1Yi0+b3duZXIpOworCQkJdXBkYXRlX3Jl bGlkID0gdHJ1ZTsKKworCQkJLyoKKwkJCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRl bmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorCQkJICogYW5kIHRoZSBzdWJzY3Jp cHRpb24uICBGb3IgZGV0YWlscyByZWZlciBjb21tZW50cyBpbgorCQkJICogQ3JlYXRlU3Vic2Ny aXB0aW9uIGZ1bmN0aW9uLgorCQkJICovCisJCQlPYmplY3RBZGRyZXNzU2V0KGNsdGFkZHIsIFJl bGF0aW9uUmVsYXRpb25JZCwgcmVsaWQpOworCQkJT2JqZWN0QWRkcmVzc1NldChzdWJvYmosIFN1 YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Yi0+b2lkKTsKKwkJCXJlY29yZERlcGVuZGVuY3lPbigm Y2x0YWRkciwgJnN1Ym9iaiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisJCX0KKwl9CisKKwkqY29u ZmxpY3R0YWJsZXJlbGlkID0gcmVsaWQ7CisJcmV0dXJuIHVwZGF0ZV9yZWxpZDsKK30KKwogLyoK ICAqIEFsdGVyIHRoZSBleGlzdGluZyBzdWJzY3JpcHRpb24uCiAgKi8KQEAgLTE1MDEsNyArMTYy NCw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3Jp cHRpb25TdG10ICpzdG10LAogCQkJCQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAog CQkJCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwKIAkJCQkJCQkJICBTVUJP UFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfAotCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4pOworCQkJ CQkJCQkgIFNVQk9QVF9PUklHSU4gfAorCQkJCQkJCQkgIFNVQk9QVF9DT05GTElDVF9MT0dfREVT VCk7CiAKIAkJCQlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlv bnMsCiAJCQkJCQkJCQkJICAgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKQEAgLTE3NjMsNiArMTg4 NywzNCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2Ny aXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vi d2FscmN2dGltZW91dCAtIDFdID0gdHJ1ZTsKIAkJCQl9CiAKKwkJCQlpZiAoSXNTZXQob3B0cy5z cGVjaWZpZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSkKKwkJCQl7CisJCQkJCUNv bmZsaWN0TG9nRGVzdCBvbGRfZGVzdCA9CisJCQkJCQkJR2V0Q29uZmxpY3RMb2dEZXN0KHN1Yi0+ Y29uZmxpY3Rsb2dkZXN0KTsKKworCQkJCQlpZiAob3B0cy5jb25mbGljdGxvZ2Rlc3QgIT0gb2xk X2Rlc3QpCisJCQkJCXsKKwkJCQkJCWJvb2wJCXVwZGF0ZV9yZWxpZDsKKwkJCQkJCU9pZAkJCXJl bGlkID0gSW52YWxpZE9pZDsKKworCQkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1 YmNvbmZsaWN0bG9nZGVzdCAtIDFdID0KKwkJCQkJCQlDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZs aWN0TG9nRGVzdE5hbWVzW29wdHMuY29uZmxpY3Rsb2dkZXN0XSk7CisJCQkJCQlyZXBsYWNlc1tB bnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9IHRydWU7CisKKwkJ CQkJCXVwZGF0ZV9yZWxpZCA9IGFsdGVyX3N1Yl9jb25mbGljdGxvZ2Rlc3RpbmF0aW9uKHN1YiwK KwkJCQkJCQkJCQkJCQkJCQkJCW9sZF9kZXN0LAorCQkJCQkJCQkJCQkJCQkJCQkJb3B0cy5jb25m bGljdGxvZ2Rlc3QsCisJCQkJCQkJCQkJCQkJCQkJCQkmcmVsaWQpOworCQkJCQkJaWYgKHVwZGF0 ZV9yZWxpZCkKKwkJCQkJCXsKKwkJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vi Y29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCk7 CisJCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxp ZCAtIDFdID0KKwkJCQkJCQkJdHJ1ZTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwogCQkJCXVw ZGF0ZV90dXBsZSA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0yMTc4LDYgKzIzMzAsNTEg QEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJcmV0dXJuIG15c2VsZjsKIH0KIAorLyoKKyAqIERyb3Agc3Vic2NyaXB0 aW9uJ3MgY29uZmxpY3QgbG9nIHRhYmxlCisgKgorICogVGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBp cyByZWdpc3RlcmVkIGFzIGFuIGludGVybmFsIGRlcGVuZGVuY3kgb2YgdGhlCisgKiBzdWJzY3Jp cHRpb24uIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgZGVwZW5kZW5jeSBieSBwZXJmb3JtaW5n IGEKKyAqIGNhc2NhZGluZyBkZWxldGlvbiBvbiB0aGUgc3Vic2NyaXB0aW9uIG9iamVjdCwgd2hp Y2ggaW4gdHVybiBkcm9wcyB0aGUKKyAqIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgor ICoKKyAqIFRoaXMgaXMgdXNlZCB0byBjbGVhbiB1cCBjb25mbGljdCBsb2cgdGFibGVzIHRoYXQg YXJlIG5vIGxvbmdlciByZXF1aXJlZCwKKyAqIHByZXZlbnRpbmcgYWNjdW11bGF0aW9uIG9mIHN0 YWxlIG9yIG9ycGhhbmVkIHJlbGF0aW9ucy4KKyAqCisgKiBOT1RFOgorICogT25seSBjb25mbGlj dCBsb2cgdGFibGVzIGFyZSBjdXJyZW50bHkgbWFuYWdlZCB2aWEgdGhpcyBpbnRlcm5hbCBkZXBl bmRlbmN5CisgKiBtZWNoYW5pc20uCisgKi8KK3N0YXRpYyB2b2lkCitkcm9wX3N1Yl9jb25mbGlj dF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3ViY29uZmxpY3Rsb2dy ZWxpZCkKK3sKKwkvKiBEcm9wIGFueSBkZXBlbmRlbnQgY29uZmxpY3QgbG9nIHRhYmxlICovCisJ aWYgKE9pZElzVmFsaWQoc3ViY29uZmxpY3Rsb2dyZWxpZCkpCisJeworCQlPYmplY3RBZGRyZXNz IG9iamVjdDsKKwkJY2hhciAJCSAqY29uZmxpY3RyZWxuYW1lOworCisJCWNvbmZsaWN0cmVsbmFt ZSA9IGdldF9yZWxfbmFtZShzdWJjb25mbGljdGxvZ3JlbGlkKTsKKwkJaWYgKGNvbmZsaWN0cmVs bmFtZSA9PSBOVUxMKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHJl bGF0aW9uICV1IiwKKwkJCQkgc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisKKwkJLyoKKwkJICogQnkg dXNpbmcgUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMLCB3ZSBlbnN1cmUgdGhhdCBvbmx5 IHRoZQorCQkgKiBjb25mbGljdCBsb2cgdGFibGUgaXMgZGVsZXRlZCB3aGlsZSB0aGUgc3Vic2Ny aXB0aW9uIHJlbWFpbnMuCisJCSAqLworCQlPYmplY3RBZGRyZXNzU2V0KG9iamVjdCwgU3Vic2Ny aXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwgRFJP UF9DQVNDQURFLAorCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJCQlQRVJG T1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwpOworCisJCWVyZXBvcnQoTk9USUNFLAorCQkJCWVy cm1zZygiZHJvcHBlZCBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIGZvciBzdWJzY3JpcHRpb24g XCIlc1wiIiwKKwkJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShQR19DT05GTElDVF9OQU1FU1BB Q0UsIGNvbmZsaWN0cmVsbmFtZSksCisJCQkJCQlzdWJuYW1lKSk7CisJfQorfQorCiAvKgogICog RHJvcCBhIHN1YnNjcmlwdGlvbgogICovCkBAIC0yMTg5LDYgKzIzODYsNyBAQCBEcm9wU3Vic2Ny aXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJSGVh cFR1cGxlCXR1cDsKIAlPaWQJCQlzdWJpZDsKIAlPaWQJCQlzdWJvd25lcjsKKwlPaWQJCQlzdWJj b25mbGljdGxvZ3JlbGlkOwogCURhdHVtCQlkYXR1bTsKIAlib29sCQlpc251bGw7CiAJY2hhcgkg ICAqc3VibmFtZTsKQEAgLTIyMzQsNiArMjQzMiw3IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1 YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlmb3JtID0gKEZvcm1fcGdf c3Vic2NyaXB0aW9uKSBHRVRTVFJVQ1QodHVwKTsKIAlzdWJpZCA9IGZvcm0tPm9pZDsKIAlzdWJv d25lciA9IGZvcm0tPnN1Ym93bmVyOworCXN1YmNvbmZsaWN0bG9ncmVsaWQgPSBmb3JtLT5zdWJj b25mbGljdGxvZ3JlbGlkOwogCW11c3RfdXNlX3Bhc3N3b3JkID0gIXN1cGVydXNlcl9hcmcoc3Vi b3duZXIpICYmIGZvcm0tPnN1YnBhc3N3b3JkcmVxdWlyZWQ7CiAKIAkvKiBtdXN0IGJlIG93bmVy ICovCkBAIC0yMzg4LDYgKzI1ODcsOCBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRp b25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJZGVsZXRlRGVwZW5kZW5jeVJlY29yZHNG b3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIGZhbHNlKTsKIAlkZWxldGVTaGFyZWRE ZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAK Kwlkcm9wX3N1Yl9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQsIHN1Ym5hbWUsIHN1YmNvbmZsaWN0 bG9ncmVsaWQpOworCiAJLyogUmVtb3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9u aXphdGlvbiBzdGF0ZXMuICovCiAJUmVtb3ZlU3Vic2NyaXB0aW9uUmVsKHN1YmlkLCBJbnZhbGlk T2lkKTsKIApAQCAtMjYyMSw2ICsyODIyLDExIEBAIEFsdGVyU3Vic2NyaXB0aW9uT3duZXJfaW50 ZXJuYWwoUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwLCBPaWQgbmV3T3duZXJJZCkKIAlmb3Jt LT5zdWJvd25lciA9IG5ld093bmVySWQ7CiAJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+ dF9zZWxmLCB0dXApOwogCisJLyogVXBkYXRlIG93bmVyIG9mIHRoZSBjb25mbGljdCBsb2cgdGFi bGUgaWYgaXQgZXhpc3RzLiAqLworCWlmIChPaWRJc1ZhbGlkKGZvcm0tPnN1YmNvbmZsaWN0bG9n cmVsaWQpKQorCQlBVEV4ZWNDaGFuZ2VPd25lcihmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkLCBu ZXdPd25lcklkLCB0cnVlLAorCQkJCQkJICBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwogCS8qIFVw ZGF0ZSBvd25lciBkZXBlbmRlbmN5IHJlZmVyZW5jZSAqLwogCWNoYW5nZURlcGVuZGVuY3lPbk93 bmVyKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsCiAJCQkJCQkJZm9ybS0+b2lkLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCBhMTg0NTI0MGE5OC4uMGEwY2EyYjg1MGUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCkBAIC0yNDU3LDkgKzI0NTcsMTEgQEAgdHJ1bmNhdGVfY2hlY2tfcmVs KE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkgKiBwZ19sYXJnZW9iamVjdCBh bmQgcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGEgdG8gYmUgdHJ1bmNhdGVkIGFzIHBhcnQgb2YKIAkg KiBwZ191cGdyYWRlLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hhbmdlIGl0cyByZWxmaWxlbm9kZSB0 byBtYXRjaCB0aGUgb2xkCiAJICogY2x1c3RlciwgYW5kIGFsbG93aW5nIGEgVFJVTkNBVEUgY29t bWFuZCB0byBiZSBleGVjdXRlZCBpcyB0aGUgZWFzaWVzdAotCSAqIHdheSBvZiBkb2luZyB0aGF0 LgorCSAqIHdheSBvZiBkb2luZyB0aGF0LiBXZSBhbHNvIGFsbG93IFRSVU5DQVRFIG9uIHRoZSBj b25mbGljdCBsb2cgdGFibGVzLAorCSAqIHRvIHBlcm1pdCB1c2VycyB0byBtYW51YWxseSBwcnVu ZSBjb25mbGljdCBkYXRhIHRvIG1hbmFnZSBkaXNrIHNwYWNlLgogCSAqLwotCWlmICghYWxsb3dT eXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgcmVsdHVwbGUpCisJaWYgKCFh bGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkgJiYK KwkJIUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbHR1cGxlKQogCQkmJiAoIUlzQmluYXJ5VXBn cmFkZSB8fAogCQkJKHJlbGlkICE9IExhcmdlT2JqZWN0UmVsYXRpb25JZCAmJgogCQkJIHJlbGlk ICE9IExhcmdlT2JqZWN0TWV0YWRhdGFSZWxhdGlvbklkKSkpCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCA0YjMwZjc2ODY4MC4uZjg3ZWY2NWYzNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwpAQCAtMTE4Nyw2ICsxMTg3LDI0IEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVsSW5m byAqcmVzdWx0UmVsSW5mbywgQ21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVzdWx0UmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICogQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dp Y2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLiAgV2UgYWxsb3cgREVMRVRFIGFuZCBUUlVO Q0FURSB0byBwZXJtaXQgdXNlcnMgdG8KKwkgKiBtYW51YWxseSBwcnVuZSB0aGVzZSBsb2dzLCBi dXQgbWFudWFsIGRhdGEgaW5zZXJ0aW9uIG9yIG1vZGlmaWNhdGlvbgorCSAqIChJTlNFUlQsIFVQ REFURSwgTUVSR0UpIGlzIHByb2hpYml0ZWQgdG8gbWFpbnRhaW4gdGhlIGludGVncml0eSBvZiB0 aGUKKwkgKiBzeXN0ZW0tZ2VuZXJhdGVkIGxvZ3MuCisJICoKKwkgKiBTaW5jZSBUUlVOQ0FURSBp cyBoYW5kbGVkIGFzIGEgc2VwYXJhdGUgdXRpbGl0eSBjb21tYW5kLCB3ZSBvbmx5IG5lZWQKKwkg KiB0byBleHBsaWNpdGx5IHBlcm1pdCBDTURfREVMRVRFIGhlcmUuCisJICovCisJaWYgKElzQ29u ZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwpKSAm JgorCQlvcGVyYXRpb24gIT0gQ01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW9k aWZ5IG9yIGluc2VydCBkYXRhIGludG8gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZXN1bHRSZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJD b25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCBhbmQgb25seSBzdXBwb3J0IGNs ZWFudXAgdmlhIERFTEVURSBvciBUUlVOQ0FURS4iKSkpOwogfQogCiAvKgpAQCAtMTI1OCw2ICsx Mjc2LDE2IEBAIENoZWNrVmFsaWRSb3dNYXJrUmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5cGUg bWFya1R5cGUpCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJCWJy ZWFrOwogCX0KKworCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0 aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLgor CSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3Bh Y2UocmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19P QkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5j CmluZGV4IDFmOGQ2N2ZkZDkwLi40YTY0NzI3N2QxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTcsNiArMTcsMTAgQEAKICNpbmNsdWRlICJhY2Nl c3MvY29tbWl0X3RzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2FtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNp bmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgpAQCAt MjQsNiArMjgsNTAgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGls cy9sc3lzY2FjaGUuaCIKIAorLyoKKyAqIFN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIHRoZSBz dXBwb3J0ZWQgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlvbnMuCisgKi8KK2NvbnN0IGNoYXIg KmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW10gPSB7CisJW0NPTkZMSUNUX0xPR19ERVNUX0xP R10gPSAibG9nIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEVdID0gInRhYmxlIiwKKwlbQ09O RkxJQ1RfTE9HX0RFU1RfQUxMXSA9ICJhbGwiCit9OworCitTdGF0aWNBc3NlcnREZWNsKGxlbmd0 aG9mKENvbmZsaWN0TG9nRGVzdE5hbWVzKSA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwgKyAxLAor CQkJCSAiQ29uZmxpY3RMb2dEZXN0TmFtZXMgbGVuZ3RoIG1pc21hdGNoIik7CisKKworLyogU3Ry dWN0dXJlIHRvIGhvbGQgbWV0YWRhdGEgZm9yIG9uZSBjb2x1bW4gb2YgdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZSAqLwordHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYKK3sKKwljb25z dCBjaGFyICphdHRuYW1lOyAgICAvKiBDb2x1bW4gbmFtZSAqLworCU9pZCAgICAgICAgIGF0dHR5 cGlkOyAgIC8qIERhdGEgdHlwZSBPSUQgKi8KK30gQ29uZmxpY3RMb2dDb2x1bW5EZWY7CisKKy8q CisgKiBTY2hlbWEgZGVmaW5pdGlvbiBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4KKyAqCisgKiBE ZWZpbmVzIHRoZSBmaXhlZCBzY2hlbWEgb2YgdGhlIHBlci1zdWJzY3JpcHRpb24gY29uZmxpY3Qg bG9nIHRhYmxlIGNyZWF0ZWQKKyAqIGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UuIEVhY2gg ZW50cnkgc3BlY2lmaWVzIHRoZSBjb2x1bW4gbmFtZSBhbmQgaXRzCisgKiB0eXBlIE9JRDsgdGhl IHRhYmxlIGlzIGNyZWF0ZWQgaW4gdGhpcyBjb2x1bW4gb3JkZXIgYnkKKyAqIGNyZWF0ZV9jb25m bGljdF9sb2dfdGFibGUoKS4KKyAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVm IENvbmZsaWN0TG9nU2NoZW1hW10gPSB7CisJeyAuYXR0bmFtZSA9ICJyZWxpZCIsICAgICAgICAg ICAgLmF0dHR5cGlkID0gT0lET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwgICAg ICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVsbmFtZSIsICAgICAg ICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5cGUi LCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlkIiwg ICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0 X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0 X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90 ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1v dGVfdHVwbGUiLCAgICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVw bGljYV9pZGVudGl0eSIsIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gImxv Y2FsX2NvbmZsaWN0cyIsICAuYXR0dHlwaWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2RlZmlu ZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIHN0YXRp YyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRf RVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKIAlbQ1RfVVBEQVRFX09SSUdJTl9ESUZGRVJTXSA9 ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiLApAQCAtNTQsNiArMTAyLDEzMyBAQCBzdGF0aWMgdm9p ZCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywK IHN0YXRpYyBjaGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxh dGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhv aWQpOwogCisvKgorICogQnVpbGRzIHRoZSBUdXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBsb2cg dGFibGUuCisgKi8KK3N0YXRpYyBUdXBsZURlc2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVf dHVwZGVzYyh2b2lkKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJdHVwZGVzYyA9IENyZWF0 ZVRlbXBsYXRlVHVwbGVEZXNjKE5VTV9DT05GTElDVF9BVFRSUyk7CisKKwlmb3IgKGludCBpID0g MDsgaSA8IE5VTV9DT05GTElDVF9BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgaSArIDEsCisJCQkJCQkgICBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAorCQkJ CQkJICAgQ29uZmxpY3RMb2dTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7CisK KwlUdXBsZURlc2NGaW5hbGl6ZSh0dXBkZXNjKTsKKworCXJldHVybiB0dXBkZXNjOworfQorCisv KgorICogQ3JlYXRlIGEgc3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vic2Ny aXB0aW9uLgorICoKKyAqIFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVtLW1h bmFnZWQgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UgdG8KKyAqIHByZXZlbnQgdXNlcnMgZnJvbSBt YW51YWxseSBkcm9wcGluZyBvciBhbHRlcmluZyBpdC4gIFRoaXMgYWxzbyBwcmV2ZW50cworICog YWNjaWRlbnRhbCBuYW1lIGNvbGxpc2lvbnMgd2l0aCB1c2VyLWNyZWF0ZWQgdGFibGVzIHdpdGgg dGhlIHNhbWUgbmFtZS4KKyAqCisgKiBUaGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0b21h dGljYWxseSB1c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2NvbmZs aWN0X2xvZ188c3ViaWQ+IikgdG8gZW5zdXJlIHVuaXF1ZW5lc3Mgd2l0aGluIHRoZQorICogY2x1 c3RlciBhbmQgdG8gYXZvaWQgY29sbGlzaW9ucyBkdXJpbmcgc3Vic2NyaXB0aW9uIHJlbmFtZXMu CisgKi8KK09pZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1 Ym5hbWUsIE9pZCBzdWJvd25lcikKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQlyZWxp ZDsKKwljaGFyICAgIAlyZWxuYW1lW05BTUVEQVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5hbWUs IE5BTUVEQVRBTEVOLCAicGdfY29uZmxpY3RfbG9nXyV1Iiwgc3ViaWQpOworCisJLyoKKwkgKiBD aGVjayBmb3IgYW4gZXhpc3RpbmcgdGFibGUgd2l0aCB0aGUgc2FtZSBuYW1lIGluIHRoZSBwZ19j b25mbGljdCBuYW1lc3BhY2UuCisJICogQSBjb2xsaXNpb24gc2hvdWxkIG5vdCBvY2N1ciB1bmRl ciBub3JtYWwgb3BlcmF0aW9uLCBidXQgd2UgbXVzdCBoYW5kbGUgY2FzZXMKKwkgKiB3aGVyZSBh IHRhYmxlIGhhcyBiZWVuIGNyZWF0ZWQgbWFudWFsbHkgd2hlbiBhbGxvd19zeXN0ZW1fdGFibGVz X21vZHMgaXMKKwkgKiBPTi4KKwkgKi8KKwlpZiAoT2lkSXNWYWxpZChnZXRfcmVsbmFtZV9yZWxp ZChyZWxuYW1lLCBQR19DT05GTElDVF9OQU1FU1BBQ0UpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9UQUJMRSksCisJCQkJIGVycm1zZygiY29uZmxp Y3QgbG9nIHRhYmxlIHBnX2NvbmZsaWN0LlwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsIHJlbG5hbWUp LAorCQkJCSBlcnJoaW50KCJUbyBwcm9jZWVkLCBkcm9wIHRoZSBleGlzdGluZyB0YWJsZSBhbmQg cmV0cnkuIikpKTsKKworCS8qIEJ1aWxkIHRoZSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgbmV3 IHRhYmxlLiAqLworCXR1cGRlc2MgPSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlX3R1cGRlc2Mo KTsKKworCS8qIENyZWF0ZSBjb25mbGljdCBsb2cgdGFibGUuICovCisJcmVsaWQgPSBoZWFwX2Ny ZWF0ZV93aXRoX2NhdGFsb2cocmVsbmFtZSwKKwkJCQkJCQkJCSBQR19DT05GTElDVF9OQU1FU1BB Q0UsCisJCQkJCQkJCQkgMCwJLyogdGFibGVzcGFjZSAqLworCQkJCQkJCQkJIEludmFsaWRPaWQs IC8qIHJlbGlkICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsdHlwZWlkICovCisJCQkJ CQkJCQkgSW52YWxpZE9pZCwgLyogcmVsb2Z0eXBlaWQgKi8KKwkJCQkJCQkJCSBzdWJvd25lciwK KwkJCQkJCQkJCSBIRUFQX1RBQkxFX0FNX09JRCwKKwkJCQkJCQkJCSB0dXBkZXNjLAorCQkJCQkJ CQkJIE5JTCwKKwkJCQkJCQkJCSBSRUxLSU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJIFJFTFBFUlNJ U1RFTkNFX1BFUk1BTkVOVCwKKwkJCQkJCQkJCSBmYWxzZSwgLyogc2hhcmVkX3JlbGF0aW9uICov CisJCQkJCQkJCQkgZmFsc2UsIC8qIG1hcHBlZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIE9OQ09N TUlUX05PT1AsCisJCQkJCQkJCQkgKERhdHVtKSAwLCAvKiByZWxvcHRpb25zICovCisJCQkJCQkJ CQkgZmFsc2UsIC8qIHVzZV91c2VyX2FjbCAqLworCQkJCQkJCQkJIHRydWUsIC8qIGFsbG93X3N5 c3RlbV90YWJsZV9tb2RzICovCisJCQkJCQkJCQkgdHJ1ZSwgLyogaXNfaW50ZXJuYWwgKi8KKwkJ CQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxyZXdyaXRlICovCisJCQkJCQkJCQkgTlVMTCk7IC8q IHR5cGFkZHJlc3MgKi8KKwlBc3NlcnQoT2lkSXNWYWxpZChyZWxpZCkpOworCisJLyogUmVsZWFz ZSB0dXBsZSBkZXNjcmlwdG9yIG1lbW9yeS4gKi8KKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOwor CisJLyoKKwkgKiBXZSBtdXN0IGJ1bXAgdGhlIGNvbW1hbmQgY291bnRlciB0byBtYWtlIHRoZSBu ZXdseS1jcmVhdGVkIHJlbGF0aW9uCisJICogdHVwbGUgdmlzaWJsZSBmb3Igb3BlbmluZy4KKwkg Ki8KKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJLyoKKwkgKiBDcmVhdGUgYSBUT0FT VCB0YWJsZSBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0byBzdXBwb3J0IG91dC1vZi1saW5lIHN0b3Jh Z2UKKwkgKiBvZiBsYXJnZSBKU09OIGRhdGEuCisJICovCisJTmV3UmVsYXRpb25DcmVhdGVUb2Fz dFRhYmxlKHJlbGlkLCAoRGF0dW0pIDApOworCisJZXJlcG9ydChOT1RJQ0UsCisJCQkoZXJybXNn KCJjcmVhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIgZm9yIHN1YnNjcmlwdGlvbiBcIiVz XCIiLAorCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUoUEdfQ09ORkxJQ1RfTkFNRVNQQUNFLCBy ZWxuYW1lKSwKKwkJCQkJc3VibmFtZSkpKTsKKworCXJldHVybiByZWxpZDsKK30KKworLyoKKyAq IENvbnZlcnQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGNvbmZsaWN0IGxvZ2dpbmcg ZGVzdGluYXRpb24gdG8gaXRzCisgKiBjb3JyZXNwb25kaW5nIGVudW0gdmFsdWUuCisgKi8KK0Nv bmZsaWN0TG9nRGVzdAorR2V0Q29uZmxpY3RMb2dEZXN0KGNvbnN0IGNoYXIgKmRlc3QpCit7CisJ LyogRW1wdHkgc3RyaW5nIG9yIE5VTEwgZGVmYXVsdHMgdG8gTE9HLiAqLworCWlmIChkZXN0ID09 IE5VTEwgfHwgZGVzdFswXSA9PSAnXDAnIHx8IHBnX3N0cmNhc2VjbXAoZGVzdCwgImxvZyIpID09 IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9MT0c7CisKKwlpZiAocGdfc3RyY2FzZWNt cChkZXN0LCAidGFibGUiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEU7 CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0LCAiYWxsIikgPT0gMCkKKwkJcmV0dXJuIENPTkZM SUNUX0xPR19ERVNUX0FMTDsKKworCS8qIFVucmVjb2duaXplZCBzdHJpbmcuICovCisJZXJlcG9y dChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAor CQkJIGVycm1zZygidW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTog XCIlc1wiIiwgZGVzdCksCisJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZSBcImxvZ1wiLCBc InRhYmxlXCIsIGFuZCBcImFsbFwiLiIpKSk7Cit9CisKIC8qCiAgKiBHZXQgdGhlIHhtaW4gYW5k IGNvbW1pdCB0aW1lc3RhbXAgZGF0YSAob3JpZ2luIGFuZCB0aW1lc3RhbXApIGFzc29jaWF0ZWQK ICAqIHdpdGggdGhlIHByb3ZpZGVkIGxvY2FsIHJvdy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2Nh Y2hlLmMKaW5kZXggMDM2MDg2MDU3ZDcuLmI2MGJkOGY2YzBlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYwpAQCAtMzYzNCw3ICszNjM0LDcgQEAgZ2V0X25hbWVzcGFjZV9uYW1lX29y X3RlbXAoT2lkIG5zcGlkKQogICoJCW9iamVjdCBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZSBJRCBh bmQgb2JqZWN0IG5hbWUuCiAgKi8KIGNoYXIgKgotZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBu c3BpZCwgY2hhciAqb2JqbmFtZSkKK2dldF9xdWFsaWZpZWRfb2JqbmFtZShPaWQgbnNwaWQsIGNv bnN0IGNoYXIgKm9iam5hbWUpCiB7CiAJY2hhcgkgICAqbnNwbmFtZTsKIAljaGFyCSAgICpyZXN1 bHQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRi L2luaXRkYi5jCmluZGV4IDE0Y2I3OWMyNmJlLi44MDNjYTQxMTJkNCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTE4 MzksNiArMTgzOSwxMiBAQCBzZXR1cF9wcml2aWxlZ2VzKEZJTEUgKmNtZGZkKQogCQkJCSAgIiAg QU5EIHJlbGFjbCBJUyBOVUxMO1xuXG4iLAogCQkJCSAgZXNjYXBlX3F1b3Rlcyh1c2VybmFtZSkp OwogCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgcGdfY2F0YWxvZywgcHVibGlj IFRPIFBVQkxJQztcblxuIik7CisKKwkvKgorCSAqIEFsbG93IG5vbi1zdXBlcnVzZXIgc3Vic2Ny aXB0aW9uIG93bmVycyB0byBhY2Nlc3MgdGhlaXIgYXNzb2NpYXRlZAorCSAqIGNvbmZsaWN0IGxv ZyB0YWJsZXMgaW4gdGhlIHBnX2NvbmZsaWN0IHNjaGVtYS4KKwkgKi8KKwlQR19DTURfUFVUUygi R1JBTlQgVVNBR0UgT04gU0NIRU1BIHBnX2NvbmZsaWN0IFRPIFBVQkxJQztcblxuIik7CiAJUEdf Q01EX1BVVFMoIlJFVk9LRSBBTEwgT04gcGdfbGFyZ2VvYmplY3QgRlJPTSBQVUJMSUM7XG5cbiIp OwogCVBHX0NNRF9QVVRTKCJJTlNFUlQgSU5UTyBwZ19pbml0X3ByaXZzICIKIAkJCQkiICAob2Jq b2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIGluaXRwcml2cywgcHJpdnR5cGUpIgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCmluZGV4IGRlNTQ3YThjYjM3Li42NmVlMWI2YzJhNCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwpAQCAtMjM3Niw4ICsyMzc2LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIigiLCAiUFVCTElDQVRJT04iKTsKIAkvKiBBTFRF UiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNFVCAoICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIlNFVCIsICIoIikpCi0JCUNP TVBMRVRFX1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwKLQkJ CQkJICAibWF4X3JldGVudGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAorCQlDT01QTEVURV9XSVRI KCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIiwgImRpc2FibGVfb25fZXJyb3Ii LAorCQkJCQkgICJmYWlsb3ZlciIsICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIs CiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJCQkJ CSAgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUiLCAic3RyZWFtaW5nIiwKIAkJCQkJICAic3lu Y2hyb25vdXNfY29tbWl0IiwgInR3b19waGFzZSIpOwpAQCAtMzk2MCw4ICszOTYwLDggQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIldJVEgg KCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1lPiAuLi4gIFdJVEgg KCA8b3B0PiIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIiwg TWF0Y2hBbnlOLCAiV0lUSCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25u ZWN0IiwgImNvcHlfZGF0YSIsICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25fZXJy b3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJj b25mbGljdF9sb2dfZGVzdGluYXRpb24iLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLAorCQkJCQkg ICJjcmVhdGVfc2xvdCIsICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAiZmFpbG92ZXIi LAogCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBh c3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJCQkJCSAgInJ1bl9hc19v d25lciIsICJzbG90X25hbWUiLCAic3RyZWFtaW5nIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvY2F0YWxvZy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKaW5kZXgg YTlkNmU4ZWE5ODYuLmZlYWIzOTgyY2Y1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L2NhdGFsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaApAQCAtMjUsNiAr MjUsNyBAQCBleHRlcm4gYm9vbCBJc0lucGxhY2VVcGRhdGVSZWxhdGlvbihSZWxhdGlvbiByZWxh dGlvbik7CiAKIGV4dGVybiBib29sIElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2Ns YXNzIHJlbHR1cGxlKTsKIGV4dGVybiBib29sIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJl bHR1cGxlKTsKK2V4dGVybiBib29sIElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKEZvcm1fcGdfY2xh c3MgcmVsdHVwbGUpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFsb2dSZWxhdGlvbk9pZChPaWQgcmVs aWQpOwogZXh0ZXJuIGJvb2wgSXNDYXRhbG9nVGV4dFVuaXF1ZUluZGV4T2lkKE9pZCByZWxpZCk7 CkBAIC0zMiw2ICszMyw3IEBAIGV4dGVybiBib29sIElzSW5wbGFjZVVwZGF0ZU9pZChPaWQgcmVs aWQpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFsb2dOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsK IGV4dGVybiBib29sIElzVG9hc3ROYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKK2V4dGVybiBi b29sIElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogCiBleHRl cm4gYm9vbCBJc1Jlc2VydmVkTmFtZShjb25zdCBjaGFyICpuYW1lKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2Nh dHZlcnNpb24uaAppbmRleCA4NzAwN2U3MjVjMS4uMDk4NzRhNGE3ZDYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv Y2F0dmVyc2lvbi5oCkBAIC01Nyw2ICs1Nyw2IEBACiAgKi8KIAogLyoJCQkJCQkJeXl5eW1tZGRO ICovCi0jZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9OTwkyMDI2MDYwNTEKKyNkZWZpbmUgQ0FUQUxP R19WRVJTSU9OX05PCTIwMjYwNjA4MQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNw YWNlLmRhdAppbmRleCAzMDc1ZTE0MmM3My4uYjQ1Y2I5MzgzYTggMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX25hbWVzcGFjZS5kYXQKQEAgLTE4LDYgKzE4LDkgQEAKIHsgb2lkID0+ICc5OScsIG9pZF9z eW1ib2wgPT4gJ1BHX1RPQVNUX05BTUVTUEFDRScsCiAgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hl bWEgZm9yIFRPQVNUIHRhYmxlcycsCiAgIG5zcG5hbWUgPT4gJ3BnX3RvYXN0JywgbnNwYWNsID0+ ICdfbnVsbF8nIH0sCit7IG9pZCA9PiAnMTM4MicsIG9pZF9zeW1ib2wgPT4gJ1BHX0NPTkZMSUNU X05BTUVTUEFDRScsCisgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hlbWEgZm9yIHN1YnNjcmlwdGlv bi1zcGVjaWZpYyBjb25mbGljdCBsb2cgdGFibGVzJywKKyAgbnNwbmFtZSA9PiAncGdfY29uZmxp Y3QnLCBuc3BhY2wgPT4gJ19udWxsXycgfSwKICMgdXBkYXRlIGR1bXBOYW1lc3BhY2UoKSBpZiBj aGFuZ2luZyB0aGlzIGRlc2NyCiB7IG9pZCA9PiAnMjIwMCcsIG9pZF9zeW1ib2wgPT4gJ1BHX1BV QkxJQ19OQU1FU1BBQ0UnLAogICBkZXNjciA9PiAnc3RhbmRhcmQgcHVibGljIHNjaGVtYScsCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAppbmRleCBhNmEyYWQxZTQ5Yy4uODlkMjMw MGFiZTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTUsNyArOTUs MTYgQEAgQ0FUQUxPRyhwZ19zdWJzY3JpcHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxhdGlvbklk KSBCS0lfU0hBUkVEX1JFTEFUSU9OIEJLSV9ST1cKIAlPaWQJCQlzdWJzZXJ2ZXIgQktJX0xPT0tV UF9PUFQocGdfZm9yZWlnbl9zZXJ2ZXIpOwkvKiBJZiBjb25uZWN0aW9uIHVzZXMKIAkJCQkJCQkJ CQkJCQkJCQkgKiBzZXJ2ZXIgKi8KIAorCU9pZAkJCXN1YmNvbmZsaWN0bG9ncmVsaWQ7IC8qIFJl bGlkIG9mIHRoZSBjb25mbGljdCBsb2cgdGFibGUuICovCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4J CQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwkvKgorCSAqIFN0cmF0 ZWd5IGZvciBsb2dnaW5nIHJlcGxpY2F0aW9uIGNvbmZsaWN0czoKKwkgKiAnbG9nJyAtIHNlcnZl ciBsb2cgb25seSwKKwkgKiAndGFibGUnIC0gY29uZmxpY3QgbG9nIHRhYmxlIG9ubHksCisJICog J2FsbCcgLSBib3RoIGxvZyBhbmQgdGFibGUuCisJICovCisJdGV4dAkJc3ViY29uZmxpY3Rsb2dk ZXN0IEJLSV9GT1JDRV9OT1RfTlVMTDsKKwogCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBw dWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbzsJLyogU2V0IGlmIGNvbm5lY3Rpbmcgd2l0 aCBjb25uZWN0aW9uIHN0cmluZyAqLwogCkBAIC0xNjQsNiArMTczLDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgU3Vic2NyaXB0aW9uCiAJCQkJCQkJCQkgKiBhbmQgdGhlIHJldGVudGlvbiBkdXJhdGlvbiBo YXMgbm90CiAJCQkJCQkJCQkgKiBleGNlZWRlZCBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uLCB3aGVu CiAJCQkJCQkJCQkgKiBkZWZpbmVkICovCisJT2lkCQkJY29uZmxpY3Rsb2dyZWxpZDsJLyogY29u ZmxpY3QgbG9nIHRhYmxlIE9pZCAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlv biBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwogCWNoYXIJICAgKnNsb3RuYW1lOwkJLyogTmFt ZSBvZiB0aGUgcmVwbGljYXRpb24gc2xvdCAqLwogCWNoYXIJICAgKnN5bmNjb21taXQ7CQkvKiBT eW5jaHJvbm91cyBjb21taXQgc2V0dGluZyBmb3Igd29ya2VyICovCkBAIC0xNzEsNiArMTgxLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAJTGlzdAkgICAqcHVibGljYXRpb25zOwkv KiBMaXN0IG9mIHB1YmxpY2F0aW9uIG5hbWVzIHRvIHN1YnNjcmliZSB0byAqLwogCWNoYXIJICAg Km9yaWdpbjsJCQkvKiBPbmx5IHB1Ymxpc2ggZGF0YSBvcmlnaW5hdGluZyBmcm9tIHRoZQogCQkJ CQkJCQkgKiBzcGVjaWZpZWQgb3JpZ2luICovCisJY2hhcgkgICAqY29uZmxpY3Rsb2dkZXN0Owkv KiBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gKi8KIH0gU3Vic2NyaXB0aW9uOwogCiAjaWZkZWYg RVhQT1NFX1RPX0NMSUVOVF9DT0RFCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRleCAy ZDlkYmNmNGQwZC4uYTAxN2UxZTZjYjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2NvbmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApA QCAtMTAsNiArMTAsNyBAQAogI2RlZmluZSBDT05GTElDVF9ICiAKICNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJkYXRh dHlwZS90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJub2Rlcy9wZ19saXN0LmgiCiAKQEAgLTc5LDYg KzgwLDMyIEBAIHR5cGVkZWYgc3RydWN0IENvbmZsaWN0VHVwbGVJbmZvCiAJCQkJCQkJCSAqIGNv bmZsaWN0aW5nIGxvY2FsIHJvdyBvY2N1cnJlZCAqLwogfSBDb25mbGljdFR1cGxlSW5mbzsKIAor LyoKKyAqIERlZmluZXMgd2hlcmUgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdCBkZXRhaWxz IGFyZSByZWNvcmRlZC4KKyAqCisgKiBXaGlsZSBzdG9yZWQgYXMgYSB0ZXh0LWJhc2VkIGFycmF5 L3N0cmluZyBpbgorICogcGdfc3Vic2NyaXB0aW9uLnN1YmNvbmZsaWN0bG9nZGVzdCBmb3IgdXNl ciByZWFkYWJpbGl0eSBhbmQgZXh0ZW5zaWJpbGl0eSwKKyAqIHdlIG1hcCB0aGVzZSB0byBhbiBp bnRlcm5hbCBlbnVtIHRvIGFsbG93IGZvciBlZmZpY2llbnQgY2hlY2tzLgorICovCit0eXBlZGVm IGVudW0gQ29uZmxpY3RMb2dEZXN0Cit7CisJQ09ORkxJQ1RfTE9HX0RFU1RfTE9HID0gMCwJLyog RW1pdCB0byBzZXJ2ZXIgbG9ncyAqLworCUNPTkZMSUNUX0xPR19ERVNUX1RBQkxFLAkvKiBJbnNl cnQgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfQUxM CQkvKiBCb3RoIGxvZyBhbmQgdGFibGUgKi8KK30gQ29uZmxpY3RMb2dEZXN0OworCisjZGVmaW5l IENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUoZGVzdCkgXAorCSgoZGVzdCA9PSBDT05GTElDVF9M T0dfREVTVF9UQUJMRSkgfHwgKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMKSkKKyNkZWZp bmUgQ09ORkxJQ1RTX0xPR0dFRF9UT19MT0coZGVzdCkgXAorCSgoZGVzdCA9PSBDT05GTElDVF9M T0dfREVTVF9MT0cpIHx8IChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCkpCisKKy8qCisg KiBBcnJheSBtYXBwaW5nIGZvciBjb252ZXJ0aW5nIGludGVybmFsIGVudW0gdG8gc3RyaW5nLgor ICovCitleHRlcm4gUEdETExJTVBPUlQgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0 TmFtZXNbXTsKKworZXh0ZXJuIE9pZCBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJp ZCwgY2hhciAqc3VibmFtZSwgT2lkIHN1Ym93bmVyKTsKK2V4dGVybiBDb25mbGljdExvZ0Rlc3Qg R2V0Q29uZmxpY3RMb2dEZXN0KGNvbnN0IGNoYXIgKmRlc3QpOwogZXh0ZXJuIGJvb2wgR2V0VHVw bGVUcmFuc2FjdGlvbkluZm8oVHVwbGVUYWJsZVNsb3QgKmxvY2Fsc2xvdCwKIAkJCQkJCQkJCVRy YW5zYWN0aW9uSWQgKnhtaW4sCiAJCQkJCQkJCQlSZXBsT3JpZ2luSWQgKmxvY2Fsb3JpZ2luLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAppbmRleCA4NTQ1ZTY3YTYzMi4uNjBiMmQ1YjZlM2UgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L2xzeXNjYWNoZS5oCkBAIC0yMDAsNyArMjAwLDcgQEAgZXh0ZXJuIGJvb2wgZ2V0X2F0dHN0YXRz c2xvdChBdHRTdGF0c1Nsb3QgKnNzbG90LCBIZWFwVHVwbGUgc3RhdHN0dXBsZSwKIGV4dGVybiB2 b2lkIGZyZWVfYXR0c3RhdHNzbG90KEF0dFN0YXRzU2xvdCAqc3Nsb3QpOwogZXh0ZXJuIGNoYXIg KmdldF9uYW1lc3BhY2VfbmFtZShPaWQgbnNwaWQpOwogZXh0ZXJuIGNoYXIgKmdldF9uYW1lc3Bh Y2VfbmFtZV9vcl90ZW1wKE9pZCBuc3BpZCk7Ci1leHRlcm4gY2hhciAqZ2V0X3F1YWxpZmllZF9v YmpuYW1lKE9pZCBuc3BpZCwgY2hhciAqb2JqbmFtZSk7CitleHRlcm4gY2hhciAqZ2V0X3F1YWxp ZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwgY29uc3QgY2hhciAqb2JqbmFtZSk7CiBleHRlcm4gT2lk CWdldF9yYW5nZV9zdWJ0eXBlKE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9j b2xsYXRpb24oT2lkIHJhbmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX2NvbnN0cnVjdG9y MihPaWQgcmFuZ2VPaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CmluZGV4IDg0ODEwNTZhNzAyLi45YTY5M2VkMDEwYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtNTkxLDYgKzU5MSwzMTQgQEAgQ09NTUlUOwog LS0gb2ssIG93bmluZyBpdCBpcyBlbm91Z2ggZm9yIHRoaXMgc3R1ZmYKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tCistLSBDT05GTElDVCBMT0cgREVTVElOQVRJT04g VEVTVFMKKy0tCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyJzsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKy0tIGZhaWwgLSB1 bnJlY29nbml6ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVz dGluYXRpb24gPSAnaW52YWxpZCcpOworRVJST1I6ICB1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uIHZhbHVlOiAiaW52YWxpZCIKK0hJTlQ6ICBWYWxpZCB2YWx1ZXMgYXJlICJs b2ciLCAidGFibGUiLCBhbmQgImFsbCIuCistLSB2ZXJpZnkgc3ViY29uZmxpY3Rsb2dkZXN0IGlz ICdsb2cnIGFuZCBzdWJjb25mbGljdGxvZ3JlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZvciBkZWZh dWx0IGNhc2UKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVs dCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRl c3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2Fz IGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGlj YXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5h YmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJl c2ggcHVibGljYXRpb25zLgorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vi Y29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0JzsKKyAgICAgICAgICAgc3VibmFtZSAgICAgICAg ICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IHwgbG9nICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB2ZXJpZnkgZW1wdHkgc3Ry aW5nIGRlZmF1bHRzIHRvICdsb2cnCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfZW1wdHlfc3RyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVC TElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbiA9ICcnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBp cyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0 IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3Jp cHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25z LgorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxp ZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X2VtcHR5X3N0cic7CisgICAgICAgICAgc3VibmFtZSAgICAgICAgICAgfCBzdWJjb25mbGljdGxv Z2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX2Nv bmZsaWN0X2VtcHR5X3N0ciB8IGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IDAKKygxIHJvdykKKworLS0gdGhpcyBzaG91bGQgZ2VuZXJhdGUgYW4gY29uZmxpY3QgbG9nIHRh YmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ18kc3ViaWQkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBj cmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0 aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJs ZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNo IHB1YmxpY2F0aW9ucy4KKy0tIGNoZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVz dGluYXRpb24gc2hvdWxkIGJlICd0YWJsZScgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgdmFsaWQK K1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQg PiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgICAgICAgc3VibmFtZSAgICAgICAgIHwgc3ViY29u ZmxpY3Rsb2dkZXN0IHwgaGFzX3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcmVncmVzc19jb25mbGljdF90ZXN0MSB8IHRh YmxlICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0 YWJsZSBleGlzdHMsIGl0cyBPSUQgbWF0Y2hlcyBzdWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5k IGl0IGlzIGxvY2F0ZWQgaW4gdGhlICdwZ19jb25mbGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5u c3BuYW1lLCAoYy5vaWQgPSBzLnN1YmNvbmZsaWN0bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIK K0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxu YW1lc3BhY2UgPSBuLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVz dDEnOworICAgbnNwbmFtZSAgIHwgb2lkX21hdGNoZXMgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBwZ19jb25mbGljdCB8IHQKKygxIHJvdykKKworLS0gY2hlY2sgaWYgdGhlIGNvbmZs aWN0IGxvZyB0YWJsZSBoYXMgdGhlIGNvcnJlY3Qgc2NoZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEu YXR0bmFtZQorRlJPTSBwZ19hdHRyaWJ1dGUgYQorSk9JTiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVs aWQgPSBjLm9pZAorSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxJyBBTkQgYS5hdHRudW0gPiAwCisgICAgT1JERVIgQlkgYS5hdHRudW07CisgYXR0bnVt IHwgICAgICBhdHRuYW1lICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAxIHwgcmVsaWQKKyAgICAgIDIgfCBzY2hlbWFuYW1lCisgICAgICAzIHwgcmVsbmFtZQorICAg ICAgNCB8IGNvbmZsaWN0X3R5cGUKKyAgICAgIDUgfCByZW1vdGVfeGlkCisgICAgICA2IHwgcmVt b3RlX2NvbW1pdF9sc24KKyAgICAgIDcgfCByZW1vdGVfY29tbWl0X3RzCisgICAgICA4IHwgcmVt b3RlX29yaWdpbgorICAgICAgOSB8IHJlbW90ZV90dXBsZQorICAgICAxMCB8IHJlcGxpY2FfaWRl bnRpdHkKKyAgICAgMTEgfCBsb2NhbF9jb25mbGljdHMKKygxMSByb3dzKQorCistLSBDaGFuZ2lu ZyB0aGUgc3Vic2NyaXB0aW9uIG93bmVyIHNob3VsZCBhbHNvIHVwZGF0ZSB0aGUgb3duZXIKKy0t IG9mIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIyOworU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93 bmVyCitGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNj cmlwdGlvbiBzCisgICAgICAgIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBz Lm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgICAg ICAgICBvd25lciAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyCisoMSByb3cpCisKKy0tIFZlcmlmeSB0aGF0IGEgbm9u LXN1cGVydXNlciBzdWJzY3JpcHRpb24gb3duZXIgY2FuIHRydW5jYXRlLAorLS0gZGVsZXRlIGZy b20sIGFuZCBzZWxlY3QgZnJvbSB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCitT RVQgUk9MRSAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjInOworU0VMRUNUIGZvcm1hdCgnJUku JUknLCBuLm5zcG5hbWUsIGMucmVsbmFtZSkgQVMgY29uZmxpY3RfbG9nX3RhYmxlCitGUk9NIHBn X2NhdGFsb2cucGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuCisJT04g bi5vaWQgPSBjLnJlbG5hbWVzcGFjZQorSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBz CisJT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScKK1xnc2V0CitUUlVOQ0FURSBUQUJMRSA6 Y29uZmxpY3RfbG9nX3RhYmxlOworREVMRVRFIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIDpjb25mbGljdF9sb2dfdGFibGU7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworUkVTRVQgUk9MRTsKKy0tIFJlc3RvcmUgdGhlIG9yaWdpbmFs IHN1YnNjcmlwdGlvbiBvd25lci4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CistLQorLS0gQUxURVIg U1VCU0NSSVBUSU9OIC0gY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHN0YXRlIHRyYW5zaXRpb25z CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoZSB0cmFuc2l0aW9uIGxvZ2ljIGJldHdlZW4g ZGlmZmVyZW50IGxvZ2dpbmcKKy0tIGRlc3RpbmF0aW9ucywgZW5zdXJpbmcgY29uZmxpY3QgbG9n IHRhYmxlcyBhcmUgY3JlYXRlZCBvciBkcm9wcGVkIGFzCistLSBleHBlY3RlZAorLS0KKy0tIHRy YW5zaXRpb24gZnJvbSAnbG9nJyB0byAnYWxsJworLS0gYSBuZXcgY29uZmxpY3QgbG9nIHRhYmxl IHNob3VsZCBiZSBjcmVhdGVkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElP TiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ2xvZycpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5v dCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFu dWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlv biwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKy0tIHZlcmlmeSBtZXRhZGF0YSBhZnRlciBBTFRFUiAo ZGVzdGluYXRpb24gc2hvdWxkIGJlICdhbGwnKQorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0 bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1 YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworICAg ICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIHwgYWxsICAgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCistLSB0cmFuc2l0aW9uIGZyb20gJ2FsbCcgdG8gJ3RhYmxlJworLS0gc2hvdWxkIE5PVCBk cm9wIHRoZSB0YWJsZSwgb25seSBjaGFuZ2UgZGVzdGluYXRpb24gc3RyaW5nCitTRUxFQ1Qgc3Vi Y29uZmxpY3Rsb2dyZWxpZCBBUyBvbGRfcmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUg c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJyBcZ3NldAorQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24g PSAndGFibGUnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVs aWQgPSA6b2xkX3JlbGlkIEFTIHJlbGlkX3VuY2hhbmdlZAorRlJPTSBwZ19zdWJzY3JpcHRpb24g V0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBzdWJjb25mbGljdGxv Z2Rlc3QgfCByZWxpZF91bmNoYW5nZWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLQorIHRhYmxlICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gdHJhbnNpdGlv biBmcm9tICd0YWJsZScgdG8gJ2xvZycKKy0tIHNob3VsZCBkcm9wIHRoZSB0YWJsZSBhbmQgY2xl YXIgc3ViY29uZmxpY3Rsb2dyZWxpZAorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitTRUxFQ1Qg c3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlw dGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIHN1YmNvbmZs aWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAwCisoMSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQor U0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMg T04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgY291bnQgCistLS0tLS0tCisgICAgIDAK KygxIHJvdykKKworLS0KKy0tIFBVQkxJQ0FUSU9OOiBWZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUg c2hvdWxkIHJldHVybiBmYWxzZSBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcyB0bworLS0gcHJldmVu dCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucwor LS0KK1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKGMub2lkKQor RlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0g bi5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gcy5zdWJjb25mbGljdGxvZ3JlbGlkID0g Yy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgIG5z cG5hbWUgICB8IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcGdfY29uZmxpY3QgfCBmCisoMSByb3cpCisKKy0t CistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUgTWFuYWdlbWVudAorLS0KKy0tIFRo ZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERST1AgVEFCTEUgaXMgZGlzYWxsb3dl ZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxseSByZWFwcyB0aGUgdGFibGUKKy0t CistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVyaWZpY2F0aW9uCitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiA9ICd0YWJsZScpOworLS0gV2UgdXNlIGEgRE8gYmxvY2sgd2l0aCBkeW5hbWljIFNRTCBi ZWNhdXNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIG5hbWUgY29udGFpbnMgdGhlIHN1YnNj cmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGljLiBUaGlzCistLSBhcHByb2Fj aCBhbGxvd3MgdXMgdG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQgY2FwdHVyZSB0aGUgZXhwZWN0ZWQg ZXJyb3IKKy0tIHdpdGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVjaWZpYyBPSUQgaW4gdGhlIGV4cGVj dGVkIG91dHB1dAorLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90IGFsbG93ZWQgZHVlIHRvIGludGVy bmFsIGRlcGVuZGVuY3kKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gTk9USUNFOworRE8gJCQK K0JFR0lOCisgICAgRVhFQ1VURSAnRFJPUCBUQUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0 LnBnX2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnKTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmlj aWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQg ZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UnOworRU5EICQkOworTk9USUNFOiAgY2FwdHVy ZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UKKy0tIENMRUFOVVA6IERS T1AgU1VCU0NSSVBUSU9OIHJlYXBzIHRoZSB0YWJsZQorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfdGVzdDEgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X3Rlc3QxIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CistLSBWZXJpZnkgdGhlIHRhYmxl IE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2df JyB8fCBvaWQgQVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKK1NFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gV0FSTklORzsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDE7CistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1lYW5pbmcgdGhlIGNvbmZsaWN0IGxvZyB0 YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxFQ1QgdG9fcmVnY2xhc3MoOidpbnRl cm5hbF90YWJsZW5hbWUnKTsKKyB0b19yZWdjbGFzcyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJv dykKKworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNlIGFuZCBUYWJsZSBQcm90ZWN0aW9uIFRl c3RzCistLQorLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vic2NyaXB0aW9uIHdpdGggYSBj b25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0Jwor ICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2gg cHVibGljYXRpb25zLgorLS0gVHJ5aW5nIHRvIEFMVEVSIHRoZSBjb25mbGljdCBsb2cgdGFibGUK Ky0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQK Ky0tIEFzIG1lbnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNhc2VzLCB3ZSB1c2UgYSBETyBibG9j ayB0byBoaWRlIGR5bmFtaWMgT0lEcworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7 CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAn cGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNz IGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9n XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxF IG9uIGNvbmZsaWN0IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0 YWJfbmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQVElPTiBXSEVO IGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQg ZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VO RCAkJDsKK05PVElDRTogIEF0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gY29uZmxpY3QgbG9nIHRh YmxlCitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZp bGVnZSBkdXJpbmcgQUxURVIKKy0tIFRlc3QgTWFudWFsIElOU0VSVCBvbiBjb25mbGljdCBsb2cg dGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1h bmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5n IHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lO CisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAg IEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdw Z19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVDVVRFICdJTlNFUlQgSU5UTyAn IHx8IHRhYl9uYW1lIHx8ICcgKHJlbG5hbWUpIFZBTFVFUyAoJydteXRlc3QnJyknOworRVhDRVBU SU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVy ZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBJTlNFUlQnOworRU5E ICQkOworTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBl IGR1cmluZyBJTlNFUlQKKy0tIFRlc3QgTWFudWFsIFVQREFURSBvbiBjb25mbGljdCBsb2cgdGFi bGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFn ZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRo ZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisg ICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZS T00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJf bmFtZSB8fCAnIFNFVCByZWxuYW1lID0gJydteXRlc3QnJyAnOworRVhDRVBUSU9OIFdIRU4gd3Jv bmdfb2JqZWN0X3R5cGUgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQg ZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBVUERBVEUnOworRU5EICQkOworTk9USUNF OiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBVUERB VEUKKy0tIFRyeWluZyB0byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVURSBvbiB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBiZSBhbGxvd2VkIHNvIHRoYXQgdXNlciBjYW4gcGVy Zm9ybSBjbGVhbnVwCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBBUyBjb25mbGlj dF90YWIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5h bWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCcgXGdzZXQKK1RSVU5DQVRFIDpjb25mbGljdF90 YWI7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfdGFiOworLS0gVHJ5aW5nIHRvIGNyZWF0ZSBhIG5l dyB0YWJsZSBtYW51YWxseSBpbiB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBUaGlzIHNo b3VsZCBmYWlsIGFzIHRoZSBuYW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGNvbmZsaWN0IGxvZ3Mg dGFibGVzCitDUkVBVEUgVEFCTEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOwor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgInBnX2NvbmZsaWN0Lm1hbnVhbF90 YWJsZSIKK0RFVEFJTDogIENvbmZsaWN0IHNjaGVtYSBtb2RpZmljYXRpb25zIGFyZSBjdXJyZW50 bHkgZGlzYWxsb3dlZC4KKy0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBpbnRvIHRoZSBwZ19j b25mbGljdCBuYW1lc3BhY2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byBtb3ZlIHRo ZWlyIG93biB0YWJsZXMgd2l0aGluIHRoaXMgbmFtZXNwYWNlCitDUkVBVEUgVEFCTEUgcHVibGlj LnRlc3RfbW92ZSAoaWQgaW50KTsKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFND SEVNQSBwZ19jb25mbGljdDsKK0VSUk9SOiAgY2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9yIG91 dCBvZiB0aGUgY29uZmxpY3Qgc2NoZW1hCitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CistLSBDbGVhbiB1cCByZW1haW5pbmcg dGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xv Z19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9s b2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKIFJFU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJP UCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNj cmlwdGlvbi5zcWwKaW5kZXggMzc0ZmFkNmFhN2IuLmYyMDllYWU4ODFlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTQ0Miw2ICs0NDIsMjYyIEBAIENPTU1JVDsKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsK IERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKIAorLS0KKy0tIENPTkZMSUNUIExP RyBERVNUSU5BVElPTiBURVNUUworLS0KKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVn cmVzc19zdWJzY3JpcHRpb25fdXNlcic7CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FS TklORzsKKworLS0gZmFpbCAtIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFs c2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdpbnZhbGlkJyk7CisKKy0tIHZlcmlmeSBz dWJjb25mbGljdGxvZ2Rlc3QgaXMgJ2xvZycgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgaXMgMCAo SW52YWxpZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworU0VMRUNU IHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBw Z19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZh dWx0JzsKKworLS0gdmVyaWZ5IGVtcHR5IHN0cmluZyBkZWZhdWx0cyB0byAnbG9nJworQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnJyk7CitTRUxFQ1Qgc3VibmFt ZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKwor LS0gdGhpcyBzaG91bGQgZ2VuZXJhdGUgYW4gY29uZmxpY3QgbG9nIHRhYmxlIG5hbWVkIHBnX2Nv bmZsaWN0X2xvZ18kc3ViaWQkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElP TiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ3RhYmxlJyk7CisKKy0tIGNoZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVz dGluYXRpb24gc2hvdWxkIGJlICd0YWJsZScgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgdmFsaWQK K1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQg PiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBl eGlzdHMsIGl0cyBPSUQgbWF0Y2hlcyBzdWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5kIGl0IGlz IGxvY2F0ZWQgaW4gdGhlICdwZ19jb25mbGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5uc3BuYW1l LCAoYy5vaWQgPSBzLnN1YmNvbmZsaWN0bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIKK0ZST00g cGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3Bh Y2UgPSBuLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOwor CistLSBjaGVjayBpZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hl bWEKK1NFTEVDVCBhLmF0dG51bSwgYS5hdHRuYW1lCitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lO IHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRF UiBCWSBhLmF0dG51bTsKKworLS0gQ2hhbmdpbmcgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBzaG91 bGQgYWxzbyB1cGRhdGUgdGhlIG93bmVyCistLSBvZiB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBs b2cgdGFibGUuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05F UiBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKK1NFTEVDVCBwZ19jYXRhbG9nLnBnX2dl dF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lcgorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNz IGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworICAgICAgICBPTiBjLnJlbG5h bWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0gVmVyaWZ5IHRoYXQgYSBub24tc3VwZXJ1c2VyIHN1 YnNjcmlwdGlvbiBvd25lciBjYW4gdHJ1bmNhdGUsCistLSBkZWxldGUgZnJvbSwgYW5kIHNlbGVj dCBmcm9tIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KK1NFVCBST0xFICdyZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyMic7CisKK1NFTEVDVCBmb3JtYXQoJyVJLiVJJywgbi5uc3Bu YW1lLCBjLnJlbG5hbWUpIEFTIGNvbmZsaWN0X2xvZ190YWJsZQorRlJPTSBwZ19jYXRhbG9nLnBn X2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbgorCU9OIG4ub2lkID0gYy5y ZWxuYW1lc3BhY2UKK0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworCU9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfdGVzdDEnCitcZ3NldAorCitUUlVOQ0FURSBUQUJMRSA6Y29uZmxpY3Rf bG9nX3RhYmxlOworREVMRVRFIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIDpjb25mbGljdF9sb2dfdGFibGU7CisKK1JFU0VUIFJPTEU7CisKKy0tIFJlc3Rv cmUgdGhlIG9yaWdpbmFsIHN1YnNjcmlwdGlvbiBvd25lci4KK0FMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7 CisKKy0tCistLSBBTFRFUiBTVUJTQ1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24g c3RhdGUgdHJhbnNpdGlvbnMKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRp b24gbG9naWMgYmV0d2VlbiBkaWZmZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1 cmluZyBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4 cGVjdGVkCistLQorLS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBj b25mbGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKwor LS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2Fs bCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3Jl bGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0 byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0 aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBG Uk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVz dDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNvbmZsaWN0 bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFu Z2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDInOworCistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJworLS0gc2hv dWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciBzdWJjb25mbGljdGxvZ3JlbGlkCitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0 bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0Mic7CisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQor U0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMg T04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjogVmVy aWZ5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3Jl bGF0aW9uX2lzX3B1Ymxpc2hhYmxlIHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxv ZyB0YWJsZXMgdG8KKy0tIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNs dWRlZCBpbiBwdWJsaWNhdGlvbnMKKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9p c19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMu c3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0MSc7CisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUg TWFuYWdlbWVudAorLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERS T1AgVEFCTEUgaXMgZGlzYWxsb3dlZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxs eSByZWFwcyB0aGUgdGFibGUKKy0tCistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVy aWZpY2F0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBXZSB1c2UgYSBETyBi bG9jayB3aXRoIGR5bmFtaWMgU1FMIGJlY2F1c2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0g bmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9uLWRldGVybWlu aXN0aWMuIFRoaXMKKy0tIGFwcHJvYWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRoZSBEUk9QIGFu ZCBjYXB0dXJlIHRoZSBleHBlY3RlZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNvZGluZyBhIHNw ZWNpZmljIE9JRCBpbiB0aGUgZXhwZWN0ZWQgb3V0cHV0CisKKy0tIGZhaWwgLSBkcm9wIHRhYmxl IG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRlbmN5CitTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9IE5PVElDRTsKK0RPICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUg JyB8fCAoU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgRlJPTSBw Z19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7 CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBO T1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsK K0VORCAkJDsKKworLS0gQ0xFQU5VUDogRFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxl CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBO T05FKTsKKworLS0gVmVyaWZ5IHRoZSB0YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAn cGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxlbmFt ZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEnIFxnc2V0CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKK0RST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDE7CisKKy0tIHNob3VsZCByZXR1cm4g TlVMTCwgbWVhbmluZyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVu ZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScpOworCistLQor LS0gQWRkaXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMKKy0tCisK Ky0tIFNldHVwOiBFbnN1cmUgd2UgaGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29uZmxpY3Qg bG9nIHRhYmxlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAgICBQVUJM SUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgY29uZmxpY3QgbG9n IHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1t YW5hZ2VkCistLSBBcyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEg RE8gYmxvY2sgdG8gaGlkZSBkeW5hbWljIE9JRHMKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSBOT1RJQ0U7CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAg IFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9N IHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFM VEVSIFRBQkxFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFC TEUgJyB8fCB0YWJfbmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQ VElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAn Y2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFM VEVSJzsKK0VORCAkJDsKKworLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0 YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFu YWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcg dGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4K KyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAg RlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3Bn X2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcg fHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENFUFRJ T04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJl ZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7CitFTkQg JCQ7CisKKy0tIFRlc3QgTWFudWFsIFVQREFURSBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRo aXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhp ZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRp b24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNU ICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xh c3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAn IFNFVCByZWxuYW1lID0gJydteXRlc3QnJyAnOworRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0 X3R5cGUgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdy b25nX29iamVjdF90eXBlIGR1cmluZyBVUERBVEUnOworRU5EICQkOworCistLSBUcnlpbmcgdG8g cGVyZm9ybSBUUlVOQ0FURS9ERUxFVEUgb24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhp cyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0aGF0IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51cAorU0VM RUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgQVMgY29uZmxpY3RfdGFiCitGUk9NIHBnX2Ns YXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0 X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QnIFxnc2V0CitUUlVOQ0FURSA6Y29uZmxpY3RfdGFiOworREVMRVRFIEZST00g OmNvbmZsaWN0X3RhYjsKKworLS0gVHJ5aW5nIHRvIGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxs eSBpbiB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRo ZSBuYW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGNvbmZsaWN0IGxvZ3MgdGFibGVzCitDUkVBVEUg VEFCTEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworCistLSBNb3ZpbmcgYW4g ZXhpc3RpbmcgdGFibGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBVc2VycyBz aG91bGQgbm90IGJlIGFibGUgdG8gbW92ZSB0aGVpciBvd24gdGFibGVzIHdpdGhpbiB0aGlzIG5h bWVzcGFjZQorQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBU QUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitEUk9QIFRBQkxF IHB1YmxpYy50ZXN0X21vdmU7CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsK KworLS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05F KTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CisKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1l ID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsK KworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworCitBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsK K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3Q7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9M RSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA4Y2Y0MGM4NzA0My4uMjAz OTU5ZTUwMTggMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cisr KyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01MTUsNiArNTE1LDggQEAg Q29uZGl0aW9uYWxTdGFjawogQ29uZGl0aW9uYWxTdGFja0RhdGEKIENvbmZpZ0RhdGEKIENvbmZp Z1ZhcmlhYmxlCitDb25mbGljdExvZ0NvbHVtbkRlZgorQ29uZmxpY3RMb2dEZXN0CiBDb25mbGlj dFR1cGxlSW5mbwogQ29uZmxpY3RUeXBlCiBDb25uQ2FjaGVFbnRyeQotLSAKMi41My4wCgo= --000000000000768f830653bc69ca Content-Type: application/octet-stream; name="v47-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v47-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq54pjoe1 RnJvbSA2MmE0ZWFiYTEzZTQzNDQwNTY4NWMzYWM4OWRhMmQ2MWNjNzEyZGM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjQ3 IDIvNV0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIHBnX2Nv bmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18xNjM5NjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCBy ZW1vdGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7 ImEiOjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3 NSAgICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiAuLi4vcmVwbGljYXRpb24vbG9naWNh bC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgMzcgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDY0NyArKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyAgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgMTYgKy0KIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDcgKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbCAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzVfY29uZmxpY3RzLnBsICAgICAgfCAgNDcgKy0KIDggZmlsZXMgY2hhbmdlZCwg NzEzIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKaW5kZXggMDEyZDU1 ZTlkM2QuLmQyNGM1MmQ0M2U2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwpAQCAtOTg2LDcgKzk4Niw0MiBAQCBQYXJh bGxlbEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCXNldF9hcHBseV9lcnJvcl9j b250ZXh0X29yaWdpbihvcmlnaW5uYW1lKTsKIAotCUxvZ2ljYWxQYXJhbGxlbEFwcGx5TG9vcCht cWgpOworCVBHX1RSWSgpOworCXsKKwkJTG9naWNhbFBhcmFsbGVsQXBwbHlMb29wKG1xaCk7CisJ fQorCVBHX0NBVENIKCk7CisJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJCUVycm9y RGF0YSAqZWRhdGE7CisKKwkJLyoKKwkJICogQ29weSB0aGUgRXJyb3JEYXRhIGJlZm9yZSBkb2lu ZyBhbnkgZnVydGhlciB3b3JrLiBUaGUgZXJyb3IgbWF5CisJCSAqIGhhdmUgYmVlbiByYWlzZWQg d2hpbGUgcnVubmluZyB1bmRlciBFcnJvckNvbnRleHQsIHNvIHN3aXRjaCB0bworCQkgKiBhIHNh ZmUgY29udGV4dCAoVG9wTWVtb3J5Q29udGV4dCkgdG8gYXZvaWQgYXNzZXJ0aW9ucyBhbmQgZW5z dXJlCisJCSAqIHRoZSBlcnJvciBkYXRhIHN1cnZpdmVzIHN1YnNlcXVlbnQgY2xlYW51cC4KKwkJ ICovCisJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5Q29udGV4 dCk7CisJCWVkYXRhID0gQ29weUVycm9yRGF0YSgpOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY29udGV4dCk7CisKKwkJRmx1c2hFcnJvclN0YXRlKCk7CisKKwkJLyoKKwkJICogUmVzZXQg dGhlIG9yaWdpbiBzdGF0ZSB0byBwcmV2ZW50IHRoZSBhZHZhbmNlbWVudCBvZiBvcmlnaW4KKwkJ ICogcHJvZ3Jlc3MgaWYgd2UgZmFpbCB0byBhcHBseS4gT3RoZXJ3aXNlLCB0aGlzIHdpbGwgcmVz dWx0IGluCisJCSAqIHRyYW5zYWN0aW9uIGxvc3MgYXMgdGhhdCB0cmFuc2FjdGlvbiB3b24ndCBi ZSBzZW50IGFnYWluIGJ5IHRoZQorCQkgKiBzZXJ2ZXIuCisJCSAqLworCQlyZXBsb3JpZ2luX3hh Y3RfY2xlYXIodHJ1ZSk7CisKKwkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CisJCVByb2Nl c3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCisJCS8qIFJlLXRocm93IHRoZSBvcmlnaW5h bCBlcnJvci4gKi8KKwkJUmVUaHJvd0Vycm9yKGVkYXRhKTsKKwl9CisJUEdfRU5EX1RSWSgpOwog CiAJLyoKIAkgKiBUaGUgcGFyYWxsZWwgYXBwbHkgd29ya2VyIG11c3Qgbm90IGdldCBoZXJlIGJl Y2F1c2UgdGhlIHBhcmFsbGVsIGFwcGx5CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2NvbmZsaWN0LmMKaW5kZXggNGE2NDcyNzdkMWYuLjZiZjNkNmQ1YTQ0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0xNiwxNyArMTYsMjQgQEAKIAog I2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNs dWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtl cl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxz L3BnX2xzbi5oIgogCiAvKgogICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgdGhlIHN1cHBv cnRlZCBjb25mbGljdCBsb2dnaW5nIGRlc3RpbmF0aW9ucy4KQEAgLTQwLDcgKzQ3LDYgQEAgY29u c3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKIFN0YXRpY0Fzc2VydERl Y2wobGVuZ3Rob2YoQ29uZmxpY3RMb2dEZXN0TmFtZXMpID09IENPTkZMSUNUX0xPR19ERVNUX0FM TCArIDEsCiAJCQkJICJDb25mbGljdExvZ0Rlc3ROYW1lcyBsZW5ndGggbWlzbWF0Y2giKTsKIAot CiAvKiBTdHJ1Y3R1cmUgdG8gaG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlICovCiB0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgog ewpAQCAtNzIsNiArNzgsMTggQEAgc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIENv bmZsaWN0TG9nU2NoZW1hW10gPSB7CiAKICNkZWZpbmUgTlVNX0NPTkZMSUNUX0FUVFJTIGxlbmd0 aG9mKENvbmZsaWN0TG9nU2NoZW1hKQogCisvKiBTY2hlbWEgZm9yIHRoZSBlbGVtZW50cyB3aXRo aW4gdGhlICdsb2NhbF9jb25mbGljdHMnIEpTT04gYXJyYXkgKi8KK3N0YXRpYyBjb25zdCBDb25m bGljdExvZ0NvbHVtbkRlZiBMb2NhbENvbmZsaWN0U2NoZW1hW10gPQoreworCXsgLmF0dG5hbWUg PSAieGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJjb21t aXRfdHMiLCAuYXR0dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAib3Jp Z2luIiwgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAia2V5IiwgICAg ICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAidHVwbGUiLCAgICAgLmF0 dHR5cGlkID0gSlNPTk9JRCB9Cit9OworCisjZGVmaW5lIE5VTV9MT0NBTF9DT05GTElDVF9BVFRS UyBsZW5ndGhvZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgQ29uZmxpY3RUeXBlTmFtZXNbXSA9IHsKIAlbQ1RfSU5TRVJUX0VYSVNUU10gPSAiaW5zZXJ0 X2V4aXN0cyIsCiAJW0NUX1VQREFURV9PUklHSU5fRElGRkVSU10gPSAidXBkYXRlX29yaWdpbl9k aWZmZXJzIiwKQEAgLTk5LDggKzExNywyNyBAQCBzdGF0aWMgdm9pZCBnZXRfdHVwbGVfZGVzYyhF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCSAgIFR1cGxlVGFi bGVTbG90ICpyZW1vdGVzbG90LCBjaGFyICoqcmVtb3RlX2Rlc2MsCiAJCQkJCQkgICBUdXBsZVRh YmxlU2xvdCAqc2VhcmNoc2xvdCwgY2hhciAqKnNlYXJjaF9kZXNjLAogCQkJCQkJICAgT2lkIGlu ZGV4b2lkKTsKK3N0YXRpYyB2b2lkIGJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0YXRl ICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAq c2xvdCwKKwkJCQkJCQkJCQkgUmVsYXRpb24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJ CQkJCQkJCSBib29sICppc251bGwpOwogc3RhdGljIGNoYXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rl c2MoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAogCQkJCQkJCQkJVHVwbGVUYWJs ZVNsb3QgKnNsb3QsIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xv dF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBEYXR1bSB0dXBs ZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsCisJCQkJCQkJCQkJ CSAgIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCQkgICBPaWQgcmVwbGljYV9pbmRleCwK KwkJCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIFR1cGxlRGVzYyBi dWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCk7CitzdGF0aWMgRGF0dW0gYnVpbGRfbG9jYWxf Y29uZmxpY3RzX2pzb25fYXJyYXkoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJ CQkJCQkJICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJICBMaXN0ICpj b25mbGljdHR1cGxlcyk7CitzdGF0aWMgdm9pZCBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShF U3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkJICAgUmVsYXRpb24gY29uZmxp Y3Rsb2dyZWwsCisJCQkJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJCQkJICAgTGlzdCAqY29u ZmxpY3R0dXBsZXMsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCk7CiAK IC8qCiAgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4K QEAgLTI4MSwzMCArMzE4LDE3MCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRl LCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUg dHlwZSwgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpy ZW1vdGVzbG90LCBMaXN0ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9 IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOwor CVJlbGF0aW9uCQlsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGlj dExvZ0Rlc3QJZGVzdDsKKwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7CisJYm9vbAkJCWxvZ19k ZXN0X3RhYmxlOworCWJvb2wgCQkJbG9nX2Rlc3RfbG9nZmlsZTsKIAotCWluaXRTdHJpbmdJbmZv KCZlcnJfZGV0YWlsKTsKKwlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1 YnNjcmlwdGlvbi0+b2lkLCB0eXBlKTsKIAotCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkg Y29tYmluaW5nIGNvbmZsaWN0aW5nIHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KLQlmb3JlYWNoX3B0 cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCi0JCWVy cmRldGFpbF9hcHBseV9jb25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5cGUsIHNlYXJjaHNsb3Qs Ci0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90LAotCQkJCQkJCQkgY29u ZmxpY3R0dXBsZS0+aW5kZXhvaWQsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT54bWluLAotCQkJ CQkJCQkgY29uZmxpY3R0dXBsZS0+b3JpZ2luLAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+dHMs Ci0JCQkJCQkJCSAmZXJyX2RldGFpbCk7CisJLyoKKwkgKiBHZXQgdGhlIGNvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbi4gQWxzbywgKGlmIHRoZXJlIGlzIG9uZSkgcmV0dXJuIHRoZQorCSAqIENMVCBy ZWxhdGlvbiBhbHJlYWR5IG9wZW5lZCBhbmQgcmVhZHkgZm9yIGluc2VydGlvbi4KKwkgKi8KKwlj b25mbGljdGxvZ3JlbCA9IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKIAotCXBn c3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQsIHR5 cGUpOworCWxvZ19kZXN0X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShkZXN0KTsK Kwlsb2dfZGVzdF9sb2dmaWxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19MT0coZGVzdCk7CisKKwkv KiBJbnNlcnQgdG8gdGFibGUgaWYgcmVxdWVzdGVkLiAqLworCWlmIChsb2dfZGVzdF90YWJsZSkK Kwl7CisJCUFzc2VydChjb25mbGljdGxvZ3JlbCAhPSBOVUxMKTsKKworCQkvKgorCQkgKiBQcmVw YXJlIHRoZSBjb25mbGljdCBsb2cgdHVwbGUuIElmIHRoZSBlcnJvciBsZXZlbCBpcyBiZWxvdyBF UlJPUiwKKwkJICogaW5zZXJ0IGl0IGltbWVkaWF0ZWx5LiBPdGhlcndpc2UsIGRlZmVyIHRoZSBp bnNlcnRpb24gdG8gYSBuZXcKKwkJICogdHJhbnNhY3Rpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgb25l IGFib3J0cywgZW5zdXJpbmcgdGhlIGluc2VydGlvbiBvZgorCQkgKiB0aGUgbG9nIHR1cGxlIGlz IG5vdCByb2xsZWQgYmFjay4KKwkJICovCisJCXByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKGVz dGF0ZSwKKwkJCQkJCQkJICAgcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkgICBj b25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJICAgdHlwZSwKKwkJCQkJCQkJICAgc2VhcmNoc2xvdCwK KwkJCQkJCQkJICAgY29uZmxpY3R0dXBsZXMsCisJCQkJCQkJCSAgIHJlbW90ZXNsb3QpOworCQlp ZiAoZWxldmVsIDwgRVJST1IpCisJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9n cmVsKTsKKworCQlpZiAoIWxvZ19kZXN0X2xvZ2ZpbGUpCisJCXsKKwkJCS8qCisJCQkgKiBOb3Qg bG9nZ2luZyBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2ZXIgbG9nOyBSZXBvcnQgdGhlIGVy cm9yCisJCQkgKiBtc2cgYnV0IG9taXQgcmF3IHR1cGxlIGRhdGEgZnJvbSBzZXJ2ZXIgbG9ncyBz aW5jZSBpdCdzIGFscmVhZHkKKwkJCSAqIGNhcHR1cmVkIGluIHRoZSBjb25mbGljdCBsb2cgdGFi bGUuCisJCQkgKi8KKwkJCWVyZXBvcnQoZWxldmVsLAorCQkJCQllcnJjb2RlX2FwcGx5X2NvbmZs aWN0KHR5cGUpLAorCQkJCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwi JXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkJUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5h bWUobG9jYWxyZWwpLAorCQkJCQkJQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCQllcnJk ZXRhaWwoIkNvbmZsaWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0byB0aGUgY29uZmxpY3QgbG9nIHRh YmxlOiAlcyIsCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShjb25mbGljdGxvZ3Jl bCkpKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVM b2NrKTsKKwl9CisKKwkvKiBMb2cgaW50byB0aGUgc2VydmVyIGxvZyBpZiByZXF1ZXN0ZWQuICov CisJaWYgKGxvZ19kZXN0X2xvZ2ZpbGUpCisJeworCQlTdHJpbmdJbmZvRGF0YQllcnJfZGV0YWls OworCisJCWluaXRTdHJpbmdJbmZvKCZlcnJfZGV0YWlsKTsKKworCQkvKiBGb3JtIGVycmRldGFp bCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMgaW5mb3JtYXRpb24uICov CisJCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGlj dHR1cGxlcykKKwkJCWVycmRldGFpbF9hcHBseV9jb25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5 cGUsIHNlYXJjaHNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90 LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQsCisJCQkJCQkJCQljb25mbGljdHR1 cGxlLT54bWluLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+b3JpZ2luLAorCQkJCQkJCQkJY29u ZmxpY3R0dXBsZS0+dHMsCisJCQkJCQkJCQkmZXJyX2RldGFpbCk7CisKKwkJLyogU3RhbmRhcmQg cmVwb3J0aW5nIHdpdGggZnVsbCBpbnRlcm5hbCBkZXRhaWxzLiAqLworCQllcmVwb3J0KGVsZXZl bCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJCWVycm1zZygiY29uZmxp Y3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25mbGljdD0lcyIsCisJCQkJCSAgIFJl bGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVsKSwKKwkJCQkJICAgQ29uZmxp Y3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbF9pbnRlcm5hbCgiJXMiLCBlcnJfZGV0 YWlsLmRhdGEpKTsKKwl9Cit9CisKKy8qCisgKiBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVw bGUKKyAqICAgICAgSW5zZXJ0IGFueSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgaW4gYSBz ZXBhcmF0ZSB0cmFuc2FjdGlvbi4KKyAqCisgKiBGb3IgY29uZmxpY3RzIHJhaXNlZCBhdCBFUlJP UiBsZXZlbCwgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBjYW5ub3QgYmUKKyAqIGluc2VydGVkIGlt bWVkaWF0ZWx5IGJlY2F1c2UgdGhlIHN1cnJvdW5kaW5nIHRyYW5zYWN0aW9uIHdpbGwgYWJvcnQu CisgKiBUbyBlbnN1cmUgdGhhdCBjb25mbGljdCBpbmZvcm1hdGlvbiBpcyBub3QgbG9zdCwgc3Vj aCB0dXBsZXMgYXJlIHByZXBhcmVkCisgKiBkdXJpbmcgZXJyb3IgcHJvY2Vzc2luZyAoc2VlIHBy ZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKCkpIGJ1dCB0aGVpcgorICogaW5zZXJ0aW9uIGlzIGRl ZmVycmVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRp bmcgdGhhdCBkZWZlcnJlZCBpbnNlcnRpb24gYWZ0ZXIKKyAqIHRoZSBmYWlsaW5nIHRyYW5zYWN0 aW9uIGhhcyBiZWVuIGFib3J0ZWQgYW5kIHRoZSBzeXN0ZW0gaGFzIHJldHVybmVkIHRvIGFuCisg KiBpZGxlIHN0YXRlLiAgSXQgZXhlY3V0ZXMgdGhlIGluc2VydGlvbiBpbiBhIG5ldywgaW5kZXBl bmRlbnQgdHJhbnNhY3Rpb24sCisgKiBlbnN1cmluZyB0aGF0IHRoZSBjb25mbGljdCBsb2cgZW50 cnkgaXMgZHVyYWJsZSBhbmQgbm90IHJvbGxlZCBiYWNrCisgKiB0b2dldGhlciB3aXRoIHRoZSBm YWlsZWQgYXBwbHkgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1Byb2Nlc3NQZW5kaW5nQ29uZmxp Y3RMb2dUdXBsZSh2b2lkKQoreworCVJlbGF0aW9uCWNvbmZsaWN0bG9ncmVsOworCUNvbmZsaWN0 TG9nRGVzdCBkZXN0OworCisJLyogTm90aGluZyB0byBkbyAqLworCWlmIChNeUxvZ2ljYWxSZXBX b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlQR19UUlko KTsKKwl7CisJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCVB1c2hBY3RpdmVTbmFwc2hv dChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCisJCS8qIE9wZW4gY29uZmxpY3QgbG9nIHRh YmxlIGFuZCBpbnNlcnQgdGhlIHR1cGxlICovCisJCWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxp Y3RMb2dEZXN0QW5kVGFibGUoJmRlc3QpOworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwpOworCisJ CUluc2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxpY3Rsb2dyZWwpOworCisJCXRhYmxlX2Nsb3Nl KGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlQb3BBY3RpdmVTbmFwc2hv dCgpOworCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7 CisJCUVycm9yRGF0YSAgKmVkYXRhOworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKworCQkvKiBT YXZlIGVycm9yIGluZm8gaW4gb3VyIG1lbW9yeSBjb250ZXh0ICovCisJCW9sZGN0eCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwkJZWRhdGEgPSBDb3B5RXJyb3JE YXRhKCk7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOworCisJCS8qIENsZWFyIHRo ZSBlcnJvciBzdGF0ZSBzbyB3ZSBjYW4gY29udGludWUgKi8KKwkJRmx1c2hFcnJvclN0YXRlKCk7 CiAKLQllcmVwb3J0KGVsZXZlbCwKLQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0J CQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxp Y3Q9JXMiLAotCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShs b2NhbHJlbCkpLAotCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJ CQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVz IiwgZXJyX2RldGFpbC5kYXRhKSk7CisJCS8qIEFib3J0IHRoZSB0cmFuc2FjdGlvbiB3ZSBzdGFy dGVkIGFib3ZlICovCisJCUFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpOworCisJCS8qCisJCSAq IFJlcG9ydCB0aGUgZXJyb3IgYXMgYSB3YXJuaW5nLiBXZSB1c2UgV0FSTklORyBiZWNhdXNlIHdl IGRvbid0IHdhbnQKKwkJICogdGhpcyB0byBiZSBhIGZhdGFsIGVycm9yIGZvciB0aGUgd29ya2Vy LCBhbmQgd2Ugd2FudCB0byBhbGxvdyB0aGUKKwkJICogY2FsbGVyJ3Mgb3JpZ2luYWwgZXJyb3Ig dG8gcmVtYWluIHByaW1hcnkuCisJCSAqLworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycm1z ZygiY291bGQgbm90IGxvZyBjb25mbGljdCB0byB0YWJsZSBmb3Igc3Vic2NyaXB0aW9uIFwiJXNc IjogJXMiLAorCQkJCQkJTXlTdWJzY3JpcHRpb24tPm5hbWUsIGVkYXRhLT5tZXNzYWdlKSkpOwor CisJCUZyZWVFcnJvckRhdGEoZWRhdGEpOworCisJCS8qCisJCSAqIEZyZWUgdGhlIGNvbmZsaWN0 IGxvZyB0dXBsZSBhbmQgc2V0IGl0IHRvIE5VTEwuIFRoaXMgZW5zdXJlcyB3ZQorCQkgKiBkb24n dCB0cnkgdG8gaW5zZXJ0IHRoZSBzYW1lIHByb2JsZW1hdGljIHR1cGxlIGFnYWluLgorCQkgKi8K KwkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpCisJ CXsKKwkJCWhlYXBfZnJlZXR1cGxlKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1 cGxlKTsKKwkJCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsK KwkJfQorCX0KKwlQR19FTkRfVFJZKCk7CiB9CiAKIC8qCkBAIC0zMzgsNiArNTE1LDU2IEBAIElu aXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbykKIAlyZWxJbmZvLT5yaV9v bkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSB1bmlxdWVJbmRleGVzOwogfQogCisvKgorICogR2V0 Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUKKyAqCisgKiBGZXRjaGVzIGNvbmZsaWN0IGxvZ2dpbmcg bWV0YWRhdGEgZnJvbSB0aGUgY2FjaGVkIE15U3Vic2NyaXB0aW9uIHBvaW50ZXIuCisgKiBTZXRz IHRoZSBkZXN0aW5hdGlvbiBlbnVtIGluICpsb2dfZGVzdCBhbmQsIGlmIGFwcGxpY2FibGUsIG9w ZW5zIGFuZAorICogcmV0dXJucyB0aGUgcmVsYXRpb24gaGFuZGxlIGZvciB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlLgorICovCitSZWxhdGlvbgorR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoQ29u ZmxpY3RMb2dEZXN0ICpsb2dfZGVzdCkKK3sKKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOworCisJ LyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0aW5hdGlvbiB0byB0aGUgaW50ZXJuYWwg ZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFkeSBjb250YWlucyB0aGUgZGF0YSBmcm9t IHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rlc3QgPSBHZXRDb25mbGljdExvZ0Rlc3Qo TXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkvKiBRdWljayBleGl0IGlmIGEg Y29uZmxpY3QgbG9nIHRhYmxlIHdhcyBub3QgcmVxdWVzdGVkLiAqLworCWlmICghQ09ORkxJQ1RT X0xPR0dFRF9UT19UQUJMRSgqbG9nX2Rlc3QpKQorCQlyZXR1cm4gTlVMTDsKKworCWNvbmZsaWN0 bG9ncmVsaWQgPSBNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dyZWxpZDsKKworCUFzc2VydChP aWRJc1ZhbGlkKGNvbmZsaWN0bG9ncmVsaWQpKTsKKworCXJldHVybiB0YWJsZV9vcGVuKGNvbmZs aWN0bG9ncmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCisvKgorICogSW5zZXJ0Q29uZmxp Y3RMb2dUdXBsZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVwbGUgaW50byB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMIHRvIGV4 cGxpY2l0bHkgYmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAqIGluc2VydGVk IGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0Q29uZmxpY3RM b2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwkvKiBBIHZhbGlkIHR1cGxlIG11 c3QgYmUgcHJlcGFyZWQgYW5kIHN0b3JlZCBpbiBNeUxvZ2ljYWxSZXBXb3JrZXIuICovCisJQXNz ZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpOworCisJ aGVhcF9pbnNlcnQoY29uZmxpY3Rsb2dyZWwsIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlLAorCQkJCUdldEN1cnJlbnRDb21tYW5kSWQodHJ1ZSksIEhFQVBfSU5TRVJUX05P X0xPR0lDQUwsIE5VTEwpOworCisJLyogRnJlZSBjb25mbGljdCBsb2cgdHVwbGUuICovCisJaGVh cF9mcmVldHVwbGUoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUpOworCU15 TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsKK30KKwogLyoKICAq IEFkZCBTUUxTVEFURSBlcnJvciBjb2RlIHRvIHRoZSBjdXJyZW50IGNvbmZsaWN0IHJlcG9ydC4K ICAqLwpAQCAtNzcxLDYgKzk5OCw0MCBAQCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwg UmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgQ29uZmxpY3RUeXBlIHR5cGUsCiAJfQogfQogCisvKgor ICogSGVscGVyIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlICJyYXciIGluZGV4IGtleSBEYXR1bXMg YW5kIHRoZWlyIG51bGwgZmxhZ3MKKyAqIGZyb20gYSBUdXBsZVRhYmxlU2xvdCwgZ2l2ZW4gYW4g YWxyZWFkeSBvcGVuIGluZGV4IGRlc2NyaXB0b3IuCisgKiBUaGlzIGlzIHRoZSByZXVzYWJsZSBj b3JlIGxvZ2ljLgorICovCitzdGF0aWMgdm9pZAorYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xv dChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWwsCisJCQkJCQkJIFR1cGxlVGFibGVT bG90ICpzbG90LAorCQkJCQkJCSBSZWxhdGlvbiBpbmRleERlc2MsIERhdHVtICp2YWx1ZXMsCisJ CQkJCQkJIGJvb2wgKmlzbnVsbCkKK3sKKwlUdXBsZVRhYmxlU2xvdCAqdGFibGVzbG90ID0gc2xv dDsKKworCS8qCisJICogSWYgdGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50 byBhIGhlYXAgdHVwbGUgc2xvdCBhcworCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0 aCBoZWFwIHR1cGxlIHNsb3RzLgorCSAqLworCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwl7 CisJCS8qIFNsb3QgaXMgY3JlYXRlZCB3aXRoaW4gdGhlIEVTdGF0ZSdzIHR1cGxlIHRhYmxlICov CisJCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190 dXBsZVRhYmxlKTsKKwkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7 CisJfQorCisJLyoKKwkgKiBJbml0aWFsaXplIGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwg dXNlIGluIEZvcm1JbmRleERhdHVtCisJICovCisJR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3Rh dGUpLT5lY3h0X3NjYW50dXBsZSA9IHRhYmxlc2xvdDsKKworCS8qIEZvcm0gdGhlIGluZGV4IGRh dHVtcyAqLworCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxl c2xvdCwgZXN0YXRlLCB2YWx1ZXMsCisJCQkJICAgaXNudWxsKTsKK30KKwogLyoKICAqIEhlbHBl ciBmdW5jdGlvbnMgdG8gY29uc3RydWN0IGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnRz IG9mIGFuIGluZGV4CiAgKiBlbnRyeS4gU2VlIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIGZv ciBkZXRhaWxzLgpAQCAtNzg2LDQxICsxMDQ3LDMzOSBAQCBidWlsZF9pbmRleF92YWx1ZV9kZXNj KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3Qs CiAJUmVsYXRpb24JaW5kZXhEZXNjOwogCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOwog CWJvb2wJCWlzbnVsbFtJTkRFWF9NQVhfS0VZU107Ci0JVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xv dCA9IHNsb3Q7CiAKLQlpZiAoIXRhYmxlc2xvdCkKKwlpZiAoIXNsb3QpCiAJCXJldHVybiBOVUxM OwogCiAJQXNzZXJ0KENoZWNrUmVsYXRpb25PaWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNs dXNpdmVMb2NrLCB0cnVlKSk7CiAKIAlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4b2lkLCBO b0xvY2spOwogCi0JLyoKLQkgKiBJZiB0aGUgc2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBp dCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90IGFzCi0JICogRm9ybUluZGV4RGF0dW0gb25seSB3b3Jr cyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMuCi0JICovCi0JaWYgKFRUU19JU19WSVJUVUFMKHNsb3Qp KQorCWJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwg aW5kZXhEZXNjLCB2YWx1ZXMsCisJCQkJCQkJCSBpc251bGwpOworCisJaW5kZXhfdmFsdWUgPSBC dWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbihpbmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsKKwor CWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCXJldHVybiBpbmRleF92YWx1ZTsK K30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bQorICoKKyAqIEhlbHBl ciBmdW5jdGlvbiB0byBjb252ZXJ0IGEgVHVwbGVUYWJsZVNsb3QgdG8gSlNPTi4KKyAqLworc3Rh dGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0oVHVwbGVUYWJsZVNsb3Qg KnNsb3QpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCURhdHVtCQlkYXR1bTsKKwlEYXR1bQkJanNv bjsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCisJdHVwbGUgPSBFeGVjQ29weVNsb3RIZWFw VHVwbGUoc2xvdCk7CisJZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHNs b3QtPnR0c190dXBsZURlc2NyaXB0b3IpOworCisJanNvbiA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEo cm93X3RvX2pzb24sIGRhdHVtKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwlyZXR1cm4g anNvbjsKK30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbgorICoK KyAqIEZldGNoIHJlcGxpY2EgaWRlbnRpdHkga2V5IGZyb20gdGhlIHR1cGxlIHRhYmxlIHNsb3Qg YW5kIGNvbnZlcnQgaW50byBhCisgKiBKU09OIGRhdHVtLgorICovCitzdGF0aWMgRGF0dW0KK3R1 cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbihFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24g bG9jYWxyZWwsCisJCQkJCQkJCSAgT2lkIGluZGV4aWQsIFR1cGxlVGFibGVTbG90ICpzbG90KQor eworCVJlbGF0aW9uCWluZGV4RGVzYzsKKwlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsK Kwlib29sCQlpc251bGxbSU5ERVhfTUFYX0tFWVNdOworCUhlYXBUdXBsZQl0dXBsZTsKKwlUdXBs ZURlc2MJdHVwZGVzYzsKKwlEYXR1bQkJZGF0dW07CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsK KworCUFzc2VydChDaGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleGlkLCBSb3dFeGNsdXNp dmVMb2NrLCB0cnVlKSk7CisKKwlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4aWQsIE5vTG9j ayk7CisKKwlidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNs b3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJCQkJCQkgaXNudWxsKTsKKwl0dXBkZXNjID0gQ3Jl YXRlVHVwbGVEZXNjQ29weShSZWxhdGlvbkdldERlc2NyKGluZGV4RGVzYykpOworCisJLyogQmxl c3MgdGhlIHR1cGRlc2Mgc28gaXQgY2FuIGJlIGxvb2tlZCB1cCBieSByb3dfdG9fanNvbi4gKi8K KwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsKKworCS8qIEZvcm0gdGhlIHJlcGxpY2EgaWRlbnRp dHkgdHVwbGUuICovCisJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBp c251bGwpOworCWRhdHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCB0dXBkZXNj KTsKKworCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOwor CWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCS8qIENvbnZlcnQgdG8gYSBKU09O IGRhdHVtLiAqLworCXJldHVybiBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1 bSk7Cit9CisKKy8qCisgKiBidWlsZF9jb25mbGljdF90dXBsZWRlc2MKKyAqCisgKiBCdWlsZCBh bmQgYmxlc3MgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGJh c2VkIG9uIHRoZQorICogcHJlZGVmaW5lZCBMb2NhbENvbmZsaWN0U2NoZW1hLgorICovCitzdGF0 aWMgVHVwbGVEZXNjCitidWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCkKK3sKKwlzdGF0aWMg VHVwbGVEZXNjIGNhY2hlZF90dXBkZXNjID0gTlVMTDsKKworCWlmIChjYWNoZWRfdHVwZGVzYyA9 PSBOVUxMKQogCXsKLQkJdGFibGVzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZl c3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQl0YWJsZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVz bG90LCBzbG90KTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJb2xkY3h0ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKENhY2hlTWVtb3J5Q29udGV4dCk7CisKKwkJY2FjaGVkX3R1cGRlc2Mg PSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhOVU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMpOworCisJ CWZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTOyBpKyspCisJCQlU dXBsZURlc2NJbml0RW50cnkoY2FjaGVkX3R1cGRlc2MsCisJCQkJCQkJICAgKEF0dHJOdW1iZXIp IChpICsgMSksCisJCQkJCQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5hdHRuYW1lLAorCQkJ CQkJCSAgIExvY2FsQ29uZmxpY3RTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkJICAgLTEsIDAp OworCisJCVR1cGxlRGVzY0ZpbmFsaXplKGNhY2hlZF90dXBkZXNjKTsKKworCQkvKgorCQkgKiBC bGVzcyBvbmNlIHNvIGl0IGNhbiBiZSB1c2VkIGFzIGEgUkVDT1JEIHR5cGUgKGUuZy4gZm9yCisJ CSAqIHJvd190b19qc29uIG9yIG90aGVyIHJlY29yZC1iYXNlZCBvcGVyYXRpb25zKS4KKwkJICov CisJCUJsZXNzVHVwbGVEZXNjKGNhY2hlZF90dXBkZXNjKTsKKworCQlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY3h0KTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUg Zm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4cHJl c3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRl KS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisJcmV0dXJuIGNhY2hlZF90dXBkZXNjOwor fQogCi0JLyoKLQkgKiBUaGUgdmFsdWVzL251bGxzIGFycmF5cyBwYXNzZWQgdG8gQnVpbGRJbmRl eFZhbHVlRGVzY3JpcHRpb24gc2hvdWxkIGJlCi0JICogdGhlIHJlc3VsdHMgb2YgRm9ybUluZGV4 RGF0dW0sIHdoaWNoIGFyZSB0aGUgInJhdyIgaW5wdXQgdG8gdGhlIGluZGV4Ci0JICogQU0uCi0J ICovCi0JRm9ybUluZGV4RGF0dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90 LCBlc3RhdGUsIHZhbHVlcywgaXNudWxsKTsKKy8qCisgKiBCdWlsZHMgdGhlIGxvY2FsIGNvbmZs aWN0cyBKU09OIGFycmF5IGNvbHVtbiBmcm9tIHRoZSBsaXN0IG9mCisgKiBDb25mbGljdFR1cGxl SW5mbyBvYmplY3RzLgorICoKKyAqIEV4YW1wbGUgb3V0cHV0IHN0cnVjdHVyZToKKyAqIFsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIi4uLiIsICJvcmlnaW4iOiAiLi4uIiwgInR1cGxl Ijogey4uLn0gfSwgLi4uIF0KKyAqLworc3RhdGljIERhdHVtCitidWlsZF9sb2NhbF9jb25mbGlj dHNfanNvbl9hcnJheShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkgQ29u ZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCSBMaXN0ICpjb25mbGljdHR1cGxlcykK K3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpqc29uX2RhdHVtcyA9IE5JTDsKKwlEYXR1 bQkgICAqanNvbl9kYXR1bV9hcnJheTsKKwlEYXR1bQkJanNvbl9hcnJheV9kYXR1bTsKKwlpbnQJ CQludW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBi eXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVwZGVzYzsKIAotCWluZGV4X3Zh bHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVs bCk7CisJLyogQnVpbGQgbG9jYWwgY29uZmxpY3RzIHR1cGxlIGRlc2NyaXB0b3IuICovCisJdHVw ZGVzYyA9IGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYygpOwogCi0JaW5kZXhfY2xvc2UoaW5kZXhE ZXNjLCBOb0xvY2spOworCS8qIFByb2Nlc3MgbG9jYWwgY29uZmxpY3QgdHVwbGUgbGlzdCBhbmQg cHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLworCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJ bmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKKwl7CisJCURhdHVtCQl2YWx1ZXNb TlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTlVNX0xPQ0FM X0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJY2hhcgkgICAqb3JpZ2luX25hbWUgPSBOVUxMOwor CQlIZWFwVHVwbGUJdHVwbGU7CisJCURhdHVtCQlqc29uX2RhdHVtOworCQlpbnQJCQlhdHRubzsK KworCQlhdHRubyA9IDA7CisJCXZhbHVlc1thdHRubysrXSA9IFRyYW5zYWN0aW9uSWRHZXREYXR1 bShjb25mbGljdHR1cGxlLT54bWluKTsKKworCQlpZiAoY29uZmxpY3R0dXBsZS0+dHMpCisJCQl2 YWx1ZXNbYXR0bm8rK10gPSBUaW1lc3RhbXBUekdldERhdHVtKGNvbmZsaWN0dHVwbGUtPnRzKTsK KwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOwogCi0JcmV0dXJuIGluZGV4X3ZhbHVl OworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQpCisJ CQlyZXBsb3JpZ2luX2J5X29pZChjb25mbGljdHR1cGxlLT5vcmlnaW4sIHRydWUsICZvcmlnaW5f bmFtZSk7CisKKwkJLyogU3RvcmUgZW1wdHkgc3RyaW5nIGlmIG9yaWdpbiBuYW1lIGZvciB0aGUg dHVwbGUgaXMgTlVMTC4gKi8KKwkJaWYgKG9yaWdpbl9uYW1lICE9IE5VTEwpCisJCQl2YWx1ZXNb YXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG9yaWdpbl9uYW1lKTsKKwkJZWxzZQorCQkJ bnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJCS8qCisJCSAqIEFkZCB0aGUgY29uZmxpY3Rpbmcg a2V5IHZhbHVlcyBpbiB0aGUgY2FzZSBvZiBhIHVuaXF1ZSBjb25zdHJhaW50CisJCSAqIHZpb2xh dGlvbi4KKwkJICovCisJCWlmIChjb25mbGljdF90eXBlID09IENUX0lOU0VSVF9FWElTVFMgfHwK KwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfVVBEQVRFX0VYSVNUUyB8fAorCQkJY29uZmxpY3RfdHlw ZSA9PSBDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTKQorCQl7CisJCQlPaWQJaW5kZXhvaWQg PSBjb25mbGljdHR1cGxlLT5pbmRleG9pZDsKKworCQkJQXNzZXJ0KE9pZElzVmFsaWQoaW5kZXhv aWQpICYmIGNvbmZsaWN0dHVwbGUtPnNsb3QgJiYKKwkJCQkgICBDaGVja1JlbGF0aW9uT2lkTG9j a2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCQkJICB0cnVlKSk7 CisJCQl2YWx1ZXNbYXR0bm8rK10gPQorCQkJCQl0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVw X2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJICBpbmRleG9pZCwKKwkJCQkJCQkJCQkJ CQkgIGNvbmZsaWN0dHVwbGUtPnNsb3QpOworCQl9CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKKworCQkvKiBDb252ZXJ0IGNvbmZsaWN0aW5nIHR1cGxlIHRvIEpTT04gZGF0dW0u ICovCisJCWlmIChjb25mbGljdHR1cGxlLT5zbG90KQorCQkJdmFsdWVzW2F0dG5vXSA9IHR1cGxl X3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShjb25mbGljdHR1cGxlLT5zbG90KTsKKwkJZWxzZQor CQkJbnVsbHNbYXR0bm9dID0gdHJ1ZTsKKworCQlBc3NlcnQoYXR0bm8gKyAxID09IE5VTV9MT0NB TF9DT05GTElDVF9BVFRSUyk7CisKKwkJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywg dmFsdWVzLCBudWxscyk7CisKKwkJanNvbl9kYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1 bSh0dXBsZSwgdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQnVpbGQgdGhlIGhpZ2hlciBsZXZlbCBK U09OIGRhdHVtIGluIGZvcm1hdCBkZXNjcmliZWQgaW4gZnVuY3Rpb24KKwkJICogaGVhZGVyLgor CQkgKi8KKwkJanNvbl9kYXR1bSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGpz b25fZGF0dW0pOworCisJCS8qIERvbmUgd2l0aCB0aGUgdGVtcG9yYXJ5IHR1cGxlLiAqLworCQlo ZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwkJLyogQWRkIHRvIHRoZSBhcnJheSBlbGVtZW50LiAq LworCQlqc29uX2RhdHVtcyA9IGxhcHBlbmQoanNvbl9kYXR1bXMsICh2b2lkICopIGpzb25fZGF0 dW0pOworCX0KKworCW51bV9jb25mbGljdHMgPSBsaXN0X2xlbmd0aChqc29uX2RhdHVtcyk7CisK Kwlqc29uX2RhdHVtX2FycmF5ID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1fY29uZmxpY3RzKTsK KworCWkgPSAwOworCWZvcmVhY2gobGMsIGpzb25fZGF0dW1zKQorCXsKKwkJanNvbl9kYXR1bV9h cnJheVtpXSA9IChEYXR1bSkgbGZpcnN0KGxjKTsKKwkJaSsrOworCX0KKworCS8qIENvbnN0cnVj dCB0aGUgSlNPTiBhcnJheSBEYXR1bS4gKi8KKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lE LCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0eXBhbGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBv aW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJ CQkJCQkgICBudW1fY29uZmxpY3RzLAorCQkJCQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJ CQkJCQkJICAgdHlwbGVuLAorCQkJCQkJCQkJCQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJ CSAgIHR5cGFsaWduKSk7CisJcGZyZWUoanNvbl9kYXR1bV9hcnJheSk7CisKKwlyZXR1cm4ganNv bl9hcnJheV9kYXR1bTsKK30KKworLyoKKyAqIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlCisg KgorICogVGhpcyByb3V0aW5lIHByZXBhcmVzIGEgdHVwbGUgZGV0YWlsaW5nIGEgY29uZmxpY3Qg ZW5jb3VudGVyZWQgZHVyaW5nCisgKiBsb2dpY2FsIHJlcGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQg dHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4KKyAqIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlIHdoaWNoIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIHRoZQorICogY29uZmxpY3Qg bG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZS4KKyAqLworc3RhdGlj IHZvaWQKK3ByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlv biByZWwsCisJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCSAgIENvbmZs aWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNs b3QsCisJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJCQkJCSAgIFR1cGxlVGFibGVT bG90ICpyZW1vdGVzbG90KQoreworCURhdHVtCQl2YWx1ZXNbTlVNX0NPTkZMSUNUX0FUVFJTXSA9 IHswfTsKKwlib29sCQludWxsc1tOVU1fQ09ORkxJQ1RfQVRUUlNdID0gezB9OworCWludAkJCWF0 dG5vOworCWNoYXIJICAgKnJlbW90ZV9vcmlnaW4gPSBOVUxMOworCU1lbW9yeUNvbnRleHQJb2xk Y3R4OworCisJQXNzZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID09 IE5VTEwpOworCisJLyogUG9wdWxhdGUgdGhlIHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlzLiAqLwor CWF0dG5vID0gMDsKKwl2YWx1ZXNbYXR0bm8rK10gPSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9u R2V0UmVsaWQocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPQorCQkJQ1N0cmluZ0dldFRleHRE YXR1bShnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpOworCisJ dmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oQ29u ZmxpY3RUeXBlTmFtZXNbY29uZmxpY3RfdHlwZV0pOworCisJaWYgKFRyYW5zYWN0aW9uSWRJc1Zh bGlkKHJlbW90ZV94aWQpKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0 dW0ocmVtb3RlX3hpZCk7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwl2YWx1 ZXNbYXR0bm8rK10gPSBMU05HZXREYXR1bShyZW1vdGVfZmluYWxfbHNuKTsKKworCWlmIChyZW1v dGVfY29tbWl0X3RzID4gMCkKKwkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1 bShyZW1vdGVfY29tbWl0X3RzKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKwor CWlmIChyZXBsb3JpZ2luX3hhY3Rfc3RhdGUub3JpZ2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQp CisJCXJlcGxvcmlnaW5fYnlfb2lkKHJlcGxvcmlnaW5feGFjdF9zdGF0ZS5vcmlnaW4sIHRydWUs ICZyZW1vdGVfb3JpZ2luKTsKKworCWlmIChyZW1vdGVfb3JpZ2luICE9IE5VTEwpCisJCXZhbHVl c1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVtb3RlX29yaWdpbik7CisJZWxzZQor CQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkK KwkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90 ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFUdXBJc051 bGwoc2VhcmNoc2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBHZXRSZWxhdGlvbklk ZW50aXR5T3JQSyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBoYXMgYSB2YWxpZCBy ZXBsaWNhIGlkZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICogSlNPTiBkYXR1bSBm cm9tIGtleSB2YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0aGUgY29tcGxldGUK KwkJICogdHVwbGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgorCQkgKi8KKwkJaWYg KE9pZElzVmFsaWQocmVwbGljYV9pbmRleCkpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90 YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJCQkJ cmVwbGljYV9pbmRleCwKKwkJCQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJZWxzZQorCQkJ dmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHNlYXJjaHNs b3QpOworCX0KKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCXZhbHVlc1thdHRu b10gPSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShlc3RhdGUsIHJlbCwKKwkJCQkJ CQkJCQkJCQkgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJCQkgY29uZmxpY3R0dXBsZXMpOwor CisJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fQ09ORkxJQ1RfQVRUUlMpOworCisJb2xkY3R4ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7CisJTXlMb2dpY2FsUmVwV29ya2Vy LT5jb25mbGljdF9sb2dfdHVwbGUgPQorCQloZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNj cihjb25mbGljdGxvZ3JlbCksIHZhbHVlcywgbnVsbHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjdHgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9sYXVuY2hlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5j CmluZGV4IDMxM2UzMWZmMmUzLi4wNWEzMDM0MmY2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYwpAQCAtNDg3LDYgKzQ4Nyw3IEBAIHJldHJ5OgogCXdvcmtl ci0+b2xkZXN0X25vbnJlbW92YWJsZV94aWQgPSByZXRhaW5fZGVhZF90dXBsZXMKIAkJPyBNeVJl cGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluCiAJCTogSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJd29y a2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPSBOVUxMOwogCXdvcmtlci0+bGFzdF9sc24gPSBJbnZh bGlkWExvZ1JlY1B0cjsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3Rfc2VuZF90aW1l KTsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3RfcmVjdl90aW1lKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGEzZjI0MDZlZDgzLi43YjQ2Mjkw NGM5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC00ODcs NyArNDg3LDkgQEAgc3RhdGljIGJvb2wgTXlTdWJzY3JpcHRpb25WYWxpZCA9IGZhbHNlOwogc3Rh dGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vyc19zdWJpZHMgPSBOSUw7CiAKIGJvb2wJ CWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNlOwotc3RhdGljIFhMb2dSZWNQdHIgcmVtb3Rl X2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworWExvZ1JlY1B0ciByZW1vdGVfZmluYWxf bHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFuc2FjdGlvbklkCXJlbW90ZV94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6CXJlbW90ZV9jb21taXRfdHMgPSAwOwogCiAv KiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24g Ki8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9uID0gZmFsc2U7CkBAIC0xMjM2 LDYgKzEyMzgsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQogCXNldF9hcHBs eV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNu KTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLmZpbmFsX2xzbjsKKwlyZW1vdGVf Y29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0aW1lOworCXJlbW90ZV94aWQgPSBiZWdpbl9k YXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5nX2NoYW5nZXMoYmVnaW5fZGF0YS5maW5h bF9sc24pOwogCkBAIC0xNzY3LDYgKzE3NzEsMTAgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9zdGFy dChTdHJpbmdJbmZvIHMpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04p LAogCQkJCSBlcnJtc2dfaW50ZXJuYWwoImludmFsaWQgdHJhbnNhY3Rpb24gSUQgaW4gc3RyZWFt ZWQgcmVwbGljYXRpb24gdHJhbnNhY3Rpb24iKSkpOwogCisJcmVtb3RlX3hpZCA9IHN0cmVhbV94 aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworCXJlbW90ZV9jb21t aXRfdHMgPSAwOworCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChzdHJlYW1feGlkLCBJ bnZhbGlkWExvZ1JlY1B0cik7CiAKIAkvKiBUcnkgdG8gYWxsb2NhdGUgYSB3b3JrZXIgZm9yIHRo ZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24uICovCkBAIC0yNDQwLDYgKzI0NDgsOSBAQCBhcHBseV9o YW5kbGVfc3RyZWFtX2NvbW1pdChTdHJpbmdJbmZvIHMpCiAJCQkvKiBVbmxpbmsgdGhlIGZpbGVz IHdpdGggc2VyaWFsaXplZCBjaGFuZ2VzIGFuZCBzdWJ4YWN0IGluZm8uICovCiAJCQlzdHJlYW1f Y2xlYW51cF9maWxlcyhNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB4aWQpOwogCisJCQkvKiBT ZXQgcmVtb3RlX2NvbW1pdF90cyBmb3IgY29uZmxpY3QgbG9nZ2luZy4gKi8KKwkJCXJlbW90ZV9j b21taXRfdHMgPSBjb21taXRfZGF0YS5jb21taXR0aW1lOworCiAJCQllbG9nKERFQlVHMSwgImZp bmlzaGVkIHByb2Nlc3NpbmcgdGhlIFNUUkVBTSBDT01NSVQgY29tbWFuZCIpOwogCQkJYnJlYWs7 CiAKQEAgLTU2NjYsNiArNTY3Nyw3IEBAIHN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIgb3JpZ2luX3N0 YXJ0cG9zKQogCQkJICovCiAJCQlBYm9ydE91dE9mQW55VHJhbnNhY3Rpb24oKTsKIAkJCXBnc3Rh dF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Vycm9yKE15U3Vic2NyaXB0aW9uLT5vaWQpOworCQkJUHJv Y2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCk7CiAKIAkJCVBHX1JFX1RIUk9XKCk7CiAJCX0K QEAgLTYwNDAsNiArNjA1Miw4IEBAIERpc2FibGVTdWJzY3JpcHRpb25BbmRFeGl0KHZvaWQpCiAJ ICovCiAJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fZXJyb3IoTXlMb2dpY2FsUmVwV29ya2Vy LT5zdWJpZCk7CiAKKwlQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKTsKKwogCS8qIERp c2FibGUgdGhlIHN1YnNjcmlwdGlvbiAqLwogCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggYi9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IGEwMTdlMWU2Y2I1Li5iNzI3Y2MyODVl OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAorKysgYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0xMTUsNSArMTE1LDggQEAgZXh0 ZXJuIHZvaWQgUmVwb3J0QXBwbHlDb25mbGljdChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5m byAqcmVsaW5mbywKIAkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCQkJ CVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LAogCQkJCQkJCQlMaXN0ICpjb25mbGljdHR1cGxl cyk7CitleHRlcm4gdm9pZCBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUodm9pZCk7CiBl eHRlcm4gdm9pZCBJbml0Q29uZmxpY3RJbmRleGVzKFJlc3VsdFJlbEluZm8gKnJlbEluZm8pOwor ZXh0ZXJuIFJlbGF0aW9uIEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKENvbmZsaWN0TG9nRGVz dCAqbG9nX2Rlc3QpOworZXh0ZXJuIHZvaWQgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlv biBjb25mbGljdGxvZ3JlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgKaW5kZXggNzQ1YjdkOWU5NjkuLjZiNjUyNWRjMmUyIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHR5cGVk ZWYgc3RydWN0IExvZ2ljYWxSZXBXb3JrZXIKIAkgKi8KIAlUcmFuc2FjdGlvbklkIG9sZGVzdF9u b25yZW1vdmFibGVfeGlkOwogCisJLyogQSBjb25mbGljdCBsb2cgdHVwbGUgdGhhdCBpcyBwcmVw YXJlZCBidXQgbm90IHlldCBpbnNlcnRlZC4gKi8KKwlIZWFwVHVwbGUJY29uZmxpY3RfbG9nX3R1 cGxlOworCiAJLyogU3RhdHMuICovCiAJWExvZ1JlY1B0cglsYXN0X2xzbjsKIAlUaW1lc3RhbXBU eiBsYXN0X3NlbmRfdGltZTsKQEAgLTI1NSw2ICsyNTgsMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JU IGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBMaXN0 ICp0YWJsZV9zdGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1vdGVfZmlu YWxfbHNuOworZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRlcm4gVHJh bnNhY3Rpb25JZCByZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dvcmtlcl9h dHRhY2goaW50IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxyZXBfd29y a2VyX2ZpbmQoTG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlPaWQgc3Vi aWQsIE9pZCByZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9v cmlnaW4ucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsCmluZGV4IDZi YzZiNzg3NGMyLi41ZjRkMDBiZGQzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDMwX29yaWdpbi5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2lu LnBsCkBAIC0xNjYsNyArMTY2LDcgQEAgaXMoJHJlc3VsdCwgcXEoMzIpLCAnVGhlIG5vZGVfQSBk YXRhIHJlcGxpY2F0ZWQgdG8gbm9kZV9CJyk7CiAkbm9kZV9DLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlVQREFURSAkdGFiIFNFVCBhID0gMzMgV0hFUkUgYSA9IDMyOyIpOwogCiAkbm9kZV9CLT53 YWl0X2Zvcl9sb2coCi0JcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4k dGFiX3VucXVvdGVkIjogY29uZmxpY3Q9dXBkYXRlX29yaWdpbl9kaWZmZXJzLipcbi4qREVUQUlM Oi4qIFVwZGF0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJlbnQgb3Jp Z2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cgXCgzMlwpLCBy ZW1vdGUgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMyXCkuLworCXFyL2Nv bmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYiI6IGNvbmZsaWN0PXVwZGF0 ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBVcGRhdGluZyB0aGUgcm93IHRoYXQgd2Fz IG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9uIFswLTld KyBhdCAuKjogbG9jYWwgcm93IFwoMzJcKSwgcmVtb3RlIHJvdyBcKDMzXCksIHJlcGxpY2EgaWRl bnRpdHkgXChhXCk9XCgzMlwpLi8KICk7CiAKICRub2RlX0ItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiREVMRVRFIEZST00gJHRhYjsiKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBpcygkcmVzdWx0LCBx cSgzMyksICdUaGUgbm9kZV9BIGRhdGEgcmVwbGljYXRlZCB0byBub2RlX0InKTsKICRub2RlX0Mt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiREVMRVRFIEZST00gJHRhYiBXSEVSRSBhID0gMzM7Iik7 CiAKICRub2RlX0ItPndhaXRfZm9yX2xvZygKLQlxci9jb25mbGljdCBkZXRlY3RlZCBvbiByZWxh dGlvbiAicHVibGljLiR0YWJfdW5xdW90ZWQiOiBjb25mbGljdD1kZWxldGVfb3JpZ2luX2RpZmZl cnMuKlxuLipERVRBSUw6LiogRGVsZXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2RpZmllZCBieSBh IGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6IGxvY2Fs IHJvdyBcKDMzXCksIHJlcGxpY2EgaWRlbnRpdHkgXChhXCk9XCgzM1wpLiovCisJcXIvY29uZmxp Y3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4kdGFiIjogY29uZmxpY3Q9ZGVsZXRlX29y aWdpbl9kaWZmZXJzLipcbi4qREVUQUlMOi4qIERlbGV0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9k aWZpZWQgYnkgYSBkaWZmZXJlbnQgb3JpZ2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0 IC4qOiBsb2NhbCByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwoMzNcKS4qLwog KTsKIAogIyBUaGUgcmVtYWluaW5nIHRlc3RzIG5vIGxvbmdlciB0ZXN0IGNvbmZsaWN0IGRldGVj dGlvbi4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMu cGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmluZGV4IGYyM2Zl NmFmMmE1Li5kZTJkMzdjODc1NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxp Y3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkn cG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0JIFBVQkxJQ0FU SU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8g ZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg0LDEwICs4NCwzNSBAQCAkbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5kZXgg XCJjb25mX3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwoY1wp PVwoNFwpLCBsb2NhbCByb3cgXCg0LCA0LCA0XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVy aWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMg c2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlw ZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25mbGljdC5wZ19j b25mbGljdF9sb2dfJHN1YmlkIjsKKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUgbG9n Z2VkIGluIHRoZSBDTFQKK215ICRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1 ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJP TSAkY2x0OyIKKyk7CisKK215ICRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRjbHQg V0hFUkUgY29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lz KCRjb25mbGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0 cyBsb2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworbXkgJGpzb25fcXVlcnkgPSAi U0VMRUNUIGxvY2FsX2NvbmZsaWN0cyBGUk9NICRjbHQ7IjsKK215ICRyYXdfanNvbiA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMgVmVy aWZ5IHRoYXQgJzInIGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2luZyBh IHJlZ2V4CisjIFRoaXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjogMgor bGlrZSgkcmF3X2pzb24sIHFyL1xcImFcXCI6Mi8sICdWZXJpZmllZCB0aGF0IGtleSAyIGV4aXN0 cyBpbiB0aGUgbG9jYWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMgZGV0ZWN0ZWQgZHVyaW5nIGluc2VydCcpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdl dCByaWQgb2YgdGhlIGVycm9yCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlRSVU5DQVRFIGNvbmZfdGFiOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJERUxFVEUgRlJPTSAkY2x0Iik7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgbXVsdGlwbGVfdW5pcXVlX2NvbmZs aWN0cyBkdWUgdG8gVVBEQVRFCkBAIC0xMTQsNiArMTM5LDI2IEBAICRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX2xvZygKIC4qS2V5IGFscmVhZHkgZXhpc3RzIGluIHVuaXF1ZSBpbmRleCBcImNv bmZfdGFiX2Nfa2V5XCIsIG1vZGlmaWVkIGluIHRyYW5zYWN0aW9uIC4qOiBrZXkgXChjXCk9XCg4 XCksIGxvY2FsIHJvdyBcKDgsIDgsIDhcKS4vLAogCSRsb2dfb2Zmc2V0KTsKIAorIyBWZXJpZnkg dGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkKKyMgVGhpcyBzZWN0 aW9uIGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorIyB0eXBlIGFu ZCBzcGVjaWZpYyBrZXkgZGF0YS4KKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUgbG9n Z2VkIGluIHRoZSBDTFQKKyRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5 X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJPTSAk Y2x0OyIKKyk7CisKKyRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRjbHQgV0hFUkUg Y29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lzKCRjb25m bGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBsb2dn ZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworJHJhd19qc29uID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkgdGhh dCAnNicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEgcmVnZXgK KyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiA2CitsaWtlKCRy YXdfanNvbiwgcXIvXFwiYVxcIjo2LywgJ1ZlcmlmaWVkIHRoYXQga2V5IDYgZXhpc3RzIGluIHRo ZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBk ZXRlY3RlZCBkdXJpbmcgdXBkYXRlJyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJpZCBv ZiB0aGUgZXJyb3IKLS0gCjIuNTMuMAoK --000000000000768f830653bc69ca Content-Type: application/octet-stream; name="v47-0003-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v47-0003-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq54pjol2 RnJvbSAzMGNhMTk2MjY2Yzc1MTQ4MmZkMDNmNGIxYjgzODg2ZTFlMjFhOTY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCA1IEp1biAyMDI2IDE1OjUxOjIyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NDcg My81XSBQcmVzZXJ2ZSBjb25mbGljdCBsb2cgZGVzdGluYXRpb24gYW5kIHN1YnNjcmlwdGlvbgog T0lEIGZvciBzdWJzY3JpcHRpb25zCgpTdXBwb3J0IHBnX2R1bXAgdG8gZHVtcCBhbmQgcmVzdG9y ZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHNldHRpbmcgZm9yCnN1YnNjcmlwdGlvbnMu CgpEdXJpbmcgYSBub3JtYWwgQ1JFQVRFIFNVQlNDUklQVElPTiwgYSBjb25mbGljdCBsb2cgdGFi bGUgaXMgY3JlYXRlZAphdXRvbWF0aWNhbGx5IHdoZW4gcmVxdWlyZWQuIEhvd2V2ZXIsIGR1cmlu ZyBiaW5hcnkgdXBncmFkZSwgdGhlIGNvbmZsaWN0CmxvZyB0YWJsZSB3aWxsIGFscmVhZHkgZXhp c3QgYW5kIG11c3QgYmUgcmV1c2VkIHJhdGhlciB0aGFuIHJlY3JlYXRlZCwgYW5kCnRoZSBzdWJz Y3JpcHRpb24gbXVzdCByZXRhaW4gaXRzIG9yaWdpbmFsIE9JRCB0byBjb3JyZWN0bHkgcmUtZXN0 YWJsaXNoCmNhdGFsb2cgcmVsYXRpb25zaGlwcy4KClRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW9y LCBwZ19kdW1wIG5vdyBlbWl0cyBhbiBBTFRFUiBTVUJTQ1JJUFRJT04gY29tbWFuZAphZnRlciBz dWJzY3JpcHRpb24gY3JlYXRpb24gdG8gcmVzdG9yZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uIHNldHRpbmcuCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg ICAgICAgfCAgNTYgKysrKysrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29u ZmxpY3QuYyAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3Vw cG9ydC5jICAgIHwgIDEwICsrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAg ICAgICAgICAgfCAxMjUgKysrKysrKysrKysrKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jICAgICAgICAgICAgICAgIHwgIDMxICsrKysrCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191 cGdyYWRlLmMgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRf c3Vic2NyaXB0aW9uLnBsICAgICAgfCAgMTQgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5 X3VwZ3JhZGUuaCAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0ICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaCAgICAgICAgIHwgICAyICsKIC4uLi9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0 ICAgICAgICAgICAgICB8ICAgNiArLQogMTQgZmlsZXMgY2hhbmdlZCwgMjQ5IGluc2VydGlvbnMo KyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVh cC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNWQwN2RjYzFjNWIuLjFkOWJk OTAzYTUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzEyLDYgKzMxMiw4IEBAIGhlYXBfY3JlYXRlKGNv bnN0IGNoYXIgKnJlbG5hbWUsCiAJICogQnV0IGFsbG93IGNyZWF0aW5nIGluZGV4ZXMgb24gcmVs YXRpb25zIGluIHBnX2NhdGFsb2cgZXZlbiBpZgogCSAqIGFsbG93X3N5c3RlbV90YWJsZV9tb2Rz ID0gb2ZmLCB1cHBlciBsYXllcnMgYWxyZWFkeSBndWFyYW50ZWUgaXQncyBvbiBhCiAJICogdXNl ciBkZWZpbmVkIHJlbGF0aW9uLCBub3QgYSBzeXN0ZW0gb25lLgorCSAqCisJICogQWxsb3cgY3Jl YXRpb24gb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBpbiBiaW5hcnktdXBncmFkZSBtb2RlLgog CSAqLwogCWlmICghYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgJiYgSXNOb3JtYWxQcm9jZXNzaW5n TW9kZSgpKQogCXsKQEAgLTMyMyw3ICszMjUsNyBAQCBoZWFwX2NyZWF0ZShjb25zdCBjaGFyICpy ZWxuYW1lLAogCQkJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShyZWxuYW1lc3BhY2UsIHJlbG5h bWUpKSwKIAkJCQkJIGVycmRldGFpbCgiU3lzdGVtIGNhdGFsb2cgbW9kaWZpY2F0aW9ucyBhcmUg Y3VycmVudGx5IGRpc2FsbG93ZWQuIikpKTsKIAotCQlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFt ZXNwYWNlKHJlbG5hbWVzcGFjZSkpCisJCWlmICghSXNCaW5hcnlVcGdyYWRlICYmIElzQ29uZmxp Y3RMb2dUYWJsZU5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKIAkJCQkJIGVycm1z ZygicGVybWlzc2lvbiBkZW5pZWQgdG8gY3JlYXRlIFwiJXNcIiIsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggN2QwOWI4MGJhNWYuLjNiMWM4MDJlN2E2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0xOSw2ICsxOSw3IEBACiAj aW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R3b3BoYXNlLmgiCiAj aW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2JpbmFyeV91cGdyYWRl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBl bmRlbmN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgpAQCAtODYsNiArODcsMTIg QEAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1Nl dCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCiAKKy8qCisgKiBUaGlz IHdpbGwgYmUgc2V0IGJ5IHRoZSBwZ191cGdyYWRlX3N1cHBvcnQgZnVuY3Rpb24gLS0KKyAqIGJp bmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQoKS4KKyAqLworT2lkCQkJ YmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkID0gSW52YWxpZE9pZDsKKwog LyoKICAqIFN0cnVjdHVyZSB0byBob2xkIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUgdXNlci1w cm92aWRlZCBDUkVBVEUvQUxURVIKICAqIFNVQlNDUklQVElPTiBjb21tYW5kIG9wdGlvbnMgYW5k IHRoZSBwYXJzZWQvZGVmYXVsdCB2YWx1ZXMgb2YgZWFjaCBvZiB0aGVtLgpAQCAtNzk3LDggKzgw NCwyMSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsK IAltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKIAotCXN1YmlkID0gR2V0TmV3 T2lkV2l0aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0SW5kZXhJZCwKLQkJCQkJCQkgICBB bnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQpOworCS8qIFVzZSBiaW5hcnktdXBncmFkZSBvdmVycmlk ZSBmb3IgcGdfc3Vic2NyaXB0aW9uLm9pZD8gKi8KKwlpZiAoSXNCaW5hcnlVcGdyYWRlKQorCXsK KwkJaWYgKCFPaWRJc1ZhbGlkKGJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29p ZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1zZygicGdfc3Vic2NyaXB0aW9uIE9JRCB2YWx1ZSBu b3Qgc2V0IHdoZW4gaW4gYmluYXJ5IHVwZ3JhZGUgbW9kZSIpKSk7CisKKwkJc3ViaWQgPSBiaW5h cnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQ7CisJCWJpbmFyeV91cGdyYWRlX25l eHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7CisJfQorCWVsc2UKKwkJc3ViaWQg PSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBTdWJzY3JpcHRpb25PYmplY3RJbmRleElkLAorCQkJ CQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQpOworCiAJdmFsdWVzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzdWJpZCk7CiAJdmFsdWVzW0Fu dW1fcGdfc3Vic2NyaXB0aW9uX3N1YmRiaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oTXlEYXRh YmFzZUlkKTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2tpcGxzbiAtIDFdID0g TFNOR2V0RGF0dW0oSW52YWxpZFhMb2dSZWNQdHIpOwpAQCAtMTUxMCwxOCArMTUzMCw0MCBAQCBh bHRlcl9zdWJfY29uZmxpY3Rsb2dkZXN0aW5hdGlvbihTdWJzY3JpcHRpb24gKnN1YiwgQ29uZmxp Y3RMb2dEZXN0IG9sZGxvZ2Rlc3QsCiAJCXsKIAkJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKIAkJ CU9iamVjdEFkZHJlc3Mgc3Vib2JqOworCQkJY2hhciAgICAgICAgICByZWxuYW1lW05BTUVEQVRB TEVOXTsKIAotCQkJcmVsaWQgPSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBz dWItPm5hbWUsIHN1Yi0+b3duZXIpOwotCQkJdXBkYXRlX3JlbGlkID0gdHJ1ZTsKKwkJCXNucHJp bnRmKHJlbG5hbWUsIE5BTUVEQVRBTEVOLCBDT05GTElDVF9MT0dfUkVMQVRJT05fTkFNRV9GTVQs IHN1Yi0+b2lkKTsKIAogCQkJLyoKLQkJCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRl bmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQotCQkJICogYW5kIHRoZSBzdWJzY3Jp cHRpb24uICBGb3IgZGV0YWlscyByZWZlciBjb21tZW50cyBpbgotCQkJICogQ3JlYXRlU3Vic2Ny aXB0aW9uIGZ1bmN0aW9uLgorCQkJICogSW4gdXBncmFkZSBzY2VuYXJpb3MsIG9sZF9kZXN0IHJl ZmxlY3RzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mCisJCQkgKiBhIG5ld2x5IGNyZWF0ZWQgc3Vi c2NyaXB0aW9uIChpLmUuLCBubyBjb25mbGljdCBsb2dnaW5nIHRvCisJCQkgKiB0YWJsZSkgSG93 ZXZlciwgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aWxsIGFscmVhZHkgZXhpc3QgZnJvbQorCQkJ ICogdGhlIHVwZ3JhZGVkIGNsdXN0ZXIuICBJbiBzdWNoIGNhc2VzLCB3ZSBuZWVkIHRvIGRldGVj dCB0aGUKKwkJCSAqIHByZS1leGlzdGluZyB0YWJsZSBhbmQgdXBkYXRlIHRoZSBjYXRhbG9nIHN0 YXRlIHRvIGFzc29jaWF0ZSBpdAorCQkJICogd2l0aCB0aGUgc3Vic2NyaXB0aW9uIGluc3RlYWQg b2YgY3JlYXRpbmcgYSBuZXcgb25lLgorCQkJICovCisJCQlyZWxpZCA9IGdldF9yZWxuYW1lX3Jl bGlkKHJlbG5hbWUsIFBHX0NPTkZMSUNUX05BTUVTUEFDRSk7CisJCQlpZiAoT2lkSXNWYWxpZChy ZWxpZCkpCisJCQl7CisJCQkJLyogRXhpc3RpbmcgdGFibGUgZnJvbSB1cGdyYWRlICovCisJCQkJ QXNzZXJ0KElzQmluYXJ5VXBncmFkZSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJcmVsaWQg PSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsCisJCQkJCQkJ CQkJCQkgIHN1Yi0+b3duZXIpOworCQkJfQorCisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFuIGlu dGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nCisJCQkgKiB0YWJsZSBh bmQgdGhlIHN1YnNjcmlwdGlvbi4gIFJlZmVyIHRvIGNvbW1lbnRzIGluIHRoZQorCQkJICogQ3Jl YXRlU3Vic2NyaXB0aW9uIGZ1bmN0aW9uIGZvciBkZXRhaWxzLgogCQkJICovCiAJCQlPYmplY3RB ZGRyZXNzU2V0KGNsdGFkZHIsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQpOwogCQkJT2JqZWN0 QWRkcmVzc1NldChzdWJvYmosIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Yi0+b2lkKTsKIAkJ CXJlY29yZERlcGVuZGVuY3lPbigmY2x0YWRkciwgJnN1Ym9iaiwgREVQRU5ERU5DWV9JTlRFUk5B TCk7CisKKwkJCXVwZGF0ZV9yZWxpZCA9IHRydWU7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwppbmRleCA2YmYzZDZkNWE0NC4uNGNhZDBlYWY3 MGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3Qu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE3 OCw3ICsxNzgsNyBAQCBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAq c3VibmFtZSwgT2lkIHN1Ym93bmVyKQogCU9pZAkJCXJlbGlkOwogCWNoYXIgICAgCXJlbG5hbWVb TkFNRURBVEFMRU5dOwogCi0Jc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFMRU4sICJwZ19jb25m bGljdF9sb2dfJXUiLCBzdWJpZCk7CisJc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFMRU4sIENP TkZMSUNUX0xPR19SRUxBVElPTl9OQU1FX0ZNVCwgc3ViaWQpOwogCiAJLyoKIAkgKiBDaGVjayBm b3IgYW4gZXhpc3RpbmcgdGFibGUgd2l0aCB0aGUgc2FtZSBuYW1lIGluIHRoZSBwZ19jb25mbGlj dCBuYW1lc3BhY2UuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFk ZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMK aW5kZXggYjUwNWE2YjRmZWUuLjU5YzNlN2YwMTQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0xODEsNiArMTgxLDE2IEBAIGJpbmFyeV91cGdyYWRl X3NldF9uZXh0X3BnX2F1dGhpZF9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fVk9J RCgpOwogfQogCitEYXR1bQorYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9u X29pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXN1YmlkID0gUEdfR0VUQVJHX09JRCgw KTsKKworCUNIRUNLX0lTX0JJTkFSWV9VUEdSQURFOworCWJpbmFyeV91cGdyYWRlX25leHRfcGdf c3Vic2NyaXB0aW9uX29pZCA9IHN1YmlkOworCVBHX1JFVFVSTl9WT0lEKCk7Cit9CisKIERhdHVt CiBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1wdHlfZXh0ZW5zaW9uKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYwppbmRleCBhMGY3ZjhlMjE2OC4uMzlkNTY3MzEwOWIgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YwpAQCAtMTk4MSw2ICsxOTgxLDggQEAgY2hlY2tFeHRlbnNpb25NZW1iZXJzaGlwKER1bXBhYmxl T2JqZWN0ICpkb2JqLCBBcmNoaXZlICpmb3V0KQogc3RhdGljIHZvaWQKIHNlbGVjdER1bXBhYmxl TmFtZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkKIHsKKwlEdW1w T3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKIAkvKgogCSAqIERVTVBfQ09NUE9ORU5UX0RF RklOSVRJT04gdHlwaWNhbGx5IGltcGxpZXMgYSBDUkVBVEUgU0NIRU1BIHN0YXRlbWVudAogCSAq IGFuZCAoZm9yIC0tY2xlYW4pIGEgRFJPUCBTQ0hFTUEgc3RhdGVtZW50LiAgKEluIHRoZSBhYnNl bmNlIG9mCkBAIC0yMDEwLDYgKzIwMTIsMzIgQEAgc2VsZWN0RHVtcGFibGVOYW1lc3BhY2UoTmFt ZXNwYWNlSW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0KQogCQkgKi8KIAkJbnNpbmZvLT5kb2Jq LmR1bXBfY29udGFpbnMgPSBuc2luZm8tPmRvYmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX0FDTDsK IAl9CisJZWxzZSBpZiAoc3RyY21wKG5zaW5mby0+ZG9iai5uYW1lLCAicGdfY29uZmxpY3QiKSA9 PSAwKQorCXsKKwkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQorCQl7CisJCQkvKgorCQkJICog VGhlIHBnX2NvbmZsaWN0IHNjaGVtYSBpcyBhIHN0cmFuZ2UgYmVhc3QgdGhhdCBzaXRzIGluIGEg c29ydAorCQkJICogb2Ygbm8tbWFucy1sYW5kIGJldHdlZW4gYmVpbmcgYSBzeXN0ZW0gb2JqZWN0 IGFuZCBhIHVzZXIKKwkJCSAqIG9iamVjdC4gQ1JFQVRFIFNDSEVNQSB3b3VsZCBmYWlsLCBzbyBp dHMKKwkJCSAqIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04gaXMganVzdCBhIGNvbW1lbnQuCisJ CQkgKi8KKwkJCW5zaW5mby0+Y3JlYXRlID0gZmFsc2U7CisJCQluc2luZm8tPmRvYmouZHVtcCA9 IERVTVBfQ09NUE9ORU5UX0FMTDsKKwkJCW5zaW5mby0+ZG9iai5kdW1wICY9IH5EVU1QX0NPTVBP TkVOVF9ERUZJTklUSU9OOworCQkJbnNpbmZvLT5kb2JqLmR1bXBfY29udGFpbnMgPSBEVU1QX0NP TVBPTkVOVF9BTEw7CisKKwkJCS8qCisJCQkgKiBBbHNvLCBtYWtlIGxpa2UgaXQgaGFzIGEgY29t bWVudCBldmVuIGlmIGl0IGRvZXNuJ3Q7IHRoaXMgaXMgc28KKwkJCSAqIHRoYXQgd2UnbGwgZW1p dCBhIGNvbW1hbmQgdG8gZHJvcCB0aGUgY29tbWVudCwgaWYgYXBwcm9wcmlhdGUuCisJCQkgKiAo V2l0aG91dCB0aGlzLCB3ZSdkIG5vdCBjYWxsIGR1bXBDb21tZW50RXh0ZW5kZWQgZm9yIGl0LikK KwkJCSAqLworCQkJbnNpbmZvLT5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQ09N TUVOVDsKKwkJfQorCQllbHNlCisJCQluc2luZm8tPmRvYmouZHVtcF9jb250YWlucyA9IG5zaW5m by0+ZG9iai5kdW1wID0KKwkJCQlEVU1QX0NPTVBPTkVOVF9OT05FOworCX0KIAllbHNlIGlmIChz dHJuY21wKG5zaW5mby0+ZG9iai5uYW1lLCAicGdfIiwgMykgPT0gMCB8fAogCQkJIHN0cmNtcChu c2luZm8tPmRvYmoubmFtZSwgImluZm9ybWF0aW9uX3NjaGVtYSIpID09IDApCiAJewpAQCAtMjA2 Nyw5ICsyMDk1LDM4IEBAIHNlbGVjdER1bXBhYmxlTmFtZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5z aW5mbywgQXJjaGl2ZSAqZm91dCkKIHN0YXRpYyB2b2lkCiBzZWxlY3REdW1wYWJsZVRhYmxlKFRh YmxlSW5mbyAqdGJpbmZvLCBBcmNoaXZlICpmb3V0KQogeworCUR1bXBPcHRpb25zICpkb3B0ID0g Zm91dC0+ZG9wdDsKKwogCWlmIChjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoJnRiaW5mby0+ZG9i aiwgZm91dCkpCiAJCXJldHVybjsJCQkJCS8qIGV4dGVuc2lvbiBtZW1iZXJzaGlwIG92ZXJyaWRl cyBhbGwgZWxzZSAqLwogCisJaWYgKHN0cmNtcCh0YmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2Jq Lm5hbWUsICJwZ19jb25mbGljdCIpID09IDApCisJeworCQkvKgorCQkgKiBEdW1wIHBnX2NvbmZs aWN0IHRhYmxlcyBvbmx5IGR1cmluZyBiaW5hcnkgdXBncmFkZS4gVGhlIHNjaGVtYSBpcworCQkg KiBhc3N1bWVkIHRvIGFscmVhZHkgZXhpc3QuCisJCSAqLworCQlpZiAoZG9wdC0+YmluYXJ5X3Vw Z3JhZGUpCisJCXsKKwkJCXRiaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfREVGSU5J VElPTjsKKworCQkJLyoKKwkJCSAqIFN1cHByZXNzIHRoZSAiQUxURVIgVEFCTEUgLi4uIE9XTkVS IFRPIC4uLiIgY29tbWFuZCBmb3IgdGhpcworCQkJICogdGFibGUuIFRoaXMgcHJldmVudHMgcGdf ZHVtcCBmcm9tIG91dHB1dHRpbmcgdGhlIG93bmVyIGNoYW5nZS4KKwkJCSAqLworCQkJdGJpbmZv LT5yb2xuYW1lID0gTlVMTDsKKwkJfQorCQllbHNlCisJCQl0YmluZm8tPmRvYmouZHVtcCA9IERV TVBfQ09NUE9ORU5UX05PTkU7CisKKwkJLyoKKwkJICogRG8gbm90IGFwcGx5IHRhYmxlIHNlbGVj dGlvbiBvciBleGNsdXNpb24gcnVsZXMgdG8gcGdfY29uZmxpY3QKKwkJICogdGFibGVzLiBEdXJp bmcgYmluYXJ5IHVwZ3JhZGUsIHRoZXNlIHRhYmxlcyBhcmUgZHVtcGVkIHRvIHByZXNlcnZlCisJ CSAqIGNhdGFsb2cgc3RhdGU7IG90aGVyd2lzZSwgdGhleSBhcmUgbm90IGR1bXBlZCBhdCBhbGwu CisJCSAqLworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBJZiBzcGVjaWZpYyB0YWJsZXMgYXJl IGJlaW5nIGR1bXBlZCwgZHVtcCBqdXN0IHRob3NlIHRhYmxlczsgZWxzZSwgZHVtcAogCSAqIGFj Y29yZGluZyB0byB0aGUgcGFyZW50IG5hbWVzcGFjZSdzIGR1bXAgZmxhZy4KQEAgLTUxODQsNiAr NTI0MSw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3N1YmZh aWxvdmVyOwogCWludAkJCWlfc3VicmV0YWluZGVhZHR1cGxlczsKIAlpbnQJCQlpX3N1Ym1heHJl dGVudGlvbjsKKwlpbnQJCQlpX3N1YmNvbmZsaWN0bG9ncmVsaWQ7CisJaW50CQkJaV9zdWJsb2dk ZXN0aW5hdGlvbjsKIAlpbnQJCQlpLAogCQkJCW50dXBzOwogCkBAIC01MjgyLDkgKzUzNDEsMTYg QEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJCQkJCSAiICctMScgQVMgc3Vi d2FscmN2dGltZW91dCxcbiIpOwogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTkwMDAw KQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5zcnZuYW1lIEFTIHN1YnNlcnZl cm5hbWVcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5zcnZuYW1lIEFT IHN1YnNlcnZlcm5hbWUsXG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIE5VTEwgQVMgc3Vic2VydmVybmFtZSxcbiIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNp b24gPj0gMTkwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIiBz LnN1YmNvbmZsaWN0bG9ncmVsaWQsIHMuc3ViY29uZmxpY3Rsb2dkZXN0XG4iKTsKIAllbHNlCi0J CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIE5VTEwgQVMgc3Vic2VydmVybmFtZVxuIik7 CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIE5VTEwgQVMgc3ViY29u ZmxpY3Rsb2dyZWxpZCwgTlVMTCBBUyBzdWJjb25mbGljdGxvZ2Rlc3RcbiIpOwogCiAJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkgIkZST00gcGdfc3Vic2NyaXB0aW9uIHNcbiIp OwpAQCAtNTMzMyw2ICs1Mzk5LDggQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQog CWlfc3VicHVibGljYXRpb25zID0gUFFmbnVtYmVyKHJlcywgInN1YnB1YmxpY2F0aW9ucyIpOwog CWlfc3Vib3JpZ2luID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbiIpOwogCWlfc3Vib3JpZ2lu cmVtb3RlbHNuID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbnJlbW90ZWxzbiIpOworCWlfc3Vi Y29uZmxpY3Rsb2dyZWxpZCA9IFBRZm51bWJlcihyZXMsICJzdWJjb25mbGljdGxvZ3JlbGlkIik7 CisJaV9zdWJsb2dkZXN0aW5hdGlvbiA9IFBRZm51bWJlcihyZXMsICJzdWJjb25mbGljdGxvZ2Rl c3QiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2NfYXJyYXkoU3Vic2NyaXB0aW9uSW5mbywgbnR1 cHMpOwogCkBAIC01MzkxLDYgKzU0NTksMzIgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpm b3V0KQogCQkJc3ViaW5mb1tpXS5zdWJvcmlnaW5yZW1vdGVsc24gPQogCQkJCXBnX3N0cmR1cChQ UWdldHZhbHVlKHJlcywgaSwgaV9zdWJvcmlnaW5yZW1vdGVsc24pKTsKIAorCQlpZiAoUFFnZXRp c251bGwocmVzLCBpLCBpX3N1YmNvbmZsaWN0bG9ncmVsaWQpKQorCQkJc3ViaW5mb1tpXS5zdWJj b25mbGljdGxvZ3JlbGlkID0gSW52YWxpZE9pZDsKKwkJZWxzZQorCQl7CisJCQlzdWJpbmZvW2ld LnN1YmNvbmZsaWN0bG9ncmVsaWQgPQorCQkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9z dWJjb25mbGljdGxvZ3JlbGlkKSk7CisKKwkJCWlmIChzdWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9n cmVsaWQpCisJCQl7CisJCQkJVGFibGVJbmZvICAqdGFibGVJbmZvOworCisJCQkJdGFibGVJbmZv ID0gZmluZFRhYmxlQnlPaWQoc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkKTsKKwkJCQlp ZiAoIXRhYmxlSW5mbykKKwkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGNvbmZsaWN0IGxv ZyB0YWJsZSB3aXRoIE9JRCAldSIsCisJCQkJCQkJIHN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dy ZWxpZCk7CisKKwkJCQlhZGRPYmplY3REZXBlbmRlbmN5KCZzdWJpbmZvW2ldLmRvYmosIHRhYmxl SW5mby0+ZG9iai5kdW1wSWQpOworCQkJfQorCQl9CisKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywg aSwgaV9zdWJsb2dkZXN0aW5hdGlvbikpCisJCQlzdWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9nZGVz dCA9IE5VTEw7CisJCWVsc2UKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dkZXN0ID0KKwkJ CQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3VibG9nZGVzdGluYXRpb24pKTsKKwog CQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFi bGVPYmplY3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKIAl9CkBAIC01NTgzLDYgKzU2Nzcs MTQgQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25J bmZvICpzdWJpbmZvKQogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFNVQlNDUklQVElP TiAlcztcbiIsCiAJCQkJCSAgcXN1Ym5hbWUpOwogCisJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRl KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJcbi0tIEZvciBiaW5hcnkgdXBn cmFkZSwgbXVzdCBwcmVzZXJ2ZSBwZ19zdWJzY3JpcHRpb24ub2lkXG4iKTsKKwkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5hcnlfdXBncmFk ZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCcldSc6OnBnX2NhdGFsb2cub2lkKTtcblxu IiwKKwkJCQkJCSAgc3ViaW5mby0+ZG9iai5jYXRJZC5vaWQpOworCX0KKwogCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyAiLAogCQkJCQkgIHFzdWJuYW1l KTsKIAlpZiAoc3ViaW5mby0+c3Vic2VydmVybmFtZSkKQEAgLTU2NTYsNiArNTc1OCwyNSBAQCBk dW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1 YmluZm8pCiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsKIAorCS8qCisJ ICogUmVzdG9yZSB0aGUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHNlcGFyYXRlbHkgZnJvbSBD UkVBVEUgU1VCU0NSSVBUSU9OLgorCSAqIFNldHRpbmcgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u IHRvICd0YWJsZScgbWF5IGNyZWF0ZSBhbmQgYXNzb2NpYXRlCisJICogYSBjb25mbGljdCBsb2cg dGFibGUgd2hvc2UgbmFtZSBpcyBkZXJpdmVkIGZyb20gdGhlIHN1YnNjcmlwdGlvbiBPSUQuCisJ ICogU2luY2UgdGhlIHN1YnNjcmlwdGlvbiBtdXN0IGFscmVhZHkgZXhpc3QgYmVmb3JlIHRoYXQg T0lEIGlzIGtub3duLAorCSAqIGVtaXQgdGhpcyBhcyBhIHNlcGFyYXRlIEFMVEVSIFNVQlNDUklQ VElPTiBzbyB0aGF0IGFueSByZXF1aXJlZCBjb25mbGljdAorCSAqIGxvZyB0YWJsZSBjYW4gYmUg Y3JlYXRlZCBhbmQgbGlua2VkIGFmdGVyIHRoZSBzdWJzY3JpcHRpb24gaXRzZWxmIGhhcworCSAq IGJlZW4gcmVzdG9yZWQuCisJICoKKwkgKiBXZSBza2lwIHRoZSBkZWZhdWx0IHZhbHVlICgnbG9n JykgdG8gbWF0Y2ggdGhlIGhhbmRsaW5nIG9mIG90aGVyCisJICogZGVmYXVsdCBzdWJzY3JpcHRp b24gb3B0aW9ucy4KKwkgKi8KKwlpZiAoc3ViaW5mby0+c3ViY29uZmxpY3Rsb2dkZXN0ICYmCisJ CShwZ19zdHJjYXNlY21wKHN1YmluZm8tPnN1YmNvbmZsaWN0bG9nZGVzdCwgImxvZyIpICE9IDAp KQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCSAgIlxuXG5BTFRFUiBTVUJTQ1JJ UFRJT04gJXMgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAlcyk7XG4iLAorCQkJCQkJ ICBxc3VibmFtZSwKKwkJCQkJCSAgc3ViaW5mby0+c3ViY29uZmxpY3Rsb2dkZXN0KTsKKwogCS8q CiAJICogSW4gYmluYXJ5LXVwZ3JhZGUgbW9kZSwgd2UgYWxsb3cgdGhlIHJlcGxpY2F0aW9uIHRv IGNvbnRpbnVlIGFmdGVyIHRoZQogCSAqIHVwZ3JhZGUuCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA1YTY3MjZk OGIxMi4uYTQzYTMwNDkzNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzIyLDYgKzcyMiw3IEBAIHR5cGVk ZWYgc3RydWN0IF9TdWJzY3JpcHRpb25JbmZvCiAJYm9vbAkJc3ViZmFpbG92ZXI7CiAJYm9vbAkJ c3VicmV0YWluZGVhZHR1cGxlczsKIAlpbnQJCQlzdWJtYXhyZXRlbnRpb247CisJT2lkCQkJc3Vi Y29uZmxpY3Rsb2dyZWxpZDsKIAljaGFyCSAgICpzdWJzZXJ2ZXJuYW1lOwogCWNoYXIJICAgKnN1 YmNvbm5pbmZvOwogCWNoYXIJICAgKnN1YnNsb3RuYW1lOwpAQCAtNzMwLDYgKzczMSw3IEBAIHR5 cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25z OwogCWNoYXIJICAgKnN1Ym9yaWdpbjsKIAljaGFyCSAgICpzdWJvcmlnaW5yZW1vdGVsc247CisJ Y2hhcgkgICAqc3ViY29uZmxpY3Rsb2dkZXN0OwogfSBTdWJzY3JpcHRpb25JbmZvOwogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDAzZTVjMWMxMTE2Li5jMjdiMjMyZTc5OSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYwpAQCAtMTEzMSw2ICsxMTMxLDE5IEBAIHJlcGFpclRhYmxlQXR0ckRl Zk11bHRpTG9vcChEdW1wYWJsZU9iamVjdCAqdGFibGVvYmosCiAJYWRkT2JqZWN0RGVwZW5kZW5j eShhdHRyZGVmb2JqLCB0YWJsZW9iai0+ZHVtcElkKTsKIH0KIAorLyoKKyAqIEJlY2F1c2Ugd2Ug bWFrZSBzdWJzY3JpcHRpb25zIGRlcGVuZCBvbiB0aGVpciBjb25mbGljdCBsb2cgdGFibGVzLCB3 aGlsZQorICogdGhlcmUgaXMgYW4gYXV0b21hdGljIGRlcGVuZGVuY3kgaW4gdGhlIG90aGVyIGRp cmVjdGlvbiwgd2UgbmVlZCB0byBicmVhaworICogdGhlIGxvb3AuIFJlbW92ZSB0aGUgYXV0b21h dGljIGRlcGVuZGVuY3ksIGFsbG93aW5nIHRoZSB0YWJsZSB0byBiZSBjcmVhdGVkCisgKiBmaXJz dC4KKyAqLworc3RhdGljIHZvaWQKK3JlcGFpclN1YnNjcmlwdGlvblRhYmxlTG9vcChEdW1wYWJs ZU9iamVjdCAqc3Vib2JqLCBEdW1wYWJsZU9iamVjdCAqdGFibGVvYmopCit7CisJLyogUmVtb3Zl IHRhYmxlJ3MgZGVwZW5kZW5jeSBvbiBzdWJzY3JpcHRpb24gKi8KKwlyZW1vdmVPYmplY3REZXBl bmRlbmN5KHRhYmxlb2JqLCBzdWJvYmotPmR1bXBJZCk7Cit9CisKIC8qCiAgKiBDSEVDSywgTk9U IE5VTEwgY29uc3RyYWludHMgb24gZG9tYWlucyB3b3JrIGp1c3QgbGlrZSB0aG9zZSBvbiB0YWJs ZXMgLi4uCiAgKi8KQEAgLTEzNjEsNiArMTM3NCwyNCBAQCByZXBhaXJEZXBlbmRlbmN5TG9vcChE dW1wYWJsZU9iamVjdCAqKmxvb3AsCiAJCXJldHVybjsKIAl9CiAKKwkvKgorCSAqIFN1YnNjcmlw dGlvbiBhbmQgaXRzIENvbmZsaWN0IExvZyBUYWJsZQorCSAqLworCWlmIChuTG9vcCA9PSAyICYm CisJCWxvb3BbMF0tPm9ialR5cGUgPT0gRE9fVEFCTEUgJiYKKwkJbG9vcFsxXS0+b2JqVHlwZSA9 PSBET19TVUJTQ1JJUFRJT04pCisJeworCQlyZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AobG9v cFsxXSwgbG9vcFswXSk7CisJCXJldHVybjsKKwl9CisJaWYgKG5Mb29wID09IDIgJiYKKwkJbG9v cFswXS0+b2JqVHlwZSA9PSBET19TVUJTQ1JJUFRJT04gJiYKKwkJbG9vcFsxXS0+b2JqVHlwZSA9 PSBET19UQUJMRSkKKwl7CisJCXJlcGFpclN1YnNjcmlwdGlvblRhYmxlTG9vcChsb29wWzBdLCBs b29wWzFdKTsKKwkJcmV0dXJuOworCX0KKwogCS8qIGluZGV4IG9uIHBhcnRpdGlvbmVkIHRhYmxl IGFuZCBjb3JyZXNwb25kaW5nIGluZGV4IG9uIHBhcnRpdGlvbiAqLwogCWlmIChuTG9vcCA9PSAy ICYmCiAJCWxvb3BbMF0tPm9ialR5cGUgPT0gRE9fSU5ERVggJiYKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKaW5kZXggM2VlOWZkYTUwZTQuLjNmZjUwZGQ1MGVlIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbApAQCAtMzI3Niw5ICszMjc2LDEwIEBAIG15ICV0ZXN0cyA9ICgKIAkJY3JlYXRlX29y ZGVyID0+IDUwLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjMKIAkJ CQkJCSBDT05ORUNUSU9OIFwnZGJuYW1lPWRvZXNub3RleGlzdFwnIFBVQkxJQ0FUSU9OIHB1YjEK LQkJCQkJCSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIG9yaWdpbiA9IGFueSwgc3RyZWFtaW5nID0g b24pOycsCisJCQkJCQkgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBvcmlnaW4gPSBhbnksIHN0cmVh bWluZyA9IG9uLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb249IHRhYmxlKTsnLAogCQlyZWdleHAg PT4gcXIvXgotCQkJXFFDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjMgQ09OTkVDVElPTiAnZGJuYW1l PWRvZXNub3RleGlzdCcgUFVCTElDQVRJT04gcHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNs b3RfbmFtZSA9ICdzdWIzJywgc3RyZWFtaW5nID0gb24pO1xFCisJCQlcUUNSRUFURSBTVUJTQ1JJ UFRJT04gc3ViMyBDT05ORUNUSU9OICdkYm5hbWU9ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiBw dWIxIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgc2xvdF9uYW1lID0gJ3N1YjMnLCBzdHJlYW1pbmcg PSBvbik7XEVcblxuXG4KKwkJCVxRQUxURVIgU1VCU0NSSVBUSU9OIHN1YjMgU0VUIChjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gPSB0YWJsZSk7XEUKIAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJCXVubGlrZSA9PiB7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuYwppbmRleCAyMTI3ZDI5N2JmZS4uMTM1ZWY2NThjMmMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuYwpAQCAtMzUsNiArMzUsMTAgQEAKICAqCiAgKglXZSBjb250cm9sIGFsbCBh c3NpZ25tZW50cyBvZiBwZ19kYXRhYmFzZS5vaWQgYmVjYXVzZSB3ZSB3YW50IHRoZSBkaXJlY3Rv cnkKICAqCW5hbWVzIHRvIG1hdGNoIGJldHdlZW4gdGhlIG9sZCBhbmQgbmV3IGNsdXN0ZXIuCisg KgorICoJV2UgY29udHJvbCBhc3NpZ25tZW50IG9mIHBnX3N1YnNjcmlwdGlvbi5vaWQgYmVjYXVz ZSB3ZSB3YW50IHRoZSBvaWQgdG8KKyAqCW1hdGNoIGJldHdlZW4gdGhlIG9sZCBhbmQgbmV3IGNs dXN0ZXIgdG8gbWFrZSB1c2Ugb2Ygc3Vic2NyaXB0aW9uJ3MKKyAqCWNvbmZsaWN0IGxvZyB0YWJs ZSB3aGljaCBpcyBuYW1lZCB1c2luZyB0aGUgc3Vic2NyaXB0aW9uIG9pZC4KICAqLwogCiAKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRpb24ucGwgYi9zcmMv YmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2NyaXB0aW9uLnBsCmluZGV4IGM5NGE4MmRlYWUwLi43 M2YwMGQyNDI2YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlw dGlvbi5wbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2NyaXB0aW9uLnBsCkBA IC0yOTAsNyArMjkwLDcgQEAgJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAogJG9sZF9zdWItPnNhZmVf cHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAkJQ1JFQVRFIFRBQkxFIHRhYl91cGdyYWRlZDIoaWQg aW50KTsKLQkJQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YjUgQ09OTkVDVElPTiAnJGNv bm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViNTsKKwkJQ1JFQVRFIFNVQlNDUklQVElPTiBy ZWdyZXNzX3N1YjUgQ09OTkVDVElPTiAnJGNvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHVi NSB3aXRoIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKIF0pOwogCiAjIFRo ZSB0YWJsZSB0YWJfdXBncmFkZWQyIHdpbGwgYmUgaW4gdGhlIGluaXQgc3RhdGUgYXMgdGhlIHN1 YnNjcmliZXIncwpAQCAtMzEyLDcgKzMxMiwxMCBAQCBteSAkdGFiX3VwZ3JhZGVkMV9vaWQgPSAk b2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFz cyBXSEVSRSByZWxuYW1lID0gJ3RhYl91cGdyYWRlZDEnIik7CiBteSAkdGFiX3VwZ3JhZGVkMl9v aWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBvaWQgRlJPTSBw Z19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3RhYl91cGdyYWRlZDInIik7Ci0KK215ICRzdWI1X29p ZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBn X3N1YnNjcmlwdGlvbiB3aGVyZSBzdWJuYW1lID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKK215ICRzdWJf Y2x0X3JlbGlkID0gJG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgc3Vi Y29uZmxpY3Rsb2dyZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3Jl Z3Jlc3Nfc3ViNSciKTsKICRvbGRfc3ViLT5zdG9wOwogCiAjIENoYW5nZSBjb25maWd1cmF0aW9u IHNvIHRoYXQgaW5pdGlhbCB0YWJsZSBzeW5jIGRvZXMgbm90IGdldCBzdGFydGVkCkBAIC0zOTQs NiArMzk3LDEzIEBAICRyZXN1bHQgPSAkbmV3X3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAp OwogaXMoJHJlc3VsdCwgcXEodCksICJjb25mbGljdCBkZXRlY3Rpb24gc2xvdCBleGlzdHMiKTsK IAorIyBUaGUgc3Vic2NyaXB0aW9uIG9pZCBhbmQgdGhlIHN1YnNjcmlwdGlvbiBjb25mbGljdCBs b2cgdGFibGUgcmVsaWQgc2hvdWxkIGJlIHByZXNlcnZlZAorJHJlc3VsdCA9ICRuZXdfc3ViLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hF UkUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUnIik7CitpcygkcmVzdWx0LCBxcSgkc3ViNV9vaWQp LCAic3Vic2NyaXB0aW9uIG9pZCBzaG91bGQgaGF2ZSBiZWVuIHByZXNlcnZlZCIpOworCiskcmVz dWx0ID0gJG5ld19zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHN1YmNvbmZsaWN0 bG9ncmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX3N1 YjUnIik7CitpcygkcmVzdWx0LCBxcSgkc3ViX2NsdF9yZWxpZCksICJzdWJzY3JpcHRpb24gY29u ZmxpY3QgbG9nIHRhYmxlIHJlbGlkIHNob3VsZCBoYXZlIGJlZW4gcHJlc2VydmVkIik7CisKICMg UmVzdW1lIHRoZSBpbml0aWFsIHN5bmMgYW5kIHdhaXQgdW50aWwgYWxsIHRhYmxlcyBvZiBzdWJz Y3JpcHRpb24KICMgJ3JlZ3Jlc3Nfc3ViNScgYXJlIHN5bmNocm9uaXplZAogJG5ld19zdWItPmFw cGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9iaW5hcnlfdXBncmFkZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFk ZS5oCmluZGV4IDdiZjdhZTQ0Mzg1Li5iMTViMThlN2RjOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmlu YXJ5X3VwZ3JhZGUuaApAQCAtMzIsNiArMzIsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgUmVsRmls ZU51bWJlciBiaW5hcnlfdXBncmFkZV9uZXh0X3RvYXN0X3BnX2NsYXNzX3JlbGZpbGVudW1iZQog CiBleHRlcm4gUEdETExJTVBPUlQgT2lkIGJpbmFyeV91cGdyYWRlX25leHRfcGdfZW51bV9vaWQ7 CiBleHRlcm4gUEdETExJTVBPUlQgT2lkIGJpbmFyeV91cGdyYWRlX25leHRfcGdfYXV0aGlkX29p ZDsKK2V4dGVybiBQR0RMTElNUE9SVCBPaWQgYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3Jp cHRpb25fb2lkOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBiaW5hcnlfdXBncmFkZV9yZWNv cmRfaW5pdF9wcml2czsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggYmUxNTdhNWZiZTku LjNiNTU1NDE1Y2JjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExOTY5LDYgKzExOTY5 LDEwIEBACiAgIHByb2lzc3RyaWN0ID0+ICdmJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJh bGxlbCA9PiAndScsCiAgIHByb3JldHR5cGUgPT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9PiAnJywK ICAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFkZV9jcmVhdGVfY29uZmxpY3RfZGV0ZWN0aW9uX3Ns b3QnIH0sCit7IG9pZCA9PiAnODQwNycsIGRlc2NyID0+ICdmb3IgdXNlIGJ5IHBnX3VwZ3JhZGUn LAorICBwcm9uYW1lID0+ICdiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25f b2lkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5 cGUgPT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkJyB9LAogCiAjIGNvbnZlcnNpb24g ZnVuY3Rpb25zCiB7IG9pZCA9PiAnNDMxMCcsIGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9u IGZ1bmN0aW9uIGZvciBLT0k4UiB0byBXSU4xMjUxJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oCmluZGV4IDg5ZDIzMDBhYmUxLi42YTVkYzBmMWUzMSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC0yMjEsNiArMjIxLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U3Vic2NyaXB0aW9uCiAgKi8KICNkZWZpbmUgTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwgJ3An CiAKKyNkZWZpbmUgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVfRk1UICJwZ19jb25mbGljdF9s b2dfJXUiCisKICNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIAogZXh0 ZXJuIFN1YnNjcmlwdGlvbiAqR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5n X29rLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0 ZWQvc3BnaXN0X25hbWVfb3BzLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3Bz L2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKaW5kZXggMWVlNjVlZGUyNDMuLjM5ZDQzMzY4 YzQyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3Rl ZC9zcGdpc3RfbmFtZV9vcHMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVf b3BzL2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKQEAgLTU5LDExICs1OSwxMiBAQCBzZWxl Y3QgKiBmcm9tIHQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVf b2lkICAgICAgIHwgIDEgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5 cGVfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZCAgICAgICAgICAg ICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZAogIGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX2VudW1fb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJp bmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX2VudW1fb2lkCisgYmluYXJ5X3VwZ3JhZGVfc2V0X25l eHRfcGdfc3Vic2NyaXB0aW9uX29pZCAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3Rh Ymxlc3BhY2Vfb2lkICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3Bn X3RhYmxlc3BhY2Vfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQgICAg ICAgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQK ICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQgICAgICAgICAgIHwg IDEgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQKICBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF90b2FzdF9yZWxmaWxlbm9kZSAgICAgICAgICAgIHwgICAgfCBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9yZWxmaWxlbm9kZQotKDEzIHJvd3MpCisoMTQgcm93 cykKIAogLS0gVmVyaWZ5IGNsZWFuIGZhaWx1cmUgd2hlbiBJTkNMVURFJ2QgY29sdW1ucyByZXN1 bHQgaW4gb3Zlcmxlbmd0aCB0dXBsZQogLS0gVGhlIGVycm9yIG1lc3NhZ2UgZGV0YWlscyBhcmUg cGxhdGZvcm0tZGVwZW5kZW50LCBzbyBzaG93IG9ubHkgU1FMU1RBVEUKQEAgLTEwOCwxMSArMTA5 LDEyIEBAIHNlbGVjdCAqIGZyb20gdAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFu Z2VfcGdfdHlwZV9vaWQgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRp cmFuZ2VfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lk ICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRf b2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQgICAgICAgICAgICAgICAg ICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQKKyBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkICAgICAgICAgIHwgICAgfCBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfcGdfdGFibGVzcGFjZV9vaWQgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVf c2V0X25leHRfcGdfdGFibGVzcGFjZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190 eXBlX29pZCAgICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9w Z190eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZCAg ICAgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29p ZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlICAgICAgICAgICAg fCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlCi0oMTMgcm93 cykKKygxNCByb3dzKQogCiBcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQogaW5zZXJ0IGludG8gdCB2 YWx1ZXMocmVwZWF0KCd4eXp6eScsIDEyKSwgNDIsIHJlcGVhdCgneHl6enknLCA0MDAwKSk7Ci0t IAoyLjUzLjAKCg== --000000000000768f830653bc69ca Content-Type: application/octet-stream; name="v47-0005-Documentation-patch.patch" Content-Disposition: attachment; filename="v47-0005-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq54pjoz4 RnJvbSBiNzkwOWIwZWNmZjcxMTJjYjNiZTRhNzQ4MjU1Y2Y3MDA5ZTQwMzUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NDcg NS81XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg ICAgIHwgNjY5ICsrKysrKysrKysrKystLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgIHwgIDEzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJz Y3JpcHRpb24uc2dtbCB8ICA1MSArKwogNSBmaWxlcyBjaGFuZ2VkLCA0OTQgaW5zZXJ0aW9ucygr KSwgMjcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA3NDdmOTI5YWVlMy4uYzE2ZTM1ZGRmNTkgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKQEAgLTM3NTksNiArMzc1OSwyNiBAQCBSRVZPS0UgQ1JFQVRFIE9OIFNDSEVNQSBwdWJsaWMg RlJPTSBQVUJMSUM7CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJkZGwt c2NoZW1hcy1jb25mbGljdCI+CisgICA8dGl0bGU+VGhlIENvbmZsaWN0IFNjaGVtYTwvdGl0bGU+ CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNjaGVtYXMtY29uZmxpY3QiPgorICAgIDxwcmlt YXJ5PmNvbmZsaWN0PC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+c2NoZW1hPC9zZWNvbmRhcnk+ CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2ltaWxhcmx5LCB0aGUgPGxpdGVy YWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYSAoc29tZXRpbWVzIHJlZmVycmVkIHRvCisg ICAgYXMgdGhlIDxlbXBoYXNpcz5jb25mbGljdCBzY2hlbWE8L2VtcGhhc2lzPikgY29udGFpbnMg c3lzdGVtIG1hbmFnZWQKKyAgICBjb25mbGljdCBsb2cgdGFibGVzIHVzZWQgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3QgdHJhY2tpbmcuIFRoZXNlCisgICAgdGFibGVzIGFyZSBjcmVh dGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBub3QgaW50ZW5kZWQgZm9y CisgICAgZGlyZWN0IHVzZXIgbWFuaXB1bGF0aW9uLiBVbmxpa2UgPGxpdGVyYWw+cGdfY2F0YWxv ZzwvbGl0ZXJhbD4sIHRoZQorICAgIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+IHNjaGVt YSBpcyBub3QgaW1wbGljaXRseSBpbmNsdWRlZCBpbiB0aGUKKyAgICBzZWFyY2ggcGF0aCwgc28g b2JqZWN0cyB3aXRoaW4gaXQgbXVzdCBiZSByZWZlcmVuY2VkIGV4cGxpY2l0bHkgb3IgYnkKKyAg ICBhZGp1c3RpbmcgdGhlIHNlYXJjaCBwYXRoLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAg IDxzZWN0MiBpZD0iZGRsLXNjaGVtYXMtcGF0dGVybnMiPgogICAgPHRpdGxlPlVzYWdlIFBhdHRl cm5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBiODgxYWU3MTE5OC4uNTdiNjk3MGFkOWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC01MDYsNiArNTA2LDE4IEBACiAgICA8L2dsb3NzZGVmPgogICA8 L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbmZsaWN0LXNjaGVt YSI+CisgICA8Z2xvc3N0ZXJtPmNvbmZsaWN0IHNjaGVtYTwvZ2xvc3N0ZXJtPgorICAgPGdsb3Nz ZGVmPgorICAgIDxwYXJhPgorICAgICBUaGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+ IHNjaGVtYSB0aGF0IGNvbnRhaW5zIHN5c3RlbS1tYW5hZ2VkCisgICAgIGNvbmZsaWN0IGxvZyB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24uIFRoZXNlIHRhYmxlcyBhcmUgY3JlYXRlZAor ICAgICBhbmQgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBu b3QgaW50ZW5kZWQgZm9yCisgICAgIGRpcmVjdCB1c2VyIG1hbmlwdWxhdGlvbi4gU2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zY2hlbWFzLWNvbmZsaWN0Ii8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xv c3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3NhcnktY29u bmVjdGlvbiI+CiAgICA8Z2xvc3N0ZXJtPkNvbm5lY3Rpb248L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDllNzg2ODQ4N2Rl Li5mYjg1Y2IyNjI5NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0y OTMsNiArMjkzLDIxIEBACiAgICBvcHRpb24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElP TjwvY29tbWFuZD4gZm9yIGRldGFpbHMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIDxsaW5r IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3RzIj5Db25mbGljdHM8L2xpbms+ IHRoYXQgb2NjdXIKKyAgIGR1cmluZyByZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dl ZCBhcyBwbGFpbiB0ZXh0IGluIHRoZSBzZXJ2ZXIgbG9nLAorICAgd2hpY2ggY2FuIG1ha2UgYXV0 b21hdGVkIG1vbml0b3JpbmcgYW5kIGFuYWx5c2lzIGRpZmZpY3VsdC4gVGhlCisgICA8Y29tbWFu ZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGlj dC1sb2ctZGVzdGluYXRpb24iPgorICAgPGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4gb3B0aW9uIHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3Qg aW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMg cGFyYW1ldGVyCisgICBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRl cmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBh IGRlZGljYXRlZCA8Zmlyc3R0ZXJtPmNvbmZsaWN0IGxvZyB0YWJsZTwvZmlyc3R0ZXJtPiwKKyAg IHdoaWNoIGlzIGNyZWF0ZWQgYW4gZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBzdWJzY3JpcHRpb24u IFRoaXMgc2lnbmlmaWNhbnRseQorICAgaW1wcm92ZXMgcG9zdC1tb3J0ZW0gYW5hbHlzaXMgYW5k IG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uCisgICBzZXR1cC4KKyAg PC9wYXJhPgorCiAgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zdWJzY3JpcHRpb24t c2xvdCI+CiAgICA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBTbG90IE1hbmFnZW1lbnQ8L3Rp dGxlPgogCkBAIC0yMDA5LDEyMCArMjAyNCwyMjUgQEAgSW5jbHVkZWQgaW4gcHVibGljYXRpb25z OgogICAgb3BlcmF0aW9ucyB3aWxsIHNpbXBseSBiZSBza2lwcGVkLgogICA8L3BhcmE+CiAKLSAg PHBhcmE+Ci0gICBBZGRpdGlvbmFsIGxvZ2dpbmcgaXMgdHJpZ2dlcmVkLCBhbmQgdGhlIGNvbmZs aWN0IHN0YXRpc3RpY3MgYXJlIGNvbGxlY3RlZCAoZGlzcGxheWVkIGluIHRoZQotICAgPGxpbmsg bGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0cnVjdG5h bWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3KQot ICAgaW4gdGhlIGZvbGxvd2luZyA8Zmlyc3R0ZXJtPmNvbmZsaWN0PC9maXJzdHRlcm0+IGNhc2Vz OgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1pbnNl cnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgotICAgICA8dGVybT48bGl0ZXJh bD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAg PHBhcmE+Ci0gICAgICAgSW5zZXJ0aW5nIGEgcm93IHRoYXQgdmlvbGF0ZXMgYSA8bGl0ZXJhbD5O T1QgREVGRVJSQUJMRTwvbGl0ZXJhbD4KLSAgICAgICB1bmlxdWUgY29uc3RyYWludC4gTm90ZSB0 aGF0IHRvIGxvZyB0aGUgb3JpZ2luIGFuZCBjb21taXQKLSAgICAgICB0aW1lc3RhbXAgZGV0YWls cyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFj ay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJu YW1lPjwvbGluaz4KLSAgICAgICBzaG91bGQgYmUgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4g SW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlCi0gICAgICAgcmFpc2VkIHVudGlsIHRoZSBj b25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0 aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtb3JpZ2luLWRpZmZlcnMiIHhyZWZsYWJlbD0idXBkYXRlX29yaWdpbl9kaWZmZXJz Ij4KLSAgICAgPHRlcm0+PGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwv dGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVXBkYXRpbmcgYSBy b3cgdGhhdCB3YXMgcHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4KLSAgICAg ICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4gb25seSBiZSBkZXRlY3RlZCB3aGVuCi0gICAg ICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2YXJuYW1lPnRy YWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIGlzIGVuYWJsZWQg b24gdGhlIHN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIHVwZGF0ZSBpcyBhbHdheXMgYXBwbGll ZAotICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgotICAg ICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LXVwZGF0ZS1leGlzdHMiIHhyZWZsYWJlbD0idXBkYXRl X2V4aXN0cyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+PC90 ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgdXBkYXRlZCB2 YWx1ZSBvZiBhIHJvdyB2aW9sYXRlcyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFs PgotICAgICAgIHVuaXF1ZSBjb25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4g YW5kIGNvbW1pdAotICAgICAgIHRpbWVzdGFtcCBkZXRhaWxzIG9mIHRoZSBjb25mbGljdGluZyBr ZXksCi0gICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2 YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIHNo b3VsZCBiZSBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9y IHdpbGwgYmUKLSAgICAgICByYWlzZWQgdW50aWwgdGhlIGNvbmZsaWN0IGlzIHJlc29sdmVkIG1h bnVhbGx5LiBOb3RlIHRoYXQgd2hlbiB1cGRhdGluZyBhCi0gICAgICAgcGFydGl0aW9uZWQgdGFi bGUsIGlmIHRoZSB1cGRhdGVkIHJvdyB2YWx1ZSBzYXRpc2ZpZXMgYW5vdGhlciBwYXJ0aXRpb24K LSAgICAgICBjb25zdHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGlu dG8gYSBuZXcgcGFydGl0aW9uLCB0aGUKLSAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9s aXRlcmFsPiBjb25mbGljdCBtYXkgYXJpc2UgaWYgdGhlIG5ldyByb3cKLSAgICAgICB2aW9sYXRl cyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWludC4K LSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAg ICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1 cGRhdGVfZGVsZXRlZCI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9kZWxldGVkPC9saXRl cmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIHR1 cGxlIHRvIGJlIHVwZGF0ZWQgd2FzIGNvbmN1cnJlbnRseSBkZWxldGVkIGJ5IGFub3RoZXIgb3Jp Z2luLiBUaGUKLSAgICAgICB1cGRhdGUgd2lsbCBzaW1wbHkgYmUgc2tpcHBlZCBpbiB0aGlzIHNj ZW5hcmlvLiBOb3RlIHRoYXQgdGhpcyBjb25mbGljdAotICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KLSAgICAgICA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFt cCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAg ICAgYW5kIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt cmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+ PC9saW5rPgotICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5ub3Qg YmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZwotICAgICAgIHRydW5jYXRlZCwgb25seSBh IDxsaXRlcmFsPnVwZGF0ZV9taXNzaW5nPC9saXRlcmFsPiBjb25mbGljdCB3aWxsCi0gICAgICAg YXJpc2UuIEFkZGl0aW9uYWxseSwgaWYgdGhlIHR1cGxlIHdhcyBkZWxldGVkIGJ5IHRoZSBzYW1l IG9yaWdpbiwgYW4KLSAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29u ZmxpY3Qgd2lsbCBhcmlzZS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtbWlz c2luZyIgeHJlZmxhYmVsPSJ1cGRhdGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVw ZGF0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSB1cGRhdGVkIHdhcyBub3QgZm91bmQuIFRoZSB1cGRh dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 ImRlbGV0ZV9vcmlnaW5fZGlmZmVycyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRlbGV0ZV9vcmln aW5fZGlmZmVyczwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIERlbGV0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkg YW5vdGhlciBvcmlnaW4uIE5vdGUgdGhhdAotICAgICAgIHRoaXMgY29uZmxpY3QgY2FuIG9ubHkg YmUgZGV0ZWN0ZWQgd2hlbgotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQt dGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGlu az4KLSAgICAgICBpcyBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBDdXJyZW50bHksIHRoZSBk ZWxldGUgaXMgYWx3YXlzIGFwcGxpZWQKLSAgICAgICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4g b2YgdGhlIGxvY2FsIHJvdy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1kZWxldGUtbWlz c2luZyIgeHJlZmxhYmVsPSJkZWxldGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRl bGV0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSBkZWxldGVkIHdhcyBub3QgZm91bmQuIFRoZSBkZWxl dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtbXVsdGlwbGUtdW5pcXVlLWNvbmZsaWN0cyIgeHJlZmxh YmVsPSJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIj4KLSAgICAgPHRlcm0+PGxpdGVyYWw+bXVs dGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgIEluc2VydGluZyBvciB1cGRhdGluZyBhIHJvdyB2aW9sYXRl cyBtdWx0aXBsZQotICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlx dWUgY29uc3RyYWludHMuIE5vdGUgdGhhdCB0byBsb2cKLSAgICAgICB0aGUgb3JpZ2luIGFuZCBj b21taXQgdGltZXN0YW1wIGRldGFpbHMgb2YgY29uZmxpY3Rpbmcga2V5cywgZW5zdXJlCi0gICAg ICAgdGhhdCA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5h bWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAgICAgaXMgZW5h YmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJh aXNlZCB1bnRpbAotICAgICAgIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAg ICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwv dmFyaWFibGVsaXN0PgotICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2Nl bmFyaW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50Ci0gICAgdmlvbGF0aW9ucy4gQ3Vy cmVudGx5LCB3ZSBkbyBub3QgcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHMgZm9yIHRoZW0gaW4g dGhlCi0gICAgbG9nLgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlv bi1jb25mbGljdC1sb2dnaW5nIj4KKyAgIDx0aXRsZT5Db25mbGljdCBsb2dnaW5nPC90aXRsZT4K KyAgIDxwYXJhPgorICAgIEFkZGl0aW9uYWwgbG9nZ2luZyBpcyB0cmlnZ2VyZWQsIGFuZCB0aGUg Y29uZmxpY3Qgc3RhdGlzdGljcyBhcmUgY29sbGVjdGVkIChkaXNwbGF5ZWQgaW4gdGhlCisgICAg PGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0 cnVjdG5hbWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2 aWV3KQorICAgIGluIHRoZSBmb2xsb3dpbmcgPGZpcnN0dGVybT5jb25mbGljdDwvZmlyc3R0ZXJt PiBjYXNlczoKKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25m bGljdC1pbnNlcnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgorICAgICAgPHRl cm0+PGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEluc2VydGluZyBhIHJvdyB0aGF0IHZpb2xhdGVz IGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBjb25z dHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAgICB0 aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVkIG9u IHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAgICAg cmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtdXBkYXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 InVwZGF0ZV9vcmlnaW5fZGlmZmVycyI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfb3Jp Z2luX2RpZmZlcnM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBVcGRhdGluZyBhIHJvdyB0aGF0IHdhcyBwcmV2aW91c2x5IG1vZGlmaWVk IGJ5IGFub3RoZXIgb3JpZ2luLgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4g b25seSBiZSBkZXRlY3RlZCB3aGVuCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1j b21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1l PjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gQ3VycmVudGx5 LCB0aGUgdXBkYXRlIGlzIGFsd2F5cyBhcHBsaWVkCisgICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhl IG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtZXhpc3RzIiB4cmVmbGFiZWw9InVwZGF0ZV9leGlzdHMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB1cGRhdGVkIHZhbHVlIG9mIGEgcm93IHZpb2xh dGVzIGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBj b25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAg ICB0aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGlu ayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29t bWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVk IG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAg ICAgcmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4gTm90ZSB0 aGF0IHdoZW4gdXBkYXRpbmcgYQorICAgICAgICBwYXJ0aXRpb25lZCB0YWJsZSwgaWYgdGhlIHVw ZGF0ZWQgcm93IHZhbHVlIHNhdGlzZmllcyBhbm90aGVyIHBhcnRpdGlvbgorICAgICAgICBjb25z dHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGludG8gYSBuZXcgcGFy dGl0aW9uLCB0aGUKKyAgICAgICAgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4gY29u ZmxpY3QgbWF5IGFyaXNlIGlmIHRoZSBuZXcgcm93CisgICAgICAgIHZpb2xhdGVzIGEgPGxpdGVy YWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+IHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1cGRhdGVf ZGVsZXRlZCI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfZGVsZXRlZDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB0dXBs ZSB0byBiZSB1cGRhdGVkIHdhcyBjb25jdXJyZW50bHkgZGVsZXRlZCBieSBhbm90aGVyIG9yaWdp bi4gVGhlCisgICAgICAgIHVwZGF0ZSB3aWxsIHNpbXBseSBiZSBza2lwcGVkIGluIHRoaXMgc2Nl bmFyaW8uIE5vdGUgdGhhdCB0aGlzIGNvbmZsaWN0CisgICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KKyAgICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3Rh bXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgorICAg ICAgICBhbmQgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1yZXRhaW4tZGVhZC10dXBsZXMiPjxsaXRlcmFsPnJldGFpbl9kZWFkX3R1cGxlczwvbGl0ZXJh bD48L2xpbms+CisgICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5u b3QgYmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZworICAgICAgICB0cnVuY2F0ZWQsIG9u bHkgYSA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29uZmxpY3Qgd2lsbAorICAg ICAgICBhcmlzZS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdHVwbGUgd2FzIGRlbGV0ZWQgYnkgdGhl IHNhbWUgb3JpZ2luLCBhbgorICAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJh bD4gY29uZmxpY3Qgd2lsbCBhcmlzZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iY29uZmxpY3Qt dXBkYXRlLW1pc3NpbmciIHhyZWZsYWJlbD0idXBkYXRlX21pc3NpbmciPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX21pc3Npbmc8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRvIGJlIHVwZGF0ZWQgd2FzIG5vdCBm b3VuZC4gVGhlIHVwZGF0ZSB3aWxsIHNpbXBseSBiZQorICAgICAgICBza2lwcGVkIGluIHRoaXMg c2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LWRlbGV0ZS1vcmlnaW4t ZGlmZmVycyIgeHJlZmxhYmVsPSJkZWxldGVfb3JpZ2luX2RpZmZlcnMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+ZGVsZXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVsZXRpbmcgYSByb3cgdGhhdCB3YXMg cHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4gTm90ZSB0aGF0CisgICAgICAg IHRoaXMgY29uZmxpY3QgY2FuIG9ubHkgYmUgZGV0ZWN0ZWQgd2hlbgorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1 YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIGRlbGV0ZSBpcyBhbHdheXMgYXBwbGllZAorICAgICAg ICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4gb2YgdGhlIGxvY2FsIHJvdy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW1pc3NpbmciIHhyZWZsYWJlbD0iZGVsZXRlX21p c3NpbmciPgorICAgICAgPHRlcm0+PGxpdGVyYWw+ZGVsZXRlX21pc3Npbmc8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRv IGJlIGRlbGV0ZWQgd2FzIG5vdCBmb3VuZC4gVGhlIGRlbGV0ZSB3aWxsIHNpbXBseSBiZQorICAg ICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNv bmZsaWN0LW11bHRpcGxlLXVuaXF1ZS1jb25mbGljdHMiIHhyZWZsYWJlbD0ibXVsdGlwbGVfdW5p cXVlX2NvbmZsaWN0cyI+CisgICAgICA8dGVybT48bGl0ZXJhbD5tdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgSW5zZXJ0aW5nIG9yIHVwZGF0aW5nIGEgcm93IHZpb2xhdGVzIG11bHRpcGxlCisg ICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWlu dHMuIE5vdGUgdGhhdCB0byBsb2cKKyAgICAgICAgdGhlIG9yaWdpbiBhbmQgY29tbWl0IHRpbWVz dGFtcCBkZXRhaWxzIG9mIGNvbmZsaWN0aW5nIGtleXMsIGVuc3VyZQorICAgICAgICB0aGF0IDxs aW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19j b21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0 aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJhaXNlZCB1bnRp bAorICAgICAgICB0aGUgY29uZmxpY3QgaXMgcmVzb2x2ZWQgbWFudWFsbHkuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJp YWJsZWxpc3Q+CisgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2NlbmFy aW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50CisgICAgIHZpb2xhdGlvbnMuIEN1cnJl bnRseSwgd2UgZG8gbm90IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGZvciB0aGVtIGluIHRo ZQorICAgICBsb2cuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAKLSAgPHBhcmE+Ci0gICBUaGUg bG9nIGZvcm1hdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMgaXMgYXMgZm9sbG93 czoKKyAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0LXRhYmxlLWJhc2Vk LWxvZ2dpbmciPgorICAgPHRpdGxlPlRhYmxlLWJhc2VkIGxvZ2dpbmc8L3RpdGxlPgorICAgPHBh cmE+CisgICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgcGFyYW1ldGVyIGlzIHNldCB0byA8bGl0ZXJh bD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiB0aGVuCisgICAgYSBk ZWRpY2F0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVk LiBUaGlzIHRhYmxlIGlzCisgICAgY3JlYXRlZCBpbiB0aGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8 L2xpdGVyYWw+IG5hbWVzcGFjZS4gVGhlIG5hbWUgb2YgdGhlCisgICAgY29uZmxpY3QgbG9nIHRh YmxlIGlzCisgICAgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9zdWJpZF8mbHQ7c3ViaWQm Z3Q7PC9saXRlcmFsPi4gVGhlIHByZWRlZmluZWQKKyAgICBzY2hlbWEgb2YgdGhpcyB0YWJsZSBp cyBkZXRhaWxlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtbG9nLXNjaGVtYSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJsb2dpY2Fs LXJlcGxpY2F0aW9uLWNvbmZsaWN0LWxvZy1zY2hlbWEiPgorICAgIDx0aXRsZT5Db25mbGljdCBM b2cgVGFibGUgU2NoZW1hPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Db2x1bW48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgT0lEIG9mIHRoZSBs b2NhbCB0YWJsZSB3aGVyZSB0aGUgY29uZmxpY3Qgb2NjdXJyZWQuPC9lbnRyeT4KKyAgICAgIDwv cm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+c2NoZW1hbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PlRoZSBzY2hlbWEgbmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9l bnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ cmVsbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25mbGljdGluZyB0YWJs ZS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBl PnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VGhlIHR5cGUgb2YgY29uZmxpY3Qg dGhhdCBvY2N1cnJlZCAoZS5nLiwgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4pLjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PnJlbW90ZV94aWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+eGlkPC90 eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSByZW1vdGUgdHJhbnNhY3Rpb24gSUQgdGhh dCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9jb21taXRfbHNuPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2xzbjwvdHlwZT48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2Nv bW1pdF90czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50aW1lc3RhbXB0 ejwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIGNvbW1pdCB0aW1lc3Rh bXAgb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfb3JpZ2luPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+VGhlIG9yaWdpbiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV90dXBs ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT5qc29uPC90eXBlPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWlu ZyByZW1vdGUgcm93IHRoYXQgY2F1c2VkCisgICAgICAgdGhlIGNvbmZsaWN0LjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlcGxpY2Ff aWRlbnRpdHk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlw ZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUg cmVwbGljYSBpZGVudGl0eS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHR5cGU+anNvbltdPC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pgor ICAgICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBzdGF0ZSBv ZiBleGlzdGluZyBsb2NhbAorICAgICAgICByb3cocykgdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0 LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgbG9jYWwKKyAgICAgICAgdHJhbnNhY3Rpb24gSUQg KDxsaXRlcmFsPnhpZDwvbGl0ZXJhbD4pLCBjb21taXQgdGltZXN0YW1wCisgICAgICAgICg8bGl0 ZXJhbD5jb21taXRfdHM8L2xpdGVyYWw+KSwgb3JpZ2luICg8bGl0ZXJhbD5vcmlnaW48L2xpdGVy YWw+KSwKKyAgICAgICAgY29uZmxpY3Rpbmcga2V5IGRhdGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJh bD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAgICAgIGltYWdlICg8bGl0ZXJhbD50dXBs ZTwvbGl0ZXJhbD4pLgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9k eT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb25m bGljdGluZyByb3cgZGF0YSwgaW5jbHVkaW5nIHRoZSBpbmNvbWluZyByZW1vdGUgcm93ICg8bGl0 ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+KQorICAgIGFuZCB0aGUgYXNzb2NpYXRlZCBsb2Nh bCBjb25mbGljdCBkZXRhaWxzICg8bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+KSwg aXMgc3RvcmVkIGluCisgICAgPHR5cGU+SlNPTjwvdHlwZT4gZm9ybWF0cyBmb3IgZmxleGlibGUg cXVlcnlpbmcgYW5kIGFuYWx5c2lzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0 MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1maWxlLWJhc2VkLWxvZ2dpbmciPgor ICAgPHRpdGxlPkZpbGUtYmFzZWQgbG9nZ2luZzwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBJZiA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0 LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRl cmFsPjwvbGluaz4KKyAgICBpcyBzZXQgdG8gPGxpdGVyYWw+bG9nPC9saXRlcmFsPiBvciA8bGl0 ZXJhbD5hbGw8L2xpdGVyYWw+IHRoZW4gY29uZmxpY3RzCisgICAgYXJlIGxvZ2dlZCB0byB0aGUg c2VydmVyIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29u ZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBs YWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9 PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJs ZT5bOiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IFssIC4uLiBdXS4KQEAgLTIxMzUsMTgyICsyMjU1LDE4NSBAQCBERVRBSUw6ICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsZWRfZXhwbGFuYXRpb248L3JlcGxhY2Vh YmxlPls6IDxyZQogICAgIDxsaXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHsoPHJl cGxhY2VhYmxlPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4uPC9vcHRp b25hbD4pPSg8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFs PiwgLi4uPC9vcHRpb25hbD4pIHwgZnVsbCA8b3B0aW9uYWw+KDxyZXBsYWNlYWJsZT5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4sIC4uLjwvb3B0aW9uYWw+KT08L29wdGlvbmFs Pig8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4u PC9vcHRpb25hbD4pfQogPC9zeW5vcHNpcz4KIAotICAgVGhlIGxvZyBwcm92aWRlcyB0aGUgZm9s bG93aW5nIGluZm9ybWF0aW9uOgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5 PgotICAgICA8dGVybT48bGl0ZXJhbD5MT0c8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgorICAgIFRoZSBsb2cgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyAg ICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVy YWw+TE9HPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxpdGVt aXplZGxpc3Q+CisgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgPHJlcGxhY2VhYmxlPnNjaGVtYW5hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGU+dGFi bGVuYW1lPC9yZXBsYWNlYWJsZT4KKyAgICAgICAgICBpZGVudGlmaWVzIHRoZSBsb2NhbCByZWxh dGlvbiBpbnZvbHZlZCBpbiB0aGUgY29uZmxpY3QuCisgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICA8cmVwbGFjZWFibGU+Y29uZmxpY3RfdHlwZTwvcmVwbGFjZWFibGU+IGlzIHRoZSB0 eXBlIG9mIGNvbmZsaWN0IHRoYXQgb2NjdXJyZWQKKyAgICAgICAgICAoZS5nLiwgPGxpdGVyYWw+ aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4sIDxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+ KS4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAg ICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0gICAgICAgICA8cmVwbGFjZWFibGU+c2No ZW1hbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZT50YWJsZW5hbWU8L3JlcGxhY2VhYmxl PgotICAgICAgICAgaWRlbnRpZmllcyB0aGUgbG9jYWwgcmVsYXRpb24gaW52b2x2ZWQgaW4gdGhl IGNvbmZsaWN0LgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxlZF9leHBsYW5hdGlvbjwvcmVwbGFjZWFibGU+IGluY2x1ZGVzCisgICAgICAgICAgdGhlIG9y aWdpbiwgdHJhbnNhY3Rpb24gSUQsIGFuZCBjb21taXQgdGltZXN0YW1wIG9mIHRoZSB0cmFuc2Fj dGlvbiB0aGF0CisgICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxl LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgIDxyZXBsYWNlYWJsZT5jb25mbGljdF90eXBl PC9yZXBsYWNlYWJsZT4gaXMgdGhlIHR5cGUgb2YgY29uZmxpY3QgdGhhdCBvY2N1cnJlZAotICAg ICAgICAgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51 cGRhdGVfZXhpc3RzPC9saXRlcmFsPikuCisgICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0 ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKKyAgICAg ICAgICByb3cgdGhhdCB2aW9sYXRlZCBhIHVuaXF1ZSBjb25zdHJhaW50IGZvcgorICAgICAgICAg IDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3Rz PC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IDxsaXRlcmFsPmxvY2FsIHJvdzwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgbG9jYWwg cm93IGlmIGl0cworICAgICAgICAgIG9yaWdpbiBkaWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cg Zm9yCisgICAgICAgICAgPGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPiBv ciA8bGl0ZXJhbD5kZWxldGVfb3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+CisgICAgICAgICAgY29u ZmxpY3RzLCBvciBpZiB0aGUga2V5IHZhbHVlIGNvbmZsaWN0cyB3aXRoIHRoZSByZW1vdGUgcm93 IGZvcgorICAgICAgICAgIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJh bD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxl X3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xpdGVyYWw+IHNlY3Rpb24gaW5j bHVkZXMgdGhlIG5ldyByb3cgZnJvbQorICAgICAgICAgIHRoZSByZW1vdGUgaW5zZXJ0IG9yIHVw ZGF0ZSBvcGVyYXRpb24gdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0LiBOb3RlIHRoYXQKKyAgICAg ICAgICBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgdGhlIGNvbHVtbiB2YWx1ZSBvZiB0aGUgbmV3 IHJvdyB3aWxsIGJlIG51bGwKKyAgICAgICAgICBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIGFu ZCB0b2FzdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgPGxpdGVyYWw+cmVw bGljYSBpZGVudGl0eTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgcmVwbGljYQorICAg ICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2VhcmNoIGZvciB0 aGUgZXhpc3RpbmcgbG9jYWwKKyAgICAgICAgICByb3cgdG8gYmUgdXBkYXRlZCBvciBkZWxldGVk LiBUaGlzIG1heSBpbmNsdWRlIHRoZSBmdWxsIHJvdyB2YWx1ZQorICAgICAgICAgIGlmIHRoZSBs b2NhbCByZWxhdGlvbiBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElDQSBJREVO VElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IGlzIHRoZSBjb2x1bW4gbmFtZS4KKyAgICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAorICAgICAgICAgIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHkgZnVsbDwvbGl0ZXJhbD4gY2FzZXMsIGNvbHVtbiBuYW1l cyBhcmUKKyAgICAgICAgICBsb2dnZWQgb25seSBpZiB0aGUgdXNlciBsYWNrcyB0aGUgcHJpdmls ZWdlIHRvIGFjY2VzcyBhbGwgY29sdW1ucyBvZgorICAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29s dW1uIG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgorICAg ICAgICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtbiB2YWx1ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFs dWU8L3JlcGxhY2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgorICAgICAgICAgIFRoZSBsYXJn ZSBjb2x1bW4gdmFsdWVzIGFyZSB0cnVuY2F0ZWQgdG8gNjQgYnl0ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3Vu aXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0LAorICAgICAgICAgIG11bHRpcGxlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRhaWxlZF9leHBsYW5hdGlvbjwvcmVwbGFj ZWFibGU+CisgICAgICAgICAgYW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxfdmFsdWVzPC9yZXBsYWNlYWJsZT4gbGluZXMKKyAgICAgICAgICB3aWxsIGJlIGdlbmVyYXRl ZCwgZWFjaCBkZXRhaWxpbmcgdGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKKyAg ICAgICAgICB3aXRoIGRpc3RpbmN0IHVuaXF1ZSBjb25zdHJhaW50cy4KICAgICAgICAgIDwvcGFy YT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3RpdGVt PgotICAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJh PgotICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxh bmF0aW9uPC9yZXBsYWNlYWJsZT4gaW5jbHVkZXMKLSAgICAgICAgIHRoZSBvcmlnaW4sIHRyYW5z YWN0aW9uIElELCBhbmQgY29tbWl0IHRpbWVzdGFtcCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdAot ICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxlLgotICAgICAgICA8 L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxw YXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRl cyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKLSAgICAgICAgIHJvdyB0aGF0IHZpb2xhdGVk IGEgdW5pcXVlIGNvbnN0cmFpbnQgZm9yCi0gICAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3Rz PC9saXRlcmFsPiwgPGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD4gb3IKLSAgICAgICAg IDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4K LSAgICAgICAgPC9wYXJhPgotICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgot ICAgICAgICA8cGFyYT4KLSAgICAgICAgIFRoZSA8bGl0ZXJhbD5sb2NhbCByb3c8L2xpdGVyYWw+ IHNlY3Rpb24gaW5jbHVkZXMgdGhlIGxvY2FsIHJvdyBpZiBpdHMKLSAgICAgICAgIG9yaWdpbiBk aWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cgZm9yCi0gICAgICAgICA8bGl0ZXJhbD51cGRhdGVf b3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmRlbGV0ZV9vcmlnaW5fZGlmZmVy czwvbGl0ZXJhbD4KLSAgICAgICAgIGNvbmZsaWN0cywgb3IgaWYgdGhlIGtleSB2YWx1ZSBjb25m bGljdHMgd2l0aCB0aGUgcmVtb3RlIHJvdyBmb3IKLSAgICAgICAgIDxsaXRlcmFsPmluc2VydF9l eGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgotICAg ICAgICAgPGxpdGVyYWw+bXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD4gY29uZmxp Y3RzLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0 ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xp dGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIG5ldyByb3cgZnJvbQotICAgICAgICAgdGhlIHJl bW90ZSBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbiB0aGF0IGNhdXNlZCB0aGUgY29uZmxpY3Qu IE5vdGUgdGhhdAotICAgICAgICAgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIHRoZSBjb2x1bW4g dmFsdWUgb2YgdGhlIG5ldyByb3cgd2lsbCBiZSBudWxsCi0gICAgICAgICBpZiB0aGUgdmFsdWUg aXMgdW5jaGFuZ2VkIGFuZCB0b2FzdGVkLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0 aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIHJl cGxpY2EKLSAgICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2Vh cmNoIGZvciB0aGUgZXhpc3RpbmcgbG9jYWwKLSAgICAgICAgIHJvdyB0byBiZSB1cGRhdGVkIG9y IGRlbGV0ZWQuIFRoaXMgbWF5IGluY2x1ZGUgdGhlIGZ1bGwgcm93IHZhbHVlCi0gICAgICAgICBp ZiB0aGUgbG9jYWwgcmVsYXRpb24gaXMgbWFya2VkIHdpdGgKLSAgICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElD QSBJREVOVElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCi0gICAgICAgIDwvcGFyYT4KLSAgICAg ICA8L2xpc3RpdGVtPgotICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAg ICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBpcyB0aGUgY29sdW1uIG5hbWUuCi0gICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAotICAgICAgICAgPGxp dGVyYWw+cmVwbGljYSBpZGVudGl0eSBmdWxsPC9saXRlcmFsPiBjYXNlcywgY29sdW1uIG5hbWVz IGFyZQotICAgICAgICAgbG9nZ2VkIG9ubHkgaWYgdGhlIHVzZXIgbGFja3MgdGhlIHByaXZpbGVn ZSB0byBhY2Nlc3MgYWxsIGNvbHVtbnMgb2YKLSAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29sdW1u IG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgotICAgICAg ICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uIHZhbHVlcy4KLSAgICAgICAgPC9wYXJhPgot ICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAg ICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFsdWU8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgotICAgICAgICAgVGhlIGxhcmdlIGNvbHVtbiB2 YWx1ZXMgYXJlIHRydW5jYXRlZCB0byA2NCBieXRlcy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAgICAgICAg IE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8 L2xpdGVyYWw+IGNvbmZsaWN0LAotICAgICAgICAgbXVsdGlwbGUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4KLSAgICAgICAg IGFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IGxpbmVzCi0gICAgICAgICB3aWxsIGJlIGdlbmVyYXRlZCwgZWFjaCBkZXRhaWxpbmcg dGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKLSAgICAgICAgIHdpdGggZGlzdGlu Y3QgdW5pcXVlCi0gICAgICAgICBjb25zdHJhaW50cy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgPC9saXN0aXRlbT4KLSAg ICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwvdmFyaWFibGVsaXN0PgotICA8L3BhcmE+CisgICAgIDwv dmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3NlY3Qy PgogCi0gIDxwYXJhPgotICAgTG9naWNhbCByZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJm b3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBvZiB0aGUgcm9sZQotICAgd2hpY2ggb3ducyB0aGUg c3Vic2NyaXB0aW9uLiAgUGVybWlzc2lvbnMgZmFpbHVyZXMgb24gdGFyZ2V0IHRhYmxlcyB3aWxs Ci0gICBjYXVzZSByZXBsaWNhdGlvbiBjb25mbGljdHMsIGFzIHdpbGwgZW5hYmxlZAotICAgPGxp bmsgbGlua2VuZD0iZGRsLXJvd3NlY3VyaXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9u IHRhcmdldCB0YWJsZXMKLSAgIHRoYXQgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBpcyBzdWJqZWN0 IHRvLCB3aXRob3V0IHJlZ2FyZCB0byB3aGV0aGVyIGFueQotICAgcG9saWN5IHdvdWxkIG9yZGlu YXJpbHkgcmVqZWN0IHRoZSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAotICAgPGNvbW1hbmQ+ VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgotICAgPGNvbW1h bmQ+VFJVTkNBVEU8L2NvbW1hbmQ+IHdoaWNoIGlzIGJlaW5nIHJlcGxpY2F0ZWQuICBUaGlzIHJl c3RyaWN0aW9uIG9uCi0gICByb3ctbGV2ZWwgc2VjdXJpdHkgbWF5IGJlIGxpZnRlZCBpbiBhIGZ1 dHVyZSB2ZXJzaW9uIG9mCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ LgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1u b3RlcyI+CisgICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgTG9naWNhbCBy ZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBv ZiB0aGUgcm9sZQorICAgIHdoaWNoIG93bnMgdGhlIHN1YnNjcmlwdGlvbi4gIFBlcm1pc3Npb25z IGZhaWx1cmVzIG9uIHRhcmdldCB0YWJsZXMgd2lsbAorICAgIGNhdXNlIHJlcGxpY2F0aW9uIGNv bmZsaWN0cywgYXMgd2lsbCBlbmFibGVkCisgICAgPGxpbmsgbGlua2VuZD0iZGRsLXJvd3NlY3Vy aXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9uIHRhcmdldCB0YWJsZXMKKyAgICB0aGF0 IHRoZSBzdWJzY3JpcHRpb24gb3duZXIgaXMgc3ViamVjdCB0bywgd2l0aG91dCByZWdhcmQgdG8g d2hldGhlciBhbnkKKyAgICBwb2xpY3kgd291bGQgb3JkaW5hcmlseSByZWplY3QgdGhlIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sCisgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNv bW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgorICAgIDxjb21tYW5kPlRSVU5DQVRFPC9jb21tYW5k PiB3aGljaCBpcyBiZWluZyByZXBsaWNhdGVkLiAgVGhpcyByZXN0cmljdGlvbiBvbgorICAgIHJv dy1sZXZlbCBzZWN1cml0eSBtYXkgYmUgbGlmdGVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YKKyAg ICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LgorICAgPC9wYXJhPgogCi0g IDxwYXJhPgotICAgQSBjb25mbGljdCB0aGF0IHByb2R1Y2VzIGFuIGVycm9yIHdpbGwgc3RvcCB0 aGUgcmVwbGljYXRpb247IGl0IG11c3QgYmUKLSAgIHJlc29sdmVkIG1hbnVhbGx5IGJ5IHRoZSB1 c2VyLiAgRGV0YWlscyBhYm91dCB0aGUgY29uZmxpY3QgY2FuIGJlIGZvdW5kIGluCi0gICB0aGUg c3Vic2NyaWJlcidzIHNlcnZlciBsb2cuCi0gIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEEgY29u ZmxpY3QgdGhhdCBwcm9kdWNlcyBhbiBlcnJvciB3aWxsIHN0b3AgdGhlIHJlcGxpY2F0aW9uOyBp dCBtdXN0IGJlCisgICAgcmVzb2x2ZWQgbWFudWFsbHkgYnkgdGhlIHVzZXIuICBEZXRhaWxzIGFi b3V0IHRoZSBjb25mbGljdCBjYW4gYmUgZm91bmQgaW4KKyAgICB0aGUgc3Vic2NyaWJlcidzIHNl cnZlciBsb2cuCisgICA8L3BhcmE+CiAKLSAgPHBhcmE+Ci0gICBUaGUgcmVzb2x1dGlvbiBjYW4g YmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNzaW9ucyBvbiB0aGUgc3Vi c2NyaWJlciBzbwotICAgdGhhdCBpdCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIHRoZSBpbmNvbWlu ZyBjaGFuZ2Ugb3IgYnkgc2tpcHBpbmcgdGhlCi0gICB0cmFuc2FjdGlvbiB0aGF0IGNvbmZsaWN0 cyB3aXRoIHRoZSBleGlzdGluZyBkYXRhLiAgV2hlbiBhIGNvbmZsaWN0IHByb2R1Y2VzCi0gICBh biBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQsIGFuZCB0aGUgbG9naWNhbCBy ZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAotICAgZW1pdCB0aGUgZm9sbG93aW5nIGtpbmQgb2YgbWVz c2FnZSB0byB0aGUgc3Vic2NyaWJlcidzIHNlcnZlciBsb2c6CisgICA8cGFyYT4KKyAgICBUaGUg cmVzb2x1dGlvbiBjYW4gYmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNz aW9ucyBvbiB0aGUgc3Vic2NyaWJlciBzbworICAgIHRoYXQgaXQgZG9lcyBub3QgY29uZmxpY3Qg d2l0aCB0aGUgaW5jb21pbmcgY2hhbmdlIG9yIGJ5IHNraXBwaW5nIHRoZQorICAgIHRyYW5zYWN0 aW9uIHRoYXQgY29uZmxpY3RzIHdpdGggdGhlIGV4aXN0aW5nIGRhdGEuICBXaGVuIGEgY29uZmxp Y3QgcHJvZHVjZXMKKyAgICBhbiBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQs IGFuZCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAorICAgIGVtaXQgdGhlIGZv bGxvd2luZyBraW5kIG9mIG1lc3NhZ2UgdG8gdGhlIHN1YnNjcmliZXIncyBzZXJ2ZXIgbG9nOgog PHNjcmVlbj4KIEVSUk9SOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy50 ZXN0IjogY29uZmxpY3Q9aW5zZXJ0X2V4aXN0cwogREVUQUlMOiAgQ291bGQgbm90IGFwcGx5IHJl bW90ZSBjaGFuZ2U6IHJlbW90ZSByb3cgKDEsICdyZW1vdGUnKS4KIEtleSBhbHJlYWR5IGV4aXN0 cyBpbiB1bmlxdWUgaW5kZXggInRlc3RfcGtleSIsIG1vZGlmaWVkIGxvY2FsbHkgaW4gdHJhbnNh Y3Rpb24gODAwIGF0IDIwMjYtMDEtMTYgMTg6MTU6MjUuNjUyNzU5KzA5OiBrZXkgKGMpPSgxKSwg bG9jYWwgcm93ICgxLCAnbG9jYWwnKS4KIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRh IGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSVCIgZm9yIHJl cGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiAicHVibGljLnRlc3QiIGluIHRyYW5zYWN0aW9uIDcy NSBmaW5pc2hlZCBhdCAwLzAxNEMwMzc4CiA8L3NjcmVlbj4KLSAgIFRoZSBMU04gb2YgdGhlIHRy YW5zYWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFp bnQgYW5kCi0gICB0aGUgcmVwbGljYXRpb24gb3JpZ2luIG5hbWUgY2FuIGJlIGZvdW5kIGZyb20g dGhlIHNlcnZlciBsb2cgKExTTiAwLzAxNEMwMzc4IGFuZAotICAgcmVwbGljYXRpb24gb3JpZ2lu IDxsaXRlcmFsPnBnXzE2Mzk1PC9saXRlcmFsPiBpbiB0aGUgYWJvdmUgY2FzZSkuICBUaGUKLSAg IHRyYW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5 IHVzaW5nCi0gICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNr aXAiPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0tJUDwvY29tbWFuZD48L2xpbms+ Ci0gICB3aXRoIHRoZSBmaW5pc2ggTFNOCi0gICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgotICAg aXMgY29tbWl0dGVkIG9yIHByZXBhcmVkIG9uIHRoZSBwdWJsaXNoZXIuICBBbHRlcm5hdGl2ZWx5 LCB0aGUgdHJhbnNhY3Rpb24gY2FuCi0gICBhbHNvIGJlIHNraXBwZWQgYnkgY2FsbGluZyB0aGUg PGxpbmsgbGlua2VuZD0icGctcmVwbGljYXRpb24tb3JpZ2luLWFkdmFuY2UiPgotICAgPGZ1bmN0 aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4gZnVu Y3Rpb24uCi0gICBCZWZvcmUgdXNpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIHN1YnNjcmlwdGlvbiBu ZWVkcyB0byBiZSBkaXNhYmxlZCB0ZW1wb3JhcmlseQotICAgZWl0aGVyIGJ5IDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtZGlzYWJsZSI+Ci0gICA8Y29tbWFuZD5B TFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwgdGhlCi0g ICBzdWJzY3JpcHRpb24gY2FuIGJlIHVzZWQgd2l0aCB0aGUKLSAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVy YWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xpbms+Ci0gICBvcHRpb24uIFRoZW4sIHlv dSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5jZSgpPC9mdW5j dGlvbj4KLSAgIGZ1bmN0aW9uIHdpdGggdGhlIDxwYXJhbWV0ZXI+bm9kZV9uYW1lPC9wYXJhbWV0 ZXI+IChpLmUuLCA8bGl0ZXJhbD5wZ18xNjM5NTwvbGl0ZXJhbD4pCi0gICBhbmQgdGhlIG5leHQg TFNOIG9mIHRoZSBmaW5pc2ggTFNOIChpLmUuLCAwLzAxNEMwMzc5KS4gIFRoZSBjdXJyZW50IHBv c2l0aW9uIG9mCi0gICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGluayBsaW5rZW5kPSJ2 aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgotICAgPHN0cnVjdG5hbWU+cGdfcmVw bGljYXRpb25fb3JpZ2luX3N0YXR1czwvc3RydWN0bmFtZT48L2xpbms+IHN5c3RlbSB2aWV3Lgot ICAgUGxlYXNlIG5vdGUgdGhhdCBza2lwcGluZyB0aGUgd2hvbGUgdHJhbnNhY3Rpb24gaW5jbHVk ZXMgc2tpcHBpbmcgY2hhbmdlcyB0aGF0Ci0gICBtaWdodCBub3QgdmlvbGF0ZSBhbnkgY29uc3Ry YWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVyCi0gICBpbmNvbnNpc3Rl bnQuCi0gICBUaGUgYWRkaXRpb25hbCBkZXRhaWxzIHJlZ2FyZGluZyBjb25mbGljdGluZyByb3dz LCBzdWNoIGFzIHRoZWlyIG9yaWdpbiBhbmQKLSAgIGNvbW1pdCB0aW1lc3RhbXAgY2FuIGJlIHNl ZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGluZSBvZiB0aGUKLSAgIGxvZy4g QnV0IG5vdGUgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4KLSAg IDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFj a19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KLSAgIGlzIGVuYWJsZWQgb24gdGhl IHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUKLSAg IHdoZXRoZXIgdG8gcmV0YWluIHRoZSBsb2NhbCBjaGFuZ2Ugb3IgYWRvcHQgdGhlIHJlbW90ZSBh bHRlcmF0aW9uLiBGb3IKLSAgIGluc3RhbmNlLCB0aGUgPGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PiBsaW5lIGluIHRoZSBhYm92ZSBsb2cgaW5kaWNhdGVzIHRoYXQKLSAgIHRoZSBleGlzdGluZyBy b3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNhbiBtYW51YWxseSBwZXJmb3JtIGEKLSAg IHJlbW90ZS1jaGFuZ2Utd2luLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXaGVuIHRoZQot ICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJl YW1pbmciPjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+Ci0gICBtb2RlIGlzIDxs aXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwgdGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5z YWN0aW9ucwotICAgbWF5IG5vdCBiZSBsb2dnZWQuIEluIHRoYXQgY2FzZSwgaXQgbWF5IGJlIG5l Y2Vzc2FyeSB0byBjaGFuZ2UgdGhlIHN0cmVhbWluZwotICAgbW9kZSB0byA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPiBhbmQgY2F1c2UgdGhlIHNhbWUKLSAg IGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUgZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0 aW9uIHdpbGwgYmUgd3JpdHRlbgotICAgdG8gdGhlIHNlcnZlciBsb2cuIEZvciB0aGUgdXNhZ2Ug b2YgZmluaXNoIExTTiwgcGxlYXNlIHJlZmVyIHRvIDxsaW5rCi0gICBsaW5rZW5kPSJzcWwtYWx0 ZXJzdWJzY3JpcHRpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4KLSAgIFNLSVA8 L2NvbW1hbmQ+PC9saW5rPi4KLSAgPC9wYXJhPgorICAgIFRoZSBMU04gb2YgdGhlIHRyYW5zYWN0 aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFpbnQgYW5k CisgICAgdGhlIHJlcGxpY2F0aW9uIG9yaWdpbiBuYW1lIGNhbiBiZSBmb3VuZCBmcm9tIHRoZSBz ZXJ2ZXIgbG9nIChMU04gMC8wMTRDMDM3OCBhbmQKKyAgICByZXBsaWNhdGlvbiBvcmlnaW4gPGxp dGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+IGluIHRoZSBhYm92ZSBjYXNlKS4gIFRoZQorICAgIHRy YW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5IHVz aW5nCisgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1za2lw Ij48Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFNLSVA8L2NvbW1hbmQ+PC9saW5rPgor ICAgIHdpdGggdGhlIGZpbmlzaCBMU04KKyAgICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgorICAg IGlzIGNvbW1pdHRlZCBvciBwcmVwYXJlZCBvbiB0aGUgcHVibGlzaGVyLiAgQWx0ZXJuYXRpdmVs eSwgdGhlIHRyYW5zYWN0aW9uIGNhbgorICAgIGFsc28gYmUgc2tpcHBlZCBieSBjYWxsaW5nIHRo ZSA8bGluayBsaW5rZW5kPSJwZy1yZXBsaWNhdGlvbi1vcmlnaW4tYWR2YW5jZSI+CisgICAgPGZ1 bmN0aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4g ZnVuY3Rpb24uCisgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSBzdWJzY3JpcHRp b24gbmVlZHMgdG8gYmUgZGlzYWJsZWQgdGVtcG9yYXJpbHkKKyAgICBlaXRoZXIgYnkgPGxpbmsg bGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1kaXNhYmxlIj4KKyAgICA8Y29t bWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwg dGhlCisgICAgc3Vic2NyaXB0aW9uIGNhbiBiZSB1c2VkIHdpdGggdGhlCisgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9y Ij48bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4KKyAgICBvcHRpb24u IFRoZW4sIHlvdSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5j ZSgpPC9mdW5jdGlvbj4KKyAgICBmdW5jdGlvbiB3aXRoIHRoZSA8cGFyYW1ldGVyPm5vZGVfbmFt ZTwvcGFyYW1ldGVyPiAoaS5lLiwgPGxpdGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+KQorICAgIGFu ZCB0aGUgbmV4dCBMU04gb2YgdGhlIGZpbmlzaCBMU04gKGkuZS4sIDAvMDE0QzAzNzkpLiAgVGhl IGN1cnJlbnQgcG9zaXRpb24gb2YKKyAgICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGlu ayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgorICAgIDxzdHJ1 Y3RuYW1lPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXM8L3N0cnVjdG5hbWU+PC9saW5rPiBz eXN0ZW0gdmlldy4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHNraXBwaW5nIHRoZSB3aG9sZSB0cmFu c2FjdGlvbiBpbmNsdWRlcyBza2lwcGluZyBjaGFuZ2VzIHRoYXQKKyAgICBtaWdodCBub3Qgdmlv bGF0ZSBhbnkgY29uc3RyYWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVy CisgICAgaW5jb25zaXN0ZW50LgorICAgIFRoZSBhZGRpdGlvbmFsIGRldGFpbHMgcmVnYXJkaW5n IGNvbmZsaWN0aW5nIHJvd3MsIHN1Y2ggYXMgdGhlaXIgb3JpZ2luIGFuZAorICAgIGNvbW1pdCB0 aW1lc3RhbXAgY2FuIGJlIHNlZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGlu ZSBvZiB0aGUKKyAgICBsb2cuIEJ1dCBub3RlIHRoYXQgdGhpcyBpbmZvcm1hdGlvbiBpcyBvbmx5 IGF2YWlsYWJsZSB3aGVuCisgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1l c3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgor ICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZv cm1hdGlvbiB0byBkZWNpZGUKKyAgICB3aGV0aGVyIHRvIHJldGFpbiB0aGUgbG9jYWwgY2hhbmdl IG9yIGFkb3B0IHRoZSByZW1vdGUgYWx0ZXJhdGlvbi4gRm9yCisgICAgaW5zdGFuY2UsIHRoZSA8 bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+IGxpbmUgaW4gdGhlIGFib3ZlIGxvZyBpbmRpY2F0ZXMg dGhhdAorICAgIHRoZSBleGlzdGluZyByb3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNh biBtYW51YWxseSBwZXJmb3JtIGEKKyAgICByZW1vdGUtY2hhbmdlLXdpbi4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgV2hlbiB0aGUKKyAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXN0cmVhbWluZyI+PGxpdGVyYWw+c3RyZWFtaW5nPC9s aXRlcmFsPjwvbGluaz4KKyAgICBtb2RlIGlzIDxsaXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwg dGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5zYWN0aW9ucworICAgIG1heSBub3QgYmUgbG9n Z2VkLiBJbiB0aGF0IGNhc2UsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBzdHJl YW1pbmcKKyAgICBtb2RlIHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5vZmY8 L2xpdGVyYWw+IGFuZCBjYXVzZSB0aGUgc2FtZQorICAgIGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUg ZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0aW9uIHdpbGwgYmUgd3JpdHRlbgorICAg IHRvIHRoZSBzZXJ2ZXIgbG9nLiBGb3IgdGhlIHVzYWdlIG9mIGZpbmlzaCBMU04sIHBsZWFzZSBy ZWZlciB0byA8bGluaworICAgIGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbiI+PGNvbW1h bmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLgorICAgIFNLSVA8L2NvbW1hbmQ+PC9saW5rPi4KKyAg IDwvcGFyYT4KKyAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJsb2dpY2FsLXJl cGxpY2F0aW9uLXJlc3RyaWN0aW9ucyI+CkBAIC0yNDE1LDYgKzI1MzgsMTQgQEAgQ09OVEVYVDog IHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUi IGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRlbnRpdHkgZGVmaW5lZCBmb3Ig aXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAgPGxpc3RpdGVtPgorICAgIDxw YXJhPgorICAgICBDb25mbGljdCBsb2cgdGFibGVzIChzZWUgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxs aXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IHBhcmFtZXRl cikKKyAgICAgYXJlIG5ldmVyIHB1Ymxpc2hlZCwgZXZlbiB3aGVuIHVzaW5nIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPiBpbiBhCisgICAgIHB1YmxpY2F0aW9uLgorICAgIDwvcGFy YT4KKyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGU0ZjBiNmIxNmM3Li4xM2I0 MTNkMTQyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y OTMsOCArMjkzLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFs PmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNl PC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2Rl YWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRl cmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNl aXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxfcmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xp bms+LgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50aW9uX2R1cmF0 aW9uPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNlaXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxf cmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xpbms+LCBhbmQKKyAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3Rp bmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5r Pi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1 aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogCkBAIC0zNTIsNiArMzUzLDE0 IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdfY29u ZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVhdGVkIHRvIHJldGFpbgogICAg ICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwgd2lsbCBiZSBkcm9wcGVkLgog ICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHRoZSA8bGluayBsaW5rZW5k PSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5h dGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4K KyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAgIGF1dG9tYXRpY2FsbHkgY3Jl YXRlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBDb252ZXJzZWx5LCBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9nZ2luZyB0 byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBjb25mbGljdCBsb2cKKyAgICAgIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bAppbmRleCAwN2Q1YjFiZDc3Yy4uNTI3ZjVhYjg3NGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNjEsNiArMjYxLDU3IEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9y ZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+KTwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lm aWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxpc3Q+Cisg ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxs aXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkIGluIHRo ZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Iu IFNlZQorICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtZmlsZS1iYXNlZC1sb2dnaW5nIi8+CisgICAgICAgICAgICAgZm9yIGRldGFpbHMuCisg ICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBzdHJ1Y3R1cmVk IHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9z dWJpZF8mbHQ7c3ViaWQmZ3Q7PC9saXRlcmFsPgorICAgICAgICAgICAgIGluIHRoZSA8bGl0ZXJh bD5wZ19jb25mbGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeQorICAg ICAgICAgICAgIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcyBvZiBjb25mbGljdHMuIFNlZQorICAgICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3QtdGFibGUt YmFzZWQtbG9nZ2luZyIvPgorICAgICAgICAgICAgIGZvciBkZXRhaWxzLgorICAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgICAgPGNhdXRpb24+CisgICAgICAgICAgICAgPHBhcmE+CisgICAg ICAgICAgICAgIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUg bGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAg ICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBpcyBkcm9wcGVkLCBvciBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+LCB0 aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3JkZWQgY29uZmxpY3QgZGF0YSBhcmUKKyAgICAgICAg ICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5IGRlbGV0ZWQ8L2VtcGhhc2lzPi4KKyAgICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIElmIGNvbmZs aWN0IGhpc3RvcnkgbWF5IGJlIG5lZWRlZCBsYXRlciwgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9n CisgICAgICAgICAgICAgIHRhYmxlIGJlZm9yZSBpdCBnZXRzIHJlbW92ZWQuCisgICAgICAgICAg ICAgPC9wYXJhPgorICAgICAgICAgICAgPC9jYXV0aW9uPgorICAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg ICA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIGNvbmZsaWN0IGRldGFpbHMgdG8gYm90 aCBkZXN0aW5hdGlvbnMKKyAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+IGFuZCA8 bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvcHkt ZGF0YSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KTwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi41My4wCgo= --000000000000768f830653bc69ca Content-Type: application/octet-stream; name="v47-0004-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v47-0004-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq54pjos3 RnJvbSBhYmZmM2MxZDM1ZDVjOTJhZjdkZjE2MjM3NTU5OTJjYzdiZTY5OTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBKdW4gMjAyNiAxMjo0Mjo0MCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjQ3IDQvNV0g QWRkIGNvbmZsaWN0IGxvZyB0YWJsZSBpbmZvcm1hdGlvbiB0byBkZXNjcmliZQogc3Vic2NyaXB0 aW9uIG91dHB1dAoKRGlzcGxheSB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUgYXMg YSBmb290ZXIgaW4gXGRScysKb3V0cHV0IHdoZW4gY29uZmxpY3QgbG9nZ2luZyB0byB0YWJsZS9h bGwgaXMgZW5hYmxlZCBmb3IgYQpzdWJzY3JpcHRpb24uCgpQcmV2aW91c2x5LCBzdWJzY3JpcHRp b25zIHdlcmUgZGlzcGxheWVkIHVzaW5nIGEgc2luZ2xlIHRhYnVsYXIKb3V0cHV0IGZvcm1hdC4g U2luY2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBpbmZvcm1hdGlvbiBpcyBzcGVjaWZpYwp0byBl YWNoIHN1YnNjcmlwdGlvbiBhbmQgaXMgYmV0dGVyIHN1aXRlZCBhcyBhdXhpbGlhcnkgaW5mb3Jt YXRpb24sCmNoYW5nZSB0aGUgb3V0cHV0IHRvIGRpc3BsYXkgZWFjaCBzdWJzY3JpcHRpb24gaW5k aXZpZHVhbGx5IGluIGEKcm93LXdpc2UgdGFibGUgZm9ybWF0IGFuZCBzaG93IHRoZSBjb25mbGlj dCBsb2cgdGFibGUgYXMgYSBmb290ZXIKd2hlbiBhcHBsaWNhYmxlLgoKVGhpcyBhcHByb2FjaCB3 YXMgY2hvc2VuIGJhc2VkIG9uIHN1Z2dlc3Rpb25zIGF0OgpodHRwczovL3d3dy5wb3N0Z3Jlc3Fs Lm9yZy9tZXNzYWdlLWlkL0NBQTRlSzFLZEtxS2thVHFjajNpbjZlaERfaGc2b09hQ0ZfLUpzVmZk OE42blM4b1Y5ZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAg ICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAg ICAgICAgICAgICAgICAgfCA0MDQgKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmluL3BzcWwv ZGVzY3JpYmUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCB8IDE3NiArKysrLS0tLS0KIDQgZmlsZXMgY2hhbmdl ZCwgNDIxIGluc2VydGlvbnMoKyksIDE2OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCAwMWI4ZjEx YWFkZC4uNzc3ZDA1NTMyNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysr IGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtMTIyMCw3ICsxMjIwLDEwIEBAIGV4ZWNfY29t bWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25z dCBjaGFyICpjbWQpCiAJCQkJCQkJc3VjY2VzcyA9IGxpc3RQdWJsaWNhdGlvbnMocGF0dGVybik7 CiAJCQkJCQlicmVhazsKIAkJCQkJY2FzZSAncyc6Ci0JCQkJCQlzdWNjZXNzID0gZGVzY3JpYmVT dWJzY3JpcHRpb25zKHBhdHRlcm4sIHNob3dfdmVyYm9zZSk7CisJCQkJCQlpZiAoc2hvd192ZXJi b3NlKQorCQkJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVN1YnNjcmlwdGlvbnMocGF0dGVybik7CisJ CQkJCQllbHNlCisJCQkJCQkJc3VjY2VzcyA9IGxpc3RTdWJzY3JpcHRpb25zKHBhdHRlcm4pOwog CQkJCQkJYnJlYWs7CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQlzdGF0dXMgPSBQU1FMX0NNRF9VTktO T1dOOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCBlMTQ0OTY1NGY5Ni4uM2JkMWRmY2MzYWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0y Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZWZh dWx0X2FjbF9kLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2VfZC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvY19kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhf ZWxlbWVudF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9kLmgiCkBAIC03 MDgxLDE5ICs3MDgyLDE3IEBAIGVycm9yX3JldHVybjoKIAogLyoKICAqIFxkUnMKLSAqIERlc2Ny aWJlcyBzdWJzY3JpcHRpb25zLgorICogTGlzdHMgc3Vic2NyaXB0aW9ucy4KICAqCiAgKiBUYWtl cyBhbiBvcHRpb25hbCByZWdleHAgdG8gc2VsZWN0IHBhcnRpY3VsYXIgc3Vic2NyaXB0aW9ucwog ICovCiBib29sCi1kZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQorbGlzdFN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIHsKIAlQ UUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15 b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10g PSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotCWZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3Qg Ym9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsK IAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTcxMDgsMTAxICs3MTA3LDIw NiBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKIAogCXByaW50ZlBRRXhwQnVmZmVyKCZidWYs ICIvKiAlcyAqL1xuIiwgXygiR2V0IG1hdGNoaW5nIHN1YnNjcmlwdGlvbnMiKSk7CisKKwkvKiBP bmx5IGRpc3BsYXkgc3Vic2NyaXB0aW9ucyBpbiBjdXJyZW50IGRhdGFiYXNlLiAqLwogCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCSAgIlNFTEVDVCBzdWJuYW1lIEFTIFwiJXNcIlxuIgog CQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wi XG4iCiAJCQkJCSAgIiwgIHN1YmVuYWJsZWQgQVMgXCIlc1wiXG4iCi0JCQkJCSAgIiwgIHN1YnB1 YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJCQkJCSAgIiwgIHN1YnB1YmxpY2F0aW9ucyBBUyBc IiVzXCJcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvblxuIgorCQkJ CQkgICJXSEVSRSBzdWJkYmlkID0gKFNFTEVDVCBvaWRcbiIKKwkJCQkJICAiICAgICAgICAgICAg ICAgICBGUk9NIHBnX2NhdGFsb2cucGdfZGF0YWJhc2VcbiIKKwkJCQkJICAiICAgICAgICAgICAg ICAgICBXSEVSRSBkYXRuYW1lID0gcGdfY2F0YWxvZy5jdXJyZW50X2RhdGFiYXNlKCkpIiwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJFbmFibGVkIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJQ dWJsaWNhdGlvbiIpKTsKIAotCWlmICh2ZXJib3NlKQorCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0 dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJTlVMTCwgInN1Ym5hbWUi LCBOVUxMLAorCQkJCQkJCQlOVUxMLAorCQkJCQkJCQlOVUxMLCAxKSkKIAl7Ci0JCS8qIEJpbmFy eSBtb2RlIGFuZCBzdHJlYW1pbmcgYXJlIG9ubHkgc3VwcG9ydGVkIGluIHYxNCBhbmQgaGlnaGVy ICovCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE0MDAwMCkKLQkJewotCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1YmJpbmFyeSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQly ZXR1cm4gZmFsc2U7CisJfQogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiLCAoQ0FTRSBzdWJzdHJlYW1cbiIK LQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT0ZG KSAiIFRIRU4gJ29mZidcbiIKLQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9H SUNBTFJFUF9TVFJFQU1fT04pICIgVEhFTiAnb24nXG4iCi0JCQkJCQkJCSAgIiAgICBXSEVOICIg Q3BwQXNTdHJpbmcyKExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSAiIFRIRU4gJ3BhcmFsbGVs J1xuIgotCQkJCQkJCQkgICIgICBFTkQpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIlN0cmVhbWluZyIpKTsKLQkJCWVsc2UKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAotCQkJCQkJCQkgICIsIHN1YnN0cmVhbSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTdHJlYW1pbmciKSk7Ci0JCX0KKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi T1JERVIgQlkgMTsiKTsKIAotCQkvKiBUd29fcGhhc2UgYW5kIGRpc2FibGVfb25fZXJyb3IgYXJl IG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGlnaGVyICovCi0JCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE1MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ0 d29waGFzZXN0YXRlIEFTIFwiJXNcIlxuIgotCQkJCQkJCSAgIiwgc3ViZGlzYWJsZW9uZXJyIEFT IFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAot CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOworCXJlcyA9IFBTUUxl eGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJl dHVybiBmYWxzZTsKIAotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIgotCQkJ CQkJCSAgIiwgc3VicGFzc3dvcmRyZXF1aXJlZCBBUyBcIiVzXCJcbiIKLQkJCQkJCQkgICIsIHN1 YnJ1bmFzb3duZXIgQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJPcmlnaW4i KSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKLQkJCQkJCQkg IGdldHRleHRfbm9vcCgiUnVuIGFzIG93bmVyPyIpKTsKKwlteW9wdC50aXRsZSA9IF8oIkxpc3Qg b2Ygc3Vic2NyaXB0aW9ucyIpOworCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCW15 b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJbXlvcHQubl90cmFu c2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKIAotCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxNzAwMDApCisJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVy eUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJUFFjbGVhcihyZXMpOworCisJcmV0dXJu IHRydWU7Cit9CisKKy8qCisgKiBcZFJzKworICogRGVzY3JpYmVzIHN1YnNjcmlwdGlvbnMuCisg KgorICogVGFrZXMgYW4gb3B0aW9uYWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNj cmlwdGlvbnMKKyAqLworYm9vbAorZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4pCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlpbnQJCQlpOworCVBHcmVzdWx0ICAg KnJlczsKKwlpbnQJCQluY29sczsKKwlpbnQJCQlucm93cyA9IDE7CisKKwlQUUV4cEJ1ZmZlckRh dGEgdGl0bGU7CisJcHJpbnRUYWJsZUNvbnRlbnQgY29udDsKKworCWlmIChwc2V0LnN2ZXJzaW9u IDwgMTAwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJU aGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbnMuIiwK KwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJ CQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQor CisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8q ICVzICovXG4iLCBfKCJHZXQgbWF0Y2hpbmcgc3Vic2NyaXB0aW9ucyIpKTsKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgb2lkLCBzdWJuYW1lIEFTIFwiJXNcIlxuIgor CQkJCQkgICIsICAoU0VMRUNUIG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0g IiBDcHBBc1N0cmluZzIoUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKSAiKSAgQVMgIFwiJXNcIlxuIgor CQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wi XG4iCisJCQkJCSAgIiwgIHN1YmVuYWJsZWQgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YnB1 YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGljdF9zY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJFbmFibGVkIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpKTsKKworCS8qCisJICogb2lkLCBzdWJuYW1lIGFuZCBj b25mbGljdF9zY2hlbWEgY29sdW1ucyBhcmUgaW50ZXJuYWwgYW5kIG5vdCBkaXNwbGF5ZWQsCisJ ICogc28gb25seSAzIHZpc2libGUgY29sdW1ucy4KKwkgKi8KKwluY29scyA9IDM7CisKKwkvKiBC aW5hcnkgbW9kZSBhbmQgc3RyZWFtaW5nIGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTQgYW5kIGhp Z2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE0MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YmJpbmFyeSBBUyBcIiVzXCJcbiIsCisJCQkJCQkg IGdldHRleHRfbm9vcCgiQmluYXJ5IikpOworCQluY29scysrOworCisJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE2MDAwMCkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBz dWJmYWlsb3ZlciBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVy IikpOwotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCXsKKwkJCQkJCQkgICIsIChD QVNFIHN1YnN0cmVhbVxuIgorCQkJCQkJCSAgIiAgICBXSEVOICIgQ3BwQXNTdHJpbmcyKExPR0lD QUxSRVBfU1RSRUFNX09GRikgIiBUSEVOICdvZmYnXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBD cHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT04pICIgVEhFTiAnb24nXG4iCisJCQkJCQkJ ICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpICIg VEhFTiAncGFyYWxsZWwnXG4iCisJCQkJCQkJICAiICAgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJ CQkJICBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpKTsKKwkJZWxzZQogCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIChzZWxlY3Qgc3J2bmFtZSBmcm9tIHBnX2ZvcmVpZ25f c2VydmVyIHdoZXJlIG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgiU2VydmVyIikpOworCQkJCQkJCSAgIiwgc3Vic3RyZWFtIEFTIFwiJXNcIlxuIiwK KwkJCQkJCQkgIGdldHRleHRfbm9vcCgiU3RyZWFtaW5nIikpOwogCi0JCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3VicmV0YWluZGVhZHR1cGxlcyBBUyBcIiVzXCJcbiIs Ci0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGFpbiBkZWFkIHR1cGxlcyIpKTsKKwkJbmNvbHMr KzsKKwl9CiAKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJtYXhy ZXRlbnRpb24gQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIikpOworCS8qIFR3b19waGFzZSBhbmQgZGlzYWJsZV9vbl9lcnJvciBhcmUg b25seSBzdXBwb3J0ZWQgaW4gdjE1IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBzdWJ0 d29waGFzZXN0YXRlIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJkaXNhYmxlb25lcnIgQVMg XCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQiKSwKKwkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOworCQluY29scyArPSAyOwor CX0KIAotCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1YnJldGVudGlv bmFjdGl2ZSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGVudGlvbiBh Y3RpdmUiKSk7Ci0JCX0KKwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCisJeworCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBzdWJvcmlnaW4gQVMgXCIlc1wiXG4iCisJ CQkJCQkgICIsIHN1YnBhc3N3b3JkcmVxdWlyZWQgQVMgXCIlc1wiXG4iCisJCQkJCQkgICIsIHN1 YnJ1bmFzb3duZXIgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIk9yaWdpbiIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiUnVuIGFzIG93bmVyPyIpKTsKKwkJbmNvbHMgKz0gMzsKKwl9CiAKKwlpZiAo cHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJewogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAot CQkJCQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKLQkJCQkJCSAgIiwgIHN1YmNv bm5pbmZvIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTeW5jaHJvbm91cyBj b21taXQiKSwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpKTsKKwkJCQkJCSAgIiwg c3ViZmFpbG92ZXIgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVy IikpOworCQluY29scysrOworCX0KIAotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0J CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3Vid2FscmN2dGltZW91dCBB UyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJlY2VpdmVyIHRpbWVvdXQiKSk7 CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKKwkJCQkJCSAgIiwgKHNlbGVjdCBzcnZuYW1lIGZyb20gcGdfZm9yZWlnbl9zZXJ2ZXIg d2hlcmUgb2lkPXN1YnNlcnZlcikgQVMgXCIlc1wiXG4iCisJCQkJCQkgICIsIHN1YnJldGFpbmRl YWR0dXBsZXMgQVMgXCIlc1wiXG4iCisJCQkJCQkgICIsIHN1Ym1heHJldGVudGlvbiBBUyBcIiVz XCJcbiIKKwkJCQkJCSAgIiwgc3VicmV0ZW50aW9uYWN0aXZlIEFTIFwiJXNcIlxuIiwKKwkJCQkJ CSAgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJSZXRhaW4g ZGVhZCB0dXBsZXMiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0ZW50aW9uIGFjdGl2ZSIpKTsKKwkJbmNv bHMgKz0gNDsKKwl9CiAKLQkJLyogU2tpcCBMU04gaXMgb25seSBzdXBwb3J0ZWQgaW4gdjE1IGFu ZCBoaWdoZXIgKi8KLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQotCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1YnNraXBsc24gQVMgXCIlc1wiXG4iLAotCQkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJTa2lwIExTTiIpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkgICIsICBzdWJzeW5jY29tbWl0IEFTIFwiJXNcIlxuIgorCQkJCQkgICIsICBzdWJj b25uaW5mbyBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTeW5jaHJvbm91cyBj b21taXQiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbm5pbmZvIikpOworCW5jb2xzICs9IDI7 CiAKKwlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJewogCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAotCQkJCQkJICAiLCAgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdf c3Vic2NyaXB0aW9uJykgQVMgXCIlc1wiXG4iLAotCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlc2Ny aXB0aW9uIikpOworCQkJCQkJICAiLCBzdWJ3YWxyY3Z0aW1lb3V0IEFTIFwiJXNcIlxuIiwKKwkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJSZWNlaXZlciB0aW1lb3V0IikpOworCQluY29scysrOwogCX0K IAorCS8qIFNraXAgTFNOIGlzIG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGlnaGVyICovCisJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJCSAgIiwgc3Vic2tpcGxzbiBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRf bm9vcCgiU2tpcCBMU04iKSk7CisJCW5jb2xzKys7CisJfQorCisJLyogQ29uZmxpY3QgbG9nIGRl c3RpbmF0aW9uIGlzIHN1cHBvcnRlZCBpbiB2MTkgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE5MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkg ICIsIHN1YmNvbmZsaWN0bG9nZGVzdCBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9v cCgiQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIikpOworCQluY29scysrOworCX0KKworCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIiwgIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9u KG9pZCwgJ3BnX3N1YnNjcmlwdGlvbicpIEFTIFwiJXNcIlxuIiwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIkRlc2NyaXB0aW9uIikpOworCW5jb2xzKys7CisKIAkvKiBPbmx5IGRpc3BsYXkgc3Vic2Ny aXB0aW9ucyBpbiBjdXJyZW50IGRhdGFiYXNlLiAqLwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsCiAJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb25cbiIKQEAgLTcyMTks MjAgKzczMjMsMTYyIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJu LCBib29sIHZlcmJvc2UpCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi T1JERVIgQlkgc3VibmFtZTsiKTsKIAogCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKIAl0ZXJt UFFFeHBCdWZmZXIoJmJ1Zik7CiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0 LnRpdGxlID0gXygiTGlzdCBvZiBzdWJzY3JpcHRpb25zIik7Ci0JbXlvcHQudHJhbnNsYXRlX2hl YWRlciA9IHRydWU7Ci0JbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1u czsKLQlteW9wdC5uX3RyYW5zbGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVt bnMpOworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwKQorCXsKKwkJaWYgKCFwc2V0LnF1aWV0KQor CQl7CisJCQlpZiAocGF0dGVybikKKwkJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkg c3Vic2NyaXB0aW9uIG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJCSBwYXR0ZXJuKTsKKwkJCWVsc2UK KwkJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc3Vic2NyaXB0aW9ucy4iKTsKKwkJ fQogCi0JcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0 LmxvZ2ZpbGUpOworCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCVBRY2xlYXIocmVzKTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMocmVzKTsgaSsr KQorCXsKKwkJY29uc3QgY2hhcglhbGlnbiA9ICdsJzsKKwkJT2lkCQkJc3ViaWQgPSBhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIDApKTsKKwkJY2hhcgkgICAqc3VibmFtZSA9IFBRZ2V0dmFsdWUo cmVzLCBpLCAxKTsKKwkJY2hhcgkgICAqY29uZmxpY3Rfc2NoZW1hID0gUFFnZXR2YWx1ZShyZXMs IGksIDIpOworCQlpbnQJCQljdXJyZW50X2NvbCA9IDM7CisJCWNoYXIJICAgKmxvZ2Rlc3Q7CisJ CXByaW50VGFibGVPcHQgbXlvcHQgPSBwc2V0LnBvcHQudG9wdDsKKworCQlpbml0UFFFeHBCdWZm ZXIoJnRpdGxlKTsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTdWJzY3JpcHRpb24g JXMiKSwgc3VibmFtZSk7CisJCXByaW50VGFibGVJbml0KCZjb250LCAmbXlvcHQsIHRpdGxlLmRh dGEsIG5jb2xzLCBucm93cyk7CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4 dF9ub29wKCJPd25lciIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRIZWFkZXIoJmNv bnQsIGdldHRleHRfbm9vcCgiRW5hYmxlZCIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUHVibGljYXRpb24iKSwgdHJ1ZSwgYWxpZ24p OwogCisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVu dF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdl dHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFi bGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNl LCBmYWxzZSk7CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl7CisJCQlwcmlu dFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpLCB0cnVlLCBhbGln bik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJl bnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250 LCBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwg ZmFsc2UpOworCQl9CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQl7CisJCQlw cmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQi KSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUo cmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFk ZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIiksIHRydWUsIGFs aWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNjAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiT3JpZ2luIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJCXBy aW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQi KSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUo cmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFk ZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSdW4gYXMgb3duZXI/IiksIHRydWUsIGFsaWdu KTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVu dF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx NzAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgi RmFpbG92ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBR Z2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJ CWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRl cigmY29udCwgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRU YWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFs c2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29w KCJSZXRhaW4gZGVhZCB0dXBsZXMiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENl bGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNl KTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIiksCisJCQkJCQkJCXRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVB ZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBm YWxzZSk7CisKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUmV0 ZW50aW9uIGFjdGl2ZSIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29u dCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCQl9 CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTeW5jaHJvbm91 cyBjb21taXQiKSwgdHJ1ZSwgYWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFn ZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCXByaW50 VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQ29ubmluZm8iKSwgdHJ1ZSwgYWxp Z24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJl bnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAw MCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSZWNl aXZlciB0aW1lb3V0IiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0K KworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRI ZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSwgdHJ1ZSwgYWxpZ24pOworCQkJ cHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsr KSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkK KwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJDb25mbGlj dCBsb2cgZGVzdGluYXRpb24iKSwKKwkJCQkJCQkJdHJ1ZSwgYWxpZ24pOworCisJCQlsb2dkZXN0 ID0gUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspOworCisJCQlwcmludFRhYmxlQWRk Q2VsbCgmY29udCwgbG9nZGVzdCwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSwgdHJ1ZSwgYWxpZ24p OworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRf Y29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkK KwkJeworCQkJaWYgKHN0cmNtcChsb2dkZXN0LCAidGFibGUiKSA9PSAwIHx8IHN0cmNtcChsb2dk ZXN0LCAiYWxsIikgPT0gMCkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBzaXplIGFjY291bnRz IGZvciBzY2hlbWEgbmFtZSAoTkFNRURBVEFMRU4pLCByZWxhdGlvbgorCQkJCSAqIG5hbWUgKE5B TUVEQVRBTEVOKSwgc2VwYXJhdG9yICcuJyBhbmQgbnVsbCB0ZXJtaW5hdG9yLgorCQkJCSAqLwor CQkJCWNoYXIJCWNvbmZsaWN0bG9ndGFibGVbTkFNRURBVEFMRU4gKyBOQU1FREFUQUxFTiArIDJd OworCisJCQkJc25wcmludGYoY29uZmxpY3Rsb2d0YWJsZSwKKwkJCQkJCSBzaXplb2YoY29uZmxp Y3Rsb2d0YWJsZSksCisJCQkJCQkgIiVzLiIgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVfRk1U LAorCQkJCQkJIGNvbmZsaWN0X3NjaGVtYSwgc3ViaWQpOworCisJCQkJcHJpbnRUYWJsZUFkZEZv b3RlcigmY29udCwgXygiQ29uZmxpY3QgbG9nIHRhYmxlOiIpKTsKKwkJCQlwcmludFRhYmxlQWRk Rm9vdGVyKCZjb250LAorCQkJCQkJCQkJcHNwcmludGYoIiAgICBcIiVzXCIiLCBjb25mbGljdGxv Z3RhYmxlKSk7CisJCQl9CisJCX0KKworCQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91 dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisJCXByaW50VGFibGVDbGVhbnVwKCZjb250KTsKKwor CQl0ZXJtUFFFeHBCdWZmZXIoJnRpdGxlKTsKKwl9CisKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7 CiAJUFFjbGVhcihyZXMpOwogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCA0N2ZhZTVjZWFm Yi4uMTVjNmM2ODUzMjMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0xMjYsNyArMTI2LDEwIEBAIGJvb2wJCWxpc3RQ dWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybik7CiBib29sCQlkZXNjcmliZVB1YmxpY2F0 aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKTsKIAogLyogXGRScyAqLwotYm9vbAkJZGVzY3JpYmVT dWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7Citib29sCQls aXN0U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKTsKKworLyogXGRScysgKi8KK2Jv b2wJCWRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKTsKIAogLyogXGRB YyAqLwogZXh0ZXJuIGJvb2wgbGlzdE9wZXJhdG9yQ2xhc3Nlcyhjb25zdCBjaGFyICphY2Nlc3Nf bWV0aG9kX3BhdHRlcm4sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1 YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5v dXQKaW5kZXggOWE2OTNlZDAxMGEuLjllNDRmZmNjZmQxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xMzksMTggKzEzOSwxOCBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMu CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlv biAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViNAorICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwg UmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBh Y3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlv biB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEg cm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBTRVQgKG9yaWdpbiA9 IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNj cmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViNAor ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2Vy dmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVu dGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0 aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8 IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIzOwpAQCAtMjE1 LDEwICsyMTUsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNU SU9OICdmb29iYXInOwogRVJST1I6ICBpbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDog bWlzc2luZyAiPSIgYWZ0ZXIgImZvb2JhciIgaW4gY29ubmVjdGlvbiBpbmZvIHN0cmluZwogCiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVz dHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAg ICAgICAgICAgICAgICAgICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9OIHRlc3RwdWIyLCB0ZXN0 cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMjI3LDEwICsyMjcsMTAgQEAgQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9ICduZXduYW1lJyk7 CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAocGFzc3dvcmRfcmVxdWly ZWQgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAocnVu X2FzX293bmVyID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAg UHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAg ICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0 c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRp b24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29u ZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAg ICB8IHQgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAg ICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgdGVzdCBzdWJzY3Jp cHRpb24KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KHBhc3N3b3JkX3JlcXVpcmVkID0gdHJ1ZSk7CkBAIC0yNDYsMTAgKzI0NiwxMCBAQCBFUlJPUjog IHVucmVjb2duaXplZCBzdWJzY3JpcHRpb24gcGFyYW1ldGVyOiAiY3JlYXRlX3Nsb3QiCiAtLSBv awogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8xMjM0 NScpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAg ICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2Ny aXB0aW9uICAgIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3Rw dWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAxMjM0NSB8IHRlc3Qg c3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2 ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50 aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0 aW5hdGlvbiB8ICAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAxMjM0 NSB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cp CiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBAIC0yNTgsMTAgKzI1OCwxMCBAQCBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBFUlJPUjogIGlu dmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91 dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAg ICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiBy ZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJl dGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEg ICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0 ZXN0IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiBCRUdJTjsKQEAgLTI5NywxMCArMjk3LDEwIEBA IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAod2FsX3JlY2VpdmVy X3RpbWVvdXQgPSAnODBzJyk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2Zv byBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0gJ2Zvb2JhcicpOwogRVJST1I6ICBpbnZhbGlk IHZhbHVlIGZvciBwYXJhbWV0ZXIgIndhbF9yZWNlaXZlcl90aW1lb3V0IjogImZvb2JhciIKIFxk UnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgICBOYW1lICAgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAg fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlw dGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIy LHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCA4MHMgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8 IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWJfZm9vCisg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAg ICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDgwcyAgICAgICAgICAgICAgfCAw LzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgdGVzdCBzdWJzY3JpcHRpb24K ICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sgdG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAgLTMy OSwxOSArMzI5LDE5IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5F Q1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2Ny aXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRp YXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9u IHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlv biB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERl c2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1Ygor ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2Vy dmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVu dGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0 aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8 IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoYmlu YXJ5ID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNs b3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24g Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAg ICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRh aW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2 ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJl Y2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg RGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAg ICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cp CiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTM1MywyNyArMzUzLDI3 IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBj cmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0 aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJs ZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNo IHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAg IHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERl c2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQog CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gcGFy YWxsZWwpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRp bWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAw ICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAw LzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBmYWxzZSk7CiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8 IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAw MDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogLS0gZmFpbCAtIHB1 YmxpY2F0aW9uIGFscmVhZHkgZXhpc3RzCkBAIC0zODgsMTAgKzM4OCwxMCBAQCBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1 YjIgV0lUSCAocmVmcgogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVC TElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBFUlJP UjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMSIgaXMgYWxyZWFkeSBpbiBzdWJzY3JpcHRpb24gInJl Z3Jlc3NfdGVzdHN1YiIKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgICAg IFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNr aXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAg fCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAg ICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxp Y3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog LS0gZmFpbCAtIHB1YmxpY2F0aW9uIHVzZWQgbW9yZSB0aGFuIG9uY2UKQEAgLTQwNiwxMCArNDA2 LDEwIEBAIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIzIiBpcyBub3QgaW4gc3Vic2NyaXB0 aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiAtLSBvayAtIGRlbGV0ZSBwdWJsaWNhdGlvbnMKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMSwg dGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNO ICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBv ZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVz dHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAg ICAgICB8IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBA IC00NDUsMTkgKzQ0NSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAg fCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg LTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3Rz dWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cg ZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAg ICAgfCAKICgxIHJvdykKIAogLS0gd2UgY2FuIGFsdGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFz ZSBlbmFibGVkCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFt aW5nID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNl cnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2 ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp OwpAQCAtNDY3LDEwICs0NjcsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6 ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAg VG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVw bGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vi c2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190 ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ4MywxOCArNDgzLDE4IEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpOwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCB0ICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJz Y3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tp cCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCB0ICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTUwNywxMCArNTA3 LDEwIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2Ri bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdh cyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxp Y2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVu YWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZy ZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9u IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CkBAIC01MjQsMTkgKzUyNCwxOSBAQCBOT1RJQ0U6ICBtYXhfcmV0ZW50aW9uX2R1cmF0 aW9uIGlzIGluZWZmZWN0aXZlIHdoZW4gcmV0YWluX2RlYWRfdHVwbGVzIGlzIGRpc2FibAogV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIDEwMDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDEwMDAgICAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChtYXhfcmV0ZW50aW9uX2R1cmF0aW9uID0gMCk7CiBcZFJzKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91 dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlv biByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAg fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAg ICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwotLSAKMi41My4wCgo= --000000000000768f830653bc69ca--