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 1sxgQ6-00Bf2S-Ko for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Oct 2024 05:36:35 +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 1sxgP6-006J7x-9o for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Oct 2024 05:35:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sxgP5-006J7Z-Pr for pgsql-hackers@lists.postgresql.org; Mon, 07 Oct 2024 05:35:31 +0000 Received: from mail-yb1-xb36.google.com ([2607:f8b0:4864:20::b36]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sxgOz-002yM9-JF for pgsql-hackers@lists.postgresql.org; Mon, 07 Oct 2024 05:35:31 +0000 Received: by mail-yb1-xb36.google.com with SMTP id 3f1490d57ef6-e288efeb4feso3177371276.3 for ; Sun, 06 Oct 2024 22:35:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728279323; x=1728884123; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SKYtI72qUXmTB6k6orH0DAYbib2ljqJsFQaROH7Lrts=; b=fx7kGNLBFmtnSDwjmiKfvXNA0dtfPjRnU0wyBLh4FOjfsIsBOaM3TRbrzSnJwSCtmq Zc55QbZTJCeVBxIvK+sY/SKsMf8mNGqKWjGakGTdSLIhD6UqbZCBM7vQG2HnK3MqOeA2 R+bHr4uQhzhYK9v9qSU4cbAnRwMDVdveaGm/o5uWTxhF4QwQnN6Q79f/TuU1gkx2Q/nu VtzdVXz0KpqKzHGO7JopuCQ3AUwoBTRsEWg1eYDP+tTSolJ6biDDqFRMQwnKrR7ysVkD FMbj9L5PqUaY/5XHo1R8HNbwaoOOD/RZJCH25+2ek7yVomUoiFWalQVvk7nKymswx8gV Fkkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728279323; x=1728884123; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SKYtI72qUXmTB6k6orH0DAYbib2ljqJsFQaROH7Lrts=; b=cf4MWzLT/hb/fBf/OsFjiSmCeNKXK5j8vmvTwkuWQcIdjzydF/ozh1PBe08GMi55D3 wdksQBWjJ98gvDoflZ+45u5bDHO0PnQyKJcs1wGO+Zu5DHlc8Y90yjBhS/yH890tAxz/ g5wBJLG1R8obT/oEorJ2PtiUkIChgWdrJAD3i6TfB458mgUI8iINWXyhpVolFFqCYTSf QWZp1Z+Z4bwAuEX9yZI6jimjhkiiImEpdGAQTZl+gV6ZhEEBTH+7f1fXrD8zmYMhmsc0 8+0Mz6ksJL3OxLTzEny50BN8/HdSEBnZxKl1ErtP+ffZ+1hlI2gz9Ypo3WL3NG3irlbi FdCg== X-Gm-Message-State: AOJu0YzltQ8F2345mrSWdKJRQz8sctpAn879XWiy9FQWuimqWhwAL6ej wSAIXCQDSkPdMFWJjoEHgFksjhbTET6PhNWNbBw+vZZ+hSGnfOIgX1F0061Pp8n3KbwxUYbbKZp l3dhgdJ5CM1hm79oMUoz/5N1Ii1m0zrws X-Google-Smtp-Source: AGHT+IGolhpYF674uyYY7fmekCO5oVKtLx2iFbTSF8ePlNjuadhjIyKSKIn6zZLC64e8L8xCatKfUaaOfcnKBVJeZ6s= X-Received: by 2002:a05:6902:18d3:b0:e1d:2fce:1618 with SMTP id 3f1490d57ef6-e28936da52amr8665818276.13.1728279323295; Sun, 06 Oct 2024 22:35:23 -0700 (PDT) MIME-Version: 1.0 From: vignesh C Date: Mon, 7 Oct 2024 11:05:11 +0530 Message-ID: Subject: Make default subscription streaming option as Parallel To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000023602b0623dc63ec" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000023602b0623dc63ec Content-Type: text/plain; charset="UTF-8" Hi, By default, currently streaming of in-progress transactions for subscriptions is disabled. All transactions are fully decoded on the publisher before being sent to the subscriber. This approach can lead to increased latency and reduced performance, particularly under heavy load. By default, we could enable the parallel streaming option for subscriptions. By doing this, incoming changes will be directly applied by one of the available parallel apply workers. This method significantly improves the performance of commit operations. I conducted a series of tests using logical replication, comparing SQL execution times with streaming set to both parallel and off. The tests varied the logical_decoding_work_mem setting and included the following scenarios: a) Insert, b) Delete, c) Update, d) rollback 5% records, e) rollback 10% records, f) rollback 20% records, g) rollback 50% records. I have written tap tests for the same, the attached files can be copied to src/test/subscription/t and the logical_decoding_work_mem configuration and streaming option in create subscription command should be changed accordingly before running the tests. The tests were executed 5 times and the average of them was taken. The execution time is in seconds. Insert 5kk records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 37.304 | 69.465 | 46.298 256 KB | 36.327 | 70.671 | 48.597 64 MB | 41.173 | 69.228 | 40.526 Delete 5kk records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 42.322 | 69.404 | 39.021 256 KB | 43.250 | 66.973 | 35.422 64 MB | 44.183 | 67.873 | 34.903 Update 5kk records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 93.953 | 127.691 | 26.422 256 KB | 94.166 | 128.541 | 26.743 64 MB | 93.367 | 134.275 | 30.465 Rollback 05% records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 36.968 | 67.161 | 44.957 256 KB | 38.059 | 68.021 | 44.047 64 MB | 39.431 | 66.878 | 41.041 Rollback 10% records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 35.966 | 63.968 | 43.775 256 KB | 36.597 | 64.836 | 43.554 64 MB | 39.069 | 64.357 | 39.292 Rollback 20% records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 37.616 | 58.903 | 36.139 256 KB | 37.330 | 58.606 | 36.303 64 MB | 38.720 | 60.236 | 35.720 Rollback 50% records Logical Decoding mem | Parallel | off | % Improvement -------------------------------|-------------|---------------|------------------------ 64 KB | 38.999 | 44.776 | 12.902 256 KB | 36.567 | 44.530 | 17.882 64 MB | 38.592 | 45.346 | 14.893 The machine configuration that was used is also attached. The tests demonstrate a significant performance improvement when using the parallel streaming option, insert shows 40-48 %improvement, delete shows 34-39 %improvement, update shows 26-30 %improvement. In the case of rollback the improvement is between 12-44%, the improvement slightly reduces with larger amounts of data being rolled back in this case. If there's a significant amount of data to roll back, the performance of streaming in parallel may be comparable to or slightly lower in some instances. However, this is acceptable since commit operations are generally more frequent than rollback operations. One key point to consider is that the lock on transaction objects will be held for a longer duration when using streaming in parallel. This occurs because the parallel apply worker initiates the transaction as soon as streaming begins, maintaining the lock until the transaction is fully completed. As a result, for long-running transactions, this extended lock can hinder concurrent access that requires a lock. Since there is a significant percentage improvement, we should make the default subscription streaming option parallel. Attached patch has the change for the same. Thoughts? All of these tests were conducted with both the publisher and subscriber on the same host. I will perform additional tests with one of the logical replication nodes on a different host and share the results later. Regards, Vignesh --00000000000023602b0623dc63ec Content-Type: text/plain; charset="US-ASCII"; name="cpu_info.txt" Content-Disposition: attachment; filename="cpu_info.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m1yk28372 Q1BVIElORk8NCg0KcHJvY2Vzc29yICAgICAgIDogMTE5DQp2ZW5kb3JfaWQgICAgICAgOiBHZW51 aW5lSW50ZWwNCmNwdSBmYW1pbHkgICAgICA6IDYNCm1vZGVsICAgICAgICAgICA6IDYyDQptb2Rl bCBuYW1lICAgICAgOiBJbnRlbChSKSBYZW9uKFIpIENQVSBFNy00ODkwIHYyIEAgMi44MEdIeg0K c3RlcHBpbmcgICAgICAgIDogNw0KbWljcm9jb2RlICAgICAgIDogMHg3MTUNCmNwdSBNSHogICAg ICAgICA6IDE1MDUuOTU3DQpjYWNoZSBzaXplICAgICAgOiAzODQwMCBLQg0KcGh5c2ljYWwgaWQg ICAgIDogMw0Kc2libGluZ3MgICAgICAgIDogMzANCmNvcmUgaWQgICAgICAgICA6IDE0DQpjcHUg Y29yZXMgICAgICAgOiAxNQ0KYXBpY2lkICAgICAgICAgIDogMTI1DQppbml0aWFsIGFwaWNpZCAg OiAxMjUNCmZwdSAgICAgICAgICAgICA6IHllcw0KZnB1X2V4Y2VwdGlvbiAgIDogeWVzDQpjcHVp ZCBsZXZlbCAgICAgOiAxMw0Kd3AgICAgICAgICAgICAgIDogeWVzDQpmbGFncyAgICAgICAgICAg OiBmcHUgdm1lIGRlIHBzZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgc2VwIG10cnIgcGdlIG1j YSBjbW92IHBhdCBwc2UzNiBjbGZsdXNoIGR0cyBhY3BpIG1teCBmeHNyIHNzZSBzc2UyIHNzIGh0 IHRtIHBiZSBzeXNjYWxsIG54IHBkcGUxZ2IgcmR0c2NwIGxtIGNvbnN0YW50X3RzYyBhcmNoX3Bl cmZtb24gcGVicyBidHMgcmVwX2dvb2Qgbm9wbCB4dG9wb2xvZ3kgbm9uc3RvcF90c2MgYXBlcmZt cGVyZiBlYWdlcmZwdSBwbmkgcGNsbXVscWRxIGR0ZXM2NCBtb25pdG9yIGRzX2NwbCB2bXggc214 IGVzdCB0bTIgc3NzZTMgY3gxNiB4dHByIHBkY20gcGNpZCBkY2Egc3NlNF8xIHNzZTRfMiB4MmFw aWMgcG9wY250IHRzY19kZWFkbGluZV90aW1lciBhZXMgeHNhdmUgYXZ4IGYxNmMgcmRyYW5kIGxh aGZfbG0gZXBiIGludGVsX3BwaW4gc3NiZCBpYnJzIGlicGIgc3RpYnAgdHByX3NoYWRvdyB2bm1p IGZsZXhwcmlvcml0eSBlcHQgdnBpZCBmc2dzYmFzZSBzbWVwIGVybXMgeHNhdmVvcHQgZHRoZXJt IGlkYSBhcmF0IHBsbiBwdHMgbWRfY2xlYXIgc3BlY19jdHJsIGludGVsX3N0aWJwIGZsdXNoX2wx ZA0KYm9nb21pcHMgICAgICAgIDogNTYyOS41NA0KY2xmbHVzaCBzaXplICAgIDogNjQNCmNhY2hl X2FsaWdubWVudCA6IDY0DQphZGRyZXNzIHNpemVzICAgOiA0NiBiaXRzIHBoeXNpY2FsLCA0OCBi aXRzIHZpcnR1YWwNCnBvd2VyIG1hbmFnZW1lbnQ6DQo= --00000000000023602b0623dc63ec Content-Type: application/octet-stream; name="v1-0001-Make-default-value-for-susbcription-streaming-opt.patch" Content-Disposition: attachment; filename="v1-0001-Make-default-value-for-susbcription-streaming-opt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m1yk28331 RnJvbSBlNDBhZDJmNDEzOTFhZGQwMmU2MDU5NzlhNjAwZjg0NTk5NTZlZTg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjUgU2VwIDIwMjQgMTQ6NDI6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxXSBNYWtl IGRlZmF1bHQgdmFsdWUgZm9yIHN1c2JjcmlwdGlvbiBzdHJlYW1pbmcgb3B0aW9uIHRvCiBwYXJh bGxlbC4KCk1ha2UgZGVmYXVsdCB2YWx1ZSBmb3Igc3VzYmNyaXB0aW9uIHN0cmVhbWluZyBvcHRp b24gdG8gcGFyYWxsZWwuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9u LnNnbWwgIHwgMTkgKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNj cmlwdGlvbmNtZHMuYyAgICB8ICAyICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAg ICAgICAgICAgICAgfCAgMiArKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAg ICAgICAgIHwgIDYgKysrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlv bi5vdXQgfCAyNCArKysrKysrKysrKy0tLS0tLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDI3IGlu c2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwKaW5kZXggNzQwYjdkOTQyMS4uMmY5Yjc2OWRlMiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTI3MSw5ICsyNzEsMTMgQEAgQ1JF QVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0 aW9uX25hbWU8L3JlcGxhY2VhYmwKICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+ CiAgICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIHN0cmVhbWluZyBvZiBpbi1w cm9ncmVzcyB0cmFuc2FjdGlvbnMKLSAgICAgICAgICBmb3IgdGhpcyBzdWJzY3JpcHRpb24uICBU aGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LAotICAgICAgICAgIG1l YW5pbmcgYWxsIHRyYW5zYWN0aW9ucyBhcmUgZnVsbHkgZGVjb2RlZCBvbiB0aGUgcHVibGlzaGVy IGFuZCBvbmx5Ci0gICAgICAgICAgdGhlbiBzZW50IHRvIHRoZSBzdWJzY3JpYmVyIGFzIGEgd2hv bGUuCisgICAgICAgICAgZm9yIHRoaXMgc3Vic2NyaXB0aW9uLiAgVGhlIGRlZmF1bHQgdmFsdWUg aXMgPGxpdGVyYWw+cGFyYWxsZWw8L2xpdGVyYWw+LAorICAgICAgICAgIG1lYW5pbmcgaW5jb21p bmcgY2hhbmdlcyBhcmUgZGlyZWN0bHkgYXBwbGllZCB2aWEgb25lIG9mIHRoZSBwYXJhbGxlbAor ICAgICAgICAgIGFwcGx5IHdvcmtlcnMsIGlmIGF2YWlsYWJsZS4gSWYgbm8gcGFyYWxsZWwgYXBw bHkgd29ya2VyIGlzIGZyZWUgdG8KKyAgICAgICAgICBoYW5kbGUgc3RyZWFtaW5nIHRyYW5zYWN0 aW9ucyB0aGVuIHRoZSBjaGFuZ2VzIGFyZSB3cml0dGVuIHRvCisgICAgICAgICAgdGVtcG9yYXJ5 IGZpbGVzIGFuZCBhcHBsaWVkIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQuIE5v dGUKKyAgICAgICAgICB0aGF0IGlmIGFuIGVycm9yIGhhcHBlbnMgaW4gYSBwYXJhbGxlbCBhcHBs eSB3b3JrZXIsIHRoZSBmaW5pc2ggTFNOCisgICAgICAgICAgb2YgdGhlIHJlbW90ZSB0cmFuc2Fj dGlvbiBtaWdodCBub3QgYmUgcmVwb3J0ZWQgaW4gdGhlIHNlcnZlciBsb2cuCiAgICAgICAgICA8 L3BhcmE+CiAKICAgICAgICAgIDxwYXJhPgpAQCAtMjgzLDEzICsyODcsOCBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fbmFt ZTwvcmVwbGFjZWFibAogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAgICAg ICAgICBJZiBzZXQgdG8gPGxpdGVyYWw+cGFyYWxsZWw8L2xpdGVyYWw+LCBpbmNvbWluZyBjaGFu Z2VzIGFyZSBkaXJlY3RseQotICAgICAgICAgIGFwcGxpZWQgdmlhIG9uZSBvZiB0aGUgcGFyYWxs ZWwgYXBwbHkgd29ya2VycywgaWYgYXZhaWxhYmxlLiBJZiBubwotICAgICAgICAgIHBhcmFsbGVs IGFwcGx5IHdvcmtlciBpcyBmcmVlIHRvIGhhbmRsZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb25zIHRo ZW4KLSAgICAgICAgICB0aGUgY2hhbmdlcyBhcmUgd3JpdHRlbiB0byB0ZW1wb3JhcnkgZmlsZXMg YW5kIGFwcGxpZWQgYWZ0ZXIgdGhlCi0gICAgICAgICAgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVk LiBOb3RlIHRoYXQgaWYgYW4gZXJyb3IgaGFwcGVucyBpbiBhCi0gICAgICAgICAgcGFyYWxsZWwg YXBwbHkgd29ya2VyLCB0aGUgZmluaXNoIExTTiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uCi0g ICAgICAgICAgbWlnaHQgbm90IGJlIHJlcG9ydGVkIGluIHRoZSBzZXJ2ZXIgbG9nLgorICAgICAg ICAgIElmIHNldCB0byA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LCBhbGwgdHJhbnNhY3Rpb25zIGFy ZSBmdWxseSBkZWNvZGVkCisgICAgICAgICAgb24gdGhlIHB1Ymxpc2hlciBhbmQgb25seSB0aGVu IHNlbnQgdG8gdGhlIHN1YnNjcmliZXIgYXMgYSB3aG9sZS4KICAgICAgICAgIDwvcGFyYT4KICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCAwMmNjYzYzNmI4Li4wYTdhNjE4ODU1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0xNTEsNyArMTUxLDcgQEAg cGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10 X29wdGlvbnMsCiAJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQklOQVJZKSkKIAkJ b3B0cy0+YmluYXJ5ID0gZmFsc2U7CiAJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRf U1RSRUFNSU5HKSkKLQkJb3B0cy0+c3RyZWFtaW5nID0gTE9HSUNBTFJFUF9TVFJFQU1fT0ZGOwor CQlvcHRzLT5zdHJlYW1pbmcgPSBMT0dJQ0FMUkVQX1NUUkVBTV9QQVJBTExFTDsKIAlpZiAoSXNT ZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9UV09QSEFTRV9DT01NSVQpKQogCQlvcHRzLT50d29w aGFzZSA9IGZhbHNlOwogCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0RJU0FCTEVf T05fRVJSKSkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDEzMGI4MDc3NWQuLjA0N2I5MTRhMjUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNTIzMiw2ICs1MjMyLDggQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0 LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwgIiwgc3RyZWFtaW5nID0gb24iKTsKIAllbHNlIGlmIChzdHJjbXAoc3ViaW5mby0+ c3Vic3RyZWFtLCAicCIpID09IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBz dHJlYW1pbmcgPSBwYXJhbGxlbCIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVl cnksICIsIHN0cmVhbWluZyA9IG9mZiIpOwogCiAJaWYgKHN0cmNtcChzdWJpbmZvLT5zdWJ0d29w aGFzZXN0YXRlLCB0d29fcGhhc2VfZGlzYWJsZWQpICE9IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiLCB0d29fcGhhc2UgPSBvbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApp bmRleCBhYjZjODMwNDkxLi43YWVjOTY1Y2M4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv dC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApA QCAtMjk5Miw3ICsyOTkyLDcgQEAgbXkgJXRlc3RzID0gKAogCQkJCQkJIENPTk5FQ1RJT04gXCdk Ym5hbWU9ZG9lc25vdGV4aXN0XCcgUFVCTElDQVRJT04gcHViMQogCQkJCQkJIFdJVEggKGNvbm5l Y3QgPSBmYWxzZSk7JywKIAkJcmVnZXhwID0+IHFyL14KLQkJCVxRQ1JFQVRFIFNVQlNDUklQVElP TiBzdWIxIENPTk5FQ1RJT04gJ2RibmFtZT1kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHB1YjEg V0lUSCAoY29ubmVjdCA9IGZhbHNlLCBzbG90X25hbWUgPSAnc3ViMScpO1xFCisJCQlcUUNSRUFU RSBTVUJTQ1JJUFRJT04gc3ViMSBDT05ORUNUSU9OICdkYm5hbWU9ZG9lc25vdGV4aXN0JyBQVUJM SUNBVElPTiBwdWIxIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgc2xvdF9uYW1lID0gJ3N1YjEnLCBz dHJlYW1pbmcgPSBwYXJhbGxlbCk7XEUKIAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMs IHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKQEAgLTMwMDMsNyArMzAwMyw3IEBAIG15 ICV0ZXN0cyA9ICgKIAkJCQkJCSBDT05ORUNUSU9OIFwnZGJuYW1lPWRvZXNub3RleGlzdFwnIFBV QkxJQ0FUSU9OIHB1YjEKIAkJCQkJCSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIG9yaWdpbiA9IG5v bmUpOycsCiAJCXJlZ2V4cCA9PiBxci9eCi0JCQlcUUNSRUFURSBTVUJTQ1JJUFRJT04gc3ViMiBD T05ORUNUSU9OICdkYm5hbWU9ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiBwdWIxIFdJVEggKGNv bm5lY3QgPSBmYWxzZSwgc2xvdF9uYW1lID0gJ3N1YjInLCBvcmlnaW4gPSBub25lKTtcRQorCQkJ XFFDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjIgQ09OTkVDVElPTiAnZGJuYW1lPWRvZXNub3RleGlz dCcgUFVCTElDQVRJT04gcHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNsb3RfbmFtZSA9ICdz dWIyJywgc3RyZWFtaW5nID0gcGFyYWxsZWwsIG9yaWdpbiA9IG5vbmUpO1xFCiAJCQkveG0sCiAJ CWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCkBA IC0zMDE0LDcgKzMwMTQsNyBAQCBteSAldGVzdHMgPSAoCiAJCQkJCQkgQ09OTkVDVElPTiBcJ2Ri bmFtZT1kb2Vzbm90ZXhpc3RcJyBQVUJMSUNBVElPTiBwdWIxCiAJCQkJCQkgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBvcmlnaW4gPSBhbnkpOycsCiAJCXJlZ2V4cCA9PiBxci9eCi0JCQlcUUNSRUFU RSBTVUJTQ1JJUFRJT04gc3ViMyBDT05ORUNUSU9OICdkYm5hbWU9ZG9lc25vdGV4aXN0JyBQVUJM SUNBVElPTiBwdWIxIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgc2xvdF9uYW1lID0gJ3N1YjMnKTtc RQorCQkJXFFDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjMgQ09OTkVDVElPTiAnZGJuYW1lPWRvZXNu b3RleGlzdCcgUFVCTElDQVRJT04gcHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNsb3RfbmFt ZSA9ICdzdWIzJywgc3RyZWFtaW5nID0gcGFyYWxsZWwpO1xFCiAJCQkveG0sCiAJCWxpa2UgPT4g eyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggMTdkNDhiMTY4NS4uMTQ0M2Ux ZDkyOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAt MTE5LDcgKzExOSw3IEBAIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwogICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAogLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViNCBTRVQgKG9yaWdpbiA9IGFueSk7CkBAIC0xMjcsNyArMTI3LDcgQEAgQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKICAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKIC0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTE0OCw3ICsxNDgsNyBAQCBFUlJPUjogIGludmFsaWQg Y29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBj b25uZWN0aQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwogICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCiAtLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9OIHRlc3RwdWIyLCB0 ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIgPSB0cnVlKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwogICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCiAt LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMAorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMTc5LDcgKzE3OSw3IEBA IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gJzAvMTIzNDUn KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwogICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g CiAtLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAg ICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMTIzNDUK KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IDAvMTIzNDUKICgxIHJvdykKIAogLS0gb2sgLSB3aXRoIGxzbiA9 IE5PTkUKQEAgLTE5MSw3ICsxOTEsNyBAQCBFUlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChM U04pOiAwLzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwogICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCiAtLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30g fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAv MAorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIEJFR0lOOwpAQCAtMjI2LDcgKzIy Niw3IEBAIEhJTlQ6ICBBdmFpbGFibGUgdmFsdWVzOiBsb2NhbCwgcmVtb3RlX3dyaXRlLCByZW1v dGVfYXBwbHksIG9uLCBvZmYuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwogICAgICAgICBO YW1lICAgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQ dWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFNraXAgTFNOIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMAorIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgbG9j YWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMAogKDEg cm93KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSByZXN0IHNpbXBsZQpAQCAtMjU4LDcg KzI1OCw3IEBAIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCiAg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKIC0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAg ICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IHQgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKGJpbmFyeSA9IGZhbHNlKTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCiAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKIC0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViOwpAQCAtMzc0LDcgKzM3NCw3IEBAIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCiAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKIC0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS0gd2UgY2FuIGFsdGVyIHN0 cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFibGVkCkBAIC00MTIsNyArNDEyLDcgQEAgSElOVDog IFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJl cGxpY2F0aW9uIHNsb3QsIGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKICAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNO IAogLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9l cnJvciA9IHRydWUpOwpAQCAtNDIwLDcgKzQyMCw3IEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCiAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKIC0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwotLSAKMi4zNC4xCgo= --00000000000023602b0623dc63ec Content-Type: text/plain; charset="US-ASCII"; name="memory_info.txt" Content-Disposition: attachment; filename="memory_info.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m1yk283a3 TWVtVG90YWw6ICAgICAgIDc5MjIzNzQwNCBrQg0KTWVtRnJlZTogICAgICAgIDcyNDA1MTk5MiBr Qg0KTWVtQXZhaWxhYmxlOiAgIDc2MjUwNTM2OCBrQg0KQnVmZmVyczogICAgICAgICAgICAyMTA4 IGtCDQpDYWNoZWQ6ICAgICAgICAgNDM4ODU1ODgga0INClN3YXBDYWNoZWQ6ICAgICAgICAgICAg MCBrQg0KQWN0aXZlOiAgICAgICAgIDIyMjc2NDYwIGtCDQpJbmFjdGl2ZTogICAgICAgMjE3NjE4 MTIga0INCkFjdGl2ZShhbm9uKTogICAgMTE5OTM4MCBrQg0KSW5hY3RpdmUoYW5vbik6ICA0MjI4 MjEyIGtCDQpBY3RpdmUoZmlsZSk6ICAgMjEwNzcwODAga0INCkluYWN0aXZlKGZpbGUpOiAxNzUz MzYwMCBrQg0KVW5ldmljdGFibGU6ICAgICAgICAgICAwIGtCDQpNbG9ja2VkOiAgICAgICAgICAg ICAgIDAga0INClN3YXBUb3RhbDogICAgICAgNDE5NDMwMCBrQg0KU3dhcEZyZWU6ICAgICAgICA0 MTk0MzAwIGtCDQpEaXJ0eTogICAgICAgICAgICAgICAgIDAga0INCldyaXRlYmFjazogICAgICAg ICAgICAgMCBrQg0KQW5vblBhZ2VzOiAgICAgICAgMTUwNzk2IGtCDQpNYXBwZWQ6ICAgICAgICAg IDUyODMyNDgga0INClNobWVtOiAgICAgICAgICAgNTI3NzA0NCBrQg0KU2xhYjogICAgICAgICAg ICAxNDcyMDg0IGtCDQpTUmVjbGFpbWFibGU6ICAgIDExNjUxNDQga0INClNVbnJlY2xhaW06ICAg ICAgIDMwNjk0MCBrQg0KS2VybmVsU3RhY2s6ICAgICAgIDE3NTA0IGtCDQpQYWdlVGFibGVzOiAg ICAgICAgMjE1NDAga0INCk5GU19VbnN0YWJsZTogICAgICAgICAgMCBrQg0KQm91bmNlOiAgICAg ICAgICAgICAgICAwIGtCDQpXcml0ZWJhY2tUbXA6ICAgICAgICAgIDAga0INCkNvbW1pdExpbWl0 OiAgICA0MDAzMTMwMDAga0INCkNvbW1pdHRlZF9BUzogICA4NjI4NzA3MiBrQg0KVm1hbGxvY1Rv dGFsOiAgIDM0MzU5NzM4MzY3IGtCDQpWbWFsbG9jVXNlZDogICAgIDE5NDIwOTIga0INClZtYWxs b2NDaHVuazogICAzMzc1MzM5NzI0NCBrQg0KUGVyY3B1OiAgICAgICAgICAgIDM2MzUyIGtCDQpI YXJkd2FyZUNvcnJ1cHRlZDogICAgIDAga0INCkFub25IdWdlUGFnZXM6ICAgICA4MTkyMCBrQg0K Q21hVG90YWw6ICAgICAgICAgICAgICAwIGtCDQpDbWFGcmVlOiAgICAgICAgICAgICAgIDAga0IN Ckh1Z2VQYWdlc19Ub3RhbDogICAgICAgMA0KSHVnZVBhZ2VzX0ZyZWU6ICAgICAgICAwDQpIdWdl UGFnZXNfUnN2ZDogICAgICAgIDANCkh1Z2VQYWdlc19TdXJwOiAgICAgICAgMA0KSHVnZXBhZ2Vz aXplOiAgICAgICAyMDQ4IGtCDQpEaXJlY3RNYXA0azogICAgICA3ODU3NTYga0INCkRpcmVjdE1h cDJNOiAgICAgNzQzMjE5MiBrQg0KRGlyZWN0TWFwMUc6ICAgIDc5OTAxNDkxMiBrQg0K --00000000000023602b0623dc63ec Content-Type: application/x-zip-compressed; name="test_tap_test_scripts.zip" Content-Disposition: attachment; filename="test_tap_test_scripts.zip" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m1yk282q0 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 --00000000000023602b0623dc63ec--