Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1etalq-0001AJ-Gn for pgadmin-hackers@arkaria.postgresql.org; Wed, 07 Mar 2018 15:14:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1etalp-0004TU-60 for pgadmin-hackers@arkaria.postgresql.org; Wed, 07 Mar 2018 15:14:21 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1etaia-0001w3-UJ for pgadmin-hackers@lists.postgresql.org; Wed, 07 Mar 2018 15:11:01 +0000 Received: from mail-ot0-x22e.google.com ([2607:f8b0:4003:c0f::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1etaiW-0000m3-TU for pgadmin-hackers@postgresql.org; Wed, 07 Mar 2018 15:10:59 +0000 Received: by mail-ot0-x22e.google.com with SMTP id t2so2333675otj.4 for ; Wed, 07 Mar 2018 07:10:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=bzILL4/C5VxY5m5Ne43s6oe/KARourLQ3/uVcbXsohw=; b=0kkPdFXSHSY+yEAXi2kbOWpCJX4AsufMpQcmzCxQ9/dVFuwX8zOyba83F8++lTZsN5 TH44wgX6hj7reBR78zQSpBe9i2t4rc/bT2faI9haRy5XfUZySCetz9zm0bY6Hbh6ku1Z Q8yCnVOt66i0xrxCr21hWN3dV1+0xzbBcha2UZgC7nRTRkXUXTRurXfSkb0XSfJqiMDl 7t3WekVtWcuHlQjSf7ueHNsfehOx63ITt6etLZ4V0km43f9R5lHSemAaOu+pSxcqqLV/ gDCxmzQ/aFS9YAZDAS6+pJ0rh2+7pMX0aT7ERt8cdMRTEdU0h4w2v++DimRNooO8ap+I oppQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=bzILL4/C5VxY5m5Ne43s6oe/KARourLQ3/uVcbXsohw=; b=KLhV+2HqTeSvDUDvoFtU1LR2NX3Bf1NsdBuQE62co2u/7e2yioeu+CYkrOrpCLyO+u 29Ce4Z+hv/bPwJPVUbGaap/0LI607alcCEpYFnLsc9rXInxYrYJUCBGQeX3D3WTeD/F7 aIX24l+plrNiaNFkYGqaNRSKt/IzgWlfb2QS5FNRmmKmDFuzCkkYTbTIZJceodn//3Cg SokkcqAhwE+hPJBIPqWXQ9OBG859s1m3EiUratkp63N+ugS3iHMujhyCt+EkqrHfteZZ +x/5ETmtX5E2ulAXIV+wBYFAVZ/EhcXJq2c/HNIKfv9D5D0gGeZCY5BBED8KGdIcX8NC d7Qw== X-Gm-Message-State: AElRT7GbHorvUB9e//AAE4cMgUwjg3wDq+fm6Cbe8OFid0BkZbGTiUxA CDxW9RlGRjtfad/Bys5wktTgNlni5iKpFUNOY+SieA== X-Google-Smtp-Source: AG47ELsDnzuTJ6m8MYUBFHGyYMOnkYwMSkHpTv5cIHeSwrR11VXmA5elw87vUeJeCCmvZvEXkxUdB4vvVsCMmLJ61tA= X-Received: by 10.157.82.5 with SMTP id e5mr15199782oth.104.1520435455543; Wed, 07 Mar 2018 07:10:55 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.203.154 with HTTP; Wed, 7 Mar 2018 07:10:54 -0800 (PST) In-Reply-To: References: <474340384.127.1520431275754.JavaMail.jenkins@jenkins.pgadmin.org> From: Khushboo Vashi Date: Wed, 7 Mar 2018 20:40:54 +0530 Message-ID: Subject: Re: Build failed in Jenkins: pgadmin4-master-python33 #507 To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="f4030435b4583b88350566d3f738" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --f4030435b4583b88350566d3f738 Content-Type: multipart/alternative; boundary="f4030435b4583b88310566d3f736" --f4030435b4583b88310566d3f736 Content-Type: text/plain; charset="UTF-8" Hi Dave, On Wed, Mar 7, 2018 at 7:34 PM, Dave Page wrote: > Khushboo, can you look at this ASAP please? It passed tests on my machine, > but Jenkins isn't happy. > > I have tried to reproduce the issue with many combination but couldn't reproduce it. With the help of logs, I have tried to fix it. Can you please check this fix is helpful or not? > Thanks. > > On Wed, Mar 7, 2018 at 2:01 PM, pgAdmin 4 Jenkins > wrote: > >> See > 7/display/redirect?page=changes> >> >> Changes: >> >> [Dave Page] Ensure all messages are retrieved from the server in the >> Query Tool. >> >> ------------------------------------------ >> [...truncated 605.81 KB...] >> PackageDeleteTestCase (Fetch Package Node URL) >> ResourceGroupsPutTestCase (Put resource groups) >> SynonymPutTestCase (Fetch synonym Node URL) >> PackageAddTestCase (Fetch Package Node URL) >> PackageGetTestCase (Fetch Package Node URL) >> ResourceGroupsAddTestCase (Add resource groups) >> SynonymDeleteTestCase (Fetch synonym Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> SynonymGetTestCase (Fetch synonym Node URL) >> PackagePutTestCase (Fetch Package Node URL) >> SynonymAddTestCase (Default Node URL) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> TestSSLConnection (Test for SSL connection) >> >> EDB Postgres AS 9.3: >> >> 280 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 7 tests skipped: >> ResourceGroupsDeleteTestCase (Delete resource groups) >> ResourceGroupsPutTestCase (Put resource groups) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> ResourceGroupsAddTestCase (Add resource groups) >> TestSSLConnection (Test for SSL connection) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> >> EDB Postgres AS 9.2: >> >> 272 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 15 tests skipped: >> ResourceGroupsPutTestCase (Put resource groups) >> EventTriggerGetTestCase (Fetch Event Trigger Node URL) >> ViewsAddTestCase (Add materialized view under schema node) >> ResourceGroupsAddTestCase (Add resource groups) >> TestSSLConnection (Test for SSL connection) >> EventTriggerAddTestCase (Fetch Event Trigger Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> EventTriggerDeleteTestCase (Fetch Event Trigger Node URL) >> EventTriggerPutTestCase (Fetch Event Trigger Node URL) >> ViewsUpdateTestCase (Update materialized view under >> schema node) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> ViewsDeleteTestCase (Delete materialized view under >> schema node) >> ViewsGetTestCase (Get materialized view under schema node) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> >> PostgreSQL 9.2: >> >> 265 tests passed >> 0 tests failed >> 23 tests skipped: >> PackageDeleteTestCase (Fetch Package Node URL) >> SynonymPutTestCase (Fetch synonym Node URL) >> ViewsGetTestCase (Get materialized view under schema node) >> SynonymDeleteTestCase (Fetch synonym Node URL) >> ResourceGroupsAddTestCase (Add resource groups) >> ViewsAddTestCase (Add materialized view under schema node) >> EventTriggerAddTestCase (Fetch Event Trigger Node URL) >> EventTriggerDeleteTestCase (Fetch Event Trigger Node URL) >> EventTriggerPutTestCase (Fetch Event Trigger Node URL) >> PackagePutTestCase (Fetch Package Node URL) >> SynonymAddTestCase (Default Node URL) >> TestSSLConnection (Test for SSL connection) >> ResourceGroupsPutTestCase (Put resource groups) >> EventTriggerGetTestCase (Fetch Event Trigger Node URL) >> PackageGetTestCase (Fetch Package Node URL) >> PackageAddTestCase (Fetch Package Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> SynonymGetTestCase (Fetch synonym Node URL) >> ViewsUpdateTestCase (Update materialized view under >> schema node) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> ViewsDeleteTestCase (Delete materialized view under >> schema node) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> >> PostgreSQL 9.3: >> >> 272 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 15 tests skipped: >> PackageDeleteTestCase (Fetch Package Node URL) >> ResourceGroupsPutTestCase (Put resource groups) >> SynonymPutTestCase (Fetch synonym Node URL) >> PackageAddTestCase (Fetch Package Node URL) >> PackageGetTestCase (Fetch Package Node URL) >> ResourceGroupsAddTestCase (Add resource groups) >> SynonymDeleteTestCase (Fetch synonym Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> SynonymGetTestCase (Fetch synonym Node URL) >> PackagePutTestCase (Fetch Package Node URL) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> SynonymAddTestCase (Default Node URL) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> TestSSLConnection (Test for SSL connection) >> >> PostgreSQL 9.4: >> >> 272 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 15 tests skipped: >> PackageDeleteTestCase (Fetch Package Node URL) >> ResourceGroupsPutTestCase (Put resource groups) >> SynonymPutTestCase (Fetch synonym Node URL) >> PackageAddTestCase (Fetch Package Node URL) >> PackageGetTestCase (Fetch Package Node URL) >> ResourceGroupsAddTestCase (Add resource groups) >> SynonymDeleteTestCase (Fetch synonym Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> SynonymGetTestCase (Fetch synonym Node URL) >> PackagePutTestCase (Fetch Package Node URL) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> SynonymAddTestCase (Default Node URL) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> TestSSLConnection (Test for SSL connection) >> >> PostgreSQL 9.5: >> >> 272 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 15 tests skipped: >> PackageDeleteTestCase (Fetch Package Node URL) >> ResourceGroupsPutTestCase (Put resource groups) >> SynonymPutTestCase (Fetch synonym Node URL) >> PackageAddTestCase (Fetch Package Node URL) >> PackageGetTestCase (Fetch Package Node URL) >> ResourceGroupsAddTestCase (Add resource groups) >> SynonymDeleteTestCase (Fetch synonym Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> SynonymGetTestCase (Fetch synonym Node URL) >> PackagePutTestCase (Fetch Package Node URL) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> SynonymAddTestCase (Default Node URL) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> TestSSLConnection (Test for SSL connection) >> NOTE: Configuring authentication for DESKTOP mode. >> pgAdmin 4 - Application Initialisation >> ====================================== >> >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 1000 NOTICES WITH DATASET >> Executing and polling with: NO NOTICE WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Executing and polling with: 2 NOTICES WITH DATASET >> Please check output in file: > ob/pgadmin4-master-python33/ws/web/regression/regression.log> >> >> >> PostgreSQL 9.6: >> >> 272 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 15 tests skipped: >> PackageDeleteTestCase (Fetch Package Node URL) >> ResourceGroupsPutTestCase (Put resource groups) >> SynonymPutTestCase (Fetch synonym Node URL) >> PackageAddTestCase (Fetch Package Node URL) >> PackageGetTestCase (Fetch Package Node URL) >> ResourceGroupsAddTestCase (Add resource groups) >> SynonymDeleteTestCase (Fetch synonym Node URL) >> ResourceGroupsGetTestCase (Get resource groups) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> SynonymGetTestCase (Fetch synonym Node URL) >> PackagePutTestCase (Fetch Package Node URL) >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> SynonymAddTestCase (Default Node URL) >> ResourceGroupsDeleteTestCase (Delete resource groups) >> TestSSLConnection (Test for SSL connection) >> >> EDB Postgres AS 9.4: >> >> 284 tests passed >> 1 test failed: >> TestPollQueryTool (When query tool polling returns >> messages with result data-set) >> 3 tests skipped: >> TableAddTestCase (Create Range partitioned table with 2 >> partitions, >> Create List partitioned table >> with 2 partitions) >> TestSSLConnection (Test for SSL connection) >> TableUpdateTestCase (Create partitions of existing list >> partitioned table, >> Detach partition from existing >> list partitioned table, >> Attach partition to existing list >> partitioned table, >> Attach partition to existing >> range partitioned table, >> Detach partition from existing >> range partitioned table, >> Create partitions of existing >> range partitioned table) >> >> ====================================================================== >> >> ERROR: Error detected when running the Python tests. >> ERROR: Error detected when running the Python tests. >> Build step 'Execute shell' marked build as failure >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --f4030435b4583b88310566d3f736 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+SGkgRGF2ZSw8YnI+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48 ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gV2VkLCBNYXIgNywgMjAxOCBhdCA3OjM0IFBNLCBE YXZlIFBhZ2UgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86ZHBhZ2VAcGdhZG1p bi5vcmciIHRhcmdldD0iX2JsYW5rIj5kcGFnZUBwZ2FkbWluLm9yZzwvYT4mZ3Q7PC9zcGFuPiB3 cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAg MCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGRp diBkaXI9Imx0ciI+S2h1c2hib28sIGNhbiB5b3UgbG9vayBhdCB0aGlzIEFTQVAgcGxlYXNlPyBJ dCBwYXNzZWQgdGVzdHMgb24gbXkgbWFjaGluZSwgYnV0IEplbmtpbnMgaXNuJiMzOTt0IGhhcHB5 LjxkaXY+PGJyPjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PkkgaGF2ZSB0cmllZCB0byBy ZXByb2R1Y2UgdGhlIGlzc3VlIHdpdGggbWFueSBjb21iaW5hdGlvbiBidXQgY291bGRuJiMzOTt0 IHJlcHJvZHVjZSBpdC48L2Rpdj48ZGl2PldpdGggdGhlIGhlbHAgb2YgbG9ncywgSSBoYXZlIHRy aWVkIHRvIGZpeCBpdC4gQ2FuIHlvdSBwbGVhc2UgY2hlY2sgdGhpcyBmaXggaXMgaGVscGZ1bCBv ciBub3Q/wqA8L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJn aW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4 Ij48ZGl2IGRpcj0ibHRyIj48ZGl2PjwvZGl2PjxkaXY+VGhhbmtzLjwvZGl2PjwvZGl2PjxkaXYg Y2xhc3M9ImdtYWlsX2V4dHJhIj48ZGl2PjxkaXYgY2xhc3M9Img1Ij48YnI+PGRpdiBjbGFzcz0i Z21haWxfcXVvdGUiPk9uIFdlZCwgTWFyIDcsIDIwMTggYXQgMjowMSBQTSwgcGdBZG1pbiA0IEpl bmtpbnMgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86amVua2luc0BwZ2FkbWlu Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmplbmtpbnNAcGdhZG1pbi5vcmc8L2E+Jmd0Ozwvc3Bhbj4g d3JvdGU6PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjow IDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPlNl ZSAmbHQ7PGEgaHJlZj0iaHR0cHM6Ly9qZW5raW5zLnBnYWRtaW4ub3JnL2pvYi9wZ2FkbWluNC1t YXN0ZXItcHl0aG9uMzMvNTA3L2Rpc3BsYXkvcmVkaXJlY3Q/cGFnZT1jaGFuZ2VzIiByZWw9Im5v cmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2plbmtpbnMucGdhZG1pbi5vcmcvajx3 YnI+b2IvcGdhZG1pbjQtbWFzdGVyLXB5dGhvbjMzLzUwPHdicj43L2Rpc3BsYXkvcmVkaXJlY3Q/ cGFnZT1jaGFuZ2U8d2JyPnM8L2E+Jmd0Ozxicj4NCjxicj4NCkNoYW5nZXM6PGJyPg0KPGJyPg0K W0RhdmUgUGFnZV0gRW5zdXJlIGFsbCBtZXNzYWdlcyBhcmUgcmV0cmlldmVkIGZyb20gdGhlIHNl cnZlciBpbiB0aGUgUXVlcnkgVG9vbC48YnI+DQo8YnI+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS08d2JyPi0tLS0tLS0tLS0tLTxicj4NClsuLi50cnVuY2F0ZWQgNjA1LjgxIEtCLi4u XTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFBhY2thZ2VEZWxldGVUZXN0Q2FzZSAoRmV0 Y2ggUGFja2FnZSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJj ZUdyb3Vwc1B1dFRlc3RDYXNlIChQdXQgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIFN5bm9ueW1QdXRUZXN0Q2FzZSAoRmV0Y2ggc3lub255bSBOb2RlIFVSTCk8 YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQYWNrYWdlQWRkVGVzdENhc2UgKEZldGNoIFBh Y2thZ2UgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUGFja2FnZUdldFRl c3RDYXNlIChGZXRjaCBQYWNrYWdlIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIFJlc291cmNlR3JvdXBzQWRkVGVzdENhc2UgKEFkZCByZXNvdXJjZSBncm91cHMpPGJyPg0K wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3lub255bURlbGV0ZVRlc3RDYXNlIChGZXRjaCBzeW5v bnltIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBz R2V0VGVzdENhc2UgKEdldCByZXNvdXJjZSBncm91cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgU3lub255bUdldFRlc3RDYXNlIChGZXRjaCBzeW5vbnltIE5vZGUgVVJMKTxicj4NCsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIFBhY2thZ2VQdXRUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBO b2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTeW5vbnltQWRkVGVzdENhc2Ug KERlZmF1bHQgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzb3VyY2VH cm91cHNEZWxldGVUZXN0Q2FzZSAoRGVsZXRlIHJlc291cmNlIGdyb3Vwcyk8YnI+DQrCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCBUZXN0U1NMQ29ubmVjdGlvbiAoVGVzdCBmb3IgU1NMIGNvbm5lY3Rp b24pPGJyPg0KPGJyPg0KRURCIFBvc3RncmVzIEFTIDkuMzo8YnI+DQo8YnI+DQrCoCDCoCDCoCDC oCAyODAgdGVzdHMgcGFzc2VkPGJyPg0KwqAgwqAgwqAgwqAgMSB0ZXN0IGZhaWxlZDo8YnI+DQrC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUZXN0UG9sbFF1ZXJ5VG9vbCAoV2hlbiBxdWVyeSB0b29s IHBvbGxpbmcgcmV0dXJucyBtZXNzYWdlcyB3aXRoIHJlc3VsdCBkYXRhLXNldCk8YnI+DQrCoCDC oCDCoCDCoCA3IHRlc3RzIHNraXBwZWQ6PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVz b3VyY2VHcm91cHNEZWxldGVUZXN0Q2FzZSAoRGVsZXRlIHJlc291cmNlIGdyb3Vwcyk8YnI+DQrC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc1B1dFRlc3RDYXNlIChQdXQgcmVz b3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRhYmxlQWRkVGVzdENh c2UgKENyZWF0ZSBSYW5nZSBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFydGl0aW9ucyw8YnI+ DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBDcmVhdGUgTGlzdCBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFydGl0aW9ucyk8YnI+ DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc0FkZFRlc3RDYXNlIChBZGQg cmVzb3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRlc3RTU0xDb25u ZWN0aW9uIChUZXN0IGZvciBTU0wgY29ubmVjdGlvbik8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBSZXNvdXJjZUdyb3Vwc0dldFRlc3RDYXNlIChHZXQgcmVzb3VyY2UgZ3JvdXBzKTxicj4N CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRhYmxlVXBkYXRlVGVzdENhc2UgKENyZWF0ZSBwYXJ0 aXRpb25zIG9mIGV4aXN0aW5nIGxpc3QgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0YWNo IHBhcnRpdGlvbiBmcm9tIGV4aXN0aW5nIGxpc3QgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg QXR0YWNoIHBhcnRpdGlvbiB0byBleGlzdGluZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4N CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIEF0dGFjaCBwYXJ0aXRpb24gdG8gZXhpc3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFibGUs PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgRGV0YWNoIHBhcnRpdGlvbiBmcm9tIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVk IHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIENyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4aXN0aW5nIHJhbmdlIHBhcnRp dGlvbmVkIHRhYmxlKTxicj4NCjxicj4NCkVEQiBQb3N0Z3JlcyBBUyA5LjI6PGJyPg0KPGJyPg0K wqAgwqAgwqAgwqAgMjcyIHRlc3RzIHBhc3NlZDxicj4NCsKgIMKgIMKgIMKgIDEgdGVzdCBmYWls ZWQ6PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVGVzdFBvbGxRdWVyeVRvb2wgKFdoZW4g cXVlcnkgdG9vbCBwb2xsaW5nIHJldHVybnMgbWVzc2FnZXMgd2l0aCByZXN1bHQgZGF0YS1zZXQp PGJyPg0KwqAgwqAgwqAgwqAgMTUgdGVzdHMgc2tpcHBlZDo8YnI+DQrCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBSZXNvdXJjZUdyb3Vwc1B1dFRlc3RDYXNlIChQdXQgcmVzb3VyY2UgZ3JvdXBzKTxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEV2ZW50VHJpZ2dlckdldFRlc3RDYXNlIChGZXRj aCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFZp ZXdzQWRkVGVzdENhc2UgKEFkZCBtYXRlcmlhbGl6ZWQgdmlldyB1bmRlciBzY2hlbWEgbm9kZSk8 YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc0FkZFRlc3RDYXNlIChB ZGQgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRlc3RTU0xD b25uZWN0aW9uIChUZXN0IGZvciBTU0wgY29ubmVjdGlvbik8YnI+DQrCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBFdmVudFRyaWdnZXJBZGRUZXN0Q2FzZSAoRmV0Y2ggRXZlbnQgVHJpZ2dlciBOb2Rl IFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc0dldFRlc3RD YXNlIChHZXQgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRh YmxlVXBkYXRlVGVzdENhc2UgKENyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4aXN0aW5nIGxpc3QgcGFy dGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0YWNoIHBhcnRpdGlvbiBmcm9tIGV4aXN0aW5nIGxp c3QgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgQXR0YWNoIHBhcnRpdGlvbiB0byBleGlzdGlu ZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEF0dGFjaCBwYXJ0aXRpb24gdG8gZXhp c3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0YWNoIHBhcnRpdGlvbiBm cm9tIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIENyZWF0ZSBwYXJ0 aXRpb25zIG9mIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlKTxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIEV2ZW50VHJpZ2dlckRlbGV0ZVRlc3RDYXNlIChGZXRjaCBFdmVudCBU cmlnZ2VyIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEV2ZW50VHJpZ2dl clB1dFRlc3RDYXNlIChGZXRjaCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFZpZXdzVXBkYXRlVGVzdENhc2UgKFVwZGF0ZSBtYXRlcmlhbGl6ZWQg dmlldyB1bmRlciBzY2hlbWEgbm9kZSk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUYWJs ZUFkZFRlc3RDYXNlIChDcmVhdGUgUmFuZ2UgcGFydGl0aW9uZWQgdGFibGUgd2l0aCAyIHBhcnRp dGlvbnMsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgQ3JlYXRlIExpc3QgcGFydGl0aW9uZWQgdGFibGUgd2l0aCAyIHBhcnRp dGlvbnMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVmlld3NEZWxldGVUZXN0Q2FzZSAo RGVsZXRlIG1hdGVyaWFsaXplZCB2aWV3IHVuZGVyIHNjaGVtYSBub2RlKTxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFZpZXdzR2V0VGVzdENhc2UgKEdldCBtYXRlcmlhbGl6ZWQgdmlldyB1 bmRlciBzY2hlbWEgbm9kZSk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdy b3Vwc0RlbGV0ZVRlc3RDYXNlIChEZWxldGUgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCjxicj4NClBv c3RncmVTUUwgOS4yOjxicj4NCjxicj4NCsKgIMKgIMKgIMKgIDI2NSB0ZXN0cyBwYXNzZWQ8YnI+ DQrCoCDCoCDCoCDCoCAwIHRlc3RzIGZhaWxlZDxicj4NCsKgIMKgIMKgIMKgIDIzIHRlc3RzIHNr aXBwZWQ6PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUGFja2FnZURlbGV0ZVRlc3RDYXNl IChGZXRjaCBQYWNrYWdlIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFN5 bm9ueW1QdXRUZXN0Q2FzZSAoRmV0Y2ggc3lub255bSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBWaWV3c0dldFRlc3RDYXNlIChHZXQgbWF0ZXJpYWxpemVkIHZpZXcgdW5k ZXIgc2NoZW1hIG5vZGUpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3lub255bURlbGV0 ZVRlc3RDYXNlIChGZXRjaCBzeW5vbnltIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIFJlc291cmNlR3JvdXBzQWRkVGVzdENhc2UgKEFkZCByZXNvdXJjZSBncm91cHMpPGJy Pg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVmlld3NBZGRUZXN0Q2FzZSAoQWRkIG1hdGVyaWFs aXplZCB2aWV3IHVuZGVyIHNjaGVtYSBub2RlKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IEV2ZW50VHJpZ2dlckFkZFRlc3RDYXNlIChGZXRjaCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMKTxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEV2ZW50VHJpZ2dlckRlbGV0ZVRlc3RDYXNlIChG ZXRjaCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IEV2ZW50VHJpZ2dlclB1dFRlc3RDYXNlIChGZXRjaCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMKTxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFBhY2thZ2VQdXRUZXN0Q2FzZSAoRmV0Y2ggUGFj a2FnZSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTeW5vbnltQWRkVGVz dENhc2UgKERlZmF1bHQgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVGVz dFNTTENvbm5lY3Rpb24gKFRlc3QgZm9yIFNTTCBjb25uZWN0aW9uKTxicj4NCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBzUHV0VGVzdENhc2UgKFB1dCByZXNvdXJjZSBncm91 cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRXZlbnRUcmlnZ2VyR2V0VGVzdENhc2Ug KEZldGNoIEV2ZW50IFRyaWdnZXIgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgUGFja2FnZUdldFRlc3RDYXNlIChGZXRjaCBQYWNrYWdlIE5vZGUgVVJMKTxicj4NCsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIFBhY2thZ2VBZGRUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBOb2Rl IFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc0dldFRlc3RD YXNlIChHZXQgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRh YmxlVXBkYXRlVGVzdENhc2UgKENyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4aXN0aW5nIGxpc3QgcGFy dGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0YWNoIHBhcnRpdGlvbiBmcm9tIGV4aXN0aW5nIGxp c3QgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgQXR0YWNoIHBhcnRpdGlvbiB0byBleGlzdGlu ZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEF0dGFjaCBwYXJ0aXRpb24gdG8gZXhp c3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0YWNoIHBhcnRpdGlvbiBm cm9tIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIENyZWF0ZSBwYXJ0 aXRpb25zIG9mIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlKTxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFN5bm9ueW1HZXRUZXN0Q2FzZSAoRmV0Y2ggc3lub255bSBOb2RlIFVS TCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBWaWV3c1VwZGF0ZVRlc3RDYXNlIChVcGRh dGUgbWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUpPGJyPg0KwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgVGFibGVBZGRUZXN0Q2FzZSAoQ3JlYXRlIFJhbmdlIHBhcnRpdGlvbmVkIHRh YmxlIHdpdGggMiBwYXJ0aXRpb25zLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIENyZWF0ZSBMaXN0IHBhcnRpdGlvbmVkIHRh YmxlIHdpdGggMiBwYXJ0aXRpb25zKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFZpZXdz RGVsZXRlVGVzdENhc2UgKERlbGV0ZSBtYXRlcmlhbGl6ZWQgdmlldyB1bmRlciBzY2hlbWEgbm9k ZSk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc0RlbGV0ZVRlc3RD YXNlIChEZWxldGUgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCjxicj4NClBvc3RncmVTUUwgOS4zOjxi cj4NCjxicj4NCsKgIMKgIMKgIMKgIDI3MiB0ZXN0cyBwYXNzZWQ8YnI+DQrCoCDCoCDCoCDCoCAx IHRlc3QgZmFpbGVkOjxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRlc3RQb2xsUXVlcnlU b29sIChXaGVuIHF1ZXJ5IHRvb2wgcG9sbGluZyByZXR1cm5zIG1lc3NhZ2VzIHdpdGggcmVzdWx0 IGRhdGEtc2V0KTxicj4NCsKgIMKgIMKgIMKgIDE1IHRlc3RzIHNraXBwZWQ6PGJyPg0KwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgUGFja2FnZURlbGV0ZVRlc3RDYXNlIChGZXRjaCBQYWNrYWdlIE5v ZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBzUHV0VGVz dENhc2UgKFB1dCByZXNvdXJjZSBncm91cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg U3lub255bVB1dFRlc3RDYXNlIChGZXRjaCBzeW5vbnltIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFBhY2thZ2VBZGRUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBOb2RlIFVS TCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQYWNrYWdlR2V0VGVzdENhc2UgKEZldGNo IFBhY2thZ2UgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzb3VyY2VH cm91cHNBZGRUZXN0Q2FzZSAoQWRkIHJlc291cmNlIGdyb3Vwcyk8YnI+DQrCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBTeW5vbnltRGVsZXRlVGVzdENhc2UgKEZldGNoIHN5bm9ueW0gTm9kZSBVUkwp PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzb3VyY2VHcm91cHNHZXRUZXN0Q2FzZSAo R2V0IHJlc291cmNlIGdyb3Vwcyk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUYWJsZVVw ZGF0ZVRlc3RDYXNlIChDcmVhdGUgcGFydGl0aW9ucyBvZiBleGlzdGluZyBsaXN0IHBhcnRpdGlv bmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIERldGFjaCBwYXJ0aXRpb24gZnJvbSBleGlzdGluZyBsaXN0IHBh cnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEF0dGFjaCBwYXJ0aXRpb24gdG8gZXhpc3RpbmcgbGlz dCBwYXJ0aXRpb25lZCB0YWJsZSw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBBdHRhY2ggcGFydGl0aW9uIHRvIGV4aXN0aW5n IHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIERldGFjaCBwYXJ0aXRpb24gZnJvbSBl eGlzdGluZyByYW5nZSBwYXJ0aXRpb25lZCB0YWJsZSw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBDcmVhdGUgcGFydGl0aW9u cyBvZiBleGlzdGluZyByYW5nZSBwYXJ0aXRpb25lZCB0YWJsZSk8YnI+DQrCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBTeW5vbnltR2V0VGVzdENhc2UgKEZldGNoIHN5bm9ueW0gTm9kZSBVUkwpPGJy Pg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUGFja2FnZVB1dFRlc3RDYXNlIChGZXRjaCBQYWNr YWdlIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRhYmxlQWRkVGVzdENh c2UgKENyZWF0ZSBSYW5nZSBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFydGl0aW9ucyw8YnI+ DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBDcmVhdGUgTGlzdCBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFydGl0aW9ucyk8YnI+ DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTeW5vbnltQWRkVGVzdENhc2UgKERlZmF1bHQgTm9k ZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzb3VyY2VHcm91cHNEZWxldGVU ZXN0Q2FzZSAoRGVsZXRlIHJlc291cmNlIGdyb3Vwcyk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBUZXN0U1NMQ29ubmVjdGlvbiAoVGVzdCBmb3IgU1NMIGNvbm5lY3Rpb24pPGJyPg0KPGJy Pg0KUG9zdGdyZVNRTCA5LjQ6PGJyPg0KPGJyPg0KwqAgwqAgwqAgwqAgMjcyIHRlc3RzIHBhc3Nl ZDxicj4NCsKgIMKgIMKgIMKgIDEgdGVzdCBmYWlsZWQ6PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgVGVzdFBvbGxRdWVyeVRvb2wgKFdoZW4gcXVlcnkgdG9vbCBwb2xsaW5nIHJldHVybnMg bWVzc2FnZXMgd2l0aCByZXN1bHQgZGF0YS1zZXQpPGJyPg0KwqAgwqAgwqAgwqAgMTUgdGVzdHMg c2tpcHBlZDo8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQYWNrYWdlRGVsZXRlVGVzdENh c2UgKEZldGNoIFBhY2thZ2UgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg UmVzb3VyY2VHcm91cHNQdXRUZXN0Q2FzZSAoUHV0IHJlc291cmNlIGdyb3Vwcyk8YnI+DQrCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCBTeW5vbnltUHV0VGVzdENhc2UgKEZldGNoIHN5bm9ueW0gTm9k ZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUGFja2FnZUFkZFRlc3RDYXNlIChG ZXRjaCBQYWNrYWdlIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFBhY2th Z2VHZXRUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc0FkZFRlc3RDYXNlIChBZGQgcmVzb3VyY2UgZ3JvdXBz KTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFN5bm9ueW1EZWxldGVUZXN0Q2FzZSAoRmV0 Y2ggc3lub255bSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJj ZUdyb3Vwc0dldFRlc3RDYXNlIChHZXQgcmVzb3VyY2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIFRhYmxlVXBkYXRlVGVzdENhc2UgKENyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4 aXN0aW5nIGxpc3QgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0YWNoIHBhcnRpdGlvbiBm cm9tIGV4aXN0aW5nIGxpc3QgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgQXR0YWNoIHBhcnRp dGlvbiB0byBleGlzdGluZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEF0dGFjaCBw YXJ0aXRpb24gdG8gZXhpc3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgRGV0 YWNoIHBhcnRpdGlvbiBmcm9tIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlLDxicj4N CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIENyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxl KTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFN5bm9ueW1HZXRUZXN0Q2FzZSAoRmV0Y2gg c3lub255bSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQYWNrYWdlUHV0 VGVzdENhc2UgKEZldGNoIFBhY2thZ2UgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgVGFibGVBZGRUZXN0Q2FzZSAoQ3JlYXRlIFJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlIHdp dGggMiBwYXJ0aXRpb25zLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIENyZWF0ZSBMaXN0IHBhcnRpdGlvbmVkIHRhYmxlIHdp dGggMiBwYXJ0aXRpb25zKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFN5bm9ueW1BZGRU ZXN0Q2FzZSAoRGVmYXVsdCBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBS ZXNvdXJjZUdyb3Vwc0RlbGV0ZVRlc3RDYXNlIChEZWxldGUgcmVzb3VyY2UgZ3JvdXBzKTxicj4N CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRlc3RTU0xDb25uZWN0aW9uIChUZXN0IGZvciBTU0wg Y29ubmVjdGlvbik8YnI+DQo8YnI+DQpQb3N0Z3JlU1FMIDkuNTo8YnI+DQo8YnI+DQrCoCDCoCDC oCDCoCAyNzIgdGVzdHMgcGFzc2VkPGJyPg0KwqAgwqAgwqAgwqAgMSB0ZXN0IGZhaWxlZDo8YnI+ DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUZXN0UG9sbFF1ZXJ5VG9vbCAoV2hlbiBxdWVyeSB0 b29sIHBvbGxpbmcgcmV0dXJucyBtZXNzYWdlcyB3aXRoIHJlc3VsdCBkYXRhLXNldCk8YnI+DQrC oCDCoCDCoCDCoCAxNSB0ZXN0cyBza2lwcGVkOjxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IFBhY2thZ2VEZWxldGVUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBOb2RlIFVSTCk8YnI+DQrCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNvdXJjZUdyb3Vwc1B1dFRlc3RDYXNlIChQdXQgcmVzb3Vy Y2UgZ3JvdXBzKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFN5bm9ueW1QdXRUZXN0Q2Fz ZSAoRmV0Y2ggc3lub255bSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQ YWNrYWdlQWRkVGVzdENhc2UgKEZldGNoIFBhY2thZ2UgTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgUGFja2FnZUdldFRlc3RDYXNlIChGZXRjaCBQYWNrYWdlIE5vZGUgVVJM KTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBzQWRkVGVzdENhc2Ug KEFkZCByZXNvdXJjZSBncm91cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3lub255 bURlbGV0ZVRlc3RDYXNlIChGZXRjaCBzeW5vbnltIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBzR2V0VGVzdENhc2UgKEdldCByZXNvdXJjZSBncm91 cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVGFibGVVcGRhdGVUZXN0Q2FzZSAoQ3Jl YXRlIHBhcnRpdGlvbnMgb2YgZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJsZSw8YnI+DQrC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCBEZXRhY2ggcGFydGl0aW9uIGZyb20gZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJsZSw8 YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBBdHRhY2ggcGFydGl0aW9uIHRvIGV4aXN0aW5nIGxpc3QgcGFydGl0aW9uZWQgdGFi bGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgQXR0YWNoIHBhcnRpdGlvbiB0byBleGlzdGluZyByYW5nZSBwYXJ0aXRpb25l ZCB0YWJsZSw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCBEZXRhY2ggcGFydGl0aW9uIGZyb20gZXhpc3RpbmcgcmFuZ2UgcGFy dGl0aW9uZWQgdGFibGUsPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgQ3JlYXRlIHBhcnRpdGlvbnMgb2YgZXhpc3RpbmcgcmFu Z2UgcGFydGl0aW9uZWQgdGFibGUpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3lub255 bUdldFRlc3RDYXNlIChGZXRjaCBzeW5vbnltIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIFBhY2thZ2VQdXRUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBOb2RlIFVSTCk8YnI+ DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUYWJsZUFkZFRlc3RDYXNlIChDcmVhdGUgUmFuZ2Ug cGFydGl0aW9uZWQgdGFibGUgd2l0aCAyIHBhcnRpdGlvbnMsPGJyPg0KwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgQ3JlYXRlIExpc3Qg cGFydGl0aW9uZWQgdGFibGUgd2l0aCAyIHBhcnRpdGlvbnMpPGJyPg0KwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgU3lub255bUFkZFRlc3RDYXNlIChEZWZhdWx0IE5vZGUgVVJMKTxicj4NCsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBzRGVsZXRlVGVzdENhc2UgKERlbGV0ZSBy ZXNvdXJjZSBncm91cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVGVzdFNTTENvbm5l Y3Rpb24gKFRlc3QgZm9yIFNTTCBjb25uZWN0aW9uKTxicj4NCk5PVEU6IENvbmZpZ3VyaW5nIGF1 dGhlbnRpY2F0aW9uIGZvciBERVNLVE9QIG1vZGUuPGJyPg0KcGdBZG1pbiA0IC0gQXBwbGljYXRp b24gSW5pdGlhbGlzYXRpb248YnI+DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08d2Jy Pj09PT09PT09PGJyPg0KPGJyPg0KRXhlY3V0aW5nIGFuZCBwb2xsaW5nIHdpdGg6IDIgTk9USUNF UyBXSVRIIERBVEFTRVQ8YnI+DQpFeGVjdXRpbmcgYW5kIHBvbGxpbmcgd2l0aDogMTAwMCBOT1RJ Q0VTIFdJVEggREFUQVNFVDxicj4NCkV4ZWN1dGluZyBhbmQgcG9sbGluZyB3aXRoOiBOTyBOT1RJ Q0UgV0lUSCBEQVRBU0VUPGJyPg0KRXhlY3V0aW5nIGFuZCBwb2xsaW5nIHdpdGg6IDIgTk9USUNF UyBXSVRIIERBVEFTRVQ8YnI+DQpFeGVjdXRpbmcgYW5kIHBvbGxpbmcgd2l0aDogMiBOT1RJQ0VT IFdJVEggREFUQVNFVDxicj4NCkV4ZWN1dGluZyBhbmQgcG9sbGluZyB3aXRoOiAyIE5PVElDRVMg V0lUSCBEQVRBU0VUPGJyPg0KRXhlY3V0aW5nIGFuZCBwb2xsaW5nIHdpdGg6IDIgTk9USUNFUyBX SVRIIERBVEFTRVQ8YnI+DQpFeGVjdXRpbmcgYW5kIHBvbGxpbmcgd2l0aDogMiBOT1RJQ0VTIFdJ VEggREFUQVNFVDxicj4NCkV4ZWN1dGluZyBhbmQgcG9sbGluZyB3aXRoOiAyIE5PVElDRVMgV0lU SCBEQVRBU0VUPGJyPg0KRXhlY3V0aW5nIGFuZCBwb2xsaW5nIHdpdGg6IDIgTk9USUNFUyBXSVRI IERBVEFTRVQ8YnI+DQpFeGVjdXRpbmcgYW5kIHBvbGxpbmcgd2l0aDogMiBOT1RJQ0VTIFdJVEgg REFUQVNFVDxicj4NCkV4ZWN1dGluZyBhbmQgcG9sbGluZyB3aXRoOiAyIE5PVElDRVMgV0lUSCBE QVRBU0VUPGJyPg0KRXhlY3V0aW5nIGFuZCBwb2xsaW5nIHdpdGg6IDIgTk9USUNFUyBXSVRIIERB VEFTRVQ8YnI+DQpQbGVhc2UgY2hlY2sgb3V0cHV0IGluIGZpbGU6ICZsdDs8YSBocmVmPSJodHRw czovL2plbmtpbnMucGdhZG1pbi5vcmcvam9iL3BnYWRtaW40LW1hc3Rlci1weXRob24zMy93cy93 ZWIvcmVncmVzc2lvbi9yZWdyZXNzaW9uLmxvZyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9i bGFuayI+aHR0cHM6Ly9qZW5raW5zLnBnYWRtaW4ub3JnL2o8d2JyPm9iL3BnYWRtaW40LW1hc3Rl ci1weXRob24zMy93czx3YnI+L3dlYi9yZWdyZXNzaW9uL3JlZ3Jlc3Npb24ubG9nPC9hPjx3YnI+ Jmd0Ozxicj4NCjxicj4NCjxicj4NClBvc3RncmVTUUwgOS42Ojxicj4NCjxicj4NCsKgIMKgIMKg IMKgIDI3MiB0ZXN0cyBwYXNzZWQ8YnI+DQrCoCDCoCDCoCDCoCAxIHRlc3QgZmFpbGVkOjxicj4N CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRlc3RQb2xsUXVlcnlUb29sIChXaGVuIHF1ZXJ5IHRv b2wgcG9sbGluZyByZXR1cm5zIG1lc3NhZ2VzIHdpdGggcmVzdWx0IGRhdGEtc2V0KTxicj4NCsKg IMKgIMKgIMKgIDE1IHRlc3RzIHNraXBwZWQ6PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg UGFja2FnZURlbGV0ZVRlc3RDYXNlIChGZXRjaCBQYWNrYWdlIE5vZGUgVVJMKTxicj4NCsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIFJlc291cmNlR3JvdXBzUHV0VGVzdENhc2UgKFB1dCByZXNvdXJj ZSBncm91cHMpPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3lub255bVB1dFRlc3RDYXNl IChGZXRjaCBzeW5vbnltIE5vZGUgVVJMKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFBh Y2thZ2VBZGRUZXN0Q2FzZSAoRmV0Y2ggUGFja2FnZSBOb2RlIFVSTCk8YnI+DQrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBQYWNrYWdlR2V0VGVzdENhc2UgKEZldGNoIFBhY2thZ2UgTm9kZSBVUkwp PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzb3VyY2VHcm91cHNBZGRUZXN0Q2FzZSAo QWRkIHJlc291cmNlIGdyb3Vwcyk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTeW5vbnlt RGVsZXRlVGVzdENhc2UgKEZldGNoIHN5bm9ueW0gTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgUmVzb3VyY2VHcm91cHNHZXRUZXN0Q2FzZSAoR2V0IHJlc291cmNlIGdyb3Vw cyk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUYWJsZVVwZGF0ZVRlc3RDYXNlIChDcmVh dGUgcGFydGl0aW9ucyBvZiBleGlzdGluZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IERldGFjaCBwYXJ0aXRpb24gZnJvbSBleGlzdGluZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIEF0dGFjaCBwYXJ0aXRpb24gdG8gZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJs ZSw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBBdHRhY2ggcGFydGl0aW9uIHRvIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVk IHRhYmxlLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIERldGFjaCBwYXJ0aXRpb24gZnJvbSBleGlzdGluZyByYW5nZSBwYXJ0 aXRpb25lZCB0YWJsZSw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBDcmVhdGUgcGFydGl0aW9ucyBvZiBleGlzdGluZyByYW5n ZSBwYXJ0aXRpb25lZCB0YWJsZSk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTeW5vbnlt R2V0VGVzdENhc2UgKEZldGNoIHN5bm9ueW0gTm9kZSBVUkwpPGJyPg0KwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgUGFja2FnZVB1dFRlc3RDYXNlIChGZXRjaCBQYWNrYWdlIE5vZGUgVVJMKTxicj4N CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFRhYmxlQWRkVGVzdENhc2UgKENyZWF0ZSBSYW5nZSBw YXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFydGl0aW9ucyw8YnI+DQrCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBDcmVhdGUgTGlzdCBw YXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFydGl0aW9ucyk8YnI+DQrCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBTeW5vbnltQWRkVGVzdENhc2UgKERlZmF1bHQgTm9kZSBVUkwpPGJyPg0KwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgUmVzb3VyY2VHcm91cHNEZWxldGVUZXN0Q2FzZSAoRGVsZXRlIHJl c291cmNlIGdyb3Vwcyk8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUZXN0U1NMQ29ubmVj dGlvbiAoVGVzdCBmb3IgU1NMIGNvbm5lY3Rpb24pPGJyPg0KPGJyPg0KRURCIFBvc3RncmVzIEFT IDkuNDo8YnI+DQo8YnI+DQrCoCDCoCDCoCDCoCAyODQgdGVzdHMgcGFzc2VkPGJyPg0KwqAgwqAg wqAgwqAgMSB0ZXN0IGZhaWxlZDo8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUZXN0UG9s bFF1ZXJ5VG9vbCAoV2hlbiBxdWVyeSB0b29sIHBvbGxpbmcgcmV0dXJucyBtZXNzYWdlcyB3aXRo IHJlc3VsdCBkYXRhLXNldCk8YnI+DQrCoCDCoCDCoCDCoCAzIHRlc3RzIHNraXBwZWQ6PGJyPg0K wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgVGFibGVBZGRUZXN0Q2FzZSAoQ3JlYXRlIFJhbmdlIHBh cnRpdGlvbmVkIHRhYmxlIHdpdGggMiBwYXJ0aXRpb25zLDxicj4NCsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIENyZWF0ZSBMaXN0IHBh cnRpdGlvbmVkIHRhYmxlIHdpdGggMiBwYXJ0aXRpb25zKTxicj4NCsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIFRlc3RTU0xDb25uZWN0aW9uIChUZXN0IGZvciBTU0wgY29ubmVjdGlvbik8YnI+DQrC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBUYWJsZVVwZGF0ZVRlc3RDYXNlIChDcmVhdGUgcGFydGl0 aW9ucyBvZiBleGlzdGluZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIERldGFjaCBw YXJ0aXRpb24gZnJvbSBleGlzdGluZyBsaXN0IHBhcnRpdGlvbmVkIHRhYmxlLDxicj4NCsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEF0 dGFjaCBwYXJ0aXRpb24gdG8gZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJsZSw8YnI+DQrC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCBBdHRhY2ggcGFydGl0aW9uIHRvIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlLDxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIERldGFjaCBwYXJ0aXRpb24gZnJvbSBleGlzdGluZyByYW5nZSBwYXJ0aXRpb25lZCB0 YWJsZSw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBDcmVhdGUgcGFydGl0aW9ucyBvZiBleGlzdGluZyByYW5nZSBwYXJ0aXRp b25lZCB0YWJsZSk8YnI+DQo8YnI+DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08d2Jy Pj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTx3YnI+PT09PT09PT09PTxicj4NCjxicj4N CkVSUk9SOiBFcnJvciBkZXRlY3RlZCB3aGVuIHJ1bm5pbmcgdGhlIFB5dGhvbiB0ZXN0cy48YnI+ DQpFUlJPUjogRXJyb3IgZGV0ZWN0ZWQgd2hlbiBydW5uaW5nIHRoZSBQeXRob24gdGVzdHMuPGJy Pg0KQnVpbGQgc3RlcCAmIzM5O0V4ZWN1dGUgc2hlbGwmIzM5OyBtYXJrZWQgYnVpbGQgYXMgZmFp bHVyZTxicj4NCjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJy PjwvZGl2PjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJIT0VuWmIiPjxmb250IGNvbG9yPSIjODg4 ODg4Ij4tLSA8YnI+PGRpdiBjbGFzcz0ibV8zODUxOTIxNjk2NTkzMzYxNTc0Z21haWxfc2lnbmF0 dXJlIiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJlIj5EYXZlIFBhZ2U8YnI+QmxvZzog PGEgaHJlZj0iaHR0cDovL3Bnc25ha2UuYmxvZ3Nwb3QuY29tIiB0YXJnZXQ9Il9ibGFuayI+aHR0 cDovL3Bnc25ha2UuYmxvZ3Nwb3QuY29tPC9hPjxicj5Ud2l0dGVyOiBAcGdzbmFrZTxicj48YnI+ RW50ZXJwcmlzZURCIFVLOiA8YSBocmVmPSJodHRwOi8vd3d3LmVudGVycHJpc2VkYi5jb20iIHRh cmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LmVudGVycHJpc2VkYi5jb208L2E+PGJyPlRoZSBFbnRl cnByaXNlIFBvc3RncmVTUUwgQ29tcGFueTxicj48L2Rpdj4NCjwvZm9udD48L3NwYW4+PC9kaXY+ DQo8L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2PjwvZGl2Pg0K --f4030435b4583b88310566d3f736-- --f4030435b4583b88350566d3f738 Content-Type: text/x-patch; charset="US-ASCII"; name="3094_testcase_fix.patch" Content-Disposition: attachment; filename="3094_testcase_fix.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jeh7zifx0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3BvbGxf cXVlcnlfdG9vbC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3Bv bGxfcXVlcnlfdG9vbC5weQppbmRleCAyNzVlZDljLi5kMDA3ZTg2IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wb2xsX3F1ZXJ5X3Rvb2wucHkKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcG9sbF9xdWVyeV90b29s LnB5CkBAIC0xMDAsNyArMTAwLDcgQEAgTk9USUNFOiAgSGVsbG8sIHdvcmxkIQogICAgICAgICAg ICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04 JykpCiAKICAgICAgICAgICAgICMgQ2hlY2sgdGhlIHJldHVybmVkIG1lc3NhZ2VzCi0gICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmV4cGVjdGVkX21lc3NhZ2VbY250XSwKKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5leHBlY3RlZF9tZXNzYWdlW2NudF0sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2FkZGl0aW9uYWxf bWVzc2FnZXMnXSkKICAgICAgICAgICAgICMgQ2hlY2sgdGhlIG91dHB1dAogICAgICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5leHBlY3RlZF9yZXN1bHRbY250XSwK --f4030435b4583b88350566d3f738--