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.94.2) (envelope-from ) id 1tJEpK-001ggg-7h for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Dec 2024 16:35:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tJEpH-007UwQ-E2 for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Dec 2024 16:35:40 +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.94.2) (envelope-from ) id 1tJAFm-0062sa-HG for pgsql-hackers@lists.postgresql.org; Thu, 05 Dec 2024 11:42:44 +0000 Received: from mail-vs1-xe2c.google.com ([2607:f8b0:4864:20::e2c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tJAFW-001AUJ-8i for pgsql-hackers@postgresql.org; Thu, 05 Dec 2024 11:42:42 +0000 Received: by mail-vs1-xe2c.google.com with SMTP id ada2fe7eead31-4afc2592fdeso103240137.1 for ; Thu, 05 Dec 2024 03:42:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733398945; x=1734003745; darn=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=bINvv16o/tbETzSq/3dvdLeCDcr6UJfviOnBvyuPlf4=; b=mtf/mviOU51Cbn6GyLf0Wjw7hdHElYe9Fuu7KMEN/RLArz7n0P27kLJ1G0s48WdXN7 lmxrWcpirI0uEpQDNXPdmyW2jBWRC5LygbC4Gi1XG4hWj7W34kesnFpkA3OA9vDBFdNy fsCT0hr044N/oiFNzh4Qo37HOAHv/Qg10y23W7CZp0gFaUOTXYCq3HahRReGSh7AhTUY LbRT6Iqd3Ul5KgcXYm3cIgaRAKWTUg7YXZA85m+XfHX6D3Cm1axl0X8bzTxaYul/vlzo hObmyU7ufJRuV05WH1DD/c3NIXLE2hzQzo5TLudaSFlkV3Nyjbp/mC6mMsrA+1mwlJqX y4kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733398945; x=1734003745; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bINvv16o/tbETzSq/3dvdLeCDcr6UJfviOnBvyuPlf4=; b=vT2JOOqSyMp9CCej7OZHhpl4bcHndGp1JAnCw+oWHtK17RhPtyHr6tgY51GvgHhu56 g0x2GnYa1/83G0gzRVjd2/TieILaqWMp3OEYhJ99LjYZ7d3gKZrv2AEtLhRB6Kd2SaWt rfMjNrK7TkU1xupCffWzFeYJdFpXfd2IRyL9+NA1OeMlRVNbG6J9xBHP5SP93Djl2rKn m6Jllez+rWqky70TSatysWkQEMF6LYXeDJ5pw213KfRtdlBlQSNEtpC3ZgpANJAEaKRg 22PXNdLY7D0xcb2TNdwFY8hWIMRqjB/I2vMqOPg7vkVOYxH7PAbqLJCjUG33QWJtmope CUiA== X-Forwarded-Encrypted: i=1; AJvYcCVhuHSzTy5ZhUC4VfMx91TSfZg9aZOeTkCfCRCbkbmiSMK1YuRlAsvE6/Pt345wM8EjktS7EMKp91MVJ0+m@postgresql.org X-Gm-Message-State: AOJu0Yy3X/G9w1mcz1dOrHq/nAj1stU2nI9pBwcJLIrdM5WA5CizelQF /0Ac3g9Xv45dd7WnYshKIgRlXn8yw2r4hl3BZNnfxAzCetYF67RLS/tHLdxG+5JLAN+uVYlxsKW bODuqPmSX3C4SmVTogeBlvui9r10= X-Gm-Gg: ASbGnctYcI5N9Wslbt4bZUV7+MC1pG5hRc0fK4MnIX8GmxJDeM9k9uPT6nKHpPS/dM3 kP9Tys7rFpWdxBtWxWdbsll0pxBPqD6s= X-Google-Smtp-Source: AGHT+IGxRNy9g2tG1EqHpkf0zxn+SggRSyvB1Udi5Soe82ZwUefbAhTaktHS4BoY52puusA7W6+MYAQrTZFCo3huHVQ= X-Received: by 2002:a05:6102:26c6:b0:4af:63eb:4972 with SMTP id ada2fe7eead31-4afa52bd6aamr9286973137.21.1733398944666; Thu, 05 Dec 2024 03:42:24 -0800 (PST) MIME-Version: 1.0 References: <04c0abe2-e9c5-4ffc-97b2-bedc1e3cd178@eisentraut.org> <3b190de8-910a-4091-82f9-e98cf562d832@postgresfriends.org> In-Reply-To: From: Ashutosh Bapat Date: Thu, 5 Dec 2024 17:12:11 +0530 Message-ID: Subject: Re: SQL Property Graph Queries (SQL/PGQ) To: Vik Fearing Cc: Ajay Pal , Imran Zaheer , Peter Eisentraut , pgsql-hackers Content-Type: multipart/mixed; boundary="0000000000005b1525062884640f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005b1525062884640f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sorry, I forgot to attach patches. PFA the patches. On Thu, Dec 5, 2024 at 4:38=E2=80=AFPM Ashutosh Bapat wrote: > > On Fri, Nov 22, 2024 at 7:29=E2=80=AFPM Ashutosh Bapat > wrote: > > > > On Tue, Nov 19, 2024 at 10:08=E2=80=AFPM Vik Fearing wrote: > > > > > > > > > On 05/11/2024 16:41, Ashutosh Bapat wrote: > > > > > > On Wed, Aug 28, 2024 at 3:48=E2=80=AFPM Ashutosh Bapat > > > wrote: > > > > > > Patches 0001 - 0006 are same as the previous set. > > > 0007 - fixes all the problems you reported till now and also the one = I > > > found. The commit message describes the fixes in detail. > > > > > > Here's an updated patchset based on the latest HEAD. > > > > > > > > > > > > I have been looking at this patchset from a user's and standards' per= spective and I am quite pleased with what I am seeing for the most part. I= have not been looking much at the code itself, although I do plan on revie= wing some of the code in the future. > > > > Thanks for looking at the patches. > > > > > > > > > > > There are a few things that stick out to me. > > > > > > > > > 1. > > > I don't see any way to view the structure of of a property graph. Fo= r example: > > > > > > > > > postgres=3D# CREATE TABLE objects (id INTEGER, color VARCHAR, shape V= ARCHAR, size INTEGER); > > > CREATE TABLE > > > postgres=3D# CREATE PROPERTY GRAPH propgraph VERTEX TABLES (objects K= EY (id) PROPERTIES ALL COLUMNS); > > > CREATE PROPERTY GRAPH > > > postgres=3D# \dG propgraph > > > List of relations > > > Schema | Name | Type | Owner > > > -------------------+-----------+----------------+------------- > > > graph_table_tests | propgraph | property graph | vik.fearing > > > (1 row) > > > > > > postgres=3D# \d propgraph > > > Property graph "graph_table_tests.propgraph" > > > Column | Type > > > --------+------ > > > > > > I don't really know what to do with that. > > > > Yes. It is on my TODO list. IMO we should just print the first line > > property graph "...". There are no predefined columns in this > > relation. And somehow redirect them to use \dG instead. > > \d+ propgraph prints the definition of property graph. I find \dG > similar to \di which doesn't print the structure of an index. Instead > \d+ prints it. > > In the attached patch series I have added patch 0008 to remove > unnecessary header > > > Column | Type > > > --------+------ > > It still prints an extra line but I haven't found a way to eliminate > it. Hence 0008 is WIP. I have listed TODOs in the commit message of > that patch. > > > > > > > > > > > 2. > > > There is a missing newline in the \? help of psql. > > > HELP0(" \\dFt[+] [PATTERN] list text search templates\n"); > > > HELP0(" \\dg[S+] [PATTERN] list roles\n"); > > > HELP0(" \\dG[S+] [PATTERN] list property graphs"); <--- > > > HELP0(" \\di[S+] [PATTERN] list indexes\n"); > > > HELP0(" \\dl[+] list large objects, same as \\lo= _list\n"); > > > > > > > Will fix that in the next set. > > Done. The fix is part of 0001 now. > > > > > > > > > > > I will continue to review this feature from the user's perspective. = Thank you for working on it, I am very excited to get this in. > > > > here's patchset rebased on 792b2c7e6d926e61e8ff3b33d3e22d7d74e7a437 > with conflicts in rowsecurity.sql/out fixed. > > > > > 0001 - 0005 are the same as the previous set. > > 0007 - has RLS tests. It is the same as 0006 from the previous patch se= t. > > This is same as the previous patchset. > > > > > 0006 - is new addressing collation and edge-vertex link qual creation. > > This patch adds code to store collation and typmod to > > pg_propgraph_property catalog and propagate it to property graph > > references in GRAPH_TABLE. Collation is used by > > assign_query_collations and assign_expr_collations to propagate > > collation up the query and expression tree respectively. typmod is > > used to report typmod of property reference from exprTypemod(). > > > > While finishing code to create vertex-edge link quals, I found that we > > need to find and store the operator to be used for key matching in > > those quals. I think we have to do something similar to what primary > > key handling code does - find the equality operator when creating edge > > descriptor and store it in pg_propgraph_element. I am not sure whether > > we should add a dependency on the operator. I will look into this > > next. > > 0006 in the attached patch series completes this work. Now we find the > equality operators to be used for vertex-edge quals and save it in > pg_propgraph_element catalog and also add a dependency between the > edge element and the equality operators. > > 0008 - has WIP fix for \d and \d+ > > -- > Best Wishes, > Ashutosh Bapat --=20 Best Wishes, Ashutosh Bapat --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0004-Fixes-following-issues-20241205.patch" Content-Disposition: attachment; filename="0004-Fixes-following-issues-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yquq3 RnJvbSBmYjA4MmM1OWEyYTg0YTIxMzAwZWZhOTMwM2Y5OTk3NjJkOWQ5ZjU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAyMSBBdWcgMjAyNCAxOTo0MTo0OCArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggNC84XSBGaXhlcyBmb2xsb3dpbmcgaXNzdWVzCgoxLiBBIHF1ZXJ5IGNvbnRhaW5p bmcgR1JBUEhfVEFCTEUgcmVmZXJlbmNlIHVzZWQgaW4gYSBVREYgY2F1c2VzIHNlZ21lbnRhdGlv bgpmYXVsdDogRWFybGllciB2ZXJzaW9uIG9mIHBhdGNoZXMgdXNlZCBwX3Bvc3RfY29sdW1ucmVm X2hvb2sgdG8gdHJhbnNmb3JtIGEKcHJvcGVydHkgcmVmZXJlbmNlIGluIGEgR1JBUEhfVEFCTEUg cmVmZXJlbmNlLiBCdXQgcmVsYXRlZCBob29rcyBhbmQgbWVtYmVycyBpbgpQYXJzZVN0YXRlIGFy ZSB1c2VkIGJ5IG90aGVyIG5vbi1jb3JlIG1vZHVsZXMgbGlrZSBwbHBnc3FsLiBJZiBhIHF1ZXJ5 IGluc2lkZSBhCnBscGdzcWwgZnVuY3Rpb24gaGFzIEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBpbiBp dCB0aGUgdXNhZ2Ugb2YgdGhlc2UgaG9va3MKY29uZmxpY3RzLiBTaW5jZSBHUkFQSF9UQUJMRSBp cyBhIGNvcmUgZmVhdHVyZSwgaXQncyBiZXR0ZXIgdG8gaW50cm9kdWNlIGEgbmV3Cm1lbWJlciBQ YXJzZVN0YXRlOjpwX2dyYXBoX3RhYmxlX3BzdGF0ZSwgb2YgdHlwZSBHcmFwaFRhYmxlUGFyc2VT dGF0ZSwgdG8gaG9sZAp0aGUgbmFtZXNwYWNlIGZvciB0aGUgR1JBUEhfVEFCTEUgcmVmZXJlbmNl IGJlaW5nIHRyYW5zZm9ybWVkLiBJdCBpcyBpbmxpbmUKd2l0aCBQYXJzZVN0YXRlOjpwX3BhcmVu dF9jdGUgb3IgUGFyc2VTdGF0ZTo6cF9xdWVyeUVudiB3aGljaCBoYXZlIHNpbWlsYXIKcHVycG9z ZXMuIFdpdGggdGhhdCBjaGFuZ2UgZGVmaW5pdGlvbiBvZiBHcmFwaFRhYmxlUGFyc2VTdGF0ZSBp cyBtb3ZlZCB0bwpwYXJzZW5vZGVzLmggd2hlcmUgQ29tbW9uVGFibGVFeHByIGFuZCBRdWVyeUVu dmlyb25tZW50IGFyZSBhbHNvIGRlZmluZWQuIFRoZQpmdW5jdGlvbiB1c2luZyB0aGUgUGFyc2VT dGF0ZTo6cF9ncmFwaF90YWJsZV9wc3RhdGUgaXMgcmVuYW1lZCB0bwp0cmFuc2Zvcm1HcmFwaFRh YmxlUHJvcGVydHlSZWYoKSB0byBiZSBpbmxpbmUgd2l0aCBuYW1lcyBvZiBvdGhlciBzaW1pbGFy CmZ1bmN0aW9ucy4gVGhpcyBjaGFuZ2UgYWxzbyBhbGxvd3MgR3JhcGhUYWJsZVBhcnNlU3RhdGUg YXJndW1lbnQgdG8gYmUgcmVtb3ZlZApmcm9tIGEgZmV3IGZ1bmN0aW9ucy4KCjIuIEVSUk9SOiAg dW5yZWNvZ25pemVkIGxvY2sgbW9kZTogMCB2aWEgU2NhblF1ZXJ5Rm9yTG9ja3MoKTogQWZ0ZXIg Zml4aW5nIHRoZQpmaXJzdCBidWcsIEkgcmFuIGludG8gYWJvdmUgZXJyb3IuIEFuIFJURV9HUkFQ SF9UQUJMRSBpcyBjb252ZXJ0ZWQgdG8KUlRFX1NVQlFVRVJZIGFmdGVyIHRyYW5zZm9ybWF0aW9u IHdpdGggcmVsaWQgPSBPSUQgb2YgdGhlIHByb3BlcnR5IGdyYXBoIGJlaW5nCnJlZmVyZW5jZWQg aW4gR1JBUEhfVEFCTEUgY2xhdXNlLiBGdW5jdGlvbnMgY2FsbGVkIGZyb20gU2NhblF1ZXJ5Rm9y TG9ja3MoKQp0YWtlIGxvY2tzIHdoZW4gUmFuZ2VUYmxSZWY6OnJlbGlkIGlzIHZhbGlkOyB3aGlj aCBpcyBkZXNpcmFibGUgc2luY2Ugd2Ugd2FudAp0byBsb2NrIHRoZSBwcm9wZXJ0eSBncmFwaCB3 aGlsZSBpdCdzIGJlaW5nIHVzZWQuIFNvIHNldApSYW5nZVRibFJlZjo6cmVsbG9ja21vZGUgdG8g QWNjZXNzU2hhcmVMb2NrLgoKMy4gUHJvaGliaXRzIHN1YnF1ZXJ5IHdpdGhpbiBHUkFQSF9UQUJM RSByZWZlcmVuY2U6IEluIG9yZGVyIHRvIHN1cHBvcnQgaXQgdGhlCmhhc1N1YmxpbmtzIGZsYWcg bmVlZHMgdG8gYmUgdHJhbnNmZXJyZWQgdG8gdGhlIHF1ZXJpZXMgcHJvZHVjZWQgYXMgYSByZXN1 bHQgb2YKcmV3cml0aW5nIGdyYXBoIHRhYmxlIFJURS4gSXQgbmVlZHMgYSBiaXQgb2YgY29kZSBh bmQgc29tZSBub24tdHJpdmlhbCB0ZXN0aW5nLgpTbyBub3QgZG9uZSByaWdodCBub3cuCgo0LiBT dXBwb3J0IGVkZ2UgcGF0dGVybnMgaW4gYW55IGRpcmVjdGlvbjogU3VjaCBlZGdlIHBhdHRlcm5z IHNhdGlzZnkgZWRnZXMgaW4KZWl0aGVyIGRpcmVjdGlvbi4KCkFkZGl0aW9uYWwgY2hhbmdlcwox LiBUZXN0IGZvciBhIGpvaW4gYmV0d2VlbiBHUkFQSF9UQUJMRSBhbmQgYSByZWd1bGFyIHRhYmxl LgoyLiBDaGFuZ2VkIGEgZmV3IGxvb3BzIG92ZXIgbGlzdHMgdG8gdXNlIGZvcmVhY2hfbm9kZSBy ZWR1Y2luZyBhbmQgc2ltcGxpZnlpbmcKY29kZSBhIGJpdC4KMy4gSW1wcm92ZWQgY29tbWVudHMu CgpBdXRob3I6IEFzaHV0b3NoIEJhcGF0ClJlcG9ydGVkIEJ5OiBBamF5IFBhbAotLS0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgIHwgIDMwICsrKystCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICB8ICAgNSArCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jICAgICB8ICA0MyArKystLS0tCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9yZXdyaXRl L3Jld3JpdGVHcmFwaFRhYmxlLmMgICB8IDE0OCArKysrKysrKysrKysrLS0tLS0tLS0tCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oICAgICB8ICAxMSArLQogc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgfCAgIDUgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ncmFwaF90YWJsZS5vdXQgfCAgODEgKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9ncmFwaF90YWJsZS5zcWwgICAgICB8ICA0NSArKysrKysrCiAxMCBmaWxlcyBjaGFuZ2Vk LCAyNzcgaW5zZXJ0aW9ucygrKSwgOTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Ns YXVzZS5jCmluZGV4IDA0YmY1NjQ3ZjkwLi4wYWUwZTgxZjA4MSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jbGF1c2UuYwpAQCAtOTE1LDYgKzkxNSw3IEBAIHRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlR3JhcGhUYWJsZSAqcmd0KQogCUxpc3QJICAgKmNvbG5h bWVzID0gTklMOwogCUxpc3RDZWxsICAgKmxjOwogCWludAkJCXJlc25vID0gMDsKKwlib29sCQlz YXZlZF9oYXNTdWJsaW5rczsKIAogCXJlbCA9IHBhcnNlck9wZW5UYWJsZShwc3RhdGUsIHJndC0+ Z3JhcGhfbmFtZSwgQWNjZXNzU2hhcmVMb2NrKTsKIAlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQg IT0gUkVMS0lORF9QUk9QR1JBUEgpCkBAIC05MjgsMTIgKzkyOSwyMSBAQCB0cmFuc2Zvcm1SYW5n ZUdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZUdyYXBoVGFibGUgKnJndCkKIAog CWdwc3RhdGUtPmdyYXBoaWQgPSBncmFwaGlkOwogCi0JcHN0YXRlLT5wX3Bvc3RfY29sdW1ucmVm X2hvb2sgPSBncmFwaF90YWJsZV9wcm9wZXJ0eV9yZWZlcmVuY2U7Ci0JcHN0YXRlLT5wX3JlZl9o b29rX3N0YXRlID0gZ3BzdGF0ZTsKKwkvKgorCSAqIFRoZSBzeW50YXggZG9lcyBub3QgYWxsb3cg bmVzdGVkIEdSQVBIX1RBQkxFIGFuZCB0aGlzIGZ1bmN0aW9uCisJICogcHJvaGliaXRzIHN1YnF1 ZXJ5IHdpdGhpbiBHUkFQSF9UQUJMRS4gVGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lCisJICogR1JB UEhfVEFCTEUgYmVpbmcgdHJhbnNmb3JtZWQgYXQgYSB0aW1lLgorCSAqLworCUFzc2VydCghcHN0 YXRlLT5wX2dyYXBoX3RhYmxlX3BzdGF0ZSk7CisJcHN0YXRlLT5wX2dyYXBoX3RhYmxlX3BzdGF0 ZSA9IGdwc3RhdGU7CisKIAlBc3NlcnQoIXBzdGF0ZS0+cF9sYXRlcmFsX2FjdGl2ZSk7CiAJcHN0 YXRlLT5wX2xhdGVyYWxfYWN0aXZlID0gdHJ1ZTsKIAotCWdwID0gdHJhbnNmb3JtR3JhcGhQYXR0 ZXJuKHBzdGF0ZSwgZ3BzdGF0ZSwgcmd0LT5ncmFwaF9wYXR0ZXJuKTsKKwlzYXZlZF9oYXNTdWJs aW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlwc3RhdGUtPnBfaGFzU3ViTGlua3MgPSBm YWxzZTsKKworCWdwID0gdHJhbnNmb3JtR3JhcGhQYXR0ZXJuKHBzdGF0ZSwgcmd0LT5ncmFwaF9w YXR0ZXJuKTsKIAogCWZvcmVhY2gobGMsIHJndC0+Y29sdW1ucykKIAl7CkBAIC05NjgsMTAgKzk3 OCwyMCBAQCB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5n ZUdyYXBoVGFibGUgKnJndCkKIAogCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKIAotCXBzdGF0 ZS0+cF9wcmVfY29sdW1ucmVmX2hvb2sgPSBOVUxMOwotCXBzdGF0ZS0+cF9yZWZfaG9va19zdGF0 ZSA9IE5VTEw7CisJcHN0YXRlLT5wX2dyYXBoX3RhYmxlX3BzdGF0ZSA9IE5VTEw7CiAJcHN0YXRl LT5wX2xhdGVyYWxfYWN0aXZlID0gZmFsc2U7CiAKKwkvKgorCSAqIElmIHdlIHN1cHBvcnQgc3Vi cXVlcmllcyB3aXRoaW4gR1JBUEhfVEFCTEUsIHRob3NlIG5lZWQgdG8gYmUKKwkgKiBwcm9wYWdh dGVkIHRvIHRoZSBxdWVyaWVzIHJlc3VsdGluZyBmcm9tIHJld3JpdGluZyBncmFwaCB0YWJsZSBS VEUuIFdlCisJICogZG9uJ3QgZG8gdGhhdCByaWdodCBub3csIGhlbmNlIHByb2hpYml0IGl0IGZv ciBub3cuCisJICovCisJaWYgKHBzdGF0ZS0+cF9oYXNTdWJMaW5rcykKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVy cm1zZygic3VicXVlcmllcyB3aXRoaW4gR1JBUEhfVEFCTEUgcmVmZXJlbmNlIGFyZSBub3Qgc3Vw cG9ydGVkIikpKTsKKwlwc3RhdGUtPnBfaGFzU3ViTGlua3MgPSBzYXZlZF9oYXNTdWJsaW5rczsK KwogCXJldHVybiBhZGRSYW5nZVRhYmxlRW50cnlGb3JHcmFwaFRhYmxlKHBzdGF0ZSwgZ3JhcGhp ZCwgY2FzdE5vZGUoR3JhcGhQYXR0ZXJuLCBncCksIGNvbHVtbnMsIGNvbG5hbWVzLCByZ3QtPmFs aWFzLCBmYWxzZSwgdHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDg0MTVk NjMyNDgzLi40MDQxNWVhMmRiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0yOSw2ICsy OSw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvbGxhdGUuaCIKICNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9mdW5jLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfb3Bl ci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZV90YXJnZXQuaCIKQEAgLTgyMyw2ICs4MjQsMTAgQEAgdHJhbnNmb3JtQ29sdW1uUmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQkJYnJlYWs7CiAJfQogCisJ LyogVHJ5IGl0IGFzIGEgZ3JhcGggdGFibGUgcHJvcGVydHkgcmVmZXJlbmNlLiAqLworCWlmIChu b2RlID09IE5VTEwpCisJCW5vZGUgPSB0cmFuc2Zvcm1HcmFwaFRhYmxlUHJvcGVydHlSZWYocHN0 YXRlLCBjcmVmKTsKKwogCS8qCiAJICogTm93IGdpdmUgdGhlIFBvc3RQYXJzZUNvbHVtblJlZkhv b2ssIGlmIGFueSwgYSBjaGFuY2UuICBXZSBwYXNzIHRoZQogCSAqIHRyYW5zbGF0aW9uLXNvLWZh ciBzbyB0aGF0IGl0IGNhbiB0aHJvdyBhbiBlcnJvciBpZiBpdCB3aXNoZXMgaW4gdGhlCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYwppbmRleCAxYTk3MTY4NzAyNC4uYjA4ODMwNmI1 YjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYwpAQCAtMzMsMTIgKzMzLDE1 IEBACiAKIAogLyoKLSAqIFJlc29sdmUgYSBwcm9wZXJ0eSByZWZlcmVuY2UuCisgKiBUcmFuc2Zv cm0gYSBwcm9wZXJ0eSByZWZlcmVuY2UuCiAgKi8KIE5vZGUgKgotZ3JhcGhfdGFibGVfcHJvcGVy dHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLCBOb2RlICp2 YXIpCit0cmFuc2Zvcm1HcmFwaFRhYmxlUHJvcGVydHlSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBD b2x1bW5SZWYgKmNyZWYpCiB7Ci0JR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUgPSBwc3Rh dGUtPnBfcmVmX2hvb2tfc3RhdGU7CisJR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUgPSBw c3RhdGUtPnBfZ3JhcGhfdGFibGVfcHN0YXRlOworCisJaWYgKCFncHN0YXRlKQorCQlyZXR1cm4g TlVMTDsKIAogCWlmIChsaXN0X2xlbmd0aChjcmVmLT5maWVsZHMpID09IDIpCiAJewpAQCAtMTQ0 LDggKzE0NywxMCBAQCB0cmFuc2Zvcm1MYWJlbEV4cHIoR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdw c3RhdGUsIE5vZGUgKmxhYmVsZXhwcikKICAqIFRyYW5zZm9ybSBhIEdyYXBoRWxlbWVudFBhdHRl cm4uCiAgKi8KIHN0YXRpYyBOb2RlICoKLXRyYW5zZm9ybUdyYXBoRWxlbWVudFBhdHRlcm4oUGFy c2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgR3JhcGhFbGVt ZW50UGF0dGVybiAqZ2VwKQordHJhbnNmb3JtR3JhcGhFbGVtZW50UGF0dGVybihQYXJzZVN0YXRl ICpwc3RhdGUsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCkKIHsKKwlHcmFwaFRhYmxlUGFyc2VT dGF0ZSAqZ3BzdGF0ZSA9IHBzdGF0ZS0+cF9ncmFwaF90YWJsZV9wc3RhdGU7CisKIAlpZiAoZ2Vw LT52YXJpYWJsZSkKIAkJZ3BzdGF0ZS0+dmFyaWFibGVzID0gbGFwcGVuZChncHN0YXRlLT52YXJp YWJsZXMsIG1ha2VTdHJpbmcocHN0cmR1cChnZXAtPnZhcmlhYmxlKSkpOwogCkBAIC0xNjEsMTcg KzE2NiwxMyBAQCB0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsCiAgKiBUcmFuc2Zvcm0gYSBwYXRoIHRl cm0gKGxpc3Qgb2YgR3JhcGhFbGVtZW50UGF0dGVybidzKS4KICAqLwogc3RhdGljIE5vZGUgKgot dHJhbnNmb3JtUGF0aFRlcm0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0 ZSAqZ3BzdGF0ZSwgTGlzdCAqcGF0aF90ZXJtKQordHJhbnNmb3JtUGF0aFRlcm0oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICpwYXRoX3Rlcm0pCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwot CUxpc3RDZWxsICAgKmxjOwotCi0JZm9yZWFjaChsYywgcGF0aF90ZXJtKQotCXsKLQkJTm9kZQkg ICAqbiA9IHRyYW5zZm9ybUdyYXBoRWxlbWVudFBhdHRlcm4ocHN0YXRlLCBncHN0YXRlLCBsZmly c3Rfbm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuLCBsYykpOwogCi0JCXJlc3VsdCA9IGxhcHBlbmQo cmVzdWx0LCBuKTsKLQl9CisJZm9yZWFjaF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGdlcCwg cGF0aF90ZXJtKQorCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwKKwkJCQkJCSB0cmFuc2Zvcm1H cmFwaEVsZW1lbnRQYXR0ZXJuKHBzdGF0ZSwgZ2VwKSk7CiAKIAlyZXR1cm4gKE5vZGUgKikgcmVz dWx0OwogfQpAQCAtMTgwLDE3ICsxODEsMTIgQEAgdHJhbnNmb3JtUGF0aFRlcm0oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlzdCAqcGF0aF8KICAq IFRyYW5zZm9ybSBhIHBhdGggcGF0dGVybiBsaXN0IChsaXN0IG9mIHBhdGggdGVybXMpLgogICov CiBzdGF0aWMgTm9kZSAqCi10cmFuc2Zvcm1QYXRoUGF0dGVybkxpc3QoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQor dHJhbnNmb3JtUGF0aFBhdHRlcm5MaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqcGF0aF9w YXR0ZXJuKQogewogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKLQlMaXN0Q2VsbCAgICpsYzsKIAot CWZvcmVhY2gobGMsIHBhdGhfcGF0dGVybikKLQl7Ci0JCU5vZGUJICAgKm4gPSB0cmFuc2Zvcm1Q YXRoVGVybShwc3RhdGUsIGdwc3RhdGUsIGxmaXJzdChsYykpOwotCi0JCXJlc3VsdCA9IGxhcHBl bmQocmVzdWx0LCBuKTsKLQl9CisJZm9yZWFjaF9ub2RlKExpc3QsIHBhdGhfdGVybSwgcGF0aF9w YXR0ZXJuKQorCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgdHJhbnNmb3JtUGF0aFRlcm0ocHN0 YXRlLCBwYXRoX3Rlcm0pKTsKIAogCXJldHVybiAoTm9kZSAqKSByZXN1bHQ7CiB9CkBAIC0xOTks OSArMTk1LDEyIEBAIHRyYW5zZm9ybVBhdGhQYXR0ZXJuTGlzdChQYXJzZVN0YXRlICpwc3RhdGUs IEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBMaXN0CiAgKiBUcmFuc2Zvcm0gYSBHcmFw aFBhdHRlcm4uCiAgKi8KIE5vZGUgKgotdHJhbnNmb3JtR3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUg KnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsIEdyYXBoUGF0dGVybiAqZ3Jh cGhfcGF0dGVybikKK3RyYW5zZm9ybUdyYXBoUGF0dGVybihQYXJzZVN0YXRlICpwc3RhdGUsIEdy YXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybikKIHsKLQlncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRl cm5fbGlzdCA9IChMaXN0ICopIHRyYW5zZm9ybVBhdGhQYXR0ZXJuTGlzdChwc3RhdGUsIGdwc3Rh dGUsIGdyYXBoX3BhdHRlcm4tPnBhdGhfcGF0dGVybl9saXN0KTsKKwlMaXN0CSAgICpwYXRoX3Bh dHRlcm5fbGlzdCA9IGNhc3ROb2RlKExpc3QsCisJCQkJCQkJCQkJCSB0cmFuc2Zvcm1QYXRoUGF0 dGVybkxpc3QocHN0YXRlLCBncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCkpOworCisJ Z3JhcGhfcGF0dGVybi0+cGF0aF9wYXR0ZXJuX2xpc3QgPSBwYXRoX3BhdHRlcm5fbGlzdDsKIAln cmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBncmFwaF9w YXR0ZXJuLT53aGVyZUNsYXVzZSwgRVhQUl9LSU5EX1dIRVJFKTsKIAlhc3NpZ25fZXhwcl9jb2xs YXRpb25zKHBzdGF0ZSwgZ3JhcGhfcGF0dGVybi0+d2hlcmVDbGF1c2UpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5jCmluZGV4IDg2ZjI5YTFlNWMxLi41MmIxMmQyMjI4ZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTIxNTQsNiArMjE1NCw3IEBAIGFkZFJhbmdl VGFibGVFbnRyeUZvckdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCXJ0ZS0+Z3JhcGhf cGF0dGVybiA9IGdyYXBoX3BhdHRlcm47CiAJcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zID0gY29s dW1uczsKIAlydGUtPmFsaWFzID0gYWxpYXM7CisJcnRlLT5yZWxsb2NrbW9kZSA9IEFjY2Vzc1No YXJlTG9jazsKIAogCWVyZWYgPSBhbGlhcyA/IGNvcHlPYmplY3QoYWxpYXMpIDogbWFrZUFsaWFz KHJlZm5hbWUsIE5JTCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0 ZUdyYXBoVGFibGUuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYwpp bmRleCA2ZTJlNmVkMzhiOC4uMWVhNWE1Y2FlYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl d3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3Jp dGVHcmFwaFRhYmxlLmMKQEAgLTQxLDEyICs0MSwxMSBAQAogLyoKICAqIFJlcHJlc2VudHMgb25l IHBhdGggZmFjdG9yIGluIGEgcGF0aC4KICAqCi0gKiBPbmUgcGF0aCBmYWN0b3IgY29ycmVzcG9u ZHMgdG8gb25lIGVsZW1lbnQgcGF0dGVybiBpbiBhIHNpbXBsZSBwYXRoLgorICogSW4gYSBub24t Y3ljbGljIHBhdGgsIG9uZSBwYXRoIGZhY3RvciBjb3JyZXNwb25kcyB0byBvbmUgZWxlbWVudCBw YXR0ZXJuLgogICoKICAqIEluIGEgY3ljbGljIHBhdGgsIG9uZSBwYXRoIGZhY3RvciBtYXkgY29y cmVzcG9uZCB0byBvbmUgb3IgbW9yZSBlbGVtZW50Ci0gKiBwYXR0ZXJucyBhbGwgcG9pbnRpbmcg dG8gdGhlIHNhbWUgZ3JhcGggZWxlbWVudC4gVGhlIG1lbWJlcnMgb2Ygc3VjaCBhIHBhdGgKLSAq IGZhY3RvciBhcmUgYSBjb21iaW5hdGlvbiBvZiBjb3JyZXNwb25kaW5nIHNwZWNpZmljYXRpb25z IGluIHRoZSBlbGVtZW50Ci0gKiBwYXR0ZXJucy4KKyAqIHBhdHRlcm5zIHNoYXJpbmcgdGhlIHNh bWUgdmFyaWFibGUgbmFtZSwgdGh1cyBwb2ludGluZyB0byB0aGUgc2FtZSBncmFwaAorICogZWxl bWVudC4KICAqLwogc3RydWN0IHBhdGhfZmFjdG9yCiB7CkBAIC02NiwxNyArNjUsMjAgQEAgc3Ry dWN0IHBhdGhfZmFjdG9yCiAgKiBSZXByZXNlbnRzIG9uZSBwcm9wZXJ0eSBncmFwaCBlbGVtZW50 ICh2ZXJ0ZXggb3IgZWRnZSkgaW4gdGhlIHBhdGguCiAgKgogICogTGFiZWwgZXhwcmVzc2lvbiBp biBhbiBlbGVtZW50IHBhdHRlcm4gcmVzb2x2ZXMgaW50byBhIHNldCBvZiBlbGVtZW50cy4gRm9y Ci0gKiBlYWNoIG9mIHRob3NlIGVsZW1lbnRzIHdlIGNyZWF0ZSBvbmUgZ3JhcGhfcGF0aF9lbGVt ZW50IG9iamVjdC4KKyAqIGVhY2ggb2YgdGhvc2UgZWxlbWVudHMgd2UgY3JlYXRlIG9uZSBwYXRo X2VsZW1lbnQgb2JqZWN0LgogICovCiBzdHJ1Y3QgcGF0aF9lbGVtZW50CiB7CisJLyogUGF0aCBm YWN0b3IgZnJvbSB3aGljaCB0aGlzIGVsZW1lbnQgaXMgZGVyaXZlZC4gKi8KKwlzdHJ1Y3QgcGF0 aF9mYWN0b3IgKnBhdGhfZmFjdG9yOwogCU9pZAkJCWVsZW1vaWQ7CiAJT2lkCQkJcmVsb2lkOwor CS8qIFNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmVydGV4IGVsZW1lbnRzIGZvciBhbiBlZGdlIGVs ZW1lbnQuICovCiAJT2lkCQkJc3JjdmVydGV4aWQ7CiAJT2lkCQkJZGVzdHZlcnRleGlkOwotCUxp c3QJICAgKnF1YWxfZXhwcnM7Ci0JLyogUGF0aCBmYWN0b3IgZnJvbSB3aGljaCB0aGlzIGVsZW1l bnQgaXMgZGVyaXZlZC4gKi8KLQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBhdGhfZmFjdG9yOworCS8q IFNvdXJjZSBhbmQgZGVzdGluYXRpb24gY29uZGl0aW9ucyBmb3IgYW4gZWRnZSBlbGVtZW50LiAq LworCUxpc3QJICAgKnNyY19xdWFsczsKKwlMaXN0CSAgICpkZXN0X3F1YWxzOwogfTsKIAogc3Rh dGljIE5vZGUgKnJlcGxhY2VfcHJvcGVydHlfcmVmcyhPaWQgcHJvcGdyYXBoaWQsIE5vZGUgKm5v ZGUsIGNvbnN0IExpc3QgKm1hcHBpbmdzKTsKQEAgLTE4NywyMyArMTg5LDIyIEBAIGdlbmVyYXRl X3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhf cGF0dGVybikKIAkvKgogCSAqIEZvciBldmVyeSBlbGVtZW50IHBhdHRlcm4gaW4gdGhlIGdpdmVu IHBhdGggcGF0dGVybiBjb2xsZWN0IGFsbCB0aGUKIAkgKiBncmFwaCBlbGVtZW50cyB0aGF0IHNh dGlzZnkgdGhlIGVsZW1lbnQgcGF0dGVybi4KKwkgKgorCSAqIEVsZW1lbnQgcGF0dGVybnMgd2l0 aCB0aGUgc2FtZSBuYW1lIHJlcHJlc2VudCB0aGUgc2FtZSBlbGVtZW50IGFuZAorCSAqIGhlbmNl IHNhbWUgcGF0aCBmYWN0b3IuIFRoZXkgZG8gbm90IGFkZCBhIG5ldyBncmFwaCBlbGVtZW50IHRv IHRoZQorCSAqIHF1ZXJ5IGJ1dCBhZmZlY3QgdGhlIGxpbmtzIG9mIGFkamFjZW50IGVsZW1lbnRz LiBNZXJnZSBzdWNoIGVsZW1lbnRzCisJICogcGF0dGVybnMgaW50byBhIHNpbmdsZSBwYXRoIGZh Y3Rvci4KIAkgKi8KIAlmb3JlYWNoX25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgZ2VwLCBwYXRo X3BhdHRlcm4pCiAJewogCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBmID0gTlVMTDsKIAotCQlpZiAo Z2VwLT5raW5kICE9IFZFUlRFWF9QQVRURVJOICYmCi0JCQlnZXAtPmtpbmQgIT0gRURHRV9QQVRU RVJOX0xFRlQgJiYgZ2VwLT5raW5kICE9IEVER0VfUEFUVEVSTl9SSUdIVCkKLQkJCWVsb2coRVJS T1IsICJ1bnN1cHBvcnRlZCBlbGVtZW50IHBhdHRlcm4ga2luZDogJXMiLCBnZXRfZ2VwX2tpbmRf bmFtZShnZXAtPmtpbmQpKTsKKwkJaWYgKGdlcC0+a2luZCAhPSBWRVJURVhfUEFUVEVSTiAmJiAh SVNfRURHRV9QQVRURVJOKGdlcC0+a2luZCkpCisJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQg ZWxlbWVudCBwYXR0ZXJuIGtpbmQ6IFwiJXNcIiIsIGdldF9nZXBfa2luZF9uYW1lKGdlcC0+a2lu ZCkpOwogCiAJCWlmIChnZXAtPnF1YW50aWZpZXIpCiAJCQllbG9nKEVSUk9SLCAiZWxlbWVudCBw YXR0ZXJuIHF1YW50aWZpZXIgbm90IHN1cHBvcnRlZCB5ZXQiKTsKIAotCQkvKgotCQkgKiBFbGVt ZW50IHBhdHRlcm5zIHdpdGggdGhlIHNhbWUgbmFtZSByZXByZXNlbnQgdGhlIHNhbWUgZWxlbWVu dCBhbmQKLQkJICogaGVuY2Ugc2FtZSBwYXRoIGZhY3Rvci4gVGhleSBkbyBub3QgYWRkIGEgbmV3 IGdyYXBoIGVsZW1lbnQgdG8gdGhlCi0JCSAqIHF1ZXJ5IGJ1dCBhZmZlY3QgdGhlIGxpbmtzIG9m IGFkamFjZW50IGVsZW1lbnRzLgotCQkgKi8KIAkJZm9yZWFjaF9wdHIoc3RydWN0IHBhdGhfZmFj dG9yLCBvdGhlciwgcGF0aF9mYWN0b3JzKQogCQl7CiAJCQlpZiAoZ2VwLT52YXJpYWJsZSAmJiBv dGhlci0+dmFyaWFibGUgJiYKQEAgLTIyNywxMiArMjI4LDE0IEBAIGdlbmVyYXRlX3F1ZXJpZXNf Zm9yX3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0dGVybikK IAkJCQkJb3RoZXItPmxhYmVsZXhwciA9IGdlcC0+bGFiZWxleHByOwogCQkJCWVsc2UgaWYgKGdl cC0+bGFiZWxleHByICYmICFlcXVhbChvdGhlci0+bGFiZWxleHByLCBnZXAtPmxhYmVsZXhwcikp CiAJCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCS8qIFhYWDogVXNlIGNvcnJlY3QgZXJyb3IgY29k ZS4gKi8KLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK LQkJCQkJCQkgZXJybXNnKCJlbGVtZW50IHBhdHRlcm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1l IFwiJXNcIiBidXQgZGlmZmVyZW50IGxhYmVsIGV4cHJlc3Npb25zIiwKKwkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygiZWxlbWVu dCBwYXR0ZXJucyB3aXRoIHNhbWUgdmFyaWFibGUgbmFtZSBcIiVzXCIgYnV0IGRpZmZlcmVudCBs YWJlbCBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCIsCiAJCQkJCQkJCQlnZXAtPnZhcmlh YmxlKSkpOwogCi0JCQkJLyogQm90aCBzZXRzIG9mIGNvbmRpdGlvbnMgYXBwbHkgdG8gdGhlIGVs ZW1lbnQgcGF0dGVybi4gKi8KKwkJCQkvKgorCQkJCSAqIENvbmRpdGlvbnMgZnJvbSBib3RoIGVs ZW1lbnRzIHBhdHRlcm5zIGNvbnN0cmFpbiB0aGUgZ3JhcGgKKwkJCQkgKiBlbGVtZW50LiBDb21i aW5lIGJ5IEFORGluZyB0aGVtLgorCQkJCSAqLwogCQkJCWlmICghb3RoZXItPndoZXJlQ2xhdXNl KQogCQkJCQlvdGhlci0+d2hlcmVDbGF1c2UgPSBnZXAtPndoZXJlQ2xhdXNlOwogCQkJCWVsc2Ug aWYgKGdlcC0+d2hlcmVDbGF1c2UpCkBAIC0yNTksMTkgKzI2MiwyNyBAQCBnZW5lcmF0ZV9xdWVy aWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRl cm4pCiAJCX0KIAogCQkvKgotCQkgKiBTZXR1cCBhZGphY2VudCBwYXRoIGZhY3RvcnMuIElmIG11 bHRpcGxlIGVkZ2UgcGF0dGVybnMgc2hhcmUgdGhlCi0JCSAqIHNhbWUgdmFyaWFibGUgbmFtZSwg dGhleSBjb25zdGFpbiB0aGUgYWRqYWNlbnQgdmVydGV4IHBhdHRlcm5zCi0JCSAqIHNpbmNlIGFu IGVkZ2UgY2FuIGNvbm5lY3Qgb25seSBvbmUgcGFpciBvZiB2ZXJ0ZXhlcyBhbmQgdGhvc2UKLQkJ ICogdmVydGV4ZXMgYWxzbyBuZWVkIHRvIHJlcGVhdGVkIGFsb25nIHdpdGggdGhlIGVkZ2UgKGEg d2FsaykuIFRoaXMKLQkJICogbWVhbnMgdGhhdCB3ZSBoYXZlIHRvIGNvYWxlc2NlIHRoZSB2ZXJ0 ZXggcGF0dGVybnMgYWRqYWNlbnQgdG8gYQotCQkgKiByZXBlYXRlZCBlZGdlIGV2ZW4gdGhvdWdo IHRoZXkgaGF2ZSBkaWZmZXJlbnQgdmFyaWFibGVzLiAgRS5nLgotCQkgKiAoYSktW2JdLT4oYykt W2JdPC0oZCkgaW1wbGllcyB0aGF0IChhKSBhbmQgKGQpIHJlcHJlc2VudCB0aGUgc2FtZQorCQkg KiBTZXR1cCBsaW5rcyB0byB0aGUgcHJldmlvdXMgcGF0aCBmYWN0b3IuIElmIHRoZSBwcmV2aW91 cyBwYXRoCisJCSAqIGZhY3RvciBpcyBhbiBlZGdlLCB0aGlzIHBhdGggZmFjdG9yIHJlcHJlc2Vu dHMgYW4gYWRqYWNlbnQgdmVydGV4OworCQkgKiBzb3VyY2UgdmVydGV4IGZvciBhbiBlZGdlIHBv aW50aW5nIGxlZnQgb3IgZGVzdGluYXRpb24gdmVydGV4IGZvcgorCQkgKiBhbiBlZGdlIHBvaW50 aW5nIHJpZ2h0LiBFZGdlIHBvaW50aW5nIGluIGFueSBkaXJlY3Rpb24gaXMgdHJlYXRlZAorCQkg KiBzaW1pbGFyIHRvIHRoYXQgcG9pbnRpbmcgaW4gcmlnaHQgZGlyZWN0aW9uIGhlcmUuIFdoZW4g Y29uc3RydWN0aW5nCisJCSAqIGEgcXVlcnksIGluIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9w YXRoKCkgd2Ugd2lsbCBzd2FwIHNvdXJjZSBhbmQKKwkJICogZGVzdGluYXRpb24gZWxlbWVudHMg aWYgdGhlIGVkZ2UgZWxlbWVudCB0dXJucyBvdXQgdG8gYmUgYW5kIGVkZ2UKKwkJICogcG9pbnRp bmcgaW4gbGVmdCBkaXJlY3Rpb24uCisJCSAqCisJCSAqIElmIG11bHRpcGxlIGVkZ2UgcGF0dGVy bnMgc2hhcmUgdGhlIHNhbWUgdmFyaWFibGUgbmFtZSwgdGhleQorCQkgKiBjb25zdGFpbiB0aGUg YWRqYWNlbnQgdmVydGV4IHBhdHRlcm5zIHNpbmNlIGFuIGVkZ2UgY2FuIGNvbm5lY3QKKwkJICog b25seSBvbmUgcGFpciBvZiB2ZXJ0ZXhlcy4gVGhvc2UgdmVydGV4IHBhdHRlcm5zIGFsc28gbmVl ZCB0bworCQkgKiByZXBlYXRlZCBhbmQgbWVyZ2VkIGFsb25nIHdpdGggdGhlIHJlcGVhdGVkIGVk Z2UgKGEgd2FsayBvZiBncmFwaCkKKwkJICogZXZlbiB0aG91Z2ggdGhleSBoYXZlIGRpZmZlcmVu dCB2YXJpYWJsZXMuICBFLmcuCisJCSAqIChhKS1bYl0tPihjKTwtW2JdLShkKSBpbXBsaWVzIHRo YXQgKGEpIGFuZCAoZCkgcmVwcmVzZW50IHRoZSBzYW1lCiAJCSAqIHZlcnRleCBlbGVtZW50IHBh dHRlcm4uIFRoaXMgaXMgc2xpZ2hseSBoYXJkZXIgdG8gaW1wbGVtZW50IGFuZAogCQkgKiBwcm9i YWJseSBsZXNzIHVzZWZ1bC4gSGVuY2Ugbm90IHN1cHBvcnRlZCBmb3Igbm93LgogCQkgKi8KIAkJ aWYgKHByZXZfcGYpCiAJCXsKLQkJCWlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9S SUdIVCkKKwkJCWlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCB8fCBwcmV2 X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9BTlkpCiAJCQl7CiAJCQkJQXNzZXJ0KCFJU19FREdF X1BBVFRFUk4ocGYtPmtpbmQpKTsKIAkJCQlpZiAocHJldl9wZi0+ZGVzdF9wZiAmJiBwcmV2X3Bm LT5kZXN0X3BmICE9IHBmKQpAQCAtMjg1LDEzICsyOTYsOCBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zv cl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiAJ CQkJCWVsb2coRVJST1IsICJBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZl cnRleGVzIGV2ZW4gaW4gYSBjeWNsaWMgcGF0dGVybi4iKTsKIAkJCQlwcmV2X3BmLT5zcmNfcGYg PSBwZjsKIAkJCX0KLQkJCWVsc2UgaWYgKHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FO WSkKLQkJCXsKLQkJCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0ZWQgZWRnZXMgeWV0LiAq LwotCQkJCUFzc2VydChmYWxzZSk7Ci0JCQl9CiAKLQkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BB VFRFUk5fUklHSFQpCisJCQlpZiAocGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUIHx8IHBm LT5raW5kID09IEVER0VfUEFUVEVSTl9BTlkpCiAJCQl7CiAJCQkJQXNzZXJ0KCFJU19FREdFX1BB VFRFUk4ocHJldl9wZi0+a2luZCkpOwogCQkJCWlmIChwZi0+c3JjX3BmICYmIHBmLT5zcmNfcGYg IT0gcHJldl9wZikKQEAgLTMwNSwxMSArMzExLDYgQEAgZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0 aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQogCQkJCQll bG9nKEVSUk9SLCAiQW4gZWRnZSBjYW4gbm90IGNvbm5lY3QgbW9yZSB0aGFuIHR3byB2ZXJ0ZXhl cyBldmVuIGluIGEgY3ljbGljIHBhdHRlcm4uIik7CiAJCQkJcGYtPmRlc3RfcGYgPSBwcmV2X3Bm OwogCQkJfQotCQkJZWxzZSBpZiAocGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSkKLQkJCXsK LQkJCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0ZWQgZWRnZXMgeWV0LiAqLwotCQkJCUFz c2VydChmYWxzZSk7Ci0JCQl9CiAJCX0KIAogCQlwcmV2X3BmID0gcGY7CkBAIC0zODksMzEgKzM5 MCw2MiBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRibEVudHJ5ICpydGUs IExpc3QgKmdyYXBoX3BhdGgpCiAJCVJlbGF0aW9uCXJlbDsKIAkJUGFyc2VOYW1lc3BhY2VJdGVt ICpwbmk7CiAKLQkJQXNzZXJ0KHBmLT5raW5kID09IFZFUlRFWF9QQVRURVJOIHx8Ci0JCQkgICBw Zi0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCB8fCBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5f UklHSFQpOworCQlBc3NlcnQocGYtPmtpbmQgPT0gVkVSVEVYX1BBVFRFUk4gfHwgSVNfRURHRV9Q QVRURVJOKHBmLT5raW5kKSk7CiAKLQkJaWYgKHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZU IHx8IHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJLyogQWRkIGNvbmRpdGlvbnMg cmVwcmVzZW50aW5nIGVkZ2UgY29ubm5lY3Rpb25zLiAqLworCQlpZiAoSVNfRURHRV9QQVRURVJO KHBmLT5raW5kKSkKIAkJewogCQkJc3RydWN0IHBhdGhfZWxlbWVudCAqc3JjX3BlOwotCQkJc3Ry dWN0IHBhdGhfZWxlbWVudCAqZGVzdF9nZTsKKwkJCXN0cnVjdCBwYXRoX2VsZW1lbnQgKmRlc3Rf cGU7CisJCQlMaXN0CSAgICpzcmNfcXVhbHM7CisJCQlMaXN0CSAgICpkZXN0X3F1YWxzOwogCiAJ CQlBc3NlcnQocGYtPnNyY19wZiAmJiBwZi0+ZGVzdF9wZik7CiAJCQlzcmNfcGUgPSBsaXN0X250 aChncmFwaF9wYXRoLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3MpOwotCQkJZGVzdF9nZSA9IGxpc3Rf bnRoKGdyYXBoX3BhdGgsIHBmLT5kZXN0X3BmLT5mYWN0b3Jwb3MpOworCQkJZGVzdF9wZSA9IGxp c3RfbnRoKGdyYXBoX3BhdGgsIHBmLT5kZXN0X3BmLT5mYWN0b3Jwb3MpOwogCiAJCQkvKiBNYWtl IHN1cmUgdGhhdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQgdmVydGljZXMgYXJlIGNvcnJlY3QuICov CiAJCQlBc3NlcnQocGYtPnNyY19wZiA9PSBzcmNfcGUtPnBhdGhfZmFjdG9yICYmCi0JCQkJICAg cGYtPmRlc3RfcGYgPT0gZGVzdF9nZS0+cGF0aF9mYWN0b3IpOworCQkJCSAgIHBmLT5kZXN0X3Bm ID09IGRlc3RfcGUtPnBhdGhfZmFjdG9yKTsKIAogCQkJLyoKIAkJCSAqIElmIHRoZSBnaXZlbiBl ZGdlIGVsZW1lbnQgZG9lcyBub3QgY29ubmVjdCB0aGUgYWRqYWNlbnQgdmVydGV4CiAJCQkgKiBl bGVtZW50cyBpbiB0aGlzIHBhdGgsIHRoZSBwYXRoIGlzIGJyb2tlbi4gQWJhbmRvbiB0aGlzIHBh dGggYXMKIAkJCSAqIGl0IHdvbid0IHJldHVybiBhbnkgcm93cy4KKwkJCSAqCisJCQkgKiBGb3Ig YW4gZWRnZSBlbGVtZW50IHBhdHRlcm4gcG9pbnRpbmcgaW4gYW55IGRpcmVjdGlvbiwgdHJ5CisJ CQkgKiBzd2FwcGluZyB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB2ZXJ0ZXggZWxlbWVudHMu CiAJCQkgKi8KIAkJCWlmIChzcmNfcGUtPmVsZW1vaWQgIT0gcGUtPnNyY3ZlcnRleGlkIHx8Ci0J CQkJZGVzdF9nZS0+ZWxlbW9pZCAhPSBwZS0+ZGVzdHZlcnRleGlkKQotCQkJCXJldHVybiBOVUxM OworCQkJCWRlc3RfcGUtPmVsZW1vaWQgIT0gcGUtPmRlc3R2ZXJ0ZXhpZCkKKwkJCXsKKwkJCQlp ZiAocGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSAmJgorCQkJCQlkZXN0X3BlLT5lbGVtb2lk ID09IHBlLT5zcmN2ZXJ0ZXhpZCAmJgorCQkJCQlzcmNfcGUtPmVsZW1vaWQgPT0gcGUtPmRlc3R2 ZXJ0ZXhpZCkKKwkJCQl7CisJCQkJCWRlc3RfcXVhbHMgPSBjb3B5T2JqZWN0KHBlLT5zcmNfcXVh bHMpOworCQkJCQlzcmNfcXVhbHMgPSBjb3B5T2JqZWN0KHBlLT5kZXN0X3F1YWxzKTsKKworCQkJ CQkvKiBTd2FwIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHZhcm5vcyBpbiB0aGUgcXVhbHMu ICovCisJCQkJCUNoYW5nZVZhck5vZGVzKChOb2RlICopIGRlc3RfcXVhbHMsIHBlLT5wYXRoX2Zh Y3Rvci0+c3JjX3BmLT5mYWN0b3Jwb3MgKyAxLAorCQkJCQkJCQkgICBwZS0+cGF0aF9mYWN0b3It PmRlc3RfcGYtPmZhY3RvcnBvcyArIDEsIDApOworCQkJCQlDaGFuZ2VWYXJOb2RlcygoTm9kZSAq KSBzcmNfcXVhbHMsIHBlLT5wYXRoX2ZhY3Rvci0+ZGVzdF9wZi0+ZmFjdG9ycG9zICsgMSwKKwkJ CQkJCQkJICAgcGUtPnBhdGhfZmFjdG9yLT5zcmNfcGYtPmZhY3RvcnBvcyArIDEsIDApOworCQkJ CX0KKwkJCQllbHNlCisJCQkJCXJldHVybiBOVUxMOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJ CXNyY19xdWFscyA9IGNvcHlPYmplY3QocGUtPnNyY19xdWFscyk7CisJCQkJZGVzdF9xdWFscyA9 IGNvcHlPYmplY3QocGUtPmRlc3RfcXVhbHMpOworCQkJfQorCisJCQlxdWFsX2V4cHJzID0gbGlz dF9jb25jYXQocXVhbF9leHBycywgc3JjX3F1YWxzKTsKKwkJCXF1YWxfZXhwcnMgPSBsaXN0X2Nv bmNhdChxdWFsX2V4cHJzLCBkZXN0X3F1YWxzKTsKIAkJfQorCQllbHNlCisJCQlBc3NlcnQoIXBl LT5zcmNfcXVhbHMgJiYgIXBlLT5kZXN0X3F1YWxzKTsKIAogCQkvKiBDcmVhdGUgUmFuZ2VUYmxF bnRyeSBmb3IgdGhpcyBlbGVtZW50IHRhYmxlLiAqLwogCQlyZWwgPSB0YWJsZV9vcGVuKHBlLT5y ZWxvaWQsIEFjY2Vzc1NoYXJlTG9jayk7CkBAIC00NDIsNyArNDc0LDYgQEAgZ2VuZXJhdGVfcXVl cnlfZm9yX2dyYXBoX3BhdGgoUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpncmFwaF9wYXRoKQog CiAJCQlxdWFsX2V4cHJzID0gbGFwcGVuZChxdWFsX2V4cHJzLCB0cik7CiAJCX0KLQkJcXVhbF9l eHBycyA9IGxpc3RfY29uY2F0KHF1YWxfZXhwcnMsIHBlLT5xdWFsX2V4cHJzKTsKIAl9CiAKIAlp ZiAocnRlLT5ncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSkKQEAgLTQ1Nyw3ICs0ODgsNyBAQCBn ZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKmdy YXBoX3BhdGgpCiAJcGF0aF9xdWVyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIoZnJvbWxpc3Qs CiAJCQkJCQkJCQkJKE5vZGUgKikgbWFrZUJvb2xFeHByKEFORF9FWFBSLCBxdWFsX2V4cHJzLCAt MSkpOwogCi0JLyogRWFjaCBwYXRoIHF1ZXJ5IHByb2plY3RzIHRoZSBjb2x1bW5zIHNwZWNpZmll ZCBpbiB0aGUgR1JBSF9UQUJMRSBjbGF1c2UgKi8KKwkvKiBFYWNoIHBhdGggcXVlcnkgcHJvamVj dHMgdGhlIENPTFVNTlMgc3BlY2lmaWVkIGluIHRoZSBHUkFIX1RBQkxFLiAqLwogCXBhdGhfcXVl cnktPnRhcmdldExpc3QgPSBjYXN0Tm9kZShMaXN0LAogCQkJCQkJCQkJICByZXBsYWNlX3Byb3Bl cnR5X3JlZnMocnRlLT5yZWxpZCwKIAkJCQkJCQkJCQkJCQkJCShOb2RlICopIHJ0ZS0+Z3JhcGhf dGFibGVfY29sdW1ucywKQEAgLTY2Nyw3ICs2OTgsNiBAQCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50 KHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYsIE9pZCBlbGVtb2lkKQogCXBlLT5wYXRoX2ZhY3RvciA9 IHBmOwogCXBlLT5lbGVtb2lkID0gZWxlbW9pZDsKIAlwZS0+cmVsb2lkID0gcGdlZm9ybS0+cGdl cmVsaWQ7Ci0JcGUtPnF1YWxfZXhwcnMgPSBOSUw7CiAKIAkvKgogCSAqIFdoZW4gdGhlIHBhdGgg Y29udGFpbmluZyB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhIHF1ZXJ5CkBA IC02ODEsOCArNzExLDYgQEAgY3JlYXRlX2dwZV9mb3JfZWxlbWVudChzdHJ1Y3QgcGF0aF9mYWN0 b3IgKnBmLCBPaWQgZWxlbW9pZCkKIAkgKi8KIAlpZiAoSVNfRURHRV9QQVRURVJOKHBmLT5raW5k KSkKIAl7Ci0JCUxpc3QJICAgKmVkZ2VfcXVhbDsKLQogCQlwZS0+c3JjdmVydGV4aWQgPSBwZ2Vm b3JtLT5wZ2VzcmN2ZXJ0ZXhpZDsKIAkJcGUtPmRlc3R2ZXJ0ZXhpZCA9IHBnZWZvcm0tPnBnZWRl c3R2ZXJ0ZXhpZDsKIAkJQXNzZXJ0KHBmLT5zcmNfcGYgJiYgcGYtPmRlc3RfcGYpOwpAQCAtNzAw LDE0ICs3MjgsMTIgQEAgY3JlYXRlX2dwZV9mb3JfZWxlbWVudChzdHJ1Y3QgcGF0aF9mYWN0b3Ig KnBmLCBPaWQgZWxlbW9pZCkKIAkJICogbnVtYmVyIG9mIHBhdGhzIHRoaXMgZWxlbWVudCBhcHBl YXJzIGluLCBmZXRjaGluZyB0aGUgY2F0YWxvZyBlbnRyeQogCQkgKiBlYWNoIHRpbWUuCiAJCSAq LwotCQllZGdlX3F1YWwgPSBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1cCwgcGYt PmZhY3RvcnBvcyArIDEsIHBmLT5zcmNfcGYtPmZhY3RvcnBvcyArIDEsCi0JCQkJCQkJCQkJCQkg QW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXksCi0JCQkJCQkJCQkJCQkgQW51bV9w Z19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYpOwotCQlwZS0+cXVhbF9leHBycyA9IGxpc3Rf Y29uY2F0KHBlLT5xdWFsX2V4cHJzLCBlZGdlX3F1YWwpOwotCQllZGdlX3F1YWwgPSBidWlsZF9l ZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1cCwgcGYtPmZhY3RvcnBvcyArIDEsIHBmLT5kZXN0 X3BmLT5mYWN0b3Jwb3MgKyAxLAotCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfcGdlZGVzdGtleSwKLQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3Bn ZWRlc3RyZWYpOwotCQlwZS0+cXVhbF9leHBycyA9IGxpc3RfY29uY2F0KHBlLT5xdWFsX2V4cHJz LCBlZGdlX3F1YWwpOworCQlwZS0+c3JjX3F1YWxzID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19x dWFscyhlbGV0dXAsIHBmLT5mYWN0b3Jwb3MgKyAxLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3MgKyAx LAorCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSwKKwkJ CQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYpOworCQlwZS0+ ZGVzdF9xdWFscyA9IGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFj dG9ycG9zICsgMSwgcGYtPmRlc3RfcGYtPmZhY3RvcnBvcyArIDEsCisJCQkJCQkJCQkJCQkJICBB bnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RrZXksCisJCQkJCQkJCQkJCQkJICBBbnVt X3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RyZWYpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNo ZShlbGV0dXApOwpAQCAtNzI3LDcgKzc1Myw3IEBAIGdldF9nZXBfa2luZF9uYW1lKEdyYXBoRWxl bWVudFBhdHRlcm5LaW5kIGdlcGtpbmQpCiAJCWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgogCQkJ cmV0dXJuICJlZGdlIHBvaW50aW5nIHJpZ2h0IjsKIAkJY2FzZSBFREdFX1BBVFRFUk5fQU5ZOgot CQkJcmV0dXJuICJ1bmRpcmVjdGVkIGVkZ2UiOworCQkJcmV0dXJuICJlZGdlIHBvaW50aW5nIGFu eSBkaXJlY3Rpb24iOwogCQljYXNlIFBBUkVOX0VYUFI6CiAJCQlyZXR1cm4gIm5lc3RlZCBwYXRo IHBhdHRlcm4iOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBjNTE2MmZlZGNkMS4uMGFl MWQxNWExY2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQzOTcsNCArNDM5NywxMCBAQCB0 eXBlZGVmIHN0cnVjdCBEcm9wU3Vic2NyaXB0aW9uU3RtdAogCURyb3BCZWhhdmlvciBiZWhhdmlv cjsJCS8qIFJFU1RSSUNUIG9yIENBU0NBREUgYmVoYXZpb3IgKi8KIH0gRHJvcFN1YnNjcmlwdGlv blN0bXQ7CiAKK3R5cGVkZWYgc3RydWN0IEdyYXBoVGFibGVQYXJzZVN0YXRlCit7CisJT2lkCQkJ Z3JhcGhpZDsKKwlMaXN0CSAgICp2YXJpYWJsZXM7Cit9IEdyYXBoVGFibGVQYXJzZVN0YXRlOwor CiAjZW5kaWYJCQkJCQkJLyogUEFSU0VOT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dy YXBodGFibGUuaAppbmRleCBhZjBmNTUwY2QyYy4uNGNlZmQ1YWNmOWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2dyYXBodGFibGUuaApAQCAtMTQsMTggKzE0LDExIEBACiAjaWZuZGVmIFBBUlNF X0dSQVBIVEFCTEVfSAogI2RlZmluZSBQQVJTRV9HUkFQSFRBQkxFX0gKIAotI2luY2x1ZGUgIm5v ZGVzL3BhcnNlbm9kZXMuaCIKICNpbmNsdWRlICJub2Rlcy9wZ19saXN0LmgiCiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX25vZGUuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgR3JhcGhUYWJsZVBhcnNlU3Rh dGUKLXsKLQlPaWQJCQlncmFwaGlkOwotCUxpc3QJICAgKnZhcmlhYmxlczsKLX0gR3JhcGhUYWJs ZVBhcnNlU3RhdGU7CitleHRlcm4gTm9kZSAqdHJhbnNmb3JtR3JhcGhUYWJsZVByb3BlcnR5UmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKTsKIAotZXh0ZXJuIE5vZGUgKmdy YXBoX3RhYmxlX3Byb3BlcnR5X3JlZmVyZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJl ZiAqY3JlZiwgTm9kZSAqdmFyKTsKLQotZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUdyYXBoUGF0dGVy bihQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBHcmFw aFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4pOworZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUdyYXBoUGF0 dGVybihQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybik7CiAK ICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9HUkFQSFRBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCmluZGV4IGYxZTZmMDM1Y2U2Li4zNGUyNzU3MTZjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCkBAIC0xOTMsNiArMTkzLDkgQEAgdHlwZWRlZiBOb2RlICooKkNvZXJjZVBhcmFtSG9vaykg KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLAogICogcF9yZXNvbHZlX3Vua25vd25z OiByZXNvbHZlIHVua25vd24tdHlwZSBTRUxFQ1Qgb3V0cHV0IGNvbHVtbnMgYXMgdHlwZSBURVhU CiAgKiAodGhpcyBpcyB0cnVlIGJ5IGRlZmF1bHQpLgogICoKKyAqIHBfZ3JhcGhfdGFibGVfcHN0 YXRlOiBOYW1lc3BhY2UgZm9yIHRoZSBHUkFQSF9UQUJMRSByZWZlcmVuY2UgYmVpbmcKKyAqIHRy YW5zZm9ybWVkLCBpZiBhbnkuCisgKgogICogcF9oYXNBZ2dzLCBwX2hhc1dpbmRvd0Z1bmNzLCBl dGM6IHRydWUgaWYgd2UndmUgZm91bmQgYW55IG9mIHRoZSBpbmRpY2F0ZWQKICAqIGNvbnN0cnVj dHMgaW4gdGhlIHF1ZXJ5LgogICoKQEAgLTIzOCw2ICsyNDEsOCBAQCBzdHJ1Y3QgUGFyc2VTdGF0 ZQogCQkJCQkJCQkJICogdHlwZSB0ZXh0ICovCiAKIAlRdWVyeUVudmlyb25tZW50ICpwX3F1ZXJ5 RW52OwkvKiBjdXJyIGVudiwgaW5jbCByZWZzIHRvIGVuY2xvc2luZyBlbnYgKi8KKwlHcmFwaFRh YmxlUGFyc2VTdGF0ZSAqcF9ncmFwaF90YWJsZV9wc3RhdGU7IC8qIEN1cnJlbnQgZ3JhcGggdGFi bGUKKwkJCQkJCQkJCQkJCSAqIG5hbWVzcGFjZSwgaWYgYW55ICovCiAKIAkvKiBGbGFncyB0ZWxs aW5nIGFib3V0IHRoaW5ncyBmb3VuZCBpbiB0aGUgcXVlcnk6ICovCiAJYm9vbAkJcF9oYXNBZ2dz OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAppbmRleCA4N2FiM2Uz MWFmOC4uMzc5NjI5N2NiMDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFi bGUub3V0CkBAIC0zNDksNiArMzQ5LDI1IEBAIHNlbGVjdCBzcmMsIGNvbm4sIGRlc3QsIGxwcm9w MSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMKICB2MTEg fCBlMTMyIHwgdjMxICB8IHZsM19wcm9wIHwgICAgICAgIHwgICAyMDEwCiAoNCByb3dzKQogCist LSBlZGdlcyBkaXJlY3RlZCBpbiBib3RoIHdheXMgLSB0byBhbmQgZnJvbSB2MgorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJUyB2bDIpLVtjb25uXS0oZGVzdCkgQ09M VU1OUyAoc3JjLnZuYW1lIEFTIHNuYW1lLCBjb25uLmVuYW1lIEFTIGNuYW1lLCBkZXN0LnZuYW1l IEFTIGRuYW1lKSk7Cisgc25hbWUgfCBjbmFtZSB8IGRuYW1lIAorLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0KKyB2MjEgICB8IGUxMjIgIHwgdjEyCisgdjIyICAgfCBlMTIxICB8IHYxMQorIHYyMSAg IHwgZTIxMSAgfCB2MTIKKyB2MjIgICB8IGUyMzEgIHwgdjMyCisoNCByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIElTIHZsMiktKGRlc3QpIENPTFVNTlMg KHNyYy52bmFtZSBBUyBzbmFtZSwgZGVzdC52bmFtZSBBUyBkbmFtZSkpOworIHNuYW1lIHwgZG5h bWUgCistLS0tLS0tKy0tLS0tLS0KKyB2MjEgICB8IHYxMgorIHYyMiAgIHwgdjExCisgdjIxICAg fCB2MTIKKyB2MjIgICB8IHYzMgorKDQgcm93cykKKwogLS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90 IGFzc29jaWF0ZWQgd2l0aCBwcm9wZXJ0eSB2cHJvcDIKIHNlbGVjdCBzcmMsIHNyY192cHJvcDIs IGNvbm4sIGRlc3QgZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBl bDFdLT4oYyBpcyB2bDIgfCB2bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBhLnZwcm9wMiBh cyBzcmNfdnByb3AyLCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCkpOwpAQCAtNDgz LDcgKzUwMiw3IEBAIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIHdoZXJl IGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIwMDApLT4oYiB3CiBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChnMSBNQVRDSCAoYSBpcyBsMSktW2EgaXMgbDFdLT4oYiBpcyBsMSkgY29sdW1ucyAo YS5lbmFtZSBBUyBhZW5hbWUsIGIuZW5hbWUgQVMgYmVuYW1lKSkgT1JERVIgQlkgMSwgMjsgLS0g ZXJyb3IKIEVSUk9SOiAgZWxlbWVudCBwYXR0ZXJucyB3aXRoIHNhbWUgdmFyaWFibGUgbmFtZSAi YSIgYnV0IGRpZmZlcmVudCBlbGVtZW50IHBhdHRlcm4gdHlwZXMKIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSktPihiKS0+KGEgaXMgdmwyKSBXSEVSRSBhLnZu YW1lIDw+IGIudm5hbWUgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZuYW1lIEFTIHRocm91 Z2gsIGEudnByb3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hfcDEpKSBPUkRFUiBC WSBzZWxmLCB0aHJvdWdoOyAgLS0gZXJyb3IKLUVSUk9SOiAgZWxlbWVudCBwYXR0ZXJucyB3aXRo IHNhbWUgdmFyaWFibGUgbmFtZSAiYSIgYnV0IGRpZmZlcmVudCBsYWJlbCBleHByZXNzaW9ucwor RVJST1I6ICBlbGVtZW50IHBhdHRlcm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lICJhIiBidXQg ZGlmZmVyZW50IGxhYmVsIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkCiBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhKSBDT0xVTU5TIChh LnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwg Yi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CiAgc2VsZiB8 IHRocm91Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9wMSAKIC0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQpAQCAtNjA0LDUgKzYyMyw2NSBAQCBTRUxFQ1QgKiBGUk9NIGN1c3Rv bWVyc191c19yZWRhY3RlZDsKICByZWRhY3RlZDEKICgxIHJvdykKIAorLS0gR1JBUEhfVEFCTEUg aW4gVURGcworQ1JFQVRFIEZVTkNUSU9OIG91dF9kZWdyZWUoc25hbWUgdmFyY2hhcikgUkVUVVJO UyB2YXJjaGFyIEFTICQkCitERUNMQVJFCisgICAgb3V0X2RlZ3JlZSBpbnQ7CitCRUdJTgorICAg IFNFTEVDVCBjb3VudCgqKSBJTlRPIG91dF9kZWdyZWUKKyAgICAgICAgRlJPTSBHUkFQSF9UQUJM RSAoZzEgTUFUQ0ggKHNyYyBXSEVSRSBzcmMudm5hbWUgPSBzbmFtZSktPigpIENPTFVNTlMgKHNy Yy52bmFtZSkpOworICAgIFJFVFVSTiBvdXRfZGVncmVlOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKK0NSRUFURSBGVU5DVElPTiBkaXJlY3RfY29ubmVjdGlvbnMoc25hbWUgdmFyY2hhcikK K1JFVFVSTlMgVEFCTEUgKGNuYW1lIHZhcmNoYXIsIGRuYW1lIHZhcmNoYXIpCitBUyAkJAorICAg IFNFTEVDVCBjbmFtZSwgZG5hbWUKKyAgICAgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0gg KHNyYyBXSEVSRSBzcmMudm5hbWUgPSBzbmFtZSktW2Nvbm5dLT4oZHN0KQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDT0xVTU5TIChjb25uLmVuYW1lIEFTIGNuYW1lLCBkc3Qudm5hbWUg QVMgZG5hbWUpKTsKKyQkIExBTkdVQUdFIFNRTDsKK1NFTEVDVCBzbmFtZSwgb3V0X2RlZ3JlZShz bmFtZSkgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJUyB2bDEpIENPTFVNTlMgKHNy Yy52bmFtZSBBUyBzbmFtZSkpOworIHNuYW1lIHwgb3V0X2RlZ3JlZSAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tCisgdjExICAgfCAzCisgdjEyICAgfCAxCisgdjEzICAgfCAxCisoMyByb3dzKQorCitT RUxFQ1Qgc25hbWUsIGNuYW1lLCBkbmFtZQorICAgIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENI IChzcmMgSVMgdmwxKSBDT0xVTU5TIChzcmMudm5hbWUgQVMgc25hbWUpKSwKKyAgICAgICAgIExB VEVSQUwgZGlyZWN0X2Nvbm5lY3Rpb25zKHNuYW1lKTsKKyBzbmFtZSB8IGNuYW1lIHwgZG5hbWUg CistLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorIHYxMSAgIHwgZTEyMSAgfCB2MjIKKyB2MTEgICB8 IGUxMzEgIHwgdjMzCisgdjExICAgfCBlMTMyICB8IHYzMQorIHYxMiAgIHwgZTEyMiAgfCB2MjEK KyB2MTMgICB8IGUxMjMgIHwgdjIzCisoNSByb3dzKQorCistLSBHUkFQSF9UQUJMRSBqb2luZWQg dG8gYSByZWd1bGFyIHRhYmxlCitTRUxFQ1QgKgorICAgIEZST00gY3VzdG9tZXJzIGNvLAorICAg ICAgICAgR1JBUEhfVEFCTEUgKG15c2hvcDIgTUFUQ0ggKGNnIElTIGN1c3RvbWVycyBXSEVSRSBj Zy5hZGRyZXNzID0gY28uYWRkcmVzcyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVy cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGNnLm5hbWVfcmVkYWN0 ZWQgQVMgY3VzdG9tZXJfbmFtZV9yZWRhY3RlZCkpCisgICAgV0hFUkUgY28uY3VzdG9tZXJfaWQg PSAxOworIGN1c3RvbWVyX2lkIHwgICBuYW1lICAgIHwgYWRkcmVzcyB8IGN1c3RvbWVyX25hbWVf cmVkYWN0ZWQgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IGN1c3RvbWVyMSB8IFVTICAgICAgfCByZWRh Y3RlZDEKKygxIHJvdykKKworLS0gcXVlcnkgd2l0aGluIGdyYXBoIHRhYmxlCitTRUxFQ1Qgc25h bWUsIGRuYW1lCisgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyktPihkZXN0KQor ICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHNyYy52cHJvcDEgPiAoU0VMRUNUIG1heCh2 MS52cHJvcDEpIEZST00gdjEpCisgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyhzcmMu dm5hbWUgYXMgc25hbWUsIGRlc3Qudm5hbWUgYXMgZG5hbWUpKTsKK0VSUk9SOiAgc3VicXVlcmll cyB3aXRoaW4gR1JBUEhfVEFCTEUgcmVmZXJlbmNlIGFyZSBub3Qgc3VwcG9ydGVkCitTRUxFQ1Qg c25hbWUsIGRuYW1lCisgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyktPihkZXN0 KQorICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIG91dF9kZWdyZWUoc3JjLnZuYW1lKSA+ IChTRUxFQ1QgbWF4KG91dF9kZWdyZWUobm5hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKG5vZGUpIENPTFVNTlMgKG5vZGUudm5hbWUgQVMgbm5hbWUpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICBDT0xVTU5TKHNyYy52bmFtZSBhcyBzbmFtZSwgZGVzdC52bmFtZSBhcyBk bmFtZSkpOworRVJST1I6ICBzdWJxdWVyaWVzIHdpdGhpbiBHUkFQSF9UQUJMRSByZWZlcmVuY2Ug YXJlIG5vdCBzdXBwb3J0ZWQKIC0tIGxlYXZlIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMK IC0tRFJPUCBTQ0hFTUEgZ3JhcGhfdGFibGVfdGVzdHMgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2dyYXBoX3RhYmxlLnNxbAppbmRleCBmMzQ2MTYxNjNhYS4uOTA1YmU5ZGYwMWIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKQEAgLTI2Miw2ICsyNjIsOSBAQCBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEgfCB2bDIpIENPTFVNTlMgKGEudm5h bWUsCiBhLnZwcm9wMSkpOwogLS0gdnByb3AyIGlzIGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5v dCB2bDMKIHNlbGVjdCBzcmMsIGNvbm4sIGRlc3QsIGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJv bSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIg fCB2bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUg YXMgZGVzdCwgYy5scHJvcDEsIGMudnByb3AyLCBjLnZwcm9wMSkpOworLS0gZWRnZXMgZGlyZWN0 ZWQgaW4gYm90aCB3YXlzIC0gdG8gYW5kIGZyb20gdjIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGcxIE1BVENIIChzcmMgSVMgdmwyKS1bY29ubl0tKGRlc3QpIENPTFVNTlMgKHNyYy52bmFt ZSBBUyBzbmFtZSwgY29ubi5lbmFtZSBBUyBjbmFtZSwgZGVzdC52bmFtZSBBUyBkbmFtZSkpOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJUyB2bDIpLShkZXN0KSBD T0xVTU5TIChzcmMudm5hbWUgQVMgc25hbWUsIGRlc3Qudm5hbWUgQVMgZG5hbWUpKTsKIAogLS0g RXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBwcm9wZXJ0eSB2cHJvcDIKQEAg LTM5NCw1ICszOTcsNDcgQEAgQ1JFQVRFIFZJRVcgY3VzdG9tZXJzX3VzX3JlZGFjdGVkIEFTIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcDIgTUFUQ0ggKGMKIAogU0VMRUNUICogRlJP TSBjdXN0b21lcnNfdXNfcmVkYWN0ZWQ7CiAKKy0tIEdSQVBIX1RBQkxFIGluIFVERnMKK0NSRUFU RSBGVU5DVElPTiBvdXRfZGVncmVlKHNuYW1lIHZhcmNoYXIpIFJFVFVSTlMgdmFyY2hhciBBUyAk JAorREVDTEFSRQorICAgIG91dF9kZWdyZWUgaW50OworQkVHSU4KKyAgICBTRUxFQ1QgY291bnQo KikgSU5UTyBvdXRfZGVncmVlCisgICAgICAgIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChz cmMgV0hFUkUgc3JjLnZuYW1lID0gc25hbWUpLT4oKSBDT0xVTU5TIChzcmMudm5hbWUpKTsKKyAg ICBSRVRVUk4gb3V0X2RlZ3JlZTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFU RSBGVU5DVElPTiBkaXJlY3RfY29ubmVjdGlvbnMoc25hbWUgdmFyY2hhcikKK1JFVFVSTlMgVEFC TEUgKGNuYW1lIHZhcmNoYXIsIGRuYW1lIHZhcmNoYXIpCitBUyAkJAorICAgIFNFTEVDVCBjbmFt ZSwgZG5hbWUKKyAgICAgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBXSEVSRSBz cmMudm5hbWUgPSBzbmFtZSktW2Nvbm5dLT4oZHN0KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDT0xVTU5TIChjb25uLmVuYW1lIEFTIGNuYW1lLCBkc3Qudm5hbWUgQVMgZG5hbWUpKTsK KyQkIExBTkdVQUdFIFNRTDsKKworU0VMRUNUIHNuYW1lLCBvdXRfZGVncmVlKHNuYW1lKSBGUk9N IEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIElTIHZsMSkgQ09MVU1OUyAoc3JjLnZuYW1lIEFT IHNuYW1lKSk7CitTRUxFQ1Qgc25hbWUsIGNuYW1lLCBkbmFtZQorICAgIEZST00gR1JBUEhfVEFC TEUgKGcxIE1BVENIIChzcmMgSVMgdmwxKSBDT0xVTU5TIChzcmMudm5hbWUgQVMgc25hbWUpKSwK KyAgICAgICAgIExBVEVSQUwgZGlyZWN0X2Nvbm5lY3Rpb25zKHNuYW1lKTsKKworLS0gR1JBUEhf VEFCTEUgam9pbmVkIHRvIGEgcmVndWxhciB0YWJsZQorU0VMRUNUICoKKyAgICBGUk9NIGN1c3Rv bWVycyBjbywKKyAgICAgICAgIEdSQVBIX1RBQkxFIChteXNob3AyIE1BVENIIChjZyBJUyBjdXN0 b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9IGNvLmFkZHJlc3MpLVtJUyBjdXN0b21lcl9vcmRlcnNd LT4obyBJUyBvcmRlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIChj Zy5uYW1lX3JlZGFjdGVkIEFTIGN1c3RvbWVyX25hbWVfcmVkYWN0ZWQpKQorICAgIFdIRVJFIGNv LmN1c3RvbWVyX2lkID0gMTsKKworLS0gcXVlcnkgd2l0aGluIGdyYXBoIHRhYmxlCitTRUxFQ1Qg c25hbWUsIGRuYW1lCisgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyktPihkZXN0 KQorICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHNyYy52cHJvcDEgPiAoU0VMRUNUIG1h eCh2MS52cHJvcDEpIEZST00gdjEpCisgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyhz cmMudm5hbWUgYXMgc25hbWUsIGRlc3Qudm5hbWUgYXMgZG5hbWUpKTsKK1NFTEVDVCBzbmFtZSwg ZG5hbWUKKyAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAg ICAgICAgICAgICAgICAgICAgICAgV0hFUkUgb3V0X2RlZ3JlZShzcmMudm5hbWUpID4gKFNFTEVD VCBtYXgob3V0X2RlZ3JlZShubmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAo bm9kZSkgQ09MVU1OUyAobm9kZS52bmFtZSBBUyBubmFtZSkpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIENPTFVNTlMoc3JjLnZuYW1lIGFzIHNuYW1lLCBkZXN0LnZuYW1lIGFzIGRuYW1lKSk7 CisKIC0tIGxlYXZlIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMKIC0tRFJPUCBTQ0hFTUEg Z3JhcGhfdGFibGVfdGVzdHMgQ0FTQ0FERTsKLS0gCjIuMzQuMQoK --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0002-support-WHERE-clause-in-graph-pattern-20241205.patch" Content-Disposition: attachment; filename="0002-support-WHERE-clause-in-graph-pattern-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yquk1 RnJvbSA0YTVmN2RiMGE5Zjk2YThkZGFmZDcyZWQyNWM3YWFlYzc3ZjAwNWE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogTW9uLCA4IEp1bCAyMDI0IDExOjUzOjI1ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAyLzhdIHN1cHBvcnQgV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KCi0tLQog c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAgfCAgOSArKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCB8IDMzICsrKysrKysrKysr KysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwgICAgICB8 IDE0ICsrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5kZXggZWUx MTU5NGQyY2YuLjRiNzg3YTJlODhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0zMTAsNiArMzEwLDE1IEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRo KFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJcXVhbF9leHBycyA9IGxp c3RfY29uY2F0KHF1YWxfZXhwcnMsIGdwZS0+cXVhbF9leHBycyk7CiAJfQogCisJaWYgKHJ0ZS0+ Z3JhcGhfcGF0dGVybi0+d2hlcmVDbGF1c2UpCisJeworCQlOb2RlCSAgICpwYXRoX3F1YWxzID0g cmVwbGFjZV9wcm9wZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsCisJCQkJCQkJCQkJCQkJICAgKE5vZGUg KikgcnRlLT5ncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwKKwkJCQkJCQkJCQkJCQkgICBncmFw aF9wYXRoKTsKKworCQlxdWFsX2V4cHJzID0gbGFwcGVuZChxdWFsX2V4cHJzLCBwYXRoX3F1YWxz KTsKKwl9CisKIAlwYXRoX3F1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihmcm9tbGlzdCwK IAkJCQkJCQkJCQkoTm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIHF1YWxfZXhwcnMsIC0x KSk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKaW5kZXggODEz ZmM5YWEyNTUuLmRlMGQxNjNlODMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBo X3RhYmxlLm91dApAQCAtMjM3LDYgKzIzNywxMiBAQCBjcmVhdGUgdGFibGUgZTFfMiAoaWRfMSBp bnQsCiAJCQkJCWlkXzJfMiBpbnQsCiAJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAogCQkJCQllcHJv cDEgaW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MiBhbmQgdjEKK2NyZWF0ZSB0YWJsZSBlMl8x IChpZF8yXzEgaW50LAorCQkJCQlpZF8yXzIgaW50LAorICAgICAgICAgICAgICAgICAgICBpZF8x IGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOwogLS0gZWRn ZSBjb25uZWN0aW5nIHYxIGFuZCB2MwogY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50LAogCQkJ CQlpZF8zIGludCwKQEAgLTI2OCw2ICsyNzQsMTEgQEAgZWRnZSB0YWJsZXMgKAogCQlkZXN0aW5h dGlvbiBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKIAkJbGFi ZWwgZWwxIHByb3BlcnRpZXMgKGVwcm9wMSwgZW5hbWUpCiAgICAgICAgIGxhYmVsIGwxIHByb3Bl cnRpZXMgKGVuYW1lIGFzIGVsbmFtZSksCisJZTJfMSBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8x KQorCQlzb3VyY2Uga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIp CisJCWRlc3RpbmF0aW9uIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWxhYmVsIGVs MSBwcm9wZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVz IChlbmFtZSBhcyBlbG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNl cyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCkBA IC0yOTYsMTcgKzMwNywxOCBAQCBpbnNlcnQgaW50byBlMV8yIHZhbHVlcyAoMSwgMTAwMCwgMiwg J2UxMjEnLCAxMDAwMSksCiBpbnNlcnQgaW50byBlMV8zIHZhbHVlcyAoMSwgMjAwMywgJ2UxMzEn LCAxMDAwMyksCiAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMjAwMSwgJ2UxMzInLCAxMDAw NCk7CiBpbnNlcnQgaW50byBlMl8zIHZhbHVlcyAoMTAwMCwgMiwgMjAwMiwgJ2UyMzEnLCAxMDAw NSk7CitpbnNlcnQgaW50byBlMl8xIHZhbHVlcyAoMTAwMCwgMSwgMiwgJ2UyMTEnLCAxMDAwNik7 CiAtLSBlbXB0eSBlbGVtZW50IHBhdGggcGF0dGVybiwgY291bnRzIG51bWJlciBvZiBlZGdlcyBp biB0aGUgZ3JhcGgKIFNFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAo KS1bXS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKICBjb3VudCAKIC0tLS0tLS0KLSAgICAgNQor ICAgICA2CiAoMSByb3cpCiAKIFNFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKICBjb3VudCAKIC0tLS0tLS0KLSAgICAg NQorICAgICA2CiAoMSByb3cpCiAKIC0tIFZlcnRleCBlbGVtZW50IHYyIGhhcyBsYWJlbCB2bDMg d2hpY2ggZXhwb3NlcyBwcm9wZXJ0eSB2cHJvcDEuIEJ1dCB2bDMgaXMKQEAgLTMzNyw2ICszNDks MTQgQEAgc2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9t IGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBpcwogIHYxMSB8IGUxMzIgfCB2MzEgIHwgdmwzX3By b3AgfCAgICAgICAgfCAgIDIwMTAKICg0IHJvd3MpCiAKKy0tIFdIRVJFIGNsYXVzZSBpbiBncmFw aCBwYXR0ZXJuCitTRUxFQ1Qgc2VsZiwgdGhyb3VnaCBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktPihiKS0+KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIGFuZCBhLnZuYW1lIDw+IGIu dm5hbWUgQ09MVU1OUyAoYS52bmFtZSBhcyBzZWxmLCBiLnZuYW1lIGFzIHRocm91Z2gpKTsKKyBz ZWxmIHwgdGhyb3VnaCAKKy0tLS0tLSstLS0tLS0tLS0KKyB2MTIgIHwgdjIxCisgdjIxICB8IHYx MgorKDIgcm93cykKKwogLS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBw cm9wZXJ0eSB2cHJvcDIKIHNlbGVjdCBzcmMsIHNyY192cHJvcDIsIGNvbm4sIGRlc3QgZnJvbSBn cmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2 bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBhLnZwcm9wMiBhcyBzcmNfdnByb3AyLCBiLmVu YW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCkpOwpAQCAtMzYyLDggKzM4Miw5IEBAIHNlbGVj dCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3QpIGNvbHVt bnMgKHNyYy52bmFtZSBhcyBzCiAgdjExICAgIHwgZTEyMSAgIHwgdjIyICAgIHwgICAxMCB8ICAg ICAgfCAgICAgICAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAxMDAwMSB8ICAgICAgIAog IHYxMSAgICB8IGUxMzEgICB8IHYzMyAgICB8ICAgMTAgfCAgICAgIHwgICAgICAgICAgfCAyMDMw IHwgICAgICB8IHZsM19wcm9wIHwgMTAwMDMgfCAgICAgICAKICB2MTEgICAgfCBlMTMyICAgfCB2 MzEgICAgfCAgIDEwIHwgICAgICB8ICAgICAgICAgIHwgMjAxMCB8ICAgICAgfCB2bDNfcHJvcCB8 IDEwMDA0IHwgICAgICAgCisgdjIxICAgIHwgZTIxMSAgIHwgdjEyICAgIHwgMTAxMCB8IDExMDAg fCB2bDJfcHJvcCB8ICAgMjAgfCAgICAgIHwgICAgICAgICAgfCAxMDAwNiB8ICAgICAgIAogIHYy MiAgICB8IGUyMzEgICB8IHYzMiAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAyMDIwIHwg ICAgICB8IHZsM19wcm9wIHwgICAgICAgfCAxMDAwNTAKLSg1IHJvd3MpCisoNiByb3dzKQogCiAt LSB0aHJlZSBsYWJlbCBkaXNqdW5jdGlvbgogc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAoZzEg bWF0Y2ggKHNyYyBJUyB2bDEgfCB2bDIgfCB2bDMpLVtjb25uXS0+KGRlc3QpIGNvbHVtbnMgKHNy Yy52bmFtZSBhcyBzdm5hbWUsIGNvbm4uZW5hbWUgYXMgY2VuYW1lLCBkZXN0LnZuYW1lIGFzIGR2 bmFtZSkpOwpAQCAtMzczLDggKzM5NCw5IEBAIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcx IG1hdGNoIChzcmMgSVMgdmwxIHwgdmwyIHwgdmwzKS1bY29ubl0tPihkZXN0KSBjb2x1CiAgdjEx ICAgIHwgZTEyMSAgIHwgdjIyCiAgdjExICAgIHwgZTEzMSAgIHwgdjMzCiAgdjExICAgIHwgZTEz MiAgIHwgdjMxCisgdjIxICAgIHwgZTIxMSAgIHwgdjEyCiAgdjIyICAgIHwgZTIzMSAgIHwgdjMy Ci0oNSByb3dzKQorKDYgcm93cykKIAogLS0gZ3JhcGgnaWNhbCBxdWVyeTogZmluZCBhIHZlcnRl eCB3aGljaCBpcyBub3QgY29ubmVjdGVkIHRvIGFueSBvdGhlciB2ZXJ0ZXggYXMgYSBzb3VyY2Ug b3IgYSBkZXN0aW5hdGlvbi4KIHdpdGggYWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyBhcyAoc2VsZWN0 IHN2biwgZHZuIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3Qp IGNvbHVtbnMgKHNyYy52bmFtZSBhcyBzdm4sIGRlc3Qudm5hbWUgYXMgZHZuKSkpLApAQCAtMzk0 LDggKzQxNiw5IEBAIHNlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNo IChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpCiAgdjExIHwgZTEyMSB8IHYyMgog IHYxMSB8IGUxMzEgfCB2MzMKICB2MTEgfCBlMTMyIHwgdjMxCisgdjIxIHwgZTIxMSB8IHYxMgog IHYyMiB8IGUyMzEgfCB2MzIKLSg1IHJvd3MpCisoNiByb3dzKQogCiAtLSBwcm9wZXJ0eSBncmFw aCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHByb3BlcnRpZXMgc2FtZSBh cyB0aGUKIC0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBvbmVudHMgZnJvbSB0aGUg c3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUu c3FsCmluZGV4IDJiNDNiMTM2ZWFjLi40ODY1OTRhOTkzNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dy YXBoX3RhYmxlLnNxbApAQCAtMTY5LDYgKzE2OSwxMiBAQCBjcmVhdGUgdGFibGUgZTFfMiAoaWRf MSBpbnQsCiAJCQkJCWlkXzJfMiBpbnQsCiAJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAogCQkJCQll cHJvcDEgaW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MiBhbmQgdjEKK2NyZWF0ZSB0YWJsZSBl Ml8xIChpZF8yXzEgaW50LAorCQkJCQlpZF8yXzIgaW50LAorICAgICAgICAgICAgICAgICAgICBp ZF8xIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOwogCiAt LSBlZGdlIGNvbm5lY3RpbmcgdjEgYW5kIHYzCiBjcmVhdGUgdGFibGUgZTFfMyAoaWRfMSBpbnQs CkBAIC0yMDMsNiArMjA5LDExIEBAIGVkZ2UgdGFibGVzICgKIAkJZGVzdGluYXRpb24ga2V5IChp ZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCiAJCWxhYmVsIGVsMSBwcm9w ZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQogICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFt ZSBhcyBlbG5hbWUpLAorCWUyXzEga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRfMSkKKwkJc291cmNl IGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorCQlkZXN0aW5h dGlvbiBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlsYWJlbCBlbDEgcHJvcGVydGll cyAoZXByb3AxLCBlbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMg ZWxuYW1lKSwKIAllMV8zCiAJCXNvdXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQog CQlkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQpAQCAtMjM2LDYgKzI0 Nyw3IEBAIGluc2VydCBpbnRvIGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAx KSwKIGluc2VydCBpbnRvIGUxXzMgdmFsdWVzICgxLCAyMDAzLCAnZTEzMScsIDEwMDAzKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICgxLCAyMDAxLCAnZTEzMicsIDEwMDA0KTsKIGluc2VydCBp bnRvIGUyXzMgdmFsdWVzICgxMDAwLCAyLCAyMDAyLCAnZTIzMScsIDEwMDA1KTsKK2luc2VydCBp bnRvIGUyXzEgdmFsdWVzICgxMDAwLCAxLCAyLCAnZTIxMScsIDEwMDA2KTsKIAogLS0gZW1wdHkg ZWxlbWVudCBwYXRoIHBhdHRlcm4sIGNvdW50cyBudW1iZXIgb2YgZWRnZXMgaW4gdGhlIGdyYXBo CiBTRUxFQ1QgY291bnQoKikgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKCktW10tPigpIENP TFVNTlMgKDEgYXMgb25lKSk7CkBAIC0yNTAsNiArMjYyLDggQEAgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxIHwgdmwyKSBDT0xVTU5TIChhLnZuYW1lLAogYS52 cHJvcDEpKTsKIC0tIHZwcm9wMiBpcyBhc3NvY2lhdGVkIHdpdGggdmwyIGJ1dCBub3QgdmwzCiBz ZWxlY3Qgc3JjLCBjb25uLCBkZXN0LCBscHJvcDEsIHZwcm9wMiwgdnByb3AxIGZyb20gZ3JhcGhf dGFibGUgKGcxIG1hdGNoIChhIGlzIHZsMSktW2IgaXMgZWwxXS0+KGMgaXMgdmwyIHwgdmwzKSBj b2x1bW5zIChhLnZuYW1lIGFzIHNyYywgYi5lbmFtZSBhcyBjb25uLCBjLnZuYW1lIGFzIGRlc3Qs IGMubHByb3AxLCBjLnZwcm9wMiwgYy52cHJvcDEpKTsKKy0tIFdIRVJFIGNsYXVzZSBpbiBncmFw aCBwYXR0ZXJuCitTRUxFQ1Qgc2VsZiwgdGhyb3VnaCBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktPihiKS0+KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIGFuZCBhLnZuYW1lIDw+IGIu dm5hbWUgQ09MVU1OUyAoYS52bmFtZSBhcyBzZWxmLCBiLnZuYW1lIGFzIHRocm91Z2gpKTsKIAog LS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBwcm9wZXJ0eSB2cHJvcDIK LS0gCjIuMzQuMQoK --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0003-Support-cyclic-path-pattern-20241205.patch" Content-Disposition: attachment; filename="0003-Support-cyclic-path-pattern-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yquo2 RnJvbSBmYmM2MjI3ZTA0YmY2ZDFmNzc0MGI1NGI5ZGY2YTM1NGE0NjJhOTk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVGh1LCAxIEF1ZyAyMDI0IDEwOjUyOjM1ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAzLzhdIFN1cHBvcnQgY3ljbGljIHBhdGggcGF0dGVybi4KCkEgY3ljbGljIHBhdGgg cGF0dGVybiBpcyBhIHBhdGggcGF0dGVybnMgd2hlcmUgYW4gZWxlbWVudCBwYXR0ZXJuIHZhcmlh YmxlCnJlcGVhdHMgaW4gbXVsdGlwbGUgZWxlbWVudCBwYXRoIHBhdHRlcm5zLiBJbiBzdWNoIGEg cGF0aCBwYXR0ZXJuIHRoZSBlbGVtZW50CnBhdHRlcm5zIHdpdGggdGhlIHNhbWUgdmFyaWFibGUg aW5kaWNhdGUgdGhlIHNhbWUgZWxlbWVudCBpbiB0aGUgcGF0aC4KCkVsZW1lbnRzIHdoaWNoIHNo YXJlIHRoZSB2YXJpYWJsZSBuYW1lIHNob3VsZCBoYXZlIHRoZSBzYW1lIGVsZW1lbnQgdHlwZS4g VGhlCmVsZW1lbnQgcGF0dGVybnMgc2hhcmluZyB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIHNob3Vs ZCBoYXZlIHNhbWUgbGFiZWwKZXhwcmVzc2lvbi4gVGhlIHBhdHRlcm5zIG1heSBiZSBoYXZlIGRp ZmZlcmVudCBjb25kaXRpb25zIHdoaWNoIGFyZSBmaW5hbGx5CkFORGVkIHNpbmNlIHRoZXkgYWxs IHJlcHJlc2VudCB0aGUgc2FtZSBlbGVtZW50LgoKV2hpbGUgaXQncyBlYXN5IHRvIGltYWdpbmUg YSByZXBlYXRlZCB2ZXJ0ZXggcGF0dGVybiwgYSByZXBlYXRlZCBlZGdlIHBhdHRlcm4KaXMgc2xp Z2h0bHkgY29tcGxleC4gQW4gZWRnZSBjb25uZWN0cyBvbmx5IHR3byB2ZXJ0aWNlcywgYW5kIHRo dXMgYSByZXBlYXRlZAplZGdlIHBhdHRlcm4gY29uc3RyYWlucyB0aGUgYWRqYWNlbnQgdmVydGV4 IHBhdHRlcm5zIGV2ZW4gaWYgdGhleSBoYXZlCmRpZmZlcmVudCB2YXJpYWJsZSBuYW1lcy4gU3Vj aCBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZC4KCkF1dGhvcjogQXNodXRvc2ggQmFwYXQKLS0t CiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgICB8IDM5MCArKysrKysr KysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91 dCB8IDExOSArKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwgICAg ICB8ICA1MiArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDA3IGluc2VydGlvbnMoKyksIDE1NCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5kZXggNGI3 ODdhMmU4OGYuLjZlMmU2ZWQzOGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0zOCwyNCArMzgsNDUgQEAKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgog CiAKKy8qCisgKiBSZXByZXNlbnRzIG9uZSBwYXRoIGZhY3RvciBpbiBhIHBhdGguCisgKgorICog T25lIHBhdGggZmFjdG9yIGNvcnJlc3BvbmRzIHRvIG9uZSBlbGVtZW50IHBhdHRlcm4gaW4gYSBz aW1wbGUgcGF0aC4KKyAqCisgKiBJbiBhIGN5Y2xpYyBwYXRoLCBvbmUgcGF0aCBmYWN0b3IgbWF5 IGNvcnJlc3BvbmQgdG8gb25lIG9yIG1vcmUgZWxlbWVudAorICogcGF0dGVybnMgYWxsIHBvaW50 aW5nIHRvIHRoZSBzYW1lIGdyYXBoIGVsZW1lbnQuIFRoZSBtZW1iZXJzIG9mIHN1Y2ggYSBwYXRo CisgKiBmYWN0b3IgYXJlIGEgY29tYmluYXRpb24gb2YgY29ycmVzcG9uZGluZyBzcGVjaWZpY2F0 aW9ucyBpbiB0aGUgZWxlbWVudAorICogcGF0dGVybnMuCisgKi8KK3N0cnVjdCBwYXRoX2ZhY3Rv cgoreworCUdyYXBoRWxlbWVudFBhdHRlcm5LaW5kIGtpbmQ7CisJY29uc3QgY2hhciAqdmFyaWFi bGU7CisJTm9kZQkgICAqbGFiZWxleHByOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOworCWludAkJ CWZhY3RvcnBvczsJCS8qIFBvc2l0aW9uIG9mIHRoaXMgcGF0aCBmYWN0b3IgaW4gYSBwYXRoLiAq LworCUxpc3QJICAgKmxhYmVsb2lkczsJCS8qIE9JRHMgb2YgYWxsIHRoZSBsYWJlbHMgcmVmZXJl bmNlZCBpbgorCQkJCQkJCQkgKiBsYWJlbGV4cHIuICovCisJLyogTGlua3MgdG8gdmVydGV4IHBh dGggZmFjdG9ycyBjb25uZWN0ZWQgYnkgdGhpcyBlZGdlIHBhdGggZmFjdG9yLiAqLworCXN0cnVj dCBwYXRoX2ZhY3RvciAqc3JjX3BmOworCXN0cnVjdCBwYXRoX2ZhY3RvciAqZGVzdF9wZjsKK307 CisKIC8qCiAgKiBSZXByZXNlbnRzIG9uZSBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICh2ZXJ0ZXgg b3IgZWRnZSkgaW4gdGhlIHBhdGguCiAgKgogICogTGFiZWwgZXhwcmVzc2lvbiBpbiBhbiBlbGVt ZW50IHBhdHRlcm4gcmVzb2x2ZXMgaW50byBhIHNldCBvZiBlbGVtZW50cy4gRm9yCiAgKiBlYWNo IG9mIHRob3NlIGVsZW1lbnRzIHdlIGNyZWF0ZSBvbmUgZ3JhcGhfcGF0aF9lbGVtZW50IG9iamVj dC4KICAqLwotc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudAorc3RydWN0IHBhdGhfZWxlbWVudAog ewogCU9pZAkJCWVsZW1vaWQ7CiAJT2lkCQkJcmVsb2lkOwotCWludAkJCXJ0aW5kZXg7Ci0JTGlz dAkgICAqbGFiZWxvaWRzOwogCU9pZAkJCXNyY3ZlcnRleGlkOwotCWludAkJCXNyY2VsZW1fcG9z OwogCU9pZAkJCWRlc3R2ZXJ0ZXhpZDsKLQlpbnQJCQlkZXN0ZWxlbV9wb3M7CiAJTGlzdAkgICAq cXVhbF9leHByczsKLQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpwYXJlbnRfZ2VwOworCS8qIFBhdGgg ZmFjdG9yIGZyb20gd2hpY2ggdGhpcyBlbGVtZW50IGlzIGRlcml2ZWQuICovCisJc3RydWN0IHBh dGhfZmFjdG9yICpwYXRoX2ZhY3RvcjsKIH07CiAKIHN0YXRpYyBOb2RlICpyZXBsYWNlX3Byb3Bl cnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5n cyk7CkBAIC02Nyw3ICs4OCw3IEBAIHN0YXRpYyBMaXN0ICpnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9w YXRoX3BhdHRlcm5fcmVjdXJzZShSYW5nZVRibEVudHJ5ICpydGUsIExpc3QKIHN0YXRpYyBRdWVy eSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpy dGUpOwogc3RhdGljIFF1ZXJ5ICpnZW5lcmF0ZV91bmlvbl9mcm9tX3BhdGhxdWVyaWVzKExpc3Qg KipwYXRocXVlcmllcyk7CiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2dlcF9raW5kX25hbWUoR3Jh cGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7Ci1zdGF0aWMgTGlzdCAqZ2V0X2VsZW1lbnRz X2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAsIGludCBl bGVtcG9zKTsKK3N0YXRpYyBMaXN0ICpnZXRfcGF0aF9lbGVtZW50c19mb3JfcGF0aF9mYWN0b3Io T2lkIHByb3BncmFwaGlkLCBzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBmKTsKIHN0YXRpYyBib29sIGlz X3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBwcm9wb2lk KTsKIHN0YXRpYyBjb25zdCBjaGFyICpnZXRfZ3JhcGhfZWxlbV9raW5kX25hbWUoR3JhcGhFbGVt ZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CiBzdGF0aWMgTm9kZSAqZ2V0X2VsZW1lbnRfcHJvcGVy dHlfZXhwcihPaWQgZWxlbW9pZCwgT2lkIHByb3BvaWQsIGludCBydGluZGV4KTsKQEAgLTE1Nyw4 ICsxNzgsOSBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRy eSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiB7CiAJTGlzdAkgICAqcGF0aHF1ZXJpZXMgPSBO SUw7CiAJTGlzdAkgICAqcGF0aF9lbGVtX2xpc3RzID0gTklMOwotCUxpc3RDZWxsICAgKmxjOwot CWludAkJCWVsZW1wb3MgPSAwOworCWludAkJCWZhY3RvcnBvcyA9IDA7CisJTGlzdAkgICAqcGF0 aF9mYWN0b3JzID0gTklMOworCXN0cnVjdCBwYXRoX2ZhY3RvciAqcHJldl9wZiA9IE5VTEw7CiAK IAlBc3NlcnQobGlzdF9sZW5ndGgocGF0aF9wYXR0ZXJuKSA+IDApOwogCkBAIC0xNjYsOSArMTg4 LDkgQEAgZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0 ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQogCSAqIEZvciBldmVyeSBlbGVtZW50IHBhdHRlcm4gaW4g dGhlIGdpdmVuIHBhdGggcGF0dGVybiBjb2xsZWN0IGFsbCB0aGUKIAkgKiBncmFwaCBlbGVtZW50 cyB0aGF0IHNhdGlzZnkgdGhlIGVsZW1lbnQgcGF0dGVybi4KIAkgKi8KLQlmb3JlYWNoKGxjLCBw YXRoX3BhdHRlcm4pCisJZm9yZWFjaF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGdlcCwgcGF0 aF9wYXR0ZXJuKQogCXsKLQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0X25vZGUo R3JhcGhFbGVtZW50UGF0dGVybiwgbGMpOworCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBmID0gTlVM TDsKIAogCQlpZiAoZ2VwLT5raW5kICE9IFZFUlRFWF9QQVRURVJOICYmCiAJCQlnZXAtPmtpbmQg IT0gRURHRV9QQVRURVJOX0xFRlQgJiYgZ2VwLT5raW5kICE9IEVER0VfUEFUVEVSTl9SSUdIVCkK QEAgLTE3NywxMyArMTk5LDEzMiBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4o UmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiAJCWlmIChnZXAtPnF1YW50 aWZpZXIpCiAJCQllbG9nKEVSUk9SLCAiZWxlbWVudCBwYXR0ZXJuIHF1YW50aWZpZXIgbm90IHN1 cHBvcnRlZCB5ZXQiKTsKIAotCQlwYXRoX2VsZW1fbGlzdHMgPSBsYXBwZW5kKHBhdGhfZWxlbV9s aXN0cywKLQkJCQkJCQkJICBnZXRfZWxlbWVudHNfZm9yX2dlcChydGUtPnJlbGlkLCBnZXAsIGVs ZW1wb3MrKykpOworCQkvKgorCQkgKiBFbGVtZW50IHBhdHRlcm5zIHdpdGggdGhlIHNhbWUgbmFt ZSByZXByZXNlbnQgdGhlIHNhbWUgZWxlbWVudCBhbmQKKwkJICogaGVuY2Ugc2FtZSBwYXRoIGZh Y3Rvci4gVGhleSBkbyBub3QgYWRkIGEgbmV3IGdyYXBoIGVsZW1lbnQgdG8gdGhlCisJCSAqIHF1 ZXJ5IGJ1dCBhZmZlY3QgdGhlIGxpbmtzIG9mIGFkamFjZW50IGVsZW1lbnRzLgorCQkgKi8KKwkJ Zm9yZWFjaF9wdHIoc3RydWN0IHBhdGhfZmFjdG9yLCBvdGhlciwgcGF0aF9mYWN0b3JzKQorCQl7 CisJCQlpZiAoZ2VwLT52YXJpYWJsZSAmJiBvdGhlci0+dmFyaWFibGUgJiYKKwkJCQlzdHJjbXAo Z2VwLT52YXJpYWJsZSwgb3RoZXItPnZhcmlhYmxlKSA9PSAwKQorCQkJeworCQkJCWlmIChvdGhl ci0+a2luZCAhPSBnZXAtPmtpbmQpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCS8qIFhYWDog dXNlIGNvcnJlY3QgZXJyb3IgY29kZS4gKi8KKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNnKCJlbGVtZW50IHBhdHRlcm5zIHdp dGggc2FtZSB2YXJpYWJsZSBuYW1lIFwiJXNcIiBidXQgZGlmZmVyZW50IGVsZW1lbnQgcGF0dGVy biB0eXBlcyIsCisJCQkJCQkJCQlnZXAtPnZhcmlhYmxlKSkpOworCisJCQkJLyoKKwkJCQkgKiBJ ZiBvbmx5IG9uZSBvZiB0aGUgdHdvIGVsZW1lbnQgcGF0dGVybnMgaGFzIGEgbGFiZWwKKwkJCQkg KiBleHByZXNzaW9uIHVzZSBpdC4gT3RoZXJ3aXNlIG1ha2Ugc3VyZSB0aGF0IGJvdGggb2YgdGhl bQorCQkJCSAqIGhhdmUgdGhlIHNhbWUgbGFiZWwgZXhwcmVzc2lvbi4gSWYgdGhleSBoYXZlIGRp ZmZlcmVudAorCQkJCSAqIGxhYmVsIGV4cHJlc3Npb25zIHRoZXkgbmVlZCB0byBiZSBjb25qdW5j dGVkLiBMYWJlbAorCQkJCSAqIGNvbmp1Y3Rpb24gaXMgbm90IHN1cHBvcnRlZCByaWdodCBub3cu CisJCQkJICovCisJCQkJaWYgKCFvdGhlci0+bGFiZWxleHByKQorCQkJCQlvdGhlci0+bGFiZWxl eHByID0gZ2VwLT5sYWJlbGV4cHI7CisJCQkJZWxzZSBpZiAoZ2VwLT5sYWJlbGV4cHIgJiYgIWVx dWFsKG90aGVyLT5sYWJlbGV4cHIsIGdlcC0+bGFiZWxleHByKSkKKwkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJLyogWFhYOiBVc2UgY29ycmVjdCBlcnJvciBjb2RlLiAqLworCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCSBlcnJtc2coImVs ZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgXCIlc1wiIGJ1dCBkaWZmZXJl bnQgbGFiZWwgZXhwcmVzc2lvbnMiLAorCQkJCQkJCQkJZ2VwLT52YXJpYWJsZSkpKTsKKworCQkJ CS8qIEJvdGggc2V0cyBvZiBjb25kaXRpb25zIGFwcGx5IHRvIHRoZSBlbGVtZW50IHBhdHRlcm4u ICovCisJCQkJaWYgKCFvdGhlci0+d2hlcmVDbGF1c2UpCisJCQkJCW90aGVyLT53aGVyZUNsYXVz ZSA9IGdlcC0+d2hlcmVDbGF1c2U7CisJCQkJZWxzZSBpZiAoZ2VwLT53aGVyZUNsYXVzZSkKKwkJ CQkJb3RoZXItPndoZXJlQ2xhdXNlID0gKE5vZGUgKikgbWFrZUJvb2xFeHByKEFORF9FWFBSLAor CQkJCQkJCQkJCQkJCQkJICAgbGlzdF9tYWtlMihvdGhlci0+d2hlcmVDbGF1c2UsIGdlcC0+d2hl cmVDbGF1c2UpLAorCQkJCQkJCQkJCQkJCQkJICAgLTEpOworCQkJCXBmID0gb3RoZXI7CisJCQkJ YnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoIXBmKQorCQl7CisJCQl7CisJCQkJcGYgPSBwYWxs b2MwX29iamVjdChzdHJ1Y3QgcGF0aF9mYWN0b3IpOworCQkJCXBmLT5mYWN0b3Jwb3MgPSBmYWN0 b3Jwb3MrKzsKKwkJCQlwZi0+a2luZCA9IGdlcC0+a2luZDsKKwkJCQlwZi0+bGFiZWxleHByID0g Z2VwLT5sYWJlbGV4cHI7CisJCQkJcGYtPnZhcmlhYmxlID0gZ2VwLT52YXJpYWJsZTsKKwkJCQlw Zi0+d2hlcmVDbGF1c2UgPSBnZXAtPndoZXJlQ2xhdXNlOworCisJCQkJcGF0aF9mYWN0b3JzID0g bGFwcGVuZChwYXRoX2ZhY3RvcnMsIHBmKTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIFNldHVw IGFkamFjZW50IHBhdGggZmFjdG9ycy4gSWYgbXVsdGlwbGUgZWRnZSBwYXR0ZXJucyBzaGFyZSB0 aGUKKwkJICogc2FtZSB2YXJpYWJsZSBuYW1lLCB0aGV5IGNvbnN0YWluIHRoZSBhZGphY2VudCB2 ZXJ0ZXggcGF0dGVybnMKKwkJICogc2luY2UgYW4gZWRnZSBjYW4gY29ubmVjdCBvbmx5IG9uZSBw YWlyIG9mIHZlcnRleGVzIGFuZCB0aG9zZQorCQkgKiB2ZXJ0ZXhlcyBhbHNvIG5lZWQgdG8gcmVw ZWF0ZWQgYWxvbmcgd2l0aCB0aGUgZWRnZSAoYSB3YWxrKS4gVGhpcworCQkgKiBtZWFucyB0aGF0 IHdlIGhhdmUgdG8gY29hbGVzY2UgdGhlIHZlcnRleCBwYXR0ZXJucyBhZGphY2VudCB0byBhCisJ CSAqIHJlcGVhdGVkIGVkZ2UgZXZlbiB0aG91Z2ggdGhleSBoYXZlIGRpZmZlcmVudCB2YXJpYWJs ZXMuICBFLmcuCisJCSAqIChhKS1bYl0tPihjKS1bYl08LShkKSBpbXBsaWVzIHRoYXQgKGEpIGFu ZCAoZCkgcmVwcmVzZW50IHRoZSBzYW1lCisJCSAqIHZlcnRleCBlbGVtZW50IHBhdHRlcm4uIFRo aXMgaXMgc2xpZ2hseSBoYXJkZXIgdG8gaW1wbGVtZW50IGFuZAorCQkgKiBwcm9iYWJseSBsZXNz IHVzZWZ1bC4gSGVuY2Ugbm90IHN1cHBvcnRlZCBmb3Igbm93LgorCQkgKi8KKwkJaWYgKHByZXZf cGYpCisJCXsKKwkJCWlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJ CXsKKwkJCQlBc3NlcnQoIUlTX0VER0VfUEFUVEVSTihwZi0+a2luZCkpOworCQkJCWlmIChwcmV2 X3BmLT5kZXN0X3BmICYmIHByZXZfcGYtPmRlc3RfcGYgIT0gcGYpCisJCQkJCWVsb2coRVJST1Is ICJBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4g YSBjeWNsaWMgcGF0dGVybi4iKTsKKwkJCQlwcmV2X3BmLT5kZXN0X3BmID0gcGY7CisJCQl9CisJ CQllbHNlIGlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUKQorCQkJeworCQkJ CUFzc2VydCghSVNfRURHRV9QQVRURVJOKHBmLT5raW5kKSk7CisJCQkJaWYgKHByZXZfcGYtPnNy Y19wZiAmJiBwcmV2X3BmLT5zcmNfcGYgIT0gcGYpCisJCQkJCWVsb2coRVJST1IsICJBbiBlZGdl IGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4gYSBjeWNsaWMg cGF0dGVybi4iKTsKKwkJCQlwcmV2X3BmLT5zcmNfcGYgPSBwZjsKKwkJCX0KKwkJCWVsc2UgaWYg KHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSkKKwkJCXsKKwkJCQkvKiBXZSBkb24n dCBzdXBwb3J0IHVuZGlyZWN0ZWQgZWRnZXMgeWV0LiAqLworCQkJCUFzc2VydChmYWxzZSk7CisJ CQl9CisKKwkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpCisJCQl7CisJCQkJ QXNzZXJ0KCFJU19FREdFX1BBVFRFUk4ocHJldl9wZi0+a2luZCkpOworCQkJCWlmIChwZi0+c3Jj X3BmICYmIHBmLT5zcmNfcGYgIT0gcHJldl9wZikKKwkJCQkJZWxvZyhFUlJPUiwgIkFuIGVkZ2Ug Y2FuIG5vdCBjb25uZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5Y2xpYyBw YXR0ZXJuLiIpOworCQkJCXBmLT5zcmNfcGYgPSBwcmV2X3BmOworCQkJfQorCQkJZWxzZSBpZiAo cGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQpCisJCQl7CisJCQkJQXNzZXJ0KCFJU19FREdF X1BBVFRFUk4ocHJldl9wZi0+a2luZCkpOworCQkJCWlmIChwZi0+ZGVzdF9wZiAmJiBwZi0+ZGVz dF9wZiAhPSBwcmV2X3BmKQorCQkJCQllbG9nKEVSUk9SLCAiQW4gZWRnZSBjYW4gbm90IGNvbm5l Y3QgbW9yZSB0aGFuIHR3byB2ZXJ0ZXhlcyBldmVuIGluIGEgY3ljbGljIHBhdHRlcm4uIik7CisJ CQkJcGYtPmRlc3RfcGYgPSBwcmV2X3BmOworCQkJfQorCQkJZWxzZSBpZiAocGYtPmtpbmQgPT0g RURHRV9QQVRURVJOX0FOWSkKKwkJCXsKKwkJCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0 ZWQgZWRnZXMgeWV0LiAqLworCQkJCUFzc2VydChmYWxzZSk7CisJCQl9CisJCX0KKworCQlwcmV2 X3BmID0gcGY7CiAJfQogCisJLyoKKwkgKiBDb2xsZWN0IGxpc3Qgb2YgZWxlbWVudHMgZm9yIGVh Y2ggcGF0aCBmYWN0b3IuIERvIHRoaXMgYWZ0ZXIgYWxsIHRoZQorCSAqIGVkZ2UgbGlua3MgYXJl IHNldHVwIGNvcnJlY3RseS4KKwkgKi8KKwlmb3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9mYWN0b3Is IHBmLCBwYXRoX2ZhY3RvcnMpCisJCXBhdGhfZWxlbV9saXN0cyA9IGxhcHBlbmQocGF0aF9lbGVt X2xpc3RzLAorCQkJCQkJCQkgIGdldF9wYXRoX2VsZW1lbnRzX2Zvcl9wYXRoX2ZhY3RvcihydGUt PnJlbGlkLCBwZikpOworCiAJcGF0aHF1ZXJpZXMgPSBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRo X3BhdHRlcm5fcmVjdXJzZShydGUsIHBhdGhxdWVyaWVzLAogCQkJCQkJCQkJCQkJCQkJTklMLCBw YXRoX2VsZW1fbGlzdHMsIDApOwotCiAJaWYgKCFwYXRocXVlcmllcykKIAkJcGF0aHF1ZXJpZXMg PSBsaXN0X21ha2UxKGdlbmVyYXRlX3F1ZXJ5X2Zvcl9lbXB0eV9wYXRoX3BhdHRlcm4ocnRlKSk7 CiAKQEAgLTE5NiwxNSArMzM3LDEyIEBAIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVy bihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0dGVybikKIHN0YXRpYyBMaXN0ICoK IGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkg KnJ0ZSwgTGlzdCAqcGF0aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRoX2VsZW1f bGlzdHMsIGludCBlbGVtcG9zKQogewotCUxpc3QJICAgKmdlcF9lbGVtcyA9IGxpc3RfbnRoX25v ZGUoTGlzdCwgcGF0aF9lbGVtX2xpc3RzLCBlbGVtcG9zKTsKLQlMaXN0Q2VsbCAgICpsYzsKKwlM aXN0CSAgICpwYXRoX2VsZW1zID0gbGlzdF9udGhfbm9kZShMaXN0LCBwYXRoX2VsZW1fbGlzdHMs IGVsZW1wb3MpOwogCi0JZm9yZWFjaChsYywgZ2VwX2VsZW1zKQorCWZvcmVhY2hfcHRyKHN0cnVj dCBwYXRoX2VsZW1lbnQsIHBlLCBwYXRoX2VsZW1zKQogCXsKLQkJc3RydWN0IGdyYXBoX3BhdGhf ZWxlbWVudCAqZWxlbSA9IGxmaXJzdChsYyk7Ci0KIAkJLyogVXBkYXRlIGN1cnJlbnQgcGF0aCBi ZWluZyBidWlsdCB3aXRoIGN1cnJlbnQgZWxlbWVudC4gKi8KLQkJY3VyX3BhdGggPSBsYXBwZW5k KGN1cl9wYXRoLCBlbGVtKTsKKwkJY3VyX3BhdGggPSBsYXBwZW5kKGN1cl9wYXRoLCBwZSk7CiAK IAkJLyoKIAkJICogSWYgdGhpcyBpcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBwYXRoLCBnZW5l cmF0ZSBxdWVyeSBmb3IgdGhlCkBAIC0yMzgsNTAgKzM3Niw0NyBAQCBnZW5lcmF0ZV9xdWVyaWVz X2Zvcl9wYXRoX3BhdHRlcm5fcmVjdXJzZShSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhx dWVyaWVzLAogc3RhdGljIFF1ZXJ5ICoKIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJh bmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIHsKLQlMaXN0Q2VsbCAgICpsYzsK IAlRdWVyeQkgICAqcGF0aF9xdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlMaXN0CSAgICpmcm9t bGlzdCA9IE5JTDsKIAlMaXN0CSAgICpxdWFsX2V4cHJzID0gTklMOwogCiAJcGF0aF9xdWVyeS0+ Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOwogCi0JZm9yZWFjaChsYywgZ3JhcGhfcGF0aCkKKwlm b3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9lbGVtZW50LCBwZSwgZ3JhcGhfcGF0aCkKIAl7Ci0JCXN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IChzdHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50 ICopIGxmaXJzdChsYyk7Ci0JCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IGdwZS0+cGFyZW50 X2dlcDsKKwkJc3RydWN0IHBhdGhfZmFjdG9yICpwZiA9IHBlLT5wYXRoX2ZhY3RvcjsKIAkJUmFu Z2VUYmxSZWYgKnJ0cjsKIAkJUmVsYXRpb24JcmVsOwogCQlQYXJzZU5hbWVzcGFjZUl0ZW0gKnBu aTsKIAotCQlBc3NlcnQoZ2VwLT5raW5kID09IFZFUlRFWF9QQVRURVJOIHx8Ci0JCQkgICBnZXAt PmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVSTl9S SUdIVCk7Ci0JCUFzc2VydCghZ2VwLT5xdWFudGlmaWVyKTsKKwkJQXNzZXJ0KHBmLT5raW5kID09 IFZFUlRFWF9QQVRURVJOIHx8CisJCQkgICBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCB8 fCBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpOwogCi0JCWlmIChnZXAtPmtpbmQgPT0g RURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJ aWYgKHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUIHx8IHBmLT5raW5kID09IEVER0VfUEFU VEVSTl9SSUdIVCkKIAkJewotCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqc3JjX2dwZSA9 IGxpc3RfbnRoKGdyYXBoX3BhdGgsIGdwZS0+c3JjZWxlbV9wb3MpOwotCQkJc3RydWN0IGdyYXBo X3BhdGhfZWxlbWVudCAqZGVzdF9ncGUgPSBsaXN0X250aChncmFwaF9wYXRoLCBncGUtPmRlc3Rl bGVtX3Bvcyk7CisJCQlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpzcmNfcGU7CisJCQlzdHJ1Y3QgcGF0 aF9lbGVtZW50ICpkZXN0X2dlOwogCi0JCQkvKgotCQkJICogTWFrZSBzdXJlIHRoYXQgdGhlIHNv dXJjZSBhbmQgZGVzdGluYXRpb24gZWxlbWVudHMgb2YgdGhpcyBlZGdlCi0JCQkgKiBhcmUgcGxh Y2VkIGF0IHRoZSBleHBlY3RlZCBwb3NpdGlvbiBhbmQgaGF2ZSB0aGUgY29ycmV0Ci0JCQkgKiBS YW5nZVRibEVudHJ5IGluZGV4ZXMgYXMgc2V0dXAgYnkgY3JlYXRlX2dwZV9mb3JfZWxlbWVudCgp LgotCQkJICovCi0JCQlBc3NlcnQoZ3BlLT5zcmNlbGVtX3BvcyA9PSBzcmNfZ3BlLT5ydGluZGV4 IC0gMSAmJgotCQkJCSAgIGdwZS0+ZGVzdGVsZW1fcG9zID09IGRlc3RfZ3BlLT5ydGluZGV4IC0g MSk7CisJCQlBc3NlcnQocGYtPnNyY19wZiAmJiBwZi0+ZGVzdF9wZik7CisJCQlzcmNfcGUgPSBs aXN0X250aChncmFwaF9wYXRoLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3MpOworCQkJZGVzdF9nZSA9 IGxpc3RfbnRoKGdyYXBoX3BhdGgsIHBmLT5kZXN0X3BmLT5mYWN0b3Jwb3MpOworCisJCQkvKiBN YWtlIHN1cmUgdGhhdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQgdmVydGljZXMgYXJlIGNvcnJlY3Qu ICovCisJCQlBc3NlcnQocGYtPnNyY19wZiA9PSBzcmNfcGUtPnBhdGhfZmFjdG9yICYmCisJCQkJ ICAgcGYtPmRlc3RfcGYgPT0gZGVzdF9nZS0+cGF0aF9mYWN0b3IpOwogCiAJCQkvKgogCQkJICog SWYgdGhlIGdpdmVuIGVkZ2UgZWxlbWVudCBkb2VzIG5vdCBjb25uZWN0IHRoZSBhZGphY2VudCB2 ZXJ0ZXgKIAkJCSAqIGVsZW1lbnRzIGluIHRoaXMgcGF0aCwgdGhlIHBhdGggaXMgYnJva2VuLiBB YmFuZG9uIHRoaXMgcGF0aCBhcwogCQkJICogaXQgd29uJ3QgcmV0dXJuIGFueSByb3dzLgogCQkJ ICovCi0JCQlpZiAoc3JjX2dwZS0+ZWxlbW9pZCAhPSBncGUtPnNyY3ZlcnRleGlkIHx8Ci0JCQkJ ZGVzdF9ncGUtPmVsZW1vaWQgIT0gZ3BlLT5kZXN0dmVydGV4aWQpCisJCQlpZiAoc3JjX3BlLT5l bGVtb2lkICE9IHBlLT5zcmN2ZXJ0ZXhpZCB8fAorCQkJCWRlc3RfZ2UtPmVsZW1vaWQgIT0gcGUt PmRlc3R2ZXJ0ZXhpZCkKIAkJCQlyZXR1cm4gTlVMTDsKIAkJfQogCiAJCS8qIENyZWF0ZSBSYW5n ZVRibEVudHJ5IGZvciB0aGlzIGVsZW1lbnQgdGFibGUuICovCi0JCXJlbCA9IHRhYmxlX29wZW4o Z3BlLT5yZWxvaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCXJlbCA9IHRhYmxlX29wZW4ocGUtPnJl bG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJcG5pID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVs YXRpb24obWFrZV9wYXJzZXN0YXRlKE5VTEwpLCByZWwsIEFjY2Vzc1NoYXJlTG9jaywKIAkJCQkJ CQkJCQkJTlVMTCwgdHJ1ZSwgZmFsc2UpOwogCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CkBA IC0yOTcsMTcgKzQzMiwxNyBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRi bEVudHJ5ICpydGUsIExpc3QgKmdyYXBoX3BhdGgpCiAJCSAqIGhvbGRzIHRydWUuIFRoYXQgdGhl IGVsZW1lbnRzJyBSYW5nZVRibEVudHJ5cyBhcmUgYWRkZWQgaW4gdGhlCiAJCSAqIG9yZGVyIGlu IHdoaWNoIHRoZXkgYXBwZWFyIGluIHRoZSBwYXRoLgogCQkgKi8KLQkJQXNzZXJ0KGdwZS0+cnRp bmRleCA9PSBydHItPnJ0aW5kZXgpOworCQlBc3NlcnQocGYtPmZhY3RvcnBvcyArIDEgPT0gcnRy LT5ydGluZGV4KTsKIAotCQlpZiAoZ2VwLT53aGVyZUNsYXVzZSkKKwkJaWYgKHBmLT53aGVyZUNs YXVzZSkKIAkJewogCQkJTm9kZQkgICAqdHI7CiAKLQkJCXRyID0gcmVwbGFjZV9wcm9wZXJ0eV9y ZWZzKHJ0ZS0+cmVsaWQsIGdlcC0+d2hlcmVDbGF1c2UsIGxpc3RfbWFrZTEoZ3BlKSk7CisJCQl0 ciA9IHJlcGxhY2VfcHJvcGVydHlfcmVmcyhydGUtPnJlbGlkLCBwZi0+d2hlcmVDbGF1c2UsIGxp c3RfbWFrZTEocGUpKTsKIAogCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVhbF9leHBycywgdHIp OwogCQl9Ci0JCXF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJzLCBncGUtPnF1YWxf ZXhwcnMpOworCQlxdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocXVhbF9leHBycywgcGUtPnF1YWxf ZXhwcnMpOwogCX0KIAogCWlmIChydGUtPmdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKQpAQCAt MzM5LDcgKzQ3NCw2IEBAIHN0YXRpYyBRdWVyeSAqCiBnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlf cGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIHsKIAlRdWVyeQkgICAqcXVlcnkgPSBt YWtlTm9kZShRdWVyeSk7Ci0JTGlzdENlbGwgICAqbGM7CiAKIAlxdWVyeS0+Y29tbWFuZFR5cGUg PSBDTURfU0VMRUNUOwogCkBAIC0zNTUsOSArNDg5LDggQEAgZ2VuZXJhdGVfcXVlcnlfZm9yX2Vt cHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUpCiAJICogY29sdW1ucyBhcyBwcm9q ZWN0ZWQgYnkgR1JBUEhfVEFCTEUgY2xhdXNlLiBEbyB0aGlzIGJ5IGNvbnN0cnVjdGluZyBhCiAJ ICogdGFyZ2V0IGxpc3QgZnVsbCBvZiBOVUxMIHZhbHVlcy4KIAkgKi8KLQlmb3JlYWNoKGxjLCBy dGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMpCisJZm9yZWFjaF9ub2RlKFRhcmdldEVudHJ5LCB0ZSwg cnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zKQogCXsKLQkJVGFyZ2V0RW50cnkgKnRlID0gY29weU9i amVjdChsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpKTsKIAkJTm9kZQkgICAqbnRlID0gKE5v ZGUgKikgdGUtPmV4cHI7CiAKIAkJdGUtPmV4cHIgPSAoRXhwciAqKSBtYWtlTnVsbENvbnN0KGV4 cHJUeXBlKG50ZSksIGV4cHJUeXBtb2QobnRlKSwgZXhwckNvbGxhdGlvbihudGUpKTsKQEAgLTQ4 MywxMyArNjE2LDkgQEAgZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcyhMaXN0ICpwYXRo cXVlcmllcywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGwKIAkJICovCiAJCWlmICh0YXJn ZXRsaXN0KQogCQl7Ci0JCQlMaXN0Q2VsbCAgICp0bDsKLQogCQkJKnRhcmdldGxpc3QgPSBOSUw7 Ci0JCQlmb3JlYWNoKHRsLCBscXVlcnktPnRhcmdldExpc3QpCisJCQlmb3JlYWNoX25vZGUoVGFy Z2V0RW50cnksIHRsZSwgbHF1ZXJ5LT50YXJnZXRMaXN0KQogCQkJewotCQkJCVRhcmdldEVudHJ5 ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KHRsKTsKLQogCQkJCWlmICghdGxlLT5yZXNq dW5rKQogCQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBlbmQoKnRhcmdldGxpc3QsIHRsZSk7CiAJCQl9 CkBAIC01MTYsMjkgKzY0NSwyOSBAQCBnZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKExp c3QgKnBhdGhxdWVyaWVzLCBMaXN0ICoqcnRhYmxlLCBMaXN0ICoqdGFyZ2V0bAogICogSWYgdGhl IHR5cGUgb2YgZ3JhcGggZWxlbWVudCBkb2VzIG5vdCBmaXQgdGhlIGVsZW1lbnQgcGF0dGVybiBr aW5kLCB0aGUKICAqIGZ1bmN0aW9uIHJldHVybnMgTlVMTC4KICAqLwotc3RhdGljIHN0cnVjdCBn cmFwaF9wYXRoX2VsZW1lbnQgKgotY3JlYXRlX2dwZV9mb3JfZWxlbWVudChHcmFwaEVsZW1lbnRQ YXR0ZXJuICpnZXAsIE9pZCBlbGVtb2lkLCBpbnQgZWxlbXBvcykKK3N0YXRpYyBzdHJ1Y3QgcGF0 aF9lbGVtZW50ICoKK2NyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoc3RydWN0IHBhdGhfZmFjdG9yICpw ZiwgT2lkIGVsZW1vaWQpCiB7CiAJSGVhcFR1cGxlCWVsZXR1cCA9IFNlYXJjaFN5c0NhY2hlMShQ Uk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7CiAJRm9ybV9wZ19wcm9w Z3JhcGhfZWxlbWVudCBwZ2Vmb3JtOwotCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZTsK KwlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpwZTsKIAogCWlmICghZWxldHVwKQogCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIGVs ZW1vaWQpOwogCXBnZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVD VChlbGV0dXApKTsKIAotCWlmICgocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAm JiBnZXAtPmtpbmQgIT0gVkVSVEVYX1BBVFRFUk4pIHx8Ci0JCShwZ2Vmb3JtLT5wZ2VraW5kID09 IFBHRUtJTkRfRURHRSAmJiAhSVNfRURHRV9QQVRURVJOKGdlcC0+a2luZCkpKQorCWlmICgocGdl Zm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAmJiBwZi0+a2luZCAhPSBWRVJURVhfUEFU VEVSTikgfHwKKwkJKHBnZWZvcm0tPnBnZWtpbmQgPT0gUEdFS0lORF9FREdFICYmICFJU19FREdF X1BBVFRFUk4ocGYtPmtpbmQpKSkKIAl7CiAJCVJlbGVhc2VTeXNDYWNoZShlbGV0dXApOwogCQly ZXR1cm4gTlVMTDsKIAl9CiAKLQlncGUgPSBwYWxsb2MwX29iamVjdChzdHJ1Y3QgZ3JhcGhfcGF0 aF9lbGVtZW50KTsKLQlncGUtPnBhcmVudF9nZXAgPSBnZXA7Ci0JZ3BlLT5lbGVtb2lkID0gZWxl bW9pZDsKLQlncGUtPnJlbG9pZCA9IHBnZWZvcm0tPnBnZXJlbGlkOwotCWdwZS0+cXVhbF9leHBy cyA9IE5JTDsKKwlwZSA9IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBwYXRoX2VsZW1lbnQpOworCXBl LT5wYXRoX2ZhY3RvciA9IHBmOworCXBlLT5lbGVtb2lkID0gZWxlbW9pZDsKKwlwZS0+cmVsb2lk ID0gcGdlZm9ybS0+cGdlcmVsaWQ7CisJcGUtPnF1YWxfZXhwcnMgPSBOSUw7CiAKIAkvKgogCSAq IFdoZW4gdGhlIHBhdGggY29udGFpbmluZyB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252ZXJ0ZWQg aW50byBhIHF1ZXJ5CkBAIC01NTAsNTQgKzY3OSw0MCBAQCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50 KEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgT2lkIGVsZW1vaWQsIGludCBlbGVtcG9zKQogCSAq IGFzIHRoZSBudW1iZXIgb2YgcGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4uIEhlbmNlIHNh dmUgdGhlIGFzc3VtZWQKIAkgKiBydGluZGV4IHNvIHRoYXQgaXQgY2FuIGJlIHZlcmlmaWVkIGxh dGVyLgogCSAqLwotCWdwZS0+cnRpbmRleCA9IGVsZW1wb3MgKyAxOwotCi0JaWYgKElTX0VER0Vf UEFUVEVSTihnZXAtPmtpbmQpKQorCWlmIChJU19FREdFX1BBVFRFUk4ocGYtPmtpbmQpKQogCXsK LQkJaW50CQkJc3JjX3J0aW5kZXg7Ci0JCWludAkJCWRlc3RfcnRpbmRleDsKIAkJTGlzdAkgICAq ZWRnZV9xdWFsOwogCi0JCWdwZS0+c3JjdmVydGV4aWQgPSBwZ2Vmb3JtLT5wZ2VzcmN2ZXJ0ZXhp ZDsKLQkJZ3BlLT5kZXN0dmVydGV4aWQgPSBwZ2Vmb3JtLT5wZ2VkZXN0dmVydGV4aWQ7CisJCXBl LT5zcmN2ZXJ0ZXhpZCA9IHBnZWZvcm0tPnBnZXNyY3ZlcnRleGlkOworCQlwZS0+ZGVzdHZlcnRl eGlkID0gcGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkOworCQlBc3NlcnQocGYtPnNyY19wZiAmJiBw Zi0+ZGVzdF9wZik7CiAKLQkJaWYgKGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpCi0J CXsKLQkJCWdwZS0+c3JjZWxlbV9wb3MgPSBlbGVtcG9zIC0gMTsKLQkJCWdwZS0+ZGVzdGVsZW1f cG9zID0gZWxlbXBvcyArIDE7Ci0JCQlzcmNfcnRpbmRleCA9IGdwZS0+cnRpbmRleCAtIDE7Ci0J CQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXggKyAxOwotCQl9Ci0JCWVsc2UgaWYgKGdlcC0+ a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCkKLQkJewotCQkJZ3BlLT5zcmNlbGVtX3BvcyA9IGVs ZW1wb3MgKyAxOwotCQkJZ3BlLT5kZXN0ZWxlbV9wb3MgPSBlbGVtcG9zIC0gMTsKLQkJCXNyY19y dGluZGV4ID0gZ3BlLT5ydGluZGV4ICsgMTsKLQkJCWRlc3RfcnRpbmRleCA9IGdwZS0+cnRpbmRl eCAtIDE7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0 ZWQgZWRnZXMgeWV0LiAqLwotCQkJQXNzZXJ0KGZhbHNlKTsKLQkJCWdwZS0+c3JjZWxlbV9wb3Mg PSBlbGVtcG9zOwotCQkJZ3BlLT5kZXN0ZWxlbV9wb3MgPSBlbGVtcG9zOwotCQkJc3JjX3J0aW5k ZXggPSBncGUtPnJ0aW5kZXg7Ci0JCQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXg7Ci0JCX0K LQotCQllZGdlX3F1YWwgPSBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1cCwgZ3Bl LT5ydGluZGV4LCBzcmNfcnRpbmRleCwKKwkJLyoKKwkJICogV2hlbiB0aGUgcGF0aCBjb250YWlu aW5nIHRoaXMgZWxlbWVudCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEKKwkJICogcXVlcnkgKGdl bmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKCkpIHRoaXMgZWxlbWVudCB3aWxsIGJlCisJCSAq IGNvbnZlcnRlZCBpbnRvIGEgUmFuZ2VUYmxFbnRyeS4gVGhlIFJhbmdlVGJsRW50cnlzIGFyZSBj cmVhdGVkIGluCisJCSAqIHRoZSBzYW1lIG9yZGVyIGluIHdoaWNoIGVsZW1lbnRzIGFwcGVhciBp biB0aGUgcGF0aCBhbmQgdGh1cyBnZXQKKwkJICogY29uc2VjdXRpdmUgUmFuZ2VUYWJsZSBpbmRl eGVzLiBTbyB3ZSBjYW4gc2FmZWx5IGFzc2lnbiB0aGUKKwkJICogUmFuZ2VUYWJsZSBpbmRleCBv ZiB0aGlzIGVsZW1lbnQgYmVmb3JlIGNyZWF0aW5nIFJhbmdlVGJsRW50cnkgZm9yCisJCSAqIGl0 LiBUaGlzIGhlbHBzIGNyYWZ0aW5nIHRoZSBxdWFscyBsaW5raW5nIGFuIGVkZ2UgdG8gdGhlIGFk amFjZW50CisJCSAqIHZlcnRleGVzIG9ubHkgb25jZSB3aGlsZSB3ZSBoYXZlIGFjY2VzcyB0byB0 aGUgY2F0YWxvZyBlbnRyeSBvZiB0aGUKKwkJICogZWxlbWVudC4gT3RoZXJ3aXNlLCB3ZSBuZWVk IHRvIGNyYWZ0IHRoZSBxdWFscyBhcyBtYW55IHRpbWVzIGFzIHRoZQorCQkgKiBudW1iZXIgb2Yg cGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4sIGZldGNoaW5nIHRoZSBjYXRhbG9nIGVudHJ5 CisJCSAqIGVhY2ggdGltZS4KKwkJICovCisJCWVkZ2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVydGV4 X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPnNyY19wZi0+ZmFjdG9y cG9zICsgMSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tl eSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7Ci0J CWdwZS0+cXVhbF9leHBycyA9IGxpc3RfY29uY2F0KGdwZS0+cXVhbF9leHBycywgZWRnZV9xdWFs KTsKLQkJZWRnZV9xdWFsID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0dXAsIGdw ZS0+cnRpbmRleCwgZGVzdF9ydGluZGV4LAorCQlwZS0+cXVhbF9leHBycyA9IGxpc3RfY29uY2F0 KHBlLT5xdWFsX2V4cHJzLCBlZGdlX3F1YWwpOworCQllZGdlX3F1YWwgPSBidWlsZF9lZGdlX3Zl cnRleF9saW5rX3F1YWxzKGVsZXR1cCwgcGYtPmZhY3RvcnBvcyArIDEsIHBmLT5kZXN0X3BmLT5m YWN0b3Jwb3MgKyAxLAogCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdl ZGVzdGtleSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3Ry ZWYpOwotCQlncGUtPnF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChncGUtPnF1YWxfZXhwcnMsIGVk Z2VfcXVhbCk7CisJCXBlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocGUtPnF1YWxfZXhwcnMs IGVkZ2VfcXVhbCk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKGVsZXR1cCk7CiAKLQlyZXR1cm4g Z3BlOworCXJldHVybiBwZTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgpAQCAtNjY5LDE1ICs3 ODQsMTAgQEAgZ2V0X2xhYmVsc19mb3JfZXhwcihPaWQgcHJvcGdyYXBoaWQsIE5vZGUgKmxhYmVs ZXhwcikKIAl7CiAJCUJvb2xFeHByICAgKmJlID0gY2FzdE5vZGUoQm9vbEV4cHIsIGxhYmVsZXhw cik7CiAJCUxpc3QJICAgKmxhYmVsX2V4cHJzID0gYmUtPmFyZ3M7Ci0JCUxpc3RDZWxsICAgKmxs YzsKIAogCQlsYWJlbF9vaWRzID0gTklMOwotCQlmb3JlYWNoKGxsYywgbGFiZWxfZXhwcnMpCi0J CXsKLQkJCUdyYXBoTGFiZWxSZWYgKmdsciA9IGxmaXJzdF9ub2RlKEdyYXBoTGFiZWxSZWYsIGxs Yyk7Ci0KKwkJZm9yZWFjaF9ub2RlKEdyYXBoTGFiZWxSZWYsIGdsciwgbGFiZWxfZXhwcnMpCiAJ CQlsYWJlbF9vaWRzID0gbGFwcGVuZF9vaWQobGFiZWxfb2lkcywgZ2xyLT5sYWJlbGlkKTsKLQkJ fQogCX0KIAllbHNlCiAJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBsYWJlbCBleHByZXNzaW9u IHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhsYWJlbGV4cHIpKTsKQEAgLTY5OCwyMiArODA4LDIx IEBAIGdldF9sYWJlbHNfZm9yX2V4cHIoT2lkIHByb3BncmFwaGlkLCBOb2RlICpsYWJlbGV4cHIp CiAgKiBgZWxlbXBvc2AgaXMgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgcGF0dGVybiBpbiB0aGUg cGF0aCBwYXR0ZXJuLgogICovCiBzdGF0aWMgTGlzdCAqCi1nZXRfZWxlbWVudHNfZm9yX2dlcChP aWQgcHJvcGdyYXBoaWQsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgaW50IGVsZW1wb3MpCitn ZXRfcGF0aF9lbGVtZW50c19mb3JfcGF0aF9mYWN0b3IoT2lkIHByb3BncmFwaGlkLCBzdHJ1Y3Qg cGF0aF9mYWN0b3IgKnBmKQogewotCUxpc3QJICAgKmxhYmVsX29pZHMgPSBnZXRfbGFiZWxzX2Zv cl9leHByKHByb3BncmFwaGlkLCBnZXAtPmxhYmVsZXhwcik7CisJTGlzdAkgICAqbGFiZWxfb2lk cyA9IGdldF9sYWJlbHNfZm9yX2V4cHIocHJvcGdyYXBoaWQsIHBmLT5sYWJlbGV4cHIpOwogCUxp c3QJICAgKmVsZW1fb2lkc19zZWVuID0gTklMOwotCUxpc3QJICAgKmVsZW1fZ3BlX29pZHMgPSBO SUw7Ci0JTGlzdAkgICAqZWxlbV9ncGVzID0gTklMOwotCUxpc3RDZWxsICAgKmxjOworCUxpc3QJ ICAgKnBmX2VsZW1fb2lkcyA9IE5JTDsKKwlMaXN0CSAgICpwYXRoX2VsZW1lbnRzID0gTklMOwor CUxpc3QJICAgKnVucmVzb2x2ZWRfbGFiZWxzID0gTklMOwogCVJlbGF0aW9uCXJlbDsKIAlTeXNT Y2FuRGVzYyBzY2FuOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlIZWFwVHVwbGUJdHVwOwogCiAJ cmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NT aGFyZUxvY2spOwotCWZvcmVhY2gobGMsIGxhYmVsX29pZHMpCisJZm9yZWFjaF9vaWQobGFiZWxv aWQsIGxhYmVsX29pZHMpCiAJewotCQlPaWQJCQlsYWJlbG9pZCA9IGxmaXJzdF9vaWQobGMpOwog CQlib29sCQlmb3VuZCA9IGZhbHNlOwogCiAJCVNjYW5LZXlJbml0KCZrZXlbMF0sCkBAIC03MzYs MTIgKzg0NSwxMiBAQCBnZXRfZWxlbWVudHNfZm9yX2dlcChPaWQgcHJvcGdyYXBoaWQsIEdyYXBo RWxlbWVudFBhdHRlcm4gKmdlcCwgaW50IGVsZW1wb3MpCiAJCQkJICogdGhlIGN1cnJlbnQgbGFi ZWwgaGFzIGF0IGxlYXN0IG9uZSBlbGVtZW50LCB0aGF0IHNhdGlzZmllcwogCQkJCSAqIHRoZSBn aXZlbiBlbGVtZW50IHBhdHRlcm4sIGFzc29jaWF0ZWQgd2l0aCBpdC4KIAkJCQkgKi8KLQkJCQlz dHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICpncGUgPSBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KGdl cCwgZWxlbV9vaWQsIGVsZW1wb3MpOworCQkJCXN0cnVjdCBwYXRoX2VsZW1lbnQgKnBlID0gY3Jl YXRlX2dwZV9mb3JfZWxlbWVudChwZiwgZWxlbV9vaWQpOwogCi0JCQkJaWYgKGdwZSkKKwkJCQlp ZiAocGUpCiAJCQkJewotCQkJCQllbGVtX2dwZXMgPSBsYXBwZW5kKGVsZW1fZ3BlcywgZ3BlKTsK LQkJCQkJZWxlbV9ncGVfb2lkcyA9IGxhcHBlbmRfb2lkKGVsZW1fZ3BlX29pZHMsIGVsZW1fb2lk KTsKKwkJCQkJcGF0aF9lbGVtZW50cyA9IGxhcHBlbmQocGF0aF9lbGVtZW50cywgcGUpOworCQkJ CQlwZl9lbGVtX29pZHMgPSBsYXBwZW5kX29pZChwZl9lbGVtX29pZHMsIGVsZW1fb2lkKTsKIAkJ CQkJZm91bmQgPSB0cnVlOwogCQkJCX0KIApAQCAtNzQ5LDExICs4NTgsMTEgQEAgZ2V0X2VsZW1l bnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAsIGlu dCBlbGVtcG9zKQogCQkJCSAqIEFkZCB0aGUgZ3JhcGggZWxlbWVudCB0byB0aGUgZWxlbWVudHMg Y29uc2lkZXJlZCBzbyBmYXIgdG8KIAkJCQkgKiBhdm9pZCBwcm9jZXNzaW5nIHNhbWUgZWxlbWVu dCBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUKIAkJCQkgKiBsYWJlbHMgbXVsdGlwbGUgdGltZXMu IEFsc28gYXZvaWRzIGNyZWF0aW5nIGR1cGxpY2F0ZQotCQkJCSAqIEdyYXBoUGF0aEVsZW1lbnRz LgorCQkJCSAqIHBhdGhfZWxlbWVudCBzdHJ1Y3R1cmVzLgogCQkJCSAqLwogCQkJCWVsZW1fb2lk c19zZWVuID0gbGFwcGVuZF9vaWQoZWxlbV9vaWRzX3NlZW4sIGxhYmVsX2VsZW0tPnBnZWxlbGlk KTsKIAkJCX0KLQkJCWVsc2UgaWYgKGxpc3RfbWVtYmVyX29pZChlbGVtX2dwZV9vaWRzLCBlbGVt X29pZCkpCisJCQllbHNlIGlmIChsaXN0X21lbWJlcl9vaWQocGZfZWxlbV9vaWRzLCBlbGVtX29p ZCkpCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBUaGUgZ3JhcGggZWxlbWVudCBpcyBrbm93biB0byBx dWFsaWZ5IHRoZSBnaXZlbiBlbGVtZW50CkBAIC03NzQsMzAgKzg4MywyNyBAQCBnZXRfZWxlbWVu dHNfZm9yX2dlcChPaWQgcHJvcGdyYXBoaWQsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgaW50 IGVsZW1wb3MpCiAJCQkgKiBlcnJvciBpZiB0aGUgbGFiZWwgd2FzIGV4cGxpY2l0bHkgc3BlY2lm aWVkIGluIHRoZSBlbGVtZW50CiAJCQkgKiBwYXR0ZXJuLiBPdGhlcndpc2UganVzdCBSZW1vdmUg aXQgZnJvbSB0aGUgbGlzdC4KIAkJCSAqLwotCQkJaWYgKCFnZXAtPmxhYmVsZXhwcikKLQkJCQlm b3JlYWNoX2RlbGV0ZV9jdXJyZW50KGxhYmVsX29pZHMsIGxjKTsKKwkJCWlmICghcGYtPmxhYmVs ZXhwcikKKwkJCQl1bnJlc29sdmVkX2xhYmVscyA9IGxhcHBlbmRfb2lkKHVucmVzb2x2ZWRfbGFi ZWxzLCBsYWJlbG9pZCk7CiAJCQllbHNlCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCiAJCQkJCQkgZXJybXNnKCJjYW4gbm90IGZp bmQgbGFiZWwgXCIlc1wiIGluIHByb3BlcnR5IGdyYXBoIFwiJXNcIiBmb3IgZWxlbWVudCB0eXBl IFwiJXNcIiIsCiAJCQkJCQkJCWdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbG9pZCksCiAJ CQkJCQkJCWdldF9yZWxfbmFtZShwcm9wZ3JhcGhpZCksCi0JCQkJCQkJCWdldF9ncmFwaF9lbGVt X2tpbmRfbmFtZShnZXAtPmtpbmQpKSkpOworCQkJCQkJCQlnZXRfZ3JhcGhfZWxlbV9raW5kX25h bWUocGYtPmtpbmQpKSkpOwogCQl9CiAKIAkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKIAl9CiAJ dGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JLyogVXBkYXRlIHRoZSBmaWx0 ZXJlZCBsYWJlbCBsaXN0IGluIGVhY2ggZ3JhcGhfcGF0aF9lbGVtZW50LiAqLwotCWZvcmVhY2go bGMsIGVsZW1fZ3BlcykKLQl7Ci0JCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IGxm aXJzdChsYyk7Ci0KLQkJZ3BlLT5sYWJlbG9pZHMgPSBsYWJlbF9vaWRzOwotCX0KLQotCXJldHVy biBlbGVtX2dwZXM7CisJLyoKKwkgKiBSZW1lbWJlciB0aGUgT0lEcyBvZiByZXNvbHZlZCBsYWJl bHMgZm9yIHRoZSBnaXZlbiBwYXRoIGZhY3RvciBmb3IKKwkgKiBsYXRlciB1c2UgLgorCSAqLwor CXBmLT5sYWJlbG9pZHMgPSBsaXN0X2RpZmZlcmVuY2Vfb2lkKGxhYmVsX29pZHMsIHVucmVzb2x2 ZWRfbGFiZWxzKTsKKwlyZXR1cm4gcGF0aF9lbGVtZW50czsKIH0KIAogc3RhdGljIGNvbnN0IGNo YXIgKgpAQCAtODQ2LDE1ICs5NTIsMTMgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3Io Tm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICoKIAl7CiAJ CUdyYXBoUHJvcGVydHlSZWYgKmdwciA9IChHcmFwaFByb3BlcnR5UmVmICopIG5vZGU7CiAJCU5v ZGUJICAgKm4gPSBOVUxMOwotCQlMaXN0Q2VsbCAgICpsYzsKLQkJc3RydWN0IGdyYXBoX3BhdGhf ZWxlbWVudCAqZm91bmRfbWFwcGluZyA9IE5VTEw7CisJCXN0cnVjdCBwYXRoX2VsZW1lbnQgKmZv dW5kX21hcHBpbmcgPSBOVUxMOworCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKm1hcHBpbmdfZmFjdG9y ID0gTlVMTDsKIAkJTGlzdAkgICAqdW5yZWxhdGVkX2xhYmVscyA9IE5JTDsKIAotCQlmb3JlYWNo KGxjLCBjb250ZXh0LT5tYXBwaW5ncykKKwkJZm9yZWFjaF9wdHIoc3RydWN0IHBhdGhfZWxlbWVu dCwgbSwgY29udGV4dC0+bWFwcGluZ3MpCiAJCXsKLQkJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1l bnQgKm0gPSBsZmlyc3QobGMpOwotCi0JCQlpZiAobS0+cGFyZW50X2dlcC0+dmFyaWFibGUgJiYg c3RyY21wKGdwci0+ZWx2YXJuYW1lLCBtLT5wYXJlbnRfZ2VwLT52YXJpYWJsZSkgPT0gMCkKKwkJ CWlmIChtLT5wYXRoX2ZhY3Rvci0+dmFyaWFibGUgJiYgc3RyY21wKGdwci0+ZWx2YXJuYW1lLCBt LT5wYXRoX2ZhY3Rvci0+dmFyaWFibGUpID09IDApCiAJCQl7CiAJCQkJZm91bmRfbWFwcGluZyA9 IG07CiAJCQkJYnJlYWs7CkBAIC04NjMsMTMgKzk2NywxNCBAQCByZXBsYWNlX3Byb3BlcnR5X3Jl ZnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRl eHQgKgogCQlpZiAoIWZvdW5kX21hcHBpbmcpCiAJCQllbG9nKEVSUk9SLCAidW5kZWZpbmVkIGVs ZW1lbnQgdmFyaWFibGUgXCIlc1wiIiwgZ3ByLT5lbHZhcm5hbWUpOwogCisJCW1hcHBpbmdfZmFj dG9yID0gZm91bmRfbWFwcGluZy0+cGF0aF9mYWN0b3I7CisKIAkJLyoKIAkJICogRmluZCBwcm9w ZXJ0eSBkZWZpbml0aW9uIGZvciBnaXZlbiBlbGVtZW50IHRocm91Z2ggYW55IG9mIHRoZQogCQkg KiBhc3NvY2lhdGVkIGxhYmVscy4KIAkJICovCi0JCWZvcmVhY2gobGMsIGZvdW5kX21hcHBpbmct PmxhYmVsb2lkcykKKwkJZm9yZWFjaF9vaWQobGFiZWxvaWQsIG1hcHBpbmdfZmFjdG9yLT5sYWJl bG9pZHMpCiAJCXsKLQkJCU9pZAkJCWxhYmVsb2lkID0gbGZpcnN0X29pZChsYyk7CiAJCQlPaWQJ CQllbGVtX2xhYmVsaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExBQkVMRUxF TUVOVExBQkVMLAogCQkJCQkJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFi ZWxfb2lkLAogCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oZm91bmRfbWFwcGluZy0+ ZWxlbW9pZCksCkBAIC04OTIsNyArOTk3LDcgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0 b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICoKIAog CQkJCW4gPSBzdHJpbmdUb05vZGUoVGV4dERhdHVtR2V0Q1N0cmluZyhTeXNDYWNoZUdldEF0dHJO b3ROdWxsKFBST1BHUkFQSExBQkVMUFJPUCwKIAkJCQkJCQkJCQkJCQkJCQkJCQl0dXAsIEFudW1f cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X3BscGV4cHIpKSk7Ci0JCQkJQ2hhbmdlVmFyTm9k ZXMobiwgMSwgZm91bmRfbWFwcGluZy0+cnRpbmRleCwgMCk7CisJCQkJQ2hhbmdlVmFyTm9kZXMo biwgMSwgbWFwcGluZ19mYWN0b3ItPmZhY3RvcnBvcyArIDEsIDApOwogCiAJCQkJUmVsZWFzZVN5 c0NhY2hlKHR1cCk7CiAJCQl9CkBAIC05MTAsMTIgKzEwMTUsMTEgQEAgcmVwbGFjZV9wcm9wZXJ0 eV9yZWZzX211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19j b250ZXh0ICoKIAkJLyogU2VlIGlmIHdlIGNhbiByZXNvbHZlIHRoZSBwcm9wZXJ0eSBpbiBzb21l IG90aGVyIHdheS4gKi8KIAkJaWYgKCFuKQogCQl7Ci0JCQlMaXN0Q2VsbCAgICpsY3U7CiAJCQli b29sCQlwcm9wX2Fzc29jaWF0ZWQgPSBmYWxzZTsKIAotCQkJZm9yZWFjaChsY3UsIHVucmVsYXRl ZF9sYWJlbHMpCisJCQlmb3JlYWNoX29pZChsb2lkLCB1bnJlbGF0ZWRfbGFiZWxzKQogCQkJewot CQkJCWlmIChpc19wcm9wZXJ0eV9hc3NvY2lhdGVkX3dpdGhfbGFiZWwobGZpcnN0X29pZChsY3Up LCBncHItPnByb3BpZCkpCisJCQkJaWYgKGlzX3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJl bChsb2lkLCBncHItPnByb3BpZCkpCiAJCQkJewogCQkJCQlwcm9wX2Fzc29jaWF0ZWQgPSB0cnVl OwogCQkJCQlicmVhazsKQEAgLTk0MSw3ICsxMDQ1LDcgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZz X211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0 ICoKIAkJCQkgKiByb3dzIHRvIHRoZSBHUkFQSF9UQUJMRS4KIAkJCQkgKi8KIAkJCQluID0gZ2V0 X2VsZW1lbnRfcHJvcGVydHlfZXhwcihmb3VuZF9tYXBwaW5nLT5lbGVtb2lkLCBncHItPnByb3Bp ZCwKLQkJCQkJCQkJCQkJICBmb3VuZF9tYXBwaW5nLT5ydGluZGV4KTsKKwkJCQkJCQkJCQkJICBt YXBwaW5nX2ZhY3Rvci0+ZmFjdG9ycG9zICsgMSk7CiAKIAkJCQlpZiAoIW4pCiAJCQkJewpAQCAt OTU0LDcgKzEwNTgsNyBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvcihOb2RlICpub2Rl LCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgKgogCiAJCWlmICghbikKIAkJ CWVsb2coRVJST1IsICJwcm9wZXJ0eSBcIiVzXCIgb2YgZWxlbWVudCB2YXJpYWJsZSBcIiVzXCIg bm90IGZvdW5kIiwKLQkJCQkgZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlk KSwgZm91bmRfbWFwcGluZy0+cGFyZW50X2dlcC0+dmFyaWFibGUpOworCQkJCSBnZXRfcHJvcGdy YXBoX3Byb3BlcnR5X25hbWUoZ3ByLT5wcm9waWQpLCBtYXBwaW5nX2ZhY3Rvci0+dmFyaWFibGUp OwogCiAJCXJldHVybiBuOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ3JhcGhfdGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJs ZS5vdXQKaW5kZXggZGUwZDE2M2U4MzAuLjg3YWIzZTMxYWY4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dApAQCAtMzQ5LDE0ICszNDksNiBAQCBzZWxlY3Qgc3Jj LCBjb25uLCBkZXN0LCBscHJvcDEsIHZwcm9wMiwgdnByb3AxIGZyb20gZ3JhcGhfdGFibGUgKGcx IG1hdGNoIChhIGlzCiAgdjExIHwgZTEzMiB8IHYzMSAgfCB2bDNfcHJvcCB8ICAgICAgICB8ICAg MjAxMAogKDQgcm93cykKIAotLS0gV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KLVNFTEVD VCBzZWxmLCB0aHJvdWdoIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYykg V0hFUkUgYS52bmFtZSA9IGMudm5hbWUgYW5kIGEudm5hbWUgPD4gYi52bmFtZSBDT0xVTU5TIChh LnZuYW1lIGFzIHNlbGYsIGIudm5hbWUgYXMgdGhyb3VnaCkpOwotIHNlbGYgfCB0aHJvdWdoIAot LS0tLS0tKy0tLS0tLS0tLQotIHYxMiAgfCB2MjEKLSB2MjEgIHwgdjEyCi0oMiByb3dzKQotCiAt LSBFcnJvcnMKIC0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgog c2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxlIChnMSBt YXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52 bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29ubiwgYy52 bmFtZSBhcyBkZXN0KSk7CkBAIC00MjAsNiArNDEyLDExNCBAQCBzZWxlY3Qgc24sIGNuLCBkbiBm cm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6 IGwxKQogIHYyMiB8IGUyMzEgfCB2MzIKICg2IHJvd3MpCiAKKy0tIFRlc3RzIGZvciBjeWNsaWMg Z3JhcGggcGF0dGVybnMKKy0tIEFkZCBzb21lIG1vcmUgY3ljbGVzIGluIGdyYXBoCitDUkVBVEUg VEFCTEUgZTNfMiAoaWRfMyBpbnQsCisgICAgICAgICAgICAgICAgICAgIGlkXzJfMSBpbnQsCisg ICAgICAgICAgICAgICAgICAgIGlkXzJfMiBpbnQsCisgICAgICAgICAgICAgICAgICAgIGVuYW1l IHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBlcHJvcDEgaW50KTsKK0FMVEVSIFBS T1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAoCisgICAgZTNfMiBLRVkgKGlkXzMsIGlk XzJfMSwgaWRfMl8yKQorICAgICAgICBTT1VSQ0UgS0VZIChpZF8zKSBSRUZFUkVOQ0VTIHYzIChp ZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChpZF8yXzEsIGlkXzJfMikgUkVGRVJFTkNFUyB2 MiAoaWQxLCBpZDIpCisgICAgICAgIExBQkVMIGVsMiBQUk9QRVJUSUVTIChlbmFtZSwgZXByb3Ax ICogMTAgQVMgbHByb3AyKQorICAgICAgICBMQUJFTCBsMSBQUk9QRVJUSUVTIChlbmFtZSBBUyBl bG5hbWUpCispOworSU5TRVJUIElOVE8gZTFfMiBWQUxVRVMgKDMsIDEwMDAsIDMsICdlMTIzJywg MTAwMDcpOworSU5TRVJUIElOVE8gZTJfMSBWQUxVRVMgKDEwMDAsIDMsIDMsICdlMjEyJywgMTAw MDgpOworSU5TRVJUIElOVE8gZTNfMiBWQUxVRVMgKDIwMDIsIDEwMDAsIDIsICdlMzIxJywgMTAw MDkpOworLS0gY3ljbGljIHBhdHRlcm4gdXNpbmcgV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRl cm4sCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktPihiKS0+KGMpIFdI RVJFIGEudm5hbWUgPSBjLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBB UyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkg T1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJv dWdoX3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8 IHYyMSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAz MCB8ICAgICAgIDEwMzAKKyB2MjEgIHwgdjEyICAgICB8ICAgIDEwMTAgfCAgICAgICAgIDIwCisg djIyICB8IHYzMiAgICAgfCAgICAxMDIwIHwgICAgICAgMjAyMAorIHYyMyAgfCB2MTMgICAgIHwg ICAgMTAzMCB8ICAgICAgICAgMzAKKyB2MzIgIHwgdjIyICAgICB8ICAgIDIwMjAgfCAgICAgICAx MDIwCisoNiByb3dzKQorCistLSBjeWNsaWMgcGF0dGVybiB1c2luZyBlbGVtZW50cyB3aXRoIHNh bWUgdmFyaWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEp LT4oYiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwg YS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNl bGYsIHRocm91Z2g7Cisgc2VsZiB8IHRocm91Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9wMSAKKy0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHYxMiAgfCB2MjEgICAgIHwg ICAgICAyMCB8ICAgICAgIDEwMTAKKyB2MTMgIHwgdjIzICAgICB8ICAgICAgMzAgfCAgICAgICAx MDMwCisgdjIxICB8IHYxMiAgICAgfCAgICAxMDEwIHwgICAgICAgICAyMAorIHYyMiAgfCB2MzIg ICAgIHwgICAgMTAyMCB8ICAgICAgIDIwMjAKKyB2MjMgIHwgdjEzICAgICB8ICAgIDEwMzAgfCAg ICAgICAgIDMwCisgdjMyICB8IHYyMiAgICAgfCAgICAyMDIwIHwgICAgICAgMTAyMAorKDYgcm93 cykKKworLS0gY3ljbGljIHBhdHRlcm4gd2l0aCBXSEVSRSBjbGF1c2UKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIHdoZXJlIGEudnByb3AxIDwgMjAwMCktPihiIHdoZXJl IGIudnByb3AxID4gMjApLT4oYSB3aGVyZSBhLnZwcm9wMSA+IDIwKSBDT0xVTU5TIChhLnZuYW1l IEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJv cDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7Cisgc2VsZiB8IHRocm91 Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9wMSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAgICAgIDEwMzAKKyB2MjIg IHwgdjMyICAgICB8ICAgIDEwMjAgfCAgICAgICAyMDIwCisgdjIzICB8IHYxMyAgICAgfCAgICAx MDMwIHwgICAgICAgICAzMAorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzEgTUFUQ0ggKGEpLT4oYiB3aGVyZSBiLnZwcm9wMSA+IDIwKS0+KGEgd2hlcmUgYS52cHJvcDEg YmV0d2VlbiAyMCBhbmQgMjAwMCkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZuYW1lIEFT IHRocm91Z2gsIGEudnByb3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hfcDEpKSBP UkRFUiBCWSBzZWxmLCB0aHJvdWdoOworIHNlbGYgfCB0aHJvdWdoIHwgc2VsZl9wMSB8IHRocm91 Z2hfcDEgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2MTIgIHwg djIxICAgICB8ICAgICAgMjAgfCAgICAgICAxMDEwCisgdjEzICB8IHYyMyAgICAgfCAgICAgIDMw IHwgICAgICAgMTAzMAorIHYyMiAgfCB2MzIgICAgIHwgICAgMTAyMCB8ICAgICAgIDIwMjAKKyB2 MjMgIHwgdjEzICAgICB8ICAgIDEwMzAgfCAgICAgICAgIDMwCisoNCByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSB3aGVyZSBhLnZwcm9wMSBiZXR3ZWVuIDIw IGFuZCAyMDAwKS0+KGIgd2hlcmUgYi52cHJvcDEgPiAyMCktPihhIHdoZXJlIGEudnByb3AxIGJl dHdlZW4gMjAgYW5kIDIwMDApIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0 aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JE RVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdo X3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYy MSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8 ICAgICAgIDEwMzAKKyB2MjIgIHwgdjMyICAgICB8ICAgIDEwMjAgfCAgICAgICAyMDIwCisgdjIz ICB8IHYxMyAgICAgfCAgICAxMDMwIHwgICAgICAgICAzMAorKDQgcm93cykKKworU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMgbDEpLVthIGlzIGwxXS0+KGIgaXMgbDEp IGNvbHVtbnMgKGEuZW5hbWUgQVMgYWVuYW1lLCBiLmVuYW1lIEFTIGJlbmFtZSkpIE9SREVSIEJZ IDEsIDI7IC0tIGVycm9yCitFUlJPUjogIGVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlh YmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgZWxlbWVudCBwYXR0ZXJuIHR5cGVzCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhIGlzIHZsMikg V0hFUkUgYS52bmFtZSA8PiBiLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFt ZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3Ax KSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsgIC0tIGVycm9yCitFUlJPUjogIGVsZW1lbnQgcGF0 dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgbGFiZWwgZXhw cmVzc2lvbnMKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSkt PihiKS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBh LnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2Vs ZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdoX3AxIAorLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYyMSAgICAgfCAg ICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAgICAgIDEw MzAKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+ KGIpLT4oYSBpcyB2bDEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJv dWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIg Qlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdoX3Ax IAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYyMSAg ICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAg ICAgIDEwMzAKKygyIHJvd3MpCisKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2ZXJ0ZXggYXMg c291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzCitDUkVBVEUgVEFCTEUgZTNfMyAo c3JjX2lkIGludCwKKyAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCBpbnQsCisgICAgICAgICAg ICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBlcHJvcDEg aW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAoCisgICAgZTNf MyBLRVkgKHNyY19pZCwgZGVzdF9pZCkKKyAgICAgICAgU09VUkNFIEtFWSAoc3JjX2lkKSBSRUZF UkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChzcmNfaWQpIFJFRkVSRU5D RVMgdjMgKGlkKQorICAgICAgICBMQUJFTCBlbDIgUFJPUEVSVElFUyAoZW5hbWUsIGVwcm9wMSAq IDEwIEFTIGxwcm9wMikKKyAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElFUyAoZW5hbWUgQVMgZWxu YW1lKQorKTsKK0lOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnZTMzMScsIDEw MDEwKTsKKy0tIGN5Y2xpYyBwYXR0ZXJuIHdpdGggZWRnZSBwYXR0ZXJucyB3aXRoIHNhbWUgdmFy aWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiXS0+ KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBsb29wX25h bWUpKTsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0tLS0tCisgdjMzICB8IGUz MzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVti XS0+KGMpLVtiXS0+KGQpIENPTFVNTlMgKGEudm5hbWUgQVMgYW5hbWUsIGIuZW5hbWUgQVMgYm5h bWUsIGMudm5hbWUgQVMgY25hbWUsIGQudm5hbWUgQVMgZG5hbWUpKTsgLS1lcnJvcgorRVJST1I6 ICBBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4g YSBjeWNsaWMgcGF0dGVybi4KIC0tIHByb3BlcnR5IGdyYXBoIHdpdGggc29tZSBvZiB0aGUgZWxl bWVudHMsIGxhYmVscyBhbmQgcHJvcGVydGllcyBzYW1lIGFzIHRoZQogLS0gcHJldmlvdXMgb25l LiBUZXN0IHdoZXRoZXIgY29tcG9uZW50cyBmcm9tIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZ3Jh cGggYXJlCiAtLSB1c2VkLgpAQCAtNDUxLDEwICs1NTEsMTEgQEAgc2VsZWN0IHNuLCBjbiwgZG4g ZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3Qg OiBsMSkKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQogIGcyLnYxMiB8IGcyLmUxMjIgfCBn Mi52MjEKICBnMi52MTEgfCBnMi5lMTIxIHwgZzIudjIyCisgZzIudjEzIHwgZzIuZTEyMyB8IGcy LnYyMwogIGcyLnYxMSB8IGcyLmUxMzEgfCBnMi52MzMKICBnMi52MTEgfCBnMi5lMTMyIHwgZzIu djMxCiAgZzIudjIyIHwgZzIuZTIzMSB8IGcyLnYzMgotKDUgcm93cykKKyg2IHJvd3MpCiAKIENS RUFURSBWSUVXIGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBI X1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdV UycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBB UyBjdXN0b21lcl9uYW1lKSk7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2N1c3RvbWVyc191cyc6 OnJlZ2NsYXNzKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxl LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAppbmRleCA0ODY1OTRh OTkzNC4uZjM0NjE2MTYzYWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBo X3RhYmxlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKQEAg LTI2Miw4ICsyNjIsNiBAQCBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJ UyB2bDEgfCB2bDIpIENPTFVNTlMgKGEudm5hbWUsCiBhLnZwcm9wMSkpOwogLS0gdnByb3AyIGlz IGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5vdCB2bDMKIHNlbGVjdCBzcmMsIGNvbm4sIGRlc3Qs IGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMg dmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3Jj LCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCwgYy5scHJvcDEsIGMudnByb3AyLCBj LnZwcm9wMSkpOwotLS0gV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KLVNFTEVDVCBzZWxm LCB0aHJvdWdoIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYykgV0hFUkUg YS52bmFtZSA9IGMudm5hbWUgYW5kIGEudm5hbWUgPD4gYi52bmFtZSBDT0xVTU5TIChhLnZuYW1l IGFzIHNlbGYsIGIudm5hbWUgYXMgdGhyb3VnaCkpOwogCiAtLSBFcnJvcnMKIC0tIHZsMSBpcyBu b3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgpAQCAtMjg5LDYgKzI4Nyw1NiBAQCBz ZWxlY3Qgdm4gZnJvbSBhbGxfdmVydGljZXMgZXhjZXB0IChzZWxlY3Qgc3ZuIGZyb20gYWxsX2Nv bm5lY3RlZF92ZXJ0aWNlcyB1bmlvbgogLS0gcXVlcnkgYWxsIGNvbm5lY3Rpb25zIHVzaW5nIGEg bGFiZWwgc2hhcmVkIGJ5IHZlcnRpY2VzIGFuZCBlZGdlcwogc2VsZWN0IHNuLCBjbiwgZG4gZnJv bSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3QgOiBs MSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5hbWUgYXMgY24sIGRlc3QuZWxu YW1lIGFzIGRuKSk7CiAKKy0tIFRlc3RzIGZvciBjeWNsaWMgZ3JhcGggcGF0dGVybnMKKy0tIEFk ZCBzb21lIG1vcmUgY3ljbGVzIGluIGdyYXBoCitDUkVBVEUgVEFCTEUgZTNfMiAoaWRfMyBpbnQs CisgICAgICAgICAgICAgICAgICAgIGlkXzJfMSBpbnQsCisgICAgICAgICAgICAgICAgICAgIGlk XzJfMiBpbnQsCisgICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAg ICAgICAgICAgICAgICBlcHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBF REdFIFRBQkxFUyAoCisgICAgZTNfMiBLRVkgKGlkXzMsIGlkXzJfMSwgaWRfMl8yKQorICAgICAg ICBTT1VSQ0UgS0VZIChpZF8zKSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJ T04gS0VZIChpZF8yXzEsIGlkXzJfMikgUkVGRVJFTkNFUyB2MiAoaWQxLCBpZDIpCisgICAgICAg IExBQkVMIGVsMiBQUk9QRVJUSUVTIChlbmFtZSwgZXByb3AxICogMTAgQVMgbHByb3AyKQorICAg ICAgICBMQUJFTCBsMSBQUk9QRVJUSUVTIChlbmFtZSBBUyBlbG5hbWUpCispOworCitJTlNFUlQg SU5UTyBlMV8yIFZBTFVFUyAoMywgMTAwMCwgMywgJ2UxMjMnLCAxMDAwNyk7CitJTlNFUlQgSU5U TyBlMl8xIFZBTFVFUyAoMTAwMCwgMywgMywgJ2UyMTInLCAxMDAwOCk7CitJTlNFUlQgSU5UTyBl M18yIFZBTFVFUyAoMjAwMiwgMTAwMCwgMiwgJ2UzMjEnLCAxMDAwOSk7CisKKy0tIGN5Y2xpYyBw YXR0ZXJuIHVzaW5nIFdIRVJFIGNsYXVzZSBpbiBncmFwaCBwYXR0ZXJuLAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihjKSBXSEVSRSBhLnZuYW1lID0gYy52 bmFtZSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJv cDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRo cm91Z2g7CistLSBjeWNsaWMgcGF0dGVybiB1c2luZyBlbGVtZW50cyB3aXRoIHNhbWUgdmFyaWFi bGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihh KSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEg QVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91 Z2g7CistLSBjeWNsaWMgcGF0dGVybiB3aXRoIFdIRVJFIGNsYXVzZQorU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgd2hlcmUgYS52cHJvcDEgPCAyMDAwKS0+KGIgd2hlcmUg Yi52cHJvcDEgPiAyMCktPihhIHdoZXJlIGEudnByb3AxID4gMjApIENPTFVNTlMgKGEudm5hbWUg QVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9w MSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIgd2hlcmUgYi52cHJvcDEgPiAyMCktPihhIHdo ZXJlIGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIwMDApIENPTFVNTlMgKGEudm5hbWUgQVMgc2Vs ZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0 aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGcxIE1BVENIIChhIHdoZXJlIGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIwMDApLT4o YiB3aGVyZSBiLnZwcm9wMSA+IDIwKS0+KGEgd2hlcmUgYS52cHJvcDEgYmV0d2VlbiAyMCBhbmQg MjAwMCkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZuYW1lIEFTIHRocm91Z2gsIGEudnBy b3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hfcDEpKSBPUkRFUiBCWSBzZWxmLCB0 aHJvdWdoOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMgbDEpLVth IGlzIGwxXS0+KGIgaXMgbDEpIGNvbHVtbnMgKGEuZW5hbWUgQVMgYWVuYW1lLCBiLmVuYW1lIEFT IGJlbmFtZSkpIE9SREVSIEJZIDEsIDI7IC0tIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhIGlzIHZsMikgV0hFUkUgYS52bmFtZSA8 PiBiLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBh LnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2Vs ZiwgdGhyb3VnaDsgIC0tIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSBpcyB2bDEpLT4oYiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUg QVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkp IE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoYSktPihiKS0+KGEgaXMgdmwxKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5h bWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9w MSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CisKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2 ZXJ0ZXggYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzCitDUkVBVEUgVEFC TEUgZTNfMyAoc3JjX2lkIGludCwKKyAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCBpbnQsCisg ICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAg ICBlcHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAo CisgICAgZTNfMyBLRVkgKHNyY19pZCwgZGVzdF9pZCkKKyAgICAgICAgU09VUkNFIEtFWSAoc3Jj X2lkKSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChzcmNfaWQp IFJFRkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBMQUJFTCBlbDIgUFJPUEVSVElFUyAoZW5hbWUs IGVwcm9wMSAqIDEwIEFTIGxwcm9wMikKKyAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElFUyAoZW5h bWUgQVMgZWxuYW1lKQorKTsKKworSU5TRVJUIElOVE8gZTNfMyBWQUxVRVMgKDIwMDMsIDIwMDMs ICdlMzMxJywgMTAwMTApOworLS0gY3ljbGljIHBhdHRlcm4gd2l0aCBlZGdlIHBhdHRlcm5zIHdp dGggc2FtZSB2YXJpYWJsZSBuYW1lCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1l IEFTIGxvb3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEp LVtiXS0+KGMpLVtiXS0+KGQpIENPTFVNTlMgKGEudm5hbWUgQVMgYW5hbWUsIGIuZW5hbWUgQVMg Ym5hbWUsIGMudm5hbWUgQVMgY25hbWUsIGQudm5hbWUgQVMgZG5hbWUpKTsgLS1lcnJvcgorCiAt LSBwcm9wZXJ0eSBncmFwaCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHBy b3BlcnRpZXMgc2FtZSBhcyB0aGUKIC0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBv bmVudHMgZnJvbSB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQogLS0gdXNlZC4KLS0g CjIuMzQuMQoK --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0005-Access-permissions-on-property-graph-20241205.patch" Content-Disposition: attachment; filename="0005-Access-permissions-on-property-graph-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yqus4 RnJvbSBhMWY2MTFmMWI5MmNiMmZkNmNlMTBjNjYzNGI0YThmYmIwOGM2ODUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxNyBPY3QgMjAyNCAxNDo1OToyNiArMDUzMApTdWJqZWN0OiBb UEFUQ0ggNS84XSBBY2Nlc3MgcGVybWlzc2lvbnMgb24gcHJvcGVydHkgZ3JhcGgKCkFjY2VzcyB0 byB0aGUgcHJvcGVydHkgZ3JhcGggcmVmZXJlbmNlZCBpbiBHUkFQSF9UQUJMRSBjbGF1c2UgYW5k IHRoZQpiYXNlIHJlbGF0aW9ucyB1bmRlcmx5aW5nIHRoZSBncmFwaCBwYXR0ZXJuIHNwZWNpZmll ZCBpbiB0aGF0IGNsYXVzZSBhcmUKZ292ZXJuZWQgYnkgdGhlIGZvbGxvd2luZyBydWxlcy4KCjEu IEEgdXNlciBuZWVkcyBTRUxFQ1QgcHJpdmlsZWdlIHRvIGFjY2VzcyBhIHByb3BlcnR5IGdyYXBo IGluIHRoZSBxdWVyeS4KCjIuIFRoZSBwcm9wZXJ0eSBncmFwaCBpdHNlbGYgYWN0cyBzaW1pbGFy IHRvIGEgc2VjdXJpdHkgaW52b2tlciB2aWV3IGluCiAgIHRoZSBzZW5zZSB0aGF0IHRoZSBjdXJy ZW50X3VzZXIgc2hvdWxkIGhhdmUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlCiAgIHRhYmxlcyBh bmQgY29sdW1ucywgdW5kZXJseWluZyB0aGUgZ3JhcGggcGF0dGVybi4gRm9yIGV4YW1wbGUsIGEK ICAgcHJvcGVydHkgZ3JhcGggZzEgY29udGFpbnMgZ3JhcGggZWxlbWVudCB0YWJsZXMgZTEgYW5k IGUyLiBBc3N1bWUgdHdvCiAgIHVzZXJzIHUxIGFuZCB1MiB3aXRoIHByaXZpbGVnZXMgdG8gYWNj ZXNzIGUxIGFuZCBlMiByZXNwZWN0aXZlbHkuCiAgIExldCdzIGFsc28gYXNzdW1lIHRoYXQgdGhl eSBoYXZlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eQogICBncmFwaCBnMS4gdTEs IGFzIHRoZSBjdXJyZW50IHVzZXIsIHdvdWxkIGJlIGFibGUgdG8gcnVuIHF1ZXJ5CiAgIGludm9s dmluZyBnMSBzdWNjZXNzZnVsbHkgYXMgbG9uZyBhcyBpdCBkb2VzICpub3QqIHJlcXVpcmUgYWNj ZXNzIHRvCiAgIGUyLiAgU2ltaWxhcmx5IHUyIHdvdWxkIGJlIGFibGUgdG8gcnVuIHF1ZXJ5IGlu dm9sdmluZyBnMQogICBzdWNjZXNzZnVsbHkgYXMgbG9uZyBhcyBpdCBkb2VzICpub3QqIHJlcXVp cmUgYWNjZXNzIHRvIGUxLgoKMy4gSWYgYSBwcm9wZXJ0eSBncmFwaCBpcyByZWZlcmVuY2VkIGlu IGEgc2VjdXJpdHkgZGVmaW5lciB2aWV3LCBhY2Nlc3MKICAgdG8gdGhlIHByb3BlcnR5IGdyYXBo IGlzIGdvdmVybmVkIGJ5IHRoZSBwcml2aWxlZ2VzIG9mIHRoZSBvd25lciBvZgogICB0aGUgdmll dyBidXQgdGhlIGFjY2VzcyB0byB0aGUgYmFzZSByZWxhdGlvbnMgdW5kZXJseWluZyB0aGUgZ3Jh cGgKICAgcGF0dGVybiBhcmUgZ292ZXJuZWQgYnkgdGhlIHByaXZpbGVnZXMgb2YgdGhlIHVzZXIg ZXhlY3V0aW5nIHRoZQogICBxdWVyeS4gVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBhY2Nlc3MgdG8g dGhlIGJhc2UgcmVsYXRpb25zCiAgIHVuZGVybHlpbmcgYSBzZWN1cml0eSBpbnZva2VyIHZpZXcg cmVmZXJlbmNlZCBmcm9tIGEgc2VjdXJpdHkgZGVmaW5lcgogICB2aWV3IGlzIGhhbmRsZWQuCiAg IGFjY2VzcwoKNC4gV2UgaGF2ZSBub3QgaW1wbGVtZW50ZWQgc2VjdXJpdHkgZGVmaW5lciBwcm9w ZXJ0eSBncmFwaHMgc2luY2UKICAgU1FML1BHUSBzdGFuZGFyZCBkb2VzIG5vdCBtZW50aW9uIHRo b3NlLgoKTm90ZToKClRoZSBwcml2aWxlZ2VzIHRlc3RzIGRlZmluZWQgdmlld3Mgd2hpY2ggYXJl IG93bmVkIGJ5IHVzZXJzIG90aGVyIHRoYW4KdGhlIHRhYmxlIG93bmVycy4gUmlnaHQgbm93LCBw cm9wZXJ0eSBncmFwaCBjYW4gbm90IGNvbnRhaW4gcmVsYXRpb25zCndoaWNoIGFyZSBub3Qgb3du ZWQgYnkgaXRzIG93bmVyLiBIZW5jZSBJIGhhdmUgbm90IGFkZGVkIHRlc3RzIGZvcgp0ZXN0aW5n IHZpZXcgYWNjZXNzIHRocm91Z2ggcHJvcGVydHkgZ3JhcGhzLiBQZXIgU1FML1BHUSBzdGFuZGFy ZCwgYQpwcm9wZXJ0eSBncmFwaCBjYW4gY29udGFpbiBhbnkgcmVsYXRpb24gYXMgbG9uZyBhcyBp dCBoYXMgU0VMRUNUCnByaXZpbGVnZSBvbiB0aGF0IHJlbGF0aW9uLiBPbmNlIHdlIGltcGxlbWVu dCB3aGF0IHN0YW5kYXJkIHNheXMsIHdlIGNhbgphZGQgdGhlIHRlc3RzIHdpdGggdmlld3MgYW5k IHByZWZlcnJhYmx5IGFkZCB0aGUgdmlld3MgYXMgZWRnZSB0YWJsZXMuCgpBdXRob3I6IEFzaHV0 b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBhdC5vc3NAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRw czovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYTg1NTc5NWQtZTY5Ny00ZmE1 LTg2OTgtZDIwMTIyMTI2NTY3QGVpc2VudHJhdXQub3JnCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCB8ICA4ICsrCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMgICAgIHwgMTggKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wcml2aWxlZ2VzLm91dCAgICB8IDkxICsrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgICAgICAgICB8IDU4ICsrKysrKysrKysrKysKIDQg ZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfcHJvcGVydHlfZ3JhcGguc2dtbAppbmRleCBmODhkMTE5NGNiYy4uYWUzMDFiNTJlMGEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbApAQCAtMjc2LDYg KzI3NiwxNCBAQCBDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzEKICAgIFByb3BlcnR5IGdyYXBocyBh cmUgcXVlcmllZCB1c2luZyB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVz ZQogICAgb2YgPHhyZWYgbGlua2VuZD0ic3FsLXNlbGVjdCIvPi4KICAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgQWNjZXNzIHRvIHRoZSBiYXNlIHJlbGF0aW9ucyB1bmRlcmx5aW5nIHRoZSA8bGl0 ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4KKyAgIGNsYXVzZSBpcyBkZXRlcm1pbmVkIGJ5IHRo ZSBwZXJtaXNzaW9ucyBvZiB0aGUgdXNlciBleGVjdXRpbmcgdGhlIHF1ZXJ5LAorICAgcmF0aGVy IHRoYW4gdGhlIHByb3BlcnR5IGdyYXBoIG93bmVyLiBUaHVzLCB0aGUgdXNlciBvZiBhIHByb3Bl cnR5IGdyYXBoIG11c3QKKyAgIGhhdmUgdGhlIHJlbGV2YW50IHBlcm1pc3Npb25zIG9uIHRoZSBw cm9wZXJ0eSBncmFwaCBhbmQgYmFzZSByZWxhdGlvbnMKKyAgIHVuZGVybHlpbmcgdGhlIDxsaXRl cmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1c2UuCisgIDwvcGFyYT4KICA8L3JlZnNlY3Qx PgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl R3JhcGhUYWJsZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCmlu ZGV4IDFlYTVhNWNhZWIxLi45YzE0ZmEzYjFiNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0 ZUdyYXBoVGFibGUuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv cGdyYXBoX3Byb3BlcnR5LmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVk ZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUu aCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKQEAgLTM4MCw2ICszODEsNyBA QCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRibEVudHJ5ICpydGUsIExpc3Qg KmdyYXBoX3BhdGgpCiAJUXVlcnkJICAgKnBhdGhfcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CiAJ TGlzdAkgICAqZnJvbWxpc3QgPSBOSUw7CiAJTGlzdAkgICAqcXVhbF9leHBycyA9IE5JTDsKKwlM aXN0CSAgICp2YXJzOwogCiAJcGF0aF9xdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOwog CkBAIC00OTMsNiArNDk1LDIyIEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJhbmdl VGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJCQkJCQkJCSAgcmVwbGFjZV9wcm9w ZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsCiAJCQkJCQkJCQkJCQkJCQkoTm9kZSAqKSBydGUtPmdyYXBo X3RhYmxlX2NvbHVtbnMsCiAJCQkJCQkJCQkJCQkJCQlncmFwaF9wYXRoKSk7CisKKwkvKgorCSAq IE1hcmsgdGhlIGNvbHVtbnMgYmVpbmcgYWNjZXNzZWQgaW4gdGhlIHBhdGggcXVlcnkgYXMgcmVx dWlyaW5nIFNFTEVDVAorCSAqIHByaXZpbGVnZS4gQW55IGxhdGVyYWwgY29sdW1ucyBzaG91bGQg aGF2ZSBiZWVuIGhhbmRsZWQgd2hlbiB0aGUKKwkgKiBjb3JyZXNwb25kaW5nIENvbHVtblJlZnMg d2VyZSB0cmFuc2Zvcm1lZC4gSWdub3JlIHRob3NlIGhlcmUuCisJICovCisJdmFycyA9IHB1bGxf dmFyc19vZl9sZXZlbCgoTm9kZSAqKSBsaXN0X21ha2UyKHF1YWxfZXhwcnMsIHBhdGhfcXVlcnkt PnRhcmdldExpc3QpLCAwKTsKKwlmb3JlYWNoX25vZGUoVmFyLCB2YXIsIHZhcnMpCisJeworCQlS VEVQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8gPSBnZXRSVEVQZXJtaXNzaW9uSW5mbyhwYXRoX3F1 ZXJ5LT5ydGVwZXJtaW5mb3MsCisJCQkJCQkJCQkJCQkJCSAgIHJ0X2ZldGNoKHZhci0+dmFybm8s IHBhdGhfcXVlcnktPnJ0YWJsZSkpOworCisJCS8qIE11c3Qgb2Zmc2V0IHRoZSBhdHRudW0gdG8g Zml0IGluIGEgYml0bWFwc2V0ICovCisJCXBlcm1pbmZvLT5zZWxlY3RlZENvbHMgPSBibXNfYWRk X21lbWJlcihwZXJtaW5mby0+c2VsZWN0ZWRDb2xzLAorCQkJCQkJCQkJCQkJdmFyLT52YXJhdHRu byAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCX0KIAlyZXR1cm4gcGF0 aF9xdWVyeTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2 aWxlZ2VzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKaW5k ZXggNzU5MTJmNjkwYzIuLmFkMTExYzM2MWVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHJpdmlsZWdlcy5vdXQKQEAgLTI5NDgsOSArMjk0OCwxMDAgQEAgcmV2b2tlIHNlbGVjdCBvbiBk ZXBfcHJpdl90ZXN0IGZyb20gcmVncmVzc19wcml2X3VzZXI0IGNhc2NhZGU7CiAKIHNldCBzZXNz aW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIxOwogZHJvcCB0YWJsZSBkZXBfcHJpdl90ZXN0Owor LS0KKy0tIFByb3BlcnR5IGdyYXBocworLS0KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2 X3VzZXIxOworY3JlYXRlIHByb3BlcnR5IGdyYXBoIHB0ZzEKKwl2ZXJ0ZXggdGFibGVzICgKKwkJ YXRlc3Q1IGtleSAoZm91cikKKwkJCWRlZmF1bHQgbGFiZWwgcHJvcGVydGllcyAoZm91cikKKwkJ CWxhYmVsIGx0dGMgcHJvcGVydGllcyAodGhyZWUgYXMgbHR0Y2spLAorCQlhdGVzdDEga2V5IChh KQorCQkJZGVmYXVsdCBsYWJlbAorCQkJbGFiZWwgbHR0YyBwcm9wZXJ0aWVzIChhIGFzIGx0dGNr KSwKKwkJYXRlc3QyIGtleSAoY29sMSkKKwkJCWRlZmF1bHQgbGFiZWwKKwkJCWxhYmVsIGx0diBw cm9wZXJ0aWVzIChjb2wxIGFzIGx0dmspKTsKKy0tIHNlbGVjdCBwcml2aWxlZ2VzIG9uIHByb3Bl cnR5IGdyYXBoIGFzIHdlbGwgYXMgdGFibGUKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0 ZzEgbWF0Y2ggKCA6IGF0ZXN0NSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9r CisgdmFsdWUgCistLS0tLS0tCisoMCByb3dzKQorCitncmFudCBzZWxlY3Qgb24gcHRnMSB0byBy ZWdyZXNzX3ByaXZfdXNlcjI7CitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMjsK K3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1O UyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCisoMCByb3dz KQorCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBwcm9wZXJ0eSBncmFwaCBidXQgbm90IHRhYmxl CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVN TlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgdGFibGUgYXRlc3Q1CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1h dGNoICggOiBsdHRjKSBDT0xVTU5TICgxIGFzIHZhbHVlKSkgbGltaXQgMDsgLS0gZmFpbHMKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorc2V0IHNlc3Npb24gcm9s ZSByZWdyZXNzX3ByaXZfdXNlcjM7CistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiB0YWJsZSBidXQg bm90IHByb3BlcnR5IGdyYXBoCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNo ICggOiBhdGVzdDEpIENPTFVNTlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvcGVydHkgZ3JhcGggcHRnMQorLS0gc2VsZWN0 IHByaXZpbGVnZXMgb24gbmVpdGhlcgorc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBt YXRjaCAoIDogYXRlc3Q1KSBDT0xVTU5TICgxIGFzIHZhbHVlKSkgbGltaXQgMDsgLS0gZmFpbHMK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHByb3BlcnR5IGdyYXBoIHB0ZzEKKy0tIGNv bHVtbiBwcml2aWxlZ2VzCitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMTsKK3Nl bGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKHYgOiBsdHRjKSBDT0xVTU5TICh2 Lmx0dGNrKSkgbGltaXQgMDsgLS0gb2sKKyBsdHRjayAKKy0tLS0tLS0KKygwIHJvd3MpCisKK2dy YW50IHNlbGVjdCBvbiBwdGcxIHRvIHJlZ3Jlc3NfcHJpdl91c2VyNDsKK3NldCBzZXNzaW9uIHJv bGUgcmVncmVzc19wcml2X3VzZXI0Oworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBt YXRjaCAoYSA6IGF0ZXN0NSkgQ09MVU1OUyAoYS5mb3VyKSkgbGltaXQgMDsgLS0gb2sKKyBmb3Vy IAorLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1h dGNoICh2IDogbHR0YykgQ09MVU1OUyAodi5sdHRjaykpIGxpbWl0IDA7IC0tIGZhaWwKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorLS0gYWNjZXNzIHByb3BlcnR5 IGdyYXBoIHRocm91Z2ggc2VjdXJpdHkgZGVmaW5lciB2aWV3CitzZXQgc2Vzc2lvbiByb2xlIHJl Z3Jlc3NfcHJpdl91c2VyNDsKK2NyZWF0ZSB2aWV3IGF0cGd2MSBhcyBzZWxlY3QgKiBmcm9tIGdy YXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDEpIENPTFVNTlMgKDEgYXMgdmFsdWUpKSBs aW1pdCAwOworZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MSB0byByZWdyZXNzX3ByaXZfdXNlcjM7Citz ZWxlY3QgKiBmcm9tIGF0cGd2MTsgLS0gb2sKKyB2YWx1ZSAKKy0tLS0tLS0KKygwIHJvd3MpCisK K3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIzOworc2VsZWN0ICogZnJvbSBhdHBn djE7IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCisoMCByb3dzKQorCitzZXQgc2Vzc2lvbiByb2xl IHJlZ3Jlc3NfcHJpdl91c2VyNDsKK2NyZWF0ZSB2aWV3IGF0cGd2MiBhcyBzZWxlY3QgKiBmcm9t IGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICh2IDogbHR2KSBDT0xVTU5TICh2Lmx0dmspKSBsaW1p dCAwOworLS0gdGhvdWdoIHRoZSBzZXNzaW9uIHVzZXIgaXMgdGhlIG93bmVyIG9mIHRoZSB2aWV3 IGFuZCBhbHNvIGhhcyBhY2Nlc3MgdG8gdGhlCistLSBwcm9wZXJ0eSBncmFwaCwgaXQgZG9lcyBu b3QgaGF2ZSBhY2Nlc3MgdG8gYSB0YWJsZSByZWZlcmVuY2VkIGluIHRoZSBncmFwaAorLS0gcGF0 dGVybgorc2VsZWN0ICogZnJvbSBhdHBndjI7IC0tIGZhaWwKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIGF0ZXN0MgorZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MiB0byByZWdyZXNz X3ByaXZfdXNlcjI7CistLSBUaGUgdXNlciB3aG8gb3RoZXJ3aXNlIGRvZXMgbm90IGhhdmUgYWNj ZXNzIHRvIHRoZSBwcm9wZXJ0eSBncmFwaCwgZ2V0cworLS0gYWNjZXNzIHRvIGl0IHRocm91Z2gg YSBzZWN1cml0eSBkZWZpbmVyIHZpZXcgYW5kIHVzZXMgaXQgc3VjY2Vzc2Z1bGx5IHNpbmNlCist LSBpdCBoYXMgYWNjZXNzIHRvIHRoZSB0YWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgZ3JhcGggcGF0 dGVybi4KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIyOworc2VsZWN0ICogZnJv bSBhdHBndjI7IC0tIG9rCisgbHR2ayAKKy0tLS0tLQorKDAgcm93cykKKwogLS0gY2xlYW4gdXAK IFxjCiBkcm9wIHNlcXVlbmNlIHhfc2VxOworZHJvcCB2aWV3IGF0cGd2MTsKK2Ryb3AgdmlldyBh dHBndjI7Citkcm9wIHByb3BlcnR5IGdyYXBoIHB0ZzE7CiBEUk9QIEFHR1JFR0FURSBwcml2X3Rl c3RhZ2cxKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmMyKGludCk7CiBEUk9QIEZV TkNUSU9OIHByaXZfdGVzdGZ1bmM0KGJvb2xlYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2Vz LnNxbAppbmRleCBkODg2Y2MwODhjOS4uZDU3MTA4MmI3MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3By aXZpbGVnZXMuc3FsCkBAIC0xNzQ2LDYgKzE3NDYsNjAgQEAgcmV2b2tlIHNlbGVjdCBvbiBkZXBf cHJpdl90ZXN0IGZyb20gcmVncmVzc19wcml2X3VzZXI0IGNhc2NhZGU7CiBzZXQgc2Vzc2lvbiBy b2xlIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIGRyb3AgdGFibGUgZGVwX3ByaXZfdGVzdDsKIAorLS0K Ky0tIFByb3BlcnR5IGdyYXBocworLS0KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3Vz ZXIxOworY3JlYXRlIHByb3BlcnR5IGdyYXBoIHB0ZzEKKwl2ZXJ0ZXggdGFibGVzICgKKwkJYXRl c3Q1IGtleSAoZm91cikKKwkJCWRlZmF1bHQgbGFiZWwgcHJvcGVydGllcyAoZm91cikKKwkJCWxh YmVsIGx0dGMgcHJvcGVydGllcyAodGhyZWUgYXMgbHR0Y2spLAorCQlhdGVzdDEga2V5IChhKQor CQkJZGVmYXVsdCBsYWJlbAorCQkJbGFiZWwgbHR0YyBwcm9wZXJ0aWVzIChhIGFzIGx0dGNrKSwK KwkJYXRlc3QyIGtleSAoY29sMSkKKwkJCWRlZmF1bHQgbGFiZWwKKwkJCWxhYmVsIGx0diBwcm9w ZXJ0aWVzIChjb2wxIGFzIGx0dmspKTsKKy0tIHNlbGVjdCBwcml2aWxlZ2VzIG9uIHByb3BlcnR5 IGdyYXBoIGFzIHdlbGwgYXMgdGFibGUKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEg bWF0Y2ggKCA6IGF0ZXN0NSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCitn cmFudCBzZWxlY3Qgb24gcHRnMSB0byByZWdyZXNzX3ByaXZfdXNlcjI7CitzZXQgc2Vzc2lvbiBy b2xlIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEg bWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCist LSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBwcm9wZXJ0eSBncmFwaCBidXQgbm90IHRhYmxlCitzZWxl Y3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVNTlMgKDEg YXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAo cHRnMSBtYXRjaCAoIDogbHR0YykgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIGZh aWxzCitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMzsKKy0tIHNlbGVjdCBwcml2 aWxlZ2VzIG9uIHRhYmxlIGJ1dCBub3QgcHJvcGVydHkgZ3JhcGgKK3NlbGVjdCAqIGZyb20gZ3Jh cGhfdGFibGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxp bWl0IDA7IC0tIGZhaWxzCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBuZWl0aGVyCitzZWxlY3Qg KiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVNTlMgKDEgYXMg dmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworLS0gY29sdW1uIHByaXZpbGVnZXMKK3NldCBzZXNz aW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIxOworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAo cHRnMSBtYXRjaCAodiA6IGx0dGMpIENPTFVNTlMgKHYubHR0Y2spKSBsaW1pdCAwOyAtLSBvawor Z3JhbnQgc2VsZWN0IG9uIHB0ZzEgdG8gcmVncmVzc19wcml2X3VzZXI0Oworc2V0IHNlc3Npb24g cm9sZSByZWdyZXNzX3ByaXZfdXNlcjQ7CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcx IG1hdGNoIChhIDogYXRlc3Q1KSBDT0xVTU5TIChhLmZvdXIpKSBsaW1pdCAwOyAtLSBvaworc2Vs ZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBtYXRjaCAodiA6IGx0dGMpIENPTFVNTlMgKHYu bHR0Y2spKSBsaW1pdCAwOyAtLSBmYWlsCistLSBhY2Nlc3MgcHJvcGVydHkgZ3JhcGggdGhyb3Vn aCBzZWN1cml0eSBkZWZpbmVyIHZpZXcKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3Vz ZXI0OworY3JlYXRlIHZpZXcgYXRwZ3YxIGFzIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0 ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7CitncmFu dCBzZWxlY3Qgb24gYXRwZ3YxIHRvIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK3NlbGVjdCAqIGZyb20g YXRwZ3YxOyAtLSBvaworc2V0IHNlc3Npb24gcm9sZSByZWdyZXNzX3ByaXZfdXNlcjM7CitzZWxl Y3QgKiBmcm9tIGF0cGd2MTsgLS0gb2sKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3Vz ZXI0OworY3JlYXRlIHZpZXcgYXRwZ3YyIGFzIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0 ZzEgbWF0Y2ggKHYgOiBsdHYpIENPTFVNTlMgKHYubHR2aykpIGxpbWl0IDA7CistLSB0aG91Z2gg dGhlIHNlc3Npb24gdXNlciBpcyB0aGUgb3duZXIgb2YgdGhlIHZpZXcgYW5kIGFsc28gaGFzIGFj Y2VzcyB0byB0aGUKKy0tIHByb3BlcnR5IGdyYXBoLCBpdCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0 byBhIHRhYmxlIHJlZmVyZW5jZWQgaW4gdGhlIGdyYXBoCistLSBwYXR0ZXJuCitzZWxlY3QgKiBm cm9tIGF0cGd2MjsgLS0gZmFpbAorZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MiB0byByZWdyZXNzX3By aXZfdXNlcjI7CistLSBUaGUgdXNlciB3aG8gb3RoZXJ3aXNlIGRvZXMgbm90IGhhdmUgYWNjZXNz IHRvIHRoZSBwcm9wZXJ0eSBncmFwaCwgZ2V0cworLS0gYWNjZXNzIHRvIGl0IHRocm91Z2ggYSBz ZWN1cml0eSBkZWZpbmVyIHZpZXcgYW5kIHVzZXMgaXQgc3VjY2Vzc2Z1bGx5IHNpbmNlCistLSBp dCBoYXMgYWNjZXNzIHRvIHRoZSB0YWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgZ3JhcGggcGF0dGVy bi4KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIyOworc2VsZWN0ICogZnJvbSBh dHBndjI7IC0tIG9rCiAKIC0tIGNsZWFuIHVwCiAKQEAgLTE3NTMsNiArMTgwNywxMCBAQCBkcm9w IHRhYmxlIGRlcF9wcml2X3Rlc3Q7CiAKIGRyb3Agc2VxdWVuY2UgeF9zZXE7CiAKK2Ryb3Agdmll dyBhdHBndjE7Citkcm9wIHZpZXcgYXRwZ3YyOworZHJvcCBwcm9wZXJ0eSBncmFwaCBwdGcxOwor CiBEUk9QIEFHR1JFR0FURSBwcml2X3Rlc3RhZ2cxKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZf dGVzdGZ1bmMyKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmM0KGJvb2xlYW4pOwot LSAKMi4zNC4xCgo= --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ-20241205.patch" Content-Disposition: attachment; filename="0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yqub0 RnJvbSBiMzc1ODhlNzcxNmQyNzU2MWViN2NjZjhhODZmNGRmMzNlZjhiY2YyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRyYXV0Lm9y Zz4KRGF0ZTogVGh1LCAyNyBKdW4gMjAyNCAxNDoxMDo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MS84XSBXSVA6IFNRTCBQcm9wZXJ0eSBHcmFwaCBRdWVyaWVzIChTUUwvUEdRKQoKSW1wbGVtZW50 YXRpb24gb2YgU1FMIHByb3BlcnR5IGdyYXBoIHF1ZXJpZXMsIGFjY29yZGluZyB0byBTUUwvUEdR CnN0YW5kYXJkIChJU08gOTA3NS0xNjoyMDIzKS4KCkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8 cGV0ZXJAZWlzZW50cmF1dC5vcmc+CkF1dGhvcjogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3NoLmJh cGF0Lm9zc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L21lc3NhZ2UtaWQvZmxhdC9hODU1Nzk1ZC1lNjk3LTRmYTUtODY5OC1kMjAxMjIxMjY1NjdAZWlz ZW50cmF1dC5vcmcKCkRlc2NyaXB0aW9uIG9mIGZpeGVzIGFkZGVkIHRvIHRoZSBvcmlnaW5hbCBw YXRjaAoKMS4gRml4ZXMgc3VnZ2VzdGVkIGJ5IHBncGVybHRpZHkuCgoyLiBiaW5hcnlfdXBncmFk ZV9zZXRfcGdfY2xhc3Nfb2lkKCkgY2FsbCBmaXg6IEFmdGVyCiAgIDZlMWM0YTAzYTk3OGVkMzU3 NDEyNGQ4ZjJiZTIyYmEyZTVhNGIxZTkKICAgYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2NsYXNzX29p ZCgpIGRvZXNuJ3QgbmVlZCB0aGUgKG5vdyBub24tZXhpc3RlbnQpCiAgIGxhc3QgYXJndW1lbnQu CgozLiBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KCkgY2FsbCBmaXg6CiAgIDg5ZjkwOGE2 ZDBhYzEzMzdjODY4NjI1MDA4Yzk1OTg0ODdkMTg0ZTcgYWRkZWQgYSBuZXcgcGFyYW1ldGVyCiAg IHdpdGhQZXJpb2QgdG8gZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheSgpLiBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQKICAgdG8gZGVjb21waWxlIGtleXMgaW4gcHJvcGVydHkgZ3JhcGggZGVmaW5p dGlvbi4gS0VZcyBpbiBwcm9wZXJ0eQogICBncmFwaCBkZWZpbml0aW9uIGFyZSBub3QgdGVtcG9y YWwgYW5kIHRodXMgZG8gbm90IG5lZWQgdG8gc3BlY2lmeQogICBQRVJJT0QgaW4gdGhlaXIgZGVm aW5pdGlvbi4gSGVuY2UgcGFzcyBgZmFsc2VgIHRvCiAgIGRlY29tcGlsZV9jb2x1bW5faW5kZXhf YXJyYXkoKSB3aGVuIGNhbGxlZCBmb3Igd2hpbGUgZGVjb21waWxpbmcgYQogICBwcm9wZXJ0eSBn cmFwaCBkZWZpbml0aW9uLgoKNC4gU3B1cmlvdXMgY29sdW1uIG5vdCBmb3VuZCBlcnJvcjogQXR0 cmlidXRlIG5hbWUgZnJvbSBhIGhlYXAgdHVwbGUKICAgbmVlZHMgdG8gYmUgY29waWVkIGJlZm9y ZSByZWxlYXNpbmcgdGhlIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0dXBsZQogICBhbmQgdGhlIHRh YmxlIHNjYW4uCgo1LiBNZXJnZSBjb25mbGljdCBmaXhlcyBpbiBwYXJzZXIucGw6IGFmdGVyIEVD UEcgcmVsYXRlZCByZWZhY3RvcmluZwogICBmcm9tIGNvbW1pdHMgYXJvdW5kIDZiMDA1NDk5NDQ3 NTEyYWJmYTFlNGFkZDg3ZGNmM2UyODU5YzRmOWUuCgo2LiBNZXJnZSBjb25mbGljdCBpbiBhbHRl ci5jIGFuZCBhY2xjaGsuYyB3aGVuIG1lcmdpbmcgd2l0aCBIRUFEID0KICAgYWFjODMxY2FmYTZm MzEwNmRmY2JkMzI5ODc1NzgwMWMyOTkzNTFmYwoKNy4gRml4IGNvbXBpbGF0aW9uIGVycm9yIGlu IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoKToKUmVsYXRpb25HZXRQcmltYXJ5S2V5SW5kZXgo KSwgY2FsbGVkIGJ5IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoKSByZXF1aXJlcyBhCnNlY29u ZCBhcmd1bWVudCBzcGVjaWZ5aW5nIHdoZXRoZXIgREVGRVJSRUQgcHJpbWFyeSBrZXkgY29uc3Ry YWludHMgYXJlCmFjY2VwdGFibGUuIFNRTC9QR1Egc3RhbmRhcmQgc2VjdGlvbiA5LjEyLCBTeW50 YXggUnVsZSA0IG1lbnRpb25zIG9ubHkgcHJpbWFyeQprZXkgYW5kIGRvZXMgbm90IGRpc2N1c3Mg REVGRVJSRURuZXNzLiBGaXggY29tcGlsYXRpb24gZmFpbHVyZSBieSBwYXNzaW5nICJ0cnVlIgp0 byBSZWxhdGlvbkdldFByaW1hcnlLZXlJbmRleCgpIGFzIHNlY29uZCBhcmd1bWVudC4gTm8gYWRq dXN0bWVudCB0byB0aGUKZG9jdW1lbnRhdGlvbiBpcyBuZWVkZWQgc2luY2UgaXQgbWVudGlvbmVk IHByaW1hcnkga2V5IHdpdGhvdXQgREVGRVJSRURuZXNzLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICA0NzEgKysrKy0KIGRvYy9zcmMvc2dtbC9k ZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMjUgKystCiBkb2Mvc3JjL3NnbWwv ZmVhdHVyZXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBkb2Mvc3JjL3NnbWwv ZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsKIGRvYy9zcmMvc2dtbC9p bmZvcm1hdGlvbl9zY2hlbWEuc2dtbCAgICAgICAgICB8IDEwOTIgKysrKysrKysrKysKIC4uLi9z Z21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0ICB8ICAgMjcgKwogZG9jL3Ny Yy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtcmVzZXJ2ZWQudHh0IHwgICAxMiArCiBkb2Mvc3Jj L3NnbWwvcXVlcmllcy5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTY4ICsrCiBkb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgICAzICsKIGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfZXh0ZW5zaW9uLnNnbWwgICAgICAgICB8ICAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbCAgICB8ICAyOTkgKysrCiBkb2Mvc3Jj L3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwgICB8ICAzMTAgKysrCiBkb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbCAgICAgfCAgMTExICsrCiBkb2Mvc3Jj L3NnbWwvcmVmL2dyYW50LnNnbWwgICAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBkb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEzICstCiBkb2Mvc3Jj L3NnbWwvcmVmL3Jldm9rZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIGRvYy9zcmMv c2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbCAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9zZWxlY3Quc2dtbCAgICAgICAgICAgICAgICAgIHwgICA0MyArCiBkb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICAgMjQgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAxMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgICAgfCAgMzY0ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8ICAzMDYgKysrCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NsYXNzLmMgICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAxMDAgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAgICAgfCAgIDI4ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAgICAgfCAxNzA2ICsrKysrKysrKysrKysrKysrCiBz cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICAgMTYgKwogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICAxNSArLQogc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICA3MiArCiBzcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jICAgICAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9i YWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyAgICAgICAgIHwgICAgNCArCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyAgICAgfCAgICA4ICsKIHNyYy9iYWNr ZW5kL3BhcnNlci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI5OCArLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA3MDQgKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgIDExICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgICAgICB8ICAgODkgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgICA2ICsKIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYyAgICAgICAgIHwgIDIwOSArKwogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICA5OCArLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2Vu ZC9wYXJzZXIvc2Nhbi5sICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICstCiBzcmMvYmFja2Vu ZC9yZXdyaXRlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L3Jld3JpdGUvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv cmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAgICAgIHwgMTA5OCArKysrKysrKysrKwogc3Jj L2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAgIHwgICAxMSArCiBzcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICA1MzcgKysrKysrCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAgIDM4ICsKIHNy Yy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgIDEgKwogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgICA2NyArLQogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgICAxMiArCiBzcmMv YmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBzcmMv YmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQzICstCiBzcmMv YmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNjcgKy0KIHNyYy9m ZV91dGlscy9wc3Fsc2Nhbi5sICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDcgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCAgICB8ICAxMDMgKwogLi4uL2NhdGFs b2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaCAgICAgIHwgICA1MSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oICAgICAgfCAgIDUxICsKIC4uLi9jYXRhbG9n L3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oICAgICB8ICAgNTkgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCAgIHwgICA1NCArCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9wcm9wZ3JhcGhjbWRzLmggICAgICAgICAgfCAgIDIzICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxMzkgKysKIHNyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMjIgKwogc3JjL2luY2x1ZGUvcGFy c2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ncmFwaHRhYmxlLmggICAgICAgICB8ICAgMzEgKwogc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgICA4ICsKIHNyYy9pbmNsdWRlL3Jld3JpdGUv cmV3cml0ZUdyYXBoVGFibGUuaCAgICAgICB8ICAgMjEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wu aCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNj YWNoZS5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL3BhcnNlLnBsICAgICAgICAgIHwgICAgNiArLQogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL3BnYy5sICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dy YW0ueSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2FsdGVyX2dlbmVyaWMub3V0ICAgfCAgIDUxICstCiAuLi4vZXhwZWN0ZWQvY3JlYXRlX3Byb3Bl cnR5X2dyYXBoLm91dCAgICAgICAgfCAgNDk2ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dyYXBoX3RhYmxlLm91dCAgICAgfCAgNDg0ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCAgfCAgIDE0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDExICsKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2FsdGVyX2dlbmVyaWMuc3FsICAgICAgICB8ICAgMzQgKwogLi4uL3JlZ3Jlc3Mvc3FsL2NyZWF0 ZV9wcm9wZXJ0eV9ncmFwaC5zcWwgICAgIHwgIDE5MCArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv Z3JhcGhfdGFibGUuc3FsICAgICAgICAgIHwgIDMzNiArKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9vYmplY3RfYWRkcmVzcy5zcWwgICAgICAgfCAgICA0ICstCiBzcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIxICsKIDEwNCBmaWxlcyBjaGFuZ2VkLCAx MDkxNyBpbnNlcnRpb25zKCspLCAyMDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0CiBjcmVhdGUg bW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtcmVzZXJ2ZWQudHh0 CiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9wZXJ0eV9ncmFw aC5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVy dHlfZ3JhcGguc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF9w cm9wZXJ0eV9ncmFwaC5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJvcGdyYXBoY21kcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2dyYXBodGFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUdyYXBoVGFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJv cGVydHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb3BncmFw aGNtZHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFw aHRhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVH cmFwaFRhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmlu ZGV4IGJmM2NlZTA4YTkzLi4wYjdhNGRjNWY5ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTI0MCw2ICsy NDAsMzEgQEAKICAgICAgIDxlbnRyeT5mdW5jdGlvbnMgYW5kIHByb2NlZHVyZXM8L2VudHJ5Pgog ICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctcHJvcGdyYXBoLWVsZW1lbnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVt ZW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnByb3BlcnR5IGdy YXBoIGVsZW1lbnRzICh2ZXJ0aWNlcyBhbmQgZWRnZXMpPC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3Bn cmFwaC1lbGVtZW50LWxhYmVsIj48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJl bDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcm9wZXJ0eSBncmFw aCBsaW5rcyBiZXR3ZWVuIGVsZW1lbnRzIGFuZCBsYWJlbHM8L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJv cGdyYXBoLWxhYmVsIj48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+cHJvcGVydHkgZ3JhcGggbGFiZWxzPC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbC1wcm9wZXJ0eSI+PHN0cnVjdG5hbWU+cGdfcHJv cGdyYXBoX2xhYmVsX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAg PGVudHJ5PnByb3BlcnR5IGdyYXBoIGxhYmVsLXNwZWNpZmljIHByb3BlcnR5IGRlZmluaXRpb25z PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1wcm9wZXJ0eSI+PHN0cnVjdG5hbWU+cGdfcHJv cGdyYXBoX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5 PnByb3BlcnR5IGdyYXBoIHByb3BlcnRpZXM8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8 cm93PgogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHVibGljYXRpb24i PjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5Pgog ICAgICAgPGVudHJ5PnB1YmxpY2F0aW9ucyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbjwvZW50cnk+ CkBAIC0yMTMxLDcgKzIxNTYsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRl cmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIDxs aXRlcmFsPmM8L2xpdGVyYWw+ID0gY29tcG9zaXRlIHR5cGUsCiAgICAgICAgPGxpdGVyYWw+Zjwv bGl0ZXJhbD4gPSBmb3JlaWduIHRhYmxlLAogICAgICAgIDxsaXRlcmFsPnA8L2xpdGVyYWw+ID0g cGFydGl0aW9uZWQgdGFibGUsCi0gICAgICAgPGxpdGVyYWw+STwvbGl0ZXJhbD4gPSBwYXJ0aXRp b25lZCBpbmRleAorICAgICAgIDxsaXRlcmFsPkk8L2xpdGVyYWw+ID0gcGFydGl0aW9uZWQgaW5k ZXgsCisgICAgICAgPGxpdGVyYWw+ZzwvbGl0ZXJhbD4gPSBwcm9wZXJ0eSBncmFwaAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC02Mjg5LDYgKzYzMTUsNDQ5IEBAIFND UkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNl YWJsZT46PHJlcGxhY2VhYmxlPiZsCiAKICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9n LXBnLXByb3BncmFwaC1lbGVtZW50Ij4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFw aF9lbGVtZW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRh bG9nLXBnLXByb3BncmFwaC1lbGVtZW50Ij4KKyAgIDxwcmltYXJ5PnBnX3Byb3BncmFwaF9lbGVt ZW50PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9n IDxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAg IGluZm9ybWF0aW9uIGFib3V0IHRoZSB2ZXJ0aWNlcyBhbmQgZWRnZXMgb2YgYSBwcm9wZXJ0eSBn cmFwaCwgY29sbGVjdGl2ZWx5CisgICBjYWxsZWQgdGhlIGVsZW1lbnRzIG9mIHRoZSBwcm9wZXJ0 eSBncmFwaC4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19wcm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdy b3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnBnZXBnaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5h bWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZlcmVuY2UgdG8g dGhlIHByb3BlcnR5IGdyYXBoIHRoYXQgdGhpcyBlbGVtZW50IGJlbG9uZ3MgdG8KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+cGdlcmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+ PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZl cmVuY2UgdG8gdGhlIHRhYmxlIHRvIGNvbnRhaW5zIHRoZSBkYXRhIGZvciB0aGlzIHByb3BlcnR5 IGdyYXBoIGVsZW1lbnQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlYWxpYXM8L3N0 cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIGFsaWFzIG9mIHRoZSBlbGVtZW50LiAgVGhpcyBpcyBhIHVuaXF1ZSBpZGVu dGlmaWVyIGZvciB0aGUgZWxlbWVudAorICAgICAgIHdpdGhpbiB0aGUgZ3JhcGguICBJdCBpcyBz ZXQgd2hlbiB0aGUgcHJvcGVydHkgZ3JhcGggaXMgZGVmaW5lZCBhbmQKKyAgICAgICBkZWZhdWx0 cyB0byB0aGUgbmFtZSBvZiB0aGUgdW5kZXJseWluZyBlbGVtZW50IHRhYmxlLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VraW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxsaXRlcmFsPnY8L2xpdGVy YWw+IGZvciBhIHZlcnRleCwgPGxpdGVyYWw+ZTwvbGl0ZXJhbD4gZm9yIGFuIGVkZ2UKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlc3JjdmVydGV4aWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wcm9wZ3JhcGgtZWxlbWVudCI+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2VsZW1lbnQ8L3N0 cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgYW4gZWRnZSwgYSBsaW5rIHRvIHRoZSBz b3VyY2UgdmVydGV4LiAgKFplcm8gZm9yIGEgdmVydGV4LikKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGdlZGVzdHZlcnRleGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWVs ZW1lbnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGEgbGluayB0byB0aGUgZGVzdGluYXRpb24gdmVy dGV4LiAgKFplcm8gZm9yIGEgdmVydGV4LikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGdla2V5PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MltdPC90eXBlPgorICAgICAgIChyZWZlcmVu Y2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5wZ19h dHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBbiBhcnJheSBvZiBj b2x1bW4gbnVtYmVycyBpbiB0aGUgdGFibGUgcmVmZXJlbmNlZCBieQorICAgICAgIDxzdHJ1Y3Ru YW1lPnBnZXJlbGlkPC9zdHJ1Y3RuYW1lPiB0aGF0IGRlZmluZXMgdGhlIGtleSB0byB1c2UgZm9y IHRoaXMKKyAgICAgICBlbGVtZW50IHRhYmxlLiAgKFRoaXMgZGVmYXVsdHMgdG8gdGhlIHByaW1h cnkga2V5IHdoZW4gdGhlIHByb3BlcnR5CisgICAgICAgZ3JhcGggaXMgY3JlYXRlZC4pCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZXNyY2tleTwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDJbXTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGFuIGFycmF5IG9mIGNvbHVtbiBudW1iZXJzIGlu IHRoZSB0YWJsZSByZWZlcmVuY2VkIGJ5CisgICAgICAgPHN0cnVjdG5hbWU+cGdlcmVsaWQ8L3N0 cnVjdG5hbWU+IHRoYXQgZGVmaW5lcyB0aGUgc291cmNlIGtleSB0byB1c2UKKyAgICAgICBmb3Ig dGhpcyBlbGVtZW50IHRhYmxlLiAgKE51bGwgZm9yIGEgdmVydGV4LikgIFRoZSBjb21iaW5hdGlv biBvZgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNrZXk8L3N0cnVjdGZpZWxkPiBhbmQKKyAg ICAgICA8c3RydWN0ZmllbGQ+cGdlc3JjcmVmPC9zdHJ1Y3RmaWVsZD4gY3JlYXRlcyB0aGUgbGlu ayBiZXR3ZWVuIHRoZSBlZGdlCisgICAgICAgYW5kIHRoZSBzb3VyY2UgdmVydGV4LgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNyZWY8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQy W108L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1h dHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+Ljxz dHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIEZvciBhbiBlZGdlLCBhbiBhcnJheSBvZiBjb2x1bW4gbnVtYmVycyBpbiB0 aGUgdGFibGUgcmVhY2hlZCB2aWEKKyAgICAgICA8c3RydWN0bmFtZT5wZ2VzcmN2ZXJ0ZXhpZDwv c3RydWN0bmFtZT4uICAoTnVsbCBmb3IgYSB2ZXJ0ZXguKSAgVGhlCisgICAgICAgY29tYmluYXRp b24gb2YgPHN0cnVjdGZpZWxkPnBnZXNyY2tleTwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxz dHJ1Y3RmaWVsZD5wZ2VzcmNyZWY8L3N0cnVjdGZpZWxkPiBjcmVhdGVzIHRoZSBsaW5rIGJldHdl ZW4gdGhlIGVkZ2UKKyAgICAgICBhbmQgdGhlIHNvdXJjZSB2ZXJ0ZXguCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnBnZWRlc3RrZXk8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyW108L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1 dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIEZvciBhbiBlZGdlLCBhbiBhcnJheSBvZiBjb2x1bW4gbnVtYmVycyBpbiB0aGUgdGFi bGUgcmVmZXJlbmNlZCBieQorICAgICAgIDxzdHJ1Y3RuYW1lPnBnZXJlbGlkPC9zdHJ1Y3RuYW1l PiB0aGF0IGRlZmluZXMgdGhlIGRlc3RpbmF0aW9uIGtleSB0byB1c2UKKyAgICAgICBmb3IgdGhp cyBlbGVtZW50IHRhYmxlLiAgKE51bGwgZm9yIGEgdmVydGV4LikgIFRoZSBjb21iaW5hdGlvbiBv ZgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VkZXN0a2V5PC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAg ICAgPHN0cnVjdGZpZWxkPnBnZWRlc3RyZWY8L3N0cnVjdGZpZWxkPiBjcmVhdGVzIHRoZSBsaW5r IGJldHdlZW4gdGhlIGVkZ2UKKyAgICAgICBhbmQgdGhlIGRlc3RpbmF0aW9uIHZlcnRleC4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDJbXTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGFuIGFycmF5IG9mIGNvbHVtbiBudW1iZXJz IGluIHRoZSB0YWJsZSByZWFjaGVkIHZpYQorICAgICAgIDxzdHJ1Y3RuYW1lPnBnZWRlc3R2ZXJ0 ZXhpZDwvc3RydWN0bmFtZT4uICAoTnVsbCBmb3IgYSB2ZXJ0ZXguKSAgVGhlCisgICAgICAgY29t YmluYXRpb24gb2YgPHN0cnVjdGZpZWxkPnBnZWRlc3RrZXk8L3N0cnVjdGZpZWxkPiBhbmQKKyAg ICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+IGNyZWF0ZXMgdGhlIGxp bmsgYmV0d2VlbiB0aGUgZWRnZQorICAgICAgIGFuZCB0aGUgZGVzdGluYXRpb24gdmVydGV4Lgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rn cm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXBy b3BncmFwaC1lbGVtZW50LWxhYmVsIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50LWxhYmVsIj4KKyAgIDxwcmltYXJ5PnBnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs PC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIGxhYmVscyBh cHBseSB0byB3aGljaCBlbGVtZW50cy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDwvc3RydWN0bmFtZT4gQ29s dW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9p ZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlm aWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWxsYWJlbGlkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctcHJvcGdyYXBoLWxhYmVsIj48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8 L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZlcmVuY2UgdG8gdGhlIGxhYmVsCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWxlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGct cHJvcGdyYXBoLWVsZW1lbnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50CisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3Vw PgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcHJvcGdy YXBoLWxhYmVsIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbDwvc3Ry dWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1wcm9wZ3Jh cGgtbGFiZWwiPgorICAgPHByaW1hcnk+cGdfcHJvcGdyYXBoX2xhYmVsPC9wcmltYXJ5PgorICA8 L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX3By b3BncmFwaF9sYWJlbDwvc3RydWN0bmFtZT4gc3RvcmVzCisgICBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgbGFiZWxzIGluIGEgcHJvcGVydHkgZ3JhcGguCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2xhYmVsPC9zdHJ1Y3RuYW1lPiBDb2x1 bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZp ZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdscGdpZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNsYXNzIj48c3RydWN0bmFtZT5wZ19jbGFzczwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFJlZmVyZW5jZSB0byB0aGUgcHJvcGVydHkgZ3JhcGggdGhhdCB0aGlzIGxhYmVsIGJl bG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdsbGFiZWw8L3N0cnVjdGZp ZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIG5hbWUgb2YgdGhlIGxhYmVsLiAgVGhpcyBpcyB1bmlxdWUgYW1vbmcgdGhlIGxhYmVs cyBpbiBhIGdyYXBoLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlk PSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbC1wcm9wZXJ0eSI+CisgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKwor ICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWxhYmVsLXByb3BlcnR5Ij4K KyAgIDxwcmltYXJ5PnBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eTwvcHJpbWFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHk8L3N0cnVjdG5hbWU+IHN0b3JlcworICAgaW5mb3JtYXRpb24g YWJvdXQgdGhlIHByb3BlcnRpZXMgaW4gYSBwcm9wZXJ0eSBncmFwaCB0aGF0IGFyZSBzcGVjaWZp YyB0byBhCisgICBsYWJlbC4gIEluIHBhcnRpY3VsYXIsIHRoaXMgc3RvcmVzIHRoZSBleHByZXNz aW9uIHRoYXQgZGVmaW5lcyB0aGUKKyAgIHByb3BlcnR5LgorICA8L3BhcmE+CisKKyAgPHRhYmxl PgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eTwvc3Ry dWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVh ZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBscHByb3BpZDwv c3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1wcm9wZXJ0eSI+PHN0cnVjdG5hbWU+cGdfcHJv cGdyYXBoX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNl IHRvIHRoZSBwcm9wZXJ0eQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wbHBlbGxhYmVs aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtZWxlbWVudC1sYWJlbCI+PHN0cnVjdG5h bWU+cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBSZWZlcmVuY2UgdG8gdGhlIGxhYmVsIChpbmRpcmVjdGx5IHZpYQorICAgICAgIDxzdHJ1 Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsPC9zdHJ1Y3RuYW1lPiwgd2hpY2ggdGhl biBsaW5rcworICAgICAgIHRvIDxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbDwvc3RydWN0 bmFtZT4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBscGV4cHI8L3N0cnVjdGZpZWxk PiA8dHlwZT5wZ19ub2RlX3RyZWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBFeHByZXNzaW9uIHRyZWUgKGluIDxmdW5jdGlvbj5ub2RlVG9TdHJpbmcoKTwvZnVu Y3Rpb24+IHJlcHJlc2VudGF0aW9uKQorICAgICAgIGZvciB0aGUgcHJvcGVydHkncyBkZWZpbml0 aW9uLiAgVGhlIGV4cHJlc3Npb24gcmVmZXJlbmNlcyB0aGUgdGFibGUKKyAgICAgICByZWFjaGVk IHZpYSA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDwvc3RydWN0bmFtZT4g YW5kCisgICAgICAgPHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2VsZW1lbnQ8L3N0cnVjdG5hbWU+ LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8 L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBn LXByb3BncmFwaC1wcm9wZXJ0eSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhf cHJvcGVydHk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFs b2ctcGctcHJvcGdyYXBoLXByb3BlcnR5Ij4KKyAgIDxwcmltYXJ5PnBnX3Byb3BncmFwaF9wcm9w ZXJ0eTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxv ZyA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfcHJvcGVydHk8L3N0cnVjdG5hbWU+IHN0b3Jlcwor ICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb3BlcnRpZXMgaW4gYSBwcm9wZXJ0eSBncmFwaC4g IFRoaXMgb25seSBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIHRoYXQgYXBwbGllcyB0byBhIHByb3Bl cnR5IHRocm91Z2hvdXQgdGhlIGdyYXBoLCBpbmRlcGVuZGVudCBvZgorICAgd2hhdCBsYWJlbCBv ciBlbGVtZW50IGl0IGlzIG9uLiAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIHRo ZQorICAgYWN0dWFsIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBwcm9wZXJ0aWVzIGFyZSBp biB0aGUgY2F0YWxvZyA8bGluaworICAgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtbGFi ZWwtcHJvcGVydHkiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eTwvc3Ry dWN0bmFtZT48L2xpbms+LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX3Byb3BncmFwaF9wcm9wZXJ0eTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnBncHBnaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+ PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZl cmVuY2UgdG8gdGhlIHByb3BlcnR5IGdyYXBoIHRoYXQgdGhpcyBwcm9wZXJ0eSBiZWxvbmdzIHRv CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBncG5hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5h bWUgb2YgdGhlIHByb3BlcnR5LiAgVGhpcyBpcyB1bmlxdWUgYW1vbmcgdGhlIHByb3BlcnRpZXMg aW4gYQorICAgICAgIGdyYXBoLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ3B0eXBp ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoaXMgcHJvcGVydHkuICAo VGhpcyBpcyByZXF1aXJlZCB0byBiZSBmaXhlZCBmb3IgYQorICAgICAgIGdpdmVuIHByb3BlcnR5 IGluIGEgcHJvcGVydHkgZ3JhcGgsIGV2ZW4gaWYgdGhlIHByb3BlcnR5IGlzIGRlZmluZWQKKyAg ICAgICBtdWx0aXBsZSB0aW1lcyBpbiBkaWZmZXJlbnQgZWxlbWVudHMgYW5kIGxhYmVscy4pCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdy b3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcHVi bGljYXRpb24iPgogICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb248L3N0cnVjdG5h bWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sCmluZGV4IGRlYTA0ZDY0ZGI2Li5mODljNmRhMGE3NCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAt MTk4NSw3ICsxOTg1LDcgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAg ICAgIDxwYXJhPgogICAgICAgIEFsbG93cyA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+IGZyb20K ICAgICAgICBhbnkgY29sdW1uLCBvciBzcGVjaWZpYyBjb2x1bW4ocyksIG9mIGEgdGFibGUsIHZp ZXcsIG1hdGVyaWFsaXplZAotICAgICAgIHZpZXcsIG9yIG90aGVyIHRhYmxlLWxpa2Ugb2JqZWN0 LgorICAgICAgIHZpZXcsIHByb3BlcnR5IGdyYXBoLCBvciBvdGhlciB0YWJsZS1saWtlIG9iamVj dC4KICAgICAgICBBbHNvIGFsbG93cyB1c2Ugb2YgPGNvbW1hbmQ+Q09QWSBUTzwvY29tbWFuZD4u CiAgICAgICAgVGhpcyBwcml2aWxlZ2UgaXMgYWxzbyBuZWVkZWQgdG8gcmVmZXJlbmNlIGV4aXN0 aW5nIGNvbHVtbiB2YWx1ZXMgaW4KICAgICAgICA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LCA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LApAQCAtNTMyMyw2ICs1MzIzLDIyOSBAQCBFWFBMQUlO IFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFU RSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iZGRs LXByb3BlcnR5LWdyYXBocyI+CisgIDx0aXRsZT5Qcm9wZXJ0eSBHcmFwaHM8L3RpdGxlPgorCisg IDxpbmRleHRlcm0gem9uZT0iZGRsLXByb3BlcnR5LWdyYXBocyI+CisgICA8cHJpbWFyeT5wcm9w ZXJ0eSBncmFwaDwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBBIHBy b3BlcnR5IGdyYXBoIGlzIGEgd2F5IHRvIHJlcHJlc2VudCBkYXRhYmFzZSBjb250ZW50cywgaW5z dGVhZCBvZiB1c2luZworICAgcmVsYXRpb25hbCBzdHJ1Y3R1cmVzIHN1Y2ggYXMgdGFibGVzLiAg QSBwcm9wZXJ0eSBncmFwaCBjYW4gdGhlbiBiZSBxdWVyaWVkCisgICB1c2luZyBncmFwaCBwYXR0 ZXJuIG1hdGNoaW5nIHN5bnRheCwgaW5zdGVhZCBvZiBqb2luIHF1ZXJpZXMgdHlwaWNhbCBvZgor ICAgcmVsYXRpb25hbCBkYXRhYmFzZXMuICBQb3N0Z3JlU1FMIGltcGxlbWVudHMgU1FML1BHUTxm b290bm90ZT48cGFyYT5IZXJlLAorICAgUEdRIHN0YW5kcyBmb3IgPHF1b3RlPnByb3BlcnR5IGdy YXBoIHF1ZXJ5PC9xdW90ZT4uICBJbiB0aGUgamFyZ29uIG9mIGdyYXBoCisgICBkYXRhYmFzZXMs IDxxdW90ZT5wcm9wZXJ0eSBncmFwaDwvcXVvdGU+IGlzIG5vcm1hbGx5IGFiYnJldmlhdGVkIGFz IFBHLAorICAgd2hpY2ggaXMgY2xlYXJseSBjb25mdXNpbmcgZm9yIHByYWN0aW9uZXJzIG9mIFBv c3RncmVTUUwsIGFsc28gdXN1YWxseQorICAgYWJicmV2aWF0ZWQgYXMgUEcuPC9wYXJhPjwvZm9v dG5vdGU+LCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBTUUwgc3RhbmRhcmQsCisgICB3aGVyZSBhIHBy b3BlcnR5IGdyYXBoIGlzIGRlZmluZWQgYXMgYSBraW5kIG9mIHJlYWQtb25seSB2aWV3IG92ZXIK KyAgIHJlbGF0aW9uYWwgdGFibGVzLiAgU28gdGhlIGFjdHVhbCBkYXRhIGlzIHN0aWxsIGluIHRh YmxlcyBvciB0YWJsZS1saWtlCisgICBvYmplY3RzLCBidXQgaXMgZXhwb3NlZCBhcyBhIGdyYXBo IGZvciBncmFwaCBxdWVyeWluZyBvcGVyYXRpb25zLiAgKFRoaXMgaXMKKyAgIGluIGNvbnRyYXN0 IHRvIG5hdGl2ZSBncmFwaCBkYXRhYmFzZXMsIHdoZXJlIHRoZSBkYXRhIGlzIHN0b3JlZCBkaXJl Y3RseSBpbgorICAgYSBncmFwaCBzdHJ1Y3R1cmUuKSAgVW5kZXJuZWF0aCwgYm90aCByZWxhdGlv bmFsIHF1ZXJpZXMgYW5kIGdyYXBoIHF1ZXJpZXMKKyAgIHVzZSB0aGUgc2FtZSBxdWVyeSBwbGFu bmluZyBhbmQgZXhlY3V0aW9uIGluZnJhc3R1Y3R1cmUsIGFuZCBpbiBmYWN0CisgICByZWxhdGlv bmFsIGFuZCBncmFwaCBxdWVyaWVzIGNhbiBiZSBjb21iaW5lZCBhbmQgbWl4ZWQgaW4gc2luZ2xl IHF1ZXJpZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEEgZ3JhcGggaXMgYSBzZXQgb2Yg dmVydGljZXMgYW5kIGVkZ2VzLiAgRWFjaCBlZGdlIGhhcyB0d28gZGlzdGluZ3Vpc2hhYmxlCisg ICBhc3NvY2lhdGVkIHZlcnRpY2VzIGNhbGxlZCB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB2 ZXJ0aWNlcy4gIChTbyBpbgorICAgdGhpcyBtb2RlbCwgYWxsIGVkZ2VzIGFyZSBkaXJlY3RlZC4p ICBWZXJ0aWNlcyBhbmQgZWRnZXMgdG9nZXRoZXIgYXJlCisgICBjYWxsZWQgdGhlIGVsZW1lbnRz IG9mIHRoZSBncmFwaC4gIEEgcHJvcGVydHkgZ3JhcGggZXh0ZW5kcyB0aGlzIHdlbGwta25vd24K KyAgIG1hdGhlbWF0aWNhbCBzdHJ1Y3R1cmUgd2l0aCBhIHdheSB0byByZXByZXNlbnQgdXNlciBk YXRhLiAgSW4gYSBwcm9wZXJ0eQorICAgZ3JhcGgsIGVhY2ggdmVydGV4IG9yIGVkZ2UgaGFzIG9u ZSBvciBtb3JlIGFzc29jaWF0ZWQgbGFiZWxzLCBhbmQgZWFjaAorICAgbGFiZWwgaGFzIHplcm8g b3IgbW9yZSBwcm9wZXJ0aWVzLiAgVGhlIGxhYmVscyBhcmUgc2ltaWxhciB0byB0YWJsZSByb3cK KyAgIHR5cGVzIGluIHRoYXQgdGhleSBkZWZpbmUgdGhlIGtpbmQgb2YgdGhlIGNvbnRhaW5lZCBk YXRhIGFuZCBpdHMgc3RydWN0dXJlLgorICAgVGhlIHByb3BlcnRpZXMgYXJlIHNpbWlsYXIgdG8g Y29sdW1ucyBpbiB0aGF0IHRoZXkgY29udGFpbiB0aGUgYWN0dWFsIGRhdGEuCisgICBJbiBmYWN0 LCBieSBkZWZhdWx0LCBhIHByb3BlcnR5IGdyYXBoIGRlZmluaXRpb24gZXhwb3NlcyB0aGUgdW5k ZXJseWluZworICAgdGFibGVzIGFuZCBjb2x1bW5zIGFzIGxhYmVscyBhbmQgcHJvcGVydGllcywg YnV0IG1vcmUgY29tcGxpY2F0ZWQKKyAgIGRlZmluaXRpb25zIGFyZSBwb3NzaWJsZS4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyB0YWJsZSBkZWZpbml0 aW9uczoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBwcm9kdWN0cyAoCisgICAgcHJv ZHVjdF9ubyBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBwcmlj ZSBudW1lcmljCispOworCitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9p ZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZh cmNoYXIKKyk7CisKK0NSRUFURSBUQUJMRSBvcmRlcnMgKAorICAgIG9yZGVyX2lkIGludGVnZXIg UFJJTUFSWSBLRVksCisgICAgb3JkZXJlZF93aGVuIGRhdGUKKyk7CisKK0NSRUFURSBUQUJMRSBv cmRlcl9pdGVtcyAoCisgICAgb3JkZXJfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAg ICBvcmRlcl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCksCisgICAgcHJv ZHVjdF9ubyBpbnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pLAorICAgIHF1 YW50aXR5IGludGVnZXIKKyk7CisKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAorICAg IGN1c3RvbWVyX29yZGVyc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lk IGludGVnZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICBvcmRlcl9p ZCBpbnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7Cis8L3Byb2dyYW1saXN0 aW5nPgorICAgV2hlbiBtYXBwaW5nIHRoaXMgdG8gYSBncmFwaCwgdGhlIGZpcnN0IHRocmVlIHRh YmxlcyB3b3VsZCBiZSB0aGUgdmVydGljZXMKKyAgIGFuZCB0aGUgbGFzdCB0d28gdGFibGVzIHdv dWxkIGJlIHRoZSBlZGdlcy4gIFRoZSBmb3JlaWduLWtleSBkZWZpbml0aW9ucworICAgY29ycmVz cG9uZCB0byB0aGUgZmFjdCB0aGF0IGVkZ2VzIGxpbmsgdHdvIHZlcnRpY2VzLiAgKEdyYXBoIGRl ZmluaXRpb25zCisgICB3b3JrIG1vcmUgbmF0dXJhbGx5IHdpdGggbWFueS10by1tYW55IHJlbGF0 aW9uc2hpcHMsIHNvIHRoaXMgZXhhbXBsZSBpcworICAgb3JnYW5pemVkIGxpa2UgdGhhdCwgZXZl biB0aG91Z2ggb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwcyBtaWdodCBiZSB1c2VkCisgICBoZXJl IGluIGEgcHVyZSByZWxhdGlvbmFsIGFwcHJvYWNoLikKKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgSGVyZSBpcyBhbiBleGFtcGxlIGhvdyBhIHByb3BlcnR5IGdyYXBoIGNvdWxkIGJlIGRlZmlu ZWQgb24gdG9wIG9mIHRoZXNlCisgICB0YWJsZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg UFJPUEVSVFkgR1JBUEggbXlzaG9wCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1 Y3RzLAorICAgICAgICBjdXN0b21lcnMsCisgICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIFNPVVJDRSBvcmRlcnMgREVTVElOQVRJT04g cHJvZHVjdHMsCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBTT1VSQ0UgY3VzdG9tZXJzIERFU1RJ TkFUSU9OIG9yZGVycworICAgICk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUaGlzIGdyYXBoIGNvdWxkIHRoZW4gYmUgcXVlcmllZCBsaWtlIHRoaXM6Cis8 cHJvZ3JhbWxpc3Rpbmc+CistLSBnZXQgbGlzdCBvZiBjdXN0b21lcnMgYWN0aXZlIHRvZGF5CitT RUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMg Y3VzdG9tZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzIFdIRVJFIG9yZGVy ZWRfd2hlbiA9IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUp KTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBjb3JyZXNwb25kaW5nIGFwcHJveGltYXRlbHkgdG8g dGhpcyByZWxhdGlvbmFsIHF1ZXJ5OgorPHByb2dyYW1saXN0aW5nPgorLS0gZ2V0IGxpc3Qgb2Yg Y3VzdG9tZXJzIGFjdGl2ZSB0b2RheQorU0VMRUNUIGN1c3RvbWVycy5uYW1lIEZST00gY3VzdG9t ZXJzIEpPSU4gY3VzdG9tZXJfb3JkZXJzIFVTSU5HIChjdXN0b21lcl9pZCkgSk9JTiBvcmRlcnMg VVNJTkcgKG9yZGVyX2lkKSBXSEVSRSBvcmRlcnMub3JkZXJlZF93aGVuID0gY3VycmVudF9kYXRl OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGFib3Zl IGRlZmluaXRpb24gcmVxdWlyZXMgdGhhdCBhbGwgdGFibGVzIGhhdmUgcHJpbWFyeSBrZXlzIGFu ZCB0aGF0CisgICBmb3IgZWFjaCBlZGdlIHRoZXJlIGlzIGFuIGFwcHJvcHJpYXRlIGZvcmVpZ24g a2V5LiAgT3RoZXJ3aXNlLCBhZGRpdGlvbmFsCisgICBjbGF1c2VzIGhhdmUgdG8gYmUgc3BlY2lm aWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgY29sdW1ucy4gIEZvciBleGFtcGxlLAorICAgdGhpcyB3 b3VsZCBiZSB0aGUgZnVsbHkgdmVyYm9zZSBkZWZpbml0aW9uIHRoYXQgZG9lcyBub3QgcmVseSBv biBwcmltYXJ5CisgICBhbmQgZm9yZWlnbiBrZXlzOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9k dWN0cyBLRVkgKHByb2R1Y3Rfbm8pLAorICAgICAgICBjdXN0b21lcnMgS0VZIChjdXN0b21lcl9p ZCksCisgICAgICAgIG9yZGVycyBLRVkgKG9yZGVyX2lkKQorICAgICkKKyAgICBFREdFIFRBQkxF UyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQpCisgICAgICAgICAg ICBTT1VSQ0UgS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorICAg ICAgICAgICAgREVTVElOQVRJT04gS0VZIChwcm9kdWN0X25vKSBSRUZFUkVOQ0VTIHByb2R1Y3Rz IChwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3JkZXJzIEtFWSAoY3VzdG9tZXJfb3Jk ZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3VzdG9tZXJfaWQpIFJFRkVSRU5DRVMg Y3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAob3Jk ZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyAgICApOworPC9wcm9ncmFtbGlz dGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQXMgbWVudGlvbmVkIGFib3ZlLCBieSBk ZWZhdWx0LCB0aGUgbmFtZXMgb2YgdGhlIHRhYmxlcyBhbmQgY29sdW1ucyBhcmUKKyAgIGV4cG9z ZWQgYXMgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzLCByZXNwZWN0aXZlbHkuICBUaGUgY2xhdXNlcyA8 bGl0ZXJhbD5JUworICAgY3VzdG9tZXI8L2xpdGVyYWw+LCA8bGl0ZXJhbD5JUyBvcmRlcjwvbGl0 ZXJhbD4sIGV0Yy4gaW4gdGhlCisgICA8bGl0ZXJhbD5NQVRDSDwvbGl0ZXJhbD4gY2xhdXNlIGlu IGZhY3QgcmVmZXIgdG8gbGFiZWxzLCBub3QgdGFibGUgbmFtZXMuCisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIE9uZSB1c2Ugb2YgbGFiZWxzIGlzIHRvIGV4cG9zZSBhIHRhYmxlIHRocm91Z2gg YSBkaWZmZXJlbnQgbmFtZSBpbiB0aGUKKyAgIGdyYXBoLiAgRm9yIGV4YW1wbGUsIGluIGdyYXBo cywgdmVydGljZXMgdHlwaWNhbGx5IGhhdmUgc2luZ3VsYXIgbm91bnMgYXMKKyAgIGxhYmVscyBh bmQgZWRnZXMgdHlwaWNhbGx5IGhhdmUgdmVyYnMgYXMgbGFiZWxzLCBzdWNoIGFzIDxxdW90ZT5p czwvcXVvdGU+LAorICAgPHF1b3RlPmhhczwvcXVvdGU+LCA8cXVvdGU+Y29udGFpbnM8L3F1b3Rl Piwgb3Igc29tZXRoaW5nIHNwZWNpZmljIGxpa2UKKyAgIDxxdW90ZT5hcHByb3ZlczwvcXVvdGU+ LiAgV2UgY2FuIGludHJvZHVjZSBzdWNoIGxhYmVscyBpbnRvIG91ciBleGFtcGxlCisgICBsaWtl IHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggbXlzaG9wCisg ICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3RzIExBQkVMIHByb2R1Y3QsCisgICAg ICAgIGN1c3RvbWVycyBMQUJFTCBjdXN0b21lciwKKyAgICAgICAgb3JkZXJzIExBQkVMIG9yZGVy CisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3JkZXJfaXRlbXMgU09VUkNFIG9y ZGVycyBERVNUSU5BVElPTiBwcm9kdWN0cyBMQUJFTCBjb250YWlucywKKyAgICAgICAgY3VzdG9t ZXJfb3JkZXJzIFNPVVJDRSBjdXN0b21lcnMgREVTVElOQVRJT04gb3JkZXJzIExBQkVMIGhhcwor ICAgICk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaXRo IHRoaXMgZGVmaW5pdGlvbiwgd2UgY2FuIHdyaXRlIGEgcXVlcnkgbGlrZSB0aGlzOgorPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9w IE1BVENIIChjOmN1c3RvbWVyKS1bOmhhc10tPihvOm9yZGVyIFdIRVJFIG9yZGVyZWRfd2hlbiA9 IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICBXaXRoIHRoZSBuZXcgbGFiZWxzIGFuZCB1c2luZyB0aGUgY29sb24g aW5zdGVhZCBvZiA8bGl0ZXJhbD5JUzwvbGl0ZXJhbD4sCisgICB3aGljaCBhcmUgZXF1aXZhbGVu dCwgdGhlIDxsaXRlcmFsPk1BVENIPC9saXRlcmFsPiBjbGF1c2UgaXMgbm93IG1vcmUKKyAgIGNv bXBhY3QgYW5kIGludHVpdGl2ZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQW5vdGhlciB1 c2UgaXMgdG8gYXBwbHkgdGhlIHNhbWUgbGFiZWwgdG8gbXVsdGlwbGUgZWxlbWVudCB0YWJsZXMu ICBGb3IKKyAgIGV4YW1wbGUsIGNvbnNpZGVyIHRoaXMgYWRkaXRpb25hbCB0YWJsZToKKzxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBlbXBsb3llZXMgKAorICAgIGVtcGxveWVlX2lkIGlu dGVnZXIgUFJJTUFSWSBLRVksCisgICAgZW1wbG95ZWVfbmFtZSB2YXJjaGFyLAorICAgIC4uLgor KTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CithbmQgdGhlIGZvbGxvd2luZyBncmFwaCBkZWZpbml0aW9u OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZF UlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9kdWN0cyBMQUJFTCBwcm9kdWN0LAorICAgICAgICBj dXN0b21lcnMgTEFCRUwgY3VzdG9tZXIgTEFCRUwgcGVyc29uIFBST1BFUlRJRVMgKG5hbWUpLAor ICAgICAgICBvcmRlcnMgTEFCRUwgb3JkZXIsCisgICAgICAgIGVtcGxveWVlcyBMQUJFTCBlbXBs b3llZSBMQUJFTCBwZXJzb24gUFJPUEVSVElFUyAoZW1wbG95ZWVfbmFtZSBBUyBuYW1lKQorICAg ICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIFNPVVJDRSBvcmRlcnMg REVTVElOQVRJT04gcHJvZHVjdHMgTEFCRUwgY29udGFpbnMsCisgICAgICAgIGN1c3RvbWVyX29y ZGVycyBTT1VSQ0UgY3VzdG9tZXJzIERFU1RJTkFUSU9OIG9yZGVycyBMQUJFTCBoYXMKKyAgICAp OworPC9wcm9ncmFtbGlzdGluZz4KKyAgIChJbiBwcmFjdGljZSwgdGhlcmUgb3VnaHQgdG8gYmUg YW4gZWRnZSBsaW5raW5nIHRoZQorICAgPGxpdGVyYWw+ZW1wbG95ZWVzPC9saXRlcmFsPiB0YWJs ZSB0byBzb21ldGhpbmcsIGJ1dCBpdCBpcyBhbGxvd2VkIGxpa2UKKyAgIHRoaXMuKSAgVGhlbiB3 ZSBjYW4gcnVuIGEgcXVlcnkgbGlrZSB0aGlzIChpbmNvbXBsZXRlKToKKzxwcm9ncmFtbGlzdGlu Zz4KK1NFTEVDVCAuLi4gRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIICg6cGVyc29uIFdI RVJFIG5hbWUgPSAnLi4uJyktW10tPi4uLiBDT0xVTU5TICguLi4pKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICBUaGlzIHdvdWxkIGF1dG9tYXRpY2FsbHkgY29uc2lkZXIgYm90aCB0aGUgPGxpdGVy YWw+Y3VzdG9tZXJzPC9saXRlcmFsPiBhbmQKKyAgIHRoZSA8bGl0ZXJhbD5lbXBsb3llZXM8L2xp dGVyYWw+IHRhYmxlcyB3aGVuIGxvb2tpbmcgZm9yIGFuIGVkZ2Ugd2l0aCB0aGUKKyAgIDxsaXRl cmFsPnBlcnNvbjwvbGl0ZXJhbD4gbGFiZWwuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdo ZW4gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHRhYmxlIGhhcyB0aGUgc2FtZSBsYWJlbCwgaXQgaXMg cmVxdWlyZWQgdGhhdAorICAgdGhlIHByb3BlcnRpZXMgbWF0Y2ggaW4gbnVtYmVyLCBuYW1lLCBh bmQgdHlwZS4gIEluIHRoZSBleGFtcGxlLCB3ZSBzcGVjaWZ5CisgICBhbiBleHBsaWNpdCBwcm9w ZXJ0eSBsaXN0IGFuZCBpbiBvbmUgY2FzZSBvdmVycmlkZSB0aGUgbmFtZSBvZiB0aGUgY29sdW1u CisgICB0byBhY2hpZXZlIHRoaXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEZvciBtb3Jl IGRldGFpbHMgb24gdGhlIHN5bnRheCBmb3IgY3JlYXRpbmcgcHJvcGVydHkgZ3JhcGhzLCBzZWUg PGxpbmsKKyAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHktZ3JhcGgiPjxjb21tYW5kPkNS RUFURSBQUk9QRVJUWQorICAgR1JBUEg8L2NvbW1hbmQ+PC9saW5rPi4gIE1vcmUgZGV0YWlscyBh Ym91dCB0aGUgZ3JhcGggcXVlcnkgc3ludGF4IGlzIGluCisgICA8eHJlZiBsaW5rZW5kPSJxdWVy aWVzLWdyYXBoIi8+LgorICA8L3BhcmE+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90 aGVycyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2ZlYXR1cmVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZmVhdHVyZXMu c2dtbAppbmRleCA5NjZmZDM5ODgyNy4uMWFiZTZjY2QzZDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mZWF0dXJlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mZWF0dXJlcy5zZ21sCkBAIC03 MCwxMCArNzAsMTAgQEAKIAogIDxwYXJhPgogICBUaGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8 L3Byb2R1Y3RuYW1lPiBjb3JlIGNvdmVycyBwYXJ0cyAxLCAyLCA5LAotICAxMSwgYW5kIDE0LiAg UGFydCAzIGlzIGNvdmVyZWQgYnkgdGhlIE9EQkMgZHJpdmVyLCBhbmQgcGFydCAxMyBpcworICAx MSwgMTQsIGFuZCAxNi4gIFBhcnQgMyBpcyBjb3ZlcmVkIGJ5IHRoZSBPREJDIGRyaXZlciwgYW5k IHBhcnQgMTMgaXMKICAgY292ZXJlZCBieSB0aGUgUEwvSmF2YSBwbHVnLWluLCBidXQgZXhhY3Qg Y29uZm9ybWFuY2UgaXMgY3VycmVudGx5CiAgIG5vdCBiZWluZyB2ZXJpZmllZCBmb3IgdGhlc2Ug Y29tcG9uZW50cy4gIFRoZXJlIGFyZSBjdXJyZW50bHkgbm8KLSAgaW1wbGVtZW50YXRpb25zIG9m IHBhcnRzIDQsIDEwLCAxNSwgYW5kIDE2CisgIGltcGxlbWVudGF0aW9ucyBvZiBwYXJ0cyA0LCAx MCwgYW5kIDE1CiAgIGZvciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+Lgog IDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKaW5kZXggOGI4MTEwNmZhMjMuLjk4ZTM5YzI1YjAwIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAg LTI2MDgyLDYgKzI2MDgyLDIxIEBAIFNFTEVDVCBwZ190eXBlX2lzX3Zpc2libGUoJ215c2NoZW1h LndpZGdldCc6OnJlZ3R5cGUpOwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+ CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg IDxwcmltYXJ5PnBnX2dldF9wcm9wZ3JhcGhkZWY8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0 ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+cGdfZ2V0X3Byb3BncmFwaGRlZjwvZnVuY3Rpb24+ICgg PHBhcmFtZXRlcj5wcm9wZ3JhcGg8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAg ICAgIDxyZXR1cm52YWx1ZT50ZXh0PC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFJlY29uc3RydWN0cyB0aGUgY3JlYXRpbmcgY29tbWFuZCBmb3Ig YSBwcm9wZXJ0eSBncmFwaC4KKyAgICAgICAgKFRoaXMgaXMgYSBkZWNvbXBpbGVkIHJlY29uc3Ry dWN0aW9uLCBub3QgdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgICAgb2YgdGhlIGNvbW1hbmQuKQor ICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKICAgICAgIDxyb3c+CiAgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmZv cm1hdGlvbl9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dt bAppbmRleCA5NDQyYjA3MThjMC4uYzkyYjY1YjAzYTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25f c2NoZW1hLnNnbWwKQEAgLTQxNzEsNiArNDE3MSwxMDk4IEBAIE9SREVSIEJZIGMub3JkaW5hbF9w b3NpdGlvbjsKICAgPC90YWJsZT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1h LXBnLWVkZ2UtdGFibGUtY29tcG9uZW50cyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19lZGdlX3Rh YmxlX2NvbXBvbmVudHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3 IDxsaXRlcmFsPnBnX2VkZ2VfdGFibGVfY29tcG9uZW50czwvbGl0ZXJhbD4gaWRlbnRpZmllcyB3 aGljaAorICAgY29sdW1ucyBhcmUgcGFydCBvZiB0aGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHZl cnRleCBrZXlzLCBhcyB3ZWxsIGFzIHRoZWlyCisgICBjb3JyZXNwb25kaW5nIGNvbHVtbnMgaW4g dGhlIHZlcnRleCB0YWJsZXMgYmVpbmcgbGlua2VkIHRvLCBpbiB0aGUgZWRnZQorICAgdGFibGVz IG9mIHByb3BlcnR5IGdyYXBocyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IGRhdGFiYXNlLiAgT25s eSB0aG9zZQorICAgcHJvcGVydHkgZ3JhcGhzIGFyZSBzaG93biB0aGF0IHRoZSBjdXJyZW50IHVz ZXIgaGFzIGFjY2VzcyB0byAoYnkgd2F5IG9mCisgICBiZWluZyB0aGUgb3duZXIgb3IgaGF2aW5n IHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNvdXJjZSBh bmQgZGVzdGluYXRpb24gdmVydGV4IGxpbmtzIG9mIGVkZ2UgdGFibGVzIGFyZSBzcGVjaWZpZWQg aW4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gYW5kIGRlZmF1 bHQgdG8gZm9yZWlnbiBrZXlzIGluCisgICBjZXJ0YWluIGNhc2VzLgorICA8L3BhcmE+CisKKyAg PHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2VkZ2VfdGFibGVfY29tcG9uZW50czwv c3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0 aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRo YXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJh c2UpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwv c3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhl IHByb3BlcnR5IGdyYXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBo CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmVkZ2VfdGFibGVfYWxpYXM8L3N0cnVjdGZp ZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRoZSBlbGVtZW50IHRhYmxlIGFsaWFzIG9mIHRoZSBlZGdlIHRhYmxlIGJl aW5nIGRlc2NyaWJlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52ZXJ0ZXhfdGFibGVf YWxpYXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBlbGVtZW50IHRhYmxlIGFsaWFzIG9mIHRo ZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gdmVydGV4IHRhYmxlIGJlaW5nIGxpbmtlZCB0bworICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lZGdlX2VuZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNo YXJhY3Rlcl9kYXRhPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg RWl0aGVyIDxsaXRlcmFsPlNPVVJDRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+REVTVElOQVRJT048 L2xpdGVyYWw+OworICAgICAgIHNwZWNpZmllcyB3aGljaCBlZGdlIGxpbmsgaXMgYmVpbmcgZGVz Y3JpYmVkLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lZGdlX3RhYmxlX2NvbHVtbl9u YW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBjb2x1bW4gdGhhdCBpcyBwYXJ0 IG9mIHRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gdmVydGV4IGtleSBpbiB0aGlzIGVkZ2UgdGFi bGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmVydGV4X3RhYmxlX2NvbHVtbl9uYW1l PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBjb2x1bW4gdGhhdCBpcyBwYXJ0IG9m IHRoZSBrZXkgaW4gdGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbgorICAgICAgIHZlcnRleCB0YWJs ZSBiZWluZyBsaW5rZWQgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b3JkaW5hbF9w b3NpdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJlcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9yZGluYWwgcG9zaXRpb24gb2YgdGhlIGNv bHVtbnMgd2l0aGluIHRoZSBrZXkgKGNvdW50IHN0YXJ0cyBhdCAxKQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWVsZW1lbnQtdGFibGUt a2V5LWNvbHVtbnMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfZWxlbWVudF90YWJsZV9rZXlfY29s dW1uczwvbGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+ cGdfZWxlbWVudF9rZXlfY29sdW1uczwvbGl0ZXJhbD4gaWRlbnRpZmllcyB3aGljaCBjb2x1bW5z CisgICBhcmUgcGFydCBvZiB0aGUga2V5cyBvZiB0aGUgZWxlbWVudCB0YWJsZXMgb2YgcHJvcGVy dHkgZ3JhcGhzIGRlZmluZWQgaW4KKyAgIHRoZSBjdXJyZW50IGRhdGFiYXNlLiAgT25seSB0aG9z ZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNob3duIHRoYXQgdGhlCisgICBjdXJyZW50IHVzZXIgaGFz IGFjY2VzcyB0byAoYnkgd2F5IG9mIGJlaW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZQorICAg cHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGtleSBvZiBhbiBlbGVt ZW50IHRhYmxlIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHJvd3MgaW4gaXQuICBJdCBpcworICAg ZWl0aGVyIHNwZWNpZmllZCB1c2luZyB0aGUgPGxpdGVyYWw+S0VZPC9saXRlcmFsPiBjbGF1c2Ug aW4gPGNvbW1hbmQ+Q1JFQVRFCisgICBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gb3IgZGVmYXVs dHMgdG8gdGhlIHByaW1hcnkga2V5LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2VsZW1lbnRfdGFibGVfa2V5X2NvbHVtbnM8L3N0cnVjdG5hbWU+IENv bHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRo ZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8 dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFw aAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2FsaWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBFbGVtZW50IHRhYmxlIGFsaWFzICh1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBlbGVtZW50IHRh YmxlIHdpdGhpbiBhCisgICAgICAgcHJvcGVydHkgZ3JhcGgpCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmNvbHVtbl9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBj b2x1bW4gdGhhdCBpcyBwYXJ0IG9mIHRoZSBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+b3JkaW5hbF9wb3NpdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJlcjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9yZGluYWwgcG9zaXRp b24gb2YgdGhlIGNvbHVtbiB3aXRoaW4gdGhlIGtleSAoY291bnQgc3RhcnRzIGF0IDEpCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3Vw PgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGctZWxl bWVudC10YWJsZS1sYWJlbHMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfZWxlbWVudF90YWJsZV9s YWJlbHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFs PnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzPC9saXRlcmFsPiBzaG93cyB3aGljaCBsYWJlbHMgYXJl CisgICBkZWZpbmVkIG9uIHRoZSBlbGVtZW50IHRhYmxlcyBvZiBwcm9wZXJ0eSBncmFwaHMgZGVm aW5lZCBpbiB0aGUgY3VycmVudAorICAgZGF0YWJhc2UuICBPbmx5IHRob3NlIHByb3BlcnR5IGdy YXBocyBhcmUgc2hvd24gdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcworICAgYWNjZXNzIHRvIChi eSB3YXkgb2YgYmVpbmcgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwv cGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfZWxlbWVudF90YWJs ZV9sYWJlbHM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIx Ij4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVt biBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8 dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBk YXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJy ZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFw aF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNv bnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9w ZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2Fs aWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBFbGVtZW50IHRhYmxlIGFsaWFzICh1bmlxdWUgaWRl bnRpZmllciBvZiBhbiBlbGVtZW50IHRhYmxlIHdpdGhpbiBhCisgICAgICAgcHJvcGVydHkgZ3Jh cGgpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmxhYmVsX25hbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIE5hbWUgb2YgdGhlIGxhYmVsCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+ CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGctZWxlbWVudC10YWJsZS1wcm9wZXJ0aWVzIj4K KyAgPHRpdGxlPjxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVfcHJvcGVydGllczwvbGl0ZXJhbD48 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+cGdfZWxlbWVudF90YWJs ZV9sYWJlbHM8L2xpdGVyYWw+IHNob3dzIHRoZSBkZWZpbml0aW9ucworICAgb2YgdGhlIHByb3Bl cnRpZXMgZm9yIHRoZSBlbGVtZW50IHRhYmxlcyBvZiBwcm9wZXJ0eSBncmFwaHMgZGVmaW5lZCBp biB0aGUKKyAgIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5IHRob3NlIHByb3BlcnR5IGdyYXBocyBh cmUgc2hvd24gdGhhdCB0aGUgY3VycmVudAorICAgdXNlciBoYXMgYWNjZXNzIHRvIChieSB3YXkg b2YgYmVpbmcgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwvcGFyYT4K KworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfZWxlbWVudF90YWJsZV9wcm9w ZXJ0aWVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+ CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4g VHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRi b2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJv cGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0 YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVu dCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhf c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250 YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJv cGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVy dHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZWxlbWVudF90YWJsZV9hbGlh czwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgRWxlbWVudCB0YWJsZSBhbGlhcyAodW5pcXVlIGlkZW50 aWZpZXIgb2YgYW4gZWxlbWVudCB0YWJsZSB3aXRoaW4gYQorICAgICAgIHByb3BlcnR5IGdyYXBo KQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9uYW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wcm9wZXJ0eV9leHByZXNzaW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcmFjdGVyX2Rh dGE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBFeHByZXNzaW9u IG9mIHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uIGZvciB0aGlzIGVsZW1lbnQgdGFibGUKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+ CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1lbGVt ZW50LXRhYmxlcyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19lbGVtZW50X3RhYmxlczwvbGl0ZXJh bD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+cGdfZWxlbWVudF90 YWJsZXM8L2xpdGVyYWw+IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0CisgICB0aGUgZWxlbWVu dCB0YWJsZXMgb2YgcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgZGF0YWJh c2UuCisgICBPbmx5IHRob3NlIHByb3BlcnR5IGdyYXBocyBhcmUgc2hvd24gdGhhdCB0aGUgY3Vy cmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8KKyAgIChieSB3YXkgb2YgYmVpbmcgdGhlIG93bmVyIG9y IGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfZWxlbWVudF90YWJsZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3Rp dGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0 eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxf aWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5h bWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2FsaWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50 aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBFbGVtZW50 IHRhYmxlIGFsaWFzICh1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBlbGVtZW50IHRhYmxlIHdpdGhp biBhCisgICAgICAgcHJvcGVydHkgZ3JhcGgpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PmVsZW1lbnRfdGFibGVfa2luZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXJhY3Rlcl9kYXRhPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGtpbmQgb2YgdGhl IGVsZW1lbnQgdGFibGU6IDxsaXRlcmFsPkVER0U8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlZFUlRF WDwvbGl0ZXJhbD4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dGFibGVfY2F0YWxvZzwv c3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0 aGUgcmVmZXJlbmNlZCB0YWJsZSAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD50YWJsZV9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5z cWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSByZWZlcmVuY2VkIHRhYmxlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRhYmxlX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIE5hbWUgb2YgdGhlIHRhYmxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGVsZW1lbnQgdGFi bGUgZGVmaW5pdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxl X2RlZmluaXRpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0YTwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMgdG8gYSBmZWF0dXJlIG5v dCBhdmFpbGFibGUgaW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91 cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWxh YmVsLXByb3BlcnRpZXMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfbGFiZWxfcHJvcGVydGllczwv bGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+cGdfbGFi ZWxfcHJvcGVydGllczwvbGl0ZXJhbD4gc2hvd3Mgd2hpY2ggcHJvcGVydGllcyBhcmUKKyAgIGRl ZmluZWQgb24gbGFiZWxzIGRlZmluZWQgaW4gcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4gdGhl IGN1cnJlbnQKKyAgIGRhdGFiYXNlLiAgT25seSB0aG9zZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNo b3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMKKyAgIGFjY2VzcyB0byAoYnkgd2F5IG9mIGJl aW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisKKyAg PHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2xhYmVsX3Byb3BlcnRpZXM8L3N0cnVj dG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9j YXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNv bnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVj dGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9w ZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9u YW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5sYWJlbF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoZSBsYWJlbAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0 eV9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4K KyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWxhYmVs cyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19sYWJlbHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnBnX2xhYmVsczwvbGl0ZXJhbD4gY29udGFpbnMg YWxsIHRoZSBsYWJlbHMgZGVmaW5lZCBpbgorICAgcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4g dGhlIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5IHRob3NlIHByb3BlcnR5CisgICBncmFwaHMgYXJl IHNob3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIChieSB3YXkgb2YgYmVp bmcgdGhlCisgICBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisK KyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2xhYmVsczwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX2NhdGFsb2c8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRoYXQgY29udGFpbnMg dGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwvc3RydWN0ZmllbGQ+ IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdy YXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0 cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmxhYmVsX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRl bnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUg b2YgdGhlIGxhYmVsCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9 ImluZm9zY2hlbWEtcGctcHJvcGVydHktZGF0YS10eXBlcyI+CisgIDx0aXRsZT48bGl0ZXJhbD5w Z19wcm9wZXJ0eV9kYXRhX3R5cGVzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGUgdmlldyA8bGl0ZXJhbD5wZ19wcm9wZXJ0eV9kYXRhX3R5cGVzPC9saXRlcmFsPiBzaG93cyB0 aGUgZGF0YSB0eXBlcyBvZgorICAgdGhlIHByb3BlcnRpZXMgaW4gcHJvcGVydHkgZ3JhcGhzIGRl ZmluZWQgaW4gdGhlIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5CisgICB0aG9zZSBwcm9wZXJ0eSBn cmFwaHMgYXJlIHNob3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIChieSB3 YXkKKyAgIG9mIGJlaW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8 L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BlcnR5X2Rh dGFfdHlwZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIx Ij4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVt biBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8 dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBk YXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJy ZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFw aF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNv bnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9w ZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9uYW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5kYXRhX3R5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0 YTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERhdGEgdHlwZSBv ZiB0aGUgcHJvcGVydHksIGlmIGl0IGlzIGEgYnVpbHQtaW4gdHlwZSwgb3IKKyAgICAgICA8bGl0 ZXJhbD5BUlJBWTwvbGl0ZXJhbD4gaWYgaXQgaXMgc29tZSBhcnJheSAoaW4gdGhhdCBjYXNlLCBz ZWUgdGhlCisgICAgICAgdmlldyA8bGl0ZXJhbD5lbGVtZW50X3R5cGVzPC9saXRlcmFsPiksIGVs c2UKKyAgICAgICA8bGl0ZXJhbD5VU0VSLURFRklORUQ8L2xpdGVyYWw+IChpbiB0aGF0IGNhc2Us IHRoZSB0eXBlIGlzIGlkZW50aWZpZWQKKyAgICAgICBpbiA8bGl0ZXJhbD5hdHRyaWJ1dGVfdWR0 X25hbWU8L2xpdGVyYWw+IGFuZCBhc3NvY2lhdGVkIGNvbHVtbnMpLgorICAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2hhcmFjdGVyX21heGltdW1fbGVuZ3RoPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9saXRlcmFsPiBpZGVudGlmaWVzIGEgY2hhcmFj dGVyIG9yIGJpdAorICAgICAgIHN0cmluZyB0eXBlLCB0aGUgZGVjbGFyZWQgbWF4aW11bSBsZW5n dGg7IG51bGwgZm9yIGFsbCBvdGhlcgorICAgICAgIGRhdGEgdHlwZXMgb3IgaWYgbm8gbWF4aW11 bSBsZW5ndGggd2FzIGRlY2xhcmVkLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jaGFy YWN0ZXJfb2N0ZXRfbGVuZ3RoPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPGxpdGVyYWw+ZGF0 YV90eXBlPC9saXRlcmFsPiBpZGVudGlmaWVzIGEgY2hhcmFjdGVyIHR5cGUsCisgICAgICAgdGhl IG1heGltdW0gcG9zc2libGUgbGVuZ3RoIGluIG9jdGV0cyAoYnl0ZXMpIG9mIGEgZGF0dW07IG51 bGwKKyAgICAgICBmb3IgYWxsIG90aGVyIGRhdGEgdHlwZXMuICBUaGUgbWF4aW11bSBvY3RldCBs ZW5ndGggZGVwZW5kcyBvbgorICAgICAgIHRoZSBkZWNsYXJlZCBjaGFyYWN0ZXIgbWF4aW11bSBs ZW5ndGggKHNlZSBhYm92ZSkgYW5kIHRoZQorICAgICAgIHNlcnZlciBlbmNvZGluZy4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2hhcmFjdGVyX3NldF9jYXRhbG9nPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+Y2hhcmFjdGVyX3NldF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmll cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMgdG8g YSBmZWF0dXJlIG5vdCBhdmFpbGFibGUgaW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jaGFyYWN0ZXJfc2V0X25hbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMgdG8gYSBmZWF0dXJlIG5vdCBhdmFpbGFibGUg aW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5jb2xsYXRpb25fY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9p ZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFt ZSBvZiB0aGUgZGF0YWJhc2UgY29udGFpbmluZyB0aGUgY29sbGF0aW9uIG9mIHRoZSBwcm9wZXJ0 eSAoYWx3YXlzCisgICAgICAgdGhlIGN1cnJlbnQgZGF0YWJhc2UpLCBudWxsIGlmIGRlZmF1bHQg b3IgdGhlIGRhdGEgdHlwZSBvZiB0aGUKKyAgICAgICBwcm9wZXJ0eSBpcyBub3QgY29sbGF0YWJs ZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb2xsYXRpb25fc2NoZW1hPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgY29udGFpbmluZyB0aGUgY29sbGF0aW9u IG9mIHRoZSBwcm9wZXJ0eSwgbnVsbCBpZgorICAgICAgIGRlZmF1bHQgb3IgdGhlIGRhdGEgdHlw ZSBvZiB0aGUgcHJvcGVydHkgaXMgbm90IGNvbGxhdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+Y29sbGF0aW9uX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmll cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhl IGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHksIG51bGwgaWYgZGVmYXVsdCBvciB0aGUgZGF0YSB0 eXBlCisgICAgICAgb2YgdGhlIHByb3BlcnR5IGlzIG5vdCBjb2xsYXRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm51bWVyaWNfcHJlY2lzaW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9saXRlcmFsPiBpZGVudGlmaWVzIGEgbnVtZXJpYyB0 eXBlLCB0aGlzCisgICAgICAgY29sdW1uIGNvbnRhaW5zIHRoZSAoZGVjbGFyZWQgb3IgaW1wbGlj aXQpIHByZWNpc2lvbiBvZiB0aGUKKyAgICAgICB0eXBlIGZvciB0aGlzIGF0dHJpYnV0ZS4gIFRo ZSBwcmVjaXNpb24gaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YKKyAgICAgICBzaWduaWZpY2FudCBk aWdpdHMuICBJdCBjYW4gYmUgZXhwcmVzc2VkIGluIGRlY2ltYWwgKGJhc2UgMTApCisgICAgICAg b3IgYmluYXJ5IChiYXNlIDIpIHRlcm1zLCBhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbgorICAg ICAgIDxsaXRlcmFsPm51bWVyaWNfcHJlY2lzaW9uX3JhZGl4PC9saXRlcmFsPi4gIEZvciBhbGwg b3RoZXIgZGF0YQorICAgICAgIHR5cGVzLCB0aGlzIGNvbHVtbiBpcyBudWxsLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5udW1lcmljX3ByZWNpc2lvbl9yYWRpeDwvc3RydWN0ZmllbGQ+ IDx0eXBlPmNhcmRpbmFsX251bWJlcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIElmIDxsaXRlcmFsPmRhdGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmllcyBhIG51 bWVyaWMgdHlwZSwgdGhpcworICAgICAgIGNvbHVtbiBpbmRpY2F0ZXMgaW4gd2hpY2ggYmFzZSB0 aGUgdmFsdWVzIGluIHRoZSBjb2x1bW5zCisgICAgICAgPGxpdGVyYWw+bnVtZXJpY19wcmVjaXNp b248L2xpdGVyYWw+IGFuZAorICAgICAgIDxsaXRlcmFsPm51bWVyaWNfc2NhbGU8L2xpdGVyYWw+ IGFyZSBleHByZXNzZWQuICBUaGUgdmFsdWUgaXMKKyAgICAgICBlaXRoZXIgMiBvciAxMC4gIEZv ciBhbGwgb3RoZXIgZGF0YSB0eXBlcywgdGhpcyBjb2x1bW4gaXMgbnVsbC4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+bnVtZXJpY19zY2FsZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRp bmFsX251bWJlcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElm IDxsaXRlcmFsPmRhdGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmllcyBhbiBleGFjdCBudW1lcmlj CisgICAgICAgdHlwZSwgdGhpcyBjb2x1bW4gY29udGFpbnMgdGhlIChkZWNsYXJlZCBvciBpbXBs aWNpdCkgc2NhbGUgb2YKKyAgICAgICB0aGUgdHlwZSBmb3IgdGhpcyBhdHRyaWJ1dGUuICBUaGUg c2NhbGUgaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YKKyAgICAgICBzaWduaWZpY2FudCBkaWdpdHMg dG8gdGhlIHJpZ2h0IG9mIHRoZSBkZWNpbWFsIHBvaW50LiAgSXQgY2FuCisgICAgICAgYmUgZXhw cmVzc2VkIGluIGRlY2ltYWwgKGJhc2UgMTApIG9yIGJpbmFyeSAoYmFzZSAyKSB0ZXJtcywgYXMK KyAgICAgICBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbgorICAgICAgIDxsaXRlcmFsPm51bWVyaWNf cHJlY2lzaW9uX3JhZGl4PC9saXRlcmFsPi4gIEZvciBhbGwgb3RoZXIgZGF0YQorICAgICAgIHR5 cGVzLCB0aGlzIGNvbHVtbiBpcyBudWxsLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5k YXRldGltZV9wcmVjaXNpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5hbF9udW1iZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiA8bGl0ZXJhbD5kYXRh X3R5cGU8L2xpdGVyYWw+IGlkZW50aWZpZXMgYSBkYXRlLCB0aW1lLAorICAgICAgIHRpbWVzdGFt cCwgb3IgaW50ZXJ2YWwgdHlwZSwgdGhpcyBjb2x1bW4gY29udGFpbnMgdGhlIChkZWNsYXJlZAor ICAgICAgIG9yIGltcGxpY2l0KSBmcmFjdGlvbmFsIHNlY29uZHMgcHJlY2lzaW9uIG9mIHRoZSB0 eXBlIGZvciB0aGlzCisgICAgICAgYXR0cmlidXRlLCB0aGF0IGlzLCB0aGUgbnVtYmVyIG9mIGRl Y2ltYWwgZGlnaXRzIG1haW50YWluZWQKKyAgICAgICBmb2xsb3dpbmcgdGhlIGRlY2ltYWwgcG9p bnQgaW4gdGhlIHNlY29uZHMgdmFsdWUuICBGb3IgYWxsCisgICAgICAgb3RoZXIgZGF0YSB0eXBl cywgdGhpcyBjb2x1bW4gaXMgbnVsbC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW50 ZXJ2YWxfdHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXJhY3Rlcl9kYXRhPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9s aXRlcmFsPiBpZGVudGlmaWVzIGFuIGludGVydmFsIHR5cGUsCisgICAgICAgdGhpcyBjb2x1bW4g Y29udGFpbnMgdGhlIHNwZWNpZmljYXRpb24gd2hpY2ggZmllbGRzIHRoZQorICAgICAgIGludGVy dmFscyBpbmNsdWRlIGZvciB0aGlzIGF0dHJpYnV0ZSwgZS5nLiwgPGxpdGVyYWw+WUVBUiBUTwor ICAgICAgIE1PTlRIPC9saXRlcmFsPiwgPGxpdGVyYWw+REFZIFRPIFNFQ09ORDwvbGl0ZXJhbD4s IGV0Yy4gIElmIG5vCisgICAgICAgZmllbGQgcmVzdHJpY3Rpb25zIHdlcmUgc3BlY2lmaWVkICh0 aGF0IGlzLCB0aGUgaW50ZXJ2YWwKKyAgICAgICBhY2NlcHRzIGFsbCBmaWVsZHMpLCBhbmQgZm9y IGFsbCBvdGhlciBkYXRhIHR5cGVzLCB0aGlzIGZpZWxkCisgICAgICAgaXMgbnVsbC4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW50ZXJ2YWxfcHJlY2lzaW9uPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUgbm90IGF2YWlsYWJsZQorICAgICAgIGluIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgICAoc2VlIDxsaXRlcmFs PmRhdGV0aW1lX3ByZWNpc2lvbjwvbGl0ZXJhbD4gZm9yIHRoZSBmcmFjdGlvbmFsCisgICAgICAg c2Vjb25kcyBwcmVjaXNpb24gb2YgaW50ZXJ2YWwgdHlwZSBwcm9wZXJ0aWVzKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX2RlZmluZWRfdHlwZV9jYXRhbG9nPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IHRoZSBwcm9wZXJ0eSBkYXRhIHR5 cGUgaXMgZGVmaW5lZCBpbgorICAgICAgIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgdGhlIHByb3BlcnR5IGRh dGEgdHlwZSBpcyBkZWZpbmVkIGluCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJf ZGVmaW5lZF90eXBlX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3Bl cnR5IGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zY29wZV9jYXRhbG9n PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxl IGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+c2NvcGVfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50 aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBcHBsaWVz IHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NvcGVfbmFtZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUgbm90IGF2YWlsYWJsZSBpbiA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPm1heGltdW1fY2FyZGluYWxpdHk8L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5h bF9udW1iZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBbHdh eXMgbnVsbCwgYmVjYXVzZSBhcnJheXMgYWx3YXlzIGhhdmUgdW5saW1pdGVkIG1heGltdW0gY2Fy ZGluYWxpdHkgaW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5kdGRfaWRlbnRpZmllcjwvc3RydWN0ZmllbGQ+IDx0eXBl PnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgQW4gaWRlbnRpZmllciBvZiB0aGUgZGF0YSB0eXBlIGRlc2NyaXB0b3Igb2YgdGhlIHByb3Bl cnR5LCB1bmlxdWUKKyAgICAgICBhbW9uZyB0aGUgZGF0YSB0eXBlIGRlc2NyaXB0b3JzIHBlcnRh aW5pbmcgdG8gdGhlIHByb3BlcnR5IGdyYXBoLiAgVGhpcworICAgICAgIGlzIG1haW5seSB1c2Vm dWwgZm9yIGpvaW5pbmcgd2l0aCBvdGhlciBpbnN0YW5jZXMgb2Ygc3VjaAorICAgICAgIGlkZW50 aWZpZXJzLiAgKFRoZSBzcGVjaWZpYyBmb3JtYXQgb2YgdGhlIGlkZW50aWZpZXIgaXMgbm90Cisg ICAgICAgZGVmaW5lZCBhbmQgbm90IGd1YXJhbnRlZWQgdG8gcmVtYWluIHRoZSBzYW1lIGluIGZ1 dHVyZQorICAgICAgIHZlcnNpb25zLikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwor IDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1wcm9wZXJ0eS1ncmFwaC1wcml2aWxlZ2VzIj4KKyAg PHRpdGxlPjxsaXRlcmFsPnBnX3Byb3BlcnR5X2dyYXBoX3ByaXZpbGVnZXM8L2xpdGVyYWw+PC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnByb3BlcnR5X2dyYXBoX3By aXZpbGVnZXM8L2xpdGVyYWw+IGlkZW50aWZpZXMgYWxsCisgICBwcml2aWxlZ2VzIGdyYW50ZWQg b24gcHJvcGVydHkgZ3JhcGhzIHRvIGEgY3VycmVudGx5IGVuYWJsZWQgcm9sZSBvciBieSBhCisg ICBjdXJyZW50bHkgZW5hYmxlZCByb2xlLiAgVGhlcmUgaXMgb25lIHJvdyBmb3IgZWFjaCBjb21i aW5hdGlvbiBvZiBwcm9wZXJ0eQorICAgZ3JhcGgsIGdyYW50b3IsIGFuZCBncmFudGVlLgorICA8 L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnByb3BlcnR5X2dyYXBo X3ByaXZpbGVnZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xz PSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENv bHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlv bgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAg ICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5ncmFudG9yPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSByb2xlIHRoYXQgZ3Jh bnRlZCB0aGUgcHJpdmlsZWdlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmdyYW50ZWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHJvbGUgdGhhdCB0aGUgcHJpdmlsZWdl IHdhcyBncmFudGVkIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRo YXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJh c2UpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwv c3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhl IHByb3BlcnR5IGdyYXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGdyYXBo CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByaXZpbGVnZV90eXBlPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Y2hhcmFjdGVyX2RhdGE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBUeXBlIG9mIHRoZSBwcml2aWxlZ2U6IDxsaXRlcmFsPlNFTEVDVDwvbGl0ZXJh bD4gaXMgdGhlIG9ubHkgcHJpdmlsZWdlCisgICAgICAgdHlwZSBhcHBsaWNhYmxlIHRvIHByb3Bl cnR5IGdyYXBocy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aXNfZ3JhbnRhYmxlPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+eWVzX29yX25vPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgPGxpdGVyYWw+WUVTPC9saXRlcmFsPiBpZiB0aGUgcHJpdmlsZWdlIGlz IGdyYW50YWJsZSwgPGxpdGVyYWw+Tk88L2xpdGVyYWw+IGlmIG5vdAorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXByb3BlcnR5LWdyYXBocyI+ CisgIDx0aXRsZT48bGl0ZXJhbD5wcm9wZXJ0eV9ncmFwaHM8L2xpdGVyYWw+PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnByb3BlcnR5X2dyYXBoczwvbGl0ZXJhbD4g Y29udGFpbnMgYWxsIHByb3BlcnR5IGdyYXBocworICAgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBk YXRhYmFzZS4gIE9ubHkgdGhvc2UgcHJvcGVydHkgZ3JhcGhzIGFyZSBzaG93biB0aGF0CisgICB0 aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8gKGJ5IHdheSBvZiBiZWluZyB0aGUgb3duZXIg b3IgaGF2aW5nIHNvbWUKKyAgIHByaXZpbGVnZSkuCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cHJvcGVydHlfZ3JhcGhzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5z PC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0 ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJv cGVydHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0Zmll bGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+ CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1yZWZlcmVudGlhbC1jb25zdHJh aW50cyI+CiAgIDx0aXRsZT48bGl0ZXJhbD5yZWZlcmVudGlhbF9jb25zdHJhaW50czwvbGl0ZXJh bD48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwva2V5d29yZHMvc3FsMjAyMy0x Ni1ub25yZXNlcnZlZC50eHQgYi9kb2Mvc3JjL3NnbWwva2V5d29yZHMvc3FsMjAyMy0xNi1ub25y ZXNlcnZlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM5NzU2 YzYwNjdkCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMt MTYtbm9ucmVzZXJ2ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK0FDWUNMSUMKK0JJTkRJTkdTCitC T1VORAorREVTVElOQVRJT04KK0RJRkZFUkVOVAorRElSRUNURUQKK0VER0UKK0VER0VTCitFTEVN RU5UUworTEFCRUwKK0xBQkVMRUQKK05PREUKK1BBVEhTCitQUk9QRVJUSUVTCitQUk9QRVJUWQor UFJPUEVSVFlfR1JBUEhfQ0FUQUxPRworUFJPUEVSVFlfR1JBUEhfTkFNRQorUFJPUEVSVFlfR1JB UEhfU0NIRU1BCitSRUxBVElPTlNISVAKK1JFTEFUSU9OU0hJUFMKK1NIT1JURVNUCitTSU5HTEVU T05TCitTVEVQCitUQUJMRVMKK1RSQUlMCitWRVJURVgKK1dBTEsKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dCBiL2RvYy9zcmMvc2dtbC9r ZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uM2JkZDdlMmIyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3Nn bWwva2V5d29yZHMvc3FsMjAyMy0xNi1yZXNlcnZlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQUxM X0RJRkZFUkVOVAorQklORElOR19DT1VOVAorRUxFTUVOVF9JRAorRUxFTUVOVF9OVU1CRVIKK0VY UE9SVAorR1JBUEgKK0dSQVBIX1RBQkxFCitNQVRDSE5VTQorUEFUSF9MRU5HVEgKK1BBVEhfTkFN RQorUFJPUEVSVFlfRVhJU1RTCitTQU1FCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcXVlcmll cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbAppbmRleCAzNzJjY2UxYTQ4Ny4uNDFh NmY0MjNjNjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9xdWVyaWVzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3F1ZXJpZXMuc2dtbApAQCAtODYzLDYgKzg2MywxMSBAQCBPUkRFUiBCWSBwOwog ICAgICB0byBjb2x1bW5zIHByb3ZpZGVkIGJ5IHByZWNlZGluZyA8bGl0ZXJhbD5GUk9NPC9saXRl cmFsPiBpdGVtcyBpbiBhbnkgY2FzZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAg QSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4g aXRlbSBjYW4gYWxzbworICAgICBhbHdheXMgY29udGFpbiBsYXRlcmFsIHJlZmVyZW5jZXMuCisg ICAgPC9wYXJhPgorCiAgICAgPHBhcmE+CiAgICAgIEEgPGxpdGVyYWw+TEFURVJBTDwvbGl0ZXJh bD4gaXRlbSBjYW4gYXBwZWFyIGF0IHRoZSB0b3AgbGV2ZWwgaW4gdGhlCiAgICAgIDxsaXRlcmFs PkZST008L2xpdGVyYWw+IGxpc3QsIG9yIHdpdGhpbiBhIDxsaXRlcmFsPkpPSU48L2xpdGVyYWw+ IHRyZWUuICBJbiB0aGUgbGF0dGVyCkBAIC0yNzQ1LDQgKzI3NTAsMTY3IEBAIFNFTEVDVCAqIEZS T00gdDsKIAogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InF1ZXJpZXMtZ3JhcGgiPgorICA8dGl0 bGU+R3JhcGggUXVlcmllczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGlzIHNlY3Rpb24gZGVz Y3JpYmVzIHRoZSBzdWJsYW5ndWFnZSBmb3IgcXVlcnlpbmcgcHJvcGVydHkgZ3JhcGhzLAorICAg ZGVmaW5lZCBhcyBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZGRsLXByb3BlcnR5LWdyYXBo cyIvPi4KKyAgPC9wYXJhPgorCisgIDxzZWN0MiBpZD0icXVlcmllcy1ncmFwaC1vdmVydmlldyI+ CisgICA8dGl0bGU+T3ZlcnZpZXc8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBDb25zaWRlciB0 aGlzIGV4YW1wbGUgZnJvbSA8eHJlZiBsaW5rZW5kPSJkZGwtcHJvcGVydHktZ3JhcGhzIi8+Ogor PHByb2dyYW1saXN0aW5nPgorLS0gZ2V0IGxpc3Qgb2YgY3VzdG9tZXJzIGFjdGl2ZSB0b2RheQor U0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElT IGN1c3RvbWVycyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycyBXSEVSRSBvLm9y ZGVyZWRfd2hlbiA9IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25h bWUpKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhlIGdyYXBoIHF1ZXJ5IHBhcnQgaGFwcGVu cyBpbnNpZGUgdGhlIDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPgorICAgIGNvbnN0cnVj dC4gIEFzIGZhciBhcyB0aGUgcmVzdCBvZiB0aGUgcXVlcnkgaXMgY29uY2VybmVkLCB0aGlzIGFj dHMgbGlrZSBhCisgICAgdGFibGUgZnVuY3Rpb24gaW4gdGhhdCBpdCBwcm9kdWNlcyBhIGNvbXB1 dGVkIHRhYmxlIGFzIG91dHB1dC4gIExpa2Ugb3RoZXIKKyAgICA8bGl0ZXJhbD5GUk9NPC9saXRl cmFsPiBjbGF1c2UgZWxlbWVudHMsIHRhYmxlIGFsaWFzIGFuZCBjb2x1bW4gYWxpYXMKKyAgICBu YW1lcyBjYW4gYmUgYXNzaWduZWQgdG8gdGhlIHJlc3VsdCwgYW5kIHRoZSByZXN1bHQgY2FuIGJl IGpvaW5lZCB3aXRoCisgICAgb3RoZXIgdGFibGVzLCBzdWJzZXF1ZW50bHkgZmlsdGVyZWQsIGFu ZCBzbyBvbiwgZm9yIGV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgLi4uIEZST00g R1JBUEhfVEFCTEUgKG15Z3JhcGggTUFUQ0ggLi4uIENPTFVNTlMgKC4uLikpIEFTIG15cmVzdWx0 IChhLCBiLCBjKSBKT0lOIG90aGVydGFibGUgVVNJTkcgKGEpIFdIRVJFIGIgPiAwIE9SREVSIEJZ IGM7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUg PGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVzZSBjb25zaXN0cyBvZiB0aGUgZ3Jh cGggbmFtZSwKKyAgICBmb2xsb3dlZCBieSB0aGUga2V5d29yZCA8bGl0ZXJhbD5NQVRDSDwvbGl0 ZXJhbD4sIGZvbGxvd2VkIGJ5IGEgZ3JhcGgKKyAgICBwYXR0ZXJuIGV4cHJlc3Npb24gKHNlZSBi ZWxvdyksIGZvbGxvd2VkIGJ5IHRoZSBrZXl3b3JkCisgICAgPGxpdGVyYWw+Q09MVU1OUzwvbGl0 ZXJhbD4gYW5kIGEgY29sdW1uIGxpc3QuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNl Y3QyIGlkPSJxdWVyaWVzLWdyYXBoLXBhdHRlcm5zIj4KKyAgIDx0aXRsZT5HcmFwaCBQYXR0ZXJu czwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb3JlIG9mIHRoZSBncmFwaCBxdWVyeWlu ZyBmdW5jdGlvbmFsaXR5IGlzIHRoZSBncmFwaCBwYXR0ZXJuLCB3aGljaAorICAgIGFwcGVhcnMg YWZ0ZXIgdGhlIGtleXdvcmQgPGxpdGVyYWw+TUFUQ0g8L2xpdGVyYWw+LiAgRm9ybWFsbHksIGEg Z3JhcGgKKyAgICBwYXR0ZXJuIGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIHBhdGggcGF0dGVybnMu ICBBIHBhdGggaXMgYSBzZXF1ZW5jZSBvZgorICAgIGdyYXBoIGVsZW1lbnRzLCBzdGFydGluZyBh bmQgZW5kaW5nIHdpdGggYSB2ZXJ0ZXggYW5kIGFsdGVybmF0aW5nIGJldHdlZW4KKyAgICB2ZXJ0 aWNlcyBhbmQgZWRnZXMuICBBIHBhdGggcGF0dGVybiBpcyBhIHN5bnRhY3RpYyBleHByZXNzaW9u cyB0aGF0CisgICAgbWF0Y2hlcyBwYXRocy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg QSBwYXRoIHBhdHRlcm4gdGh1cyBtYXRjaGVzIGEgc2VxdWVuY2Ugb2YgdmVydGljZXMgYW5kIGVk Z2VzLiAgVGhlCisgICAgc2ltcGxlc3QgcG9zc2libGUgcGF0aCBwYXR0ZXJuIGlzCis8cHJvZ3Jh bWxpc3Rpbmc+CisoKQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aGljaCBtYXRjaGVzIGEgc2lu Z2xlIHZlcnRleC4gIFRoZSBuZXh0IHNpbXBsZXN0IHBhdHRlcm4gd291bGQgYmUKKzxwcm9ncmFt bGlzdGluZz4KKygpLVtdLT4oKQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aGljaCBtYXRjaGVz IGEgdmVydGV4IGZvbGxvd2VkIGJ5IGFuIGVkZ2UgZm9sbG93ZWQgYnkgYSB2ZXJ0ZXguICBUaGUK KyAgICBjaGFyYWN0ZXJzIDxsaXRlcmFsPigpPC9saXRlcmFsPiBhcmUgYSB2ZXJ0ZXggcGF0dGVy biBhbmQgdGhlIGNoYXJhY3RlcnMKKyAgICA8bGl0ZXJhbD4tW10tPjwvbGl0ZXJhbD4gYXJlIGFu IGVkZ2UgcGF0dGVybi4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlc2UgY2hhcmFj dGVycyBjYW4gYWxzbyBiZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSwgZm9yIGV4YW1wbGU6Cis8 cHJvZ3JhbWxpc3Rpbmc+CisoICkgLSBbIF0gLSA+ICggKQorPC9wcm9ncmFtbGlzdGluZz4KKyAg IDwvcGFyYT4KKworICAgPHRpcD4KKyAgICA8cGFyYT4KKyAgICAgQSB3YXkgdG8gcmVtZW1iZXIg dGhlc2Ugc3ltYm9scyBpcyB0aGF0IGluIHZpc3VhbCByZXByZXNlbnRhdGlvbnMgb2YKKyAgICAg cHJvcGVydHkgZ3JhcGhzLCB2ZXJ0aWNlcyBhcmUgdXN1YWxseSBjaXJjbGVzIChsaWtlCisgICAg IDxsaXRlcmFsPigpPC9saXRlcmFsPikgYW5kIGVkZ2VzIGhhdmUgcmVjdGFuZ3VsYXIgbGFiZWxz IChsaWtlCisgICAgIDxsaXRlcmFsPltdPC9saXRlcmFsPikuCisgICAgPC9wYXJhPgorICAgPC90 aXA+CisKKyAgIDxwYXJhPgorICAgIFRoZSBhYm92ZSBwYXR0ZXJucyB3b3VsZCBtYXRjaCBhbnkg dmVydGV4LCBvciBhbnkgdHdvIHZlcnRpY2VzIGNvbm5lY3RlZAorICAgIGJ5IGFueSBlZGdlLCB3 aGljaCBpc24ndCB2ZXJ5IGludGVyZXN0aW5nLiAgTm9ybWFsbHksIHdlIHdhbnQgdG8gc2VhcmNo CisgICAgZm9yIGVsZW1lbnRzICh2ZXJ0aWNlcyBhbmQgZWRnZXMpIHRoYXQgaGF2ZSBjZXJ0YWlu IGNoYXJhY3RlcmlzdGljcy4KKyAgICBUaGVzZSBjaGFyYWN0ZXJpc3RpY3MgYXJlIHdyaXR0ZW4g aW4gYmV0d2VlbiB0aGUgcGFyZW50aGVzZXMgb3IgYnJhY2tldHMuCisgICAgKFRoaXMgaXMgYWxz byBjYWxsZWQgYW4gZWxlbWVudCBwYXR0ZXJuIGZpbGxlci4pICBUeXBpY2FsbHksIHdlIHdvdWxk CisgICAgc2VhcmNoIGZvciBlbGVtZW50cyB3aXRoIGEgY2VydGFpbiBsYWJlbC4gIFRoaXMgaXMg d3JpdHRlbiBlaXRoZXIgYnkKKyAgICA8bGl0ZXJhbD5JUyA8cmVwbGFjZWFibGU+bGFiZWxuYW1l PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+IG9yIGVxdWl2YWxlbnRseQorICAgIDxsaXRlcmFsPjo8 cmVwbGFjZWFibGU+bGFiZWxuYW1lPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+LiAgRm9yIGV4YW1w bGUsCisgICAgdGhpcyB3b3VsZCBtYXRjaCBhbGwgdmVydGljZXMgd2l0aCB0aGUgbGFiZWwgPGxp dGVyYWw+cGVyc29uPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KKyhJUyBwZXJzb24pCis8 L3Byb2dyYW1saXN0aW5nPgorICAgIG9yCis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbikKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgKEZyb20gbm93IG9uLCB3ZSB3aWxsIGp1c3QgdXNlIHRoZSBj b2xvbiBzeW50YXgsIGZvciBzaW1wbGljaXR5LiAgQnV0IGl0CisgICAgaGVscHMgdG8gcmVhZCBp dCBhcyA8cXVvdGU+aXM8L3F1b3RlPiBmb3IgdW5kZXJzdGFuZGluZy4pICBUaGUgbmV4dAorICAg IGV4YW1wbGUgd291bGQgbWF0Y2ggYSB2ZXJ0ZXggd2l0aCB0aGUgbGFiZWwgPGxpdGVyYWw+cGVy c29uPC9saXRlcmFsPgorICAgIGNvbm5lY3RlZCB0byBhIHZlcnRleCB3aXRoIHRoZSBsYWJlbCA8 bGl0ZXJhbD5hY2NvdW50PC9saXRlcmFsPiBjb25uZWN0ZWQKKyAgICBieSBhbiBlZGdlIHdpdGgg dGhlIGxhYmVsIDxsaXRlcmFsPmhhczwvbGl0ZXJhbD4uCis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBl cnNvbiktWzpoYXNdLT4oOmFjY291bnQpCis8L3Byb2dyYW1saXN0aW5nPgorICAgIE11bHRpcGxl IGxhYmVscyBjYW4gYWxzbyBiZSBtYXRjaGVkLCB1c2luZyA8cXVvdGU+b3I8L3F1b3RlPiBzZW1h bnRpY3M6Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbiktWzpoYXNdLT4oOmFjY291bnR8Y3Jl ZGl0Y2FyZCkKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IFJlY2FsbCB0aGF0IGVkZ2VzIGFyZSBkaXJlY3RlZC4gIFRoZSBvdGhlciBkaXJlY3Rpb24gaXMg YWxzbyBwb3NzaWJsZSBpbiBhCisgICAgcGF0aCBwYXR0ZXJuLCBmb3IgZXhhbXBsZToKKzxwcm9n cmFtbGlzdGluZz4KKyg6YWNjb3VudCkmbHQ7LVs6aGFzXS0oOnBlcnNvbikKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYXRjaCBib3RoIGRpcmVjdGlvbnM6 Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbiktWzppc19mcmllbmRfb2ZdLSg6cGVyc29uKQor PC9wcm9ncmFtbGlzdGluZz4KKyAgICBUaGlzIGhhcyBhIG1lYW5pbmcgb2YgPHF1b3RlPm9yPC9x dW90ZT46IEFuIGVkZ2UgaW4gZWl0aGVyIGRpcmVjdGlvbiB3b3VsZAorICAgIG1hdGNoLgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBtYW55IGNhc2VzLCB0aGUgZWRnZSBwYXR0ZXJu cyBkb24ndCBuZWVkIGEgZmlsbGVyLiAgKEFsbCB0aGUgZmlsdGVyaW5nCisgICAgdGhlbiBoYXBw ZW5zIG9uIHRoZSB2ZXJ0aWNlcy4pICBGb3IgdGhlc2UgY2FzZXMsIGFuIGFiYnJldmlhdGVkIGVk Z2UKKyAgICBwYXR0ZXJuIHN5bnRheCBpcyBhdmFpbGFibGUgdGhhdCBvbWl0cyB0aGUgYnJhY2tl dHMsIGZvciBleGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorKDpwZXJzb24pLT4oOmFjY291bnQp CisoOmFjb3VudCkmbHQ7LSg6cGVyc29uKQorKDpwZXJzb24pLSg6cGVyc29uKQorPC9wcm9ncmFt bGlzdGluZz4KKyAgICBBcyBpcyBvZnRlbiB0aGUgY2FzZSwgYWJicmV2aWF0ZWQgc3ludGF4IGNh biBtYWtlIGV4cHJlc3Npb25zIG1vcmUgY29tcGFjdAorICAgIGJ1dCBhbHNvIHNvbWV0aW1lcyBo YXJkZXIgdG8gdW5kZXJzdGFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgRnVydGhl cm1vcmUsIGl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBncmFwaCBwYXR0ZXJuIHZhcmlhYmxlcyBp biB0aGUgcGF0aAorICAgIHBhdHRlcm4gZXhwcmVzc2lvbnMuICBUaGVzZSBhcmUgYm91bmQgdG8g dGhlIG1hdGNoZWQgZWxlbWVudHMgYW5kIGNhbiBiZQorICAgIHVzZWQgdG8gcmVmZXIgdG8gdGhl IHByb3BlcnR5IHZhbHVlcyBmcm9tIHRob3NlIGVsZW1lbnRzLiAgVGhlIG1vc3QKKyAgICBpbXBv cnRhbnQgdXNlIGlzIHRvIHVzZSB0aGVtIGluIHRoZSA8bGl0ZXJhbD5DT0xVTU5TPC9saXRlcmFs PiBjbGF1c2UgdG8KKyAgICBkZWZpbmUgdGhlIHRhYnVsYXIgcmVzdWx0IG9mIHRoZSA8bGl0ZXJh bD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gY2xhdXNlLgorICAgIEZvciBleGFtcGxlIChhc3N1bWlu ZyBhcHByb3ByaWF0ZSBkZWZpbml0aW9ucyBvZiB0aGUgcHJvcGVydHkgZ3JhcGggYXMKKyAgICB3 ZWxsIGFzIHRoZSB1bmRlcmx5aW5nIHRhYmxlcyk6Cis8cHJvZ3JhbWxpc3Rpbmc+CitHUkFQSF9U QUJMRSAobXlncmFwaCBNQVRDSCAocDpwZXJzb24pLVtoOmhhc10tPihhOmFjY291bnQpCisgICAg ICAgICAgICAgQ09MVU1OUyAocC5uYW1lIEFTIHBlcnNvbl9uYW1lLCBoLnNpbmNlIEFTIGhhc19h Y2NvdW50X3NpbmNlLCBhLm51bSBBUyBhY2NvdW50X251bWJlcikKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgPGxpdGVyYWw+V0hFUkU8L2xpdGVyYWw+IGNsYXVzZXMgY2FuIGJlIHVzZWQgaW5zaWRl IGVsZW1lbnQgcGF0dGVybnMgdG8KKyAgICBmaWx0ZXIgbWF0Y2hlczoKKzxwcm9ncmFtbGlzdGlu Zz4KKyg6cGVyc29uKS1bOmhhc10tPihhOmFjY291bnQgV0hFUkUgYS50eXBlID0gJ3NhdmluZ3Mn KQorPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICAgPCEtLSBUT0RPOiBtdWx0aXBs ZSBwYXRoIHBhdHRlcm5zIGluIGEgZ3JhcGggcGF0dGVybiAoY29tbWEtc2VwYXJhdGVkKSAtLT4K KworICAgPCEtLSBUT0RPOiBxdWFudGlmaWVycyAtLT4KKworICA8L3NlY3QyPgorIDwvc2VjdDE+ CisKIDwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4uZWZi YmYyODNjNDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTI3LDYgKzI3LDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBhbHRlck9wZXJhdG9yRmFtaWx5IFNZU1RFTSAiYWx0ZXJfb3BmYW1pbHkuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclBvbGljeSAgICAgICAgU1lTVEVNICJhbHRlcl9wb2xpY3kuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclByb2NlZHVyZSAgICAgU1lTVEVNICJhbHRlcl9wcm9jZWR1cmUuc2dt bCI+Cis8IUVOVElUWSBhbHRlclByb3BlcnR5R3JhcGggU1lTVEVNICJhbHRlcl9wcm9wZXJ0eV9n cmFwaC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyUHVibGljYXRpb24gICBTWVNURU0gImFsdGVyX3B1 YmxpY2F0aW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJSb2xlICAgICAgICAgIFNZU1RFTSAiYWx0 ZXJfcm9sZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyUm91dGluZSAgICAgICBTWVNURU0gImFsdGVy X3JvdXRpbmUuc2dtbCI+CkBAIC03OSw2ICs4MCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxl IHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRlT3Bl cmF0b3JGYW1pbHkgU1lTVEVNICJjcmVhdGVfb3BmYW1pbHkuc2dtbCI+CiA8IUVOVElUWSBjcmVh dGVQb2xpY3kgICAgICAgU1lTVEVNICJjcmVhdGVfcG9saWN5LnNnbWwiPgogPCFFTlRJVFkgY3Jl YXRlUHJvY2VkdXJlICAgIFNZU1RFTSAiY3JlYXRlX3Byb2NlZHVyZS5zZ21sIj4KKzwhRU5USVRZ IGNyZWF0ZVByb3BlcnR5R3JhcGggU1lTVEVNICJjcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCI+ CiA8IUVOVElUWSBjcmVhdGVQdWJsaWNhdGlvbiAgU1lTVEVNICJjcmVhdGVfcHVibGljYXRpb24u c2dtbCI+CiA8IUVOVElUWSBjcmVhdGVSb2xlICAgICAgICAgU1lTVEVNICJjcmVhdGVfcm9sZS5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZVJ1bGUgICAgICAgICBTWVNURU0gImNyZWF0ZV9ydWxlLnNn bWwiPgpAQCAtMTI3LDYgKzEyOSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291 cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZHJvcE93bmVkICAgICAgICAg IFNZU1RFTSAiZHJvcF9vd25lZC5zZ21sIj4KIDwhRU5USVRZIGRyb3BQb2xpY3kgICAgICAgICBT WVNURU0gImRyb3BfcG9saWN5LnNnbWwiPgogPCFFTlRJVFkgZHJvcFByb2NlZHVyZSAgICAgIFNZ U1RFTSAiZHJvcF9wcm9jZWR1cmUuc2dtbCI+Cis8IUVOVElUWSBkcm9wUHJvcGVydHlHcmFwaCAg U1lTVEVNICJkcm9wX3Byb3BlcnR5X2dyYXBoLnNnbWwiPgogPCFFTlRJVFkgZHJvcFB1YmxpY2F0 aW9uICAgIFNZU1RFTSAiZHJvcF9wdWJsaWNhdGlvbi5zZ21sIj4KIDwhRU5USVRZIGRyb3BSb2xl ICAgICAgICAgICBTWVNURU0gImRyb3Bfcm9sZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BSb3V0aW5l ICAgICAgICBTWVNURU0gImRyb3Bfcm91dGluZS5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfZXh0ZW5zaW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2V4 dGVuc2lvbi5zZ21sCmluZGV4IGM4MTljN2JiNGUzLi42MDIxOGZjZDAxYyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2V4dGVuc2lvbi5zZ21sCkBAIC00Niw2ICs0Niw3IEBAIEFMVEVSIEVYVEVOU0lP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1Ag PHJlcGxhY2VhCiAgIE9QRVJBVE9SIEZBTUlMWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gfAogICBbIFBST0NFRFVSQUwgXSBM QU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxh Y2VhYmxlPiB8CiAgIFBST0NFRFVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJv Y2VkdXJlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIF0gfAorICBQUk9QRVJUWSBH UkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2Vh YmxlPiB8CiAgIFJPVVRJTkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvdXRpbmVf bmFtZTwvcmVwbGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5h cmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CiAgIFNDSEVNQSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFNFUVVF TkNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFi bGU+IHwKQEAgLTE3OSw3ICsxODAsNyBAQCBBTFRFUiBFWFRFTlNJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWNlYQogICAgICAg IFRoZSBuYW1lIG9mIGFuIG9iamVjdCB0byBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhl IGV4dGVuc2lvbi4KICAgICAgICBOYW1lcyBvZiB0YWJsZXMsCiAgICAgICAgYWdncmVnYXRlcywg ZG9tYWlucywgZm9yZWlnbiB0YWJsZXMsIGZ1bmN0aW9ucywgb3BlcmF0b3JzLAotICAgICAgIG9w ZXJhdG9yIGNsYXNzZXMsIG9wZXJhdG9yIGZhbWlsaWVzLCBwcm9jZWR1cmVzLCByb3V0aW5lcywg c2VxdWVuY2VzLCB0ZXh0IHNlYXJjaCBvYmplY3RzLAorICAgICAgIG9wZXJhdG9yIGNsYXNzZXMs IG9wZXJhdG9yIGZhbWlsaWVzLCBwcm9jZWR1cmVzLCBwcm9wZXJ0eSBncmFwaHMsIHJvdXRpbmVz LCBzZXF1ZW5jZXMsIHRleHQgc2VhcmNoIG9iamVjdHMsCiAgICAgICAgdHlwZXMsIGFuZCB2aWV3 cyBjYW4gYmUgc2NoZW1hLXF1YWxpZmllZC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRl bT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjA0YzUxODAxMTcKLS0tIC9kZXYvbnVsbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb3BlcnR5X2dyYXBoLnNnbWwKQEAgLTAsMCAr MSwyOTkgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0 ZXItcHJvcGVydHktZ3JhcGgiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLXByb3BlcnR5 LWdyYXBoIj4KKyAgPHByaW1hcnk+QUxURVIgUFJPUEVSVFkgR1JBUEg8L3ByaW1hcnk+CisgPC9p bmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgUFJPUEVSVFkg R1JBUEg8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYW4gU1FMLXBy b3BlcnR5IGdyYXBoPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNp c2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURECisgICAgWyB7VkVSVEVYfE5PREV9 IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0ZXhfdGFibGVfZGVm aW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisgICAgWyB7RURHRXxSRUxBVElPTlNI SVB9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2Rl ZmluaXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXQorCitBTFRFUiBQUk9QRVJUWSBHUkFQ SCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AK KyAgICB7VkVSVEVYfE5PREV9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij52ZXJ0ZXhfdGFibGVfYWxpYXM8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgWyBDQVNDQURFIHwg UkVTVFJJQ1QgXQorCitBTFRFUiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AKKyAgICB7RURHRXxSRUxBVElPTlNISVB9 IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2FsaWFz PC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworQUxURVIg UFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBBTFRFUgorICAgIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVsZW1lbnRfdGFibGVfYWxpYXM8L3JlcGxh Y2VhYmxlPgorICAgIHsgQUREIExBQkVMIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5s YWJlbF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBOTyBQUk9QRVJUSUVTIHwgUFJPUEVSVElFUyBBTEwg Q09MVU1OUyB8IFBST1BFUlRJRVMgKCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+IF0gfSBbLCAuLi5dICkgXSB9IFsgLi4uIF0K KworQUxURVIgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBBTFRFUgorICAgIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJ UH0gVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVsZW1lbnRfdGFibGVfYWxp YXM8L3JlcGxhY2VhYmxlPgorICAgIERST1AgTEFCRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklDVCBdCisK K0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gQUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9 IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3RhYmxlX2FsaWFz PC9yZXBsYWNlYWJsZT4KKyAgICBBTFRFUiBMQUJFTCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bGFiZWxfbmFtZTwvcmVwbGFjZWFibGU+IEFERCBQUk9QRVJUSUVTICggeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb3BlcnR5X25hbWU8L3JlcGxhY2VhYmxlPiBd IH0gWywgLi4uXSApCisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURH RXxSRUxBVElPTlNISVB9IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVt ZW50X3RhYmxlX2FsaWFzPC9yZXBsYWNlYWJsZT4KKyAgICBBTFRFUiBMQUJFTCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bGFiZWxfbmFtZTwvcmVwbGFjZWFibGU+IERST1AgUFJPUEVS VElFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9wZXJ0eV9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSApIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworQUxURVIgUFJPUEVS VFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3Jl cGxhY2VhYmxlPiB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBQUk9QRVJU WSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxh Y2VhYmxlPgorQUxURVIgUFJPUEVSVFkgR1JBUEggWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNp cz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRp b248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgUFJPUEVSVFkgR1JBUEg8 L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYW4KKyAgIGV4aXN0aW5nIHByb3Bl cnR5IGdyYXBoLiAgVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXM6CisKKyAgIDx2YXJpYWJsZWxp c3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUREIHtWRVJURVh8 Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxp c3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIGFkZHMgbmV3IHZlcnRleCBv ciBlZGdlIHRhYmxlcywgdXNpbmcgdGhlIHNhbWUgc3ludGF4IGFzCisgICAgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaCI+PGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZ CisgICAgICAgR1JBUEg8L2NvbW1hbmQ+PC9saW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAg IDx0ZXJtPjxsaXRlcmFsPkRST1Age1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJM RVM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAg ICBUaGlzIGZvcm0gcmVtb3ZlcyBhIHZlcnRleCBvciBlZGdlIHRhYmxlIGZyb20gdGhlIHByb3Bl cnR5IGdyYXBoLgorICAgICAgIChPbmx5IHRoZSBhc3NvY2lhdGlvbiBvZiB0aGUgdGFibGUgd2l0 aCB0aGUgZ3JhcGggcmVtb3ZlZC4gIFRoZSB0YWJsZQorICAgICAgIGl0c2VsZiBpcyBub3QgZHJv cHBlZC4pCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5BTFRFUiB7VkVS VEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIC4uLiBBREQgTEFCRUw8L2xpdGVyYWw+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0g YWRkcyBhIG5ldyBsYWJlbCB0byBhbiBleGlzdGluZyB2ZXJ0ZXggb3IgZWRnZSB0YWJsZSwgdXNp bmcKKyAgICAgICB0aGUgc2FtZSBzeW50YXggYXMgPGxpbmsKKyAgICAgICBsaW5rZW5kPSJzcWwt Y3JlYXRlLXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkKKyAgICAgICBH UkFQSDwvY29tbWFuZD48L2xpbms+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxp dGVyYWw+QUxURVIge1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJMRSAuLi4gRFJP UCBMQUJFTDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoaXMgZm9ybSByZW1vdmVzIGEgbmV3IGxhYmVsIGZyb20gYW4gZXhpc3RpbmcgdmVy dGV4IG9yIGVkZ2UgdGFibGUuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJh bD5BTFRFUiB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIC4uLiBBTFRFUiBM QUJFTCAuLi4gQUREIFBST1BFUlRJRVM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0gYWRkcyBuZXcgcHJvcGVydGllcyB0byBh biBleGlzdGluZyBsYWJlbCBvbiBhbiBleGlzdGluZworICAgICAgIHZlcnRleCBvciBlZGdlIHRh YmxlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVIge1ZFUlRF WHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJMRSAuLi4gQUxURVIgTEFCRUwgLi4uIERST1Ag UFJPUEVSVElFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJh PgorICAgICAgIFRoaXMgZm9ybSByZW1vdmVzIHByb3BlcnRpZXMgZnJvbSBhbiBleGlzdGluZyBs YWJlbCBvbiBhbiBleGlzdGluZworICAgICAgIHZlcnRleCBvciBlZGdlIHRhYmxlLgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgor ICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0 aGUgb3duZXIgb2YgdGhlIHByb3BlcnR5IGdyYXBoIHRvIHRoZSBzcGVjaWZpZWQgdXNlci4KKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgZm9ybSBjaGFu Z2VzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgZ3JhcGguCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAg ICA8dGVybT48bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBwcm9wZXJ0eSBn cmFwaCBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIFlvdSBtdXN0IG93biB0aGUgcHJvcGVydHkgZ3JhcGggdG8gdXNlIDxjb21t YW5kPkFMVEVSIFBST1BFUlRZCisgICBHUkFQSDwvY29tbWFuZD4uICBUbyBjaGFuZ2UgYSBwcm9w ZXJ0eSBncmFwaCdzIHNjaGVtYSwgeW91IG11c3QgYWxzbyBoYXZlCisgICA8bGl0ZXJhbD5DUkVB VEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVtYS4gIFRvIGFsdGVyIHRoZSBv d25lciwKKyAgIHlvdSBtdXN0IGJlIGFibGUgdG8gPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+ IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZAorICAgdGhhdCByb2xlIG11c3QgaGF2ZSA8bGl0 ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgcHJvcGVydHkKKyAgIGdyYXBo J3Mgc2NoZW1hLiAgKFRoZXNlIHJlc3RyaWN0aW9ucyBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhl IG93bmVyCisgICBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBieSBkcm9wcGlu ZyBhbmQgcmVjcmVhdGluZyB0aGUgcHJvcGVydHkKKyAgIGdyYXBoLiAgSG93ZXZlciwgYSBzdXBl cnVzZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgcHJvcGVydHkgZ3JhcGgKKyAgIGFueXdh eS4pCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgKG9w dGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgYSBwcm9wZXJ0eSBncmFwaCB0byBiZSBhbHRl cmVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJv dyBhbiBlcnJvciBpZiB0aGUgcHJvcGVydHkgZ3JhcGggZG9lcyBub3QgZXhpc3QuICBBIG5vdGlj ZSBpcworICAgICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX2RlZmluaXRpb248 L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZWRnZV90YWJsZV9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNlZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl LXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkKKyAgICAgIEdSQVBIPC9j b21tYW5kPjwvbGluaz4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9hbGlhczwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2FsaWFz PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBhbGlhcyBvZiBhbiBleGlzdGluZyB2ZXJ0ZXggb3IgZWRnZSB0YWJsZSB0byBvcGVyYXRl IG9uLiAgKE5vdGUgdGhhdAorICAgICAgdGhlIGFsaWFzIGlzIHBvdGVudGlhbGx5IGRpZmZlcmVu dCBmcm9tIHRoZSBuYW1lIG9mIHRoZSB1bmRlcmx5aW5nCisgICAgICB0YWJsZSwgaWYgdGhlIHZl cnRleCBvciBlZGdlIHRhYmxlIHdhcyBjcmVhdGVkIHdpdGggPGxpdGVyYWw+QVMKKyAgICAgIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+PC9saXRlcmFs Pi4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNlZSA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUg UFJPUEVSVFkKKyAgICAgIEdSQVBIPC9jb21tYW5kPjwvbGluaz4uCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFj ZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgdXNl ciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHByb3BlcnR5IGdyYXBoLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmV3IG5hbWUgZm9yIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IHNj aGVtYSBmb3IgdGhlIHByb3BlcnR5IGdyYXBoLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhl IGNvbnNpc3RlbmN5IGNoZWNrcyBvbiBhIHByb3BlcnR5IGdyYXBoIGRlc2NyaWJlZCBhdCA8eHJl ZgorICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaC1ub3RlcyIvPiBtdXN0IGJl IG1haW50YWluZWQgYnkKKyAgIDxjb21tYW5kPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9jb21tYW5k PiBvcGVyYXRpb25zLiAgSW4gc29tZSBjYXNlcywgaXQKKyAgIG1pZ2h0IGJlIG5lY2Vzc2FyeSB0 byBtYWtlIG11bHRpcGxlIGFsdGVyYXRpb25zIGluIGEgc2luZ2xlIGNvbW1hbmQgdG8KKyAgIHNh dGlzZnkgdGhlIGNoZWNrcy4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMSBBREQgVkVSVEVYIFRBQkxFUyAodjIpOworCitBTFRF UiBQUk9QRVJUWSBHUkFQSCBnMSBBTFRFUiBWRVJURVggVEFCTEUgdjEgRFJPUCBMQUJFTCBmb287 CisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIFJFTkFNRSBUTyBnMjsKKzwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRp YmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBH UkFQSDwvY29tbWFuZD4gY29uZm9ybXMgdG8gSVNPL0lFQyA5MDc1LTE2CisgICAoU1FML1BHUSku CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHktZ3JhcGgiLz48L21lbWJlcj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtcHJvcGVydHktZ3JhcGgiLz48L21lbWJlcj4K KyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQu c2dtbAppbmRleCA1YjQzYzU2YjEzMy4uN2IyNTE0NzZlMjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21s CkBAIC00Nyw2ICs0Nyw3IEBAIENPTU1FTlQgT04KICAgUE9MSUNZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wb2xpY3lfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBbIFBST0NFRFVS QUwgXSBMQU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8 L3JlcGxhY2VhYmxlPiB8CiAgIFBST0NFRFVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHJvY2VkdXJlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIF0gfAorICBQUk9Q RVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3Jl cGxhY2VhYmxlPgogICBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFJPTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBST1VUSU5FIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb3V0aW5lX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gXSApIF0gfApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlf Z3JhcGguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY4OGQxMTk0Y2JjCi0tLSAv ZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dt bApAQCAtMCwwICsxLDMxMCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVy dHlfZ3JhcGguc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1j cmVhdGUtcHJvcGVydHktZ3JhcGgiPgorICA8cHJpbWFyeT5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+ Q1JFQVRFIFBST1BFUlRZIEdSQVBIPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21h bnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1p c2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUg UFJPUEVSVFkgR1JBUEg8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhbiBTUUwtcHJv cGVydHkgZ3JhcGg8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lz ZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFsgVEVNUCB8IFRFTVBPUkFSWSBdIFBST1BFUlRZIEdS QVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KKyAg ICBbIHtWRVJURVh8Tk9ERX0gVEFCTEVTICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZlcnRleF90YWJsZV9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAgICBb IHtFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEVTICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmVkZ2VfdGFibGVfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisKKzxw aHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9k ZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0gWyBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi5dICkgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3Rh YmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT4gXQorCis8cGhyYXNlPmFuZCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9kZWZpbml0aW9uPC9yZXBs YWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZWRnZV90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdIFsgS0VZICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAg ICAgICAgU09VUkNFIFsgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFJFRkVSRU5DRVMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0g KSBdCisgICAgICAgIERFU1RJTkFUSU9OIFsgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFJFRkVSRU5DRVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVzdF90YWJsZTwvcmVwbGFjZWFibGU+IFsg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi5dICkgXQorICAgICAgICBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l bGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT4gXQorCis8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9sYWJl bF9hbmRfcHJvcGVydGllczwvcmVwbGFjZWFibGU+IGlzIGVpdGhlcjo8L3BocmFzZT4KKworICAg IE5PIFBST1BFUlRJRVMgfCBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIHwgUFJPUEVSVElFUyAoIHsg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBb IEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9wZXJ0eV9uYW1lPC9yZXBsYWNl YWJsZT4gXSB9IFssIC4uLl0gKQorCis8cGhyYXNlPm9yOjwvcGhyYXNlPgorCisgICB7IHsgTEFC RUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxl PiB8IERFRkFVTFQgTEFCRUwgfSBbIE5PIFBST1BFUlRJRVMgfCBQUk9QRVJUSUVTIEFMTCBDT0xV TU5TIHwgUFJPUEVSVElFUyAoIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiBbIEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w cm9wZXJ0eV9uYW1lPC9yZXBsYWNlYWJsZT4gXSB9IFssIC4uLl0gKSBdIH0gWy4uLl0KKzwvc3lu b3BzaXM+Cis8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3Jp cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZIEdS QVBIPC9jb21tYW5kPiBkZWZpbmVzIGEgcHJvcGVydHkgZ3JhcGguICBBCisgICBwcm9wZXJ0eSBn cmFwaCBjb25zaXN0cyBvZiB2ZXJ0aWNlcyBhbmQgZWRnZXMsIHRvZ2V0aGVyIGNhbGxlZCBlbGVt ZW50cywKKyAgIGVhY2ggd2l0aCBhc3NvY2lhdGVkIGxhYmVscyBhbmQgcHJvcGVydGllcywgYW5k IGNhbiBiZSBxdWVyaWVkIHVzaW5nIHRoZQorICAgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVy YWw+IGNsYXVzZSBvZiA8eHJlZiBsaW5rZW5kPSJzcWwtc2VsZWN0Ii8+IHdpdGgKKyAgIGEgc3Bl Y2lhbCBwYXRoIG1hdGNoaW5nIHN5bnRheC4gIFRoZSBkYXRhIGluIHRoZSBncmFwaCBpcyBzdG9y ZWQgaW4gcmVndWxhcgorICAgdGFibGVzIChvciB2aWV3cywgZm9yZWlnbiB0YWJsZXMsIGV0Yy4p LiAgRWFjaCB2ZXJ0ZXggb3IgZWRnZSBjb3JyZXNwb25kcworICAgdG8gYSB0YWJsZS4gIFRoZSBw cm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uIGxpbmtzIHRoZXNlIHRhYmxlcyB0b2dldGhlciBpbnRv CisgICBhIGdyYXBoIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSBxdWVyaWVkIHVzaW5nIGdyYXBoIHF1 ZXJ5IHRlY2huaXF1ZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFU RSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gZG9lcyBub3QgcGh5c2ljYWxseSBtYXRlcmlhbGl6 ZSBhCisgICBncmFwaC4gIEl0IGlzIHRodXMgc2ltaWxhciB0byA8Y29tbWFuZD5DUkVBVEUgVklF VzwvY29tbWFuZD4gaW4gdGhhdCBpdAorICAgcmVjb3JkcyBhIHN0cnVjdHVyZSB0aGF0IGlzIHVz ZWQgb25seSB3aGVuIHRoZSBkZWZpbmVkIG9iamVjdCBpcyBxdWVyaWVkLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBJZiBhIHNjaGVtYSBuYW1lIGlzIGdpdmVuIChmb3IgZXhhbXBsZSwgPGxp dGVyYWw+Q1JFQVRFIFBST1BFUlRZIEdSQVBICisgICBteXNjaGVtYS5teWdyYXBoIC4uLjwvbGl0 ZXJhbD4pIHRoZW4gdGhlIHByb3BlcnR5IGdyYXBoIGlzIGNyZWF0ZWQgaW4gdGhlCisgICBzcGVj aWZpZWQgc2NoZW1hLiAgT3RoZXJ3aXNlIGl0IGlzIGNyZWF0ZWQgaW4gdGhlIGN1cnJlbnQgc2No ZW1hLgorICAgVGVtcG9yYXJ5IHByb3BlcnR5IGdyYXBocyBleGlzdCBpbiBhIHNwZWNpYWwgc2No ZW1hLCBzbyBhIHNjaGVtYSBuYW1lCisgICBjYW5ub3QgYmUgZ2l2ZW4gd2hlbiBjcmVhdGluZyBh IHRlbXBvcmFyeSBwcm9wZXJ0eSBncmFwaC4gIFByb3BlcnR5IGdyYXBocworICAgc2hhcmUgYSBu YW1lc3BhY2Ugd2l0aCB0YWJsZXMgYW5kIG90aGVyIHJlbGF0aW9uIHR5cGVzLCBzbyB0aGUgbmFt ZSBvZiB0aGUKKyAgIHByb3BlcnR5IGdyYXBoIG11c3QgYmUgZGlzdGluY3QgZnJvbSB0aGUgbmFt ZSBvZiBhbnkgb3RoZXIgcmVsYXRpb24gKHRhYmxlLAorICAgc2VxdWVuY2UsIGluZGV4LCB2aWV3 LCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgZm9yZWlnbiB0YWJsZSkgaW4gdGhlIHNhbWUKKyAgIHNj aGVtYS4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSAo b3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgbmV3IHByb3BlcnR5IGdyYXBoLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZFUlRFWDwvbGl0ZXJhbD4vPGxpdGVy YWw+Tk9ERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPHRlcm0+PGxpdGVyYWw+RURHRTwvbGl0ZXJh bD4vPGxpdGVyYWw+UkVMQVRJT05TSElQPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlc2Uga2V5d29yZHMgYXJlIHN5bm9ueW1zLCByZXNwZWN0 aXZlbHkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnZlcnRleF90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIGEgdGFibGUgdGhhdCB3aWxsIGNv bnRhaW4gdmVydGljZXMgaW4gdGhlIG5ldyBwcm9wZXJ0eQorICAgICAgZ3JhcGguCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVkZ2VfdGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSBvZiBhIHRhYmxlIHRoYXQgd2lsbCBjb250YWluIGVkZ2VzIGluIHRo ZSBuZXcgcHJvcGVydHkgZ3JhcGguCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB2 ZXJ0ZXggb3IgZWRnZSB0YWJsZS4gIFRoaXMgZGVmYXVsdHMgdG8gdGhlCisgICAgICBuYW1lIG9m IHRoZSB0YWJsZS4gIEFsaWFzZXMgbXVzdCBiZSB1bmlxdWUgaW4gYSBwcm9wZXJ0eSBncmFwaAor ICAgICAgZGVmaW5pdGlvbiAoYWNyb3NzIGFsbCB2ZXJ0ZXggdGFibGUgYW5kIGVkZ2UgdGFibGUg ZGVmaW5pdGlvbnMpLgorICAgICAgKFRoZXJlZm9yZSwgaWYgYSB0YWJsZSBpcyB1c2VkIG1vcmUg dGhhbiBvbmNlIGFzIGEgdmVydGV4IG9yIGVkZ2UgdGFibGUsCisgICAgICB0aGVuIGFuIGV4cGxp Y2l0IGFsaWFzIG11c3QgYmUgc3BlY2lmaWVkIGZvciBhdCBsZWFzdCBvbmUgb2YgdGhlbSB0bwor ICAgICAgZGlzdGluZ3Vpc2ggdGhlbS4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVy YWw+S0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSApPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQSBzZXQgb2YgY29sdW1ucyB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMg YSByb3cgaW4gdGhlIHZlcnRleCBvciBlZGdlCisgICAgICB0YWJsZS4gIERlZmF1bHRzIHRvIHRo ZSBwcmltYXJ5IGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlc3RfdGFibGU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHZlcnRleCB0 YWJsZXMgdGhhdCB0aGUgZWRnZSB0YWJsZSBpcyBsaW5rZWQgdG8uICBUaGVzZSByZWZlciB0byB0 aGUKKyAgICAgIGFsaWFzZXMgb2YgYSB0aGUgdmVydGV4IHRhYmxlLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxsaXRlcmFsPktFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBSRUZFUkVOQ0VTIC4uLiAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFR3byBzZXRzIG9mIGNvbHVtbnMgdGhhdCBjb25uZWN0IHRoZSBlZGdlIHRhYmxlIGFuZCB0aGUg c291cmNlIG9yCisgICAgICBkZXN0aW5hdGlvbiB2ZXJ0ZXggdGFibGUsIGxpa2UgaW4gYSBmb3Jl aWduLWtleSByZWxhdGlvbnNoaXAuICBJZiBhCisgICAgICBmb3JlaWduLWtleSBjb25zdHJhaW50 IGJldHdlZW4gdGhlIHR3byB0YWJsZXMgZXhpc3RzLCBpdCBpcyB1c2VkIGJ5CisgICAgICBkZWZh dWx0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5lbGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERlZmluZXMgdGhlIGxhYmVs cyBhbmQgcHJvcGVydGllcyBmb3IgdGhlIGVsZW1lbnQgKHZlcnRleCBvciBlZGdlKQorICAgICAg dGFibGUuICBFYWNoIGVsZW1lbnQgaGFzIGF0IGxlYXN0IG9uZSBsYWJlbC4gIEJ5IGRlZmF1bHQs IHRoZSBsYWJlbCBpcworICAgICAgdGhlIHNhbWUgYXMgdGhlIGVsZW1lbnQgdGFibGUgYWxpYXMu ICBUaGlzIGNhbiBiZSBzcGVjaWZpZWQgZXhwbGljaXRseQorICAgICAgYXMgPGxpdGVyYWw+REVG QVVMVCBMQUJFTDwvbGl0ZXJhbD4uICBBbHRlcm5hdGl2ZWx5LCBvbmUgb3IgbW9yZSBmcmVlbHkK KyAgICAgIGNob3NlbiBsYWJlbCBuYW1lcyBjYW4gYmUgc3BlY2lmaWVkLiAgKExhYmVsIG5hbWVz IGRvIG5vdCBoYXZlIHRvIGJlCisgICAgICB1bmlxdWUgYWNyb3NzIGEgcHJvcGVydHkgZ3JhcGgu ICBJdCBpcyBjYW4gYmUgdXNlZnVsIHRvIGFzc2lnbiB0aGUgc2FtZQorICAgICAgbGFiZWwgdG8g ZGlmZmVyZW50IGVsZW1lbnRzLikgIEVhY2ggbGFiZWwgaGFzIGEgbGlzdCAocG9zc2libHkgZW1w dHkpIG9mCisgICAgICBwcm9wZXJ0aWVzLiAgQnkgZGVmYXVsdCwgYWxsIGNvbHVtbnMgb2YgYSB0 YWJsZSBhcmUgYXV0b21hdGljYWxseQorICAgICAgZXhwb3NlZCBhcyBwcm9wZXJ0aWVzLiAgVGhp cyBjYW4gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkgYXMKKyAgICAgIDxsaXRlcmFsPlBST1BFUlRJ RVMgQUxMIENPTFVNTlM8L2xpdGVyYWw+LiAgQWx0ZXJuYXRpdmVseSwgYSBsaXN0IG9mCisgICAg ICBleHByZXNzaW9ucywgd2hpY2ggY2FuIHJlZmVyIHRvIHRoZSBjb2x1bW5zIG9mIHRoZSB1bmRl cmx5aW5nIHRhYmxlLCBjYW4KKyAgICAgIGJlIHNwZWNpZmllZCBhcyBwcm9wZXJ0aWVzLiAgSWYg dGhlIGV4cHJlc3Npb25zIGFyZSBub3QgYSBwbGFpbiBjb2x1bW4KKyAgICAgIHJlZmVyZW5jZSwg dGhlbiBhbiBleHBsaWNpdCBwcm9wZXJ0eSBuYW1lIG11c3QgYWxzbyBiZSBzcGVjaWZpZWQuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFy aWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1jcmVhdGUtcHJv cGVydHktZ3JhcGgtbm90ZXMiPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgVGhlIGZvbGxvd2luZyBjb25zaXN0ZW5jeSBjaGVja3MgbXVzdCBiZSBzYXRpc2ZpZWQgYnkg YSBwcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgorCisgICA8aXRlbWl6ZWRsaXN0PgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBJbiBhIHByb3BlcnR5IGdyYXBoLCBsYWJlbHMg d2l0aCB0aGUgc2FtZSBuYW1lIGFwcGxpZWQgdG8gZGlmZmVyZW50CisgICAgICBwcm9wZXJ0eSBn cmFwaCBlbGVtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIHByb3BlcnRpZXMgYW5k CisgICAgICB0aG9zZSBwcm9wZXJ0aWVzIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lcy4gIEZvciBl eGFtcGxlLCB0aGUgZm9sbG93aW5nCisgICAgICB3b3VsZCBiZSBhbGxvd2VkOgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVSVEVYIFRBQkxFUyAoCisg ICAgICAgIHYxIExBQkVMIGZvbyBQUk9QRVJUSUVTICh4LCB5KSwKKyAgICAgICAgdjIgTEFCRUwg Zm9vIFBST1BFUlRJRVMgKHgsIHkpCisgICAgKSAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAg ICBidXQgdGhpcyB3b3VsZCBub3Q6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkg R1JBUEggZzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdjEgTEFCRUwgZm9vIFBST1BF UlRJRVMgKHgsIHkpLAorICAgICAgICB2MiBMQUJFTCBmb28gUFJPUEVSVElFUyAoeikKKyAgICAp IC4uLgorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBJbiBhIHByb3BlcnR5IGdyYXBoLCBhbGwgcHJv cGVydGllcyB3aXRoIHRoZSBzYW1lIG5hbWUgbXVzdCBoYXZlIHRoZQorICAgICAgc2FtZSBkYXRh IHR5cGUsIGluZGVwZW5kZW50IG9mIHdoaWNoIGxhYmVsIHRoZXkgYXJlIG9uLiAgRm9yIGV4YW1w bGUsCisgICAgICB0aGlzIHdvdWxkIGJlIGFsbG93ZWQ6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVB VEUgVEFCTEUgdjEgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVEFCTEUgdjIgKGEgaW50LCBiIGlu dCk7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQorICAgIFZFUlRFWCBUQUJMRVMgKAorICAg ICAgICB2MSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSwgYiksCisgICAgICAgIHYyIExBQkVMIGJh ciBQUk9QRVJUSUVTIChhLCBiKQorICAgICkgLi4uCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAg YnV0IHRoaXMgd291bGQgbm90OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIHYxIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFRBQkxFIHYyIChhIGludCwgYiB2YXJjaGFyKTsKKworQ1JF QVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHYxIExB QkVMIGZvbyBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdjIgTEFCRUwgYmFyIFBST1BFUlRJ RVMgKGEsIGIpCisgICAgKSAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRm9yIGVhY2ggcHJv cGVydHkgZ3JhcGggZWxlbWVudCwgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBuYW1lIG11 c3QKKyAgICAgIGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBmb3IgZWFjaCBsYWJlbC4gIEZvciBl eGFtcGxlLCB0aGlzIHdvdWxkIGJlCisgICAgICBhbGxvd2VkOgorPHByb2dyYW1saXN0aW5nPgor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHYx IExBQkVMIGZvbyBQUk9QRVJUSUVTICh4IEFTIGEgKiAyKSBMQUJFTCBiYXIgUFJPUEVSVElFUyAo eCBBUyBhICogMikKKyAgICApIC4uLgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIGJ1dCB0aGlz IHdvdWxkIG5vdDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQor ICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB2MSBMQUJFTCBmb28gUFJPUEVSVElFUyAoeCBB UyBhICogMikgTEFCRUwgYmFyIFBST1BFUlRJRVMgKHggQVMgYSAqIDEwKQorICAgICkgLi4uCis8 L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICA8L2l0ZW1pemVk bGlzdD4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgUHJvcGVydHkgZ3JhcGhzIGFyZSBxdWVy aWVkIHVzaW5nIHRoZSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gY2xhdXNlCisgICBv ZiA8eHJlZiBsaW5rZW5kPSJzcWwtc2VsZWN0Ii8+LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQorICAgIFZFUlRFWCBUQUJM RVMgKHYxLCB2MiwgdjMpCisgICAgRURHRSBUQUJMRVMgKGUxIFNPVVJDRSB2MSBERVNUSU5BVElP TiB2MiwKKyAgICAgICAgICAgICAgICAgZTIgU09VUkNFIHYxIERFU1RJTkFUSU9OIHYzKTsKKzwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFU RSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gY29uZm9ybXMgdG8gSVNPL0lFQyA5MDc1LTE2Cisg ICAoU1FML1BHUSkuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+Cisg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1wcm9wZXJ0eS1ncmFwaCIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1wcm9wZXJ0eS1ncmFwaCIv PjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMWNiNzdhMmFmMQotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCkBAIC0wLDAgKzEsMTExIEBA Cis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbAorUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcC1wcm9wZXJ0 eS1ncmFwaCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcC1wcm9wZXJ0eS1ncmFwaCI+Cisg IDxwcmltYXJ5PkRST1AgUFJPUEVSVFkgR1JBUEg8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBQUk9QRVJUWSBHUkFQSDwvcmVmZW50 cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwg LSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVm bmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBQUk9QRVJUWSBHUkFQSDwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+cmVtb3ZlIGFuIFNRTC1wcm9wZXJ0eSBncmFwaDwvcmVmcHVycG9zZT4KKyA8L3Jl Zm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFBST1BFUlRZ IEdSQVBIIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+ CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9u PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgUFJPUEVSVFkgR1JBUEg8L2Nv bW1hbmQ+IGRyb3BzIGFuIGV4aXN0aW5nIHByb3BlcnR5IGdyYXBoLgorICAgVG8gZXhlY3V0ZSB0 aGlzIGNvbW1hbmQgeW91IG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBwcm9wZXJ0eSBncmFwaC4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHByb3BlcnR5 IGdyYXBoIGRvZXMgbm90IGV4aXN0LiAgQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlz IGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhl IHByb3BlcnR5IGdyYXBoIHRvIHJlbW92ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHBy b3BlcnR5IGdyYXBoLCBhbmQgaW4KKyAgICAgIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQg b24gdGhvc2Ugb2JqZWN0cyAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+ KS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZnVzZSB0byBkcm9w IHRoZSBwcm9wZXJ0eSBncmFwaCBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlz CisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlz dGluZz4KK0RST1AgUFJPUEVSVFkgR1JBUEggZzE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIFBST1BFUlRZIEdSQVBIPC9jb21tYW5k PiBjb25mb3JtcyB0byBJU08vSUVDIDkwNzUtMTYKKyAgIChTUUwvUEdRKSwgZXhjZXB0IHRoYXQg dGhlIHN0YW5kYXJkIG9ubHkgYWxsb3dzIG9uZSBwcm9wZXJ0eSBncmFwaCB0byBiZQorICAgZHJv cHBlZCBwZXIgY29tbWFuZCwgYW5kIGFwYXJ0IGZyb20gdGhlIDxsaXRlcmFsPklGIEVYSVNUUzwv bGl0ZXJhbD4KKyAgIG9wdGlvbiwgd2hpY2ggaXMgYSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHkt Z3JhcGgiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLXBy b3BlcnR5LWdyYXBoIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor PC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlmNjU3ZDVjMC4uMTEzMmMxNjA4Y2Ug MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2dyYW50LnNnbWwKQEAgLTgyLDYgKzgyLDExIEBAIEdSQU5UIHsgeyBTRVQgfCBBTFRF UiBTWVNURU0gfSBbLCAuLi4gXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CiAgICAgVE8gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+ IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CiAKK0dSQU5UIHsgU0VMRUNUIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBQUk9QRVJU WSBHUkFQSCA8cmVwbGFjZWFibGU+Z3JhcGhfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAg ICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKyAgICBbIEdSQU5URUQg QlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVw bGFjZWFibGU+IF0KKwogR1JBTlQgeyB7IENSRUFURSB8IFVTQUdFIH0gWywgLi4uXSB8IEFMTCBb IFBSSVZJTEVHRVMgXSB9CiAgICAgT04gU0NIRU1BIDxyZXBsYWNlYWJsZT5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLl0KICAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQg T1BUSU9OIF0KQEAgLTExOSw3ICsxMjQsNyBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg dGhhdCBncmFudHMgcHJpdmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVt biwgdmlldywKICAgIGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1k YXRhIHdyYXBwZXIsIGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJv Y2VkdXJhbCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0 ZXIsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKKyAg IHBhcmFtZXRlciwgcHJvcGVydHkgZ3JhcGgsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSks IGFuZCBvbmUgdGhhdCBncmFudHMKICAgIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFy aWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJlIGRpZmZlcmVu dCBlbm91Z2ggdG8gYmUgZGVzY3JpYmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNx bC1yZWYuc2dtbAppbmRleCBlNDIwNzNlZDc0OC4uZGZjN2FjNWYwZjAgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwt cmVmLnNnbWwKQEAgLTEyNzYsNyArMTI3Niw3IEBAIFNFTEVDVCAkMSBccGFyc2Ugc3RtdDEKIAog ICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgIDxwYXJhPgotICAgICAgICBGb3IgZWFjaCByZWxh dGlvbiAodGFibGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBpbmRleCwgc2VxdWVuY2UsCisg ICAgICAgIEZvciBlYWNoIHJlbGF0aW9uICh0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcs IGluZGV4LCBwcm9wZXJ0eSBncmFwaCwgc2VxdWVuY2UsCiAgICAgICAgIG9yIGZvcmVpZ24gdGFi bGUpCiAgICAgICAgIG9yIGNvbXBvc2l0ZSB0eXBlIG1hdGNoaW5nIHRoZQogICAgICAgICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+LCBzaG93IGFs bApAQCAtMTMxNiw5ICsxMzE2LDkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICA8 cGFyYT4KICAgICAgICAgSWYgPGNvbW1hbmQ+XGQ8L2NvbW1hbmQ+IGlzIHVzZWQgd2l0aG91dCBh CiAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4gYXJndW1lbnQsIGl0IGlzCi0gICAgICAgIGVxdWl2YWxlbnQgdG8gPGNvbW1hbmQ+XGR0 dm1zRTwvY29tbWFuZD4gd2hpY2ggd2lsbCBzaG93IGEgbGlzdCBvZgotICAgICAgICBhbGwgdmlz aWJsZSB0YWJsZXMsIHZpZXdzLCBtYXRlcmlhbGl6ZWQgdmlld3MsIHNlcXVlbmNlcyBhbmQKLSAg ICAgICAgZm9yZWlnbiB0YWJsZXMuCisgICAgICAgIGVxdWl2YWxlbnQgdG8gPGNvbW1hbmQ+XGR0 dm1zRUc8L2NvbW1hbmQ+IHdoaWNoIHdpbGwgc2hvdyBhIGxpc3Qgb2YKKyAgICAgICAgYWxsIHZp c2libGUgdGFibGVzLCB2aWV3cywgbWF0ZXJpYWxpemVkIHZpZXdzLCBzZXF1ZW5jZXMsCisgICAg ICAgIGZvcmVpZ24gdGFibGVzLCBhbmQgcHJvcGVydHkgZ3JhcGhzLgogICAgICAgICBUaGlzIGlz IHB1cmVseSBhIGNvbnZlbmllbmNlIG1lYXN1cmUuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAg PC9ub3RlPgpAQCAtMTU4Niw2ICsxNTg2LDcgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogCiAg ICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZGUiPgogICAgICAg ICA8dGVybT48bGl0ZXJhbD5cZEVbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVy bnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48 L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZEdbUytd IFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJt PgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZGlbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBz cWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBs YWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJh bD5cZG1bUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVy YWw+PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZHNbUytdIFsgPGxpbmsgbGlua2Vu ZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0 ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgpAQCAtMTU5NCwxMCAr MTU5NSwxMCBAQCBTRUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAKICAgICAgICAgPGxpc3RpdGVtPgog ICAgICAgICA8cGFyYT4KLSAgICAgICAgSW4gdGhpcyBncm91cCBvZiBjb21tYW5kcywgdGhlIGxl dHRlcnMgPGxpdGVyYWw+RTwvbGl0ZXJhbD4sCisgICAgICAgIEluIHRoaXMgZ3JvdXAgb2YgY29t bWFuZHMsIHRoZSBsZXR0ZXJzIDxsaXRlcmFsPkU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5HPC9saXRl cmFsPiwKICAgICAgICAgPGxpdGVyYWw+aTwvbGl0ZXJhbD4sIDxsaXRlcmFsPm08L2xpdGVyYWw+ LCA8bGl0ZXJhbD5zPC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+dDwvbGl0ZXJhbD4sIGFu ZCA8bGl0ZXJhbD52PC9saXRlcmFsPgotICAgICAgICBzdGFuZCBmb3IgZm9yZWlnbiB0YWJsZSwg aW5kZXgsIG1hdGVyaWFsaXplZCB2aWV3LAorICAgICAgICBzdGFuZCBmb3IgZm9yZWlnbiB0YWJs ZSwgaW5kZXgsIHByb3BlcnR5IGdyYXBoLCBtYXRlcmlhbGl6ZWQgdmlldywKICAgICAgICAgc2Vx dWVuY2UsIHRhYmxlLCBhbmQgdmlldywKICAgICAgICAgcmVzcGVjdGl2ZWx5LgogICAgICAgICBZ b3UgY2FuIHNwZWNpZnkgYW55IG9yIGFsbCBvZgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9yZXZva2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDky MjgxYTEuLjk0OGFjNTM0NDQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKQEAgLTEwNCw2ICsxMDQsMTMg QEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9S IF0KKyAgICB7IFNFTEVDVCB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gUFJPUEVSVFkg R1JBUEggPHJlcGxhY2VhYmxlPmdyYXBoX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAg RlJPTSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gWywgLi4uXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FT Q0FERSB8IFJFU1RSSUNUIF0KKwogUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgeyB7 IENSRUFURSB8IFVTQUdFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CiAgICAgT04g U0NIRU1BIDxyZXBsYWNlYWJsZT5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbAppbmRleCBlNWU1ZmI0ODNlOS4uOWI5NzA4NWEz ZmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3NlY3VyaXR5X2xhYmVsLnNnbWwKQEAgLTM1LDYgKzM1LDcgQEAg U0VDVVJJVFkgTEFCRUwgWyBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb3Zp ZGVyPC9yZXBsYWNlYWJsZT4gXSBPTgogICBNQVRFUklBTElaRUQgVklFVyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFsgUFJPQ0VE VVJBTCBdIExBTkdVQUdFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFt ZTwvcmVwbGFjZWFibGU+IHwKICAgUFJPQ0VEVVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wcm9jZWR1cmVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CisgIFBS T1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+CiAgIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUk9MRSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFJPVVRJTkUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvdXRpbmVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCBb IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBd IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBsYWNlYWJsZT4gWywg Li4uXSBdICkgXSB8CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAppbmRleCBkNzA4OWVhYzBiZS4uMWM2ZWU5OTg0 MTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9zZWxlY3Quc2dtbApAQCAtNTksNiArNTksNyBAQCBTRUxFQ1QgWyBBTEwgfCBE SVNUSU5DVCBbIE9OICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248 L3JlcGxhYwogICAgIFsgTEFURVJBTCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5m dW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hcmd1bWVudDwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIEFTICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4u XSApCiAgICAgWyBMQVRFUkFMIF0gUk9XUyBGUk9NKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+ICggWyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YXJndW1lbnQ8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBbIEFTICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9kZWZpbml0aW9uPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSApIF0gWywgLi4uXSApCiAgICAgICAgICAgICAgICAgWyBXSVRIIE9SRElOQUxJ VFkgXSBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3JlcGxh Y2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9hbGlhczwv cmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIF0KKyAgICBHUkFQSF9UQUJMRSAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5ncmFwaF9uYW1lPC9yZXBsYWNlYWJsZT4gTUFUQ0ggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBoX3BhdHRlcm48L3JlcGxhY2VhYmxlPiBDT0xV TU5TICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBdIH0gWywgLi4uXSApICkgWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fYWxpYXM8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSBdCiAgICAgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5qb2luX3R5cGU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4geyBPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl9jb25kaXRpb248L3JlcGxhY2VhYmxlPiB8IFVTSU5H ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5fY29sdW1uPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSApIFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5fdXNp bmdfYWxpYXM8L3JlcGxhY2VhYmxlPiBdIH0KICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gTkFUVVJBTCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+am9pbl90eXBlPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+CiAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+IENST1NTIEpPSU4gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+CkBAIC01ODcsNiAr NTg4LDQ4IEBAIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48bGl0ZXJh bD5HUkFQSF9UQUJMRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ncmFwaF9uYW1l PC9yZXBsYWNlYWJsZT4gTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBo X3BhdHRlcm48L3JlcGxhY2VhYmxlPiBDT0xVTU5TICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBdIH0gWywgLi4uXSApICk8L2xpdGVyYWw+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGNs YXVzZSBwcm9kdWNlcyBvdXRwdXQgZnJvbSBtYXRjaGluZyB0aGUgc3BlY2lmeWluZyBncmFwaCBw YXR0ZXJuCisgICAgICAgIGFnYWluc3QgYSBwcm9wZXJ0eSBncmFwaC4gIFNlZSA8eHJlZiBsaW5r ZW5kPSJkZGwtcHJvcGVydHktZ3JhcGhzIi8+CisgICAgICAgIGFuZCA8eHJlZiBsaW5rZW5kPSJx dWVyaWVzLWdyYXBoIi8+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Z3Jh cGhfbmFtZTwvcmVwbGFjZWFibGU+IGlzIHRoZSBuYW1lCisgICAgICAgIChvcHRpb25hbGx5IHNj aGVtYS1xdWFsaWZpZWQpIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5IGdyYXBoIChkZWZpbmVkCisg ICAgICAgIHdpdGggPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaCIvPiku CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5ncmFwaF9wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMgYSBncmFwaAor ICAgICAgICBwYXR0ZXJuIGluIGEgc3BlY2lhbCBncmFwaCBwYXR0ZXJuIHN1Ymxhbmd1YWdlLiAg U2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9InF1ZXJpZXMtZ3JhcGgtcGF0dGVybnMiLz4uCisg ICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8bGl0ZXJhbD5DT0xV TU5TPC9saXRlcmFsPiBjbGF1c2UgZGVmaW5lcyB0aGUgb3V0cHV0IGNvbHVtbnMgb2YKKyAgICAg ICAgdGhlIDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1c2UuICA8cmVwbGFjZWFi bGUKKyAgICAgICAgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IGlz IGEgc2NhbGFyIGV4cHJlc3Npb24KKyAgICAgICAgdXNpbmcgdGhlIGdyYXBoIHBhdHRlcm4gdmFy aWFibGVzIGRlZmluZWQgaW4gdGhlIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1l dGVyIj5ncmFwaF9wYXR0ZXJuPC9yZXBsYWNlYWJsZT4uICBUaGUgbmFtZSBvZiB0aGUgb3V0cHV0 CisgICAgICAgIGNvbHVtbnMgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgPGxpdGVyYWw+QVM8L2xp dGVyYWw+IGNsYXVzZXMuICBJZiB0aGUKKyAgICAgICAgZXhwcmVzc2lvbnMgYXJlIHNpbXBsZSBw cm9wZXJ0eSByZWZlcmVuY2VzLCB0aGUgcHJvcGVydHkgbmFtZXMgYXJlCisgICAgICAgIHVzZWQg YXMgdGhlIG91dHB1dCBuYW1lcywgb3RoZXJ3aXNlIGFuIGV4cGxpY2l0IG5hbWUgbXVzdCBiZQor ICAgICAgICBzcGVjaWZpZWQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAg ICAgIExpa2UgZm9yIG90aGVyIDxsaXRlcmFsPkZST008L2xpdGVyYWw+IGNsYXVzZSBpdGVtcywg YSB0YWJsZSBhbGlhcworICAgICAgICBuYW1lIGFuZCBjb2x1bW4gYWxpYXMgbmFtZXMgbWF5IGZv bGxvdyB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEUKKyAgICAgICAgKC4uLik8L2xpdGVyYWw+IGNs YXVzZS4gIChBIGNvbHVtbiBhbGlhcyBsaXN0IHdvdWxkIGJlIHJlZHVuZGFudCB3aXRoCisgICAg ICAgIHRoZSA8bGl0ZXJhbD5DT0xVTU5TPC9saXRlcmFsPiBjbGF1c2UuKQorICAgICAgIDwvcGFy YT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9p bl90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwKaW5kZXggZmY4NWFjZTgzZmMuLjZkZTNhZmE3YjE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC01 NSw2ICs1NSw3IEBACiAgICAmYWx0ZXJPcGVyYXRvckZhbWlseTsKICAgICZhbHRlclBvbGljeTsK ICAgICZhbHRlclByb2NlZHVyZTsKKyAgICZhbHRlclByb3BlcnR5R3JhcGg7CiAgICAmYWx0ZXJQ dWJsaWNhdGlvbjsKICAgICZhbHRlclJvbGU7CiAgICAmYWx0ZXJSb3V0aW5lOwpAQCAtMTA3LDYg KzEwOCw3IEBACiAgICAmY3JlYXRlT3BlcmF0b3JGYW1pbHk7CiAgICAmY3JlYXRlUG9saWN5Owog ICAgJmNyZWF0ZVByb2NlZHVyZTsKKyAgICZjcmVhdGVQcm9wZXJ0eUdyYXBoOwogICAgJmNyZWF0 ZVB1YmxpY2F0aW9uOwogICAgJmNyZWF0ZVJvbGU7CiAgICAmY3JlYXRlUnVsZTsKQEAgLTE1NSw2 ICsxNTcsNyBAQAogICAgJmRyb3BPd25lZDsKICAgICZkcm9wUG9saWN5OwogICAgJmRyb3BQcm9j ZWR1cmU7CisgICAmZHJvcFByb3BlcnR5R3JhcGg7CiAgICAmZHJvcFB1YmxpY2F0aW9uOwogICAg JmRyb3BSb2xlOwogICAgJmRyb3BSb3V0aW5lOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggYWFmOTZh OTY1ZTQuLjAyMDE5MTYyY2Q1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNo ay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTI5MSw2ICsyOTEsOSBA QCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9n b3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNf UFJPUEdSQVBIOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNv Z25pemVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1 dCBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzUsNiArNTM4LDEwIEBAIEV4ZWN1dGVHcmFu dFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hU U19QQVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJp dmlsZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNU X1BST1BHUkFQSDoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUFJPUEdSQVBI OworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHByb3BlcnR5IGdyYXBoIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3Rt dC0+b2JqdHlwZSk7CkBAIC02MDUsNiArNjEyLDcgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVy bmFsR3JhbnQgKmlzdG10KQogCXsKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2UgT0JKRUNU X1NFUVVFTkNFOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCQlFeGVjR3JhbnRfUmVsYXRp b24oaXN0bXQpOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpAQCAtNjg3LDYg KzY5NSw3IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2Jq bmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2UgT0JK RUNUX1NFUVVFTkNFOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAKIAkJCS8qCiAJCQkgKiBI ZXJlLCB3ZSBkb24ndCB1c2UgZ2V0X29iamVjdF9hZGRyZXNzKCkuICBJdCByZXF1aXJlcyB0aGF0 IHRoZQpAQCAtODA0LDYgKzgxMywxMCBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlw ZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJCQlvYmpzID0gZ2V0UmVsYXRpb25zSW5OYW1l c3BhY2UobmFtZXNwYWNlSWQsIFJFTEtJTkRfU0VRVUVOQ0UpOwogCQkJCW9iamVjdHMgPSBsaXN0 X2NvbmNhdChvYmplY3RzLCBvYmpzKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1BST1BH UkFQSDoKKwkJCQlvYmpzID0gZ2V0UmVsYXRpb25zSW5OYW1lc3BhY2UobmFtZXNwYWNlSWQsIFJF TEtJTkRfUFJPUEdSQVBIKTsKKwkJCQlvYmplY3RzID0gbGlzdF9jb25jYXQob2JqZWN0cywgb2Jq cyk7CisJCQkJYnJlYWs7CiAJCQljYXNlIE9CSkVDVF9GVU5DVElPTjoKIAkJCWNhc2UgT0JKRUNU X1BST0NFRFVSRToKIAkJCWNhc2UgT0JKRUNUX1JPVVRJTkU6CkBAIC0xMDA1LDYgKzEwMTgsMTAg QEAgRXhlY0FsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfU0NIRU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmls ZWdlIHR5cGUgJXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1BST1BH UkFQSDoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUFJPUEdSQVBIOworCQkJ ZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHBy b3BlcnR5IGdyYXBoIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgYWN0aW9uLT5v Ymp0eXBlKTsKQEAgLTI2OTksNiArMjcxNiw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBh Y2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfUFJPQ0VEVVJFOgog CQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvY2VkdXJl ICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJCQkJ bXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvcGVydHkgZ3JhcGgg JXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJCQkJ CW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHB1YmxpY2F0aW9uICVz Iik7CiAJCQkJCQlicmVhazsKQEAgLTI4MjUsNiArMjg0NSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFj bFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfUFJP Q0VEVVJFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHByb2Nl ZHVyZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBwcm9wZXJ0eSBncmFwaCAl cyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQkJCQkJ bXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHB1YmxpY2F0aW9uICVzIik7CiAJ CQkJCQlicmVhazsKQEAgLTI5NjEsNiArMjk4NCw3IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBv Ymp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJ CQkJcGdfYXR0cmlidXRlX2FjbG1hc2sob2JqZWN0X29pZCwgYXR0bnVtLCByb2xlaWQsIG1hc2ss IGhvdyk7CiAJCWNhc2UgT0JKRUNUX1RBQkxFOgogCQljYXNlIE9CSkVDVF9TRVFVRU5DRToKKwkJ Y2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQkJcmV0dXJuIHBnX2NsYXNzX2FjbG1hc2sob2JqZWN0 X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCXJl dHVybiBvYmplY3RfYWNsbWFzayhEYXRhYmFzZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVp ZCwgbWFzaywgaG93KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMmFmYzU1MDU0MGMu LjQxZGU4NmU2YmZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtNTAsNiArNTAsMTEg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcmFtZXRlcl9hY2wuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3BvbGljeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhf bGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRp b25fbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCIK QEAgLTE0NTMsNiArMTQ1OCwxMSBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9i amVjdCwgaW50IGZsYWdzKQogCQljYXNlIEFjY2Vzc01ldGhvZFJlbGF0aW9uSWQ6CiAJCWNhc2Ug QWNjZXNzTWV0aG9kT3BlcmF0b3JSZWxhdGlvbklkOgogCQljYXNlIEFjY2Vzc01ldGhvZFByb2Nl ZHVyZVJlbGF0aW9uSWQ6CisJCWNhc2UgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQ6CisJCWNh c2UgUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZDoKKwkJY2FzZSBQcm9wZ3JhcGhMYWJl bFJlbGF0aW9uSWQ6CisJCWNhc2UgUHJvcGdyYXBoTGFiZWxQcm9wZXJ0eVJlbGF0aW9uSWQ6CisJ CWNhc2UgUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkOgogCQljYXNlIE5hbWVzcGFjZVJlbGF0 aW9uSWQ6CiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJl bGF0aW9uSWQ6CkBAIC0yMTYzLDYgKzIxNzMsNyBAQCBmaW5kX2V4cHJfcmVmZXJlbmNlc193YWxr ZXIoTm9kZSAqbm9kZSwKIAkJCXN3aXRjaCAocnRlLT5ydGVraW5kKQogCQkJewogCQkJCWNhc2Ug UlRFX1JFTEFUSU9OOgorCQkJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgogCQkJCQlhZGRfb2JqZWN0 X2FkZHJlc3MoUmVsYXRpb25SZWxhdGlvbklkLCBydGUtPnJlbGlkLCAwLAogCQkJCQkJCQkJICAg Y29udGV4dC0+YWRkcnMpOwogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3Jt YXRpb25fc2NoZW1hLnNxbAppbmRleCA3NmM3OGMwZDE4NC4uZDZiMDhmOTkxMzcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbAorKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKQEAgLTMwMDksMyArMzAwOSwz NjcgQEAgQ1JFQVRFIFZJRVcgdXNlcl9tYXBwaW5ncyBBUwogICAgIEZST00gX3BnX3VzZXJfbWFw cGluZ3M7CiAKIEdSQU5UIFNFTEVDVCBPTiB1c2VyX21hcHBpbmdzIFRPIFBVQkxJQzsKKworCist LSBTUUwvUEdRIHZpZXdzOyB0aGVzZSB1c2Ugc2VjdGlvbiBudW1iZXJzIGZyb20gcGFydCAxNiBv ZiB0aGUgc3RhbmRhcmQuCisKKy8qCisgKiAxNS4yCisgKiBQR19ERUZJTkVEX0xBQkVMX1NFVFMg dmlldworICovCisKKy0tIFRPRE8KKworCisvKgorICogMTUuMworICogUEdfREVGSU5FRF9MQUJF TF9TRVRfTEFCRUxTIHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAqIDE1LjQKKyAqIFBH X0VER0VfREVGSU5FRF9MQUJFTF9TRVRTIHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAq IDE1LjUKKyAqIFBHX0VER0VfVEFCTEVfQ09NUE9ORU5UUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJ RVcgcGdfZWRnZV90YWJsZV9jb21wb25lbnRzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9k YXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAor ICAgICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0 eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRp ZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChlZy5wZ2VhbGlh cyBBUyBzcWxfaWRlbnRpZmllcikgQVMgZWRnZV90YWJsZV9hbGlhcywKKyAgICAgICAgICAgQ0FT VCh2LnBnZWFsaWFzIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB2ZXJ0ZXhfdGFibGVfYWxpYXMsCisg ICAgICAgICAgIENBU1QoQ0FTRSBlZy5lbmQgV0hFTiAnc3JjJyBUSEVOICdTT1VSQ0UnIFdIRU4g J2Rlc3QnIFRIRU4gJ0RFU1RJTkFUSU9OJyBFTkQgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIGVkZ2Vf ZW5kLAorICAgICAgICAgICBDQVNUKGFlLmF0dG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGVk Z2VfdGFibGVfY29sdW1uX25hbWUsCisgICAgICAgICAgIENBU1QoYXYuYXR0bmFtZSBBUyBzcWxf aWRlbnRpZmllcikgQVMgdmVydGV4X3RhYmxlX2NvbHVtbl9uYW1lLAorICAgICAgICAgICBDQVNU KChlZy5lZ2tleSkubiBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG9yZGluYWxfcG9zaXRpb24KKyAg ICBGUk9NIHBnX25hbWVzcGFjZSBucGcKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1Qg KiBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbGtpbmQgPSAnZycpIEFTIHBnCisgICAgICAgICAgIE9O IG5wZy5vaWQgPSBwZy5yZWxuYW1lc3BhY2UKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxF Q1QgcGdlcGdpZCwgcGdlYWxpYXMsIHBnZXJlbGlkLCAnc3JjJyBBUyBlbmQsIHBnZXNyY3ZlcnRl eGlkIEFTIHZlcnRleGlkLCBfcGdfZXhwYW5kYXJyYXkocGdlc3Jja2V5KSBBUyBlZ2tleSwgX3Bn X2V4cGFuZGFycmF5KHBnZXNyY3JlZikgQVMgZWdyZWYgRlJPTSBwZ19wcm9wZ3JhcGhfZWxlbWVu dCBXSEVSRSBwZ2VraW5kID0gJ2UnCisgICAgICAgICAgVU5JT04gQUxMCisgICAgICAgICAgU0VM RUNUIHBnZXBnaWQsIHBnZWFsaWFzLCBwZ2VyZWxpZCwgJ2Rlc3QnIEFTIGVuZCwgcGdlZGVzdHZl cnRleGlkIEFTIHZlcnRleGlkLCBfcGdfZXhwYW5kYXJyYXkocGdlZGVzdGtleSkgQVMgZWdrZXks IF9wZ19leHBhbmRhcnJheShwZ2VkZXN0cmVmKSBBUyBlZ3JlZiBGUk9NIHBnX3Byb3BncmFwaF9l bGVtZW50IFdIRVJFIHBnZWtpbmQgPSAnZScKKyAgICAgICAgICkgQVMgZWcKKyAgICAgICAgICAg T04gcGcub2lkID0gZWcucGdlcGdpZAorICAgICAgICAgSk9JTgorICAgICAgICAgKFNFTEVDVCAq IEZST00gcGdfcHJvcGdyYXBoX2VsZW1lbnQgV0hFUkUgcGdla2luZCA9ICd2JykgQVMgdgorICAg ICAgICAgICBPTiBlZy52ZXJ0ZXhpZCA9IHYub2lkCisgICAgICAgICBKT0lOCisgICAgICAgICAo U0VMRUNUICogRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMgYWUK KyAgICAgICAgICAgT04gZWcucGdlcmVsaWQgPSBhZS5hdHRyZWxpZCBBTkQgKGVnLmVna2V5KS54 ID0gYWUuYXR0bnVtCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUICogRlJPTSBwZ19h dHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMgYXYKKyAgICAgICAgICAgT04gdi5w Z2VyZWxpZCA9IGF2LmF0dHJlbGlkIEFORCAoZWcuZWdyZWYpLnggPSBhdi5hdHRudW0KKyAgICBX SEVSRSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkKKyAgICAgICAgICBBTkQg KHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFz X3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBw Z19lZGdlX3RhYmxlX2NvbXBvbmVudHMgVE8gUFVCTElDOworCisKKy8qCisgKiAxNS42CisgKiBQ R19FREdFX1RSSVBMRVRTIHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAqIDE1LjcKKyAq IFBHX0VMRU1FTlRfVEFCTEVfS0VZX0NPTFVNTlMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBn X2VsZW1lbnRfdGFibGVfa2V5X2NvbHVtbnMgQVMKKyAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2Rh dGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisg ICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5 X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKHBnZWFsaWFzIEFT IHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAorICAgICAgICAgICBDQVNU KGEuYXR0bmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sdW1uX25hbWUsCisgICAgICAgICAg IENBU1QoKGVsLmVrZXkpLm4gQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBvcmRpbmFsX3Bvc2l0aW9u CisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbnBnCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VM RUNUICogRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxraW5kID0gJ2cnKSBBUyBwZworICAgICAgICAg ICBPTiBucGcub2lkID0gcGcucmVsbmFtZXNwYWNlCisgICAgICAgICBKT0lOCisgICAgICAgICAo U0VMRUNUIHBnZXBnaWQsIHBnZWFsaWFzLCBwZ2VyZWxpZCwgX3BnX2V4cGFuZGFycmF5KHBnZWtl eSkgQVMgZWtleSBGUk9NIHBnX3Byb3BncmFwaF9lbGVtZW50KSBBUyBlbAorICAgICAgICAgICBP TiBwZy5vaWQgPSBlbC5wZ2VwZ2lkCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUICog RlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMgYQorICAgICAgICAg ICBPTiBlbC5wZ2VyZWxpZCA9IGEuYXR0cmVsaWQgQU5EIChlbC5la2V5KS54ID0gYS5hdHRudW0K KyAgICBXSEVSRSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkKKyAgICAgICAg ICBBTkQgKHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAg T1IgaGFzX3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVD VCBPTiBwZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIFRPIFBVQkxJQzsKKworCisvKgorICog MTUuOAorICogUEdfRUxFTUVOVF9UQUJMRV9MQUJFTFMgdmlldworICovCisKK0NSRUFURSBWSUVX IHBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRh YmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAg ICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9n cmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmll cikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChlLnBnZWFsaWFzIEFT IHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAorICAgICAgICAgICBDQVNU KGwucGdsbGFiZWwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGxhYmVsX25hbWUKKyAgICBGUk9NIHBn X25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3JhcGhfZWxlbWVudCBlLCBwZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbCwgcGdfcHJvcGdyYXBoX2xhYmVsIGwKKyAgICBXSEVS RSBwZy5yZWxuYW1lc3BhY2UgPSBucGcub2lkCisgICAgICAgICAgQU5EIGUucGdlcGdpZCA9IHBn Lm9pZAorICAgICAgICAgIEFORCBlbC5wZ2VsZWxpZCA9IGUub2lkCisgICAgICAgICAgQU5EIGVs LnBnZWxsYWJlbGlkID0gbC5vaWQKKyAgICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJworICAg ICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAgICAg ICAgIEFORCAocGdfaGFzX3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAg ICBPUiBoYXNfdGFibGVfcHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VM RUNUIE9OIHBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUu OQorICogUEdfRUxFTUVOVF9UQUJMRV9QUk9QRVJUSUVTIHZpZXcKKyAqLworCitDUkVBVEUgVklF VyBwZ19lbGVtZW50X3RhYmxlX3Byb3BlcnRpZXMgQVMKKyAgICBTRUxFQ1QgRElTVElOQ1QKKyAg ICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHBy b3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChw Zy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAg ICAgICAgICBDQVNUKGUucGdlYWxpYXMgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGVsZW1lbnRfdGFi bGVfYWxpYXMsCisgICAgICAgICAgIENBU1QocHIucGdwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikg QVMgcHJvcGVydHlfbmFtZSwKKyAgICAgICAgICAgQ0FTVChwZ19nZXRfZXhwcihwbHAucGxwZXhw ciwgZS5wZ2VyZWxpZCkgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIHByb3BlcnR5X2V4cHJlc3Npb24K KyAgICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3JhcGhfZWxl bWVudCBlLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbCwgcGdfcHJvcGdyYXBoX2xhYmVs X3Byb3BlcnR5IHBscCwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHByCisgICAgV0hFUkUgcGcucmVs bmFtZXNwYWNlID0gbnBnLm9pZAorICAgICAgICAgIEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAg ICAgICAgICBBTkQgZWwucGdlbGVsaWQgPSBlLm9pZAorICAgICAgICAgIEFORCBwbHAucGxwZWxs YWJlbGlkID0gZWwub2lkCisgICAgICAgICAgQU5EIHByLm9pZCA9IHBscC5wbHBwcm9waWQKKyAg ICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJworICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290 aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUocGcu cmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVfcHJpdmlsZWdl KHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHBnX2VsZW1lbnRfdGFibGVf cHJvcGVydGllcyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjEwCisgKiBQR19FTEVNRU5UX1RB QkxFUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfZWxlbWVudF90YWJsZXMgQVMKKyAgICBT RUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3Bl cnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChwZy5y ZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAg ICAgICBDQVNUKGUucGdlYWxpYXMgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGVsZW1lbnRfdGFibGVf YWxpYXMsCisgICAgICAgICAgIENBU1QoQ0FTRSBlLnBnZWtpbmQgV0hFTiAnZScgVEhFTiAnRURH RScgV0hFTiAndicgVEhFTiAnVkVSVEVYJyBFTkQgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIGVsZW1l bnRfdGFibGVfa2luZCwKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHRhYmxlX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnQubnNwbmFt ZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdGFibGVfc2NoZW1hLAorICAgICAgICAgICBDQVNUKHQu cmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdGFibGVfbmFtZSwKKyAgICAgICAgICAgQ0FT VChOVUxMIEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBlbGVtZW50X3RhYmxlX2RlZmluaXRpb24KKyAg ICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3JhcGhfZWxlbWVu dCBlLCBwZ19jbGFzcyB0LCBwZ19uYW1lc3BhY2UgbnQKKyAgICBXSEVSRSBwZy5yZWxuYW1lc3Bh Y2UgPSBucGcub2lkCisgICAgICAgICAgQU5EIGUucGdlcGdpZCA9IHBnLm9pZAorICAgICAgICAg IEFORCBlLnBnZXJlbGlkID0gdC5vaWQKKyAgICAgICAgICBBTkQgdC5yZWxuYW1lc3BhY2UgPSBu dC5vaWQKKyAgICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJworICAgICAgICAgIEFORCAoTk9U IHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAgICAgICAgIEFORCAocGdfaGFz X3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVf cHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHBnX2VsZW1l bnRfdGFibGVzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTEKKyAqIFBHX0xBQkVMX1BST1BF UlRJRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2xhYmVsX3Byb3BlcnRpZXMgQVMKKyAg ICBTRUxFQ1QgRElTVElOQ1QKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMg c3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENB U1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVt YSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9w ZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKGwucGdsbGFiZWwgQVMgc3FsX2lkZW50 aWZpZXIpIEFTIGxhYmVsX25hbWUsCisgICAgICAgICAgIENBU1QocHIucGdwbmFtZSBBUyBzcWxf aWRlbnRpZmllcikgQVMgcHJvcGVydHlfbmFtZQorICAgIEZST00gcGdfbmFtZXNwYWNlIG5wZywg cGdfY2xhc3MgcGcsIHBnX3Byb3BncmFwaF9lbGVtZW50IGUsIHBnX3Byb3BncmFwaF9sYWJlbCBs LCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbCwgcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3Bl cnR5IHBscCwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHByCisgICAgV0hFUkUgcGcucmVsbmFtZXNw YWNlID0gbnBnLm9pZAorICAgICAgICAgIEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAgICAgICAg ICBBTkQgZWwucGdlbGVsaWQgPSBlLm9pZAorICAgICAgICAgIEFORCBwbHAucGxwZWxsYWJlbGlk ID0gZWwub2lkCisgICAgICAgICAgQU5EIHByLm9pZCA9IHBscC5wbHBwcm9waWQKKyAgICAgICAg ICBBTkQgZWwucGdlbGxhYmVsaWQgPSBsLm9pZAorICAgICAgICAgIEFORCBwZy5yZWxraW5kID0g J2cnCisgICAgICAgICAgQU5EIChOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkp CisgICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAg ICAgICAgICAgIE9SIGhhc190YWJsZV9wcml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitH UkFOVCBTRUxFQ1QgT04gcGdfbGFiZWxfcHJvcGVydGllcyBUTyBQVUJMSUM7CisKKworLyoKKyAq IDE1LjEyCisgKiBQR19MQUJFTFMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2xhYmVscyBB UworICAgIFNFTEVDVCBDQVNUKGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikg QVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChucGcubnNwbmFtZSBB UyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfc2NoZW1hLAorICAgICAgICAgICBD QVNUKHBnLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX25hbWUs CisgICAgICAgICAgIENBU1QobC5wZ2xsYWJlbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgbGFiZWxf bmFtZQorICAgIEZST00gcGdfbmFtZXNwYWNlIG5wZywgcGdfY2xhc3MgcGcsIHBnX3Byb3BncmFw aF9sYWJlbCBsCisgICAgV0hFUkUgcGcucmVsbmFtZXNwYWNlID0gbnBnLm9pZAorICAgICAgICAg IEFORCBsLnBnbHBnaWQgPSBwZy5vaWQKKyAgICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJwor ICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAg ICAgICAgIEFORCAocGdfaGFzX3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAg ICAgICBPUiBoYXNfdGFibGVfcHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQg U0VMRUNUIE9OIHBnX2xhYmVscyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjEzCisgKiBQR19Q Uk9QRVJUWV9EQVRBX1RZUEVTIHZpZXcKKyAqLworCitDUkVBVEUgVklFVyBwZ19wcm9wZXJ0eV9k YXRhX3R5cGVzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9p ZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5w Zy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEsCisg ICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlf Z3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChwZ3AucGdwbmFtZSBBUyBzcWxfaWRlbnRpZmll cikgQVMgcHJvcGVydHlfbmFtZSwKKworICAgICAgICAgICBDQVNUKAorICAgICAgICAgICAgIENB U0UgV0hFTiB0LnR5cHR5cGUgPSAnZCcgVEhFTgorICAgICAgICAgICAgICAgQ0FTRSBXSEVOIGJ0 LnR5cGVsZW0gPD4gMCBBTkQgYnQudHlwbGVuID0gLTEgVEhFTiAnQVJSQVknCisgICAgICAgICAg ICAgICAgICAgIFdIRU4gbmJ0Lm5zcG5hbWUgPSAncGdfY2F0YWxvZycgVEhFTiBmb3JtYXRfdHlw ZSh0LnR5cGJhc2V0eXBlLCBudWxsKQorICAgICAgICAgICAgICAgICAgICBFTFNFICdVU0VSLURF RklORUQnIEVORAorICAgICAgICAgICAgIEVMU0UKKyAgICAgICAgICAgICAgIENBU0UgV0hFTiB0 LnR5cGVsZW0gPD4gMCBBTkQgdC50eXBsZW4gPSAtMSBUSEVOICdBUlJBWScKKyAgICAgICAgICAg ICAgICAgICAgV0hFTiBudC5uc3BuYW1lID0gJ3BnX2NhdGFsb2cnIFRIRU4gZm9ybWF0X3R5cGUo cGdwLnBncHR5cGlkLCBudWxsKQorICAgICAgICAgICAgICAgICAgICBFTFNFICdVU0VSLURFRklO RUQnIEVORAorICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgIEFTIGNoYXJhY3Rlcl9kYXRh KQorICAgICAgICAgICAgIEFTIGRhdGFfdHlwZSwKKworICAgICAgICAgICBDQVNUKG51bGwgQVMg Y2FyZGluYWxfbnVtYmVyKSBBUyBjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGgsCisgICAgICAgICAg IENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIGNoYXJhY3Rlcl9vY3RldF9sZW5ndGgs CisgICAgICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY2hhcmFjdGVyX3Nl dF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNo YXJhY3Rlcl9zZXRfc2NoZW1hLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZp ZXIpIEFTIGNoYXJhY3Rlcl9zZXRfbmFtZSwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9p ZGVudGlmaWVyKSBBUyBjb2xsYXRpb25fY2F0YWxvZywgLS0gRklYTUUKKyAgICAgICAgICAgQ0FT VChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb2xsYXRpb25fc2NoZW1hLCAtLSBGSVhNRQor ICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9uYW1l LCAtLSBGSVhNRQorICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBu dW1lcmljX3ByZWNpc2lvbiwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJl cikgQVMgbnVtZXJpY19wcmVjaXNpb25fcmFkaXgsCisgICAgICAgICAgIENBU1QobnVsbCBBUyBj YXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNfc2NhbGUsCisgICAgICAgICAgIENBU1QobnVsbCBB UyBjYXJkaW5hbF9udW1iZXIpIEFTIGRhdGV0aW1lX3ByZWNpc2lvbiwKKyAgICAgICAgICAgQ0FT VChudWxsIEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBpbnRlcnZhbF90eXBlLAorICAgICAgICAgICBD QVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBpbnRlcnZhbF9wcmVjaXNpb24sCisKKyAg ICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHVz ZXJfZGVmaW5lZF90eXBlX2NhdGFsb2csCisgICAgICAgICAgIENBU1QoY29hbGVzY2UobmJ0Lm5z cG5hbWUsIG50Lm5zcG5hbWUpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB1c2VyX2RlZmluZWRfdHlw ZV9zY2hlbWEsCisgICAgICAgICAgIENBU1QoY29hbGVzY2UoYnQudHlwbmFtZSwgdC50eXBuYW1l KSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdXNlcl9kZWZpbmVkX3R5cGVfbmFtZSwKKworICAgICAg ICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHNjb3BlX2NhdGFsb2csCisgICAg ICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgc2NvcGVfc2NoZW1hLAorICAg ICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHNjb3BlX25hbWUsCisKKyAg ICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJlcikgQVMgbWF4aW11bV9jYXJkaW5h bGl0eSwKKyAgICAgICAgICAgQ0FTVChwZ3AucGdwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMg ZHRkX2lkZW50aWZpZXIKKworICAgIEZST00gcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHBncAorICAg ICAgICAgSk9JTiAocGdfY2xhc3MgcGcgSk9JTiBwZ19uYW1lc3BhY2UgbnBnIE9OIChwZy5yZWxu YW1lc3BhY2UgPSBucGcub2lkKSkgT04gcGdwLnBncHBnaWQgPSBwZy5vaWQKKyAgICAgICAgIEpP SU4gKHBnX3R5cGUgdCBKT0lOIHBnX25hbWVzcGFjZSBudCBPTiAodC50eXBuYW1lc3BhY2UgPSBu dC5vaWQpKSBPTiBwZ3AucGdwdHlwaWQgPSB0Lm9pZAorICAgICAgICAgTEVGVCBKT0lOIChwZ190 eXBlIGJ0IEpPSU4gcGdfbmFtZXNwYWNlIG5idCBPTiAoYnQudHlwbmFtZXNwYWNlID0gbmJ0Lm9p ZCkpCisgICAgICAgICAgIE9OICh0LnR5cHR5cGUgPSAnZCcgQU5EIHQudHlwYmFzZXR5cGUgPSBi dC5vaWQpCisKKyAgICBXSEVSRSBwZy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5EIChOT1Qg cGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19oYXNf cm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJsZV9w cml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdfcHJvcGVy dHlfZGF0YV90eXBlcyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjE0CisgKiBQR19QUk9QRVJU WV9HUkFQSF9QUklWSUxFR0VTIHZpZXcKKyAqLworCitDUkVBVEUgVklFVyBwZ19wcm9wZXJ0eV9n cmFwaF9wcml2aWxlZ2VzIEFTCisgICAgU0VMRUNUIENBU1QodV9ncmFudG9yLnJvbG5hbWUgQVMg c3FsX2lkZW50aWZpZXIpIEFTIGdyYW50b3IsCisgICAgICAgICAgIENBU1QoZ3JhbnRlZS5yb2xu YW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBncmFudGVlLAorICAgICAgICAgICBDQVNUKGN1cnJl bnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxv ZywKKyAgICAgICAgICAgQ0FTVChuYy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9w ZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QoYy5yZWxuYW1lIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKGMucHJ0eXBl IEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBwcml2aWxlZ2VfdHlwZSwKKyAgICAgICAgICAgQ0FTVCgK KyAgICAgICAgICAgICBDQVNFIFdIRU4KKyAgICAgICAgICAgICAgICAgIC0tIG9iamVjdCBvd25l ciBhbHdheXMgaGFzIGdyYW50IG9wdGlvbnMKKyAgICAgICAgICAgICAgICAgIHBnX2hhc19yb2xl KGdyYW50ZWUub2lkLCBjLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgICAgT1Ig Yy5ncmFudGFibGUKKyAgICAgICAgICAgICAgICAgIFRIRU4gJ1lFUycgRUxTRSAnTk8nIEVORCBB UyB5ZXNfb3Jfbm8pIEFTIGlzX2dyYW50YWJsZQorCisgICAgRlJPTSAoCisgICAgICAgICAgICBT RUxFQ1Qgb2lkLCByZWxuYW1lLCByZWxuYW1lc3BhY2UsIHJlbGtpbmQsIHJlbG93bmVyLCAoYWNs ZXhwbG9kZShjb2FsZXNjZShyZWxhY2wsIGFjbGRlZmF1bHQoJ3InLCByZWxvd25lcikpKSkuKiBG Uk9NIHBnX2NsYXNzCisgICAgICAgICApIEFTIGMgKG9pZCwgcmVsbmFtZSwgcmVsbmFtZXNwYWNl LCByZWxraW5kLCByZWxvd25lciwgZ3JhbnRvciwgZ3JhbnRlZSwgcHJ0eXBlLCBncmFudGFibGUp LAorICAgICAgICAgcGdfbmFtZXNwYWNlIG5jLAorICAgICAgICAgcGdfYXV0aGlkIHVfZ3JhbnRv ciwKKyAgICAgICAgICgKKyAgICAgICAgICAgU0VMRUNUIG9pZCwgcm9sbmFtZSBGUk9NIHBnX2F1 dGhpZAorICAgICAgICAgICBVTklPTiBBTEwKKyAgICAgICAgICAgU0VMRUNUIDA6Om9pZCwgJ1BV QkxJQycKKyAgICAgICAgICkgQVMgZ3JhbnRlZSAob2lkLCByb2xuYW1lKQorCisgICAgV0hFUkUg Yy5yZWxuYW1lc3BhY2UgPSBuYy5vaWQKKyAgICAgICAgICBBTkQgYy5yZWxraW5kIElOICgnZycp CisgICAgICAgICAgQU5EIGMuZ3JhbnRlZSA9IGdyYW50ZWUub2lkCisgICAgICAgICAgQU5EIGMu Z3JhbnRvciA9IHVfZ3JhbnRvci5vaWQKKyAgICAgICAgICBBTkQgYy5wcnR5cGUgSU4gKCdTRUxF Q1QnKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUodV9ncmFudG9yLm9pZCwgJ1VTQUdFJykK KyAgICAgICAgICAgICAgIE9SIHBnX2hhc19yb2xlKGdyYW50ZWUub2lkLCAnVVNBR0UnKQorICAg ICAgICAgICAgICAgT1IgZ3JhbnRlZS5yb2xuYW1lID0gJ1BVQkxJQycpOworCitHUkFOVCBTRUxF Q1QgT04gcGdfcHJvcGVydHlfZ3JhcGhfcHJpdmlsZWdlcyBUTyBQVUJMSUM7CisKKworLyoKKyAq IDE1LjE1CisgKiBQR19WRVJURVhfREVGSU5FRF9MQUJFTF9TRVRTIHZpZXcKKyAqLworCistLSBU T0RPCisKKworLyoKKyAqIDE1LjE2CisgKiBQUk9QRVJUWV9HUkFQSFMgdmlldworICovCisKK0NS RUFURSBWSUVXIHByb3BlcnR5X2dyYXBocyBBUworICAgIFNFTEVDVCBDQVNUKGN1cnJlbnRfZGF0 YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZywKKyAg ICAgICAgICAgQ0FTVChuYy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9n cmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QoYy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVy KSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lCisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbmMsIHBnX2Ns YXNzIGMKKyAgICBXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG5jLm9pZAorICAgICAgICAgIEFORCBj LnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVt YShuYy5vaWQpKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUoYy5yZWxvd25lciwgJ1VTQUdF JykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJsZV9wcml2aWxlZ2UoYy5vaWQsICdTRUxFQ1Qn KSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwcm9wZXJ0eV9ncmFwaHMgVE8gUFVCTElDOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA3NTIwYTk4MjE1MS4uNTUzMzBlZDE1OTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC00Nyw2ICs0NywxMSBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcGFyYW1ldGVyX2FjbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9s aWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9wZ3JhcGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2Vs ZW1lbnRfbGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIgpAQCAtMzcwLDYg KzM3NSw3NiBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5 W10gPQogCQlPQkpFQ1RfT1BGQU1JTFksCiAJCXRydWUKIAl9LAorCXsKKwkJInByb3BlcnR5IGdy YXBoIGVsZW1lbnQiLAorCQlQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwKKwkJUHJvcGdyYXBo RWxlbWVudE9iamVjdEluZGV4SWQsCisJCVBST1BHUkFQSEVMT0lELAorCQlQUk9QR1JBUEhFTEFM SUFTLAorCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X29pZCwKKwkJQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VhbGlhcywKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRy TnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJ CSJwcm9wZXJ0eSBncmFwaCBlbGVtZW50IGxhYmVsIiwKKwkJUHJvcGdyYXBoRWxlbWVudExhYmVs UmVsYXRpb25JZCwKKwkJUHJvcGdyYXBoRWxlbWVudExhYmVsT2JqZWN0SW5kZXhJZCwKKwkJLTEs CisJCS0xLAorCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwKKwkJSW52YWxp ZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJeworCQkicHJvcGVy dHkgZ3JhcGggbGFiZWwiLAorCQlQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQsCisJCVByb3BncmFw aExhYmVsT2JqZWN0SW5kZXhJZCwKKwkJUFJPUEdSQVBITEFCRUxPSUQsCisJCVBST1BHUkFQSExB QkVMTkFNRSwKKwkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLAorCQlBbnVtX3BnX3Byb3Bn cmFwaF9sYWJlbF9wZ2xsYWJlbCwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRy TnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJ CSJwcm9wZXJ0eSBncmFwaCBsYWJlbCBwcm9wZXJ0eSIsCisJCVByb3BncmFwaExhYmVsUHJvcGVy dHlSZWxhdGlvbklkLAorCQlQcm9wZ3JhcGhMYWJlbFByb3BlcnR5T2JqZWN0SW5kZXhJZCwKKwkJ LTEsCisJCS0xLAorCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9vaWQsCisJCUlu dmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1i ZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQktMSwKKwkJZmFsc2UKKwl9LAorCXsKKwkJInBy b3BlcnR5IGdyYXBoIHByb3BlcnR5IiwKKwkJUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLAor CQlQcm9wZ3JhcGhQcm9wZXJ0eU9iamVjdEluZGV4SWQsCisJCS0xLAorCQlQUk9QR1JBUEhQUk9Q TkFNRSwKKwkJQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkLAorCQlBbnVtX3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eV9wZ3BuYW1lLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0 dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQktMSwKKwkJZmFsc2UKKwl9LAogCXsK IAkJInJvbGUiLAogCQlBdXRoSWRSZWxhdGlvbklkLApAQCAtNjc5LDYgKzc1NCw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiZm9yZWlnbiB0YWJsZSIsIE9C SkVDVF9GT1JFSUdOX1RBQkxFCiAJfSwKKwl7CisJCSJwcm9wZXJ0eSBncmFwaCIsIE9CSkVDVF9Q Uk9QR1JBUEgKKwl9LAogCXsKIAkJInRhYmxlIGNvbHVtbiIsIE9CSkVDVF9DT0xVTU4KIAl9LApA QCAtODE0LDYgKzg5MiwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAog CXsKIAkJInBvbGljeSIsIE9CSkVDVF9QT0xJQ1kKIAl9LAorCXsKKwkJInByb3BlcnR5IGdyYXBo IGVsZW1lbnQiLCAtMQorCX0sCisJeworCQkicHJvcGVydHkgZ3JhcGggbGFiZWwiLCAtMQorCX0s CisJeworCQkicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLCAtMQorCX0sCiAJewogCQkicHVibGlj YXRpb24iLCBPQkpFQ1RfUFVCTElDQVRJT04KIAl9LApAQCAtOTQ5LDYgKzEwMzYsNyBAQCBnZXRf b2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQljYXNl IE9CSkVDVF9WSUVXOgogCQkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKIAkJCWNhc2UgT0JKRUNUX0ZP UkVJR05fVEFCTEU6CisJCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCQkJYWRkcmVzcyA9CiAJ CQkJCWdldF9yZWxhdGlvbl9ieV9xdWFsaWZpZWRfbmFtZShvYmp0eXBlLCBjYXN0Tm9kZShMaXN0 LCBvYmplY3QpLAogCQkJCQkJCQkJCQkJICAgJnJlbGF0aW9uLCBsb2NrbW9kZSwKQEAgLTEzNjEs NiArMTQ0OSwxMyBAQCBnZXRfcmVsYXRpb25fYnlfcXVhbGlmaWVkX25hbWUoT2JqZWN0VHlwZSBv Ymp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGFuIGlu ZGV4IiwKIAkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSkpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJCWlmIChyZWxhdGlvbi0+cmRfcmVs LT5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJCSBlcnJtc2coIlwi JXNcIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSkpKTsKKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9TRVFVRU5DRToK IAkJCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfU0VRVUVOQ0UpCiAJ CQkJZXJlcG9ydChFUlJPUiwKQEAgLTIyNzYsNiArMjM3MSw3IEBAIHBnX2dldF9vYmplY3RfYWRk cmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgogCQljYXNlIE9C SkVDVF9JTkRFWDoKIAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKKwkJY2FzZSBPQkpFQ1Rf UFJPUEdSQVBIOgogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVU RToKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgpAQCAtMjM5NSw2ICsyNDkxLDcgQEAgY2hlY2tf b2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFk ZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJY2FzZSBPQkpFQ1RfTUFUVklF VzoKIAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBI OgogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX1JVTEU6CiAJCWNhc2UgT0JK RUNUX1RSSUdHRVI6CkBAIC0zOTI1LDYgKzQwMjIsMTgyIEBAIGdldE9iamVjdERlc2NyaXB0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFr OwogCQkJfQogCisJCWNhc2UgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQ6CisJCQl7CisJCQkJ SGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IHBnZWZvcm07CisK KwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIRUxPSUQsIE9iamVjdElkR2V0RGF0 dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGgg ZWxlbWVudCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQlwZ2Vmb3JtID0g KEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKHBn ZWZvcm0tPnBnZWtpbmQgPT0gUEdFS0lORF9WRVJURVgpCisJCQkJCS8qIHRyYW5zbGF0b3I6IGZv bGxvd2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMiICovCisJCQkJCWFwcGVuZFN0cmlu Z0luZm8oJmJ1ZmZlciwgXygidmVydGV4ICVzIG9mICIpLCBOYW1lU3RyKHBnZWZvcm0tPnBnZWFs aWFzKSk7CisJCQkJZWxzZSBpZiAocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX0VER0UpCisJ CQkJCS8qIHRyYW5zbGF0b3I6IGZvbGxvd2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMi ICovCisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygiZWRnZSAlcyBvZiAiKSwgTmFt ZVN0cihwZ2Vmb3JtLT5wZ2VhbGlhcykpOworCQkJCWVsc2UKKwkJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmZmVyLCAiPz8/IGVsZW1lbnQgJXMgb2YgIiwgTmFtZVN0cihwZ2Vmb3JtLT5wZ2VhbGlh cykpOworCQkJCWdldFJlbGF0aW9uRGVzY3JpcHRpb24oJmJ1ZmZlciwgcGdlZm9ybS0+cGdlcGdp ZCwgZmFsc2UpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9 CisKKwkJY2FzZSBQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkOgorCQkJeworCQkJCVJl bGF0aW9uCXJlbDsKKwkJCQlTeXNTY2FuRGVzYyBzY2FuOworCQkJCVNjYW5LZXlEYXRhIGtleVsx XTsKKwkJCQlIZWFwVHVwbGUJdHVwbGU7CisJCQkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9s YWJlbCBwZ2VsZm9ybTsKKwkJCQlPYmplY3RBZGRyZXNzIG9hOworCisJCQkJcmVsID0gdGFibGVf b3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwor CQkJCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVu dF9sYWJlbF9vaWQsCisJCQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJ CQkJCU9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCisJCQkJc2NhbiA9IHN5 c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbE9iamVjdEluZGV4SWQs IHRydWUsIE5VTEwsIDEsIGtleSk7CisJCQkJdHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4p OworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQkJeworCQkJCQlpZiAoIW1p c3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGZpbmQgdHVwbGUgZm9yIGVs ZW1lbnQgbGFiZWwgJXUiLCBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCQlzeXN0YWJsZV9lbmRz Y2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJ CWJyZWFrOworCQkJCX0KKworCQkJCXBnZWxmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZm ZXIsIF8oImxhYmVsICVzIG9mICIpLCBnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUocGdlbGZvcm0t PnBnZWxsYWJlbGlkKSk7CisJCQkJT2JqZWN0QWRkcmVzc1NldChvYSwgUHJvcGdyYXBoRWxlbWVu dFJlbGF0aW9uSWQsIHBnZWxmb3JtLT5wZ2VsZWxpZCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmYnVmZmVyLCBnZXRPYmplY3REZXNjcmlwdGlvbigmb2EsIGZhbHNlKSk7CisKKwkJCQlz eXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIFByb3BncmFwaExhYmVsUmVsYXRpb25J ZDoKKwkJCXsKKwkJCQlSZWxhdGlvbglyZWw7CisJCQkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJCQlT Y2FuS2V5RGF0YSBrZXlbMV07CisJCQkJSGVhcFR1cGxlCXR1cGxlOworCQkJCUZvcm1fcGdfcHJv cGdyYXBoX2xhYmVsIHBnbGZvcm07CisKKwkJCQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExh YmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQlTY2FuS2V5SW5pdCgma2V5WzBd LAorCQkJCQkJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJCQkJCQlCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisKKwkJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdyYXBo TGFiZWxPYmplY3RJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkpOworCQkJCXR1cGxlID0gc3lz dGFibGVfZ2V0bmV4dChzY2FuKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQor CQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5v dCBmaW5kIHR1cGxlIGZvciBsYWJlbCAldSIsIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJCXN5 c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJcGdsZm9ybSA9IChGb3JtX3BnX3Byb3Bn cmFwaF9sYWJlbCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQkJCS8qIHRyYW5zbGF0b3I6IGZvbGxv d2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMiICovCisJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmZmVyLCBfKCJsYWJlbCAlcyBvZiAiKSwgTmFtZVN0cihwZ2xmb3JtLT5wZ2xsYWJlbCkp OworCQkJCWdldFJlbGF0aW9uRGVzY3JpcHRpb24oJmJ1ZmZlciwgcGdsZm9ybS0+cGdscGdpZCwg ZmFsc2UpOworCisJCQkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQl0YWJsZV9jbG9zZShy ZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBQcm9wZ3Jh cGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZDoKKwkJCXsKKwkJCQlSZWxhdGlvbglyZWw7CisJCQkJ U3lzU2NhbkRlc2Mgc2NhbjsKKwkJCQlTY2FuS2V5RGF0YSBrZXlbMV07CisJCQkJSGVhcFR1cGxl CXR1cGxlOworCQkJCUZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IHBscGZvcm07CisJ CQkJT2JqZWN0QWRkcmVzcyBvYTsKKworCQkJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoTGFi ZWxQcm9wZXJ0eVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJU2NhbktleUluaXQo JmtleVswXSwKKwkJCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9vaWQsCisJ CQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCU9iamVjdElkR2V0 RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCisJCQkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nh bihyZWwsIFByb3BncmFwaExhYmVsUHJvcGVydHlPYmplY3RJbmRleElkLCB0cnVlLCBOVUxMLCAx LCBrZXkpOworCQkJCXR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKTsKKwkJCQlpZiAoIUhl YXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJ CQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBmaW5kIHR1cGxlIGZvciBsYWJlbCBwcm9wZXJ0eSAl dSIsIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJ CQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJ fQorCisJCQkJcGxwZm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSkgR0VU U1RSVUNUKHR1cGxlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygicHJvcGVy dHkgJXMgb2YgIiksIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShwbHBmb3JtLT5wbHBwcm9w aWQpKTsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9hLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxh dGlvbklkLCBwbHBmb3JtLT5wbHBlbGxhYmVsaWQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmJ1ZmZlciwgZ2V0T2JqZWN0RGVzY3JpcHRpb24oJm9hLCBmYWxzZSkpOworCisJCQkJc3lz dGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9j ayk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBQcm9wZ3JhcGhQcm9wZXJ0eVJlbGF0aW9u SWQ6CisJCQl7CisJCQkJUmVsYXRpb24JcmVsOworCQkJCVN5c1NjYW5EZXNjIHNjYW47CisJCQkJ U2NhbktleURhdGEga2V5WzFdOworCQkJCUhlYXBUdXBsZQl0dXBsZTsKKwkJCQlGb3JtX3BnX3By b3BncmFwaF9wcm9wZXJ0eSBwZ3Bmb3JtOworCisJCQkJcmVsID0gdGFibGVfb3BlbihQcm9wZ3Jh cGhQcm9wZXJ0eVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJU2NhbktleUluaXQo JmtleVswXSwKKwkJCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQsCisJCQkJCQkJ QlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCU9iamVjdElkR2V0RGF0dW0o b2JqZWN0LT5vYmplY3RJZCkpOworCisJCQkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWws IFByb3BncmFwaFByb3BlcnR5T2JqZWN0SW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwga2V5KTsKKwkJ CQl0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbik7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHR1cGxlKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJS T1IsICJjb3VsZCBub3QgZmluZCB0dXBsZSBmb3IgcHJvcGVydHkgJXUiLCBvYmplY3QtPm9iamVj dElkKTsKKworCQkJCQlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShy ZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCXBncGZvcm0g PSAoRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJCQkv KiB0cmFuc2xhdG9yOiBmb2xsb3dlZCBieSwgZS5nLiwgInByb3BlcnR5IGdyYXBoICVzIiAqLwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygicHJvcGVydHkgJXMgb2YgIiksIE5hbWVT dHIocGdwZm9ybS0+cGdwbmFtZSkpOworCQkJCWdldFJlbGF0aW9uRGVzY3JpcHRpb24oJmJ1ZmZl ciwgcGdwZm9ybS0+cGdwcGdpZCwgZmFsc2UpOworCisJCQkJc3lzdGFibGVfZW5kc2NhbihzY2Fu KTsKKwkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJYnJlYWs7CisJ CQl9CisKIAkJY2FzZSBQdWJsaWNhdGlvblJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJY2hhcgkgICAq cHVibmFtZSA9IGdldF9wdWJsaWNhdGlvbl9uYW1lKG9iamVjdC0+b2JqZWN0SWQsCkBAIC00MTEw LDYgKzQzODMsMTAgQEAgZ2V0UmVsYXRpb25EZXNjcmlwdGlvbihTdHJpbmdJbmZvIGJ1ZmZlciwg T2lkIHJlbGlkLCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZmZlciwg XygiZm9yZWlnbiB0YWJsZSAlcyIpLAogCQkJCQkJCSByZWxuYW1lKTsKIAkJCWJyZWFrOworCQlj YXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWZmZXIsIF8oInBy b3BlcnR5IGdyYXBoICVzIiksCisJCQkJCQkJIHJlbG5hbWUpOworCQkJYnJlYWs7CiAJCWRlZmF1 bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCWFwcGVuZFN0cmluZ0luZm8oYnVm ZmVyLCBfKCJyZWxhdGlvbiAlcyIpLApAQCAtNDU5OSw2ICs0ODc2LDE4IEBAIGdldE9iamVjdFR5 cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19v aykKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInBvbGljeSIpOwogCQkJYnJl YWs7CiAKKwkJY2FzZSBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoJmJ1ZmZlciwgInByb3BlcnR5IGdyYXBoIGVsZW1lbnQiKTsKKwkJCWJyZWFr OworCisJCWNhc2UgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZygmYnVmZmVyLCAicHJvcGVydHkgZ3JhcGggbGFiZWwiKTsKKwkJCWJyZWFrOworCisJ CWNhc2UgUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmYnVmZmVyLCAicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiKTsKKwkJCWJyZWFrOworCiAJ CWNhc2UgUHVibGljYXRpb25SZWxhdGlvbklkOgogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmZmVyLCAicHVibGljYXRpb24iKTsKIAkJCWJyZWFrOwpAQCAtNDY4MCw2ICs0OTY5LDkgQEAg Z2V0UmVsYXRpb25UeXBlRGVzY3JpcHRpb24oU3RyaW5nSW5mbyBidWZmZXIsIE9pZCByZWxpZCwg aW50MzIgb2JqZWN0U3ViSWQsCiAJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWZmZXIsICJmb3JlaWduIHRhYmxlIik7CiAJCQlicmVhazsK KwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm ZmVyLCAicHJvcGVydHkgZ3JhcGgiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hv dWxkbid0IGdldCBoZXJlICovCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZmZlciwgInJl bGF0aW9uIik7CkBAIC01ODQwLDYgKzYxMzIsMTggQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBQ cm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwg IiV1IFRPRE8iLCBvYmplY3QtPm9iamVjdElkKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUHJvcGdy YXBoTGFiZWxSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXUgVE9E TyIsIG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQcm9wZ3JhcGhQcm9w ZXJ0eVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIldSBUT0RPIiwg b2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIFB1YmxpY2F0aW9uUmVsYXRp b25JZDoKIAkJCXsKIAkJCQljaGFyCSAgICpwdWJuYW1lOwpAQCAtNjE0Niw2ICs2NDUwLDggQEAg Z2V0X3JlbGtpbmRfb2JqdHlwZShjaGFyIHJlbGtpbmQpCiAJCQlyZXR1cm4gT0JKRUNUX01BVFZJ RVc7CiAJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJcmV0dXJuIE9CSkVDVF9GT1JF SUdOX1RBQkxFOworCQljYXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJcmV0dXJuIE9CSkVDVF9Q Uk9QR1JBUEg7CiAJCWNhc2UgUkVMS0lORF9UT0FTVFZBTFVFOgogCQkJcmV0dXJuIE9CSkVDVF9U QUJMRTsKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xh c3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwppbmRleCBlMDViMGJiYjJlMC4u NzQ4ZjA2YjNmZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMKQEAgLTQ1LDYgKzQ1LDggQEAgZXJy ZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZChjaGFyIHJlbGtpbmQpCiAJCQlyZXR1cm4gZXJy ZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0 YWJsZXMuIik7CiAJCWNhc2UgUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWDoKIAkJCXJldHVybiBl cnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBhcnRpdGlvbmVk IGluZGV4ZXMuIik7CisJCWNhc2UgUkVMS0lORF9QUk9QR1JBUEg6CisJCQlyZXR1cm4gZXJyZGV0 YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwcm9wZXJ0eSBncmFwaHMu Iik7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIHJlbGtpbmQ6ICcl YyciLCByZWxraW5kKTsKIAkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zcWxfZmVhdHVyZXMudHh0IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMu dHh0CmluZGV4IGMwMDJmMzcyMDJmLi5iNDlhYWQ1NDFhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3Fs X2ZlYXR1cmVzLnR4dApAQCAtMzQ4LDYgKzM0OCwxMDYgQEAgRjg2NglGRVRDSCBGSVJTVCBjbGF1 c2U6IFBFUkNFTlQgb3B0aW9uCQkJTk8KIEY4NjcJRkVUQ0ggRklSU1QgY2xhdXNlOiBXSVRIIFRJ RVMgb3B0aW9uCQkJWUVTCQogRjg2OAlPUkRFUiBCWSBpbiBncm91cGVkIHRhYmxlCQkJWUVTCQog Rjg2OQlTUUwgaW1wbGVtZW50YXRpb24gaW5mbyBwb3B1bGF0aW9uCQkJWUVTCQorRzAwMAlHcmFw aCBwYXR0ZXJuCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwMDEJUmVwZWF0YWJsZS1lbGVtZW50 cyBtYXRjaCBtb2RlCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwMDIJRGlmZmVyZW50LWVkZ2Vz IG1hdGNoIG1vZGUJCQlOTwkKK0cwMDMJRXhwbGljaXQgUkVQRUFUQUJMRSBFTEVNRU5UUyBrZXl3 b3JkCQkJTk8JCitHMDA0CVBhdGggdmFyaWFibGVzCQkJTk8JCitHMDA1CVBhdGggc2VhcmNoIHBy ZWZpeCBpbiBhIHBhdGggcGF0dGVybgkJCU5PCQorRzAwNglHcmFwaCBwYXR0ZXJuIEtFRVAgY2xh dXNlOiBwYXRoIG1vZGUgcHJlZml4CQkJTk8JCitHMDA3CUdyYXBoIHBhdHRlcm4gS0VFUCBjbGF1 c2U6IHBhdGggc2VhcmNoIHByZWZpeAkJCU5PCQorRzAwOAlHcmFwaCBwYXR0ZXJuIFdIRVJFIGNs YXVzZQkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDEwCUV4cGxpY2l0IFdBTEsga2V5d29yZAkJ CU5PCQorRzAxMQlBZHZhbmNlZCBwYXRoIG1vZGVzOiBUUkFJTAkJCU5PCQorRzAxMglBZHZhbmNl ZCBwYXRoIG1vZGVzOiBTSU1QTEUJCQlOTwkKK0cwMTMJQWR2YW5jZWQgcGF0aCBtb2RlczogQUNZ Q0xJQwkJCU5PCQorRzAxNAlFeHBsaWNpdCBQQVRIL1BBVEhTIGtleXdvcmRzCQkJTk8JCitHMDE1 CUFsbCBwYXRoIHNlYXJjaDogZXhwbGljaXQgQUxMIGtleXdvcmQJCQlOTwkKK0cwMTYJQW55IHBh dGggc2VhcmNoCQkJTk8JCitHMDE3CUFsbCBzaG9ydGVzdCBwYXRoIHNlYXJjaAkJCU5PCQorRzAx OAlBbnkgc2hvcnRlc3QgcGF0aCBzZWFyY2gJCQlOTwkKK0cwMTkJQ291bnRlZCBzaG9ydGVzdCBw YXRoIHNlYXJjaAkJCU5PCQorRzAyMAlDb3VudGVkIHNob3J0ZXN0IGdyb3VwIHNlYXJjaAkJCU5P CQorRzAzMAlQYXRoIG11bHRpc2V0IGFsdGVybmF0aW9uCQkJTk8JCitHMDMxCVBhdGggbXVsdGlz ZXQgYWx0ZXJuYXRpb246IHZhcmlhYmxlIGxlbmd0aCBwYXRoIG9wZXJhbmRzCQkJTk8JCitHMDMy CVBhdGggcGF0dGVybiB1bmlvbgkJCU5PCQorRzAzMwlQYXRoIHBhdHRlcm4gdW5pb246IHZhcmlh YmxlIGxlbmd0aCBwYXRoIG9wZXJhbmRzCQkJTk8JCitHMDM0CVBhdGggY29uY2F0ZW5hdGlvbgkJ CVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDM1CVF1YW50aWZpZWQgcGF0aHMJCQlOTwkKK0cwMzYJ UXVhbnRpZmllZCBlZGdlcwkJCU5PCQorRzAzNwlRdWVzdGlvbmVkIHBhdGhzCQkJTk8JCitHMDM4 CVBhcmVudGhlc2l6ZWQgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb24JCQlOTwkKK0cwMzkJU2ltcGxp ZmllZCBwYXRoIHBhdHRlcm4gZXhwcmVzc2lvbjogZnVsbCBkZWZhdWx0aW5nCQkJTk8JCitHMDQw CVZlcnRleCBwYXR0ZXJuCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwNDEJTm9uLWxvY2FsIGVs ZW1lbnQgcGF0dGVybiBwcmVkaWNhdGVzCQkJTk8JCitHMDQyCUJhc2ljIGZ1bGwgZWRnZSBwYXR0 ZXJucwkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDQzCUNvbXBsZXRlIGZ1bGwgZWRnZSBwYXR0 ZXJucwkJCU5PCQorRzA0NAlCYXNpYyBhYmJyZXZpYXRlZCBlZGdlIHBhdHRlcm5zCQkJWUVTCQor RzA0NQlDb21wbGV0ZSBhYmJyZXZpYXRlZCBlZGdlIHBhdHRlcm5zCQkJTk8JCitHMDQ2CVJlbGF4 ZWQgdG9wb2xvZ2ljYWwgY29uc2lzdGVuY3k6IGFkamFjZW50IHZlcnRleCBwYXR0ZXJucwkJCU5P CQorRzA0NwlSZWxheGVkIHRvcG9sb2dpY2FsIGNvbnNpc3RlbmN5OiBjb25jaXNlIGVkZ2UgcGF0 dGVybnMJCQlOTwkKK0cwNDgJUGFyZW50aGVzaXplZCBwYXRoIHBhdHRlcm46IHN1YnBhdGggdmFy aWFibGUgZGVjbGFyYXRpb24JCQlOTwkKK0cwNDkJUGFyZW50aGVzaXplZCBwYXRoIHBhdHRlcm46 IHBhdGggbW9kZSBwcmVmaXgJCQlOTwkKK0cwNTAJUGFyZW50aGVzaXplZCBwYXRoIHBhdHRlcm46 IFdIRVJFIGNsYXVzZQkJCU5PCQorRzA1MQlQYXJlbnRoZXNpemVkIHBhdGggcGF0dGVybjogbm9u LWxvY2FsIHByZWRpY2F0ZXMJCQlOTwkKK0cwNjAJQm91bmRlZCBncmFwaCBwYXR0ZXJuIHF1YW50 aWZpZXJzCQkJTk8JCitHMDYxCVVuYm91bmRlZCBncmFwaCBwYXR0ZXJuIHF1YW50aWZpZXJzCQkJ Tk8JCitHMDcwCUxhYmVsIGV4cHJlc3Npb246IGxhYmVsIGRpc2p1bmN0aW9uCQkJTk8JU1FML1BH USByZXF1aXJlZAorRzA3MQlMYWJlbCBleHByZXNzaW9uOiBsYWJlbCBjb25qdW5jdGlvbgkJCU5P CQorRzA3MglMYWJlbCBleHByZXNzaW9uOiBsYWJlbCBuZWdhdGlvbgkJCU5PCQorRzA3MwlMYWJl bCBleHByZXNzaW9uOiBpbmRpdmlkdWFsIGxhYmVsIG5hbWUJCQlZRVMJU1FML1BHUSByZXF1aXJl ZAorRzA3NAlMYWJlbCBleHByZXNzaW9uOiB3aWxkY2FyZCBsYWJlbAkJCU5PCQorRzA3NQlQYXJl bnRoZXNpemVkIGxhYmVsIGV4cHJlc3Npb24JCQlOTwkKK0cwODAJU2ltcGxpZmllZCBwYXRoIHBh dHRlcm4gZXhwcmVzc2lvbjogYmFzaWMgZGVmYXVsdGluZwkJCU5PCQorRzA4MQlTaW1wbGlmaWVk IHBhdGggcGF0dGVybiBleHByZXNzaW9uOiBmdWxsIG92ZXJyaWRlcwkJCU5PCQorRzA4MglTaW1w bGlmaWVkIHBhdGggcGF0dGVybiBleHByZXNzaW9uOiBiYXNpYyBvdmVycmlkZXMJCQlOTwkKK0cw OTAJUHJvcGVydHkgcmVmZXJlbmNlCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cxMDAJRUxFTUVO VF9JRCBmdW5jdGlvbgkJCU5PCQorRzExMAlJUyBESVJFQ1RFRCBwcmVkaWNhdGUJCQlOTwkKK0cx MTEJSVMgTEFCRUxFRCBwcmVkaWNhdGUJCQlOTwkKK0cxMTIJSVMgU09VUkNFIGFuZCBJUyBERVNU SU5BVElPTiBwcmVkaWNhdGUJCQlOTwkKK0cxMTMJQUxMX0RJRkZFUkVOVCBwcmVkaWNhdGUJCQlO TwkKK0cxMTQJU0FNRSBwcmVkaWNhdGUJCQlOTwkKK0cxMTUJUFJPUEVSVFlfRVhJU1RTIHByZWRp Y2F0ZQkJCU5PCQorRzEyMAlXaXRoaW4tbWF0Y2ggYWdncmVnYXRlcwkJCU5PCQorRzgwMAlQQVRI X05BTUUgZnVuY3Rpb24JCQlOTwkKK0c4MDEJRUxFTUVOVF9OVU1CRVIgZnVuY3Rpb24JCQlOTwkK K0c4MDIJUEFUSF9MRU5HVEggZnVuY3Rpb24JCQlOTwkKK0c4MDMJTUFUQ0hOVU0gZnVuY3Rpb24J CQlOTwkKK0c4MTAJSVMgQk9VTkQgcHJlZGljYXRlCQkJTk8JCitHODExCUlTIEJPVU5EIHByZWRp Y2F0ZTogQVMgb3B0aW9uCQkJTk8JCitHODIwCUJJTkRJTkdfQ09VTlQJCQlOTwkKK0c4MzAJQ29s b24gaW4gJ2lzIGxhYmVsJyBleHByZXNzaW9uCQkJWUVTCQorRzg0MAlQYXRoLW9yZGVyZWQgYWdn cmVnYXRlcwkJCU5PCQorRzg1MAlTUUwvUEdRIEluZm9ybWF0aW9uIFNjaGVtYSB2aWV3cwkJCVlF UwkKK0c4NjAJR0VUIERJQUdOT1NUSUNTIGVuaGFuY2VtZW50cyBmb3IgU1FMLXByb3BlcnR5IGdy YXBocwkJCU5PCQorRzkwMAlHUkFQSF9UQUJMRQkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHOTAx CUdSQVBIX1RBQkxFOiBPTkUgUk9XIFBFUiBWRVJURVgJCQlOTwkKK0c5MDIJR1JBUEhfVEFCTEU6 IE9ORSBST1cgUEVSIFNURVAJCQlOTwkKK0c5MDMJR1JBUEhfVEFCTEU6IGV4cGxpY2l0IE9ORSBS T1cgUEVSIE1BVENIIGtleXdvcmRzCQkJTk8JCitHOTA0CUFsbCBwcm9wZXJ0aWVzIHJlZmVyZW5j ZQkJCU5PCQorRzkwNQlHUkFQSF9UQUJMRTogb3B0aW9uYWwgQ09MVU1OUyBjbGF1c2UJCQlOTwkK K0c5MDYJR1JBUEhfVEFCTEU6IGV4cGxpY2l0IEVYUE9SVCBBTEwJCQlOTwkKK0c5MDcJR1JBUEhf VEFCTEU6IEVYUE9SVCBBTEwgRVhDRVBUCQkJTk8JCitHOTA4CUdSQVBIX1RBQkxFOiBFWFBPUlQg U0lOR0xFVE9OUyBsaXN0CQkJTk8JCitHOTA5CUdSQVBIX1RBQkxFOiBleHBsaWNpdCBFWFBPUlQg Tk8gU0lOR0xFVE9OUwkJCU5PCQorRzkxMAlHUkFQSF9UQUJMRTogJ2luIHBhdGhzIGNsYXVzZScJ CQlOTwkKK0c5MjAJRERMLWJhc2VkIFNRTC1wcm9wZXJ0eSBncmFwaHMJCQlZRVMJU1FML1BHUSBy ZXF1aXJlZAorRzkyMQlFbXB0eSBTUUwtcHJvcGVydHkgZ3JhcGgJCQlZRVMJCitHOTIyCVZpZXdz IGFzIGVsZW1lbnQgdGFibGVzCQkJWUVTCQorRzkyMwlJbi1saW5lIHZpZXdzIGFzIGVsZW1lbnQg dGFibGVzCQkJTk8JCitHOTI0CUV4cGxpY2l0IGtleSBjbGF1c2UgZm9yIGVsZW1lbnQgdGFibGVz CQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0c5MjUJRXhwbGljaXQgbGFiZWwgYW5kIHByb3BlcnRp ZXMgY2xhdXNlIGZvciBlbGVtZW50IHRhYmxlcwkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHOTI2 CU1vcmUgdGhhbiBvbmUgbGFiZWwgZm9yIHZlcnRleCB0YWJsZXMJCQlZRVMJCitHOTI3CU1vcmUg dGhhbiBvbmUgbGFiZWwgZm9yIGVkZ2UgdGFibGVzCQkJWUVTCQorRzkyOAlWYWx1ZSBleHByZXNz aW9ucyBhcyBwcm9wZXJ0aWVzIGFuZCByZW5hbWluZyBvZiBwcm9wZXJ0aWVzCQkJWUVTCQorRzky OQlMYWJlbHMgYW5kIHByb3BlcnRpZXM6IEVYQ0VQVCBsaXN0CQkJTk8JCitHOTQwCU11bHRpLXNv dXJjZWQvZGVzdGluZWQgZWRnZXMJCQlZRVMJCitHOTQxCUltcGxpY2l0IHJlbW92YWwgb2YgaW5j b21wbGV0ZSBlZGdlcwkJCVlFUwkKK0c5NTAJQWx0ZXIgcHJvcGVydHkgZ3JhcGggc3RhdGVtZW50 OiBBREQvRFJPUCBlbGVtZW50IHRhYmxlCQkJWUVTCQorRzk2MAlBbHRlciBlbGVtZW50IHRhYmxl IGRlZmluaXRpb246IEFERC9EUk9QIExBQkVMCQkJWUVTCQorRzk3MAlBbHRlciBlbGVtZW50IHRh YmxlIGRlZmluaXRpb246IEFMVEVSIExBQkVMCQkJWUVTCQorRzk4MAlEUk9QIFBST1BFUlRZIEdS QVBIOiBDQVNDQURFIGRyb3AgYmVoYXZpb3IJCQlZRVMJCiBSMDEwCVJvdyBwYXR0ZXJuIHJlY29n bml0aW9uOiBGUk9NIGNsYXVzZQkJCU5PCQogUjAyMAlSb3cgcGF0dGVybiByZWNvZ25pdGlvbjog V0lORE9XIGNsYXVzZQkJCU5PCQogUjAzMAlSb3cgcGF0dGVybiByZWNvZ25pdGlvbjogZnVsbCBh Z2dyZWdhdGUgc3VwcG9ydAkJCU5PCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv TWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4Zjkx Yy4uNjI2MGQ2Yjc5ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC00Niw2ICs0Niw3IEBAIE9C SlMgPSBcCiAJcG9ydGFsY21kcy5vIFwKIAlwcmVwYXJlLm8gXAogCXByb2NsYW5nLm8gXAorCXBy b3BncmFwaGNtZHMubyBcCiAJcHVibGljYXRpb25jbWRzLm8gXAogCXNjaGVtYWNtZHMubyBcCiAJ c2VjbGFiZWwubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCBhNDVmM2JiNmI4My4uZGJlOTA0OGRl ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtMzc5LDYgKzM3OSw3IEBAIEV4ZWNSZW5hbWVTdG10 KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JKRUNU X0lOREVYOgogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgorCQljYXNlIE9CSkVDVF9QUk9Q R1JBUEg6CiAJCQlyZXR1cm4gUmVuYW1lUmVsYXRpb24oc3RtdCk7CiAKIAkJY2FzZSBPQkpFQ1Rf Q09MVU1OOgpAQCAtNTMyLDYgKzUzMyw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0 ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9UQUJMRToKIAkJY2FzZSBP QkpFQ1RfVklFVzoKIAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKKwkJY2FzZSBPQkpFQ1RfUFJPUEdS QVBIOgogCQkJYWRkcmVzcyA9IEFsdGVyVGFibGVOYW1lc3BhY2Uoc3RtdCwKIAkJCQkJCQkJCQkg IG9sZFNjaGVtYUFkZHIgPyAmb2xkTnNwT2lkIDogTlVMTCk7CiAJCQlicmVhazsKQEAgLTg2NSw2 ICs4NjcsNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNh c2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVD VF9QUk9DRURVUkU6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfUk9V VElORToKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVEFCTEVT UEFDRToKQEAgLTg3MywxMSArODc2LDI2IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVy U3RtdCAqc3RtdCkKIAkJCXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKLQkJCQlhZGRy ZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzKHN0bXQtPm9iamVjdFR5cGUsCi0JCQkJCQkJCQkJCSBz dG10LT5vYmplY3QsCi0JCQkJCQkJCQkJCSBOVUxMLAotCQkJCQkJCQkJCQkgQWNjZXNzRXhjbHVz aXZlTG9jaywKLQkJCQkJCQkJCQkJIGZhbHNlKTsKKwkJCQlpZiAoc3RtdC0+cmVsYXRpb24pCisJ CQkJeworCQkJCQlSZWxhdGlvbglyZWxhdGlvbjsKKworCQkJCQlhZGRyZXNzID0gZ2V0X29iamVj dF9hZGRyZXNzX3J2KHN0bXQtPm9iamVjdFR5cGUsCisJCQkJCQkJCQkJCQkJc3RtdC0+cmVsYXRp b24sCisJCQkJCQkJCQkJCQkJTklMLAorCQkJCQkJCQkJCQkJCSZyZWxhdGlvbiwKKwkJCQkJCQkJ CQkJCQlBY2Nlc3NFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkJCWZhbHNlKTsKKwkJCQkJcmVs YXRpb25fY2xvc2UocmVsYXRpb24sIE5vTG9jayk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJ CQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJlc3Moc3RtdC0+b2JqZWN0VHlwZSwKKwkJCQkJ CQkJCQkJCSBzdG10LT5vYmplY3QsCisJCQkJCQkJCQkJCQkgTlVMTCwKKwkJCQkJCQkJCQkJCSBB Y2Nlc3NFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkJIGZhbHNlKTsKKwkJCQl9CiAKIAkJCQlB bHRlck9iamVjdE93bmVyX2ludGVybmFsKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJ ZCwKIAkJCQkJCQkJCQkgIG5ld293bmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDg1 ZWVjN2UzOTQ3Li44ZDZmYWYxZWRkNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00ODIs NiArNDgyLDcgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBO b2RlICpvYmplY3QpCiAJCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6CiAJCWNhc2UgT0JKRUNU X0lOREVYOgogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6 CiAJCWNhc2UgT0JKRUNUX1JPTEU6CiAJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgogCQljYXNlIE9C SkVDVF9TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXgg ZGNmYzFkYmFmZmQuLmM0ZDNiYTU5ZDQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5jCkBAIC0yMTcwLDYgKzIxNzAsNyBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZB TUlMWToKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJ CWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1F U1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKQEAgLTIyNTQsNiArMjI1NSw3 IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNh c2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQljYXNl IE9CSkVDVF9QT0xJQ1k6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1Rf UFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2Fz ZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA2 ZGQwMGE0YWJkZS4uMzRkZDEyZDdkNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0z NCw2ICszNCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BvcnRhbGNtZHMuYycs CiAgICdwcmVwYXJlLmMnLAogICAncHJvY2xhbmcuYycsCisgICdwcm9wZ3JhcGhjbWRzLmMnLAog ICAncHVibGljYXRpb25jbWRzLmMnLAogICAnc2NoZW1hY21kcy5jJywKICAgJ3NlY2xhYmVsLmMn LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi44NDMwYmZkYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuYwpAQCAtMCwwICsxLDE3MDYgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHByb3BncmFwaGNtZHMuYworICoJICBwcm9wZXJ0eSBncmFwaCBt YW5pcHVsYXRpb24KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2dlbmFt LmgiCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy90 YWJsZS5oIgorI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRh bG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cv bmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3Bn cmFwaF9lbGVtZW50X2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFi ZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAiY29t bWFuZHMvcHJvcGdyYXBoY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgor I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxh dGlvbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIKKyNpbmNsdWRlICJ1dGls cy9hcnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMv Zm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGls cy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9ydWxldXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgorCisKK3N0cnVjdCBlbGVtZW50X2luZm8KK3sKKwlPaWQJCQllbGVtZW50aWQ7 CisJY2hhcgkJa2luZDsKKwlPaWQJCQlyZWxpZDsKKwljaGFyCSAgICphbGlhc25hbWU7CisJQXJy YXlUeXBlICAqa2V5OworCisJY2hhcgkgICAqc3JjdmVydGV4OworCU9pZAkJCXNyY3ZlcnRleGlk OworCU9pZAkJCXNyY3JlbGlkOworCUFycmF5VHlwZSAgKnNyY2tleTsKKwlBcnJheVR5cGUgICpz cmNyZWY7CisKKwljaGFyCSAgICpkZXN0dmVydGV4OworCU9pZAkJCWRlc3R2ZXJ0ZXhpZDsKKwlP aWQJCQlkZXN0cmVsaWQ7CisJQXJyYXlUeXBlICAqZGVzdGtleTsKKwlBcnJheVR5cGUgICpkZXN0 cmVmOworCisJTGlzdAkgICAqbGFiZWxzOworfTsKKworCitzdGF0aWMgQXJyYXlUeXBlICpwcm9w Z3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5 Y29scywgUmVsYXRpb24gZWxlbWVudF9yZWwsCisJCQkJCQkJCQkJCWNvbnN0IGNoYXIgKmFsaWFz bmFtZSwgaW50IGxvY2F0aW9uKTsKK3N0YXRpYyB2b2lkIHByb3BncmFwaF9lZGdlX2dldF9yZWZf a2V5cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3QgKmtleWNvbHMsIGNvbnN0IExpc3Qg KnJlZmNvbHMsCisJCQkJCQkJCQkJUmVsYXRpb24gZWRnZV9yZWwsIFJlbGF0aW9uIHJlZl9yZWws CisJCQkJCQkJCQkJY29uc3QgY2hhciAqYWxpYXNuYW1lLCBpbnQgbG9jYXRpb24sIGNvbnN0IGNo YXIgKnR5cGUsCisJCQkJCQkJCQkJQXJyYXlUeXBlICoqb3V0a2V5LCBBcnJheVR5cGUgKipvdXRy ZWYpOworc3RhdGljIEFycmF5VHlwZSAqYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJzZVN0YXRl ICpwc3RhdGUsIGNvbnN0IExpc3QgKmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFJlbGF0aW9uIGVs ZW1lbnRfcmVsKTsKK3N0YXRpYyBBcnJheVR5cGUgKmFycmF5X2Zyb21fYXR0bnVtcyhpbnQgbnVt YXR0cnMsIGNvbnN0IEF0dHJOdW1iZXIgKmF0dG51bXMpOworc3RhdGljIE9pZAlpbnNlcnRfZWxl bWVudF9yZWNvcmQoT2JqZWN0QWRkcmVzcyBwZ2FkZHJlc3MsIHN0cnVjdCBlbGVtZW50X2luZm8g KmVpbmZvKTsKK3N0YXRpYyBPaWQJaW5zZXJ0X2xhYmVsX3JlY29yZChPaWQgZ3JhcGhpZCwgT2lk IHBlb2lkLCBjb25zdCBjaGFyICpsYWJlbCk7CitzdGF0aWMgdm9pZCBpbnNlcnRfcHJvcGVydHlf cmVjb3JkcyhPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBwZ2VyZWxpZCwgY29uc3Qg UHJvcEdyYXBoUHJvcGVydGllcyAqcHJvcGVydGllcyk7CitzdGF0aWMgdm9pZCBpbnNlcnRfcHJv cGVydHlfcmVjb3JkKE9pZCBncmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBj b25zdCBjaGFyICpwcm9wbmFtZSwgY29uc3QgRXhwciAqZXhwcik7CitzdGF0aWMgdm9pZCBjaGVj a19lbGVtZW50X3Byb3BlcnRpZXMoT2lkIHBlb2lkKTsKK3N0YXRpYyB2b2lkIGNoZWNrX2VsZW1l bnRfbGFiZWxfcHJvcGVydGllcyhPaWQgZWxsYWJlbG9pZCk7CitzdGF0aWMgdm9pZCBjaGVja19h bGxfbGFiZWxzX3Byb3BlcnRpZXMoT2lkIHBncmVsaWQpOworc3RhdGljIE9pZAlnZXRfdmVydGV4 X29pZChQYXJzZVN0YXRlICpwc3RhdGUsIE9pZCBwZ3JlbGlkLCBjb25zdCBjaGFyICphbGlhcywg aW50IGxvY2F0aW9uKTsKK3N0YXRpYyBPaWQJZ2V0X2VkZ2Vfb2lkKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgT2lkIHBncmVsaWQsIGNvbnN0IGNoYXIgKmFsaWFzLCBpbnQgbG9jYXRpb24pOworc3RhdGlj IE9pZAlnZXRfZWxlbWVudF9yZWxpZChPaWQgcGVpZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2dyYXBo X2xhYmVsX2lkcyhPaWQgZ3JhcGhpZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2xhYmVsX2VsZW1lbnRf bGFiZWxfaWRzKE9pZCBsYWJlbGlkKTsKK3N0YXRpYyBMaXN0ICpnZXRfZWxlbWVudF9sYWJlbF9w cm9wZXJ0eV9uYW1lcyhPaWQgZWxsYWJlbG9pZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2dyYXBoX3By b3BlcnR5X2lkcyhPaWQgZ3JhcGhpZCk7CisKKworLyoKKyAqIENSRUFURSBQUk9QRVJUWSBHUkFQ SAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRl LCBjb25zdCBDcmVhdGVQcm9wR3JhcGhTdG10ICpzdG10KQoreworCUNyZWF0ZVN0bXQgKmNzdG10 ID0gbWFrZU5vZGUoQ3JlYXRlU3RtdCk7CisJY2hhcgkJY29tcG9uZW50c19wZXJzaXN0ZW5jZTsK KwlMaXN0Q2VsbCAgICpsYzsKKwlPYmplY3RBZGRyZXNzIHBnYWRkcmVzczsKKwlMaXN0CSAgICp2 ZXJ0ZXhfaW5mb3MgPSBOSUw7CisJTGlzdAkgICAqZWRnZV9pbmZvcyA9IE5JTDsKKwlMaXN0CSAg ICplbGVtZW50X2FsaWFzZXMgPSBOSUw7CisJTGlzdAkgICAqZWxlbWVudF9vaWRzID0gTklMOwor CisJaWYgKHN0bXQtPnBnbmFtZS0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVU5M T0dHRUQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCSBlcnJtc2coInByb3BlcnR5IGdyYXBocyBjYW5ub3QgYmUgdW5sb2dnZWQgYmVj YXVzZSB0aGV5IGRvIG5vdCBoYXZlIHN0b3JhZ2UiKSkpOworCisJY29tcG9uZW50c19wZXJzaXN0 ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKKworCWZvcmVhY2gobGMsIHN0bXQtPnZl cnRleF90YWJsZXMpCisJeworCQlQcm9wR3JhcGhWZXJ0ZXggKnZlcnRleCA9IGxmaXJzdF9ub2Rl KFByb3BHcmFwaFZlcnRleCwgbGMpOworCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbzsKKwkJ UmVsYXRpb24JcmVsOworCisJCXZpbmZvID0gcGFsbG9jMF9vYmplY3Qoc3RydWN0IGVsZW1lbnRf aW5mbyk7CisJCXZpbmZvLT5raW5kID0gUEdFS0lORF9WRVJURVg7CisKKwkJdmluZm8tPnJlbGlk ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHZlcnRleC0+dnRhYmxlLCBBY2Nlc3NTaGFyZUxv Y2ssIDAsIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRh YmxlX29wZW4odmluZm8tPnJlbGlkLCBOb0xvY2spOworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVs cGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJCWNvbXBvbmVudHNfcGVyc2lz dGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOworCisJCWlmICh2ZXJ0ZXgtPnZ0YWJsZS0+YWxp YXMpCisJCQl2aW5mby0+YWxpYXNuYW1lID0gdmVydGV4LT52dGFibGUtPmFsaWFzLT5hbGlhc25h bWU7CisJCWVsc2UKKwkJCXZpbmZvLT5hbGlhc25hbWUgPSB2ZXJ0ZXgtPnZ0YWJsZS0+cmVsbmFt ZTsKKworCQlpZiAobGlzdF9tZW1iZXIoZWxlbWVudF9hbGlhc2VzLCBtYWtlU3RyaW5nKHZpbmZv LT5hbGlhc25hbWUpKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf RFVQTElDQVRFX1RBQkxFKSwKKwkJCQkJIGVycm1zZygiYWxpYXMgXCIlc1wiIHVzZWQgbW9yZSB0 aGFuIG9uY2UgYXMgZWxlbWVudCB0YWJsZSIsIHZpbmZvLT5hbGlhc25hbWUpLAorCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmVydGV4LT5sb2NhdGlvbikpKTsKKworCQl2aW5mby0+ a2V5ID0gcHJvcGdyYXBoX2VsZW1lbnRfZ2V0X2tleShwc3RhdGUsIHZlcnRleC0+dmtleSwgcmVs LCB2aW5mby0+YWxpYXNuYW1lLCB2ZXJ0ZXgtPmxvY2F0aW9uKTsKKworCQl2aW5mby0+bGFiZWxz ID0gdmVydGV4LT5sYWJlbHM7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJCXZl cnRleF9pbmZvcyA9IGxhcHBlbmQodmVydGV4X2luZm9zLCB2aW5mbyk7CisKKwkJZWxlbWVudF9h bGlhc2VzID0gbGFwcGVuZChlbGVtZW50X2FsaWFzZXMsIG1ha2VTdHJpbmcodmluZm8tPmFsaWFz bmFtZSkpOworCX0KKworCWZvcmVhY2gobGMsIHN0bXQtPmVkZ2VfdGFibGVzKQorCXsKKwkJUHJv cEdyYXBoRWRnZSAqZWRnZSA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaEVkZ2UsIGxjKTsKKwkJc3Ry dWN0IGVsZW1lbnRfaW5mbyAqZWluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJTGlzdENlbGwgICAq bGMyOworCQlPaWQJCQlzcmNyZWxpZDsKKwkJT2lkCQkJZGVzdHJlbGlkOworCQlSZWxhdGlvbglz cmNyZWw7CisJCVJlbGF0aW9uCWRlc3RyZWw7CisKKwkJZWluZm8gPSBwYWxsb2MwX29iamVjdChz dHJ1Y3QgZWxlbWVudF9pbmZvKTsKKwkJZWluZm8tPmtpbmQgPSBQR0VLSU5EX0VER0U7CisKKwkJ ZWluZm8tPnJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGVkZ2UtPmV0YWJsZSwgQWNj ZXNzU2hhcmVMb2NrLCAwLCBSYW5nZVZhckNhbGxiYWNrT3duc1JlbGF0aW9uLCBOVUxMKTsKKwor CQlyZWwgPSB0YWJsZV9vcGVuKGVpbmZvLT5yZWxpZCwgTm9Mb2NrKTsKKworCQlpZiAocmVsLT5y ZF9yZWwtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJCQljb21wb25l bnRzX3BlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfVEVNUDsKKworCQlpZiAoZWRnZS0+ZXRh YmxlLT5hbGlhcykKKwkJCWVpbmZvLT5hbGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPmFsaWFzLT5h bGlhc25hbWU7CisJCWVsc2UKKwkJCWVpbmZvLT5hbGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPnJl bG5hbWU7CisKKwkJaWYgKGxpc3RfbWVtYmVyKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmluZyhl aW5mby0+YWxpYXNuYW1lKSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9UQUJMRSksCisJCQkJCSBlcnJtc2coImFsaWFzIFwiJXNcIiB1c2VkIG1v cmUgdGhhbiBvbmNlIGFzIGVsZW1lbnQgdGFibGUiLCBlaW5mby0+YWxpYXNuYW1lKSwKKwkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkpOworCisJCWVpbmZv LT5rZXkgPSBwcm9wZ3JhcGhfZWxlbWVudF9nZXRfa2V5KHBzdGF0ZSwgZWRnZS0+ZWtleSwgcmVs LCBlaW5mby0+YWxpYXNuYW1lLCBlZGdlLT5sb2NhdGlvbik7CisKKwkJZWluZm8tPnNyY3ZlcnRl eCA9IGVkZ2UtPmVzcmN2ZXJ0ZXg7CisJCWVpbmZvLT5kZXN0dmVydGV4ID0gZWRnZS0+ZWRlc3R2 ZXJ0ZXg7CisKKwkJc3JjcmVsaWQgPSAwOworCQlkZXN0cmVsaWQgPSAwOworCQlmb3JlYWNoKGxj MiwgdmVydGV4X2luZm9zKQorCQl7CisJCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9IGxm aXJzdChsYzIpOworCisJCQlpZiAoc3RyY21wKHZpbmZvLT5hbGlhc25hbWUsIGVkZ2UtPmVzcmN2 ZXJ0ZXgpID09IDApCisJCQkJc3JjcmVsaWQgPSB2aW5mby0+cmVsaWQ7CisKKwkJCWlmIChzdHJj bXAodmluZm8tPmFsaWFzbmFtZSwgZWRnZS0+ZWRlc3R2ZXJ0ZXgpID09IDApCisJCQkJZGVzdHJl bGlkID0gdmluZm8tPnJlbGlkOworCisJCQlpZiAoc3JjcmVsaWQgJiYgZGVzdHJlbGlkKQorCQkJ CWJyZWFrOworCQl9CisJCWlmICghc3JjcmVsaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNn KCJzb3VyY2UgdmVydGV4IFwiJXNcIiBvZiBlZGdlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJ CQkJCQkJZWRnZS0+ZXNyY3ZlcnRleCwgZWluZm8tPmFsaWFzbmFtZSksCisJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBlZGdlLT5sb2NhdGlvbikpKTsKKwkJaWYgKCFkZXN0cmVsaWQp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJkZXN0aW5hdGlvbiB2ZXJ0ZXggXCIlc1wiIG9m IGVkZ2UgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQllZGdlLT5lZGVzdHZlcnRleCwg ZWluZm8tPmFsaWFzbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBlZGdl LT5sb2NhdGlvbikpKTsKKworCQlzcmNyZWwgPSB0YWJsZV9vcGVuKHNyY3JlbGlkLCBOb0xvY2sp OworCQlkZXN0cmVsID0gdGFibGVfb3BlbihkZXN0cmVsaWQsIE5vTG9jayk7CisKKwkJcHJvcGdy YXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZXNyY2tleSwgZWRnZS0+ZXNyY3Zl cnRleGNvbHMsIHJlbCwgc3JjcmVsLAorCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+ bG9jYXRpb24sICJTT1VSQ0UiLAorCQkJCQkJCQkJJmVpbmZvLT5zcmNrZXksICZlaW5mby0+c3Jj cmVmKTsKKwkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3Rr ZXksIGVkZ2UtPmVkZXN0dmVydGV4Y29scywgcmVsLCBkZXN0cmVsLAorCQkJCQkJCQkJZWluZm8t PmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJERVNUSU5BVElPTiIsCisJCQkJCQkJCQkmZWlu Zm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZik7CisKKwkJZWluZm8tPmxhYmVscyA9IGVkZ2Ut PmxhYmVsczsKKworCQl0YWJsZV9jbG9zZShkZXN0cmVsLCBOb0xvY2spOworCQl0YWJsZV9jbG9z ZShzcmNyZWwsIE5vTG9jayk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJCWVk Z2VfaW5mb3MgPSBsYXBwZW5kKGVkZ2VfaW5mb3MsIGVpbmZvKTsKKworCQllbGVtZW50X2FsaWFz ZXMgPSBsYXBwZW5kKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmluZyhlaW5mby0+YWxpYXNuYW1l KSk7CisJfQorCisJY3N0bXQtPnJlbGF0aW9uID0gc3RtdC0+cGduYW1lOworCWNzdG10LT5vbmNv bW1pdCA9IE9OQ09NTUlUX05PT1A7CisKKwkvKgorCSAqIEF1dG9tYXRpY2FsbHkgbWFrZSBpdCB0 ZW1wb3JhcnkgaWYgYW55IGNvbXBvbmVudCB0YWJsZXMgYXJlIHRlbXBvcmFyeQorCSAqIChzZWUg YWxzbyBEZWZpbmVWaWV3KCkpLgorCSAqLworCWlmIChzdG10LT5wZ25hbWUtPnJlbHBlcnNpc3Rl bmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAorCQkmJiBjb21wb25lbnRzX3BlcnNpc3Rl bmNlID09IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJeworCQljc3RtdC0+cmVsYXRpb24gPSBjb3B5 T2JqZWN0KGNzdG10LT5yZWxhdGlvbik7CisJCWNzdG10LT5yZWxhdGlvbi0+cmVscGVyc2lzdGVu Y2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOworCQllcmVwb3J0KE5PVElDRSwKKwkJCQkoZXJybXNn KCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgd2lsbCBiZSB0ZW1wb3JhcnkiLAorCQkJCQkJc3RtdC0+ cGduYW1lLT5yZWxuYW1lKSkpOworCX0KKworCXBnYWRkcmVzcyA9IERlZmluZVJlbGF0aW9uKGNz dG10LCBSRUxLSU5EX1BST1BHUkFQSCwgSW52YWxpZE9pZCwgTlVMTCwgTlVMTCk7CisKKwlmb3Jl YWNoKGxjLCB2ZXJ0ZXhfaW5mb3MpCisJeworCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9 IGxmaXJzdChsYyk7CisJCU9pZAkJCXBlb2lkOworCisJCXBlb2lkID0gaW5zZXJ0X2VsZW1lbnRf cmVjb3JkKHBnYWRkcmVzcywgdmluZm8pOworCQllbGVtZW50X29pZHMgPSBsYXBwZW5kX29pZChl bGVtZW50X29pZHMsIHBlb2lkKTsKKwl9CisKKwlmb3JlYWNoKGxjLCBlZGdlX2luZm9zKQorCXsK KwkJc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8gPSBsZmlyc3QobGMpOworCQlPaWQJCQlwZW9p ZDsKKwkJTGlzdENlbGwgICAqbGMyOworCisJCS8qCisJCSAqIExvb2sgdXAgdGhlIHZlcnRpY2Vz IGFnYWluLiAgTm93IHRoZSB2ZXJ0aWNlcyBoYXZlIE9JRHMgYXNzaWduZWQsCisJCSAqIHdoaWNo IHdlIG5lZWQuCisJCSAqLworCQlmb3JlYWNoKGxjMiwgdmVydGV4X2luZm9zKQorCQl7CisJCQlz dHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9IGxmaXJzdChsYzIpOworCisJCQlpZiAoc3RyY21w KHZpbmZvLT5hbGlhc25hbWUsIGVpbmZvLT5zcmN2ZXJ0ZXgpID09IDApCisJCQl7CisJCQkJZWlu Zm8tPnNyY3ZlcnRleGlkID0gdmluZm8tPmVsZW1lbnRpZDsKKwkJCQllaW5mby0+c3JjcmVsaWQg PSB2aW5mby0+cmVsaWQ7CisJCQl9CisJCQlpZiAoc3RyY21wKHZpbmZvLT5hbGlhc25hbWUsIGVp bmZvLT5kZXN0dmVydGV4KSA9PSAwKQorCQkJeworCQkJCWVpbmZvLT5kZXN0dmVydGV4aWQgPSB2 aW5mby0+ZWxlbWVudGlkOworCQkJCWVpbmZvLT5kZXN0cmVsaWQgPSB2aW5mby0+cmVsaWQ7CisJ CQl9CisJCQlpZiAoZWluZm8tPnNyY3ZlcnRleGlkICYmIGVpbmZvLT5kZXN0dmVydGV4aWQpCisJ CQkJYnJlYWs7CisJCX0KKwkJQXNzZXJ0KGVpbmZvLT5zcmN2ZXJ0ZXhpZCk7CisJCUFzc2VydChl aW5mby0+ZGVzdHZlcnRleGlkKTsKKwkJQXNzZXJ0KGVpbmZvLT5zcmNyZWxpZCk7CisJCUFzc2Vy dChlaW5mby0+ZGVzdHJlbGlkKTsKKwkJcGVvaWQgPSBpbnNlcnRfZWxlbWVudF9yZWNvcmQocGdh ZGRyZXNzLCBlaW5mbyk7CisJCWVsZW1lbnRfb2lkcyA9IGxhcHBlbmRfb2lkKGVsZW1lbnRfb2lk cywgcGVvaWQpOworCX0KKworCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwlmb3JlYWNo X29pZChwZW9pZCwgZWxlbWVudF9vaWRzKQorCQljaGVja19lbGVtZW50X3Byb3BlcnRpZXMocGVv aWQpOworCWNoZWNrX2FsbF9sYWJlbHNfcHJvcGVydGllcyhwZ2FkZHJlc3Mub2JqZWN0SWQpOwor CisJcmV0dXJuIHBnYWRkcmVzczsKK30KKworLyoKKyAqIFByb2Nlc3MgdGhlIGtleSBjbGF1c2Ug c3BlY2lmaWVkIGZvciBhbiBlbGVtZW50LiAgSWYga2V5X2NsYXVzZSBpcyBub24tTklMLAorICog dGhlbiBpdCBpcyBhIGxpc3Qgb2YgY29sdW1uIG5hbWVzLiAgT3RoZXJ3aXNlLCB0aGUgcHJpbWFy eSBrZXkgb2YgdGhlCisgKiByZWxhdGlvbiBpcyB1c2VkLiAgVGhlIHJldHVybiB2YWx1ZSBpcyBh biBhcnJheSBvZiBjb2x1bW4gbnVtYmVycy4KKyAqLworc3RhdGljIEFycmF5VHlwZSAqCitwcm9w Z3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5 X2NsYXVzZSwgUmVsYXRpb24gZWxlbWVudF9yZWwsIGNvbnN0IGNoYXIgKmFsaWFzbmFtZSwgaW50 IGxvY2F0aW9uKQoreworCUFycmF5VHlwZSAgKmE7CisKKwlpZiAoa2V5X2NsYXVzZSA9PSBOSUwp CisJeworCQlPaWQJCQlwa2lkeCA9IFJlbGF0aW9uR2V0UHJpbWFyeUtleUluZGV4KGVsZW1lbnRf cmVsLCBmYWxzZSk7CisKKwkJaWYgKCFwa2lkeCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJZXJybXNnKCJu byBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBwcmltYXJ5IGtleSBleGlzdHMgZm9yIGRl ZmluaXRpb24gb2YgZWxlbWVudCBcIiVzXCIiLCBhbGlhc25hbWUpLAorCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCQllbHNlCisJCXsKKwkJCVJlbGF0aW9uCWlu ZGV4RGVzYzsKKworCQkJaW5kZXhEZXNjID0gaW5kZXhfb3Blbihwa2lkeCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCWEgPSBhcnJheV9mcm9tX2F0dG51bXMoaW5kZXhEZXNjLT5yZF9pbmRleC0+aW5k a2V5LmRpbTEsIGluZGV4RGVzYy0+cmRfaW5kZXgtPmluZGtleS52YWx1ZXMpOworCQkJaW5kZXhf Y2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCQl9CisJfQorCWVsc2UKKwl7CisJCWEgPSBhcnJh eV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRpb24sIGVsZW1lbnRf cmVsKTsKKwl9CisKKwlyZXR1cm4gYTsKK30KKworLyoKKyAqIFByb2Nlc3MgdGhlIHNvdXJjZSBv ciBkZXN0aW5hdGlvbiBsaW5rIG9mIGFuIGVkZ2UuCisgKgorICoga2V5Y29scyBhbmQgcmVmY29s cyBhcmUgY29sdW1uIG5hbWVzIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgYW5kIHJlZmVyZW5jZWQK KyAqICh2ZXJ0ZXgpIGNvbHVtbnMuICBJZiB0aGV5IGFyZSBib3RoIE5JTCwgYSBtYXRjaGluZyBm b3JlaWduIGtleSBpcyBsb29rZWQKKyAqIHVwLgorICoKKyAqIGVkZ2VfcmVsIGFuZCByZWZfcmVs IGFyZSB0aGUgbG9jYWwgYW5kIHJlZmVyZW5jZWQgZWxlbWVudCB0YWJsZXMuCisgKgorICogYWxp YXNuYW1lLCBsb2NhdGlvbiwgYW5kIHR5cGUgYXJlIGZvciBlcnJvciBtZXNzYWdlcy4gIHR5cGUg aXMgZWl0aGVyCisgKiAiU09VUkNFIiBvciAiREVTVElOQVRJT04iLgorICoKKyAqIFRoZSBvdXRw dXRzIGFyZSBhcnJheXMgb2YgY29sdW1uIG51bWJlcnMgaW4gb3V0a2V5IGFuZCBvdXRyZWYuCisg Ki8KK3N0YXRpYyB2b2lkCitwcm9wZ3JhcGhfZWRnZV9nZXRfcmVmX2tleXMoUGFyc2VTdGF0ZSAq cHN0YXRlLCBjb25zdCBMaXN0ICprZXljb2xzLCBjb25zdCBMaXN0ICpyZWZjb2xzLAorCQkJCQkJ CVJlbGF0aW9uIGVkZ2VfcmVsLCBSZWxhdGlvbiByZWZfcmVsLAorCQkJCQkJCWNvbnN0IGNoYXIg KmFsaWFzbmFtZSwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyICp0eXBlLAorCQkJCQkJCUFycmF5 VHlwZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmKQoreworCUFzc2VydCgoa2V5Y29scyAm JiByZWZjb2xzKSB8fCAoIWtleWNvbHMgJiYgIXJlZmNvbHMpKTsKKworCWlmIChrZXljb2xzKQor CXsKKwkJaWYgKGxpc3RfbGVuZ3RoKGtleWNvbHMpICE9IGxpc3RfbGVuZ3RoKHJlZmNvbHMpKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLAorCQkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBjb2x1bW5zIGlu ICVzIHZlcnRleCBkZWZpbml0aW9uIG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1lKSwK KwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQkqb3V0a2V5 ID0gYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBlZGdl X3JlbCk7CisJCSpvdXRyZWYgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgcmVmY29s cywgbG9jYXRpb24sIHJlZl9yZWwpOworCX0KKwllbHNlCisJeworCQlMaXN0CSAgICpma2V5czsK KwkJTGlzdENlbGwgICAqbGM7CisJCWludAkJCWNvdW50ID0gMDsKKwkJRm9yZWlnbktleUNhY2hl SW5mbyAqZmsgPSBOVUxMOworCisJCWZrZXlzID0gUmVsYXRpb25HZXRGS2V5TGlzdChlZGdlX3Jl bCk7CisJCWZvcmVhY2gobGMsIGZrZXlzKQorCQl7CisJCQlmayA9IGxmaXJzdF9ub2RlKEZvcmVp Z25LZXlDYWNoZUluZm8sIGxjKTsKKworCQkJaWYgKGZrLT5jb25mcmVsaWQgPT0gUmVsYXRpb25H ZXRSZWxpZChyZWZfcmVsKSkKKwkJCQljb3VudCsrOworCQl9CisKKwkJaWYgKGNvdW50ID09IDAp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJZXJybXNnKCJubyAlcyBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBmb3JlaWdu IGtleSBleGlzdHMgZm9yIGRlZmluaXRpb24gb2YgZWRnZSBcIiVzXCIiLCB0eXBlLCBhbGlhc25h bWUpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCQllbHNl IGlmIChjb3VudCA+IDEpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJybXNnKCJtb3JlIHRoYW4gb25lIHN1aXRhYmxlIGZvcmVp Z24ga2V5IGV4aXN0cyBmb3IgJXMga2V5IG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1l KSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQlBc3Nl cnQoZmspOworCisJCSpvdXRrZXkgPSBhcnJheV9mcm9tX2F0dG51bXMoZmstPm5rZXlzLCBmay0+ Y29ua2V5KTsKKwkJKm91dHJlZiA9IGFycmF5X2Zyb21fYXR0bnVtcyhmay0+bmtleXMsIGZrLT5j b25ma2V5KTsKKwl9Cit9CisKKy8qCisgKiBDb252ZXJ0IGxpc3Qgb2YgY29sdW1uIG5hbWVzIGlu IHRoZSBzcGVjaWZpZWQgcmVsYXRpb24gaW50byBhbiBhcnJheSBvZgorICogY29sdW1uIG51bWJl cnMuCisgKi8KK3N0YXRpYyBBcnJheVR5cGUgKgorYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJz ZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3QgKmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFJlbGF0 aW9uIGVsZW1lbnRfcmVsKQoreworCWludAkJCW51bWF0dHJzOworCURhdHVtCSAgICphdHRudW1z ZDsKKwlpbnQJCQlpOworCUxpc3RDZWxsICAgKmxjOworCisJbnVtYXR0cnMgPSBsaXN0X2xlbmd0 aChjb2xuYW1lcyk7CisJYXR0bnVtc2QgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bWF0dHJzKTsK KworCWkgPSAwOworCWZvcmVhY2gobGMsIGNvbG5hbWVzKQorCXsKKwkJY2hhcgkgICAqY29sbmFt ZSA9IHN0clZhbChsZmlyc3QobGMpKTsKKwkJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlk KGVsZW1lbnRfcmVsKTsKKwkJQXR0ck51bWJlcglhdHRudW07CisKKwkJYXR0bnVtID0gZ2V0X2F0 dG51bShyZWxpZCwgY29sbmFtZSk7CisJCWlmICghYXR0bnVtKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJ CWNvbG5hbWUsIGdldF9yZWxfbmFtZShyZWxpZCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJCWF0dG51bXNkW2krK10gPSBJbnQxNkdldERhdHVtKGF0 dG51bSk7CisJfQorCisJZm9yIChpbnQgaiA9IDA7IGogPCBudW1hdHRyczsgaisrKQorCXsKKwkJ Zm9yIChpbnQgayA9IGogKyAxOyBrIDwgbnVtYXR0cnM7IGsrKykKKwkJeworCQkJaWYgKERhdHVt R2V0SW50MTYoYXR0bnVtc2Rbal0pID09IERhdHVtR2V0SW50MTYoYXR0bnVtc2Rba10pKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLAorCQkJCQkJIGVycm1zZygiZ3JhcGgga2V5IGNvbHVtbnMgbGlzdCBtdXN0IG5v dCBjb250YWluIGR1cGxpY2F0ZXMiKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBsb2NhdGlvbikpKTsKKwkJfQorCX0KKworCXJldHVybiBjb25zdHJ1Y3RfYXJyYXlfYnVpbHRp bihhdHRudW1zZCwgbnVtYXR0cnMsIElOVDJPSUQpOworfQorCitzdGF0aWMgQXJyYXlUeXBlICoK K2FycmF5X2Zyb21fYXR0bnVtcyhpbnQgbnVtYXR0cnMsIGNvbnN0IEF0dHJOdW1iZXIgKmF0dG51 bXMpCit7CisJRGF0dW0JICAgKmF0dG51bXNkOworCisJYXR0bnVtc2QgPSBwYWxsb2NfYXJyYXko RGF0dW0sIG51bWF0dHJzKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtYXR0cnM7IGkrKykK KwkJYXR0bnVtc2RbaV0gPSBJbnQxNkdldERhdHVtKGF0dG51bXNbaV0pOworCisJcmV0dXJuIGNv bnN0cnVjdF9hcnJheV9idWlsdGluKGF0dG51bXNkLCBudW1hdHRycywgSU5UMk9JRCk7Cit9CisK K3N0YXRpYyB2b2lkCithcnJheV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKE9pZCByZWxpZCwg QXJyYXlUeXBlICphcnIsIE9iamVjdEFkZHJlc3NlcyAqYWRkcnMpCit7CisJRGF0dW0JICAgKmF0 dG51bXNkOworCWludAkJCW51bWF0dHJzOworCisJZGVjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbihh cnIsIElOVDJPSUQsICZhdHRudW1zZCwgTlVMTCwgJm51bWF0dHJzKTsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgbnVtYXR0cnM7IGkrKykKKwl7CisJCU9iamVjdEFkZHJlc3MgcmVmZXJlbmNlZDsK KworCQlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwg cmVsaWQsIERhdHVtR2V0SW50MTYoYXR0bnVtc2RbaV0pKTsKKwkJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorfQorCisvKgorICogSW5zZXJ0IGEgcmVj b3JkIGZvciBhbiBlbGVtZW50IGludG8gdGhlIHBnX3Byb3BncmFwaF9lbGVtZW50IGNhdGFsb2cu ICBBbHNvCisgKiBpbnNlcnRzIGxhYmVscyBhbmQgcHJvcGVydGllcyBpbnRvIHRoZWlyIHJlc3Bl Y3RpdmUgY2F0YWxvZ3MuCisgKi8KK3N0YXRpYyBPaWQKK2luc2VydF9lbGVtZW50X3JlY29yZChP YmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pCit7CisJ T2lkCQkJZ3JhcGhpZCA9IHBnYWRkcmVzcy5vYmplY3RJZDsKKwlSZWxhdGlvbglyZWw7CisJTmFt ZURhdGEJYWxpYXNuYW1lOworCU9pZAkJCXBlb2lkOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdf cHJvcGdyYXBoX2VsZW1lbnRdID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFw aF9lbGVtZW50XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCU9iamVjdEFkZHJlc3MgbXlzZWxm OworCU9iamVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOwor CisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgUm93RXhjbHVz aXZlTG9jayk7CisKKwlwZW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFByb3BncmFwaEVs ZW1lbnRPYmplY3RJbmRleElkLCBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X29pZCk7CisJZWlu Zm8tPmVsZW1lbnRpZCA9IHBlb2lkOworCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwZW9pZCk7CisJdmFsdWVzW0FudW1fcGdfcHJv cGdyYXBoX2VsZW1lbnRfcGdlcGdpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKTsK Kwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VyZWxpZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShlaW5mby0+cmVsaWQpOworCW5hbWVzdHJjcHkoJmFsaWFzbmFtZSwgZWluZm8t PmFsaWFzbmFtZSk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlYWxpYXMg LSAxXSA9IE5hbWVHZXREYXR1bSgmYWxpYXNuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VraW5kIC0gMV0gPSBDaGFyR2V0RGF0dW0oZWluZm8tPmtpbmQpOworCXZh bHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3ZlcnRleGlkIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGVpbmZvLT5zcmN2ZXJ0ZXhpZCk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdy YXBoX2VsZW1lbnRfcGdlZGVzdHZlcnRleGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGVpbmZv LT5kZXN0dmVydGV4aWQpOworCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWtl eSAtIDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5rZXkpOworCisJaWYgKGVpbmZvLT5zcmNr ZXkpCisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNrZXkpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXkgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5zcmNy ZWYpCisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZiAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNyZWYpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5kZXN0 a2V5KQorCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5IC0gMV0g PSBQb2ludGVyR2V0RGF0dW0oZWluZm8tPmRlc3RrZXkpOworCWVsc2UKKwkJbnVsbHNbQW51bV9w Z19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5IC0gMV0gPSB0cnVlOworCWlmIChlaW5mby0+ ZGVzdHJlZikKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiAt IDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5kZXN0cmVmKTsKKwllbHNlCisJCW51bGxzW0Fu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiAtIDFdID0gdHJ1ZTsKKworCXR1cCA9 IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwor CUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKwor CU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgcGVv aWQpOworCisJLyogQWRkIGRlcGVuZGVuY3kgb24gdGhlIHByb3BlcnR5IGdyYXBoICovCisJcmVj b3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZwZ2FkZHJlc3MsIERFUEVOREVOQ1lfQVVUTyk7CisK KwlhZGRycyA9IG5ld19vYmplY3RfYWRkcmVzc2VzKCk7CisKKwkvKiBBZGQgZGVwZW5kZW5jeSBv biB0aGUgcmVsYXRpb24gKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9u UmVsYXRpb25JZCwgZWluZm8tPnJlbGlkKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJl ZmVyZW5jZWQsIGFkZHJzKTsKKwlhcnJheV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZv LT5yZWxpZCwgZWluZm8tPmtleSwgYWRkcnMpOworCisJLyogQWRkIGRlcGVuZGVuY2llcyBvbiB2 ZXJ0aWNlcyAqLworCWlmIChlaW5mby0+c3JjdmVydGV4aWQpCisJeworCQlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkLCBlaW5mby0+c3JjdmVy dGV4aWQpOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsK KwkJYXJyYXlfb2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhlaW5mby0+cmVsaWQsIGVpbmZvLT5z cmNrZXksIGFkZHJzKTsKKwkJYXJyYXlfb2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhlaW5mby0+ c3JjcmVsaWQsIGVpbmZvLT5zcmNyZWYsIGFkZHJzKTsKKwl9CisJaWYgKGVpbmZvLT5kZXN0dmVy dGV4aWQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaEVsZW1l bnRSZWxhdGlvbklkLCBlaW5mby0+ZGVzdHZlcnRleGlkKTsKKwkJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0 YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+ZGVzdGtleSwgYWRkcnMpOworCQlhcnJheV9vZl9h dHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0cmVsaWQsIGVpbmZvLT5kZXN0cmVmLCBh ZGRycyk7CisJfQorCisJLyogVE9ETzogZGVwZW5kZW5jaWVzIG9uIGVxdWFsaXR5IG9wZXJhdG9y cywgbGlrZSBmb3IgZm9yZWlnbiBrZXlzICovCisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVw ZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwl0YWJsZV9j bG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAoZWluZm8tPmxhYmVscykKKwl7CisJCUxpc3RDZWxs ICAgKmxjOworCisJCWZvcmVhY2gobGMsIGVpbmZvLT5sYWJlbHMpCisJCXsKKwkJCVByb3BHcmFw aExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBsZmlyc3Rfbm9kZShQcm9wR3JhcGhMYWJlbEFuZFBy b3BlcnRpZXMsIGxjKTsKKwkJCU9pZAkJCWVsbGFiZWxvaWQ7CisKKwkJCWlmIChscC0+bGFiZWwp CisJCQkJZWxsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQoZ3JhcGhpZCwgcGVvaWQsIGxw LT5sYWJlbCk7CisJCQllbHNlCisJCQkJZWxsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQo Z3JhcGhpZCwgcGVvaWQsIGVpbmZvLT5hbGlhc25hbWUpOworCQkJaW5zZXJ0X3Byb3BlcnR5X3Jl Y29yZHMoZ3JhcGhpZCwgZWxsYWJlbG9pZCwgZWluZm8tPnJlbGlkLCBscC0+cHJvcGVydGllcyk7 CisKKwkJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJ T2lkCQkJZWxsYWJlbG9pZDsKKwkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIgPSBtYWtlTm9kZShQ cm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQlwci0+YWxsID0gdHJ1ZTsKKwkJcHItPmxvY2F0aW9u ID0gLTE7CisKKwkJZWxsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQoZ3JhcGhpZCwgcGVv aWQsIGVpbmZvLT5hbGlhc25hbWUpOworCQlpbnNlcnRfcHJvcGVydHlfcmVjb3JkcyhncmFwaGlk LCBlbGxhYmVsb2lkLCBlaW5mby0+cmVsaWQsIHByKTsKKwl9CisKKwlyZXR1cm4gcGVvaWQ7Cit9 CisKKy8qCisgKiBJbnNlcnQgcmVjb3JkcyBmb3IgYSBsYWJlbCBpbnRvIHRoZSBwZ19wcm9wZ3Jh cGhfbGFiZWwgYW5kCisgKiBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBjYXRhbG9ncywgYW5k IHJlZ2lzdGVyIGRlcGVuZGVuY2llcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBPSUQgb2YgdGhlIG5l dyBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCByZWNvcmQuCisgKi8KK3N0YXRpYyBPaWQKK2lu c2VydF9sYWJlbF9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBwZW9pZCwgY29uc3QgY2hhciAqbGFi ZWwpCit7CisJT2lkCQkJbGFiZWxvaWQ7CisJT2lkCQkJZWxsYWJlbG9pZDsKKworCS8qCisJICog SW5zZXJ0IGludG8gcGdfcHJvcGdyYXBoX2xhYmVsIGlmIG5vdCBhbHJlYWR5IGV4aXN0aW5nLgor CSAqLworCWxhYmVsb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSExBQkVMTkFNRSwgQW51 bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLCBPYmplY3RJZEdldERhdHVtKGdyYXBoaWQpLCBDU3Ry aW5nR2V0RGF0dW0obGFiZWwpKTsKKwlpZiAoIWxhYmVsb2lkKQorCXsKKwkJUmVsYXRpb24JcmVs OworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9sYWJlbF0gPSB7MH07CisJCWJv b2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFwaF9sYWJlbF0gPSB7MH07CisJCU5hbWVEYXRhCWxh YmVsbmFtZTsKKwkJSGVhcFR1cGxlCXR1cDsKKwkJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJCU9i amVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKworCQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExh YmVsUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJbGFiZWxvaWQgPSBHZXROZXdP aWRXaXRoSW5kZXgocmVsLCBQcm9wZ3JhcGhMYWJlbE9iamVjdEluZGV4SWQsIEFudW1fcGdfcHJv cGdyYXBoX2xhYmVsX29pZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0obGFiZWxvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9w Z3JhcGhfbGFiZWxfcGdscGdpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKTsKKwkJ bmFtZXN0cmNweSgmbGFiZWxuYW1lLCBsYWJlbCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFw aF9sYWJlbF9wZ2xsYWJlbCAtIDFdID0gTmFtZUdldERhdHVtKCZsYWJlbG5hbWUpOworCisJCXR1 cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMp OworCQlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCQloZWFwX2ZyZWV0dXBsZSh0dXAp OworCisJCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQs IGxhYmVsb2lkKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVs YXRpb25JZCwgZ3JhcGhpZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJl bmNlZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJ fQorCisJLyoKKwkgKiBJbnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbAorCSAq LworCXsKKwkJUmVsYXRpb24JcmVsOworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBo X2VsZW1lbnRfbGFiZWxdID0gezB9OworCQlIZWFwVHVwbGUJdHVwOworCQlPYmplY3RBZGRyZXNz IG15c2VsZjsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOworCisJCXJlbCA9IHRhYmxlX29w ZW4oUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwkJZWxsYWJlbG9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFByb3BncmFwaEVsZW1lbnRM YWJlbE9iamVjdEluZGV4SWQsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkKTsK KwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGVsbGFiZWxvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxl bWVudF9sYWJlbF9wZ2VsbGFiZWxpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShsYWJlbG9pZCk7 CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX3BnZWxlbGlkIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKHBlb2lkKTsKKworCQl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwkJQ2F0YWxvZ1R1cGxlSW5zZXJ0 KHJlbCwgdHVwKTsKKwkJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCQlPYmplY3RBZGRyZXNzU2V0 KG15c2VsZiwgUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgZWxsYWJlbG9pZCk7CisK KwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQs IGxhYmVsb2lkKTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBE RVBFTkRFTkNZX0FVVE8pOworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFw aEVsZW1lbnRSZWxhdGlvbklkLCBwZW9pZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxm LCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIE5v TG9jayk7CisJfQorCisJcmV0dXJuIGVsbGFiZWxvaWQ7Cit9CisKKy8qCisgKiBJbnNlcnQgcmVj b3JkcyBmb3IgcHJvcGVydGllcyBpbnRvIHRoZSBwZ19wcm9wZ3JhcGhfcHJvcGVydHkgY2F0YWxv Zy4KKyAqLworc3RhdGljIHZvaWQKK2luc2VydF9wcm9wZXJ0eV9yZWNvcmRzKE9pZCBncmFwaGlk LCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBjb25zdCBQcm9wR3JhcGhQcm9wZXJ0aWVz ICpwcm9wZXJ0aWVzKQoreworCUxpc3QJICAgKnByb3BsaXN0ID0gTklMOworCVBhcnNlU3RhdGUg KnBzdGF0ZTsKKwlQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbTsKKwlMaXN0CSAgICp0cDsKKwlS ZWxhdGlvbglyZWw7CisJTGlzdENlbGwgICAqbGM7CisKKwlpZiAocHJvcGVydGllcy0+YWxsKQor CXsKKwkJUmVsYXRpb24JYXR0UmVsYXRpb247CisJCVN5c1NjYW5EZXNjIHNjYW47CisJCVNjYW5L ZXlEYXRhIGtleVsxXTsKKwkJSGVhcFR1cGxlCWF0dHJpYnV0ZVR1cGxlOworCisJCWF0dFJlbGF0 aW9uID0gdGFibGVfb3BlbihBdHRyaWJ1dGVSZWxhdGlvbklkLCBSb3dTaGFyZUxvY2spOworCQlT Y2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCQlBbnVtX3BnX2F0dHJpYnV0ZV9hdHRyZWxpZCwKKwkJ CQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERhdHVt KHBnZXJlbGlkKSk7CisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4oYXR0UmVsYXRpb24sIEF0 dHJpYnV0ZVJlbGlkTnVtSW5kZXhJZCwKKwkJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCBrZXkpOwor CQl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZChhdHRyaWJ1dGVUdXBsZSA9IHN5c3RhYmxlX2dldG5l eHQoc2NhbikpKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSAoRm9ybV9wZ19hdHRy aWJ1dGUpIEdFVFNUUlVDVChhdHRyaWJ1dGVUdXBsZSk7CisJCQlDb2x1bW5SZWYgICpjcjsKKwkJ CVJlc1RhcmdldCAgKnJ0OworCisJCQlpZiAoYXR0LT5hdHRudW0gPD0gMCB8fCBhdHQtPmF0dGlz ZHJvcHBlZCkKKwkJCQljb250aW51ZTsKKworCQkJY3IgPSBtYWtlTm9kZShDb2x1bW5SZWYpOwor CQkJcnQgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQljci0+ZmllbGRzID0gbGlzdF9tYWtl MShtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cihhdHQtPmF0dG5hbWUpKSkpOworCQkJY3ItPmxv Y2F0aW9uID0gLTE7CisKKwkJCXJ0LT5uYW1lID0gcHN0cmR1cChOYW1lU3RyKGF0dC0+YXR0bmFt ZSkpOworCQkJcnQtPnZhbCA9IChOb2RlICopIGNyOworCQkJcnQtPmxvY2F0aW9uID0gLTE7CisK KwkJCXByb3BsaXN0ID0gbGFwcGVuZChwcm9wbGlzdCwgcnQpOworCQl9CisJCXN5c3RhYmxlX2Vu ZHNjYW4oc2Nhbik7CisJCXRhYmxlX2Nsb3NlKGF0dFJlbGF0aW9uLCBSb3dTaGFyZUxvY2spOwor CX0KKwllbHNlCisJeworCQlwcm9wbGlzdCA9IHByb3BlcnRpZXMtPnByb3BlcnRpZXM7CisKKwkJ Zm9yZWFjaChsYywgcHJvcGxpc3QpCisJCXsKKwkJCVJlc1RhcmdldCAgKnJ0ID0gbGZpcnN0X25v ZGUoUmVzVGFyZ2V0LCBsYyk7CisKKwkJCWlmICghcnQtPm5hbWUgJiYgIUlzQShydC0+dmFsLCBD b2x1bW5SZWYpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygicHJvcGVydHkgbmFtZSByZXF1aXJlZCIpLAorCQkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKE5VTEwsIHJ0LT5sb2NhdGlvbikpOworCQl9CisJfQorCisJ cmVsID0gdGFibGVfb3BlbihwZ2VyZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXBzdGF0ZSA9 IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKKwluc2l0ZW0gPSBhZGRSYW5nZVRhYmxlRW50cnlGb3JS ZWxhdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJICAgcmVsLAorCQkJCQkJCQkJCSAgIEFjY2Vzc1No YXJlTG9jaywKKwkJCQkJCQkJCQkgICBOVUxMLAorCQkJCQkJCQkJCSAgIGZhbHNlLAorCQkJCQkJ CQkJCSAgIHRydWUpOworCWFkZE5TSXRlbVRvUXVlcnkocHN0YXRlLCBuc2l0ZW0sIHRydWUsIHRy dWUsIHRydWUpOworCisJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJdHAgPSB0cmFuc2Zv cm1UYXJnZXRMaXN0KHBzdGF0ZSwgcHJvcGxpc3QsIEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVS VFkpOworCisJZm9yZWFjaChsYywgdHApCisJeworCQlUYXJnZXRFbnRyeSAqdGUgPSBsZmlyc3Rf bm9kZShUYXJnZXRFbnRyeSwgbGMpOworCisJCWluc2VydF9wcm9wZXJ0eV9yZWNvcmQoZ3JhcGhp ZCwgZWxsYWJlbG9pZCwgcGdlcmVsaWQsIHRlLT5yZXNuYW1lLCB0ZS0+ZXhwcik7CisJfQorfQor CisvKgorICogSW5zZXJ0IHJlY29yZHMgZm9yIGEgcHJvcGVydHkgaW50byB0aGUgcGdfcHJvcGdy YXBoX3Byb3BlcnR5IGFuZAorICogcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IGNhdGFsb2dz LCBhbmQgcmVnaXN0ZXIgZGVwZW5kZW5jaWVzLgorICovCitzdGF0aWMgdm9pZAoraW5zZXJ0X3By b3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBwZ2VyZWxpZCwg Y29uc3QgY2hhciAqcHJvcG5hbWUsIGNvbnN0IEV4cHIgKmV4cHIpCit7CisJT2lkCQkJcHJvcG9p ZDsKKwlPaWQJCQlleHBydHlwaWQ7CisJT2lkCQkJcHJvcHR5cGlkOworCisJZXhwcnR5cGlkID0g ZXhwclR5cGUoKGNvbnN0IE5vZGUgKikgZXhwcik7CisKKwkvKgorCSAqIEluc2VydCBpbnRvIHBn X3Byb3BncmFwaF9wcm9wZXJ0eSBpZiBub3QgYWxyZWFkeSBleGlzdGluZy4KKwkgKi8KKwlwcm9w b2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSFBST1BOQU1FLCBBbnVtX3BnX3Byb3BncmFw aF9wcm9wZXJ0eV9vaWQsIE9iamVjdElkR2V0RGF0dW0oZ3JhcGhpZCksIENTdHJpbmdHZXREYXR1 bShwcm9wbmFtZSkpOworCWlmICghcHJvcG9pZCkKKwl7CisJCVJlbGF0aW9uCXJlbDsKKwkJTmFt ZURhdGEJcHJvcG5hbWVkYXRhOworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9w cm9wZXJ0eV0gPSB7MH07CisJCWJvb2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFwaF9wcm9wZXJ0 eV0gPSB7MH07CisJCUhlYXBUdXBsZQl0dXA7CisJCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCQlP YmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisKKwkJcHJvcHR5cGlkID0gZXhwcnR5cGlkOworCisJ CXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCQlwcm9wb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgUHJvcGdyYXBo UHJvcGVydHlPYmplY3RJbmRleElkLCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQpOwor CQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHByb3BvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdw cGdpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKTsKKwkJbmFtZXN0cmNweSgmcHJv cG5hbWVkYXRhLCBwcm9wbmFtZSk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0 eV9wZ3BuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnByb3BuYW1lZGF0YSk7CisJCXZhbHVlc1tB bnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bShwcm9wdHlwaWQpOworCisJCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2Ny KHJlbCksIHZhbHVlcywgbnVsbHMpOworCQlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CQloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9w Z3JhcGhQcm9wZXJ0eVJlbGF0aW9uSWQsIHByb3BvaWQpOworCisJCU9iamVjdEFkZHJlc3NTZXQo cmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBncmFwaGlkKTsKKwkJcmVjb3JkRGVwZW5k ZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX0FVVE8pOworCQlPYmplY3RB ZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlvbklkLCBwcm9wdHlwaWQpOworCQlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsK KworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJfQorCWVsc2UKKwl7CisJCXByb3B0eXBp ZCA9IEdldFN5c0NhY2hlT2lkMShQUk9QR1JBUEhQUk9QT0lELCBBbnVtX3BnX3Byb3BncmFwaF9w cm9wZXJ0eV9wZ3B0eXBpZCwgT2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKSk7CisJfQorCisJLyoK KwkgKiBDaGVjayB0aGF0IGluIHRoZSBncmFwaCwgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUgc2Ft ZSBuYW1lIGhhdmUgdGhlCisJICogc2FtZSB0eXBlIChpbmRlcGVuZGVudCBvZiB3aGljaCBsYWJl bCB0aGV5IGFyZSBvbikuICAoU2VlIFNRTC9QR1EKKwkgKiBzdWJjbGF1c2UgIkNvbnNpc3RlbmN5 IGNoZWNrIG9mIGEgdGFidWxhciBwcm9wZXJ0eSBncmFwaCBkZXNjcmlwdG9yIi4pCisJICovCisJ aWYgKHByb3B0eXBpZCAhPSBleHBydHlwaWQpCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCWVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCWVycm1zZygicHJvcGVydHkgXCIlc1wi IGRhdGEgdHlwZSBtaXNtYXRjaDogJXMgdnMuICVzIiwKKwkJCQkJICAgcHJvcG5hbWUsIGZvcm1h dF90eXBlX2JlKHByb3B0eXBpZCksIGZvcm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCWVy cmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFwaCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1l IGhhcyB0byBoYXZlIHRoZSBzYW1lIGRhdGEgdHlwZSBpbiBlYWNoIGxhYmVsLiIpKTsKKwl9CisK KwkvKgorCSAqIEluc2VydCBpbnRvIHBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eQorCSAqLwor CXsKKwkJUmVsYXRpb24JcmVsOworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9s YWJlbF9wcm9wZXJ0eV0gPSB7MH07CisJCWJvb2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFwaF9s YWJlbF9wcm9wZXJ0eV0gPSB7MH07CisJCU9pZAkJCXBscG9pZDsKKwkJSGVhcFR1cGxlCXR1cDsK KwkJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJCU9iamVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKwor CQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkLCBSb3dF eGNsdXNpdmVMb2NrKTsKKworCQlwbHBvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBQcm9w Z3JhcGhMYWJlbFByb3BlcnR5T2JqZWN0SW5kZXhJZCwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxf cHJvcGVydHlfb2lkKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5 X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwbHBvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19w cm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwcHJvcGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KHByb3BvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxw ZWxsYWJlbGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGVsbGFiZWxvaWQpOworCQl2YWx1ZXNb QW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwZXhwciAtIDFdID0gQ1N0cmluZ0dl dFRleHREYXR1bShub2RlVG9TdHJpbmcoZXhwcikpOworCisJCXR1cCA9IGhlYXBfZm9ybV90dXBs ZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCQlDYXRhbG9nVHVwbGVJ bnNlcnQocmVsLCB0dXApOworCQloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJCU9iamVjdEFkZHJl c3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgcGxwb2lkKTsK KworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaFByb3BlcnR5UmVsYXRp b25JZCwgcHJvcG9pZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNl ZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFBy b3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIGVsbGFiZWxvaWQpOworCQlyZWNvcmREZXBl bmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkJcmVj b3JkRGVwZW5kZW5jeU9uU2luZ2xlUmVsRXhwcigmbXlzZWxmLCAoTm9kZSAqKSBjb3B5T2JqZWN0 KGV4cHIpLCBwZ2VyZWxpZCwgREVQRU5ERU5DWV9OT1JNQUwsIERFUEVOREVOQ1lfTk9STUFMLCBm YWxzZSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCX0KK30KKworLyoKKyAqIENo ZWNrIHRoYXQgZm9yIHRoZSBnaXZlbiBncmFwaCBlbGVtZW50LCBhbGwgcHJvcGVydGllcyB3aXRo IHRoZSBzYW1lIG5hbWUKKyAqIGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBmb3IgZWFjaCBsYWJl bC4gIChTZWUgU1FML1BHUSBzdWJjbGF1c2UgIkNyZWF0aW9uCisgKiBvZiBhbiBlbGVtZW50IHRh YmxlIGRlc2NyaXB0b3IiLikKKyAqCisgKiBXZSBjaGVjayB0aGlzIGFmdGVyIGFsbCB0aGUgY2F0 YWxvZyByZWNvcmRzIGFyZSBhbHJlYWR5IGluc2VydGVkLiAgVGhpcworICogbWFrZXMgaXQgZWFz aWVyIHRvIHNoYXJlIHRoaXMgY29kZSBiZXR3ZWVuIENSRUFURSBQUk9QRVJUWSBHUkFQSCBhbmQg QUxURVIKKyAqIFBST1BFUlRZIEdSQVBILiAgV2UgcGFzcyBpbiB0aGUgZWxlbWVudCBPSUQgc28g dGhhdCBBTFRFUiBQUk9QRVJUWSBHUkFQSAorICogb25seSBoYXMgdG8gY2hlY2sgdGhlIGVsZW1l bnQgaXQgaGFzIGp1c3Qgb3BlcmF0ZWQgb24uICBDUkVBVEUgUFJPUEVSVFkKKyAqIEdST1VQIGNo ZWNrcyBhbGwgZWxlbWVudHMgaXQgaGFzIGNyZWF0ZWQuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVj a19lbGVtZW50X3Byb3BlcnRpZXMoT2lkIHBlb2lkKQoreworCVJlbGF0aW9uCXJlbDE7CisJU2Nh bktleURhdGEga2V5MVsxXTsKKwlTeXNTY2FuRGVzYyBzY2FuMTsKKwlIZWFwVHVwbGUJdHVwbGUx OworCUxpc3QJICAgKnByb3BvaWRzID0gTklMOworCUxpc3QJICAgKnByb3BleHBycyA9IE5JTDsK KworCXJlbDEgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisJU2NhbktleUluaXQoJmtleTFbMF0sCisJCQkJQW51bV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShwZW9pZCkpOworCisJc2NhbjEgPSBzeXN0 YWJsZV9iZWdpbnNjYW4ocmVsMSwgUHJvcGdyYXBoRWxlbWVudExhYmVsRWxlbWVudExhYmVsSW5k ZXhJZCwgdHJ1ZSwgTlVMTCwgMSwga2V5MSk7CisJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVw bGUxID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuMSkpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhf ZWxlbWVudF9sYWJlbCBlbGxhYmVsID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwp IEdFVFNUUlVDVCh0dXBsZTEpOworCQlSZWxhdGlvbglyZWwyOworCQlTY2FuS2V5RGF0YSBrZXky WzFdOworCQlTeXNTY2FuRGVzYyBzY2FuMjsKKwkJSGVhcFR1cGxlCXR1cGxlMjsKKworCQlyZWwy ID0gdGFibGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJU2NhbktleUluaXQoJmtleTJbMF0sCisJCQkJCUFudW1fcGdfcHJvcGdyYXBo X2xhYmVsX3Byb3BlcnR5X3BscGVsbGFiZWxpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVy LCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERhdHVtKGVsbGFiZWwtPm9pZCkpOworCisJCXNj YW4yID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbDIsIFByb3BncmFwaExhYmVsUHJvcGVydHlMYWJl bFByb3BJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkyKTsKKwkJd2hpbGUgKEhlYXBUdXBsZUlz VmFsaWQodHVwbGUyID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuMikpKQorCQl7CisJCQlGb3JtX3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSBscHJvcCA9IChGb3JtX3BnX3Byb3BncmFwaF9sYWJl bF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlMik7CisJCQlPaWQJCQlwcm9wb2lkOworCQkJRGF0 dW0JCWRhdHVtOworCQkJYm9vbAkJaXNudWxsOworCQkJY2hhcgkgICAqcHJvcGV4cHI7CisJCQlM aXN0Q2VsbCAgICpsYzEsCisJCQkJCSAgICpsYzI7CisJCQlib29sCQlmb3VuZDsKKworCQkJcHJv cG9pZCA9IGxwcm9wLT5wbHBwcm9waWQ7CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZTIs IEFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X3BscGV4cHIsIFJlbGF0aW9uR2V0RGVz Y3IocmVsMiksICZpc251bGwpOworCQkJQXNzZXJ0KCFpc251bGwpOworCQkJcHJvcGV4cHIgPSBU ZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKworCQkJZm91bmQgPSBmYWxzZTsKKwkJCWZvcmJv dGgobGMxLCBwcm9wb2lkcywgbGMyLCBwcm9wZXhwcnMpCisJCQl7CisJCQkJaWYgKHByb3BvaWQg PT0gbGZpcnN0X29pZChsYzEpKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqbmEsCisJCQkJCQkJICAg Km5iOworCisJCQkJCW5hID0gc3RyaW5nVG9Ob2RlKHByb3BleHByKTsKKwkJCQkJbmIgPSBzdHJp bmdUb05vZGUobGZpcnN0KGxjMikpOworCisJCQkJCWZvdW5kID0gdHJ1ZTsKKworCQkJCQlpZiAo IWVxdWFsKG5hLCBuYikpCisJCQkJCXsKKwkJCQkJCUhlYXBUdXBsZQl0dXBsZTM7CisJCQkJCQlG b3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IGVsZm9ybTsKKwkJCQkJCUxpc3QJICAgKmRwY29udGV4 dDsKKwkJCQkJCWNoYXIJICAgKmRwYSwKKwkJCQkJCQkJICAgKmRwYjsKKworCQkJCQkJdHVwbGUz ID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKHBlb2lk KSk7CisJCQkJCQlpZiAoIXR1cGxlMykKKwkJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIHBlb2lkKTsKKwkJCQkJCWVs Zm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJVQ1QodHVwbGUzKTsKKwkJ CQkJCWRwY29udGV4dCA9IGRlcGFyc2VfY29udGV4dF9mb3IoZ2V0X3JlbF9uYW1lKGVsZm9ybS0+ cGdlcmVsaWQpLCBlbGZvcm0tPnBnZXJlbGlkKTsKKworCQkJCQkJZHBhID0gZGVwYXJzZV9leHBy ZXNzaW9uKG5hLCBkcGNvbnRleHQsIGZhbHNlLCBmYWxzZSk7CisJCQkJCQlkcGIgPSBkZXBhcnNl X2V4cHJlc3Npb24obmIsIGRwY29udGV4dCwgZmFsc2UsIGZhbHNlKTsKKworCQkJCQkJLyoKKwkJ CQkJCSAqIHNob3cgaW4gc29ydGVkIG9yZGVyIHRvIGtlZXAgb3V0cHV0IGluZGVwZW5kZW50IG9m CisJCQkJCQkgKiBpbmRleCBvcmRlcgorCQkJCQkJICovCisJCQkJCQlpZiAoc3RyY21wKGRwYSwg ZHBiKSA+IDApCisJCQkJCQl7CisJCQkJCQkJY2hhcgkgICAqdG1wOworCisJCQkJCQkJdG1wID0g ZHBhOworCQkJCQkJCWRwYSA9IGRwYjsKKwkJCQkJCQlkcGIgPSB0bXA7CisJCQkJCQl9CisKKwkJ CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJCQllcnJtc2coImVsZW1lbnQgXCIlc1wiIHByb3BlcnR5IFwiJXNcIiBleHByZXNz aW9uIG1pc21hdGNoOiAlcyB2cy4gJXMiLAorCQkJCQkJCQkJICAgTmFtZVN0cihlbGZvcm0tPnBn ZWFsaWFzKSwgZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHByb3BvaWQpLCBkcGEsIGRwYiks CisJCQkJCQkJCWVycmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFwaCBlbGVtZW50LCBhIHByb3Bl cnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBpbiBl YWNoIGxhYmVsLiIpKTsKKworCQkJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlMyk7CisJCQkJCX0K KworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCWlmICghZm91bmQpCisJCQl7CisJCQkJ cHJvcG9pZHMgPSBsYXBwZW5kX29pZChwcm9wb2lkcywgcHJvcG9pZCk7CisJCQkJcHJvcGV4cHJz ID0gbGFwcGVuZChwcm9wZXhwcnMsIHByb3BleHByKTsKKwkJCX0KKwkJfQorCQlzeXN0YWJsZV9l bmRzY2FuKHNjYW4yKTsKKwkJdGFibGVfY2xvc2UocmVsMiwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9 CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4xKTsKKwl0YWJsZV9jbG9zZShyZWwxLCBBY2Nlc3NT aGFyZUxvY2spOworfQorCisvKgorICogQ2hlY2sgdGhhdCBmb3IgdGhlIGdpdmVuIGVsZW1lbnQg bGFiZWwsIGFsbCBsYWJlbHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGUKKyAqIGdyYXBoIGhhdmUg dGhlIHNhbWUgbnVtYmVyIGFuZCBuYW1lcyBvZiBwcm9wZXJ0aWVzIChpbmRlcGVuZGVudCBvZiB3 aGljaAorICogZWxlbWVudCB0aGV5IGFyZSBvbikuICAoU2VlIFNRTC9QR1Egc3ViY2xhdXNlICJD b25zaXN0ZW5jeSBjaGVjayBvZiBhCisgKiB0YWJ1bGFyIHByb3BlcnR5IGdyYXBoIGRlc2NyaXB0 b3IiLikKKyAqCisgKiBXZSBjaGVjayB0aGlzIGFmdGVyIGFsbCB0aGUgY2F0YWxvZyByZWNvcmRz IGFyZSBhbHJlYWR5IGluc2VydGVkLiAgVGhpcworICogbWFrZXMgaXQgZWFzaWVyIHRvIHNoYXJl IHRoaXMgY29kZSBiZXR3ZWVuIENSRUFURSBQUk9QRVJUWSBHUkFQSCBhbmQgQUxURVIKKyAqIFBS T1BFUlRZIEdSQVBILiAgV2UgcGFzcyBpbiB0aGUgZWxlbWVudCBsYWJlbCBPSUQgc28gdGhhdCBz b21lIHZhcmlhbnRzIG9mCisgKiBBTFRFUiBQUk9QRVJUWSBHUkFQSCBvbmx5IGhhdmUgdG8gY2hl Y2sgdGhlIGVsZW1lbnQgbGFiZWwgaXQgaGFzIGp1c3QKKyAqIG9wZXJhdGVkIG9uLiAgQ1JFQVRF IFBST1BFUlRZIEdST1VQIGFuZCBvdGhlciBBTFRFUiBQUk9QRVJUWSBHUkFQSCB2YXJpYW50cwor ICogY2hlY2sgYWxsIGxhYmVscy4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2VsZW1lbnRfbGFi ZWxfcHJvcGVydGllcyhPaWQgZWxsYWJlbG9pZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJU3lzU2Nh bkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXlbMV07CisJSGVhcFR1cGxlCXR1cGxlOworCU9p ZAkJCWxhYmVsaWQgPSBJbnZhbGlkT2lkOworCU9pZAkJCXJlZl9lbGxhYmVsb2lkID0gSW52YWxp ZE9pZDsKKwlMaXN0CSAgICpteXByb3BzLAorCQkJICAgKnJlZnByb3BzOworCUxpc3QJICAgKmRp ZmYxLAorCQkJICAgKmRpZmYyOworCisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50 TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyoKKwkgKiBHZXQgZWxlbWVu dCBsYWJlbCBpbmZvCisJICovCisJU2NhbktleUluaXQoJmtleVswXSwKKwkJCQlBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJ CQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShlbGxhYmVsb2lkKSk7CisJc2NhbiA9IHN5c3Rh YmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbE9iamVjdEluZGV4SWQsIHRy dWUsIE5VTEwsIDEsIGtleSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJs ZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwg ZWxsYWJlbCA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1QodHVw bGUpOworCisJCWxhYmVsaWQgPSBlbGxhYmVsLT5wZ2VsbGFiZWxpZDsKKwl9CisJc3lzdGFibGVf ZW5kc2NhbihzY2FuKTsKKwlpZiAoIWxhYmVsaWQpCisJCWVsb2coRVJST1IsICJlbGVtZW50IGxh YmVsICV1IG5vdCBmb3VuZCIsIGVsbGFiZWxvaWQpOworCisJLyoKKwkgKiBGaW5kIGEgcmVmZXJl bmNlIGVsZW1lbnQgbGFiZWwgdG8gZmV0Y2ggbGFiZWwgcHJvcGVydGllcy4gIFRoZQorCSAqIHJl ZmVyZW5jZSBlbGVtZW50IGxhYmVsIGhhcyB0byBoYXZlIHRoZSBsYWJlbCBPSUQgYXMgdGhlIG9u ZSBiZWluZworCSAqIGNoZWNrZWQgYnV0IGJlIGRpc3RpbmN0IGZyb20gdGhlIG9uZSBiZWluZyBj aGVja2VkLgorCSAqLworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9sYWJlbF9wZ2VsbGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs CisJCQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShsYWJlbGlkKSk7CisJc2NhbiA9IHN5c3Rh YmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbExhYmVsSW5kZXhJZCwgdHJ1 ZSwgTlVMTCwgMSwga2V5KTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3Rh YmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJl bCBvdGhlcmVsbGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCkgR0VUU1RS VUNUKHR1cGxlKTsKKworCQlpZiAob3RoZXJlbGxhYmVsLT5vaWQgIT0gZWxsYWJlbG9pZCkKKwkJ eworCQkJcmVmX2VsbGFiZWxvaWQgPSBvdGhlcmVsbGFiZWwtPm9pZDsKKwkJCWJyZWFrOworCQl9 CisJfQorCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwl0YWJsZV9jbG9zZShyZWwsIEFjY2Vz c1NoYXJlTG9jayk7CisKKwkvKgorCSAqIElmIHRoZXJlIGlzIG5vdCBwcmV2aW91cyBkZWZpbml0 aW9uIG9mIHRoaXMgbGFiZWwsIHRoZW4gd2UgYXJlIGRvbmUuCisJICovCisJaWYgKCFyZWZfZWxs YWJlbG9pZCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBOb3cgY2hlY2sgbnVtYmVyIGFuZCBuYW1l cy4KKwkgKgorCSAqIFhYWCBXZSBjb3VsZCBwcm92aWRlIG1vcmUgZGV0YWlsIGluIHRoZSBlcnJv ciBtZXNzYWdlcywgYnV0IHRoYXQgd291bGQKKwkgKiBwcm9iYWJseSBvbmx5IGJlIHVzZWZ1bCBm b3Igc29tZSBBTFRFUiBjb21tYW5kcywgYmVjYXVzZSBvdGhlcndpc2UgaXQncworCSAqIG5vdCBy ZWFsbHkgY2xlYXIgd2hpY2ggbGFiZWwgZGVmaW5pdGlvbiBpcyB0aGUgd3Jvbmcgb25lLCBhbmQg c28geW91J2QKKwkgKiBoYXZlIHRvIGNvbnN0cnVjdCBhIHJhdGhlciB2ZXJib3NlIHJlcG9ydCB0 byBiZSBvZiBhbnkgdXNlLiAgTGV0J3Mga2VlcAorCSAqIGl0IHNpbXBsZSBmb3Igbm93LgorCSAq LworCisJbXlwcm9wcyA9IGdldF9lbGVtZW50X2xhYmVsX3Byb3BlcnR5X25hbWVzKGVsbGFiZWxv aWQpOworCXJlZnByb3BzID0gZ2V0X2VsZW1lbnRfbGFiZWxfcHJvcGVydHlfbmFtZXMocmVmX2Vs bGFiZWxvaWQpOworCisJaWYgKGxpc3RfbGVuZ3RoKHJlZnByb3BzKSAhPSBsaXN0X2xlbmd0aCht eXByb3BzKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJv cGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsIFwiJXNcIiIsIGdldF9wcm9wZ3JhcGhfbGFi ZWxfbmFtZShsYWJlbGlkKSkpOworCisJZGlmZjEgPSBsaXN0X2RpZmZlcmVuY2UobXlwcm9wcywg cmVmcHJvcHMpOworCWRpZmYyID0gbGlzdF9kaWZmZXJlbmNlKHJlZnByb3BzLCBteXByb3BzKTsK KworCWlmIChkaWZmMSB8fCBkaWZmMikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJtaXNtYXRjaGlu ZyBwcm9wZXJ0aWVzIG5hbWVzIGluIGRlZmluaXRpb24gb2YgbGFiZWwgXCIlc1wiIiwgZ2V0X3By b3BncmFwaF9sYWJlbF9uYW1lKGxhYmVsaWQpKSk7Cit9CisKKy8qCisgKiBBcyBhYm92ZSwgYnV0 IGNoZWNrIGFsbCBsYWJlbHMgb2YgYSBncmFwaC4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2Fs bF9sYWJlbHNfcHJvcGVydGllcyhPaWQgcGdyZWxpZCkKK3sKKwlmb3JlYWNoX29pZChsYWJlbG9p ZCwgZ2V0X2dyYXBoX2xhYmVsX2lkcyhwZ3JlbGlkKSkKKwl7CisJCWZvcmVhY2hfb2lkKGVsbGFi ZWxvaWQsIGdldF9sYWJlbF9lbGVtZW50X2xhYmVsX2lkcyhsYWJlbG9pZCkpCisJCXsKKwkJCWNo ZWNrX2VsZW1lbnRfbGFiZWxfcHJvcGVydGllcyhlbGxhYmVsb2lkKTsKKwkJfQorCX0KK30KKwor LyoKKyAqIEFMVEVSIFBST1BFUlRZIEdSQVBICisgKi8KK09iamVjdEFkZHJlc3MKK0FsdGVyUHJv cEdyYXBoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQWx0ZXJQcm9wR3JhcGhTdG10ICpzdG10 KQoreworCU9pZAkJCXBncmVsaWQ7CisJTGlzdENlbGwgICAqbGM7CisJT2JqZWN0QWRkcmVzcyBw Z2FkZHJlc3M7CisKKwlwZ3JlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnBn bmFtZSwKKwkJCQkJCQkJCSAgIFNoYXJlUm93RXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCSAgIHN0 bXQtPm1pc3Npbmdfb2sgPyBSVlJfTUlTU0lOR19PSyA6IDAsCisJCQkJCQkJCQkgICBSYW5nZVZh ckNhbGxiYWNrT3duc1JlbGF0aW9uLAorCQkJCQkJCQkJICAgTlVMTCk7CisJaWYgKHBncmVsaWQg PT0gSW52YWxpZE9pZCkKKwl7CisJCWVyZXBvcnQoTk9USUNFLAorCQkJCShlcnJtc2coInJlbGF0 aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciLAorCQkJCQkJc3RtdC0+cGduYW1l LT5yZWxuYW1lKSkpOworCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJT2Jq ZWN0QWRkcmVzc1NldChwZ2FkZHJlc3MsIFJlbGF0aW9uUmVsYXRpb25JZCwgcGdyZWxpZCk7CisK Kwlmb3JlYWNoKGxjLCBzdG10LT5hZGRfdmVydGV4X3RhYmxlcykKKwl7CisJCVByb3BHcmFwaFZl cnRleCAqdmVydGV4ID0gbGZpcnN0X25vZGUoUHJvcEdyYXBoVmVydGV4LCBsYyk7CisJCXN0cnVj dCBlbGVtZW50X2luZm8gKnZpbmZvOworCQlSZWxhdGlvbglyZWw7CisJCU9pZAkJCXBlb2lkOwor CisJCXZpbmZvID0gcGFsbG9jMF9vYmplY3Qoc3RydWN0IGVsZW1lbnRfaW5mbyk7CisJCXZpbmZv LT5raW5kID0gUEdFS0lORF9WRVJURVg7CisKKwkJdmluZm8tPnJlbGlkID0gUmFuZ2VWYXJHZXRS ZWxpZEV4dGVuZGVkKHZlcnRleC0+dnRhYmxlLCBBY2Nlc3NTaGFyZUxvY2ssIDAsIFJhbmdlVmFy Q2FsbGJhY2tPd25zUmVsYXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRhYmxlX29wZW4odmluZm8t PnJlbGlkLCBOb0xvY2spOworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0g UkVMUEVSU0lTVEVOQ0VfVEVNUCAmJiBnZXRfcmVsX3BlcnNpc3RlbmNlKHBncmVsaWQpICE9IFJF TFBFUlNJU1RFTkNFX1RFTVApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWRk IHRlbXBvcmFyeSBlbGVtZW50IHRhYmxlIHRvIG5vbi10ZW1wb3JhcnkgcHJvcGVydHkgZ3JhcGgi KSwKKwkJCQkJIGVycmRldGFpbCgiVGFibGUgXCIlc1wiIGlzIGEgdGVtcG9yYXJ5IHRhYmxlLiIs IGdldF9yZWxfbmFtZSh2aW5mby0+cmVsaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIHZlcnRleC0+dnRhYmxlLT5sb2NhdGlvbikpKTsKKworCQlpZiAodmVydGV4LT52dGFi bGUtPmFsaWFzKQorCQkJdmluZm8tPmFsaWFzbmFtZSA9IHZlcnRleC0+dnRhYmxlLT5hbGlhcy0+ YWxpYXNuYW1lOworCQllbHNlCisJCQl2aW5mby0+YWxpYXNuYW1lID0gdmVydGV4LT52dGFibGUt PnJlbG5hbWU7CisKKwkJdmluZm8tPmtleSA9IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkocHN0 YXRlLCB2ZXJ0ZXgtPnZrZXksIHJlbCwgdmluZm8tPmFsaWFzbmFtZSwgdmVydGV4LT5sb2NhdGlv bik7CisKKwkJdmluZm8tPmxhYmVscyA9IHZlcnRleC0+bGFiZWxzOworCisJCXRhYmxlX2Nsb3Nl KHJlbCwgTm9Mb2NrKTsKKworCQlwZW9pZCA9IGluc2VydF9lbGVtZW50X3JlY29yZChwZ2FkZHJl c3MsIHZpbmZvKTsKKworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCQljaGVja19lbGVt ZW50X3Byb3BlcnRpZXMocGVvaWQpOworCQljaGVja19hbGxfbGFiZWxzX3Byb3BlcnRpZXMocGdy ZWxpZCk7CisJfQorCisJZm9yZWFjaChsYywgc3RtdC0+YWRkX2VkZ2VfdGFibGVzKQorCXsKKwkJ UHJvcEdyYXBoRWRnZSAqZWRnZSA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaEVkZ2UsIGxjKTsKKwkJ c3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJUmVsYXRpb24J c3JjcmVsOworCQlSZWxhdGlvbglkZXN0cmVsOworCQlPaWQJCQlwZW9pZDsKKworCQllaW5mbyA9 IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBlbGVtZW50X2luZm8pOworCQllaW5mby0+a2luZCA9IFBH RUtJTkRfRURHRTsKKworCQllaW5mby0+cmVsaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQo ZWRnZS0+ZXRhYmxlLCBBY2Nlc3NTaGFyZUxvY2ssIDAsIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVs YXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRhYmxlX29wZW4oZWluZm8tPnJlbGlkLCBOb0xvY2sp OworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0Vf VEVNUCAmJiBnZXRfcmVsX3BlcnNpc3RlbmNlKHBncmVsaWQpICE9IFJFTFBFUlNJU1RFTkNFX1RF TVApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JK RUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHRlbXBvcmFyeSBlbGVt ZW50IHRhYmxlIHRvIG5vbi10ZW1wb3JhcnkgcHJvcGVydHkgZ3JhcGgiKSwKKwkJCQkJIGVycmRl dGFpbCgiVGFibGUgXCIlc1wiIGlzIGEgdGVtcG9yYXJ5IHRhYmxlLiIsIGdldF9yZWxfbmFtZShl aW5mby0+cmVsaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmV0 YWJsZS0+bG9jYXRpb24pKSk7CisKKwkJaWYgKGVkZ2UtPmV0YWJsZS0+YWxpYXMpCisJCQllaW5m by0+YWxpYXNuYW1lID0gZWRnZS0+ZXRhYmxlLT5hbGlhcy0+YWxpYXNuYW1lOworCQllbHNlCisJ CQllaW5mby0+YWxpYXNuYW1lID0gZWRnZS0+ZXRhYmxlLT5yZWxuYW1lOworCisJCWVpbmZvLT5r ZXkgPSBwcm9wZ3JhcGhfZWxlbWVudF9nZXRfa2V5KHBzdGF0ZSwgZWRnZS0+ZWtleSwgcmVsLCBl aW5mby0+YWxpYXNuYW1lLCBlZGdlLT5sb2NhdGlvbik7CisKKwkJZWluZm8tPnNyY3ZlcnRleGlk ID0gZ2V0X3ZlcnRleF9vaWQocHN0YXRlLCBwZ3JlbGlkLCBlZGdlLT5lc3JjdmVydGV4LCBlZGdl LT5sb2NhdGlvbik7CisJCWVpbmZvLT5kZXN0dmVydGV4aWQgPSBnZXRfdmVydGV4X29pZChwc3Rh dGUsIHBncmVsaWQsIGVkZ2UtPmVkZXN0dmVydGV4LCBlZGdlLT5sb2NhdGlvbik7CisKKwkJZWlu Zm8tPnNyY3JlbGlkID0gZ2V0X2VsZW1lbnRfcmVsaWQoZWluZm8tPnNyY3ZlcnRleGlkKTsKKwkJ ZWluZm8tPmRlc3RyZWxpZCA9IGdldF9lbGVtZW50X3JlbGlkKGVpbmZvLT5kZXN0dmVydGV4aWQp OworCisJCXNyY3JlbCA9IHRhYmxlX29wZW4oZWluZm8tPnNyY3JlbGlkLCBBY2Nlc3NTaGFyZUxv Y2spOworCQlkZXN0cmVsID0gdGFibGVfb3BlbihlaW5mby0+ZGVzdHJlbGlkLCBBY2Nlc3NTaGFy ZUxvY2spOworCisJCXByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhwc3RhdGUsIGVkZ2UtPmVz cmNrZXksIGVkZ2UtPmVzcmN2ZXJ0ZXhjb2xzLCByZWwsIHNyY3JlbCwKKwkJCQkJCQkJCWVpbmZv LT5hbGlhc25hbWUsIGVkZ2UtPmxvY2F0aW9uLCAiU09VUkNFIiwKKwkJCQkJCQkJCSZlaW5mby0+ c3Jja2V5LCAmZWluZm8tPnNyY3JlZik7CisJCXByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhw c3RhdGUsIGVkZ2UtPmVkZXN0a2V5LCBlZGdlLT5lZGVzdHZlcnRleGNvbHMsIHJlbCwgZGVzdHJl bCwKKwkJCQkJCQkJCWVpbmZvLT5hbGlhc25hbWUsIGVkZ2UtPmxvY2F0aW9uLCAiREVTVElOQVRJ T04iLAorCQkJCQkJCQkJJmVpbmZvLT5kZXN0a2V5LCAmZWluZm8tPmRlc3RyZWYpOworCisJCWVp bmZvLT5sYWJlbHMgPSBlZGdlLT5sYWJlbHM7CisKKwkJdGFibGVfY2xvc2UoZGVzdHJlbCwgTm9M b2NrKTsKKwkJdGFibGVfY2xvc2Uoc3JjcmVsLCBOb0xvY2spOworCisJCXRhYmxlX2Nsb3NlKHJl bCwgTm9Mb2NrKTsKKworCQlwZW9pZCA9IGluc2VydF9lbGVtZW50X3JlY29yZChwZ2FkZHJlc3Ms IGVpbmZvKTsKKworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCQljaGVja19lbGVtZW50 X3Byb3BlcnRpZXMocGVvaWQpOworCQljaGVja19hbGxfbGFiZWxzX3Byb3BlcnRpZXMocGdyZWxp ZCk7CisJfQorCisJZm9yZWFjaChsYywgc3RtdC0+ZHJvcF92ZXJ0ZXhfdGFibGVzKQorCXsKKwkJ Y2hhcgkgICAqYWxpYXMgPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJCU9pZAkJCXBlb2lkOworCQlP YmplY3RBZGRyZXNzIG9iajsKKworCQlwZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdy ZWxpZCwgYWxpYXMsIC0xKTsKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIFByb3BncmFwaEVsZW1l bnRSZWxhdGlvbklkLCBwZW9pZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9w X2JlaGF2aW9yLCAwKTsKKwl9CisKKwlmb3JlYWNoKGxjLCBzdG10LT5kcm9wX2VkZ2VfdGFibGVz KQorCXsKKwkJY2hhcgkgICAqYWxpYXMgPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJCU9pZAkJCXBl b2lkOworCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3Rh dGUsIHBncmVsaWQsIGFsaWFzLCAtMSk7CisJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQcm9wZ3Jh cGhFbGVtZW50UmVsYXRpb25JZCwgcGVvaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgc3Rt dC0+ZHJvcF9iZWhhdmlvciwgMCk7CisJfQorCisJLyogUmVtb3ZlIGFueSBvcnBoYW5lZCBwZ19w cm9wZ3JhcGhfbGFiZWwgZW50cmllcyAqLworCWlmIChzdG10LT5kcm9wX3ZlcnRleF90YWJsZXMg fHwgc3RtdC0+ZHJvcF9lZGdlX3RhYmxlcykKKwl7CisJCWZvcmVhY2hfb2lkKGxhYmVsb2lkLCBn ZXRfZ3JhcGhfbGFiZWxfaWRzKHBncmVsaWQpKQorCQl7CisJCQlpZiAoIWdldF9sYWJlbF9lbGVt ZW50X2xhYmVsX2lkcyhsYWJlbG9pZCkpCisJCQl7CisJCQkJT2JqZWN0QWRkcmVzcyBvYmo7CisK KwkJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkLCBsYWJl bG9pZCk7CisJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3BfYmVoYXZpb3IsIDAp OworCQkJfQorCQl9CisJfQorCisJZm9yZWFjaChsYywgc3RtdC0+YWRkX2xhYmVscykKKwl7CisJ CVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBsZmlyc3Rfbm9kZShQcm9wR3JhcGhM YWJlbEFuZFByb3BlcnRpZXMsIGxjKTsKKwkJT2lkCQkJcGVvaWQ7CisJCU9pZAkJCXBnZXJlbGlk OworCQlPaWQJCQllbGxhYmVsb2lkOworCisJCUFzc2VydChscC0+bGFiZWwpOworCisJCWlmIChz dG10LT5lbGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlw ZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlh cywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBncmVsaWQs IHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlwZ2VyZWxpZCA9IGdldF9lbGVtZW50X3Jl bGlkKHBlb2lkKTsKKworCQllbGxhYmVsb2lkID0gaW5zZXJ0X2xhYmVsX3JlY29yZChwZ3JlbGlk LCBwZW9pZCwgbHAtPmxhYmVsKTsKKwkJaW5zZXJ0X3Byb3BlcnR5X3JlY29yZHMocGdyZWxpZCwg ZWxsYWJlbG9pZCwgcGdlcmVsaWQsIGxwLT5wcm9wZXJ0aWVzKTsKKworCQlDb21tYW5kQ291bnRl ckluY3JlbWVudCgpOworCQljaGVja19lbGVtZW50X3Byb3BlcnRpZXMocGVvaWQpOworCQljaGVj a19lbGVtZW50X2xhYmVsX3Byb3BlcnRpZXMoZWxsYWJlbG9pZCk7CisJfQorCisJaWYgKHN0bXQt PmRyb3BfbGFiZWwpCisJeworCQlPaWQJCQlwZW9pZDsKKwkJT2lkCQkJbGFiZWxvaWQ7CisJCU9p ZAkJCWVsbGFiZWxvaWQ7CisJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCWlmIChzdG10LT5lbGVt ZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlwZW9pZCA9IGdl dF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlhcywgLTEpOwor CQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBncmVsaWQsIHN0bXQtPmVs ZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JB UEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJ CQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlkKSwKKwkJCQkJCQkJICAgQ1N0cmluZ0dl dERhdHVtKHN0bXQtPmRyb3BfbGFiZWwpKTsKKwkJaWYgKCFsYWJlbG9pZCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJy bXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgZWxlbWVudCBcIiVzXCIgaGFzIG5vIGxhYmVsIFwi JXNcIiIsCisJCQkJCQkgICBnZXRfcmVsX25hbWUocGdyZWxpZCksIHN0bXQtPmVsZW1lbnRfYWxp YXMsIHN0bXQtPmRyb3BfbGFiZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAt MSkpOworCisJCWVsbGFiZWxvaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExB QkVMRUxFTUVOVExBQkVMLAorCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFi ZWxfb2lkLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ocGVvaWQpLAorCQkJCQkJCQkJIE9i amVjdElkR2V0RGF0dW0obGFiZWxvaWQpKTsKKworCQlpZiAoIWVsbGFiZWxvaWQpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJ CWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGVsZW1lbnQgXCIlc1wiIGhhcyBubyBsYWJl bCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBncmVsaWQpLCBzdG10LT5lbGVtZW50 X2FsaWFzLCBzdG10LT5kcm9wX2xhYmVsKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgLTEpKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoRWxlbWVudExhYmVs UmVsYXRpb25JZCwgZWxsYWJlbG9pZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5k cm9wX2JlaGF2aW9yLCAwKTsKKworCQkvKiBSZW1vdmUgYW55IG9ycGhhbmVkIHBnX3Byb3BncmFw aF9sYWJlbCBlbnRyaWVzICovCisJCWlmICghZ2V0X2xhYmVsX2VsZW1lbnRfbGFiZWxfaWRzKGxh YmVsb2lkKSkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFByb3BncmFwaExhYmVsUmVs YXRpb25JZCwgbGFiZWxvaWQpOworCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3Bf YmVoYXZpb3IsIDApOworCQl9CisJfQorCisJaWYgKHN0bXQtPmFkZF9wcm9wZXJ0aWVzKQorCXsK KwkJT2lkCQkJcGVvaWQ7CisJCU9pZAkJCXBnZXJlbGlkOworCQlPaWQJCQlsYWJlbG9pZDsKKwkJ T2lkCQkJZWxsYWJlbG9pZDsKKworCQlpZiAoc3RtdC0+ZWxlbWVudF9raW5kID09IFBST1BHUkFQ SF9FTEVNRU5UX0tJTkRfVkVSVEVYKQorCQkJcGVvaWQgPSBnZXRfdmVydGV4X29pZChwc3RhdGUs IHBncmVsaWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKwkJZWxzZQorCQkJcGVvaWQgPSBn ZXRfZWRnZV9vaWQocHN0YXRlLCBwZ3JlbGlkLCBzdG10LT5lbGVtZW50X2FsaWFzLCAtMSk7CisK KwkJbGFiZWxvaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBITEFCRUxOQU1FLAorCQkJCQkJ CQkgICBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9vaWQsCisJCQkJCQkJCSAgIE9iamVjdElkR2V0 RGF0dW0ocGdyZWxpZCksCisJCQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bShzdG10LT5hbHRlcl9s YWJlbCkpOworCQlpZiAoIWxhYmVsb2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBo IFwiJXNcIiBlbGVtZW50IFwiJXNcIiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAgIGdl dF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0ZXJfbGFi ZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJCWVsbGFiZWxv aWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExBQkVMRUxFTUVOVExBQkVMLAor CQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkLAorCQkJCQkJCQkJ IE9iamVjdElkR2V0RGF0dW0ocGVvaWQpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obGFi ZWxvaWQpKTsKKwkJaWYgKCFlbGxhYmVsb2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5IGdy YXBoIFwiJXNcIiBlbGVtZW50IFwiJXNcIiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAg IGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0ZXJf bGFiZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJCXBnZXJl bGlkID0gZ2V0X2VsZW1lbnRfcmVsaWQocGVvaWQpOworCisJCWluc2VydF9wcm9wZXJ0eV9yZWNv cmRzKHBncmVsaWQsIGVsbGFiZWxvaWQsIHBnZXJlbGlkLCBzdG10LT5hZGRfcHJvcGVydGllcyk7 CisKKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKwkJY2hlY2tfZWxlbWVudF9wcm9wZXJ0 aWVzKHBlb2lkKTsKKwkJY2hlY2tfZWxlbWVudF9sYWJlbF9wcm9wZXJ0aWVzKGVsbGFiZWxvaWQp OworCX0KKworCWlmIChzdG10LT5kcm9wX3Byb3BlcnRpZXMpCisJeworCQlPaWQJCQlwZW9pZDsK KwkJT2lkCQkJbGFiZWxvaWQ7CisJCU9pZAkJCWVsbGFiZWxvaWQ7CisJCU9iamVjdEFkZHJlc3Mg b2JqOworCisJCWlmIChzdG10LT5lbGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lO RF9WRVJURVgpCisJCQlwZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3Rt dC0+ZWxlbWVudF9hbGlhcywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChw c3RhdGUsIHBncmVsaWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9 IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdf cHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlk KSwKKwkJCQkJCQkJICAgQ1N0cmluZ0dldERhdHVtKHN0bXQtPmFsdGVyX2xhYmVsKSk7CisJCWlm ICghbGFiZWxvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGVsZW1l bnQgXCIlc1wiIGhhcyBubyBsYWJlbCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBn cmVsaWQpLCBzdG10LT5lbGVtZW50X2FsaWFzLCBzdG10LT5hbHRlcl9sYWJlbCksCisJCQkJCXBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0xKSk7CisKKwkJZWxsYWJlbG9pZCA9IEdldFN5c0Nh Y2hlT2lkMihQUk9QR1JBUEhFTEVNRU5UTEFCRUxFTEVNRU5UTEFCRUwsCisJCQkJCQkJCQkgQW51 bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9vaWQsCisJCQkJCQkJCQkgT2JqZWN0SWRHZXRE YXR1bShwZW9pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShsYWJlbG9pZCkpOworCisJ CWlmICghZWxsYWJlbG9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIg ZWxlbWVudCBcIiVzXCIgaGFzIG5vIGxhYmVsIFwiJXNcIiIsCisJCQkJCQkgICBnZXRfcmVsX25h bWUocGdyZWxpZCksIHN0bXQtPmVsZW1lbnRfYWxpYXMsIHN0bXQtPmFsdGVyX2xhYmVsKSwKKwkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgLTEpKTsKKworCQlmb3JlYWNoKGxjLCBzdG10 LT5kcm9wX3Byb3BlcnRpZXMpCisJCXsKKwkJCWNoYXIJICAgKnByb3BuYW1lID0gc3RyVmFsKGxm aXJzdChsYykpOworCQkJT2lkCQkJcHJvcG9pZDsKKwkJCU9pZAkJCXBscG9pZDsKKworCQkJcHJv cG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhQUk9QTkFNRSwKKwkJCQkJCQkJCSAgQW51 bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVt KHBncmVsaWQpLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0ocHJvcG5hbWUpKTsKKwkJCWlm ICghcHJvcG9pZCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgZWxl bWVudCBcIiVzXCIgbGFiZWwgXCIlc1wiIGhhcyBubyBwcm9wZXJ0eSBcIiVzXCIiLAorCQkJCQkJ CSAgIGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0 ZXJfbGFiZWwsIHByb3BuYW1lKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0x KSk7CisKKwkJCXBscG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhMQUJFTFBST1AsIEFu dW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X29pZCwgT2JqZWN0SWRHZXREYXR1bShlbGxh YmVsb2lkKSwgT2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKSk7CisKKwkJCU9iamVjdEFkZHJlc3NT ZXQob2JqLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgcGxwb2lkKTsKKwkJCXBl cmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9wX2JlaGF2aW9yLCAwKTsKKwkJfQorCisJCWNo ZWNrX2VsZW1lbnRfbGFiZWxfcHJvcGVydGllcyhlbGxhYmVsb2lkKTsKKwl9CisKKwkvKiBSZW1v dmUgYW55IG9ycGhhbmVkIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSBlbnRyaWVzICovCisJaWYgKHN0 bXQtPmRyb3BfcHJvcGVydGllcyB8fCBzdG10LT5kcm9wX3ZlcnRleF90YWJsZXMgfHwgc3RtdC0+ ZHJvcF9lZGdlX3RhYmxlcykKKwl7CisJCWZvcmVhY2hfb2lkKHByb3BvaWQsIGdldF9ncmFwaF9w cm9wZXJ0eV9pZHMocGdyZWxpZCkpCisJCXsKKwkJCVJlbGF0aW9uCXJlbDsKKwkJCVN5c1NjYW5E ZXNjIHNjYW47CisJCQlTY2FuS2V5RGF0YSBrZXlbMV07CisKKwkJCXJlbCA9IHRhYmxlX29wZW4o UHJvcGdyYXBoTGFiZWxQcm9wZXJ0eVJlbGF0aW9uSWQsIFJvd1NoYXJlTG9jayk7CisJCQlTY2Fu S2V5SW5pdCgma2V5WzBdLAorCQkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlf cGxwcHJvcGlkLAorCQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJ T2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKSk7CisJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2Fu KHJlbCwgSW52YWxpZE9pZCAvKiBGSVhNRSAqLyAsCisJCQkJCQkJCQkgIHRydWUsIE5VTEwsIDEs IGtleSk7CisJCQlpZiAoIXN5c3RhYmxlX2dldG5leHQoc2NhbikpCisJCQl7CisJCQkJT2JqZWN0 QWRkcmVzcyBvYmo7CisKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoUHJvcGVy dHlSZWxhdGlvbklkLCBwcm9wb2lkKTsKKwkJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgc3RtdC0+ ZHJvcF9iZWhhdmlvciwgMCk7CisJCQl9CisKKwkJCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJ CQl0YWJsZV9jbG9zZShyZWwsIFJvd1NoYXJlTG9jayk7CisJCX0KKwl9CisKKwlyZXR1cm4gcGdh ZGRyZXNzOworfQorCisvKgorICogR2V0IE9JRCBvZiB2ZXJ0ZXggZnJvbSBncmFwaCBPSUQgYW5k IGVsZW1lbnQgYWxpYXMuICBFbGVtZW50IG11c3QgYmUgYQorICogdmVydGV4LCBvdGhlcndpc2Ug ZXJyb3IuCisgKi8KK3N0YXRpYyBPaWQKK2dldF92ZXJ0ZXhfb2lkKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgT2lkIHBncmVsaWQsIGNvbnN0IGNoYXIgKmFsaWFzLCBpbnQgbG9jYXRpb24pCit7CisJSGVh cFR1cGxlCXR1cGxlOworCU9pZAkJCXBlb2lkOworCisJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIo UFJPUEdSQVBIRUxBTElBUywgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlkKSwgQ1N0cmluZ0dldERh dHVtKGFsaWFzKSk7CisJaWYgKCF0dXBsZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBc IiVzXCIgaGFzIG5vIGVsZW1lbnQgd2l0aCBhbGlhcyBcIiVzXCIiLAorCQkJCQkgICBnZXRfcmVs X25hbWUocGdyZWxpZCksIGFsaWFzKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBs b2NhdGlvbikpOworCisJaWYgKCgoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNU KHR1cGxlKSktPnBnZWtpbmQgIT0gUEdFS0lORF9WRVJURVgpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJlbGVtZW50IFwi JXNcIiBvZiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIgaXMgbm90IGEgdmVydGV4IiwKKwkJCQkJICAg YWxpYXMsIGdldF9yZWxfbmFtZShwZ3JlbGlkKSksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgbG9jYXRpb24pKTsKKworCXBlb2lkID0gKChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50 KSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwor CXJldHVybiBwZW9pZDsKK30KKworLyoKKyAqIEdldCBPSUQgb2YgZWRnZSBmcm9tIGdyYXBoIE9J RCBhbmQgZWxlbWVudCBhbGlhcy4gIEVsZW1lbnQgbXVzdCBiZSBhbiBlZGdlLAorICogb3RoZXJ3 aXNlIGVycm9yLgorICovCitzdGF0aWMgT2lkCitnZXRfZWRnZV9vaWQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBPaWQgcGdyZWxpZCwgY29uc3QgY2hhciAqYWxpYXMsIGludCBsb2NhdGlvbikKK3sKKwlI ZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJcGVvaWQ7CisKKwl0dXBsZSA9IFNlYXJjaFN5c0NhY2hl MihQUk9QR1JBUEhFTEFMSUFTLCBPYmplY3RJZEdldERhdHVtKHBncmVsaWQpLCBDU3RyaW5nR2V0 RGF0dW0oYWxpYXMpKTsKKwlpZiAoIXR1cGxlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coInByb3BlcnR5IGdyYXBo IFwiJXNcIiBoYXMgbm8gZWxlbWVudCB3aXRoIGFsaWFzIFwiJXNcIiIsCisJCQkJCSAgIGdldF9y ZWxfbmFtZShwZ3JlbGlkKSwgYWxpYXMpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGxvY2F0aW9uKSk7CisKKwlpZiAoKChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJV Q1QodHVwbGUpKS0+cGdla2luZCAhPSBQR0VLSU5EX0VER0UpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJlbGVtZW50IFwi JXNcIiBvZiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIgaXMgbm90IGFuIGVkZ2UiLAorCQkJCQkgICBh bGlhcywgZ2V0X3JlbF9uYW1lKHBncmVsaWQpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBsb2NhdGlvbikpOworCisJcGVvaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQp IEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJ cmV0dXJuIHBlb2lkOworfQorCisvKgorICogR2V0IHRoZSBlbGVtZW50IHRhYmxlIHJlbGF0aW9u IE9JRCBmcm9tIHRoZSBPSUQgb2YgdGhlIGVsZW1lbnQuCisgKi8KK3N0YXRpYyBPaWQKK2dldF9l bGVtZW50X3JlbGlkKE9pZCBwZWlkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlPaWQJCQlwZ2Vy ZWxpZDsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJ ZEdldERhdHVtKHBlaWQpKTsKKwlpZiAoIXR1cGxlKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIHBlaWQpOworCisJcGdl cmVsaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXBsZSkpLT5w Z2VyZWxpZDsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gcGdlcmVsaWQ7 Cit9CisKKy8qCisgKiBHZXQgYSBsaXN0IG9mIGFsbCBsYWJlbCBPSURzIG9mIGEgZ3JhcGguCisg Ki8KK3N0YXRpYyBMaXN0ICoKK2dldF9ncmFwaF9sYWJlbF9pZHMoT2lkIGdyYXBoaWQpCit7CisJ UmVsYXRpb24JcmVsOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5WzFdOwor CUhlYXBUdXBsZQl0dXBsZTsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlyZWwgPSB0YWJs ZV9vcGVuKFByb3BncmFwaExhYmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwlTY2Fu S2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3BnbHBnaWQsCisJ CQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lERVEsIE9iamVjdElkR2V0RGF0dW0o Z3JhcGhpZCkpOworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBQcm9wZ3JhcGhMYWJl bEdyYXBoTmFtZUluZGV4SWQsIHRydWUsIE5VTEwsIDEsIGtleSk7CisJd2hpbGUgKEhlYXBUdXBs ZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCXJlc3VsdCA9 IGxhcHBlbmRfb2lkKHJlc3VsdCwgKChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCkgR0VUU1RSVUNU KHR1cGxlKSktPm9pZCk7CisJfQorCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFibGVfY2xv c2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAq IEdldCBhIGxpc3Qgb2YgYWxsIGVsZW1lbnQgbGFiZWwgT0lEcyBmb3IgYSBsYWJlbC4KKyAqLwor c3RhdGljIExpc3QgKgorZ2V0X2xhYmVsX2VsZW1lbnRfbGFiZWxfaWRzKE9pZCBsYWJlbGlkKQor eworCVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleVsx XTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJcmVsID0g dGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxv Y2spOworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVu dF9sYWJlbF9wZ2VsbGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJCQkJRl9P SURFUSwgT2JqZWN0SWRHZXREYXR1bShsYWJlbGlkKSk7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2lu c2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbExhYmVsSW5kZXhJZCwgdHJ1ZSwgTlVMTCwg MSwga2V5KTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5l eHQoc2NhbikpKQorCXsKKwkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCAoKEZvcm1fcGdf cHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQpOworCX0KKwlz eXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBHZXQgdGhlIG5hbWVzIG9mIHByb3Bl cnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBlbGVtZW50IGxhYmVsIE9JRC4KKyAqCisg KiBUaGUgcmVzdWx0IGlzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMgKHNvIHdlIGNhbiB1c2UgbGlz dCBmdW5jdGlvbnMgdG8KKyAqIGRldGVjdCBkaWZmZXJlbmNlcykuCisgKi8KK3N0YXRpYyBMaXN0 ICoKK2dldF9lbGVtZW50X2xhYmVsX3Byb3BlcnR5X25hbWVzKE9pZCBlbGxhYmVsb2lkKQorewor CVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleVsxXTsK KwlIZWFwVHVwbGUJdHVwbGU7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJcmVsID0gdGFi bGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxf cHJvcGVydHlfcGxwZWxsYWJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURF USwKKwkJCQlPYmplY3RJZEdldERhdHVtKGVsbGFiZWxvaWQpKTsKKworCXNjYW4gPSBzeXN0YWJs ZV9iZWdpbnNjYW4ocmVsLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5TGFiZWxQcm9wSW5kZXhJZCwg dHJ1ZSwgTlVMTCwgMSwga2V5KTsKKworCXdoaWxlICgodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0 KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IHBscGZvcm0g PSAoRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSk7CisK KwkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VTdHJpbmcoZ2V0X3Byb3BncmFwaF9wcm9w ZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCkpKTsKKwl9CisKKwlzeXN0YWJsZV9lbmRzY2Fu KHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiBy ZXN1bHQ7Cit9CisKKy8qCisgKiBHZXQgYSBsaXN0IG9mIGFsbCBwcm9wZXJ0eSBPSURzIG9mIGEg Z3JhcGguCisgKi8KK3N0YXRpYyBMaXN0ICoKK2dldF9ncmFwaF9wcm9wZXJ0eV9pZHMoT2lkIGdy YXBoaWQpCit7CisJUmVsYXRpb24JcmVsOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURh dGEga2V5WzFdOworCUhlYXBUdXBsZQl0dXBsZTsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisK KwlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKKwlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX3By b3BlcnR5X3BncHBnaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lERVEs IE9iamVjdElkR2V0RGF0dW0oZ3JhcGhpZCkpOworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4o cmVsLCBQcm9wZ3JhcGhQcm9wZXJ0eU5hbWVJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkpOwor CXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkp CisJeworCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsICgoRm9ybV9wZ19wcm9wZ3JhcGhf cHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQpOworCX0KKwlzeXN0YWJsZV9lbmRzY2Fu KHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiBy ZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA1NjA3MjczYmY5Zi4uMTkzM2Jk MWNhM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtODAsNiArODAsNyBAQCBTZWNMYWJl bFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09Q RkFNSUxZOgogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQljYXNlIE9CSkVDVF9QT0xJ Q1k6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05f TkFNRVNQQUNFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJCWNhc2UgT0JKRUNU X1JVTEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDZjY2FlNGNiNGE4Li5hMGYwY2U1 ZGE2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTMwNyw2ICszMDcsMTIgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm9wbXNnc3RyaW5ncyBkcm9wbXNnc3RyaW5nYXJyYXlbXSA9IHsK IAkJZ2V0dGV4dF9ub29wKCJpbmRleCBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiks CiAJCWdldHRleHRfbm9vcCgiXCIlc1wiIGlzIG5vdCBhbiBpbmRleCIpLAogCWdldHRleHRfbm9v cCgiVXNlIERST1AgSU5ERVggdG8gcmVtb3ZlIGFuIGluZGV4LiIpfSwKKwl7UkVMS0lORF9QUk9Q R1JBUEgsCisJCUVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCwKKwkJZ2V0dGV4dF9ub29wKCJwcm9w ZXJ0eSBncmFwaCBcIiVzXCIgZG9lcyBub3QgZXhpc3QiKSwKKwkJZ2V0dGV4dF9ub29wKCJwcm9w ZXJ0eSBncmFwaCBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiksCisJCWdldHRleHRf bm9vcCgiXCIlc1wiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBoIiksCisJZ2V0dGV4dF9ub29wKCJV c2UgRFJPUCBQUk9QRVJUWSBHUkFQSCB0byByZW1vdmUgYSBwcm9wZXJ0eSBncmFwaC4iKX0sCiAJ eydcMCcsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEx9CiB9OwogCkBAIC0xNTQyLDYgKzE1NDgs MTAgQEAgUmVtb3ZlUmVsYXRpb25zKERyb3BTdG10ICpkcm9wKQogCQkJcmVsa2luZCA9IFJFTEtJ TkRfRk9SRUlHTl9UQUJMRTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoK KwkJCXJlbGtpbmQgPSBSRUxLSU5EX1BST1BHUkFQSDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGRyb3Agb2JqZWN0IHR5cGU6ICVkIiwKIAkJ CQkgKGludCkgZHJvcC0+cmVtb3ZlVHlwZSk7CkBAIC0xNDg4OCw2ICsxNDg5OCw3IEBAIEFURXhl Y0NoYW5nZU93bmVyKE9pZCByZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQsIGJvb2wgcmVjdXJz aW5nLCBMT0NLTU9ERSBsb2NrCiAJCWNhc2UgUkVMS0lORF9NQVRWSUVXOgogCQljYXNlIFJFTEtJ TkRfRk9SRUlHTl9UQUJMRToKIAkJY2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgorCQlj YXNlIFJFTEtJTkRfUFJPUEdSQVBIOgogCQkJLyogb2sgdG8gY2hhbmdlIG93bmVyICovCiAJCQli cmVhazsKIAkJY2FzZSBSRUxLSU5EX0lOREVYOgpAQCAtMTg0MzEsNiArMTg0NDIsMTEgQEAgUmFu Z2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVs aWQsIE9pZCBvbGRyZWxpZCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBF KSwKIAkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLCBydi0+cmVs bmFtZSkpKTsKIAorCWlmIChyZWx0eXBlID09IE9CSkVDVF9QUk9QR1JBUEggJiYgcmVsa2luZCAh PSBSRUxLSU5EX1BST1BHUkFQSCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJv cGVydHkgZ3JhcGgiLCBydi0+cmVsbmFtZSkpKTsKKwogCWlmIChyZWx0eXBlID09IE9CSkVDVF9J TkRFWCAmJiByZWxraW5kICE9IFJFTEtJTkRfSU5ERVggJiYKIAkJcmVsa2luZCAhPSBSRUxLSU5E X1BBUlRJVElPTkVEX0lOREVYCiAJCSYmICFJc0Eoc3RtdCwgUmVuYW1lU3RtdCkpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwppbmRleCA1Y2E4NTZmZDI3OS4uYThlMzRlZjU0ZDkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwpAQCAtNjAzLDcgKzYwMyw3IEBAIEV4ZWNDaGVja1Blcm1pc3Npb25zKExp c3QgKnJhbmdlVGFibGUsIExpc3QgKnJ0ZXBlcm1pbmZvcywKIAkJCSAqLwogCQkJQXNzZXJ0KHJ0 ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04gfHwKIAkJCQkgICAocnRlLT5ydGVraW5kID09IFJU RV9TVUJRVUVSWSAmJgotCQkJCQlydGUtPnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXKSk7CisJCQkJ CShydGUtPnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXIHx8IHJ0ZS0+cmVsa2luZCA9PSBSRUxLSU5E X1BST1BHUkFQSCkpKTsKIAogCQkJKHZvaWQpIGdldFJURVBlcm1pc3Npb25JbmZvKHJ0ZXBlcm1p bmZvcywgcnRlKTsKIAkJCS8qIE1hbnktdG8tb25lIG1hcHBpbmcgbm90IGFsbG93ZWQgKi8KQEAg LTExMjIsNiArMTEyMiwxMiBAQCBDaGVja1ZhbGlkUmVzdWx0UmVsKFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sIENtZFR5cGUgb3BlcmF0aW9uLAogCQkJCQlicmVhazsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coImNhbm5v dCBjaGFuZ2UgcHJvcGVydHkgZ3JhcGggXCIlc1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZXN1bHRSZWwpKSkpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKQEAgLTEx ODYsNiArMTE5MiwxMyBAQCBDaGVja1ZhbGlkUm93TWFya1JlbChSZWxhdGlvbiByZWwsIFJvd01h cmtUeXBlIG1hcmtUeXBlKQogCQkJCQkJIGVycm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiBmb3Jl aWduIHRhYmxlIFwiJXNcIiIsCiAJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkp KSk7CiAJCQlicmVhazsKKwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCS8qIFNob3VsZCBu b3QgZ2V0IGhlcmU7IHJld3JpdGVyIHNob3VsZCBoYXZlIGV4cGFuZGVkIHRoZSBncmFwaCAqLwor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBsb2NrIHJvd3MgaW4gcHJvcGVydHkgZ3JhcGggXCIl c1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggNTA3MDVhMWUxNTguLjM3 M2ZhMWVlYzJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjgxLDYgKzI4MSw5IEBAIGV4cHJU eXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9QbGFjZUhvbGRlclZhcjoKIAkJCXR5cGUg PSBleHByVHlwZSgoTm9kZSAqKSAoKGNvbnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4 cHIpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgorCQkJdHlwZSA9ICgo Y29uc3QgR3JhcGhQcm9wZXJ0eVJlZiAqKSBleHByKS0+dHlwZUlkOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50 KSBub2RlVGFnKGV4cHIpKTsKIAkJCXR5cGUgPSBJbnZhbGlkT2lkOwkvKiBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCkBAIC01MzEsNiArNTM0LDkgQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHBy KQogCQkJcmV0dXJuICgoY29uc3QgU2V0VG9EZWZhdWx0ICopIGV4cHIpLT50eXBlTW9kOwogCQlj YXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQlyZXR1cm4gZXhwclR5cG1vZCgoTm9kZSAqKSAoKGNv bnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOworCQljYXNlIFRfR3JhcGhQcm9w ZXJ0eVJlZjoKKwkJCS8qIFRPRE8gKi8KKwkJCXJldHVybiAtMTsKIAkJZGVmYXVsdDoKIAkJCWJy ZWFrOwogCX0KQEAgLTEwNTAsNiArMTA1Niw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAq ZXhwcikKIAkJY2FzZSBUX1BsYWNlSG9sZGVyVmFyOgogCQkJY29sbCA9IGV4cHJDb2xsYXRpb24o KE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAqKSBleHByKS0+cGhleHByKTsKIAkJCWJy ZWFrOworCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKKwkJCWNvbGwgPSBERUZBVUxUX0NPTExB VElPTl9PSUQ7CS8qIEZJWE1FICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhwcikpOwog CQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTIxMTcs NiArMjEyNiw3IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQlj YXNlIFRfUmFuZ2VUYmxSZWY6CiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9D VEVTZWFyY2hDbGF1c2U6CisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgogCQljYXNlIFRfTWVy Z2VTdXBwb3J0RnVuYzoKIAkJCS8qIHByaW1pdGl2ZSBub2RlIHR5cGVzIHdpdGggbm8gZXhwcmVz c2lvbiBzdWJub2RlcyAqLwogCQkJYnJlYWs7CkBAIC0yNjU1LDYgKzI2NjUsMjYgQEAgZXhwcmVz c2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJ fQogCQkJYnJlYWs7CisJCWNhc2UgVF9HcmFwaEVsZW1lbnRQYXR0ZXJuOgorCQkJeworCQkJCUdy YXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICopIG5vZGU7CisK KwkJCQlpZiAoV0FMSyhnZXAtPnN1YmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAo V0FMSyhnZXAtPndoZXJlQ2xhdXNlKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVh azsKKwkJY2FzZSBUX0dyYXBoUGF0dGVybjoKKwkJCXsKKwkJCQlHcmFwaFBhdHRlcm4gKmdwID0g KEdyYXBoUGF0dGVybiAqKSBub2RlOworCisJCQkJaWYgKExJU1RfV0FMSyhncC0+cGF0aF9wYXR0 ZXJuX2xpc3QpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhncC0+d2hlcmVDbGF1 c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9k ZVRhZyhub2RlKSk7CkBAIC0yODQ4LDYgKzI4NzgsMTIgQEAgcmFuZ2VfdGFibGVfZW50cnlfd2Fs a2VyX2ltcGwoUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJaWYgKFdBTEsocnRlLT52YWx1ZXNfbGlz dHMpKQogCQkJCXJldHVybiB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgUlRFX0dSQVBIX1RBQkxF OgorCQkJaWYgKFdBTEsocnRlLT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CWlmIChXQUxLKHJ0ZS0+Z3JhcGhfdGFibGVfY29sdW1ucykpCisJCQkJcmV0dXJuIHRydWU7CisJ CQlicmVhazsKIAkJY2FzZSBSVEVfQ1RFOgogCQljYXNlIFJURV9OQU1FRFRVUExFU1RPUkU6CiAJ CWNhc2UgUlRFX1JFU1VMVDoKQEAgLTM4OTAsNiArMzkyNiwxMCBAQCByYW5nZV90YWJsZV9tdXRh dG9yX2ltcGwoTGlzdCAqcnRhYmxlLAogCQkJY2FzZSBSVEVfVkFMVUVTOgogCQkJCU1VVEFURShu ZXdydGUtPnZhbHVlc19saXN0cywgcnRlLT52YWx1ZXNfbGlzdHMsIExpc3QgKik7CiAJCQkJYnJl YWs7CisJCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCQlNVVRBVEUobmV3cnRlLT5ncmFwaF9w YXR0ZXJuLCBydGUtPmdyYXBoX3BhdHRlcm4sIEdyYXBoUGF0dGVybiAqKTsKKwkJCQlNVVRBVEUo bmV3cnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zLCBydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMsIExp c3QgKik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFJURV9DVEU6CiAJCQljYXNlIFJURV9OQU1FRFRV UExFU1RPUkU6CiAJCQljYXNlIFJURV9SRVNVTFQ6CkBAIC00NTEzLDYgKzQ1NTMsMTggQEAgcmF3 X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfUmFuZ2VHcmFwaFRhYmxlOgorCQkJeworCQkJ CVJhbmdlR3JhcGhUYWJsZSAqcmd0ID0gKFJhbmdlR3JhcGhUYWJsZSAqKSBub2RlOworCisJCQkJ aWYgKFdBTEsocmd0LT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYg KFdBTEsocmd0LT5jb2x1bW5zKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsocmd0 LT5hbGlhcykpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9U eXBlTmFtZToKIAkJCXsKIAkJCQlUeXBlTmFtZSAgICp0biA9IChUeXBlTmFtZSAqKSBub2RlOwpA QCAtNDY3MSw2ICs0NzIzLDI2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9k ZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0dy YXBoRWxlbWVudFBhdHRlcm46CisJCQl7CisJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0g KEdyYXBoRWxlbWVudFBhdHRlcm4gKikgbm9kZTsKKworCQkJCWlmIChXQUxLKGdlcC0+c3ViZXhw cikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKGdlcC0+d2hlcmVDbGF1c2UpKQor CQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfR3JhcGhQYXR0ZXJu OgorCQkJeworCQkJCUdyYXBoUGF0dGVybiAqZ3AgPSAoR3JhcGhQYXR0ZXJuICopIG5vZGU7CisK KwkJCQlpZiAoV0FMSyhncC0+cGF0aF9wYXR0ZXJuX2xpc3QpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCQlpZiAoV0FMSyhncC0+d2hlcmVDbGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0K KwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2Rl IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhub2RlKSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwpp bmRleCA5ODI3Y2YxNmJlNC4uNzk1NTI1NDE5YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwpAQCAtNTU5 LDYgKzU1OSwxMSBAQCBfb3V0UmFuZ2VUYmxFbnRyeShTdHJpbmdJbmZvIHN0ciwgY29uc3QgUmFu Z2VUYmxFbnRyeSAqbm9kZSkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBmaWVsZHMs IHRvbzogKi8KIAkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7CiAJCQlicmVhazsKKwkJY2FzZSBS VEVfR1JBUEhfVEFCTEU6CisJCQlXUklURV9PSURfRklFTEQocmVsaWQpOworCQkJV1JJVEVfTk9E RV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVdSSVRFX05PREVfRklFTEQoZ3JhcGhfdGFibGVf Y29sdW1ucyk7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfUkVTVUxUOgogCQkJLyogbm8gZXh0cmEg ZmllbGRzICovCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRm dW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKaW5kZXggYmU1ZjE5ZGQ3ZjYu LjBlNDJkMTRlMWM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwpAQCAtNDE5LDYgKzQxOSwxMSBAQCBf cmVhZFJhbmdlVGJsRW50cnkodm9pZCkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBm aWVsZHMsIHRvbzogKi8KIAkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsKIAkJCWJyZWFrOworCQlj YXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsKKwkJCVJFQURf Tk9ERV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVJFQURfTk9ERV9GSUVMRChncmFwaF90YWJs ZV9jb2x1bW5zKTsKKwkJCWJyZWFrOwogCQljYXNlIFJURV9SRVNVTFQ6CiAJCQkvKiBubyBleHRy YSBmaWVsZHMgKi8KIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMK aW5kZXggMTcyZWRiNjQzYTQuLjM2NzZkMjA4MGRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2FsbHBhdGhzLmMKQEAgLTcyOCw2ICs3MjgsMTAgQEAgc2V0X3JlbF9jb25zaWRlcl9wYXJhbGxl bChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJICovCiAJCQlyZXR1cm47 CiAKKwkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkvKiBzaG91bGRuJ3QgaGFwcGVuIGhlcmUg Ki8KKwkJCWJyZWFrOworCiAJCWNhc2UgUlRFX1JFU1VMVDoKIAkJCS8qIFJFU1VMVCBSVEVzLCBp biB0aGVtc2VsdmVzLCBhcmUgbm8gcHJvYmxlbS4gKi8KIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwppbmRleCAyZWJkOTM4ZjZiZC4uNGVmN2IxMjdk Y2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xMzU1 LDYgKzEzNTUsMTAgQEAgcHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3Qs IE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJCWNhc2UgUlRFX0dST1VQOgog CQkJCQkvKiB0aGVzZSBjYW4ndCBjb250YWluIGFueSBsYXRlcmFsIHJlZmVyZW5jZXMgKi8KIAkJ CQkJYnJlYWs7CisJCQkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkJCS8qIHNob3VsZG4ndCBo YXBwZW4gaGVyZSAqLworCQkJCQlBc3NlcnQoZmFsc2UpOworCQkJCQlicmVhazsKIAkJCX0KIAkJ fQogCX0KQEAgLTI0MjUsNiArMjQyOSwxMCBAQCByZXBsYWNlX3ZhcnNfaW5fam9pbnRyZWUoTm9k ZSAqanRub2RlLAogCQkJCQkJLyogdGhlc2Ugc2hvdWxkbid0IGJlIG1hcmtlZCBMQVRFUkFMICov CiAJCQkJCQlBc3NlcnQoZmFsc2UpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlRFX0dSQVBI X1RBQkxFOgorCQkJCQkJLyogc2hvdWxkbid0IGhhcHBlbiBoZXJlICovCisJCQkJCQlBc3NlcnQo ZmFsc2UpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZpbGUKaW5k ZXggMzE2MmEwMWYzMDIuLjBmYTIzN2E0YTkwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL01ha2VmaWxlCkBAIC0yMyw2ICsy Myw3IEBAIE9CSlMgPSBcCiAJcGFyc2VfZW5yLm8gXAogCXBhcnNlX2V4cHIubyBcCiAJcGFyc2Vf ZnVuYy5vIFwKKwlwYXJzZV9ncmFwaHRhYmxlLm8gXAogCXBhcnNlX2pzb250YWJsZS5vIFwKIAlw YXJzZV9tZXJnZS5vIFwKIAlwYXJzZV9ub2RlLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMzg2 NGE2NzVkMmEuLmIyYWRmMzhkZDQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTIxNTAsNyArMjE1 MCw2IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxl Y3RTdG10ICpzdG10LAogCQljaGFyCQlzZWxlY3ROYW1lWzMyXTsKIAkJUGFyc2VOYW1lc3BhY2VJ dGVtICpuc2l0ZW07CiAJCVJhbmdlVGJsUmVmICpydHI7Ci0JCUxpc3RDZWxsICAgKnRsOwogCiAJ CS8qCiAJCSAqIFRyYW5zZm9ybSBTZWxlY3RTdG10IGludG8gYSBRdWVyeS4KQEAgLTIxOTAsNiAr MjE4OSw4IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBT ZWxlY3RTdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHRhcmdldGxpc3QpCiAJCXsKKwkJCUxpc3RD ZWxsICAgKnRsOworCiAJCQkqdGFyZ2V0bGlzdCA9IE5JTDsKIAkJCWZvcmVhY2godGwsIHNlbGVj dFF1ZXJ5LT50YXJnZXRMaXN0KQogCQkJewpAQCAtMjIyNCw4ICsyMjI1LDYgQEAgdHJhbnNmb3Jt U2V0T3BlcmF0aW9uVHJlZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQsCiAJ CVNldE9wZXJhdGlvblN0bXQgKm9wID0gbWFrZU5vZGUoU2V0T3BlcmF0aW9uU3RtdCk7CiAJCUxp c3QJICAgKmx0YXJnZXRsaXN0OwogCQlMaXN0CSAgICpydGFyZ2V0bGlzdDsKLQkJTGlzdENlbGwg ICAqbHRsOwotCQlMaXN0Q2VsbCAgICpydGw7CiAJCWNvbnN0IGNoYXIgKmNvbnRleHQ7CiAJCWJv b2wJCXJlY3Vyc2l2ZSA9IChwc3RhdGUtPnBfcGFyZW50X2N0ZSAmJgogCQkJCQkJCQkgcHN0YXRl LT5wX3BhcmVudF9jdGUtPmN0ZXJlY3Vyc2l2ZSk7CkBAIC0yMjYwLDE2MSArMjI1OSwxNzAgQEAg dHJhbnNmb3JtU2V0T3BlcmF0aW9uVHJlZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQg KnN0bXQsCiAJCQkJCQkJCQkJCSBmYWxzZSwKIAkJCQkJCQkJCQkJICZydGFyZ2V0bGlzdCk7CiAK LQkJLyoKLQkJICogVmVyaWZ5IHRoYXQgdGhlIHR3byBjaGlsZHJlbiBoYXZlIHRoZSBzYW1lIG51 bWJlciBvZiBub24tanVuawotCQkgKiBjb2x1bW5zLCBhbmQgZGV0ZXJtaW5lIHRoZSB0eXBlcyBv ZiB0aGUgbWVyZ2VkIG91dHB1dCBjb2x1bW5zLgotCQkgKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKGx0 YXJnZXRsaXN0KSAhPSBsaXN0X2xlbmd0aChydGFyZ2V0bGlzdCkpCi0JCQllcmVwb3J0KEVSUk9S LAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCSBlcnJtc2coImVh Y2ggJXMgcXVlcnkgbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBjb2x1bW5zIiwKLQkJCQkJ CQljb250ZXh0KSwKLQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCi0JCQkJCQkJCQkJ ZXhwckxvY2F0aW9uKChOb2RlICopIHJ0YXJnZXRsaXN0KSkpKTsKKwkJY29uc3RydWN0U2V0T3BU YXJnZXRsaXN0KG9wLCBsdGFyZ2V0bGlzdCwgcnRhcmdldGxpc3QsIHRhcmdldGxpc3QsCisJCQkJ CQkJCSBjb250ZXh0LCBwc3RhdGUsIHJlY3Vyc2l2ZSk7CiAKLQkJaWYgKHRhcmdldGxpc3QpCi0J CQkqdGFyZ2V0bGlzdCA9IE5JTDsKLQkJb3AtPmNvbFR5cGVzID0gTklMOwotCQlvcC0+Y29sVHlw bW9kcyA9IE5JTDsKLQkJb3AtPmNvbENvbGxhdGlvbnMgPSBOSUw7Ci0JCW9wLT5ncm91cENsYXVz ZXMgPSBOSUw7Ci0JCWZvcmJvdGgobHRsLCBsdGFyZ2V0bGlzdCwgcnRsLCBydGFyZ2V0bGlzdCkK LQkJewotCQkJVGFyZ2V0RW50cnkgKmx0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGx0bCk7 Ci0JCQlUYXJnZXRFbnRyeSAqcnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QocnRsKTsKLQkJ CU5vZGUJICAgKmxjb2xub2RlID0gKE5vZGUgKikgbHRsZS0+ZXhwcjsKLQkJCU5vZGUJICAgKnJj b2xub2RlID0gKE5vZGUgKikgcnRsZS0+ZXhwcjsKLQkJCU9pZAkJCWxjb2x0eXBlID0gZXhwclR5 cGUobGNvbG5vZGUpOwotCQkJT2lkCQkJcmNvbHR5cGUgPSBleHByVHlwZShyY29sbm9kZSk7Ci0J CQlOb2RlCSAgICpiZXN0ZXhwcjsKLQkJCWludAkJCWJlc3Rsb2NhdGlvbjsKLQkJCU9pZAkJCXJl c2NvbHR5cGU7Ci0JCQlpbnQzMgkJcmVzY29sdHlwbW9kOwotCQkJT2lkCQkJcmVzY29sY29sbDsK LQotCQkJLyogc2VsZWN0IGNvbW1vbiB0eXBlLCBzYW1lIGFzIENBU0UgZXQgYWwgKi8KLQkJCXJl c2NvbHR5cGUgPSBzZWxlY3RfY29tbW9uX3R5cGUocHN0YXRlLAotCQkJCQkJCQkJCQlsaXN0X21h a2UyKGxjb2xub2RlLCByY29sbm9kZSksCi0JCQkJCQkJCQkJCWNvbnRleHQsCi0JCQkJCQkJCQkJ CSZiZXN0ZXhwcik7Ci0JCQliZXN0bG9jYXRpb24gPSBleHByTG9jYXRpb24oYmVzdGV4cHIpOwor CQlyZXR1cm4gKE5vZGUgKikgb3A7CisJfQorfQogCi0JCQkvKgotCQkJICogVmVyaWZ5IHRoZSBj b2VyY2lvbnMgYXJlIGFjdHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZhaWwKLQkJCSAq IGxhdGVyIGFueXdheSwgYnV0IHdlIHdhbnQgdG8gZmFpbCBub3cgd2hpbGUgd2UgaGF2ZSBzdWZm aWNpZW50Ci0JCQkgKiBjb250ZXh0IHRvIHByb2R1Y2UgYW4gZXJyb3IgY3Vyc29yIHBvc2l0aW9u LgotCQkJICoKLQkJCSAqIEZvciBhbGwgbm9uLVVOS05PV04tdHlwZSBjYXNlcywgd2UgdmVyaWZ5 IGNvZXJjaWJpbGl0eSBidXQgd2UKLQkJCSAqIGRvbid0IG1vZGlmeSB0aGUgY2hpbGQncyBleHBy ZXNzaW9uLCBmb3IgZmVhciBvZiBjaGFuZ2luZyB0aGUKLQkJCSAqIGNoaWxkIHF1ZXJ5J3Mgc2Vt YW50aWNzLgotCQkJICoKLQkJCSAqIElmIGEgY2hpbGQgZXhwcmVzc2lvbiBpcyBhbiBVTktOT1dO LXR5cGUgQ29uc3Qgb3IgUGFyYW0sIHdlCi0JCQkgKiB3YW50IHRvIHJlcGxhY2UgaXQgd2l0aCB0 aGUgY29lcmNlZCBleHByZXNzaW9uLiAgVGhpcyBjYW4gb25seQotCQkJICogaGFwcGVuIHdoZW4g dGhlIGNoaWxkIGlzIGEgbGVhZiBzZXQtb3Agbm9kZS4gIEl0J3Mgc2FmZSB0bwotCQkJICogcmVw bGFjZSB0aGUgZXhwcmVzc2lvbiBiZWNhdXNlIGlmIHRoZSBjaGlsZCBxdWVyeSdzIHNlbWFudGlj cwotCQkJICogZGVwZW5kZWQgb24gdGhlIHR5cGUgb2YgdGhpcyBvdXRwdXQgY29sdW1uLCBpdCdk IGhhdmUgYWxyZWFkeQotCQkJICogY29lcmNlZCB0aGUgVU5LTk9XTiB0byBzb21ldGhpbmcgZWxz ZS4gIFdlIHdhbnQgdG8gZG8gdGhpcwotCQkJICogYmVjYXVzZSAoYSkgd2Ugd2FudCB0byB2ZXJp ZnkgdGhhdCBhIENvbnN0IGlzIHZhbGlkIGZvciB0aGUKLQkJCSAqIHRhcmdldCB0eXBlLCBvciBy ZXNvbHZlIHRoZSBhY3R1YWwgdHlwZSBvZiBhbiBVTktOT1dOIFBhcmFtLAotCQkJICogYW5kIChi KSB3ZSB3YW50IHRvIGF2b2lkIHVubmVjZXNzYXJ5IGRpc2NyZXBhbmNpZXMgYmV0d2VlbiB0aGUK LQkJCSAqIG91dHB1dCB0eXBlIG9mIHRoZSBjaGlsZCBxdWVyeSBhbmQgdGhlIHJlc29sdmVkIHRh cmdldCB0eXBlLgotCQkJICogU3VjaCBhIGRpc2NyZXBhbmN5IHdvdWxkIGRpc2FibGUgb3B0aW1p emF0aW9uIGluIHRoZSBwbGFubmVyLgotCQkJICoKLQkJCSAqIElmIGl0J3Mgc29tZSBvdGhlciBV TktOT1dOLXR5cGUgbm9kZSwgZWcgYSBWYXIsIHdlIGRvIG5vdGhpbmcKLQkJCSAqIChrbm93aW5n IHRoYXQgY29lcmNlX3RvX2NvbW1vbl90eXBlIHdvdWxkIGZhaWwpLiAgVGhlIHBsYW5uZXIKLQkJ CSAqIGlzIHNvbWV0aW1lcyBhYmxlIHRvIGZvbGQgYW4gVU5LTk9XTiBWYXIgdG8gYSBjb25zdGFu dCBiZWZvcmUKLQkJCSAqIGl0IGhhcyB0byBjb2VyY2UgdGhlIHR5cGUsIHNvIGZhaWxpbmcgbm93 IHdvdWxkIGp1c3QgYnJlYWsKLQkJCSAqIGNhc2VzIHRoYXQgbWlnaHQgd29yay4KLQkJCSAqLwot CQkJaWYgKGxjb2x0eXBlICE9IFVOS05PV05PSUQpCi0JCQkJbGNvbG5vZGUgPSBjb2VyY2VfdG9f Y29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKLQkJCQkJCQkJCQkJCSByZXNjb2x0eXBlLCBj b250ZXh0KTsKLQkJCWVsc2UgaWYgKElzQShsY29sbm9kZSwgQ29uc3QpIHx8Ci0JCQkJCSBJc0Eo bGNvbG5vZGUsIFBhcmFtKSkKLQkJCXsKLQkJCQlsY29sbm9kZSA9IGNvZXJjZV90b19jb21tb25f dHlwZShwc3RhdGUsIGxjb2xub2RlLAotCQkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQp OwotCQkJCWx0bGUtPmV4cHIgPSAoRXhwciAqKSBsY29sbm9kZTsKLQkJCX0KK3ZvaWQKK2NvbnN0 cnVjdFNldE9wVGFyZ2V0bGlzdChTZXRPcGVyYXRpb25TdG10ICpvcCwgTGlzdCAqbHRhcmdldGxp c3QsIExpc3QgKnJ0YXJnZXRsaXN0LAorCQkJCQkJIExpc3QgKip0YXJnZXRsaXN0LCBjb25zdCBj aGFyICpjb250ZXh0LCBQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgYm9vbCByZWN1cnNpdmUp Cit7CisJTGlzdENlbGwgICAqbHRsOworCUxpc3RDZWxsICAgKnJ0bDsKIAotCQkJaWYgKHJjb2x0 eXBlICE9IFVOS05PV05PSUQpCi0JCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUo cHN0YXRlLCByY29sbm9kZSwKLQkJCQkJCQkJCQkJCSByZXNjb2x0eXBlLCBjb250ZXh0KTsKLQkJ CWVsc2UgaWYgKElzQShyY29sbm9kZSwgQ29uc3QpIHx8Ci0JCQkJCSBJc0EocmNvbG5vZGUsIFBh cmFtKSkKLQkJCXsKLQkJCQlyY29sbm9kZSA9IGNvZXJjZV90b19jb21tb25fdHlwZShwc3RhdGUs IHJjb2xub2RlLAotCQkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOwotCQkJCXJ0bGUt PmV4cHIgPSAoRXhwciAqKSByY29sbm9kZTsKLQkJCX0KKwkvKgorCSAqIFZlcmlmeSB0aGF0IHRo ZSB0d28gY2hpbGRyZW4gaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2Ygbm9uLWp1bmsgY29sdW1ucywK KwkgKiBhbmQgZGV0ZXJtaW5lIHRoZSB0eXBlcyBvZiB0aGUgbWVyZ2VkIG91dHB1dCBjb2x1bW5z LgorCSAqLworCWlmIChsaXN0X2xlbmd0aChsdGFyZ2V0bGlzdCkgIT0gbGlzdF9sZW5ndGgocnRh cmdldGxpc3QpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKKwkJCQkgZXJybXNnKCJlYWNoICVzIHF1ZXJ5IG11c3QgaGF2ZSB0aGUgc2FtZSBu dW1iZXIgb2YgY29sdW1ucyIsCisJCQkJCQljb250ZXh0KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBydGFyZ2V0bGlzdCkp KSk7CiAKLQkJCXJlc2NvbHR5cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBzdGF0ZSwKLQkJ CQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUsIHJjb2xub2RlKSwKLQkJCQkJCQkJCQkJCXJl c2NvbHR5cGUpOworCWlmICh0YXJnZXRsaXN0KQorCQkqdGFyZ2V0bGlzdCA9IE5JTDsKKwlvcC0+ Y29sVHlwZXMgPSBOSUw7CisJb3AtPmNvbFR5cG1vZHMgPSBOSUw7CisJb3AtPmNvbENvbGxhdGlv bnMgPSBOSUw7CisJb3AtPmdyb3VwQ2xhdXNlcyA9IE5JTDsKIAotCQkJLyoKLQkJCSAqIFNlbGVj dCBjb21tb24gY29sbGF0aW9uLiAgQSBjb21tb24gY29sbGF0aW9uIGlzIHJlcXVpcmVkIGZvcgot CQkJICogYWxsIHNldCBvcGVyYXRvcnMgZXhjZXB0IFVOSU9OIEFMTDsgc2VlIFNRTDoyMDA4IDcu MTMgPHF1ZXJ5Ci0JCQkgKiBleHByZXNzaW9uPiBTeW50YXggUnVsZSAxNWMuICAoSWYgd2UgZmFp bCB0byBpZGVudGlmeSBhIGNvbW1vbgotCQkJICogY29sbGF0aW9uIGZvciBhIFVOSU9OIEFMTCBj b2x1bW4sIHRoZSBjb2xDb2xsYXRpb25zIGVsZW1lbnQKLQkJCSAqIHdpbGwgYmUgc2V0IHRvIElu dmFsaWRPaWQsIHdoaWNoIG1heSByZXN1bHQgaW4gYSBydW50aW1lIGVycm9yCi0JCQkgKiBpZiBz b21ldGhpbmcgYXQgYSBoaWdoZXIgcXVlcnkgbGV2ZWwgd2FudHMgdG8gdXNlIHRoZSBjb2x1bW4n cwotCQkJICogY29sbGF0aW9uLikKLQkJCSAqLwotCQkJcmVzY29sY29sbCA9IHNlbGVjdF9jb21t b25fY29sbGF0aW9uKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCSBsaXN0X21ha2UyKGxjb2xub2RlLCBy Y29sbm9kZSksCi0JCQkJCQkJCQkJCQkgKG9wLT5vcCA9PSBTRVRPUF9VTklPTiAmJiBvcC0+YWxs KSk7CisJZm9yYm90aChsdGwsIGx0YXJnZXRsaXN0LCBydGwsIHJ0YXJnZXRsaXN0KQorCXsKKwkJ VGFyZ2V0RW50cnkgKmx0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGx0bCk7CisJCVRhcmdl dEVudHJ5ICpydGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChydGwpOworCQlOb2RlCSAgICps Y29sbm9kZSA9IChOb2RlICopIGx0bGUtPmV4cHI7CisJCU5vZGUJICAgKnJjb2xub2RlID0gKE5v ZGUgKikgcnRsZS0+ZXhwcjsKKwkJT2lkCQkJbGNvbHR5cGUgPSBleHByVHlwZShsY29sbm9kZSk7 CisJCU9pZAkJCXJjb2x0eXBlID0gZXhwclR5cGUocmNvbG5vZGUpOworCQlOb2RlCSAgICpiZXN0 ZXhwcjsKKwkJaW50CQkJYmVzdGxvY2F0aW9uOworCQlPaWQJCQlyZXNjb2x0eXBlOworCQlpbnQz MgkJcmVzY29sdHlwbW9kOworCQlPaWQJCQlyZXNjb2xjb2xsOworCisJCS8qIHNlbGVjdCBjb21t b24gdHlwZSwgc2FtZSBhcyBDQVNFIGV0IGFsICovCisJCXJlc2NvbHR5cGUgPSBzZWxlY3RfY29t bW9uX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUsIHJjb2xub2Rl KSwKKwkJCQkJCQkJCQljb250ZXh0LAorCQkJCQkJCQkJCSZiZXN0ZXhwcik7CisJCWJlc3Rsb2Nh dGlvbiA9IGV4cHJMb2NhdGlvbihiZXN0ZXhwcik7CiAKLQkJCS8qIGVtaXQgcmVzdWx0cyAqLwot CQkJb3AtPmNvbFR5cGVzID0gbGFwcGVuZF9vaWQob3AtPmNvbFR5cGVzLCByZXNjb2x0eXBlKTsK LQkJCW9wLT5jb2xUeXBtb2RzID0gbGFwcGVuZF9pbnQob3AtPmNvbFR5cG1vZHMsIHJlc2NvbHR5 cG1vZCk7Ci0JCQlvcC0+Y29sQ29sbGF0aW9ucyA9IGxhcHBlbmRfb2lkKG9wLT5jb2xDb2xsYXRp b25zLCByZXNjb2xjb2xsKTsKKwkJLyoKKwkJICogVmVyaWZ5IHRoZSBjb2VyY2lvbnMgYXJlIGFj dHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZhaWwKKwkJICogbGF0ZXIgYW55d2F5LCBi dXQgd2Ugd2FudCB0byBmYWlsIG5vdyB3aGlsZSB3ZSBoYXZlIHN1ZmZpY2llbnQKKwkJICogY29u dGV4dCB0byBwcm9kdWNlIGFuIGVycm9yIGN1cnNvciBwb3NpdGlvbi4KKwkJICoKKwkJICogRm9y IGFsbCBub24tVU5LTk9XTi10eXBlIGNhc2VzLCB3ZSB2ZXJpZnkgY29lcmNpYmlsaXR5IGJ1dCB3 ZSBkb24ndAorCQkgKiBtb2RpZnkgdGhlIGNoaWxkJ3MgZXhwcmVzc2lvbiwgZm9yIGZlYXIgb2Yg Y2hhbmdpbmcgdGhlIGNoaWxkCisJCSAqIHF1ZXJ5J3Mgc2VtYW50aWNzLgorCQkgKgorCQkgKiBJ ZiBhIGNoaWxkIGV4cHJlc3Npb24gaXMgYW4gVU5LTk9XTi10eXBlIENvbnN0IG9yIFBhcmFtLCB3 ZSB3YW50IHRvCisJCSAqIHJlcGxhY2UgaXQgd2l0aCB0aGUgY29lcmNlZCBleHByZXNzaW9uLiAg VGhpcyBjYW4gb25seSBoYXBwZW4gd2hlbgorCQkgKiB0aGUgY2hpbGQgaXMgYSBsZWFmIHNldC1v cCBub2RlLiAgSXQncyBzYWZlIHRvIHJlcGxhY2UgdGhlCisJCSAqIGV4cHJlc3Npb24gYmVjYXVz ZSBpZiB0aGUgY2hpbGQgcXVlcnkncyBzZW1hbnRpY3MgZGVwZW5kZWQgb24gdGhlCisJCSAqIHR5 cGUgb2YgdGhpcyBvdXRwdXQgY29sdW1uLCBpdCdkIGhhdmUgYWxyZWFkeSBjb2VyY2VkIHRoZSBV TktOT1dOCisJCSAqIHRvIHNvbWV0aGluZyBlbHNlLiAgV2Ugd2FudCB0byBkbyB0aGlzIGJlY2F1 c2UgKGEpIHdlIHdhbnQgdG8KKwkJICogdmVyaWZ5IHRoYXQgYSBDb25zdCBpcyB2YWxpZCBmb3Ig dGhlIHRhcmdldCB0eXBlLCBvciByZXNvbHZlIHRoZQorCQkgKiBhY3R1YWwgdHlwZSBvZiBhbiBV TktOT1dOIFBhcmFtLCBhbmQgKGIpIHdlIHdhbnQgdG8gYXZvaWQKKwkJICogdW5uZWNlc3Nhcnkg ZGlzY3JlcGFuY2llcyBiZXR3ZWVuIHRoZSBvdXRwdXQgdHlwZSBvZiB0aGUgY2hpbGQKKwkJICog cXVlcnkgYW5kIHRoZSByZXNvbHZlZCB0YXJnZXQgdHlwZS4gU3VjaCBhIGRpc2NyZXBhbmN5IHdv dWxkCisJCSAqIGRpc2FibGUgb3B0aW1pemF0aW9uIGluIHRoZSBwbGFubmVyLgorCQkgKgorCQkg KiBJZiBpdCdzIHNvbWUgb3RoZXIgVU5LTk9XTi10eXBlIG5vZGUsIGVnIGEgVmFyLCB3ZSBkbyBu b3RoaW5nCisJCSAqIChrbm93aW5nIHRoYXQgY29lcmNlX3RvX2NvbW1vbl90eXBlIHdvdWxkIGZh aWwpLiAgVGhlIHBsYW5uZXIgaXMKKwkJICogc29tZXRpbWVzIGFibGUgdG8gZm9sZCBhbiBVTktO T1dOIFZhciB0byBhIGNvbnN0YW50IGJlZm9yZSBpdCBoYXMKKwkJICogdG8gY29lcmNlIHRoZSB0 eXBlLCBzbyBmYWlsaW5nIG5vdyB3b3VsZCBqdXN0IGJyZWFrIGNhc2VzIHRoYXQKKwkJICogbWln aHQgd29yay4KKwkJICovCisJCWlmIChsY29sdHlwZSAhPSBVTktOT1dOT0lEKQorCQkJbGNvbG5v ZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKKwkJCQkJCQkJCQkJ IHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQllbHNlIGlmIChJc0EobGNvbG5vZGUsIENvbnN0KSB8 fAorCQkJCSBJc0EobGNvbG5vZGUsIFBhcmFtKSkKKwkJeworCQkJbGNvbG5vZGUgPSBjb2VyY2Vf dG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKKwkJCQkJCQkJCQkJIHJlc2NvbHR5cGUs IGNvbnRleHQpOworCQkJbHRsZS0+ZXhwciA9IChFeHByICopIGxjb2xub2RlOworCQl9CiAKLQkJ CS8qCi0JCQkgKiBGb3IgYWxsIGNhc2VzIGV4Y2VwdCBVTklPTiBBTEwsIGlkZW50aWZ5IHRoZSBn cm91cGluZyBvcGVyYXRvcnMKLQkJCSAqIChhbmQsIGlmIGF2YWlsYWJsZSwgc29ydGluZyBvcGVy YXRvcnMpIHRoYXQgd2lsbCBiZSB1c2VkIHRvCi0JCQkgKiBlbGltaW5hdGUgZHVwbGljYXRlcy4K LQkJCSAqLwotCQkJaWYgKG9wLT5vcCAhPSBTRVRPUF9VTklPTiB8fCAhb3AtPmFsbCkKLQkJCXsK LQkJCQlQYXJzZUNhbGxiYWNrU3RhdGUgcGNic3RhdGU7CisJCWlmIChyY29sdHlwZSAhPSBVTktO T1dOT0lEKQorCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCByY29s bm9kZSwKKwkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQllbHNlIGlmIChJc0Eo cmNvbG5vZGUsIENvbnN0KSB8fAorCQkJCSBJc0EocmNvbG5vZGUsIFBhcmFtKSkKKwkJeworCQkJ cmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCByY29sbm9kZSwKKwkJCQkJ CQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQkJcnRsZS0+ZXhwciA9IChFeHByICopIHJj b2xub2RlOworCQl9CiAKLQkJCQlzZXR1cF9wYXJzZXJfZXJycG9zaXRpb25fY2FsbGJhY2soJnBj YnN0YXRlLCBwc3RhdGUsCi0JCQkJCQkJCQkJCQkgIGJlc3Rsb2NhdGlvbik7CisJCXJlc2NvbHR5 cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBzdGF0ZSwKKwkJCQkJCQkJCQkJbGlzdF9tYWtl MihsY29sbm9kZSwgcmNvbG5vZGUpLAorCQkJCQkJCQkJCQlyZXNjb2x0eXBlKTsKIAotCQkJCS8q Ci0JCQkJICogSWYgaXQncyBhIHJlY3Vyc2l2ZSB1bmlvbiwgd2UgbmVlZCB0byByZXF1aXJlIGhh c2hpbmcKLQkJCQkgKiBzdXBwb3J0LgotCQkJCSAqLwotCQkJCW9wLT5ncm91cENsYXVzZXMgPSBs YXBwZW5kKG9wLT5ncm91cENsYXVzZXMsCi0JCQkJCQkJCQkJICAgbWFrZVNvcnRHcm91cENsYXVz ZUZvclNldE9wKHJlc2NvbHR5cGUsIHJlY3Vyc2l2ZSkpOworCQkvKgorCQkgKiBTZWxlY3QgY29t bW9uIGNvbGxhdGlvbi4gIEEgY29tbW9uIGNvbGxhdGlvbiBpcyByZXF1aXJlZCBmb3IgYWxsCisJ CSAqIHNldCBvcGVyYXRvcnMgZXhjZXB0IFVOSU9OIEFMTDsgc2VlIFNRTDoyMDA4IDcuMTMgPHF1 ZXJ5CisJCSAqIGV4cHJlc3Npb24+IFN5bnRheCBSdWxlIDE1Yy4gIChJZiB3ZSBmYWlsIHRvIGlk ZW50aWZ5IGEgY29tbW9uCisJCSAqIGNvbGxhdGlvbiBmb3IgYSBVTklPTiBBTEwgY29sdW1uLCB0 aGUgY29sQ29sbGF0aW9ucyBlbGVtZW50IHdpbGwgYmUKKwkJICogc2V0IHRvIEludmFsaWRPaWQs IHdoaWNoIG1heSByZXN1bHQgaW4gYSBydW50aW1lIGVycm9yIGlmIHNvbWV0aGluZworCQkgKiBh dCBhIGhpZ2hlciBxdWVyeSBsZXZlbCB3YW50cyB0byB1c2UgdGhlIGNvbHVtbidzIGNvbGxhdGlv bi4pCisJCSAqLworCQlyZXNjb2xjb2xsID0gc2VsZWN0X2NvbW1vbl9jb2xsYXRpb24ocHN0YXRl LAorCQkJCQkJCQkJCQkgbGlzdF9tYWtlMihsY29sbm9kZSwgcmNvbG5vZGUpLAorCQkJCQkJCQkJ CQkgKG9wLT5vcCA9PSBTRVRPUF9VTklPTiAmJiBvcC0+YWxsKSk7CiAKLQkJCQljYW5jZWxfcGFy c2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7Ci0JCQl9CisJCS8qIGVtaXQgcmVz dWx0cyAqLworCQlvcC0+Y29sVHlwZXMgPSBsYXBwZW5kX29pZChvcC0+Y29sVHlwZXMsIHJlc2Nv bHR5cGUpOworCQlvcC0+Y29sVHlwbW9kcyA9IGxhcHBlbmRfaW50KG9wLT5jb2xUeXBtb2RzLCBy ZXNjb2x0eXBtb2QpOworCQlvcC0+Y29sQ29sbGF0aW9ucyA9IGxhcHBlbmRfb2lkKG9wLT5jb2xD b2xsYXRpb25zLCByZXNjb2xjb2xsKTsKIAotCQkJLyoKLQkJCSAqIENvbnN0cnVjdCBhIGR1bW15 IHRsaXN0IGVudHJ5IHRvIHJldHVybi4gIFdlIHVzZSBhIFNldFRvRGVmYXVsdAotCQkJICogbm9k ZSBmb3IgdGhlIGV4cHJlc3Npb24sIHNpbmNlIGl0IGNhcnJpZXMgZXhhY3RseSB0aGUgZmllbGRz Ci0JCQkgKiBuZWVkZWQsIGJ1dCBhbnkgb3RoZXIgZXhwcmVzc2lvbiBub2RlIHR5cGUgd291bGQg ZG8gYXMgd2VsbC4KLQkJCSAqLwotCQkJaWYgKHRhcmdldGxpc3QpCi0JCQl7Ci0JCQkJU2V0VG9E ZWZhdWx0ICpyZXNjb2xub2RlID0gbWFrZU5vZGUoU2V0VG9EZWZhdWx0KTsKLQkJCQlUYXJnZXRF bnRyeSAqcmVzdGxlOwotCi0JCQkJcmVzY29sbm9kZS0+dHlwZUlkID0gcmVzY29sdHlwZTsKLQkJ CQlyZXNjb2xub2RlLT50eXBlTW9kID0gcmVzY29sdHlwbW9kOwotCQkJCXJlc2NvbG5vZGUtPmNv bGxhdGlvbiA9IHJlc2NvbGNvbGw7Ci0JCQkJcmVzY29sbm9kZS0+bG9jYXRpb24gPSBiZXN0bG9j YXRpb247Ci0JCQkJcmVzdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHJlc2NvbG5vZGUs Ci0JCQkJCQkJCQkJIDAsIC8qIG5vIG5lZWQgdG8gc2V0IHJlc25vICovCi0JCQkJCQkJCQkJIE5V TEwsCi0JCQkJCQkJCQkJIGZhbHNlKTsKLQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBlbmQoKnRhcmdl dGxpc3QsIHJlc3RsZSk7Ci0JCQl9CisJCS8qCisJCSAqIEZvciBhbGwgY2FzZXMgZXhjZXB0IFVO SU9OIEFMTCwgaWRlbnRpZnkgdGhlIGdyb3VwaW5nIG9wZXJhdG9ycworCQkgKiAoYW5kLCBpZiBh dmFpbGFibGUsIHNvcnRpbmcgb3BlcmF0b3JzKSB0aGF0IHdpbGwgYmUgdXNlZCB0bworCQkgKiBl bGltaW5hdGUgZHVwbGljYXRlcy4KKwkJICovCisJCWlmIChvcC0+b3AgIT0gU0VUT1BfVU5JT04g fHwgIW9wLT5hbGwpCisJCXsKKwkJCVBhcnNlQ2FsbGJhY2tTdGF0ZSBwY2JzdGF0ZTsKKworCQkJ c2V0dXBfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSwgcHN0YXRlLAorCQkJ CQkJCQkJCQkgIGJlc3Rsb2NhdGlvbik7CisKKwkJCS8qIElmIGl0J3MgYSByZWN1cnNpdmUgdW5p b24sIHdlIG5lZWQgdG8gcmVxdWlyZSBoYXNoaW5nIHN1cHBvcnQuICovCisJCQlvcC0+Z3JvdXBD bGF1c2VzID0gbGFwcGVuZChvcC0+Z3JvdXBDbGF1c2VzLAorCQkJCQkJCQkJICAgbWFrZVNvcnRH cm91cENsYXVzZUZvclNldE9wKHJlc2NvbHR5cGUsIHJlY3Vyc2l2ZSkpOworCisJCQljYW5jZWxf cGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7CiAJCX0KIAotCQlyZXR1cm4g KE5vZGUgKikgb3A7CisJCS8qCisJCSAqIENvbnN0cnVjdCBhIGR1bW15IHRsaXN0IGVudHJ5IHRv IHJldHVybi4gIFdlIHVzZSBhIFNldFRvRGVmYXVsdAorCQkgKiBub2RlIGZvciB0aGUgZXhwcmVz c2lvbiwgc2luY2UgaXQgY2FycmllcyBleGFjdGx5IHRoZSBmaWVsZHMKKwkJICogbmVlZGVkLCBi dXQgYW55IG90aGVyIGV4cHJlc3Npb24gbm9kZSB0eXBlIHdvdWxkIGRvIGFzIHdlbGwuCisJCSAq LworCQlpZiAodGFyZ2V0bGlzdCkKKwkJeworCQkJU2V0VG9EZWZhdWx0ICpyZXNjb2xub2RlID0g bWFrZU5vZGUoU2V0VG9EZWZhdWx0KTsKKwkJCVRhcmdldEVudHJ5ICpyZXN0bGU7CisKKwkJCXJl c2NvbG5vZGUtPnR5cGVJZCA9IHJlc2NvbHR5cGU7CisJCQlyZXNjb2xub2RlLT50eXBlTW9kID0g cmVzY29sdHlwbW9kOworCQkJcmVzY29sbm9kZS0+Y29sbGF0aW9uID0gcmVzY29sY29sbDsKKwkJ CXJlc2NvbG5vZGUtPmxvY2F0aW9uID0gYmVzdGxvY2F0aW9uOworCQkJcmVzdGxlID0gbWFrZVRh cmdldEVudHJ5KChFeHByICopIHJlc2NvbG5vZGUsCisJCQkJCQkJCQkgMCwgLyogbm8gbmVlZCB0 byBzZXQgcmVzbm8gKi8KKwkJCQkJCQkJCSBOVUxMLAorCQkJCQkJCQkJIGZhbHNlKTsKKwkJCSp0 YXJnZXRsaXN0ID0gbGFwcGVuZCgqdGFyZ2V0bGlzdCwgcmVzdGxlKTsKKwkJfQogCX0KIH0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggNjdlYjk2Mzk2YWYuLmMwZDc2ZDVkODQyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTI4NCw2ICsyODQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDcmVhdGVTY2hlbWFT dG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVT cGFjZVN0bXQKIAkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVG b3JlaWduVGFibGVTdG10CiAJCUNyZWF0ZUFzc2VydGlvblN0bXQgQ3JlYXRlVHJhbnNmb3JtU3Rt dCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVFdmVudFRyaWdTdG10CisJCUNyZWF0ZVByb3BHcmFwaFN0 bXQgQWx0ZXJQcm9wR3JhcGhTdG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5n U3RtdCBDcmVhdGVSb2xlU3RtdCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNs YXJlQ3Vyc29yU3RtdCBEZWZpbmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CiAJ CURyb3BPcENsYXNzU3RtdCBEcm9wT3BGYW1pbHlTdG10IERyb3BTdG10CkBAIC02NjQsNiArNjY1 LDM2IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0 b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVz ZV9vcHQKIAorJXR5cGUgPGxpc3Q+CXZlcnRleF90YWJsZXNfY2xhdXNlIGVkZ2VfdGFibGVzX2Ns YXVzZQorCQkJCW9wdF92ZXJ0ZXhfdGFibGVzX2NsYXVzZSBvcHRfZWRnZV90YWJsZXNfY2xhdXNl CisJCQkJdmVydGV4X3RhYmxlX2xpc3QKKwkJCQlvcHRfZ3JhcGhfdGFibGVfa2V5X2NsYXVzZQor CQkJCWVkZ2VfdGFibGVfbGlzdAorCQkJCXNvdXJjZV92ZXJ0ZXhfdGFibGUgZGVzdGluYXRpb25f dmVydGV4X3RhYmxlCisJCQkJb3B0X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3BlcnRpZXMK KwkJCQlsYWJlbF9hbmRfcHJvcGVydGllc19saXN0CisJCQkJYWRkX2xhYmVsX2xpc3QKKyV0eXBl IDxub2RlPgl2ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbiBlZGdlX3RhYmxlX2RlZmluaXRpb24KKyV0 eXBlIDxhbGlhcz4Jb3B0X3Byb3BncmFwaF90YWJsZV9hbGlhcworJXR5cGUgPHN0cj4JCWVsZW1l bnRfdGFibGVfbGFiZWxfY2xhdXNlCisldHlwZSA8bm9kZT4JbGFiZWxfYW5kX3Byb3BlcnRpZXMg ZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzCisJCQkJYWRkX2xhYmVsCisldHlwZSA8aXZhbD4JdmVy dGV4X29yX2VkZ2UKKworJXR5cGUgPGxpc3Q+CW9wdF9ncmFwaF9wYXR0ZXJuX3F1YW50aWZpZXIK KwkJCQlwYXRoX3BhdHRlcm5fbGlzdAorCQkJCXBhdGhfcGF0dGVybgorCQkJCXBhdGhfcGF0dGVy bl9leHByZXNzaW9uCisJCQkJcGF0aF90ZXJtCisldHlwZSA8bm9kZT4JZ3JhcGhfcGF0dGVybgor CQkJCXBhdGhfZmFjdG9yCisJCQkJcGF0aF9wcmltYXJ5CisJCQkJb3B0X2lzX2xhYmVsX2V4cHJl c3Npb24KKwkJCQlsYWJlbF9leHByZXNzaW9uCisJCQkJbGFiZWxfZGlzanVuY3Rpb24KKwkJCQls YWJlbF90ZXJtCisldHlwZSA8c3RyPgkJb3B0X2NvbGlkCisKIAogLyoKICAqIE5vbi1rZXl3b3Jk IHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVy LgpAQCAtNzA3LDE4ICs3MzgsMTggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlDVVJSRU5U X1RJTUUgQ1VSUkVOVF9USU1FU1RBTVAgQ1VSUkVOVF9VU0VSIENVUlNPUiBDWUNMRQogCiAJREFU QV9QIERBVEFCQVNFIERBWV9QIERFQUxMT0NBVEUgREVDIERFQ0lNQUxfUCBERUNMQVJFIERFRkFV TFQgREVGQVVMVFMKLQlERUZFUlJBQkxFIERFRkVSUkVEIERFRklORVIgREVMRVRFX1AgREVMSU1J VEVSIERFTElNSVRFUlMgREVQRU5EUyBERVBUSCBERVNDCisJREVGRVJSQUJMRSBERUZFUlJFRCBE RUZJTkVSIERFTEVURV9QIERFTElNSVRFUiBERUxJTUlURVJTIERFUEVORFMgREVQVEggREVTQyBE RVNUSU5BVElPTgogCURFVEFDSCBESUNUSU9OQVJZIERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNU IERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0UgRU1Q VFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVSUk9SX1AgRVND QVBFCisJRUFDSCBFREdFIEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQg RU5EX1AgRU5VTV9QIEVSUk9SX1AgRVNDQVBFCiAJRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVE SU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04KIAlFWFRFTlNJ T04gRVhURVJOQUwgRVhUUkFDVAogCiAJRkFMU0VfUCBGQU1JTFkgRkVUQ0ggRklMVEVSIEZJTkFM SVpFIEZJUlNUX1AgRkxPQVRfUCBGT0xMT1dJTkcgRk9SCiAJRk9SQ0UgRk9SRUlHTiBGT1JNQVQg Rk9SV0FSRCBGUkVFWkUgRlJPTSBGVUxMIEZVTkNUSU9OIEZVTkNUSU9OUwogCi0JR0VORVJBVEVE IEdMT0JBTCBHUkFOVCBHUkFOVEVEIEdSRUFURVNUIEdST1VQX1AgR1JPVVBJTkcgR1JPVVBTCisJ R0VORVJBVEVEIEdMT0JBTCBHUkFOVCBHUkFOVEVEIEdSQVBIIEdSQVBIX1RBQkxFIEdSRUFURVNU IEdST1VQX1AgR1JPVVBJTkcgR1JPVVBTCiAKIAlIQU5ETEVSIEhBVklORyBIRUFERVJfUCBIT0xE IEhPVVJfUAogCkBAIC03MzksNyArNzcwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlN QVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FD VElPTiBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxVRSBNT0RFIE1PTlRIX1AgTU9WRQogCi0JTkFN RV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVTVEVEIE5FVyBORVhUIE5GQyBORkQg TkZLQyBORktEIE5PCisJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVTVEVE IE5FVyBORVhUIE5GQyBORkQgTkZLQyBORktEIE5PIE5PREUKIAlOT05FIE5PUk1BTElaRSBOT1JN QUxJWkVECiAJTk9UIE5PVEhJTkcgTk9USUZZIE5PVE5VTEwgTk9XQUlUIE5VTExfUCBOVUxMSUYK IAlOVUxMU19QIE5VTUVSSUMKQEAgLTc1MSwxMiArNzgyLDEyIEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJUEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVNT SU5HIFBBU1NXT1JEIFBBVEgKIAlQRVJJT0QgUExBQ0lORyBQTEFOIFBMQU5TIFBPTElDWQogCVBP U0lUSU9OIFBSRUNFRElORyBQUkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklN QVJZCi0JUFJJT1IgUFJJVklMRUdFUyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBS T0dSQU0gUFVCTElDQVRJT04KKwlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJF IFBST0NFRFVSRVMgUFJPR1JBTSBQUk9QRVJUSUVTIFBST1BFUlRZIFBVQkxJQ0FUSU9OCiAKIAlR VU9URSBRVU9URVMKIAogCVJBTkdFIFJFQUQgUkVBTCBSRUFTU0lHTiBSRUNVUlNJVkUgUkVGX1Ag UkVGRVJFTkNFUyBSRUZFUkVOQ0lORwotCVJFRlJFU0ggUkVJTkRFWCBSRUxBVElWRV9QIFJFTEVB U0UgUkVOQU1FIFJFUEVBVEFCTEUgUkVQTEFDRSBSRVBMSUNBCisJUkVGUkVTSCBSRUlOREVYIFJF TEFUSU9OU0hJUCBSRUxBVElWRV9QIFJFTEVBU0UgUkVOQU1FIFJFUEVBVEFCTEUgUkVQTEFDRSBS RVBMSUNBCiAJUkVTRVQgUkVTVEFSVCBSRVNUUklDVCBSRVRVUk4gUkVUVVJOSU5HIFJFVFVSTlMg UkVWT0tFIFJJR0hUIFJPTEUgUk9MTEJBQ0sgUk9MTFVQCiAJUk9VVElORSBST1VUSU5FUyBST1cg Uk9XUyBSVUxFCiAKQEAgLTc3Niw3ICs4MDcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CVVOTElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKIAlWQUNVVU0gVkFM SUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFS WUlORwotCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWRVJCT1NFIFZF UlNJT05fUCBWRVJURVggVklFVyBWSUVXUyBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQ QUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAg LTg3NCw3ICs5MDUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJW5vbmFzc29jCVVOQk9V TkRFRCBORVNURUQgLyogaWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVO VCAqLwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJ TkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCiAJCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFM VUVfUCBXSVRIIFdJVEhPVVQgUEFUSAotJWxlZnQJCU9wIE9QRVJBVE9SCQkvKiBtdWx0aS1jaGFy YWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0b3JzICovCislbGVmdAkJT3AgT1BFUkFU T1IgUklHSFRfQVJST1cgJ3wnCS8qIG11bHRpLWNoYXJhY3RlciBvcHMgYW5kIHVzZXItZGVmaW5l ZCBvcGVyYXRvcnMgKi8KICVsZWZ0CQknKycgJy0nCiAlbGVmdAkJJyonICcvJyAnJScKICVsZWZ0 CQknXicKQEAgLTEwMDEsNiArMTAzMiw3IEBAIHN0bXQ6CiAJCQl8IEFsdGVyT3BlcmF0b3JTdG10 CiAJCQl8IEFsdGVyVHlwZVN0bXQKIAkJCXwgQWx0ZXJQb2xpY3lTdG10CisJCQl8IEFsdGVyUHJv cEdyYXBoU3RtdAogCQkJfCBBbHRlclNlcVN0bXQKIAkJCXwgQWx0ZXJTeXN0ZW1TdG10CiAJCQl8 IEFsdGVyVGFibGVTdG10CkBAIC0xMDQxLDYgKzEwNzMsNyBAQCBzdG10OgogCQkJfCBBbHRlck9w RmFtaWx5U3RtdAogCQkJfCBDcmVhdGVQb2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAor CQkJfCBDcmVhdGVQcm9wR3JhcGhTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0bXQKIAkJCXwgQ3Jl YXRlU2VxU3RtdAogCQkJfCBDcmVhdGVTdG10CkBAIC02OTkxLDYgKzcwMjQsNyBAQCBvYmplY3Rf dHlwZV9hbnlfbmFtZToKIAkJCXwgTUFURVJJQUxJWkVEIFZJRVcJCQkJCQl7ICQkID0gT0JKRUNU X01BVFZJRVc7IH0KIAkJCXwgSU5ERVgJCQkJCQkJCQl7ICQkID0gT0JKRUNUX0lOREVYOyB9CiAJ CQl8IEZPUkVJR04gVEFCTEUJCQkJCQkJeyAkJCA9IE9CSkVDVF9GT1JFSUdOX1RBQkxFOyB9CisJ CQl8IFBST1BFUlRZIEdSQVBICQkJCQkJeyAkJCA9IE9CSkVDVF9QUk9QR1JBUEg7IH0KIAkJCXwg Q09MTEFUSU9OCQkJCQkJCQl7ICQkID0gT0JKRUNUX0NPTExBVElPTjsgfQogCQkJfCBDT05WRVJT SU9OX1AJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT05WRVJTSU9OOyB9CiAJCQl8IFNUQVRJU1RJQ1MJ CQkJCQkJeyAkJCA9IE9CSkVDVF9TVEFUSVNUSUNfRVhUOyB9CkBAIC03ODQ3LDYgKzc4ODEsMTUg QEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwogCQkJCQkkJCA9IG47CiAJ CQkJfQorCQkJfCBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZV9saXN0CisJCQkJeworCQkJ CQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0 KSk7CisKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2Jq dHlwZSA9IE9CSkVDVF9QUk9QR1JBUEg7CisJCQkJCW4tPm9ianMgPSAkMzsKKwkJCQkJJCQgPSBu OworCQkJCX0KIAkJCXwgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAq biA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAtOTE3MCw2 ICs5MjEzLDM2NiBAQCBvcHRfaWZfZXhpc3RzOiBJRl9QIEVYSVNUUwkJCQkJCXsgJCQgPSB0cnVl OyB9CiAJCTsKIAogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJQ1JFQVRFIFBST1BF UlRZIEdSQVBICisgKgkJQUxURVIgUFJPUEVSVFkgR1JBUEgKKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisKK0NyZWF0ZVByb3BHcmFwaFN0bXQ6IENSRUFURSBPcHRUZW1wIFBST1BFUlRZIEdS QVBIIHF1YWxpZmllZF9uYW1lIG9wdF92ZXJ0ZXhfdGFibGVzX2NsYXVzZSBvcHRfZWRnZV90YWJs ZXNfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVQcm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDU7CisJCQkJCW4tPnBn bmFtZS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmVydGV4X3RhYmxlcyA9ICQ2Owor CQkJCQluLT5lZGdlX3RhYmxlcyA9ICQ3OworCisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K KwkJOworCitvcHRfdmVydGV4X3RhYmxlc19jbGF1c2U6CisJCQl2ZXJ0ZXhfdGFibGVzX2NsYXVz ZQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCXsgJCQgPSBOSUw7IH0KKwkJ OworCit2ZXJ0ZXhfdGFibGVzX2NsYXVzZToKKwkJCXZlcnRleF9zeW5vbnltIFRBQkxFUyAnKCcg dmVydGV4X3RhYmxlX2xpc3QgJyknCXsgJCQgPSAkNDsgfQorCQk7CisKK3ZlcnRleF9zeW5vbnlt OiBOT0RFIHwgVkVSVEVYCisJCTsKKwordmVydGV4X3RhYmxlX2xpc3Q6IHZlcnRleF90YWJsZV9k ZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IHZlcnRleF90YWJs ZV9saXN0ICcsJyB2ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbgkJeyAkJCA9IGxhcHBlbmQoJDEsICQz KTsgfQorCQk7CisKK3ZlcnRleF90YWJsZV9kZWZpbml0aW9uOiBxdWFsaWZpZWRfbmFtZSBvcHRf cHJvcGdyYXBoX3RhYmxlX2FsaWFzIG9wdF9ncmFwaF90YWJsZV9rZXlfY2xhdXNlCisJCQkJb3B0 X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3BlcnRpZXMKKwkJCQl7CisJCQkJCVByb3BHcmFw aFZlcnRleCAqbiA9IG1ha2VOb2RlKFByb3BHcmFwaFZlcnRleCk7CisKKwkJCQkJJDEtPmFsaWFz ID0gJDI7CisJCQkJCW4tPnZ0YWJsZSA9ICQxOworCQkJCQluLT52a2V5ID0gJDM7CisJCQkJCW4t PmxhYmVscyA9ICQ0OworCQkJCQluLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CisJCTsKKworb3B0X3Byb3BncmFwaF90YWJsZV9hbGlhczoKKwkJCUFTIG5h bWUKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoQWxpYXMpOworCQkJCQkkJC0+YWxpYXNuYW1l ID0gJDI7CisJCQkJfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOwor CitvcHRfZ3JhcGhfdGFibGVfa2V5X2NsYXVzZToKKwkJCUtFWSAnKCcgY29sdW1uTGlzdCAnKScJ CQkJeyAkJCA9ICQzOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQl7ICQkID0gTklMOyB9CisJCTsK Kworb3B0X2VkZ2VfdGFibGVzX2NsYXVzZToKKwkJCWVkZ2VfdGFibGVzX2NsYXVzZQkJCQkJeyAk JCA9ICQxOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQl7ICQkID0gTklMOyB9CisJCTsKKworZWRn ZV90YWJsZXNfY2xhdXNlOgorCQkJZWRnZV9zeW5vbnltIFRBQkxFUyAnKCcgZWRnZV90YWJsZV9s aXN0CScpJwkJCXsgJCQgPSAkNDsgfQorCQk7CisKK2VkZ2Vfc3lub255bTogRURHRSB8IFJFTEFU SU9OU0hJUAorCQk7CisKK2VkZ2VfdGFibGVfbGlzdDogZWRnZV90YWJsZV9kZWZpbml0aW9uCQkJ CQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IGVkZ2VfdGFibGVfbGlzdCAnLCcgZWRn ZV90YWJsZV9kZWZpbml0aW9uCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJCTsKKworZWRn ZV90YWJsZV9kZWZpbml0aW9uOiBxdWFsaWZpZWRfbmFtZSBvcHRfcHJvcGdyYXBoX3RhYmxlX2Fs aWFzIG9wdF9ncmFwaF90YWJsZV9rZXlfY2xhdXNlCisJCQkJc291cmNlX3ZlcnRleF90YWJsZSBk ZXN0aW5hdGlvbl92ZXJ0ZXhfdGFibGUgb3B0X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3Bl cnRpZXMKKwkJCQl7CisJCQkJCVByb3BHcmFwaEVkZ2UgKm4gPSBtYWtlTm9kZShQcm9wR3JhcGhF ZGdlKTsKKworCQkJCQkkMS0+YWxpYXMgPSAkMjsKKwkJCQkJbi0+ZXRhYmxlID0gJDE7CisJCQkJ CW4tPmVrZXkgPSAkMzsKKwkJCQkJbi0+ZXNyY2tleSA9IGxpbml0aWFsKCQ0KTsKKwkJCQkJbi0+ ZXNyY3ZlcnRleCA9IGxzZWNvbmQoJDQpOworCQkJCQluLT5lc3JjdmVydGV4Y29scyA9IGx0aGly ZCgkNCk7CisJCQkJCW4tPmVkZXN0a2V5ID0gbGluaXRpYWwoJDUpOworCQkJCQluLT5lZGVzdHZl cnRleCA9IGxzZWNvbmQoJDUpOworCQkJCQluLT5lZGVzdHZlcnRleGNvbHMgPSBsdGhpcmQoJDUp OworCQkJCQluLT5sYWJlbHMgPSAkNjsKKwkJCQkJbi0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkk JCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKK3NvdXJjZV92ZXJ0ZXhfdGFibGU6IFNPVVJD RSBuYW1lCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTMoTlVMTCwgJDIsIE5VTEwpOworCQkJ CX0KKwkJCQl8IFNPVVJDRSBLRVkgJygnIGNvbHVtbkxpc3QgJyknIFJFRkVSRU5DRVMgbmFtZSAn KCcgY29sdW1uTGlzdCAnKScKKwkJCQl7CisJCQkJCSQkID0gbGlzdF9tYWtlMygkNCwgJDcsICQ5 KTsKKwkJCQl9CisJCTsKKworZGVzdGluYXRpb25fdmVydGV4X3RhYmxlOiBERVNUSU5BVElPTiBu YW1lCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTMoTlVMTCwgJDIsIE5VTEwpOworCQkJCX0K KwkJCQl8IERFU1RJTkFUSU9OIEtFWSAnKCcgY29sdW1uTGlzdCAnKScgUkVGRVJFTkNFUyBuYW1l ICcoJyBjb2x1bW5MaXN0ICcpJworCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21ha2UzKCQ0LCAkNywg JDkpOworCQkJCX0KKwkJOworCitvcHRfZWxlbWVudF90YWJsZV9sYWJlbF9hbmRfcHJvcGVydGll czoKKwkJCWVsZW1lbnRfdGFibGVfcHJvcGVydGllcworCQkJCXsKKwkJCQkJUHJvcEdyYXBoTGFi ZWxBbmRQcm9wZXJ0aWVzICpscCA9IG1ha2VOb2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGll cyk7CisKKwkJCQkJbHAtPnByb3BlcnRpZXMgPSAoUHJvcEdyYXBoUHJvcGVydGllcyAqKSAkMTsK KwkJCQkJbHAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSBsaXN0X21ha2UxKGxwKTsKKwkJ CQl9CisJCQl8IGxhYmVsX2FuZF9wcm9wZXJ0aWVzX2xpc3QKKwkJCQl7CisJCQkJCSQkID0gJDE7 CisJCQkJfQorCQkJfCAvKkVNUFRZKi8KKwkJCQl7CisJCQkJCVByb3BHcmFwaExhYmVsQW5kUHJv cGVydGllcyAqbHAgPSBtYWtlTm9kZShQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMpOworCQkJ CQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3BlcnRpZXMp OworCisJCQkJCXByLT5hbGwgPSB0cnVlOworCQkJCQlwci0+bG9jYXRpb24gPSAtMTsKKwkJCQkJ bHAtPnByb3BlcnRpZXMgPSBwcjsKKwkJCQkJbHAtPmxvY2F0aW9uID0gLTE7CisKKwkJCQkJJCQg PSBsaXN0X21ha2UxKGxwKTsKKwkJCQl9CisJCTsKKworZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVz OgorCQkJTk8gUFJPUEVSVElFUworCQkJCXsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIg PSBtYWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlwci0+cHJvcGVydGllcyA9 IE5JTDsKKwkJCQkJcHItPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBwcjsK KwkJCQl9CisJCQl8IFBST1BFUlRJRVMgQUxMIENPTFVNTlMKKwkJCS8qfCBQUk9QRVJUSUVTIEFS RSBBTEwgQ09MVU1OUyAqLworCQkJCXsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIgPSBt YWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlwci0+YWxsID0gdHJ1ZTsKKwkJ CQkJcHItPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBwcjsKKwkJCQl9CisJ CQl8IFBST1BFUlRJRVMgJygnIHhtbF9hdHRyaWJ1dGVfbGlzdCAnKScKKwkJCQl7CisJCQkJCVBy b3BHcmFwaFByb3BlcnRpZXMgKnByID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGllcyk7CisK KwkJCQkJcHItPnByb3BlcnRpZXMgPSAkMzsKKwkJCQkJcHItPmxvY2F0aW9uID0gQDE7CisKKwkJ CQkJJCQgPSAoTm9kZSAqKSBwcjsKKwkJCQl9CisJCTsKKworbGFiZWxfYW5kX3Byb3BlcnRpZXNf bGlzdDoKKwkJCWxhYmVsX2FuZF9wcm9wZXJ0aWVzCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFr ZTEoJDEpOworCQkJCX0KKwkJCXwgbGFiZWxfYW5kX3Byb3BlcnRpZXNfbGlzdCBsYWJlbF9hbmRf cHJvcGVydGllcworCQkJCXsKKwkJCQkJJCQgPSBsYXBwZW5kKCQxLCAkMik7CisJCQkJfQorCQk7 CisKK2xhYmVsX2FuZF9wcm9wZXJ0aWVzOgorCQkJZWxlbWVudF90YWJsZV9sYWJlbF9jbGF1c2UK KwkJCQl7CisJCQkJCVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBtYWtlTm9kZShQ cm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMpOworCQkJCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpw ciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3BlcnRpZXMpOworCisJCQkJCXByLT5hbGwgPSB0cnVl OworCQkJCQlwci0+bG9jYXRpb24gPSAtMTsKKworCQkJCQlscC0+bGFiZWwgPSAkMTsKKwkJCQkJ bHAtPnByb3BlcnRpZXMgPSBwcjsKKwkJCQkJbHAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQg PSAoTm9kZSAqKSBscDsKKwkJCQl9CisJCQl8IGVsZW1lbnRfdGFibGVfbGFiZWxfY2xhdXNlIGVs ZW1lbnRfdGFibGVfcHJvcGVydGllcworCQkJCXsKKwkJCQkJUHJvcEdyYXBoTGFiZWxBbmRQcm9w ZXJ0aWVzICpscCA9IG1ha2VOb2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyk7CisKKwkJ CQkJbHAtPmxhYmVsID0gJDE7CisJCQkJCWxwLT5wcm9wZXJ0aWVzID0gKFByb3BHcmFwaFByb3Bl cnRpZXMgKikgJDI7CisJCQkJCWxwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUg KikgbHA7CisJCQkJfQorCQk7CisKK2VsZW1lbnRfdGFibGVfbGFiZWxfY2xhdXNlOgorCQkJTEFC RUwgbmFtZQorCQkJCXsKKwkJCQkJJCQgPSAkMjsKKwkJCQl9CisJCQl8IERFRkFVTFQgTEFCRUwK KwkJCQl7CisJCQkJCSQkID0gTlVMTDsKKwkJCQl9CisJCTsKKworQWx0ZXJQcm9wR3JhcGhTdG10 OgorCQkJQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUREX1AgdmVydGV4X3Rh Ymxlc19jbGF1c2UKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmFk ZF92ZXJ0ZXhfdGFibGVzID0gJDY7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ CXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUREX1AgdmVydGV4X3RhYmxl c19jbGF1c2UgQUREX1AgZWRnZV90YWJsZXNfY2xhdXNlCisJCQkJeworCQkJCQlBbHRlclByb3BH cmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBn bmFtZSA9ICQ0OworCQkJCQluLT5hZGRfdmVydGV4X3RhYmxlcyA9ICQ2OworCQkJCQluLT5hZGRf ZWRnZV90YWJsZXMgPSAkODsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBB TFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBRERfUCBlZGdlX3RhYmxlc19jbGF1 c2UKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJv cEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmFkZF9lZGdlX3Rh YmxlcyA9ICQ2OworCisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBS T1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIERST1AgdmVydGV4X3N5bm9ueW0gVEFCTEVTICco JyBuYW1lX2xpc3QgJyknIG9wdF9kcm9wX2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclByb3BH cmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBn bmFtZSA9ICQ0OworCQkJCQluLT5kcm9wX3ZlcnRleF90YWJsZXMgPSAkOTsKKwkJCQkJbi0+ZHJv cF9iZWhhdmlvciA9ICQxMTsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBB TFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBEUk9QIGVkZ2Vfc3lub255bSBUQUJM RVMgJygnIG5hbWVfbGlzdCAnKScgb3B0X2Ryb3BfYmVoYXZpb3IKKwkJCQl7CisJCQkJCUFsdGVy UHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJ bi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmRyb3BfZWRnZV90YWJsZXMgPSAkOTsKKwkJCQkJbi0+ ZHJvcF9iZWhhdmlvciA9ICQxMTsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJ fCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBTFRFUiB2ZXJ0ZXhfb3JfZWRn ZSBUQUJMRSBuYW1lCisJCQkJYWRkX2xhYmVsX2xpc3QKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdy YXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGdu YW1lID0gJDQ7CisJCQkJCW4tPmVsZW1lbnRfa2luZCA9ICQ2OworCQkJCQluLT5lbGVtZW50X2Fs aWFzID0gJDg7CisJCQkJCW4tPmFkZF9sYWJlbHMgPSAkOTsKKworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBTFRF UiB2ZXJ0ZXhfb3JfZWRnZSBUQUJMRSBuYW1lCisJCQkJRFJPUCBMQUJFTCBuYW1lIG9wdF9kcm9w X2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclByb3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShB bHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBnbmFtZSA9ICQ0OworCQkJCQluLT5lbGVt ZW50X2tpbmQgPSAkNjsKKwkJCQkJbi0+ZWxlbWVudF9hbGlhcyA9ICQ4OworCQkJCQluLT5kcm9w X2xhYmVsID0gJDExOworCQkJCQluLT5kcm9wX2JlaGF2aW9yID0gJDEyOworCisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9u YW1lIEFMVEVSIHZlcnRleF9vcl9lZGdlIFRBQkxFIG5hbWUKKwkJCQlBTFRFUiBMQUJFTCBuYW1l IEFERF9QIFBST1BFUlRJRVMgJygnIHhtbF9hdHRyaWJ1dGVfbGlzdCAnKScKKwkJCQl7CisJCQkJ CUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisJ CQkJCVByb3BHcmFwaFByb3BlcnRpZXMgKnByID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGll cyk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmVsZW1lbnRfa2luZCA9ICQ2Owor CQkJCQluLT5lbGVtZW50X2FsaWFzID0gJDg7CisJCQkJCW4tPmFsdGVyX2xhYmVsID0gJDExOwor CisJCQkJCXByLT5wcm9wZXJ0aWVzID0gJDE1OworCQkJCQlwci0+bG9jYXRpb24gPSBAMTM7CisJ CQkJCW4tPmFkZF9wcm9wZXJ0aWVzID0gcHI7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJ CX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUxURVIgdmVydGV4 X29yX2VkZ2UgVEFCTEUgbmFtZQorCQkJCUFMVEVSIExBQkVMIG5hbWUgRFJPUCBQUk9QRVJUSUVT ICcoJyBuYW1lX2xpc3QgJyknIG9wdF9kcm9wX2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclBy b3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4t PnBnbmFtZSA9ICQ0OworCQkJCQluLT5lbGVtZW50X2tpbmQgPSAkNjsKKwkJCQkJbi0+ZWxlbWVu dF9hbGlhcyA9ICQ4OworCQkJCQluLT5hbHRlcl9sYWJlbCA9ICQxMTsKKwkJCQkJbi0+ZHJvcF9w cm9wZXJ0aWVzID0gJDE1OworCQkJCQluLT5kcm9wX2JlaGF2aW9yID0gJDE3OworCisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwordmVydGV4X29yX2VkZ2U6CisJCQl2ZXJ0ZXhf c3lub255bQkJCQkJCXsgJCQgPSBQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRFWDsgfQorCQkJ fCBlZGdlX3N5bm9ueW0JCQkJCQl7ICQkID0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9FREdFOyB9 CisJCTsKKworYWRkX2xhYmVsX2xpc3Q6CisJCQlhZGRfbGFiZWwJCQkJCQkJeyAkJCA9IGxpc3Rf bWFrZTEoJDEpOyB9CisJCQl8IGFkZF9sYWJlbF9saXN0IGFkZF9sYWJlbAkJCXsgJCQgPSBsYXBw ZW5kKCQxLCAkMik7CX0KKwkJOworCithZGRfbGFiZWw6IEFERF9QIExBQkVMIG5hbWUgZWxlbWVu dF90YWJsZV9wcm9wZXJ0aWVzCisJCQkJeworCQkJCQlQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRp ZXMgKmxwID0gbWFrZU5vZGUoUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzKTsKKworCQkJCQls cC0+bGFiZWwgPSAkMzsKKwkJCQkJbHAtPnByb3BlcnRpZXMgPSAoUHJvcEdyYXBoUHJvcGVydGll cyAqKSAkNDsKKwkJCQkJbHAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBs cDsKKwkJCQl9CisJCTsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJQ1JFQVRF IFRSQU5TRk9STSAvIERST1AgVFJBTlNGT1JNCkBAIC05NDcwLDYgKzk4NzMsMTYgQEAgUmVuYW1l U3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBu YW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgUkVOQU1FIFRP IG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsK KworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1BST1BHUkFQSDsKKwkJCQkJbi0+cmVsYXRp b24gPSAkNDsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ3OworCQkJCQluLT5taXNzaW5nX29rID0gZmFs c2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJCXwgQUxURVIgUFVCTElDQVRJT04g bmFtZSBSRU5BTUUgVE8gbmFtZQogCQkJCXsKIAkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2Rl KFJlbmFtZVN0bXQpOwpAQCAtMTAwOTUsNiArMTA1MDgsMjYgQEAgQWx0ZXJPYmplY3RTY2hlbWFT dG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIFNFVCBTQ0hF TUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1BS T1BHUkFQSDsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNDsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDc7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBJRl9QIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBT RVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1h a2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9QUk9QR1JBUEg7CisJCQkJCW4tPnJlbGF0aW9uID0gJDY7CisJCQkJCW4tPm5ld3NjaGVt YSA9ICQ5OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQkJfCBBTFRFUiBST1VUSU5FIGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMgU0VUIFND SEVNQSBuYW1lCiAJCQkJewogCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOwpAQCAtMTA0MzgsNiArMTA4NzEsMTUgQEAgQWx0ZXJP d25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBU TyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBPV05FUiBU TyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9QUk9QR1JBUEg7CisJ CQkJCW4tPnJlbGF0aW9uID0gJDQ7CisJCQkJCW4tPm5ld293bmVyID0gJDc7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFJPVVRJTkUgZnVuY3Rpb25fd2l0aF9hcmd0 eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCXsKIAkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBt YWtlTm9kZShBbHRlck93bmVyU3RtdCk7CkBAIC0xMzU3Myw2ICsxNDAxNSwxNyBAQCB0YWJsZV9y ZWY6CXJlbGF0aW9uX2V4cHIgb3B0X2FsaWFzX2NsYXVzZQogCQkJCQluLT5hbGlhcyA9ICQzOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBHUkFQSF9UQUJMRSAnKCcgcXVhbGlm aWVkX25hbWUgTUFUQ0ggZ3JhcGhfcGF0dGVybiBDT0xVTU5TICcoJyB4bWxfYXR0cmlidXRlX2xp c3QgJyknICcpJyBvcHRfYWxpYXNfY2xhdXNlCisJCQkJeworCQkJCQlSYW5nZUdyYXBoVGFibGUg Km4gPSBtYWtlTm9kZShSYW5nZUdyYXBoVGFibGUpOworCisJCQkJCW4tPmdyYXBoX25hbWUgPSAk MzsKKwkJCQkJbi0+Z3JhcGhfcGF0dGVybiA9IGNhc3ROb2RlKEdyYXBoUGF0dGVybiwgJDUpOwor CQkJCQluLT5jb2x1bW5zID0gJDg7CisJCQkJCW4tPmFsaWFzID0gJDExOworCQkJCQluLT5sb2Nh dGlvbiA9IEAxOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJfCBzZWxlY3Rfd2l0 aF9wYXJlbnMgb3B0X2FsaWFzX2NsYXVzZQogCQkJCXsKIAkJCQkJUmFuZ2VTdWJzZWxlY3QgKm4g PSBtYWtlTm9kZShSYW5nZVN1YnNlbGVjdCk7CkBAIC0xNDkxNyw2ICsxNTM3MCwxMCBAQCBhX2V4 cHI6CQljX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQl7ICQkID0gKE5vZGUgKikgbWFr ZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgIj49IiwgJDEsICQzLCBAMik7IH0KIAkJCXwgYV9leHBy IE5PVF9FUVVBTFMgYV9leHByCiAJCQkJeyAkJCA9IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIo QUVYUFJfT1AsICI8PiIsICQxLCAkMywgQDIpOyB9CisJCQl8IGFfZXhwciBSSUdIVF9BUlJPVyBh X2V4cHIKKwkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgIi0+ IiwgJDEsICQzLCBAMik7IH0KKwkJCXwgYV9leHByICd8JyBhX2V4cHIKKwkJCQl7ICQkID0gKE5v ZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgInwiLCAkMSwgJDMsIEAyKTsgfQogCiAJ CQl8IGFfZXhwciBxdWFsX09wIGFfZXhwcgkJCQklcHJlYyBPcAogCQkJCXsgJCQgPSAoTm9kZSAq KSBtYWtlQV9FeHByKEFFWFBSX09QLCAkMiwgJDEsICQzLCBAMik7IH0KQEAgLTE1Mzk2LDYgKzE1 ODUzLDEwIEBAIGJfZXhwcjoJCWNfZXhwcgogCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxl QV9FeHByKEFFWFBSX09QLCAiPj0iLCAkMSwgJDMsIEAyKTsgfQogCQkJfCBiX2V4cHIgTk9UX0VR VUFMUyBiX2V4cHIKIAkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9P UCwgIjw+IiwgJDEsICQzLCBAMik7IH0KKwkJCXwgYl9leHByIFJJR0hUX0FSUk9XIGJfZXhwcgor CQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAiLT4iLCAkMSwg JDMsIEAyKTsgfQorCQkJfCBiX2V4cHIgJ3wnIGJfZXhwcgorCQkJCXsgJCQgPSAoTm9kZSAqKSBt YWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAifCIsICQxLCAkMywgQDIpOyB9CiAJCQl8IGJfZXhw ciBxdWFsX09wIGJfZXhwcgkJCQklcHJlYyBPcAogCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlQV9F eHByKEFFWFBSX09QLCAkMiwgJDEsICQzLCBAMik7IH0KIAkJCXwgcXVhbF9PcCBiX2V4cHIJCQkJ CSVwcmVjIE9wCkBAIC0xNjU2NCw2ICsxNzAyNSw4IEBAIE1hdGhPcDoJCSAnKycJCQkJCQkJCQl7 ICQkID0gIisiOyB9CiAJCQl8IExFU1NfRVFVQUxTCQkJCQkJCXsgJCQgPSAiPD0iOyB9CiAJCQl8 IEdSRUFURVJfRVFVQUxTCQkJCQkJeyAkJCA9ICI+PSI7IH0KIAkJCXwgTk9UX0VRVUFMUwkJCQkJ CQl7ICQkID0gIjw+IjsgfQorCQkJfCBSSUdIVF9BUlJPVwkJCQkJCQl7ICQkID0gIi0+IjsgfQor CQkJfCAnfCcJCQkJCQkJCQl7ICQkID0gInwiOyB9CiAJCTsKIAogcXVhbF9PcDoJT3AKQEAgLTE3 MTU1LDYgKzE3NjE4LDIxMyBAQCBqc29uX2FycmF5X2FnZ3JlZ2F0ZV9vcmRlcl9ieV9jbGF1c2Vf b3B0OgogCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gTklMOyB9CiAJCTsKIAorCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqCisgKglncmFwaCBwYXR0ZXJucworICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworZ3JhcGhfcGF0dGVybjoKKwkJCXBhdGhfcGF0dGVybl9saXN0IHdoZXJl X2NsYXVzZQorCQkJCXsKKwkJCQkJR3JhcGhQYXR0ZXJuICpncCA9IG1ha2VOb2RlKEdyYXBoUGF0 dGVybik7CisKKwkJCQkJZ3AtPnBhdGhfcGF0dGVybl9saXN0ID0gJDE7CisJCQkJCWdwLT53aGVy ZUNsYXVzZSA9ICQyOworCQkJCQkkJCA9IChOb2RlICopIGdwOworCQkJCX0KKwkJOworCitwYXRo X3BhdHRlcm5fbGlzdDoKKwkJCXBhdGhfcGF0dGVybgkJCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgk MSk7IH0KKwkJCXwgcGF0aF9wYXR0ZXJuX2xpc3QgJywnIHBhdGhfcGF0dGVybgl7ICQkID0gbGFw cGVuZCgkMSwgJDMpOyB9CisJCTsKKworcGF0aF9wYXR0ZXJuOgorCQkJcGF0aF9wYXR0ZXJuX2V4 cHJlc3Npb24JCQkJCXsgJCQgPSAkMTsgfQorCQk7CisKKy8qCisgKiBwYXRoIHBhdHRlcm4gZXhw cmVzc2lvbgorICovCisKK3BhdGhfcGF0dGVybl9leHByZXNzaW9uOgorCQkJcGF0aF90ZXJtCQkJ CQkJCQl7ICQkID0gJDE7IH0KKwkJCS8qIHwgcGF0aF9tdWx0aXNldF9hbHRlcm5hdGlvbiAqLwor CQkJLyogfCBwYXRoX3BhdHRlcm5fdW5pb24gKi8KKwkJOworCitwYXRoX3Rlcm06CisJCQlwYXRo X2ZhY3RvcgkJCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IHBhdGhfdGVybSBw YXRoX2ZhY3RvcgkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQyKTsgfQorCQk7CisKK3BhdGhfZmFj dG9yOgorCQkJcGF0aF9wcmltYXJ5IG9wdF9ncmFwaF9wYXR0ZXJuX3F1YW50aWZpZXIKKwkJCQl7 CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICop ICQxOworCisJCQkJCWdlcC0+cXVhbnRpZmllciA9ICQyOworCQkJCX0KKwkJOworCitwYXRoX3By aW1hcnk6CisJCQknKCcgb3B0X2NvbGlkIG9wdF9pc19sYWJlbF9leHByZXNzaW9uIHdoZXJlX2Ns YXVzZSAnKScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IG1ha2VOb2Rl KEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IFZFUlRFWF9QQVRURVJO OworCQkJCQlnZXAtPnZhcmlhYmxlID0gJDI7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDM7CisJ CQkJCWdlcC0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOworCisJ CQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCS8qIGZ1bGwgZWRnZSBwb2ludGluZyBs ZWZ0OiA8LVsgeHh4IF0tICovCisJCQl8ICc8JyAnLScgJ1snIG9wdF9jb2xpZCBvcHRfaXNfbGFi ZWxfZXhwcmVzc2lvbiB3aGVyZV9jbGF1c2UgJ10nICctJworCQkJCXsKKwkJCQkJR3JhcGhFbGVt ZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJ Z2VwLT5raW5kID0gRURHRV9QQVRURVJOX0xFRlQ7CisJCQkJCWdlcC0+dmFyaWFibGUgPSAkNDsK KwkJCQkJZ2VwLT5sYWJlbGV4cHIgPSAkNTsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQ2Owor CQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJ fQorCQkJLyogZnVsbCBlZGdlIHBvaW50aW5nIHJpZ2h0OiAtWyB4eHggXS0+ICovCisJCQl8ICct JyAnWycgb3B0X2NvbGlkIG9wdF9pc19sYWJlbF9leHByZXNzaW9uIHdoZXJlX2NsYXVzZSAnXScg Jy0nICc+JworCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUo R3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJ R0hUOworCQkJCQlnZXAtPnZhcmlhYmxlID0gJDM7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDQ7 CisJCQkJCWdlcC0+d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOwor CisJCQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCXwgJy0nICdbJyBvcHRfY29saWQg b3B0X2lzX2xhYmVsX2V4cHJlc3Npb24gd2hlcmVfY2xhdXNlICddJyBSSUdIVF9BUlJPVworCQkJ CXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50 UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJR0hUOworCQkJCQln ZXAtPnZhcmlhYmxlID0gJDM7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDQ7CisJCQkJCWdlcC0+ d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0g KE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCS8qIGZ1bGwgZWRnZSBhbnkgZGlyZWN0aW9uOiAtWyB4 eHggXS0gKi8KKwkJCXwgJy0nICdbJyBvcHRfY29saWQgb3B0X2lzX2xhYmVsX2V4cHJlc3Npb24g d2hlcmVfY2xhdXNlICddJyAnLScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdl cCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IEVE R0VfUEFUVEVSTl9BTlk7CisJCQkJCWdlcC0+dmFyaWFibGUgPSAkMzsKKwkJCQkJZ2VwLT5sYWJl bGV4cHIgPSAkNDsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQ1OworCQkJCQlnZXAtPmxvY2F0 aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQorCQkJLyogYWJicmV2 aWF0ZWQgZWRnZSBwYXR0ZXJucyAqLworCQkJfCAnPCcgJy0nCisJCQkJeworCQkJCQlHcmFwaEVs ZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJ CQlnZXAtPmtpbmQgPSBFREdFX1BBVFRFUk5fTEVGVDsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAx OworCisJCQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCXwgJy0nICc+JworCQkJCXsK KwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50UGF0 dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJR0hUOworCQkJCQlnZXAt PmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQorCQkJfCBS SUdIVF9BUlJPVworCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5v ZGUoR3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJO X1JJR0hUOworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBn ZXA7CisJCQkJfQorCQkJfCAnLScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdl cCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IEVE R0VfUEFUVEVSTl9BTlk7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChO b2RlICopIGdlcDsKKwkJCQl9CisJCQl8ICcoJyBwYXRoX3BhdHRlcm5fZXhwcmVzc2lvbiB3aGVy ZV9jbGF1c2UgJyknCisJCQkJeworCQkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtl Tm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJCQlnZXAtPmtpbmQgPSBQQVJFTl9FWFBS OworCQkJCQlnZXAtPnN1YmV4cHIgPSAkMjsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQzOwor CQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJ fQorCQk7CisKK29wdF9jb2xpZDoKKwkJCUNvbElkCQkJeyAkJCA9ICQxOyB9CisJCQl8IC8qRU1Q VFkqLwkJeyAkJCA9IE5VTEw7IH0KKwkJOworCitvcHRfaXNfbGFiZWxfZXhwcmVzc2lvbjoKKwkJ CUlTIGxhYmVsX2V4cHJlc3Npb24JCXsgJCQgPSAkMjsgfQorCQkJfCAnOicgbGFiZWxfZXhwcmVz c2lvbgl7ICQkID0gJDI7IH0KKwkJCXwgLypFTVBUWSovCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsK KworLyoKKyAqIGdyYXBoIHBhdHRlcm4gcXVhbnRpZmllcgorICovCisKK29wdF9ncmFwaF9wYXR0 ZXJuX3F1YW50aWZpZXI6CisJCQkneycgSWNvbnN0ICd9JwkJCQkJeyAkJCA9IGxpc3RfbWFrZTJf aW50KCQyLCAkMik7IH0KKwkJCXwgJ3snICcsJyBJY29uc3QgJ30nCQkJeyAkJCA9IGxpc3RfbWFr ZTJfaW50KDAsICQzKTsgfQorCQkJfCAneycgSWNvbnN0ICcsJyBJY29uc3QgJ30nCQl7ICQkID0g bGlzdF9tYWtlMl9pbnQoJDIsICQ0KTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQl7ICQkID0gTlVM TDsgfQorCQk7CisKKy8qCisgKiBsYWJlbCBleHByZXNzaW9uCisgKi8KKworbGFiZWxfZXhwcmVz c2lvbjoKKwkJCWxhYmVsX3Rlcm0KKwkJCXwgbGFiZWxfZGlzanVuY3Rpb24KKwkJOworCitsYWJl bF9kaXNqdW5jdGlvbjoKKwkJCWxhYmVsX2V4cHJlc3Npb24gJ3wnIGxhYmVsX3Rlcm0KKwkJCQl7 ICQkID0gbWFrZU9yRXhwcigkMSwgJDMsIEAyKTsgfQorCQk7CisKK2xhYmVsX3Rlcm06CisJCQlu YW1lCisJCQkJeyAkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5c2Nhbm5lcik7IH0K KwkJOworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCXRhcmdldCBsaXN0IGZvciBT RUxFQ1QKQEAgLTE3Njc1LDYgKzE4MzQ1LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBE RUxJTUlURVJTCiAJCQl8IERFUEVORFMKIAkJCXwgREVQVEgKKwkJCXwgREVTVElOQVRJT04KIAkJ CXwgREVUQUNICiAJCQl8IERJQ1RJT05BUlkKIAkJCXwgRElTQUJMRV9QCkBAIC0xNzY4NCw2ICsx ODM1NSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgRE9VQkxFX1AKIAkJCXwgRFJPUAog CQkJfCBFQUNICisJCQl8IEVER0UKIAkJCXwgRU1QVFlfUAogCQkJfCBFTkFCTEVfUAogCQkJfCBF TkNPRElORwpAQCAtMTc3MTMsNiArMTgzODUsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8 IEdFTkVSQVRFRAogCQkJfCBHTE9CQUwKIAkJCXwgR1JBTlRFRAorCQkJfCBHUkFQSAogCQkJfCBH Uk9VUFMKIAkJCXwgSEFORExFUgogCQkJfCBIRUFERVJfUApAQCAtMTc3NzcsNiArMTg0NTAsNyBA QCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IE5GS0MKIAkJCXwgTkZLRAogCQkJfCBOTworCQkJ fCBOT0RFCiAJCQl8IE5PUk1BTElaRUQKIAkJCXwgTk9USElORwogCQkJfCBOT1RJRlkKQEAgLTE3 ODE5LDYgKzE4NDkzLDggQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBQUk9DRURVUkUKIAkJ CXwgUFJPQ0VEVVJFUwogCQkJfCBQUk9HUkFNCisJCQl8IFBST1BFUlRJRVMKKwkJCXwgUFJPUEVS VFkKIAkJCXwgUFVCTElDQVRJT04KIAkJCXwgUVVPVEUKIAkJCXwgUVVPVEVTCkBAIC0xNzgzMCw2 ICsxODUwNiw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUkVGRVJFTkNJTkcKIAkJCXwg UkVGUkVTSAogCQkJfCBSRUlOREVYCisJCQl8IFJFTEFUSU9OU0hJUAogCQkJfCBSRUxBVElWRV9Q CiAJCQl8IFJFTEVBU0UKIAkJCXwgUkVOQU1FCkBAIC0xNzkxOSw2ICsxODU5Niw3IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05f UAorCQkJfCBWRVJURVgKIAkJCXwgVklFVwogCQkJfCBWSUVXUwogCQkJfCBWT0xBVElMRQpAQCAt MTc5NTcsNiArMTg2MzUsNyBAQCBjb2xfbmFtZV9rZXl3b3JkOgogCQkJfCBFWElTVFMKIAkJCXwg RVhUUkFDVAogCQkJfCBGTE9BVF9QCisJCQl8IEdSQVBIX1RBQkxFCiAJCQl8IEdSRUFURVNUCiAJ CQl8IEdST1VQSU5HCiAJCQl8IElOT1VUCkBAIC0xODI0OCw2ICsxODkyNyw3IEBAIGJhcmVfbGFi ZWxfa2V5d29yZDoKIAkJCXwgREVQRU5EUwogCQkJfCBERVBUSAogCQkJfCBERVNDCisJCQl8IERF U1RJTkFUSU9OCiAJCQl8IERFVEFDSAogCQkJfCBESUNUSU9OQVJZCiAJCQl8IERJU0FCTEVfUApA QCAtMTgyNTksNiArMTg5MzksNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IERPVUJMRV9Q CiAJCQl8IERST1AKIAkJCXwgRUFDSAorCQkJfCBFREdFCiAJCQl8IEVMU0UKIAkJCXwgRU1QVFlf UAogCQkJfCBFTkFCTEVfUApAQCAtMTgyOTYsNiArMTg5NzcsOCBAQCBiYXJlX2xhYmVsX2tleXdv cmQ6CiAJCQl8IEdFTkVSQVRFRAogCQkJfCBHTE9CQUwKIAkJCXwgR1JBTlRFRAorCQkJfCBHUkFQ SAorCQkJfCBHUkFQSF9UQUJMRQogCQkJfCBHUkVBVEVTVAogCQkJfCBHUk9VUElORwogCQkJfCBH Uk9VUFMKQEAgLTE4MzkxLDYgKzE5MDc0LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBO RktDCiAJCQl8IE5GS0QKIAkJCXwgTk8KKwkJCXwgTk9ERQogCQkJfCBOT05FCiAJCQl8IE5PUk1B TElaRQogCQkJfCBOT1JNQUxJWkVECkBAIC0xODQ0Niw2ICsxOTEzMCw4IEBAIGJhcmVfbGFiZWxf a2V5d29yZDoKIAkJCXwgUFJPQ0VEVVJFCiAJCQl8IFBST0NFRFVSRVMKIAkJCXwgUFJPR1JBTQor CQkJfCBQUk9QRVJUSUVTCisJCQl8IFBST1BFUlRZCiAJCQl8IFBVQkxJQ0FUSU9OCiAJCQl8IFFV T1RFCiAJCQl8IFFVT1RFUwpAQCAtMTg0NTksNiArMTkxNDUsNyBAQCBiYXJlX2xhYmVsX2tleXdv cmQ6CiAJCQl8IFJFRkVSRU5DSU5HCiAJCQl8IFJFRlJFU0gKIAkJCXwgUkVJTkRFWAorCQkJfCBS RUxBVElPTlNISVAKIAkJCXwgUkVMQVRJVkVfUAogCQkJfCBSRUxFQVNFCiAJCQl8IFJFTkFNRQpA QCAtMTg1NzMsNiArMTkyNjAsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBUklBRElD CiAJCQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCisJCQl8IFZFUlRFWAogCQkJfCBWSUVXCiAJ CQl8IFZJRVdTCiAJCQl8IFZPTEFUSUxFCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24uYnVpbGQKaW5kZXggNTczZDcw YjNkMWIuLmNiY2ZhMDdiNDA1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24u YnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL21lc29uLmJ1aWxkCkBAIC0xMCw2ICsxMCw3 IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BhcnNlX2Vuci5jJywKICAgJ3BhcnNl X2V4cHIuYycsCiAgICdwYXJzZV9mdW5jLmMnLAorICAncGFyc2VfZ3JhcGh0YWJsZS5jJywKICAg J3BhcnNlX2pzb250YWJsZS5jJywKICAgJ3BhcnNlX21lcmdlLmMnLAogICAncGFyc2Vfbm9kZS5j JywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCAwNGI0NTk2YTY1YS4uZTE1Y2U0MWE5YmUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4MCw2ICs1ODAsMTQgQEAgY2hlY2tfYWdnbGV2ZWxz X2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJr aW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9Q RVJUWToKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25zIGFy ZSBub3QgYWxsb3dlZCBpbiBwcm9wZXJ0eSBkZWZpbml0aW9uIGV4cHJlc3Npb25zIik7CisJCQll bHNlCisJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g cHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCisJCQlicmVhazsKKwogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQogCQkJICogY29tcGlsZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4 cHJLaW5kIHdpdGhvdXQKQEAgLTk3MCw2ICs5NzgsOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2Fs bChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBS X0tJTkRfUFJPUEdSQVBIX1BST1BFUlRZOgorCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gcHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCQkJ YnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6 IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA5 Nzk5MjZiNjA1Mi4uMDRiZjU2NDdmOTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAg LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIK KyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgogI2luY2x1ZGUgInBhcnNlci9w YXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgpAQCAtNjUsNiArNjYsOCBAQCBzdGF0aWMgUGFyc2VO YW1lc3BhY2VJdGVtICp0cmFuc2Zvcm1SYW5nZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJCQkJCSAgUmFuZ2VGdW5jdGlvbiAqcik7CiBzdGF0aWMgUGFyc2VOYW1lc3BhY2VJ dGVtICp0cmFuc2Zvcm1SYW5nZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJCQkgICBSYW5nZVRhYmxlRnVuYyAqcnRmKTsKK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0g KnRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJ CQkJUmFuZ2VHcmFwaFRhYmxlICpyZ3QpOwogc3RhdGljIFRhYmxlU2FtcGxlQ2xhdXNlICp0cmFu c2Zvcm1SYW5nZVRhYmxlU2FtcGxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlS YW5nZVRhYmxlU2FtcGxlICpydHMpOwogc3RhdGljIFBhcnNlTmFtZXNwYWNlSXRlbSAqZ2V0TlNJ dGVtRm9yU3BlY2lhbFJlbGF0aW9uVHlwZXMoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtODk4LDYg KzkwMSw4MCBAQCB0cmFuc2Zvcm1SYW5nZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsIFJh bmdlVGFibGVGdW5jICpydGYpCiAJCQkJCQkJCQkJICB0ZiwgcnRmLT5hbGlhcywgaXNfbGF0ZXJh bCwgdHJ1ZSk7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUgLS0gdHJhbnNm b3JtIGEgR1JBUEhfVEFCTEUgY2xhdXNlCisgKi8KK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0g KgordHJhbnNmb3JtUmFuZ2VHcmFwaFRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VHcmFw aFRhYmxlICpyZ3QpCit7CisJUmVsYXRpb24JcmVsOworCU9pZAkJCWdyYXBoaWQ7CisJR3JhcGhU YWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUgPSBwYWxsb2MwX29iamVjdChHcmFwaFRhYmxlUGFyc2VT dGF0ZSk7CisJTm9kZQkgICAqZ3A7CisJTGlzdAkgICAqY29sdW1ucyA9IE5JTDsKKwlMaXN0CSAg ICpjb2xuYW1lcyA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlpbnQJCQlyZXNubyA9IDA7CisK KwlyZWwgPSBwYXJzZXJPcGVuVGFibGUocHN0YXRlLCByZ3QtPmdyYXBoX25hbWUsIEFjY2Vzc1No YXJlTG9jayk7CisJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBI KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJvcGVydHkgZ3JhcGgiLAorCQkJCQkg ICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCByZ3QtPmdyYXBoX25hbWUtPmxvY2F0aW9uKSk7CisKKwlncmFwaGlkID0gUmVsYXRp b25HZXRSZWxpZChyZWwpOworCisJZ3BzdGF0ZS0+Z3JhcGhpZCA9IGdyYXBoaWQ7CisKKwlwc3Rh dGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9vayA9IGdyYXBoX3RhYmxlX3Byb3BlcnR5X3JlZmVyZW5j ZTsKKwlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSBncHN0YXRlOworCUFzc2VydCghcHN0YXRl LT5wX2xhdGVyYWxfYWN0aXZlKTsKKwlwc3RhdGUtPnBfbGF0ZXJhbF9hY3RpdmUgPSB0cnVlOwor CisJZ3AgPSB0cmFuc2Zvcm1HcmFwaFBhdHRlcm4ocHN0YXRlLCBncHN0YXRlLCByZ3QtPmdyYXBo X3BhdHRlcm4pOworCisJZm9yZWFjaChsYywgcmd0LT5jb2x1bW5zKQorCXsKKwkJUmVzVGFyZ2V0 ICAqcnQgPSBsZmlyc3Rfbm9kZShSZXNUYXJnZXQsIGxjKTsKKwkJTm9kZQkgICAqY29sZXhwcjsK KwkJVGFyZ2V0RW50cnkgKnRlOworCQljaGFyCSAgICpjb2xuYW1lOworCisJCWNvbGV4cHIgPSB0 cmFuc2Zvcm1FeHByKHBzdGF0ZSwgcnQtPnZhbCwgRVhQUl9LSU5EX1NFTEVDVF9UQVJHRVQpOwor CisJCWlmIChydC0+bmFtZSkKKwkJCWNvbG5hbWUgPSBydC0+bmFtZTsKKwkJZWxzZQorCQl7CisJ CQlpZiAoSXNBKGNvbGV4cHIsIEdyYXBoUHJvcGVydHlSZWYpKQorCQkJCWNvbG5hbWUgPSBnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoY2FzdE5vZGUoR3JhcGhQcm9wZXJ0eVJlZiwgY29sZXhw ciktPnByb3BpZCk7CisJCQllbHNlCisJCQl7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJybXNnKCJjb21wbGV4IGdyYXBo IHRhYmxlIGNvbHVtbiBtdXN0IHNwZWNpZnkgYW4gZXhwbGljaXQgY29sdW1uIG5hbWUiKSwKKwkJ CQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJ0LT5sb2NhdGlvbikpOworCQkJCWNvbG5h bWUgPSBOVUxMOworCQkJfQorCQl9CisKKwkJY29sbmFtZXMgPSBsYXBwZW5kKGNvbG5hbWVzLCBt YWtlU3RyaW5nKGNvbG5hbWUpKTsKKworCQl0ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSBj b2xleHByLCArK3Jlc25vLCBjb2xuYW1lLCBmYWxzZSk7CisJCWNvbHVtbnMgPSBsYXBwZW5kKGNv bHVtbnMsIHRlKTsKKwl9CisKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlwc3RhdGUt PnBfcHJlX2NvbHVtbnJlZl9ob29rID0gTlVMTDsKKwlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUg PSBOVUxMOworCXBzdGF0ZS0+cF9sYXRlcmFsX2FjdGl2ZSA9IGZhbHNlOworCisJcmV0dXJuIGFk ZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUocHN0YXRlLCBncmFwaGlkLCBjYXN0Tm9kZShH cmFwaFBhdHRlcm4sIGdwKSwgY29sdW1ucywgY29sbmFtZXMsIHJndC0+YWxpYXMsIGZhbHNlLCB0 cnVlKTsKK30KKwogLyoKICAqIHRyYW5zZm9ybVJhbmdlVGFibGVTYW1wbGUgLS0tIHRyYW5zZm9y bSBhIFRBQkxFU0FNUExFIGNsYXVzZQogICoKQEAgLTExMjEsNiArMTE5OCwxOCBAQCB0cmFuc2Zv cm1Gcm9tQ2xhdXNlSXRlbShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm4sCiAJCXJ0ci0+cnRp bmRleCA9IG5zaXRlbS0+cF9ydGluZGV4OwogCQlyZXR1cm4gKE5vZGUgKikgcnRyOwogCX0KKwll bHNlIGlmIChJc0EobiwgUmFuZ2VHcmFwaFRhYmxlKSkKKwl7CisJCVJhbmdlVGJsUmVmICpydHI7 CisJCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCisJCW5zaXRlbSA9IHRyYW5zZm9ybVJh bmdlR3JhcGhUYWJsZShwc3RhdGUsIChSYW5nZUdyYXBoVGFibGUgKikgbik7CisJCSp0b3BfbnNp dGVtID0gbnNpdGVtOworCQkqbmFtZXNwYWNlID0gbGlzdF9tYWtlMShuc2l0ZW0pOworCQlydHIg PSBtYWtlTm9kZShSYW5nZVRibFJlZik7CisJCXJ0ci0+cnRpbmRleCA9IG5zaXRlbS0+cF9ydGlu ZGV4OworCQlyZXR1cm4gKE5vZGUgKikgcnRyOworCX0KIAllbHNlIGlmIChJc0EobiwgUmFuZ2VU YWJsZVNhbXBsZSkpCiAJewogCQkvKiBUQUJMRVNBTVBMRSBjbGF1c2UgKHdyYXBwaW5nIHNvbWUg b3RoZXIgdmFsaWQgRlJPTSBub2RlKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2NvbGxhdGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKaW5k ZXggMjg3NDczMWMzNTIuLjEwMTAwMjAyYTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfY29sbGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMKQEAgLTU3MSw2ICs1NzEsMTMgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5v ZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQlsb2NhdGlvbiA9IGV4 cHJMb2NhdGlvbihub2RlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVm OgorCQkJLyogRklYTUUgKi8KKwkJCWNvbGxhdGlvbiA9IERFRkFVTFRfQ09MTEFUSU9OX09JRDsK KwkJCXN0cmVuZ3RoID0gQ09MTEFURV9JTVBMSUNJVDsKKwkJCWxvY2F0aW9uID0gLTE7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCQkJewogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpp bmRleCBjMjgwNjI5N2FhNC4uODQxNWQ2MzI0ODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpA QCAtNTc1LDYgKzU3NSw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUs IENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJY2FzZSBF WFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoK KwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdSQVBIX1BST1BFUlRZOgogCQkJLyogb2theSAqLwogCQkJ YnJlYWs7CiAKQEAgLTE4NTgsNiArMTg1OSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURf Q09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJh dGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdSQVBI X1BST1BFUlRZOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBwcm9wZXJ0eSBk ZWZpbml0aW9uIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUg aXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0z MTk3LDYgKzMyMDEsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5k KQogCQkJcmV0dXJuICJHRU5FUkFURUQgQVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJL OgogCQkJcmV0dXJuICJDWUNMRSI7CisJCWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9QRVJU WToKKwkJCXJldHVybiAicHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9uIjsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWIyMzM0NGEzYjEuLjY0MDlkZGYx ODE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTgsNiArMjY1OCw5IEBAIGNoZWNr X3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBp bnQgbG9jYXRpb24pCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0g dHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVSVFk6CisJ CQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gcHJv cGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkg KiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0 aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4xYTk3MTY4NzAyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMKQEAgLTAsMCArMSwyMDkgQEAKKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHBhcnNlX2dyYXBodGFibGUuYworICoJICBwYXJzaW5nIG9m IEdSQVBIX1RBQkxFCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0 YWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVz LmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9wZ3JhcGhfbGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5j cy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgorI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIK KyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKworLyoKKyAqIFJlc29sdmUgYSBwcm9w ZXJ0eSByZWZlcmVuY2UuCisgKi8KK05vZGUgKgorZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJl bmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLCBOb2RlICp2YXIpCit7CisJ R3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUgPSBwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGU7 CisKKwlpZiAobGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA9PSAyKQorCXsKKwkJTm9kZQkgICAq ZmllbGQxID0gbGluaXRpYWwoY3JlZi0+ZmllbGRzKTsKKwkJTm9kZQkgICAqZmllbGQyID0gbHNl Y29uZChjcmVmLT5maWVsZHMpOworCQljaGFyCSAgICplbHZhcm5hbWU7CisJCWNoYXIJICAgKnBy b3BuYW1lOworCisJCWVsdmFybmFtZSA9IHN0clZhbChmaWVsZDEpOworCQlwcm9wbmFtZSA9IHN0 clZhbChmaWVsZDIpOworCisJCWlmIChsaXN0X21lbWJlcihncHN0YXRlLT52YXJpYWJsZXMsIGZp ZWxkMSkpCisJCXsKKwkJCUdyYXBoUHJvcGVydHlSZWYgKmdwciA9IG1ha2VOb2RlKEdyYXBoUHJv cGVydHlSZWYpOworCQkJT2lkCQkJcHJvcGlkOworCisJCQlwcm9waWQgPSBHZXRTeXNDYWNoZU9p ZDIoUFJPUEdSQVBIUFJPUE5BTUUsIEFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCwgT2Jq ZWN0SWRHZXREYXR1bShncHN0YXRlLT5ncmFwaGlkKSwgQ1N0cmluZ0dldERhdHVtKHByb3BuYW1l KSk7CisJCQlpZiAoIXByb3BpZCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShF UlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJtc2coInByb3BlcnR5IFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsIHByb3BuYW1lKSk7CisKKwkJCWdwci0+bG9jYXRpb24gPSBjcmVmLT5sb2Nh dGlvbjsKKwkJCWdwci0+ZWx2YXJuYW1lID0gZWx2YXJuYW1lOworCQkJZ3ByLT5wcm9waWQgPSBw cm9waWQ7CisJCQlncHItPnR5cGVJZCA9IEdldFN5c0NhY2hlT2lkMShQUk9QR1JBUEhQUk9QT0lE LCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCwgT2JqZWN0SWRHZXREYXR1bShw cm9waWQpKTsKKworCQkJcmV0dXJuIChOb2RlICopIGdwcjsKKwkJfQorCX0KKworCXJldHVybiBO VUxMOworfQorCisvKgorICogVHJhbnNmb3JtIGEgbGFiZWwgZXhwcmVzc2lvbi4KKyAqLworc3Rh dGljIE5vZGUgKgordHJhbnNmb3JtTGFiZWxFeHByKEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0 YXRlLCBOb2RlICpsYWJlbGV4cHIpCit7CisJTm9kZQkgICAqcmVzdWx0OworCisJaWYgKGxhYmVs ZXhwciA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisK Kwlzd2l0Y2ggKG5vZGVUYWcobGFiZWxleHByKSkKKwl7CisJCWNhc2UgVF9Db2x1bW5SZWY6CisJ CQl7CisJCQkJQ29sdW1uUmVmICAqY3JlZiA9IChDb2x1bW5SZWYgKikgbGFiZWxleHByOworCQkJ CWNvbnN0IGNoYXIgKmxhYmVsbmFtZTsKKwkJCQlPaWQJCQlsYWJlbGlkOworCQkJCUdyYXBoTGFi ZWxSZWYgKmxyZWY7CisKKwkJCQlBc3NlcnQobGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA9PSAx KTsKKwkJCQlsYWJlbG5hbWUgPSBzdHJWYWwobGluaXRpYWwoY3JlZi0+ZmllbGRzKSk7CisKKwkJ CQlsYWJlbGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSExBQkVMTkFNRSwgQW51bV9wZ19w cm9wZ3JhcGhfbGFiZWxfb2lkLCBPYmplY3RJZEdldERhdHVtKGdwc3RhdGUtPmdyYXBoaWQpLCBD U3RyaW5nR2V0RGF0dW0obGFiZWxuYW1lKSk7CisJCQkJaWYgKCFsYWJlbGlkKQorCQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJ CQkJCQllcnJtc2coImxhYmVsIFwiJXNcIiBkb2VzIG5vdCBleGlzdCBpbiBwcm9wZXJ0eSBncmFw aCBcIiVzXCIiLCBsYWJlbG5hbWUsIGdldF9yZWxfbmFtZShncHN0YXRlLT5ncmFwaGlkKSkpOwor CisJCQkJbHJlZiA9IG1ha2VOb2RlKEdyYXBoTGFiZWxSZWYpOworCQkJCWxyZWYtPmxhYmVsaWQg PSBsYWJlbGlkOworCQkJCWxyZWYtPmxvY2F0aW9uID0gY3JlZi0+bG9jYXRpb247CisKKwkJCQly ZXN1bHQgPSAoTm9kZSAqKSBscmVmOworCQkJCWJyZWFrOworCQkJfQorCisJCWNhc2UgVF9Cb29s RXhwcjoKKwkJCXsKKwkJCQlCb29sRXhwciAgICpiZSA9IChCb29sRXhwciAqKSBsYWJlbGV4cHI7 CisJCQkJTGlzdENlbGwgICAqbGM7CisJCQkJTGlzdAkgICAqYXJncyA9IE5JTDsKKworCQkJCWZv cmVhY2gobGMsIGJlLT5hcmdzKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqYXJnID0gKE5vZGUgKikg bGZpcnN0KGxjKTsKKworCQkJCQlhcmcgPSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0ZSwgYXJn KTsKKwkJCQkJYXJncyA9IGxhcHBlbmQoYXJncywgYXJnKTsKKwkJCQl9CisKKwkJCQlyZXN1bHQg PSAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoYmUtPmJvb2xvcCwgYXJncywgYmUtPmxvY2F0aW9uKTsK KwkJCQlicmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJLyogc2hvdWxkIG5vdCByZWFjaCBo ZXJlICovCisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50 KSBub2RlVGFnKGxhYmVsZXhwcikpOworCQkJcmVzdWx0ID0gTlVMTDsJCS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisg KiBUcmFuc2Zvcm0gYSBHcmFwaEVsZW1lbnRQYXR0ZXJuLgorICovCitzdGF0aWMgTm9kZSAqCit0 cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJs ZVBhcnNlU3RhdGUgKmdwc3RhdGUsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCkKK3sKKwlpZiAo Z2VwLT52YXJpYWJsZSkKKwkJZ3BzdGF0ZS0+dmFyaWFibGVzID0gbGFwcGVuZChncHN0YXRlLT52 YXJpYWJsZXMsIG1ha2VTdHJpbmcocHN0cmR1cChnZXAtPnZhcmlhYmxlKSkpOworCisJZ2VwLT5s YWJlbGV4cHIgPSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0ZSwgZ2VwLT5sYWJlbGV4cHIpOwor CisJZ2VwLT53aGVyZUNsYXVzZSA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBnZXAtPndoZXJlQ2xh dXNlLCBFWFBSX0tJTkRfV0hFUkUpOworCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBn ZXAtPndoZXJlQ2xhdXNlKTsKKworCXJldHVybiAoTm9kZSAqKSBnZXA7Cit9CisKKy8qCisgKiBU cmFuc2Zvcm0gYSBwYXRoIHRlcm0gKGxpc3Qgb2YgR3JhcGhFbGVtZW50UGF0dGVybidzKS4KKyAq Lworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtUGF0aFRlcm0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBH cmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlzdCAqcGF0aF90ZXJtKQoreworCUxpc3QJ ICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhf dGVybSkKKwl7CisJCU5vZGUJICAgKm4gPSB0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKHBz dGF0ZSwgZ3BzdGF0ZSwgbGZpcnN0X25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpKTsKKwor CQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJfQorCisJcmV0dXJuIChOb2RlICopIHJl c3VsdDsKK30KKworLyoKKyAqIFRyYW5zZm9ybSBhIHBhdGggcGF0dGVybiBsaXN0IChsaXN0IG9m IHBhdGggdGVybXMpLgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1QYXRoUGF0dGVybkxp c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlz dCAqcGF0aF9wYXR0ZXJuKQoreworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0Q2VsbCAg ICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhfcGF0dGVybikKKwl7CisJCU5vZGUJICAgKm4gPSB0 cmFuc2Zvcm1QYXRoVGVybShwc3RhdGUsIGdwc3RhdGUsIGxmaXJzdChsYykpOworCisJCXJlc3Vs dCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcmVzdWx0Owor fQorCisvKgorICogVHJhbnNmb3JtIGEgR3JhcGhQYXR0ZXJuLgorICovCitOb2RlICoKK3RyYW5z Zm9ybUdyYXBoUGF0dGVybihQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRl ICpncHN0YXRlLCBHcmFwaFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4pCit7CisJZ3JhcGhfcGF0dGVy bi0+cGF0aF9wYXR0ZXJuX2xpc3QgPSAoTGlzdCAqKSB0cmFuc2Zvcm1QYXRoUGF0dGVybkxpc3Qo cHN0YXRlLCBncHN0YXRlLCBncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCk7CisJZ3Jh cGhfcGF0dGVybi0+d2hlcmVDbGF1c2UgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZ3JhcGhfcGF0 dGVybi0+d2hlcmVDbGF1c2UsIEVYUFJfS0lORF9XSEVSRSk7CisJYXNzaWduX2V4cHJfY29sbGF0 aW9ucyhwc3RhdGUsIGdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKTsKKworCXJldHVybiAoTm9k ZSAqKSBncmFwaF9wYXR0ZXJuOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRl eCA4MDc1YjFiOGExYi4uODZmMjlhMWU1YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlv bi5jCkBAIC0yMTI0LDYgKzIxMjQsOTggQEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yVGFibGVGdW5j KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJcnRlLT5jb2xjb2xsYXRpb25zKTsKIH0KIAor UGFyc2VOYW1lc3BhY2VJdGVtICoKK2FkZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQlPaWQgZ3JhcGhpZCwKKwkJCQkJCQkJR3JhcGhQYXR0 ZXJuICpncmFwaF9wYXR0ZXJuLAorCQkJCQkJCQlMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQlMaXN0 ICpjb2xuYW1lcywKKwkJCQkJCQkJQWxpYXMgKmFsaWFzLAorCQkJCQkJCQlib29sIGxhdGVyYWws CisJCQkJCQkJCWJvb2wgaW5Gcm9tQ2wpCit7CisJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbWFrZU5v ZGUoUmFuZ2VUYmxFbnRyeSk7CisJY2hhcgkgICAqcmVmbmFtZSA9IGFsaWFzID8gYWxpYXMtPmFs aWFzbmFtZSA6IHBzdHJkdXAoImdyYXBoX3RhYmxlIik7CisJQWxpYXMJICAgKmVyZWY7CisJaW50 CQkJbnVtYWxpYXNlczsKKwlpbnQJCQl2YXJhdHRubzsKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0 CSAgICpjb2x0eXBlcyA9IE5JTDsKKwlMaXN0CSAgICpjb2x0eXBtb2RzID0gTklMOworCUxpc3QJ ICAgKmNvbGNvbGxhdGlvbnMgPSBOSUw7CisJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOwor CVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCisJQXNzZXJ0KHBzdGF0ZSAhPSBOVUxMKTsK KworCXJ0ZS0+cnRla2luZCA9IFJURV9HUkFQSF9UQUJMRTsKKwlydGUtPnJlbGlkID0gZ3JhcGhp ZDsKKwlydGUtPnJlbGtpbmQgPSBSRUxLSU5EX1BST1BHUkFQSDsKKwlydGUtPmdyYXBoX3BhdHRl cm4gPSBncmFwaF9wYXR0ZXJuOworCXJ0ZS0+Z3JhcGhfdGFibGVfY29sdW1ucyA9IGNvbHVtbnM7 CisJcnRlLT5hbGlhcyA9IGFsaWFzOworCisJZXJlZiA9IGFsaWFzID8gY29weU9iamVjdChhbGlh cykgOiBtYWtlQWxpYXMocmVmbmFtZSwgTklMKTsKKworCWlmICghZXJlZi0+Y29sbmFtZXMpCisJ CWVyZWYtPmNvbG5hbWVzID0gY29sbmFtZXM7CisKKwludW1hbGlhc2VzID0gbGlzdF9sZW5ndGgo ZXJlZi0+Y29sbmFtZXMpOworCisJLyogZmlsbCBpbiBhbnkgdW5zcGVjaWZpZWQgYWxpYXMgY29s dW1ucyAqLworCXZhcmF0dG5vID0gMDsKKwlmb3JlYWNoKGxjLCBjb2xuYW1lcykKKwl7CisJCXZh cmF0dG5vKys7CisJCWlmICh2YXJhdHRubyA+IG51bWFsaWFzZXMpCisJCQllcmVmLT5jb2xuYW1l cyA9IGxhcHBlbmQoZXJlZi0+Y29sbmFtZXMsIGxmaXJzdChsYykpOworCX0KKwlpZiAodmFyYXR0 bm8gPCBudW1hbGlhc2VzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkgZXJybXNnKCJHUkFQSF9UQUJMRSBcIiVz XCIgaGFzICVkIGNvbHVtbnMgYXZhaWxhYmxlIGJ1dCAlZCBjb2x1bW5zIHNwZWNpZmllZCIsCisJ CQkJCQlyZWZuYW1lLCB2YXJhdHRubywgbnVtYWxpYXNlcykpKTsKKworCXJ0ZS0+ZXJlZiA9IGVy ZWY7CisKKwlmb3JlYWNoKGxjLCBjb2x1bW5zKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gbGZp cnN0X25vZGUoVGFyZ2V0RW50cnksIGxjKTsKKwkJTm9kZQkgICAqY29sZXhwciA9IChOb2RlICop IHRlLT5leHByOworCisJCWNvbHR5cGVzID0gbGFwcGVuZF9vaWQoY29sdHlwZXMsIGV4cHJUeXBl KGNvbGV4cHIpKTsKKwkJY29sdHlwbW9kcyA9IGxhcHBlbmRfaW50KGNvbHR5cG1vZHMsIGV4cHJU eXBtb2QoY29sZXhwcikpOworCQljb2xjb2xsYXRpb25zID0gbGFwcGVuZF9vaWQoY29sY29sbGF0 aW9ucywgZXhwckNvbGxhdGlvbihjb2xleHByKSk7CisJfQorCisJLyoKKwkgKiBTZXQgZmxhZ3Mg YW5kIGFjY2VzcyBwZXJtaXNzaW9ucy4KKwkgKi8KKwlydGUtPmxhdGVyYWwgPSBsYXRlcmFsOwor CXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21DbDsKKworCXBlcm1pbmZvID0gYWRkUlRFUGVybWlzc2lv bkluZm8oJnBzdGF0ZS0+cF9ydGVwZXJtaW5mb3MsIHJ0ZSk7CisJcGVybWluZm8tPnJlcXVpcmVk UGVybXMgPSBBQ0xfU0VMRUNUOworCisJLyoKKwkgKiBBZGQgY29tcGxldGVkIFJURSB0byBwc3Rh dGUncyByYW5nZSB0YWJsZSBsaXN0LCBzbyB0aGF0IHdlIGtub3cgaXRzCisJICogaW5kZXguICBC dXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBqb2luIGxpc3QgLS0tIGNhbGxlciBtdXN0IGRvIHRo YXQgaWYKKwkgKiBhcHByb3ByaWF0ZS4KKwkgKi8KKwlwc3RhdGUtPnBfcnRhYmxlID0gbGFwcGVu ZChwc3RhdGUtPnBfcnRhYmxlLCBydGUpOworCisJLyoKKwkgKiBCdWlsZCBhIFBhcnNlTmFtZXNw YWNlSXRlbSwgYnV0IGRvbid0IGFkZCBpdCB0byB0aGUgcHN0YXRlJ3MgbmFtZXNwYWNlCisJICog bGlzdCAtLS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZiBhcHByb3ByaWF0ZS4KKwkgKi8KKwluc2l0 ZW0gPSBidWlsZE5TSXRlbUZyb21MaXN0cyhydGUsIGxpc3RfbGVuZ3RoKHBzdGF0ZS0+cF9ydGFi bGUpLAorCQkJCQkJCQkgIGNvbHR5cGVzLCBjb2x0eXBtb2RzLCBjb2xjb2xsYXRpb25zKTsKKwor CW5zaXRlbS0+cF9wZXJtaW5mbyA9IHBlcm1pbmZvOworCisJcmV0dXJuIG5zaXRlbTsKK30KKwog LyoKICAqIEFkZCBhbiBlbnRyeSBmb3IgYSBWQUxVRVMgbGlzdCB0byB0aGUgcHN0YXRlJ3MgcmFu Z2UgdGFibGUgKHBfcnRhYmxlKS4KICAqIFRoZW4sIGNvbnN0cnVjdCBhbmQgcmV0dXJuIGEgUGFy c2VOYW1lc3BhY2VJdGVtIGZvciB0aGUgbmV3IFJURS4KQEAgLTMwMTMsNiArMzEwNSw3IEBAIGV4 cGFuZFJURShSYW5nZVRibEVudHJ5ICpydGUsIGludCBydGluZGV4LCBpbnQgc3VibGV2ZWxzX3Vw LAogCQljYXNlIFJURV9WQUxVRVM6CiAJCWNhc2UgUlRFX0NURToKIAkJY2FzZSBSVEVfTkFNRURU VVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAkJCXsKIAkJCQkvKiBUYWJsZWZ1 bmMsIFZhbHVlcywgQ1RFLCBvciBFTlIgUlRFICovCiAJCQkJTGlzdENlbGwgICAqYWxpYXNwX2l0 ZW0gPSBsaXN0X2hlYWQocnRlLT5lcmVmLT5jb2xuYW1lcyk7CkBAIC0zMzkyLDEwICszNDg1LDEx IEBAIGdldF9ydGVfYXR0cmlidXRlX2lzX2Ryb3BwZWQoUmFuZ2VUYmxFbnRyeSAqcnRlLCBBdHRy TnVtYmVyIGF0dG51bSkKIAkJY2FzZSBSVEVfVkFMVUVTOgogCQljYXNlIFJURV9DVEU6CiAJCWNh c2UgUlRFX0dST1VQOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAogCQkJLyoKLQkJCSAqIFN1 YnNlbGVjdCwgVGFibGUgRnVuY3Rpb25zLCBWYWx1ZXMsIENURSwgR1JPVVAgUlRFcyBuZXZlciBo YXZlCi0JCQkgKiBkcm9wcGVkIGNvbHVtbnMKKwkJCSAqIFN1YnNlbGVjdCwgVGFibGUgRnVuY3Rp b25zLCBWYWx1ZXMsIENURSwgR1JPVVAgUlRFcywgUHJvcGVydHkKKwkJCSAqIGdyYXBoIHJlZmVy ZW5jZXMgbmV2ZXIgaGF2ZSBkcm9wcGVkIGNvbHVtbnMKIAkJCSAqLwogCQkJcmVzdWx0ID0gZmFs c2U7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA3NmJmODhjM2Nh Mi4uNjg1MjFlZmQ3YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTM2MCw2ICsz NjAsMTAgQEAgbWFya1RhcmdldExpc3RPcmlnaW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBUYXJnZXRF bnRyeSAqdGxlLAogCQkJdGxlLT5yZXNvcmlndGJsID0gcnRlLT5yZWxpZDsKIAkJCXRsZS0+cmVz b3JpZ2NvbCA9IGF0dG51bTsKIAkJCWJyZWFrOworCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJ CXRsZS0+cmVzb3JpZ3RibCA9IHJ0ZS0+cmVsaWQ7CisJCQl0bGUtPnJlc29yaWdjb2wgPSBJbnZh bGlkQXR0ck51bWJlcjsKKwkJCWJyZWFrOwogCQljYXNlIFJURV9TVUJRVUVSWToKIAkJCS8qIFN1 YnNlbGVjdC1pbi1GUk9NOiBjb3B5IHVwIGZyb20gdGhlIHN1YnNlbGVjdCAqLwogCQkJaWYgKGF0 dG51bSAhPSBJbnZhbGlkQXR0ck51bWJlcikKQEAgLTE1ODEsNiArMTU4NSw3IEBAIGV4cGFuZFJl Y29yZFZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyICp2YXIsIGludCBsZXZlbHN1cCkK IAkJY2FzZSBSVEVfUkVMQVRJT046CiAJCWNhc2UgUlRFX1ZBTFVFUzoKIAkJY2FzZSBSVEVfTkFN RURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAkJY2FzZSBSVEVfUkVTVUxU OgogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCBiL3NyYy9i YWNrZW5kL3BhcnNlci9zY2FuLmwKaW5kZXggNzI0MDRlNzJmZmYuLjk3NDhjN2IxMDViIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9zY2FuLmwKQEAgLTM2Niw2ICszNjYsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9l cXVhbHMJIj49IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUg dGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5n bGUgb3BlcmF0b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRo ZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3Rl cgpAQCAtMzc3LDcgKzM3OSw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2Ug ZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQog ICogcnVsZSBmb3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwv XCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9w X2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7 b3BfY2hhcnN9KwogCkBAIC04OTIsNiArODk0LDExIEBAIG90aGVyCQkJLgogCQkJCQlyZXR1cm4g Tk9UX0VRVUFMUzsKIAkJCQl9CiAKK3tyaWdodF9hcnJvd30JeworCQkJCQlTRVRfWVlMTE9DKCk7 CisJCQkJCXJldHVybiBSSUdIVF9BUlJPVzsKKwkJCQl9CisKIHtzZWxmfQkJCXsKIAkJCQkJU0VU X1lZTExPQygpOwogCQkJCQlyZXR1cm4geXl0ZXh0WzBdOwpAQCAtOTY5LDcgKzk3Niw3IEBAIG90 aGVyCQkJLgogCQkJCQkJICogdGhhdCB0aGUgInNlbGYiIHJ1bGUgd291bGQgaGF2ZS4KIAkJCQkJ CSAqLwogCQkJCQkJaWYgKG5jaGFycyA9PSAxICYmCi0JCQkJCQkJc3RyY2hyKCIsKClbXS47Oist Ki8lXjw+PSIsIHl5dGV4dFswXSkpCisJCQkJCQkJc3RyY2hyKCIsKClbXS47OnwrLSovJV48Pj0i LCB5eXRleHRbMF0pKQogCQkJCQkJCXJldHVybiB5eXRleHRbMF07CiAJCQkJCQkvKgogCQkJCQkJ ICogTGlrZXdpc2UsIGlmIHdoYXQgd2UgaGF2ZSBsZWZ0IGlzIHR3byBjaGFycywgYW5kCkBAIC05 ODksNiArOTk2LDggQEAgb3RoZXIJCQkuCiAJCQkJCQkJCXJldHVybiBOT1RfRVFVQUxTOwogCQkJ CQkJCWlmICh5eXRleHRbMF0gPT0gJyEnICYmIHl5dGV4dFsxXSA9PSAnPScpCiAJCQkJCQkJCXJl dHVybiBOT1RfRVFVQUxTOworCQkJCQkJCWlmICh5eXRleHRbMF0gPT0gJy0nICYmIHl5dGV4dFsx XSA9PSAnPicpCisJCQkJCQkJCXJldHVybiBSSUdIVF9BUlJPVzsKIAkJCQkJCX0KIAkJCQkJfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQv cmV3cml0ZS9NYWtlZmlsZQppbmRleCA0NjgwNzUyZTZhNy4uMDkwNzAwNDdiN2UgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0 ZS9NYWtlZmlsZQpAQCAtMTQsNiArMTQsNyBAQCBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMv TWFrZWZpbGUuZ2xvYmFsCiAKIE9CSlMgPSBcCiAJcmV3cml0ZURlZmluZS5vIFwKKwlyZXdyaXRl R3JhcGhUYWJsZS5vIFwKIAlyZXdyaXRlSGFuZGxlci5vIFwKIAlyZXdyaXRlTWFuaXAubyBcCiAJ cmV3cml0ZVJlbW92ZS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvbWVzb24u YnVpbGQgYi9zcmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1aWxkCmluZGV4IDIzMDQzY2E2ZTU2 Li4yYmVhMjAyMzNhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9tZXNvbi5idWls ZAorKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1aWxkCkBAIC0yLDYgKzIsNyBAQAog CiBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdyZXdyaXRlRGVmaW5lLmMnLAorICAncmV3 cml0ZUdyYXBoVGFibGUuYycsCiAgICdyZXdyaXRlSGFuZGxlci5jJywKICAgJ3Jld3JpdGVNYW5p cC5jJywKICAgJ3Jld3JpdGVSZW1vdmUuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFw aFRhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVlMTE1OTRk MmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0wLDAgKzEsMTA5OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcmV3 cml0ZUdyYXBoVGFibGUuYworICoJCVN1cHBvcnQgZm9yIHJld3JpdGluZyBHUkFQSF9UQUJMRSBj bGF1c2VzLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVO VElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMK KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNp bmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9l bGVtZW50LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb3BncmFwaF9wcm9wZXJ0eS5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2lu Y2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVs YXRpb24uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaCIK KyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgiCisjaW5jbHVkZSAicmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCisj aW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2lu Y2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisj aW5jbHVkZSAidXRpbHMvcnVsZXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK KworCisvKgorICogUmVwcmVzZW50cyBvbmUgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAodmVydGV4 IG9yIGVkZ2UpIGluIHRoZSBwYXRoLgorICoKKyAqIExhYmVsIGV4cHJlc3Npb24gaW4gYW4gZWxl bWVudCBwYXR0ZXJuIHJlc29sdmVzIGludG8gYSBzZXQgb2YgZWxlbWVudHMuIEZvcgorICogZWFj aCBvZiB0aG9zZSBlbGVtZW50cyB3ZSBjcmVhdGUgb25lIGdyYXBoX3BhdGhfZWxlbWVudCBvYmpl Y3QuCisgKi8KK3N0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQKK3sKKwlPaWQJCQllbGVtb2lkOwor CU9pZAkJCXJlbG9pZDsKKwlpbnQJCQlydGluZGV4OworCUxpc3QJICAgKmxhYmVsb2lkczsKKwlP aWQJCQlzcmN2ZXJ0ZXhpZDsKKwlpbnQJCQlzcmNlbGVtX3BvczsKKwlPaWQJCQlkZXN0dmVydGV4 aWQ7CisJaW50CQkJZGVzdGVsZW1fcG9zOworCUxpc3QJICAgKnF1YWxfZXhwcnM7CisJR3JhcGhF bGVtZW50UGF0dGVybiAqcGFyZW50X2dlcDsKK307CisKK3N0YXRpYyBOb2RlICpyZXBsYWNlX3By b3BlcnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBw aW5ncyk7CitzdGF0aWMgTGlzdCAqYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVw bGUgZWRnZXR1cCwgaW50IGVkZ2VydGksIGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19r ZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0dG51bSk7CitzdGF0aWMgTGlzdCAq Z2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlz dCAqZWxlbWVudF9wYXR0ZXJucyk7CitzdGF0aWMgUXVlcnkgKmdlbmVyYXRlX3F1ZXJ5X2Zvcl9n cmFwaF9wYXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aCk7CitzdGF0aWMgTm9kZSAq Z2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcyhMaXN0ICpwYXRocXVlcmllcywgTGlzdCAq KnJ0YWJsZSwgTGlzdCAqKnRhcmdldGxpc3QpOworc3RhdGljIExpc3QgKmdlbmVyYXRlX3F1ZXJp ZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0 aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRoX3BhdHRlcm5fbGlzdHMsIGludCBl bGVtcG9zKTsKK3N0YXRpYyBRdWVyeSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0 dGVybihSYW5nZVRibEVudHJ5ICpydGUpOworc3RhdGljIFF1ZXJ5ICpnZW5lcmF0ZV91bmlvbl9m cm9tX3BhdGhxdWVyaWVzKExpc3QgKipwYXRocXVlcmllcyk7CitzdGF0aWMgY29uc3QgY2hhciAq Z2V0X2dlcF9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CitzdGF0 aWMgTGlzdCAqZ2V0X2VsZW1lbnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1l bnRQYXR0ZXJuICpnZXAsIGludCBlbGVtcG9zKTsKK3N0YXRpYyBib29sIGlzX3Byb3BlcnR5X2Fz c29jaWF0ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBwcm9wb2lkKTsKK3N0YXRpYyBj b25zdCBjaGFyICpnZXRfZ3JhcGhfZWxlbV9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktp bmQgZ2Vwa2luZCk7CitzdGF0aWMgTm9kZSAqZ2V0X2VsZW1lbnRfcHJvcGVydHlfZXhwcihPaWQg ZWxlbW9pZCwgT2lkIHByb3BvaWQsIGludCBydGluZGV4KTsKKworLyoKKyAqIENvbnZlcnQgR1JB UEhfVEFCTEUgY2xhdXNlIGludG8gYSBzdWJxdWVyeSB1c2luZyByZWxhdGlvbmFsCisgKiBvcGVy YXRvcnMuCisgKi8KK1F1ZXJ5ICoKK3Jld3JpdGVHcmFwaFRhYmxlKFF1ZXJ5ICpwYXJzZXRyZWUs IGludCBydF9pbmRleCkKK3sKKwlSYW5nZVRibEVudHJ5ICpydGU7CisJUXVlcnkJICAgKmdyYXBo X3RhYmxlX3F1ZXJ5OworCUxpc3QJICAgKnBhdGhfcGF0dGVybjsKKwlMaXN0CSAgICpwYXRocXVl cmllcyA9IE5JTDsKKworCXJ0ZSA9IHJ0X2ZldGNoKHJ0X2luZGV4LCBwYXJzZXRyZWUtPnJ0YWJs ZSk7CisKKwlpZiAobGlzdF9sZW5ndGgocnRlLT5ncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5f bGlzdCkgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIHBhdGggcGF0dGVybiBsaXN0 IGxlbmd0aCIpOworCisJcGF0aF9wYXR0ZXJuID0gbGluaXRpYWwocnRlLT5ncmFwaF9wYXR0ZXJu LT5wYXRoX3BhdHRlcm5fbGlzdCk7CisJcGF0aHF1ZXJpZXMgPSBnZW5lcmF0ZV9xdWVyaWVzX2Zv cl9wYXRoX3BhdHRlcm4ocnRlLCBwYXRoX3BhdHRlcm4pOworCWdyYXBoX3RhYmxlX3F1ZXJ5ID0g Z2VuZXJhdGVfdW5pb25fZnJvbV9wYXRocXVlcmllcygmcGF0aHF1ZXJpZXMpOworCisJQWNxdWly ZVJld3JpdGVMb2NrcyhncmFwaF90YWJsZV9xdWVyeSwgdHJ1ZSwgZmFsc2UpOworCisJcnRlLT5y dGVraW5kID0gUlRFX1NVQlFVRVJZOworCXJ0ZS0+c3VicXVlcnkgPSBncmFwaF90YWJsZV9xdWVy eTsKKwlydGUtPmxhdGVyYWwgPSB0cnVlOworCisJLyoKKwkgKiBSZXNldCBubyBsb25nZXIgYXBw bGljYWJsZSBmaWVsZHMsIHRvIGFwcGVhc2UKKwkgKiBXUklURV9SRUFEX1BBUlNFX1BMQU5fVFJF RVMuCisJICovCisJcnRlLT5ncmFwaF9wYXR0ZXJuID0gTlVMTDsKKwlydGUtPmdyYXBoX3RhYmxl X2NvbHVtbnMgPSBOSUw7CisKKyNpZiAwCisJZWxvZyhJTkZPLCAicmV3cml0dGVuOlxuJXMiLCBw Z19nZXRfcXVlcnlkZWYoY29weU9iamVjdChwYXJzZXRyZWUpLCBmYWxzZSkpOworI2VuZGlmCisK KwlyZXR1cm4gcGFyc2V0cmVlOworfQorCisvKgorICogR2VuZXJhdGUgcXVlcmllcyByZXByZXNl dGluZyB0aGUgZ2l2ZW4gcGF0aCBwYXR0ZXJuIGFwcGxpZWQgdG8gdGhlIGdpdmVuCisgKiBwcm9w ZXJ0eSBncmFwaC4KKyAqCisgKiBBIHBhdGggcGF0dGVybiBjb25zaXN0cyBvZiBvbmUgb3IgbW9y ZSBlbGVtZW50IHBhdHRlcm5zLiBFYWNoIG9mIHRoZSBlbGVtZW50CisgKiBwYXR0ZXJucyBtYXkg YmUgc2F0aXNmaWVkIGJ5IG11bHRpcGxlIGVsZW1lbnRzLiBBIHBhdGggc2F0aXNmeWluZyB0aGUg Z2l2ZW4KKyAqIHBhdGggcGF0dGVybiBjb25zaXN0cyBvZiBvbmUgZWxlbWVudCBmcm9tIGVhY2gg ZWxlbWVudCBwYXR0ZXJuLiBFYWNoIG9mIHRoZXNlCisgKiBwYXRocyBpcyBjb252ZXJ0ZWQgaW50 byBhIHF1ZXJ5IGNvbm5lY3RpbmcgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGF0IHBhdGguCisgKiBU aGVyZSBjYW4gYmUgYXMgbWFueSBwYXRocyBhcyB0aGUgbnVtYmVyIG9mIGNvbWJpbmF0aW9ucyBv ZiB0aGUgZWxlbWVudHMuCisgKiBDb21wdXRlIGFsbCB0aGVzZSBwYXRocyBhbmQgY29udmVydCBl YWNoIG9mIHRoZW0gaW50byBhIHF1ZXJ5LiBTZXQgb2YgdGhlc2UKKyAqIHF1ZXJpZXMgaXMgcmV0 dXJuZWQuCisgKgorICogQXNzdW1pbmcgdGhhdCB0aGUgbnVtYmVyaW5nIHN0YXJ0cyBhdCAwLCBl dmVyeSBlbGVtZW50IHBhdHRlcm4gYXQgYW4gZXZlbgorICogbnVtYmVyZWQgcG9zaXRpb24gaW4g dGhlIHBhdGggaXMgYSB2ZXJ0ZXggcGF0dGVybi4gRXZlcnkgZWxlbWVudCBpbiBldmVuCisgKiBu dW1iZXJlZCBwb3NpdGlvbiBpcyBhbiBlZGdlIHBhdHRlcm4uIFRodXMgZXZlcnkgZXZlbiBudW1i ZXJlZCBlbGVtZW50IGlzIGEKKyAqIHZlcnRleCB0YWJsZSBhbmQgb2RkIG51bWJlcmVkIGVsZW1l bnQgaXMgYW4gZWRnZSB0YWJsZS4gQW4gZWRnZSBjb25uZWN0cyB0d28KKyAqIHZlcnRpY2VzIGlk ZW50aWZpZWQgYnkgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24ga2V5cyByZXNwZWN0aXZlbHku IFRoZQorICogY29ubmVjdGlvbnMgYmV0d2VlbiB2ZXJ0ZXggcm93cyBmcm9tIGRpZmZlcmVudCB2 ZXJ0ZXggdGFibGVzIGNhbiBiZSBjb21wdXRlZAorICogYnkgYXBwbHlpbmcgcmVsYXRpb25hbCBq b2luIGJldHdlZW4gZWRnZSB0YWJsZSBhbmQgdGhlIGFkamFjZW50IHZlcnRleCB0YWJsZXMKKyAq IHJlc3BlY3RpdmVseS4gSGVuY2UgYSBxdWVyeSByZXByZXNlbnRpbmcgYSBwYXRoIGNvbnNpc3Rz IG9mIEpPSU4gYmV0d2VlbgorICogYWRqYWNlbnQgdmVydGV4IGFuZCBlZGdlIHRhYmxlcy4KKyAq CisgKiBBIHBhdGggcGF0dGVybiBpbiBpdHNlbGYgaXMgYSBLLXBhcnRpdGUgZ3JhcGggd2hlcmUg SyA9IG51bWJlciBvZiBlbGVtZW50CisgKiBwYXR0ZXJucyBpbiB0aGUgcGF0aCBwYXR0ZXJuLiBU aGUgcG9zc2libGUgcGF0aHMgYXJlIGNvbXB1dGVkIGJ5IHBlcmZvcm1pbmcgYQorICogREZTIGlu IHRoaXMgZ3JhcGguIFRoZSBERlMgaXMgaW1wbGVtZW50ZWQgYXMgcmVjdXJzaW9uLiBBIHBhdGgg aXMgY29udmVydGVkCisgKiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGFzIHNvb24gYXMg dGhlIGxhc3QgdmVydGV4IHRhYmxlIGlzIHJlYWNoZWQuCisgKgorICogZ2VuZXJhdGVfcXVlcmll c19mb3JfcGF0aF9wYXR0ZXJuKCkgc3RhcnRzIHRoZSByZWN1cnNpb24gYnV0IGFjdHVhbCB3b3Jr IGlzCisgKiBkb25lIGJ5IGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNl KCkuCisgKiBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aCgpIGNvbnN0cnVjdHMgYSBxdWVy eSBmb3IgYSBnaXZlbiBwYXRoLgorICoKKyAqIEEgcGF0aCBwYXR0ZXJuIG1heSByZXN1bHQgaW50 byBubyBwYXRoIGlmIGFueSBvZiB0aGUgZWxlbWVudCBwYXR0ZXJuIHlpZWxkcworICogbm8gZWxl bWVudHMgb3IgZWRnZSBwYXR0ZXJucyB5aWVsZCBubyBlZGdlcyBjb25uZWN0aW5nIGFkamFjZW50 IHZlcnRleAorICogcGF0dGVybnMuIEluIHN1Y2ggYSBjYXNlIGEgcXVlcnkgd2hpY2ggcmV0dXJu cyBubyByZXN1bHQgaXMgcmV0dXJuZWQKKyAqIChnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlfcGF0 aF9wYXR0ZXJuKCkpLgorICoKKyAqICdwYXRoX3BhdHRlcm4nIGlzIGdpdmVuIHBhdGggcGF0dGVy bgorICogJ3J0ZScgcmVmZXJlbmNlcyB0aGUgcHJvcGVydHkgZ3JhcGggaW4gdGhlIEdSQVBIX1RB QkxFIGNsYXVzZQorICovCitzdGF0aWMgTGlzdCAqCitnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRo X3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCit7CisJTGlz dAkgICAqcGF0aHF1ZXJpZXMgPSBOSUw7CisJTGlzdAkgICAqcGF0aF9lbGVtX2xpc3RzID0gTklM OworCUxpc3RDZWxsICAgKmxjOworCWludAkJCWVsZW1wb3MgPSAwOworCisJQXNzZXJ0KGxpc3Rf bGVuZ3RoKHBhdGhfcGF0dGVybikgPiAwKTsKKworCS8qCisJICogRm9yIGV2ZXJ5IGVsZW1lbnQg cGF0dGVybiBpbiB0aGUgZ2l2ZW4gcGF0aCBwYXR0ZXJuIGNvbGxlY3QgYWxsIHRoZQorCSAqIGdy YXBoIGVsZW1lbnRzIHRoYXQgc2F0aXNmeSB0aGUgZWxlbWVudCBwYXR0ZXJuLgorCSAqLworCWZv cmVhY2gobGMsIHBhdGhfcGF0dGVybikKKwl7CisJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9 IGxmaXJzdF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGxjKTsKKworCQlpZiAoZ2VwLT5raW5k ICE9IFZFUlRFWF9QQVRURVJOICYmCisJCQlnZXAtPmtpbmQgIT0gRURHRV9QQVRURVJOX0xFRlQg JiYgZ2VwLT5raW5kICE9IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJCWVsb2coRVJST1IsICJ1bnN1 cHBvcnRlZCBlbGVtZW50IHBhdHRlcm4ga2luZDogJXMiLCBnZXRfZ2VwX2tpbmRfbmFtZShnZXAt PmtpbmQpKTsKKworCQlpZiAoZ2VwLT5xdWFudGlmaWVyKQorCQkJZWxvZyhFUlJPUiwgImVsZW1l bnQgcGF0dGVybiBxdWFudGlmaWVyIG5vdCBzdXBwb3J0ZWQgeWV0Iik7CisKKwkJcGF0aF9lbGVt X2xpc3RzID0gbGFwcGVuZChwYXRoX2VsZW1fbGlzdHMsCisJCQkJCQkJCSAgZ2V0X2VsZW1lbnRz X2Zvcl9nZXAocnRlLT5yZWxpZCwgZ2VwLCBlbGVtcG9zKyspKTsKKwl9CisKKwlwYXRocXVlcmll cyA9IGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKHJ0ZSwgcGF0aHF1 ZXJpZXMsCisJCQkJCQkJCQkJCQkJCQlOSUwsIHBhdGhfZWxlbV9saXN0cywgMCk7CisKKwlpZiAo IXBhdGhxdWVyaWVzKQorCQlwYXRocXVlcmllcyA9IGxpc3RfbWFrZTEoZ2VuZXJhdGVfcXVlcnlf Zm9yX2VtcHR5X3BhdGhfcGF0dGVybihydGUpKTsKKworCXJldHVybiBwYXRocXVlcmllczsKK30K KworLyoKKyAqIFJlY3Vyc2l2ZSB3b3JraG9yc2UgZnVuY3Rpb24gb2YgZ2VuZXJhdGVfcXVlcmll c19mb3JfcGF0aF9wYXR0ZXJuKCkuCisgKi8KK3N0YXRpYyBMaXN0ICoKK2dlbmVyYXRlX3F1ZXJp ZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0 aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRoX2VsZW1fbGlzdHMsIGludCBlbGVt cG9zKQoreworCUxpc3QJICAgKmdlcF9lbGVtcyA9IGxpc3RfbnRoX25vZGUoTGlzdCwgcGF0aF9l bGVtX2xpc3RzLCBlbGVtcG9zKTsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGdl cF9lbGVtcykKKwl7CisJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmVsZW0gPSBsZmlyc3Qo bGMpOworCisJCS8qIFVwZGF0ZSBjdXJyZW50IHBhdGggYmVpbmcgYnVpbHQgd2l0aCBjdXJyZW50 IGVsZW1lbnQuICovCisJCWN1cl9wYXRoID0gbGFwcGVuZChjdXJfcGF0aCwgZWxlbSk7CisKKwkJ LyoKKwkJICogSWYgdGhpcyBpcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBwYXRoLCBnZW5lcmF0 ZSBxdWVyeSBmb3IgdGhlCisJCSAqIGNvbXBsZXRlZCBwYXRoLiBFbHNlIHJlY3Vyc2UgcHJvY2Vz c2luZyB0aGUgbmV4dCBlbGVtZW50LgorCQkgKi8KKwkJaWYgKGxpc3RfbGVuZ3RoKHBhdGhfZWxl bV9saXN0cykgPT0gbGlzdF9sZW5ndGgoY3VyX3BhdGgpKQorCQl7CisJCQlRdWVyeQkgICAqcGF0 aHF1ZXJ5ID0gZ2VuZXJhdGVfcXVlcnlfZm9yX2dyYXBoX3BhdGgocnRlLCBjdXJfcGF0aCk7CisK KwkJCUFzc2VydChlbGVtcG9zID09IGxpc3RfbGVuZ3RoKHBhdGhfZWxlbV9saXN0cykgLSAxKTsK KwkJCWlmIChwYXRocXVlcnkpCisJCQkJcGF0aHF1ZXJpZXMgPSBsYXBwZW5kKHBhdGhxdWVyaWVz LCBwYXRocXVlcnkpOworCQl9CisJCWVsc2UKKwkJCXBhdGhxdWVyaWVzID0gZ2VuZXJhdGVfcXVl cmllc19mb3JfcGF0aF9wYXR0ZXJuX3JlY3Vyc2UocnRlLCBwYXRocXVlcmllcywKKwkJCQkJCQkJ CQkJCQkJCQkJY3VyX3BhdGgsCisJCQkJCQkJCQkJCQkJCQkJCXBhdGhfZWxlbV9saXN0cywKKwkJ CQkJCQkJCQkJCQkJCQkJZWxlbXBvcyArIDEpOworCQkvKiBNYWtlIHdheSBmb3IgdGhlIG5leHQg ZWxlbWVudCBhdCB0aGUgc2FtZSBwb3NpdGlvbi4gKi8KKwkJY3VyX3BhdGggPSBsaXN0X2RlbGV0 ZV9sYXN0KGN1cl9wYXRoKTsKKwl9CisKKwlyZXR1cm4gcGF0aHF1ZXJpZXM7Cit9CisKKy8qCisg KiBDb25zdHJ1Y3QgYSBxdWVyeSByZXByZXNlbnRpbmcgZ2l2ZW4gZ3JhcGggcGF0aC4KKyAqCisg KiBNb3JlIGRldGFpbHMgaW4gdGhlIHByb2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3Bh dGhfcGF0dGVybigpLgorICovCitzdGF0aWMgUXVlcnkgKgorZ2VuZXJhdGVfcXVlcnlfZm9yX2dy YXBoX3BhdGgoUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpncmFwaF9wYXRoKQoreworCUxpc3RD ZWxsICAgKmxjOworCVF1ZXJ5CSAgICpwYXRoX3F1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCUxp c3QJICAgKmZyb21saXN0ID0gTklMOworCUxpc3QJICAgKnF1YWxfZXhwcnMgPSBOSUw7CisKKwlw YXRoX3F1ZXJ5LT5jb21tYW5kVHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBncmFw aF9wYXRoKQorCXsKKwkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqZ3BlID0gKHN0cnVjdCBn cmFwaF9wYXRoX2VsZW1lbnQgKikgbGZpcnN0KGxjKTsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAq Z2VwID0gZ3BlLT5wYXJlbnRfZ2VwOworCQlSYW5nZVRibFJlZiAqcnRyOworCQlSZWxhdGlvbgly ZWw7CisJCVBhcnNlTmFtZXNwYWNlSXRlbSAqcG5pOworCisJCUFzc2VydChnZXAtPmtpbmQgPT0g VkVSVEVYX1BBVFRFUk4gfHwKKwkJCSAgIGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCB8 fCBnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUKTsKKwkJQXNzZXJ0KCFnZXAtPnF1YW50 aWZpZXIpOworCisJCWlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5r aW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJeworCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxl bWVudCAqc3JjX2dwZSA9IGxpc3RfbnRoKGdyYXBoX3BhdGgsIGdwZS0+c3JjZWxlbV9wb3MpOwor CQkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqZGVzdF9ncGUgPSBsaXN0X250aChncmFwaF9w YXRoLCBncGUtPmRlc3RlbGVtX3Bvcyk7CisKKwkJCS8qCisJCQkgKiBNYWtlIHN1cmUgdGhhdCB0 aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBlbGVtZW50cyBvZiB0aGlzIGVkZ2UKKwkJCSAqIGFy ZSBwbGFjZWQgYXQgdGhlIGV4cGVjdGVkIHBvc2l0aW9uIGFuZCBoYXZlIHRoZSBjb3JyZXQKKwkJ CSAqIFJhbmdlVGJsRW50cnkgaW5kZXhlcyBhcyBzZXR1cCBieSBjcmVhdGVfZ3BlX2Zvcl9lbGVt ZW50KCkuCisJCQkgKi8KKwkJCUFzc2VydChncGUtPnNyY2VsZW1fcG9zID09IHNyY19ncGUtPnJ0 aW5kZXggLSAxICYmCisJCQkJICAgZ3BlLT5kZXN0ZWxlbV9wb3MgPT0gZGVzdF9ncGUtPnJ0aW5k ZXggLSAxKTsKKworCQkJLyoKKwkJCSAqIElmIHRoZSBnaXZlbiBlZGdlIGVsZW1lbnQgZG9lcyBu b3QgY29ubmVjdCB0aGUgYWRqYWNlbnQgdmVydGV4CisJCQkgKiBlbGVtZW50cyBpbiB0aGlzIHBh dGgsIHRoZSBwYXRoIGlzIGJyb2tlbi4gQWJhbmRvbiB0aGlzIHBhdGggYXMKKwkJCSAqIGl0IHdv bid0IHJldHVybiBhbnkgcm93cy4KKwkJCSAqLworCQkJaWYgKHNyY19ncGUtPmVsZW1vaWQgIT0g Z3BlLT5zcmN2ZXJ0ZXhpZCB8fAorCQkJCWRlc3RfZ3BlLT5lbGVtb2lkICE9IGdwZS0+ZGVzdHZl cnRleGlkKQorCQkJCXJldHVybiBOVUxMOworCQl9CisKKwkJLyogQ3JlYXRlIFJhbmdlVGJsRW50 cnkgZm9yIHRoaXMgZWxlbWVudCB0YWJsZS4gKi8KKwkJcmVsID0gdGFibGVfb3BlbihncGUtPnJl bG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJcG5pID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVs YXRpb24obWFrZV9wYXJzZXN0YXRlKE5VTEwpLCByZWwsIEFjY2Vzc1NoYXJlTG9jaywKKwkJCQkJ CQkJCQkJTlVMTCwgdHJ1ZSwgZmFsc2UpOworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJ CXBhdGhfcXVlcnktPnJ0YWJsZSA9IGxhcHBlbmQocGF0aF9xdWVyeS0+cnRhYmxlLCBwbmktPnBf cnRlKTsKKwkJcGF0aF9xdWVyeS0+cnRlcGVybWluZm9zID0gbGFwcGVuZChwYXRoX3F1ZXJ5LT5y dGVwZXJtaW5mb3MsIHBuaS0+cF9wZXJtaW5mbyk7CisJCXBuaS0+cF9ydGUtPnBlcm1pbmZvaW5k ZXggPSBsaXN0X2xlbmd0aChwYXRoX3F1ZXJ5LT5ydGVwZXJtaW5mb3MpOworCQlydHIgPSBtYWtl Tm9kZShSYW5nZVRibFJlZik7CisJCXJ0ci0+cnRpbmRleCA9IGxpc3RfbGVuZ3RoKHBhdGhfcXVl cnktPnJ0YWJsZSk7CisJCWZyb21saXN0ID0gbGFwcGVuZChmcm9tbGlzdCwgcnRyKTsKKworCQkv KgorCQkgKiBNYWtlIHN1cmUgdGhhdCB0aGUgYXNzdW1wdGlvbiBtZW50aW9uZWQgaW4gY3JlYXRl X2dwZV9mb3JfZWxlbWVudCgpCisJCSAqIGhvbGRzIHRydWUuIFRoYXQgdGhlIGVsZW1lbnRzJyBS YW5nZVRibEVudHJ5cyBhcmUgYWRkZWQgaW4gdGhlCisJCSAqIG9yZGVyIGluIHdoaWNoIHRoZXkg YXBwZWFyIGluIHRoZSBwYXRoLgorCQkgKi8KKwkJQXNzZXJ0KGdwZS0+cnRpbmRleCA9PSBydHIt PnJ0aW5kZXgpOworCisJCWlmIChnZXAtPndoZXJlQ2xhdXNlKQorCQl7CisJCQlOb2RlCSAgICp0 cjsKKworCQkJdHIgPSByZXBsYWNlX3Byb3BlcnR5X3JlZnMocnRlLT5yZWxpZCwgZ2VwLT53aGVy ZUNsYXVzZSwgbGlzdF9tYWtlMShncGUpKTsKKworCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVh bF9leHBycywgdHIpOworCQl9CisJCXF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJz LCBncGUtPnF1YWxfZXhwcnMpOworCX0KKworCXBhdGhfcXVlcnktPmpvaW50cmVlID0gbWFrZUZy b21FeHByKGZyb21saXN0LAorCQkJCQkJCQkJCShOb2RlICopIG1ha2VCb29sRXhwcihBTkRfRVhQ UiwgcXVhbF9leHBycywgLTEpKTsKKworCS8qIEVhY2ggcGF0aCBxdWVyeSBwcm9qZWN0cyB0aGUg Y29sdW1ucyBzcGVjaWZpZWQgaW4gdGhlIEdSQUhfVEFCTEUgY2xhdXNlICovCisJcGF0aF9xdWVy eS0+dGFyZ2V0TGlzdCA9IGNhc3ROb2RlKExpc3QsCisJCQkJCQkJCQkgIHJlcGxhY2VfcHJvcGVy dHlfcmVmcyhydGUtPnJlbGlkLAorCQkJCQkJCQkJCQkJCQkJKE5vZGUgKikgcnRlLT5ncmFwaF90 YWJsZV9jb2x1bW5zLAorCQkJCQkJCQkJCQkJCQkJZ3JhcGhfcGF0aCkpOworCXJldHVybiBwYXRo X3F1ZXJ5OworfQorCisvKgorICogQ29uc3RydWN0IGEgcXVlcnkgd2hpY2ggd291bGQgbm90IHJl dHVybiBhbnkgcm93cy4KKyAqCisgKiBNb3JlIGRldGFpbHMgaW4gdGhlIHByb2xvZ3VlIG9mIGdl bmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybigpLgorICovCitzdGF0aWMgUXVlcnkgKgor Z2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUp Cit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCUxpc3RDZWxsICAgKmxj OworCisJcXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKworCisJcXVlcnktPnJ0YWJs ZSA9IE5JTDsKKwlxdWVyeS0+cnRlcGVybWluZm9zID0gTklMOworCisKKwlxdWVyeS0+am9pbnRy ZWUgPSBtYWtlRnJvbUV4cHIoTklMLCAoTm9kZSAqKSBtYWtlQm9vbENvbnN0KGZhbHNlLCBmYWxz ZSkpOworCisJLyoKKwkgKiBFdmVuIHRob3VnaCBubyByb3dzIGFyZSByZXR1cm5lZCwgdGhlIHJl c3VsdCBzdGlsbCBwcm9qZWN0cyB0aGUgc2FtZQorCSAqIGNvbHVtbnMgYXMgcHJvamVjdGVkIGJ5 IEdSQVBIX1RBQkxFIGNsYXVzZS4gRG8gdGhpcyBieSBjb25zdHJ1Y3RpbmcgYQorCSAqIHRhcmdl dCBsaXN0IGZ1bGwgb2YgTlVMTCB2YWx1ZXMuCisJICovCisJZm9yZWFjaChsYywgcnRlLT5ncmFw aF90YWJsZV9jb2x1bW5zKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gY29weU9iamVjdChsZmly c3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpKTsKKwkJTm9kZQkgICAqbnRlID0gKE5vZGUgKikgdGUt PmV4cHI7CisKKwkJdGUtPmV4cHIgPSAoRXhwciAqKSBtYWtlTnVsbENvbnN0KGV4cHJUeXBlKG50 ZSksIGV4cHJUeXBtb2QobnRlKSwgZXhwckNvbGxhdGlvbihudGUpKTsKKwkJcXVlcnktPnRhcmdl dExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0ZSk7CisJfQorCisJcmV0dXJuIHF1 ZXJ5OworfQorCisvKgorICogQ29uc3RydWN0IGEgcXVlcnkgd2hpY2ggaXMgVU5JT04gb2YgZ2l2 ZW4gcGF0aCBxdWVyaWVzLgorICoKKyAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBwYXRo cXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZworICogU2V0T3BlcmF0aW9uU3RtdCByZWNy dXJzaXZlbHkuIEhlbmNlIHRoZSBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB3aXRoCisgKiBgcGF0 aHF1ZXJpZXNgIHNldCB0byBOSUwuCisgKi8KK3N0YXRpYyBRdWVyeSAqCitnZW5lcmF0ZV91bmlv bl9mcm9tX3BhdGhxdWVyaWVzKExpc3QgKipwYXRocXVlcmllcykKK3sKKwlMaXN0CSAgICpydGFi bGUgPSBOSUw7CisJUXVlcnkJICAgKnNhbXBsZVF1ZXJ5ID0gbGluaXRpYWxfbm9kZShRdWVyeSwg KnBhdGhxdWVyaWVzKTsKKwlTZXRPcGVyYXRpb25TdG10ICpzb3N0bXQ7CisJUXVlcnkJICAgKnVu aW9uX3F1ZXJ5OworCWludAkJCXJlc25vOworCUxpc3RDZWxsICAgKmxjdGwsCisJCQkgICAqbGN0 LAorCQkJICAgKmxjbSwKKwkJCSAgICpsY2M7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgoKnBhdGhx dWVyaWVzKSA+IDApOworCisJLyogSWYgdGhlcmUncyBvbmx5IG9uZSBwYXRocXVlcnksIG5vIG5l ZWQgdG8gY29uc3RydWN0IGEgVU5JT04gcXVlcnkuICovCisJaWYgKGxpc3RfbGVuZ3RoKCpwYXRo cXVlcmllcykgPT0gMSkKKwl7CisJCSpwYXRocXVlcmllcyA9IE5JTDsKKwkJcmV0dXJuIHNhbXBs ZVF1ZXJ5OworCX0KKworCXNvc3RtdCA9IGNhc3ROb2RlKFNldE9wZXJhdGlvblN0bXQsCisJCQkJ CSAgZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcygqcGF0aHF1ZXJpZXMsICZydGFibGUs IE5VTEwpKTsKKworCS8qIEVuY2Fwc3VsYXRlIHRoZSBzZXQgb3BlcmF0aW9uIHN0YXRlbWVudCBp bnRvIGEgUXVlcnkuICovCisJdW5pb25fcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJdW5pb25f cXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKwl1bmlvbl9xdWVyeS0+cnRhYmxlID0g cnRhYmxlOworCXVuaW9uX3F1ZXJ5LT5zZXRPcGVyYXRpb25zID0gKE5vZGUgKikgc29zdG10Owor CXVuaW9uX3F1ZXJ5LT5ydGVwZXJtaW5mb3MgPSBOSUw7CisJdW5pb25fcXVlcnktPmpvaW50cmVl ID0gbWFrZUZyb21FeHByKE5JTCwgTlVMTCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGR1bW15IHRh cmdldGxpc3QgZm9yIG91dGVyIHF1ZXJ5IHVzaW5nIGNvbHVtbiBuYW1lcyBmcm9tIG9uZQorCSAq IG9mIHRoZSBxdWVyaWVzIGFuZCBjb21tb24gZGF0YXR5cGVzL2NvbGxhdGlvbnMgb2YgdG9wbW9z dCBzZXQKKwkgKiBvcGVyYXRpb24uICBJdCBzaG91bGRuJ3QgbWF0dGVyIHdoaWNoIHF1ZXJ5LiBB bHNvIGl0IHNob3VsZG4ndCBtYXR0ZXIKKwkgKiB3aGljaCBSVCBpbmRleCBpcyB1c2VkIGFzIHZh cm5vIGluIHRoZSB0YXJnZXQgbGlzdCBlbnRyaWVzLCBhcyBsb25nIGFzCisJICogaXQgY29ycmVz cG9uZHMgdG8gYSByZWFsIFJUIGVudHJ5OyBlbHNlIGZ1bm55IHRoaW5ncyBtYXkgaGFwcGVuIHdo ZW4KKwkgKiB0aGUgdHJlZSBpcyBtYXNoZWQgYnkgcnVsZSByZXdyaXRpbmcuIFNvIHdlIHVzZSAx IHNpbmNlIHRoZXJlJ3MgYWx3YXlzCisJICogb25lIFJUIGVudHJ5IGF0IGxlYXN0LgorCSAqLwor CUFzc2VydChydF9mZXRjaCgxLCBydGFibGUpKTsKKwl1bmlvbl9xdWVyeS0+dGFyZ2V0TGlzdCA9 IE5VTEw7CisJcmVzbm8gPSAxOworCWZvcmZvdXIobGN0LCBzb3N0bXQtPmNvbFR5cGVzLAorCQkJ bGNtLCBzb3N0bXQtPmNvbFR5cG1vZHMsCisJCQlsY2MsIHNvc3RtdC0+Y29sQ29sbGF0aW9ucywK KwkJCWxjdGwsIHNhbXBsZVF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJT2lkCQkJY29sVHlwZSA9 IGxmaXJzdF9vaWQobGN0KTsKKwkJaW50MzIJCWNvbFR5cG1vZCA9IGxmaXJzdF9pbnQobGNtKTsK KwkJT2lkCQkJY29sQ29sbGF0aW9uID0gbGZpcnN0X29pZChsY2MpOworCQlUYXJnZXRFbnRyeSAq c2FtcGxlX3RsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGN0bCk7CisJCWNoYXIJICAgKmNv bE5hbWU7CisJCVRhcmdldEVudHJ5ICp0bGU7CisJCVZhcgkJICAgKnZhcjsKKworCQlBc3NlcnQo IXNhbXBsZV90bGUtPnJlc2p1bmspOworCQljb2xOYW1lID0gcHN0cmR1cChzYW1wbGVfdGxlLT5y ZXNuYW1lKTsKKwkJdmFyID0gbWFrZVZhcigxLCBzYW1wbGVfdGxlLT5yZXNubywgY29sVHlwZSwg Y29sVHlwbW9kLCBjb2xDb2xsYXRpb24sIDApOworCQl2YXItPmxvY2F0aW9uID0gZXhwckxvY2F0 aW9uKChOb2RlICopIHNhbXBsZV90bGUtPmV4cHIpOworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnko KEV4cHIgKikgdmFyLCAoQXR0ck51bWJlcikgcmVzbm8rKywgY29sTmFtZSwgZmFsc2UpOworCQl1 bmlvbl9xdWVyeS0+dGFyZ2V0TGlzdCA9IGxhcHBlbmQodW5pb25fcXVlcnktPnRhcmdldExpc3Qs IHRsZSk7CisJfQorCisJKnBhdGhxdWVyaWVzID0gTklMOworCXJldHVybiB1bmlvbl9xdWVyeTsK K30KKworLyoKKyAqIENvbnN0cnVjdCBhIHF1ZXJ5IHdoaWNoIGlzIFVOSU9OIG9mIGFsbCB0aGUg Z2l2ZW4gcGF0aCBxdWVyaWVzLgorICoKKyAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBw YXRocXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZworICogU2V0T3BlcmF0aW9uU3RtdCBy ZWN1cnNpdmVseS4KKyAqLworc3RhdGljIE5vZGUgKgorZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRo cXVlcmllcyhMaXN0ICpwYXRocXVlcmllcywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGxp c3QpCit7CisJU2V0T3BlcmF0aW9uU3RtdCAqc29zdG10OworCVF1ZXJ5CSAgICpscXVlcnk7CisJ Tm9kZQkgICAqcmFyZzsKKwlSYW5nZVRibFJlZiAqbHJ0ciA9IG1ha2VOb2RlKFJhbmdlVGJsUmVm KTsKKwlMaXN0CSAgICpydGFyZ2V0bGlzdDsKKwlQYXJzZU5hbWVzcGFjZUl0ZW0gKnBuaTsKKwor CS8qIFJlY3Vyc2lvbiB0ZXJtaW5hdGlvbiBjb25kaXRpb24uICovCisJaWYgKGxpc3RfbGVuZ3Ro KHBhdGhxdWVyaWVzKSA9PSAwKQorCXsKKwkJKnRhcmdldGxpc3QgPSBOSUw7CisJCXJldHVybiBO VUxMOworCX0KKworCWxxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHBhdGhxdWVyaWVzKTsK KworCXBuaSA9IGFkZFJhbmdlVGFibGVFbnRyeUZvclN1YnF1ZXJ5KG1ha2VfcGFyc2VzdGF0ZShO VUxMKSwgbHF1ZXJ5LCBOVUxMLAorCQkJCQkJCQkJCWZhbHNlLCBmYWxzZSk7CisJKnJ0YWJsZSA9 IGxhcHBlbmQoKnJ0YWJsZSwgcG5pLT5wX3J0ZSk7CisJbHJ0ci0+cnRpbmRleCA9IGxpc3RfbGVu Z3RoKCpydGFibGUpOworCXJhcmcgPSBnZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKGxp c3RfZGVsZXRlX2ZpcnN0KHBhdGhxdWVyaWVzKSwgcnRhYmxlLCAmcnRhcmdldGxpc3QpOworCWlm IChyYXJnID09IE5VTEwpCisJeworCQkvKgorCQkgKiBObyBmdXJ0aGVyIHBhdGggcXVlcmllcyBp biB0aGUgbGlzdC4gQ29udmVydCB0aGUgbGFzdCBxdWVyeSBpbnRvIGFuCisJCSAqIFJhbmdlVGJs UmVmIGFzIGV4cGVjdGVkIGJ5IFNldE9wZXJhdGlvblN0bXQuIEV4dHJhY3QgYSBsaXN0IG9mIHRo ZQorCQkgKiBub24tanVuayBUTEVzIGZvciB1cHBlci1sZXZlbCBwcm9jZXNzaW5nLgorCQkgKi8K KwkJaWYgKHRhcmdldGxpc3QpCisJCXsKKwkJCUxpc3RDZWxsICAgKnRsOworCisJCQkqdGFyZ2V0 bGlzdCA9IE5JTDsKKwkJCWZvcmVhY2godGwsIGxxdWVyeS0+dGFyZ2V0TGlzdCkKKwkJCXsKKwkJ CQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdCh0bCk7CisKKwkJCQlp ZiAoIXRsZS0+cmVzanVuaykKKwkJCQkJKnRhcmdldGxpc3QgPSBsYXBwZW5kKCp0YXJnZXRsaXN0 LCB0bGUpOworCQkJfQorCQl9CisJCXJldHVybiAoTm9kZSAqKSBscnRyOworCX0KKworCXNvc3Rt dCA9IG1ha2VOb2RlKFNldE9wZXJhdGlvblN0bXQpOworCXNvc3RtdC0+b3AgPSBTRVRPUF9VTklP TjsKKwlzb3N0bXQtPmFsbCA9IHRydWU7CisJc29zdG10LT5sYXJnID0gKE5vZGUgKikgbHJ0cjsK Kwlzb3N0bXQtPnJhcmcgPSByYXJnOworCWNvbnN0cnVjdFNldE9wVGFyZ2V0bGlzdChzb3N0bXQs IGxxdWVyeS0+dGFyZ2V0TGlzdCwgcnRhcmdldGxpc3QsIHRhcmdldGxpc3QsICJVTklPTiIsIE5V TEwsIGZhbHNlKTsKKworCXJldHVybiAoTm9kZSAqKSBzb3N0bXQ7Cit9CisKKy8qCisgKiBDb25z dHJ1Y3QgYSBncmFwaF9wYXRoX2VsZW1lbnQgb2JqZWN0IGZvciB0aGUgZ3JhcGggZWxlbWVudCBn aXZlbiBieSBgZWxlbW9pZGAKKyAqIHN0YXRpc2ZpZWQgYnkgdGhlIGdyYXBoIGVsZW1lbnQgcGF0 dGVybiBgZ2VwYC4KKyAqCisgKiAnZWxlbXBvc2AgaXMgdGhlIHBvc2l0aW9uIG9mIGdpdmVuIGVs ZW1lbnQgcGF0dGVybiBpbiB0aGUgcGF0aCBwYXR0ZXJuLgorICoKKyAqIElmIHRoZSB0eXBlIG9m IGdyYXBoIGVsZW1lbnQgZG9lcyBub3QgZml0IHRoZSBlbGVtZW50IHBhdHRlcm4ga2luZCwgdGhl CisgKiBmdW5jdGlvbiByZXR1cm5zIE5VTEwuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3JhcGhfcGF0 aF9lbGVtZW50ICoKK2NyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoR3JhcGhFbGVtZW50UGF0dGVybiAq Z2VwLCBPaWQgZWxlbW9pZCwgaW50IGVsZW1wb3MpCit7CisJSGVhcFR1cGxlCWVsZXR1cCA9IFNl YXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7 CisJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtOworCXN0cnVjdCBncmFwaF9wYXRo X2VsZW1lbnQgKmdwZTsKKworCWlmICghZWxldHVwKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIGVsZW1vaWQpOworCXBn ZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVChlbGV0dXApKTsK KworCWlmICgocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAmJiBnZXAtPmtpbmQg IT0gVkVSVEVYX1BBVFRFUk4pIHx8CisJCShwZ2Vmb3JtLT5wZ2VraW5kID09IFBHRUtJTkRfRURH RSAmJiAhSVNfRURHRV9QQVRURVJOKGdlcC0+a2luZCkpKQorCXsKKwkJUmVsZWFzZVN5c0NhY2hl KGVsZXR1cCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWdwZSA9IHBhbGxvYzBfb2JqZWN0KHN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQpOworCWdwZS0+cGFyZW50X2dlcCA9IGdlcDsKKwlncGUt PmVsZW1vaWQgPSBlbGVtb2lkOworCWdwZS0+cmVsb2lkID0gcGdlZm9ybS0+cGdlcmVsaWQ7CisJ Z3BlLT5xdWFsX2V4cHJzID0gTklMOworCisJLyoKKwkgKiBXaGVuIHRoZSBwYXRoIGNvbnRhaW5p bmcgdGhpcyBlbGVtZW50IHdpbGwgYmUgY29udmVydGVkIGludG8gYSBxdWVyeQorCSAqIChnZW5l cmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aCgpKSB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252ZXJ0 ZWQgaW50byBhCisJICogUmFuZ2VUYmxFbnRyeS4gVGhlIFJhbmdlVGJsRW50cnlzIGFyZSBjcmVh dGVkIGluIHRoZSBzYW1lIG9yZGVyIGluCisJICogd2hpY2ggZWxlbWVudHMgYXBwZWFyIGluIHRo ZSBwYXRoIGFuZCB0aHVzIGdldCBjb25zZWN1dGl2ZSBydGluZGV4ZXMuCisJICogS25vd2luZyB0 aG9zZSBydGluZGV4ZXMgaGVyZSBtYWtlcyBpdCBwb3NzaWJsZSB0byBjcmFmdCBlbGVtZW50cycg cXVhbAorCSAqIGV4cHJlc3Npb25zIG9ubHkgb25jZS4gT3RoZXJ3aXNlIHRoZXkgbmVlZCB0byBi ZSBjcmFmdGVkIGFzIG1hbnkgdGltZXMKKwkgKiBhcyB0aGUgbnVtYmVyIG9mIHBhdGhzIHRoaXMg ZWxlbWVudCBhcHBlYXJzIGluLiBIZW5jZSBzYXZlIHRoZSBhc3N1bWVkCisJICogcnRpbmRleCBz byB0aGF0IGl0IGNhbiBiZSB2ZXJpZmllZCBsYXRlci4KKwkgKi8KKwlncGUtPnJ0aW5kZXggPSBl bGVtcG9zICsgMTsKKworCWlmIChJU19FREdFX1BBVFRFUk4oZ2VwLT5raW5kKSkKKwl7CisJCWlu dAkJCXNyY19ydGluZGV4OworCQlpbnQJCQlkZXN0X3J0aW5kZXg7CisJCUxpc3QJICAgKmVkZ2Vf cXVhbDsKKworCQlncGUtPnNyY3ZlcnRleGlkID0gcGdlZm9ybS0+cGdlc3JjdmVydGV4aWQ7CisJ CWdwZS0+ZGVzdHZlcnRleGlkID0gcGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkOworCisJCWlmIChn ZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUKQorCQl7CisJCQlncGUtPnNyY2VsZW1fcG9z ID0gZWxlbXBvcyAtIDE7CisJCQlncGUtPmRlc3RlbGVtX3BvcyA9IGVsZW1wb3MgKyAxOworCQkJ c3JjX3J0aW5kZXggPSBncGUtPnJ0aW5kZXggLSAxOworCQkJZGVzdF9ydGluZGV4ID0gZ3BlLT5y dGluZGV4ICsgMTsKKwkJfQorCQllbHNlIGlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xF RlQpCisJCXsKKwkJCWdwZS0+c3JjZWxlbV9wb3MgPSBlbGVtcG9zICsgMTsKKwkJCWdwZS0+ZGVz dGVsZW1fcG9zID0gZWxlbXBvcyAtIDE7CisJCQlzcmNfcnRpbmRleCA9IGdwZS0+cnRpbmRleCAr IDE7CisJCQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXggLSAxOworCQl9CisJCWVsc2UKKwkJ eworCQkJLyogV2UgZG9uJ3Qgc3VwcG9ydCB1bmRpcmVjdGVkIGVkZ2VzIHlldC4gKi8KKwkJCUFz c2VydChmYWxzZSk7CisJCQlncGUtPnNyY2VsZW1fcG9zID0gZWxlbXBvczsKKwkJCWdwZS0+ZGVz dGVsZW1fcG9zID0gZWxlbXBvczsKKwkJCXNyY19ydGluZGV4ID0gZ3BlLT5ydGluZGV4OworCQkJ ZGVzdF9ydGluZGV4ID0gZ3BlLT5ydGluZGV4OworCQl9CisKKwkJZWRnZV9xdWFsID0gYnVpbGRf ZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0dXAsIGdwZS0+cnRpbmRleCwgc3JjX3J0aW5kZXgs CisJCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXksCisJCQkJ CQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYpOworCQlncGUtPnF1 YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChncGUtPnF1YWxfZXhwcnMsIGVkZ2VfcXVhbCk7CisJCWVk Z2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBncGUtPnJ0aW5k ZXgsIGRlc3RfcnRpbmRleCwKKwkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X3BnZWRlc3RrZXksCisJCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2Vk ZXN0cmVmKTsKKwkJZ3BlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQoZ3BlLT5xdWFsX2V4cHJz LCBlZGdlX3F1YWwpOworCX0KKworCVJlbGVhc2VTeXNDYWNoZShlbGV0dXApOworCisJcmV0dXJu IGdwZTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKgorZ2V0X2dlcF9raW5kX25hbWUoR3JhcGhF bGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCkKK3sKKwlzd2l0Y2ggKGdlcGtpbmQpCisJeworCQlj YXNlIFZFUlRFWF9QQVRURVJOOgorCQkJcmV0dXJuICJ2ZXJ0ZXgiOworCQljYXNlIEVER0VfUEFU VEVSTl9MRUZUOgorCQkJcmV0dXJuICJlZGdlIHBvaW50aW5nIGxlZnQiOworCQljYXNlIEVER0Vf UEFUVEVSTl9SSUdIVDoKKwkJCXJldHVybiAiZWRnZSBwb2ludGluZyByaWdodCI7CisJCWNhc2Ug RURHRV9QQVRURVJOX0FOWToKKwkJCXJldHVybiAidW5kaXJlY3RlZCBlZGdlIjsKKwkJY2FzZSBQ QVJFTl9FWFBSOgorCQkJcmV0dXJuICJuZXN0ZWQgcGF0aCBwYXR0ZXJuIjsKKwl9CisKKwlwZ191 bnJlYWNoYWJsZSgpOworfQorCisvKgorICogUmV0dXJucyB0aGUgbGlzdCBvZiBPSURzIG9mIGdy YXBoIGxhYmVscyB3aGljaCB0aGUgZ2l2ZW4gbGFiZWwgZXhwcmVzc2lvbgorICogcmVzb2x2ZXMg dG8gaW4gdGhlIGdpdmVuIHByb3BlcnR5IGdyYXBoLgorICovCitzdGF0aWMgTGlzdCAqCitnZXRf bGFiZWxzX2Zvcl9leHByKE9pZCBwcm9wZ3JhcGhpZCwgTm9kZSAqbGFiZWxleHByKQoreworCUxp c3QJICAgKmxhYmVsX29pZHM7CisKKwlpZiAoIWxhYmVsZXhwcikKKwl7CisJCVJlbGF0aW9uCXJl bDsKKwkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJU2NhbktleURhdGEga2V5WzFdOworCQlIZWFwVHVw bGUJdHVwOworCisJCS8qCisJCSAqIEFjY29yZGluZyB0byBzZWN0aW9uIDkuMiAiQ29udGV4dHVh bCBpbmZlcmVuY2Ugb2YgYSBzZXQgb2YgbGFiZWxzIgorCQkgKiBzdWJjbGF1c2UgMi5hLmlpIG9m IFNRTC9QR1Egc3RhbmRhcmQsIGVsZW1lbnQgcGF0dGVybiB3aGljaCBkb2VzCisJCSAqIG5vdCBo YXZlIGEgbGFiZWwgZXhwcmVzc2lvbiBpcyBjb25zaWRlcmVkIHRvIGhhdmUgbGFiZWwgZXhwcmVz c2lvbgorCQkgKiBlcXVpdmFsZW50IHRvICclfCElJyB3aGljaCBpcyBzZXQgb2YgYWxsIGxhYmVs cy4KKwkJICovCisJCWxhYmVsX29pZHMgPSBOSUw7CisJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdy YXBoTGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCQlTY2FuS2V5SW5pdCgma2V5 WzBdLAorCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wZ2xwZ2lkLAorCQkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsCisJCQkJCUZfT0lERVEsIE9iamVjdElkR2V0RGF0dW0ocHJvcGdyYXBo aWQpKTsKKwkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaExhYmVsR3Jh cGhOYW1lSW5kZXhJZCwKKwkJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCBrZXkpOworCQl3aGlsZSAo SGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwkJeworCQkJ Rm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwgbGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwp IEdFVFNUUlVDVCh0dXApOworCisJCQlsYWJlbF9vaWRzID0gbGFwcGVuZF9vaWQobGFiZWxfb2lk cywgbGFiZWwtPm9pZCk7CisJCX0KKwkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJdGFibGVf Y2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KKwllbHNlIGlmIChJc0EobGFiZWxleHBy LCBHcmFwaExhYmVsUmVmKSkKKwl7CisJCUdyYXBoTGFiZWxSZWYgKmdsciA9IGNhc3ROb2RlKEdy YXBoTGFiZWxSZWYsIGxhYmVsZXhwcik7CisKKwkJbGFiZWxfb2lkcyA9IGxpc3RfbWFrZTFfb2lk KGdsci0+bGFiZWxpZCk7CisJfQorCWVsc2UgaWYgKElzQShsYWJlbGV4cHIsIEJvb2xFeHByKSkK Kwl7CisJCUJvb2xFeHByICAgKmJlID0gY2FzdE5vZGUoQm9vbEV4cHIsIGxhYmVsZXhwcik7CisJ CUxpc3QJICAgKmxhYmVsX2V4cHJzID0gYmUtPmFyZ3M7CisJCUxpc3RDZWxsICAgKmxsYzsKKwor CQlsYWJlbF9vaWRzID0gTklMOworCQlmb3JlYWNoKGxsYywgbGFiZWxfZXhwcnMpCisJCXsKKwkJ CUdyYXBoTGFiZWxSZWYgKmdsciA9IGxmaXJzdF9ub2RlKEdyYXBoTGFiZWxSZWYsIGxsYyk7CisK KwkJCWxhYmVsX29pZHMgPSBsYXBwZW5kX29pZChsYWJlbF9vaWRzLCBnbHItPmxhYmVsaWQpOwor CQl9CisJfQorCWVsc2UKKwkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIGxhYmVsIGV4cHJlc3Np b24gdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGxhYmVsZXhwcikpOworCisJcmV0dXJuIGxhYmVs X29pZHM7Cit9CisKKy8qCisgKiBHaXZlbiBhIGdyYXBoIGVsZW1lbnQgcGF0dGVybiBgZ2VwYCwg cmV0dXJuIGEgbGlzdCBvZiBhbGwgdGhlIGdyYXBoIGVsZW1lbnRzCisgKiB0aGF0IHNhdGlzZnkg dGhlIGdyYXBoIHBhdHRlcm4uCisgKgorICogRmlyc3Qgd2UgZmluZCBhbGwgdGhlIGdyYXBoIGxh YmVscyB0aGF0IHNhdGlzZnkgdGhlIGxhYmVsIGV4cHJlc3Npb24gaW4KKyAqIGdyYXBoIGVsZW1l bnQgcGF0dGVybi4gRWFjaCBsYWJlbCBoYXMgYXNzb2NpYXRlZCB3aXRoIG9uZSBvciBtb3JlIGdy YXBoCisgKiBlbGVtZW50cy4gQSB1bmlvbiBvZiBhbGwgc3VjaCBlbGVtZW50cyBzYXRpc2ZpZXMg dGhlIGVsZW1lbnQgcGF0dGVybi4gVGhlCisgKiByZXR1cm5lZCBsaXN0IGNvbnRhaW5zIG9uZSBn cmFwaF9wYXRoX2VsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyBlYWNoIG9mCisgKiB0aGVzZSBl bGVtZW50cyByZXNwZWN0aXZlbHkuCisgKgorICogYGVsZW1wb3NgIGlzIHBvc2l0aW9uIG9mIHRo ZSBlbGVtZW50IHBhdHRlcm4gaW4gdGhlIHBhdGggcGF0dGVybi4KKyAqLworc3RhdGljIExpc3Qg KgorZ2V0X2VsZW1lbnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0 ZXJuICpnZXAsIGludCBlbGVtcG9zKQoreworCUxpc3QJICAgKmxhYmVsX29pZHMgPSBnZXRfbGFi ZWxzX2Zvcl9leHByKHByb3BncmFwaGlkLCBnZXAtPmxhYmVsZXhwcik7CisJTGlzdAkgICAqZWxl bV9vaWRzX3NlZW4gPSBOSUw7CisJTGlzdAkgICAqZWxlbV9ncGVfb2lkcyA9IE5JTDsKKwlMaXN0 CSAgICplbGVtX2dwZXMgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJUmVsYXRpb24JcmVsOwor CVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5WzFdOworCUhlYXBUdXBsZQl0dXA7 CisKKwlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisJZm9yZWFjaChsYywgbGFiZWxfb2lkcykKKwl7CisJCU9pZAkJCWxh YmVsb2lkID0gbGZpcnN0X29pZChsYyk7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJU2Nh bktleUluaXQoJmtleVswXSwKKwkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9w Z2VsbGFiZWxpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCQlGX09JREVRLCBP YmplY3RJZEdldERhdHVtKGxhYmVsb2lkKSk7CisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4o cmVsLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxMYWJlbEluZGV4SWQsIHRydWUsCisJCQkJCQkJCSAg TlVMTCwgMSwga2V5KTsKKwkJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwID0gc3lzdGFibGVf Z2V0bmV4dChzY2FuKSkpCisJCXsKKwkJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwg bGFiZWxfZWxlbSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1Qo dHVwKTsKKwkJCU9pZAkJCWVsZW1fb2lkID0gbGFiZWxfZWxlbS0+cGdlbGVsaWQ7CisKKwkJCWlm ICghbGlzdF9tZW1iZXJfb2lkKGVsZW1fb2lkc19zZWVuLCBlbGVtX29pZCkpCisJCQl7CisJCQkJ LyoKKwkJCQkgKiBGb3VuZCBhIG5ldyBlbGVtZW50IHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGxh YmVscyBpbiB0aGUKKwkJCQkgKiBnaXZlbiBlbGVtZW50IHBhdHRlcm4uIElmIGl0IGZpdHMgdGhl IGVsZW1lbnQgcGF0dGVybiBraW5kCisJCQkJICogd2Ugd2lsbCBjcmVhdGUgR3JhcGhQYXRoUGF0 dGVybiBvYmplY3QgZm9yIGl0IGFuZCBmbGFnIHRoYXQKKwkJCQkgKiB0aGUgY3VycmVudCBsYWJl bCBoYXMgYXQgbGVhc3Qgb25lIGVsZW1lbnQsIHRoYXQgc2F0aXNmaWVzCisJCQkJICogdGhlIGdp dmVuIGVsZW1lbnQgcGF0dGVybiwgYXNzb2NpYXRlZCB3aXRoIGl0LgorCQkJCSAqLworCQkJCXN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IGNyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoZ2Vw LCBlbGVtX29pZCwgZWxlbXBvcyk7CisKKwkJCQlpZiAoZ3BlKQorCQkJCXsKKwkJCQkJZWxlbV9n cGVzID0gbGFwcGVuZChlbGVtX2dwZXMsIGdwZSk7CisJCQkJCWVsZW1fZ3BlX29pZHMgPSBsYXBw ZW5kX29pZChlbGVtX2dwZV9vaWRzLCBlbGVtX29pZCk7CisJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJ CQl9CisKKwkJCQkvKgorCQkJCSAqIEFkZCB0aGUgZ3JhcGggZWxlbWVudCB0byB0aGUgZWxlbWVu dHMgY29uc2lkZXJlZCBzbyBmYXIgdG8KKwkJCQkgKiBhdm9pZCBwcm9jZXNzaW5nIHNhbWUgZWxl bWVudCBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUKKwkJCQkgKiBsYWJlbHMgbXVsdGlwbGUgdGlt ZXMuIEFsc28gYXZvaWRzIGNyZWF0aW5nIGR1cGxpY2F0ZQorCQkJCSAqIEdyYXBoUGF0aEVsZW1l bnRzLgorCQkJCSAqLworCQkJCWVsZW1fb2lkc19zZWVuID0gbGFwcGVuZF9vaWQoZWxlbV9vaWRz X3NlZW4sIGxhYmVsX2VsZW0tPnBnZWxlbGlkKTsKKwkJCX0KKwkJCWVsc2UgaWYgKGxpc3RfbWVt YmVyX29pZChlbGVtX2dwZV9vaWRzLCBlbGVtX29pZCkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBU aGUgZ3JhcGggZWxlbWVudCBpcyBrbm93biB0byBxdWFsaWZ5IHRoZSBnaXZlbiBlbGVtZW50CisJ CQkJICogcGF0dGVybi4gRmxhZyB0aGF0IHRoZSBjdXJyZW50IGxhYmVsIGhhcyBhdCBsZWFzdCBv bmUKKwkJCQkgKiBlbGVtZW50LCB0aGF0IHNhdGlzZmllcyB0aGUgZ2l2ZW4gZWxlbWVudCBwYXR0 ZXJuLAorCQkJCSAqIGFzc29jaWF0ZWQgd2l0aCBpdC4KKwkJCQkgKi8KKwkJCQlmb3VuZCA9IHRy dWU7CisJCQl9CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQkvKgorCQkJICogV2UgZGlk IG5vdCBmaW5kIGFueSBlbGVtZW50LCB0aGF0IGZpdHMgZ2l2ZW4gZWxlbWVudCBwYXR0ZXJuCisJ CQkgKiBraW5kLCBhc3NvY2lhdGVkIHdpdGggdGhpcyBsYWJlbC4gVGhlIGxhYmVsIG9yIGl0cyBw cm9wZXJ0aWVzCisJCQkgKiBjYW4gbm90IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gZWxl bWVudCBwYXR0ZXJuLiBUaHJvdyBhbgorCQkJICogZXJyb3IgaWYgdGhlIGxhYmVsIHdhcyBleHBs aWNpdGx5IHNwZWNpZmllZCBpbiB0aGUgZWxlbWVudAorCQkJICogcGF0dGVybi4gT3RoZXJ3aXNl IGp1c3QgUmVtb3ZlIGl0IGZyb20gdGhlIGxpc3QuCisJCQkgKi8KKwkJCWlmICghZ2VwLT5sYWJl bGV4cHIpCisJCQkJZm9yZWFjaF9kZWxldGVfY3VycmVudChsYWJlbF9vaWRzLCBsYyk7CisJCQll bHNlCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X09CSkVDVCksCisJCQkJCQkgZXJybXNnKCJjYW4gbm90IGZpbmQgbGFiZWwgXCIlc1wiIGluIHBy b3BlcnR5IGdyYXBoIFwiJXNcIiBmb3IgZWxlbWVudCB0eXBlIFwiJXNcIiIsCisJCQkJCQkJCWdl dF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbG9pZCksCisJCQkJCQkJCWdldF9yZWxfbmFtZShw cm9wZ3JhcGhpZCksCisJCQkJCQkJCWdldF9ncmFwaF9lbGVtX2tpbmRfbmFtZShnZXAtPmtpbmQp KSkpOworCQl9CisKKwkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwl9CisJdGFibGVfY2xvc2Uo cmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyogVXBkYXRlIHRoZSBmaWx0ZXJlZCBsYWJlbCBs aXN0IGluIGVhY2ggZ3JhcGhfcGF0aF9lbGVtZW50LiAqLworCWZvcmVhY2gobGMsIGVsZW1fZ3Bl cykKKwl7CisJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IGxmaXJzdChsYyk7CisK KwkJZ3BlLT5sYWJlbG9pZHMgPSBsYWJlbF9vaWRzOworCX0KKworCXJldHVybiBlbGVtX2dwZXM7 Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICoKK2dldF9ncmFwaF9lbGVtX2tpbmRfbmFtZShHcmFw aEVsZW1lbnRQYXR0ZXJuS2luZCBnZXBraW5kKQoreworCWlmIChnZXBraW5kID09IFZFUlRFWF9Q QVRURVJOKQorCQlyZXR1cm4gInZlcnRleCI7CisJZWxzZSBpZiAoSVNfRURHRV9QQVRURVJOKGdl cGtpbmQpKQorCQlyZXR1cm4gImVkZ2UiOworCWVsc2UgaWYgKGdlcGtpbmQgPT0gUEFSRU5fRVhQ UikKKwkJcmV0dXJuICJuZXN0ZWQgcGF0aCBwYXR0ZXJuIjsKKworCXJldHVybiAidW5rbm93biI7 Cit9CisKKy8qCisgKiBNdXRhdGluZyBwcm9wZXJ0eSByZWZlcmVuY2VzIGludG8gdGFibGUgdmFy aWFibGVzCisgKi8KKworc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0Cit7CisJ T2lkCQkJcHJvcGdyYXBoaWQ7CisJY29uc3QgTGlzdCAqbWFwcGluZ3M7Cit9OworCitzdGF0aWMg Tm9kZSAqCityZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3Qg cmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0g TlVMTCkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKElzQShub2RlLCBWYXIpKQorCXsKKwkJVmFyCQkg ICAqdmFyID0gKFZhciAqKSBub2RlOworCQlWYXIJCSAgICpuZXd2YXIgPSBjb3B5T2JqZWN0KHZh cik7CisKKwkJLyoKKwkJICogSWYgaXQncyBhbHJlYWR5IGEgVmFyLCB0aGVuIGl0IHdhcyBhIGxh dGVyYWwgcmVmZXJlbmNlLiAgU2luY2Ugd2UKKwkJICogYXJlIGluIGEgc3VicXVlcnkgYWZ0ZXIg dGhlIHJld3JpdGUsIHdlIGhhdmUgdG8gaW5jcmVhc2UgdGhlIGxldmVsCisJCSAqIGJ5IG9uZS4K KwkJICovCisJCW5ld3Zhci0+dmFybGV2ZWxzdXArKzsKKworCQlyZXR1cm4gKE5vZGUgKikgbmV3 dmFyOworCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgR3JhcGhQcm9wZXJ0eVJlZikpCisJeworCQlH cmFwaFByb3BlcnR5UmVmICpncHIgPSAoR3JhcGhQcm9wZXJ0eVJlZiAqKSBub2RlOworCQlOb2Rl CSAgICpuID0gTlVMTDsKKwkJTGlzdENlbGwgICAqbGM7CisJCXN0cnVjdCBncmFwaF9wYXRoX2Vs ZW1lbnQgKmZvdW5kX21hcHBpbmcgPSBOVUxMOworCQlMaXN0CSAgICp1bnJlbGF0ZWRfbGFiZWxz ID0gTklMOworCisJCWZvcmVhY2gobGMsIGNvbnRleHQtPm1hcHBpbmdzKQorCQl7CisJCQlzdHJ1 Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICptID0gbGZpcnN0KGxjKTsKKworCQkJaWYgKG0tPnBhcmVu dF9nZXAtPnZhcmlhYmxlICYmIHN0cmNtcChncHItPmVsdmFybmFtZSwgbS0+cGFyZW50X2dlcC0+ dmFyaWFibGUpID09IDApCisJCQl7CisJCQkJZm91bmRfbWFwcGluZyA9IG07CisJCQkJYnJlYWs7 CisJCQl9CisJCX0KKwkJaWYgKCFmb3VuZF9tYXBwaW5nKQorCQkJZWxvZyhFUlJPUiwgInVuZGVm aW5lZCBlbGVtZW50IHZhcmlhYmxlIFwiJXNcIiIsIGdwci0+ZWx2YXJuYW1lKTsKKworCQkvKgor CQkgKiBGaW5kIHByb3BlcnR5IGRlZmluaXRpb24gZm9yIGdpdmVuIGVsZW1lbnQgdGhyb3VnaCBh bnkgb2YgdGhlCisJCSAqIGFzc29jaWF0ZWQgbGFiZWxzLgorCQkgKi8KKwkJZm9yZWFjaChsYywg Zm91bmRfbWFwcGluZy0+bGFiZWxvaWRzKQorCQl7CisJCQlPaWQJCQlsYWJlbG9pZCA9IGxmaXJz dF9vaWQobGMpOworCQkJT2lkCQkJZWxlbV9sYWJlbGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BH UkFQSEVMRU1FTlRMQUJFTEVMRU1FTlRMQUJFTCwKKwkJCQkJCQkJCQkJCQkgICBBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwKKwkJCQkJCQkJCQkJCQkgICBPYmplY3RJZEdldERh dHVtKGZvdW5kX21hcHBpbmctPmVsZW1vaWQpLAorCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0 RGF0dW0obGFiZWxvaWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQoZWxlbV9sYWJlbGlkKSkKKwkJ CXsKKwkJCQlIZWFwVHVwbGUJdHVwID0gU2VhcmNoU3lzQ2FjaGUyKFBST1BHUkFQSExBQkVMUFJP UCwgT2JqZWN0SWRHZXREYXR1bShlbGVtX2xhYmVsaWQpLAorCQkJCQkJCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKGdwci0+cHJvcGlkKSk7CisKKwkJCQlpZiAoIXR1cCkKKwkJCQl7CisJCQkJCS8q CisJCQkJCSAqIFRoZSBsYWJlbCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGVsZW1lbnQg YnV0IGl0CisJCQkJCSAqIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVpcmVkIHByb3Bl cnR5LiBDaGVjaworCQkJCQkgKiBuZXh0IGxhYmVsLgorCQkJCQkgKi8KKwkJCQkJY29udGludWU7 CisJCQkJfQorCisJCQkJbiA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKFN5c0Nh Y2hlR2V0QXR0ck5vdE51bGwoUFJPUEdSQVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkJCQkJCQkJ CXR1cCwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwZXhwcikpKTsKKwkJCQlD aGFuZ2VWYXJOb2RlcyhuLCAxLCBmb3VuZF9tYXBwaW5nLT5ydGluZGV4LCAwKTsKKworCQkJCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICog TGFiZWwgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgZWxlbWVudCBidXQgaXQgbWF5IGJlCisJ CQkJICogYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9wZXJ0eSB0aHJvdWdoIHNvbWUgb3RoZXIgZWxl bWVudC4KKwkJCQkgKiBTYXZlIGl0IGZvciBsYXRlciB1c2UuCisJCQkJICovCisJCQkJdW5yZWxh dGVkX2xhYmVscyA9IGxhcHBlbmRfb2lkKHVucmVsYXRlZF9sYWJlbHMsIGxhYmVsb2lkKTsKKwkJ CX0KKwkJfQorCisJCS8qIFNlZSBpZiB3ZSBjYW4gcmVzb2x2ZSB0aGUgcHJvcGVydHkgaW4gc29t ZSBvdGhlciB3YXkuICovCisJCWlmICghbikKKwkJeworCQkJTGlzdENlbGwgICAqbGN1OworCQkJ Ym9vbAkJcHJvcF9hc3NvY2lhdGVkID0gZmFsc2U7CisKKwkJCWZvcmVhY2gobGN1LCB1bnJlbGF0 ZWRfbGFiZWxzKQorCQkJeworCQkJCWlmIChpc19wcm9wZXJ0eV9hc3NvY2lhdGVkX3dpdGhfbGFi ZWwobGZpcnN0X29pZChsY3UpLCBncHItPnByb3BpZCkpCisJCQkJeworCQkJCQlwcm9wX2Fzc29j aWF0ZWQgPSB0cnVlOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCWlmIChwcm9wX2Fz c29jaWF0ZWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgcHJvcGVydHkgaXMgYXNzb2NpYXRl ZCB3aXRoIGF0IGxlYXN0IG9uZSBvZiB0aGUgbGFiZWxzCisJCQkJICogdGhhdCBzYXRpc2Z5IGdp dmVuIGVsZW1lbnQgcGF0dGVybi4gSWYgaXQncyBhc3NvY2lhdGVkIHdpdGgKKwkJCQkgKiB0aGUg Z2l2ZW4gZWxlbWVudCB0aHJvdWdoIHNvbWUgYW55IG9mIHRoZSBsYWJlbHMsIHVzZQorCQkJCSAq IGNvcnJlc3BvbmRpZyB2YWx1ZSBleHByZXNzaW9uLiBPdGhlcndpc2UgTlVMTC4gUmVmLiBTUUwv UEdRCisJCQkJICogc3RhbmRhcmQgc2VjdGlvbiA2LjUgUHJvcGVydHkgUmVmZXJlY2UsIEdlbmVy YWwgUnVsZSAyLmIuCisJCQkJICoKKwkJCQkgKiBOT1RFOiBBbiBlbGVtZW50IHBhdGggcGF0dGVy biBtYXkgcmVzb2x2ZSB0byBtdWx0aXBsZQorCQkJCSAqIGVsZW1lbnRzLiAgVGhlIGFib3ZlIHNl Y3Rpb24gZG9lcyBub3Qgc2VlbSB0byBkZXNjcmliZSB0aGlzCisJCQkJICogY2FzZS4gQnV0IGl0 IGRlcGVuZHMgdXBvbiBob3cgdGhlIHRlcm0gRVIgaXMgaW50ZXJwcmV0ZWQuCisJCQkJICogRm9y IGEgZ2l2ZW4gcGF0aCB0aGVyZSdzIG9ubHkgb25lIGVsZW1lbnQgYm91bmQgdG8gYSBnaXZlbgor CQkJCSAqIEVSLiBIZW5jZSB0aGUgYWJvdmUgc3RhdGVkIHJ1bGUgY2FuIGJlIGFwcGxpZWQgaGVy ZS4gIFRoZQorCQkJCSAqIHNlY3Rpb24gYWxzbyBzdGF0ZXMgdGhlIGNhc2Ugd2hlbiBubyBlbGVt ZW50IGJpbmRzIHRvIEVSLgorCQkJCSAqIFdlIGNvbnNpZGVyIHN1Y2ggcGF0aHMgYXMgYnJva2Vu IGFuZCBkbyBub3QgY29udHJpYnV0ZSBhbnkKKwkJCQkgKiByb3dzIHRvIHRoZSBHUkFQSF9UQUJM RS4KKwkJCQkgKi8KKwkJCQluID0gZ2V0X2VsZW1lbnRfcHJvcGVydHlfZXhwcihmb3VuZF9tYXBw aW5nLT5lbGVtb2lkLCBncHItPnByb3BpZCwKKwkJCQkJCQkJCQkJICBmb3VuZF9tYXBwaW5nLT5y dGluZGV4KTsKKworCQkJCWlmICghbikKKwkJCQl7CisJCQkJCS8qIFhYWDogRG9lcyBjb2xsYXRp b24gb2YgTlVMTCB2YWx1ZSBtYXR0ZXI/ICovCisJCQkJCW4gPSAoTm9kZSAqKSBtYWtlTnVsbENv bnN0KGdwci0+dHlwZUlkLCAtMSwgSW52YWxpZE9pZCk7CisJCQkJfQorCQkJfQorCisJCX0KKwor CQlpZiAoIW4pCisJCQllbG9nKEVSUk9SLCAicHJvcGVydHkgXCIlc1wiIG9mIGVsZW1lbnQgdmFy aWFibGUgXCIlc1wiIG5vdCBmb3VuZCIsCisJCQkJIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFt ZShncHItPnByb3BpZCksIGZvdW5kX21hcHBpbmctPnBhcmVudF9nZXAtPnZhcmlhYmxlKTsKKwor CQlyZXR1cm4gbjsKKwl9CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwg cmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3IsIGNvbnRleHQpOworfQorCitzdGF0aWMgTm9k ZSAqCityZXBsYWNlX3Byb3BlcnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBj b25zdCBMaXN0ICptYXBwaW5ncykKK3sKKwlzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2Nv bnRleHQgY29udGV4dDsKKworCWNvbnRleHQubWFwcGluZ3MgPSBtYXBwaW5nczsKKwljb250ZXh0 LnByb3BncmFwaGlkID0gcHJvcGdyYXBoaWQ7CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211 dGF0b3Iobm9kZSwgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3IsICZjb250ZXh0KTsKK30K KworLyoKKyAqIEJ1aWxkIGpvaW4gcXVhbGlmaWNhdGlvbiBleHByZXNzaW9ucyBiZXR3ZWVuIGVk Z2UgYW5kIHZlcnRleCB0YWJsZXMuCisgKi8KK3N0YXRpYyBMaXN0ICoKK2J1aWxkX2VkZ2VfdmVy dGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRp LCBBdHRyTnVtYmVyIGNhdGFsb2dfa2V5X2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX3JlZl9h dHRudW0pCit7CisJTGlzdAkgICAqcXVhbHMgPSBOSUw7CisJRm9ybV9wZ19wcm9wZ3JhcGhfZWxl bWVudCBwZ2Vmb3JtOworCURhdHVtCQlkYXR1bTsKKwlEYXR1bQkgICAqZDEsCisJCQkgICAqZDI7 CisJaW50CQkJbjEsCisJCQkJbjI7CisKKwlwZ2Vmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnQpIEdFVFNUUlVDVChlZGdldHVwKTsKKworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90 TnVsbChQUk9QR1JBUEhFTE9JRCwgZWRnZXR1cCwgY2F0YWxvZ19rZXlfYXR0bnVtKTsKKwlkZWNv bnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChkYXR1bSksIElOVDJPSUQs ICZkMSwgTlVMTCwgJm4xKTsKKworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChQUk9Q R1JBUEhFTE9JRCwgZWRnZXR1cCwgY2F0YWxvZ19yZWZfYXR0bnVtKTsKKwlkZWNvbnN0cnVjdF9h cnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChkYXR1bSksIElOVDJPSUQsICZkMiwgTlVM TCwgJm4yKTsKKworCWlmIChuMSAhPSBuMikKKwkJZWxvZyhFUlJPUiwgImFycmF5IHNpemUga2V5 ICglZCkgdnMgcmVmICglZCkgbWlzbWF0Y2ggZm9yIGVsZW1lbnQgSUQgJXUiLCBjYXRhbG9nX2tl eV9hdHRudW0sIGNhdGFsb2dfcmVmX2F0dG51bSwgcGdlZm9ybS0+b2lkKTsKKworCWZvciAoaW50 IGkgPSAwOyBpIDwgbjE7IGkrKykKKwl7CisJCUF0dHJOdW1iZXIJa2V5YXR0biA9IERhdHVtR2V0 SW50MTYoZDFbaV0pOworCQlBdHRyTnVtYmVyCXJlZmF0dG4gPSBEYXR1bUdldEludDE2KGQyW2ld KTsKKwkJT2lkCQkJYXR0dHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBlbnRyeTsKKwkJT3BF eHByCSAgICpvcDsKKworCQkvKgorCQkgKiBUT0RPOiBBc3N1bWVzIHR5cGVzIHRoZSBzYW1lIG9u IGJvdGggc2lkZXM7IG5vIGNvbGxhdGlvbnMgeWV0LiBTb21lCisJCSAqIG9mIHRoaXMgY291bGQg cHJvYmFibHkgYmUgc2hhcmVkIHdpdGggZm9yZWlnbiBrZXkgdHJpZ2dlcnMuCisJCSAqLworCQlh dHR0eXBpZCA9IGdldF9hdHR0eXBlKHBnZWZvcm0tPnBnZXJlbGlkLCBrZXlhdHRuKTsKKwkJdHlw ZW50cnkgPSBsb29rdXBfdHlwZV9jYWNoZShhdHR0eXBpZCwgVFlQRUNBQ0hFX0VRX09QUik7CisK KwkJb3AgPSBtYWtlTm9kZShPcEV4cHIpOworCQlvcC0+bG9jYXRpb24gPSAtMTsKKwkJb3AtPm9w bm8gPSB0eXBlbnRyeS0+ZXFfb3ByOworCQlvcC0+b3ByZXN1bHR0eXBlID0gQk9PTE9JRDsKKwkJ b3AtPmFyZ3MgPSBsaXN0X21ha2UyKG1ha2VWYXIoZWRnZXJ0aSwga2V5YXR0biwgYXR0dHlwaWQs IC0xLCAwLCAwKSwKKwkJCQkJCQkgIG1ha2VWYXIocmVmcnRpLCByZWZhdHRuLCBhdHR0eXBpZCwg LTEsIDAsIDApKTsKKwkJcXVhbHMgPSBsYXBwZW5kKHF1YWxzLCBvcCk7CisJfQorCisJcmV0dXJu IHF1YWxzOworfQorCisvKgorICogQ2hlY2sgaWYgdGhlIGdpdmVuIHByb3BlcnR5IGlzIGFzc29j aWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWwuCisgKgorICogQSBsYWJlbCBwcm9qZWN0cyB0aGUg c2FtZSBzZXQgb2YgcHJvcGVydGllcyB0aHJvdWdoIGV2ZXJ5IGVsZW1lbnQgaXQgaXMKKyAqIGFz c29jaWF0ZWQgd2l0aC4gRmluZCBhbnkgb2YgdGhlIGVsZW1lbnRzIGFuZCByZXR1cm4gdHJ1ZSBp ZiB0aGF0IGVsZW1lbnQgaXMKKyAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydHku IEZhbHNlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGJvb2wKK2lzX3Byb3BlcnR5X2Fzc29jaWF0 ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBwcm9wb2lkKQoreworCVJlbGF0aW9uCXJl bDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleVsxXTsKKwlIZWFwVHVwbGUJ dHVwOworCWJvb2wJCWFzc29jaWF0ZWQgPSBmYWxzZTsKKworCXJlbCA9IHRhYmxlX29wZW4oUHJv cGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgUm93U2hhcmVMb2NrKTsKKwlTY2FuS2V5SW5p dCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfcGdlbGxhYmVs aWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lERVEsIE9iamVjdElkR2V0 RGF0dW0obGFiZWxvaWQpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdy YXBoRWxlbWVudExhYmVsTGFiZWxJbmRleElkLAorCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMSwga2V5 KTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbikp KQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbGVfbGFiZWwgPSAoRm9y bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCkgR0VUU1RSVUNUKHR1cCk7CisKKwkJYXNzb2Np YXRlZCA9IFNlYXJjaFN5c0NhY2hlRXhpc3RzMihQUk9QR1JBUEhMQUJFTFBST1AsCisJCQkJCQkJ CQkJICAgT2JqZWN0SWRHZXREYXR1bShlbGVfbGFiZWwtPm9pZCksIE9iamVjdElkR2V0RGF0dW0o cHJvcG9pZCkpOworCX0KKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJl bCwgUm93U2hhcmVMb2NrKTsKKworCXJldHVybiBhc3NvY2lhdGVkOworfQorCisvKgorICogSWYg Z2l2ZW4gZWxlbWVudCBoYXMgdGhlIGdpdmVuIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCBpdCwg dGhyb3VnaCBhbnkgb2YKKyAqIHRoZSBhc3NvY2lhdGVkIGxhYmVscywgcmV0dXJuIHZhbHVlIGV4 cHJlc3Npb24gb2YgdGhlIHByb3BlcnR5LiBPdGhlcndpc2UKKyAqIE5VTEwuCisgKi8KK3N0YXRp YyBOb2RlICoKK2dldF9lbGVtZW50X3Byb3BlcnR5X2V4cHIoT2lkIGVsZW1vaWQsIE9pZCBwcm9w b2lkLCBpbnQgcnRpbmRleCkKK3sKKwlSZWxhdGlvbglyZWw7CisJU3lzU2NhbkRlc2Mgc2NhbjsK KwlTY2FuS2V5RGF0YSBrZXlbMV07CisJSGVhcFR1cGxlCWxhYmVsdHVwOworCU5vZGUJICAgKm4g PSBOVUxMOworCisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlv bklkLCBSb3dTaGFyZUxvY2spOworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsCisJCQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7CisJc2NhbiA9IHN5 c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbEVsZW1lbnRMYWJlbElu ZGV4SWQsCisJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCBrZXkpOworCisJd2hpbGUgKEhlYXBUdXBs ZUlzVmFsaWQobGFiZWx0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwgZWxlX2xhYmVsID0gKEZvcm1fcGdfcHJvcGdyYXBo X2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVChsYWJlbHR1cCk7CisKKwkJSGVhcFR1cGxlCXByb3B0 dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFJPUEdSQVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkgIE9i amVjdElkR2V0RGF0dW0oZWxlX2xhYmVsLT5vaWQpLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQp KTsKKworCQlpZiAoIXByb3B0dXApCisJCQljb250aW51ZTsKKwkJbiA9IHN0cmluZ1RvTm9kZShU ZXh0RGF0dW1HZXRDU3RyaW5nKFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoUFJPUEdSQVBITEFCRUxQ Uk9QLAorCQkJCQkJCQkJCQkJCQkJCQlwcm9wdHVwLCBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9w cm9wZXJ0eV9wbHBleHByKSkpOworCQlDaGFuZ2VWYXJOb2RlcyhuLCAxLCBydGluZGV4LCAwKTsK KworCQlSZWxlYXNlU3lzQ2FjaGUocHJvcHR1cCk7CisJCWJyZWFrOworCX0KKwlzeXN0YWJsZV9l bmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgUm93U2hhcmVMb2NrKTsKKworCXJldHVy biBuOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5j IGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCmluZGV4IGFiMmUyY2Q2NDc2 Li5hMmZkNjQ4MzAzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFu ZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtMzYs NiArMzYsNyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVEZWZpbmUuaCIK KyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgiCiAjaW5jbHVkZSAicmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlU2VhcmNoQ3ljbGUuaCIKQEAgLTIwNDEsNiArMjA0Miwx NiBAQCBmaXJlUklScnVsZXMoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqYWN0aXZlUklScykKIAog CQlydGUgPSBydF9mZXRjaChydF9pbmRleCwgcGFyc2V0cmVlLT5ydGFibGUpOwogCisJCS8qCisJ CSAqIENvbnZlcnQgR1JBUEhfVEFCTEUgY2xhdXNlIGludG8gYSBzdWJxdWVyeSB1c2luZyByZWxh dGlvbmFsCisJCSAqIG9wZXJhdG9ycy4gIChUaGlzIHdpbGwgY2hhbmdlIHRoZSBydGVraW5kIHRv IHN1YnF1ZXJ5LCBzbyBpdCBtdXN0CisJCSAqIGJlIGRvbmUgYmVmb3JlIHRoZSBzdWJxdWVyeSBo YW5kbGluZyBiZWxvdy4pCisJCSAqLworCQlpZiAocnRlLT5ydGVraW5kID09IFJURV9HUkFQSF9U QUJMRSkKKwkJeworCQkJcGFyc2V0cmVlID0gcmV3cml0ZUdyYXBoVGFibGUocGFyc2V0cmVlLCBy dF9pbmRleCk7CisJCX0KKwogCQkvKgogCQkgKiBBIHN1YnF1ZXJ5IFJURSBjYW4ndCBoYXZlIGFz c29jaWF0ZWQgcnVsZXMsIHNvIHRoZXJlJ3Mgbm90aGluZyB0bwogCQkgKiBkbyB0byB0aGlzIGxl dmVsIG9mIHRoZSBxdWVyeSwgYnV0IHdlIG11c3QgcmVjdXJzZSBpbnRvIHRoZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwppbmRleCBmMjhiZjM3MTA1OS4uYjllZjgxMTdhMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00NCw2 ICs0NCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvcG9ydGFsY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3ByZXBhcmUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wcm9jbGFuZy5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Byb3BncmFwaGNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2VjbGFiZWwuaCIKQEAgLTE0OCw2ICsxNDksNyBAQCBDbGFzc2lmeVV0aWxpdHlD b21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9BbHRlck9wZXJhdG9y U3RtdDoKIAkJY2FzZSBUX0FsdGVyT3duZXJTdG10OgogCQljYXNlIFRfQWx0ZXJQb2xpY3lTdG10 OgorCQljYXNlIFRfQWx0ZXJQcm9wR3JhcGhTdG10OgogCQljYXNlIFRfQWx0ZXJQdWJsaWNhdGlv blN0bXQ6CiAJCWNhc2UgVF9BbHRlclJvbGVTZXRTdG10OgogCQljYXNlIFRfQWx0ZXJSb2xlU3Rt dDoKQEAgLTE3OCw2ICsxODAsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShO b2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVPcEZhbWlseVN0bXQ6CiAJCWNhc2UgVF9D cmVhdGVQTGFuZ1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVQb2xpY3lTdG10OgorCQljYXNlIFRfQ3Jl YXRlUHJvcEdyYXBoU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJY2Fz ZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgpAQCAtMTczOSw2 ICsxNzQyLDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ Y29tbWFuZENvbGxlY3RlZCA9IHRydWU7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVQ cm9wR3JhcGhTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVQcm9wR3JhcGgocHN0YXRlLCAoQ3Jl YXRlUHJvcEdyYXBoU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIFRf QWx0ZXJQcm9wR3JhcGhTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRlclByb3BHcmFwaChwc3RhdGUs IChBbHRlclByb3BHcmFwaFN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJY2Fz ZSBUX0NyZWF0ZVRyYW5zZm9ybVN0bXQ6CiAJCQkJYWRkcmVzcyA9IENyZWF0ZVRyYW5zZm9ybSgo Q3JlYXRlVHJhbnNmb3JtU3RtdCAqKSBwYXJzZXRyZWUpOwogCQkJCWJyZWFrOwpAQCAtMjAwNyw2 ICsyMDE4LDcgQEAgRXhlY0Ryb3BTdG10KERyb3BTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwp CiAJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JK RUNUX0ZPUkVJR05fVEFCTEU6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCVJlbW92ZVJl bGF0aW9ucyhzdG10KTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpAQCAtMjI4Myw2ICsyMjk1LDkg QEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX1BST0NFRFVSRToKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9QUk9DRURVUkU7CiAJCQli cmVhazsKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1BS T1BFUlRZX0dSQVBIOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX1JPTEU6CiAJCQl0YWcgPSBD TURUQUdfQUxURVJfUk9MRTsKIAkJCWJyZWFrOwpAQCAtMjU1OSw2ICsyNTc0LDkgQEAgQ3JlYXRl Q29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfSU5ERVg6CiAJCQkJ CXRhZyA9IENNRFRBR19EUk9QX0lOREVYOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9Q Uk9QR1JBUEg6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1BST1BFUlRZX0dSQVBIOworCQkJCQli cmVhazsKIAkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9UWVBF OwogCQkJCQlicmVhazsKQEAgLTI5NDAsNiArMjk1OCwxNCBAQCBDcmVhdGVDb21tYW5kVGFnKE5v ZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVQcm9wR3Jh cGhTdG10OgorCQkJdGFnID0gQ01EVEFHX0NSRUFURV9QUk9QRVJUWV9HUkFQSDsKKwkJCWJyZWFr OworCisJCWNhc2UgVF9BbHRlclByb3BHcmFwaFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQUxURVJf UFJPUEVSVFlfR1JBUEg7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ3JlYXRlVHJhbnNmb3JtU3Rt dDoKIAkJCXRhZyA9IENNRFRBR19DUkVBVEVfVFJBTlNGT1JNOwogCQkJYnJlYWs7CkBAIC0zNjM3 LDYgKzM2NjMsMTQgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWxl diA9IExPR1NUTVRfRERMOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVByb3BHcmFwaFN0 bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCisJCWNhc2UgVF9BbHRlclBy b3BHcmFwaFN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWNhc2Ug VF9DcmVhdGVUcmFuc2Zvcm1TdG10OgogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAyMTk0YWIzZGZhNS4uMTY0YzBiNmU0M2Ig MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM0LDYgKzM0LDExIEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcGFydGl0aW9u ZWRfdGFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9sYWJlbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVs LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgpAQCAtMzU5LDYgKzM2NCw5IEBAIHN0YXRpYyBj aGFyICpwZ19nZXRfaW5kZXhkZWZfd29ya2VyKE9pZCBpbmRleHJlbGlkLCBpbnQgY29sbm8sCiAJ CQkJCQkJCQlib29sIGF0dHJzT25seSwgYm9vbCBrZXlzT25seSwKIAkJCQkJCQkJCWJvb2wgc2hv d1RibFNwYywgYm9vbCBpbmhlcml0cywKIAkJCQkJCQkJCWludCBwcmV0dHlGbGFncywgYm9vbCBt aXNzaW5nX29rKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX2VsZW1lbnRzKFN0cmlu Z0luZm8gYnVmLCBPaWQgcGdyZWxpZCwgY2hhciBwZ2VraW5kKTsKK3N0YXRpYyB2b2lkIG1ha2Vf cHJvcGdyYXBoZGVmX2xhYmVscyhTdHJpbmdJbmZvIGJ1ZiwgT2lkIGVsaWQsIGNvbnN0IGNoYXIg KmVsYWxpYXMsIE9pZCBlbHJlbGlkKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX3By b3BlcnRpZXMoU3RyaW5nSW5mbyBidWYsIE9pZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKTsKIHN0 YXRpYyBjaGFyICpwZ19nZXRfc3RhdGlzdGljc29ial93b3JrZXIoT2lkIHN0YXRleHRpZCwgYm9v bCBjb2x1bW5zX29ubHksCiAJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgY2hh ciAqcGdfZ2V0X3BhcnRrZXlkZWZfd29ya2VyKE9pZCByZWxpZCwgaW50IHByZXR0eUZsYWdzLApA QCAtMTU5NCw2ICsxNjAyLDMzMSBAQCBwZ19nZXRfcXVlcnlkZWYoUXVlcnkgKnF1ZXJ5LCBib29s IHByZXR0eSkKIAlyZXR1cm4gYnVmLmRhdGE7CiB9CiAKKy8qCisgKiBwZ19nZXRfcHJvcGdyYXBo ZGVmIC0gZ2V0IHRoZSBkZWZpbml0aW9uIG9mIGEgcHJvcGVydHkgZ3JhcGgKKyAqLworRGF0dW0K K3BnX2dldF9wcm9wZ3JhcGhkZWYoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlwZ3JlbGlk ID0gUEdfR0VUQVJHX09JRCgwKTsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJSGVhcFR1cGxlCWNs YXNzdHVwOworCUZvcm1fcGdfY2xhc3MgY2xhc3Nmb3JtOworCWNoYXIJICAgKm5hbWU7CisJY2hh cgkgICAqbnNwOworCisJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CisKKwljbGFzc3R1cCA9IFNlYXJj aFN5c0NhY2hlMShSRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocGdyZWxpZCkpOworCWlmICghSGVh cFR1cGxlSXNWYWxpZChjbGFzc3R1cCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwljbGFzc2Zv cm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKGNsYXNzdHVwKTsKKwluYW1lID0gTmFtZVN0 cihjbGFzc2Zvcm0tPnJlbG5hbWUpOworCisJaWYgKGNsYXNzZm9ybS0+cmVsa2luZCAhPSBSRUxL SU5EX1BST1BHUkFQSCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJvcGVydHkg Z3JhcGgiLCBuYW1lKSkpOworCisJbnNwID0gZ2V0X25hbWVzcGFjZV9uYW1lKGNsYXNzZm9ybS0+ cmVsbmFtZXNwYWNlKTsKKworCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgIkNSRUFURSBQUk9QRVJU WSBHUkFQSCAlcyIsCisJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3AsIG5hbWUp KTsKKworCVJlbGVhc2VTeXNDYWNoZShjbGFzc3R1cCk7CisKKwltYWtlX3Byb3BncmFwaGRlZl9l bGVtZW50cygmYnVmLCBwZ3JlbGlkLCBQR0VLSU5EX1ZFUlRFWCk7CisJbWFrZV9wcm9wZ3JhcGhk ZWZfZWxlbWVudHMoJmJ1ZiwgcGdyZWxpZCwgUEdFS0lORF9FREdFKTsKKworCVBHX1JFVFVSTl9U RVhUX1Aoc3RyaW5nX3RvX3RleHQoYnVmLmRhdGEpKTsKK30KKworLyoKKyAqIEdlbmVyYXRlcyBh IFZFUlRFWCBUQUJMRVMgKC4uLikgb3IgRURHRSBUQUJMRVMgKC4uLikgY2xhdXNlLiAgUGFzcyBp biB0aGUKKyAqIHByb3BlcnR5IGdyYXBoIHJlbGF0aW9uIE9JRCBhbmQgdGhlIGVsZW1lbnQga2lu ZCAodmVydGV4IG9yIGVkZ2UpLiAgUmVzdWx0CisgKiBpcyBhcHBlbmRlZCB0byBidWYuCisgKi8K K3N0YXRpYyB2b2lkCittYWtlX3Byb3BncmFwaGRlZl9lbGVtZW50cyhTdHJpbmdJbmZvIGJ1Ziwg T2lkIHBncmVsaWQsIGNoYXIgcGdla2luZCkKK3sKKwlSZWxhdGlvbglwZ2VyZWw7CisJU2Nhbktl eURhdGEgc2NhbmtleVsxXTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCWJvb2wJCWZpcnN0OworCUhl YXBUdXBsZQl0dXA7CisKKwlwZ2VyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRSZWxh dGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUluaXQoJnNjYW5rZXlbMF0sCisJ CQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VwZ2lkLAorCQkJCUJURXF1YWxTdHJhdGVn eU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKHBncmVsaWQpKTsKKworCXNj YW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdlcmVsLCBQcm9wZ3JhcGhFbGVtZW50QWxpYXNJbmRl eElkLCB0cnVlLCBOVUxMLCAxLCBzY2Fua2V5KTsKKworCWZpcnN0ID0gdHJ1ZTsKKwl3aGlsZSAo KHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhf ZWxlbWVudCBwZ2Vmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0 dXApOworCQljaGFyCSAgICpyZWxuYW1lOworCQlEYXR1bQkJZGF0dW07CisJCWJvb2wJCWlzbnVs bDsKKworCQlpZiAocGdlZm9ybS0+cGdla2luZCAhPSBwZ2VraW5kKQorCQkJY29udGludWU7CisK KwkJaWYgKGZpcnN0KQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIlxuICAgICVzIFRB QkxFUyAoXG4iLCBwZ2VraW5kID09IFBHRUtJTkRfVkVSVEVYID8gIlZFUlRFWCIgOiAiRURHRSIp OworCQkJZmlyc3QgPSBmYWxzZTsKKwkJfQorCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1 ZiwgIixcbiIpOworCisJCXJlbG5hbWUgPSBnZXRfcmVsX25hbWUocGdlZm9ybS0+cGdlcmVsaWQp OworCQlpZiAocmVsbmFtZSAmJiBzdHJjbXAocmVsbmFtZSwgTmFtZVN0cihwZ2Vmb3JtLT5wZ2Vh bGlhcykpID09IDApCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiAgICAgICAgJXMiLAorCQkJ CQkJCSBnZW5lcmF0ZV9yZWxhdGlvbl9uYW1lKHBnZWZvcm0tPnBnZXJlbGlkLCBOSUwpKTsKKwkJ ZWxzZQorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgICAgICAgICVzIEFTICVzIiwKKwkJCQkJ CQkgZ2VuZXJhdGVfcmVsYXRpb25fbmFtZShwZ2Vmb3JtLT5wZ2VyZWxpZCwgTklMKSwKKwkJCQkJ CQkgTmFtZVN0cihwZ2Vmb3JtLT5wZ2VhbGlhcykpOworCisJCWRhdHVtID0gaGVhcF9nZXRhdHRy KHR1cCwgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VrZXksIFJlbGF0aW9uR2V0RGVzY3Io cGdlcmVsKSwgJmlzbnVsbCk7CisJCWlmICghaXNudWxsKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIpOworCQkJZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJh eShkYXR1bSwgcGdlZm9ybS0+cGdlcmVsaWQsIGZhbHNlLCBidWYpOworCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsICIpIik7CisJCX0KKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgIm51bGwg cGdla2V5IGZvciBlbGVtZW50ICV1IiwgcGdlZm9ybS0+b2lkKTsKKworCQlpZiAocGdla2luZCA9 PSBQR0VLSU5EX0VER0UpCisJCXsKKwkJCURhdHVtCQlzcmNrZXk7CisJCQlEYXR1bQkJc3JjcmVm OworCQkJRGF0dW0JCWRlc3RrZXk7CisJCQlEYXR1bQkJZGVzdHJlZjsKKwkJCUhlYXBUdXBsZQl0 dXAyOworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtMjsKKworCQkJZGF0dW0g PSBoZWFwX2dldGF0dHIodHVwLCBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSwg UmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCXNyY2tleSA9IGlzbnVsbCA/ IDAgOiBkYXR1bTsKKwkJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cCwgQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VzcmNyZWYsIFJlbGF0aW9uR2V0RGVzY3IocGdlcmVsKSwgJmlzbnVsbCk7 CisJCQlzcmNyZWYgPSBpc251bGwgPyAwIDogZGF0dW07CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0 cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSwgUmVsYXRpb25HZXRE ZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCWRlc3RrZXkgPSBpc251bGwgPyAwIDogZGF0dW07 CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRf cGdlZGVzdHJlZiwgUmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCWRlc3Ry ZWYgPSBpc251bGwgPyAwIDogZGF0dW07CisKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCAiIFNPVVJDRSIpOworCQkJdHVwMiA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwg T2JqZWN0SWRHZXREYXR1bShwZ2Vmb3JtLT5wZ2VzcmN2ZXJ0ZXhpZCkpOworCQkJaWYgKCF0dXAy KQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFw aCBlbGVtZW50ICV1IiwgcGdlZm9ybS0+cGdlc3JjdmVydGV4aWQpOworCQkJcGdlZm9ybTIgPSAo Rm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cDIpOworCQkJaWYgKHNyY2tl eSkKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIpOworCQkJ CWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkoc3Jja2V5LCBwZ2Vmb3JtLT5wZ2VyZWxpZCwg ZmFsc2UsIGJ1Zik7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIpIFJFRkVSRU5DRVMgJXMg KCIsIE5hbWVTdHIocGdlZm9ybTItPnBnZWFsaWFzKSk7CisJCQkJZGVjb21waWxlX2NvbHVtbl9p bmRleF9hcnJheShzcmNyZWYsIHBnZWZvcm0yLT5wZ2VyZWxpZCwgZmFsc2UsIGJ1Zik7CisJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQl9CisJCQllbHNlCisJCQkJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICIgJXMgIiwgTmFtZVN0cihwZ2Vmb3JtMi0+cGdlYWxpYXMpKTsK KwkJCVJlbGVhc2VTeXNDYWNoZSh0dXAyKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhi dWYsICIgREVTVElOQVRJT04iKTsKKwkJCXR1cDIgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBI RUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkKSk7CisJCQlp ZiAoIXR1cDIpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHByb3Bl cnR5IGdyYXBoIGVsZW1lbnQgJXUiLCBwZ2Vmb3JtLT5wZ2VkZXN0dmVydGV4aWQpOworCQkJcGdl Zm9ybTIgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cDIpOworCQkJ aWYgKGRlc3RrZXkpCisJCQl7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgS0VZ ICgiKTsKKwkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KGRlc3RrZXksIHBnZWZvcm0t PnBnZXJlbGlkLCBmYWxzZSwgYnVmKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIikgUkVG RVJFTkNFUyAlcyAoIiwgTmFtZVN0cihwZ2Vmb3JtMi0+cGdlYWxpYXMpKTsKKwkJCQlkZWNvbXBp bGVfY29sdW1uX2luZGV4X2FycmF5KGRlc3RyZWYsIHBnZWZvcm0yLT5wZ2VyZWxpZCwgZmFsc2Us IGJ1Zik7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQl9CisJCQll bHNlCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgJXMiLCBOYW1lU3RyKHBnZWZvcm0yLT5w Z2VhbGlhcykpOworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cDIpOworCQl9CisKKwkJbWFrZV9wcm9w Z3JhcGhkZWZfbGFiZWxzKGJ1ZiwgcGdlZm9ybS0+b2lkLCBOYW1lU3RyKHBnZWZvcm0tPnBnZWFs aWFzKSwgcGdlZm9ybS0+cGdlcmVsaWQpOworCX0KKwlpZiAoIWZpcnN0KQorCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIlxuICAgICkiKTsKKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFi bGVfY2xvc2UocGdlcmVsLCBBY2Nlc3NTaGFyZUxvY2spOworfQorCisvKgorICogR2VuZXJhdGVz IGxhYmVsIGFuZCBwcm9wZXJ0aWVzIGxpc3QuICBQYXNzIGluIHRoZSBlbGVtZW50IE9JRCwgdGhl IGVsZW1lbnQKKyAqIGFsaWFzLCBhbmQgdGhlIGdyYXBoIHJlbGF0aW9uIE9JRC4gIFJlc3VsdCBp cyBhcHBlbmQgdG8gYnVmLgorICovCitzdGF0aWMgdm9pZAorbWFrZV9wcm9wZ3JhcGhkZWZfbGFi ZWxzKFN0cmluZ0luZm8gYnVmLCBPaWQgZWxpZCwgY29uc3QgY2hhciAqZWxhbGlhcywgT2lkIGVs cmVsaWQpCit7CisJUmVsYXRpb24JcGdscmVsOworCVNjYW5LZXlEYXRhIHNjYW5rZXlbMV07CisJ U3lzU2NhbkRlc2Mgc2NhbjsKKwlpbnQJCQljb3VudDsKKwlIZWFwVHVwbGUJdHVwOworCisJcGds cmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NT aGFyZUxvY2spOworCisJU2NhbktleUluaXQoJnNjYW5rZXlbMF0sCisJCQkJQW51bV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShlbGlkKSk7CisKKwljb3VudCA9IDA7CisJ c2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ2xyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbEVs ZW1lbnRMYWJlbEluZGV4SWQsIHRydWUsIE5VTEwsIDEsIHNjYW5rZXkpOworCXdoaWxlICgodHVw ID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQljb3VudCsrOworCX0KKwlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOworCisJLyogWFhYIG5lZWQgdG8gcmUtaW5pdCBzY2FuIGtleSBmb3Ig c2Vjb25kIHNjYW4gKi8KKwlTY2FuS2V5SW5pdCgmc2NhbmtleVswXSwKKwkJCQlBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsX3BnZWxlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJl ciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKGVsaWQpKTsKKworCXNjYW4gPSBzeXN0 YWJsZV9iZWdpbnNjYW4ocGdscmVsLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxFbGVtZW50TGFiZWxJ bmRleElkLCB0cnVlLCBOVUxMLCAxLCBzY2Fua2V5KTsKKworCXdoaWxlICgodHVwID0gc3lzdGFi bGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs IHBnZWxmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0 dXApOworCQljb25zdCBjaGFyICpsYWJlbG5hbWU7CisKKwkJbGFiZWxuYW1lID0gZ2V0X3Byb3Bn cmFwaF9sYWJlbF9uYW1lKHBnZWxmb3JtLT5wZ2VsbGFiZWxpZCk7CisKKwkJaWYgKHN0cmNtcChs YWJlbG5hbWUsIGVsYWxpYXMpID09IDApCisJCXsKKwkJCS8qIElmIHRoZSBkZWZhdWx0IGxhYmVs IGlzIHRoZSBvbmx5IGxhYmVsLCBkb24ndCBwcmludCBhbnl0aGluZy4gKi8KKwkJCWlmIChjb3Vu dCAhPSAxKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIERFRkFVTFQgTEFCRUwiKTsKKwkJ fQorCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBMQUJFTCAlcyIsIHF1b3RlX2lk ZW50aWZpZXIobGFiZWxuYW1lKSk7CisKKwkJbWFrZV9wcm9wZ3JhcGhkZWZfcHJvcGVydGllcyhi dWYsIHBnZWxmb3JtLT5vaWQsIGVscmVsaWQpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nh bik7CisKKwl0YWJsZV9jbG9zZShwZ2xyZWwsIEFjY2Vzc1NoYXJlTG9jayk7Cit9CisKKy8qCisg KiBIZWxwZXIgZnVuY3Rpb24gZm9yIG1ha2VfcHJvcGdyYXBoZGVmX3Byb3BlcnRpZXMoKTogU29y dCAocHJvcG5hbWUsIGV4cHIpCisgKiBwYWlycyBieSBuYW1lLgorICovCitzdGF0aWMgaW50Citw cm9wZGF0YV9ieV9uYW1lX2NtcChjb25zdCBMaXN0Q2VsbCAqYSwgY29uc3QgTGlzdENlbGwgKmIp Cit7CisJTGlzdAkgICAqbGEgPSBsZmlyc3Rfbm9kZShMaXN0LCBhKTsKKwlMaXN0CSAgICpsYiA9 IGxmaXJzdF9ub2RlKExpc3QsIGIpOworCWNoYXIJICAgKnBuYSA9IHN0clZhbChsaW5pdGlhbChs YSkpOworCWNoYXIJICAgKnBuYiA9IHN0clZhbChsaW5pdGlhbChsYikpOworCisJcmV0dXJuIHN0 cmNtcChwbmEsIHBuYik7Cit9CisKKy8qCisgKiBHZW5lcmF0ZXMgZWxlbWVudCB0YWJsZSBwcm9w ZXJ0aWVzIGNsYXVzZSAoUFJPUEVSVElFUyAoLi4uKSBvciBOTworICogUFJPUEVSVElFUykuICBQ YXNzIGluIGxhYmVsIE9ESSBhbmQgZWxlbWVudCB0YWJsZSBPSUQuICBSZXN1bHQgaXMgYXBwZW5k ZWQKKyAqIHRvIGJ1Zi4KKyAqLworc3RhdGljIHZvaWQKK21ha2VfcHJvcGdyYXBoZGVmX3Byb3Bl cnRpZXMoU3RyaW5nSW5mbyBidWYsIE9pZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKQoreworCVJl bGF0aW9uCXBscHJlbDsKKwlTY2FuS2V5RGF0YSBzY2Fua2V5WzFdOworCVN5c1NjYW5EZXNjIHNj YW47CisJSGVhcFR1cGxlCXR1cDsKKwlMaXN0CSAgICpvdXRsaXN0ID0gTklMOworCisJcGxwcmVs ID0gdGFibGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKKworCVNjYW5LZXlJbml0KCZzY2Fua2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdy YXBoX2xhYmVsX3Byb3BlcnR5X3BscGVsbGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShlbGxhYmVsaWQpKTsKKworCS8qCisJ ICogV2Ugd2FudCB0byBvdXRwdXQgdGhlIHByb3BlcnRpZXMgaW4gYSBkZXRlcm1pbmlzdGljIG9y ZGVyLiAgU28gd2UgZmlyc3QKKwkgKiByZWFkIGFsbCB0aGUgZGF0YSwgdGhlbiBzb3J0LCB0aGVu IHByaW50IGl0LgorCSAqLworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGxwcmVsLCBQcm9w Z3JhcGhMYWJlbFByb3BlcnR5TGFiZWxQcm9wSW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2Nhbmtl eSk7CisKKwl3aGlsZSAoKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9y bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxwZm9ybSA9IChGb3JtX3BnX3Byb3BncmFw aF9sYWJlbF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cCk7CisJCURhdHVtCQlleHByRGF0dW07CisJ CWJvb2wJCWlzbnVsbDsKKwkJY2hhcgkgICAqdG1wOworCQlOb2RlCSAgICpleHByOworCQljaGFy CSAgICpwcm9wbmFtZTsKKworCQlleHByRGF0dW0gPSBoZWFwX2dldGF0dHIodHVwLCBBbnVtX3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBleHByLCBSZWxhdGlvbkdldERlc2NyKHBscHJl bCksICZpc251bGwpOworCQlBc3NlcnQoIWlzbnVsbCk7CisJCXRtcCA9IFRleHREYXR1bUdldENT dHJpbmcoZXhwckRhdHVtKTsKKwkJZXhwciA9IHN0cmluZ1RvTm9kZSh0bXApOworCQlwZnJlZSh0 bXApOworCisJCXByb3BuYW1lID0gZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0t PnBscHByb3BpZCk7CisKKwkJb3V0bGlzdCA9IGxhcHBlbmQob3V0bGlzdCwgbGlzdF9tYWtlMiht YWtlU3RyaW5nKHByb3BuYW1lKSwgZXhwcikpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nh bik7CisJdGFibGVfY2xvc2UocGxwcmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJbGlzdF9zb3J0 KG91dGxpc3QsIHByb3BkYXRhX2J5X25hbWVfY21wKTsKKworCWlmIChvdXRsaXN0KQorCXsKKwkJ TGlzdAkgICAqY29udGV4dDsKKwkJTGlzdENlbGwgICAqbGM7CisJCWJvb2wJCWZpcnN0ID0gdHJ1 ZTsKKworCQljb250ZXh0ID0gZGVwYXJzZV9jb250ZXh0X2ZvcihnZXRfcmVsYXRpb25fbmFtZShl bHJlbGlkKSwgZWxyZWxpZCk7CisKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgUFJPUEVSVElF UyAoIik7CisKKwkJZm9yZWFjaChsYywgb3V0bGlzdCkKKwkJeworCQkJTGlzdAkgICAqZGF0YSA9 IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJCWNoYXIJICAgKnByb3BuYW1lID0gc3RyVmFsKGxp bml0aWFsKGRhdGEpKTsKKwkJCU5vZGUJICAgKmV4cHIgPSBsc2Vjb25kKGRhdGEpOworCisJCQlp ZiAoZmlyc3QpCisJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKGJ1ZiwgIiwgIik7CisKKwkJCWlmIChJc0EoZXhwciwgVmFyKSAmJiBzdHJjbXAocHJvcG5h bWUsIGdldF9hdHRuYW1lKGVscmVsaWQsIGNhc3ROb2RlKFZhciwgZXhwciktPnZhcmF0dG5vLCBm YWxzZSkpID09IDApCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyIsIHByb3BuYW1lKTsK KwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzIEFTICVzIiwKKwkJCQkJCQkJ IGRlcGFyc2VfZXhwcmVzc2lvbl9wcmV0dHkoZXhwciwgY29udGV4dCwgZmFsc2UsIGZhbHNlLCAw LCAwKSwKKwkJCQkJCQkJIHByb3BuYW1lKTsKKwkJfQorCisJCWFwcGVuZFN0cmluZ0luZm8oYnVm LCAiKSIpOworCX0KKwllbHNlCisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIE5PIFBST1BFUlRJ RVMiKTsKK30KKwogLyoKICAqIHBnX2dldF9zdGF0aXN0aWNzb2JqZGVmCiAgKgkJR2V0IHRoZSBk ZWZpbml0aW9uIG9mIGFuIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0CkBAIC03NDc2LDYgKzc4 MDksMTcxIEBAIGdldF91dGlsaXR5X3F1ZXJ5X2RlZihRdWVyeSAqcXVlcnksIGRlcGFyc2VfY29u dGV4dCAqY29udGV4dCkKIAl9CiB9CiAKKworLyoKKyAqIFBhcnNlIGJhY2sgYSBncmFwaCBsYWJl bCBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitnZXRfZ3JhcGhfbGFiZWxfZXhwcihOb2Rl ICpsYWJlbF9leHByLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCit7CisJU3RyaW5nSW5mbwli dWYgPSBjb250ZXh0LT5idWY7CisKKwljaGVja19zdGFja19kZXB0aCgpOworCisJc3dpdGNoIChu b2RlVGFnKGxhYmVsX2V4cHIpKQorCXsKKwkJY2FzZSBUX0dyYXBoTGFiZWxSZWY6CisJCQl7CisJ CQkJR3JhcGhMYWJlbFJlZiAqbHJlZiA9IChHcmFwaExhYmVsUmVmICopIGxhYmVsX2V4cHI7CisK KwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihnZXRfcHJv cGdyYXBoX2xhYmVsX25hbWUobHJlZi0+bGFiZWxpZCkpKTsKKwkJCQlicmVhazsKKwkJCX0KKwor CQljYXNlIFRfQm9vbEV4cHI6CisJCQl7CisJCQkJQm9vbEV4cHIgICAqYmUgPSAoQm9vbEV4cHIg KikgbGFiZWxfZXhwcjsKKwkJCQlMaXN0Q2VsbCAgICpsYzsKKwkJCQlib29sCQlmaXJzdCA9IHRy dWU7CisKKwkJCQlBc3NlcnQoYmUtPmJvb2xvcCA9PSBPUl9FWFBSKTsKKworCQkJCWZvcmVhY2go bGMsIGJlLT5hcmdzKQorCQkJCXsKKwkJCQkJaWYgKCFmaXJzdCkKKwkJCQkJeworCQkJCQkJaWYg KGJlLT5ib29sb3AgPT0gT1JfRVhQUikKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1 ZiwgInwiKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCQln ZXRfZ3JhcGhfbGFiZWxfZXhwcihsZmlyc3QobGMpLCBjb250ZXh0KTsKKwkJCQl9CisKKwkJCQli cmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhsYWJlbF9leHByKSk7CisJCQlicmVhazsKKwl9 Cit9CisKKy8qCisgKiBQYXJzZSBiYWNrIGEgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb24KKyAqLwor c3RhdGljIHZvaWQKK2dldF9wYXRoX3BhdHRlcm5fZXhwcl9kZWYoTGlzdCAqcGF0aF9wYXR0ZXJu X2V4cHIsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IGNv bnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhfcGF0dGVy bl9leHByKQorCXsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0X25vZGUoR3Jh cGhFbGVtZW50UGF0dGVybiwgbGMpOworCQljb25zdCBjaGFyICpzZXAgPSAiIjsKKworCQlzd2l0 Y2ggKGdlcC0+a2luZCkKKwkJeworCQkJY2FzZSBWRVJURVhfUEFUVEVSTjoKKwkJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRU RVJOX0xFRlQ6CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICI8LVsiKTsKKwkJCQli cmVhazsKKwkJCWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgorCQkJY2FzZSBFREdFX1BBVFRFUk5f QU5ZOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLVsiKTsKKwkJCQlicmVhazsK KwkJCWNhc2UgUEFSRU5fRVhQUjoKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigi KTsKKwkJCQlicmVhazsKKwkJfQorCisJCWlmIChnZXAtPnZhcmlhYmxlKQorCQl7CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgZ2VwLT52YXJpYWJsZSk7CisJCQlzZXAgPSAiICI7CisJ CX0KKworCQlpZiAoZ2VwLT5sYWJlbGV4cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoYnVmLCBzZXApOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJJUyAiKTsKKwkJ CWdldF9ncmFwaF9sYWJlbF9leHByKGdlcC0+bGFiZWxleHByLCBjb250ZXh0KTsKKwkJCXNlcCA9 ICIgIjsKKwkJfQorCisJCWlmIChnZXAtPnN1YmV4cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCBzZXApOworCQkJZ2V0X3BhdGhfcGF0dGVybl9leHByX2RlZihnZXAtPnN1 YmV4cHIsIGNvbnRleHQpOworCQkJc2VwID0gIiAiOworCQl9CisKKwkJaWYgKGdlcC0+d2hlcmVD bGF1c2UpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBzZXApOworCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJXSEVSRSAiKTsKKwkJCWdldF9ydWxlX2V4cHIoZ2Vw LT53aGVyZUNsYXVzZSwgY29udGV4dCwgZmFsc2UpOworCQl9CisKKwkJc3dpdGNoIChnZXAtPmtp bmQpCisJCXsKKwkJCWNhc2UgVkVSVEVYX1BBVFRFUk46CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhidWYsICIpIik7CisJCQkJYnJlYWs7CisJCQljYXNlIEVER0VfUEFUVEVSTl9MRUZUOgor CQkJY2FzZSBFREdFX1BBVFRFUk5fQU5ZOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCAiXS0iKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgorCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiXS0+Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIFBB UkVOX0VYUFI6CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQkJYnJl YWs7CisJCX0KKworCQlpZiAoZ2VwLT5xdWFudGlmaWVyKQorCQl7CisJCQlpbnQJCQlsb3dlciA9 IGxpbml0aWFsX2ludChnZXAtPnF1YW50aWZpZXIpOworCQkJaW50CQkJdXBwZXIgPSBsc2Vjb25k X2ludChnZXAtPnF1YW50aWZpZXIpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInslZCwl ZH0iLCBsb3dlciwgdXBwZXIpOworCQl9CisJfQorfQorCisvKgorICogUGFyc2UgYmFjayBhIGdy YXBoIHBhdHRlcm4KKyAqLworc3RhdGljIHZvaWQKK2dldF9ncmFwaF9wYXR0ZXJuX2RlZihHcmFw aFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlT dHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29sCQlm aXJzdCA9IHRydWU7CisKKwlmb3JlYWNoKGxjLCBncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5f bGlzdCkKKwl7CisJCUxpc3QJICAgKnBhdGhfcGF0dGVybl9leHByID0gbGZpcnN0X25vZGUoTGlz dCwgbGMpOworCisJCWlmICghZmlyc3QpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg IiwgIik7CisJCWVsc2UKKwkJCWZpcnN0ID0gZmFsc2U7CisKKwkJZ2V0X3BhdGhfcGF0dGVybl9l eHByX2RlZihwYXRoX3BhdHRlcm5fZXhwciwgY29udGV4dCk7CisJfQorCisJaWYgKGdyYXBoX3Bh dHRlcm4tPndoZXJlQ2xhdXNlKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJX SEVSRSAiKTsKKwkJZ2V0X3J1bGVfZXhwcihncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwgY29u dGV4dCwgZmFsc2UpOworCX0KK30KKwogLyoKICAqIERpc3BsYXkgYSBWYXIgYXBwcm9wcmlhdGVs eS4KICAqCkBAIC04MDc3LDYgKzg1NzUsNyBAQCBnZXRfbmFtZV9mb3JfdmFyX2ZpZWxkKFZhciAq dmFyLCBpbnQgZmllbGRubywKIAkJY2FzZSBSVEVfUkVMQVRJT046CiAJCWNhc2UgUlRFX1ZBTFVF UzoKIAkJY2FzZSBSVEVfTkFNRURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToK IAkJY2FzZSBSVEVfUkVTVUxUOgogCiAJCQkvKgpAQCAtMTA0NzQsNiArMTA5NzMsMTQgQEAgZ2V0 X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQlnZXRf dGFibGVmdW5jKChUYWJsZUZ1bmMgKikgbm9kZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgorCQkJeworCQkJCUdyYXBoUHJv cGVydHlSZWYgKmdwciA9IChHcmFwaFByb3BlcnR5UmVmICopIG5vZGU7CisKKwkJCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIiVzLiVzIiwgcXVvdGVfaWRlbnRpZmllcihncHItPmVsdmFybmFtZSks IHF1b3RlX2lkZW50aWZpZXIoZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlk KSkpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKG5vZGUpKTsKIAkJCWJyZWFr OwpAQCAtMTIzMzIsNiArMTI4MzksMzYgQEAgZ2V0X2Zyb21fY2xhdXNlX2l0ZW0oTm9kZSAqanRu b2RlLCBRdWVyeSAqcXVlcnksIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCWNhc2UgUlRF X1RBQkxFRlVOQzoKIAkJCQlnZXRfdGFibGVmdW5jKHJ0ZS0+dGFibGVmdW5jLCBjb250ZXh0LCB0 cnVlKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgorCQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCAiR1JBUEhfVEFCTEUgKCIpOworCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCBnZW5lcmF0ZV9yZWxhdGlvbl9uYW1lKHJ0ZS0+cmVsaWQsIGNvbnRleHQt Pm5hbWVzcGFjZXMpKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBNQVRDSCAi KTsKKwkJCQlnZXRfZ3JhcGhfcGF0dGVybl9kZWYocnRlLT5ncmFwaF9wYXR0ZXJuLCBjb250ZXh0 KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBDT0xVTU5TICgiKTsKKwkJCQl7 CisJCQkJCUxpc3RDZWxsICAgKmxjOworCQkJCQlib29sCQlmaXJzdCA9IHRydWU7CisKKwkJCQkJ Zm9yZWFjaChsYywgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zKQorCQkJCQl7CisJCQkJCQlUYXJn ZXRFbnRyeSAqdGUgPSBsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpOworCQkJCQkJZGVwYXJz ZV9jb250ZXh0IGNvbnRleHQgPSB7MH07CisKKwkJCQkJCWlmICghZmlyc3QpCisJCQkJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIsICIpOworCQkJCQkJZWxzZQorCQkJCQkJCWZpcnN0 ID0gZmFsc2U7CisKKwkJCQkJCWNvbnRleHQuYnVmID0gYnVmOworCisJCQkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIHRlLT5leHByLCAmY29udGV4dCwgZmFsc2UpOworCQkJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICIgQVMgIik7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KGJ1ZiwgcXVvdGVfaWRlbnRpZmllcih0ZS0+cmVzbmFtZSkpOworCQkJCQl9CisJCQkJfQorCQkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiKSIpOworCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCAiKSIpOworCQkJCWJyZWFrOwogCQkJY2FzZSBSVEVfVkFMVUVTOgogCQkJCS8q IFZhbHVlcyBsaXN0IFJURSAqLwogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTg1ZGMwZDg5MWYuLjNiZjMzMWIy MWFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzIsNiArMzIsOCBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3Bl cmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb3BncmFwaF9sYWJlbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3By b3BlcnR5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcmFuZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpYy5oIgpA QCAtMzcxNCwzICszNzE2LDM5IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJv b2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwogfQorCitjaGFyICoKK2dldF9wcm9w Z3JhcGhfbGFiZWxfbmFtZShPaWQgbGFiZWxvaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCWNo YXIJICAgKmxhYmVsbmFtZTsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSExB QkVMT0lELCBsYWJlbG9pZCk7CisJaWYgKCF0dXBsZSkKKwl7CisJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBsYWJlbCAldSIsIGxhYmVsb2lkKTsKKwkJcmV0dXJuIE5VTEw7 CisJfQorCWxhYmVsbmFtZSA9IHBzdHJkdXAoTmFtZVN0cigoKEZvcm1fcGdfcHJvcGdyYXBoX2xh YmVsKSBHRVRTVFJVQ1QodHVwbGUpKS0+cGdsbGFiZWwpKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVw bGUpOworCisJcmV0dXJuIGxhYmVsbmFtZTsKK30KKworY2hhciAqCitnZXRfcHJvcGdyYXBoX3By b3BlcnR5X25hbWUoT2lkIHByb3BvaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCWNoYXIJICAg KnByb3BuYW1lOworCisJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIUFJPUE9JRCwg cHJvcG9pZCk7CisJaWYgKCF0dXBsZSkKKwl7CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBwcm9wZXJ0eSAldSIsIHByb3BvaWQpOworCQlyZXR1cm4gTlVMTDsKKwl9CisJ cHJvcG5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkg R0VUU1RSVUNUKHR1cGxlKSktPnBncG5hbWUpKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwor CisJcmV0dXJuIHByb3BuYW1lOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1v bi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IDMzZDMyMzA4NWY1Li4xOWQ2YzBj MmI4YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9jb21tb24uYwpAQCAtNDk2LDcgKzQ5Niw4IEBAIGZsYWdJbmhBdHRycyhBcmNoaXZl ICpmb3V0LCBEdW1wT3B0aW9ucyAqZG9wdCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFi bGVzCiAJCS8qIFNvbWUga2luZHMgbmV2ZXIgaGF2ZSBwYXJlbnRzICovCiAJCWlmICh0YmluZm8t PnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSB8fAogCQkJdGJpbmZvLT5yZWxraW5kID09IFJF TEtJTkRfVklFVyB8fAotCQkJdGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykKKwkJ CXRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCXRiaW5mby0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BST1BHUkFQSCkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIERvbid0IGJvdGhl ciBjb21wdXRpbmcgYW55dGhpbmcgZm9yIG5vbi10YXJnZXQgdGFibGVzLCBlaXRoZXIgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA1OWU3OTQxYTBjMy4uYWZmNmM4N2Q4 YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTM2NDUsNiArMzY0NSw3 IEBAIF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5 ICp0ZSkKIAkJc3RyY21wKHR5cGUsICJET01BSU4iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAi Rk9SRUlHTiBUQUJMRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJNQVRFUklBTElaRUQgVklF VyIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJQUk9QRVJUWSBHUkFQSCIpID09IDAgfHwKIAkJ c3RyY21wKHR5cGUsICJTRVFVRU5DRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJTVEFUSVNU SUNTIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRBQkxFIikgPT0gMCB8fApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggZWMwY2RmNGVkNzQuLjIwMTI0NTVhNGVmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE2OTksMTAg KzE2OTksMTAgQEAgZXhwYW5kX3RhYmxlX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJ CQkJCSAgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiIKIAkJCQkJ CSAgIlxuICAgICBPTiBuLm9pZCBPUEVSQVRPUihwZ19jYXRhbG9nLj0pIGMucmVsbmFtZXNwYWNl IgogCQkJCQkJICAiXG5XSEVSRSBjLnJlbGtpbmQgT1BFUkFUT1IocGdfY2F0YWxvZy49KSBBTlki Ci0JCQkJCQkgICJcbiAgICAoYXJyYXlbJyVjJywgJyVjJywgJyVjJywgJyVjJywgJyVjJywgJyVj J10pXG4iLAorCQkJCQkJICAiXG4gICAgKGFycmF5WyclYycsICclYycsICclYycsICclYycsICcl YycsICclYycsICclYyddKVxuIiwKIAkJCQkJCSAgUkVMS0lORF9SRUxBVElPTiwgUkVMS0lORF9T RVFVRU5DRSwgUkVMS0lORF9WSUVXLAogCQkJCQkJICBSRUxLSU5EX01BVFZJRVcsIFJFTEtJTkRf Rk9SRUlHTl9UQUJMRSwKLQkJCQkJCSAgUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSk7CisJCQkJ CQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUsIFJFTEtJTkRfUFJPUEdSQVBIKTsKIAkJaW5p dFBRRXhwQnVmZmVyKCZkYmJ1Zik7CiAJCXByb2Nlc3NTUUxOYW1lUGF0dGVybihHZXRDb25uZWN0 aW9uKGZvdXQpLCBxdWVyeSwgY2VsbC0+dmFsLCB0cnVlLAogCQkJCQkJCSAgZmFsc2UsICJuLm5z cG5hbWUiLCAiYy5yZWxuYW1lIiwgTlVMTCwKQEAgLTI4NjksNiArMjg2OSw5IEBAIG1ha2VUYWJs ZURhdGFJbmZvKER1bXBPcHRpb25zICpkb3B0LCBUYWJsZUluZm8gKnRiaW5mbykKIAlpZiAodGJp bmZvLT5kYXRhT2JqICE9IE5VTEwpCiAJCXJldHVybjsKIAorCS8qIFNraXAgcHJvcGVydHkgZ3Jh cGhzIChubyBkYXRhIHRvIGR1bXApICovCisJaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5E X1BST1BHUkFQSCkKKwkJcmV0dXJuOwogCS8qIFNraXAgVklFV3MgKG5vIGRhdGEgdG8gZHVtcCkg Ki8KIAlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfVklFVykKIAkJcmV0dXJuOwpAQCAt Njk4Nyw3ICs2OTkwLDggQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVz KQogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX0NPTVBPU0lURV9UWVBFKSAiLCAiCiAJCQkJ CQkgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfTUFUVklFVykgIiwgIgogCQkJCQkJIENwcEFzU3RyaW5n MihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIsICIKLQkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSkgIilcbiIKKwkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9Q QVJUSVRJT05FRF9UQUJMRSkgIiwgIgorCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX1BST1BH UkFQSCkgIilcbiIKIAkJCQkJCSAiT1JERVIgQlkgYy5vaWQiKTsKIAogCXJlcyA9IEV4ZWN1dGVT cWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKQEAgLTE1OTczLDgg KzE1OTc3LDYgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCiAJCXJlbHR5cGVuYW1lID0gIlZJRVciOwogCi0JCWFwcGVuZFBRRXhwQnVm ZmVyKGRlbHEsICJEUk9QIFZJRVcgJXM7XG4iLCBxdWFscmVsbmFtZSk7Ci0KIAkJaWYgKGRvcHQt PmJpbmFyeV91cGdyYWRlKQogCQkJYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2NsYXNzX29pZHMoZm91 dCwgcSwKIAkJCQkJCQkJCQkJIHRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOwpAQCAtMTYwMDAsNiAr MTYwMDIsNDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlxuICBXSVRIICVzIENIRUNLIE9Q VElPTiIsIHRiaW5mby0+Y2hlY2tvcHRpb24pOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAi O1xuIik7CiAJfQorCWVsc2UgaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX1BST1BHUkFQ SCkKKwl7CisJCVBRRXhwQnVmZmVyIHF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJUEdy ZXN1bHQgICAqcmVzOworCQlpbnQJCQlsZW47CisKKwkJcmVsdHlwZW5hbWUgPSAiUFJPUEVSVFkg R1JBUEgiOworCisJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKKwkJCWJpbmFyeV91cGdyYWRl X3NldF9wZ19jbGFzc19vaWRzKGZvdXQsIHEsCisJCQkJCQkJCQkJCSB0YmluZm8tPmRvYmouY2F0 SWQub2lkKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCSAgIlNFTEVDVCBw Z19jYXRhbG9nLnBnX2dldF9wcm9wZ3JhcGhkZWYoJyV1Jzo6cGdfY2F0YWxvZy5vaWQpIEFTIHBn ZGVmIiwKKwkJCQkJCSAgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CisKKwkJcmVzID0gRXhlY3V0 ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJCWlmIChQ UW50dXBsZXMocmVzKSAhPSAxKQorCQl7CisJCQlpZiAoUFFudHVwbGVzKHJlcykgPCAxKQorCQkJ CXBnX2ZhdGFsKCJxdWVyeSB0byBvYnRhaW4gZGVmaW5pdGlvbiBvZiBwcm9wZXJ0eSBncmFwaCBc IiVzXCIgcmV0dXJuZWQgbm8gZGF0YSIsCisJCQkJCQkgdGJpbmZvLT5kb2JqLm5hbWUpOworCQkJ ZWxzZQorCQkJCXBnX2ZhdGFsKCJxdWVyeSB0byBvYnRhaW4gZGVmaW5pdGlvbiBvZiBwcm9wZXJ0 eSBncmFwaCBcIiVzXCIgcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSBkZWZpbml0aW9uIiwKKwkJCQkJ CSB0YmluZm8tPmRvYmoubmFtZSk7CisJCX0KKworCQlsZW4gPSBQUWdldGxlbmd0aChyZXMsIDAs IDApOworCisJCWlmIChsZW4gPT0gMCkKKwkJCXBnX2ZhdGFsKCJkZWZpbml0aW9uIG9mIHByb3Bl cnR5IGdyYXBoIFwiJXNcIiBhcHBlYXJzIHRvIGJlIGVtcHR5IChsZW5ndGggemVybykiLAorCQkJ CQkgdGJpbmZvLT5kb2JqLm5hbWUpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsIFBRZ2V0 dmFsdWUocmVzLCAwLCAwKSk7CisKKwkJUFFjbGVhcihyZXMpOworCQlkZXN0cm95UFFFeHBCdWZm ZXIocXVlcnkpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICI7XG4iKTsKKwl9CiAJZWxz ZQogCXsKIAkJY2hhcgkgICAqcGFydGtleWRlZiA9IE5VTEw7CkBAIC0xNjA3NSw4ICsxNjExOCw2 IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5m bykKIAkJbnVtUGFyZW50cyA9IHRiaW5mby0+bnVtUGFyZW50czsKIAkJcGFyZW50cyA9IHRiaW5m by0+cGFyZW50czsKIAotCQlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCAlcyAlcztcbiIs IHJlbHR5cGVuYW1lLCBxdWFscmVsbmFtZSk7Ci0KIAkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRl KQogCQkJYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2NsYXNzX29pZHMoZm91dCwgcSwKIAkJCQkJCQkJ CQkJIHRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOwpAQCAtMTY4MTAsNiArMTY4NTEsOCBAQCBkdW1w VGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCWFw cGVuZFBRRXhwQnVmZmVyKHEsICJcbkFMVEVSIFRBQkxFIE9OTFkgJXMgRk9SQ0UgUk9XIExFVkVM IFNFQ1VSSVRZO1xuIiwKIAkJCQkJCSAgcXVhbHJlbG5hbWUpOwogCisJYXBwZW5kUFFFeHBCdWZm ZXIoZGVscSwgIkRST1AgJXMgJXM7XG4iLCByZWx0eXBlbmFtZSwgcXVhbHJlbG5hbWUpOworCiAJ aWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQogCQliaW5hcnlfdXBncmFkZV9leHRlbnNpb25fbWVt YmVyKHEsICZ0YmluZm8tPmRvYmosCiAJCQkJCQkJCQkJcmVsdHlwZW5hbWUsIHFyZWxuYW1lLApA QCAtMTg3NDksNiArMTg3OTIsMTYgQEAgZ2V0RGVwZW5kZW5jaWVzKEFyY2hpdmUgKmZvdXQpCiAJ CQkJCQkgImNsYXNzaWQgPSAncGdfYW1wcm9jJzo6cmVnY2xhc3MgQU5EIG9iamlkID0gcC5vaWQg IgogCQkJCQkJICJBTkQgTk9UIChyZWZjbGFzc2lkID0gJ3BnX29wZmFtaWx5Jzo6cmVnY2xhc3Mg QU5EIGFtcHJvY2ZhbWlseSA9IHJlZm9iamlkKVxuIik7CiAKKwkvKgorCSAqIFRyYW5zbGF0ZSBk ZXBlbmRlbmNpZXMgb2YgcGdfcHJvcGdyYXBoX2VsZW1lbnQgZW50cmllcyBpbnRvCisJICogZGVw ZW5kZW5jaWVzIG9mIHRoZWlyIHBhcmVudCBwZ19jbGFzcyBlbnRyeS4KKwkgKi8KKwlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxdWVyeSwgIlVOSU9OIEFMTFxuIgorCQkJCQkJICJTRUxFQ1QgJ3BnX2Ns YXNzJzo6cmVnY2xhc3MgQVMgY2xhc3NpZCwgcGdlcGdpZCBBUyBvYmppZCwgcmVmY2xhc3NpZCwg cmVmb2JqaWQsIGRlcHR5cGUgIgorCQkJCQkJICJGUk9NIHBnX2RlcGVuZCBkLCBwZ19wcm9wZ3Jh cGhfZWxlbWVudCBwZ2UgIgorCQkJCQkJICJXSEVSRSBkZXB0eXBlIE5PVCBJTiAoJ3AnLCAnZScs ICdpJykgQU5EICIKKwkJCQkJCSAiY2xhc3NpZCA9ICdwZ19wcm9wZ3JhcGhfZWxlbWVudCc6OnJl Z2NsYXNzIEFORCBvYmppZCA9IHBnZS5vaWRcbiIpOworCiAJLyogU29ydCB0aGUgb3V0cHV0IGZv ciBlZmZpY2llbmN5IGJlbG93ICovCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJPUkRF UiBCWSAxLDIiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBhYTE1NjRjZDQ1MC4u ZGYyMjRlYjViNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0yOTQ4LDYgKzI5NDgs MTggQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFBST1BFUlRZIEdSQVBI IHByb3BncmFwaCcgPT4geworCQljcmVhdGVfb3JkZXIgPT4gMjAsCisJCWNyZWF0ZV9zcWwgPT4g J0NSRUFURSBQUk9QRVJUWSBHUkFQSCBkdW1wX3Rlc3QucHJvcGdyYXBoOycsCisJCXJlZ2V4cCA9 PiBxci9eCisJCQlcUUNSRUFURSBQUk9QRVJUWSBHUkFQSCBkdW1wX3Rlc3QucHJvcGdyYXBoXEU7 CisJCQkveG0sCisJCWxpa2UgPT4KKwkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1h X3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+CisJCSAgeyBleGNs dWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgb25seV9kdW1wX21lYXN1cmVtZW50ID0+IDEsIH0s CisJfSwKKwogCSdDUkVBVEUgUFVCTElDQVRJT04gcHViMScgPT4gewogCQljcmVhdGVfb3JkZXIg PT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxOycsCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpp bmRleCAxZjNjYmIxMWY3Yy4uMzAwYWQ0OWU0MDkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9j b21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtODY3LDcgKzg2Nyw3IEBA IGV4ZWNfY29tbWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoLCBjb25zdCBjaGFyICpjbWQpCiAJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVRhYmxlRGV0YWls cyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UsIHNob3dfc3lzdGVtKTsKIAkJCQllbHNlCiAJCQkJCS8q IHN0YW5kYXJkIGxpc3Rpbmcgb2YgaW50ZXJlc3RpbmcgdGhpbmdzICovCi0JCQkJCXN1Y2Nlc3Mg PSBsaXN0VGFibGVzKCJ0dm1zRSIsIE5VTEwsIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwor CQkJCQlzdWNjZXNzID0gbGlzdFRhYmxlcygidHZtc0VHIiwgTlVMTCwgc2hvd192ZXJib3NlLCBz aG93X3N5c3RlbSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlICdBJzoKIAkJCQl7CkBAIC05OTgsNiAr OTk4LDcgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFj dGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJCWNhc2UgJ2knOgogCQkJY2FzZSAncyc6 CiAJCQljYXNlICdFJzoKKwkJCWNhc2UgJ0cnOgogCQkJCXN1Y2Nlc3MgPSBsaXN0VGFibGVzKCZj bWRbMV0sIHBhdHRlcm4sIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwogCQkJCWJyZWFrOwog CQkJY2FzZSAncic6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDI2NTdhYmRjNzJkLi5hMjZkODFhMGZkZSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKQEAgLTEwNTEsNiArMTA1MSw3IEBAIHBlcm1pc3Npb25zTGlzdChjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHNob3dTeXN0ZW0pCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJ TkRfTUFUVklFVykgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJF TEtJTkRfU0VRVUVOQ0UpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5n MihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIgVEhFTiAnJXMnIgorCQkJCQkgICIgV0hFTiAiIENw cEFzU3RyaW5nMihSRUxLSU5EX1BST1BHUkFQSCkgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVO ICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIgVEhFTiAnJXMnIgog CQkJCQkgICIgRU5EIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLApAQCAtMTA2MSw2ICsxMDYy LDcgQEAgcGVybWlzc2lvbnNMaXN0KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgc2hvd1N5c3Rl bSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIm1hdGVyaWFsaXplZCB2aWV3IiksCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJzZXF1ZW5jZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiZm9yZWlnbiB0YWJs ZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgicHJvcGVydHkgZ3JhcGgiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoInBhcnRpdGlvbmVkIHRhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBl IikpOwogCkBAIC0xMTUyLDYgKzExNTQsNyBAQCBwZXJtaXNzaW9uc0xpc3QoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCBzaG93U3lzdGVtKQogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX01B VFZJRVcpICIsIgogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX1NFUVVFTkNFKSAiLCIKIAkJ CQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9GT1JFSUdOX1RBQkxFKSAiLCIKKwkJCQkJCSBDcHBB c1N0cmluZzIoUkVMS0lORF9QUk9QR1JBUEgpICIsIgogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKVxuIik7CiAKIAlpZiAoIXNob3dTeXN0ZW0gJiYgIXBh dHRlcm4pCkBAIC0yMDMxLDYgKzIwMzQsMTAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlBh cnRpdGlvbmVkIHRhYmxlIFwiJXMuJXNcIiIpLAogCQkJCQkJCQkgIHNjaGVtYW5hbWUsIHJlbGF0 aW9ubmFtZSk7CiAJCQlicmVhazsKKwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCXByaW50 ZlBRRXhwQnVmZmVyKCZ0aXRsZSwgXygiUHJvcGVydHkgZ3JhcGggXCIlcy4lc1wiIiksCisJCQkJ CQkJICBzY2hlbWFuYW1lLCByZWxhdGlvbm5hbWUpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQkvKiB1bnRyYW5zbGF0ZWQgdW5rbm93biByZWxraW5kICovCiAJCQlwcmludGZQUUV4cEJ1ZmZl cigmdGl0bGUsICI/JWM/IFwiJXMuJXNcIiIsCkBAIC0zMTMwLDYgKzMxMzcsMzIgQEAgZGVzY3Jp YmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJfQogCX0KIAorCS8q IEFkZCBwcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uIGluIHZlcmJvc2UgbW9kZSAqLworCWlmICh0 YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BST1BHUkFQSCAmJiB2ZXJib3NlKQorCXsKKwkJ UEdyZXN1bHQgICAqcmVzdWx0OworCQljaGFyCSAgICpwZ2RlZiA9IE5VTEw7CisKKwkJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF9wcm9w Z3JhcGhkZWYoJyVzJzo6cGdfY2F0YWxvZy5vaWQpOyIsCisJCQkJCQkgIG9pZCk7CisJCXJlc3Vs dCA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwkJaWYgKCFyZXN1bHQpCisJCQlnb3RvIGVycm9yX3Jl dHVybjsKKworCQlpZiAoUFFudHVwbGVzKHJlc3VsdCkgPiAwKQorCQkJcGdkZWYgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDApKTsKKworCQlQUWNsZWFyKHJlc3VsdCk7CisKKwkJ aWYgKHBnZGVmKQorCQl7CisJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQcm9wZXJ0 eSBncmFwaCBkZWZpbml0aW9uOiIpKTsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgJXMi LCBwZ2RlZik7CisJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7CisJCX0K Kwl9CisKIAkvKiBHZXQgdmlld19kZWYgaWYgdGFibGUgaXMgYSB2aWV3IG9yIG1hdGVyaWFsaXpl ZCB2aWV3ICovCiAJaWYgKCh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcgfHwKIAkJ IHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykgJiYgdmVyYm9zZSkKQEAgLTM5 ODMsNiArNDAxNiw3IEBAIGRlc2NyaWJlUm9sZUdyYW50cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHNob3dTeXN0ZW0pCiAgKiBtIC0gbWF0ZXJpYWxpemVkIHZpZXdzCiAgKiBzIC0gc2VxdWVu Y2VzCiAgKiBFIC0gZm9yZWlnbiB0YWJsZSAoTm90ZTogZGlmZmVyZW50IGZyb20gJ2YnLCB0aGUg cmVsa2luZCB2YWx1ZSkKKyAqIEcgLSBwcm9wZXJ0eSBncmFwaHMKICAqIChhbnkgb3JkZXIgb2Yg dGhlIGFib3ZlIGlzIGZpbmUpCiAgKi8KIGJvb2wKQEAgLTM5OTQsNiArNDAyOCw3IEBAIGxpc3RU YWJsZXMoY29uc3QgY2hhciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVy Ym9zZSwgYm9vbCBzaG93U3lzCiAJYm9vbAkJc2hvd01hdFZpZXdzID0gc3RyY2hyKHRhYnR5cGVz LCAnbScpICE9IE5VTEw7CiAJYm9vbAkJc2hvd1NlcSA9IHN0cmNocih0YWJ0eXBlcywgJ3MnKSAh PSBOVUxMOwogCWJvb2wJCXNob3dGb3JlaWduID0gc3RyY2hyKHRhYnR5cGVzLCAnRScpICE9IE5V TEw7CisJYm9vbAkJc2hvd1Byb3BHcmFwaHMgPSBzdHJjaHIodGFidHlwZXMsICdHJykgIT0gTlVM TDsKIAogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtNDAwMiw4 ICs0MDM3LDggQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0YWJ0eXBlcywgY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMKIAlib29sCQl0cmFuc2xhdGVfY29s dW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZX07CiAKIAkvKiBJZiB0YWJ0eXBlcyBpcyBlbXB0eSwgd2UgZGVmYXVsdCB0 byBcZHR2bXNFIChidXQgc2VlIGFsc28gY29tbWFuZC5jKSAqLwotCWlmICghKHNob3dUYWJsZXMg fHwgc2hvd0luZGV4ZXMgfHwgc2hvd1ZpZXdzIHx8IHNob3dNYXRWaWV3cyB8fCBzaG93U2VxIHx8 IHNob3dGb3JlaWduKSkKLQkJc2hvd1RhYmxlcyA9IHNob3dWaWV3cyA9IHNob3dNYXRWaWV3cyA9 IHNob3dTZXEgPSBzaG93Rm9yZWlnbiA9IHRydWU7CisJaWYgKCEoc2hvd1RhYmxlcyB8fCBzaG93 SW5kZXhlcyB8fCBzaG93Vmlld3MgfHwgc2hvd01hdFZpZXdzIHx8IHNob3dTZXEgfHwgc2hvd0Zv cmVpZ24gfHwgc2hvd1Byb3BHcmFwaHMpKQorCQlzaG93VGFibGVzID0gc2hvd1ZpZXdzID0gc2hv d01hdFZpZXdzID0gc2hvd1NlcSA9IHNob3dGb3JlaWduID0gc2hvd1Byb3BHcmFwaHMgPSB0cnVl OwogCiAJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwogCkBAIC00MDIwLDYgKzQwNTUsNyBAQCBsaXN0 VGFibGVzKGNvbnN0IGNoYXIgKnRhYnR5cGVzLCBjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZl cmJvc2UsIGJvb2wgc2hvd1N5cwogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5nMihSRUxLSU5E X0ZPUkVJR05fVEFCTEUpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5n MihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiIFRIRU4gJyVzJyIKIAkJCQkJICAiIFdIRU4g IiBDcHBBc1N0cmluZzIoUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWCkgIiBUSEVOICclcyciCisJ CQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUFJPUEdSQVBIKSAiIFRIRU4gJyVz JyIKIAkJCQkJICAiIEVORCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19n ZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgYXMgXCIlc1wiIiwKIAkJCQkJICBnZXR0ZXh0X25vb3Ao IlNjaGVtYSIpLApAQCAtNDAzMyw2ICs0MDY5LDcgQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0 YWJ0eXBlcywgY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMK IAkJCQkJICBnZXR0ZXh0X25vb3AoImZvcmVpZ24gdGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25v b3AoInBhcnRpdGlvbmVkIHRhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJwYXJ0aXRpb25l ZCBpbmRleCIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgicHJvcGVydHkgZ3JhcGgiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOwog CWNvbHNfc29fZmFyID0gNDsKQEAgLTQxMjAsNiArNDE1Nyw4IEBAIGxpc3RUYWJsZXMoY29uc3Qg Y2hhciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBz aG93U3lzCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIncycsIik7IC8qIHdhcyBSRUxL SU5EX1NQRUNJQUwgKi8KIAlpZiAoc2hvd0ZvcmVpZ24pCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsIENwcEFzU3RyaW5nMihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIsIik7CisJaWYgKHNo b3dQcm9wR3JhcGhzKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBDcHBBc1N0cmluZzIo UkVMS0lORF9QUk9QR1JBUEgpICIsIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi JyciKTsJLyogZHVtbXkgKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiKVxuIik7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRl eCAzZjRhZmMyZDE0MS4uZTJhZTgyOTg3YWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxw LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjQ3LDYgKzI0Nyw3IEBAIHNsYXNoVXNh Z2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZEZwWytdIFtQQVRURVJO XSAgICAgIGxpc3QgdGV4dCBzZWFyY2ggcGFyc2Vyc1xuIik7CiAJSEVMUDAoIiAgXFxkRnRbK10g W1BBVFRFUk5dICAgICAgbGlzdCB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXNcbiIpOwogCUhFTFAwKCIg IFxcZGdbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpOworCUhFTFAwKCIgIFxcZEdb UytdIFtQQVRURVJOXSAgICAgIGxpc3QgcHJvcGVydHkgZ3JhcGhzXG4iKTsKIAlIRUxQMCgiICBc XGRpW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGluZGV4ZXNcbiIpOwogCUhFTFAwKCIgIFxcZGxb K10gICAgICAgICAgICAgICAgIGxpc3QgbGFyZ2Ugb2JqZWN0cywgc2FtZSBhcyBcXGxvX2xpc3Rc biIpOwogCUhFTFAwKCIgIFxcZExbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgcHJvY2VkdXJhbCBs YW5ndWFnZXNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGJiZDA4NzcwYzNkLi5iNjNh YzYyNTM3MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNzk1LDYgKzc5NSwxNCBAQCBzdGF0 aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfcGFydGl0aW9uZWRfaW5kZXhl cyA9IHsKIAkucmVzdWx0ID0gImMucmVsbmFtZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1h UXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvcGdyYXBocyA9IHsKKwkuY2F0bmFtZSA9ICJwZ19j YXRhbG9nLnBnX2NsYXNzIGMiLAorCS5zZWxjb25kaXRpb24gPSAiYy5yZWxraW5kIElOICgiIENw cEFzU3RyaW5nMihSRUxLSU5EX1BST1BHUkFQSCkgIikiLAorCS52aXNjb25kaXRpb24gPSAicGdf Y2F0YWxvZy5wZ190YWJsZV9pc192aXNpYmxlKGMub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJjLnJl bG5hbWVzcGFjZSIsCisJLnJlc3VsdCA9ICJwZ19jYXRhbG9nLnF1b3RlX2lkZW50KGMucmVsbmFt ZSkiLAorfTsKKwogCiAvKiBBbGwgcmVsYXRpb25zICovCiBzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX2xpc3Rfb2ZfcmVsYXRpb25zID0gewpAQCAtMTI3Nyw2ICsxMjg1LDcgQEAg c3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJQ QVJTRVIiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdHNfcGFyc2VycywgTlVMTCwg VEhJTkdfTk9fU0hPV30sCiAJeyJQT0xJQ1kiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IlBST0NF RFVSRSIsIE5VTEwsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0X29mX3Byb2NlZHVyZXN9LAorCXsiUFJP UEVSVFkgR1JBUEgiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvcGdyYXBoc30s CiAJeyJQVUJMSUNBVElPTiIsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0X29mX3B1YmxpY2F0aW9uc30s CiAJeyJST0xFIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9LAogCXsiUk9VVElORSIsIE5VTEws IE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9yb3V0aW5lcywgTlVMTCwgVEhJTkdfTk9fQ1JFQVRF fSwKQEAgLTI2MzksNiArMjY0OCwyMCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQT0xJQ1kiLCBNYXRjaEFueSwgIk9O IiwgTWF0Y2hBbnksICJXSVRIIiwgIkNIRUNLIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAor CS8qIEFMVEVSIFBST1BFUlRZIEdSQVBIICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi UFJPUEVSVFkiLCAiR1JBUEgiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfcHJvcGdyYXBocyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJP UEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJBTFRF UiIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwgIkFE RHxBTFRFUnxEUk9QIikpCisJCUNPTVBMRVRFX1dJVEgoIlZFUlRFWCIsICJFREdFIik7CisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwgIkFE RHxEUk9QIiwgIlZFUlRFWHxFREdFIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIpOworCWVs c2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55 LCAiQUREIikgJiYgVGFpbE1hdGNoZXMoIkVER0UiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEVT Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRj aEFueSwgIkFMVEVSIiwgIlZFUlRFWHxFREdFIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7 CisKIAkvKiBBTFRFUiBSVUxFIDxuYW1lPiwgYWRkIE9OICovCiAJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiUlVMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT04iKTsKQEAgLTMx MTcsNyArMzE0MCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJ CQkgICJGT1JFSUdOIERBVEEgV1JBUFBFUiIsICJGT1JFSUdOIFRBQkxFIiwKIAkJCQkJICAiRlVO Q1RJT04iLCAiSU5ERVgiLCAiTEFOR1VBR0UiLCAiTEFSR0UgT0JKRUNUIiwKIAkJCQkJICAiTUFU RVJJQUxJWkVEIFZJRVciLCAiT1BFUkFUT1IiLCAiUE9MSUNZIiwKLQkJCQkJICAiUFJPQ0VEVVJF IiwgIlBST0NFRFVSQUwgTEFOR1VBR0UiLCAiUFVCTElDQVRJT04iLCAiUk9MRSIsCisJCQkJCSAg IlBST0NFRFVSRSIsICJQUk9DRURVUkFMIExBTkdVQUdFIiwgIlBST1BFUlRZIEdSQVBIIiwgIlBV QkxJQ0FUSU9OIiwgIlJPTEUiLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwg IlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9O IiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZP Uk0gRk9SIiwKQEAgLTMxNTUsNiArMzE3OCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCX0KIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIlBST0NF RFVSQUwiLCAiTEFOR1VBR0UiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9sYW5ndWFnZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiUFJP UEVSVFkiLCAiR1JBUEgiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfcHJvcGdyYXBocyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIs ICJSVUxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPTiIpOwogCWVsc2UgaWYgKE1h dGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiUlVMRSIsIE1hdGNoQW55LCAiT04iKSkKQEAgLTM0NzMs NiArMzQ5OCwyNSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNl IGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUE9MSUNZIiwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55 LCAiQVMiLCBNYXRjaEFueSwgIlVTSU5HIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyog Q1JFQVRFIFBST1BFUlRZIEdSQVBIICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBS T1BFUlRZIikpCisJCUNPTVBMRVRFX1dJVEgoIkdSQVBIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRI KCJWRVJURVgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JB UEgiLCBNYXRjaEFueSwgIlZFUlRFWHxOT0RFIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIp OworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNo QW55LCAiVkVSVEVYfE5PREUiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwg IlZFUlRFWHxOT0RFIiwgIlRBQkxFUyIsICIoIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0Y2hBbnksICJWRVJURVh8Tk9ERSIsICJUQUJMRVMi LCAiKCopIikpCisJCUNPTVBMRVRFX1dJVEgoIkVER0UiKTsKKwllbHNlIGlmIChIZWFkTWF0Y2hl cygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIikgJiYgVGFpbE1hdGNoZXMoIkVER0V8UkVM QVRJT05TSElQIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIpOworCWVsc2UgaWYgKEhlYWRN YXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiKSAmJiBUYWlsTWF0Y2hlcygiRURH RXxSRUxBVElPTlNISVAiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKwllbHNl IGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIikgJiYgVGFpbE1h dGNoZXMoIkVER0V8UkVMQVRJT05TSElQIiwgIlRBQkxFUyIsICIoIikpCisJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CiAKIC8qIENSRUFURSBQ VUJMSUNBVElPTiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55KSkKQEAgLTQxNjcsNiArNDIxMSwxMiBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlBPTElDWSIsIE1hdGNo QW55LCAiT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJ Q1QiKTsKIAorCS8qIERST1AgUFJPUEVSVFkgR1JBUEggKi8KKwllbHNlIGlmIChNYXRjaGVzKCJE Uk9QIiwgIlBST1BFUlRZIikpCisJCUNPTVBMRVRFX1dJVEgoIkdSQVBIIik7CisJZWxzZSBpZiAo TWF0Y2hlcygiRFJPUCIsICJQUk9QRVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1ND SEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKKwogCS8qIERST1AgUlVM RSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiUlVMRSIsIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiT04iKTsKQEAgLTQ0MTEsNiArNDQ2MSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiTEFSR0UgT0JKRUNUIiwKIAkJCQkJCQkJ CQkJIlBBUkFNRVRFUiIsCiAJCQkJCQkJCQkJCSJQUk9DRURVUkUiLAorCQkJCQkJCQkJCQkiUFJP UEVSVFkgR1JBUEgiLAogCQkJCQkJCQkJCQkiUk9VVElORSIsCiAJCQkJCQkJCQkJCSJTQ0hFTUEi LAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLApAQCAtNDUzOSw2ICs0NTkwLDE0IEBAIG1hdGNoX3By ZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSCgiRlJPTSIpOwog CX0KIAorLyogR1JBUEhfVEFCTEUgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBUEhfVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFQ SF9UQUJMRSIsICIoIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3Byb3BncmFwaHMpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFQSF9UQUJMRSIs ICIoIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJNQVRDSCIpOworCiAvKiBHUk9VUCBC WSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwgTWF0Y2hBbnksICJHUk9VUCIpKQog CQlDT01QTEVURV9XSVRIKCJCWSIpOwpAQCAtNDg2Miw4ICs0OTIxLDEwIEBAIG1hdGNoX3ByZXZp b3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIsICJDT0xV TU4iLCAiQUdHUkVHQVRFIiwgIkRBVEFCQVNFIiwgIkRPTUFJTiIsCiAJCQkJCSAgIkVWRU5UIFRS SUdHRVIiLCAiRk9SRUlHTiBUQUJMRSIsICJGVU5DVElPTiIsCiAJCQkJCSAgIkxBUkdFIE9CSkVD VCIsICJNQVRFUklBTElaRUQgVklFVyIsICJMQU5HVUFHRSIsCi0JCQkJCSAgIlBVQkxJQ0FUSU9O IiwgIlBST0NFRFVSRSIsICJST0xFIiwgIlJPVVRJTkUiLCAiU0NIRU1BIiwKKwkJCQkJICAiUFJP UEVSVFkgR1JBUEgiLCAiUFVCTElDQVRJT04iLCAiUFJPQ0VEVVJFIiwgIlJPTEUiLCAiUk9VVElO RSIsICJTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRSIsICJTVUJTQ1JJUFRJT04iLCAiVEFCTEVT UEFDRSIsICJUWVBFIiwgIlZJRVciKTsKKwllbHNlIGlmIChNYXRjaGVzKCJTRUNVUklUWSIsICJM QUJFTCIsICJPTiIsICJQUk9QRVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKIAllbHNlIGlmIChNYXRjaGVz KCJTRUNVUklUWSIsICJMQUJFTCIsICJPTiIsIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCUNPTVBM RVRFX1dJVEgoIklTIik7CiAKQEAgLTUyNzgsNiArNTMzOSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSCgiT0JKRUNUIik7CiAJCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJNQVRFUklBTElaRUQiKSkKIAkJ CUNPTVBMRVRFX1dJVEgoIlZJRVciKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURXxB TFRFUnxEUk9QIiwgIlBST1BFUlRZIikpCisJCQlDT01QTEVURV9XSVRIKCJHUkFQSCIpOwogCQll bHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAiVEVYVCIpKQogCQkJQ09N UExFVEVfV0lUSCgiU0VBUkNIIik7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEV8QUxU RVJ8RFJPUCIsICJVU0VSIikpCmRpZmYgLS1naXQgYS9zcmMvZmVfdXRpbHMvcHNxbHNjYW4ubCBi L3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5sCmluZGV4IDhlOGIwNDllMTVmLi5kMTM4NGY2ZTU4YSAx MDA2NDQKLS0tIGEvc3JjL2ZlX3V0aWxzL3BzcWxzY2FuLmwKKysrIGIvc3JjL2ZlX3V0aWxzL3Bz cWxzY2FuLmwKQEAgLTMwMiw2ICszMDIsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9l cXVhbHMJIj49IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUg dGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5n bGUgb3BlcmF0b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRo ZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3Rl cgpAQCAtMzEzLDcgKzMxNSw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2Ug ZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQog ICogcnVsZSBmb3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwv XCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9w X2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7 b3BfY2hhcnN9KwogCkBAIC02NjEsNiArNjYzLDEwIEBAIG90aGVyCQkJLgogCQkJCQlFQ0hPOwog CQkJCX0KIAore3JpZ2h0X2Fycm93fQl7CisJCQkJCUVDSE87CisJCQkJfQorCiAJLyoKIAkgKiBU aGVzZSBydWxlcyBhcmUgc3BlY2lmaWMgdG8gcHNxbCAtLS0gdGhleSBpbXBsZW1lbnQgcGFyZW50 aGVzaXMKIAkgKiBjb3VudGluZyBhbmQgZGV0ZWN0aW9uIG9mIGNvbW1hbmQtZW5kaW5nIHNlbWlj b2xvbi4gIFRoZXNlIG11c3QKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZp bGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi5lMTI2 YWExOTliMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSwxMiBAQCBDQVRBTE9HX0hF QURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKIAlwZ19wdWJsaWNhdGlv bl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNjcmlwdGlvbl9yZWwuaAor CXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBcCisJcGdf cHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaCBcCisJcGdfcHJvcGdyYXBoX2xhYmVsLmggXAorCXBn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIFwKKwlwZ19wcm9wZ3JhcGhfcHJvcGVydHkuaAog CiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpCiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGY3MGQxZGFiYTUyLi5kZTIxOGMzZTk5ZSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCkBAIC02OSw2ICs2OSwxMSBAQCBjYXRhbG9nX2hlYWRlcnMgPSBb CiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdw Z19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfcHJvcGdyYXBoX2VsZW1lbnQuaCcsCisgICdw Z19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oJywKKyAgJ3BnX3Byb3BncmFwaF9sYWJlbC5oJywK KyAgJ3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oJywKKyAgJ3BnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oJywKIF0KIAogIyBUaGUgLmRhdCBmaWxlcyB3ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3Rl ZCBhbHBoYWJldGljYWxseS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xh c3MuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAppbmRleCAwZmMyYzA5M2IwZC4u NzI5YTJkNzAxNTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmgKQEAgLTE3MSw2ICsxNzEsNyBAQCBN QUtFX1NZU0NBQ0hFKFJFTE5BTUVOU1AsIHBnX2NsYXNzX3JlbG5hbWVfbnNwX2luZGV4LCAxMjgp OwogI2RlZmluZQkJICBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgICAnZicJLyogZm9yZWlnbiB0YWJs ZSAqLwogI2RlZmluZQkJICBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFICdwJyAvKiBwYXJ0aXRp b25lZCB0YWJsZSAqLwogI2RlZmluZQkJICBSRUxLSU5EX1BBUlRJVElPTkVEX0lOREVYICdJJyAv KiBwYXJ0aXRpb25lZCBpbmRleCAqLworI2RlZmluZQkJICBSRUxLSU5EX1BST1BHUkFQSAkJICAn ZycJLyogcHJvcGVydHkgZ3JhcGggKi8KIAogI2RlZmluZQkJICBSRUxQRVJTSVNURU5DRV9QRVJN QU5FTlQJJ3AnIC8qIHJlZ3VsYXIgdGFibGUgKi8KICNkZWZpbmUJCSAgUkVMUEVSU0lTVEVOQ0Vf VU5MT0dHRUQJJ3UnIC8qIHVubG9nZ2VkIHBlcm1hbmVudCB0YWJsZSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggOTU3NTUyNDAwN2YuLmNkNTM3OWU4ZmQ5IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTM4NzEsNiArMzg3MSw5IEBACiAgIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lk JywgcHJvc3JjID0+ICdvaWRnZScgfSwKIAogIyBTeXN0ZW0tdmlldyBzdXBwb3J0IGZ1bmN0aW9u cworeyBvaWQgPT4gJzgzMDInLCBkZXNjciA9PiAnc291cmNlIHRleHQgb2YgYSBwcm9wZXJ0eSBn cmFwaCcsCisgIHByb25hbWUgPT4gJ3BnX2dldF9wcm9wZ3JhcGhkZWYnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ3RleHQnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJv c3JjID0+ICdwZ19nZXRfcHJvcGdyYXBoZGVmJyB9LAogeyBvaWQgPT4gJzE1NzMnLCBkZXNjciA9 PiAnc291cmNlIHRleHQgb2YgYSBydWxlJywKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3J1bGVkZWYn LCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3RleHQnLAogICBwcm9hcmd0eXBl cyA9PiAnb2lkJywgcHJvc3JjID0+ICdwZ19nZXRfcnVsZWRlZicgfSwKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMmJjMjA2NmI2YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHBnX3Byb3BncmFwaF9lbGVtZW50LmgKKyAqCSAgZGVmaW5pdGlv biBvZiB0aGUgInByb3BlcnR5IGdyYXBoIGVsZW1lbnRzIiBzeXN0ZW0gY2F0YWxvZyAocGdfcHJv cGdyYXBoX2VsZW1lbnQpCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoK KyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAorICoKKyAqIE5P VEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2 ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisjaWZuZGVmIFBHX1BST1BHUkFQSF9FTEVNRU5UX0gKKyNkZWZpbmUgUEdfUFJPUEdSQVBIX0VM RU1FTlRfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb3BncmFwaF9lbGVtZW50X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBn X3Byb3BncmFwaF9lbGVtZW50IGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnQKKyAqIC0tLS0tLS0t LS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhfZWxlbWVudCw4Mjk5LFByb3BncmFw aEVsZW1lbnRSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgcHJv cGVydHkgZ3JhcGggcmVsYXRpb24gKi8KKwlPaWQJCQlwZ2VwZ2lkIEJLSV9MT09LVVAocGdfY2xh c3MpOworCisJLyogT0lEIG9mIHRoZSBlbGVtZW50IHRhYmxlICovCisJT2lkCQkJcGdlcmVsaWQg QktJX0xPT0tVUChwZ19jbGFzcyk7CisKKwkvKiBlbGVtZW50IGFsaWFzICovCisJTmFtZURhdGEJ cGdlYWxpYXM7CisKKwkvKiB2ZXJ0ZXggb3IgZWRnZT8gLS0gc2VlIFBHRUtJTkRfKiBiZWxvdyAq LworCWNoYXIJCXBnZWtpbmQ7CisKKwkvKiBmb3IgZWRnZXM6IHNvdXJjZSB2ZXJ0ZXggKi8KKwlP aWQJCQlwZ2VzcmN2ZXJ0ZXhpZCBCS0lfTE9PS1VQX09QVChwZ19wcm9wZ3JhcGhfZWxlbWVudCk7 CisKKwkvKiBmb3IgZWRnZXM6IGRlc3RpbmF0aW9uIHZlcnRleCAqLworCU9pZAkJCXBnZWRlc3R2 ZXJ0ZXhpZCBCS0lfTE9PS1VQX09QVChwZ19wcm9wZ3JhcGhfZWxlbWVudCk7CisKKyNpZmRlZiBD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwor CS8qIGVsZW1lbnQga2V5IChjb2x1bW4gbnVtYmVycyBpbiBwZ2VyZWxpZCByZWxhdGlvbikgKi8K KwlpbnQxNgkJcGdla2V5WzFdIEJLSV9GT1JDRV9OT1RfTlVMTDsKKworCS8qCisJICogZm9yIGVk Z2VzOiBzb3VyY2UgdmVydGV4IGtleSAoY29sdW1uIG51bWJlcnMgaW4gcGdlcmVsaWQgcmVsYXRp b24pCisJICovCisJaW50MTYJCXBnZXNyY2tleVsxXTsKKworCS8qCisJICogZm9yIGVkZ2VzOiBz b3VyY2UgdmVydGV4IHRhYmxlIHJlZmVyZW5jZWQgY29sdW1ucyAoY29sdW1uIG51bWJlcnMgaW4K KwkgKiByZWxhdGlvbiByZWFjaGVkIHZpYSBwZ2VzcmN2ZXJ0ZXhpZCkKKwkgKi8KKwlpbnQxNgkJ cGdlc3JjcmVmWzFdOworCisJLyoKKwkgKiBmb3IgZWRnZXM6IGRlc3RpbmF0aW9uIHZlcnRleCBr ZXkgKGNvbHVtbiBudW1iZXJzIGluIHBnZXJlbGlkIHJlbGF0aW9uKQorCSAqLworCWludDE2CQlw Z2VkZXN0a2V5WzFdOworCisJLyoKKwkgKiBmb3IgZWRnZXM6IGRlc3RpbmF0aW9uIHZlcnRleCB0 YWJsZSByZWZlcmVuY2VkIGNvbHVtbnMgKGNvbHVtbiBudW1iZXJzCisJICogaW4gcmVsYXRpb24g cmVhY2hlZCB2aWEgcGdlZGVzdHZlcnRleGlkKQorCSAqLworCWludDE2CQlwZ2VkZXN0cmVmWzFd OworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50OworCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBjb3JyZXNwb25kcyB0byBh IHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wcm9wZ3JhcGhf ZWxlbWVudCByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3Jt RGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudCAqRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudDsKKwor REVDTEFSRV9UT0FTVChwZ19wcm9wZ3JhcGhfZWxlbWVudCwgODMxNSwgODMxNik7CisKK0RFQ0xB UkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcHJvcGdyYXBoX2VsZW1lbnRfb2lkX2luZGV4LCA4MzAw LCBQcm9wZ3JhcGhFbGVtZW50T2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBoX2VsZW1lbnQsIGJ0 cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfZWxl bWVudF9hbGlhc19pbmRleCwgODMwMSwgUHJvcGdyYXBoRWxlbWVudEFsaWFzSW5kZXhJZCwgcGdf cHJvcGdyYXBoX2VsZW1lbnQsIGJ0cmVlKHBnZXBnaWQgb2lkX29wcywgcGdlYWxpYXMgbmFtZV9v cHMpKTsKKworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhFTE9JRCwgcGdfcHJvcGdyYXBoX2VsZW1l bnRfb2lkX2luZGV4LCAxMjgpOworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhFTEFMSUFTLCBwZ19w cm9wZ3JhcGhfZWxlbWVudF9hbGlhc19pbmRleCwgMTI4KTsKKworI2lmZGVmIEVYUE9TRV9UT19D TElFTlRfQ09ERQorCisvKgorICogU3ltYm9saWMgdmFsdWVzIGZvciBwZ2VraW5kIGNvbHVtbgor ICovCisjZGVmaW5lIFBHRUtJTkRfVkVSVEVYICd2JworI2RlZmluZSBQR0VLSU5EX0VER0UgJ2Un CisKKyNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KKworI2VuZGlmCQkJ CQkJCS8qIFBHX1BST1BHUkFQSF9FTEVNRU5UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uOTE4NTFhMTkyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLmgKQEAgLTAsMCArMSw1MSBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaAor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLmgKKyAqCisgKiBOT1RFUworICoJICBU aGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQor ICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQ R19QUk9QR1JBUEhfRUxFTUVOVF9MQUJFTF9ICisjZGVmaW5lIFBHX1BST1BHUkFQSF9FTEVNRU5U X0xBQkVMX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0K KyAqCQlwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRo aXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfcHJvcGdyYXBoX2Vs ZW1lbnRfbGFiZWwsODMwNSxQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkKQoreworCU9p ZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgbGFiZWwgKi8KKwlPaWQJCQlwZ2VsbGFiZWxpZCBC S0lfTE9PS1VQKHBnX3Byb3BncmFwaF9sYWJlbCk7CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5 IGdyYXBoIGVsZW1lbnQgKi8KKwlPaWQJCQlwZ2VsZWxpZCBCS0lfTE9PS1VQKHBnX3Byb3BncmFw aF9lbGVtZW50KTsKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw7CisKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9m IHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0t LQorICovCit0eXBlZGVmIEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsICpGb3Jt X3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZ KHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX29pZF9pbmRleCwgODMxMiwgUHJvcGdyYXBoRWxl bWVudExhYmVsT2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwsIGJ0cmVl KG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfZWxlbWVu dF9sYWJlbF9lbGVtZW50X2xhYmVsX2luZGV4LCA4MzEzLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxF bGVtZW50TGFiZWxJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCwgYnRyZWUocGdl bGVsaWQgb2lkX29wcywgcGdlbGxhYmVsaWQgb2lkX29wcykpOworREVDTEFSRV9JTkRFWChwZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9sYWJlbF9pbmRleCwgODMxNywgUHJvcGdyYXBoRWxlbWVu dExhYmVsTGFiZWxJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCwgYnRyZWUocGdl bGxhYmVsaWQgb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSEVMRU1FTlRMQUJF TEVMRU1FTlRMQUJFTCwgcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfZWxlbWVudF9sYWJlbF9p bmRleCwgMTI4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1BST1BHUkFQSF9FTEVNRU5UX0xBQkVM X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVs LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNmI3MTEzNTFiNQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgKQEAgLTAsMCArMSw1 MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2xhYmVsLmgKKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9n LnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9y bWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX1BST1BHUkFQ SF9MQUJFTF9ICisjZGVmaW5lIFBHX1BST1BHUkFQSF9MQUJFTF9ICisKKyNpbmNsdWRlICJjYXRh bG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsX2QuaCIK KworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3Byb3BncmFwaF9sYWJlbCBkZWZpbml0aW9u LiAgY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3By b3BncmFwaF9sYWJlbAorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3Byb3Bn cmFwaF9sYWJlbCw4MzAzLFByb3BncmFwaExhYmVsUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7 CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5IGdyYXBoIHJlbGF0aW9uICovCisJT2lkCQkJcGds cGdpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsKKworCS8qIGxhYmVsIG5hbWUgKi8KKwlOYW1lRGF0 YQlwZ2xsYWJlbDsKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsOworCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwgY29ycmVzcG9uZHMgdG8gYSBw b2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcHJvcGdyYXBoX2xh YmVsIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZvcm1EYXRh X3BnX3Byb3BncmFwaF9sYWJlbCAqRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWw7CisKK0RFQ0xBUkVf VU5JUVVFX0lOREVYX1BLRVkocGdfcHJvcGdyYXBoX2xhYmVsX29pZF9pbmRleCwgODMwNCwgUHJv cGdyYXBoTGFiZWxPYmplY3RJbmRleElkLCBwZ19wcm9wZ3JhcGhfbGFiZWwsIGJ0cmVlKG9pZCBv aWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfbGFiZWxfZ3JhcGhf bmFtZV9pbmRleCwgODMxNCwgUHJvcGdyYXBoTGFiZWxHcmFwaE5hbWVJbmRleElkLCBwZ19wcm9w Z3JhcGhfbGFiZWwsIGJ0cmVlKHBnbHBnaWQgb2lkX29wcywgcGdsbGFiZWwgbmFtZV9vcHMpKTsK KworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhMQUJFTE9JRCwgcGdfcHJvcGdyYXBoX2xhYmVsX29p ZF9pbmRleCwgMTI4KTsKK01BS0VfU1lTQ0FDSEUoUFJPUEdSQVBITEFCRUxOQU1FLCBwZ19wcm9w Z3JhcGhfbGFiZWxfZ3JhcGhfbmFtZV9pbmRleCwgMTI4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBH X1BST1BHUkFQSF9MQUJFTF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYTk1OTUyMTU2NzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oCisgKgorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0 YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBp bmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19QUk9Q R1JBUEhfTEFCRUxfUFJPUEVSVFlfSAorI2RlZmluZSBQR19QUk9QR1JBUEhfTEFCRUxfUFJPUEVS VFlfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAq CQlwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlz IGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJv cGVydHkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhfbGFi ZWxfcHJvcGVydHksODMxOCxQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5ICovCisJT2lkCQkJcGxwcHJvcGlk IEJLSV9MT09LVVAocGdfcHJvcGdyYXBoX3Byb3BlcnR5KTsKKworCS8qIE9JRCBvZiB0aGUgZWxl bWVudCBsYWJlbCAqLworCU9pZAkJCXBscGVsbGFiZWxpZCBCS0lfTE9PS1VQKHBnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsKTsKKworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUt bGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisKKwkvKiBwcm9wZXJ0eSBleHByZXNzaW9uICov CisJcGdfbm9kZV90cmVlIHBscGV4cHIgQktJX0ZPUkNFX05PVF9OVUxMOworCisjZW5kaWYKK30g Rm9ybURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5OworCisvKiAtLS0tLS0tLS0tLS0t LS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgY29ycmVzcG9uZHMgdG8g YSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcHJvcGdyYXBo X2xhYmVsX3Byb3BlcnR5IHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBl ZGVmIEZvcm1EYXRhX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSAqRm9ybV9wZ19wcm9wZ3Jh cGhfbGFiZWxfcHJvcGVydHk7CisKK0RFQ0xBUkVfVE9BU1QocGdfcHJvcGdyYXBoX2xhYmVsX3By b3BlcnR5LCA4MzE5LCA4MzIwKTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHlfb2lkX2luZGV4LCA4MzIxLCBQcm9wZ3JhcGhMYWJlbFByb3Bl cnR5T2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LCBidHJlZShvaWQg b2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcHJvcGdyYXBoX2xhYmVsX3Byb3Bl cnR5X2xhYmVsX3Byb3BfaW5kZXgsIDgzMjIsIFByb3BncmFwaExhYmVsUHJvcGVydHlMYWJlbFBy b3BJbmRleElkLCBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHksIGJ0cmVlKHBscGVsbGFiZWxp ZCBvaWRfb3BzLCBwbHBwcm9waWQgb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQ SExBQkVMUFJPUCwgcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X2xhYmVsX3Byb3BfaW5kZXgs IDEyOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19QUk9QR1JBUEhfTEFCRUxfUFJPUEVSVFlfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHku aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4OTIxYWNlMzBjCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaApAQCAtMCww ICsxLDU0IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wcm9wZ3JhcGhfcHJvcGVy dHkuaAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0 LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oCisgKgorICogTk9URVMKKyAqCSAg VGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEK KyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYg UEdfUFJPUEdSQVBIX1BST1BFUlRZX0gKKyNkZWZpbmUgUEdfUFJPUEdSQVBIX1BST1BFUlRZX0gK KworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9w Z3JhcGhfcHJvcGVydHlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfcHJvcGdy YXBoX3Byb3BlcnR5IGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRl ZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcHJvcGdyYXBoX3Byb3BlcnR5CisgKiAtLS0tLS0tLS0tLS0t LS0tCisgKi8KK0NBVEFMT0cocGdfcHJvcGdyYXBoX3Byb3BlcnR5LDgzMDYsUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgcHJvcGVy dHkgZ3JhcGggcmVsYXRpb24gKi8KKwlPaWQJCQlwZ3BwZ2lkIEJLSV9MT09LVVAocGdfY2xhc3Mp OworCisJLyogcHJvcGVydHkgbmFtZSAqLworCU5hbWVEYXRhCXBncG5hbWU7CisKKwkvKiBkYXRh IHR5cGUgb2YgdGhlIHByb3BlcnR5ICovCisJT2lkCQkJcGdwdHlwaWQgQktJX0xPT0tVUF9PUFQo cGdfdHlwZSk7Cit9IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9wcm9wZXJ0eTsKKworLyogLS0tLS0t LS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5IGNvcnJlc3BvbmRzIHRv IGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBnX3Byb3BncmFw aF9wcm9wZXJ0eSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBG b3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgKkZvcm1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5 OworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWRf aW5kZXgsIDgzMDcsIFByb3BncmFwaFByb3BlcnR5T2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBo X3Byb3BlcnR5LCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWVfaW5kZXgsIDgzMDgsIFByb3BncmFwaFByb3BlcnR5TmFt ZUluZGV4SWQsIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSwgYnRyZWUocGdwcGdpZCBvaWRfb3BzLCBw Z3BuYW1lIG5hbWVfb3BzKSk7CisKK01BS0VfU1lTQ0FDSEUoUFJPUEdSQVBIUFJPUE9JRCwgcGdf cHJvcGdyYXBoX3Byb3BlcnR5X29pZF9pbmRleCwgMTI4KTsKK01BS0VfU1lTQ0FDSEUoUFJPUEdS QVBIUFJPUE5BTUUsIHBnX3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lX2luZGV4LCAxMjgpOworCisj ZW5kaWYJCQkJCQkJLyogUEdfUFJPUEdSQVBIX1BST1BFUlRZX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3Byb3BncmFwaGNtZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MjQ0MGJkNGE2MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wcm9w Z3JhcGhjbWRzLmgKQEAgLTAsMCArMSwyMyBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog cHJvcGdyYXBoY21kcy5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHByb3BncmFwaGNtZHMuYy4KKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29t bWFuZHMvcHJvcGdyYXBoY21kcy5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lm bmRlZiBQUk9QR1JBUEhDTURTX0gKKyNkZWZpbmUgUFJPUEdSQVBIQ01EU19ICisKKyNpbmNsdWRl ICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5o IgorCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBjb25zdCBDcmVhdGVQcm9wR3JhcGhTdG10ICpzdG10KTsKK2V4dGVybiBPYmplY3RBZGRy ZXNzIEFsdGVyUHJvcEdyYXBoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQWx0ZXJQcm9wR3Jh cGhTdG10ICpzdG10KTsKKworI2VuZGlmCQkJCQkJCS8qIFBST1BHUkFQSENNRFNfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDBmOTQ2MjQ5M2UzLi5jNTE2MmZlZGNkMSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtNjg0LDYgKzY4NCwxOSBAQCB0eXBlZGVmIHN0cnVjdCBSYW5nZVRh YmxlRnVuY0NvbAogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KIH0gUmFuZ2VUYWJsZUZ1bmNDb2w7CiAKKy8qCisgKiBSYW5nZUdyYXBo VGFibGUgLSByYXcgZm9ybSBvZiBHUkFQSF9UQUJMRSBjbGF1c2UKKyAqLwordHlwZWRlZiBzdHJ1 Y3QgUmFuZ2VHcmFwaFRhYmxlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpncmFw aF9uYW1lOworCXN0cnVjdCBHcmFwaFBhdHRlcm4gKmdyYXBoX3BhdHRlcm47CisJTGlzdAkgICAq Y29sdW1uczsKKwlBbGlhcwkgICAqYWxpYXM7CQkJLyogdGFibGUgYWxpYXMgJiBvcHRpb25hbCBj b2x1bW4gYWxpYXNlcyAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24s IG9yIC0xIGlmIHVua25vd24gKi8KK30gUmFuZ2VHcmFwaFRhYmxlOworCiAvKgogICogUmFuZ2VU YWJsZVNhbXBsZSAtIFRBQkxFU0FNUExFIGFwcGVhcmluZyBpbiBhIHJhdyBGUk9NIGNsYXVzZQog ICoKQEAgLTk1MCw2ICs5NjMsNDIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFydGl0aW9uQ21kCiAJYm9v bAkJY29uY3VycmVudDsKIH0gUGFydGl0aW9uQ21kOwogCisvKgorICogTm9kZXMgZm9yIGdyYXBo IHBhdHRlcm4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBHcmFwaFBhdHRlcm4KK3sKKwlOb2RlVGFn CQl0eXBlOworCUxpc3QJICAgKnBhdGhfcGF0dGVybl9saXN0OworCU5vZGUJICAgKndoZXJlQ2xh dXNlOworfSBHcmFwaFBhdHRlcm47CisKK3R5cGVkZWYgZW51bSBHcmFwaEVsZW1lbnRQYXR0ZXJu S2luZAoreworCVZFUlRFWF9QQVRURVJOLAorCUVER0VfUEFUVEVSTl9MRUZULAorCUVER0VfUEFU VEVSTl9SSUdIVCwKKwlFREdFX1BBVFRFUk5fQU5ZLAorCVBBUkVOX0VYUFIsCit9IEdyYXBoRWxl bWVudFBhdHRlcm5LaW5kOworCisjZGVmaW5lIElTX0VER0VfUEFUVEVSTihraW5kKSAoKGtpbmQp ID09IEVER0VfUEFUVEVSTl9BTlkgfHwgXAorCQkJCQkJCSAgIChraW5kKSA9PSBFREdFX1BBVFRF Uk5fUklHSFQgfHwgXAorCQkJCQkJCSAgIChraW5kKSA9PSBFREdFX1BBVFRFUk5fTEVGVCkKKwor dHlwZWRlZiBzdHJ1Y3QgR3JhcGhFbGVtZW50UGF0dGVybgoreworCU5vZGVUYWcJCXR5cGU7CisJ R3JhcGhFbGVtZW50UGF0dGVybktpbmQga2luZDsKKwljb25zdCBjaGFyICp2YXJpYWJsZTsKKwlO b2RlCSAgICpsYWJlbGV4cHI7CisJTGlzdAkgICAqc3ViZXhwcjsKKwlOb2RlCSAgICp3aGVyZUNs YXVzZTsKKwlMaXN0CSAgICpxdWFudGlmaWVyOworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBHcmFw aEVsZW1lbnRQYXR0ZXJuOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoJTm9kZXMgZm9yIGEg UXVlcnkgdHJlZQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMDIyLDYgKzEwNzEsNyBAQCB0 eXBlZGVmIGVudW0gUlRFS2luZAogCVJURV9WQUxVRVMsCQkJCQkvKiBWQUxVRVMgKDxleHBybGlz dD4pLCAoPGV4cHJsaXN0PiksIC4uLiAqLwogCVJURV9DVEUsCQkJCQkvKiBjb21tb24gdGFibGUg ZXhwciAoV0lUSCBsaXN0IGVsZW1lbnQpICovCiAJUlRFX05BTUVEVFVQTEVTVE9SRSwJCS8qIHR1 cGxlc3RvcmUsIGUuZy4gZm9yIEFGVEVSIHRyaWdnZXJzICovCisJUlRFX0dSQVBIX1RBQkxFLAkJ CS8qIEdSQVBIX1RBQkxFIGNsYXVzZSAqLwogCVJURV9SRVNVTFQsCQkJCQkvKiBSVEUgcmVwcmVz ZW50cyBhbiBlbXB0eSBGUk9NIGNsYXVzZTsgc3VjaAogCQkJCQkJCQkgKiBSVEVzIGFyZSBhZGRl ZCBieSB0aGUgcGxhbm5lciwgdGhleSdyZSBub3QKIAkJCQkJCQkJICogcHJlc2VudCBkdXJpbmcg cGFyc2luZyBvciByZXdyaXRpbmcgKi8KQEAgLTExODMsNiArMTIzMywxMiBAQCB0eXBlZGVmIHN0 cnVjdCBSYW5nZVRibEVudHJ5CiAJICovCiAJVGFibGVGdW5jICAqdGFibGVmdW5jOwogCisJLyoK KwkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgZ3JhcGggdGFibGUgUlRFIChlbHNlIE5VTEwpOgorCSAq LworCUdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybjsKKwlMaXN0CSAgICpncmFwaF90YWJsZV9j b2x1bW5zOworCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgdmFsdWVzIFJURSAoZWxzZSBO SUwpOgogCSAqLwpAQCAtMjI5NSw2ICsyMzUxLDcgQEAgdHlwZWRlZiBlbnVtIE9iamVjdFR5cGUK IAlPQkpFQ1RfUEFSQU1FVEVSX0FDTCwKIAlPQkpFQ1RfUE9MSUNZLAogCU9CSkVDVF9QUk9DRURV UkUsCisJT0JKRUNUX1BST1BHUkFQSCwKIAlPQkpFQ1RfUFVCTElDQVRJT04sCiAJT0JKRUNUX1BV QkxJQ0FUSU9OX05BTUVTUEFDRSwKIAlPQkpFQ1RfUFVCTElDQVRJT05fUkVMLApAQCAtNDAzNyw2 ICs0MDk0LDg4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZUNhc3RTdG10CiAJYm9vbAkJaW5vdXQ7 CiB9IENyZWF0ZUNhc3RTdG10OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKglDUkVB VEUgUFJPUEVSVFkgR1JBUEggU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVByb3BHcmFwaFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBl OworCVJhbmdlVmFyICAgKnBnbmFtZTsKKwlMaXN0CSAgICp2ZXJ0ZXhfdGFibGVzOworCUxpc3QJ ICAgKmVkZ2VfdGFibGVzOworfSBDcmVhdGVQcm9wR3JhcGhTdG10OworCit0eXBlZGVmIHN0cnVj dCBQcm9wR3JhcGhWZXJ0ZXgKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZ0YWJs ZTsKKwlMaXN0CSAgICp2a2V5OworCUxpc3QJICAgKmxhYmVsczsKKwlQYXJzZUxvYwlsb2NhdGlv bjsKK30gUHJvcEdyYXBoVmVydGV4OworCit0eXBlZGVmIHN0cnVjdCBQcm9wR3JhcGhFZGdlCit7 CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpldGFibGU7CisJTGlzdAkgICAqZWtleTsK KwlMaXN0CSAgICplc3Jja2V5OworCWNoYXIJICAgKmVzcmN2ZXJ0ZXg7CisJTGlzdAkgICAqZXNy Y3ZlcnRleGNvbHM7CisJTGlzdAkgICAqZWRlc3RrZXk7CisJY2hhcgkgICAqZWRlc3R2ZXJ0ZXg7 CisJTGlzdAkgICAqZWRlc3R2ZXJ0ZXhjb2xzOworCUxpc3QJICAgKmxhYmVsczsKKwlQYXJzZUxv Ywlsb2NhdGlvbjsKK30gUHJvcEdyYXBoRWRnZTsKKwordHlwZWRlZiBzdHJ1Y3QgUHJvcEdyYXBo TGFiZWxBbmRQcm9wZXJ0aWVzCit7CisJTm9kZVRhZwkJdHlwZTsKKwljb25zdCBjaGFyICpsYWJl bDsKKwlzdHJ1Y3QgUHJvcEdyYXBoUHJvcGVydGllcyAqcHJvcGVydGllczsKKwlQYXJzZUxvYwls b2NhdGlvbjsKK30gUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzOworCit0eXBlZGVmIHN0cnVj dCBQcm9wR3JhcGhQcm9wZXJ0aWVzCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICpwcm9w ZXJ0aWVzOworCWJvb2wJCWFsbDsKKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gUHJvcEdyYXBoUHJv cGVydGllczsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJQUxURVIgUFJPUEVSVFkg R1JBUEggU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwordHlwZWRl ZiBlbnVtIEFsdGVyUHJvcEdyYXBoRWxlbWVudEtpbmQKK3sKKwlQUk9QR1JBUEhfRUxFTUVOVF9L SU5EX1ZFUlRFWCA9IDEsCisJUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9FREdFID0gMiwKK30gQWx0 ZXJQcm9wR3JhcGhFbGVtZW50S2luZDsKKwordHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQcm9wR3JhcGhT dG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpwZ25hbWU7CisJYm9vbAkJbWlz c2luZ19vazsKKwlMaXN0CSAgICphZGRfdmVydGV4X3RhYmxlczsKKwlMaXN0CSAgICphZGRfZWRn ZV90YWJsZXM7CisJTGlzdAkgICAqZHJvcF92ZXJ0ZXhfdGFibGVzOworCUxpc3QJICAgKmRyb3Bf ZWRnZV90YWJsZXM7CisJRHJvcEJlaGF2aW9yIGRyb3BfYmVoYXZpb3I7CisJQWx0ZXJQcm9wR3Jh cGhFbGVtZW50S2luZCBlbGVtZW50X2tpbmQ7CisJY29uc3QgY2hhciAqZWxlbWVudF9hbGlhczsK KwlMaXN0CSAgICphZGRfbGFiZWxzOworCWNvbnN0IGNoYXIgKmRyb3BfbGFiZWw7CisJY29uc3Qg Y2hhciAqYWx0ZXJfbGFiZWw7CisJUHJvcEdyYXBoUHJvcGVydGllcyAqYWRkX3Byb3BlcnRpZXM7 CisJTGlzdAkgICAqZHJvcF9wcm9wZXJ0aWVzOworfSBBbHRlclByb3BHcmFwaFN0bXQ7CisKIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCUNSRUFURSBUUkFOU0ZPUk0gU3RhdGVtZW50CiAg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGIwZWYxOTUy ZThmLi5hMjQ2YmQ5ZGZkNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIxMjgsNiArMjEyOCwy OCBAQCB0eXBlZGVmIHN0cnVjdCBJbmZlcmVuY2VFbGVtCiAJT2lkCQkJaW5mZXJvcGNsYXNzOwkv KiBPSUQgb2YgYXR0IG9wY2xhc3MsIG9yIEludmFsaWRPaWQgKi8KIH0gSW5mZXJlbmNlRWxlbTsK IAorLyoKKyAqIEdyYXBoTGFiZWxSZWYgLSBsYWJlbCByZWZlcmVuY2UgaW4gbGFiZWwgZXhwcmVz c2lvbiBpbnNpZGUgR1JBUEhfVEFCTEUgY2xhdXNlCisgKi8KK3R5cGVkZWYgc3RydWN0IEdyYXBo TGFiZWxSZWYKK3sKKwlOb2RlVGFnCQl0eXBlOworCU9pZAkJCWxhYmVsaWQ7CisJUGFyc2VMb2MJ bG9jYXRpb247Cit9IEdyYXBoTGFiZWxSZWY7CisKKy8qCisgKiBHcmFwaFByb3BlcnR5UmVmIC0g cHJvcGVydHkgcmVmZXJlbmNlIGluc2lkZSBHUkFQSF9UQUJMRSBjbGF1c2UKKyAqLwordHlwZWRl ZiBzdHJ1Y3QgR3JhcGhQcm9wZXJ0eVJlZgoreworCUV4cHIJCXhwcjsKKwljb25zdCBjaGFyICpl bHZhcm5hbWU7CisJT2lkCQkJcHJvcGlkOworCU9pZAkJCXR5cGVJZDsKKwlQYXJzZUxvYwlsb2Nh dGlvbjsKK30gR3JhcGhQcm9wZXJ0eVJlZjsKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLQogICog VGFyZ2V0RW50cnkgLQogICoJICAgYSB0YXJnZXQgZW50cnkgKHVzZWQgaW4gcXVlcnkgdGFyZ2V0 IGxpc3RzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXggMjhiNjZmY2NiNDMuLjM4NWY3ZmRmYTE3IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9hbmFseXplLmgKQEAgLTYyLDUgKzYyLDggQEAgZXh0ZXJuIExpc3QgKkJ1aWxkT25D b25mbGljdEV4Y2x1ZGVkVGFyZ2V0bGlzdChSZWxhdGlvbiB0YXJnZXRyZWwsCiAJCQkJCQkJCQkJ CSAgIEluZGV4IGV4Y2xSZWxJbmRleCk7CiAKIGV4dGVybiBTb3J0R3JvdXBDbGF1c2UgKm1ha2VT b3J0R3JvdXBDbGF1c2VGb3JTZXRPcChPaWQgcmVzY29sdHlwZSwgYm9vbCByZXF1aXJlX2hhc2gp OworZXh0ZXJuIHZvaWQgY29uc3RydWN0U2V0T3BUYXJnZXRsaXN0KFNldE9wZXJhdGlvblN0bXQg Km9wLCBMaXN0ICpsdGFyZ2V0bGlzdCwKKwkJCQkJCQkJCSBMaXN0ICpydGFyZ2V0bGlzdCwgTGlz dCAqKnRhcmdldGxpc3QsIGNvbnN0IGNoYXIgKmNvbnRleHQsCisJCQkJCQkJCQkgUGFyc2VTdGF0 ZSAqcHN0YXRlLCBib29sIHJlY3Vyc2l2ZSk7CiAKICNlbmRpZgkJCQkJCQkvKiBBTkFMWVpFX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAppbmRleCA4OTlkNjRhZDU1Zi4uZmFiNzVmMTZiN2EgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTEzNiw2ICsxMzYsNyBAQCBQR19LRVlXT1JEKCJkZWxpbWl0ZXJzIiwgREVM SU1JVEVSUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGVw ZW5kcyIsIERFUEVORFMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImRlcHRoIiwgREVQVEgsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoImRlc2MiLCBERVNDLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZ V09SRCgiZGVzdGluYXRpb24iLCBERVNUSU5BVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgiZGV0YWNoIiwgREVUQUNILCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJkaWN0aW9uYXJ5IiwgRElDVElPTkFSWSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGlzYWJsZSIsIERJU0FCTEVf UCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMTQ3LDYgKzE0OCw3IEBAIFBH X0tFWVdPUkQoImRvbWFpbiIsIERPTUFJTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJkb3VibGUiLCBET1VCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZHJvcCIsIERST1AsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVhY2giLCBFQUNILCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJlZGdlIiwgRURHRSwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZWxzZSIsIEVMU0UsIFJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbXB0eSIsIEVNUFRZX1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuYWJsZSIsIEVOQUJMRV9QLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0xOTAsNiArMTkyLDggQEAgUEdfS0VZV09SRCgi Z2VuZXJhdGVkIiwgR0VORVJBVEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJnbG9iYWwiLCBHTE9CQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImdyYW50IiwgR1JBTlQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVM KQogUEdfS0VZV09SRCgiZ3JhbnRlZCIsIEdSQU5URUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKK1BHX0tFWVdPUkQoImdyYXBoIiwgR1JBUEgsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImdyYXBoX3RhYmxlIiwgR1JBUEhfVEFCTEUsIENPTF9O QU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJncmVhdGVzdCIsIEdSRUFURVNU LCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZ3JvdXAiLCBHUk9V UF9QLCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoImdyb3VwaW5nIiwg R1JPVVBJTkcsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0yOTQsNiArMjk4LDcg QEAgUEdfS0VZV09SRCgibmZkIiwgTkZELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJuZmtjIiwgTkZLQywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibmZrZCIsIE5GS0QsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoIm5vIiwgTk8sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK K1BHX0tFWVdPUkQoIm5vZGUiLCBOT0RFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJub25lIiwgTk9ORSwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoIm5vcm1hbGl6ZSIsIE5PUk1BTElaRSwgQ09MX05BTUVfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoIm5vcm1hbGl6ZWQiLCBOT1JNQUxJWkVELCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0zNTYsNiArMzYxLDggQEAgUEdfS0VZV09SRCgicHJv Y2VkdXJhbCIsIFBST0NFRFVSQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInByb2NlZHVyZSIsIFBST0NFRFVSRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicHJvY2VkdXJlcyIsIFBST0NFRFVSRVMsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInByb2dyYW0iLCBQUk9HUkFNLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJwcm9wZXJ0aWVzIiwgUFJP UEVSVElFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicHJv cGVydHkiLCBQUk9QRVJUWSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgicHVibGljYXRpb24iLCBQVUJMSUNBVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicXVvdGUiLCBRVU9URSwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgicXVvdGVzIiwgUVVPVEVTLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCkBAIC0zNjksNiArMzc2LDcgQEAgUEdfS0VZV09SRCgicmVmZXJlbmNl cyIsIFJFRkVSRU5DRVMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyZWZlcmVuY2luZyIsIFJFRkVSRU5DSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJyZWZyZXNoIiwgUkVGUkVTSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmVpbmRleCIsIFJFSU5ERVgsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInJlbGF0aW9uc2hpcCIsIFJFTEFUSU9OU0hJ UCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmVsYXRpdmUi LCBSRUxBVElWRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyZWxlYXNlIiwgUkVMRUFTRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgicmVuYW1lIiwgUkVOQU1FLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CkBAIC00ODgsNiArNDk2LDcgQEAgUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5H LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZF UkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2 ZXJzaW9uIiwgVkVSU0lPTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19L RVlXT1JEKCJ2ZXJ0ZXgiLCBWRVJURVgsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInZpZXciLCBWSUVXLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJ2aWV3cyIsIFZJRVdTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJ2b2xhdGlsZSIsIFZPTEFUSUxFLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0 YWJsZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWYwZjU1MGNkMmMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCkBAIC0wLDAgKzEsMzEg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBhcnNlX2dyYXBodGFibGUuaAorICoJCXBh cnNpbmcgb2YgR1JBUEhfVEFCTEUKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmgKKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQQVJTRV9HUkFQSFRBQkxFX0gKKyNkZWZp bmUgUEFSU0VfR1JBUEhUQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisj aW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgi CisKK3R5cGVkZWYgc3RydWN0IEdyYXBoVGFibGVQYXJzZVN0YXRlCit7CisJT2lkCQkJZ3JhcGhp ZDsKKwlMaXN0CSAgICp2YXJpYWJsZXM7Cit9IEdyYXBoVGFibGVQYXJzZVN0YXRlOworCitleHRl cm4gTm9kZSAqZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ29sdW1uUmVmICpjcmVmLCBOb2RlICp2YXIpOworCitleHRlcm4gTm9kZSAqdHJhbnNmb3Jt R3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdw c3RhdGUsIEdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybik7CisKKyNlbmRpZgkJCQkJCQkvKiBQ QVJTRV9HUkFQSFRBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDIzNzVlOTVj MTA3Li5mMWU2ZjAzNWNlNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04Miw2ICs4Miw3 IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NPUFlfV0hFUkUsCQkv KiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQUl9LSU5EX0dFTkVSQVRFRF9D T0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1bW4gKi8KIAlFWFBSX0tJ TkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlFWFBSX0tJTkRfUFJPUEdS QVBIX1BST1BFUlRZLAkvKiBkZXJpdmVkIHByb3BlcnR5IGV4cHJlc3Npb24gKi8KIH0gUGFyc2VF eHByS2luZDsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRp b24uaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCmluZGV4IDkxZmQ4ZTI0 M2I1Li42OWNhMTkwZDVlNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTgx LDYgKzgxLDE0IEBAIGV4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVFbnRy eUZvclRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCSAgQWxpYXMg KmFsaWFzLAogCQkJCQkJCQkJCQkJCQkgIGJvb2wgbGF0ZXJhbCwKIAkJCQkJCQkJCQkJCQkJICBi b29sIGluRnJvbUNsKTsKK2V4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVF bnRyeUZvckdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQkJCQkgICBP aWQgZ3JhcGhpZCwKKwkJCQkJCQkJCQkJCQkJICAgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJu LAorCQkJCQkJCQkJCQkJCQkgICBMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQkJCQkJCQkgICBMaXN0 ICpjb2xuYW1lcywKKwkJCQkJCQkJCQkJCQkJICAgQWxpYXMgKmFsaWFzLAorCQkJCQkJCQkJCQkJ CQkgICBib29sIGxhdGVyYWwsCisJCQkJCQkJCQkJCQkJCSAgIGJvb2wgaW5Gcm9tQ2wpOwogZXh0 ZXJuIFBhcnNlTmFtZXNwYWNlSXRlbSAqYWRkUmFuZ2VUYWJsZUVudHJ5Rm9ySm9pbihQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIExpc3QgKmNvbG5hbWVzLAogCQkJCQkJCQkJCQkJ CSBQYXJzZU5hbWVzcGFjZUNvbHVtbiAqbnNjb2x1bW5zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5oIGIvc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdy aXRlR3JhcGhUYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w YzAzMTlmNWNmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0 ZUdyYXBoVGFibGUuaApAQCAtMCwwICsxLDIxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiByZXdyaXRlR3JhcGhUYWJsZS5oCisgKgkJU3VwcG9ydCBmb3IgcmV3cml0aW5nIEdSQVBIX1RB QkxFIGNsYXVzZXMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgKKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBSRVdSSVRFR1JBUEhUQUJMRV9ICisjZGVmaW5lIFJF V1JJVEVHUkFQSFRBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0 ZXJuIFF1ZXJ5ICpyZXdyaXRlR3JhcGhUYWJsZShRdWVyeSAqcGFyc2V0cmVlLCBpbnQgcnRfaW5k ZXgpOworCisjZW5kaWYJCQkJCQkJLyogUkVXUklURUdSQVBIVEFCTEVfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaAppbmRleCA3ZmRjZWM2ZGQ5My4uNTU4MjQ4M2QwNmMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlz dC5oCkBAIC00OCw2ICs0OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfT1BFUkFUT1JfQ0xB U1MsICJBTFRFUiBPUEVSQVRPUiBDTEFTUyIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURUQUco Q01EVEFHX0FMVEVSX09QRVJBVE9SX0ZBTUlMWSwgIkFMVEVSIE9QRVJBVE9SIEZBTUlMWSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfUE9MSUNZLCAiQUxURVIg UE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9QUk9D RURVUkUsICJBTFRFUiBQUk9DRURVUkUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUco Q01EVEFHX0FMVEVSX1BST1BFUlRZX0dSQVBILCAiQUxURVIgUFJPUEVSVFkgR1JBUEgiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1BVQkxJQ0FUSU9OLCAiQUxU RVIgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX1JPTEUsICJBTFRFUiBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQUxURVJfUk9VVElORSwgIkFMVEVSIFJPVVRJTkUiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CkBAIC0xMDMsNiArMTA0LDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfT1BFUkFUT1JfQ0xB U1MsICJDUkVBVEUgT1BFUkFUT1IgQ0xBU1MiLCB0cnVlLCBmYWxzZSwgZmEKIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX09QRVJBVE9SX0ZBTUlMWSwgIkNSRUFURSBPUEVSQVRPUiBGQU1JTFkiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9QT0xJQ1ksICJDUkVB VEUgUE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf UFJPQ0VEVVJFLCAiQ1JFQVRFIFBST0NFRFVSRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX1BST1BFUlRZX0dSQVBILCAiQ1JFQVRFIFBST1BFUlRZIEdSQVBI IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUFVCTElDQVRJ T04sICJDUkVBVEUgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0NSRUFURV9ST0xFLCAiQ1JFQVRFIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUk9VVElORSwgIkNSRUFURSBST1VUSU5FIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQpAQCAtMTU2LDYgKzE1OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9P UEVSQVRPUl9GQU1JTFksICJEUk9QIE9QRVJBVE9SIEZBTUlMWSIsIHRydWUsIGZhbHNlLCBmYWxz CiBQR19DTURUQUcoQ01EVEFHX0RST1BfT1dORUQsICJEUk9QIE9XTkVEIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1BPTElDWSwgIkRST1AgUE9MSUNZIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1BST0NFRFVSRSwgIkRST1Ag UFJPQ0VEVVJFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1BS T1BFUlRZX0dSQVBILCAiRFJPUCBQUk9QRVJUWSBHUkFQSCIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfRFJPUF9QVUJMSUNBVElPTiwgIkRST1AgUFVCTElDQVRJT04iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9MRSwgIkRST1AgUk9M RSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9VVElORSwg IkRST1AgUk9VVElORSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggNzMxZDg0YjJh OTMuLmI2ODEzZDcyOTJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY2LDYgKzE2Niw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX0xBTkdVQUdFCQkoQUNM X1VTQUdFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVAkoQUNMX1NFTEVDVHxB Q0xfVVBEQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMIChBQ0xfU0VU fEFDTF9BTFRFUl9TWVNURU0pCisjZGVmaW5lIEFDTF9BTExfUklHSFRTX1BST1BHUkFQSAkoQUNM X1NFTEVDVCkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9D UkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aAppbmRleCAyMDQ0NmY2ZjgzNi4uODJkMGJiYjI2N2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBA IC0yMDYsNiArMjA2LDkgQEAgZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBw dWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQo Y29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRf c3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCitleHRlcm4g Y2hhciAqZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKE9pZCBsYWJlbG9pZCk7CitleHRlcm4gY2hh ciAqZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKE9pZCBwcm9wb2lkKTsKKwogI2RlZmluZSB0 eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRP aWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFu ZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5 cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAt LWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbCBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbAppbmRleCA4Njk0M2FlMjUzNy4uYjQ5YThhM2ZmYjgg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbAorKysgYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGFyc2UucGwKQEAgLTI1Niw5ICsyNTYsOSBAQCBz dWIgbWFpbgogCQkJJGhhc19pZl9jb21tYW5kID0gMSBpZiAvXlxzKmlmLzsKIAkJfQogCi0JCSMg TWFrZSBzdXJlIGFueSBicmFjZXMgYXJlIHNwbGl0IGludG8gc2VwYXJhdGUgZmllbGRzCi0JCXMv ey8geyAvZzsKLQkJcy99LyB9IC9nOworCQkjIE1ha2Ugc3VyZSBhbnkgKHVucXVvdGVkKSBicmFj ZXMgYXJlIHNwbGl0IGludG8gc2VwYXJhdGUgZmllbGRzCisJCXMvKD88IScpXHsoPyEnKS8geyAv ZzsKKwkJcy8oPzwhJylcfSg/IScpLyB9IC9nOwogCiAJCSMgTGlrZXdpc2UgZm9yIGNvbW1lbnQg c3RhcnQvZW5kIG1hcmtlcnMKIAkJc3xcL1wqfCAvKiB8ZzsKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9w Z2MubAppbmRleCA4MjcwODAxM2VlNi4uZTQ4MzFmZGNjMTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXBy b2MvcGdjLmwKQEAgLTMzNSw2ICszMzUsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9l cXVhbHMJIj49IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUg dGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5n bGUgb3BlcmF0b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRo ZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3Rl cgpAQCAtMzQ2LDcgKzM0OCw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2Ug ZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQog ICogcnVsZSBmb3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwv XCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9w X2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7 b3BfY2hhcnN9KwogCkBAIC04NTQsNiArODU2LDEwIEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15p XVtBLVphLXpdKnx7aWZ9fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCor CiAJCQkJCXJldHVybiBOT1RfRVFVQUxTOwogCQkJCX0KIAore3JpZ2h0X2Fycm93fQl7CisJCQkJ CXJldHVybiBSSUdIVF9BUlJPVzsKKwkJCQl9CisKIHtpbmZvcm1peF9zcGVjaWFsfSB7CiAJCQkJ CS8qIGFyZSB3ZSBzaW11bGF0aW5nIEluZm9ybWl4PyAqLwogCQkJCQlpZiAoSU5GT1JNSVhfTU9E RSkKQEAgLTk0Nyw3ICs5NTMsNyBAQCBjcHBsaW5lCQkJe3NwYWNlfSojKFteaV1bQS1aYS16XSp8 e2lmfXx7aWZkZWZ9fHtpZm5kZWZ9fHtpbXBvcnR9KSgoXC9cKlteKi9dKlwqKwogCQkJCQkJICog dGhhdCB0aGUgInNlbGYiIHJ1bGUgd291bGQgaGF2ZS4KIAkJCQkJCSAqLwogCQkJCQkJaWYgKG5j aGFycyA9PSAxICYmCi0JCQkJCQkJc3RyY2hyKCIsKClbXS47OistKi8lXjw+PSIsIHl5dGV4dFsw XSkpCisJCQkJCQkJc3RyY2hyKCIsKClbXS47OnwrLSovJV48Pj0iLCB5eXRleHRbMF0pKQogCQkJ CQkJCXJldHVybiB5eXRleHRbMF07CiAKIAkJCQkJCS8qCkBAIC05NjgsNiArOTc0LDggQEAgY3Bw bGluZQkJCXtzcGFjZX0qIyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVmfXx7aW1w b3J0fSkoKFwvXCpbXiovXSpcKisKIAkJCQkJCQkJcmV0dXJuIE5PVF9FUVVBTFM7CiAJCQkJCQkJ aWYgKHl5dGV4dFswXSA9PSAnIScgJiYgeXl0ZXh0WzFdID09ICc9JykKIAkJCQkJCQkJcmV0dXJu IE5PVF9FUVVBTFM7CisJCQkJCQkJaWYgKHl5dGV4dFswXSA9PSAnLScgJiYgeXl0ZXh0WzFdID09 ICc+JykKKwkJCQkJCQkJcmV0dXJuIFJJR0hUX0FSUk9XOwogCQkJCQkJfQogCQkJCQl9CiAKZGlm ZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55CmluZGV4IDgxODJjZTI4YWExLi44ZjYxNDZlOGRjMyAxMDA2NDQKLS0tIGEv c3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf Z3JhbS55CkBAIC0yMzcsNiArMjM3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJh bWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGl2YWw+CUlDT05TVCBQ QVJBTQogJXRva2VuCQkJVFlQRUNBU1QgRE9UX0RPVCBDT0xPTl9FUVVBTFMgRVFVQUxTX0dSRUFU RVIKICV0b2tlbgkJCUxFU1NfRVFVQUxTIEdSRUFURVJfRVFVQUxTIE5PVF9FUVVBTFMKKyV0b2tl bgkJCUJSQUNLRVRfUklHSFRfQVJST1cgTEVGVF9BUlJPV19CUkFDS0VUIE1JTlVTX0xFRlRfQlJB Q0tFVCBSSUdIVF9CUkFDS0VUX01JTlVTCiAKIC8qCiAgKiBPdGhlciB0b2tlbnMgcmVjb2duaXpl ZCBieSBwbHBnc3FsJ3MgbGV4ZXIgaW50ZXJmYWNlIGxheWVyIChwbF9zY2FubmVyLmMpLgpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl9nZW5lcmljLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfZ2VuZXJpYy5vdXQKaW5kZXggYWU1NGNiMjU0 ZjkuLmFiOWNlOWU5YWNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Fs dGVyX2dlbmVyaWMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfZ2Vu ZXJpYy5vdXQKQEAgLTUyMCw2ICs1MjAsNDkgQEAgRVJST1I6ICBsZWZ0IGFuZCByaWdodCBhc3Nv Y2lhdGVkIGRhdGEgdHlwZXMgZm9yIG9wZXJhdG9yIGNsYXNzIG9wdGlvbnMgcGFyc2luZwogQUxU RVIgT1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZSBBREQgRlVOQ1RJT04gNSAo aW50NCkgdGVzdF9vcGNsYXNzX29wdGlvbnNfZnVuYyhpbnRlcm5hbCk7IC0tIE9rCiBBTFRFUiBP UEVSQVRPUiBGQU1JTFkgYWx0X29wZjE5IFVTSU5HIGJ0cmVlIERST1AgRlVOQ1RJT04gNSAoaW50 NCwgaW50NCk7CiBEUk9QIE9QRVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRyZWU7Cist LQorLS0gUHJvcGVydHkgR3JhcGgKKy0tCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfYWx0ZXJfZ2VuZXJpY191c2VyMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgx OworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDI7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggYWx0X2dyYXBoMzsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1FIFRP IGFsdF9ncmFwaDI7IC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0VSUk9SOiAgcmVsYXRpb24g ImFsdF9ncmFwaDIiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGgxIFJFTkFNRSBUTyBhbHRfZ3JhcGg0OyAtLSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0 X2dyYXBoMiBPV05FUiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7ICAtLSBmYWlsZWQg KG5vIHJvbGUgbWVtYmVyc2hpcCkKK0VSUk9SOiAgbXVzdCBiZSBhYmxlIHRvIFNFVCBST0xFICJy ZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjIiCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGgyIE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0tIE9LCitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg0IFNFVCBTQ0hFTUEgYWx0X25zcDI7ICAtLSBPSworQUxU RVIgUFJPUEVSVFkgR1JBUEggYWx0X25zcDIuYWx0X2dyYXBoNCBSRU5BTUUgVE8gYWx0X2dyYXBo MjsgIC0tIE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgyIFNFVCBTQ0hFTUEgYWx0 X25zcDI7ICAtLSBmYWlsZWQgKG5hbWUgY29uZmxpY3QpCitFUlJPUjogIHJlbGF0aW9uICJhbHRf Z3JhcGgyIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgImFsdF9uc3AyIgorU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7CitDUkVBVEUgUFJPUEVS VFkgR1JBUEggYWx0X2dyYXBoNTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDMgUkVO QU1FIFRPIGFsdF9ncmFwaDU7ICAtLSBmYWlsZWQgKG5vdCBvd25lcikKK0VSUk9SOiAgbXVzdCBi ZSBvd25lciBvZiBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgzCitBTFRFUiBQUk9QRVJUWSBHUkFQ SCBhbHRfZ3JhcGg1IFJFTkFNRSBUTyBhbHRfZ3JhcGg2OyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZ IEdSQVBIIGFsdF9ncmFwaDMgT1dORVIgVE8gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIyOyAg LS0gZmFpbGVkIChub3Qgb3duZXIpCitFUlJPUjogIG11c3QgYmUgb3duZXIgb2YgcHJvcGVydHkg Z3JhcGggYWx0X2dyYXBoMworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoNiBPV05FUiBU TyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjM7ICAtLSBmYWlsZWQgKG5vIHJvbGUgbWVtYmVy c2hpcCkKK0VSUk9SOiAgbXVzdCBiZSBhYmxlIHRvIFNFVCBST0xFICJyZWdyZXNzX2FsdGVyX2dl bmVyaWNfdXNlcjMiCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgzIFNFVCBTQ0hFTUEg YWx0X25zcDI7ICAtLSBmYWlsZWQgKG5vdCBvd25lcikKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBv ZiBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgzCitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CitTRUxFQ1QgbnNwbmFtZSwgcmVsbmFtZSwgcm9sbmFtZQorICBGUk9NIHBnX2NsYXNzIGMsIHBn X25hbWVzcGFjZSBuLCBwZ19hdXRoaWQgYQorICBXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lk IEFORCBjLnJlbG93bmVyID0gYS5vaWQKKyAgICBBTkQgbi5uc3BuYW1lIGluICgnYWx0X25zcDEn LCAnYWx0X25zcDInKQorICAgIEFORCBjLnJlbGtpbmQgPSAnZycKKyAgT1JERVIgQlkgbnNwbmFt ZSwgcmVsbmFtZTsKKyBuc3BuYW1lICB8ICByZWxuYW1lICAgfCAgICAgICAgICAgcm9sbmFtZSAg ICAgICAgICAgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGFsdF9uc3AxIHwgYWx0X2dyYXBoMiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191 c2VyMworIGFsdF9uc3AxIHwgYWx0X2dyYXBoMyB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2Vy MQorIGFsdF9uc3AxIHwgYWx0X2dyYXBoNiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMgor IGFsdF9uc3AyIHwgYWx0X2dyYXBoMiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMQorKDQg cm93cykKKwogLS0KIC0tIFN0YXRpc3RpY3MKIC0tCkBAIC03MTAsNyArNzUzLDcgQEAgTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byBzZXJ2ZXIgYWx0X2ZzZXJ2MwogRFJPUCBMQU5HVUFHRSBhbHRf bGFuZzIgQ0FTQ0FERTsKIERST1AgTEFOR1VBR0UgYWx0X2xhbmczIENBU0NBREU7CiBEUk9QIFND SEVNQSBhbHRfbnNwMSBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyOCBvdGhl ciBvYmplY3RzCitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDMxIG90aGVyIG9iamVjdHMKIERF VEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X2Z1bmMzKGludGVnZXIpCiBkcm9w IGNhc2NhZGVzIHRvIGZ1bmN0aW9uIGFsdF9hZ2czKGludGVnZXIpCiBkcm9wIGNhc2NhZGVzIHRv IGZ1bmN0aW9uIGFsdF9mdW5jNChpbnRlZ2VyKQpAQCAtNzI3LDYgKzc3MCw5IEBAIGRyb3AgY2Fz Y2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGMxIGZvciBhY2Nlc3MgbWV0aG9kIGhhc2gK IGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGMyIGZvciBhY2Nlc3MgbWV0 aG9kIGhhc2gKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGY0IGZvciBh Y2Nlc3MgbWV0aG9kIGhhc2gKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9v cGYyIGZvciBhY2Nlc3MgbWV0aG9kIGhhc2gKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3Jh cGggYWx0X2dyYXBoMgorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgz Citkcm9wIGNhc2NhZGVzIHRvIHByb3BlcnR5IGdyYXBoIGFsdF9ncmFwaDYKIGRyb3AgY2FzY2Fk ZXMgdG8gdGFibGUgYWx0X3JlZ3Jlc3NfMQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBhbHRfcmVn cmVzc18yCiBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIGRpY3Rpb25hcnkgYWx0X3RzX2Rp Y3QzCkBAIC03NDAsMTIgKzc4NiwxMyBAQCBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIHRl bXBsYXRlIGFsdF90c190ZW1wMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBwYXJzZXIg YWx0X3RzX3ByczMKIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggcGFyc2VyIGFsdF90c19w cnMyCiBEUk9QIFNDSEVNQSBhbHRfbnNwMiBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byA5IG90aGVyIG9iamVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMTAgb3RoZXIg b2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBhbHRfbnNwMi5hbHRf ZnVuYzIoaW50ZWdlcikKIGRyb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X25zcDIuYWx0X2Fn ZzIoaW50ZWdlcikKIGRyb3AgY2FzY2FkZXMgdG8gY29udmVyc2lvbiBhbHRfbnNwMi5hbHRfY29u djIKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgYWx0X25zcDIuQC1AKGludGVnZXIsaW50ZWdl cikKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9uc3AyLmFsdF9vcGYyIGZv ciBhY2Nlc3MgbWV0aG9kIGhhc2gKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggYWx0 X25zcDIuYWx0X2dyYXBoMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5 IGFsdF9uc3AyLmFsdF90c19kaWN0MgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBjb25m aWd1cmF0aW9uIGFsdF9uc3AyLmFsdF90c19jb25mMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNl YXJjaCB0ZW1wbGF0ZSBhbHRfbnNwMi5hbHRfdHNfdGVtcDIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDMzMTZmYmMwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTAs MCArMSw0OTYgQEAKK0NSRUFURSBTQ0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzOwor R1JBTlQgVVNBR0UgT04gU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyBUTyBQVUJM SUM7CitTRVQgc2VhcmNoX3BhdGggPSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CitDUkVB VEUgUk9MRSByZWdyZXNzX2dyYXBoX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc19ncmFwaF91 c2VyMjsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMTsKK0NPTU1FTlQgT04gUFJPUEVSVFkgR1JB UEggZzEgSVMgJ2EgZ3JhcGgnOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxOyAgLS0gZXJyb3I6 IGR1cGxpY2F0ZQorRVJST1I6ICByZWxhdGlvbiAiZzEiIGFscmVhZHkgZXhpc3RzCitDUkVBVEUg VEFCTEUgdDEgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHQyIChpIGludCBQUklNQVJZ IEtFWSwgaiBpbnQsIGsgaW50KTsKK0NSRUFURSBUQUJMRSB0MyAoeCBpbnQsIHkgdGV4dCwgeiB0 ZXh0KTsKK0NSRUFURSBUQUJMRSBlMSAoYSBpbnQsIGkgaW50LCB0IHRleHQsIFBSSU1BUlkgS0VZ IChhLCBpKSk7CitDUkVBVEUgVEFCTEUgZTIgKGEgaW50LCB4IGludCwgdCB0ZXh0KTsKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBnMgorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIERF RkFVTFQgTEFCRUwsIHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBMQUJFTCB0M2wyKQorICAgIEVER0Ug VEFCTEVTICgKKyAgICAgICAgZTEKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5D RVMgdDEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIg KGkpLAorICAgICAgICBlMiBLRVkgKGEsIHgpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBS RUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZF UkVOQ0VTIHQzICh4LCB5KQorICAgICk7CistLSB0ZXN0IGRlcGVuZGVuY2llcy9vYmplY3QgZGVz Y3JpcHRpb25zCitEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAorRVJST1I6ICBjYW5ub3QgZHJvcCB0 YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB2ZXJ0 ZXggdDEgb2YgcHJvcGVydHkgZ3JhcGggZzIgZGVwZW5kcyBvbiB0YWJsZSB0MQorZWRnZSBlMSBv ZiBwcm9wZXJ0eSBncmFwaCBnMiBkZXBlbmRzIG9uIHRhYmxlIHQxCitlZGdlIGUyIG9mIHByb3Bl cnR5IGdyYXBoIGcyIGRlcGVuZHMgb24gdGFibGUgdDEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FT Q0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBUQUJMRSB0MSBE Uk9QIENPTFVNTiBiOyAgLS0gbm9uLWtleSBjb2x1bW47IGZhaWwKK0VSUk9SOiAgY2Fubm90IGRy b3AgY29sdW1uIGIgb2YgdGFibGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBp dAorREVUQUlMOiAgcHJvcGVydHkgYiBvZiBsYWJlbCB0MSBvZiB2ZXJ0ZXggdDEgb2YgcHJvcGVy dHkgZ3JhcGggZzIgZGVwZW5kcyBvbiBjb2x1bW4gYiBvZiB0YWJsZSB0MQorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVS IFRBQkxFIHQxIERST1AgQ09MVU1OIGE7ICAtLSBrZXkgY29sdW1uOyBmYWlsCitFUlJPUjogIGNh bm5vdCBkcm9wIGNvbHVtbiBhIG9mIHRhYmxlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBl bmQgb24gaXQKK0RFVEFJTDogIHZlcnRleCB0MSBvZiBwcm9wZXJ0eSBncmFwaCBnMiBkZXBlbmRz IG9uIGNvbHVtbiBhIG9mIHRhYmxlIHQxCitlZGdlIGUxIG9mIHByb3BlcnR5IGdyYXBoIGcyIGRl cGVuZHMgb24gY29sdW1uIGEgb2YgdGFibGUgdDEKK2VkZ2UgZTIgb2YgcHJvcGVydHkgZ3JhcGgg ZzIgZGVwZW5kcyBvbiBjb2x1bW4gYSBvZiB0YWJsZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBD QVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGxpa2UgZzIgYnV0 IGFzc2VtYmxlZCB3aXRoIEFMVEVSCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzM7CitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBnMyBBREQgVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgREVGQVVM VCBMQUJFTCk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMworICAgIEFERCBWRVJURVggVEFCTEVT ICh0MyBLRVkgKHgpIExBQkVMIHQzbDEpCisgICAgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAg ZTEgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZIChpKSBS RUZFUkVOQ0VTIHQyIChpKSwKKyAgICAgICAgZTIgS0VZIChhLCB4KSBTT1VSQ0UgS0VZIChhKSBS RUZFUkVOQ0VTIHQxIChhKSBERVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgs IHkpCisgICAgKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIEFMVEVSIFZFUlRFWCBUQUJMRSB0 MyBBREQgTEFCRUwgdDNsMiBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIEFERCBMQUJFTCB0M2wzIFBS T1BFUlRJRVMgQUxMIENPTFVNTlM7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJU RVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wzeDsgIC0tIGVycm9yCitFUlJPUjogIHByb3BlcnR5 IGdyYXBoICJnMyIgZWxlbWVudCAidDMiIGhhcyBubyBsYWJlbCAidDNsM3giCitBTFRFUiBQUk9Q RVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wzOworQUxU RVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBWRVJURVggVEFCTEVTICh0Mik7ICAtLSBmYWlsIChU T0RPOiBkdWJpb3VzIGVycm9yIG1lc3NhZ2UpCitFUlJPUjogIGNhbm5vdCBkcm9wIHZlcnRleCB0 MiBvZiBwcm9wZXJ0eSBncmFwaCBnMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBlZGdlIGUxIG9mIHByb3BlcnR5IGdyYXBoIGczIGRlcGVuZHMgb24gdmVydGV4 IHQyIG9mIHByb3BlcnR5IGdyYXBoIGczCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8g ZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg RFJPUCBWRVJURVggVEFCTEVTICh0MikgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gZWRnZSBlMSBvZiBwcm9wZXJ0eSBncmFwaCBnMworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg RFJPUCBFREdFIFRBQkxFUyAoZTIpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc0CisgICAgVkVS VEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAgICAg dDIgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpICsgaiBBUyBpX2osIGspLAorICAgICAgICB0 MyBLRVkgKHgpIExBQkVMIHQzbDEgUFJPUEVSVElFUyAoeCwgeSBBUyB5eSkgTEFCRUwgdDNsMiBQ Uk9QRVJUSUVTICh4LCB6IEFTIHp6KQorICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAg IGUxCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAg ICAgICAgREVTVElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKQorICAgICAgICAgICAg UFJPUEVSVElFUyBBTEwgQ09MVU1OUywKKyAgICAgICAgZTIgS0VZIChhLCB4KQorICAgICAgICAg ICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFU SU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkKKyAgICAgICAgICAgIFBST1BFUlRJ RVMgQUxMIENPTFVNTlMKKyAgICApOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzQgQUxURVIgVkVS VEVYIFRBQkxFIHQyIEFMVEVSIExBQkVMIHQyIEFERCBQUk9QRVJUSUVTIChrICogMiBBUyBrayk7 CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnNCBBTFRFUiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFC RUwgdDIgRFJPUCBQUk9QRVJUSUVTIChrKTsKK0NSRUFURSBUQUJMRSB0MTEgKGEgaW50IFBSSU1B UlkgS0VZKTsKK0NSRUFURSBUQUJMRSB0MTIgKGIgaW50IFBSSU1BUlkgS0VZKTsKK0NSRUFURSBU QUJMRSB0MTMgKAorICAgIGMgaW50IFBSSU1BUlkgS0VZLAorICAgIGQgaW50IFJFRkVSRU5DRVMg dDExLAorICAgIGUgaW50IFJFRkVSRU5DRVMgdDEyCispOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGc1CisgICAgVkVSVEVYIFRBQkxFUyAodDExLCB0MTIpCisgICAgRURHRSBUQUJMRVMgKHQxMyBT T1VSQ0UgdDExIERFU1RJTkFUSU9OIHQxMik7CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZign ZzUnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfcHJvcGdyYXBoZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cy5nNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIFZFUlRFWCBUQUJMRVMgKCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTEgS0VZIChhKSBQUk9QRVJU SUVTIChhKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTIgS0VZIChiKSBQUk9Q RVJUSUVTIChiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEVER0UgVEFCTEVTICgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTMgS0VZ IChjKSBTT1VSQ0UgS0VZIChlKSBSRUZFUkVOQ0VTIHQxMSAoYSkgREVTVElOQVRJT04gS0VZIChl KSBSRUZFUkVOQ0VTIHQxMiAoYikgUFJPUEVSVElFUyAoYywgZCwgZSkrCisgICAgICkKKygxIHJv dykKKworLS0gZXJyb3IgY2FzZXMKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneCBWRVJURVggVEFC TEVTICh4eCwgeXkpOworRVJST1I6ICByZWxhdGlvbiAieHgiIGRvZXMgbm90IGV4aXN0CitDUkVB VEUgUFJPUEVSVFkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChp KSwgdDEgS0VZIChhKSk7CitFUlJPUjogIGFsaWFzICJ0MSIgdXNlZCBtb3JlIHRoYW4gb25jZSBh cyBlbGVtZW50IHRhYmxlCitMSU5FIDE6IC4uLlkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEg S0VZIChhKSwgdDIgS0VZIChpKSwgdDEgS0VZIChhKS4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEFTIHR0IEtFWSAoYSksIHQyIEtFWSAo aSkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBTT1VSQ0UgdDEgREVTVElOQVRJT04g dDIKKyAgICApOworRVJST1I6ICBzb3VyY2UgdmVydGV4ICJ0MSIgb2YgZWRnZSAiZTEiIGRvZXMg bm90IGV4aXN0CitMSU5FIDQ6ICAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHQyCisg ICAgICAgICAgICAgICAgXgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRB QkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAg IGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0eAorICAgICk7CitFUlJPUjogIGRlc3RpbmF0aW9u IHZlcnRleCAidHgiIG9mIGVkZ2UgImUxIiBkb2VzIG5vdCBleGlzdAorTElORSA0OiAgICAgICAg IGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0eAorICAgICAgICAgICAgICAgIF4KK0NPTU1FTlQg T04gUFJPUEVSVFkgR1JBUEggZ3ggSVMgJ25vdCBhIGdyYXBoJzsKK0VSUk9SOiAgcmVsYXRpb24g Imd4IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVY IFRBQkxFUyAodDEgS0VZIChhKSwgdDIpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBT T1VSQ0UgdDEgREVTVElOQVRJT04gdDIgIC0tIG5vIGZvcmVpZ24ga2V5cworICAgICk7CitFUlJP UjogIG5vIFNPVVJDRSBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBmb3JlaWduIGtleSBl eGlzdHMgZm9yIGRlZmluaXRpb24gb2YgZWRnZSAiZTEiCitMSU5FIDQ6ICAgICAgICAgZTEgU09V UkNFIHQxIERFU1RJTkFUSU9OIHQyICAtLSBubyBmb3JlaWduIGtleXMKKyAgICAgICAgICAgICAg ICBeCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAg ICAgdDEgS0VZIChhKSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSArIDEgQVMgYWEpCisgICAgICAg ICAgICAgICAgICAgTEFCRUwgYmFyIFBST1BFUlRJRVMgKDEgKyBhIEFTIGFhKSAgLS0gZXhwcmVz c2lvbiBtaXNtYXRjaAorICAgICk7CitFUlJPUjogIGVsZW1lbnQgInQxIiBwcm9wZXJ0eSAiYWEi IGV4cHJlc3Npb24gbWlzbWF0Y2g6ICgxICsgYSkgdnMuIChhICsgMSkKK0RFVEFJTDogIEluIGEg cHJvcGVydHkgZ3JhcGggZWxlbWVudCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0 byBoYXZlIHRoZSBzYW1lIGV4cHJlc3Npb24gaW4gZWFjaCBsYWJlbC4KK0FMVEVSIFBST1BFUlRZ IEdSQVBIIGcyCisgICAgQUREIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBBUyB0MXggS0VZ IChhKSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSArIDEgQVMgYWEpCisgICAgICAgICAgICAgICAg ICAgICAgICAgIExBQkVMIGJhciBQUk9QRVJUSUVTICgxICsgYSBBUyBhYSkgIC0tIGV4cHJlc3Np b24gbWlzbWF0Y2gKKyAgICApOworRVJST1I6ICBlbGVtZW50ICJ0MXgiIHByb3BlcnR5ICJhYSIg ZXhwcmVzc2lvbiBtaXNtYXRjaDogKDEgKyBhKSB2cy4gKGEgKyAxKQorREVUQUlMOiAgSW4gYSBw cm9wZXJ0eSBncmFwaCBlbGVtZW50LCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRv IGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBpbiBlYWNoIGxhYmVsLgorQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgUFJPUEVS VElFUyAoYiBBUyBwMSksCisgICAgICAgIHQyIFBST1BFUlRJRVMgKGsgQVMgcDEpICAtLSB0eXBl IG1pc21hdGNoCisgICAgKTsKK0VSUk9SOiAgcHJvcGVydHkgInAxIiBkYXRhIHR5cGUgbWlzbWF0 Y2g6IHRleHQgdnMuIGludGVnZXIKK0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJv cGVydHkgb2YgdGhlIHNhbWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBkYXRhIHR5cGUgaW4g ZWFjaCBsYWJlbC4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcyIEFMVEVSIFZFUlRFWCBUQUJMRSB0 MSBBREQgTEFCRUwgZm9vIFBST1BFUlRJRVMgKGIgQVMgayk7ICAtLSB0eXBlIG1pc21hdGNoCitF UlJPUjogIHByb3BlcnR5ICJrIiBkYXRhIHR5cGUgbWlzbWF0Y2g6IGludGVnZXIgdnMuIHRleHQK K0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFt ZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBkYXRhIHR5cGUgaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBLRVkgKGEp IExBQkVMIGwxIFBST1BFUlRJRVMgKGEsIGEgQVMgYWEpLAorICAgICAgICB0MiBLRVkgKGkpIExB QkVMIGwxIFBST1BFUlRJRVMgKGkgQVMgYSwgaiBBUyBiLCBrKSAgLS0gbWlzbWF0Y2hpbmcgbnVt YmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKKyAgICApOworRVJST1I6ICBtaXNtYXRjaGluZyBu dW1iZXIgb2YgcHJvcGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJsMSIKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBLRVkgKGEp IExBQkVMIGwxIFBST1BFUlRJRVMgKGEsIGIpLAorICAgICAgICB0MiBLRVkgKGkpIExBQkVMIGwx IFBST1BFUlRJRVMgKGkgQVMgYSkgIC0tIG1pc21hdGNoaW5nIG51bWJlciBvZiBwcm9wZXJ0aWVz IG9uIGxhYmVsCisgICAgKTsKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRp ZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCAibDEiCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gK KyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBMQUJFTCBsMSBQUk9QRVJU SUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChpIEFT IGEsIGogQVMgaikgIC0tIG1pc21hdGNoaW5nIHByb3BlcnR5IG5hbWVzIG9uIGxhYmVsCisgICAg KTsKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgcHJvcGVydGllcyBuYW1lcyBpbiBkZWZpbml0aW9uIG9m IGxhYmVsICJsMSIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0 MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgeXksIGIgQVMgenopOyAg LS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKK0VSUk9SOiAgbWlz bWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCAidDNs MSIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFC RUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgenopOyAgLS0gbWlzbWF0Y2hpbmcgcHJv cGVydHkgbmFtZXMgb24gbGFiZWwKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgcHJvcGVydGllcyBuYW1l cyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJ0M2wxIgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzQg QUxURVIgVkVSVEVYIFRBQkxFIHQxIEFERCBMQUJFTCB0M2wxIFBST1BFUlRJRVMgKGEgQVMgeCk7 ICAtLSBtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBvbiBsYWJlbAorRVJST1I6ICBt aXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJ0 M2wxIgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgT1dORVIgVE8gcmVncmVzc19ncmFwaF91c2Vy MTsKK1NFVCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjE7CitHUkFOVCBTRUxFQ1QgT04gUFJPUEVS VFkgR1JBUEggZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKK0dSQU5UIFVQREFURSBPTiBQUk9Q RVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAorRVJST1I6ICBp bnZhbGlkIHByaXZpbGVnZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkgZ3JhcGgKK1JFU0VUIFJP TEU7CistLSBpbmZvcm1hdGlvbiBzY2hlbWEKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2No ZW1hLnByb3BlcnR5X2dyYXBocyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lOworIHByb3Bl cnR5X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0 eV9ncmFwaF9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMworIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNQorKDUgcm93 cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMg T1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKKyBwcm9w ZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVy dHlfZ3JhcGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQg fCB0YWJsZV9jYXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFt ZSB8IGVsZW1lbnRfdGFibGVfZGVmaW5pdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBFREdF ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZTEgICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAg ICAgICB8IEVER0UgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBlMiAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAg ICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDIgICAgICAgICB8IAorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MyAgICAg ICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgVkVSVEVY ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAg ICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgdDMgICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAg ICAgICAgICAgICAgICB8IEVER0UgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBlMSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGUyICAgICAgICAgfCAKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDEgICAgICAg ICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCB0MiAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAg IHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IHQzICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAg ICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDExICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAg IHwgdDEyICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MTIgICAgICAgIHwgCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAg ICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxMyAgICAgICAg fCAKKygxNSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVt ZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1l bnRfdGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxv ZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBl bGVtZW50X3RhYmxlX2FsaWFzIHwgY29sdW1uX25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAg fCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUx ICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAg ICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQxICAg ICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxICAgICAg ICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAg ICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg ICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAg ICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAg ICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAg ICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAg ICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8 IHQxMiAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUg ICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIDEKKygxOSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFt ZSwgZWRnZV90YWJsZV9hbGlhcywgZWRnZV9lbmQgREVTQywgb3JkaW5hbF9wb3NpdGlvbjsKKyBw cm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJv cGVydHlfZ3JhcGhfbmFtZSB8IGVkZ2VfdGFibGVfYWxpYXMgfCB2ZXJ0ZXhfdGFibGVfYWxpYXMg fCAgZWRnZV9lbmQgICB8IGVkZ2VfdGFibGVfY29sdW1uX25hbWUgfCB2ZXJ0ZXhfdGFibGVfY29s dW1uX25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAg ICAgICAgIHwgU09VUkNFICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwg ZTEgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgaSAg ICAgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MSAgICAg ICAgICAgICAgICAgfCBTT1VSQ0UgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04g fCB4ICAgICAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQz ICAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgdCAgICAgICAgICAgICAgICAgICAgICB8 IHkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IGUxICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0Ug ICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAg IHwgdDIgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBpICAgICAgICAgICAgICAgICAg ICAgIHwgaSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAg ICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICB8IFNP VVJDRSAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgfCBERVNUSU5BVElPTiB8IHggICAgICAgICAgICAg ICAgICAgICAgfCB4ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAg IHwgREVTVElOQVRJT04gfCB0ICAgICAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAg ICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAgIHwgZSAgICAgICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAg ICAgICAgfCBERVNUSU5BVElPTiB8IGUgICAgICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisoMTIgcm93cykKKworU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9sYWJlbHMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhcywgbGFiZWxfbmFtZTsKKyBw cm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJv cGVydHlfZ3JhcGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBsYWJlbF9uYW1lIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBlMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEg ICAgICAgICAgICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAg ICAgICAgIHwgdDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB0 M2wxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAg ICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAgICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwg dDMgICAgICAgICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAg ICAgICAgICAgICAgfCBlMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICAg ICB8IGUyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgdDEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCB0MgorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAg ICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHQzbDEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IHQzICAgICAgICAgICAgICAgICAgfCB0M2wyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAg ICAgICAgICAgICAgIHwgdDExCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAg ICAgIHwgdDEyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgdDEz CisoMTggcm93cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVu dF90YWJsZV9wcm9wZXJ0aWVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRf dGFibGVfYWxpYXMsIHByb3BlcnR5X25hbWU7CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAg IHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50 X3RhYmxlX2FsaWFzIHwgcHJvcGVydHlfbmFtZSB8IHByb3BlcnR5X2V4cHJlc3Npb24gCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAg ICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg ICAgICAgICAgfCBpICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAg ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBl MiAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAg ICB8IGUyICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAg ICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCB4CisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAg ICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIg ICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg YgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAg ICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAgICAgIHwgaiAgICAg ICAgICAgICB8IGoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBr ICAgICAgICAgICAgIHwgaworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAg ICB8IHggICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAg ICAgICAgIHwgeSAgICAgICAgICAgICB8IHkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAg ICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDEg ICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAg fCB0MSAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAg ICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgfCB5CisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAg ICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHoK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAg IHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IGkgICAgICAg ICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAg fCBhICAgICAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAg ICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQyICAg ICAgICAgICAgICAgICAgfCBpX2ogICAgICAgICAgIHwgKGkgKyBqKQorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IGtrICAgICAgICAgICAgfCAoayAqIDIpCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IHgK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB5eSAgICAgICAgICAg IHwgeQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHp6ICAgICAg ICAgICAgfCB6CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgIHwgYSAg ICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAgICAg fCBiICAgICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAg ICAgICB8IGMgICAgICAgICAgICAgfCBjCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAg ICAgICAgICAgIHwgZCAgICAgICAgICAgICB8IGQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAg ICAgICAgICAgICAgICAgfCBlICAgICAgICAgICAgIHwgZQorKDM1IHJvd3MpCisKK1NFTEVDVCAq IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJv cGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFtZSwgcHJvcGVydHlfbmFtZTsKKyBwcm9wZXJ0eV9n cmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3Jh cGhfbmFtZSB8IGxhYmVsX25hbWUgfCBwcm9wZXJ0eV9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAg ICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICB8IGkKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IGUxICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMiAgICAg ICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICB8IHQKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAg ICAgICAgICB8IGUyICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAg IHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IHQyICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgIHwg agorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGsKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAg ICB8IHQzbDEgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn MiAgICAgICAgICAgICAgICAgIHwgdDNsMSAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8 IHQzbDIgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgeQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgdDNsMiAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQx ICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgIHwgYgorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAg ICAgICAgICAgICAgIHwgdDNsMSAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDEg ICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgegorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgdDNsMiAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDIgICAg ICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgegorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAg ICAgICAgIHwgZTEgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg fCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgZTIgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgfCB0 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgdDIgICAgICAgICB8IGlfagorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGtr CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgdDNsMSAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgeAor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NCAgICAgICAgICAgICAgICAgIHwgdDNsMiAgICAgICB8IHp6CisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAg fCB0MTEgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAgICB8IGIKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUg ICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgfCBjCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0 MTMgICAgICAgIHwgZAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICB8IGUKKyg0MiBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19sYWJlbHMgT1JERVIg QlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFtZTsKKyBwcm9wZXJ0eV9ncmFwaF9jYXRh bG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8 IGxhYmVsX25hbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCB0MQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDIKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQz bDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzIgICAgICAgICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcz ICAgICAgICAgICAgICAgICAgfCB0M2wxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wyCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCBlMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MgorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwg dDExCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMwor KDE4IHJvd3MpCisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX3Byb3BlcnR5 X2RhdGFfdHlwZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgcHJvcGVydHlfbmFtZTsK KyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwg cHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25hbWUgfCBkYXRhX3R5cGUgfCBjaGFyYWN0 ZXJfbWF4aW11bV9sZW5ndGggfCBjaGFyYWN0ZXJfb2N0ZXRfbGVuZ3RoIHwgY2hhcmFjdGVyX3Nl dF9jYXRhbG9nIHwgY2hhcmFjdGVyX3NldF9zY2hlbWEgfCBjaGFyYWN0ZXJfc2V0X25hbWUgfCBj b2xsYXRpb25fY2F0YWxvZyB8IGNvbGxhdGlvbl9zY2hlbWEgfCBjb2xsYXRpb25fbmFtZSB8IG51 bWVyaWNfcHJlY2lzaW9uIHwgbnVtZXJpY19wcmVjaXNpb25fcmFkaXggfCBudW1lcmljX3NjYWxl IHwgZGF0ZXRpbWVfcHJlY2lzaW9uIHwgaW50ZXJ2YWxfdHlwZSB8IGludGVydmFsX3ByZWNpc2lv biB8IHVzZXJfZGVmaW5lZF90eXBlX2NhdGFsb2cgfCB1c2VyX2RlZmluZWRfdHlwZV9zY2hlbWEg fCB1c2VyX2RlZmluZWRfdHlwZV9uYW1lIHwgc2NvcGVfY2F0YWxvZyB8IHNjb3BlX3NjaGVtYSB8 IHNjb3BlX25hbWUgfCBtYXhpbXVtX2NhcmRpbmFsaXR5IHwgZHRkX2lkZW50aWZpZXIgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBiICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgfCBpbnRlZ2VyICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgaiAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBrICAgICAg ICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGsKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB5ICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IHkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHogICAgICAgICAgICAgfCB0ZXh0ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCBiICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCBpbnRlZ2VyICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgeSAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB6ICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAg ICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBpX2ogICAg ICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGlfagorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwga2sgICAgICAgICAgICB8IGludGVnZXIg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAg ICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBraworIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB4ICAg ICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHl5ICAgICAgICAgICAgfCB0ZXh0ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAg ICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeXkKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IHp6ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgenoKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGEg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBiCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAg ICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50 NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGQg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgZAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlCisoMjcg cm93cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3Jh cGhfcHJpdmlsZWdlcyBXSEVSRSBncmFudGVlIExJS0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9w ZXJ0eV9ncmFwaF9uYW1lOworICAgICAgIGdyYW50b3IgICAgICAgfCAgICAgICBncmFudGVlICAg ICAgIHwgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAg ICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBwcml2aWxlZ2VfdHlwZSB8IGlzX2dyYW50YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ncmFwaF91 c2VyMSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjEgfCByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzEgICAgICAgICAgICAgICAgICB8IFNFTEVDVCAg ICAgICAgIHwgWUVTCisgcmVncmVzc19ncmFwaF91c2VyMSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjIg fCByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzEgICAgICAgICAgICAgICAgICB8IFNFTEVDVCAgICAgICAgIHwgTk8KKygyIHJvd3MpCisKK1xh XHQKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMic6OnJlZ2NsYXNzKTsKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzIKKyAgICBWRVJURVgg VEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAg dDIgS0VZIChpKSBQUk9QRVJUSUVTIChpLCBqLCBrKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJF TCB0M2wxIFBST1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwg eikKKyAgICApCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBLRVkgKGEsIGkpIFNPVVJD RSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9OIEtFWSAoaSkgUkVGRVJFTkNF UyB0MiAoaSkgUFJPUEVSVElFUyAoYSwgaSwgdCksCisgICAgICAgIGUyIEtFWSAoYSwgeCkgU09V UkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZF UkVOQ0VTIHQzICh4LCB5KSBQUk9QRVJUSUVTIChhLCB0LCB4KQorICAgICkKK1NFTEVDVCBwZ19n ZXRfcHJvcGdyYXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzMKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAg ICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJF TCB0M2wxIFBST1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwg eikKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzQnOjpyZWdjbGFzcyk7CitD UkVBVEUgUFJPUEVSVFkgR1JBUEggY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzLmc0CisgICAg VkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAg ICAgdDIgS0VZIChpKSBQUk9QRVJUSUVTICgoaSArIGopIEFTIGlfaiwgKGsgKiAyKSBBUyBrayks CisgICAgICAgIHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBQUk9QRVJUSUVTICh4LCB5IEFTIHl5KSBM QUJFTCB0M2wyIFBST1BFUlRJRVMgKHgsIHogQVMgenopCisgICAgKQorICAgIEVER0UgVEFCTEVT ICgKKyAgICAgICAgZTEgS0VZIChhLCBpKSBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChh KSBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpIFBST1BFUlRJRVMgKGEsIGks IHQpLAorICAgICAgICBlMiBLRVkgKGEsIHgpIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEg KGEpIERFU1RJTkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkgUFJPUEVSVElF UyAoYSwgdCwgeCkKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZigncGdfdHlwZSc6 OnJlZ2NsYXNzKTsgIC0tIGVycm9yCitFUlJPUjogICJwZ190eXBlIiBpcyBub3QgYSBwcm9wZXJ0 eSBncmFwaAorXGFcdAorXGRHIGcxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgcmVsYXRpb25zCisgICAgICAgICAgIFNjaGVtYSAgICAgICAgICAgIHwgTmFtZSB8ICAgICAg VHlwZSAgICAgIHwgICAgICAgIE93bmVyICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcxICAgfCBwcm9wZXJ0eSBncmFwaCB8IHJlZ3Jl c3NfZ3JhcGhfdXNlcjEKKygxIHJvdykKKworLS0gVE9ETworXGQgZzEKK1Byb3BlcnR5IGdyYXBo ICJjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEiCisgQ29sdW1uIHwgVHlwZSAKKy0tLS0t LS0tKy0tLS0tLQorCitcZCsgZzEKK1Byb3BlcnR5IGdyYXBoICJjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMuZzEiCisgQ29sdW1uIHwgVHlwZSB8IFN0b3JhZ2UgCistLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tCitQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgorIENSRUFURSBQUk9QRVJUWSBH UkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEKKworRFJPUCBUQUJMRSBnMjsgIC0t IGVycm9yOiB3cm9uZyBvYmplY3QgdHlwZQorRVJST1I6ICAiZzIiIGlzIG5vdCBhIHRhYmxlCitI SU5UOiAgVXNlIERST1AgUFJPUEVSVFkgR1JBUEggdG8gcmVtb3ZlIGEgcHJvcGVydHkgZ3JhcGgu CitEUk9QIFBST1BFUlRZIEdSQVBIIGcxOworRFJPUCBQUk9QRVJUWSBHUkFQSCBnMTsgIC0tIGVy cm9yOiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBwcm9wZXJ0eSBncmFwaCAiZzEiIGRvZXMgbm90 IGV4aXN0CitEUk9QIFBST1BFUlRZIEdSQVBIIElGIEVYSVNUUyBnMTsKK05PVElDRTogIHByb3Bl cnR5IGdyYXBoICJnMSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBsZWF2ZSBmb3IgcGdf dXBncmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyBDQVNDQURFOworRFJPUCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjEsIHJlZ3Jlc3Nf Z3JhcGhfdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBo X3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MTNmYzlhYTI1NQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBA IC0wLDAgKzEsNDg0IEBACitDUkVBVEUgU0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzOworR1JBTlQg VVNBR0UgT04gU0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hf cGF0aCA9IGdyYXBoX3RhYmxlX3Rlc3RzOworQ1JFQVRFIFRBQkxFIHByb2R1Y3RzICgKKyAgICBw cm9kdWN0X25vIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIHBy aWNlIG51bWVyaWMKKyk7CitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9p ZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZh cmNoYXIKKyk7CitDUkVBVEUgVEFCTEUgb3JkZXJzICgKKyAgICBvcmRlcl9pZCBpbnRlZ2VyIFBS SU1BUlkgS0VZLAorICAgIG9yZGVyZWRfd2hlbiBkYXRlCispOworQ1JFQVRFIFRBQkxFIG9yZGVy X2l0ZW1zICgKKyAgICBvcmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9y ZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKSwKKyAgICBwcm9kdWN0 X25vIGludGVnZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgcXVhbnRp dHkgaW50ZWdlcgorKTsKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAorICAgIGN1c3Rv bWVyX29yZGVyc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVn ZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICBvcmRlcl9pZCBpbnRl Z2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7CitDUkVBVEUgVEFCTEUgd2lzaGxp c3RzICgKKyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIHdpc2hsaXN0 X25hbWUgdmFyY2hhcgorKTsKK0NSRUFURSBUQUJMRSB3aXNobGlzdF9pdGVtcyAoCisgICAgd2lz aGxpc3RfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICB3aXNobGlzdF9pZCBpbnRl Z2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCksCisgICAgcHJvZHVjdF9ubyBp bnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCispOworQ1JFQVRFIFRBQkxF IGN1c3RvbWVyX3dpc2hsaXN0cyAoCisgICAgY3VzdG9tZXJfd2lzaGxpc3RfaWQgaW50ZWdlciBQ UklNQVJZIEtFWSwKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgY3VzdG9tZXJz IChjdXN0b21lcl9pZCksCisgICAgd2lzaGxpc3RfaWQgaW50ZWdlciBSRUZFUkVOQ0VTIHdpc2hs aXN0cyAod2lzaGxpc3RfaWQpCispOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAg IFZFUlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9kdWN0cywKKyAgICAgICAgY3VzdG9tZXJzLAor ICAgICAgICBvcmRlcnMKKyAgICAgICAgICAgREVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFC RUwgbGlzdHMgUFJPUEVSVElFUyAob3JkZXJfaWQgYXMgbm9kZV9pZCwgJ29yZGVyJzo6dmFyY2hh cigxMCkgYXMgbGlzdF90eXBlKSwKKyAgICAgICAgd2lzaGxpc3RzCisgICAgICAgICAgIERFRkFV TFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGxpc3RzIFBST1BFUlRJRVMgKHdpc2hsaXN0X2lk IGFzIG5vZGVfaWQsICd3aXNobGlzdCc6OnZhcmNoYXIoMTApIGFzIGxpc3RfdHlwZSkKKyAgICAp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBvcmRlcl9pdGVtcyBLRVkgKG9yZGVyX2l0ZW1z X2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJz IChvcmRlcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJvZHVjdF9ubykgUkVG RVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubykKKyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwK KyAgICAgICAgICAgIExBQkVMIGxpc3RfaXRlbXMgUFJPUEVSVElFUyAob3JkZXJfaWQgYXMgbGlu a19pZCwgcHJvZHVjdF9ubyksCisgICAgICAgIHdpc2hsaXN0X2l0ZW1zIEtFWSAod2lzaGxpc3Rf aXRlbXNfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZICh3aXNobGlzdF9pZCkgUkVGRVJFTkNF UyB3aXNobGlzdHMgKHdpc2hsaXN0X2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChw cm9kdWN0X25vKSBSRUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKQorICAgICAgICAgICAg REVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFCRUwgbGlzdF9pdGVtcyBQUk9QRVJUSUVTICh3 aXNobGlzdF9pZCBhcyBsaW5rX2lkLCBwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3Jk ZXJzIEtFWSAoY3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3Vz dG9tZXJfaWQpIFJFRkVSRU5DRVMgY3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAgICAgICAg IERFU1RJTkFUSU9OIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkK KyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGN1c3RfbGlzdHMg UFJPUEVSVElFUyAoY3VzdG9tZXJfaWQsIG9yZGVyX2lkIGFzIGxpbmtfaWQpLAorICAgICAgICBj dXN0b21lcl93aXNobGlzdHMgS0VZIChjdXN0b21lcl93aXNobGlzdF9pZCkKKyAgICAgICAgICAg IFNPVVJDRSBLRVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJf aWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKHdpc2hsaXN0X2lkKSBSRUZFUkVOQ0VT IHdpc2hsaXN0cyAod2lzaGxpc3RfaWQpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAg ICAgICAgICBMQUJFTCBjdXN0X2xpc3RzIFBST1BFUlRJRVMgKGN1c3RvbWVyX2lkLCB3aXNobGlz dF9pZCBhcyBsaW5rX2lkKQorICAgICk7CitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBI X1RBQkxFICh4eHggTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycp LVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBj dXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICByZWxhdGlvbiAieHh4IiBkb2VzIG5v dCBleGlzdAorTElORSAxOiBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICh4 eHggTUFUQ0ggKGMgSVMgY3VzdG8uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAo cGdfY2xhc3MgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0 b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICAicGdfY2xhc3MiIGlzIG5vdCBhIHByb3Bl cnR5IGdyYXBoCitMSU5FIDE6IFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUg KHBnX2NsYXNzIE1BVENIIChjIElTIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxF IChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGN4Lm5hbWUgQVMgY3Vz dG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRy eSBmb3IgdGFibGUgImN4IgorTElORSAxOiAuLi5VUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGN4Lm5hbWUgQVMuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgY3VzdG9t ZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdI RVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMp IENPTFVNTlMgKGMubmFtZXggQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAg cHJvcGVydHkgIm5hbWV4IiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJP TSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVyc3xlbXBsb3llZXMgV0hF UkUgYy5hZGRyZXNzID0gJ1VTJyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykg Q09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0tIGVycm9yCitFUlJPUjogIGxh YmVsICJlbXBsb3llZXMiIGRvZXMgbm90IGV4aXN0IGluIHByb3BlcnR5IGdyYXBoICJteXNob3Ai CitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNd IENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICBz eW50YXggZXJyb3IgYXQgb3IgbmVhciAiQ09MVU1OUyIKK0xJTkUgMTogLi4ubWVycyBXSEVSRSBj LmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXSBDT0xVTU5TIChjLi4uCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorSU5TRVJUIElOVE8gcHJvZHVjdHMgVkFMVUVTCisgICAgKDEsICdwcm9kdWN0MScsIDEwKSwK KyAgICAoMiwgJ3Byb2R1Y3QyJywgMjApLAorICAgICgzLCAncHJvZHVjdDMnLCAzMCk7CitJTlNF UlQgSU5UTyBjdXN0b21lcnMgVkFMVUVTCisgICAgKDEsICdjdXN0b21lcjEnLCAnVVMnKSwKKyAg ICAoMiwgJ2N1c3RvbWVyMicsICdDQScpLAorICAgICgzLCAnY3VzdG9tZXIzJywgJ0dMJyk7CitJ TlNFUlQgSU5UTyBvcmRlcnMgVkFMVUVTCisgICAgKDEsIGRhdGUgJzIwMjQtMDEtMDEnKSwKKyAg ICAoMiwgZGF0ZSAnMjAyNC0wMS0wMicpLAorICAgICgzLCBkYXRlICcyMDI0LTAxLTAzJyk7CitJ TlNFUlQgSU5UTyB3aXNobGlzdHMgVkFMVUVTCisgICAgKDEsICd3aXNobGlzdDEnKSwKKyAgICAo MiwgJ3dpc2hsaXN0MicpLAorICAgICgzLCAnd2lzaGxpc3QzJyk7CitJTlNFUlQgSU5UTyBvcmRl cl9pdGVtcyAob3JkZXJfaXRlbXNfaWQsIG9yZGVyX2lkLCBwcm9kdWN0X25vLCBxdWFudGl0eSkg VkFMVUVTCisgICAgKDEsIDEsIDEsIDUpLAorICAgICgyLCAxLCAyLCAxMCksCisgICAgKDMsIDIs IDEsIDcpOworSU5TRVJUIElOVE8gY3VzdG9tZXJfb3JkZXJzIChjdXN0b21lcl9vcmRlcnNfaWQs IGN1c3RvbWVyX2lkLCBvcmRlcl9pZCkgVkFMVUVTCisgICAgKDEsIDEsIDEpLAorICAgICgyLCAy LCAyKTsKK0lOU0VSVCBJTlRPIGN1c3RvbWVyX3dpc2hsaXN0cyAoY3VzdG9tZXJfd2lzaGxpc3Rf aWQsIGN1c3RvbWVyX2lkLCB3aXNobGlzdF9pZCkgVkFMVUVTCisgICAgKDEsIDIsIDMpLAorICAg ICgyLCAzLCAxKSwKKyAgICAoMywgMywgMik7CitJTlNFUlQgSU5UTyB3aXNobGlzdF9pdGVtcyAo d2lzaGxpc3RfaXRlbXNfaWQsIHdpc2hsaXN0X2lkLCBwcm9kdWN0X25vKSBWQUxVRVMKKyAgICAo MSwgMSwgMiksCisgICAgKDIsIDEsIDMpLAorICAgICgzLCAyLCAxKSwKKyAgICAoNCwgMywgMSk7 CistLSBzaW5nbGUgZWxlbWVudCBwYXRoIHBhdHRlcm4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSkpOworICAg bmFtZSAgICAKKy0tLS0tLS0tLS0tCisgY3VzdG9tZXIxCisgY3VzdG9tZXIyCisgY3VzdG9tZXIz CisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNd LT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSkpOworICAgbmFtZSAgICAKKy0tLS0tLS0t LS0tCisgY3VzdG9tZXIxCisoMSByb3cpCisKKy0tIGdyYXBoIGVsZW1lbnQgc3BlY2lmaWNhdGlv biB3aXRob3V0IGxhYmVsIG9yIHZhcmlhYmxlCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICht eXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7CisgY3VzdG9t ZXJfbmFtZSAKKy0tLS0tLS0tLS0tLS0tLQorIGN1c3RvbWVyMQorKDEgcm93KQorCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGM6Y3VzdG9tZXJzKS1bY286Y3VzdG9t ZXJfb3JkZXJzXS0+KG86b3JkZXJzIFdIRVJFIG8ub3JkZXJlZF93aGVuID0gZGF0ZSAnMjAyNC0w MS0wMicpIENPTFVNTlMgKGMubmFtZSwgYy5hZGRyZXNzKSk7CisgICBuYW1lICAgIHwgYWRkcmVz cyAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIGN1c3RvbWVyMiB8IENBCisoMSByb3cpCisKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwgby5vcmRl cmVkX3doZW4pKTsKKyBuYW1lIHwgb3JkZXJlZF93aGVuIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0t CisoMCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKG8g SVMgb3JkZXJzKTwtW0lTIGN1c3RvbWVyX29yZGVyc10tKGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5T IChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSk7CisgICBuYW1lICAgIHwgb3JkZXJlZF93aGVuIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBjdXN0b21lcjEgfCAwMS0wMS0yMDI0CisgY3Vz dG9tZXIyIHwgMDEtMDItMjAyNAorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAobXlzaG9wIE1BVENIICggbyBJUyBvcmRlcnMgKSA8LSBbIElTIGN1c3RvbWVyX29yZGVycyBd IC0gKGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5TICggYy5uYW1lLCBvLm9yZGVyZWRfd2hlbikpOwor ICAgbmFtZSAgICB8IG9yZGVyZWRfd2hlbiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisg Y3VzdG9tZXIxIHwgMDEtMDEtMjAyNAorIGN1c3RvbWVyMiB8IDAxLTAyLTIwMjQKKygyIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21l cnMpLVtJUyBjdXN0X2xpc3RzXS0+KGwgSVMgbGlzdHMpLVsgSVMgbGlzdF9pdGVtc10tPihwIElT IHByb2R1Y3RzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1lIGFzIHBy b2R1Y3RfbmFtZSwgbC5saXN0X3R5cGUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1lLCBwcm9kdWN0 X25hbWUsIGxpc3RfdHlwZTsKKyBjdXN0b21lcl9uYW1lIHwgcHJvZHVjdF9uYW1lIHwgbGlzdF90 eXBlIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgY3VzdG9t ZXIxICAgICB8IHByb2R1Y3QxICAgICB8IG9yZGVyCisgY3VzdG9tZXIxICAgICB8IHByb2R1Y3Qy ICAgICB8IG9yZGVyCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3QxICAgICB8IG9yZGVyCisgY3Vz dG9tZXIyICAgICB8IHByb2R1Y3QxICAgICB8IHdpc2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHBy b2R1Y3QxICAgICB8IHdpc2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QyICAgICB8IHdp c2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QzICAgICB8IHdpc2hsaXN0CisoNyByb3dz KQorCistLSBsYWJlbCBkaXNqdW5jdGlvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlz aG9wIE1BVENIIChjIElTIGN1c3RvbWVycyktW0lTIGN1c3RvbWVyX29yZGVycyB8IGN1c3RvbWVy X3dpc2hsaXN0cyBdLT4obCBJUyBvcmRlcnMgfCB3aXNobGlzdHMpLVsgSVMgbGlzdF9pdGVtc10t PihwIElTIHByb2R1Y3RzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1l IGFzIHByb2R1Y3RfbmFtZSkpIE9SREVSIEJZIGN1c3RvbWVyX25hbWUsIHByb2R1Y3RfbmFtZTsK KyBjdXN0b21lcl9uYW1lIHwgcHJvZHVjdF9uYW1lIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tCisgY3VzdG9tZXIxICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIxICAgICB8IHByb2R1 Y3QyCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3Qx CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QyCisg Y3VzdG9tZXIzICAgICB8IHByb2R1Y3QzCisoNyByb3dzKQorCistLSBwcm9wZXJ0eSBub3QgYXNz b2NpYXRlZCB3aXRoIGxhYmVscyBxdWVyaWVkIHJlc3VsdHMgaW4gZXJyb3IKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBjdXN0b21l cl9vcmRlcnMgfCBjdXN0b21lcl93aXNobGlzdHMgXS0+KGwgSVMgb3JkZXJzIHwgd2lzaGxpc3Rz KS1bIElTIGxpc3RfaXRlbXNdLT4ocCBJUyBwcm9kdWN0cykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1 c3RvbWVyX25hbWUsIHAubmFtZSBhcyBwcm9kdWN0X25hbWUsIGwubGlzdF90eXBlKSkgT1JERVIg QlkgMSwgMiwgMzsKK0VSUk9SOiAgcHJvcGVydHkgImxpc3RfdHlwZSIgb2YgZWxlbWVudCB2YXJp YWJsZSAibCIgbm90IGZvdW5kCistLSB2ZXJ0ZXggdG8gdmVydGV4IGNvbm5lY3Rpb24gYWJicmV2 aWF0aW9uCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3Vz dG9tZXJzKS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSkg T1JERVIgQlkgMTsKKyAgIG5hbWUgICAgfCBvcmRlcmVkX3doZW4gCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLQorIGN1c3RvbWVyMSB8IDAxLTAxLTIwMjQKKyBjdXN0b21lcjIgfCAwMS0wMi0y MDI0CisoMiByb3dzKQorCistLSBsYXRlcmFsIHRlc3QKK0NSRUFURSBUQUJMRSB4MSAoYSBpbnQs IGIgdGV4dCk7CitJTlNFUlQgSU5UTyB4MSBWQUxVRVMgKDEsICdvbmUnKSwgKDIsICd0d28nKTsK K1NFTEVDVCAqIEZST00geDEsIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycgQU5EIGMuY3VzdG9tZXJfaWQgPSB4MS5hKS1bSVMg Y3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9t ZXJfbmFtZSwgYy5jdXN0b21lcl9pZCBBUyBjaWQpKTsKKyBhIHwgIGIgIHwgY3VzdG9tZXJfbmFt ZSB8IGNpZCAKKy0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0KKyAxIHwgb25lIHwgY3Vz dG9tZXIxICAgICB8ICAgMQorKDEgcm93KQorCitEUk9QIFRBQkxFIHgxOworY3JlYXRlIHRhYmxl IHYxIChpZCBpbnQgcHJpbWFyeSBrZXksCisJCQkJCXZuYW1lIHZhcmNoYXIoMTApLAorCQkJCQl2 cHJvcDEgaW50LAorCQkJCQl2cHJvcDIgaW50KTsKK2NyZWF0ZSB0YWJsZSB2MiAoaWQxIGludCwK KwkJCQkJaWQyIGludCwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9wMSBpbnQs CisJCQkJCXZwcm9wMiBpbnQpOworY3JlYXRlIHRhYmxlIHYzIChpZCBpbnQgcHJpbWFyeSBrZXks CisJCQkJCXZuYW1lIHZhcmNoYXIoMTApLAorCQkJCQl2cHJvcDEgaW50LAorCQkJCQl2cHJvcDIg aW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MSBhbmQgdjIKK2NyZWF0ZSB0YWJsZSBlMV8yIChp ZF8xIGludCwKKwkJCQkJaWRfMl8xIGludCwKKwkJCQkJaWRfMl8yIGludCwKKwkJCQkJZW5hbWUg dmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOworLS0gZWRnZSBjb25uZWN0aW5nIHYxIGFu ZCB2MworY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50LAorCQkJCQlpZF8zIGludCwKKwkJCQkJ ZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQsCisJCQkJCXByaW1hcnkga2V5IChp ZF8xLCBpZF8zKSk7CitjcmVhdGUgdGFibGUgZTJfMyAoaWRfMl8xIGludCwKKyAgICAgICAgICAg ICAgICAgICAgaWRfMl8yIGludCwKKyAgICAgICAgICAgICAgICAgICAgaWRfMyBpbnQsCisgICAg ICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBl cHJvcDEgaW50KTsKK2NyZWF0ZSBwcm9wZXJ0eSBncmFwaCBnMQordmVydGV4IHRhYmxlcyAoCisJ djEKKyAgICAgICAgbGFiZWwgdmwxIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEpCisgICAgICAg IGxhYmVsIGwxIHByb3BlcnRpZXMgKHZuYW1lIGFzIGVsbmFtZSksIC0tIGxhYmVsIHNoYXJlZCBi eSB2ZXJ0ZXhlcyBhcyB3ZWxsIGFzIGVkZ2VzCisJdjIga2V5IChpZDEsIGlkMikKKwkJbGFiZWwg dmwyIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDIsICd2bDJfcHJvcCc6OnZhcmNoYXIoMTApIGFz IGxwcm9wMSkKKyAgICAgICAgbGFiZWwgdmwzIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEsICd2 bDJfcHJvcCc6OnZhcmNoYXIoMTApIGFzIGxwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVy dGllcyAodm5hbWUgYXMgZWxuYW1lKSwKKwl2MworCQlsYWJlbCB2bDMgcHJvcGVydGllcyAodm5h bWUsIHZwcm9wMSwgJ3ZsM19wcm9wJzo6dmFyY2hhcigxMCkgYXMgbHByb3AxKQorICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICh2bmFtZSBhcyBlbG5hbWUpCispCistLSBlZGdlcyB3aXRoIGRp ZmZlcmluZyBudW1iZXIgb2YgY29sdW1ucyBpbiBkZXN0aW5hdGlvbiBrZXlzCitlZGdlIHRhYmxl cyAoCisJZTFfMiBrZXkgKGlkXzEsIGlkXzJfMSwgaWRfMl8yKQorCQlzb3VyY2Uga2V5IChpZF8x KSByZWZlcmVuY2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8yXzEsIGlkXzJfMikg cmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCisJCWxhYmVsIGVsMSBwcm9wZXJ0aWVzIChlcHJvcDEs IGVuYW1lKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAor CWUxXzMKKwkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWRlc3RpbmF0 aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCisJCS0tIG9yZGVyIG9mIHByb3BlcnR5 IG5hbWVzIGRvZXNuJ3QgbWF0dGVyCisJCWxhYmVsIGVsMSBwcm9wZXJ0aWVzIChlbmFtZSwgZXBy b3AxKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAorICAg IGUyXzMga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRfMykKKyAgICAgICAgc291cmNlIGtleSAoaWRf Ml8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorICAgICAgICBkZXN0aW5hdGlv biBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorICAgICAgICAtLSBuZXcgcHJvcGVydHkg bHByb3AyIG5vdCBzaGFyZWQgYnkgZWwxCisgICAgICAgIC0tIGRvZXMgbm90IHNoYXJlIGVwcm9w MSBmcm9tIGJ5IGVsMQorICAgICAgICBsYWJlbCBlbDIgcHJvcGVydGllcyAoZW5hbWUsIGVwcm9w MSAqIDEwIGFzIGxwcm9wMikKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMg ZWxuYW1lKQorKTsKK2luc2VydCBpbnRvIHYxIHZhbHVlcyAoMSwgJ3YxMScsIDEwLCAxMDApLAor ICAgICAgICAgICAgICAgICAgICAgICgyLCAndjEyJywgMjAsIDIwMCksCisgICAgICAgICAgICAg ICAgICAgICAgKDMsICd2MTMnLCAzMCwgMzAwKTsKK2luc2VydCBpbnRvIHYyIHZhbHVlcyAoMTAw MCwgMSwgJ3YyMScsIDEwMTAsIDExMDApLAorICAgICAgICAgICAgICAgICAgICAgICgxMDAwLCAy LCAndjIyJywgMTAyMCwgMTIwMCksCisgICAgICAgICAgICAgICAgICAgICAgKDEwMDAsIDMsICd2 MjMnLCAxMDMwLCAxMzAwKTsKK2luc2VydCBpbnRvIHYzIHZhbHVlcyAoMjAwMSwgJ3YzMScsIDIw MTAsIDIxMDApLAorICAgICAgICAgICAgICAgICAgICAgICgyMDAyLCAndjMyJywgMjAyMCwgMjIw MCksCisgICAgICAgICAgICAgICAgICAgICAgKDIwMDMsICd2MzMnLCAyMDMwLCAyMzAwKTsKK2lu c2VydCBpbnRvIGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAxKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICgyLCAxMDAwLCAxLCAnZTEyMicsIDEwMDAyKTsKK2luc2VydCBp bnRvIGUxXzMgdmFsdWVzICgxLCAyMDAzLCAnZTEzMScsIDEwMDAzKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICgxLCAyMDAxLCAnZTEzMicsIDEwMDA0KTsKK2luc2VydCBpbnRvIGUyXzMgdmFs dWVzICgxMDAwLCAyLCAyMDAyLCAnZTIzMScsIDEwMDA1KTsKKy0tIGVtcHR5IGVsZW1lbnQgcGF0 aCBwYXR0ZXJuLCBjb3VudHMgbnVtYmVyIG9mIGVkZ2VzIGluIHRoZSBncmFwaAorU0VMRUNUIGNv dW50KCopIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIICgpLVtdLT4oKSBDT0xVTU5TICgxIGFz IG9uZSkpOworIGNvdW50IAorLS0tLS0tLQorICAgICA1CisoMSByb3cpCisKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUp KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgNQorKDEgcm93KQorCistLSBWZXJ0ZXggZWxlbWVu dCB2MiBoYXMgbGFiZWwgdmwzIHdoaWNoIGV4cG9zZXMgcHJvcGVydHkgdnByb3AxLiBCdXQgdmwz IGlzCistLSBub3QgcGFydCBvZiBsYWJlbCBleHByZXNzaW9uLiBJbnN0ZWFkIHYyIGdldCBib3Vu ZCB0aHJvdWdoIGxhYmVsIHZsMiB3aGljaAorLS0gZG9lcyBub3QgZXhwb3NlIHZwcm9wMS4gVGhl IEdSQVBIX1RBQkxFIGNsYXVzZSBwcm9qZWN0IHZwcm9wMS4KKy0tCistLSBUT0RPOiBUaGlzIGNh c2UgZmFpbHMgc2luY2UgY2F0YWxvZ3MgZG8gbm90IGFzc29jaWF0ZWQgcHJvcGVydGllcyB3aXRo CistLSBlbGVtZW50cyBkaXJlY3RseS4gTW9yZSBjb2RlIGlzIG5lZWRlZCB0byBtYWtlIGl0IHdv cmsuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEgfCB2bDIp IENPTFVNTlMgKGEudm5hbWUsCithLnZwcm9wMSkpOworIHZuYW1lIHwgdnByb3AxIAorLS0tLS0t LSstLS0tLS0tLQorIHYxMSAgIHwgICAgIDEwCisgdjEyICAgfCAgICAgMjAKKyB2MTMgICB8ICAg ICAzMAorIHYyMSAgIHwgICAxMDEwCisgdjIyICAgfCAgIDEwMjAKKyB2MjMgICB8ICAgMTAzMAor KDYgcm93cykKKworLS0gdnByb3AyIGlzIGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5vdCB2bDMK K3NlbGVjdCBzcmMsIGNvbm4sIGRlc3QsIGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFw aF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2bDMp IGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVz dCwgYy5scHJvcDEsIGMudnByb3AyLCBjLnZwcm9wMSkpOworIHNyYyB8IGNvbm4gfCBkZXN0IHwg IGxwcm9wMSAgfCB2cHJvcDIgfCB2cHJvcDEgCistLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0KKyB2MTIgfCBlMTIyIHwgdjIxICB8IHZsMl9wcm9wIHwgICAx MTAwIHwgICAxMDEwCisgdjExIHwgZTEyMSB8IHYyMiAgfCB2bDJfcHJvcCB8ICAgMTIwMCB8ICAg MTAyMAorIHYxMSB8IGUxMzEgfCB2MzMgIHwgdmwzX3Byb3AgfCAgICAgICAgfCAgIDIwMzAKKyB2 MTEgfCBlMTMyIHwgdjMxICB8IHZsM19wcm9wIHwgICAgICAgIHwgICAyMDEwCisoNCByb3dzKQor CistLSBFcnJvcnMKKy0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9w Mgorc2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxlIChn MSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAo YS52bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29ubiwg Yy52bmFtZSBhcyBkZXN0KSk7CitFUlJPUjogIHByb3BlcnR5ICJ2cHJvcDIiIG9mIGVsZW1lbnQg dmFyaWFibGUgImEiIG5vdCBmb3VuZAorLS0gcHJvcGVydHkgZW5hbWUgaXMgYXNzb2NpYXRlZCB3 aXRoIGVkZ2UgbGFiZWxzIGJ1dCBub3Qgd2l0aCBhIHZlcnRleCBsYWJlbAorc2VsZWN0ICogZnJv bSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3Jj LnZuYW1lIGFzIHN2bmFtZSwgc3JjLmVuYW1lIGFzIHNlbmFtZSkpOworRVJST1I6ICBwcm9wZXJ0 eSAiZW5hbWUiIG9mIGVsZW1lbnQgdmFyaWFibGUgInNyYyIgbm90IGZvdW5kCistLSB2bmFtZSBp cyBhc3NvY2lhdGVkIHZlcnRleCBsYWJlbHMgYnV0IG5vdCBhbiBlZGdlIGxhYmVsCitzZWxlY3Qg KiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1bW5z IChjb25uLnZuYW1lIGFzIGN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUpKTsKK0VSUk9SOiAg cHJvcGVydHkgInZuYW1lIiBvZiBlbGVtZW50IHZhcmlhYmxlICJjb25uIiBub3QgZm91bmQKKy0t IGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMgYnV0IGlzIG9ubHkgbGFiZWwgdXNlZCB0byBx dWFsaWZ5IHZlcnRleAorc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyBp cyBlbDEpLVtjb25uXS0+KGRlc3QpIGNvbHVtbnMgKGNvbm4uZW5hbWUgYXMgY2VuYW1lKSk7CitF UlJPUjogIGNhbiBub3QgZmluZCBsYWJlbCAiZWwxIiBpbiBwcm9wZXJ0eSBncmFwaCAiZzEiIGZv ciBlbGVtZW50IHR5cGUgInZlcnRleCIKKy0tIGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMg YnV0IGlzIG9uZSBvZiB0aGUgbGFiZWxzIHVzZWQgdG8gcXVhbGlmeSB2ZXJ0ZXgKK3NlbGVjdCAq IGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMgaXMgZWwxIHwgdmwxKS1bY29ubl0tPihk ZXN0KSBjb2x1bW5zIChjb25uLmVuYW1lIGFzIGNlbmFtZSkpOworRVJST1I6ICBjYW4gbm90IGZp bmQgbGFiZWwgImVsMSIgaW4gcHJvcGVydHkgZ3JhcGggImcxIiBmb3IgZWxlbWVudCB0eXBlICJ2 ZXJ0ZXgiCistLSBzZWxlY3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFjcm9zcyBhbGwgdGhlIGxhYmVs cyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiB0eXBlCistLSBvZiBncmFwaCBlbGVtZW50CitzZWxl Y3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1 bW5zIChzcmMudm5hbWUgYXMgc3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFtZSwgZGVzdC52bmFt ZSBhcyBkdm5hbWUsIHNyYy52cHJvcDEgYXMgc3ZwMSwgc3JjLnZwcm9wMiBhcyBzdnAyLCBzcmMu bHByb3AxIGFzIHNscDEsIGRlc3QudnByb3AxIGFzIGR2cDEsIGRlc3QudnByb3AyIGFzIGR2cDIs IGRlc3QubHByb3AxIGFzIGRscDEsIGNvbm4uZXByb3AxIGFzIGNlcDEsIGNvbm4ubHByb3AyIGFz IGNscDIpKTsKKyBzdm5hbWUgfCBjZW5hbWUgfCBkdm5hbWUgfCBzdnAxIHwgc3ZwMiB8ICAgc2xw MSAgIHwgZHZwMSB8IGR2cDIgfCAgIGRscDEgICB8IGNlcDEgIHwgIGNscDIgIAorLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tCisgdjEyICAgIHwgZTEyMiAgIHwgdjIxICAgIHwg ICAyMCB8ICAgICAgfCAgICAgICAgICB8IDEwMTAgfCAxMTAwIHwgdmwyX3Byb3AgfCAxMDAwMiB8 ICAgICAgIAorIHYxMSAgICB8IGUxMjEgICB8IHYyMiAgICB8ICAgMTAgfCAgICAgIHwgICAgICAg ICAgfCAxMDIwIHwgMTIwMCB8IHZsMl9wcm9wIHwgMTAwMDEgfCAgICAgICAKKyB2MTEgICAgfCBl MTMxICAgfCB2MzMgICAgfCAgIDEwIHwgICAgICB8ICAgICAgICAgIHwgMjAzMCB8ICAgICAgfCB2 bDNfcHJvcCB8IDEwMDAzIHwgICAgICAgCisgdjExICAgIHwgZTEzMiAgIHwgdjMxICAgIHwgICAx MCB8ICAgICAgfCAgICAgICAgICB8IDIwMTAgfCAgICAgIHwgdmwzX3Byb3AgfCAxMDAwNCB8ICAg ICAgIAorIHYyMiAgICB8IGUyMzEgICB8IHYzMiAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3Ag fCAyMDIwIHwgICAgICB8IHZsM19wcm9wIHwgICAgICAgfCAxMDAwNTAKKyg1IHJvd3MpCisKKy0t IHRocmVlIGxhYmVsIGRpc2p1bmN0aW9uCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBt YXRjaCAoc3JjIElTIHZsMSB8IHZsMiB8IHZsMyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3Jj LnZuYW1lIGFzIHN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUsIGRlc3Qudm5hbWUgYXMgZHZu YW1lKSk7Cisgc3ZuYW1lIHwgY2VuYW1lIHwgZHZuYW1lIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0KKyB2MTIgICAgfCBlMTIyICAgfCB2MjEKKyB2MTEgICAgfCBlMTIxICAgfCB2MjIKKyB2 MTEgICAgfCBlMTMxICAgfCB2MzMKKyB2MTEgICAgfCBlMTMyICAgfCB2MzEKKyB2MjIgICAgfCBl MjMxICAgfCB2MzIKKyg1IHJvd3MpCisKKy0tIGdyYXBoJ2ljYWwgcXVlcnk6IGZpbmQgYSB2ZXJ0 ZXggd2hpY2ggaXMgbm90IGNvbm5lY3RlZCB0byBhbnkgb3RoZXIgdmVydGV4IGFzIGEgc291cmNl IG9yIGEgZGVzdGluYXRpb24uCit3aXRoIGFsbF9jb25uZWN0ZWRfdmVydGljZXMgYXMgKHNlbGVj dCBzdm4sIGR2biBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0 KSBjb2x1bW5zIChzcmMudm5hbWUgYXMgc3ZuLCBkZXN0LnZuYW1lIGFzIGR2bikpKSwKKyAgICBh bGxfdmVydGljZXMgYXMgKHNlbGVjdCB2biBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAodmVy dGV4KSBjb2x1bW5zICh2ZXJ0ZXgudm5hbWUgYXMgdm4pKSkKK3NlbGVjdCB2biBmcm9tIGFsbF92 ZXJ0aWNlcyBleGNlcHQgKHNlbGVjdCBzdm4gZnJvbSBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzIHVu aW9uIHNlbGVjdCBkdm4gZnJvbSBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzKTsKKyB2biAgCistLS0t LQorIHYxMworIHYyMworKDIgcm93cykKKworLS0gcXVlcnkgYWxsIGNvbm5lY3Rpb25zIHVzaW5n IGEgbGFiZWwgc2hhcmVkIGJ5IHZlcnRpY2VzIGFuZCBlZGdlcworc2VsZWN0IHNuLCBjbiwgZG4g ZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3Qg OiBsMSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5hbWUgYXMgY24sIGRlc3Qu ZWxuYW1lIGFzIGRuKSk7Cisgc24gIHwgIGNuICB8IGRuICAKKy0tLS0tKy0tLS0tLSstLS0tLQor IHYxMiB8IGUxMjIgfCB2MjEKKyB2MTEgfCBlMTIxIHwgdjIyCisgdjExIHwgZTEzMSB8IHYzMwor IHYxMSB8IGUxMzIgfCB2MzEKKyB2MjIgfCBlMjMxIHwgdjMyCisoNSByb3dzKQorCistLSBwcm9w ZXJ0eSBncmFwaCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHByb3BlcnRp ZXMgc2FtZSBhcyB0aGUKKy0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBvbmVudHMg ZnJvbSB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQorLS0gdXNlZC4KK2NyZWF0ZSBw cm9wZXJ0eSBncmFwaCBnMgordmVydGV4IHRhYmxlcyAoCisJdjEKKyAgICAgICAgbGFiZWwgbDEg cHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKwl2MiBrZXkgKGlkMSwgaWQy KQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUp LAorCXYzCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVs bmFtZSkKKykKK2VkZ2UgdGFibGVzICgKKwllMV8yIGtleSAoaWRfMSwgaWRfMl8xLCBpZF8yXzIp CisJCXNvdXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBr ZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKKyAgICAgICAgbGFi ZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKSwKKwllMV8zCisJCXNv dXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBrZXkgKGlk XzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIu JyB8fCBlbmFtZSBhcyBlbG5hbWUpLAorICAgIGUyXzMga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRf MykKKyAgICAgICAgc291cmNlIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlk MSwgaWQyKQorICAgICAgICBkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlk KQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBhcyBlbG5hbWUp CispOworc2VsZWN0IHNuLCBjbiwgZG4gZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6 IGwxKS1bY29ubiA6IGwxXS0+KGRlc3QgOiBsMSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwg Y29ubi5lbG5hbWUgYXMgY24sIGRlc3QuZWxuYW1lIGFzIGRuKSk7CisgICBzbiAgIHwgICBjbiAg ICB8ICAgZG4gICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQorIGcyLnYxMiB8IGcyLmUx MjIgfCBnMi52MjEKKyBnMi52MTEgfCBnMi5lMTIxIHwgZzIudjIyCisgZzIudjExIHwgZzIuZTEz MSB8IGcyLnYzMworIGcyLnYxMSB8IGcyLmUxMzIgfCBnMi52MzEKKyBnMi52MjIgfCBnMi5lMjMx IHwgZzIudjMyCisoNSByb3dzKQorCitDUkVBVEUgVklFVyBjdXN0b21lcnNfdXMgQVMgU0VMRUNU IGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3Rv bWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMg b3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOworU0VMRUNUIHBnX2dl dF92aWV3ZGVmKCdjdXN0b21lcnNfdXMnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBjdXN0b21lcl9uYW1lICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChj IElTIGN1c3RvbWVycyBXSEVSRSAoKGMuYWRkcmVzcyk6OnRleHQgPSAnVVMnOjp0ZXh0KSktW0lT IGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3Rv bWVyX25hbWUpKTsKKygxIHJvdykKKworLS0gdGVzdCB2aWV3L2dyYXBoIG5lc3RpbmcKK0NSRUFU RSBWSUVXIGN1c3RvbWVyc192aWV3IEFTIFNFTEVDVCBjdXN0b21lcl9pZCwgJ3JlZGFjdGVkJyB8 fCBjdXN0b21lcl9pZCBBUyBuYW1lX3JlZGFjdGVkLCBhZGRyZXNzIEZST00gY3VzdG9tZXJzOwor U0VMRUNUICogRlJPTSBjdXN0b21lcnM7CisgY3VzdG9tZXJfaWQgfCAgIG5hbWUgICAgfCBhZGRy ZXNzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgMSB8 IGN1c3RvbWVyMSB8IFVTCisgICAgICAgICAgIDIgfCBjdXN0b21lcjIgfCBDQQorICAgICAgICAg ICAzIHwgY3VzdG9tZXIzIHwgR0wKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gY3VzdG9tZXJz X3ZpZXc7CisgY3VzdG9tZXJfaWQgfCBuYW1lX3JlZGFjdGVkIHwgYWRkcmVzcyAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgICAgICAxIHwgcmVkYWN0ZWQx ICAgICB8IFVTCisgICAgICAgICAgIDIgfCByZWRhY3RlZDIgICAgIHwgQ0EKKyAgICAgICAgICAg MyB8IHJlZGFjdGVkMyAgICAgfCBHTAorKDMgcm93cykKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IG15c2hvcDIKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVjdHMsCisgICAgICAg IGN1c3RvbWVyc192aWV3IEtFWSAoY3VzdG9tZXJfaWQpIExBQkVMIGN1c3RvbWVycywKKyAgICAg ICAgb3JkZXJzCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3JkZXJfaXRlbXMg S0VZIChvcmRlcl9pdGVtc19pZCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKG9yZGVyX2lkKSBS RUZFUkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkg KHByb2R1Y3Rfbm8pIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pLAorICAgICAgICBj dXN0b21lcl9vcmRlcnMgS0VZIChjdXN0b21lcl9vcmRlcnNfaWQpCisgICAgICAgICAgICBTT1VS Q0UgS0VZIChjdXN0b21lcl9pZCkgUkVGRVJFTkNFUyBjdXN0b21lcnNfdmlldyAoY3VzdG9tZXJf aWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VTIG9y ZGVycyAob3JkZXJfaWQpCisgICAgKTsKK0NSRUFURSBWSUVXIGN1c3RvbWVyc191c19yZWRhY3Rl ZCBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AyIE1BVENIIChjIElTIGN1c3Rv bWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMg b3JkZXJzKSBDT0xVTU5TIChjLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9yZWRhY3Rl ZCkpOworU0VMRUNUICogRlJPTSBjdXN0b21lcnNfdXNfcmVkYWN0ZWQ7CisgY3VzdG9tZXJfbmFt ZV9yZWRhY3RlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZGFjdGVkMQorKDEgcm93 KQorCistLSBsZWF2ZSBmb3IgcGdfdXBncmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1B IGdyYXBoX3RhYmxlX3Rlc3RzIENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b2JqZWN0X2FkZHJlc3Mub3V0CmluZGV4IGZjNDJkNDE4YmYxLi40MzJiYTQ3MWZlMyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKQEAgLTM0LDYgKzM0 LDcgQEAgQ1JFQVRFIEZVTkNUSU9OIGFkZHJfbnNwLnRyaWcoKSBSRVRVUk5TIFRSSUdHRVIgTEFO R1VBR0UgcGxwZ3NxbCBBUyAkJCBCRUdJTiBFTkQKIENSRUFURSBUUklHR0VSIHQgQkVGT1JFIElO U0VSVCBPTiBhZGRyX25zcC5nZW50YWJsZSBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUg YWRkcl9uc3AudHJpZygpOwogQ1JFQVRFIFBPTElDWSBnZW5wb2wgT04gYWRkcl9uc3AuZ2VudGFi bGU7CiBDUkVBVEUgUFJPQ0VEVVJFIGFkZHJfbnNwLnByb2MoaW50NCkgTEFOR1VBR0UgU1FMIEFT ICQkICQkOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFkZHJfbnNwLmdlbmdyYXBoOwogQ1JFQVRF IFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgYWRkcl9mZHc7CiBDUkVBVEUg VVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBTRVJWRVIgImludGVnZXIiOwogQUxU RVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIElOIFNDSEVN QSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBUTyByZWdyZXNzX2FkZHJfdXNlcjsKQEAgLTk4 LDcgKzk5LDcgQEAgREVDTEFSRQogQkVHSU4KICAgICBGT1Igb2JqdHlwZSBJTiBWQUxVRVMKICAg ICAgICAgKCd0YWJsZScpLCAoJ2luZGV4JyksICgnc2VxdWVuY2UnKSwgKCd2aWV3JyksCi0gICAg ICAgICgnbWF0ZXJpYWxpemVkIHZpZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksCisgICAgICAgICgn bWF0ZXJpYWxpemVkIHZpZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksICgncHJvcGVydHkgZ3JhcGgn KSwKICAgICAgICAgKCd0YWJsZSBjb2x1bW4nKSwgKCdmb3JlaWduIHRhYmxlIGNvbHVtbicpLAog ICAgICAgICAoJ2FnZ3JlZ2F0ZScpLCAoJ2Z1bmN0aW9uJyksICgncHJvY2VkdXJlJyksICgndHlw ZScpLCAoJ2Nhc3QnKSwKICAgICAgICAgKCd0YWJsZSBjb25zdHJhaW50JyksICgnZG9tYWluIGNv bnN0cmFpbnQnKSwgKCdjb252ZXJzaW9uJyksICgnZGVmYXVsdCB2YWx1ZScpLApAQCAtMTU5LDYg KzE2MCwxMiBAQCBXQVJOSU5HOiAgZXJyb3IgZm9yIGZvcmVpZ24gdGFibGUse2FkZHJfbnNwLHp3 ZWl9LHt9OiByZWxhdGlvbiAiYWRkcl9uc3AuendlaSIgZAogV0FSTklORzogIGVycm9yIGZvciBm b3JlaWduIHRhYmxlLHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25z cC56d2VpIiBkb2VzIG5vdCBleGlzdAogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWduIHRhYmxl LHtlaW5zLHp3ZWksZHJlaX0se306IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWdu IHRhYmxlLHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJlaW5zLnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJv ciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnN9LHt9OiByZWxhdGlvbiAiZWlucyIgZG9lcyBub3Qg ZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnN9LHtpbnRlZ2Vy fTogcmVsYXRpb24gImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHBy b3BlcnR5IGdyYXBoLHthZGRyX25zcCx6d2VpfSx7fTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWki IGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHByb3BlcnR5IGdyYXBoLHthZGRy X25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25zcC56d2VpIiBkb2VzIG5vdCBl eGlzdAorV0FSTklORzogIGVycm9yIGZvciBwcm9wZXJ0eSBncmFwaCx7ZWlucyx6d2VpLGRyZWl9 LHt9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJlaW5z Lnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnMsendl aSxkcmVpfSx7aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgogV0FSTklORzogIGVycm9yIGZvciB0YWJsZSBjb2x1 bW4se2VpbnN9LHt9OiBjb2x1bW4gbmFtZSBtdXN0IGJlIHF1YWxpZmllZAogV0FSTklORzogIGVy cm9yIGZvciB0YWJsZSBjb2x1bW4se2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG5hbWUgbXVzdCBi ZSBxdWFsaWZpZWQKIFdBUk5JTkc6ICBlcnJvciBmb3IgdGFibGUgY29sdW1uLHthZGRyX25zcCx6 d2VpfSx7fTogcmVsYXRpb24gImFkZHJfbnNwIiBkb2VzIG5vdCBleGlzdApAQCAtMzk4LDYgKzQw NSw3IEBAIFdJVEggb2JqZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogICAgICgn dmlldycsICd7YWRkcl9uc3AsIGdlbnZpZXd9JywgJ3t9JyksCiAgICAgKCdtYXRlcmlhbGl6ZWQg dmlldycsICd7YWRkcl9uc3AsIGdlbm1hdHZpZXd9JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRh YmxlJywgJ3thZGRyX25zcCwgZ2VuZnRhYmxlfScsICd7fScpLAorICAgICgncHJvcGVydHkgZ3Jh cGgnLCAne2FkZHJfbnNwLCBnZW5ncmFwaH0nLCAne30nKSwKICAgICAoJ3RhYmxlIGNvbHVtbics ICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBifScsICd7fScpLAogICAgICgnZm9yZWlnbiB0YWJsZSBj b2x1bW4nLCAne2FkZHJfbnNwLCBnZW5mdGFibGUsIGF9JywgJ3t9JyksCiAgICAgKCdhZ2dyZWdh dGUnLCAne2FkZHJfbnNwLCBnZW5hZ2dyfScsICd7aW50NH0nKSwKQEAgLTQ3NCw2ICs0ODIsNyBA QCB2aWV3fGFkZHJfbnNwfGdlbnZpZXd8YWRkcl9uc3AuZ2Vudmlld3x0CiBtYXRlcmlhbGl6ZWQg dmlld3xhZGRyX25zcHxnZW5tYXR2aWV3fGFkZHJfbnNwLmdlbm1hdHZpZXd8dAogZm9yZWlnbiB0 YWJsZXxhZGRyX25zcHxnZW5mdGFibGV8YWRkcl9uc3AuZ2VuZnRhYmxlfHQKIGZvcmVpZ24gdGFi bGUgY29sdW1ufGFkZHJfbnNwfGdlbmZ0YWJsZXxhZGRyX25zcC5nZW5mdGFibGUuYXx0Citwcm9w ZXJ0eSBncmFwaHxhZGRyX25zcHxnZW5ncmFwaHxhZGRyX25zcC5nZW5ncmFwaHx0CiByb2xlfE5V TEx8cmVncmVzc19hZGRyX3VzZXJ8cmVncmVzc19hZGRyX3VzZXJ8dAogc2VydmVyfE5VTEx8YWRk cl9mc2VydnxhZGRyX2ZzZXJ2fHQKIHVzZXIgbWFwcGluZ3xOVUxMfE5VTEx8cmVncmVzc19hZGRy X3VzZXIgb24gc2VydmVyIGludGVnZXJ8dApAQCAtNTE4LDcgKzUyNyw3IEBAIERST1AgUFVCTElD QVRJT04gYWRkcl9wdWI7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTsKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVND QURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBvYmplY3RzCitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIDE1IG90aGVyIG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2Fk ZXMgdG8gdGV4dCBzZWFyY2ggZGljdGlvbmFyeSBhZGRyX3RzX2RpY3QKIGRyb3AgY2FzY2FkZXMg dG8gdGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBhZGRyX3RzX2NvbmYKIGRyb3AgY2FzY2FkZXMg dG8gdGV4dCBzZWFyY2ggdGVtcGxhdGUgYWRkcl90c190ZW1wCkBAIC01MzMsNiArNTQyLDcgQEAg ZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBnZW5hZ2dyKGludGVnZXIpCiBkcm9wIGNhc2NhZGVz IHRvIHR5cGUgZ2VuZG9tYWluCiBkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHRyaWcoKQogZHJv cCBjYXNjYWRlcyB0byBmdW5jdGlvbiBwcm9jKGludGVnZXIpCitkcm9wIGNhc2NhZGVzIHRvIHBy b3BlcnR5IGdyYXBoIGdlbmdyYXBoCiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfYWRkcl91c2VyOwog RFJPUCBVU0VSIHJlZ3Jlc3NfYWRkcl91c2VyOwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v aWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZTMuLjNiNDFmYzdiYTA0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtMjY2LDMgKzI2NiwxNCBAQCBOT1RJQ0U6ICBj aGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBO T1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQg e29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+ IHBnX3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9u X3JlbCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3By b3BncmFwaF9lbGVtZW50IHtwZ2VwZ2lkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hl Y2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1lbnQge3BnZXJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQor Tk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1lbnQge3BnZXNyY3ZlcnRleGlkfSA9 PiBwZ19wcm9wZ3JhcGhfZWxlbWVudCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdy YXBoX2VsZW1lbnQge3BnZWRlc3R2ZXJ0ZXhpZH0gPT4gcGdfcHJvcGdyYXBoX2VsZW1lbnQge29p ZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHtwZ2VsbGFi ZWxpZH0gPT4gcGdfcHJvcGdyYXBoX2xhYmVsIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbCB7cGdlbGVsaWR9ID0+IHBnX3Byb3BncmFwaF9lbGVtZW50 IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWwge3BnbHBnaWR9ID0+ IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJv cGVydHkge3BscHByb3BpZH0gPT4gcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHtvaWR9CitOT1RJQ0U6 ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3BscGVsbGFiZWxpZH0gPT4g cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3By b3BncmFwaF9wcm9wZXJ0eSB7cGdwcGdpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNo ZWNraW5nIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSB7cGdwdHlwaWR9ID0+IHBnX3R5cGUge29pZH0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDgxZTQyMjJkMjZhLi42MDMyMTlmZWRi MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC00OCw3ICs0OCw3IEBAIHRlc3Q6 IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5kZXhfc3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1 ZGluZyBpbmRleF9pbmNsdWRpCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJh bGxlbCB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9m dW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVy aXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xl YXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlCit0 ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29u c3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3Bf aWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9m dW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaAogCiAjIC0t LS0tLS0tLS0KICMgc2FuaXR5X2NoZWNrIGRvZXMgYSB2YWN1dW0sIGFmZmVjdGluZyB0aGUgc29y dCBvcmRlciBvZiBTRUxFQ1QgKgpAQCAtNzgsNyArNzgsNyBAQCB0ZXN0OiBicmluX2Jsb29tIGJy aW5fbXVsdGkKICMgcHNxbCBkZXBlbmRzIG9uIGNyZWF0ZV9hbQogIyBhbXV0aWxzIGRlcGVuZHMg b24gZ2VvbWV0cnksIGNyZWF0ZV9pbmRleF9zcGdpc3QsIGhhc2hfaW5kZXgsIGJyaW4KICMgLS0t LS0tLS0tLQotdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVy YXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXNjX2Z1bmN0aW9ucyBzeXN2aWV3cyB0c3Jm IHRpZCB0aWRzY2FuIHRpZHJhbmdlc2NhbiBjb2xsYXRlLnV0ZjggY29sbGF0ZS5pY3UudXRmOCBp bmNyZW1lbnRhbF9zb3J0IGNyZWF0ZV9yb2xlIHdpdGhvdXRfb3ZlcmxhcHMKK3Rlc3Q6IGNyZWF0 ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBkYnNp emUgbWVyZ2UgbWlzY19mdW5jdGlvbnMgc3lzdmlld3MgdHNyZiB0aWQgdGlkc2NhbiB0aWRyYW5n ZXNjYW4gY29sbGF0ZS51dGY4IGNvbGxhdGUuaWN1LnV0ZjggaW5jcmVtZW50YWxfc29ydCBjcmVh dGVfcm9sZSB3aXRob3V0X292ZXJsYXBzIGdyYXBoX3RhYmxlCiAKICMgY29sbGF0ZS5saW51eC51 dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwg d2l0aCBlYWNoIG90aGVyCiB0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgYW11dGlscyBz dGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUyCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hbHRlcl9nZW5lcmljLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2FsdGVyX2dlbmVyaWMuc3FsCmluZGV4IGRlNThkMjY4ZDMxLi4wNjdkNWMy YjQ5MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwKQEAgLTQ1Niw2ICs0 NTYsNDAgQEAgQUxURVIgT1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZSBBREQg RlVOQ1RJT04gNSAoaW50NCkgdGVzdF9vcGNsYXNzX28KIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBh bHRfb3BmMTkgVVNJTkcgYnRyZWUgRFJPUCBGVU5DVElPTiA1IChpbnQ0LCBpbnQ0KTsKIERST1Ag T1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZTsKIAorLS0KKy0tIFByb3BlcnR5 IEdyYXBoCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX2FsdGVyX2dlbmVy aWNfdXNlcjE7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMTsKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCBhbHRfZ3JhcGgyOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDM7 CisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1FIFRPIGFsdF9ncmFwaDI7 IC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFw aDEgUkVOQU1FIFRPIGFsdF9ncmFwaDQ7IC0tIE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRf Z3JhcGgyIE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMjsgIC0tIGZhaWxlZCAo bm8gcm9sZSBtZW1iZXJzaGlwKQorQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMiBPV05F UiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjM7ICAtLSBPSworQUxURVIgUFJPUEVSVFkg R1JBUEggYWx0X2dyYXBoNCBTRVQgU0NIRU1BIGFsdF9uc3AyOyAgLS0gT0sKK0FMVEVSIFBST1BF UlRZIEdSQVBIIGFsdF9uc3AyLmFsdF9ncmFwaDQgUkVOQU1FIFRPIGFsdF9ncmFwaDI7ICAtLSBP SworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMiBTRVQgU0NIRU1BIGFsdF9uc3AyOyAg LS0gZmFpbGVkIChuYW1lIGNvbmZsaWN0KQorCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMjsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGg1OworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgzIFJFTkFNRSBUTyBhbHRfZ3Jh cGg1OyAgLS0gZmFpbGVkIChub3Qgb3duZXIpCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGg1IFJFTkFNRSBUTyBhbHRfZ3JhcGg2OyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFs dF9ncmFwaDMgT1dORVIgVE8gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIyOyAgLS0gZmFpbGVk IChub3Qgb3duZXIpCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg2IE9XTkVSIFRPIHJl Z3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0tIGZhaWxlZCAobm8gcm9sZSBtZW1iZXJzaGlw KQorQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMyBTRVQgU0NIRU1BIGFsdF9uc3AyOyAg LS0gZmFpbGVkIChub3Qgb3duZXIpCisKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKKwor U0VMRUNUIG5zcG5hbWUsIHJlbG5hbWUsIHJvbG5hbWUKKyAgRlJPTSBwZ19jbGFzcyBjLCBwZ19u YW1lc3BhY2UgbiwgcGdfYXV0aGlkIGEKKyAgV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZCBB TkQgYy5yZWxvd25lciA9IGEub2lkCisgICAgQU5EIG4ubnNwbmFtZSBpbiAoJ2FsdF9uc3AxJywg J2FsdF9uc3AyJykKKyAgICBBTkQgYy5yZWxraW5kID0gJ2cnCisgIE9SREVSIEJZIG5zcG5hbWUs IHJlbG5hbWU7CisKIC0tCiAtLSBTdGF0aXN0aWNzCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjRmOWI1YzAzNDliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbApAQCAtMCwwICsxLDE5MCBAQAorQ1JF QVRFIFNDSEVNQSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hf cGF0aCA9IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0czsKKworQ1JFQVRFIFJPTEUgcmVncmVz c19ncmFwaF91c2VyMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjI7CisKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBnMTsKKworQ09NTUVOVCBPTiBQUk9QRVJUWSBHUkFQSCBnMSBJUyAn YSBncmFwaCc7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMTsgIC0tIGVycm9yOiBkdXBsaWNh dGUKKworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSB0MiAo aSBpbnQgUFJJTUFSWSBLRVksIGogaW50LCBrIGludCk7CitDUkVBVEUgVEFCTEUgdDMgKHggaW50 LCB5IHRleHQsIHogdGV4dCk7CisKK0NSRUFURSBUQUJMRSBlMSAoYSBpbnQsIGkgaW50LCB0IHRl eHQsIFBSSU1BUlkgS0VZIChhLCBpKSk7CitDUkVBVEUgVEFCTEUgZTIgKGEgaW50LCB4IGludCwg dCB0ZXh0KTsKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcyCisgICAgVkVSVEVYIFRBQkxFUyAo dDEgS0VZIChhKSwgdDIgREVGQVVMVCBMQUJFTCwgdDMgS0VZICh4KSBMQUJFTCB0M2wxIExBQkVM IHQzbDIpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMQorICAgICAgICAgICAgU09VUkNF IEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAo aSkgUkVGRVJFTkNFUyB0MiAoaSksCisgICAgICAgIGUyIEtFWSAoYSwgeCkKKyAgICAgICAgICAg IFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElP TiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgsIHkpCisgICAgKTsKKworLS0gdGVzdCBkZXBl bmRlbmNpZXMvb2JqZWN0IGRlc2NyaXB0aW9ucworCitEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAor QUxURVIgVEFCTEUgdDEgRFJPUCBDT0xVTU4gYjsgIC0tIG5vbi1rZXkgY29sdW1uOyBmYWlsCitB TFRFUiBUQUJMRSB0MSBEUk9QIENPTFVNTiBhOyAgLS0ga2V5IGNvbHVtbjsgZmFpbAorCistLSBs aWtlIGcyIGJ1dCBhc3NlbWJsZWQgd2l0aCBBTFRFUgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcz OworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgQUREIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSks IHQyIERFRkFVTFQgTEFCRUwpOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMKKyAgICBBREQgVkVS VEVYIFRBQkxFUyAodDMgS0VZICh4KSBMQUJFTCB0M2wxKQorICAgIEFERCBFREdFIFRBQkxFUyAo CisgICAgICAgIGUxIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9O IEtFWSAoaSkgUkVGRVJFTkNFUyB0MiAoaSksCisgICAgICAgIGUyIEtFWSAoYSwgeCkgU09VUkNF IEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVO Q0VTIHQzICh4LCB5KQorICAgICk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJU RVggVEFCTEUgdDMgQUREIExBQkVMIHQzbDIgUFJPUEVSVElFUyBBTEwgQ09MVU1OUyBBREQgTEFC RUwgdDNsMyBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg QUxURVIgVkVSVEVYIFRBQkxFIHQzIERST1AgTEFCRUwgdDNsM3g7ICAtLSBlcnJvcgorQUxURVIg UFJPUEVSVFkgR1JBUEggZzMgQUxURVIgVkVSVEVYIFRBQkxFIHQzIERST1AgTEFCRUwgdDNsMzsK K0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIERST1AgVkVSVEVYIFRBQkxFUyAodDIpOyAgLS0gZmFp bCAoVE9ETzogZHViaW91cyBlcnJvciBtZXNzYWdlKQorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg RFJPUCBWRVJURVggVEFCTEVTICh0MikgQ0FTQ0FERTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcz IERST1AgRURHRSBUQUJMRVMgKGUyKTsKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc0CisgICAg VkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAg ICAgdDIgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpICsgaiBBUyBpX2osIGspLAorICAgICAg ICB0MyBLRVkgKHgpIExBQkVMIHQzbDEgUFJPUEVSVElFUyAoeCwgeSBBUyB5eSkgTEFCRUwgdDNs MiBQUk9QRVJUSUVTICh4LCB6IEFTIHp6KQorICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAg ICAgIGUxCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAg ICAgICAgICAgREVTVElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKQorICAgICAgICAg ICAgUFJPUEVSVElFUyBBTEwgQ09MVU1OUywKKyAgICAgICAgZTIgS0VZIChhLCB4KQorICAgICAg ICAgICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJ TkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkKKyAgICAgICAgICAgIFBST1BF UlRJRVMgQUxMIENPTFVNTlMKKyAgICApOworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnNCBBTFRF UiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFCRUwgdDIgQUREIFBST1BFUlRJRVMgKGsgKiAyIEFT IGtrKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MiBBTFRF UiBMQUJFTCB0MiBEUk9QIFBST1BFUlRJRVMgKGspOworCitDUkVBVEUgVEFCTEUgdDExIChhIGlu dCBQUklNQVJZIEtFWSk7CitDUkVBVEUgVEFCTEUgdDEyIChiIGludCBQUklNQVJZIEtFWSk7CitD UkVBVEUgVEFCTEUgdDEzICgKKyAgICBjIGludCBQUklNQVJZIEtFWSwKKyAgICBkIGludCBSRUZF UkVOQ0VTIHQxMSwKKyAgICBlIGludCBSRUZFUkVOQ0VTIHQxMgorKTsKKworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGc1CisgICAgVkVSVEVYIFRBQkxFUyAodDExLCB0MTIpCisgICAgRURHRSBUQUJM RVMgKHQxMyBTT1VSQ0UgdDExIERFU1RJTkFUSU9OIHQxMik7CisKK1NFTEVDVCBwZ19nZXRfcHJv cGdyYXBoZGVmKCdnNSc6OnJlZ2NsYXNzKTsKKworLS0gZXJyb3IgY2FzZXMKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCBneCBWRVJURVggVEFCTEVTICh4eCwgeXkpOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGd4IFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIEtFWSAoaSksIHQxIEtFWSAoYSkp OworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAodDEgQVMgdHQg S0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxIFNPVVJD RSB0MSBERVNUSU5BVElPTiB0MgorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAg ICBWRVJURVggVEFCTEVTICh0MSBLRVkgKGEpLCB0MiBLRVkgKGkpKQorICAgIEVER0UgVEFCTEVT ICgKKyAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHR4CisgICAgKTsKK0NPTU1FTlQg T04gUFJPUEVSVFkgR1JBUEggZ3ggSVMgJ25vdCBhIGdyYXBoJzsKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyKQorICAgIEVER0UgVEFC TEVTICgKKyAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHQyICAtLSBubyBmb3JlaWdu IGtleXMKKyAgICApOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxF UyAoCisgICAgICAgIHQxIEtFWSAoYSkgTEFCRUwgZm9vIFBST1BFUlRJRVMgKGEgKyAxIEFTIGFh KQorICAgICAgICAgICAgICAgICAgIExBQkVMIGJhciBQUk9QRVJUSUVTICgxICsgYSBBUyBhYSkg IC0tIGV4cHJlc3Npb24gbWlzbWF0Y2gKKyAgICApOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzIK KyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEFTIHQxeCBLRVkgKGEpIExBQkVM IGZvbyBQUk9QRVJUSUVTIChhICsgMSBBUyBhYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg TEFCRUwgYmFyIFBST1BFUlRJRVMgKDEgKyBhIEFTIGFhKSAgLS0gZXhwcmVzc2lvbiBtaXNtYXRj aAorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgK KyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChiIEFTIHAxKSwKKyAgICAgICAgdDIgUFJP UEVSVElFUyAoayBBUyBwMSkgIC0tIHR5cGUgbWlzbWF0Y2gKKyAgICApOworQUxURVIgUFJPUEVS VFkgR1JBUEggZzIgQUxURVIgVkVSVEVYIFRBQkxFIHQxIEFERCBMQUJFTCBmb28gUFJPUEVSVElF UyAoYiBBUyBrKTsgIC0tIHR5cGUgbWlzbWF0Y2gKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4 CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTEFCRUwgbDEgUFJPUEVS VElFUyAoYSwgYSBBUyBhYSksCisgICAgICAgIHQyIEtFWSAoaSkgTEFCRUwgbDEgUFJPUEVSVElF UyAoaSBBUyBhLCBqIEFTIGIsIGspICAtLSBtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGll cyBvbiBsYWJlbAorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVgg VEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChhLCBiKSwK KyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChpIEFTIGEpICAtLSBtaXNt YXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBvbiBsYWJlbAorICAgICk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBM QUJFTCBsMSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQ Uk9QRVJUSUVTIChpIEFTIGEsIGogQVMgaikgIC0tIG1pc21hdGNoaW5nIHByb3BlcnR5IG5hbWVz IG9uIGxhYmVsCisgICAgKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBU QUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgeXksIGIgQVMg enopOyAgLS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKK0FMVEVS IFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQ Uk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgenopOyAgLS0gbWlzbWF0Y2hpbmcgcHJvcGVydHkgbmFt ZXMgb24gbGFiZWwKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0 MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgpOyAgLS0gbWlzbWF0Y2hpbmcgbnVt YmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKKworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMSBP V05FUiBUTyByZWdyZXNzX2dyYXBoX3VzZXIxOworU0VUIFJPTEUgcmVncmVzc19ncmFwaF91c2Vy MTsKK0dSQU5UIFNFTEVDVCBPTiBQUk9QRVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3Vz ZXIyOworR1JBTlQgVVBEQVRFIE9OIFBST1BFUlRZIEdSQVBIIGcxIFRPIHJlZ3Jlc3NfZ3JhcGhf dXNlcjI7ICAtLSBmYWlsCitSRVNFVCBST0xFOworCisKKy0tIGluZm9ybWF0aW9uIHNjaGVtYQor CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIg QlkgcHJvcGVydHlfZ3JhcGhfbmFtZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1h LnBnX2VsZW1lbnRfdGFibGVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRf dGFibGVfYWxpYXM7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50 X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRf dGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhf bmFtZSwgZWRnZV90YWJsZV9hbGlhcywgZWRnZV9lbmQgREVTQywgb3JkaW5hbF9wb3NpdGlvbjsK K1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxz IE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIGxhYmVs X25hbWU7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxl X3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9h bGlhcywgcHJvcGVydHlfbmFtZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBn X2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFt ZSwgcHJvcGVydHlfbmFtZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xh YmVscyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lLCBsYWJlbF9uYW1lOworU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZGF0YV90eXBlcyBPUkRFUiBCWSBw cm9wZXJ0eV9ncmFwaF9uYW1lLCBwcm9wZXJ0eV9uYW1lOworU0VMRUNUICogRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3JhcGhfcHJpdmlsZWdlcyBXSEVSRSBncmFudGVlIExJ S0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lOworCisKK1xhXHQKK1NF TEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMic6OnJlZ2NsYXNzKTsKK1NFTEVDVCBwZ19nZXRf cHJvcGdyYXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVm KCdnNCc6OnJlZ2NsYXNzKTsKKworU0VMRUNUIHBnX2dldF9wcm9wZ3JhcGhkZWYoJ3BnX3R5cGUn OjpyZWdjbGFzcyk7ICAtLSBlcnJvcgorXGFcdAorCitcZEcgZzEKKworLS0gVE9ETworXGQgZzEK K1xkKyBnMQorCitEUk9QIFRBQkxFIGcyOyAgLS0gZXJyb3I6IHdyb25nIG9iamVjdCB0eXBlCisK K0RST1AgUFJPUEVSVFkgR1JBUEggZzE7CisKK0RST1AgUFJPUEVSVFkgR1JBUEggZzE7ICAtLSBl cnJvcjogZG9lcyBub3QgZXhpc3QKKworRFJPUCBQUk9QRVJUWSBHUkFQSCBJRiBFWElTVFMgZzE7 CisKKy0tIGxlYXZlIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMKKy0tRFJPUCBTQ0hFTUEg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIENBU0NBREU7CisKK0RST1AgUk9MRSByZWdyZXNz X2dyYXBoX3VzZXIxLCByZWdyZXNzX2dyYXBoX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhf dGFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYjQzYjEz NmVhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxl LnNxbApAQCAtMCwwICsxLDMzNiBAQAorQ1JFQVRFIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0czsK K0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBUTyBQVUJMSUM7CitTRVQg c2VhcmNoX3BhdGggPSBncmFwaF90YWJsZV90ZXN0czsKKworQ1JFQVRFIFRBQkxFIHByb2R1Y3Rz ICgKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFy LAorICAgIHByaWNlIG51bWVyaWMKKyk7CisKK0NSRUFURSBUQUJMRSBjdXN0b21lcnMgKAorICAg IGN1c3RvbWVyX2lkIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFyLAorICAg IGFkZHJlc3MgdmFyY2hhcgorKTsKKworQ1JFQVRFIFRBQkxFIG9yZGVycyAoCisgICAgb3JkZXJf aWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICBvcmRlcmVkX3doZW4gZGF0ZQorKTsKKworQ1JF QVRFIFRBQkxFIG9yZGVyX2l0ZW1zICgKKyAgICBvcmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1B UlkgS0VZLAorICAgIG9yZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lk KSwKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9u byksCisgICAgcXVhbnRpdHkgaW50ZWdlcgorKTsKKworQ1JFQVRFIFRBQkxFIGN1c3RvbWVyX29y ZGVycyAoCisgICAgY3VzdG9tZXJfb3JkZXJzX2lkIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAg Y3VzdG9tZXJfaWQgaW50ZWdlciBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJfaWQpLAor ICAgIG9yZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorKTsKKwor Q1JFQVRFIFRBQkxFIHdpc2hsaXN0cyAoCisgICAgd2lzaGxpc3RfaWQgaW50ZWdlciBQUklNQVJZ IEtFWSwKKyAgICB3aXNobGlzdF9uYW1lIHZhcmNoYXIKKyk7CisKK0NSRUFURSBUQUJMRSB3aXNo bGlzdF9pdGVtcyAoCisgICAgd2lzaGxpc3RfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwK KyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9p ZCksCisgICAgcHJvZHVjdF9ubyBpbnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rf bm8pCispOworCitDUkVBVEUgVEFCTEUgY3VzdG9tZXJfd2lzaGxpc3RzICgKKyAgICBjdXN0b21l cl93aXNobGlzdF9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVn ZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICB3aXNobGlzdF9pZCBp bnRlZ2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCkKKyk7CisKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBteXNob3AKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVj dHMsCisgICAgICAgIGN1c3RvbWVycywKKyAgICAgICAgb3JkZXJzCisgICAgICAgICAgIERFRkFV TFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGxpc3RzIFBST1BFUlRJRVMgKG9yZGVyX2lkIGFz IG5vZGVfaWQsICdvcmRlcic6OnZhcmNoYXIoMTApIGFzIGxpc3RfdHlwZSksCisgICAgICAgIHdp c2hsaXN0cworICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAgICAgICAgICBMQUJFTCBsaXN0 cyBQUk9QRVJUSUVTICh3aXNobGlzdF9pZCBhcyBub2RlX2lkLCAnd2lzaGxpc3QnOjp2YXJjaGFy KDEwKSBhcyBsaXN0X3R5cGUpCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3Jk ZXJfaXRlbXMgS0VZIChvcmRlcl9pdGVtc19pZCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKG9y ZGVyX2lkKSBSRUZFUkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERVNUSU5B VElPTiBLRVkgKHByb2R1Y3Rfbm8pIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCisg ICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAgICAgICAgICBMQUJFTCBsaXN0X2l0ZW1zIFBS T1BFUlRJRVMgKG9yZGVyX2lkIGFzIGxpbmtfaWQsIHByb2R1Y3Rfbm8pLAorICAgICAgICB3aXNo bGlzdF9pdGVtcyBLRVkgKHdpc2hsaXN0X2l0ZW1zX2lkKQorICAgICAgICAgICAgU09VUkNFIEtF WSAod2lzaGxpc3RfaWQpIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCkKKyAgICAg ICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJvZHVjdF9ubykgUkVGRVJFTkNFUyBwcm9kdWN0cyAo cHJvZHVjdF9ubykKKyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVM IGxpc3RfaXRlbXMgUFJPUEVSVElFUyAod2lzaGxpc3RfaWQgYXMgbGlua19pZCwgcHJvZHVjdF9u byksCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBLRVkgKGN1c3RvbWVyX29yZGVyc19pZCkKKyAg ICAgICAgICAgIFNPVVJDRSBLRVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAo Y3VzdG9tZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZF UkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAg ICAgICAgICBMQUJFTCBjdXN0X2xpc3RzIFBST1BFUlRJRVMgKGN1c3RvbWVyX2lkLCBvcmRlcl9p ZCBhcyBsaW5rX2lkKSwKKyAgICAgICAgY3VzdG9tZXJfd2lzaGxpc3RzIEtFWSAoY3VzdG9tZXJf d2lzaGxpc3RfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChjdXN0b21lcl9pZCkgUkVGRVJF TkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZ ICh3aXNobGlzdF9pZCkgUkVGRVJFTkNFUyB3aXNobGlzdHMgKHdpc2hsaXN0X2lkKQorICAgICAg ICAgICAgREVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFCRUwgY3VzdF9saXN0cyBQUk9QRVJU SUVTIChjdXN0b21lcl9pZCwgd2lzaGxpc3RfaWQgYXMgbGlua19pZCkKKyAgICApOworCitTRUxF Q1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICh4eHggTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBv cmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VM RUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAocGdfY2xhc3MgTUFUQ0ggKGMgSVMg Y3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJv cgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChj IElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJz XS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjeC5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0t IGVycm9yCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFU Q0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9v cmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZXggQVMgY3VzdG9tZXJfbmFtZSkp OyAgLS0gZXJyb3IKK1NFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hv cCBNQVRDSCAoYyBJUyBjdXN0b21lcnN8ZW1wbG95ZWVzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycp LVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBj dXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQ SF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAn VVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFt ZSkpOyAgLS0gZXJyb3IKKworSU5TRVJUIElOVE8gcHJvZHVjdHMgVkFMVUVTCisgICAgKDEsICdw cm9kdWN0MScsIDEwKSwKKyAgICAoMiwgJ3Byb2R1Y3QyJywgMjApLAorICAgICgzLCAncHJvZHVj dDMnLCAzMCk7CitJTlNFUlQgSU5UTyBjdXN0b21lcnMgVkFMVUVTCisgICAgKDEsICdjdXN0b21l cjEnLCAnVVMnKSwKKyAgICAoMiwgJ2N1c3RvbWVyMicsICdDQScpLAorICAgICgzLCAnY3VzdG9t ZXIzJywgJ0dMJyk7CitJTlNFUlQgSU5UTyBvcmRlcnMgVkFMVUVTCisgICAgKDEsIGRhdGUgJzIw MjQtMDEtMDEnKSwKKyAgICAoMiwgZGF0ZSAnMjAyNC0wMS0wMicpLAorICAgICgzLCBkYXRlICcy MDI0LTAxLTAzJyk7CitJTlNFUlQgSU5UTyB3aXNobGlzdHMgVkFMVUVTCisgICAgKDEsICd3aXNo bGlzdDEnKSwKKyAgICAoMiwgJ3dpc2hsaXN0MicpLAorICAgICgzLCAnd2lzaGxpc3QzJyk7CitJ TlNFUlQgSU5UTyBvcmRlcl9pdGVtcyAob3JkZXJfaXRlbXNfaWQsIG9yZGVyX2lkLCBwcm9kdWN0 X25vLCBxdWFudGl0eSkgVkFMVUVTCisgICAgKDEsIDEsIDEsIDUpLAorICAgICgyLCAxLCAyLCAx MCksCisgICAgKDMsIDIsIDEsIDcpOworSU5TRVJUIElOVE8gY3VzdG9tZXJfb3JkZXJzIChjdXN0 b21lcl9vcmRlcnNfaWQsIGN1c3RvbWVyX2lkLCBvcmRlcl9pZCkgVkFMVUVTCisgICAgKDEsIDEs IDEpLAorICAgICgyLCAyLCAyKTsKK0lOU0VSVCBJTlRPIGN1c3RvbWVyX3dpc2hsaXN0cyAoY3Vz dG9tZXJfd2lzaGxpc3RfaWQsIGN1c3RvbWVyX2lkLCB3aXNobGlzdF9pZCkgVkFMVUVTCisgICAg KDEsIDIsIDMpLAorICAgICgyLCAzLCAxKSwKKyAgICAoMywgMywgMik7CitJTlNFUlQgSU5UTyB3 aXNobGlzdF9pdGVtcyAod2lzaGxpc3RfaXRlbXNfaWQsIHdpc2hsaXN0X2lkLCBwcm9kdWN0X25v KSBWQUxVRVMKKyAgICAoMSwgMSwgMiksCisgICAgKDIsIDEsIDMpLAorICAgICgzLCAyLCAxKSwK KyAgICAoNCwgMywgMSk7CisKKy0tIHNpbmdsZSBlbGVtZW50IHBhdGggcGF0dGVybgorU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycykgQ09MVU1O UyAoYy5uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNd LT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSkpOworLS0gZ3JhcGggZWxlbWVudCBzcGVj aWZpY2F0aW9uIHdpdGhvdXQgbGFiZWwgb3IgdmFyaWFibGUKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VT JyktW10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYzpjdXN0b21lcnMpLVtj bzpjdXN0b21lcl9vcmRlcnNdLT4obzpvcmRlcnMgV0hFUkUgby5vcmRlcmVkX3doZW4gPSBkYXRl ICcyMDI0LTAxLTAyJykgQ09MVU1OUyAoYy5uYW1lLCBjLmFkZHJlc3MpKTsKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMpLVtJUyBjdXN0b21lcl9v cmRlcnNdLT4oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwgby5vcmRlcmVkX3doZW4p KTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMp PC1bSVMgY3VzdG9tZXJfb3JkZXJzXS0oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwg by5vcmRlcmVkX3doZW4pKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRD SCAoIG8gSVMgb3JkZXJzICkgPC0gWyBJUyBjdXN0b21lcl9vcmRlcnMgXSAtIChjIElTIGN1c3Rv bWVycykgQ09MVU1OUyAoIGMubmFtZSwgby5vcmRlcmVkX3doZW4pKTsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBjdXN0X2xpc3Rz XS0+KGwgSVMgbGlzdHMpLVsgSVMgbGlzdF9pdGVtc10tPihwIElTIHByb2R1Y3RzKSBDT0xVTU5T IChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1lIGFzIHByb2R1Y3RfbmFtZSwgbC5saXN0 X3R5cGUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1lLCBwcm9kdWN0X25hbWUsIGxpc3RfdHlwZTsK Ky0tIGxhYmVsIGRpc2p1bmN0aW9uCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3Ag TUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzIHwgY3VzdG9tZXJfd2lz aGxpc3RzIF0tPihsIElTIG9yZGVycyB8IHdpc2hsaXN0cyktWyBJUyBsaXN0X2l0ZW1zXS0+KHAg SVMgcHJvZHVjdHMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lLCBwLm5hbWUgYXMg cHJvZHVjdF9uYW1lKSkgT1JERVIgQlkgY3VzdG9tZXJfbmFtZSwgcHJvZHVjdF9uYW1lOworLS0g cHJvcGVydHkgbm90IGFzc29jaWF0ZWQgd2l0aCBsYWJlbHMgcXVlcmllZCByZXN1bHRzIGluIGVy cm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzIHwgY3VzdG9tZXJfd2lzaGxpc3RzIF0tPihsIElTIG9y ZGVycyB8IHdpc2hsaXN0cyktWyBJUyBsaXN0X2l0ZW1zXS0+KHAgSVMgcHJvZHVjdHMpIENPTFVN TlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lLCBwLm5hbWUgYXMgcHJvZHVjdF9uYW1lLCBsLmxp c3RfdHlwZSkpIE9SREVSIEJZIDEsIDIsIDM7CistLSB2ZXJ0ZXggdG8gdmVydGV4IGNvbm5lY3Rp b24gYWJicmV2aWF0aW9uCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0gg KGMgSVMgY3VzdG9tZXJzKS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJl ZF93aGVuKSkgT1JERVIgQlkgMTsKKworLS0gbGF0ZXJhbCB0ZXN0CitDUkVBVEUgVEFCTEUgeDEg KGEgaW50LCBiIHRleHQpOworSU5TRVJUIElOVE8geDEgVkFMVUVTICgxLCAnb25lJyksICgyLCAn dHdvJyk7CitTRUxFQ1QgKiBGUk9NIHgxLCBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElT IGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnIEFORCBjLmN1c3RvbWVyX2lkID0geDEu YSktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFT IGN1c3RvbWVyX25hbWUsIGMuY3VzdG9tZXJfaWQgQVMgY2lkKSk7CitEUk9QIFRBQkxFIHgxOwor CisKK2NyZWF0ZSB0YWJsZSB2MSAoaWQgaW50IHByaW1hcnkga2V5LAorCQkJCQl2bmFtZSB2YXJj aGFyKDEwKSwKKwkJCQkJdnByb3AxIGludCwKKwkJCQkJdnByb3AyIGludCk7CisKK2NyZWF0ZSB0 YWJsZSB2MiAoaWQxIGludCwKKwkJCQkJaWQyIGludCwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCks CisJCQkJCXZwcm9wMSBpbnQsCisJCQkJCXZwcm9wMiBpbnQpOworCitjcmVhdGUgdGFibGUgdjMg KGlkIGludCBwcmltYXJ5IGtleSwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9w MSBpbnQsCisJCQkJCXZwcm9wMiBpbnQpOworCistLSBlZGdlIGNvbm5lY3RpbmcgdjEgYW5kIHYy CitjcmVhdGUgdGFibGUgZTFfMiAoaWRfMSBpbnQsCisJCQkJCWlkXzJfMSBpbnQsCisJCQkJCWlk XzJfMiBpbnQsCisJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAorCQkJCQllcHJvcDEgaW50KTsKKwor LS0gZWRnZSBjb25uZWN0aW5nIHYxIGFuZCB2MworY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50 LAorCQkJCQlpZF8zIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBp bnQsCisJCQkJCXByaW1hcnkga2V5IChpZF8xLCBpZF8zKSk7CisKK2NyZWF0ZSB0YWJsZSBlMl8z IChpZF8yXzEgaW50LAorICAgICAgICAgICAgICAgICAgICBpZF8yXzIgaW50LAorICAgICAgICAg ICAgICAgICAgICBpZF8zIGludCwKKyAgICAgICAgICAgICAgICAgICAgZW5hbWUgdmFyY2hhcigx MCksCisgICAgICAgICAgICAgICAgICAgIGVwcm9wMSBpbnQpOworCitjcmVhdGUgcHJvcGVydHkg Z3JhcGggZzEKK3ZlcnRleCB0YWJsZXMgKAorCXYxCisgICAgICAgIGxhYmVsIHZsMSBwcm9wZXJ0 aWVzICh2bmFtZSwgdnByb3AxKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICh2bmFtZSBh cyBlbG5hbWUpLCAtLSBsYWJlbCBzaGFyZWQgYnkgdmVydGV4ZXMgYXMgd2VsbCBhcyBlZGdlcwor CXYyIGtleSAoaWQxLCBpZDIpCisJCWxhYmVsIHZsMiBwcm9wZXJ0aWVzICh2bmFtZSwgdnByb3Ay LCAndmwyX3Byb3AnOjp2YXJjaGFyKDEwKSBhcyBscHJvcDEpCisgICAgICAgIGxhYmVsIHZsMyBw cm9wZXJ0aWVzICh2bmFtZSwgdnByb3AxLCAndmwyX3Byb3AnOjp2YXJjaGFyKDEwKSBhcyBscHJv cDEpCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKHZuYW1lIGFzIGVsbmFtZSksCisJdjMK KwkJbGFiZWwgdmwzIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEsICd2bDNfcHJvcCc6OnZhcmNo YXIoMTApIGFzIGxwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAodm5hbWUgYXMg ZWxuYW1lKQorKQorLS0gZWRnZXMgd2l0aCBkaWZmZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4g ZGVzdGluYXRpb24ga2V5cworZWRnZSB0YWJsZXMgKAorCWUxXzIga2V5IChpZF8xLCBpZF8yXzEs IGlkXzJfMikKKwkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWRlc3Rp bmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorCQls YWJlbCBlbDEgcHJvcGVydGllcyAoZXByb3AxLCBlbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJv cGVydGllcyAoZW5hbWUgYXMgZWxuYW1lKSwKKwllMV8zCisJCXNvdXJjZSBrZXkgKGlkXzEpIHJl ZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMg KGlkKQorCQktLSBvcmRlciBvZiBwcm9wZXJ0eSBuYW1lcyBkb2Vzbid0IG1hdHRlcgorCQlsYWJl bCBlbDEgcHJvcGVydGllcyAoZW5hbWUsIGVwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVy dGllcyAoZW5hbWUgYXMgZWxuYW1lKSwKKyAgICBlMl8zIGtleSAoaWRfMl8xLCBpZF8yXzIsIGlk XzMpCisgICAgICAgIHNvdXJjZSBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChp ZDEsIGlkMikKKyAgICAgICAgZGVzdGluYXRpb24ga2V5IChpZF8zKSByZWZlcmVuY2VzIHYzIChp ZCkKKyAgICAgICAgLS0gbmV3IHByb3BlcnR5IGxwcm9wMiBub3Qgc2hhcmVkIGJ5IGVsMQorICAg ICAgICAtLSBkb2VzIG5vdCBzaGFyZSBlcHJvcDEgZnJvbSBieSBlbDEKKyAgICAgICAgbGFiZWwg ZWwyIHByb3BlcnRpZXMgKGVuYW1lLCBlcHJvcDEgKiAxMCBhcyBscHJvcDIpCisgICAgICAgIGxh YmVsIGwxIHByb3BlcnRpZXMgKGVuYW1lIGFzIGVsbmFtZSkKKyk7CisKK2luc2VydCBpbnRvIHYx IHZhbHVlcyAoMSwgJ3YxMScsIDEwLCAxMDApLAorICAgICAgICAgICAgICAgICAgICAgICgyLCAn djEyJywgMjAsIDIwMCksCisgICAgICAgICAgICAgICAgICAgICAgKDMsICd2MTMnLCAzMCwgMzAw KTsKKworaW5zZXJ0IGludG8gdjIgdmFsdWVzICgxMDAwLCAxLCAndjIxJywgMTAxMCwgMTEwMCks CisgICAgICAgICAgICAgICAgICAgICAgKDEwMDAsIDIsICd2MjInLCAxMDIwLCAxMjAwKSwKKyAg ICAgICAgICAgICAgICAgICAgICAoMTAwMCwgMywgJ3YyMycsIDEwMzAsIDEzMDApOworCitpbnNl cnQgaW50byB2MyB2YWx1ZXMgKDIwMDEsICd2MzEnLCAyMDEwLCAyMTAwKSwKKyAgICAgICAgICAg ICAgICAgICAgICAoMjAwMiwgJ3YzMicsIDIwMjAsIDIyMDApLAorICAgICAgICAgICAgICAgICAg ICAgICgyMDAzLCAndjMzJywgMjAzMCwgMjMwMCk7CisKK2luc2VydCBpbnRvIGUxXzIgdmFsdWVz ICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgy LCAxMDAwLCAxLCAnZTEyMicsIDEwMDAyKTsKKworaW5zZXJ0IGludG8gZTFfMyB2YWx1ZXMgKDEs IDIwMDMsICdlMTMxJywgMTAwMDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIwMDEs ICdlMTMyJywgMTAwMDQpOworaW5zZXJ0IGludG8gZTJfMyB2YWx1ZXMgKDEwMDAsIDIsIDIwMDIs ICdlMjMxJywgMTAwMDUpOworCistLSBlbXB0eSBlbGVtZW50IHBhdGggcGF0dGVybiwgY291bnRz IG51bWJlciBvZiBlZGdlcyBpbiB0aGUgZ3JhcGgKK1NFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBI X1RBQkxFIChnMSBNQVRDSCAoKS1bXS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBv bmUpKTsKKy0tIFZlcnRleCBlbGVtZW50IHYyIGhhcyBsYWJlbCB2bDMgd2hpY2ggZXhwb3NlcyBw cm9wZXJ0eSB2cHJvcDEuIEJ1dCB2bDMgaXMKKy0tIG5vdCBwYXJ0IG9mIGxhYmVsIGV4cHJlc3Np b24uIEluc3RlYWQgdjIgZ2V0IGJvdW5kIHRocm91Z2ggbGFiZWwgdmwyIHdoaWNoCistLSBkb2Vz IG5vdCBleHBvc2UgdnByb3AxLiBUaGUgR1JBUEhfVEFCTEUgY2xhdXNlIHByb2plY3QgdnByb3Ax LgorLS0KKy0tIFRPRE86IFRoaXMgY2FzZSBmYWlscyBzaW5jZSBjYXRhbG9ncyBkbyBub3QgYXNz b2NpYXRlZCBwcm9wZXJ0aWVzIHdpdGgKKy0tIGVsZW1lbnRzIGRpcmVjdGx5LiBNb3JlIGNvZGUg aXMgbmVlZGVkIHRvIG1ha2UgaXQgd29yay4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcx IE1BVENIIChhIElTIHZsMSB8IHZsMikgQ09MVU1OUyAoYS52bmFtZSwKK2EudnByb3AxKSk7Cist LSB2cHJvcDIgaXMgYXNzb2NpYXRlZCB3aXRoIHZsMiBidXQgbm90IHZsMworc2VsZWN0IHNyYywg Y29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9tIGdyYXBoX3RhYmxlIChnMSBt YXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52 bmFtZSBhcyBzcmMsIGIuZW5hbWUgYXMgY29ubiwgYy52bmFtZSBhcyBkZXN0LCBjLmxwcm9wMSwg Yy52cHJvcDIsIGMudnByb3AxKSk7CisKKy0tIEVycm9ycworLS0gdmwxIGlzIG5vdCBhc3NvY2lh dGVkIHdpdGggcHJvcGVydHkgdnByb3AyCitzZWxlY3Qgc3JjLCBzcmNfdnByb3AyLCBjb25uLCBk ZXN0IGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChhIGlzIHZsMSktW2IgaXMgZWwxXS0+KGMg aXMgdmwyIHwgdmwzKSBjb2x1bW5zIChhLnZuYW1lIGFzIHNyYywgYS52cHJvcDIgYXMgc3JjX3Zw cm9wMiwgYi5lbmFtZSBhcyBjb25uLCBjLnZuYW1lIGFzIGRlc3QpKTsKKy0tIHByb3BlcnR5IGVu YW1lIGlzIGFzc29jaWF0ZWQgd2l0aCBlZGdlIGxhYmVscyBidXQgbm90IHdpdGggYSB2ZXJ0ZXgg bGFiZWwKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+ KGRlc3QpIGNvbHVtbnMgKHNyYy52bmFtZSBhcyBzdm5hbWUsIHNyYy5lbmFtZSBhcyBzZW5hbWUp KTsKKy0tIHZuYW1lIGlzIGFzc29jaWF0ZWQgdmVydGV4IGxhYmVscyBidXQgbm90IGFuIGVkZ2Ug bGFiZWwKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+ KGRlc3QpIGNvbHVtbnMgKGNvbm4udm5hbWUgYXMgY3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFt ZSkpOworLS0gZWwxIGlzIGFzc29jaWF0ZWQgd2l0aCBlZGdlcyBidXQgaXMgb25seSBsYWJlbCB1 c2VkIHRvIHF1YWxpZnkgdmVydGV4CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRj aCAoc3JjIGlzIGVsMSktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoY29ubi5lbmFtZSBhcyBjZW5h bWUpKTsKKy0tIGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMgYnV0IGlzIG9uZSBvZiB0aGUg bGFiZWxzIHVzZWQgdG8gcXVhbGlmeSB2ZXJ0ZXgKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUg KGcxIG1hdGNoIChzcmMgaXMgZWwxIHwgdmwxKS1bY29ubl0tPihkZXN0KSBjb2x1bW5zIChjb25u LmVuYW1lIGFzIGNlbmFtZSkpOworCistLSBzZWxlY3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFjcm9z cyBhbGwgdGhlIGxhYmVscyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiB0eXBlCistLSBvZiBncmFw aCBlbGVtZW50CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29u bl0tPihkZXN0KSBjb2x1bW5zIChzcmMudm5hbWUgYXMgc3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNl bmFtZSwgZGVzdC52bmFtZSBhcyBkdm5hbWUsIHNyYy52cHJvcDEgYXMgc3ZwMSwgc3JjLnZwcm9w MiBhcyBzdnAyLCBzcmMubHByb3AxIGFzIHNscDEsIGRlc3QudnByb3AxIGFzIGR2cDEsIGRlc3Qu dnByb3AyIGFzIGR2cDIsIGRlc3QubHByb3AxIGFzIGRscDEsIGNvbm4uZXByb3AxIGFzIGNlcDEs IGNvbm4ubHByb3AyIGFzIGNscDIpKTsKKy0tIHRocmVlIGxhYmVsIGRpc2p1bmN0aW9uCitzZWxl Y3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIElTIHZsMSB8IHZsMiB8IHZsMykt W2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1lIGFzIHN2bmFtZSwgY29ubi5lbmFtZSBh cyBjZW5hbWUsIGRlc3Qudm5hbWUgYXMgZHZuYW1lKSk7CistLSBncmFwaCdpY2FsIHF1ZXJ5OiBm aW5kIGEgdmVydGV4IHdoaWNoIGlzIG5vdCBjb25uZWN0ZWQgdG8gYW55IG90aGVyIHZlcnRleCBh cyBhIHNvdXJjZSBvciBhIGRlc3RpbmF0aW9uLgord2l0aCBhbGxfY29ubmVjdGVkX3ZlcnRpY2Vz IGFzIChzZWxlY3Qgc3ZuLCBkdm4gZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyktW2Nv bm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1lIGFzIHN2biwgZGVzdC52bmFtZSBhcyBkdm4p KSksCisgICAgYWxsX3ZlcnRpY2VzIGFzIChzZWxlY3Qgdm4gZnJvbSBncmFwaF90YWJsZSAoZzEg bWF0Y2ggKHZlcnRleCkgY29sdW1ucyAodmVydGV4LnZuYW1lIGFzIHZuKSkpCitzZWxlY3Qgdm4g ZnJvbSBhbGxfdmVydGljZXMgZXhjZXB0IChzZWxlY3Qgc3ZuIGZyb20gYWxsX2Nvbm5lY3RlZF92 ZXJ0aWNlcyB1bmlvbiBzZWxlY3QgZHZuIGZyb20gYWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyk7Cist LSBxdWVyeSBhbGwgY29ubmVjdGlvbnMgdXNpbmcgYSBsYWJlbCBzaGFyZWQgYnkgdmVydGljZXMg YW5kIGVkZ2VzCitzZWxlY3Qgc24sIGNuLCBkbiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAo c3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6IGwxKSBjb2x1bW5zIChzcmMuZWxuYW1lIGFz IHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVzdC5lbG5hbWUgYXMgZG4pKTsKKworLS0gcHJvcGVy dHkgZ3JhcGggd2l0aCBzb21lIG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9wZXJ0aWVz IHNhbWUgYXMgdGhlCistLSBwcmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25lbnRzIGZy b20gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBncmFwaCBhcmUKKy0tIHVzZWQuCitjcmVhdGUgcHJv cGVydHkgZ3JhcGggZzIKK3ZlcnRleCB0YWJsZXMgKAorCXYxCisgICAgICAgIGxhYmVsIGwxIHBy b3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFtZSksCisJdjIga2V5IChpZDEsIGlkMikK KyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwK Kwl2MworICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5h bWUpCispCitlZGdlIHRhYmxlcyAoCisJZTFfMiBrZXkgKGlkXzEsIGlkXzJfMSwgaWRfMl8yKQor CQlzb3VyY2Uga2V5IChpZF8xKSByZWZlcmVuY2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5 IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCisgICAgICAgIGxhYmVs IGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSksCisJZTFfMworCQlzb3Vy Y2Uga2V5IChpZF8xKSByZWZlcmVuY2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8z KSByZWZlcmVuY2VzIHYzIChpZCkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicg fHwgZW5hbWUgYXMgZWxuYW1lKSwKKyAgICBlMl8zIGtleSAoaWRfMl8xLCBpZF8yXzIsIGlkXzMp CisgICAgICAgIHNvdXJjZSBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEs IGlkMikKKyAgICAgICAgZGVzdGluYXRpb24ga2V5IChpZF8zKSByZWZlcmVuY2VzIHYzIChpZCkK KyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKQor KTsKK3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBs MSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNv bm4uZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpOworCitDUkVBVEUgVklFVyBjdXN0 b21lcnNfdXMgQVMgU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9w IE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9t ZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFt ZSkpOworCitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2N1c3RvbWVyc191cyc6OnJlZ2NsYXNzKTsK KworLS0gdGVzdCB2aWV3L2dyYXBoIG5lc3RpbmcKKworQ1JFQVRFIFZJRVcgY3VzdG9tZXJzX3Zp ZXcgQVMgU0VMRUNUIGN1c3RvbWVyX2lkLCAncmVkYWN0ZWQnIHx8IGN1c3RvbWVyX2lkIEFTIG5h bWVfcmVkYWN0ZWQsIGFkZHJlc3MgRlJPTSBjdXN0b21lcnM7CitTRUxFQ1QgKiBGUk9NIGN1c3Rv bWVyczsKK1NFTEVDVCAqIEZST00gY3VzdG9tZXJzX3ZpZXc7CisKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBteXNob3AyCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3RzLAorICAg ICAgICBjdXN0b21lcnNfdmlldyBLRVkgKGN1c3RvbWVyX2lkKSBMQUJFTCBjdXN0b21lcnMsCisg ICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0 ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChvcmRlcl9p ZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04g S0VZIChwcm9kdWN0X25vKSBSRUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKSwKKyAgICAg ICAgY3VzdG9tZXJfb3JkZXJzIEtFWSAoY3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAg U09VUkNFIEtFWSAoY3VzdG9tZXJfaWQpIFJFRkVSRU5DRVMgY3VzdG9tZXJzX3ZpZXcgKGN1c3Rv bWVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNF UyBvcmRlcnMgKG9yZGVyX2lkKQorICAgICk7CisKK0NSRUFURSBWSUVXIGN1c3RvbWVyc191c19y ZWRhY3RlZCBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AyIE1BVENIIChjIElT IGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+ KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9y ZWRhY3RlZCkpOworCitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyc191c19yZWRhY3RlZDsKKworLS0g bGVhdmUgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cworLS1EUk9QIFNDSEVNQSBncmFwaF90 YWJsZV90ZXN0cyBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2Jq ZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3Fs CmluZGV4IDFhNmM2MWY0OWQ1Li45M2Y5ZjljNzA0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29i amVjdF9hZGRyZXNzLnNxbApAQCAtMzcsNiArMzcsNyBAQCBDUkVBVEUgRlVOQ1RJT04gYWRkcl9u c3AudHJpZygpIFJFVFVSTlMgVFJJR0dFUiBMQU5HVUFHRSBwbHBnc3FsIEFTICQkIEJFR0lOIEVO RAogQ1JFQVRFIFRSSUdHRVIgdCBCRUZPUkUgSU5TRVJUIE9OIGFkZHJfbnNwLmdlbnRhYmxlIEZP UiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBhZGRyX25zcC50cmlnKCk7CiBDUkVBVEUgUE9M SUNZIGdlbnBvbCBPTiBhZGRyX25zcC5nZW50YWJsZTsKIENSRUFURSBQUk9DRURVUkUgYWRkcl9u c3AucHJvYyhpbnQ0KSBMQU5HVUFHRSBTUUwgQVMgJCQgJCQ7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggYWRkcl9uc3AuZ2VuZ3JhcGg7CiBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdOIERB VEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRk cl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJP TEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBHUkFOVCBBTEwgT04gVEFCTEVT IFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwpAQCAtOTAsNyArOTEsNyBAQCBERUNMQVJFCiBCRUdJTgog ICAgIEZPUiBvYmp0eXBlIElOIFZBTFVFUwogICAgICAgICAoJ3RhYmxlJyksICgnaW5kZXgnKSwg KCdzZXF1ZW5jZScpLCAoJ3ZpZXcnKSwKLSAgICAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAo J2ZvcmVpZ24gdGFibGUnKSwKKyAgICAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVp Z24gdGFibGUnKSwgKCdwcm9wZXJ0eSBncmFwaCcpLAogICAgICAgICAoJ3RhYmxlIGNvbHVtbicp LCAoJ2ZvcmVpZ24gdGFibGUgY29sdW1uJyksCiAgICAgICAgICgnYWdncmVnYXRlJyksICgnZnVu Y3Rpb24nKSwgKCdwcm9jZWR1cmUnKSwgKCd0eXBlJyksICgnY2FzdCcpLAogICAgICAgICAoJ3Rh YmxlIGNvbnN0cmFpbnQnKSwgKCdkb21haW4gY29uc3RyYWludCcpLCAoJ2NvbnZlcnNpb24nKSwg KCdkZWZhdWx0IHZhbHVlJyksCkBAIC0xNjMsNiArMTY0LDcgQEAgV0lUSCBvYmplY3RzICh0eXBl LCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAgICAgKCd2aWV3JywgJ3thZGRyX25zcCwgZ2Vudmll d30nLCAne30nKSwKICAgICAoJ21hdGVyaWFsaXplZCB2aWV3JywgJ3thZGRyX25zcCwgZ2VubWF0 dmlld30nLCAne30nKSwKICAgICAoJ2ZvcmVpZ24gdGFibGUnLCAne2FkZHJfbnNwLCBnZW5mdGFi bGV9JywgJ3t9JyksCisgICAgKCdwcm9wZXJ0eSBncmFwaCcsICd7YWRkcl9uc3AsIGdlbmdyYXBo fScsICd7fScpLAogICAgICgndGFibGUgY29sdW1uJywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGJ9 JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRhYmxlIGNvbHVtbicsICd7YWRkcl9uc3AsIGdlbmZ0 YWJsZSwgYX0nLCAne30nKSwKICAgICAoJ2FnZ3JlZ2F0ZScsICd7YWRkcl9uc3AsIGdlbmFnZ3J9 JywgJ3tpbnQ0fScpLApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBjZTMzZTU1YmYxZC4u ODliN2JjYmJkMDcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC00MTkwLDMgKzQxOTAs MjQgQEAgeXlzY2FuX3QKIHpfc3RyZWFtCiB6X3N0cmVhbXAKIHppY190CisKKyMgVE9ETworQWx0 ZXJQcm9wR3JhcGhFbGVtZW50S2luZAorQWx0ZXJQcm9wR3JhcGhTdG10CitDcmVhdGVQcm9wR3Jh cGhTdG10CitGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudAorRm9ybURhdGFfcGdfcHJvcGdy YXBoX2VsZW1lbnRfbGFiZWwKK0Zvcm1EYXRhX3BnX3Byb3BncmFwaF9sYWJlbAorRm9ybURhdGFf cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5CitGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVy dHkKK0dyYXBoRWxlbWVudFBhdHRlcm4KK0dyYXBoRWxlbWVudFBhdHRlcm5LaW5kCitHcmFwaExh YmVsUmVmCitHcmFwaFBhdHRlcm4KK0dyYXBoUHJvcGVydHlSZWYKK0dyYXBoVGFibGVQYXJzZVN0 YXRlCitQcm9wR3JhcGhFZGdlCitQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMKK1Byb3BHcmFw aFByb3BlcnRpZXMKK1Byb3BHcmFwaFZlcnRleAorUmFuZ2VHcmFwaFRhYmxlCi0tIAoyLjM0LjEK Cg== --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0008-WIP-Do-not-print-empty-columns-table-for-a--20241205.patch" Content-Disposition: attachment; filename="0008-WIP-Do-not-print-empty-columns-table-for-a--20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yqv37 RnJvbSAxNDM0Zjk5ZjkwOWQ1ZTlhZGJhNWY0NWIwMTA5MDI3YTk4ZjkzMGZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCA1IERlYyAyMDI0IDE0OjMxOjM2ICswNTMwClN1YmplY3Q6IFtQ QVRDSCA4LzhdIFdJUDogRG8gbm90IHByaW50IGVtcHR5IGNvbHVtbnMgdGFibGUgZm9yIGEgcHJv cGVydHkKIGdyYXBoCgpBIHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IGhhdmUgYW55IGNvbHVtbnMg YnkgaXRzZWxmLiBUaHVzIGl0IGRvZXNuJ3QKbmVlZCB0aGUgdGFibGUgZGVzY3JpYmluZyBjb2x1 bW5zIGluIFxkWytdIG91dHB1dC4KClRoZSBwYXRjaCBuZWVkcyBmb2xsb3dpbmcgd29yawoxLiBN b3ZlIHRoZSBjb2RlIHRvIGNvbGxlY3QgY29sdW1uIGluZm9ybWF0aW9uIGluIGEgc2VwYXJhdGUg ZnVuY3Rpb24sCiAgIHdoaWNoIGNhbiBiZSBza2lwcGVkIGZvciBwcm9wZXJ0eSBncmFwaHMuIFRo aXMgYXZvaWRzIG9uZSBpbmRlbnRhdGlvbgogICBsZXZlbCBhbmQgbWFrZXMgZGVzY3JpYmVPbmVU YWJsZURldGFpbHMoKSBlYXN5IHRvIGZvbGxvdy4KMi4gRXZlbiB0aG91Z2ggdGhlIGJvcmRlcnMg YXJlIHN1cHByZXNzZWQgdGhlcmUgaXMgYW4gZXh0cmEgYmxhbmsgbGluZQogICBpbiBcZCBvdXRw dXQuIEF2b2lkIHRoYXQuIEl0IHJlcXVpcmVzIHNvbWUgYWRqdXN0bWVudCB0bwogICBwcmludFRh YmxlT3B0IG9yIHNvbWUgbWluaW9uIG9mIHByaW50VGFibGUgdG8gYXZvaWQgcHJpbnRpbmcKICAg ZXZlcnl0aGluZyByZWxhdGVkIHRvIGNvbHVtbiBkZXNjcmlwdGlvbiB0YWJsZS4KCiAgIE9SCgpJ ZiB3ZSBkZWNpZGUgdGhhdCB3ZSB3YW50IHRvIG91dHB1dCBhIGRpZmZlcmVudCBkZXNjcmlwdGlv biAobGlrZQpzZXF1ZW5jZXMpIHdlIG5lZWQgdG8gZGVjaWRlIHdoYXQgdGhhdCBkZXNjcmlwdGlv biBzaG91bGQgYmUgYW5kIHRoZW4KaW1wbGVtZW50IHRoZSBzYW1lLgoKQXNodXRvc2ggQmFwYXQK LS0tCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAzMDcg KysrKysrKysrLS0tLS0tLS0tCiAuLi4vZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91 dCAgICAgICAgfCAgIDYgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDE0 OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGEyNmQ4MWEwZmRlLi42NmEzYTMzOTVlNCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTE4NTcsMTI4ICsxODU3LDYgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJZ290byBlcnJvcl9yZXR1cm47CQkvKiBub3QgYW4gZXJy b3IsIGp1c3QgcmV0dXJuIGVhcmx5ICovCiAJfQogCi0JLyogSWRlbnRpZnkgd2hldGhlciB3ZSBz aG91bGQgcHJpbnQgY29sbGF0aW9uLCBudWxsYWJsZSwgZGVmYXVsdCB2YWxzICovCi0JaWYgKHRh YmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJdGFibGVpbmZvLnJlbGtp bmQgPT0gUkVMS0lORF9WSUVXIHx8Ci0JCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFU VklFVyB8fAotCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgfHwK LQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSB8fAotCQl0YWJs ZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQotCQlzaG93X2NvbHVt bl9kZXRhaWxzID0gdHJ1ZTsKLQotCS8qCi0JICogR2V0IHBlci1jb2x1bW4gaW5mbwotCSAqCi0J ICogU2luY2UgdGhlIHNldCBvZiBxdWVyeSBjb2x1bW5zIHdlIG5lZWQgdmFyaWVzIGRlcGVuZGlu ZyBvbiByZWxraW5kIGFuZAotCSAqIHNlcnZlciB2ZXJzaW9uLCB3ZSBjb21wdXRlIGFsbCB0aGUg Y29sdW1uIG51bWJlcnMgb24tdGhlLWZseS4gIENvbHVtbgotCSAqIG51bWJlciB2YXJpYWJsZXMg Zm9yIGNvbHVtbnMgbm90IGZldGNoZWQgYXJlIGxlZnQgYXMgLTE7IHRoaXMgYXZvaWRzCi0JICog ZHVwbGljYXRpdmUgdGVzdCBsb2dpYyBiZWxvdy4KLQkgKi8KLQljb2xzID0gMDsKLQlwcmludGZQ UUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEuYXR0bmFtZSIpOwotCWF0dG5hbWVfY29sID0gY29s cysrOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0 X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7Ci0JYXR0dHlwZV9jb2wgPSBjb2xzKys7 Ci0KLQlpZiAoc2hvd19jb2x1bW5fZGV0YWlscykKLQl7Ci0JCS8qIHVzZSAicHJldHR5IiBtb2Rl IGZvciBleHByZXNzaW9uIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBwYXJlbnRoZXNlcyAqLwotCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLAotCQkJCQkJCSAiLFxuICAoU0VMRUNUIHBnX2NhdGFsb2cu cGdfZ2V0X2V4cHIoZC5hZGJpbiwgZC5hZHJlbGlkLCB0cnVlKSIKLQkJCQkJCQkgIlxuICAgRlJP TSBwZ19jYXRhbG9nLnBnX2F0dHJkZWYgZCIKLQkJCQkJCQkgIlxuICAgV0hFUkUgZC5hZHJlbGlk ID0gYS5hdHRyZWxpZCBBTkQgZC5hZG51bSA9IGEuYXR0bnVtIEFORCBhLmF0dGhhc2RlZikiCi0J CQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOwotCQlhdHRyZGVmX2NvbCA9IGNvbHMrKzsKLQkJ YXR0bm90bnVsbF9jb2wgPSBjb2xzKys7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBn X2NhdGFsb2cucGdfdHlwZSB0XG4iCi0JCQkJCQkJICIgICBXSEVSRSBjLm9pZCA9IGEuYXR0Y29s bGF0aW9uIEFORCB0Lm9pZCA9IGEuYXR0dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlw Y29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKLQkJYXR0Y29sbF9jb2wgPSBjb2xzKys7Ci0J CWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICIsXG4gIGEuYXR0aWRlbnRpdHkiKTsKLQkJZWxzZQotCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFsb2cuY2hhciBBUyBhdHRpZGVudGl0eSIpOwotCQlh dHRpZGVudGl0eV9jb2wgPSBjb2xzKys7Ci0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDEyMDAwMCkK LQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0Z2VuZXJhdGVkIik7Ci0J CWVsc2UKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gICcnOjpwZ19jYXRhbG9n LmNoYXIgQVMgYXR0Z2VuZXJhdGVkIik7Ci0JCWF0dGdlbmVyYXRlZF9jb2wgPSBjb2xzKys7Ci0J fQotCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8Ci0JCXRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpCi0JewotCQlpZiAocHNldC5z dmVyc2lvbiA+PSAxMTAwMDApCi0JCXsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIsXG4g IENBU0UgV0hFTiBhLmF0dG51bSA8PSAoU0VMRUNUIGkuaW5kbmtleWF0dHMgRlJPTSBwZ19jYXRh bG9nLnBnX2luZGV4IGkgV0hFUkUgaS5pbmRleHJlbGlkID0gJyVzJykgVEhFTiAnJXMnIEVMU0Ug JyVzJyBFTkQgQVMgaXNfa2V5IiwKLQkJCQkJCQkgIG9pZCwKLQkJCQkJCQkgIGdldHRleHRfbm9v cCgieWVzIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIm5vIikpOwotCQkJaXNpbmRleGtleV9j b2wgPSBjb2xzKys7Ci0JCX0KLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdf Y2F0YWxvZy5wZ19nZXRfaW5kZXhkZWYoYS5hdHRyZWxpZCwgYS5hdHRudW0sIFRSVUUpIEFTIGlu ZGV4ZGVmIik7Ci0JCWluZGV4ZGVmX2NvbCA9IGNvbHMrKzsKLQl9Ci0JLyogRkRXIG9wdGlvbnMg Zm9yIGZvcmVpZ24gdGFibGUgY29sdW1uICovCi0JaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfRk9SRUlHTl9UQUJMRSkKLQl7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIENBU0UgV0hFTiBhdHRmZHdvcHRpb25zIElTIE5VTEwgVEhFTiAnJyBFTFNFICIKLQkJCQkJ CQkgIiAgJygnIHx8IHBnX2NhdGFsb2cuYXJyYXlfdG9fc3RyaW5nKEFSUkFZKFNFTEVDVCBwZ19j YXRhbG9nLnF1b3RlX2lkZW50KG9wdGlvbl9uYW1lKSB8fCAnICcgfHwgcGdfY2F0YWxvZy5xdW90 ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIEZST00gIgotCQkJCQkJCSAiICBwZ19jYXRhbG9nLnBn X29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0aW9ucykpLCAnLCAnKSB8fCAnKScgRU5EIEFTIGF0 dGZkd29wdGlvbnMiKTsKLQkJZmR3b3B0c19jb2wgPSBjb2xzKys7Ci0JfQotCWlmICh2ZXJib3Nl KQotCXsKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgYS5hdHRzdG9yYWdlIik7 Ci0JCWF0dHN0b3JhZ2VfY29sID0gY29scysrOwotCi0JCS8qIGNvbXByZXNzaW9uIGluZm8sIGlm IHJlbGV2YW50IHRvIHJlbGtpbmQgKi8KLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwICYm Ci0JCQkhcHNldC5oaWRlX2NvbXByZXNzaW9uICYmCi0JCQkodGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAotCQkJIHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUEFS VElUSU9ORURfVEFCTEUgfHwKLQkJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX01BVFZJ RVcpKQotCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGNvbXBy ZXNzaW9uIEFTIGF0dGNvbXByZXNzaW9uIik7Ci0JCQlhdHRjb21wcmVzc2lvbl9jb2wgPSBjb2xz Kys7Ci0JCX0KLQotCQkvKiBzdGF0cyB0YXJnZXQsIGlmIHJlbGV2YW50IHRvIHJlbGtpbmQgKi8K LQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJCXRhYmxl aW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKLQkJCXRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVggfHwKLQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfTUFUVklFVyB8fAotCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9GT1JFSUdO X1RBQkxFIHx8Ci0JCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RB QkxFKQotCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBDQVNFIFdIRU4g YS5hdHRzdGF0dGFyZ2V0PS0xIFRIRU4gTlVMTCBFTFNFIGEuYXR0c3RhdHRhcmdldCBFTkQgQVMg YXR0c3RhdHRhcmdldCIpOwotCQkJYXR0c3RhdHRhcmdldF9jb2wgPSBjb2xzKys7Ci0JCX0KLQot CQkvKgotCQkgKiBJbiA5LjArLCB3ZSBoYXZlIGNvbHVtbiBjb21tZW50cyBmb3I6IHJlbGF0aW9u cywgdmlld3MsIGNvbXBvc2l0ZQotCQkgKiB0eXBlcywgYW5kIGZvcmVpZ24gdGFibGVzIChjZi4g Q29tbWVudE9iamVjdCgpIGluIGNvbW1lbnQuYykuCi0JCSAqLwotCQlpZiAodGFibGVpbmZvLnJl bGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAotCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVM S0lORF9WSUVXIHx8Ci0JCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwK LQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAotCQkJdGFi bGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSB8fAotCQkJdGFibGVpbmZv LnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKLQkJewotCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5jb2xfZGVzY3JpcHRpb24oYS5hdHRy ZWxpZCwgYS5hdHRudW0pIik7Ci0JCQlhdHRkZXNjcl9jb2wgPSBjb2xzKys7Ci0JCX0KLQl9Ci0K LQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5GUk9NIHBnX2NhdGFsb2cucGdfYXR0cmli dXRlIGEiKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJlbGlkID0g JyVzJyBBTkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQpOwotCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbk9SREVSIEJZIGEuYXR0bnVtOyIpOwotCi0JcmVz ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOwotCWlmICghcmVzKQotCQlnb3RvIGVycm9yX3JldHVybjsK LQludW1yb3dzID0gUFFudHVwbGVzKHJlcyk7Ci0KIAkvKiBNYWtlIHRpdGxlICovCiAJc3dpdGNo ICh0YWJsZWluZm8ucmVsa2luZCkKIAl7CkBAIC0yMDQ1LDMyICsxOTIzLDE3MSBAQCBkZXNjcmli ZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJYnJlYWs7CiAJfQog Ci0JLyogRmlsbCBoZWFkZXJzW10gd2l0aCB0aGUgbmFtZXMgb2YgdGhlIGNvbHVtbnMgd2Ugd2ls bCBvdXRwdXQgKi8KKwkvKiBJZGVudGlmeSB3aGV0aGVyIHdlIHNob3VsZCBwcmludCBjb2xsYXRp b24sIG51bGxhYmxlLCBkZWZhdWx0IHZhbHMgKi8KKwlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAorCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcg fHwKKwkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCXRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQl0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFIHx8CisJCXRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCXNob3dfY29sdW1uX2RldGFpbHMgPSB0cnVlOwor CisJLyoKKwkgKiBHZXQgcGVyLWNvbHVtbiBpbmZvCisJICoKKwkgKiBTaW5jZSB0aGUgc2V0IG9m IHF1ZXJ5IGNvbHVtbnMgd2UgbmVlZCB2YXJpZXMgZGVwZW5kaW5nIG9uIHJlbGtpbmQgYW5kCisJ ICogc2VydmVyIHZlcnNpb24sIHdlIGNvbXB1dGUgYWxsIHRoZSBjb2x1bW4gbnVtYmVycyBvbi10 aGUtZmx5LiAgQ29sdW1uCisJICogbnVtYmVyIHZhcmlhYmxlcyBmb3IgY29sdW1ucyBub3QgZmV0 Y2hlZCBhcmUgbGVmdCBhcyAtMTsgdGhpcyBhdm9pZHMKKwkgKiBkdXBsaWNhdGl2ZSB0ZXN0IGxv Z2ljIGJlbG93LiBQcm9wZXJ0eSBncmFwaCByZWxhdGlvbnMgZG8gbm90IGhhdmUKKwkgKiBjb2x1 bW5zLgorCSAqLwogCWNvbHMgPSAwOwotCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgi Q29sdW1uIik7Ci0JaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJUeXBlIik7Ci0JaWYg KHNob3dfY29sdW1uX2RldGFpbHMpCisJbnVtcm93cyA9IDA7CisJaWYgKHRhYmxlaW5mby5yZWxr aW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQogCXsKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4 dF9ub29wKCJDb2xsYXRpb24iKTsKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJO dWxsYWJsZSIpOwotCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKTsK KwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIlNFTEVDVCBhLmF0dG5hbWUiKTsKKwkJYXR0bmFt ZV9jb2wgPSBjb2xzKys7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2Nh dGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7CisJCWF0dHR5cGVf Y29sID0gY29scysrOworCisJCWlmIChzaG93X2NvbHVtbl9kZXRhaWxzKQorCQl7CisJCQkvKiB1 c2UgInByZXR0eSIgbW9kZSBmb3IgZXhwcmVzc2lvbiB0byBhdm9pZCBleGNlc3NpdmUgcGFyZW50 aGVzZXMgKi8KKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkJCSAiLFxuICAo U0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoZC5hZGJpbiwgZC5hZHJlbGlkLCB0cnVlKSIK KwkJCQkJCQkJICJcbiAgIEZST00gcGdfY2F0YWxvZy5wZ19hdHRyZGVmIGQiCisJCQkJCQkJCSAi XG4gICBXSEVSRSBkLmFkcmVsaWQgPSBhLmF0dHJlbGlkIEFORCBkLmFkbnVtID0gYS5hdHRudW0g QU5EIGEuYXR0aGFzZGVmKSIKKwkJCQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOworCQkJYXR0 cmRlZl9jb2wgPSBjb2xzKys7CisJCQlhdHRub3RudWxsX2NvbCA9IGNvbHMrKzsKKwkJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2Nh dGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCisJCQkJCQkJCSAi ICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5cGlkIEFO RCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CisJ CQlhdHRjb2xsX2NvbCA9IGNvbHMrKzsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkK KwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGlkZW50aXR5Iik7CisJ CQllbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFs b2cuY2hhciBBUyBhdHRpZGVudGl0eSIpOworCQkJYXR0aWRlbnRpdHlfY29sID0gY29scysrOwor CQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTIwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsXG4gIGEuYXR0Z2VuZXJhdGVkIik7CisJCQllbHNlCisJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFsb2cuY2hhciBBUyBhdHRnZW5lcmF0ZWQi KTsKKwkJCWF0dGdlbmVyYXRlZF9jb2wgPSBjb2xzKys7CisJCX0KKwkJaWYgKHRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKKwkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfSU5ERVgpCisJCXsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDExMDAw MCkKKwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiLFxuICBDQVNFIFdIRU4gYS5h dHRudW0gPD0gKFNFTEVDVCBpLmluZG5rZXlhdHRzIEZST00gcGdfY2F0YWxvZy5wZ19pbmRleCBp IFdIRVJFIGkuaW5kZXhyZWxpZCA9ICclcycpIFRIRU4gJyVzJyBFTFNFICclcycgRU5EIEFTIGlz X2tleSIsCisJCQkJCQkJCSAgb2lkLAorCQkJCQkJCQkgIGdldHRleHRfbm9vcCgieWVzIiksCisJ CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJubyIpKTsKKwkJCQlpc2luZGV4a2V5X2NvbCA9IGNvbHMr KzsKKwkJCX0KKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cu cGdfZ2V0X2luZGV4ZGVmKGEuYXR0cmVsaWQsIGEuYXR0bnVtLCBUUlVFKSBBUyBpbmRleGRlZiIp OworCQkJaW5kZXhkZWZfY29sID0gY29scysrOworCQl9CisJCS8qIEZEVyBvcHRpb25zIGZvciBm b3JlaWduIHRhYmxlIGNvbHVtbiAqLworCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lO RF9GT1JFSUdOX1RBQkxFKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxu ICBDQVNFIFdIRU4gYXR0ZmR3b3B0aW9ucyBJUyBOVUxMIFRIRU4gJycgRUxTRSAiCisJCQkJCQkJ CSAiICAnKCcgfHwgcGdfY2F0YWxvZy5hcnJheV90b19zdHJpbmcoQVJSQVkoU0VMRUNUIHBnX2Nh dGFsb2cucXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8ICcgJyB8fCBwZ19jYXRhbG9nLnF1b3Rl X2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAgRlJPTSAiCisJCQkJCQkJCSAiICBwZ19jYXRhbG9nLnBn X29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0aW9ucykpLCAnLCAnKSB8fCAnKScgRU5EIEFTIGF0 dGZkd29wdGlvbnMiKTsKKwkJCWZkd29wdHNfY29sID0gY29scysrOworCQl9CisJCWlmICh2ZXJi b3NlKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dHN0b3Jh Z2UiKTsKKwkJCWF0dHN0b3JhZ2VfY29sID0gY29scysrOworCisJCQkvKiBjb21wcmVzc2lvbiBp bmZvLCBpZiByZWxldmFudCB0byByZWxraW5kICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx NDAwMDAgJiYKKwkJCQkhcHNldC5oaWRlX2NvbXByZXNzaW9uICYmCisJCQkJKHRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCQkgdGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAorCQkJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX01BVFZJRVcpKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIGEuYXR0Y29tcHJlc3Npb24gQVMgYXR0Y29tcHJlc3Npb24iKTsKKwkJCQlhdHRjb21wcmVz c2lvbl9jb2wgPSBjb2xzKys7CisJCQl9CisKKwkJCS8qIHN0YXRzIHRhcmdldCwgaWYgcmVsZXZh bnQgdG8gcmVsa2luZCAqLworCQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVM QVRJT04gfHwKKwkJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8CisJCQkJ dGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWCB8fAorCQkJCXRh YmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCXRhYmxlaW5mby5yZWxr aW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgQ0FTRSBXSEVOIGEuYXR0c3RhdHRhcmdldD0tMSBUSEVOIE5VTEwgRUxT RSBhLmF0dHN0YXR0YXJnZXQgRU5EIEFTIGF0dHN0YXR0YXJnZXQiKTsKKwkJCQlhdHRzdGF0dGFy Z2V0X2NvbCA9IGNvbHMrKzsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEluIDkuMCssIHdlIGhhdmUg Y29sdW1uIGNvbW1lbnRzIGZvcjogcmVsYXRpb25zLCB2aWV3cywKKwkJCSAqIGNvbXBvc2l0ZSB0 eXBlcywgYW5kIGZvcmVpZ24gdGFibGVzIChjZi4gQ29tbWVudE9iamVjdCgpIGluCisJCQkgKiBj b21tZW50LmMpLgorCQkJICovCisJCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9S RUxBVElPTiB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfVklFVyB8fAorCQkJ CXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCXRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUgfHwKKwkJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsXG4gIHBnX2NhdGFsb2cuY29sX2Rlc2NyaXB0aW9uKGEuYXR0cmVsaWQsIGEuYXR0 bnVtKSIpOworCQkJCWF0dGRlc2NyX2NvbCA9IGNvbHMrKzsKKwkJCX0KKwkJfQorCisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbkZST00gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSIp OworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJlbGlkID0gJyVzJyBB TkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQpOworCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5PUkRFUiBCWSBhLmF0dG51bTsiKTsKKworCQlyZXMgPSBQ U1FMZXhlYyhidWYuZGF0YSk7CisJCWlmICghcmVzKQorCQkJZ290byBlcnJvcl9yZXR1cm47CisJ CW51bXJvd3MgPSBQUW50dXBsZXMocmVzKTsKKworCQkvKiBGaWxsIGhlYWRlcnNbXSB3aXRoIHRo ZSBuYW1lcyBvZiB0aGUgY29sdW1ucyB3ZSB3aWxsIG91dHB1dCAqLworCQljb2xzID0gMDsKKwkJ aWYgKHRhYmxlaW5mby5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQorCQl7CisJCQkvKiBB IHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IHByb2plY3QgYW55IGNvbHVtbnMgYnkgaXRzZWxmLiAq LworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb2x1bW4iKTsKKwkJCWhlYWRl cnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiVHlwZSIpOworCQl9CisJCWlmIChzaG93X2NvbHVt bl9kZXRhaWxzKQorCQl7CisJCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbGxh dGlvbiIpOworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpOwor CQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJEZWZhdWx0Iik7CisJCX0KKwkJaWYg KGlzaW5kZXhrZXlfY29sID49IDApCisJCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3Ao IktleT8iKTsKKwkJaWYgKGluZGV4ZGVmX2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0g Z2V0dGV4dF9ub29wKCJEZWZpbml0aW9uIik7CisJCWlmIChmZHdvcHRzX2NvbCA+PSAwKQorCQkJ aGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJGRFcgb3B0aW9ucyIpOworCQlpZiAoYXR0 c3RvcmFnZV9jb2wgPj0gMCkKKwkJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3Rv cmFnZSIpOworCQlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCisJCQloZWFkZXJzW2NvbHMr K10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7CisJCWlmIChhdHRzdGF0dGFyZ2V0X2Nv bCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQi KTsKKwkJaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4 dF9ub29wKCJEZXNjcmlwdGlvbiIpOworCisJCUFzc2VydChjb2xzIDw9IGxlbmd0aG9mKGhlYWRl cnMpKTsKIAl9Ci0JaWYgKGlzaW5kZXhrZXlfY29sID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9 IGdldHRleHRfbm9vcCgiS2V5PyIpOwotCWlmIChpbmRleGRlZl9jb2wgPj0gMCkKLQkJaGVhZGVy c1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJEZWZpbml0aW9uIik7Ci0JaWYgKGZkd29wdHNfY29s ID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiRkRXIG9wdGlvbnMiKTsK LQlpZiAoYXR0c3RvcmFnZV9jb2wgPj0gMCkKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9u b29wKCJTdG9yYWdlIik7Ci0JaWYgKGF0dGNvbXByZXNzaW9uX2NvbCA+PSAwKQotCQloZWFkZXJz W2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7Ci0JaWYgKGF0dHN0YXR0YXJn ZXRfY29sID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3RhdHMgdGFy Z2V0Iik7Ci0JaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQotCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIkRlc2NyaXB0aW9uIik7Ci0KLQlBc3NlcnQoY29scyA8PSBsZW5ndGhvZihoZWFk ZXJzKSk7CisKKwkvKgorCSAqIExpa2UgYSBwcm9wZXJ0eSBncmFwaCwgaWYgdGhlIHJlbGF0aW9u IGRvZXNuJ3QgaGF2ZSBhbnkgY29sdW1ucywKKwkgKiBzdXBwcmVzcyBib3JkZXJzLgorCSAqLwor CWlmIChjb2xzIDw9IDAgJiYgbnVtcm93cyA8PSAwKQorCQlteW9wdC5ib3JkZXIgPSAwOwogCiAJ cHJpbnRUYWJsZUluaXQoJmNvbnQsICZteW9wdCwgdGl0bGUuZGF0YSwgY29scywgbnVtcm93cyk7 CiAJcHJpbnRUYWJsZUluaXRpYWxpemVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAppbmRleCBjM2YwNzI5NDRjZC4u NmRiOWUxNWE2NjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X3Byb3BlcnR5X2dyYXBoLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0 ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTY1NCwxMyArNjU0LDExIEBAIEVSUk9SOiAgInBnX3R5 cGUiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBoCiAtLSBUT0RPCiBcZCBnMQogUHJvcGVydHkgZ3Jh cGggImNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cy5nMSIKLSBDb2x1bW4gfCBUeXBlIAotLS0t LS0tLS0rLS0tLS0tCisKIAogXGQrIGcxCiBQcm9wZXJ0eSBncmFwaCAiY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzLmcxIgotIENvbHVtbiB8IFR5cGUgfCBTdG9yYWdlIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLQorCiBQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgogIENSRUFURSBQUk9Q RVJUWSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEKIAotLSAKMi4zNC4xCgo= --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0007-RLS-tests-20241205.patch" Content-Disposition: attachment; filename="0007-RLS-tests-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yquz6 RnJvbSA0NmY5Y2NiNWY5MzFkY2MyOTZlMzBmMDk0NjcwNDZmNWNlZDYwY2E0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAyNCAxNjo0Mzo0MCArMDUzMApTdWJqZWN0OiBb UEFUQ0ggNy84XSBSTFMgdGVzdHMKClRoZSBjb21taXQgdGVzdHMgaW50ZXJhY3Rpb24gb2YgcHJv cGVydHkgZ3JhcGggd2l0aCBSTFMuICBUaGUgdGVzdApxdWVyaWVzIHJlZmVyZW5jaW5nIHByb3Bl cnR5IGdyYXBoIGFyZSBjcmFmdGVkIGZyb20gZXhpc3RpbmcgcXVlcmllcyBieQp1c2luZyBlcXVp dmFsZW50IEdSQVBIX1RBQkxFIGNvbnN0cnVjdHMuIFRodXMgd2UganVzdCBtYWtlIHN1cmUgdGhh dCB0aGUKcXVlcmllcyB1c2luZyBHUkFQSF9UQUJMRSBjb25zdHJ1Y3RzIGJlaGF2ZSBpbiB0aGUg c2FtZSBtYW5uZXIgYW5kCnByb3ZpZGUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBjb3JyZXNwb25k aW5nIGV4aXN0aW5nIHF1ZXJpZXMuCgpUaGUgdGVzdHMgY292ZXJpbmcgc2ltcGxlIHRhYmxlcywg aW5oZXJpdGFuY2UgYW5kIHBhcnRpdGlvbmVkIHRhYmxlcwplc3RhYmxpc2ggdGhhdCB0aGUgUkxT IGlzIGFwcGxpZWQgZXZlbiB3aGVuIHRoZSB0YWJsZXMgYXJlIGFjY2Vzc2VkCnRocm91Z2ggR1JB UEhfVEFCTEUuICBUaGF0IGVzdGFibGlzaGVzIHRoYXQgdGhlIFJMUyBwb2xpY2llcyB3aWxsIGJl CmFwcGxpZWQgd2hlbiBpbnRlcmFjdGluZyB3aXRoIG90aGVyIGZlYXR1cmVzIGxpa2UgcmVjdXJz aXZlIHBvbGljaWVzLApwcmVwYXJlZCBzdGF0ZW1lbnQgaW52YWxpZGF0aW9uLCBzZWN1cml0eSBi YXJyaWVyIHZpZXdzLCBDVEUsIElOU0VSVCAuLi4KU0VMRUNULCBDT1BZLCBqb2lucywgbm9uLXRh cmdldCByZWxhdGlvbnMgZXRjLiBUaGlzIGFzc3VtcHRpb24gaXMgYmFzZWQKb24gdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24gd2hpY2ggcmV3cml0ZXMgR1JBUEhfVEFCTEUgY2xhdXNlIHdlbGwK YmVmb3JlIHRoZSBSTFMgcG9saWNpZXMgYXJlIGFkZGVkLiBJbiBjYXNlIHRoZSBpbXBsZW1lbnRh dGlvbiBjaGFuZ2VzIGluCmZ1dHVyZSwgdGhlc2UgYWRkaXRpb25hbCB0ZXN0IHF1ZXJpZXMgd2ls bCBwcm92aWRlIHRoZSByZXF1aXJlZApleHRlbnNpdmUgY292ZXJhZ2UuCgpOb3RlOiBUaGUgdGVz dHMgZm9yIEJ1ZyAjMTU3MDggYXJlIGFscmVhZHkgY292ZXJlZCBlYXJsaWVyLCBoZW5jZSBub3QK YWRkZWQgYWdhaW4uCgpBdXRob3I6IEFzaHV0b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBhdC5vc3NA Z21haWwuY29tPgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0 IHwgMjE3NiArKysrKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3Nl Y3VyaXR5LnNxbCAgICAgIHwgIDMwOSArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjM2NCBpbnNlcnRp b25zKCspLCAxMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9yb3dzZWN1cml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3Nl Y3VyaXR5Lm91dAppbmRleCBmZDU2NTRkZjM1ZS4uMmUwYmRhZjcwY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CkBAIC03Miw2ICs3MiwxMyBAQCBJTlNFUlQg SU5UTyBkb2N1bWVudCBWQUxVRVMKICAgICAoIDgsIDQ0LCAxLCAncmVncmVzc19ybHNfY2Fyb2wn LCAnZ3JlYXQgbWFuZ2EnKSwKICAgICAoIDksIDIyLCAxLCAncmVncmVzc19ybHNfZGF2ZScsICdh d2Vzb21lIHNjaWVuY2UgZmljdGlvbicpLAogICAgICgxMCwgMzMsIDIsICdyZWdyZXNzX3Jsc19k YXZlJywgJ2F3ZXNvbWUgdGVjaG5vbG9neSBib29rJyk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEgg YWNjX2NhdAorICAgIFZFUlRFWCBUQUJMRVMgKHVhY2NvdW50LCBjYXRlZ29yeSkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIGRvY3VtZW50CisgICAgICAgIFNPVVJDRSBLRVkgKGRhdXRob3Ip IFJFRkVSRU5DRVMgdWFjY291bnQgKHBndXNlcikKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChj aWQpIFJFRkVSRU5DRVMgY2F0ZWdvcnkgKGNpZCkpOworR1JBTlQgQUxMIE9OIGFjY19jYXQgVE8g cHVibGljOwogQUxURVIgVEFCTEUgZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsK IC0tIHVzZXIncyBzZWN1cml0eSBsZXZlbCBtdXN0IGJlIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRv IGRvY3VtZW50J3MKIENSRUFURSBQT0xJQ1kgcDEgT04gZG9jdW1lbnQgQVMgUEVSTUlTU0lWRQpA QCAtOTMsMjQgKzEwMCwyNiBAQCBDUkVBVEUgUE9MSUNZIHAyciBPTiBkb2N1bWVudCBBUyBSRVNU UklDVElWRSBUTyByZWdyZXNzX3Jsc19kYXZlCiBDUkVBVEUgUE9MSUNZIHAxciBPTiBkb2N1bWVu dCBBUyBSRVNUUklDVElWRSBUTyByZWdyZXNzX3Jsc19kYXZlCiAgICAgVVNJTkcgKGNpZCA8PiA0 NCk7CiBcZHAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcwotICAgICAgIFNjaGVtYSAgICAg ICB8ICAgTmFtZSAgIHwgVHlwZSAgfCAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAg ICAgICAgICAgICB8IENvbHVtbiBwcml2aWxlZ2VzIHwgICAgICAgICAgICAgICAgICBQb2xpY2ll cyAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcmxzX3NjaGVtYSB8IGNhdGVnb3J5IHwgdGFibGUgfCByZWdyZXNzX3Jsc19h bGljZT1hcndkRHh0bS9yZWdyZXNzX3Jsc19hbGljZSt8ICAgICAgICAgICAgICAgICAgIHwgCi0g ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICB8ID1hcndkRHh0bS9yZWdyZXNz X3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKLSByZWdy ZXNzX3Jsc19zY2hlbWEgfCBkb2N1bWVudCB8IHRhYmxlIHwgcmVncmVzc19ybHNfYWxpY2U9YXJ3 ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAgICAgICAgICAgICAgICB8IHAxOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgIHwgPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgKHUpOiAoZGxldmVsIDw9ICggU0VMRUNUIHVh Y2NvdW50LnNlY2x2ICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgIEZST00gdWFjY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgV0hFUkUg KHVhY2NvdW50LnBndXNlciA9IENVUlJFTlRfVVNFUikpKSsKLSAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHAyciAoUkVTVFJJQ1RJVkUpOiAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgKHUpOiAoKGNpZCA8PiA0NCkgQU5EIChjaWQgPCA1MCkpICAgICAgICsK LSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgdG86 IHJlZ3Jlc3NfcmxzX2RhdmUgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHAxciAoUkVTVFJJQ1RJVkUpOiAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgKHUpOiAoY2lkIDw+IDQ0KSAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg dG86IHJlZ3Jlc3NfcmxzX2RhdmUKLSByZWdyZXNzX3Jsc19zY2hlbWEgfCB1YWNjb3VudCB8IHRh YmxlIHwgcmVncmVzc19ybHNfYWxpY2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAg ICAgICAgICAgICAgICB8IAotICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg fCA9ci9yZWdyZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgCi0oMyByb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcwor ICAgICAgIFNjaGVtYSAgICAgICB8ICAgTmFtZSAgIHwgICAgICBUeXBlICAgICAgfCAgICAgICAg ICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICB8IENvbHVtbiBwcml2aWxlZ2Vz IHwgICAgICAgICAgICAgICAgICBQb2xpY2llcyAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX3NjaGVt YSB8IGFjY19jYXQgIHwgcHJvcGVydHkgZ3JhcGggfCByZWdyZXNzX3Jsc19hbGljZT1hcndkRHh0 bS9yZWdyZXNzX3Jsc19hbGljZSt8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ID1hcndkRHh0bS9yZWdyZXNzX3Js c19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyByZWdyZXNz X3Jsc19zY2hlbWEgfCBjYXRlZ29yeSB8IHRhYmxlICAgICAgICAgIHwgcmVncmVzc19ybHNfYWxp Y2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAgICAgICAgICAgICAgICB8IAorICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCA9YXJ3ZER4dG0v cmVncmVzc19ybHNfYWxpY2UgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg CisgcmVncmVzc19ybHNfc2NoZW1hIHwgZG9jdW1lbnQgfCB0YWJsZSAgICAgICAgICB8IHJlZ3Jl c3NfcmxzX2FsaWNlPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlK3wgICAgICAgICAgICAgICAg ICAgfCBwMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ID1hcndkRHh0bS9yZWdy ZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICh1 KTogKGRsZXZlbCA8PSAoIFNFTEVDVCB1YWNjb3VudC5zZWNsdiArCisgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICBGUk9NIHVhY2Nv dW50ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgIFdIRVJFICh1YWNjb3VudC5wZ3Vz ZXIgPSBDVVJSRU5UX1VTRVIpKSkrCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCBwMnIgKFJFU1RSSUNUSVZFKTogICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICh1KTogKChjaWQgPD4gNDQpIEFORCAoY2lkIDwgNTApKSAgICAg ICArCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgIHRvOiByZWdyZXNzX3Jsc19kYXZlICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBw MXIgKFJFU1RSSUNUSVZFKTogICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICh1KTogKGNp ZCA8PiA0NCkgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgIHRvOiByZWdyZXNzX3Jsc19k YXZlCisgcmVncmVzc19ybHNfc2NoZW1hIHwgdWFjY291bnQgfCB0YWJsZSAgICAgICAgICB8IHJl Z3Jlc3NfcmxzX2FsaWNlPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlK3wgICAgICAgICAgICAg ICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgPXIvcmVncmVzc19ybHNfYWxpY2UgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8IAorKDQgcm93cykKIAogXGQgZG9jdW1lbnQKICAgICAgICAgVGFibGUgInJl Z3Jlc3NfcmxzX3NjaGVtYS5kb2N1bWVudCIKQEAgLTE4MCw2ICsxODksMjMgQEAgTk9USUNFOiAg Zl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCiAgIDIyIHwgICA5IHwgICAgICAxIHwg cmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbiB8IHNjaWVuY2UgZmlj dGlvbgogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1l bnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0 bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IG15 IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTog IGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVh dCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCisgICAg ICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8 IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAg fCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmly c3QgbWFuZ2EgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA2 IHwgICAgICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rp b24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAg ICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8 IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisoNSByb3dz KQorCiAtLSB0cnkgYSBzYW1wbGVkIHZlcnNpb24KIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgVEFC TEVTQU1QTEUgQkVSTk9VTExJKDUwKSBSRVBFQVRBQkxFKDApCiAgIFdIRVJFIGZfbGVhayhkdGl0 bGUpIE9SREVSIEJZIGRpZDsKQEAgLTI0Nyw2ICsyNzMsMzMgQEAgTk9USUNFOiAgZl9sZWFrID0+ IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiAgIDMzIHwgIDEwIHwgICAgICAyIHwgcmVncmVzc19y bHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8IHRlY2hub2xvZ3kKICgxMCByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xl YWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMu Y25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwK K05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBt eSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBtYW5nYQorTk9U SUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0 IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9v aworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdl c29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHRlY2hub2xv Z3kgYm9vaworICAgICAgcGd1c2VyICAgICAgIHwgZGlkIHwgZGxldmVsIHwgICAgICAgICBkdGl0 bGUgICAgICAgICAgfCBjaWQgfCAgICAgIGNuYW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgMSB8ICAgICAgMSB8IG15IGZpcnN0IG5v dmVsICAgICAgICAgIHwgIDExIHwgbm92ZWwKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgMiB8ICAg ICAgMiB8IG15IHNlY29uZCBub3ZlbCAgICAgICAgIHwgIDExIHwgbm92ZWwKKyByZWdyZXNzX3Js c19ib2IgICB8ICAgMyB8ICAgICAgMiB8IG15IHNjaWVuY2UgZmljdGlvbiAgICAgIHwgIDIyIHwg c2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDQgfCAgICAgIDEgfCBteSBm aXJzdCBtYW5nYSAgICAgICAgICB8ICA0NCB8IG1hbmdhCisgcmVncmVzc19ybHNfYm9iICAgfCAg IDUgfCAgICAgIDIgfCBteSBzZWNvbmQgbWFuZ2EgICAgICAgICB8ICA0NCB8IG1hbmdhCisgcmVn cmVzc19ybHNfY2Fyb2wgfCAgIDYgfCAgICAgIDEgfCBncmVhdCBzY2llbmNlIGZpY3Rpb24gICB8 ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA3IHwgICAgICAy IHwgZ3JlYXQgdGVjaG5vbG9neSBib29rICAgfCAgMzMgfCB0ZWNobm9sb2d5CisgcmVncmVzc19y bHNfY2Fyb2wgfCAgIDggfCAgICAgIDEgfCBncmVhdCBtYW5nYSAgICAgICAgICAgICB8ICA0NCB8 IG1hbmdhCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgIDkgfCAgICAgIDEgfCBhd2Vzb21lIHNjaWVu Y2UgZmljdGlvbiB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2RhdmUgIHwg IDEwIHwgICAgICAyIHwgYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sgfCAgMzMgfCB0ZWNobm9sb2d5 CisoMTAgcm93cykKKwogLS0gdHJ5IGEgc2FtcGxlZCB2ZXJzaW9uCiBTRUxFQ1QgKiBGUk9NIGRv Y3VtZW50IFRBQkxFU0FNUExFIEJFUk5PVUxMSSg1MCkgUkVQRUFUQUJMRSgwKQogICBXSEVSRSBm X2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0yODgsNiArMzQxLDI4IEBAIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkg V0hFUkUgZl9sZWFrKGR0CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0 UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAoOSByb3dzKQogCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJF IGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNp ZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAgIFNvcnQgS2V5OiBkb2N1 bWVudC5kaWQKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdWFjY291 bnRfcGtleSBvbiB1YWNjb3VudCB1YWNjb3VudF8xCisgICAgICAgICAgIEluZGV4IENvbmQ6IChw Z3VzZXIgPSBDVVJSRU5UX1VTRVIpCisgICAtPiAgSGFzaCBKb2luCisgICAgICAgICBIYXNoIENv bmQ6IChkb2N1bWVudC5kYXV0aG9yID0gdWFjY291bnQucGd1c2VyKQorICAgICAgICAgLT4gIEhh c2ggSm9pbgorICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoY2F0ZWdvcnkuY2lkID0gZG9jdW1l bnQuY2lkKQorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGNhdGVnb3J5CisgICAgICAg ICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGRv Y3VtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJ bml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgSGFzaAor ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHVhY2NvdW50CisoMTUgcm93cykKKwogLS0g dmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19kYXZlOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBXSEVSRSBmX2xlYWso ZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0zMjgsNiArNDAzLDI3IEBAIE5PVElDRTogIGZfbGVh ayA9PiBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vawogICAzMyB8ICAxMCB8ICAgICAgMiB8IHJlZ3Jl c3NfcmxzX2RhdmUgIHwgYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sgfCB0ZWNobm9sb2d5CiAoNyBy b3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBm X2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQs IGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92 ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9 PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZp Y3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTog IGZfbGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGF3 ZXNvbWUgdGVjaG5vbG9neSBib29rCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwg fCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAx IHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3Zl bAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9u ICAgICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8 ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9u CisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJv b2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAg MSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVn cmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8 ICAzMyB8IHRlY2hub2xvZ3kKKyg3IHJvd3MpCisKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1Miw2ICs0NDgsMjggQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRl Z29yeSBXSEVSRSBmX2xlYWsoZHQKICAgICAgICAgICAgICAgIEZpbHRlcjogKChjaWQgPD4gNDQp IEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBBTkQgKGRsZXZlbCA8PSAoSW5pdFBsYW4g MSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQogKDkgcm93cykKIAorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xl YWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMu Y25hbWUpKSBPUkRFUiBCWSBkaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBLZXk6IGRvY3VtZW50LmRpZAorICAg SW5pdFBsYW4gMQorICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVh Y2NvdW50IHVhY2NvdW50XzEKKyAgICAgICAgICAgSW5kZXggQ29uZDogKHBndXNlciA9IENVUlJF TlRfVVNFUikKKyAgIC0+ICBIYXNoIEpvaW4KKyAgICAgICAgIEhhc2ggQ29uZDogKGNhdGVnb3J5 LmNpZCA9IGRvY3VtZW50LmNpZCkKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBjYXRlZ29yeQor ICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KKyAgICAgICAg ICAgICAgICAgICAgIEhhc2ggQ29uZDogKHVhY2NvdW50LnBndXNlciA9IGRvY3VtZW50LmRhdXRo b3IpCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdWFjY291bnQKKyAgICAg ICAgICAgICAgICAgICAgIC0+ICBIYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gZG9jdW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp bHRlcjogKChjaWQgPD4gNDQpIEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBBTkQgKGRs ZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQorKDE1IHJvd3Mp CisKIC0tIDQ0IHdvdWxkIHRlY2huaWNhbGx5IGZhaWwgZm9yIGJvdGggcDJyIGFuZCBwMXIsIGJ1 dCB3ZSBzaG91bGQgZ2V0IGFuIGVycm9yCiAtLSBiYWNrIGZyb20gcDFyIGZvciB0aGlzIGJlY2F1 c2UgaXQgc29ydHMgZmlyc3QKIElOU0VSVCBJTlRPIGRvY3VtZW50IFZBTFVFUyAoMTAwLCA0NCwg MSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBzb3J0aW5nIG9mIHBvbGljaWVzJyk7IC0t IGZhaWwKQEAgLTM5OCw2ICs1MTYsMjMgQEAgTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBt YW5nYQogICA0NCB8ICAgNSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNlY29uZCBt YW5nYSAgICB8IG1hbmdhCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChh Y2NfY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCkt W2QgOiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxl dmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBm X2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92 ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVh ayA9PiBteSBmaXJzdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQor ICAgICBwZ3VzZXIgICAgICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgIGR0aXRsZSAgICAgICB8IGNp ZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNf Ym9iIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgIHwgIDExIHwgbm92ZWwKKyBy ZWdyZXNzX3Jsc19ib2IgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQgbm92ZWwgICAgfCAgMTEg fCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiB8ICAgMyB8ICAgICAgMiB8IG15IHNjaWVuY2UgZmlj dGlvbiB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2JvYiB8ICAgNCB8ICAg ICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICB8ICA0NCB8IG1hbmdhCisgcmVncmVzc19ybHNfYm9i IHwgICA1IHwgICAgICAyIHwgbXkgc2Vjb25kIG1hbmdhICAgIHwgIDQ0IHwgbWFuZ2EKKyg1IHJv d3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJsc19yZWdyZXNfY2Fyb2wgYWdhaW4KIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIGRvY3Vt ZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKQEAgLTQyMiw2ICs1NTcsMTkg QEAgTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCiAgIDQ0IHwgICA4IHwgICAgICAxIHwg cmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBtYW5nYSAgICAgICAgICAgfCBtYW5nYQogKDMgcm93 cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9s ZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBj LmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNjaWVuY2Ug ZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9vaworTk9USUNF OiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2 ZWwgfCAgICAgICAgZHRpdGxlICAgICAgICAgfCBjaWQgfCAgICAgIGNuYW1lICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDYgfCAgICAgIDEg fCBncmVhdCBzY2llbmNlIGZpY3Rpb24gfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8 IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1h bmdhICAgICAgICAgICB8ICA0NCB8IG1hbmdhCisoMyByb3dzKQorCiBFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAt NDM5LDYgKzU4NywyMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9jdW1l bnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdAogICAgICAgICAgSW5kZXgg Q29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKICg1IHJvd3MpCiAKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFr KGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNu YW1lKSkgT1JERVIgQlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTb3J0CisgICBTb3J0IEtleTogZG9jdW1lbnQuZGlkCisgICAtPiAgTmVzdGVkIExvb3AK KyAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAorICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVhY2NvdW50CisgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIGRvY3VtZW50CisgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGF1 dGhvciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgY2F0ZWdvcnlfcGtleSBvbiBjYXRlZ29yeQorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKKygxMCByb3dzKQorCiAtLSBpbnRlcmFj dGlvbiBvZiBGSy9QSyBjb25zdHJhaW50cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgcDIgT04gY2F0ZWdvcnkKQEAgLTUxNSw2ICs2 ODAsMzUgQEAgU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKICAgNDQgfCBtYW5nYQogKDQgcm93cykK IAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFr KGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNu YW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitO T1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkg c2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElD RTogIGZfbGVhayA9PiBteSBzZWNvbmQgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBz Y2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sK K05PVElDRTogIGZfbGVhayA9PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNv bWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5 IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBob2dlCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQg fCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAx IHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jl c3NfcmxzX2JvYiAgIHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAg MTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5j ZSBmaWN0aW9uICAgICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19ib2Ig ICB8ICAgNCB8ICAgICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EK KyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNSB8ICAgICAgMiB8IG15IHNlY29uZCBtYW5nYSAgICAg ICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8ICAgICAgMSB8IGdy ZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19y bHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8 IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1h bmdhICAgICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8 ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9u CisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kg Ym9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8ICAgICAg MSB8IGhvZ2UgICAgICAgICAgICAgICAgICAgIHwgIDMzIHwgdGVjaG5vbG9neQorKDExIHJvd3Mp CisKIC0tIGRhdGFiYXNlIHN1cGVydXNlciBkb2VzIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlz YWJsZWQKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8g T0ZGOwpAQCAtNTQzLDYgKzczNywzNSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OwogICA0NCB8 IG1hbmdhCiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1 bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0 aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4g bXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElD RTogIGZfbGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBm aXJzdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAg Zl9sZWFrID0+IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0 IHRlY2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBh d2Vzb21lIHRlY2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGhvZ2UKKyAgICAgIHBn dXNlciAgICAgICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIHwgY2lk IHwgICAgICBjbmFtZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c19ybHNfYm9iICAgfCAgIDEgfCAgICAgIDEgfCBteSBmaXJzdCBub3ZlbCAgICAgICAgICB8ICAx MSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQg bm92ZWwgICAgICAgICB8ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDMgfCAg ICAgIDIgfCBteSBzY2llbmNlIGZpY3Rpb24gICAgICB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgor IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmlyc3QgbWFuZ2EgICAgICAg ICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA1IHwgICAgICAyIHwgbXkg c2Vjb25kIG1hbmdhICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwg ICA2IHwgICAgICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZp Y3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xv Z3kgYm9vayAgIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA4IHwg ICAgICAxIHwgZ3JlYXQgbWFuZ2EgICAgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3Nf cmxzX2RhdmUgIHwgICA5IHwgICAgICAxIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24gfCAgMjIg fCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19kYXZlICB8ICAxMCB8ICAgICAgMiB8IGF3 ZXNvbWUgdGVjaG5vbG9neSBib29rIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nh cm9sIHwgIDExIHwgICAgICAxIHwgaG9nZSAgICAgICAgICAgICAgICAgICAgfCAgMzMgfCB0ZWNo bm9sb2d5CisoMTEgcm93cykKKwogLS0gZGF0YWJhc2Ugbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFz cyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9GRjsKQEAgLTU3MSw2ICs3OTQsMzUgQEAgU0VMRUNUICogRlJPTSBjYXRlZ29yeTsK ICAgNDQgfCBtYW5nYQogKDQgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNj X2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtk IDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZl bCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9s ZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVs CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbWFuZ2EKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBtYW5nYQor Tk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xl YWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBob2dlCisg ICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAg ICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAg ICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAyIHwgICAgICAyIHwgbXkg c2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwg ICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9uICAgICAgfCAgMjIgfCBzY2llbmNlIGZp Y3Rpb24KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNCB8ICAgICAgMSB8IG15IGZpcnN0IG1hbmdh ICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNSB8ICAgICAg MiB8IG15IHNlY29uZCBtYW5nYSAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19j YXJvbCB8ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2Np ZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0 ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8 ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyBy ZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9u IHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAg IDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAxMSB8ICAgICAgMSB8IGhvZ2UgICAgICAgICAgICAgICAgICAgIHwgIDMz IHwgdGVjaG5vbG9neQorKDExIHJvd3MpCisKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkg dG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtNTk5LDYg Kzg1MSwzNSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OwogICA0NCB8IG1hbmdhCiAoNCByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xl YWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMu Y25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwK K05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBt eSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBtYW5nYQorTk9U SUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0 IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9v aworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdl c29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHRlY2hub2xv Z3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGhvZ2UKKyAgICAgIHBndXNlciAgICAgICB8IGRp ZCB8IGRsZXZlbCB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIHwgY2lkIHwgICAgICBjbmFtZSAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNfYm9iICAgfCAg IDEgfCAgICAgIDEgfCBteSBmaXJzdCBub3ZlbCAgICAgICAgICB8ICAxMSB8IG5vdmVsCisgcmVn cmVzc19ybHNfYm9iICAgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQgbm92ZWwgICAgICAgICB8 ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDMgfCAgICAgIDIgfCBteSBzY2ll bmNlIGZpY3Rpb24gICAgICB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmlyc3QgbWFuZ2EgICAgICAgICAgfCAgNDQgfCBtYW5n YQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA1IHwgICAgICAyIHwgbXkgc2Vjb25kIG1hbmdhICAg ICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA2IHwgICAgICAxIHwg Z3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xvZ3kgYm9vayAgIHwgIDMz IHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA4IHwgICAgICAxIHwgZ3JlYXQg bWFuZ2EgICAgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2RhdmUgIHwgICA5 IHwgICAgICAxIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24gfCAgMjIgfCBzY2llbmNlIGZpY3Rp b24KKyByZWdyZXNzX3Jsc19kYXZlICB8ICAxMCB8ICAgICAgMiB8IGF3ZXNvbWUgdGVjaG5vbG9n eSBib29rIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgIDExIHwgICAg ICAxIHwgaG9nZSAgICAgICAgICAgICAgICAgICAgfCAgMzMgfCB0ZWNobm9sb2d5CisoMTEgcm93 cykKKwogLS0gUkxTIHBvbGljeSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lciB3aGVuIFJM UyBkaXNhYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7 CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTYyNyw2ICs5MDgsMzUgQEAgU0VMRUNUICog RlJPTSBjYXRlZ29yeTsKICAgNDQgfCBtYW5nYQogKDQgcm93cykKIAorU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1 IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDog Y2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIs IGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlk OworTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4g bXkgc2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSBmaWN0aW9uCitO T1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBteSBz ZWNvbmQgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05P VElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9u CitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZf bGVhayA9PiBob2dlCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAg IGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0t LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmly c3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAy IHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jl c3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9uICAgICAgfCAg MjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNCB8ICAgICAgMSB8 IG15IGZpcnN0IG1hbmdhICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19ib2Ig ICB8ICAgNSB8ICAgICAgMiB8IG15IHNlY29uZCBtYW5nYSAgICAgICAgIHwgIDQ0IHwgbWFuZ2EK KyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlv biAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAg ICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdy ZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAgICAgICAgIHwg IDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8IGF3ZXNvbWUg c2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfZGF2 ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8IHRlY2hu b2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8ICAgICAgMSB8IGhvZ2UgICAgICAgICAg ICAgICAgICAgIHwgIDMzIHwgdGVjaG5vbG9neQorKDExIHJvd3MpCisKIC0tCiAtLSBUYWJsZSBp bmhlcml0YW5jZSBhbmQgUkxTIHBvbGljeQogLS0KQEAgLTY0Myw2ICs5NTMsMTIgQEAgQ1JFQVRF IFRBQkxFIHQzIChpZCBpbnQgbm90IG51bGwgcHJpbWFyeSBrZXksIGMgdGV4dCwgYiB0ZXh0LCBh IGludCk7CiBBTFRFUiBUQUJMRSB0MyBJTkhFUklUIHQxOwogR1JBTlQgQUxMIE9OIHQzIFRPIHB1 YmxpYzsKIENPUFkgdDMoaWQsIGEsYixjKSBGUk9NIHN0ZGluOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGl0cGcKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZKGlkKSBERUZBVUxU IExBQkVMIFBST1BFUlRJRVMgKGlkLCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xhc3MgYXMgdGFibGVv aWQpLAorICAgICAgICB0MiBLRVkoaWQpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoaWQsIGEs IGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBhcyB0YWJsZW9pZCksCisgICAgICAgIHQzIEtFWShpZCkg REVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpZCwgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIGFz IHRhYmxlb2lkKSk7CitHUkFOVCBBTEwgT04gaXRwZyBUTyBwdWJsaWM7CiBDUkVBVEUgUE9MSUNZ IHAxIE9OIHQxIEZPUiBBTEwgVE8gUFVCTElDIFVTSU5HIChhICUgMiA9IDApOyAtLSBiZSBldmVu IG51bWJlcgogQ1JFQVRFIFBPTElDWSBwMiBPTiB0MiBGT1IgQUxMIFRPIFBVQkxJQyBVU0lORyAo YSAlIDIgPSAxKTsgLS0gYmUgb2RkIG51bWJlcgogQUxURVIgVEFCTEUgdDEgRU5BQkxFIFJPVyBM RVZFTCBTRUNVUklUWTsKQEAgLTY3MCw2ICs5ODYsMjggQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIHQxOwogICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCiAoNyByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1O UyAodC5pZCwgdC5hLCB0LmIpKTsKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0tLS0tCisg MTAyIHwgMiB8IGJiYgorIDEwNCB8IDQgfCBkYWQKKyAyMDIgfCAyIHwgYmNkCisgMjA0IHwgNCB8 IGRlZgorIDMwMiB8IDIgfCB5eXkKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuaWQs IHQuYSwgdC5iKSk7CisgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFf MQorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisgICAtPiAgU2VxIFNjYW4gb24gdDIg dDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisgICAtPiAgU2VxIFNjYW4gb24g dDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisoNyByb3dzKQorCiBTRUxF Q1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBiYmIKIE5P VElDRTogIGZfbGVhayA9PiBkYWQKQEAgLTY5Nyw2ICsxMDM1LDMzIEBAIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYik7CiAgICAgICAgICBGaWx0ZXI6 ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09MVU1O UyAodC5pZCwgdC5hLCB0LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZf bGVhayA9PiBkYWQKK05PVElDRTogIGZfbGVhayA9PiBiY2QKK05PVElDRTogIGZfbGVhayA9PiBk ZWYKK05PVElDRTogIGZfbGVhayA9PiB5eXkKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0t LS0tCisgMTAyIHwgMiB8IGJiYgorIDEwNCB8IDQgfCBkYWQKKyAyMDIgfCAyIHwgYmNkCisgMjA0 IHwgNCB8IGRlZgorIDMwMiB8IDIgfCB5eXkKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9s ZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiB0MSB0MV8x CisgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisgICAtPiAg U2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQg Zl9sZWFrKGIpKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjog KCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg3IHJvd3MpCisKIC0tIHJlZmVyZW5jZSB0 byBzeXN0ZW0gY29sdW1uCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdDE7CiAg dGFibGVvaWQgfCBpZCAgfCBhIHwgIGIgIApAQCAtODE1LDYgKzExODAsMjYgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIEZST00gdDIgVU5JT04g QUxMIFNFTEVDVCBhLAogICAgLT4gIFNlcSBTY2FuIG9uIHQzCiAoNCByb3dzKQogCistLSBsYWJl bCBkaXNqdW5jdGlvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodCA6 IHQyIHwgdDMpIENPTFVNTlMgKHQuYSwgdC5iLCB0LnRhYmxlb2lkKSk7CisgYSB8ICBiICB8IHRh Ymxlb2lkIAorLS0tKy0tLS0tKy0tLS0tLS0tLS0KKyAxIHwgYWJjIHwgdDIKKyAzIHwgY2RlIHwg dDIKKyAxIHwgeHh4IHwgdDMKKyAyIHwgeXl5IHwgdDMKKyAzIHwgenp6IHwgdDMKKyg1IHJvd3Mp CisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBN QVRDSCAodCA6IHQyIHwgdDMpIENPTFVNTlMgKHQuYSwgdC5iLCB0LnRhYmxlb2lkKSk7CisgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDIKKyAgICAgICAgIEZpbHRlcjogKChh ICUgMikgPSAxKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzCisoNCByb3dzKQorCiAtLSBzdXBlcnVz ZXIgaXMgYWxsb3dlZCB0byBieXBhc3MgUkxTIGNoZWNrcwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CkBAIC04NTcsNiArMTI0Miw0NSBAQCBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpOwogICAg ICAgICAgRmlsdGVyOiBmX2xlYWsoYikKICg3IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxIFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5TICh0Lmlk LCB0LmEsIHQuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+ IGJiYgorTk9USUNFOiAgZl9sZWFrID0+IGNjYworTk9USUNFOiAgZl9sZWFrID0+IGRhZAorTk9U SUNFOiAgZl9sZWFrID0+IGFiYworTk9USUNFOiAgZl9sZWFrID0+IGJjZAorTk9USUNFOiAgZl9s ZWFrID0+IGNkZQorTk9USUNFOiAgZl9sZWFrID0+IGRlZgorTk9USUNFOiAgZl9sZWFrID0+IHh4 eAorTk9USUNFOiAgZl9sZWFrID0+IHl5eQorTk9USUNFOiAgZl9sZWFrID0+IHp6egorIGlkICB8 IGEgfCAgYiAgCistLS0tLSstLS0rLS0tLS0KKyAxMDEgfCAxIHwgYWJhCisgMTAyIHwgMiB8IGJi YgorIDEwMyB8IDMgfCBjY2MKKyAxMDQgfCA0IHwgZGFkCisgMjAxIHwgMSB8IGFiYworIDIwMiB8 IDIgfCBiY2QKKyAyMDMgfCAzIHwgY2RlCisgMjA0IHwgNCB8IGRlZgorIDMwMSB8IDEgfCB4eHgK KyAzMDIgfCAyIHwgeXl5CisgMzAzIHwgMyB8IHp6egorKDExIHJvd3MpCisKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hF UkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAg LT4gIFNlcSBTY2FuIG9uIHQxIHQxXzEKKyAgICAgICAgIEZpbHRlcjogZl9sZWFrKGIpCisgICAt PiAgU2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiBmX2xlYWsoYikKKyAgIC0+ ICBTZXEgU2NhbiBvbiB0MyB0MV8zCisgICAgICAgICBGaWx0ZXI6IGZfbGVhayhiKQorKDcgcm93 cykKKwogLS0gbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBS TFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTg5OSw2ICsx MzIzLDQ1IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xl YWsoYik7CiAgICAgICAgICBGaWx0ZXI6IGZfbGVhayhiKQogKDcgcm93cykKIAorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9sZWFrKHQuYikpIENP TFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCitOT1RJQ0U6ICBmX2xlYWsg PT4gZGFkCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYmNkCitO T1RJQ0U6ICBmX2xlYWsgPT4gY2RlCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGVmCitOT1RJQ0U6ICBm X2xlYWsgPT4geHh4CitOT1RJQ0U6ICBmX2xlYWsgPT4geXl5CitOT1RJQ0U6ICBmX2xlYWsgPT4g enp6CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMSB8IDEgfCBhYmEKKyAx MDIgfCAyIHwgYmJiCisgMTAzIHwgMyB8IGNjYworIDEwNCB8IDQgfCBkYWQKKyAyMDEgfCAxIHwg YWJjCisgMjAyIHwgMiB8IGJjZAorIDIwMyB8IDMgfCBjZGUKKyAyMDQgfCA0IHwgZGVmCisgMzAx IHwgMSB8IHh4eAorIDMwMiB8IDIgfCB5eXkKKyAzMDMgfCAzIHwgenp6CisoMTEgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKKyAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMQorICAgICAgICAgRmlsdGVyOiBmX2xl YWsoYikKKyAgIC0+ICBTZXEgU2NhbiBvbiB0MiB0MV8yCisgICAgICAgICBGaWx0ZXI6IGZfbGVh ayhiKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjogZl9sZWFr KGIpCisoNyByb3dzKQorCiAtLQogLS0gUGFydGl0aW9uZWQgVGFibGVzCiAtLQpAQCAtOTI5LDYg KzEzOTIsOSBAQCBJTlNFUlQgSU5UTyBwYXJ0X2RvY3VtZW50IFZBTFVFUwogICAgICggOCwgNTUs IDIsICdyZWdyZXNzX3Jsc19jYXJvbCcsICdncmVhdCBzYXRpcmUnKSwKICAgICAoIDksIDExLCAx LCAncmVncmVzc19ybHNfZGF2ZScsICdhd2Vzb21lIHNjaWVuY2UgZmljdGlvbicpLAogICAgICgx MCwgOTksIDIsICdyZWdyZXNzX3Jsc19kYXZlJywgJ2F3ZXNvbWUgdGVjaG5vbG9neSBib29rJyk7 CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggcHRwZworICAgIFZFUlRFWCBUQUJMRVMgKHBhcnRfZG9j dW1lbnQgS0VZIChkaWQpLCBwYXJ0X2RvY3VtZW50X3NhdGlyZSBLRVkgKGRpZCkpOworR1JBTlQg QUxMIE9OIHB0cGcgVE8gcHVibGljOwogQUxURVIgVEFCTEUgcGFydF9kb2N1bWVudCBFTkFCTEUg Uk9XIExFVkVMIFNFQ1VSSVRZOwogLS0gQ3JlYXRlIHBvbGljeSBvbiBwYXJlbnQKIC0tIHVzZXIn cyBzZWN1cml0eSBsZXZlbCBtdXN0IGJlIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRvIGRvY3VtZW50 J3MKQEAgLTEwMDEsMTkgKzE0NjcsNDkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICBGaWx0ZXI6 ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAoMTAg cm93cykKIAotLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKLVNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7Ci1TRUxFQ1QgKiBGUk9NIHBhcnRfZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOworU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQu ZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0 aXRsZSkpIE9SREVSIEJZIGRpZDsKIE5PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBub3ZlbAot Tk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBub3ZlbAogTk9USUNFOiAgZl9sZWFrID0+IGdy ZWF0IHNjaWVuY2UgZmljdGlvbgogTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBm aWN0aW9uCiBOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCi1OT1RJQ0U6ICBmX2xl YWsgPT4gZ3JlYXQgc2F0aXJlCi1OT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSB0ZXh0Ym9v awotTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9vawotTk9USUNFOiAgZl9sZWFrID0+ IGdyZWF0IHRlY2hub2xvZ3kgYm9vawotTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgdGVjaG5v bG9neSBib29rCisgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0aG9yICAgICAgfCAgICAg ICAgIGR0aXRsZSAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8ICAxMSB8ICAgICAgMSB8IHJl Z3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDQgfCAgNTUgfCAgICAgIDEgfCBy ZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQorICAgNiB8ICAxMSB8ICAgICAgMSB8 IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA5IHwgIDExIHwg ICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorKDQg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChw dHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xV TU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIg QlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAg U29ydCBLZXk6IHBhcnRfZG9jdW1lbnQuZGlkCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXgg Q29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9s ZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9zYXRp cmUgcGFydF9kb2N1bWVudF8yCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJ bml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMworICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhk dGl0bGUpKQorKDEyIHJvd3MpCisKKy0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2Nhcm9s CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOworU0VMRUNUICog RlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK05P VElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBub3ZlbAorTk9USUNFOiAgZl9sZWFrID0+IG15IHNl Y29uZCBub3ZlbAorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9U SUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgZmlyc3Qgc2F0aXJlCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2F0aXJlCitOT1RJ Q0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSB0ZXh0Ym9vaworTk9USUNFOiAgZl9sZWFrID0+IG15 IGhpc3RvcnkgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9vawor Tk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiAgZGlkIHwgY2lkIHwg ZGxldmVsIHwgICAgICBkYXV0aG9yICAgICAgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICAKIC0t LS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmly c3Qgbm92ZWwKQEAgLTEwNDMsNiArMTUzOSw0OCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAgIEZp bHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkK ICgxMCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDog cGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5j aWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIgQlkgZGlkOworTk9USUNF OiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25k IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBt eSBmaXJzdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTog IGZfbGVhayA9PiBteSBzY2llbmNlIHRleHRib29rCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgaGlz dG9yeSBib29rCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgdGVjaG5vbG9neSBib29rCitOT1RJ Q0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKKyBkaWQgfCBjaWQgfCBkbGV2 ZWwgfCAgICAgIGRhdXRob3IgICAgICB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIAorLS0tLS0r LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAxIHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBu b3ZlbAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2Vjb25k IG5vdmVsCisgICAzIHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBzY2ll bmNlIHRleHRib29rCisgICA0IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBt eSBmaXJzdCBzYXRpcmUKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8 IG15IGhpc3RvcnkgYm9vaworICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9s IHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA3IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19y bHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyAgIDggfCAgNTUgfCAgICAgIDIgfCBy ZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNhdGlyZQorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJl Z3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyAgMTAgfCAgOTkgfCAg ICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCisoMTAg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChw dHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xV TU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIg QlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAg U29ydCBLZXk6IHBhcnRfZG9jdW1lbnQuZGlkCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXgg Q29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9s ZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9zYXRp cmUgcGFydF9kb2N1bWVudF8yCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJ bml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMworICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhk dGl0bGUpKQorKDEyIHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2RhdmUK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZGF2ZTsKIFNFTEVDVCAqIEZS T00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0x MDY4LDYgKzE2MDYsMjkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRf ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICAgIEluZGV4IENvbmQ6IChw Z3VzZXIgPSBDVVJSRU5UX1VTRVIpCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUp KSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7 CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBt eSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24K K05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorIGRpZCB8IGNpZCB8 IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICBkdGl0bGUgICAgICAgICAgCist LS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZp cnN0IG5vdmVsCisgICAyIHwgIDExIHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBz ZWNvbmQgbm92ZWwKKyAgIDYgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdy ZWF0IHNjaWVuY2UgZmljdGlvbgorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Rh dmUgIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyg0IHJvd3MpCisKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRs ZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9maWN0aW9uIHBhcnRf ZG9jdW1lbnQKKyAgIEZpbHRlcjogKChjaWQgPCA1NSkgQU5EIChkbGV2ZWwgPD0gKEluaXRQbGFu IDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNjb3VudAorICAgICAgICAgICBJbmRl eCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorKDUgcm93cykKKwogLS0gcHAxIEVSUk9S CiBJTlNFUlQgSU5UTyBwYXJ0X2RvY3VtZW50IFZBTFVFUyAoMTAwLCAxMSwgNSwgJ3JlZ3Jlc3Nf cmxzX2RhdmUnLCAndGVzdGluZyBwcDEnKTsgLS0gZmFpbAogRVJST1I6ICBuZXcgcm93IHZpb2xh dGVzIHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJwYXJ0X2RvY3VtZW50IgpA QCAtMTEwNiw2ICsxNjY3LDE3IEBAIE5PVElDRTogIGZfbGVhayA9PiB0ZXN0aW5nIFJMUyB3aXRo IHBhcnRpdGlvbnMKICAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRl c3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwogKDMgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVh ayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwg ZC5kdGl0bGUpKTsKK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBzYXRpcmUKK05PVElDRTog IGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9PiB0ZXN0aW5nIFJMUyB3 aXRoIHBhcnRpdGlvbnMKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRob3IgICAgICB8 ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDQgfCAgNTUg fCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQorICAgOCB8ICA1 NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisgMTAwIHwgIDU1 IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlv bnMKKygzIHJvd3MpCisKIC0tIFR1cm4gb24gUkxTIGFuZCBjcmVhdGUgcG9saWN5IG9uIGNoaWxk IHRvIHNob3cgUkxTIGlzIGNoZWNrZWQgYmVmb3JlIGNvbnN0cmFpbnRzCiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQUxURVIgVEFCTEUgcGFydF9kb2N1bWVu dF9zYXRpcmUgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKQEAgLTExMjEsNiArMTY5MywxMSBA QCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhkdGl0bGUp IE9SREVSIEJZIGRpZDsKIC0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQog KDAgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBh cnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlk LCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBk bGV2ZWwgfCBkYXV0aG9yIHwgZHRpdGxlIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tCisoMCByb3dzKQorCiAtLSBUaGUgcGFyZW50IGxvb2tzIHNhbWUgYXMgYmVmb3Jl CiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRUxFQ1QgKiBGUk9NIHBhcnRf ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwpAQCAtMTE0Niw2ICsx NzIzLDI5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAgICBJbmRleCBDb25kOiAocGd1c2VyID0g Q1VSUkVOVF9VU0VSKQogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRw ZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1O UyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworTk9USUNF OiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25k IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyBkaWQgfCBjaWQgfCBkbGV2ZWwg fCAgICAgIGRhdXRob3IgICAgICB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIAorLS0tLS0rLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAxIHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBub3Zl bAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2Vjb25kIG5v dmVsCisgICA2IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzY2ll bmNlIGZpY3Rpb24KKyAgIDkgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3 ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCisoNCByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdI RVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQu ZGF1dGhvciwgZC5kdGl0bGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHBhcnRfZG9jdW1lbnRfZmljdGlvbiBwYXJ0X2RvY3VtZW50 CisgICBGaWx0ZXI6ICgoY2lkIDwgNTUpIEFORCAoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wx KSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXggQ29uZDog KHBndXNlciA9IENVUlJFTlRfVVNFUikKKyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJl Z3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nh cm9sOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9S REVSIEJZIGRpZDsKQEAgLTExOTAsNiArMTc5MCw0OCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAg IEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxl KSkKICgxMCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwg ZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9 PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IHNh dGlyZQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNhdGlyZQorTk9USUNFOiAgZl9sZWFrID0+ IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworTk9USUNFOiAgZl9sZWFrID0+IG15IHNjaWVu Y2UgdGV4dGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBteSBoaXN0b3J5IGJvb2sKK05PVElDRTog IGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBhd2Vz b21lIHRlY2hub2xvZ3kgYm9vaworIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAg ICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8 ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDIg fCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNlY29uZCBub3ZlbAorICAg NiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0 aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNj aWVuY2UgZmljdGlvbgorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwg bXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wg fCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8 IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworICAgMyB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jl c3NfcmxzX2JvYiAgIHwgbXkgc2NpZW5jZSB0ZXh0Ym9vaworICAgNSB8ICA5OSB8ICAgICAgMiB8 IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgaGlzdG9yeSBib29rCisgICA3IHwgIDk5IHwgICAgICAy IHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyAgMTAgfCAgOTkg fCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiso MTEgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBD T0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNjb3VudAorICAgICAgICAgICBJ bmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorICAgLT4gIFNlcSBTY2FuIG9uIHBh cnRfZG9jdW1lbnRfZmljdGlvbiBwYXJ0X2RvY3VtZW50XzEKKyAgICAgICAgIEZpbHRlcjogKChk bGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIC0+ICBT ZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X3NhdGlyZSBwYXJ0X2RvY3VtZW50XzIKKyAgICAgICAg IEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxl KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X25vbmZpY3Rpb24gcGFydF9kb2N1 bWVudF8zCisgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBB TkQgZl9sZWFrKGR0aXRsZSkpCisoMTAgcm93cykKKwogLS0gb25seSBvd25lciBjYW4gY2hhbmdl IHBvbGljaWVzCiBBTFRFUiBQT0xJQ1kgcHAxIE9OIHBhcnRfZG9jdW1lbnQgVVNJTkcgKHRydWUp OyAgICAtLWZhaWwKIEVSUk9SOiAgbXVzdCBiZSBvd25lciBvZiB0YWJsZSBwYXJ0X2RvY3VtZW50 CkBAIC0xMjE0LDYgKzE4NTYsMjEgQEAgTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9v awogICAgNSB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IGhpc3RvcnkgYm9v awogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQu Y2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworTk9USUNFOiAgZl9sZWFrID0+ IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVsCitOT1RJ Q0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Np ZW5jZSB0ZXh0Ym9vaworTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9vaworIGRpZCB8 IGNpZCB8IGRsZXZlbCB8ICAgICBkYXV0aG9yICAgICB8ICAgICAgIGR0aXRsZSAgICAgICAgCist LS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgIDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgfCBteSBmaXJzdCBub3Zl bAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNlY29uZCBub3Zl bAorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IGZpcnN0IHNhdGly ZQorICAgMyB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNjaWVuY2UgdGV4 dGJvb2sKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgfCBteSBoaXN0b3J5 IGJvb2sKKyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJsc19yZWdyZXNfY2Fyb2wgYWdh aW4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1Qg KiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwpA QCAtMTIzOSw2ICsxODk2LDI5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBw YXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAgRmlsdGVyOiAoKGRh dXRob3IgPSBDVVJSRU5UX1VTRVIpIEFORCBmX2xlYWsoZHRpdGxlKSkKICg3IHJvd3MpCiAKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdI RVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQu ZGF1dGhvciwgZC5kdGl0bGUpKTsKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZp Y3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRo b3IgICAgICB8ICAgICAgICBkdGl0bGUgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDYgfCAgMTEgfCAg ICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorICAgOCB8 ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisgICA3IHwg IDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sK KygzIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkg Q09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50 X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAgICAgICBGaWx0ZXI6ICgoZGF1dGhvciA9IENV UlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHBhcnRf ZG9jdW1lbnRfc2F0aXJlIHBhcnRfZG9jdW1lbnRfMgorICAgICAgICAgRmlsdGVyOiAoKGRhdXRo b3IgPSBDVVJSRU5UX1VTRVIpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIC0+ICBTZXEgU2NhbiBv biBwYXJ0X2RvY3VtZW50X25vbmZpY3Rpb24gcGFydF9kb2N1bWVudF8zCisgICAgICAgICBGaWx0 ZXI6ICgoZGF1dGhvciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorKDcgcm93 cykKKwogLS0gZGF0YWJhc2Ugc3VwZXJ1c2VyIGRvZXMgYnlwYXNzIFJMUyBwb2xpY3kgd2hlbiBl bmFibGVkCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBTRVQgcm93X3NlY3VyaXR5IFRP IE9OOwpAQCAtMTI1OCw2ICsxOTM4LDIyIEBAIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBP UkRFUiBCWSBkaWQ7CiAgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0 ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKICgxMSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQs IGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworIGRpZCB8IGNpZCB8IGRs ZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAor LS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwg bXkgZmlyc3Qgbm92ZWwKKyAgIDIgfCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8 IG15IHNlY29uZCBub3ZlbAorICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9s IHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19y bHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorICAgNCB8ICA1NSB8ICAgICAgMSB8 IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAy IHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEg fCByZWdyZXNzX3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworICAgMyB8 ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2NpZW5jZSB0ZXh0Ym9vawor ICAgNSB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgaGlzdG9yeSBib29r CisgICA3IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9s b2d5IGJvb2sKKyAgMTAgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNv bWUgdGVjaG5vbG9neSBib29rCisoMTEgcm93cykKKwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3Vt ZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7CiAgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0 aG9yICAgICAgfCAgICAgICAgICAgZHRpdGxlICAgICAgICAgICAgCiAtLS0tLSstLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA IC0xMjY2LDYgKzE5NjIsMTQgQEAgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBP UkRFUiBieSBkaWQ7CiAgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0 ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKICgzIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSkgQ09MVU1OUyAo ZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworIGRpZCB8IGNp ZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAg ICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNf Y2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19k YXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworKDMgcm93cykKKwogLS0gZGF0YWJh c2Ugbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9s aWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf ZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTEyODUsNiArMTk4OSwy MiBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JERVIgQlkgZGlkOwogIDEwMCB8ICA1 NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBwYXJ0aXRp b25zCiAoMTEgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAo ZCA6IHBhcnRfZG9jdW1lbnQpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1 dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRob3IgICAg ICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDEgfCAg MTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IG5vdmVsCisgICAyIHwg IDExIHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBzZWNvbmQgbm92ZWwKKyAgIDYg fCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNjaWVuY2UgZmljdGlv bgorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29tZSBzY2ll bmNlIGZpY3Rpb24KKyAgIDQgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15 IGZpcnN0IHNhdGlyZQorICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwg Z3JlYXQgc2F0aXJlCisgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0 ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKKyAgIDMgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNz X3Jsc19ib2IgICB8IG15IHNjaWVuY2UgdGV4dGJvb2sKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCBy ZWdyZXNzX3Jsc19ib2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNyB8ICA5OSB8ICAgICAgMiB8 IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgdGVjaG5vbG9neSBib29rCisgIDEwIHwgIDk5IHwg ICAgICAyIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vaworKDEx IHJvd3MpCisKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIgYnkgZGlk OwogIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0 aXRsZSAgICAgICAgICAgIAogLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI5Myw2ICsyMDEzLDE0IEBAIFNF TEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIgYnkgZGlkOwogIDEwMCB8ICA1 NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBwYXJ0aXRp b25zCiAoMyByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRo b3IgICAgICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IDQgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQor ICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisg MTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0ZXN0aW5nIFJMUyB3aXRo IHBhcnRpdGlvbnMKKygzIHJvd3MpCisKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkgdG8g dGFibGUgb3duZXIgd2hlbiBSTFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtMTMxMiwyMSAr MjA0MCw0OSBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JERVIgYnkgZGlkOwogIDEw MCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBw YXJ0aXRpb25zCiAoMTEgcm93cykKIAotU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGly ZSBPUkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0 aG9yLCBkLmR0aXRsZSkpOwogIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAg IHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAogLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8ICAx MSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDIgfCAg MTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNlY29uZCBub3ZlbAorICAgNiB8 ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9u CisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVu Y2UgZmljdGlvbgogICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkg Zmlyc3Qgc2F0aXJlCiAgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBn cmVhdCBzYXRpcmUKICAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRl c3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwotKDMgcm93cykKKyAgIDMgfCAgOTkgfCAgICAgIDIg fCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNjaWVuY2UgdGV4dGJvb2sKKyAgIDUgfCAgOTkgfCAg ICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNyB8ICA5OSB8 ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgdGVjaG5vbG9neSBib29rCisgIDEw IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kg Ym9vaworKDExIHJvd3MpCiAKLS0tIFdoZW4gUkxTIGRpc2FibGVkLCBvdGhlciB1c2VycyBnZXQg RVJST1IuCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7Ci1TRVQg cm93X3NlY3VyaXR5IFRPIE9GRjsKK1NFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUg T1JERVIgYnkgZGlkOworIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwg ICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgNCB8ICA1NSB8 ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1 IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUg fCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9u cworKDMgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnRfc2F0aXJlKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBk LmRhdXRob3IsIGQuZHRpdGxlKSk7CisgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0aG9y ICAgICAgfCAgICAgICAgICAgZHRpdGxlICAgICAgICAgICAgCistLS0tLSstLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICA0 IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBzYXRpcmUKKyAg IDggfCAgNTUgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNhdGlyZQorIDEw MCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBw YXJ0aXRpb25zCisoMyByb3dzKQorCistLSBXaGVuIFJMUyBkaXNhYmxlZCwgb3RoZXIgdXNlcnMg Z2V0IEVSUk9SLgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwor U0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JE RVIgYnkgZGlkOwogRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwg c2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAicGFydF9kb2N1bWVudCIKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50KSBDT0xVTU5TIChkLmRp ZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitFUlJPUjogIHF1ZXJ5 IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxl ICJwYXJ0X2RvY3VtZW50IgogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRF UiBieSBkaWQ7CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBz ZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJwYXJ0X2RvY3VtZW50X3NhdGlyZSIKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSkg Q09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwor RVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJpdHkgcG9s aWN5IGZvciB0YWJsZSAicGFydF9kb2N1bWVudF9zYXRpcmUiCiAtLSBDaGVjayBiZWhhdmlvciB3 aXRoIGEgcG9saWN5IHRoYXQgdXNlcyBhIFN1YlBsYW4gbm90IGFuIEluaXRQbGFuLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFVCByb3dfc2VjdXJpdHkg VE8gT047CkBAIC0xMzYyLDEwICsyMTE4LDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBkZXBlbmRlbnQ7IC0tIEFmdGVyIGRyb3AsIHNob3VsZCBiZSB1bnF1YWxpZmllCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRBQkxF IHJlYzEgKHggaW50ZWdlciwgeSBpbnRlZ2VyKTsKIENSRUFURSBQT0xJQ1kgcjEgT04gcmVjMSBV U0lORyAoeCA9IChTRUxFQ1Qgci54IEZST00gcmVjMSByIFdIRVJFIHkgPSByLnkpKTsKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBydHBnIFZFUlRFWCBUQUJMRVMgKHJlYzEgS0VZICh4KSk7CiBBTFRF UiBUQUJMRSByZWMxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsgLS0gZmFpbCwg ZGlyZWN0IHJlY3Vyc2lvbgogRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4g cG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0 cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIGRpcmVjdCBy ZWN1cnNpb24KK0VSUk9SOiAgaW5maW5pdGUgcmVjdXJzaW9uIGRldGVjdGVkIGluIHBvbGljeSBm b3IgcmVsYXRpb24gInJlYzEiCiAtLQogLS0gTXV0dWFsIHJlY3Vyc2lvbgogLS0KQEAgLTEzNzcs NiArMjEzNiw4IEBAIEFMVEVSIFRBQkxFIHJlYzIgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJP TSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uCiBFUlJPUjogIGluZmluaXRlIHJl Y3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkp KTsgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbgorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKIC0tCiAtLSBNdXR1YWwgcmVj dXJzaW9uIHZpYSB2aWV3cwogLS0KQEAgLTEzODksNiArMjE1MCw4IEBAIEFMVEVSIFBPTElDWSBy MiBPTiByZWMyIFVTSU5HIChhID0gKFNFTEVDVCB4IEZST00gcmVjMXYgV0hFUkUgeSA9IGIpKTsK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJP TSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSB2aWV3cwogRVJST1I6ICBp bmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMg KHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCitFUlJPUjog IGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMx IgogLS0KIC0tIE11dHVhbCByZWN1cnNpb24gdmlhIC5zLmIgdmlld3MKIC0tCkBAIC0xNDA1LDYg KzIxNjgsMjcgQEAgQ1JFQVRFIFBPTElDWSByMiBPTiByZWMyIFVTSU5HIChhID0gKFNFTEVDVCB4 IEZST00gcmVjMXYgV0hFUkUgeSA9IGIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVj dXJzaW9uIHZpYSBzLmIuIHZpZXdzCiBFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3Rl ZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgbXV0 dWFsIHJlY3Vyc2lvbiB2aWEgcy5iLiB2aWV3cworRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKKy0tCistLSBEaXJlY3QgYW5k IG11dHVhbCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCistLQorU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVSIFBPTElDWSByMSBPTiByZWMxIFVTSU5H ICh4ID0gKFNFTEVDVCB4IEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENP TFVNTlMgKHIueCwgci55KSkgV0hFUkUgeCA9IHkpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOworU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBkaXJl Y3QgcmVjdXJzaW9uIHZpYSBHUkFQSF9UQUJMRQorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZh aWwsIGRpcmVjdCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCitFUlJPUjogIGluZmluaXRlIHJl Y3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVSIFBST1BFUlRZIEdSQVBI IHJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJlYzIgS0VZIChhKSk7CitBTFRFUiBQT0xJQ1kgcjEg T04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1QgYSBGUk9NIEdSQVBIX1RBQkxFIChydHBnIE1BVENI IChyOiByZWMyKSBDT0xVTU5TIChyLmEsIHIuYikpIFdIRVJFIGIgPSB5KSk7CitBTFRFUiBQT0xJ Q1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIEdSQVBIX1RBQkxFIChydHBn IE1BVENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpV0hFUkUgeSA9IGIpKTsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VMRUNUICogRlJPTSByZWMx OyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSBHUkFQSF9UQUJMRQorRVJST1I6ICBp bmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMg KHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCitF UlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9u ICJyZWMxIgogLS0KIC0tIHJlY3Vyc2l2ZSBSTFMgYW5kIFZJRVdzIGluIHBvbGljeQogLS0KQEAg LTE0MTMsNyArMjE5Nyw5IEBAIENSRUFURSBUQUJMRSBzMSAoYSBpbnQsIGIgdGV4dCk7CiBJTlNF UlQgSU5UTyBzMSAoU0VMRUNUIHgsIHB1YmxpYy5maXBzaGFzaCh4Ojp0ZXh0KSBGUk9NIGdlbmVy YXRlX3NlcmllcygtMTAsMTApIHgpOwogQ1JFQVRFIFRBQkxFIHMyICh4IGludCwgeSB0ZXh0KTsK IElOU0VSVCBJTlRPIHMyIChTRUxFQ1QgeCwgcHVibGljLmZpcHNoYXNoKHg6OnRleHQpIEZST00g Z2VuZXJhdGVfc2VyaWVzKC02LDYpIHgpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHJ2dHBnIFZF UlRFWCBUQUJMRVMgKHMxIEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHMxLCBzMiBUTyByZWdy ZXNzX3Jsc19ib2I7CitHUkFOVCBTRUxFQ1QgT04gcnZ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwog Q1JFQVRFIFBPTElDWSBwMSBPTiBzMSBVU0lORyAoYSBpbiAoc2VsZWN0IHggZnJvbSBzMiB3aGVy ZSB5IGxpa2UgJyUyZiUnKSk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHMyIFVTSU5HICh4IGluIChz ZWxlY3QgYSBmcm9tIHMxIHdoZXJlIGIgbGlrZSAnJTIyJScpKTsKIENSRUFURSBQT0xJQ1kgcDMg T04gczEgRk9SIElOU0VSVCBXSVRIIENIRUNLIChhID0gKFNFTEVDVCBhIEZST00gczEpKTsKQEAg LTE0MjMsNiArMjIwOSw4IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Ym9iOwogQ1JFQVRFIFZJRVcgdjIgQVMgU0VMRUNUICogRlJPTSBzMiBXSEVSRSB5IGxpa2UgJyVh ZiUnOwogU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWsoYik7IC0tIGZhaWwgKGluZmluaXRl IHJlY3Vyc2lvbikKIEVSUk9SOiAgaW5maW5pdGUgcmVjdXJzaW9uIGRldGVjdGVkIGluIHBvbGlj eSBmb3IgcmVsYXRpb24gInMxIgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnZ0cGcgTUFU Q0ggKHMgOiBzMSkgV0hFUkUgZl9sZWFrKHMuYikgQ09MVU1OUyAocy5hLCBzLmIpKTsgLS0gZmFp bCAoaW5maW5pdGUgcmVjdXJzaW9uKQorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0 ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAiczEiCiBJTlNFUlQgSU5UTyBzMSBWQUxVRVMgKDEs ICdmb28nKTsgLS0gZmFpbCAoaW5maW5pdGUgcmVjdXJzaW9uKQogRVJST1I6ICBpbmZpbml0ZSBy ZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAiczEiCiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwpAQCAtMTQ0Niw2ICsyMjM0LDIzIEBA IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBvbmx5IHMxIFdIRVJFIGZfbGVhayhi KTsKICAgICAgICAgICAgRmlsdGVyOiAoKCh4ICUgMikgPSAwKSBBTkQgKHkgfn4gJyUyZiUnOjp0 ZXh0KSkKICg1IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2dHBnIE1BVENI IChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7CitOT1RJQ0U6 ICBmX2xlYWsgPT4gMDNiMjY5NDQ4OTA5MjlmZjc1MTY1M2FjYjJmMmFmNzkKKyBhICB8ICAgICAg ICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgLTYgfCAwM2IyNjk0NDg5MDkyOWZmNzUxNjUzYWNiMmYyYWY3OQorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2 dHBnIE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHMxCisgICBGaWx0ZXI6ICgoQU5ZIChhID0g KGhhc2hlZCBTdWJQbGFuIDEpLmNvbDEpKSBBTkQgZl9sZWFrKGIpKQorICAgU3ViUGxhbiAxCisg ICAgIC0+ICBTZXEgU2NhbiBvbiBzMgorICAgICAgICAgICBGaWx0ZXI6ICgoKHggJSAyKSA9IDAp IEFORCAoeSB+fiAnJTJmJSc6OnRleHQpKQorKDUgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIEFMVEVSIFBPTElDWSBwMSBPTiBzMSBVU0lORyAo YSBpbiAoc2VsZWN0IHggZnJvbSB2MikpOyAtLSB1c2luZyBWSUVXIGluIFJMUyBwb2xpY3kKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwpAQCAtMTQ2Niw2ICsyMjcx LDIzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWso Yik7CiAgICAgICAgICAgIEZpbHRlcjogKCgoeCAlIDIpID0gMCkgQU5EICh5IH5+ICclYWYlJzo6 dGV4dCkpCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRD SCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOworTk9USUNF OiAgZl9sZWFrID0+IDAzYjI2OTQ0ODkwOTI5ZmY3NTE2NTNhY2IyZjJhZjc5CisgYSAgfCAgICAg ICAgICAgICAgICBiICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIC02IHwgMDNiMjY5NDQ4OTA5MjlmZjc1MTY1M2FjYjJmMmFmNzkKKygx IHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChy dnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikp OworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBzMQorICAgRmlsdGVyOiAoKEFOWSAoYSA9 IChoYXNoZWQgU3ViUGxhbiAxKS5jb2wxKSkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4gMQor ICAgICAtPiAgU2VxIFNjYW4gb24gczIKKyAgICAgICAgICAgRmlsdGVyOiAoKCh4ICUgMikgPSAw KSBBTkQgKHkgfn4gJyVhZiUnOjp0ZXh0KSkKKyg1IHJvd3MpCisKIFNFTEVDVCAoU0VMRUNUIHgg RlJPTSBzMSBMSU1JVCAxKSB4eCwgKiBGUk9NIHMyIFdIRVJFIHkgbGlrZSAnJTI4JSc7CiAgeHgg fCB4ICB8ICAgICAgICAgICAgICAgIHkgICAgICAgICAgICAgICAgIAogLS0tLSstLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE0OTEsNiArMjMxMyw4IEBAIEFMVEVS IFBPTElDWSBwMiBPTiBzMiBVU0lORyAoeCBpbiAoc2VsZWN0IGEgZnJvbSBzMSB3aGVyZSBiIGxp a2UgJyVkMiUnKSk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsK IFNFTEVDVCAqIEZST00gczEgV0hFUkUgZl9sZWFrKGIpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1 cnNpb24gdmlhIHZpZXcpCiBFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBw b2xpY3kgZm9yIHJlbGF0aW9uICJzMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2dHBn IE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7CS0t IGZhaWwgKGluZmluaXRlIHJlY3Vyc2lvbiB2aWEgdmlldykKK0VSUk9SOiAgaW5maW5pdGUgcmVj dXJzaW9uIGRldGVjdGVkIGluIHBvbGljeSBmb3IgcmVsYXRpb24gInMxIgogLS0gcHJlcGFyZWQg c3RhdGVtZW50IHdpdGggcmVncmVzc19ybHNfYWxpY2UgcHJpdmlsZWdlCiBQUkVQQVJFIHAxKGlu dCkgQVMgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBhIDw9ICQxOwogRVhFQ1VURSBwMSgyKTsKQEAg LTE1MTMsNiArMjMzNywyNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDEoMik7CiAg ICAgICAgICBGaWx0ZXI6ICgoYSA8PSAyKSBBTkQgKChhICUgMikgPSAwKSkKICg3IHJvd3MpCiAK K1BSRVBBUkUgcHBnMShpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQgOiB0MSkgV0hFUkUgdC5hIDw9ICQxIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitF WEVDVVRFIHBwZzEoMik7CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMiB8 IDIgfCBiYmIKKyAyMDIgfCAyIHwgYmNkCisgMzAyIHwgMiB8IHl5eQorKDMgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzEoMik7CisgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMQorICAg ICAgICAgRmlsdGVyOiAoKGEgPD0gMikgQU5EICgoYSAlIDIpID0gMCkpCisgICAtPiAgU2VxIFNj YW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPD0gMikgQU5EICgoYSAlIDIpID0g MCkpCisgICAtPiAgU2VxIFNjYW4gb24gdDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoKGEgPD0g MikgQU5EICgoYSAlIDIpID0gMCkpCisoNyByb3dzKQorCiAtLSBzdXBlcnVzZXIgaXMgYWxsb3dl ZCB0byBieXBhc3MgUkxTIGNoZWNrcwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogU0VU IHJvd19zZWN1cml0eSBUTyBPRkY7CkBAIC0xNTc5LDYgKzI0MjQsMjkgQEAgRVhQTEFJTiAoQ09T VFMgT0ZGKSBFWEVDVVRFIHAxKDIpOwogICAgICAgICAgRmlsdGVyOiAoYSA8PSAyKQogKDcgcm93 cykKIAorRVhFQ1VURSBwcGcxKDIpOworIGlkICB8IGEgfCAgYiAgCistLS0tLSstLS0rLS0tLS0K KyAxMDEgfCAxIHwgYWJhCisgMTAyIHwgMiB8IGJiYgorIDIwMSB8IDEgfCBhYmMKKyAyMDIgfCAy IHwgYmNkCisgMzAxIHwgMSB8IHh4eAorIDMwMiB8IDIgfCB5eXkKKyg2IHJvd3MpCisKK0VYUExB SU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcxKDIpOworICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2Nh biBvbiB0MSB0MV8xCisgICAgICAgICBGaWx0ZXI6IChhIDw9IDIpCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoYSA8PSAyKQorICAgLT4gIFNlcSBTY2FuIG9u IHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjogKGEgPD0gMikKKyg3IHJvd3MpCisKIFBSRVBBUkUg cDIoaW50KSBBUyBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGEgPSAkMTsKIEVYRUNVVEUgcDIoMik7 CiAgaWQgIHwgYSB8ICBiICAKQEAgLTE2MDAsNiArMjQ2OCwyNyBAQCBFWFBMQUlOIChDT1NUUyBP RkYpIEVYRUNVVEUgcDIoMik7CiAgICAgICAgICBGaWx0ZXI6IChhID0gMikKICg3IHJvd3MpCiAK K1BSRVBBUkUgcHBnMihpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQgOiB0MSkgV0hFUkUgdC5hID0gJDEgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VY RUNVVEUgcHBnMigyKTsKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0tLS0tCisgMTAyIHwg MiB8IGJiYgorIDIwMiB8IDIgfCBiY2QKKyAzMDIgfCAyIHwgeXl5CisoMyByb3dzKQorCitFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcHBnMigyKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNj YW4gb24gdDEgdDFfMQorICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisgICAtPiAgU2VxIFNjYW4gb24g dDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisoNyByb3dzKQorCiAtLSBhbHNvLCBj YXNlIHdoZW4gcHJpdmlsZWdlIHN3aXRjaCBmcm9tIHN1cGVydXNlcgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAt MTYyMyw2ICsyNTEyLDI2IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigyKTsKICAg ICAgICAgIEZpbHRlcjogKChhID0gMikgQU5EICgoYSAlIDIpID0gMCkpCiAoNyByb3dzKQogCitF WEVDVVRFIHBwZzIoMik7CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMiB8 IDIgfCBiYmIKKyAyMDIgfCAyIHwgYmNkCisgMzAyIHwgMiB8IHl5eQorKDMgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzIoMik7CisgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzEKKyAgICAg ICAgIEZpbHRlcjogKChhID0gMikgQU5EICgoYSAlIDIpID0gMCkpCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPSAyKSBBTkQgKChhICUgMikgPSAwKSkK KyAgIC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8zCisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDIpIEFO RCAoKGEgJSAyKSA9IDApKQorKDcgcm93cykKKwogLS0KIC0tIFVQREFURSAvIERFTEVURSBhbmQg Um93LWxldmVsIHNlY3VyaXR5CiAtLQpAQCAtMTkwMyw2ICsyODEyLDggQEAgR1JBTlQgQUxMIE9O IGIxIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgYnYxIFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTIFNF TEVDVCAqIEZST00gYjEgV0hFUkUgYSA+IDAgV0lUSCBDSEVDSyBPUFRJT047CiBHUkFOVCBBTEwg T04gYnYxIFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHNidnBn IFZFUlRFWCBUQUJMRVMgKGJ2MSBLRVkgKGEpKTsKK0dSQU5UIEFMTCBPTiBzYnZwZyBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gYnYxIFdIRVJFIGZfbGVhayhi KTsKICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIApAQCAtMTky OCw2ICsyODM5LDMwIEBAIE5PVElDRTogIGZfbGVhayA9PiA0YTQ0ZGMxNTM2NDIwNGE4MGZlODBl OTAzOTQ1NWNjMQogIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKICg1IHJv d3MpCiAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc2J2 cGcgTUFUQ0ggKGIgOiBidjEpIFdIRVJFIGZfbGVhayhiLmIpIENPTFVNTlMgKGIuYSwgYi5iKSk7 CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24g YnYxCisgICBGaWx0ZXI6IGZfbGVhayhidjEuYikKKyAgIC0+ICBTZXEgU2NhbiBvbiBiMQorICAg ICAgICAgRmlsdGVyOiAoKGEgPiAwKSBBTkQgKChhICUgMikgPSAwKSkKKyg0IHJvd3MpCisKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHNidnBnIE1BVENIIChiIDogYnYxKSBXSEVSRSBmX2xl YWsoYi5iKSBDT0xVTU5TIChiLmEsIGIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGQ0NzM1ZTNh MjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGIyMjc3NzdkNGRk MWZjNjFjNmY4ODRmNDg2NDFkMDIKK05PVElDRTogIGZfbGVhayA9PiBlN2Y2YzAxMTc3NmU4ZGI3 Y2QzMzBiNTQxNzRmZDc2ZgorTk9USUNFOiAgZl9sZWFrID0+IDJjNjI0MjMyY2RkMjIxNzcxMjk0 ZGZiYjMxMGFjYTAwCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkw Mzk0NTVjYzEKKyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDIgfCBkNDczNWUzYTI2NWUxNmVl ZTAzZjU5NzE4YjliNWQwMworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIK KyAgNiB8IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNk ZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0 NTVjYzEKKyg1IHJvd3MpCisKIElOU0VSVCBJTlRPIGJ2MSBWQUxVRVMgKC0xLCAneHh4Jyk7IC0t IHNob3VsZCBmYWlsIHZpZXcgV0NPCiBFUlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVs IHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgImIxIgogSU5TRVJUIElOVE8gYnYxIFZBTFVFUyAo MTEsICd4eHgnKTsgLS0gc2hvdWxkIGZhaWwgUkxTIGNoZWNrCkBAIC0yMzYzLDcgKzMyOTgsOCBA QCBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MSAoYSBpbnQsIGIgdGV4dCk7CiBDUkVBVEUg VEFCTEUgejIgKGEgaW50LCBiIHRleHQpOwotR1JBTlQgU0VMRUNUIE9OIHoxLHoyIFRPIHJlZ3Jl c3NfcmxzX2dyb3VwMSwgcmVncmVzc19ybHNfZ3JvdXAyLAorQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGd0cGcgVkVSVEVYIFRBQkxFUyAoejEgS0VZIChhKSwgejIgS0VZIChhKSk7CitHUkFOVCBTRUxF Q1QgT04gejEsejIsIGd0cGcgVE8gcmVncmVzc19ybHNfZ3JvdXAxLCByZWdyZXNzX3Jsc19ncm91 cDIsCiAgICAgcmVncmVzc19ybHNfYm9iLCByZWdyZXNzX3Jsc19jYXJvbDsKIElOU0VSVCBJTlRP IHoxIFZBTFVFUwogICAgICgxLCAnYWJhJyksCkBAIC0yMzkwLDYgKzMzMjYsMjIgQEAgRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKICAgIEZpbHRl cjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09M VU1OUyAoei5hLCB6LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVh ayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgorIDQgfCBkYWQKKygyIHJv d3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3Rw ZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOwor ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjog KCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIFBSRVBBUkUgcGxhbmNh Y2hlX3Rlc3QgQVMgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChD T1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3Q7CiAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgIApAQCAtMjM5OCw2ICszMzUwLDE0IEBAIEVYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkg QU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rlc3QgQVMg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xl YWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRF IHBsYW5jYWNoZV9wZ190ZXN0OworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJv d3MpCisKIFBSRVBBUkUgcGxhbmNhY2hlX3Rlc3QyIEFTIFdJVEggcSBBUyBNQVRFUklBTElaRUQg KFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIHEsejI7CiBF WFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QyOwogICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIApAQCAtMjQxMSw2ICszMzcxLDE5 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CiAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gejIKICg3IHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rl c3QyIEFTIFdJVEggcSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyh6LmEsIHouYikp KSBTRUxFQ1QgKiBGUk9NIHEsIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejIpIENPTFVN TlMgKHouYSwgei5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Bn X3Rlc3QyOworICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5l c3RlZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejEKKyAgICAgICAgICAg RmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorICAgLT4gIENURSBTY2FuIG9u IHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoyCisoNyBy b3dzKQorCiBQUkVQQVJFIHBsYW5jYWNoZV90ZXN0MyBBUyBXSVRIIHEgQVMgTUFURVJJQUxJWkVE IChTRUxFQ1QgKiBGUk9NIHoyKSBTRUxFQ1QgKiBGUk9NIHEsejEgV0hFUkUgZl9sZWFrKHoxLmIp OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsKICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCkBAIC0yNDI0LDYg KzMzOTcsMTkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsK ICAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICg3 IHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rlc3QzIEFTIFdJVEggcSBBUyBNQVRFUklB TElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MikgQ09M VU1OUyh6LmEsIHouYikpKSBTRUxFQ1QgKiBGUk9NIHEsIEdSQVBIX1RBQkxFIChndHBnIE1BVENI ICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CitFWFBMQUlO IChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3QzOworICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIENU RSBxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgICAg ICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisoNyByb3dzKQorCiBTRVQg Uk9MRSByZWdyZXNzX3Jsc19ncm91cDE7CiBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhi KTsKIE5PVElDRTogIGZfbGVhayA9PiBiYmIKQEAgLTI0NDEsNiArMzQyNywyMiBAQCBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwogICAgRmlsdGVy OiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xV TU5TICh6LmEsIHouYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAgZl9sZWFr ID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisgNCB8IGRhZAorKDIgcm93 cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBn IE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7Cisg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAo KChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorKDIgcm93cykKKwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0OwogICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CkBAIC0yNDcyLDQzICszNDc0LDI2IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfdGVzdDM7CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBm X2xlYWsoYikpCiAoNyByb3dzKQogCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwotU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7Ci1OT1RJQ0U6ICBm X2xlYWsgPT4gYWJhCi1OT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCi0gYSB8ICBiICAKLS0tLSstLS0t LQotIDEgfCBhYmEKLSAzIHwgY2NjCi0oMiByb3dzKQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwotICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0gU2VxIFNjYW4gb24gejEKLSAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVh ayhiKSkKLSgyIHJvd3MpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf dGVzdDsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfcGdfdGVzdDsKICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIHoxCi0gICBGaWx0ZXI6ICgo KGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFO RCBmX2xlYWsoYikpCiAoMiByb3dzKQogCi1FWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxh bmNhY2hlX3Rlc3QyOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190 ZXN0MjsKICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0 ZWQgTG9vcAogICAgQ1RFIHEKICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCi0gICAgICAgICAgIEZp bHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgICAgICAgICAgRmlsdGVyOiAo KChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAgLT4gIENURSBTY2FuIG9uIHEKICAgIC0+ ICBNYXRlcmlhbGl6ZQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoyCiAoNyByb3dzKQogCi1F WFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCkBAIC0yNTE3LDEw ICszNTAyLDEwIEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7 CiAgICAtPiAgQ1RFIFNjYW4gb24gcQogICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gejEKLSAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5E IGZfbGVhayhiKSkKKyAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZf bGVhayhiKSkKICg3IHJvd3MpCiAKLVNFVCBST0xFIHJlZ3Jlc3NfcmxzX2dyb3VwMjsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHox IFdIRVJFIGZfbGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBhYmEKIE5PVElDRTogIGZfbGVh ayA9PiBjY2MKQEAgLTI1MzcsNyArMzUyMiwxMTggQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkg QU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKLUVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw bGFuY2FjaGVfdGVzdDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHog OiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAoei5hLCB6LmIpKTsKK05PVElDRTogIGZf bGVhayA9PiBhYmEKK05PVElDRTogIGZfbGVhayA9PiBjY2MKKyBhIHwgIGIgIAorLS0tKy0tLS0t CisgMSB8IGFiYQorIDMgfCBjY2MKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWso ei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkK KygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsK KyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6 ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QyOworICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2Vx IFNjYW4gb24gejEKKyAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFr KGIpKQorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHoyCisoNyByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3Rlc3QzOworICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIENURSBxCisgICAgIC0+ICBTZXEgU2Nh biBvbiB6MgorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9 IDEpIEFORCBmX2xlYWsoYikpCisoNyByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDIg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsK KyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9v cAorICAgQ1RFIHEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgIEZpbHRlcjog KCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIC0+ICBDVEUgU2NhbiBvbiBxCisgICAt PiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorKDcgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKKyAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29w CisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejIKKyAgIC0+ICBDVEUgU2NhbiBvbiBx CisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MQorICAgICAg ICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDcgcm93cykK KworU0VUIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAyOworU0VMRUNUICogRlJPTSB6MSBXSEVSRSBm X2xlYWsoYik7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2Nj CisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBhYmEKKyAzIHwgY2NjCisoMiByb3dzKQorCitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOworICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgo YSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAo ei5hLCB6LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBhYmEKK05PVElDRTogIGZfbGVhayA9PiBj Y2MKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDMgfCBjY2MKKygyIHJvd3MpCisK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAl IDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikg RVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNl cSBTY2FuIG9uIHoxCkBAIC0yNTY4LDEzICszNjY0LDQ2IEBAIEVYUExBSU4gKENPU1RTIE9GRikg RVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAy KSA9IDEpIEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCitFWFBMQUlOIChDT1NUUyBPRkYpIEVY RUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQor KDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0 MjsKKyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQg TG9vcAorICAgQ1RFIHEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgIEZpbHRl cjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIC0+ICBDVEUgU2NhbiBvbiBxCisg ICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorKDcgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKKyAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBM b29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejIKKyAgIC0+ICBDVEUgU2NhbiBv biBxCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MQorICAg ICAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDcgcm93 cykKKwogLS0KIC0tIFZpZXdzIHNob3VsZCBmb2xsb3cgcG9saWN5IGZvciB2aWV3IG93bmVyLgog LS0KIC0tIFZpZXcgYW5kIFRhYmxlIG93bmVyIGFyZSB0aGUgc2FtZS4KIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVklFVyBybHNfdmlldyBBUyBT RUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2 dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJs c192aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jl c3NfcmxzX2JvYjsKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdmlldyBv ciB0YWJsZS4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CkBAIC0yNTk3 LDYgKzM3MjYsMjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OwogICAgRmlsdGVyOiBmX2xlYWsoYikKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9U SUNFOiAgZl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAgZl9s ZWFrID0+IGNjYworTk9USUNFOiAgZl9sZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0K KyAxIHwgYWJhCisgMiB8IGJiYgorIDMgfCBjY2MKKyA0IHwgZGFkCisoNCByb3dzKQorCitFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6 IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICBRVUVSWSBQTEFOICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiBmX2xlYWso YikKKygyIHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHZpZXcvdGFibGUgb3duZXIuICBTaG91bGQgcmV0 dXJuIGFsbCByZWNvcmRzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19h bGljZTsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CkBAIC0yNjE5LDExICszNzY4LDM0IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogZl9s ZWFrKGIpCiAoMiByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENI IChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBh YmEKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVhayA9PiBjY2MKK05PVElD RTogIGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDIgfCBi YmIKKyAzIHwgY2NjCisgNCB8IGRhZAorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1O UyAoci5hLCByLmIpKTsKKyAgICAgUVVFUlkgUExBTiAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogZl9sZWFrKGIpCisoMiByb3dzKQorCitE Uk9QIFBST1BFUlRZIEdSQVBIIHZ0cGc7CiBEUk9QIFZJRVcgcmxzX3ZpZXc7CiAtLSBWaWV3IGFu ZCBUYWJsZSBvd25lcnMgYXJlIGRpZmZlcmVudC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgQVMgU0VMRUNUICogRlJPTSB6 MSBXSEVSRSBmX2xlYWsoYik7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3ZpZXcgVE8gcmVncmVzc19y bHNfYWxpY2U7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdnRwZyBWRVJURVggVEFCTEVTIChybHNf dmlldyBLRVkgKGEpKTsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2FsaWNl OwogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IGJ1dCBpcyBvd25l ciBvZiB0YWJsZS4KIC0tIFNob3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVy IHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK QEAgLTI2NDMsNiArMzgxNSwyMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g cmxzX3ZpZXc7CiAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAoMiBy b3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmll dykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTog IGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgorIDQgfCBkYWQK KygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CisgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUg MikgPSAwKSBBTkQgZl9sZWFrKGIpKQorKDIgcm93cykKKwogLS0gUXVlcnkgYXMgcm9sZSB0aGF0 IGlzIG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIgb2Ygdmlldy4KIC0tIFNob3VsZCBy ZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVyIHBvbGljaWVzLgogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CkBAIC0yNjYyLDYgKzM4NTAsMjIgQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVyOiAoKChh ICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitO T1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAK Ky0tLSstLS0tLQorIDIgfCBiYmIKKyA0IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3 KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygy IHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0 YWJsZSBvciB2aWV3IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0g cGVybWlzc2lvbiBkZW5pZWQuCkBAIC0yNjcxLDYgKzM4NzUsNyBAQCBFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciB2aWV3IHJsc192aWV3CiAtLSBRdWVyeSBhcyByb2xlIHRoYXQgaXMgbm90 IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBHUkFOVCBTRUxFQ1QgT04gcmxz X3ZpZXcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFOVCBTRUxFQ1QgT04gdnRwZyBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogTk9USUNFOiAgZl9sZWFrID0+IGJiYgpAQCAt MjY4OCw2ICszODkzLDIyIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNf dmlldzsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3Mp CiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAgZl9s ZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisgNCB8IGRhZAorKDIg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2 dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKKyAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoKGEgJSAyKSA9 IDApIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCiAtLSBQb2xpY3kgcmVxdWlyaW5nIGFjY2Vz cyB0byBhbm90aGVyIHRhYmxlLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19hbGljZTsKIENSRUFURSBUQUJMRSB6MV9ibGFja2xpc3QgKGEgaW50KTsKQEAgLTI2OTksMTIg KzM5MjAsMjAgQEAgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBk ZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QK IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9i bGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIC0tIFF1ZXJ5 IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBvciB2aWV3IHdpdGhv dXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nh cm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQu CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIEVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lv biBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xp c3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIC0tIFF1ZXJ5IGFzIHJv bGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdGFibGUgYnV0IGlzIG93bmVyIG9mIHZpZXcgd2l0aCBw ZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7 CiBHUkFOVCBTRUxFQ1QgT04gejFfYmxhY2tsaXN0IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKQEAgLTI3 MjUsNiArMzk1NCwyMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3Zp ZXc7CiAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKICg0IHJvd3MpCiAKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChy LmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorIGEgfCAgYiAgCistLS0rLS0tLS0K KyAyIHwgYmJiCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoTk9UIChBTlkgKGEgPSAoaGFz aGVkIFN1YlBsYW4gMSkuY29sMSkpKSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQor ICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKKyg0IHJvd3Mp CisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBv ciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKQEAgLTI3NDMsMTAgKzM5ODgs MjcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgICAt PiAgU2VxIFNjYW4gb24gejFfYmxhY2tsaXN0CiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsK K05PVElDRTogIGZfbGVhayA9PiBiYmIKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgor KDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKE5PVCAoQU5ZIChhID0gKGhhc2hlZCBTdWJQbGFu IDEpLmNvbDEpKSkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4g MQorICAgICAtPiAgU2VxIFNjYW4gb24gejFfYmxhY2tsaXN0CisoNCByb3dzKQorCiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogUkVWT0tFIFNFTEVDVCBPTiB6 MV9ibGFja2xpc3QgRlJPTSByZWdyZXNzX3Jsc19ib2I7CiBEUk9QIFBPTElDWSBwMyBPTiB6MTsK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworRFJPUCBQUk9QRVJU WSBHUkFQSCB2dHBnOwogRFJPUCBWSUVXIHJsc192aWV3OwogLS0KIC0tIFNlY3VyaXR5IGludm9r ZXIgdmlld3Mgc2hvdWxkIGZvbGxvdyBwb2xpY3kgZm9yIGN1cnJlbnQgdXNlci4KQEAgLTI3NTUs OCArNDAxNywxMSBAQCBEUk9QIFZJRVcgcmxzX3ZpZXc7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJp dHlfaW52b2tlcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkp OwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIEdSQU5UIFNF TEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0dSQU5UIFNFTEVDVCBPTiB2 dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogLS0gUXVlcnkgYXMgdGFibGUgb3duZXIuICBTaG91bGQgcmV0dXJuIGFsbCBy ZWNvcmRzLgogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIE5PVElDRTogIGZfbGVhayA9PiBhYmEK QEAgLTI3NzgsNiArNDA0MywyNiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g cmxzX3ZpZXc7CiAgICBGaWx0ZXI6IGZfbGVhayhiKQogKDIgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5i KSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJ Q0U6ICBmX2xlYWsgPT4gY2NjCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0t LSstLS0tLQorIDEgfCBhYmEKKyAyIHwgYmJiCisgMyB8IGNjYworIDQgfCBkYWQKKyg0IHJvd3Mp CisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CisgICAgIFFVRVJZIFBMQU4g ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6 IGZfbGVhayhiKQorKDIgcm93cykKKwogLS0gUXVlcmllcyBhcyBvdGhlciB1c2Vycy4KIC0tIFNo b3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiBjdXJyZW50IHVzZXIncyBwb2xpY2llcy4KIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwpAQCAtMjc5Nyw5ICs0MDgy LDI1IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZp bHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKLVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7Ci1TRUxFQ1QgKiBGUk9NIHJsc192 aWV3OwotTk9USUNFOiAgZl9sZWFrID0+IGFiYQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo dnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJQ0U6ICBm X2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0tLSstLS0t LQorIDIgfCBiYmIKKyA0IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g ejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CitTRUxFQ1QgKiBG Uk9NIHJsc192aWV3OworTk9USUNFOiAgZl9sZWFrID0+IGFiYQogTk9USUNFOiAgZl9sZWFrID0+ IGNjYwogIGEgfCAgYiAgCiAtLS0rLS0tLS0KQEAgLTI4MTQsMTQgKzQxMTUsMzQgQEAgRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVyOiAoKChhICUg MikgPSAxKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJ Q0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCisgYSB8ICBiICAKKy0t LSstLS0tLQorIDEgfCBhYmEKKyAzIHwgY2NjCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJv d3MpCisKIC0tIFZpZXcgYW5kIHRhYmxlIG93bmVycyBhcmUgZGlmZmVyZW50LgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVSVFkgR1JBUEgg dnRwZzsKIERST1AgVklFVyBybHNfdmlldzsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJpdHlfaW52b2tl cikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQg U0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOwogR1JBTlQgU0VMRUNUIE9O IHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOworR1JBTlQgU0VMRUNUIE9OIHZ0cGcgVE8g cmVncmVzc19ybHNfYWxpY2U7CitHUkFOVCBTRUxFQ1QgT04gdnRwZyBUTyByZWdyZXNzX3Jsc19j YXJvbDsKIC0tIFF1ZXJ5IGFzIHRhYmxlIG93bmVyLiAgU2hvdWxkIHJldHVybiBhbGwgcmVjb3Jk cy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OwpAQCAtMjg0NCw2ICs0MTY1LDI2IEBAIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogZl9sZWFrKGIpCiAoMiByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBhYmEKK05PVElDRTogIGZf bGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVhayA9PiBjY2MKK05PVElDRTogIGZfbGVhayA9PiBk YWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDIgfCBiYmIKKyAzIHwgY2NjCisg NCB8IGRhZAorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsK KyAgICAgUVVFUlkgUExBTiAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4g b24gejEKKyAgIEZpbHRlcjogZl9sZWFrKGIpCisoMiByb3dzKQorCiAtLSBRdWVyaWVzIGFzIG90 aGVyIHVzZXJzLgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1cnJlbnQgdXNl cidzIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7 CkBAIC0yODYzLDYgKzQyMDQsMjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHJsc192aWV3OwogICAgRmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIg cm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3Zp ZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6 ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0tLSstLS0tLQorIDIgfCBiYmIKKyA0IHwgZGFk CisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAl IDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogTk9USUNF OiAgZl9sZWFrID0+IGFiYQpAQCAtMjg4MCw2ICs0MjM3LDIyIEBAIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5E IGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFr ID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+IGNjYworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAx IHwgYWJhCisgMyB8IGNjYworKDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5h LCByLmIpKTsKKyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisg ICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCiAtLSBQ b2xpY3kgcmVxdWlyaW5nIGFjY2VzcyB0byBhbm90aGVyIHRhYmxlLgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgcDMgT04gejEgQVMg UkVTVFJJQ1RJVkUgVVNJTkcgKGEgTk9UIElOIChTRUxFQ1QgYSBGUk9NIHoxX2JsYWNrbGlzdCkp OwpAQCAtMjg4OSwxMiArNDI2MiwyMCBAQCBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwg LSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IHoxX2JsYWNrbGlzdAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Np b24gZGVuaWVkLgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgejFfYmxhY2ts aXN0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNr bGlzdAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxl IG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJt aXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2Js YWNrbGlzdAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRh YmxlIHoxX2JsYWNrbGlzdAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAo cjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVu aWVkLgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgejFfYmxhY2tsaXN0CitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0gg KHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRl bmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAog LS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIg b2YgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIEdSQU5UIFNFTEVDVCBPTiB6MV9ibGFja2xpc3QgVE8gcmVncmVzc19y bHNfYm9iOwpAQCAtMjkxNSwxMiArNDI5NiwzMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gcmxzX3ZpZXc7CiAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKICg0 IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorIGEgfCAg YiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoTk9U IChBTlkgKGEgPSAoaGFzaGVkIFN1YlBsYW4gMSkuY29sMSkpKSBBTkQgKChhICUgMikgPSAwKSBB TkQgZl9sZWFrKGIpKQorICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFj a2xpc3QKKyg0IHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVy IG9mIHRoZSB0YWJsZSBvciB2aWV3IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsg LS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciB0YWJsZSB6MV9ibGFja2xpc3QKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBy bHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBw ZXJtaXNzaW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHox X2JsYWNrbGlzdAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF ICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0g cGVybWlzc2lvbiBkZW5pZWQuCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6 MV9ibGFja2xpc3QKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRo ZSB0YWJsZSBvciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyBy ZWdyZXNzX3Jsc19jYXJvbDsKQEAgLTI5NDEsMTQgKzQzNDIsMzMgQEAgRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgICAtPiAgU2VxIFNjYW4gb24gejFfYmxh Y2tsaXN0CiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENI IChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBh YmEKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmls dGVyOiAoKE5PVCAoQU5ZIChhID0gKGhhc2hlZCBTdWJQbGFuIDEpLmNvbDEpKSkgQU5EICgoYSAl IDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4gMQorICAgICAtPiAgU2VxIFNjYW4g b24gejFfYmxhY2tsaXN0CisoNCByb3dzKQorCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcmxzX2JvYjsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1AgVklFVyBybHNf dmlldzsKIC0tCiAtLSBDb21tYW5kIHNwZWNpZmljCiAtLQogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB4MSAoYSBpbnQsIGIgdGV4dCwg YyB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjc3RwZyBWRVJURVggVEFCTEVTICh4MSBL RVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB4MSBUTyBQVUJMSUM7CitHUkFOVCBBTEwgT04gY3N0cGcg VE8gUFVCTElDOwogSU5TRVJUIElOVE8geDEgVkFMVUVTCiAgICAgKDEsICdhYmMnLCAncmVncmVz c19ybHNfYm9iJyksCiAgICAgKDIsICdiY2QnLCAncmVncmVzc19ybHNfYm9iJyksCkBAIC0yOTgy LDYgKzQ0MDIsMjMgQEAgTk9USUNFOiAgZl9sZWFrID0+IGZnaAogIDggfCBmZ2ggfCByZWdyZXNz X3Jsc19jYXJvbAogKDYgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3N0cGcg TUFUQ0ggKHggOiB4MSkgV0hFUkUgZl9sZWFrKHguYikgQ09MVU1OUyAoeC5hLCB4LmIsIHguYykp IE9SREVSIEJZIGEgQVNDOworTk9USUNFOiAgZl9sZWFrID0+IGFiYworTk9USUNFOiAgZl9sZWFr ID0+IGJjZAorTk9USUNFOiAgZl9sZWFrID0+IGRlZgorTk9USUNFOiAgZl9sZWFrID0+IGVmZwor Tk9USUNFOiAgZl9sZWFrID0+IGZnaAorTk9USUNFOiAgZl9sZWFrID0+IGZnaAorIGEgfCAgYiAg fCAgICAgICAgIGMgICAgICAgICAKKy0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMSB8 IGFiYyB8IHJlZ3Jlc3NfcmxzX2JvYgorIDIgfCBiY2QgfCByZWdyZXNzX3Jsc19ib2IKKyA0IHwg ZGVmIHwgcmVncmVzc19ybHNfY2Fyb2wKKyA1IHwgZWZnIHwgcmVncmVzc19ybHNfYm9iCisgNiB8 IGZnaCB8IHJlZ3Jlc3NfcmxzX2JvYgorIDggfCBmZ2ggfCByZWdyZXNzX3Jsc19jYXJvbAorKDYg cm93cykKKwogVVBEQVRFIHgxIFNFVCBiID0gYiB8fCAnX3VwZHQnIFdIRVJFIGZfbGVhayhiKSBS RVRVUk5JTkcgKjsKIE5PVElDRTogIGZfbGVhayA9PiBhYmMKIE5PVElDRTogIGZfbGVhayA9PiBi Y2QKQEAgLTMwMTcsNiArNDQ1NCwyMyBAQCBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoX3VwZHQKICA4 IHwgZmdoX3VwZHQgfCByZWdyZXNzX3Jsc19jYXJvbAogKDYgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoY3N0cGcgTUFUQ0ggKHggOiB4MSkgV0hFUkUgZl9sZWFrKHguYikgQ09M VU1OUyAoeC5hLCB4LmIsIHguYykpIE9SREVSIEJZIGEgQVNDOworTk9USUNFOiAgZl9sZWFrID0+ IGNkZQorTk9USUNFOiAgZl9sZWFrID0+IGZnaAorTk9USUNFOiAgZl9sZWFrID0+IGJjZF91cGR0 CitOT1RJQ0U6ICBmX2xlYWsgPT4gZGVmX3VwZHQKK05PVElDRTogIGZfbGVhayA9PiBmZ2hfdXBk dAorTk9USUNFOiAgZl9sZWFrID0+IGZnaF91cGR0CisgYSB8ICAgIGIgICAgIHwgICAgICAgICBj ICAgICAgICAgCistLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMiB8IGJjZF91 cGR0IHwgcmVncmVzc19ybHNfYm9iCisgMyB8IGNkZSAgICAgIHwgcmVncmVzc19ybHNfY2Fyb2wK KyA0IHwgZGVmX3VwZHQgfCByZWdyZXNzX3Jsc19jYXJvbAorIDYgfCBmZ2hfdXBkdCB8IHJlZ3Jl c3NfcmxzX2JvYgorIDcgfCBmZ2ggICAgICB8IHJlZ3Jlc3NfcmxzX2Nhcm9sCisgOCB8IGZnaF91 cGR0IHwgcmVncmVzc19ybHNfY2Fyb2wKKyg2IHJvd3MpCisKIFVQREFURSB4MSBTRVQgYiA9IGIg fHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBOT1RJQ0U6ICBmX2xlYWsg PT4gY2RlCiBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoCkBAIC0zMDU3LDcgKzQ1MTEsOSBAQCBOT1RJ Q0U6ICBmX2xlYWsgPT4gZmdoX3VwZHRfdXBkdAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB5MSAoYSBpbnQsIGIgdGV4dCk7CiBDUkVB VEUgVEFCTEUgeTIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHN2YnRw ZyBWRVJURVggVEFCTEVTICh5MSBLRVkgKGEpLCB5MiBLRVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB5 MSwgeTIgVE8gcmVncmVzc19ybHNfYm9iOworR1JBTlQgQUxMIE9OIHN2YnRwZyBUTyByZWdyZXNz X3Jsc19ib2I7CiBDUkVBVEUgUE9MSUNZIHAxIE9OIHkxIEZPUiBBTEwgVVNJTkcgKGEgJSAyID0g MCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHkxIEZPUiBTRUxFQ1QgVVNJTkcgKGEgPiAyKTsKIENS RUFURSBQT0xJQ1kgcDEgT04geTEgRk9SIFNFTEVDVCBVU0lORyAoYSAlIDIgPSAxKTsgIC0tZmFp bApAQCAtMzA3Miw2ICs0NTI4LDcgQEAgQUxURVIgVEFCTEUgeTIgRU5BQkxFIFJPVyBMRVZFTCBT RUNVUklUWTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBD UkVBVEUgVklFVyBybHNfc2J2IFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTCiAgICAgU0VMRUNU ICogRlJPTSB5MSBXSEVSRSBmX2xlYWsoYik7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBzdmJ0cGcg QUREIFZFUlRFWCBUQUJMRVMgKHJsc19zYnYgS0VZIChhKSk7CiBFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gcmxzX3NidiBXSEVSRSAoYSA9IDEpOwogICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA IC0zMDc5LDYgKzQ1MzYsMTQgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJs c19zYnYgV0hFUkUgKGEgPSAxKTsKICAgIEZpbHRlcjogKGZfbGVhayhiKSBBTkQgKGEgPSAxKSkK ICgyIHJvd3MpCiAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoc3ZidHBnIE1BVENIIChyOiBybHNfc2J2KSBXSEVSRSByLmEgPSAxIENPTFVNTlMgKHIuYSwg ci5iKSk7CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB5MQorICAgRmlsdGVyOiAoZl9s ZWFrKGIpIEFORCAoYSA9IDEpKQorKDIgcm93cykKKworQUxURVIgUFJPUEVSVFkgR1JBUEggc3Zi dHBnIERST1AgVkVSVEVYIFRBQkxFUyAocmxzX3Nidik7CiBEUk9QIFZJRVcgcmxzX3NidjsKIC0t IENyZWF0ZSB2aWV3IGFzIHJvbGUgdGhhdCBkb2VzIG5vdCBvd24gdGFibGUuICBSTFMgc2hvdWxk IGJlIGFwcGxpZWQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsK QEAgLTMxNDAsNiArNDYwNSw0NiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g eTIgV0hFUkUgZl9sZWFrKGIpOwogICAgRmlsdGVyOiAoKCgoYSAlIDQpID0gMCkgT1IgKChhICUg MykgPSAwKSBPUiAoKGEgJSAyKSA9IDApKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5MikgV0hFUkUgZl9sZWFr KHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiA1ZmVjZWI2NmZm Yzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQorTk9USUNFOiAgZl9sZWFrID0+IGQ0NzM1ZTNhMjY1ZTE2 ZWVlMDNmNTk3MThiOWI1ZDAzCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGUwNzQwODU2MmJlZGI4YjYw Y2UwNWMxZGVjZmUzYWQKK05PVElDRTogIGZfbGVhayA9PiA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4 NGY0ODY0MWQwMgorTk9USUNFOiAgZl9sZWFrID0+IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3 NGZkNzZmCitOT1RJQ0U6ICBmX2xlYWsgPT4gMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNh MDAKK05PVElDRTogIGZfbGVhayA9PiAxOTU4MWUyN2RlN2NlZDAwZmYxY2U1MGIyMDQ3ZTdhNQor Tk9USUNFOiAgZl9sZWFrID0+IDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitOT1RJ Q0U6ICBmX2xlYWsgPT4gNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKK05PVElDRTog IGZfbGVhayA9PiA4NTI3YTg5MWUyMjQxMzY5NTBmZjMyY2EyMTJiNDViYworTk9USUNFOiAgZl9s ZWFrID0+IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CitOT1RJQ0U6ICBmX2xlYWsg PT4gYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKK05PVElDRTogIGZfbGVhayA9PiA0 ZWM5NTk5ZmMyMDNkMTc2YTMwMTUzNmMyZTA5MWExOQorTk9USUNFOiAgZl9sZWFrID0+IGY1Y2Ez OGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgYSAgfCAgICAgICAgICAgICAgICBiICAgICAg ICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAw IHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2 ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDMgfCA0ZTA3NDA4NTYyYmVkYjhiNjBjZTA1YzFkZWNmZTNh ZAorICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDEx Nzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIz MTBhY2EwMAorICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMCB8IDRh NDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0MWNi ZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMKKyAx NSB8IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CisgMTYgfCBiMTdlZjZkMTljN2E1 YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFh MTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisoMTQgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFU Q0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoeS5iKSBDT0xVTU5TICh5LmEsIHkuYikpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24geTIKKyAg IEZpbHRlcjogKCgoKGEgJSA0KSA9IDApIE9SICgoYSAlIDMpID0gMCkgT1IgKChhICUgMikgPSAw KSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIC0tCiAtLSBRdWFsIHB1c2gtZG93biBvZiBs ZWFreSBmdW5jdGlvbnMsIHdoZW4gbm90IHJlZmVycmluZyB0byB0YWJsZQogLS0KQEAgLTMxOTAs NiArNDY5NSw1MyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00geTIgV0hFUkUg Zl9sZWFrKCdhYmMnKTsKICAgIEZpbHRlcjogKGZfbGVhaygnYWJjJzo6dGV4dCkgQU5EICgoKGEg JSA0KSA9IDApIE9SICgoYSAlIDMpID0gMCkgT1IgKChhICUgMikgPSAwKSkpCiAoMiByb3dzKQog CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0ggKHk6IHkyKSBXSEVSRSBm X2xlYWsoJ2FiYycpIENPTFVNTlMgKHkuYSwgeS5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJj CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsg PT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitO T1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBm X2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4g YWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJ Q0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xl YWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJj CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCisgYSAgfCAgICAgICAgICAgICAgICBiICAgICAgICAg ICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAwIHwg NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVl MDNmNTk3MThiOWI1ZDAzCisgIDMgfCA0ZTA3NDA4NTYyYmVkYjhiNjBjZTA1YzFkZWNmZTNhZAor ICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDExNzc2 ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBh Y2EwMAorICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMCB8IDRhNDRk YzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0MWNiZWNl Y2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMKKyAxNSB8 IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CisgMTYgfCBiMTdlZjZkMTljN2E1YjFl ZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFhMTkK KyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisoMTQgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0gg KHk6IHkyKSBXSEVSRSBmX2xlYWsoJ2FiYycpIENPTFVNTlMgKHkuYSwgeS5iKSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFNlcSBTY2FuIG9uIHkyCisgICBGaWx0ZXI6IChmX2xlYWsoJ2FiYyc6OnRleHQpIEFORCAoKChh ICUgNCkgPSAwKSBPUiAoKGEgJSAzKSA9IDApIE9SICgoYSAlIDIpID0gMCkpKQorKDIgcm93cykK KwogQ1JFQVRFIFRBQkxFIHRlc3RfcXVhbF9wdXNoZG93biAoCiAgICAgYWJjIHRleHQKICk7CkBA IC0zMjQ4LDE4ICs0ODAwLDIyIEBAIERST1AgVEFCTEUgdGVzdF9xdWFsX3B1c2hkb3duOwogLS0g UGxhbmNhY2hlIGludmFsaWRhdGUgb24gdXNlciBjaGFuZ2UuCiAtLQogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJPUCBUQUJMRSB0MSBD QVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKIERFVEFJ TDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDIKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDMK IENSRUFURSBUQUJMRSB0MSAoYSBpbnRlZ2VyKTsKIEdSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdy ZXNzX3Jsc19ib2IsIHJlZ3Jlc3NfcmxzX2Nhcm9sOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGl0 cGcgVkVSVEVYIFRBQkxFUyAodDEgS0VZKGEpKTsKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJl Z3Jlc3NfcmxzX2JvYiwgcmVncmVzc19ybHNfY2Fyb2w7CiBDUkVBVEUgUE9MSUNZIHAxIE9OIHQx IFRPIHJlZ3Jlc3NfcmxzX2JvYiBVU0lORyAoKGEgJSAyKSA9IDApOwogQ1JFQVRFIFBPTElDWSBw MiBPTiB0MSBUTyByZWdyZXNzX3Jsc19jYXJvbCBVU0lORyAoKGEgJSA0KSA9IDApOwogQUxURVIg VEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIC0tIFByZXBhcmUgYXMgcmVncmVz c19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ib2I7CiBQUkVQQVJFIHJvbGVfaW52YWwg QVMgU0VMRUNUICogRlJPTSB0MTsKK1BSRVBBUkUgcm9sZV9pbnZhbF9wZyBBUyBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hKSk7CiAtLSBD aGVjayBwbGFuCiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAKQEAgLTMyNjgsNiArNDgyNCwxMyBAQCBFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgIEZpbHRlcjogKChhICUgMikgPSAwKQogKDIg cm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWxfcGc7CisgICAg ICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgMikgPSAwKQorKDIgcm93cykKKwogLS0gQ2hhbmdl IHRvIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19jYXJvbDsKIC0tIENo ZWNrIHBsYW4tIHNob3VsZCBiZSBkaWZmZXJlbnQKQEAgLTMyNzgsNiArNDg0MSwxMyBAQCBFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgIEZpbHRlcjogKChhICUgNCkg PSAwKQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWxf cGc7CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgNCkgPSAwKQorKDIgcm93cykKKwog LS0gQ2hhbmdlIGJhY2sgdG8gcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19i b2I7CiAtLSBDaGVjayBwbGFuLSBzaG91bGQgYmUgYmFjayB0byBvcmlnaW5hbApAQCAtMzI4OCwx NSArNDg1OCwyNSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAg IEZpbHRlcjogKChhICUgMikgPSAwKQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBF WEVDVVRFIHJvbGVfaW52YWxfcGc7CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgMikg PSAwKQorKDIgcm93cykKKwogLS0KIC0tIENURSBhbmQgUkxTCiAtLQogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJPUCBUQUJMRSB0MSBD QVNDQURFOwogQ1JFQVRFIFRBQkxFIHQxIChhIGludGVnZXIsIGIgdGV4dCk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggaXRwZyBWRVJURVggVEFCTEVTICh0MSBLRVkoYSkpOwogQ1JFQVRFIFBPTElD WSBwMSBPTiB0MSBVU0lORyAoYSAlIDIgPSAwKTsKIEFMVEVSIFRBQkxFIHQxIEVOQUJMRSBST1cg TEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBBTEwgT04gdDEgVE8gcmVncmVzc19ybHNfYm9iOworR1JB TlQgQUxMIE9OIGl0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogSU5TRVJUIElOVE8gdDEgKFNFTEVD VCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCwyMCkg eCk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFdJVEggY3Rl MSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpKSBTRUxF Q1QgKiBGUk9NIGN0ZTE7CkBAIC0zMzI0LDIxICs0OTA0LDE2MyBAQCBOT1RJQ0U6ICBmX2xlYWsg PT4gZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1YzMKICAxNiB8IGIxN2VmNmQxOWM3YTVi MWVlODNiOTA3YzU5NTUyNmRjCiAgMTggfCA0ZWM5NTk5ZmMyMDNkMTc2YTMwMTUzNmMyZTA5MWEx OQogIDIwIHwgZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1YzMKLSgxMSByb3dzKQotCi1F WFBMQUlOIChDT1NUUyBPRkYpCi1XSVRIIGN0ZTEgQVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBG Uk9NIHQxIFdIRVJFIGZfbGVhayhiKSkgU0VMRUNUICogRlJPTSBjdGUxOwotICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENURSBTY2FuIG9uIGN0ZTEKLSAgIENU RSBjdGUxCi0gICAgIC0+ICBTZXEgU2NhbiBvbiB0MQotICAgICAgICAgICBGaWx0ZXI6ICgoKGEg JSAyKSA9IDApIEFORCBmX2xlYWsoYikpCi0oNCByb3dzKQorKDExIHJvd3MpCisKK0VYUExBSU4g KENPU1RTIE9GRikKK1dJVEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gdDEg V0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CisgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1RFIFNjYW4gb24gY3RlMQorICAgQ1RFIGN0ZTEK KyAgICAgLT4gIFNlcSBTY2FuIG9uIHQxCisgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0g MCkgQU5EIGZfbGVhayhiKSkKKyg0IHJvd3MpCisKK1dJVEggY3RlMSBBUyBNQVRFUklBTElaRUQg KFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBXSEVSRSBmX2xl YWsodC5iKSBDT0xVTU5TICh0LmEsIHQuYikpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CitOT1RJQ0U6 ICBmX2xlYWsgPT4gNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKK05PVElDRTogIGZf bGVhayA9PiBkNDczNWUzYTI2NWUxNmVlZTAzZjU5NzE4YjliNWQwMworTk9USUNFOiAgZl9sZWFr ID0+IDRiMjI3Nzc3ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCitOT1RJQ0U6ICBmX2xlYWsgPT4g ZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKK05PVElDRTogIGZfbGVhayA9PiAyYzYy NDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorTk9USUNFOiAgZl9sZWFrID0+IDRhNDRkYzE1 MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitOT1RJQ0U6ICBmX2xlYWsgPT4gNmI1MWQ0MzFkZjVk N2YxNDFjYmVjZWNjZjc5ZWRmM2QKK05PVElDRTogIGZfbGVhayA9PiA4NTI3YTg5MWUyMjQxMzY5 NTBmZjMyY2EyMTJiNDViYworTk9USUNFOiAgZl9sZWFrID0+IGIxN2VmNmQxOWM3YTViMWVlODNi OTA3YzU5NTUyNmRjCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZj MmUwOTFhMTkKK05PVElDRTogIGZfbGVhayA9PiBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1 NzVjMworIGEgIHwgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAgICAgCistLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCB8IDVmZWNlYjY2ZmZjODZmMzhkOTUy Nzg2YzZkNjk2Yzc5CisgIDIgfCBkNDczNWUzYTI2NWUxNmVlZTAzZjU5NzE4YjliNWQwMworICA0 IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDExNzc2ZThk YjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2Ew MAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKKyAxMiB8IDZiNTFkNDMx ZGY1ZDdmMTQxY2JlY2VjY2Y3OWVkZjNkCisgMTQgfCA4NTI3YTg5MWUyMjQxMzY5NTBmZjMyY2Ey MTJiNDViYworIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKKyAxOCB8IDRl Yzk1OTlmYzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CisgMjAgfCBmNWNhMzhmNzQ4YTFkNmVhZjcy NmI4YTQyZmI1NzVjMworKDExIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1dJVEggY3Rl MSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBXSEVSRSBmX2xlYWsodC5iKSBDT0xVTU5TICh0LmEsIHQuYikpKSBTRUxFQ1QgKiBG Uk9NIGN0ZTE7CisgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Q1RFIFNjYW4gb24gY3RlMQorICAgQ1RFIGN0ZTEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHQxCisg ICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg0IHJvd3Mp CisKK1dJVEggY3RlMSBBUyAoVVBEQVRFIHQxIFNFVCBhID0gYSArIDEgUkVUVVJOSU5HICopIFNF TEVDVCAqIEZST00gY3RlMTsgLS1mYWlsCitFUlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93LWxl dmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInQxIgorV0lUSCBjdGUxIEFTIChVUERBVEUg dDEgU0VUIGEgPSBhIFJFVFVSTklORyAqKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7IC0tb2sKKyBhICB8 ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgfCA1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3 OQorICAyIHwgZDQ3MzVlM2EyNjVlMTZlZWUwM2Y1OTcxOGI5YjVkMDMKKyAgNCB8IDRiMjI3Nzc3 ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCisgIDYgfCBlN2Y2YzAxMTc3NmU4ZGI3Y2QzMzBiNTQx NzRmZDc2ZgorICA4IHwgMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKKyAxMCB8IDRh NDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0MWNi ZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMKKyAx NiB8IGIxN2VmNmQxOWM3YTViMWVlODNiOTA3YzU5NTUyNmRjCisgMTggfCA0ZWM5NTk5ZmMyMDNk MTc2YTMwMTUzNmMyZTA5MWExOQorIDIwIHwgZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1 YzMKKygxMSByb3dzKQorCitXSVRIIGN0ZTEgQVMgKElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMjEs ICdGYWlsJykgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1mYWlsCitFUlJPUjog IG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInQx IgorV0lUSCBjdGUxIEFTIChJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDIwLCAnU3VjY2VzcycpIFJF VFVSTklORyAqKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7IC0tb2sKKyBhICB8ICAgIGIgICAgCistLS0t Ky0tLS0tLS0tLQorIDIwIHwgU3VjY2VzcworKDEgcm93KQorCistLQorLS0gUmVuYW1lIFBvbGlj eQorLS0KK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIFBPTElDWSBwMSBPTiB0 MSBSRU5BTUUgVE8gcDE7IC0tZmFpbAorRVJST1I6ICBwb2xpY3kgInAxIiBmb3IgdGFibGUgInQx IiBhbHJlYWR5IGV4aXN0cworU0VMRUNUIHBvbG5hbWUsIHJlbG5hbWUKKyAgICBGUk9NIHBnX3Bv bGljeSBwb2wKKyAgICBKT0lOIHBnX2NsYXNzIHBjIE9OIChwYy5vaWQgPSBwb2wucG9scmVsaWQp CisgICAgV0hFUkUgcmVsbmFtZSA9ICd0MSc7CisgcG9sbmFtZSB8IHJlbG5hbWUgCistLS0tLS0t LS0rLS0tLS0tLS0tCisgcDEgICAgICB8IHQxCisoMSByb3cpCisKK0FMVEVSIFBPTElDWSBwMSBP TiB0MSBSRU5BTUUgVE8gcDI7IC0tb2sKK1NFTEVDVCBwb2xuYW1lLCByZWxuYW1lCisgICAgRlJP TSBwZ19wb2xpY3kgcG9sCisgICAgSk9JTiBwZ19jbGFzcyBwYyBPTiAocGMub2lkID0gcG9sLnBv bHJlbGlkKQorICAgIFdIRVJFIHJlbG5hbWUgPSAndDEnOworIHBvbG5hbWUgfCByZWxuYW1lIAor LS0tLS0tLS0tKy0tLS0tLS0tLQorIHAyICAgICAgfCB0MQorKDEgcm93KQorCistLQorLS0gQ2hl Y2sgSU5TRVJUIFNFTEVDVAorLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfYm9iOworQ1JFQVRFIFRBQkxFIHQyIChhIGludGVnZXIsIGIgdGV4dCk7CitJTlNFUlQgSU5U TyB0MiAoU0VMRUNUICogRlJPTSB0MSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIElOU0VSVCBJTlRP IHQyIChTRUxFQ1QgKiBGUk9NIHQxKTsKKyAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbnNlcnQgb24gdDIKKyAgIC0+ICBT ZXEgU2NhbiBvbiB0MQorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisoMyByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHQyOworIGEgIHwgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAg ICAgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCB8IDVmZWNl YjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisgIDIgfCBkNDczNWUzYTI2NWUxNmVlZTAzZjU5 NzE4YjliNWQwMworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8 IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3 MTI5NGRmYmIzMTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEK KyAxMiB8IDZiNTFkNDMxZGY1ZDdmMTQxY2JlY2VjY2Y3OWVkZjNkCisgMTQgfCA4NTI3YTg5MWUy MjQxMzY5NTBmZjMyY2EyMTJiNDViYworIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1 NTI2ZGMKKyAxOCB8IDRlYzk1OTlmYzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CisgMjAgfCBmNWNh MzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1NzVjMworIDIwIHwgU3VjY2VzcworKDEyIHJvd3MpCisK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MjsKKyAgIFFVRVJZIFBMQU4gICAK Ky0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MgorKDEgcm93KQorCitDUkVBVEUgVEFC TEUgdDMgQVMgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00gdDM7CisgYSAgfCAgICAg ICAgICAgICAgICBiICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAg MiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQx ZmM2MWM2Zjg4NGY0ODY0MWQwMgorICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3 NmYKKyAgOCB8IDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMx NTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNj Zjc5ZWRmM2QKKyAxNCB8IDg1MjdhODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBi MTdlZjZkMTljN2E1YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEz MDE1MzZjMmUwOTFhMTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisg MjAgfCBTdWNjZXNzCisoMTIgcm93cykKIAotV0lUSCBjdGUxIEFTIChVUERBVEUgdDEgU0VUIGEg PSBhICsgMSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLWZhaWwKLUVSUk9SOiAg bmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAidDEi Ci1XSVRIIGN0ZTEgQVMgKFVQREFURSB0MSBTRVQgYSA9IGEgUkVUVVJOSU5HICopIFNFTEVDVCAq IEZST00gY3RlMTsgLS1vaworU0VMRUNUICogSU5UTyB0NCBGUk9NIHQxOworU0VMRUNUICogRlJP TSB0NDsKICBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAogLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIDAgfCA1ZmVjZWI2NmZmYzg2ZjM4ZDk1 Mjc4NmM2ZDY5NmM3OQpAQCAtMzM1Miw0OCArNTA3NCwxMyBAQCBXSVRIIGN0ZTEgQVMgKFVQREFU RSB0MSBTRVQgYSA9IGEgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1vawogIDE2 IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKICAxOCB8IDRlYzk1OTlmYzIwM2Qx NzZhMzAxNTM2YzJlMDkxYTE5CiAgMjAgfCBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1NzVj MwotKDExIHJvd3MpCi0KLVdJVEggY3RlMSBBUyAoSU5TRVJUIElOVE8gdDEgVkFMVUVTICgyMSwg J0ZhaWwnKSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLWZhaWwKLUVSUk9SOiAg bmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAidDEi Ci1XSVRIIGN0ZTEgQVMgKElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMjAsICdTdWNjZXNzJykgUkVU VVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1vawotIGEgIHwgICAgYiAgICAKLS0tLS0r LS0tLS0tLS0tCiAgMjAgfCBTdWNjZXNzCi0oMSByb3cpCi0KLS0tCi0tLSBSZW5hbWUgUG9saWN5 Ci0tLQotUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwotQUxURVIgUE9MSUNZIHAxIE9OIHQx IFJFTkFNRSBUTyBwMTsgLS1mYWlsCi1FUlJPUjogIHBvbGljeSAicDEiIGZvciB0YWJsZSAidDEi IGFscmVhZHkgZXhpc3RzCi1TRUxFQ1QgcG9sbmFtZSwgcmVsbmFtZQotICAgIEZST00gcGdfcG9s aWN5IHBvbAotICAgIEpPSU4gcGdfY2xhc3MgcGMgT04gKHBjLm9pZCA9IHBvbC5wb2xyZWxpZCkK LSAgICBXSEVSRSByZWxuYW1lID0gJ3QxJzsKLSBwb2xuYW1lIHwgcmVsbmFtZSAKLS0tLS0tLS0t LSstLS0tLS0tLS0KLSBwMSAgICAgIHwgdDEKLSgxIHJvdykKLQotQUxURVIgUE9MSUNZIHAxIE9O IHQxIFJFTkFNRSBUTyBwMjsgLS1vawotU0VMRUNUIHBvbG5hbWUsIHJlbG5hbWUKLSAgICBGUk9N IHBnX3BvbGljeSBwb2wKLSAgICBKT0lOIHBnX2NsYXNzIHBjIE9OIChwYy5vaWQgPSBwb2wucG9s cmVsaWQpCi0gICAgV0hFUkUgcmVsbmFtZSA9ICd0MSc7Ci0gcG9sbmFtZSB8IHJlbG5hbWUgCi0t LS0tLS0tLS0rLS0tLS0tLS0tCi0gcDIgICAgICB8IHQxCi0oMSByb3cpCisoMTIgcm93cykKIAot LS0KLS0tIENoZWNrIElOU0VSVCBTRUxFQ1QKLS0tCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfcmxzX2JvYjsKK0RST1AgVEFCTEUgdDIsIHQzLCB0NDsKIENSRUFURSBUQUJMRSB0 MiAoYSBpbnRlZ2VyLCBiIHRleHQpOwotSU5TRVJUIElOVE8gdDIgKFNFTEVDVCAqIEZST00gdDEp OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBJTlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSB0MSk7 CitJTlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAo dDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSkpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBJTlNFUlQg SU5UTyB0MiAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENP TFVNTlMgKHQuYSwgdC5iKSkpOwogICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluc2VydCBvbiB0MgpAQCAtMzQyNCw3ICs1 MTExLDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQyOwogIFNlcSBTY2Fu IG9uIHQyCiAoMSByb3cpCiAKLUNSRUFURSBUQUJMRSB0MyBBUyBTRUxFQ1QgKiBGUk9NIHQxOwor Q1JFQVRFIFRBQkxFIHQzIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOwogU0VMRUNUICogRlJPTSB0MzsKICBhICB8ICAg ICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAogLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkBAIC0zNDQyLDcgKzUxMjksNyBAQCBTRUxFQ1QgKiBGUk9NIHQzOwog IDIwIHwgU3VjY2VzcwogKDEyIHJvd3MpCiAKLVNFTEVDVCAqIElOVE8gdDQgRlJPTSB0MTsKK1NF TEVDVCAqIElOVE8gdDQgRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVN TlMgKHQuYSwgdC5iKSk7CiBTRUxFQ1QgKiBGUk9NIHQ0OwogIGEgIHwgICAgICAgICAgICAgICAg YiAgICAgICAgICAgICAgICAgCiAtLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KQEAgLTM0NjYsNyArNTE1MywxNCBAQCBTRUxFQ1QgKiBGUk9NIHQ0OwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSBibG9nIChpZCBp bnRlZ2VyLCBhdXRob3IgdGV4dCwgcG9zdCB0ZXh0KTsKIENSRUFURSBUQUJMRSBjb21tZW50IChi bG9nX2lkIGludGVnZXIsIG1lc3NhZ2UgdGV4dCk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEgganRw ZworICAgIFZFUlRFWCBUQUJMRVMgKGJsb2cgS0VZIChpZCkpCisgICAgRURHRSBUQUJMRVMKKyAg ICAoY29tbWVudCBLRVkgKGJsb2dfaWQpCisgICAgIFNPVVJDRSBLRVkgKGJsb2dfaWQpIFJFRkVS RU5DRVMgYmxvZyhpZCkKKyAgICAgREVTVElOQVRJT04gS0VZIChibG9nX2lkKSBSRUZFUkVOQ0VT IGJsb2coaWQpKTsKIEdSQU5UIEFMTCBPTiBibG9nLCBjb21tZW50IFRPIHJlZ3Jlc3NfcmxzX2Jv YjsKK0dSQU5UIEFMTCBPTiBqdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBQT0xJQ1kg YmxvZ18xIE9OIGJsb2cgVVNJTkcgKGlkICUgMiA9IDApOwogQUxURVIgVEFCTEUgYmxvZyBFTkFC TEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogSU5TRVJUIElOVE8gYmxvZyBWQUxVRVMKQEAgLTM0OTks NiArNTE5MywxMyBAQCBTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9J TiBibG9nIE9OIGlkID0gYmxvZ19pZDsKICAgMiB8IGJvYiAgICB8IHdobyBkaWQgaXQ/CiAoMiBy b3dzKQogCitTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIEdSQVBIX1RBQkxFIChqdHBn IE1BVENIIChiOiBibG9nKS1bYzogY29tbWVudF0tPihiKSBDT0xVTU5TIChiLmlkIEFTIGlkLCBi LmF1dGhvciBBUyBhdXRob3IsIGMubWVzc2FnZSBBUyBtZXNzYWdlKSk7CisgaWQgfCBhdXRob3Ig fCAgIG1lc3NhZ2UgICAKKy0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICA0IHwgYWxpY2Ug IHwgaW5zYW5lIQorICAyIHwgYm9iICAgIHwgd2hvIGRpZCBpdD8KKygyIHJvd3MpCisKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgUE9MSUNZIGNv bW1lbnRfMSBPTiBjb21tZW50IFVTSU5HIChibG9nX2lkIDwgNCk7CiBBTFRFUiBUQUJMRSBjb21t ZW50IEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC0zNTE2LDcgKzUyMTcsMTQgQEAgU0VM RUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBjb21tZW50IEpPSU4gYmxvZyBPTiBpZCA9IGJs b2dfaWQ7CiAgIDIgfCBib2IgICAgfCB3aG8gZGlkIGl0PwogKDEgcm93KQogCitTRUxFQ1QgaWQs IGF1dGhvciwgbWVzc2FnZSBGUk9NIEdSQVBIX1RBQkxFIChqdHBnIE1BVENIIChiOiBibG9nKS1b YzogY29tbWVudF0tPihiKSBDT0xVTU5TIChiLmlkIEFTIGlkLCBiLmF1dGhvciBBUyBhdXRob3Is IGMubWVzc2FnZSBBUyBtZXNzYWdlKSk7CisgaWQgfCBhdXRob3IgfCAgIG1lc3NhZ2UgICAKKy0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICAyIHwgYm9iICAgIHwgd2hvIGRpZCBpdD8KKygx IHJvdykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RS T1AgUFJPUEVSVFkgR1JBUEgganRwZzsKIERST1AgVEFCTEUgYmxvZywgY29tbWVudDsKIC0tCiAt LSBEZWZhdWx0IERlbnkgUG9saWN5CkBAIC0zNTI0LDYgKzUyMzIsNyBAQCBEUk9QIFRBQkxFIGJs b2csIGNvbW1lbnQ7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFBPTElDWSBw MiBPTiB0MTsKIEFMVEVSIFRBQkxFIHQxIE9XTkVSIFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JB TlQgU0VMRUNUIE9OIGl0cGcgVE8gcmVncmVzc19ybHNfYWxpY2U7CiAtLSBDaGVjayB0aGF0IGRl ZmF1bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byBzdXBlcnVzZXIuCiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CiBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAtMzU1OSw2ICs1MjY4LDM5IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICBTZXEgU2NhbiBvbiB0MQogKDEg cm93KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09M VU1OUyAodC5hLCB0LmIpKTsKKyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAg IAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDEgfCA2Yjg2YjI3 M2ZmMzRmY2UxOWQ2YjgwNGVmZjVhM2Y1NworICAzIHwgNGUwNzQwODU2MmJlZGI4YjYwY2UwNWMx ZGVjZmUzYWQKKyAgNSB8IGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYxCisgIDcgfCA3 OTAyNjk5YmU0MmM4YThlNDZmYmJiNDUwMTcyNjUxNworICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZm MWNlNTBiMjA0N2U3YTUKKyAxMSB8IDRmYzgyYjI2YWVjYjQ3ZDI4NjhjNGVmYmUzNTgxNzMyCisg MTMgfCAzZmRiYTM1ZjA0ZGM4YzQ2Mjk4NmM5OTJiY2Y4NzU1NAorIDE1IHwgZTYyOWZhNjU5OGQ3 MzI3NjhmN2M3MjZiNGI2MjEyODUKKyAxNyB8IDQ1MjM1NDBmMTUwNGNkMTcxMDBjNDgzNWU4NWI3 ZWVmCisgMTkgfCA5NDAwZjFiMjFjYjUyN2Q3ZmEzZDNlYWJiYTkzNTU3YQorICAwIHwgNWZlY2Vi NjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3 MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgorICA2IHwg ZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKyAgOCB8IDJjNjI0MjMyY2RkMjIxNzcx Mjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQor IDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKKyAxNCB8IDg1MjdhODkxZTIy NDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBiMTdlZjZkMTljN2E1YjFlZTgzYjkwN2M1OTU1 MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFhMTkKKyAyMCB8IGY1Y2Ez OGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgMjAgfCBTdWNjZXNzCisoMjIgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgIFFVRVJZIFBMQU4gICAKKy0tLS0tLS0t LS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MQorKDEgcm93KQorCiAtLSBDaGVjayB0aGF0IGRlZmF1 bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lci4KIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAtMzU5NCw2 ICs1MzM2LDM5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICBTZXEg U2NhbiBvbiB0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyBhICB8ICAgICAgICAgICAgICAgIGIg ICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIDEgfCA2Yjg2YjI3M2ZmMzRmY2UxOWQ2YjgwNGVmZjVhM2Y1NworICAzIHwgNGUwNzQwODU2 MmJlZGI4YjYwY2UwNWMxZGVjZmUzYWQKKyAgNSB8IGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1 NGIwYzYxCisgIDcgfCA3OTAyNjk5YmU0MmM4YThlNDZmYmJiNDUwMTcyNjUxNworICA5IHwgMTk1 ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMSB8IDRmYzgyYjI2YWVjYjQ3ZDI4Njhj NGVmYmUzNTgxNzMyCisgMTMgfCAzZmRiYTM1ZjA0ZGM4YzQ2Mjk4NmM5OTJiY2Y4NzU1NAorIDE1 IHwgZTYyOWZhNjU5OGQ3MzI3NjhmN2M3MjZiNGI2MjEyODUKKyAxNyB8IDQ1MjM1NDBmMTUwNGNk MTcxMDBjNDgzNWU4NWI3ZWVmCisgMTkgfCA5NDAwZjFiMjFjYjUyN2Q3ZmEzZDNlYWJiYTkzNTU3 YQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNh MjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0 ODY0MWQwMgorICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKyAgOCB8IDJj NjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMxNTM2NDIwNGE4MGZl ODBlOTAzOTQ1NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKKyAx NCB8IDg1MjdhODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBiMTdlZjZkMTljN2E1 YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFh MTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgMjAgfCBTdWNjZXNz CisoMjIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgIFFVRVJZIFBM QU4gICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MQorKDEgcm93KQorCiAtLSBD aGVjayB0aGF0IGRlZmF1bHQgZGVueSBhcHBsaWVzIHRvIG5vbi1vd25lci9ub24tc3VwZXJ1c2Vy IHdoZW4gUkxTIG9uLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7 CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtMzYwOSw2ICs1Mzg0LDE4IEBAIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UK ICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQx KSBDT0xVTU5TICh0LmEsIHQuYikpOworIGEgfCBiIAorLS0tKy0tLQorKDAgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRpbWUgRmlsdGVyOiBm YWxzZQorKDIgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19i b2I7CiBTRUxFQ1QgKiBGUk9NIHQxOwogIGEgfCBiIApAQCAtMzYyMiw2ICs1NDA5LDE4IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICAgIE9uZS1UaW1lIEZpbHRlcjog ZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworIGEgfCBiIAorLS0tKy0tLQorKDAgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRpbWUgRmls dGVyOiBmYWxzZQorKDIgcm93cykKKwogLS0KIC0tIENPUFkgVE8vRlJPTQogLS0KQEAgLTM2Mjks OSArNTQyOCwxMSBAQCBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFRBQkxFIGNv cHlfdCBDQVNDQURFOwogRVJST1I6ICB0YWJsZSAiY29weV90IiBkb2VzIG5vdCBleGlzdAogQ1JF QVRFIFRBQkxFIGNvcHlfdCAoYSBpbnRlZ2VyLCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGN0cGcgVkVSVEVYIFRBQkxFUyAoY29weV90IEtFWSAoYSkpOwogQ1JFQVRFIFBPTElDWSBw MSBPTiBjb3B5X3QgVVNJTkcgKGEgJSAyID0gMCk7CiBBTFRFUiBUQUJMRSBjb3B5X3QgRU5BQkxF IFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIEFMTCBPTiBjb3B5X3QgVE8gcmVncmVzc19ybHNf Ym9iLCByZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKK0dSQU5UIEFMTCBPTiBjdHBnIFRPIHJlZ3Jl c3NfcmxzX2JvYiwgcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBJTlNFUlQgSU5UTyBjb3B5X3Qg KFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MCwxMCkgeCk7CiAtLSBDaGVjayBDT1BZIFRPIGFzIFN1cGVydXNlci9vd25lci4KIFJFU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTjsKQEAgLTM2NDgsNiArNTQ0OSwxOCBAQCBDT1BZIChTRUxFQ1Qg KiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcs JzsKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFlMjdkZTdjZWQw MGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitD T1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENP TFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRF UiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZiODZiMjczZmYz NGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAz CiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3ZDRkZDFmYzYx YzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYxCis2LGU3 ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhhOGU0NmZiYmI0 NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5LDE5NTgxZTI3 ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1 NWNjMQogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90 IE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwogMCw1ZmVjZWI2 NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQpAQCAtMzY2MSwxMSArNTQ3NCwyNSBAQCBDT1BZIChT RUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1J VEVSICcsJzsKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFlMjdk ZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1 Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5 X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERF TElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZiODZi MjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThi OWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3ZDRk ZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYx Cis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhhOGU0 NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5LDE5 NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBl OTAzOTQ1NWNjMQogLS0gQ2hlY2sgQ09QWSBUTyBhcyB1c2VyIHdpdGggcGVybWlzc2lvbnMuCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCByb3dfc2VjdXJp dHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRP IFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tZmFpbCAtIHdvdWxkIGJlIGFmZmVjdGVkIGJ5 IFJMUwogRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJp dHkgcG9saWN5IGZvciB0YWJsZSAiY29weV90IgorQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZ IGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSB3b3VsZCBiZSBh ZmZlY3RlZCBieSBSTFMKK0VSUk9SOiAgcXVlcnkgd291bGQgYmUgYWZmZWN0ZWQgYnkgcm93LWxl dmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgImNvcHlfdCIKIFNFVCByb3dfc2VjdXJpdHkg VE8gT047CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RE T1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vawogMCw1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2 ZDY5NmM3OQpAQCAtMzY3NCw2ICs1NTAxLDEzIEBAIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90 IE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLW9rCiA2LGU3 ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCiA4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZi YjMxMGFjYTAwCiAxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQorQ09QWSAoU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChj LmEsIGMuYikpIE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwor MCw1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQorMixkNDczNWUzYTI2NWUxNmVlZTAz ZjU5NzE4YjliNWQwMworNCw0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgorNixlN2Y2 YzAxMTc3NmU4ZGI3Y2QzMzBiNTQxNzRmZDc2ZgorOCwyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIz MTBhY2EwMAorMTAsNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKIC0tIENoZWNrIENP UFkgVE8gYXMgdXNlciB3aXRoIHBlcm1pc3Npb25zIGFuZCBCWVBBU1NSTFMKIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5 IFRPIE9GRjsKQEAgLTM2ODksNiArNTUyMywxOCBAQCBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlf dCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vawogOCwy YzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAogOSwxOTU4MWUyN2RlN2NlZDAwZmYxY2U1 MGIyMDQ3ZTdhNQogMTAsNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKK0NPUFkgKFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAo Yy5hLCBjLmIpKSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsK KzAsNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKzEsNmI4NmIyNzNmZjM0ZmNlMTlk NmI4MDRlZmY1YTNmNTcKKzIsZDQ3MzVlM2EyNjVlMTZlZWUwM2Y1OTcxOGI5YjVkMDMKKzMsNGUw NzQwODU2MmJlZGI4YjYwY2UwNWMxZGVjZmUzYWQKKzQsNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRm NDg2NDFkMDIKKzUsZWYyZDEyN2RlMzdiOTQyYmFhZDA2MTQ1ZTU0YjBjNjEKKzYsZTdmNmMwMTE3 NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKzcsNzkwMjY5OWJlNDJjOGE4ZTQ2ZmJiYjQ1MDE3MjY1 MTcKKzgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKKzksMTk1ODFlMjdkZTdjZWQw MGZmMWNlNTBiMjA0N2U3YTUKKzEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCiBT RVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIg QlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKIDAsNWZlY2ViNjZm ZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKQEAgLTM3MDIsMTQgKzU1NDgsMzAgQEAgQ09QWSAoU0VM RUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRF UiAnLCc7IC0tb2sKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFl MjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5 NDU1Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBj b3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRI IERFTElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZi ODZiMjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3 MThiOWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3 ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIw YzYxCis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhh OGU0NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5 LDE5NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZl ODBlOTAzOTQ1NWNjMQogLS0gQ2hlY2sgQ09QWSBUTyBhcyB1c2VyIHdpdGhvdXQgcGVybWlzc2lv bnMuIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19jYXJvbDsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNU ICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAn LCc7IC0tZmFpbCAtIHdvdWxkIGJlIGFmZmVjdGVkIGJ5IFJMUwogRVJST1I6ICBxdWVyeSB3b3Vs ZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAiY29w eV90IgorQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29w eV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBE RUxJTUlURVIgJywnOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2 ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAiY29weV90IgogU0VUIHJvd19zZWN1cml0eSBU TyBPTjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90IE9SREVSIEJZIGEgQVNDKSBUTyBTVERP VVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZAogRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgY29weV90CitDT1BZIChTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkg T1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBwcm9wZXJ0eSBncmFwaCBjdHBnCiAtLSBDaGVjayBDT1BZIHJl bGF0aW9uIFRPOyBrZWVwIGl0IGp1c3Qgb25lIHJvdyB0byBhdm9pZCByZW9yZGVyaW5nIGlzc3Vl cwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsK QEAgLTM4MTMsNiArNTY3NSw3IEBAIFNFVCByb3dfc2VjdXJpdHkgVE8gT047CiBDT1BZIGNvcHlf dCBGUk9NIFNURElOOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHRhYmxlIGNvcHlfdAogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OworRFJPUCBQUk9QRVJUWSBHUkFQSCBjdHBnOwogRFJPUCBUQUJMRSBjb3B5X3Q7CiBEUk9QIFRB QkxFIGNvcHlfcmVsX3RvIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxl IGNvcHlfcmVsX3RvX2NoaWxkCkBAIC00MDA1LDkgKzU4NjgsMTEgQEAgU0VMRUNUIGF0dG5hbWUs IG1vc3RfY29tbW9uX3ZhbHMgRlJPTSBwZ19zdGF0cwogLS0KIEJFR0lOOwogQ1JFQVRFIFRBQkxF IGNvbGxfdCAoYykgQVMgVkFMVUVTICgnYmFyJzo6dGV4dCk7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggY2x0cGcgVkVSVEVYIFRBQkxFUyAoY29sbF90IEtFWSAoYykpOwogQ1JFQVRFIFBPTElDWSBj b2xsX3AgT04gY29sbF90IFVTSU5HIChjIDwgKCdmb28nOjp0ZXh0IENPTExBVEUgIkMiKSk7CiBB TFRFUiBUQUJMRSBjb2xsX3QgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIFNFTEVD VCBPTiBjb2xsX3QgVE8gcmVncmVzc19ybHNfYWxpY2U7CitHUkFOVCBTRUxFQ1QgT04gY2x0cGcg VE8gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKHN0cmluZ190b19hcnJheShwb2xxdWFsLCAn OicpKVs3XSBBUyBpbnB1dGNvbGxpZCBGUk9NIHBnX3BvbGljeSBXSEVSRSBwb2xyZWxpZCA9ICdj b2xsX3QnOjpyZWdjbGFzczsKICAgIGlucHV0Y29sbGlkICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t CkBAIC00MDIxLDYgKzU4ODYsMTIgQEAgU0VMRUNUICogRlJPTSBjb2xsX3Q7CiAgYmFyCiAoMSBy b3cpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNsdHBnIE1BVENIIChjOiBjb2xsX3Qp IENPTFVNTlMgKGMuYykpOworICBjICAKKy0tLS0tCisgYmFyCisoMSByb3cpCisKIFJPTExCQUNL OwogLS0KIC0tIFNoYXJlZCBPYmplY3QgRGVwZW5kZW5jaWVzCkBAIC00MDkzLDcgKzU5NjQsOCBA QCBDUkVBVEUgVEFCTEUgcjEgKGEgaW50KTsKIENSRUFURSBUQUJMRSByMiAoYSBpbnQpOwogSU5T RVJUIElOVE8gcjEgVkFMVUVTICgxMCksICgyMCk7CiBJTlNFUlQgSU5UTyByMiBWQUxVRVMgKDEw KSwgKDIwKTsKLUdSQU5UIEFMTCBPTiByMSwgcjIgVE8gcmVncmVzc19ybHNfYm9iOworQ1JFQVRF IFBST1BFUlRZIEdSQVBIIHRydHBnIFZFUlRFWCBUQUJMRVMgKHIyIEtFWSAoYSkpOworR1JBTlQg QUxMIE9OIHIxLCByMiwgdHJ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFBPTElDWSBw MSBPTiByMSBVU0lORyAodHJ1ZSk7CiBBTFRFUiBUQUJMRSByMSBFTkFCTEUgUk9XIExFVkVMIFNF Q1VSSVRZOwogQ1JFQVRFIFBPTElDWSBwMSBPTiByMiBGT1IgU0VMRUNUIFVTSU5HICh0cnVlKTsK QEAgLTQxNjUsNyArNjAzNyw0MyBAQCBTRUxFQ1QgKiBGUk9NIHIyOwogIDIwCiAoMiByb3dzKQog CitJTlNFUlQgSU5UTyByMSBTRUxFQ1QgYSBGUk9NIEdSQVBIX1RBQkxFICh0cnRwZyBNQVRDSCAo cjogcjIpIENPTFVNTlMgKHIuYSkpIHIyIFJFVFVSTklORyAqOyAtLSBPSworIGEgIAorLS0tLQor IDEwCisgMjAKKygyIHJvd3MpCisKK1VQREFURSByMSBTRVQgYSA9IHIyLmEgKyAyIEZST00gR1JB UEhfVEFCTEUgKHRydHBnIE1BVENIIChyOiByMikgQ09MVU1OUyAoci5hKSkgcjIgV0hFUkUgcjEu YSA9IHIyLmEgUkVUVVJOSU5HICo7IC0tIE9LCisgYSAgfCBhICAKKy0tLS0rLS0tLQorIDEyIHwg MTAKKyAyMiB8IDIwCisoMiByb3dzKQorCitERUxFVEUgRlJPTSByMSBVU0lORyBHUkFQSF9UQUJM RSAodHJ0cGcgTUFUQ0ggKHI6IHIyKSBDT0xVTU5TIChyLmEpKSByMiBXSEVSRSByMS5hID0gcjIu YSArIDIgUkVUVVJOSU5HICo7IC0tIE9LCisgYSAgfCBhICAKKy0tLS0rLS0tLQorIDEyIHwgMTAK KyAyMiB8IDIwCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHIxOworIGEgIAorLS0tLQorIDEx CisgMjEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gcjI7CisgYSAgCistLS0tCisgMTAKKyAy MAorKDIgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdHJ0cGc7CiBEUk9QIFRBQkxFIHIxOwogRFJPUCBUQUJM RSByMjsKIC0tCkBAIC00MTc0LDYgKzYwODIsNyBAQCBEUk9QIFRBQkxFIHIyOwogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFVCByb3dfc2VjdXJpdHkgPSBv bjsKIENSRUFURSBUQUJMRSByMSAoYSBpbnQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGZybHN0 cGcgVkVSVEVYIFRBQkxFUyAocjEgS0VZIChhKSk7CiBJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEw KSwgKDIwKTsKIENSRUFURSBQT0xJQ1kgcDEgT04gcjEgVVNJTkcgKGZhbHNlKTsKIEFMVEVSIFRB QkxFIHIxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC00MTg0LDYgKzYwOTMsMTEgQEAg VEFCTEUgcjE7CiAtLS0KICgwIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGZy bHN0cGcgTUFUQ0ggKHI6IHIxKSBDT0xVTU5TIChyLmEpKTsKKyBhIAorLS0tCisoMCByb3dzKQor CiAtLSBSTFMgZXJyb3IKIElOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMSk7CiBFUlJPUjogIG5ldyBy b3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInIxIgpAQCAt NDIwNiwxMiArNjEyMCwxNiBAQCBTRVQgcm93X3NlY3VyaXR5ID0gb2ZmOwogVEFCTEUgcjE7CiBF UlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xp Y3kgZm9yIHRhYmxlICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRoZSB0 YWJsZSdzIG93bmVyLCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZ LgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZnJsc3RwZyBNQVRDSCAocjogcjEpIENPTFVN TlMgKHIuYSkpOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwg c2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAicjEiCitISU5UOiAgVG8gZGlzYWJsZSB0aGUgcG9s aWN5IGZvciB0aGUgdGFibGUncyBvd25lciwgdXNlIEFMVEVSIFRBQkxFIE5PIEZPUkNFIFJPVyBM RVZFTCBTRUNVUklUWS4KIFVQREFURSByMSBTRVQgYSA9IDE7CiBFUlJPUjogIHF1ZXJ5IHdvdWxk IGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJyMSIK IEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRoZSB0YWJsZSdzIG93bmVyLCB1c2Ug QUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZLgogREVMRVRFIEZST00gcjE7 CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBw b2xpY3kgZm9yIHRhYmxlICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRo ZSB0YWJsZSdzIG93bmVyLCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VS SVRZLgorRFJPUCBQUk9QRVJUWSBHUkFQSCBmcmxzdHBnOwogRFJPUCBUQUJMRSByMTsKIC0tCiAt LSBGT1JDRSBST1cgTEVWRUwgU0VDVVJJVFkgZG9lcyBub3QgYnJlYWsgUkkKQEAgLTQ0ODEsOCAr NjM5OSwxMCBAQCBEUk9QIFRBQkxFIHJlZl90Ymw7CiBDUkVBVEUgVEFCTEUgcmxzX3RibCAoYSBp bnQpOwogSU5TRVJUIElOVE8gcmxzX3RibCBTRUxFQ1QgeC8xMCBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMDApIHg7CiBBTkFMWVpFIHJsc190Ymw7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggbG90 cGcgVkVSVEVYIFRBQkxFUyAocmxzX3RibCBLRVkgKGEpKTsKIEFMVEVSIFRBQkxFIHJsc190Ymwg RU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdGJsIFRPIHJl Z3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIGxvdHBnIFRPIHJlZ3Jlc3NfcmxzX2Fs aWNlOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFU RSBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KSBSRVRVUk5TIGJvb2wKICAgICBBUyAnQkVHSU4g UkFJU0UgTk9USUNFICcnb3BfbGVhayA9PiAlLCAlJycsICQxLCAkMjsgUkVUVVJOICQxIDwgJDI7 IEVORCcKQEAgLTQ1MDEsOSArNjQyMSwyMCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcmxzX3RibCBXSEVSRSBhIDw8PCAxMDAwIG9yIGEgPDw8IDkwMDsKICAgIE9uZS1UaW1l IEZpbHRlcjogZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGxv dHBnIE1BVENIIChyOiBybHNfdGJsKSBXSEVSRSByLmEgPDw8IDEwMDAgQ09MVU1OUyAoci5hKSk7 CisgYSAKKy0tLQorKDAgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobG90cGcg TUFUQ0ggKHI6IHJsc190YmwgV0hFUkUgci5hIDw8PCAxMDAwKSBDT0xVTU5TIChyLmEpKTsKKyBh IAorLS0tCisoMCByb3dzKQorCiBEUk9QIE9QRVJBVE9SIDw8PCAoaW50LCBpbnQpOwogRFJPUCBG VU5DVElPTiBvcF9sZWFrKGludCwgaW50KTsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK K0RST1AgUFJPUEVSVFkgR1JBUEggbG90cGc7CiBEUk9QIFRBQkxFIHJsc190Ymw7CiAtLSBCdWcg IzE2MDA2OiB3aG9sZS1yb3cgVmFycyBpbiBhIHBvbGljeSBkb24ndCBwbGF5IG5pY2Ugd2l0aCBz dWItc2VsZWN0cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK QEAgLTQ2NzEsMjkgKzY2MDIsMzggQEAgRFJPUCBUQUJMRSBybHNfdDsKIC0tCiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFNDSEVNQSByZWdyZXNzX3Jsc19zY2hlbWEgQ0FTQ0FE RTsKLU5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMzAgb3RoZXIgb2JqZWN0cworTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byAzOSBvdGhlciBvYmplY3RzCiBERVRBSUw6ICBkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIGZfbGVhayh0ZXh0KQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB1YWNjb3Vu dAogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjYXRlZ29yeQogZHJvcCBjYXNjYWRlcyB0byB0YWJs ZSBkb2N1bWVudAorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhY2NfY2F0CiBkcm9w IGNhc2NhZGVzIHRvIHRhYmxlIHBhcnRfZG9jdW1lbnQKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVy dHkgZ3JhcGggcHRwZwogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBkZXBlbmRlbnQKIGRyb3AgY2Fz Y2FkZXMgdG8gdGFibGUgcmVjMQorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBydHBn CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHJlYzIKIGRyb3AgY2FzY2FkZXMgdG8gdmlldyByZWMx dgogZHJvcCBjYXNjYWRlcyB0byB2aWV3IHJlYzJ2CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHMx CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHMyCitkcm9wIGNhc2NhZGVzIHRvIHByb3BlcnR5IGdy YXBoIHJ2dHBnCiBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdjIKIGRyb3AgY2FzY2FkZXMgdG8gdGFi bGUgYjEKIGRyb3AgY2FzY2FkZXMgdG8gdmlldyBidjEKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVy dHkgZ3JhcGggc2J2cGcKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgejEKIGRyb3AgY2FzY2FkZXMg dG8gdGFibGUgejIKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggZ3RwZwogZHJvcCBj YXNjYWRlcyB0byB0YWJsZSB6MV9ibGFja2xpc3QKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgeDEK K2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggY3N0cGcKIGRyb3AgY2FzY2FkZXMgdG8g dGFibGUgeTEKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgeTIKK2Ryb3AgY2FzY2FkZXMgdG8gcHJv cGVydHkgZ3JhcGggc3ZidHBnCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHQxCitkcm9wIGNhc2Nh ZGVzIHRvIHByb3BlcnR5IGdyYXBoIGl0cGcKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDIKIGRy b3AgY2FzY2FkZXMgdG8gdGFibGUgdDMKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAppbmRleCBjZjA5ZjYyZWFiYS4uOTkyMjk4OGYyNTkg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dzZWN1cml0eS5zcWwKQEAgLTg2LDYgKzg2LDE0IEBAIElO U0VSVCBJTlRPIGRvY3VtZW50IFZBTFVFUwogICAgICggOSwgMjIsIDEsICdyZWdyZXNzX3Jsc19k YXZlJywgJ2F3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uJyksCiAgICAgKDEwLCAzMywgMiwgJ3JlZ3Jl c3NfcmxzX2RhdmUnLCAnYXdlc29tZSB0ZWNobm9sb2d5IGJvb2snKTsKIAorQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGFjY19jYXQKKyAgICBWRVJURVggVEFCTEVTICh1YWNjb3VudCwgY2F0ZWdvcnkp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBkb2N1bWVudAorICAgICAgICBTT1VSQ0UgS0VZ IChkYXV0aG9yKSBSRUZFUkVOQ0VTIHVhY2NvdW50IChwZ3VzZXIpCisgICAgICAgIERFU1RJTkFU SU9OIEtFWSAoY2lkKSBSRUZFUkVOQ0VTIGNhdGVnb3J5IChjaWQpKTsKK0dSQU5UIEFMTCBPTiBh Y2NfY2F0IFRPIHB1YmxpYzsKKwogQUxURVIgVEFCTEUgZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZF TCBTRUNVUklUWTsKIAogLS0gdXNlcidzIHNlY3VyaXR5IGxldmVsIG11c3QgYmUgaGlnaGVyIHRo YW4gb3IgZXF1YWwgdG8gZG9jdW1lbnQncwpAQCAtMTE2LDYgKzEyNCw5IEBAIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsK IFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlk OwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hFUkUgZl9s ZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNj X2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtk IDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZl bCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSB0cnkgYSBz YW1wbGVkIHZlcnNpb24KIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgVEFCTEVTQU1QTEUgQkVSTk9V TExJKDUwKSBSRVBFQVRBQkxFKDApCkBAIC0xMjUsNiArMTM2LDkgQEAgU0VMRUNUICogRlJPTSBk b2N1bWVudCBUQUJMRVNBTVBMRSBCRVJOT1VMTEkoNTApIFJFUEVBVEFCTEUoMCkKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIGRvY3Vt ZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIFNFTEVDVCAqIEZST00gZG9j dW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZf bGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwg Yy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdHJ5IGEgc2FtcGxlZCB2ZXJzaW9uCiBTRUxF Q1QgKiBGUk9NIGRvY3VtZW50IFRBQkxFU0FNUExFIEJFUk5PVUxMSSg1MCkgUkVQRUFUQUJMRSgw KQpAQCAtMTMyLDE0ICsxNDYsMjMgQEAgU0VMRUNUICogRlJPTSBkb2N1bWVudCBUQUJMRVNBTVBM RSBCRVJOT1VMTEkoNTApIFJFUEVBVEFCTEUoMCkKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBXSEVSRSBm X2xlYWsoZHRpdGxlKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFj Y291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdv cnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlk LCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAt LSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2RhdmU7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVh ayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgTkFUVVJBTCBK T0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBN QVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSld LT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUu cGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVS IEJZIGRpZDsKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdI RVJFIGZfbGVhayhkdGl0bGUpOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRv Y3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQg V0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUs IGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSA0NCB3b3VsZCB0ZWNobmljYWxs eSBmYWlsIGZvciBib3RoIHAyciBhbmQgcDFyLCBidXQgd2Ugc2hvdWxkIGdldCBhbiBlcnJvcgog LS0gYmFjayBmcm9tIHAxciBmb3IgdGhpcyBiZWNhdXNlIGl0IHNvcnRzIGZpcnN0CkBAIC0xNTgs MTQgKzE4MSwyMyBAQCBBTFRFUiBQT0xJQ1kgcDEgT04gZG9jdW1lbnQgVVNJTkcgKGRhdXRob3Ig PSBjdXJyZW50X3VzZXIpOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19i b2I7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJF IGZfbGVhayhkdGl0bGUpIE9SREVSIGJ5IGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50 KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5k bGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdmll d3BvaW50IGZyb20gcmxzX3JlZ3Jlc19jYXJvbCBhZ2FpbgogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9s ZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFM IEpPSU4gY2F0ZWdvcnkgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgYnkgZGlkOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxl KV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAo dS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JE RVIgQlkgZGlkOwogCiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9jdW1lbnQg V0hFUkUgZl9sZWFrKGR0aXRsZSk7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g ZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVu dCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRs ZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAKIC0tIGludGVyYWN0aW9uIG9mIEZL L1BLIGNvbnN0cmFpbnRzCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Fs aWNlOwpAQCAtMjAwLDMwICsyMzIsNDUgQEAgUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwog U0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQ7CiBTRUxFQ1Qg KiBGUk9NIGNhdGVnb3J5OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1l bnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0 bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSBkYXRhYmFzZSBzdXBlcnVz ZXIgZG9lcyBieXBhc3MgUkxTIHBvbGljeSB3aGVuIGRpc2FibGVkCiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gZG9j dW1lbnQ7CiBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291 bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBk LmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSBk YXRhYmFzZSBub24tc3VwZXJ1c2VyIHdpdGggYnlwYXNzIHByaXZpbGVnZSBjYW4gYnlwYXNzIFJM UyBwb2xpY3kgd2hlbiBkaXNhYmxlZAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19leGVtcHRfdXNlcjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJP TSBkb2N1bWVudDsKIFNFTEVDVCAqIEZST00gY2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1 YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRl Z29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5k aWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAK IC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZW5h YmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRVQg cm93X3NlY3VyaXR5IFRPIE9OOwogU0VMRUNUICogRlJPTSBkb2N1bWVudDsKIFNFTEVDVCAqIEZS T00gY2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBX SEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwg Yy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3Qg YXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZGlzYWJsZWQuCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBT RUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBN QVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSld LT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUu cGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVS IEJZIGRpZDsKIAogLS0KIC0tIFRhYmxlIGluaGVyaXRhbmNlIGFuZCBSTFMgcG9saWN5CkBAIC0y NjMsNiArMzEwLDEzIEBAIENPUFkgdDMoaWQsIGEsYixjKSBGUk9NIHN0ZGluOwogMzAzCTMJenp6 CVoKIFwuCiAKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBpdHBnCisgICAgVkVSVEVYIFRBQkxFUyAo CisgICAgICAgIHQxIEtFWShpZCkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpZCwgYSwgYiwg dGFibGVvaWQ6OnJlZ2NsYXNzIGFzIHRhYmxlb2lkKSwKKyAgICAgICAgdDIgS0VZKGlkKSBERUZB VUxUIExBQkVMIFBST1BFUlRJRVMgKGlkLCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xhc3MgYXMgdGFi bGVvaWQpLAorICAgICAgICB0MyBLRVkoaWQpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoaWQs IGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBhcyB0YWJsZW9pZCkpOworR1JBTlQgQUxMIE9OIGl0 cGcgVE8gcHVibGljOworCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHQxIEZPUiBBTEwgVE8gUFVCTElD IFVTSU5HIChhICUgMiA9IDApOyAtLSBiZSBldmVuIG51bWJlcgogQ1JFQVRFIFBPTElDWSBwMiBP TiB0MiBGT1IgQUxMIFRPIFBVQkxJQyBVU0lORyAoYSAlIDIgPSAxKTsgLS0gYmUgb2RkIG51bWJl cgogCkBAIC0yNzMsOSArMzI3LDEzIEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogCiBTRUxFQ1QgKiBGUk9NIHQxOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmlkLCB0 LmEsIHQuYikpOwogCiBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKTsKIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09M VU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVN TlMgKHQuaWQsIHQuYSwgdC5iKSk7CiAKIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29sdW1uCiBT RUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdDE7CkBAIC0yOTUsMTggKzM1MywyNSBA QCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpIEZP UiBTSEFSRTsKIC0tIHVuaW9uIGFsbCBxdWVyeQogU0VMRUNUIGEsIGIsIHRhYmxlb2lkOjpyZWdj bGFzcyBGUk9NIHQyIFVOSU9OIEFMTCBTRUxFQ1QgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIEZS T00gdDM7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xh c3MgRlJPTSB0MiBVTklPTiBBTEwgU0VMRUNUIGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBGUk9N IHQzOworLS0gbGFiZWwgZGlzanVuY3Rpb24KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0 cGcgTUFUQ0ggKHQgOiB0MiB8IHQzKSBDT0xVTU5TICh0LmEsIHQuYiwgdC50YWJsZW9pZCkpOwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0IDogdDIgfCB0MykgQ09MVU1OUyAodC5hLCB0LmIsIHQudGFibGVvaWQpKTsKIAogLS0gc3Vw ZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYnlwYXNzIFJMUyBjaGVja3MKIFJFU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJPTSB0MSBX SEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hF UkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQx IFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOwogCiAtLSBub24t c3VwZXJ1c2VyIHdpdGggYnlwYXNzIHByaXZpbGVnZSBjYW4gYnlwYXNzIFJMUyBwb2xpY3kgd2hl biBkaXNhYmxlZAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19leGVtcHRf dXNlcjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJPTSB0MSBXSEVSRSBm X2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9s ZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hF UkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxIFdIRVJF IGZfbGVhayh0LmIpKSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOwogCiAtLQogLS0gUGFydGl0 aW9uZWQgVGFibGVzCkBAIC0zNDQsNiArNDA5LDExIEBAIElOU0VSVCBJTlRPIHBhcnRfZG9jdW1l bnQgVkFMVUVTCiAgICAgKCA5LCAxMSwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAnYXdlc29tZSBz Y2llbmNlIGZpY3Rpb24nKSwKICAgICAoMTAsIDk5LCAyLCAncmVncmVzc19ybHNfZGF2ZScsICdh d2Vzb21lIHRlY2hub2xvZ3kgYm9vaycpOwogCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggcHRwZwor ICAgIFZFUlRFWCBUQUJMRVMgKHBhcnRfZG9jdW1lbnQgS0VZIChkaWQpLCBwYXJ0X2RvY3VtZW50 X3NhdGlyZSBLRVkgKGRpZCkpOworCitHUkFOVCBBTEwgT04gcHRwZyBUTyBwdWJsaWM7CisKIEFM VEVSIFRBQkxFIHBhcnRfZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogLS0g Q3JlYXRlIHBvbGljeSBvbiBwYXJlbnQKQEAgLTM2MywxNiArNDMzLDIyIEBAIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsK IFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBC WSBkaWQ7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBX SEVSRSBmX2xlYWsoZHRpdGxlKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFU Q0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQu ZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKSBPUkRFUiBCWSBkaWQ7 CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFU Q0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQu ZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKSBPUkRFUiBCWSBkaWQ7 CiAKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0 aG9yLCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0 aG9yLCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVz c19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwog U0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdI RVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRD SCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5k aWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9k b2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQu ZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIHBwMSBFUlJPUgogSU5TRVJUIElO VE8gcGFydF9kb2N1bWVudCBWQUxVRVMgKDEwMCwgMTEsIDUsICdyZWdyZXNzX3Jsc19kYXZlJywg J3Rlc3RpbmcgcHAxJyk7IC0tIGZhaWwKQEAgLTM4OCw2ICs0NjQsNyBAQCBJTlNFUlQgSU5UTyBw YXJ0X2RvY3VtZW50X3NhdGlyZSBWQUxVRVMgKDEwMCwgNTUsIDEsICdyZWdyZXNzX3Jsc19kYXZl JywgJ3Rlc3RpbgogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0 bGUpIE9SREVSIEJZIGRpZDsKIC0tIEJ1dCB3ZSBjYW4gaWYgd2UgbG9vayBkaXJlY3RseQogU0VM RUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRF UiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFy dF9kb2N1bWVudF9zYXRpcmUgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQs IGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogCiAtLSBUdXJuIG9uIFJM UyBhbmQgY3JlYXRlIHBvbGljeSBvbiBjaGlsZCB0byBzaG93IFJMUyBpcyBjaGVja2VkIGJlZm9y ZSBjb25zdHJhaW50cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKQEAgLTM5OSwxNSArNDc2LDIwIEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfZGF2ZTsKIElOU0VSVCBJTlRPIHBhcnRfZG9jdW1lbnRfc2F0aXJlIFZBTFVFUyAoMTAx LCA1NSwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBSTFMgd2l0aCBwYXJ0aXRpb25z Jyk7IC0tIGZhaWwKIC0tIEFuZCBub3cgd2UgY2Fubm90IHNlZSBkaXJlY3RseSBpbnRvIHRoZSBw YXJ0aXRpb24gZWl0aGVyLCBkdWUgdG8gUkxTCiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnRf c2F0aXJlIFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSBXSEVSRSBm X2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRo b3IsIGQuZHRpdGxlKSk7CiAtLSBUaGUgcGFyZW50IGxvb2tzIHNhbWUgYXMgYmVmb3JlCiAtLSB2 aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1l bnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVS RSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRh dXRob3IsIGQuZHRpdGxlKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0 aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0 bGUpKTsKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBX SEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBk LmRhdXRob3IsIGQuZHRpdGxlKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhk LmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5k dGl0bGUpKTsKIAogLS0gb25seSBvd25lciBjYW4gY2hhbmdlIHBvbGljaWVzCiBBTFRFUiBQT0xJ Q1kgcHAxIE9OIHBhcnRfZG9jdW1lbnQgVVNJTkcgKHRydWUpOyAgICAtLWZhaWwKQEAgLTQxOSwz NiArNTAxLDQ2IEBAIEFMVEVSIFBPTElDWSBwcDEgT04gcGFydF9kb2N1bWVudCBVU0lORyAoZGF1 dGhvciA9IGN1cnJlbnRfdXNlcik7CiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19ib2Ig YWdhaW4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNU ICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKIAogLS0gdmlld3BvaW50IGZyb20gcmxzX3JlZ3Jlc19j YXJvbCBhZ2FpbgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsK IFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBC WSBkaWQ7Ci0KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBN QVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAo ZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFy dF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQs IGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIGRhdGFiYXNlIHN1cGVydXNl ciBkb2VzIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZW5hYmxlZAogUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIFNFTEVDVCAqIEZST00gcGFydF9k b2N1bWVudCBPUkRFUiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1B VENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwg ZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGly ZSBPUkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKIAogLS0gZGF0YWJhc2Ugbm9uLXN1cGVydXNlciB3aXRo IGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93 X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBPUkRFUiBCWSBk aWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1 bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRs ZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7CitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudF9z YXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0 bGUpKTsKIAogLS0gUkxTIHBvbGljeSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lciB3aGVu IFJMUyBlbmFibGVkLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT047CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQg T1JERVIgYnkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnQpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhv ciwgZC5kdGl0bGUpKTsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIg YnkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRf ZG9jdW1lbnRfc2F0aXJlKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRo b3IsIGQuZHRpdGxlKSk7CiAKIC0tIFdoZW4gUkxTIGRpc2FibGVkLCBvdGhlciB1c2VycyBnZXQg RVJST1IuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7CiBTRVQg cm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBPUkRFUiBi eSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9k b2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0 aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7 CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVu dF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5k dGl0bGUpKTsKIAogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0aCBhIHBvbGljeSB0aGF0IHVzZXMgYSBT dWJQbGFuIG5vdCBhbiBJbml0UGxhbi4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYWxpY2U7CkBAIC00ODQsOSArNTc2LDExIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBkZXBlbmRlbnQ7IC0tIEFmdGVyIGRyb3AsIHNob3VsZCBiZSB1bnF1YWxpZmll CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRB QkxFIHJlYzEgKHggaW50ZWdlciwgeSBpbnRlZ2VyKTsKIENSRUFURSBQT0xJQ1kgcjEgT04gcmVj MSBVU0lORyAoeCA9IChTRUxFQ1Qgci54IEZST00gcmVjMSByIFdIRVJFIHkgPSByLnkpKTsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBydHBnIFZFUlRFWCBUQUJMRVMgKHJlYzEgS0VZICh4KSk7CiBB TFRFUiBUQUJMRSByZWMxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsgLS0gZmFp bCwgZGlyZWN0IHJlY3Vyc2lvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRD SCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgZGlyZWN0IHJlY3Vyc2lv bgogCiAtLQogLS0gTXV0dWFsIHJlY3Vyc2lvbgpAQCAtNDk5LDYgKzU5Myw3IEBAIEFMVEVSIFRB QkxFIHJlYzIgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHJlYzE7ICAgIC0tIGZhaWws IG11dHVhbCByZWN1cnNpb24KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0gg KHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24K IAogLS0KIC0tIE11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCkBAIC01MTIsNiArNjA3LDcgQEAg QUxURVIgUE9MSUNZIHIyIE9OIHJlYzIgVVNJTkcgKGEgPSAoU0VMRUNUIHggRlJPTSByZWMxdiBX SEVSRSB5ID0gYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Jv YjsKIFNFTEVDVCAqIEZST00gcmVjMTsgICAgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbiB2aWEg dmlld3MKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENP TFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCiAK IC0tCiAtLSBNdXR1YWwgcmVjdXJzaW9uIHZpYSAucy5iIHZpZXdzCkBAIC01MjgsNiArNjI0LDI0 IEBAIENSRUFURSBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIHJl YzF2IFdIRVJFIHkgPSBiKSk7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfYm9iOwogU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9u IHZpYSBzLmIuIHZpZXdzCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydHBnIE1BVENIIChy OiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpOyAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZp YSBzLmIuIHZpZXdzCisKKy0tCistLSBEaXJlY3QgYW5kIG11dHVhbCByZWN1cnNpb24gdmlhIEdS QVBIX1RBQkxFCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKK0FMVEVSIFBPTElDWSByMSBPTiByZWMxIFVTSU5HICh4ID0gKFNFTEVDVCB4IEZST00gR1JB UEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSkgV0hFUkUg eCA9IHkpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VM RUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBkaXJlY3QgcmVjdXJzaW9uIHZpYSBHUkFQSF9U QUJMRQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09M VU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgZGlyZWN0IHJlY3Vyc2lvbiB2aWEgR1JBUEhfVEFC TEUKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVS IFBST1BFUlRZIEdSQVBIIHJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJlYzIgS0VZIChhKSk7CitB TFRFUiBQT0xJQ1kgcjEgT04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1QgYSBGUk9NIEdSQVBIX1RB QkxFIChydHBnIE1BVENIIChyOiByZWMyKSBDT0xVTU5TIChyLmEsIHIuYikpIFdIRVJFIGIgPSB5 KSk7CitBTFRFUiBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIEdS QVBIX1RBQkxFIChydHBnIE1BVENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpV0hFUkUg eSA9IGIpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VM RUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSBHUkFQSF9U QUJMRQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09M VU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbiB2aWEgR1JBUEhfVEFC TEUKIAogLS0KIC0tIHJlY3Vyc2l2ZSBSTFMgYW5kIFZJRVdzIGluIHBvbGljeQpAQCAtNTM5LDcg KzY1MywxMCBAQCBJTlNFUlQgSU5UTyBzMSAoU0VMRUNUIHgsIHB1YmxpYy5maXBzaGFzaCh4Ojp0 ZXh0KSBGUk9NIGdlbmVyYXRlX3NlcmllcygtMTAsMTApCiBDUkVBVEUgVEFCTEUgczIgKHggaW50 LCB5IHRleHQpOwogSU5TRVJUIElOVE8gczIgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6 dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTYsNikgeCk7CiAKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBydnRwZyBWRVJURVggVEFCTEVTIChzMSBLRVkgKGEpKTsKKwogR1JBTlQgU0VMRUNUIE9O IHMxLCBzMiBUTyByZWdyZXNzX3Jsc19ib2I7CitHUkFOVCBTRUxFQ1QgT04gcnZ0cGcgVE8gcmVn cmVzc19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHMxIFVTSU5HIChhIGluIChzZWxl Y3QgeCBmcm9tIHMyIHdoZXJlIHkgbGlrZSAnJTJmJScpKTsKIENSRUFURSBQT0xJQ1kgcDIgT04g czIgVVNJTkcgKHggaW4gKHNlbGVjdCBhIGZyb20gczEgd2hlcmUgYiBsaWtlICclMjIlJykpOwpA QCAtNTUxLDYgKzY2OCw3IEBAIEFMVEVSIFRBQkxFIHMyIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJ VFk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBW SUVXIHYyIEFTIFNFTEVDVCAqIEZST00gczIgV0hFUkUgeSBsaWtlICclYWYlJzsKIFNFTEVDVCAq IEZST00gczEgV0hFUkUgZl9sZWFrKGIpOyAtLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24pCitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xl YWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOyAtLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24p CiAKIElOU0VSVCBJTlRPIHMxIFZBTFVFUyAoMSwgJ2ZvbycpOyAtLSBmYWlsIChpbmZpbml0ZSBy ZWN1cnNpb24pCiAKQEAgLTU2MSwxMiArNjc5LDE2IEBAIEFMVEVSIFBPTElDWSBwMiBPTiBzMiBV U0lORyAoeCAlIDIgPSAwKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Ym9iOwogU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWsoYik7CS0tIE9LCiBFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gb25seSBzMSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5i KSBDT0xVTU5TIChzLmEsIHMuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xV TU5TIChzLmEsIHMuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfcmxz X2FsaWNlOwogQUxURVIgUE9MSUNZIHAxIE9OIHMxIFVTSU5HIChhIGluIChzZWxlY3QgeCBmcm9t IHYyKSk7IC0tIHVzaW5nIFZJRVcgaW4gUkxTIHBvbGljeQogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHMxIFdIRVJFIGZfbGVhayhiKTsJ LS0gT0sKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWso Yik7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVS RSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xl YWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwogCiBTRUxFQ1QgKFNFTEVDVCB4IEZST00gczEg TElNSVQgMSkgeHgsICogRlJPTSBzMiBXSEVSRSB5IGxpa2UgJyUyOCUnOwogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKFNFTEVDVCB4IEZST00gczEgTElNSVQgMSkgeHgsICogRlJPTSBzMiBX SEVSRSB5IGxpa2UgJyUyOCUnOwpAQCAtNTc1LDExICs2OTcsMTUgQEAgU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIEFMVEVSIFBPTElDWSBwMiBPTiBzMiBVU0lO RyAoeCBpbiAoc2VsZWN0IGEgZnJvbSBzMSB3aGVyZSBiIGxpa2UgJyVkMiUnKSk7CiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gczEgV0hF UkUgZl9sZWFrKGIpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24gdmlhIHZpZXcpCitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWso cy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24gdmlh IHZpZXcpCiAKIC0tIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIHJlZ3Jlc3NfcmxzX2FsaWNlIHBy aXZpbGVnZQogUFJFUEFSRSBwMShpbnQpIEFTIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgYSA8PSAk MTsKIEVYRUNVVEUgcDEoMik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDEoMik7CitQ UkVQQVJFIHBwZzEoaW50KSBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0IDogdDEpIFdIRVJFIHQuYSA8PSAkMSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOworRVhF Q1VURSBwcGcxKDIpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzEoMik7CiAKIC0t IHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGJ5cGFzcyBSTFMgY2hlY2tzCiBSRVNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT047CkBAIC01OTAsMTYgKzcxNiwyMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpOwogLS0gcGxhbiBjYWNoZSBzaG91bGQg YmUgaW52YWxpZGF0ZWQKIEVYRUNVVEUgcDEoMik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcDEoMik7CitFWEVDVVRFIHBwZzEoMik7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUg cHBnMSgyKTsKIAogUFJFUEFSRSBwMihpbnQpIEFTIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgYSA9 ICQxOwogRVhFQ1VURSBwMigyKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigyKTsK K1BSRVBBUkUgcHBnMihpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQgOiB0MSkgV0hFUkUgdC5hID0gJDEgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VY RUNVVEUgcHBnMigyKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcyKDIpOwogCiAt LSBhbHNvLCBjYXNlIHdoZW4gcHJpdmlsZWdlIHN3aXRjaCBmcm9tIHN1cGVydXNlcgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRP IE9OOwogRVhFQ1VURSBwMigyKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigyKTsK K0VYRUNVVEUgcHBnMigyKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcyKDIpOwog CiAtLQogLS0gVVBEQVRFIC8gREVMRVRFIGFuZCBSb3ctbGV2ZWwgc2VjdXJpdHkKQEAgLTY3OCwx MSArODExLDE1IEBAIEdSQU5UIEFMTCBPTiBiMSBUTyByZWdyZXNzX3Jsc19ib2I7CiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVXIGJ2MSBXSVRI IChzZWN1cml0eV9iYXJyaWVyKSBBUyBTRUxFQ1QgKiBGUk9NIGIxIFdIRVJFIGEgPiAwIFdJVEgg Q0hFQ0sgT1BUSU9OOwogR1JBTlQgQUxMIE9OIGJ2MSBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBzYnZwZyBWRVJURVggVEFCTEVTIChidjEgS0VZIChhKSk7CitH UkFOVCBBTEwgT04gc2J2cGcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CiAKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiAKIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBidjEgV0hFUkUgZl9sZWFrKGIpOwogU0VMRUNUICogRlJPTSBidjEgV0hFUkUg Zl9sZWFrKGIpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChzYnZwZyBNQVRDSCAoYiA6IGJ2MSkgV0hFUkUgZl9sZWFrKGIuYikgQ09MVU1OUyAoYi5hLCBi LmIpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHNidnBnIE1BVENIIChiIDogYnYxKSBX SEVSRSBmX2xlYWsoYi5iKSBDT0xVTU5TIChiLmEsIGIuYikpOwogCiBJTlNFUlQgSU5UTyBidjEg VkFMVUVTICgtMSwgJ3h4eCcpOyAtLSBzaG91bGQgZmFpbCB2aWV3IFdDTwogSU5TRVJUIElOVE8g YnYxIFZBTFVFUyAoMTEsICd4eHgnKTsgLS0gc2hvdWxkIGZhaWwgUkxTIGNoZWNrCkBAIC0xMDI3 LDggKzExNjQsOSBAQCBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MSAoYSBpbnQsIGIgdGV4 dCk7CiBDUkVBVEUgVEFCTEUgejIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGd0cGcgVkVSVEVYIFRBQkxFUyAoejEgS0VZIChhKSwgejIgS0VZIChhKSk7CiAKLUdSQU5U IFNFTEVDVCBPTiB6MSx6MiBUTyByZWdyZXNzX3Jsc19ncm91cDEsIHJlZ3Jlc3NfcmxzX2dyb3Vw MiwKK0dSQU5UIFNFTEVDVCBPTiB6MSx6MiwgZ3RwZyBUTyByZWdyZXNzX3Jsc19ncm91cDEsIHJl Z3Jlc3NfcmxzX2dyb3VwMiwKICAgICByZWdyZXNzX3Jsc19ib2IsIHJlZ3Jlc3NfcmxzX2Nhcm9s OwogCiBJTlNFUlQgSU5UTyB6MSBWQUxVRVMKQEAgLTEwNDUsMzkgKzExODMsNjIgQEAgQUxURVIg VEFCTEUgejEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7 CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xl YWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIp IENPTFVNTlMgKHouYSwgei5iKSk7CiAKIFBSRVBBUkUgcGxhbmNhY2hlX3Rlc3QgQVMgU0VMRUNU ICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUg cGxhbmNhY2hlX3Rlc3Q7CitQUkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0IEFTIFNFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09M VU1OUyAoei5hLCB6LmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf cGdfdGVzdDsKIAogUFJFUEFSRSBwbGFuY2FjaGVfdGVzdDIgQVMgV0lUSCBxIEFTIE1BVEVSSUFM SVpFRCAoU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYikpIFNFTEVDVCAqIEZST00gcSx6 MjsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CitQUkVQQVJF IHBsYW5jYWNoZV9wZ190ZXN0MiBBUyBXSVRIIHEgQVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENP TFVNTlMoei5hLCB6LmIpKSkgU0VMRUNUICogRlJPTSBxLCBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoyKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVD VVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKIAogUFJFUEFSRSBwbGFuY2FjaGVfdGVzdDMgQVMgV0lU SCBxIEFTIE1BVEVSSUFMSVpFRCAoU0VMRUNUICogRlJPTSB6MikgU0VMRUNUICogRlJPTSBxLHox IFdIRVJFIGZfbGVhayh6MS5iKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2Fj aGVfdGVzdDM7CitQUkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0MyBBUyBXSVRIIHEgQVMgTUFURVJJ QUxJWkVEIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejIpIENP TFVNTlMoei5hLCB6LmIpKSkgU0VMRUNUICogRlJPTSBxLCBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKIAogU0VUIFJPTEUgcmVn cmVzc19ybHNfZ3JvdXAxOwogU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5i KSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVN TlMgKHouYSwgei5iKSk7CiAKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf dGVzdDsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CiBFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVD VVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfcGdfdGVzdDM7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Y2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMg KHouYSwgei5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAoei5hLCB6 LmIpKTsKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0OwogRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MjsKIEVYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNh Y2hlX3BnX3Rlc3QyOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190 ZXN0MzsKIAogU0VUIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAyOwogU0VMRUNUICogRlJPTSB6MSBX SEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hF UkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6 IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdI RVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CiAKIEVYUExBSU4gKENPU1RTIE9G RikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw bGFuY2FjaGVfdGVzdDI7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rl c3QzOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0OworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKK0VYUExBSU4gKENP U1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfcGdfdGVzdDM7CiAKIC0tCiAtLSBWaWV3cyBzaG91 bGQgZm9sbG93IHBvbGljeSBmb3IgdmlldyBvd25lci4KQEAgLTEwODUsMzUgKzEyNDYsNDggQEAg RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsKIC0tIFZpZXcgYW5k IFRhYmxlIG93bmVyIGFyZSB0aGUgc2FtZS4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVklFVyBybHNfdmlldyBBUyBTRUxFQ1QgKiBGUk9NIHox IFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJM RVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jl c3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAog LS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IG9yIHRhYmxlLiAgU2hv dWxkIHJldHVybiBhbGwgcmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVlcnkgYXMgdmlldy90YWJsZSBvd25lci4gIFNo b3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2FsaWNlOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0 cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmll dykgQ09MVU1OUyAoci5hLCByLmIpKTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1Ag VklFVyBybHNfdmlldzsKIAogLS0gVmlldyBhbmQgVGFibGUgb3duZXJzIGFyZSBkaWZmZXJlbnQu CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVX IHJsc192aWV3IEFTIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwogR1JBTlQgU0VM RUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIHZ0cGcgVkVSVEVYIFRBQkxFUyAocmxzX3ZpZXcgS0VZIChhKSk7CitHUkFOVCBTRUxFQ1Qg T04gdnRwZyBUTyByZWdyZXNzX3Jsc19hbGljZTsKIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlz IG5vdCBvd25lciBvZiB2aWV3IGJ1dCBpcyBvd25lciBvZiB0YWJsZS4KIC0tIFNob3VsZCByZXR1 cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVyIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CiBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIp KTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAKIC0tIFF1ZXJ5IGFzIHJv bGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdGFibGUgYnV0IGlzIG93bmVyIG9mIHZpZXcuCiAtLSBT aG91bGQgcmV0dXJuIHJlY29yZHMgYmFzZWQgb24gdmlldyBvd25lciBwb2xpY2llcy4KIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNf dmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChy LmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF ICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVl cnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0 aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Y2Fyb2w7CkBAIC0xMTIzLDEwICsxMjk3LDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiAtLSBRdWVyeSBh cyByb2xlIHRoYXQgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRoIHBl cm1pc3Npb25zLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBH UkFOVCBTRUxFQ1QgT04gcmxzX3ZpZXcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFOVCBTRUxF Q1QgT04gdnRwZyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CiBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CitTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK0VY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAo cjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAKIC0tIFBvbGljeSByZXF1aXJpbmcg YWNjZXNzIHRvIGFub3RoZXIgdGFibGUuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2FsaWNlOwpAQCAtMTEzOCwxMSArMTMxNSwxNSBAQCBDUkVBVEUgUE9MSUNZIHAzIE9O IHoxIEFTIFJFU1RSSUNUSVZFIFVTSU5HIChhIE5PVCBJTiAoU0VMRUNUIGEgRlJPTSB6MV9ibGFj a2xpcwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5p ZWQuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJs c192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4K IAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9y IHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsg LS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2 dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBv d25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIgb2YgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKQEAgLTExNTEsMTcgKzEz MzIsMjIgQEAgR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyByZWdyZXNzX3Jsc19ib2I7 CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZS T00gcmxzX3ZpZXc7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7 CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09M VU1OUyAoci5hLCByLmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAK IC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBvciB2 aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19hbGljZTsKIFJFVk9LRSBTRUxFQ1QgT04gejFfYmxhY2tsaXN0IEZST00gcmVncmVzc19y bHNfYm9iOwogRFJPUCBQT0xJQ1kgcDMgT04gejE7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOworRFJPUCBQUk9QRVJUWSBHUkFQSCB2dHBnOwogRFJPUCBWSUVX IHJsc192aWV3OwogCiAtLQpAQCAtMTE3MSw0NyArMTM1Nyw2NiBAQCBEUk9QIFZJRVcgcmxzX3Zp ZXc7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRF IFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJpdHlfaW52b2tlcikgQVMKICAgICBTRUxFQ1QgKiBG Uk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRF WCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRP IHJlZ3Jlc3NfcmxzX2JvYjsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Js c19jYXJvbDsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5U IFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogCiAtLSBRdWVyeSBhcyB0YWJs ZSBvd25lci4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRUxFQ1QgKiBGUk9NIHJsc192 aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIu YSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiAtLSBRdWVy aWVzIGFzIG90aGVyIHVzZXJzLgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1 cnJlbnQgdXNlcidzIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gVmlldyBhbmQgdGFibGUgb3duZXJzIGFyZSBkaWZm ZXJlbnQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOworRFJP UCBQUk9QRVJUWSBHUkFQSCB2dHBnOwogRFJPUCBWSUVXIHJsc192aWV3OwogCiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVXIHJsc192aWV3IFdJ VEggKHNlY3VyaXR5X2ludm9rZXIpIEFTCiAgICAgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xl YWsoYik7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdnRwZyBWRVJURVggVEFCTEVTIChybHNfdmll dyBLRVkgKGEpKTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19hbGlj ZTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0dSQU5U IFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIHZ0 cGcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CiAKIC0tIFF1ZXJ5IGFzIHRhYmxlIG93bmVyLiAgU2hv dWxkIHJldHVybiBhbGwgcmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRw ZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3 KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiAtLSBRdWVyaWVzIGFzIG90aGVyIHVzZXJzLgogLS0g U2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1cnJlbnQgdXNlcidzIHBvbGljaWVzLgog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9N IHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3Owor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJP TSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xV TU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAog LS0gUG9saWN5IHJlcXVpcmluZyBhY2Nlc3MgdG8gYW5vdGhlciB0YWJsZS4KIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CkBAIC0xMjIxLDExICsxNDI2LDE1IEBA IENSRUFURSBQT0xJQ1kgcDMgT04gejEgQVMgUkVTVFJJQ1RJVkUgVVNJTkcgKGEgTk9UIElOIChT RUxFQ1QgYSBGUk9NIHoxX2JsYWNrbGlzCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7IC0tZmFpbCAtIHBlcm1pc3Npb24g ZGVuaWVkLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAt IHBlcm1pc3Npb24gZGVuaWVkLgogCiAtLSBRdWVyeSBhcyByb2xlIHRoYXQgaXMgbm90IHRoZSBv d25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRob3V0IHBlcm1pc3Npb25zLgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gcmxzX3Zp ZXc7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEs IHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogCiAtLSBRdWVyeSBh cyByb2xlIHRoYXQgaXMgbm90IG93bmVyIG9mIHRhYmxlIGJ1dCBpcyBvd25lciBvZiB2aWV3IHdp dGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Fs aWNlOwpAQCAtMTIzNCwxMSArMTQ0MywxNSBAQCBHUkFOVCBTRUxFQ1QgT04gejFfYmxhY2tsaXN0 IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFU Q0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09M VU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3du ZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCBy LmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIAogLS0gUXVlcnkgYXMg cm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0aCBwZXJt aXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CkBA IC0xMjQ3LDggKzE0NjAsMTEgQEAgR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAo cjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Jv YjsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1AgVklFVyBybHNfdmlldzsKIAogLS0K QEAgLTEyNTcsNyArMTQ3Myw5IEBAIERST1AgVklFVyBybHNfdmlldzsKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiAKIENSRUFURSBUQUJMRSB4MSAoYSBpbnQs IGIgdGV4dCwgYyB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjc3RwZyBWRVJURVggVEFC TEVTICh4MSBLRVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB4MSBUTyBQVUJMSUM7CitHUkFOVCBBTEwg T04gY3N0cGcgVE8gUFVCTElDOwogCiBJTlNFUlQgSU5UTyB4MSBWQUxVRVMKICAgICAoMSwgJ2Fi YycsICdyZWdyZXNzX3Jsc19ib2InKSwKQEAgLTEyNzksMTAgKzE0OTcsMTIgQEAgQUxURVIgVEFC TEUgeDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHgxIFdIRVJFIGZfbGVhayhiKSBP UkRFUiBCWSBhIEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNzdHBnIE1BVENIICh4 IDogeDEpIFdIRVJFIGZfbGVhayh4LmIpIENPTFVNTlMgKHguYSwgeC5iLCB4LmMpKSBPUkRFUiBC WSBhIEFTQzsKIFVQREFURSB4MSBTRVQgYiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikg UkVUVVJOSU5HICo7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBTRUxFQ1QgKiBGUk9NIHgxIFdIRVJFIGZfbGVhayhiKSBPUkRFUiBCWSBhIEFTQzsKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNzdHBnIE1BVENIICh4IDogeDEpIFdIRVJFIGZfbGVh ayh4LmIpIENPTFVNTlMgKHguYSwgeC5iLCB4LmMpKSBPUkRFUiBCWSBhIEFTQzsKIFVQREFURSB4 MSBTRVQgYiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBERUxF VEUgRlJPTSB4MSBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiAKQEAgLTEyOTIsOCArMTUx MiwxMCBAQCBERUxFVEUgRlJPTSB4MSBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRBQkxFIHkx IChhIGludCwgYiB0ZXh0KTsKIENSRUFURSBUQUJMRSB5MiAoYSBpbnQsIGIgdGV4dCk7CitDUkVB VEUgUFJPUEVSVFkgR1JBUEggc3ZidHBnIFZFUlRFWCBUQUJMRVMgKHkxIEtFWSAoYSksIHkyIEtF WSAoYSkpOwogCiBHUkFOVCBBTEwgT04geTEsIHkyIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5U IEFMTCBPTiBzdmJ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9O IHkxIEZPUiBBTEwgVVNJTkcgKGEgJSAyID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHkxIEZP UiBTRUxFQ1QgVVNJTkcgKGEgPiAyKTsKQEAgLTEzMTAsNyArMTUzMiwxMCBAQCBBTFRFUiBUQUJM RSB5MiBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBWSUVXIHJsc19zYnYgV0lUSCAoc2VjdXJpdHlf YmFycmllcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHkxIFdIRVJFIGZfbGVhayhiKTsKK0FMVEVS IFBST1BFUlRZIEdSQVBIIHN2YnRwZyBBREQgVkVSVEVYIFRBQkxFUyAocmxzX3NidiBLRVkgKGEp KTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfc2J2IFdIRVJFIChhID0g MSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHN2YnRw ZyBNQVRDSCAocjogcmxzX3NidikgV0hFUkUgci5hID0gMSBDT0xVTU5TIChyLmEsIHIuYikpOwor QUxURVIgUFJPUEVSVFkgR1JBUEggc3ZidHBnIERST1AgVkVSVEVYIFRBQkxFUyAocmxzX3Nidik7 CiBEUk9QIFZJRVcgcmxzX3NidjsKIAogLS0gQ3JlYXRlIHZpZXcgYXMgcm9sZSB0aGF0IGRvZXMg bm90IG93biB0YWJsZS4gIFJMUyBzaG91bGQgYmUgYXBwbGllZC4KQEAgLTEzMzEsMTIgKzE1NTYs MTYgQEAgQ1JFQVRFIFBPTElDWSBwMyBPTiB5MiBVU0lORyAoYSAlIDQgPSAwKTsKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB5MiBXSEVS RSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00geTIgV0hFUkUg Zl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5 MikgV0hFUkUgZl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5MikgV0hF UkUgZl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKIAogLS0KIC0tIFF1YWwgcHVzaC1k b3duIG9mIGxlYWt5IGZ1bmN0aW9ucywgd2hlbiBub3QgcmVmZXJyaW5nIHRvIHRhYmxlCiAtLQog U0VMRUNUICogRlJPTSB5MiBXSEVSRSBmX2xlYWsoJ2FiYycpOwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHkyIFdIRVJFIGZfbGVhaygnYWJjJyk7CitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoJ2FiYycpIENPTFVN TlMgKHkuYSwgeS5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHN2YnRwZyBNQVRDSCAoeTogeTIpIFdIRVJFIGZfbGVhaygnYWJjJykgQ09MVU1OUyAo eS5hLCB5LmIpKTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RfcXVhbF9wdXNoZG93biAoCiAgICAgYWJj IHRleHQKQEAgLTEzNTcsMTIgKzE1ODYsMTcgQEAgRFJPUCBUQUJMRSB0ZXN0X3F1YWxfcHVzaGRv d247CiAtLQogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogCitEUk9QIFBST1BFUlRZIEdS QVBIIGl0cGc7CiBEUk9QIFRBQkxFIHQxIENBU0NBREU7CiAKIENSRUFURSBUQUJMRSB0MSAoYSBp bnRlZ2VyKTsKIAogR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVz c19ybHNfY2Fyb2w7CiAKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBpdHBnIFZFUlRFWCBUQUJMRVMg KHQxIEtFWShhKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYiwg cmVncmVzc19ybHNfY2Fyb2w7CisKIENSRUFURSBQT0xJQ1kgcDEgT04gdDEgVE8gcmVncmVzc19y bHNfYm9iIFVTSU5HICgoYSAlIDIpID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHQxIFRPIHJl Z3Jlc3NfcmxzX2Nhcm9sIFVTSU5HICgoYSAlIDQpID0gMCk7CiAKQEAgLTEzNzEsMzAgKzE2MDUs MzcgQEAgQUxURVIgVEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIC0tIFByZXBh cmUgYXMgcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ib2I7CiBQUkVQQVJF IHJvbGVfaW52YWwgQVMgU0VMRUNUICogRlJPTSB0MTsKK1BSRVBBUkUgcm9sZV9pbnZhbF9wZyBB UyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAo dC5hKSk7CiAtLSBDaGVjayBwbGFuCiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9p bnZhbDsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSByb2xlX2ludmFsX3BnOwogCiAtLSBD aGFuZ2UgdG8gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBST0xFIHJlZ3Jlc3NfcmxzX2Nhcm9sOwog LS0gQ2hlY2sgcGxhbi0gc2hvdWxkIGJlIGRpZmZlcmVudAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBF WEVDVVRFIHJvbGVfaW52YWw7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZh bF9wZzsKIAogLS0gQ2hhbmdlIGJhY2sgdG8gcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdy ZXNzX3Jsc19ib2I7CiAtLSBDaGVjayBwbGFuLSBzaG91bGQgYmUgYmFjayB0byBvcmlnaW5hbAog RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWw7CitFWFBMQUlOIChDT1NUUyBP RkYpIEVYRUNVVEUgcm9sZV9pbnZhbF9wZzsKIAogLS0KIC0tIENURSBhbmQgUkxTCiAtLQogUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJP UCBUQUJMRSB0MSBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIHQxIChhIGludGVnZXIsIGIgdGV4dCk7 CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggaXRwZyBWRVJURVggVEFCTEVTICh0MSBLRVkoYSkpOwog Q1JFQVRFIFBPTElDWSBwMSBPTiB0MSBVU0lORyAoYSAlIDIgPSAwKTsKIAogQUxURVIgVEFCTEUg dDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogR1JBTlQgQUxMIE9OIHQxIFRPIHJlZ3Jl c3NfcmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBpdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAogSU5T RVJUIElOVE8gdDEgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMCwyMCkgeCk7CiAKQEAgLTE0MDMsNiArMTY0NCw5IEBAIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogV0lUSCBjdGUxIEFTIE1BVEVSSUFMSVpF RCAoU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYikpIFNFTEVDVCAqIEZST00gY3RlMTsK IEVYUExBSU4gKENPU1RTIE9GRikKIFdJVEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAq IEZST00gdDEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CitXSVRIIGN0ZTEg QVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgV0hFUkUgZl9sZWFrKHQuYikgQ09MVU1OUyAodC5hLCB0LmIpKSkgU0VMRUNUICogRlJP TSBjdGUxOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBjdGUxIEFTIE1BVEVSSUFMSVpFRCAo U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIFdIRVJFIGZfbGVh ayh0LmIpIENPTFVNTlMgKHQuYSwgdC5iKSkpIFNFTEVDVCAqIEZST00gY3RlMTsKIAogV0lUSCBj dGUxIEFTIChVUERBVEUgdDEgU0VUIGEgPSBhICsgMSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJP TSBjdGUxOyAtLWZhaWwKIFdJVEggY3RlMSBBUyAoVVBEQVRFIHQxIFNFVCBhID0gYSBSRVRVUk5J TkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLW9rCkBAIC0xNDQxLDYgKzE2ODUsMTYgQEAgQ1JF QVRFIFRBQkxFIHQzIEFTIFNFTEVDVCAqIEZST00gdDE7CiBTRUxFQ1QgKiBGUk9NIHQzOwogU0VM RUNUICogSU5UTyB0NCBGUk9NIHQxOwogU0VMRUNUICogRlJPTSB0NDsKK0RST1AgVEFCTEUgdDIs IHQzLCB0NDsKK0NSRUFURSBUQUJMRSB0MiAoYSBpbnRlZ2VyLCBiIHRleHQpOworSU5TRVJUIElO VE8gdDIgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xV TU5TICh0LmEsIHQuYikpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgSU5TRVJUIElOVE8gdDIgKFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEs IHQuYikpKTsKK1NFTEVDVCAqIEZST00gdDI7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gdDI7CitDUkVBVEUgVEFCTEUgdDMgQVMgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo aXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitTRUxFQ1QgKiBGUk9NIHQz OworU0VMRUNUICogSU5UTyB0NCBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkg Q09MVU1OUyAodC5hLCB0LmIpKTsKK1NFTEVDVCAqIEZST00gdDQ7CiAKIC0tCiAtLSBSTFMgd2l0 aCBKT0lOCkBAIC0xNDQ4LDggKzE3MDIsMTUgQEAgU0VMRUNUICogRlJPTSB0NDsKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVEFCTEUgYmxvZyAo aWQgaW50ZWdlciwgYXV0aG9yIHRleHQsIHBvc3QgdGV4dCk7CiBDUkVBVEUgVEFCTEUgY29tbWVu dCAoYmxvZ19pZCBpbnRlZ2VyLCBtZXNzYWdlIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGp0cGcKKyAgICBWRVJURVggVEFCTEVTIChibG9nIEtFWSAoaWQpKQorICAgIEVER0UgVEFCTEVT CisgICAgKGNvbW1lbnQgS0VZIChibG9nX2lkKQorICAgICBTT1VSQ0UgS0VZIChibG9nX2lkKSBS RUZFUkVOQ0VTIGJsb2coaWQpCisgICAgIERFU1RJTkFUSU9OIEtFWSAoYmxvZ19pZCkgUkVGRVJF TkNFUyBibG9nKGlkKSk7CiAKIEdSQU5UIEFMTCBPTiBibG9nLCBjb21tZW50IFRPIHJlZ3Jlc3Nf cmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBqdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAogQ1JFQVRF IFBPTElDWSBibG9nXzEgT04gYmxvZyBVU0lORyAoaWQgJSAyID0gMCk7CiAKQEAgLTE0NzUsNiAr MTczNiw3IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VM RUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBibG9nIEpPSU4gY29tbWVudCBPTiBpZCA9IGJs b2dfaWQ7CiAtLSBDaGVjayBOb24tUkxTIEpPSU4gd2l0aCBSTFMuCiBTRUxFQ1QgaWQsIGF1dGhv ciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9JTiBibG9nIE9OIGlkID0gYmxvZ19pZDsKK1NFTEVD VCBpZCwgYXV0aG9yLCBtZXNzYWdlIEZST00gR1JBUEhfVEFCTEUgKGp0cGcgTUFUQ0ggKGI6IGJs b2cpLVtjOiBjb21tZW50XS0+KGIpIENPTFVNTlMgKGIuaWQgQVMgaWQsIGIuYXV0aG9yIEFTIGF1 dGhvciwgYy5tZXNzYWdlIEFTIG1lc3NhZ2UpKTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgY29tbWVudF8xIE9OIGNvbW1lbnQg VVNJTkcgKGJsb2dfaWQgPCA0KTsKQEAgLTE0ODUsOCArMTc0NywxMCBAQCBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIC0tIENoZWNrIFJMUyBKT0lOIFJMUwogU0VM RUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBibG9nIEpPSU4gY29tbWVudCBPTiBpZCA9IGJs b2dfaWQ7CiBTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9JTiBibG9n IE9OIGlkID0gYmxvZ19pZDsKK1NFTEVDVCBpZCwgYXV0aG9yLCBtZXNzYWdlIEZST00gR1JBUEhf VEFCTEUgKGp0cGcgTUFUQ0ggKGI6IGJsb2cpLVtjOiBjb21tZW50XS0+KGIpIENPTFVNTlMgKGIu aWQgQVMgaWQsIGIuYXV0aG9yIEFTIGF1dGhvciwgYy5tZXNzYWdlIEFTIG1lc3NhZ2UpKTsKIAog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVS VFkgR1JBUEgganRwZzsKIERST1AgVEFCTEUgYmxvZywgY29tbWVudDsKIAogLS0KQEAgLTE0OTUs MjUgKzE3NTksMzQgQEAgRFJPUCBUQUJMRSBibG9nLCBjb21tZW50OwogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOwogRFJPUCBQT0xJQ1kgcDIgT04gdDE7CiBBTFRFUiBUQUJMRSB0MSBPV05F UiBUTyByZWdyZXNzX3Jsc19hbGljZTsKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJlZ3Jlc3Nf cmxzX2FsaWNlOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0 byBzdXBlcnVzZXIuCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBTRUxFQ1QgKiBGUk9N IHQxOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVu eSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lci4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHQxOwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBN QVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEs IHQuYikpOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBhcHBsaWVzIHRvIG5vbi1vd25l ci9ub24tc3VwZXJ1c2VyIHdoZW4gUkxTIG9uLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogU0VMRUNUICogRlJPTSB0 MTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB0MTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6 IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsK IAogLS0KIC0tIENPUFkgVE8vRlJPTQpAQCAtMTUyMiwxMSArMTc5NSwxMyBAQCBFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CiBEUk9QIFRBQkxFIGNvcHlfdCBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIGNvcHlfdCAoYSBpbnRl Z2VyLCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGN0cGcgVkVSVEVYIFRBQkxFUyAo Y29weV90IEtFWSAoYSkpOwogQ1JFQVRFIFBPTElDWSBwMSBPTiBjb3B5X3QgVVNJTkcgKGEgJSAy ID0gMCk7CiAKIEFMVEVSIFRBQkxFIGNvcHlfdCBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwog CiBHUkFOVCBBTEwgT04gY29weV90IFRPIHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVzc19ybHNfZXhl bXB0X3VzZXI7CitHUkFOVCBBTEwgT04gY3RwZyBUTyByZWdyZXNzX3Jsc19ib2IsIHJlZ3Jlc3Nf cmxzX2V4ZW1wdF91c2VyOwogCiBJTlNFUlQgSU5UTyBjb3B5X3QgKFNFTEVDVCB4LCBwdWJsaWMu Zmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCwxMCkgeCk7CiAKQEAgLTE1 MzQsMjkgKzE4MDksMzcgQEAgSU5TRVJUIElOVE8gY29weV90IChTRUxFQ1QgeCwgcHVibGljLmZp cHNoYXNoKHg6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDAsMTAKIFJFU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNUICog RlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7 CitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3Qp IENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElN SVRFUiAnLCc7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBj b3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CitDT1BZ IChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVN TlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAn LCc7CiAKIC0tIENoZWNrIENPUFkgVE8gYXMgdXNlciB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRP IE9GRjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90IE9SREVSIEJZIGEgQVNDKSBUTyBTVERP VVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSB3b3VsZCBiZSBhZmZlY3RlZCBieSBSTFMK K0NPUFkgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkg Q09MVU1OUyAoYy5hLCBjLmIpKSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1J VEVSICcsJzsgLS1mYWlsIC0gd291bGQgYmUgYWZmZWN0ZWQgYnkgUkxTCiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRP IFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKK0NPUFkgKFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIpKSBPUkRF UiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsKIAogLS0gQ2hlY2sgQ09Q WSBUTyBhcyB1c2VyIHdpdGggcGVybWlzc2lvbnMgYW5kIEJZUEFTU1JMUwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKIFNFVCByb3dfc2VjdXJpdHkg VE8gT0ZGOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNU RE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKK0NPUFkgKFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIpKSBPUkRFUiBC WSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsKIFNFVCByb3dfc2VjdXJpdHkg VE8gT047CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RE T1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vaworQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZ IGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwogCiAtLSBDaGVjayBDT1BZIFRP IGFzIHVzZXIgd2l0aG91dCBwZXJtaXNzaW9ucy4gU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VUIHJvd19zZWN1 cml0eSBUTyBPRkY7CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykg VE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1mYWlsIC0gd291bGQgYmUgYWZmZWN0ZWQg YnkgUkxTCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBj b3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRI IERFTElNSVRFUiAnLCc7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICog RlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7 IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkg YSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CiAKIC0tIENoZWNrIENPUFkgcmVs YXRpb24gVE87IGtlZXAgaXQganVzdCBvbmUgcm93IHRvIGF2b2lkIHJlb3JkZXJpbmcgaXNzdWVz CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CkBAIC0xNjc0LDYgKzE5NTcsNyBAQCBTRVQg cm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSBjb3B5X3QgRlJPTSBTVERJTjsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCiAKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0RST1AgUFJP UEVSVFkgR1JBUEggY3RwZzsKIERST1AgVEFCTEUgY29weV90OwogRFJPUCBUQUJMRSBjb3B5X3Jl bF90byBDQVNDQURFOwogCkBAIC0xNzY5LDEyICsyMDUzLDE1IEBAIFNFTEVDVCBhdHRuYW1lLCBt b3N0X2NvbW1vbl92YWxzIEZST00gcGdfc3RhdHMKIC0tCiBCRUdJTjsKIENSRUFURSBUQUJMRSBj b2xsX3QgKGMpIEFTIFZBTFVFUyAoJ2Jhcic6OnRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGNsdHBnIFZFUlRFWCBUQUJMRVMgKGNvbGxfdCBLRVkgKGMpKTsKIENSRUFURSBQT0xJQ1kgY29s bF9wIE9OIGNvbGxfdCBVU0lORyAoYyA8ICgnZm9vJzo6dGV4dCBDT0xMQVRFICJDIikpOwogQUxU RVIgVEFCTEUgY29sbF90IEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBTRUxFQ1Qg T04gY29sbF90IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIGNsdHBnIFRP IHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VMRUNUIChzdHJpbmdfdG9fYXJyYXkocG9scXVhbCwgJzon KSlbN10gQVMgaW5wdXRjb2xsaWQgRlJPTSBwZ19wb2xpY3kgV0hFUkUgcG9scmVsaWQgPSAnY29s bF90Jzo6cmVnY2xhc3M7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Fs aWNlOwogU0VMRUNUICogRlJPTSBjb2xsX3Q7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChj bHRwZyBNQVRDSCAoYzogY29sbF90KSBDT0xVTU5TIChjLmMpKTsKIFJPTExCQUNLOwogCiAtLQpA QCAtMTgzNyw4ICsyMTI0LDkgQEAgQ1JFQVRFIFRBQkxFIHIxIChhIGludCk7CiBDUkVBVEUgVEFC TEUgcjIgKGEgaW50KTsKIElOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMTApLCAoMjApOwogSU5TRVJU IElOVE8gcjIgVkFMVUVTICgxMCksICgyMCk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdHJ0cGcg VkVSVEVYIFRBQkxFUyAocjIgS0VZIChhKSk7CiAKLUdSQU5UIEFMTCBPTiByMSwgcjIgVE8gcmVn cmVzc19ybHNfYm9iOworR1JBTlQgQUxMIE9OIHIxLCByMiwgdHJ0cGcgVE8gcmVncmVzc19ybHNf Ym9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHIxIFVTSU5HICh0cnVlKTsKIEFMVEVSIFRBQkxF IHIxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC0xODY0LDggKzIxNTIsMTQgQEAgVVBE QVRFIHIxIFNFVCBhID0gcjIuYSArIDIgRlJPTSByMiBXSEVSRSByMS5hID0gcjIuYSBSRVRVUk5J TkcgKjsgLS0gT0sKIERFTEVURSBGUk9NIHIxIFVTSU5HIHIyIFdIRVJFIHIxLmEgPSByMi5hICsg MiBSRVRVUk5JTkcgKjsgLS0gT0sKIFNFTEVDVCAqIEZST00gcjE7CiBTRUxFQ1QgKiBGUk9NIHIy OworSU5TRVJUIElOVE8gcjEgU0VMRUNUIGEgRlJPTSBHUkFQSF9UQUJMRSAodHJ0cGcgTUFUQ0gg KHI6IHIyKSBDT0xVTU5TIChyLmEpKSByMiBSRVRVUk5JTkcgKjsgLS0gT0sKK1VQREFURSByMSBT RVQgYSA9IHIyLmEgKyAyIEZST00gR1JBUEhfVEFCTEUgKHRydHBnIE1BVENIIChyOiByMikgQ09M VU1OUyAoci5hKSkgcjIgV0hFUkUgcjEuYSA9IHIyLmEgUkVUVVJOSU5HICo7IC0tIE9LCitERUxF VEUgRlJPTSByMSBVU0lORyBHUkFQSF9UQUJMRSAodHJ0cGcgTUFUQ0ggKHI6IHIyKSBDT0xVTU5T IChyLmEpKSByMiBXSEVSRSByMS5hID0gcjIuYSArIDIgUkVUVVJOSU5HICo7IC0tIE9LCitTRUxF Q1QgKiBGUk9NIHIxOworU0VMRUNUICogRlJPTSByMjsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdHJ0cGc7CiBEUk9Q IFRBQkxFIHIxOwogRFJPUCBUQUJMRSByMjsKIApAQCAtMTg3NSw2ICsyMTY5LDcgQEAgRFJPUCBU QUJMRSByMjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBT RVQgcm93X3NlY3VyaXR5ID0gb247CiBDUkVBVEUgVEFCTEUgcjEgKGEgaW50KTsKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBmcmxzdHBnIFZFUlRFWCBUQUJMRVMgKHIxIEtFWSAoYSkpOwogSU5TRVJU IElOVE8gcjEgVkFMVUVTICgxMCksICgyMCk7CiAKIENSRUFURSBQT0xJQ1kgcDEgT04gcjEgVVNJ TkcgKGZhbHNlKTsKQEAgLTE4ODMsNiArMjE3OCw3IEBAIEFMVEVSIFRBQkxFIHIxIEZPUkNFIFJP VyBMRVZFTCBTRUNVUklUWTsKIAogLS0gTm8gZXJyb3IsIGJ1dCBubyByb3dzCiBUQUJMRSByMTsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGZybHN0cGcgTUFUQ0ggKHI6IHIxKSBDT0xVTU5T IChyLmEpKTsKIAogLS0gUkxTIGVycm9yCiBJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEpOwpAQCAt MTg5OCw5ICsyMTk0LDExIEBAIFRBQkxFIHIxOwogU0VUIHJvd19zZWN1cml0eSA9IG9mZjsKIC0t IHRoZXNlIGFsbCBmYWlsLCB3b3VsZCBiZSBhZmZlY3RlZCBieSBSTFMKIFRBQkxFIHIxOworU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZnJsc3RwZyBNQVRDSCAocjogcjEpIENPTFVNTlMgKHIu YSkpOwogVVBEQVRFIHIxIFNFVCBhID0gMTsKIERFTEVURSBGUk9NIHIxOwogCitEUk9QIFBST1BF UlRZIEdSQVBIIGZybHN0cGc7CiBEUk9QIFRBQkxFIHIxOwogCiAtLQpAQCAtMjE2Niw5ICsyNDY0 LDExIEBAIERST1AgVEFCTEUgcmVmX3RibDsKIENSRUFURSBUQUJMRSBybHNfdGJsIChhIGludCk7 CiBJTlNFUlQgSU5UTyBybHNfdGJsIFNFTEVDVCB4LzEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgeDsKIEFOQUxZWkUgcmxzX3RibDsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBsb3RwZyBW RVJURVggVEFCTEVTIChybHNfdGJsIEtFWSAoYSkpOwogCiBBTFRFUiBUQUJMRSBybHNfdGJsIEVO QUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3RibCBUTyByZWdy ZXNzX3Jsc19hbGljZTsKK0dSQU5UIFNFTEVDVCBPTiBsb3RwZyBUTyByZWdyZXNzX3Jsc19hbGlj ZTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFU RSBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KSBSRVRVUk5TIGJvb2wKQEAgLTIxNzgsOSArMjQ3 OCwxMiBAQCBDUkVBVEUgT1BFUkFUT1IgPDw8IChwcm9jZWR1cmUgPSBvcF9sZWFrLCBsZWZ0YXJn ID0gaW50LCByaWdodGFyZyA9IGludCwKICAgICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0ID0g c2NhbGFybHRzZWwpOwogU0VMRUNUICogRlJPTSBybHNfdGJsIFdIRVJFIGEgPDw8IDEwMDA7CiBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3RibCBXSEVSRSBhIDw8PCAxMDAw IG9yIGEgPDw8IDkwMDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGxvdHBnIE1BVENIIChy OiBybHNfdGJsKSBXSEVSRSByLmEgPDw8IDEwMDAgQ09MVU1OUyAoci5hKSk7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChsb3RwZyBNQVRDSCAocjogcmxzX3RibCBXSEVSRSByLmEgPDw8IDEw MDApIENPTFVNTlMgKHIuYSkpOwogRFJPUCBPUEVSQVRPUiA8PDwgKGludCwgaW50KTsKIERST1Ag RlVOQ1RJT04gb3BfbGVhayhpbnQsIGludCk7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CitEUk9QIFBST1BFUlRZIEdSQVBIIGxvdHBnOwogRFJPUCBUQUJMRSBybHNfdGJsOwogCiAtLSBC dWcgIzE2MDA2OiB3aG9sZS1yb3cgVmFycyBpbiBhIHBvbGljeSBkb24ndCBwbGF5IG5pY2Ugd2l0 aCBzdWItc2VsZWN0cwotLSAKMi4zNC4xCgo= --0000000000005b1525062884640f Content-Type: text/x-patch; charset="US-ASCII"; name="0006-Property-collation-and-edge-vertex-link-sup-20241205.patch" Content-Disposition: attachment; filename="0006-Property-collation-and-edge-vertex-link-sup-20241205.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4b8yquw5 RnJvbSBmN2UzY2ZhNDIzMmJkODU2ZjIxYWI4YjYzOTFjODgwNDI0YTc2M2MyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAyNCAxNjozNjoyNyArMDUzMApTdWJqZWN0OiBb UEFUQ0ggNi84XSBQcm9wZXJ0eSBjb2xsYXRpb24gYW5kIGVkZ2UtdmVydGV4IGxpbmsgc3VwcG9y dAoKVGhlIGNvbW1pdCBoYXMgZm9sbG93aW5nIGNoYW5nZXMuCgoxLiBjb2xsYXRpb24gb2YgYSBw cm9wZXJ0eQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGUgdmFsdWVzIHdpdGggZGlmZmVy aW5nIGNvbGxhdGlvbnMgY2FuIG5vdCBiZSBjb2xsYXRlZC4gVGhpcyBtZWFucwp0aGF0IHdlIHdp bGwgbm90IGFibGUgdG8gY29tcGFyZSwgc29ydCwgb3Igb3JkZXIgdmFsdWVzIG9mIHByb3BlcnRp ZXMKd2l0aCB0aGUgc2FtZSBuYW1lIGlmIHRoZXkgaGF2ZSBkaWZmZXJlbnQgY29sbGF0aW9ucyBp biBkaWZmZXJlbnQKZWxlbWVudHMgb3IgZGlmZmVyZW50IGxhYmVscy4gIFRoaXMgcmVzdHJpY3Rz IHRoZSBwcm9wZXJ0eSdzIHVzYWdlIGluCmdyYXBoIHRhYmxlIHF1ZXJ5LiBIZW5jZSB0aGUgY29s bGF0aW9uIG9mIGFsbCB0aGUgcHJvcGVydGllcyB3aXRoIHRoZQpzYW1lIG5hbWUgbmVlZHMgdG8g YmUgdGhlIHNhbWUuIEVuZm9yY2UgdGhpcy4KCk9mdGVuIHRoZSBjb2xsYXRpb24gb2YgYSBwcm9w ZXJ0eSByZWZlcmVuY2UgaXMgcmVxdWlyZWQgYmVmb3JlCmdyYXBoX3RhYmxlIGlzIHJld3JpdHRl bi4gRm9yIGV4YW1wbGUsIGFzc2lnbl9xdWVyeV9jb2xsYXRpb24oKSBpcwpjYWxsZWQgZHVyaW5n IHRyYW5zZm9ybVNlbGVjdFN0bXQoKSB3aGljaCBpcyBjYWxsZWQgYmVmb3JlIGNhbGxpbmcKcmV3 cml0ZUdyYXBoVGFibGUoKS4gSGVuY2UgdGhlIGNvbGxhdGlvbiBvZiBhIHByb3BlcnR5IG5lZWRz IHRvIGJlCmFjY2Vzc2libGUgYmVmb3JlIGFueSBwcm9wZXJ0eSByZWZlcmVuY2UgaXMgYWNjZXNz ZWQuIEhlbmNlIHRoZQpjb2xsYXRpb24gb2YgYSBwcm9wZXJ0eSBpcyBzdG9yZWQgaW4gcGdfcHJv cGdyYXBoX3Byb3BlcnR5LgoKTm90ZTogVGhpcyBpcyBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQg aW4gU2VjdGlvbiA5LjE1LCAiQ29uc2lzdGVuY3kKY2hlY2sgb2YgYSB0YWJ1bGFyIHByb3BlcnR5 IGdyYXBoIGRlc2NyaXB0b3IiLCBzeW50YXggcnVsZSA0LmMuaWlpLjIgb2YKU1FML1BHUSBzdGFu ZGFyZC4KCjIuIGNvbGxhdGlvbiBvZiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGtleXMgb2YgYW4g ZWRnZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KSWYgY29sbGF0aW9ucyBvZiBlZGdlIGtleSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgcmVmZXJl bmNlZCBrZXkgZGlmZmVyLAphbiBlZGdlIG1heSBlbmQgdXAgYmVpbmcgYWRqYWNlbnQgdG8gdW5k ZXNpcmVkIHZlcnRleC4gUHJvaGliaXQgc3VjaCBhCmNhc2Ugd2hlbiBrZXkgY29sdW1ucyBhcmUg ZXhwbGljaXRseSBzcGVjaWZpZWQuCgpXaGVuIGVkZ2UgYW5kIHZlcnRleCBrZXlzIGFyZSBkZXJp dmVkIGZyb20gdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQsCndlIGRvIG5vdCBjaGVjayBjb2xs YXRpb25zIGFnYWluIHNpbmNlIHRoZSBjb25zdHJhaW50IGl0c2VsZiBlbnN1cmVzCm9uZS10by1t YW55IGVkZ2UtdG8tdmVydGV4IG1hcHBpbmcuCgpOb3RlOiBUaGlzIGlzIG5vdCBzcGVjaWZpZWQg aW4gU2VjdGlvbiA5LjE0LCAiQ3JlYXRpb24gb2YgYW4gZWRnZSB0YWJsZQpkZXNjcmlwdG9yIi4K CjMuIEVkZ2UtdmVydGV4IGxpbmsgcXVhbHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KV2hlbiBjcmVhdGluZyBhbiBlZGdlIGVsZW1lbnQgbWFrZSBzdXJlIHRoYXQg dGhlcmUgZXhpc3RzIGFuIGVxdWFsaXR5Cm9wZXJhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIHRvIG1h dGNoIHZlcnRleCBhbmQgZWRnZSBrZXlzLiBGYWlsIHRoZSBEREwgaWYKc3VjaCBhbiBvcGVyYXRv ciBkb2VzIG5vdCBleGlzdC4gVXNlIHRoZSBzYW1lIGVxdWFsaXR5IG9wZXJhdG9ycyB0byBidWls ZAp2ZXJ0ZXgtZWRnZSBxdWFscyBpbiBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKCkuIEFs c28gYWRkIGEKZGVwZW5kZW5jeSBvZiB0aGUgZWRnZSBvbiB0aGUgZXF1YWxpdHkgb3BlcmF0b3Ig c28gdGhhdCBpdCBjYW4gbm90IGJlCmRyb3BwZWQgd2l0aG91dCBkcm9wcGluZyB0aGUgZWRnZS4K Ck5vdGUgZm9yIHJldmlld2VyczoKVGhlIGNvZGUgaW4gQVRBZGRGb3JlaWduS2V5Q29uc3RyYWlu dCgpIGxvb2tzIHVwIHRocmVlIGRpZmZlcmVudAplcXVhbGl0eSBvcGVyYXRvcnMgYW5kIGl0J3Mg ZGlmZmljdWx0IHRvIHNlcGFyYXRlIHRoZSBjb2RlIGxvb2tpbmcgdXAKanVzdCBQSz1GSyBvcGVy YXRvcnMuIFNvIGNvdWxkIG5vdCBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgdG8gYSBmdW5jdGlvbgp3 aGljaCBjYW4gYmUgdXNlZCBhdCBib3RoIHBsYWNlcy4KCjQuIFRlc3RzCi0tLS0tLS0tCkFkZHMg dGVzdHMgZm9yIGFib3ZlIGl0ZW1zLgoKVGhlIGNvbGxhdGlvbiB0ZXN0cywgdGVzdCB0aGF0Cgph LiB0aGUgY29sbGF0aW9uIGlzIGNvcnJlY3RseSBzZXQgZm9yIHRoZSBjb2x1bW5zIHByb2plY3Rl ZCBieQpHUkFQSF9UQUJMRSBjbGF1c2UuCgpiLiBxdWFscyBjb3JyZXNwb25kaW5nIHRvIHRoZSB2 YXJpb3VzIFdIRVJFIGNsYXVzZSBpbiBHUkFQSF9UQUJMRSBoYXZlCmNvcnJlY3QgY29sbGF0aW9u IHNldAoKYy4gcXVhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgZWRnZS12ZXJ0ZXggbGlua3MgaGF2 ZSBjb3JyZWN0IGNvbGxhdGlvbgpzZXQuCgpOb3RlOiBUaGVzZSB0ZXN0cyBjb21iaW5lZCB3aXRo IHRlc3RzIGluIGNvbGxhdGUuc3FsIGFuZCBvdGhlciBjb2xsYXRpb24Kc3BlY2lmaWMgdGVzdHMg aW5kaWNhdGUgdGhhdCB3ZSBoYXZlIGNvdmVyZWQgYWxsIHNjZW5hcmlvcyB0ZXN0aW5nCmNvbGxh dGlvbnMgaW4gdGhlIGNvbnRleHQgb2YgR1JBUEhfVEFCTEUuIE1vcmUgY29sbGF0aW9uIHNwZWNp ZmljIHRlc3RzCm1heSBiZSBhZGRlZCBhcyByZXF1aXJlZC4KCkF1dGhvcjogQXNodXRvc2ggQmFw YXQKLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAg NDkgKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsICAgIHwg ICA4ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAgICAgfCAy MjIgKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAg ICAgICAgICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgICAg ICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYyAg ICAgICAgIHwgIDE2ICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMg ICAgICAgfCAxMjIgKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2Vs ZW1lbnQuaCAgICB8ICAxMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAg ICAgICAgIHwgICAyICsKIC4uLi9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0ICAg ICAgICB8IDI2MSArKysrKysrKysrKysrKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3JhcGhfdGFibGUub3V0ICAgICB8IDExMSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL3NxbC9jcmVhdGVf cHJvcGVydHlfZ3JhcGguc3FsICAgICB8ICA3NyArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2dyYXBoX3RhYmxlLnNxbCAgICAgICAgICB8ICA0MSArKy0KIDE1IGZpbGVzIGNoYW5nZWQsIDgx NiBpbnNlcnRpb25zKCspLCAxMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCAwYjdh NGRjNWY5ZC4uOGM0YzA3ZjVhMjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDU0LDYgKzY0NTQsMTgg QEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3Jl cGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGdlc3JjZXFvcDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZFtdPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3BlcmF0b3IiPjxzdHJ1Y3RuYW1lPnBn X29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGFu IGFycmF5IG9mIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IKKyAgICAgICA8c3RydWN0ZmllbGQ+cGdl c3JjcmVmPC9zdHJ1Y3RmaWVsZD4gPQorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNrZXk8L3N0 cnVjdGZpZWxkPiBjb21wYXJpc29uLiAoTnVsbCBmb3IgYSB2ZXJ0ZXguKQorICAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAg ICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdGtleTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJbXTwv dHlwZT4KQEAgLTY0ODIsNiArNjQ5NCwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4m bHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAg ICAgIGFuZCB0aGUgZGVzdGluYXRpb24gdmVydGV4LgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wZ2VkZXN0ZXFvcDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZFtdPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3BlcmF0b3IiPjxzdHJ1Y3Ru YW1lPnBnX29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVk Z2UsIGFuIGFycmF5IG9mIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IKKyAgICAgICA8c3RydWN0Zmll bGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+ID0KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlZGVz dGtleTwvc3RydWN0ZmllbGQ+IGNvbXBhcmlzb24uIChOdWxsIGZvciBhIHZlcnRleC4pCisgICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KQEAgLTY3NTMsNiArNjc3NywzMSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogICAgICAgIG11bHRpcGxlIHRpbWVzIGluIGRpZmZlcmVudCBlbGVtZW50cyBhbmQgbGFi ZWxzLikKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdwdHlwbW9kPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg PGxpdGVyYWw+dHlwbW9kPC9saXRlcmFsPiB0byBiZSBhcHBsaWVkIHRvIHRoZSBkYXRhIHR5cGUg b2YgdGhpcyBwcm9wZXJ0eS4KKyAgICAgIChUaGlzIGlzIHJlcXVpcmVkIHRvIGJlIGZpeGVkIGZv ciBhIGdpdmVuIHByb3BlcnR5IGluIGEgcHJvcGVydHkgZ3JhcGgsCisgICAgICBldmVuIGlmIHRo ZSBwcm9wZXJ0eSBpcyBkZWZpbmVkIG11bHRpcGxlIHRpbWVzIGluIGRpZmZlcmVudCBlbGVtZW50 cyBhbmQKKyAgICAgIGxhYmVscy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBncGNv bGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNl cyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29s bGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0 aW9uIG9mIHRoaXMgcHJvcGVydHksIG9yIHplcm8gaWYgdGhlIHByb3BlcnR5IGlzIG5vdCBvZgor ICAgICAgIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUuICAoVGhpcyBpcyByZXF1aXJlZCB0byBiZSBm aXhlZCBmb3IgYSBnaXZlbgorICAgICAgIHByb3BlcnR5IGluIGEgcHJvcGVydHkgZ3JhcGgsIGV2 ZW4gaWYgdGhlIHByb3BlcnR5IGlzIGRlZmluZWQgbXVsdGlwbGUKKyAgICAgICB0aW1lcyBpbiBk aWZmZXJlbnQgZWxlbWVudHMgYW5kIGxhYmVscy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IGQ2YjA4Zjk5MTM3Li5j Yzk0MzM5YWEyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9z Y2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNx bApAQCAtMzI3MSw5ICszMjcxLDkgQEAgQ1JFQVRFIFZJRVcgcGdfcHJvcGVydHlfZGF0YV90eXBl cyBBUwogICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNoYXJhY3Rl cl9zZXRfY2F0YWxvZywKICAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBB UyBjaGFyYWN0ZXJfc2V0X3NjaGVtYSwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyBjaGFyYWN0ZXJfc2V0X25hbWUsCi0gICAgICAgICAgIENBU1QobnVsbCBBUyBz cWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX2NhdGFsb2csIC0tIEZJWE1FCi0gICAgICAgICAg IENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX3NjaGVtYSwgLS0gRklY TUUKLSAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb2xsYXRpb25f bmFtZSwgLS0gRklYTUUKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5jLm5z cG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9zY2hlbWEsCisgICAgICAgICAg IENBU1QoYy5jb2xsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX25hbWUsCiAg ICAgICAgICAgIENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNfcHJlY2lz aW9uLAogICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBudW1lcmlj X3ByZWNpc2lvbl9yYWRpeCwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJl cikgQVMgbnVtZXJpY19zY2FsZSwKQEAgLTMyOTcsNiArMzI5Nyw4IEBAIENSRUFURSBWSUVXIHBn X3Byb3BlcnR5X2RhdGFfdHlwZXMgQVMKICAgICAgICAgIEpPSU4gKHBnX3R5cGUgdCBKT0lOIHBn X25hbWVzcGFjZSBudCBPTiAodC50eXBuYW1lc3BhY2UgPSBudC5vaWQpKSBPTiBwZ3AucGdwdHlw aWQgPSB0Lm9pZAogICAgICAgICAgTEVGVCBKT0lOIChwZ190eXBlIGJ0IEpPSU4gcGdfbmFtZXNw YWNlIG5idCBPTiAoYnQudHlwbmFtZXNwYWNlID0gbmJ0Lm9pZCkpCiAgICAgICAgICAgIE9OICh0 LnR5cHR5cGUgPSAnZCcgQU5EIHQudHlwYmFzZXR5cGUgPSBidC5vaWQpCisgICAgICAgICBMRUZU IEpPSU4gKHBnX2NvbGxhdGlvbiBjIEpPSU4gcGdfbmFtZXNwYWNlIG5jIE9OIChjLmNvbGxuYW1l c3BhY2UgPSBuYy5vaWQpKQorICAgICAgICAgICBPTiBwZ3AucGdwY29sbGF0aW9uID0gYy5vaWQg QU5EIChuYy5uc3BuYW1lLCBjLmNvbGxuYW1lKSA8PiAoJ3BnX2NhdGFsb2cnLCAnZGVmYXVsdCcp CiAKICAgICBXSEVSRSBwZy5yZWxraW5kID0gJ2cnCiAgICAgICAgICAgQU5EIChOT1QgcGdfaXNf b3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRz LmMKaW5kZXggODQzMGJmZGE3YjcuLjcwYWY4ZmI1NDVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJv cGdyYXBoY21kcy5jCkBAIC0xNCwyMCArMTQsMjcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9nZW5h bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3Mv bmJ0cmVlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hh Y3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL2lu ZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2NsYXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3JfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv cGdyYXBoX2VsZW1lbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvcGdyYXBoY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUg InBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5o IgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl X3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUg InV0aWxzL2FycmF5LmgiCkBAIC01MiwxMiArNTksMTQgQEAgc3RydWN0IGVsZW1lbnRfaW5mbwog CU9pZAkJCXNyY3JlbGlkOwogCUFycmF5VHlwZSAgKnNyY2tleTsKIAlBcnJheVR5cGUgICpzcmNy ZWY7CisJQXJyYXlUeXBlICAqc3JjZXFvcDsKIAogCWNoYXIJICAgKmRlc3R2ZXJ0ZXg7CiAJT2lk CQkJZGVzdHZlcnRleGlkOwogCU9pZAkJCWRlc3RyZWxpZDsKIAlBcnJheVR5cGUgICpkZXN0a2V5 OwogCUFycmF5VHlwZSAgKmRlc3RyZWY7CisJQXJyYXlUeXBlICAqZGVzdGVxb3A7CiAKIAlMaXN0 CSAgICpsYWJlbHM7CiB9OwpAQCAtNjgsOCArNzcsOCBAQCBzdGF0aWMgQXJyYXlUeXBlICpwcm9w Z3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5 Ywogc3RhdGljIHZvaWQgcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKFBhcnNlU3RhdGUgKnBz dGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlzdCAqcmVmY29scywKIAkJCQkJCQkJ CQlSZWxhdGlvbiBlZGdlX3JlbCwgUmVsYXRpb24gcmVmX3JlbCwKIAkJCQkJCQkJCQljb25zdCBj aGFyICphbGlhc25hbWUsIGludCBsb2NhdGlvbiwgY29uc3QgY2hhciAqdHlwZSwKLQkJCQkJCQkJ CQlBcnJheVR5cGUgKipvdXRrZXksIEFycmF5VHlwZSAqKm91dHJlZik7Ci1zdGF0aWMgQXJyYXlU eXBlICphcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlz dCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpOworCQkJCQkJ CQkJCUFycmF5VHlwZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmLCBBcnJheVR5cGUgKipv dXRlcW9wKTsKK3N0YXRpYyBBdHRyTnVtYmVyICphcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRp b24gZWxlbWVudF9yZWwpOwogc3RhdGljIEFycmF5VHlwZSAqYXJyYXlfZnJvbV9hdHRudW1zKGlu dCBudW1hdHRycywgY29uc3QgQXR0ck51bWJlciAqYXR0bnVtcyk7CiBzdGF0aWMgT2lkCWluc2Vy dF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRf aW5mbyAqZWluZm8pOwogc3RhdGljIE9pZAlpbnNlcnRfbGFiZWxfcmVjb3JkKE9pZCBncmFwaGlk LCBPaWQgcGVvaWQsIGNvbnN0IGNoYXIgKmxhYmVsKTsKQEAgLTIxNywxMCArMjI2LDEwIEBAIENy ZWF0ZVByb3BHcmFwaChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZVByb3BHcmFwaFN0 bXQgKnN0bXQpCiAKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ ZXNyY2tleSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3JjcmVsLAogCQkJCQkJCQkJZWlu Zm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJTT1VSQ0UiLAotCQkJCQkJCQkJJmVpbmZv LT5zcmNrZXksICZlaW5mby0+c3JjcmVmKTsKKwkJCQkJCQkJCSZlaW5mby0+c3Jja2V5LCAmZWlu Zm8tPnNyY3JlZiwgJmVpbmZvLT5zcmNlcW9wKTsKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9r ZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3RrZXksIGVkZ2UtPmVkZXN0dmVydGV4Y29scywgcmVsLCBk ZXN0cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJERVNU SU5BVElPTiIsCi0JCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZik7CisJ CQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZiwgJmVpbmZvLT5kZXN0ZXFv cCk7CiAKIAkJZWluZm8tPmxhYmVscyA9IGVkZ2UtPmxhYmVsczsKIApAQCAtMzM2LDcgKzM0NSw4 IEBAIHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBM aXN0ICprZXlfY2xhdXNlLCBSZWxhdGlvbiBlCiAJfQogCWVsc2UKIAl7Ci0JCWEgPSBhcnJheV9m cm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRpb24sIGVsZW1lbnRfcmVs KTsKKwkJYSA9IGFycmF5X2Zyb21fYXR0bnVtcyhsaXN0X2xlbmd0aChrZXlfY2xhdXNlKSwKKwkJ CQkJCQkgICBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRp b24sIGVsZW1lbnRfcmVsKSk7CiAJfQogCiAJcmV0dXJuIGE7CkBAIC0zNjAsOCArMzcwLDE1IEBA IHN0YXRpYyB2b2lkCiBwcm9wZ3JhcGhfZWRnZV9nZXRfcmVmX2tleXMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBjb25zdCBMaXN0ICprZXljb2xzLCBjb25zdCBMaXN0ICpyZWZjb2xzLAogCQkJCQkJCVJl bGF0aW9uIGVkZ2VfcmVsLCBSZWxhdGlvbiByZWZfcmVsLAogCQkJCQkJCWNvbnN0IGNoYXIgKmFs aWFzbmFtZSwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyICp0eXBlLAotCQkJCQkJCUFycmF5VHlw ZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmKQorCQkJCQkJCUFycmF5VHlwZSAqKm91dGtl eSwgQXJyYXlUeXBlICoqb3V0cmVmLCBBcnJheVR5cGUgKipvdXRlcW9wKQogeworCWludAkJCW5r ZXlzOworCUF0dHJOdW1iZXIgKmtleWF0dG51bXM7CisJQXR0ck51bWJlciAqcmVmYXR0bnVtczsK KwlPaWQJCSAgICprZXllcW9wczsKKwlEYXR1bQkgICAqZGF0dW1zOworCWludAkJCWk7CisKIAlB c3NlcnQoKGtleWNvbHMgJiYgcmVmY29scykgfHwgKCFrZXljb2xzICYmICFyZWZjb2xzKSk7CiAK IAlpZiAoa2V5Y29scykKQEAgLTM3Miw4ICszODksODkgQEAgcHJvcGdyYXBoX2VkZ2VfZ2V0X3Jl Zl9rZXlzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlz dAogCQkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBjb2x1bW5zIGluICVzIHZlcnRl eCBkZWZpbml0aW9uIG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1lKSwKIAkJCQkJcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKIAotCQkqb3V0a2V5ID0gYXJyYXlf ZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBlZGdlX3JlbCk7Ci0J CSpvdXRyZWYgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgcmVmY29scywgbG9jYXRp b24sIHJlZl9yZWwpOworCQlua2V5cyA9IGxpc3RfbGVuZ3RoKGtleWNvbHMpOworCQlrZXlhdHRu dW1zID0gYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBl ZGdlX3JlbCk7CisJCXJlZmF0dG51bXMgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwg cmVmY29scywgbG9jYXRpb24sIHJlZl9yZWwpOworCQlrZXllcW9wcyA9IHBhbGxvY19hcnJheShP aWQsIG5rZXlzKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgbmtleXM7IGkrKykKKwkJeworCQkJT2lk CQkJa2V5dHlwZTsKKwkJCWludDMyCQlrZXl0eXBtb2Q7CisJCQlPaWQJCQlrZXljb2xsOworCQkJ T2lkCQkJcmVmdHlwZTsKKwkJCWludDMyCQlyZWZ0eXBtb2Q7CisJCQlPaWQJCQlyZWZjb2xsOwor CQkJT2lkCQkJb3BjOworCQkJT2lkCQkJb3BmOworCQkJU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3k7 CisKKwkJCS8qCisJCQkgKiBMb29rdXAgZXF1YWxpdHkgb3BlcmF0b3IgdG8gYmUgdXNlZCBmb3Ig ZWRnZSBhbmQgdmVydGV4IGtleS4KKwkJCSAqIFZlcnRleCBrZXkgaXMgZXF1aXZhbGVudCB0byBw cmltYXJ5IGtleSBhbmQgZWRnZSBrZXkgaXMgc2ltaWxhcgorCQkJICogdG8gZm9yZWlnbiBrZXkg c2luY2UgZWRnZSBrZXkgcmVmZXJlbmNlcyB2ZXJ0ZXgga2V5LiBIZW5jZQorCQkJICogdmVydGV4 IGtleSBpcyB1c2VkIGFzIGxlZnQgb3BlcmFuZCBhbmQgZWRnZSBrZXkgaXMgdXNlZCBhcworCQkJ ICogcmlnaHQgb3BlcmFuZC4gVGhlIG1ldGhvZCB1c2VkIHRvIGZpbmQgdGhlIGVxdWFsaXR5IG9w ZXJhdG9ycworCQkJICogaXMgc2ltaWxhciB0byB0aGUgbWV0aG9kIHVzZWQgdG8gZmluZCBlcXVh bGl0eSBvcGVyYXRvcnMgZm9yCisJCQkgKiBGSy9QSyBjb21wYXJpc29uIGluIEFUQWRkRm9yZWln bktleUNvbnN0cmFpbnQoKSBleGNlcHQgdGhhdAorCQkJICogb3BjbGFzcyBvZiB0aGUgdGhlIHZl cnRleCBrZXkgdHlwZSBpcyB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQuCisJCQkgKiBTaW5jZSB3 ZSBuZWVkIG9ubHkgZXF1YWxpdHkgb3BlcmF0b3JzIHdlIHVzZSBib3RoIEJUIGFuZCBIQVNICisJ CQkgKiBzdHJhdGVnaWVzLgorCQkJICoKKwkJCSAqIElmIHRoZSByZXF1aXJlZCBvcGVyYXRvcnMg ZG8gbm90IGV4aXN0LCB3ZSBjYW4gbm90IGNvbnN0cnVjdAorCQkJICogcXVhbHMgbGlua2luZyBh biBlZGdlIHRvIGl0cyBhZGphY2VudCB2ZXJ0ZXhlcy4KKwkJCSAqLworCQkJZ2V0X2F0dHR5cGV0 eXBtb2Rjb2xsKFJlbGF0aW9uR2V0UmVsaWQoZWRnZV9yZWwpLCBrZXlhdHRudW1zW2ldLCAma2V5 dHlwZSwgJmtleXR5cG1vZCwgJmtleWNvbGwpOworCQkJZ2V0X2F0dHR5cGV0eXBtb2Rjb2xsKFJl bGF0aW9uR2V0UmVsaWQocmVmX3JlbCksIHJlZmF0dG51bXNbaV0sICZyZWZ0eXBlLCAmcmVmdHlw bW9kLCAmcmVmY29sbCk7CisJCQlrZXllcW9wc1tpXSA9IEludmFsaWRPaWQ7CisJCQlzdHJhdGVn eSA9IEJURXF1YWxTdHJhdGVneU51bWJlcjsKKwkJCW9wYyA9IEdldERlZmF1bHRPcENsYXNzKHJl ZnR5cGUsIEJUUkVFX0FNX09JRCk7CisJCQlpZiAoIU9pZElzVmFsaWQob3BjKSkKKwkJCXsKKwkJ CQlvcGMgPSBHZXREZWZhdWx0T3BDbGFzcyhyZWZ0eXBlLCBIQVNIX0FNX09JRCk7CisJCQkJc3Ry YXRlZ3kgPSBIVEVxdWFsU3RyYXRlZ3lOdW1iZXI7CisJCQl9CisJCQlpZiAoT2lkSXNWYWxpZChv cGMpKQorCQkJeworCQkJCW9wZiA9IGdldF9vcGNsYXNzX2ZhbWlseShvcGMpOworCQkJCWlmIChP aWRJc1ZhbGlkKG9wZikpCisJCQkJeworCQkJCQlrZXllcW9wc1tpXSA9IGdldF9vcGZhbWlseV9t ZW1iZXIob3BmLCByZWZ0eXBlLCBrZXl0eXBlLCBzdHJhdGVneSk7CisJCQkJCWlmICghT2lkSXNW YWxpZChrZXllcW9wc1tpXSkpCisJCQkJCXsKKwkJCQkJCS8qIExhc3QgcmVzb3J0LCBpbXBsaWNp dCBjYXN0LiAqLworCQkJCQkJaWYgKGNhbl9jb2VyY2VfdHlwZSgxLCAma2V5dHlwZSwgJnJlZnR5 cGUsIENPRVJDSU9OX0lNUExJQ0lUKSkKKwkJCQkJCQlrZXllcW9wc1tpXSA9IGdldF9vcGZhbWls eV9tZW1iZXIob3BmLCByZWZ0eXBlLCByZWZ0eXBlLCBzdHJhdGVneSk7CisJCQkJCX0KKwkJCQl9 CisJCQl9CisKKwkJCWlmICghT2lkSXNWYWxpZChrZXllcW9wc1tpXSkpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJybXNn KCJubyBlcXVhbGl0eSBvcGVyYXRvciBleGlzdHMgZm9yICVzIGtleSBjb21wYXJpc29uIG9mIGVk Z2UgXCIlc1wiIiwKKwkJCQkJCQkgICB0eXBlLCBhbGlhc25hbWUpLAorCQkJCQkJcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQkJLyoKKwkJCSAqIElmIGNvbGxhdGlv bnMgb2Yga2V5IGF0dHJpYnV0ZSBhbmQgcmVmZXJlbmNlZCBhdHRyaWJ1dGUgYXJlCisJCQkgKiBk aWZmZXJlbnQsIGFuIGVkZ2UgbWF5IGVuZCB1cCBiZWluZyBhZGphY2VudCB0byB1bmRlc2lyZWQK KwkJCSAqIHZlcnRleGVzLiAgUHJvaGliaXQgc3VjaCBhIGNhc2UuCisJCQkgKgorCQkJICogUEsv RksgYWxsb3dzIGRpZmZlcmVudCBjb2xsYXRpb25zIGFzIGxvbmcgYXMgdGhleSBhcmUKKwkJCSAq IGRldGVybWluaXN0aWMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIEJ1dCB3ZSBjYW4gYmUg YSBiaXQKKwkJCSAqIHN0cmljdGVyIGhlcmUgYW5kIGZvbGxvdyBTUUwgc3RhbmRhcmQuCisJCQkg Ki8KKwkJCWlmIChrZXljb2xsICE9IHJlZmNvbGwgJiYKKwkJCQlrZXljb2xsICE9IERFRkFVTFRf Q09MTEFUSU9OX09JRCAmJiByZWZjb2xsICE9IERFRkFVTFRfQ09MTEFUSU9OX09JRCAmJgorCQkJ CU9pZElzVmFsaWQoa2V5Y29sbCkgJiYgT2lkSXNWYWxpZChyZWZjb2xsKSkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJt c2coImNvbGxhdGlvbiBtaXNtYXRjaCBpbiAlcyBrZXkgb2YgZWRnZSBcIiVzXCI6ICVzIHZzLiAl cyIsCisJCQkJCQkJICAgdHlwZSwgYWxpYXNuYW1lLAorCQkJCQkJCSAgIGdldF9jb2xsYXRpb25f bmFtZShrZXljb2xsKSwgZ2V0X2NvbGxhdGlvbl9uYW1lKHJlZmNvbGwpKSwKKwkJCQkJCXBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSk7CisJCX0KIAl9CiAJZWxzZQogCXsKQEAg LTQwNCwyNSArNTAyLDM0IEBAIHByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhQYXJzZVN0YXRl ICpwc3RhdGUsIGNvbnN0IExpc3QgKmtleWNvbHMsIGNvbnN0IExpc3QKIAogCQlBc3NlcnQoZmsp OwogCi0JCSpvdXRrZXkgPSBhcnJheV9mcm9tX2F0dG51bXMoZmstPm5rZXlzLCBmay0+Y29ua2V5 KTsKLQkJKm91dHJlZiA9IGFycmF5X2Zyb21fYXR0bnVtcyhmay0+bmtleXMsIGZrLT5jb25ma2V5 KTsKKwkJbmtleXMgPSBmay0+bmtleXM7CisJCWtleWF0dG51bXMgPSBmay0+Y29ua2V5OworCQly ZWZhdHRudW1zID0gZmstPmNvbmZrZXk7CisJCWtleWVxb3BzID0gZmstPmNvbnBmZXFvcDsKIAl9 CisKKwkqb3V0a2V5ID0gYXJyYXlfZnJvbV9hdHRudW1zKG5rZXlzLCBrZXlhdHRudW1zKTsKKwkq b3V0cmVmID0gYXJyYXlfZnJvbV9hdHRudW1zKG5rZXlzLCByZWZhdHRudW1zKTsKKwlkYXR1bXMg PSAoRGF0dW0gKikgcGFsbG9jKHNpemVvZihEYXR1bSkgKiBua2V5cyk7CisJZm9yIChpID0gMDsg aSA8IG5rZXlzOyBpKyspCisJCWRhdHVtc1tpXSA9IE9iamVjdElkR2V0RGF0dW0oa2V5ZXFvcHNb aV0pOworCSpvdXRlcW9wID0gY29uc3RydWN0X2FycmF5X2J1aWx0aW4oZGF0dW1zLCBua2V5cywg T0lET0lEKTsKIH0KIAogLyoKICAqIENvbnZlcnQgbGlzdCBvZiBjb2x1bW4gbmFtZXMgaW4gdGhl IHNwZWNpZmllZCByZWxhdGlvbiBpbnRvIGFuIGFycmF5IG9mCiAgKiBjb2x1bW4gbnVtYmVycy4K ICAqLwotc3RhdGljIEFycmF5VHlwZSAqCitzdGF0aWMgQXR0ck51bWJlciAqCiBhcnJheV9mcm9t X2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sbmFtZXMsIGlu dCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpCiB7CiAJaW50CQkJbnVtYXR0cnM7Ci0J RGF0dW0JICAgKmF0dG51bXNkOworCUF0dHJOdW1iZXIgKmF0dG51bXM7CiAJaW50CQkJaTsKIAlM aXN0Q2VsbCAgICpsYzsKIAogCW51bWF0dHJzID0gbGlzdF9sZW5ndGgoY29sbmFtZXMpOwotCWF0 dG51bXNkID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1hdHRycyk7CisJYXR0bnVtcyA9IHBhbGxv Y19hcnJheShBdHRyTnVtYmVyLCBudW1hdHRycyk7CiAKIAlpID0gMDsKIAlmb3JlYWNoKGxjLCBj b2xuYW1lcykKQEAgLTQzOCwxNCArNTQ1LDE0IEBAIGFycmF5X2Zyb21fY29sdW1uX2xpc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICpjb2xuYW1lcywgaW50IGxvY2F0aW9uLCBSCiAJ CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwKIAkJCQkJCQljb2xuYW1lLCBnZXRfcmVsX25hbWUocmVsaWQpKSwKIAkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwotCQlhdHRudW1zZFtpKytdID0gSW50 MTZHZXREYXR1bShhdHRudW0pOworCQlhdHRudW1zW2krK10gPSBhdHRudW07CiAJfQogCiAJZm9y IChpbnQgaiA9IDA7IGogPCBudW1hdHRyczsgaisrKQogCXsKIAkJZm9yIChpbnQgayA9IGogKyAx OyBrIDwgbnVtYXR0cnM7IGsrKykKIAkJewotCQkJaWYgKERhdHVtR2V0SW50MTYoYXR0bnVtc2Rb al0pID09IERhdHVtR2V0SW50MTYoYXR0bnVtc2Rba10pKQorCQkJaWYgKGF0dG51bXNbal0gPT0g YXR0bnVtc1trXSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJCSBlcnJtc2coImdyYXBoIGtleSBjb2x1 bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzIiksCkBAIC00NTMsNyArNTYwLDcg QEAgYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3Qg KmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFIKIAkJfQogCX0KIAotCXJldHVybiBjb25zdHJ1Y3Rf YXJyYXlfYnVpbHRpbihhdHRudW1zZCwgbnVtYXR0cnMsIElOVDJPSUQpOworCXJldHVybiBhdHRu dW1zOwogfQogCiBzdGF0aWMgQXJyYXlUeXBlICoKQEAgLTQ4Niw2ICs1OTMsMjMgQEAgYXJyYXlf b2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhPaWQgcmVsaWQsIEFycmF5VHlwZSAqYXJyLCBPYmpl Y3RBZGRyZXNzZXMgKmFkZHIKIAl9CiB9CiAKK3N0YXRpYyB2b2lkCithcnJheV9vZl9vcGVyc190 b19vYmplY3RhZGRycyhBcnJheVR5cGUgKmFyciwgT2JqZWN0QWRkcmVzc2VzICphZGRycykKK3sK KwlEYXR1bQkgICAqb3BlcnNkOworCWludAkJCW51bW9wZXJzOworCisJZGVjb25zdHJ1Y3RfYXJy YXlfYnVpbHRpbihhcnIsIE9JRE9JRCwgJm9wZXJzZCwgTlVMTCwgJm51bW9wZXJzKTsKKworCWZv ciAoaW50IGkgPSAwOyBpIDwgbnVtb3BlcnM7IGkrKykKKwl7CisJCU9iamVjdEFkZHJlc3MgcmVm ZXJlbmNlZDsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE9wZXJhdG9yUmVsYXRp b25JZCwgRGF0dW1HZXRPYmplY3RJZChvcGVyc2RbaV0pKTsKKwkJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorfQorCiAvKgogICogSW5zZXJ0IGEgcmVj b3JkIGZvciBhbiBlbGVtZW50IGludG8gdGhlIHBnX3Byb3BncmFwaF9lbGVtZW50IGNhdGFsb2cu ICBBbHNvCiAgKiBpbnNlcnRzIGxhYmVscyBhbmQgcHJvcGVydGllcyBpbnRvIHRoZWlyIHJlc3Bl Y3RpdmUgY2F0YWxvZ3MuCkBAIC01MjYsNiArNjUwLDEwIEBAIGluc2VydF9lbGVtZW50X3JlY29y ZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pCiAJ CXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZiAtIDFdID0gUG9pbnRl ckdldERhdHVtKGVpbmZvLT5zcmNyZWYpOwogCWVsc2UKIAkJbnVsbHNbQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VzcmNyZWYgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5zcmNlcW9wKQor CQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNlcW9wIC0gMV0gPSBQb2lu dGVyR2V0RGF0dW0oZWluZm8tPnNyY2Vxb3ApOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9wZ2VzcmNlcW9wIC0gMV0gPSB0cnVlOwogCWlmIChlaW5mby0+ZGVzdGtl eSkKIAkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5kZXN0a2V5KTsKIAllbHNlCkBAIC01MzQsNiArNjYyLDEw IEBAIGluc2VydF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0 IGVsZW1lbnRfaW5mbyAqZWluZm8pCiAJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X3BnZWRlc3RyZWYgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShlaW5mby0+ZGVzdHJlZik7CiAJZWxz ZQogCQludWxsc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RyZWYgLSAxXSA9IHRy dWU7CisJaWYgKGVpbmZvLT5kZXN0ZXFvcCkKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnRfcGdlZGVzdGVxb3AgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShlaW5mby0+ZGVzdGVxb3Ap OworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0ZXFvcCAt IDFdID0gdHJ1ZTsKIAogCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJl bCksIHZhbHVlcywgbnVsbHMpOwogCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CkBAIC01 NTEsMTMgKzY4MywxNyBAQCBpbnNlcnRfZWxlbWVudF9yZWNvcmQoT2JqZWN0QWRkcmVzcyBwZ2Fk ZHJlc3MsIHN0cnVjdCBlbGVtZW50X2luZm8gKmVpbmZvKQogCWFkZF9leGFjdF9vYmplY3RfYWRk cmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOwogCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRk cnMoZWluZm8tPnJlbGlkLCBlaW5mby0+a2V5LCBhZGRycyk7CiAKLQkvKiBBZGQgZGVwZW5kZW5j aWVzIG9uIHZlcnRpY2VzICovCisJLyoKKwkgKiBBZGQgZGVwZW5kZW5jaWVzIG9uIHZlcnRpY2Vz IGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMgdXNlZCBmb3Iga2V5CisJICogY29tcGFyaXNvbi4KKwkg Ki8KIAlpZiAoZWluZm8tPnNyY3ZlcnRleGlkKQogCXsKIAkJT2JqZWN0QWRkcmVzc1NldChyZWZl cmVuY2VkLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgZWluZm8tPnNyY3ZlcnRleGlkKTsK IAkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CiAJCWFycmF5 X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+c3Jja2V5LCBh ZGRycyk7CiAJCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnNyY3JlbGlk LCBlaW5mby0+c3JjcmVmLCBhZGRycyk7CisJCWFycmF5X29mX29wZXJzX3RvX29iamVjdGFkZHJz KGVpbmZvLT5zcmNlcW9wLCBhZGRycyk7CiAJfQogCWlmIChlaW5mby0+ZGVzdHZlcnRleGlkKQog CXsKQEAgLTU2NSwxMCArNzAxLDkgQEAgaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKE9iamVjdEFkZHJl c3MgcGdhZGRyZXNzLCBzdHJ1Y3QgZWxlbWVudF9pbmZvICplaW5mbykKIAkJYWRkX2V4YWN0X29i amVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CiAJCWFycmF5X29mX2F0dG51bXNfdG9f b2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+ZGVzdGtleSwgYWRkcnMpOwogCQlhcnJh eV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0cmVsaWQsIGVpbmZvLT5kZXN0 cmVmLCBhZGRycyk7CisJCWFycmF5X29mX29wZXJzX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0 ZXFvcCwgYWRkcnMpOwogCX0KIAotCS8qIFRPRE86IGRlcGVuZGVuY2llcyBvbiBlcXVhbGl0eSBv cGVyYXRvcnMsIGxpa2UgZm9yIGZvcmVpZ24ga2V5cyAqLwotCiAJcmVjb3JkX29iamVjdF9hZGRy ZXNzX2RlcGVuZGVuY2llcygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCiAJ dGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwpAQCAtNzY4LDYgKzkwMyw3IEBAIGluc2VydF9wcm9w ZXJ0eV9yZWNvcmRzKE9pZCBncmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBj b25zdCBQcm9wR3JhCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCiAJdHAgPSB0cmFuc2Zv cm1UYXJnZXRMaXN0KHBzdGF0ZSwgcHJvcGxpc3QsIEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVS VFkpOworCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9kZSAqKSB0cCk7CiAKIAlm b3JlYWNoKGxjLCB0cCkKIAl7CkBAIC03ODYsOSArOTIyLDE1IEBAIGluc2VydF9wcm9wZXJ0eV9y ZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdlcmVsaWQsIGNvbnN0IGNo YXIgKnByCiB7CiAJT2lkCQkJcHJvcG9pZDsKIAlPaWQJCQlleHBydHlwaWQ7CisJaW50MzIJCWV4 cHJ0eXBtb2Q7CisJT2lkCQkJZXhwcmNvbGxhdGlvbjsKIAlPaWQJCQlwcm9wdHlwaWQ7CisJaW50 MzIJCXByb3B0eXBtb2Q7CisJT2lkCQkJcHJvcGNvbGxhdGlvbjsKIAogCWV4cHJ0eXBpZCA9IGV4 cHJUeXBlKChjb25zdCBOb2RlICopIGV4cHIpOworCWV4cHJjb2xsYXRpb24gPSBleHByQ29sbGF0 aW9uKChjb25zdCBOb2RlICopIGV4cHIpOworCWV4cHJ0eXBtb2QgPSBleHByVHlwbW9kKChjb25z dCBOb2RlICopIGV4cHIpOwogCiAJLyoKIAkgKiBJbnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfcHJv cGVydHkgaWYgbm90IGFscmVhZHkgZXhpc3RpbmcuCkBAIC04MDUsNiArOTQ3LDggQEAgaW5zZXJ0 X3Byb3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBwZ2VyZWxp ZCwgY29uc3QgY2hhciAqcHIKIAkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOwogCiAJCXByb3B0 eXBpZCA9IGV4cHJ0eXBpZDsKKwkJcHJvcHR5cG1vZCA9IGV4cHJ0eXBtb2Q7CisJCXByb3Bjb2xs YXRpb24gPSBleHByY29sbGF0aW9uOwogCiAJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIApAQCAtODE0LDYgKzk1OCw4IEBA IGluc2VydF9wcm9wZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQg cGdlcmVsaWQsIGNvbnN0IGNoYXIgKnByCiAJCW5hbWVzdHJjcHkoJnByb3BuYW1lZGF0YSwgcHJv cG5hbWUpOwogCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwbmFtZSAtIDFd ID0gTmFtZUdldERhdHVtKCZwcm9wbmFtZWRhdGEpOwogCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3Jh cGhfcHJvcGVydHlfcGdwdHlwaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ocHJvcHR5cGlkKTsK KwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X3BncHR5cG1vZCAtIDFdID0gSW50 MzJHZXREYXR1bShwcm9wdHlwbW9kKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3Byb3Bl cnR5X3BncGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwcm9wY29sbGF0aW9uKTsK IAogCQl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMs IG51bGxzKTsKIAkJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKQEAgLTgzMCw3ICs5NzYs MTMgQEAgaW5zZXJ0X3Byb3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQs IE9pZCBwZ2VyZWxpZCwgY29uc3QgY2hhciAqcHIKIAl9CiAJZWxzZQogCXsKLQkJcHJvcHR5cGlk ID0gR2V0U3lzQ2FjaGVPaWQxKFBST1BHUkFQSFBST1BPSUQsIEFudW1fcGdfcHJvcGdyYXBoX3By b3BlcnR5X3BncHR5cGlkLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQpKTsKKwkJSGVhcFR1cGxl CXBncHR1cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhQUk9QT0lELCBPYmplY3RJZEdldERh dHVtKHByb3BvaWQpKTsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdwZm9ybSA9IChG b3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHBncHR1cCk7CisKKwkJcHJvcHR5 cGlkID0gcGdwZm9ybS0+cGdwdHlwaWQ7CisJCXByb3B0eXBtb2QgPSBwZ3Bmb3JtLT5wZ3B0eXBt b2Q7CisJCXByb3Bjb2xsYXRpb24gPSBwZ3Bmb3JtLT5wZ3Bjb2xsYXRpb247CisJCVJlbGVhc2VT eXNDYWNoZShwZ3B0dXApOwogCX0KIAogCS8qCkBAIC04NDcsNiArOTk5LDMyIEBAIGluc2VydF9w cm9wZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdlcmVsaWQs IGNvbnN0IGNoYXIgKnByCiAJCQkJZXJyZGV0YWlsKCJJbiBhIHByb3BlcnR5IGdyYXBoLCBhIHBy b3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgZGF0YSB0eXBlIGlu IGVhY2ggbGFiZWwuIikpOwogCX0KIAorCS8qIFNpbWlsYXJseSBmb3IgY29sbGF0aW9uICovCisJ aWYgKHByb3Bjb2xsYXRpb24gIT0gZXhwcmNvbGxhdGlvbikKKwl7CisJCWVyZXBvcnQoRVJST1Is CisJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJwcm9wZXJ0 eSBcIiVzXCIgY29sbGF0aW9uIG1pc21hdGNoOiAlcyB2cy4gJXMiLAorCQkJCQkgICBwcm9wbmFt ZSwgZ2V0X2NvbGxhdGlvbl9uYW1lKHByb3Bjb2xsYXRpb24pLCBnZXRfY29sbGF0aW9uX25hbWUo ZXhwcmNvbGxhdGlvbikpLAorCQkJCWVycmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFwaCwgYSBw cm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBoYXZlIHRoZSBzYW1lIGNvbGxhdGlvbiBp biBlYWNoIGxhYmVsLiIpKTsKKwl9CisKKwkvKgorCSAqIEFuZCB0eXBtb2QuIEl0IGRvZXMgbm90 IHNlZW0gdG8gYmUgbmVjZXNzYXJ5IHRvIGVuZm9yY2UgdHlwbW9kCisJICogY29uc2lzdGVuY3kg YWNyb3NzIHByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiBCdXQgd2hlbiBwcm9wZXJ0aWVz CisJICogd2l0aCB0aGUgc2FtZSBuYW1lIGhhdmUgZGlmZmVyZW50IHR5cG1vZHMsIGl0IGlzIG5v dCBjbGVhciB3aGljaCBvbmUKKwkgKiBzaG91bGQgYmUgdXNlZCBhcyB0aGUgdHlwbW9kIG9mIHRo ZSBncmFwaCBwcm9wZXJ0eSB3aGVuIHR5cG1vZCBvZiBhCisJICogcHJvcGVydHkgaXMgcmVxdWVz dGVkIGJlZm9yZSBmZXRjaGluZyBhbnkgb2YgdGhlIHByb3BlcnR5IGV4cHJlc3Npb25zLgorCSAq LworCWlmIChwcm9wdHlwbW9kICE9IGV4cHJ0eXBtb2QpCisJeworCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCWVycm1zZygicHJvcGVydHkg XCIlc1wiIGRhdGEgdHlwZSBtb2RpZmllciBtaXNtYXRjaDogJWQgdnMuICVkIiwKKwkJCQkJICAg cHJvcG5hbWUsIHByb3B0eXBtb2QsIGV4cHJ0eXBtb2QpLAorCQkJCWVycmRldGFpbCgiSW4gYSBw cm9wZXJ0eSBncmFwaCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBoYXZlIHRo ZSBzYW1lIHR5cGUgbW9kaWZpZXIgaW4gZWFjaCBsYWJlbC4iKSk7CisJfQorCiAJLyoKIAkgKiBJ bnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkKIAkgKi8KQEAgLTEyMzgsMTAg KzE0MTYsMTAgQEAgQWx0ZXJQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBBbHRl clByb3BHcmFwaFN0bXQgKnN0bXQpCiAKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBz dGF0ZSwgZWRnZS0+ZXNyY2tleSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3JjcmVsLAog CQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJTT1VSQ0UiLAotCQkJ CQkJCQkJJmVpbmZvLT5zcmNrZXksICZlaW5mby0+c3JjcmVmKTsKKwkJCQkJCQkJCSZlaW5mby0+ c3Jja2V5LCAmZWluZm8tPnNyY3JlZiwgJmVpbmZvLT5zcmNlcW9wKTsKIAkJcHJvcGdyYXBoX2Vk Z2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3RrZXksIGVkZ2UtPmVkZXN0dmVydGV4 Y29scywgcmVsLCBkZXN0cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9j YXRpb24sICJERVNUSU5BVElPTiIsCi0JCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ ZGVzdHJlZik7CisJCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZiwgJmVp bmZvLT5kZXN0ZXFvcCk7CiAKIAkJZWluZm8tPmxhYmVscyA9IGVkZ2UtPmxhYmVsczsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYwppbmRleCAzNzNmYTFlZWMyZi4uZmE4ZGEwNzNkMjAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCkBAIC01MzUsOCArNTM1LDcgQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHBy KQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQlyZXR1cm4gZXhwclR5cG1vZCgoTm9kZSAq KSAoKGNvbnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOwogCQljYXNlIFRfR3Jh cGhQcm9wZXJ0eVJlZjoKLQkJCS8qIFRPRE8gKi8KLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAo KGNvbnN0IEdyYXBoUHJvcGVydHlSZWYgKikgZXhwciktPnR5cG1vZDsKIAkJZGVmYXVsdDoKIAkJ CWJyZWFrOwogCX0KQEAgLTEwNTcsNyArMTA1Niw3IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9k ZSAqZXhwcikKIAkJCWNvbGwgPSBleHByQ29sbGF0aW9uKChOb2RlICopICgoY29uc3QgUGxhY2VI b2xkZXJWYXIgKikgZXhwciktPnBoZXhwcik7CiAJCQlicmVhazsKIAkJY2FzZSBUX0dyYXBoUHJv cGVydHlSZWY6Ci0JCQljb2xsID0gREVGQVVMVF9DT0xMQVRJT05fT0lEOwkvKiBGSVhNRSAqLwor CQkJY29sbCA9ICgoY29uc3QgR3JhcGhQcm9wZXJ0eVJlZiAqKSBleHByKS0+Y29sbGF0aW9uOwog CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0 ZS5jCmluZGV4IDEwMTAwMjAyYTlkLi4wZWJhYmRhMGU4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y29sbGF0ZS5jCkBAIC01NDYsNiArNTQ2LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5v ZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNhc2UgVF9D YXNlVGVzdEV4cHI6CiAJCWNhc2UgVF9TZXRUb0RlZmF1bHQ6CiAJCWNhc2UgVF9DdXJyZW50T2ZF eHByOgorCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKIAogCQkJLyoKIAkJCSAqIEdlbmVyYWwg Y2FzZSBmb3IgY2hpbGRsZXNzIGV4cHJlc3Npb24gbm9kZXMuICBUaGVzZSBzaG91bGQKQEAgLTU3 MSwxMyArNTcyLDYgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIGFzc2ln bl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQlsb2NhdGlvbiA9IGV4cHJMb2NhdGlv bihub2RlKTsKIAkJCWJyZWFrOwogCi0JCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgotCQkJLyog RklYTUUgKi8KLQkJCWNvbGxhdGlvbiA9IERFRkFVTFRfQ09MTEFUSU9OX09JRDsKLQkJCXN0cmVu Z3RoID0gQ09MTEFURV9JTVBMSUNJVDsKLQkJCWxvY2F0aW9uID0gLTE7Ci0JCQlicmVhazsKLQog CQlkZWZhdWx0OgogCQkJewogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZ3JhcGh0YWJsZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUu YwppbmRleCBiMDg4MzA2YjViMy4uYTg3NjlhNjdiNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2dyYXBodGFibGUuYwpAQCAtNTYsMTggKzU2LDI0IEBAIHRyYW5zZm9ybUdyYXBoVGFibGVQcm9w ZXJ0eVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJaWYgKGxpc3Rf bWVtYmVyKGdwc3RhdGUtPnZhcmlhYmxlcywgZmllbGQxKSkKIAkJewogCQkJR3JhcGhQcm9wZXJ0 eVJlZiAqZ3ByID0gbWFrZU5vZGUoR3JhcGhQcm9wZXJ0eVJlZik7Ci0JCQlPaWQJCQlwcm9waWQ7 CisJCQlIZWFwVHVwbGUJcGdwdHVwOworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdw Zm9ybTsKIAotCQkJcHJvcGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSFBST1BOQU1FLCBB bnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQsIE9iamVjdElkR2V0RGF0dW0oZ3BzdGF0ZS0+ Z3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOwotCQkJaWYgKCFwcm9waWQpCisJ CQlwZ3B0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFJPUEdSQVBIUFJPUE5BTUUsIE9iamVjdElkR2V0 RGF0dW0oZ3BzdGF0ZS0+Z3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOworCQkJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBncHR1cCkpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ CWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkJZXJybXNnKCJwcm9wZXJ0eSBc IiVzXCIgZG9lcyBub3QgZXhpc3QiLCBwcm9wbmFtZSkpOworCQkJcGdwZm9ybSA9IChGb3JtX3Bn X3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHBncHR1cCk7CiAKIAkJCWdwci0+bG9jYXRp b24gPSBjcmVmLT5sb2NhdGlvbjsKIAkJCWdwci0+ZWx2YXJuYW1lID0gZWx2YXJuYW1lOwotCQkJ Z3ByLT5wcm9waWQgPSBwcm9waWQ7Ci0JCQlncHItPnR5cGVJZCA9IEdldFN5c0NhY2hlT2lkMShQ Uk9QR1JBUEhQUk9QT0lELCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCwgT2Jq ZWN0SWRHZXREYXR1bShwcm9waWQpKTsKKwkJCWdwci0+cHJvcGlkID0gcGdwZm9ybS0+b2lkOwor CQkJZ3ByLT50eXBlSWQgPSBwZ3Bmb3JtLT5wZ3B0eXBpZDsKKwkJCWdwci0+dHlwbW9kID0gcGdw Zm9ybS0+cGdwdHlwbW9kOworCQkJZ3ByLT5jb2xsYXRpb24gPSBwZ3Bmb3JtLT5wZ3Bjb2xsYXRp b247CisKKwkJCVJlbGVhc2VTeXNDYWNoZShwZ3B0dXApOwogCiAJCQlyZXR1cm4gKE5vZGUgKikg Z3ByOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5kZXggOWMx NGZhM2IxYjcuLjgwZTI4ZGI3NTJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1 ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv cGdyYXBoX2xhYmVsLmgiCkBAIC0yMyw3ICsyNCwxMCBAQAogI2luY2x1ZGUgIm5vZGVzL25vZGVG dW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJwYXJz ZXIvYW5hbHl6ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgor I2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZV9yZWxhdGlvbi5oIgpAQCAtODMsNyArODcsNyBAQCBzdHJ1Y3QgcGF0aF9lbGVtZW50 CiB9OwogCiBzdGF0aWMgTm9kZSAqcmVwbGFjZV9wcm9wZXJ0eV9yZWZzKE9pZCBwcm9wZ3JhcGhp ZCwgTm9kZSAqbm9kZSwgY29uc3QgTGlzdCAqbWFwcGluZ3MpOwotc3RhdGljIExpc3QgKmJ1aWxk X2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBp bnQgcmVmcnRpLCBBdHRyTnVtYmVyIGNhdGFsb2dfa2V5X2F0dG51bSwgQXR0ck51bWJlciBjYXRh bG9nX3JlZl9hdHRudW0pOworc3RhdGljIExpc3QgKmJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVh bHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBPaWQgcmVmaWQs IEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0 dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX2Vxb3BfYXR0bnVtKTsKIHN0YXRpYyBMaXN0ICpnZW5l cmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpl bGVtZW50X3BhdHRlcm5zKTsKIHN0YXRpYyBRdWVyeSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2dyYXBo X3BhdGgoUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoKTsKIHN0YXRpYyBOb2RlICpnZW5l cmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKExpc3QgKnBhdGhxdWVyaWVzLCBMaXN0ICoqcnRh YmxlLCBMaXN0ICoqdGFyZ2V0bGlzdCk7CkBAIC0zNzMsNiArMzc3LDIzIEBAIGdlbmVyYXRlX3F1 ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAq cGF0aHF1ZXJpZXMsCiAvKgogICogQ29uc3RydWN0IGEgcXVlcnkgcmVwcmVzZW50aW5nIGdpdmVu IGdyYXBoIHBhdGguCiAgKgorICogVGhlIHF1ZXJ5IGNvbnRhaW5zOgorICoKKyAqIDEuIHRhcmdl dGxpc3QgY29ycmVzcG9uZGluZyB0aGUgQ09MVU1OUyBjbGF1c2Ugb2YgR1JBUEhfVEFCTEUgY2xh dXNlCisgKgorICogMi4gcXVhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgV0hFUkUgY2xhdXNlIG9m IGluZGl2aWR1YWwgZWxlbWVudHMsIFdIRVJFCisgKiBjbGF1c2UgaW4gR1JBUEhfVEFCTEUgY2xh dXNlIGFuZCBxdWFscyByZXByZXNlbnRpbmcgZWRnZS12ZXJ0ZXggbGlua3MuCisgKgorICogMy4g ZnJvbWxpc3QgY29udGFpbmluZyBhbGwgZWxlbWVudHMgaW4gdGhlIHBhdGgKKyAqCisgKiBUaGUg Y29sbGF0aW9ucyBvZiBwcm9wZXJ0eSBleHByZXNzaW9ucyBhcmUgb2J0YWluZWQgZnJvbSB0aGUg Y2F0YWxvZyBhbmQKKyAqIHN1YnN0aXR1dGVkIGluIHBsYWNlIG9mIGEgcHJvcGVydHkgcmVmZXJl bmNlLiBUaGUgY29sbGF0aW9ucyBvZiBleHByZXNzaW9ucworICogaW4gQ09MVU1OUyBhbmQgV0hF UkUgY2xhdXNlcyBhcmUgYXNzaWduZWQgYmVmb3JlIHJld3JpdGluZyB0aGUgZ3JhcGggdGFibGUu CisgKiBUaGUgY29sbGF0aW9ucyBvZiB0aGUgZWRnZS12ZXJ0ZXggbGluayBxdWFscyBhcmUgYXNz aWduZWQgd2hlbiBjcmFmdGluZyB0aG9zZQorICogcXVhbHMuIFRodXMgZXZlcnl0aGluZyBpbiB0 aGUgcXVlcnkgdGhhdCByZXF1aXJlcyBjb2xsYXRpb24gYXNzaWdubWVudCBoYXMKKyAqIGJlZW4g dGFrZW4gY2FyZSBvZiBhbHJlYWR5LiBTbyBubyBjb2xsYXRpb24gYXNzaWdubWVudCBpcyByZXF1 aXJlZCBpbiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCiAgKiBNb3JlIGRldGFpbHMgaW4gdGhlIHBy b2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybigpLgogICovCiBzdGF0 aWMgUXVlcnkgKgpAQCAtNTUyLDYgKzU3MywxMiBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlf cGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIC8qCiAgKiBDb25zdHJ1Y3QgYSBxdWVy eSB3aGljaCBpcyBVTklPTiBvZiBnaXZlbiBwYXRoIHF1ZXJpZXMuCiAgKgorICogVGhlIFVOSU9O IHF1ZXJ5IGRlcml2ZXMgY29sbGF0aW9ucyBvZiBpdHMgdGFyZ2V0bGlzdCBlbnRyaWVzIGZyb20g dGhlCisgKiBjb3JyZXNwb25kaW5nIHRhcmdldGxpc3QgZW50cmllcyBvZiB0aGUgcGF0aCBxdWVy aWVzIGFuZCBwcm9qZWN0cyBpdC4gVGhlCisgKiB0YXJnZXRsaXN0cyBvZiBwYXRoIHF1ZXJpZXMg YmVpbmcgVU5JT04nZWQgYWxyZWFkeSBoYXZlIGNvbGxhdGlvbnMgYXNzaWduZWQuCisgKiBUaGUg c2FtZSBjb2xsYXRpb25zIGFyZSB1c2VkIGZvciB0YXJnZXRsaXN0IG9mIFVOSU9OIHF1ZXJ5LiBU aHVzIHRoZXJlIGlzIG5vCisgKiBzZXBhcmF0ZSBjb2xsYXRpb24gYXNzaWdubWVudCByZXF1aXJl ZCBpbiB0aGlzIGZ1bmN0aW9uLgorICoKICAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBw YXRocXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZwogICogU2V0T3BlcmF0aW9uU3RtdCBy ZWNydXJzaXZlbHkuIEhlbmNlIHRoZSBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB3aXRoCiAgKiBg cGF0aHF1ZXJpZXNgIHNldCB0byBOSUwuCkBAIC03NDcsMTEgKzc3NCwxNSBAQCBjcmVhdGVfZ3Bl X2Zvcl9lbGVtZW50KHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYsIE9pZCBlbGVtb2lkKQogCQkgKiBl YWNoIHRpbWUuCiAJCSAqLwogCQlwZS0+c3JjX3F1YWxzID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlu a19xdWFscyhlbGV0dXAsIHBmLT5mYWN0b3Jwb3MgKyAxLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3Mg KyAxLAorCQkJCQkJCQkJCQkJCSBwZS0+c3JjdmVydGV4aWQsCiAJCQkJCQkJCQkJCQkJIEFudW1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jja2V5LAotCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7CisJCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdy YXBoX2VsZW1lbnRfcGdlc3JjcmVmLAorCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9l bGVtZW50X3BnZXNyY2Vxb3ApOwogCQlwZS0+ZGVzdF9xdWFscyA9IGJ1aWxkX2VkZ2VfdmVydGV4 X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPmRlc3RfcGYtPmZhY3Rv cnBvcyArIDEsCisJCQkJCQkJCQkJCQkJICBwZS0+ZGVzdHZlcnRleGlkLAogCQkJCQkJCQkJCQkJ CSAgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5LAotCQkJCQkJCQkJCQkJCSAg QW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0cmVmKTsKKwkJCQkJCQkJCQkJCQkgIEFu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiwKKwkJCQkJCQkJCQkJCQkgIEFudW1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGVxb3ApOwogCX0KIAogCVJlbGVhc2VTeXNDYWNo ZShlbGV0dXApOwpAQCAtMTEyMiwxOCArMTE1MywyNiBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnMo T2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5ncykKIH0KIAog LyoKLSAqIEJ1aWxkIGpvaW4gcXVhbGlmaWNhdGlvbiBleHByZXNzaW9ucyBiZXR3ZWVuIGVkZ2Ug YW5kIHZlcnRleCB0YWJsZXMuCisgKiBCdWlsZCBqb2luIHF1YWxpZmljYXRpb24gZXhwcmVzc2lv bnMgYmV0d2VlbiBlZGdlIGFuZCB2ZXJ0ZXggdGFibGVzIHVzaW5nCisgKiBlcXVhbGl0eSBvcGVy YXRvcnMgaWRlbnRpZmllZCBhdCB0aGUgdGltZSBvZiBjcmVhdGluZyB0aGUgZWRnZS4KICAqLwog c3RhdGljIExpc3QgKgotYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVwbGUgZWRn ZXR1cCwgaW50IGVkZ2VydGksIGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0 bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0dG51bSkKK2J1aWxkX2VkZ2VfdmVydGV4X2xp bmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBPaWQg cmVmaWQsIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2df cmVmX2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX2Vxb3BfYXR0bnVtKQogewogCUxpc3QJICAg KnF1YWxzID0gTklMOwogCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQgcGdlZm9ybTsKIAlEYXR1 bQkJZGF0dW07CiAJRGF0dW0JICAgKmQxLAotCQkJICAgKmQyOworCQkJICAgKmQyLAorCQkJICAg KmQzOwogCWludAkJCW4xLAotCQkJCW4yOworCQkJCW4yLAorCQkJCW4zOworCVBhcnNlU3RhdGUg KnBzdGF0ZSA9IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKKwlIZWFwVHVwbGUJcmVmdHVwID0gU2Vh cmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKHJlZmlkKSk7CisJ T2lkCQkJcmVmcmVsaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVChy ZWZ0dXApKS0+cGdlcmVsaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUocmVmdHVwKTsKIAogCXBnZWZv cm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKGVkZ2V0dXApOwogCkBA IC0xMTQzLDMzICsxMTgyLDc0IEBAIGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoSGVhcFR1 cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBBdHRyTnVtCiAJZGF0dW0gPSBT eXNDYWNoZUdldEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lELCBlZGdldHVwLCBjYXRhbG9nX3Jl Zl9hdHRudW0pOwogCWRlY29uc3RydWN0X2FycmF5X2J1aWx0aW4oRGF0dW1HZXRBcnJheVR5cGVQ KGRhdHVtKSwgSU5UMk9JRCwgJmQyLCBOVUxMLCAmbjIpOwogCisJZGF0dW0gPSBTeXNDYWNoZUdl dEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lELCBlZGdldHVwLCBjYXRhbG9nX2Vxb3BfYXR0bnVt KTsKKwlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChkYXR1bSks IE9JRE9JRCwgJmQzLCBOVUxMLCAmbjMpOworCiAJaWYgKG4xICE9IG4yKQogCQllbG9nKEVSUk9S LCAiYXJyYXkgc2l6ZSBrZXkgKCVkKSB2cyByZWYgKCVkKSBtaXNtYXRjaCBmb3IgZWxlbWVudCBJ RCAldSIsIGNhdGFsb2dfa2V5X2F0dG51bSwgY2F0YWxvZ19yZWZfYXR0bnVtLCBwZ2Vmb3JtLT5v aWQpOworCWlmIChuMSAhPSBuMykKKwkJZWxvZyhFUlJPUiwgImFycmF5IHNpemUga2V5ICglZCkg dnMgb3BlcmF0b3IgKCVkKSBtaXNtYXRjaCBmb3IgZWxlbWVudCBJRCAldSIsIGNhdGFsb2dfa2V5 X2F0dG51bSwgY2F0YWxvZ19lcW9wX2F0dG51bSwgcGdlZm9ybS0+b2lkKTsKIAogCWZvciAoaW50 IGkgPSAwOyBpIDwgbjE7IGkrKykKIAl7CiAJCUF0dHJOdW1iZXIJa2V5YXR0biA9IERhdHVtR2V0 SW50MTYoZDFbaV0pOwogCQlBdHRyTnVtYmVyCXJlZmF0dG4gPSBEYXR1bUdldEludDE2KGQyW2ld KTsKKwkJT2lkCQkJZXFvcCA9IERhdHVtR2V0T2JqZWN0SWQoZDNbaV0pOworCQlWYXIJCSAgICpr ZXl2YXI7CisJCVZhcgkJICAgKnJlZnZhcjsKIAkJT2lkCQkJYXR0dHlwaWQ7Ci0JCVR5cGVDYWNo ZUVudHJ5ICp0eXBlbnRyeTsKLQkJT3BFeHByCSAgICpvcDsKKwkJaW50MzIJCWF0dHR5cG1vZDsK KwkJT2lkCQkJYXR0Y29sbDsKKwkJSGVhcFR1cGxlCXR1cDsKKwkJRm9ybV9wZ19vcGVyYXRvciBv cGZvcm07CisJCUxpc3QJICAgKmFyZ3M7CisJCU9pZAkJCWFjdHVhbF9hcmdfdHlwZXNbMl07CisJ CU9pZAkJCWRlY2xhcmVkX2FyZ190eXBlc1syXTsKKwkJT3BFeHByCSAgICpsaW5rcXVhbDsKKwor CQlnZXRfYXR0dHlwZXR5cG1vZGNvbGwocGdlZm9ybS0+cGdlcmVsaWQsIGtleWF0dG4sICZhdHR0 eXBpZCwgJmF0dHR5cG1vZCwgJmF0dGNvbGwpOworCQlrZXl2YXIgPSBtYWtlVmFyKGVkZ2VydGks IGtleWF0dG4sIGF0dHR5cGlkLCBhdHR0eXBtb2QsIGF0dGNvbGwsIDApOworCQlnZXRfYXR0dHlw ZXR5cG1vZGNvbGwocmVmcmVsaWQsIHJlZmF0dG4sICZhdHR0eXBpZCwgJmF0dHR5cG1vZCwgJmF0 dGNvbGwpOworCQlyZWZ2YXIgPSBtYWtlVmFyKHJlZnJ0aSwgcmVmYXR0biwgYXR0dHlwaWQsIGF0 dHR5cG1vZCwgYXR0Y29sbCwgMCk7CisKKwkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKE9QRVJPSUQs IE9iamVjdElkR2V0RGF0dW0oZXFvcCkpOworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkK KwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciAldSIsIGVx b3ApOworCQlvcGZvcm0gPSAoRm9ybV9wZ19vcGVyYXRvcikgR0VUU1RSVUNUKHR1cCk7CisJCS8q IEFuIGVxdWFsaXR5IG9wZXJhdG9yIGlzIGEgYmluYXJ5IG9wZXJhdG9yIHJldHVybmluZyBib29s ZWFuIHJlc3VsdC4gKi8KKwkJQXNzZXJ0KG9wZm9ybS0+b3Bya2luZCA9PSAnYicKKwkJCSAgICYm IFJlZ1Byb2NlZHVyZUlzVmFsaWQob3Bmb3JtLT5vcHJjb2RlKQorCQkJICAgJiYgb3Bmb3JtLT5v cHJyZXN1bHQgPT0gQk9PTE9JRAorCQkJICAgJiYgIWdldF9mdW5jX3JldHNldChvcGZvcm0tPm9w cmNvZGUpKTsKIAogCQkvKgotCQkgKiBUT0RPOiBBc3N1bWVzIHR5cGVzIHRoZSBzYW1lIG9uIGJv dGggc2lkZXM7IG5vIGNvbGxhdGlvbnMgeWV0LiBTb21lCi0JCSAqIG9mIHRoaXMgY291bGQgcHJv YmFibHkgYmUgc2hhcmVkIHdpdGggZm9yZWlnbiBrZXkgdHJpZ2dlcnMuCisJCSAqIFByZXBhcmUg b3BlcmFuZHMgYW5kIGNhc3QgdGhlbSB0byB0aGUgdHlwZXMgcmVxdWlyZWQgYnkgdGhlCisJCSAq IGVxdWFsaXR5IG9wZXJhdG9yLiBTaW1pbGFyIHRvIFBLL0ZLIHFhdWxzLCByZWZlcmVuY2VkIHZl cnRleCBrZXkgaXMKKwkJICogdXNlZCBhcyBsZWZ0IG9wZXJhbmQgYW5kIHJlZmVyZW5jaW5nIGVk Z2Uga2V5IGlzIHVzZWQgYXMgcmlnaHQKKwkJICogb3BlcmFuZC4KIAkJICovCi0JCWF0dHR5cGlk ID0gZ2V0X2F0dHR5cGUocGdlZm9ybS0+cGdlcmVsaWQsIGtleWF0dG4pOwotCQl0eXBlbnRyeSA9 IGxvb2t1cF90eXBlX2NhY2hlKGF0dHR5cGlkLCBUWVBFQ0FDSEVfRVFfT1BSKTsKLQotCQlvcCA9 IG1ha2VOb2RlKE9wRXhwcik7Ci0JCW9wLT5sb2NhdGlvbiA9IC0xOwotCQlvcC0+b3BubyA9IHR5 cGVudHJ5LT5lcV9vcHI7Ci0JCW9wLT5vcHJlc3VsdHR5cGUgPSBCT09MT0lEOwotCQlvcC0+YXJn cyA9IGxpc3RfbWFrZTIobWFrZVZhcihlZGdlcnRpLCBrZXlhdHRuLCBhdHR0eXBpZCwgLTEsIDAs IDApLAotCQkJCQkJCSAgbWFrZVZhcihyZWZydGksIHJlZmF0dG4sIGF0dHR5cGlkLCAtMSwgMCwg MCkpOwotCQlxdWFscyA9IGxhcHBlbmQocXVhbHMsIG9wKTsKKwkJYXJncyA9IGxpc3RfbWFrZTIo cmVmdmFyLCBrZXl2YXIpOworCQlhY3R1YWxfYXJnX3R5cGVzWzBdID0gZXhwclR5cGUoKE5vZGUg KikgcmVmdmFyKTsKKwkJYWN0dWFsX2FyZ190eXBlc1sxXSA9IGV4cHJUeXBlKChOb2RlICopIGtl eXZhcik7CisJCWRlY2xhcmVkX2FyZ190eXBlc1swXSA9IG9wZm9ybS0+b3BybGVmdDsKKwkJZGVj bGFyZWRfYXJnX3R5cGVzWzFdID0gb3Bmb3JtLT5vcHJyaWdodDsKKwkJbWFrZV9mbl9hcmd1bWVu dHMocHN0YXRlLCBhcmdzLCBhY3R1YWxfYXJnX3R5cGVzLCBkZWNsYXJlZF9hcmdfdHlwZXMpOwor CisJCWxpbmtxdWFsID0gbWFrZU5vZGUoT3BFeHByKTsKKwkJbGlua3F1YWwtPm9wbm8gPSBvcGZv cm0tPm9pZDsKKwkJbGlua3F1YWwtPm9wZnVuY2lkID0gb3Bmb3JtLT5vcHJjb2RlOworCQlsaW5r cXVhbC0+b3ByZXN1bHR0eXBlID0gb3Bmb3JtLT5vcHJyZXN1bHQ7CisJCWxpbmtxdWFsLT5vcHJl dHNldCA9IGZhbHNlOworCQkvKiBvcGNvbGxpZCBhbmQgaW5wdXRjb2xsaWQgd2lsbCBiZSBzZXQg YnkgcGFyc2VfY29sbGF0ZS5jICovCisJCWxpbmtxdWFsLT5hcmdzID0gYXJnczsKKwkJbGlua3F1 YWwtPmxvY2F0aW9uID0gLTE7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCXF1YWxzID0g bGFwcGVuZChxdWFscywgbGlua3F1YWwpOwogCX0KIAorCWFzc2lnbl9leHByX2NvbGxhdGlvbnMo cHN0YXRlLCAoTm9kZSAqKSBxdWFscyk7CisKIAlyZXR1cm4gcXVhbHM7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAppbmRleCAyYmMyMDY2YjZjMS4uZmVh MDZjMDk2M2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2Vs ZW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgK QEAgLTYyLDYgKzYyLDExIEBAIENBVEFMT0cocGdfcHJvcGdyYXBoX2VsZW1lbnQsODI5OSxQcm9w Z3JhcGhFbGVtZW50UmVsYXRpb25JZCkKIAkgKi8KIAlpbnQxNgkJcGdlc3JjcmVmWzFdOwogCisJ LyoKKwkgKiBmb3IgZWRnZXM6IE9pZHMgb2YgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IgY29t cGFyaW5nIHNvdXJjZSBrZXlzCisJICovCisJT2lkCQkJcGdlc3JjZXFvcFsxXTsKKwogCS8qCiAJ ICogZm9yIGVkZ2VzOiBkZXN0aW5hdGlvbiB2ZXJ0ZXgga2V5IChjb2x1bW4gbnVtYmVycyBpbiBw Z2VyZWxpZCByZWxhdGlvbikKIAkgKi8KQEAgLTcyLDYgKzc3LDEyIEBAIENBVEFMT0cocGdfcHJv cGdyYXBoX2VsZW1lbnQsODI5OSxQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCkKIAkgKiBpbiBy ZWxhdGlvbiByZWFjaGVkIHZpYSBwZ2VkZXN0dmVydGV4aWQpCiAJICovCiAJaW50MTYJCXBnZWRl c3RyZWZbMV07CisKKwkvKgorCSAqIGZvciBlZGdlczogT2lkcyBvZiB0aGUgZXF1YWxpdHkgb3Bl cmF0b3JzIGZvciBjb21wYXJpbmcgZGVzdGluYXRpb24KKwkgKiBrZXlzCisJICovCisJT2lkCQkJ cGdlZGVzdGVxb3BbMV07CiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnQ7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5 LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oCmluZGV4IGI4 OTIxYWNlMzBjLi4yNDBiMzRmMDM5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9wZ3JhcGhfcHJvcGVydHkuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eS5oCkBAIC0zNiw2ICszNiwxMiBAQCBDQVRBTE9HKHBnX3Byb3BncmFwaF9w cm9wZXJ0eSw4MzA2LFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCkKIAogCS8qIGRhdGEgdHlw ZSBvZiB0aGUgcHJvcGVydHkgKi8KIAlPaWQJCQlwZ3B0eXBpZCBCS0lfTE9PS1VQX09QVChwZ190 eXBlKTsKKworCS8qIHR5cGVtb2Qgb2YgdGhlIHByb3BlcnR5ICovCisJaW50MzIJCXBncHR5cG1v ZDsKKworCS8qIGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHkgKi8KKwlPaWQJCQlwZ3Bjb2xsYXRp b24gQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKIH0gRm9ybURhdGFfcGdfcHJvcGdyYXBo X3Byb3BlcnR5OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4 IGEyNDZiZDlkZmQ2Li41YTQ4NWVlNDcxZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIxNDcs NiArMjE0Nyw4IEBAIHR5cGVkZWYgc3RydWN0IEdyYXBoUHJvcGVydHlSZWYKIAljb25zdCBjaGFy ICplbHZhcm5hbWU7CiAJT2lkCQkJcHJvcGlkOwogCU9pZAkJCXR5cGVJZDsKKwlpbnQzMgkJdHlw bW9kOworCU9pZAkJCWNvbGxhdGlvbjsKIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gR3JhcGhQcm9w ZXJ0eVJlZjsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf cHJvcGVydHlfZ3JhcGgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJv cGVydHlfZ3JhcGgub3V0CmluZGV4IDQzMzE2ZmJjMDI5Li5jM2YwNzI5NDRjZCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dApA QCAtMTg3LDYgKzE4Nyw5NCBAQCBHUkFOVCBTRUxFQ1QgT04gUFJPUEVSVFkgR1JBUEggZzEgVE8g cmVncmVzc19ncmFwaF91c2VyMjsKIEdSQU5UIFVQREFURSBPTiBQUk9QRVJUWSBHUkFQSCBnMSBU TyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAogRVJST1I6ICBpbnZhbGlkIHByaXZpbGVn ZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkgZ3JhcGgKIFJFU0VUIFJPTEU7CistLSBjb2xsYXRp b24KK0NSRUFURSBUQUJMRSB0YzEgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHRjMiAo YSBpbnQsIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgdGMzIChhIGludCwgYiB0ZXh0IENPTExBVEUg IkMiKTsKK0NSRUFURSBUQUJMRSBlYzEgKGVrMSBpbnQsIGVrMiBpbnQsIGViIHRleHQpOworQ1JF QVRFIFRBQkxFIGVjMiAoZWsxIGludCwgZWsyIGludCwgZWIgdGV4dCBDT0xMQVRFICJQT1NJWCIp OworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGdjMQorICAgIFZFUlRFWCBUQUJMRVMgKHRjMSBLRVkg KGEpLCB0YzIgS0VZIChhKSwgdGMzIEtFWSAoYSkpOyAtLSBmYWlsCitFUlJPUjogIHByb3BlcnR5 ICJiIiBjb2xsYXRpb24gbWlzbWF0Y2g6IGRlZmF1bHQgdnMuIEMKK0RFVEFJTDogIEluIGEgcHJv cGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUg c2FtZSBjb2xsYXRpb24gaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEK KyAgICBWRVJURVggVEFCTEVTICh0YzEgS0VZIChhKSwgdGMyIEtFWSAoYSkpCisgICAgRURHRSBU QUJMRVMgKAorICAgICAgICBlYzEgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBL RVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkg KGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAg ICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAg ICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpKTsgLS0gZmFpbAorRVJS T1I6ICBwcm9wZXJ0eSAiZWIiIGNvbGxhdGlvbiBtaXNtYXRjaDogZGVmYXVsdCB2cy4gUE9TSVgK K0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFt ZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24gaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICh0YzEgS0VZIChhKSBERUZBVUxU IExBQkVMIFBST1BFUlRJRVMgKGEpLCB0YzMgS0VZIChiKSkKKyAgICBFREdFIFRBQkxFUyAoCisg ICAgICAgIGVjMiBLRVkgKGVrMSwgZWIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJF RkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlYikgUkVGRVJF TkNFUyB0YzMgKGIpKTsgLS0gZmFpbAorRVJST1I6ICBjb2xsYXRpb24gbWlzbWF0Y2ggaW4gREVT VElOQVRJT04ga2V5IG9mIGVkZ2UgImVjMiI6IFBPU0lYIHZzLiBDCitMSU5FIDQ6ICAgICAgICAg ZWMyIEtFWSAoZWsxLCBlYikKKyAgICAgICAgICAgICAgICBeCitDUkVBVEUgUFJPUEVSVFkgR1JB UEggZ2MxCisgICAgVkVSVEVYIFRBQkxFUyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEpKQorICAg IEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBT T1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJ T04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBn YzEgQUREIFZFUlRFWCBUQUJMRVMgKHRjMyBLRVkgKGEpKTsgLS0gZmFpbAorRVJST1I6ICBwcm9w ZXJ0eSAiYiIgY29sbGF0aW9uIG1pc21hdGNoOiBkZWZhdWx0IHZzLiBDCitERVRBSUw6ICBJbiBh IHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUg dGhlIHNhbWUgY29sbGF0aW9uIGluIGVhY2ggbGFiZWwuCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBn YzEgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAg ICAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAg ICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKSk7IC0tIGZh aWwKK0VSUk9SOiAgcHJvcGVydHkgImViIiBjb2xsYXRpb24gbWlzbWF0Y2g6IGRlZmF1bHQgdnMu IFBPU0lYCitERVRBSUw6ICBJbiBhIHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9mIHRoZSBz YW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uIGluIGVhY2ggbGFiZWwuCitB TFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAg IHRjMyBLRVkgKGEpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoYSwgYiBDT0xMQVRFIHBnX2Nh dGFsb2cuREVGQVVMVCBBUyBiKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIEVER0Ug VEFCTEVTICgKKyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAgICAgICAgICAgICAg IFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICAgICAgREVT VElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAgICAgIERF RkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoZWsxLCBlazIsIGViIENPTExBVEUgcGdfY2F0YWxvZy5E RUZBVUxUIEFTIGViKSk7CitEUk9QIFBST1BFUlRZIEdSQVBIIGdjMTsKK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdGMxIEtFWSAoYSkgREVG QVVMVCBMQUJFTCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIENPTExBVEUgIkMiIEFTIGIpLAor ICAgICAgICB0YzIgS0VZIChhKSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEsIChiIENPTExB VEUgIkMiKTo6dmFyY2hhciBBUyBiKSwKKyAgICAgICAgdGMzIEtFWSAoYSkgREVGQVVMVCBMQUJF TCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIEFTIGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAg ICAgICAgZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJF RkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVS RU5DRVMgdGMyIChhKQorICAgICAgICAgICAgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChlazEs IGVrMiwgZWIpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJD RSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBL RVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMIFBS T1BFUlRJRVMgKGVrMSwgZWsyLCBlYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBBUyBlYikp OworLS0gdHlwZSBpbmNvc2lzdGVuY3kgY2hlY2sKK0NSRUFURSBUQUJMRSB2MSAoYSBpbnQgcHJp bWFyeSBrZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgZShrMSB0ZXh0LCBrMiB0ZXh0LCBjIHRl eHQpOworQ1JFQVRFIFRBQkxFIHYyIChtIHRleHQsIG4gdGV4dCk7CitDUkVBVEUgUFJPUEVSVFkg R1JBUEggZ3QKKyAgICBWRVJURVggVEFCTEVTICh2MSBLRVkgKGEpLCB2MiBLRVkgKG0pKQorICAg IEVER0UgVEFCTEVTICgKKyAgICAgICAgZSBLRVkgKGsxLCBrMikKKyAgICAgICAgU09VUkNFIEtF WSAoazEpIFJFRkVSRU5DRVMgdjEoYSkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChrMikgUkVG RVJFTkNFUyB2MihtKSk7IC0tIGZhaWwKK0VSUk9SOiAgbm8gZXF1YWxpdHkgb3BlcmF0b3IgZXhp c3RzIGZvciBTT1VSQ0Uga2V5IGNvbXBhcmlzb24gb2YgZWRnZSAiZSIKK0xJTkUgNDogICAgICAg ICBlIEtFWSAoazEsIGsyKQorICAgICAgICAgICAgICAgIF4KK0FMVEVSIFRBQkxFIGUgRFJPUCBD T0xVTU4gazEsIEFERCBDT0xVTU4gazEgYmlnaW50IHByaW1hcnkga2V5OworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGd0CisgICAgVkVSVEVYIFRBQkxFUyAodjEgS0VZIChhKSwgdjIgS0VZIChtKSkK KyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUgS0VZIChrMSwgazIpCisgICAgICAgIFNPVVJD RSBLRVkgKGsxKSBSRUZFUkVOQ0VTIHYxKGEpCisgICAgICAgIERFU1RJTkFUSU9OIEtFWSAoazIp IFJFRkVSRU5DRVMgdjIobSkpOwogLS0gaW5mb3JtYXRpb24gc2NoZW1hCiBTRUxFQ1QgKiBGUk9N IGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkgcHJvcGVydHlfZ3Jh cGhfbmFtZTsKICBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2No ZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSAKQEAgLTE5Niw3ICsyODQsOSBAQCBTRUxFQ1Qg KiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkgcHJvcGVy dHlfZ3JhcGhfbmFtZTsKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzMKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzQKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUKLSg1IHJvd3MpCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndAorKDcgcm93cykKIAogU0VM RUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKICBwcm9wZXJ0eV9ncmFw aF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhf bmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQgfCB0YWJsZV9j YXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFtZSB8IGVsZW1l bnRfdGFibGVfZGVmaW5pdGlvbiAKQEAgLTIxNiw3ICszMDYsMTUgQEAgU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkgcHJvcGVydHlfZ3Jh cGhfbmFtZSwKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAgICAgfCBWRVJU RVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgdDExICAgICAgICB8IAogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAgICAgICAg ICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCB0MTIgICAgICAgIHwgCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMg ICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxMyAgICAgICAgfCAKLSgxNSByb3dzKQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEg ICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IEVER0UgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBlYzEgICAg ICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgRURHRSAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGVjMiAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMSAgICAgICAgICAgICAg ICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgdGMxICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyICAg ICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0YzIgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCB0YzMgICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHRjMyAgICAgICAgfCAKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAg ICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBFREdFICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZSAgICAgICAg ICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjEgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCB2MSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MiAgICAgICAgICAgICAgICAg IHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IHYyICAgICAgICAgfCAKKygyMyByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHBy b3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247 CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8 IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2FsaWFzIHwgY29sdW1uX25hbWUg fCBvcmRpbmFsX3Bvc2l0aW9uIApAQCAtMjQwLDcgKzMzOCwxOCBAQCBTRUxFQ1QgKiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHBy b3BlcnR5XwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDExICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAg ICAgICAgICAgICB8IGIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAg ICAgICAgIHwgdDEzICAgICAgICAgICAgICAgICB8IGMgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgMQotKDE5IHJvd3MpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzEgICAgICAgICAgICAgICAg IHwgZWsxICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBl YzEgICAgICAgICAgICAgICAgIHwgZWsyICAgICAgICAgfCAgICAgICAgICAgICAgICAyCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAg ICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWsxICAgICAgICAgfCAgICAg ICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwg ZWsyICAgICAgICAgfCAgICAgICAgICAgICAgICAyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzEg ICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAg ICAgICAgICAgICAgfCB0YzIgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMgICAgICAgICAgICAgICAgIHwgYSAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAg ICAgICAgICAgICAgIHwgazEgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAg ICAgICAgICAgfCBlICAgICAgICAgICAgICAgICAgIHwgazIgICAgICAgICAgfCAgICAgICAgICAg ICAgICAyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwgYSAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MiAgICAgICAg ICAgICAgICAgIHwgbSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisoMzAgcm93cykKIAog U0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWRnZV90YWJsZV9jb21wb25lbnRz IE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVkZ2VfdGFibGVfYWxpYXMsIGVkZ2VfZW5k IERFU0MsIG9yZGluYWxfcG9zaXRpb247CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHBy b3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlZGdlX3RhYmxl X2FsaWFzIHwgdmVydGV4X3RhYmxlX2FsaWFzIHwgIGVkZ2VfZW5kICAgfCBlZGdlX3RhYmxlX2Nv bHVtbl9uYW1lIHwgdmVydGV4X3RhYmxlX2NvbHVtbl9uYW1lIHwgb3JkaW5hbF9wb3NpdGlvbiAK QEAgLTI1Nyw3ICszNjYsMTMgQEAgU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdf ZWRnZV90YWJsZV9jb21wb25lbnRzIE9SREVSIEJZIHByb3BlcnR5X2dyYXAKICByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgfCBERVNUSU5B VElPTiB8IHQgICAgICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAyCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAg IHwgdDExICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAgfCBlICAgICAgICAgICAgICAgICAg ICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAg ICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAgICB8IERF U1RJTkFUSU9OIHwgZSAgICAgICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKLSgxMiByb3dzKQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwg ZWMxICAgICAgICAgICAgICB8IHRjMSAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAgIHwgZWsx ICAgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgfCB0YzIgICAg ICAgICAgICAgICAgfCBERVNUSU5BVElPTiB8IGVrMiAgICAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCBlYzIgICAgICAgICAgICAgIHwgdGMxICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAg fCBlazEgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMyICAgICAgICAgICAgICB8IHRj MiAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgZWsyICAgICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAg ICAgICAgICB8IGUgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0Ug ICAgICB8IGsxICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAgICAgICAgICAg IHwgdjIgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBrMiAgICAgICAgICAgICAgICAg ICAgIHwgbSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorKDE4IHJv d3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVf bGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMs IGxhYmVsX25hbWU7CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBo X3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2FsaWFzIHwg bGFiZWxfbmFtZSAKQEAgLTI4MCwxMSArMzk1LDE5IEBAIFNFTEVDVCAqIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBo CiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgIHwgdDExCiAgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAg ICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAgICAgIHwgdDEyCiAgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAg ICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgdDEzCi0oMTggcm93cykKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAg ICAgICB8IGVjMSAgICAgICAgICAgICAgICAgfCBlYzEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVj MiAgICAgICAgICAgICAgICAgfCBlYzIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMSAgICAgICAg ICAgICAgICAgfCB0YzEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMiAgICAgICAgICAgICAgICAg fCB0YzIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMyAgICAgICAgICAgICAgICAgfCB0YzMKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3Qg ICAgICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBlCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAg ICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwgdjEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYy ICAgICAgICAgICAgICAgICAgfCB2MgorKDI2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3Jt YXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfcHJvcGVydGllcyBPUkRFUiBCWSBwcm9wZXJ0 eV9ncmFwaF9uYW1lLCBlbGVtZW50X3RhYmxlX2FsaWFzLCBwcm9wZXJ0eV9uYW1lOwotIHByb3Bl cnR5X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0 eV9ncmFwaF9uYW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUgfCBwcm9w ZXJ0eV9leHByZXNzaW9uIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHByb3BlcnR5X2dyYXBo X2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFwaF9u YW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUgfCAgICAgICAgIHByb3Bl cnR5X2V4cHJlc3Npb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICAgIHwgYQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8 IGkgICAgICAgICAgICAgfCBpCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICB8IHQKQEAgLTMyMCw3ICs0NDMsMjYgQEAgU0VMRUNUICogRlJP TSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzIE9SREVSIEJZ IHByb3BlcnR5X2cKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgICAgfCBj ICAgICAgICAgICAgIHwgYwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICAg ICB8IGQgICAgICAgICAgICAgfCBkCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAg ICAgICAgIHwgZSAgICAgICAgICAgICB8IGUKLSgzNSByb3dzKQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAg IHwgZWMxICAgICAgICAgICAgICAgICB8IGViICAgICAgICAgICAgfCBlYgorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAg ICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IGVrMSAgICAgICAgICAgfCBlazEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAg ICAgICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgICAgfCBlazIgICAgICAgICAgIHwgZWsy CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWIgICAgICAgICAg ICB8IChlYiBDT0xMQVRFICJkZWZhdWx0IikKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMiAgICAg ICAgICAgICAgICAgfCBlazEgICAgICAgICAgIHwgZWsxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBl YzIgICAgICAgICAgICAgICAgIHwgZWsyICAgICAgICAgICB8IGVrMgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAg ICAgIHwgdGMxICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAg ICAgICAgICAgfCB0YzEgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8ICgoYik6OmNo YXJhY3RlciB2YXJ5aW5nIENPTExBVEUgIkMiKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0 YzIgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8ICgoYik6OmNoYXJhY3RlciB2YXJ5 aW5nIENPTExBVEUgIkMiKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMzICAgICAgICAgICAgICAg ICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMgICAgICAgICAg ICAgICAgIHwgYiAgICAgICAgICAgICB8IChiKTo6Y2hhcmFjdGVyIHZhcnlpbmcKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAg ICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwgYworIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAg ICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICAgICAgICB8IGsxICAgICAgICAgICAgfCBr MQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICAgICAgICB8IGsyICAgICAgICAg ICAgfCBrMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjEgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwg YiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYyICAgICAgICAgICAgICAg ICAgfCBtICAgICAgICAgICAgIHwgbQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjIgICAgICAgICAg ICAgICAgICB8IG4gICAgICAgICAgICAgfCBuCisoNTQgcm93cykKIAogU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxfcHJvcGVydGllcyBPUkRFUiBCWSBwcm9wZXJ0eV9n cmFwaF9uYW1lLCBsYWJlbF9uYW1lLCBwcm9wZXJ0eV9uYW1lOwogIHByb3BlcnR5X2dyYXBoX2Nh dGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFwaF9uYW1l IHwgbGFiZWxfbmFtZSB8IHByb3BlcnR5X25hbWUgCkBAIC0zNjcsNyArNTA5LDI2IEBAIFNFTEVD VCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgIHwgYwog IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICB8IGQKICByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8 IHQxMyAgICAgICAgfCBlCi0oNDIgcm93cykKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMSAgICAg ICAgfCBlYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICB8IGVrMQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAg ICAgICAgICAgIHwgZWMxICAgICAgICB8IGVrMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMyICAg ICAgICB8IGViCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgIHwgZWsxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAg ICAgICAgICAgICAgfCBlYzIgICAgICAgIHwgZWsyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzEg ICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMxICAgICAgICB8IGIKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAg ICAgICAgICAgICB8IHRjMiAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzIgICAg ICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMzICAgICAgICB8IGEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAg ICAgICAgICB8IHRjMyAgICAgICAgfCBiCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAgICAg IHwgYworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICB8IGsxCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAg ICAgICAgfCBlICAgICAgICAgIHwgazIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYxICAgICAgICAg fCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAg ICAgIHwgdjIgICAgICAgICB8IG0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYyICAgICAgICAgfCBu CisoNjEgcm93cykKIAogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxz IE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGxhYmVsX25hbWU7CiAgcHJvcGVydHlfZ3Jh cGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBo X25hbWUgfCBsYWJlbF9uYW1lIApAQCAtMzkwLDM5ICs1NTEsNTkgQEAgU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUs IGxhYmVsX24KICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMQogIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwg dDEyCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMKLSgxOCByb3dzKQorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAg ICAgIHwgZWMxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8 IHRjMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg Z3QgICAgICAgICAgICAgICAgICB8IGUKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAg ICAgICAgICAgICAgfCB2MgorKDI2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25f c2NoZW1hLnBnX3Byb3BlcnR5X2RhdGFfdHlwZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFt ZSwgcHJvcGVydHlfbmFtZTsKLSBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlf Z3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25hbWUgfCBk YXRhX3R5cGUgfCBjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGggfCBjaGFyYWN0ZXJfb2N0ZXRfbGVu Z3RoIHwgY2hhcmFjdGVyX3NldF9jYXRhbG9nIHwgY2hhcmFjdGVyX3NldF9zY2hlbWEgfCBjaGFy YWN0ZXJfc2V0X25hbWUgfCBjb2xsYXRpb25fY2F0YWxvZyB8IGNvbGxhdGlvbl9zY2hlbWEgfCBj b2xsYXRpb25fbmFtZSB8IG51bWVyaWNfcHJlY2lzaW9uIHwgbnVtZXJpY19wcmVjaXNpb25fcmFk aXggfCBudW1lcmljX3NjYWxlIHwgZGF0ZXRpbWVfcHJlY2lzaW9uIHwgaW50ZXJ2YWxfdHlwZSB8 IGludGVydmFsX3ByZWNpc2lvbiB8IHVzZXJfZGVmaW5lZF90eXBlX2NhdGFsb2cgfCB1c2VyX2Rl ZmluZWRfdHlwZV9zY2hlbWEgfCB1c2VyX2RlZmluZWRfdHlwZV9uYW1lIHwgc2NvcGVfY2F0YWxv ZyB8IHNjb3BlX3NjaGVtYSB8IHNjb3BlX25hbWUgfCBtYXhpbXVtX2NhcmRpbmFsaXR5IHwgZHRk X2lkZW50aWZpZXIgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGIKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGkgICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgaQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgaiAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCBrICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGsKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgdAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB4Ci0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCB5ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IHkKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHogICAgICAg ICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgegotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAg ICAgICAgICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGIKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHggICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgeAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICB8IHRleHQgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB5Ci0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAg ICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IHoKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGEgICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgYQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBpCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAg ICAgICAgICAgfCBpX2ogICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGlfagotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwga2sgICAg ICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCBrawotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHRleHQgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAg ICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAg ICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdy ZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHgKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHl5ICAg ICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAg ICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHwgeXkKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHp6ICAgICAgICAgICAgfCB0ZXh0ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAg ICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgenoKLSByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgYiAg ICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAg ICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgfCBiCi0gcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwgaW50ZWdl ciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAg ICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKLSByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAg ICAgICAgICAgICAgICB8IGQgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgZSAg ICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAg ICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgfCBlCi0oMjcgcm93cykKKyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJv cGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25h bWUgfCAgICAgZGF0YV90eXBlICAgICB8IGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCB8IGNoYXJh Y3Rlcl9vY3RldF9sZW5ndGggfCBjaGFyYWN0ZXJfc2V0X2NhdGFsb2cgfCBjaGFyYWN0ZXJfc2V0 X3NjaGVtYSB8IGNoYXJhY3Rlcl9zZXRfbmFtZSB8IGNvbGxhdGlvbl9jYXRhbG9nIHwgY29sbGF0 aW9uX3NjaGVtYSB8IGNvbGxhdGlvbl9uYW1lIHwgbnVtZXJpY19wcmVjaXNpb24gfCBudW1lcmlj X3ByZWNpc2lvbl9yYWRpeCB8IG51bWVyaWNfc2NhbGUgfCBkYXRldGltZV9wcmVjaXNpb24gfCBp bnRlcnZhbF90eXBlIHwgaW50ZXJ2YWxfcHJlY2lzaW9uIHwgdXNlcl9kZWZpbmVkX3R5cGVfY2F0 YWxvZyB8IHVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYSB8IHVzZXJfZGVmaW5lZF90eXBlX25hbWUg fCBzY29wZV9jYXRhbG9nIHwgc2NvcGVfc2NoZW1hIHwgc2NvcGVfbmFtZSB8IG1heGltdW1fY2Fy ZGluYWxpdHkgfCBkdGRfaWRlbnRpZmllciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg dGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxv ZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGkKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIg ICAgICAgICAgICAgICAgICB8IGogICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAg ICAgICAgfCBrICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgaworIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAg fCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAg ICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAg fCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRh bG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn MiAgICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAg ICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHoKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAg ICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGlu dDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCBi ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAg ICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgfCB0ZXh0ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2Nh dGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB5 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGczICAgICAgICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwg aW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IGkgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBpX2ogICAgICAg ICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgaV9qCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBrayAgICAgICAgICAgIHwgaW50 ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwga2sKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0CisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAg ICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgeXkgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdy ZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB6eiAg ICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8 ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHwgenoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAg fCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwgaW50ZWdlciAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRh bG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYgor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NSAgICAgICAgICAgICAgICAgIHwgYyAgICAgICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAg ICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAg ICAgICAgICB8IGQgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGlu dDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBkCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBl ICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgZQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAg ICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICB8 IEMgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2Nh dGFsb2cgICAgICAgICAgICAgICB8IHZhcmNoYXIgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBi CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGdjMSAgICAgICAgICAgICAgICAgfCBlYiAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZWIKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAg ICAgICAgICAgICB8IGVrMSAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8 IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlazEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAg ICB8IGVrMiAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBlazIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg dGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgYyAgICAgICAgICAgICB8IHRleHQgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxv ZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3Qg ICAgICAgICAgICAgICAgICB8IGsxICAgICAgICAgICAgfCBiaWdpbnQgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDggICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBrMQorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAg ICAgICAgIHwgazIgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGsyCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBt ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgbQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgbiAgICAgICAgICAg ICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IG4KKygzOSByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVt YS5wZ19wcm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzIFdIRVJFIGdyYW50ZWUgTElLRSAncmVncmVz cyUnIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWU7CiAgICAgICAgZ3JhbnRvciAgICAgICB8 ICAgICAgIGdyYW50ZWUgICAgICAgfCBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVy dHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByaXZpbGVnZV90eXBl IHwgaXNfZ3JhbnRhYmxlIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n cmFwaF90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91 dAppbmRleCAzNzk2Mjk3Y2IwNy4uMGE1NzRiMTBmNGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC01MTcsNyArNTE3LDggQEAgU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihhIGlzIHZsMSkgQ09MVU1OUyAoYS52bmFt ZSBBUyBzZWwKICB2MTMgIHwgdjIzICAgICB8ICAgICAgMzAgfCAgICAgICAxMDMwCiAoMiByb3dz KQogCi0tLSBhZGQgYW4gZWRnZSB3aXRoIHNhbWUgdmVydGV4IGFzIHNvdXJjZSBhbmQgZGVzdGlu YXRpb24gdG8gdGVzdCBsb29wcworLS0gYWRkIGFuIGVkZ2Ugd2l0aCBzYW1lIHZlcnRleCBhcyBz b3VyY2UgYW5kIGRlc3RpbmF0aW9uIHRvIHRlc3QgbG9vcHMuIEFsc28KKy0tIHVzZSB0aGlzIGZv ciBjb2xsYXRpb24gdGVzdHMKIENSRUFURSBUQUJMRSBlM18zIChzcmNfaWQgaW50LAogICAgICAg ICAgICAgICAgICAgICBkZXN0X2lkIGludCwKICAgICAgICAgICAgICAgICAgICAgZW5hbWUgdmFy Y2hhcigxMCksCkBAIC01MzAsOCArNTMxLDM1IEBAIEFMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFE RCBFREdFIFRBQkxFUyAoCiAgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKGVuYW1lIEFTIGVs bmFtZSkKICk7CiBJTlNFUlQgSU5UTyBlM18zIFZBTFVFUyAoMjAwMywgMjAwMywgJ2UzMzEnLCAx MDAxMCk7CitJTlNFUlQgSU5UTyBlM18zIFZBTFVFUyAoMjAwMywgMjAwMywgJ0UzMzEnLCAxMDAx MCk7CiAtLSBjeWNsaWMgcGF0dGVybiB3aXRoIGVkZ2UgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlh YmxlIG5hbWUKLVNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihh KS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1l KSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4oYSktW2Jd LT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFtZSkpIE9S REVSIEJZIGxvb3BfbmFtZSBBU0M7Cisgc2VsZiB8IGxvb3BfbmFtZSAKKy0tLS0tLSstLS0tLS0t LS0tLQorIHYzMyAgfCBlMzMxCisgdjMzICB8IEUzMzEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChh LnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1l IENPTExBVEUgIkMiIEFTQzsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0tLS0t CisgdjMzICB8IEUzMzEKKyB2MzMgIHwgZTMzMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiIElTIGVsMiBXSEVSRSBiLmVuYW1lID4gJ0UzMzEn IENPTExBVEUgIkMiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5l bmFtZSBBUyBsb29wX25hbWUpKTsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0t LS0tCisgdjMzICB8IGUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzEgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZW5hbWUgPiAnRTMzMScgQ09M TEFURSAiQyIgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFtZSkp OworIHNlbGYgfCBsb29wX25hbWUgCistLS0tLS0rLS0tLS0tLS0tLS0KKyB2MzMgIHwgZTMzMQor KDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4o YSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFt ZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIjsKICBzZWxmIHwgbG9vcF9u YW1lIAogLS0tLS0tKy0tLS0tLS0tLS0tCiAgdjMzICB8IGUzMzEKQEAgLTU0MSw0MCArNTY5LDg5 IEBAIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihjKS1bYl0t PihkKSBDT0xVTU5TIChhLnZuYW1lIEFTIGFuCiBFUlJPUjogIEFuIGVkZ2UgY2FuIG5vdCBjb25u ZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5Y2xpYyBwYXR0ZXJuLgogLS0g cHJvcGVydHkgZ3JhcGggd2l0aCBzb21lIG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9w ZXJ0aWVzIHNhbWUgYXMgdGhlCiAtLSBwcmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25l bnRzIGZyb20gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBncmFwaCBhcmUKLS0tIHVzZWQuCistLSB1 c2VkLiBBbHNvIHVzZSB0aGlzIGZvciBjb2xsYXRpb24gdGVzdHMKIGNyZWF0ZSBwcm9wZXJ0eSBn cmFwaCBnMgogdmVydGV4IHRhYmxlcyAoCiAJdjEKLSAgICAgICAgbGFiZWwgbDEgcHJvcGVydGll cyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGll cyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKSwKIAl2MiBrZXkgKGlkMSwg aWQyKQotICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5h bWUpLAorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBDT0xMQVRF ICJDIiBhcyBlbG5hbWUpLAogCXYzCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4n IHx8IHZuYW1lIGFzIGVsbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicg fHwgdm5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKQogKQogZWRnZSB0YWJsZXMgKAogCWUxXzIg a2V5IChpZF8xLCBpZF8yXzEsIGlkXzJfMikKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNl cyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMg djIgKGlkMSwgaWQyKQotICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFt ZSBhcyBlbG5hbWUpLAorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFt ZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVm ZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAo aWQpCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFt ZSksCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUg IkMiIGFzIGVsbmFtZSksCiAgICAgZTJfMyBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8zKQogICAg ICAgICBzb3VyY2Uga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIp CiAgICAgICAgIGRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAg ICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSkKKyAgICAg ICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIgYXMgZWxu YW1lKSwKKyAgICBlM18zIEtFWSAoc3JjX2lkLCBkZXN0X2lkKQorICAgICAgICBTT1VSQ0UgS0VZ IChzcmNfaWQpIFJFRkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKHNy Y19pZCkgUkVGRVJFTkNFUyB2MyAoaWQpCisgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKCdn Mi4nIHx8IGVuYW1lIENPTExBVEUgIkMiIGFzIGVsbmFtZSkKICk7Ci1zZWxlY3Qgc24sIGNuLCBk biBmcm9tIGdyYXBoX3RhYmxlIChnMiBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVz dCA6IGwxKSBjb2x1bW5zIChzcmMuZWxuYW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVz dC5lbG5hbWUgYXMgZG4pKTsKK3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcy IG1hdGNoIChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5l bG5hbWUgYXMgc24sIGNvbm4uZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpIE9SREVS IEJZIDEsIDIsIDM7CiAgICBzbiAgIHwgICBjbiAgICB8ICAgZG4gICAKIC0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLQotIGcyLnYxMiB8IGcyLmUxMjIgfCBnMi52MjEKICBnMi52MTEgfCBnMi5l MTIxIHwgZzIudjIyCi0gZzIudjEzIHwgZzIuZTEyMyB8IGcyLnYyMwogIGcyLnYxMSB8IGcyLmUx MzEgfCBnMi52MzMKICBnMi52MTEgfCBnMi5lMTMyIHwgZzIudjMxCisgZzIudjEyIHwgZzIuZTEy MiB8IGcyLnYyMQorIGcyLnYxMyB8IGcyLmUxMjMgfCBnMi52MjMKICBnMi52MjIgfCBnMi5lMjMx IHwgZzIudjMyCi0oNiByb3dzKQorIGcyLnYzMyB8IGcyLkUzMzEgfCBnMi52MzMKKyBnMi52MzMg fCBnMi5lMzMxIHwgZzIudjMzCisoOCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2Vs ZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBBUyBsb29wX25hbWUpKSBP UkRFUiBCWSBsb29wX25hbWUgQVNDOworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0t LS0tLS0tLS0tCisgZzIudjMzIHwgZzIuZTMzMQorIGcyLnYzMyB8IGcyLkUzMzEKKygyIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVSRSBiLmVs bmFtZSA+ICdnMi5FMzMxJ10tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxm LCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKTsKKyAgc2VsZiAgfCBsb29wX25hbWUgCistLS0tLS0t LSstLS0tLS0tLS0tLQorIGcyLnYzMyB8IGcyLmUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZWxu YW1lID4gJ2cyLkUzMzEnIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxv b3BfbmFtZSkpOworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tCisg ZzIudjMzIHwgZzIuZTMzMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwg Yi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9vcF9uYW1lID4gJ2cyLkUzMzEnOworICBz ZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tCisgZzIudjMzIHwgZzIuZTMz MQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2Ig V0hFUkUgYi5lbG5hbWUgPiAnZzIuZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0Il0t PihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29w X25hbWUpKTsKKyAgc2VsZiAgfCBsb29wX25hbWUgCistLS0tLS0tLSstLS0tLS0tLS0tLQorIGcy LnYzMyB8IGcyLkUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIg TUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZWxuYW1lID4gJ2cyLmUzMzEnIENP TExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCIgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5l bG5hbWUgQVMgbG9vcF9uYW1lKSk7CisgIHNlbGYgIHwgbG9vcF9uYW1lIAorLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBnMi52MzMgfCBnMi5FMzMxCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFt ZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKSBXSEVSRSBsb29wX25hbWUgPiAnZzIu ZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IjsKKyAgc2VsZiAgfCBsb29wX25hbWUg CistLS0tLS0tLSstLS0tLS0tLS0tLQorIGcyLnYzMyB8IGcyLkUzMzEKKygxIHJvdykKIAogQ1JF QVRFIFZJRVcgY3VzdG9tZXJzX3VzIEFTIFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhf VEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VT JyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFT IGN1c3RvbWVyX25hbWUpKTsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZignY3VzdG9tZXJzX3VzJzo6 cmVnY2xhc3MpOwpAQCAtNjcxLDYgKzc0OCwxNCBAQCBTRUxFQ1QgKgogICAgICAgICAgICAxIHwg Y3VzdG9tZXIxIHwgVVMgICAgICB8IHJlZGFjdGVkMQogKDEgcm93KQogCistLSBncmFwaCB0YWJs ZSBpbiBhIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVSRSBjby5jdXN0 b21lcl9pZCA9CisgICAgKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBIX1RBQkxFIChteXNo b3AyIE1BVENIIChjZyBJUyBjdXN0b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9ICdVUycpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGNnLmN1c3RvbWVyX2lkKSkp OworIGN1c3RvbWVyX2lkIHwgICBuYW1lICAgIHwgYWRkcmVzcyAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBjdXN0b21lcjEgfCBVUworKDEgcm93 KQorCiAtLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKIFNFTEVDVCBzbmFtZSwgZG5hbWUKICAg ICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDNiNDFmYzdiYTA0Li45YWQxNzI3NWYyNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI3NywzICsyNzcsNCBAQCBO T1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3BscHByb3BpZH0g PT4gcGdfcHJvcGdyYXBoX3Byb3BlcgogTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2xh YmVsX3Byb3BlcnR5IHtwbHBlbGxhYmVsaWR9ID0+IHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfcHJvcGVydHkge3BncHBnaWR9 ID0+IHBnX2NsYXNzIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfcHJvcGVy dHkge3BncHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9w Z3JhcGhfcHJvcGVydHkge3BncGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbAppbmRleCA0Zjli NWMwMzQ5Yi4uOWExZmU0ZmM2ZGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X3Byb3BlcnR5X2dyYXBoLnNxbApAQCAtMTQ3LDYgKzE0Nyw4MyBAQCBHUkFOVCBTRUxFQ1QgT04g UFJPUEVSVFkgR1JBUEggZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKIEdSQU5UIFVQREFURSBP TiBQUk9QRVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAogUkVT RVQgUk9MRTsKIAorLS0gY29sbGF0aW9uCitDUkVBVEUgVEFCTEUgdGMxIChhIGludCwgYiB0ZXh0 KTsKK0NSRUFURSBUQUJMRSB0YzIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHRjMyAo YSBpbnQsIGIgdGV4dCBDT0xMQVRFICJDIik7CisKK0NSRUFURSBUQUJMRSBlYzEgKGVrMSBpbnQs IGVrMiBpbnQsIGViIHRleHQpOworQ1JFQVRFIFRBQkxFIGVjMiAoZWsxIGludCwgZWsyIGludCwg ZWIgdGV4dCBDT0xMQVRFICJQT1NJWCIpOworCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ2MxCisg ICAgVkVSVEVYIFRBQkxFUyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEpLCB0YzMgS0VZIChhKSk7 IC0tIGZhaWwKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICh0 YzEgS0VZIChhKSwgdGMyIEtFWSAoYSkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlYzEg S0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0 YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIg KGEpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkg KGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVr MikgUkVGRVJFTkNFUyB0YzIgKGEpKTsgLS0gZmFpbAorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGdj MQorICAgIFZFUlRFWCBUQUJMRVMgKHRjMSBLRVkgKGEpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElF UyAoYSksIHRjMyBLRVkgKGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMyIEtFWSAo ZWsxLCBlYikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEp CisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGViKSBSRUZFUkVOQ0VTIHRjMyAoYikpOyAt LSBmYWlsCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ2MxCisgICAgVkVSVEVYIFRBQkxFUyAodGMx IEtFWSAoYSksIHRjMiBLRVkgKGEpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtF WSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMx IChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChh KSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIFZFUlRFWCBUQUJMRVMgKHRjMyBLRVkg KGEpKTsgLS0gZmFpbAorQUxURVIgUFJPUEVSVFkgR1JBUEggZ2MxIEFERCBFREdFIFRBQkxFUyAo CisgICAgICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgICAgICBTT1VSQ0Ug S0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgICAgIERFU1RJTkFUSU9O IEtFWSAoZWsyKSBSRUZFUkVOQ0VTIHRjMiAoYSkpOyAtLSBmYWlsCitBTFRFUiBQUk9QRVJUWSBH UkFQSCBnYzEKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHRjMyBLRVkgKGEpIERF RkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoYSwgYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBB UyBiKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIEVER0UgVEFCTEVTICgKKyAgICAg ICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAgICAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVr MSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChl azIpIFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAgICAgIERFRkFVTFQgTEFCRUwgUFJP UEVSVElFUyAoZWsxLCBlazIsIGViIENPTExBVEUgcGdfY2F0YWxvZy5ERUZBVUxUIEFTIGViKSk7 CitEUk9QIFBST1BFUlRZIEdSQVBIIGdjMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEKKyAg ICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdGMxIEtFWSAoYSkgREVGQVVMVCBMQUJFTCBQUk9Q RVJUSUVTIChhLCBiOjp2YXJjaGFyIENPTExBVEUgIkMiIEFTIGIpLAorICAgICAgICB0YzIgS0VZ IChhKSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEsIChiIENPTExBVEUgIkMiKTo6dmFyY2hh ciBBUyBiKSwKKyAgICAgICAgdGMzIEtFWSAoYSkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChh LCBiOjp2YXJjaGFyIEFTIGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtFWSAo ZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChh KQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKQor ICAgICAgICAgICAgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChlazEsIGVrMiwgZWIpLAorICAg ICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVG RVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJF TkNFUyB0YzIgKGEpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGVrMSwg ZWsyLCBlYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBBUyBlYikpOworCistLSB0eXBlIGlu Y29zaXN0ZW5jeSBjaGVjaworQ1JFQVRFIFRBQkxFIHYxIChhIGludCBwcmltYXJ5IGtleSwgYiB0 ZXh0KTsKK0NSRUFURSBUQUJMRSBlKGsxIHRleHQsIGsyIHRleHQsIGMgdGV4dCk7CitDUkVBVEUg VEFCTEUgdjIgKG0gdGV4dCwgbiB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBndAorICAg IFZFUlRFWCBUQUJMRVMgKHYxIEtFWSAoYSksIHYyIEtFWSAobSkpCisgICAgRURHRSBUQUJMRVMg KAorICAgICAgICBlIEtFWSAoazEsIGsyKQorICAgICAgICBTT1VSQ0UgS0VZIChrMSkgUkVGRVJF TkNFUyB2MShhKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKGsyKSBSRUZFUkVOQ0VTIHYyKG0p KTsgLS0gZmFpbAorQUxURVIgVEFCTEUgZSBEUk9QIENPTFVNTiBrMSwgQUREIENPTFVNTiBrMSBi aWdpbnQgcHJpbWFyeSBrZXk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3QKKyAgICBWRVJURVgg VEFCTEVTICh2MSBLRVkgKGEpLCB2MiBLRVkgKG0pKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAg ICAgZSBLRVkgKGsxLCBrMikKKyAgICAgICAgU09VUkNFIEtFWSAoazEpIFJFRkVSRU5DRVMgdjEo YSkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChrMikgUkVGRVJFTkNFUyB2MihtKSk7CiAKIC0t IGluZm9ybWF0aW9uIHNjaGVtYQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n cmFwaF90YWJsZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKaW5k ZXggOTA1YmU5ZGYwMWIuLjk3N2JmMjc3NGU1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ncmFwaF90YWJsZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFi bGUuc3FsCkBAIC0zMjIsNyArMzIyLDggQEAgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKGEgaXMgdmwxKS0+KGIpLT4oYSBpcyB2bDIpIFdIRVJFIGEudm5hbWUgPD4KIFNFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSktPihiKS0+KGEpIENPTFVN TlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxm X3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYSBpcyB2bDEpIENP TFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBz ZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsK IAotLS0gYWRkIGFuIGVkZ2Ugd2l0aCBzYW1lIHZlcnRleCBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0 aW9uIHRvIHRlc3QgbG9vcHMKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2ZXJ0ZXggYXMgc291 cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzLiBBbHNvCistLSB1c2UgdGhpcyBmb3Ig Y29sbGF0aW9uIHRlc3RzCiBDUkVBVEUgVEFCTEUgZTNfMyAoc3JjX2lkIGludCwKICAgICAgICAg ICAgICAgICAgICAgZGVzdF9pZCBpbnQsCiAgICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNo YXIoMTApLApAQCAtMzM2LDM3ICszMzcsNTMgQEAgQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgQURE IEVER0UgVEFCTEVTICgKICk7CiAKIElOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAz LCAnZTMzMScsIDEwMDEwKTsKK0lOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAn RTMzMScsIDEwMDEwKTsKIC0tIGN5Y2xpYyBwYXR0ZXJuIHdpdGggZWRnZSBwYXR0ZXJucyB3aXRo IHNhbWUgdmFyaWFibGUgbmFtZQotU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0gg KGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBB UyBsb29wX25hbWUpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1b Yl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9v cF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1lIEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGcxIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNl bGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1lIENPTExBVEUgIkMi IEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYiBJUyBlbDIg V0hFUkUgYi5lbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIl0tPihhKS1bYl0tPihhKSBDT0xVTU5T IChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgV0hFUkUgYi5lbmFt ZSA+ICdFMzMxJyBDT0xMQVRFICJDIiBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUg QVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSkt W2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxv b3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIjsKIFNFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihjKS1bYl0tPihkKSBDT0xVTU5T IChhLnZuYW1lIEFTIGFuYW1lLCBiLmVuYW1lIEFTIGJuYW1lLCBjLnZuYW1lIEFTIGNuYW1lLCBk LnZuYW1lIEFTIGRuYW1lKSk7IC0tZXJyb3IKIAogLS0gcHJvcGVydHkgZ3JhcGggd2l0aCBzb21l IG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzIHNhbWUgYXMgdGhlCiAtLSBw cmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25lbnRzIGZyb20gdGhlIHNwZWNpZmllZCBw cm9wZXJ0eSBncmFwaCBhcmUKLS0tIHVzZWQuCistLSB1c2VkLiBBbHNvIHVzZSB0aGlzIGZvciBj b2xsYXRpb24gdGVzdHMKIGNyZWF0ZSBwcm9wZXJ0eSBncmFwaCBnMgogdmVydGV4IHRhYmxlcyAo CiAJdjEKLSAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxu YW1lKSwKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFU RSAiQyIgYXMgZWxuYW1lKSwKIAl2MiBrZXkgKGlkMSwgaWQyKQotICAgICAgICBsYWJlbCBsMSBw cm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUpLAorICAgICAgICBsYWJlbCBsMSBw cm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUpLAogCXYzCi0g ICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFtZSkKKyAg ICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFURSAiQyIgYXMg ZWxuYW1lKQogKQogZWRnZSB0YWJsZXMgKAogCWUxXzIga2V5IChpZF8xLCBpZF8yXzEsIGlkXzJf MikKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9u IGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQotICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBhcyBlbG5hbWUpLAorICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUp LAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3Rp bmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAgICAgIGxhYmVsIGwxIHBy b3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSksCisgICAgICAgIGxhYmVsIGwxIHBy b3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUgIkMiIGFzIGVsbmFtZSksCiAgICAgZTJf MyBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8zKQogICAgICAgICBzb3VyY2Uga2V5IChpZF8yXzEs IGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCiAgICAgICAgIGRlc3RpbmF0aW9uIGtl eSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMg KCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAo J2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKSwKKyAgICBlM18zIEtFWSAoc3Jj X2lkLCBkZXN0X2lkKQorICAgICAgICBTT1VSQ0UgS0VZIChzcmNfaWQpIFJFRkVSRU5DRVMgdjMg KGlkKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKHNyY19pZCkgUkVGRVJFTkNFUyB2MyAoaWQp CisgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUgIkMi IGFzIGVsbmFtZSkKICk7Ci1zZWxlY3Qgc24sIGNuLCBkbiBmcm9tIGdyYXBoX3RhYmxlIChnMiBt YXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6IGwxKSBjb2x1bW5zIChzcmMuZWxu YW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVzdC5lbG5hbWUgYXMgZG4pKTsKK3NlbGVj dCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBsMSktW2Nvbm4g OiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNvbm4uZWxuYW1l IGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAo YS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBB UyBsb29wX25hbWUpKSBPUkRFUiBCWSBsb29wX25hbWUgQVNDOworU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiIFdIRVJFIGIuZWxuYW1lID4gJ2cyLkUzMzEnXS0+KGEp LVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFt ZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVti XS0+KGEpIFdIRVJFIGIuZWxuYW1lID4gJ2cyLkUzMzEnIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNl bGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYs IGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdnMi5FMzMxJzsKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVSRSBiLmVsbmFtZSA+ ICdnMi5lMzMxJyBDT0xMQVRFIHBnX2NhdGFsb2cuImRlZmF1bHQiXS0+KGEpLVtiXS0+KGEpIENP TFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJF IGIuZWxuYW1lID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCIgQ09MVU1O UyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAo YS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9vcF9uYW1l ID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCI7CiAKIENSRUFURSBWSUVX IGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICht eXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21l cl9uYW1lKSk7CiAKQEAgLTQyOCw2ICs0NDUsMTAgQEAgU0VMRUNUICoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENPTFVNTlMgKGNnLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFt ZV9yZWRhY3RlZCkpCiAgICAgV0hFUkUgY28uY3VzdG9tZXJfaWQgPSAxOwogCistLSBncmFwaCB0 YWJsZSBpbiBhIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVSRSBjby5j dXN0b21lcl9pZCA9CisgICAgKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBIX1RBQkxFICht eXNob3AyIE1BVENIIChjZyBJUyBjdXN0b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGNnLmN1c3RvbWVyX2lk KSkpOworCiAtLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKIFNFTEVDVCBzbmFtZSwgZG5hbWUK ICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCi0tIAoyLjM0LjEK Cg== --0000000000005b1525062884640f--