Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp493492pxb; Mon, 8 Nov 2021 17:18:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJxtZngDOtI7/yi+j35jdx9lyF9J+ULPseIcqxEiZZqmr25/4rlqwcA4ZyBc8BeMF1IySanz X-Received: by 2002:a05:6402:3492:: with SMTP id v18mr4618099edc.398.1636420699385; Mon, 08 Nov 2021 17:18:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1636420699; cv=pass; d=google.com; s=arc-20160816; b=VijuoRxmdTyaLGCjsGTtyDoVeo+vlnyLCkcERNCrjkWIpzNvyP2BKcqWkKmgUmwbDQ iEP8NswDnn577z7sPT+EdaoRUDsc2LUZ120qtyjt3IFAsKyUHzyxv1dt2FlZeM7hetWy q1mHI2iJxO9weAkt/dF68+uAuj0xPBx3aTmlNN8bcJF+7BNjWHgPB/iYZntX9e/zFsLk oZX98/KTfiFhPXBQEPCl3Ntkd5ZhrU1urqc37fx28unFodGHK74NDqgXp93C3Ccn+p7F JyJYfB9+rCVN7mjb75rcjrUHoEpX/+iULpJ0UYo0T8mL9c5cngEHAzLUGlDCMMeKNOLz nhsQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=EpuR3A/v67MMC+5yiqVhU8GT+wDHXK+jaHEq7l5ude4=; b=L6Yq7fwlBqc6m9r4INIrdGQCzzgcN79Y192Coy5BbRSrFTT1j+05syOECmG3AJAuTq XIdvxv0/dzYSuOoxbrgekjztKpIo0qyq3st5Byf7bdsbxMlCcL8rIadmWC36As/RJr+2 FKeF0Jh06E7cXJxZxA87HmUGftvJ+1wc3gUhaW63CWUAyfR2nohrS/4kHs7LEqR/0dYK HbqmJ3zooLQSlQ4E3WUEJARhw4DqNx+9QzYeB0q8KwDqUr0448ihvGUqk4JcjnNA7Xi6 88O30pDAv8UjJ2dRxiAv+WyLg2QdggWdx+XaiwgBIpp0w67Cn7PzJjz+zc/fGdx92VTI Yi+w== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail (test mode) header.i=@fujitsu.com header.s=fj1 header.b=Sly8nEj6; dkim=pass header.i=@fujitsu.onmicrosoft.com header.s=selector2-fujitsu-onmicrosoft-com header.b=gKc4aGPa; arc=pass (i=1 spf=pass spfdomain=fujitsu.com dkim=pass dkdomain=fujitsu.com dmarc=pass fromdomain=fujitsu.com); spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r17si25606805edd.66.2021.11.08.17.17.49; Mon, 08 Nov 2021 17:18:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail (test mode) header.i=@fujitsu.com header.s=fj1 header.b=Sly8nEj6; dkim=pass header.i=@fujitsu.onmicrosoft.com header.s=selector2-fujitsu-onmicrosoft-com header.b=gKc4aGPa; arc=pass (i=1 spf=pass spfdomain=fujitsu.com dkim=pass dkdomain=fujitsu.com dmarc=pass fromdomain=fujitsu.com); spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242405AbhKIBRZ (ORCPT + 99 others); Mon, 8 Nov 2021 20:17:25 -0500 Received: from esa14.fujitsucc.c3s2.iphmx.com ([68.232.156.101]:41597 "EHLO esa14.fujitsucc.c3s2.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242294AbhKIBLR (ORCPT ); Mon, 8 Nov 2021 20:11:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1636420112; x=1667956112; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=EpuR3A/v67MMC+5yiqVhU8GT+wDHXK+jaHEq7l5ude4=; b=Sly8nEj6tY4+pirubm1WOnTGhlpyA12jXrkbg48bvG2Omn/Q43OT1coA fLvfUFpC3cLuujz8KGORip78Hm3NnJvzPiBUM1qHewDvDKNPT9VKORsz+ GQtr6DDamC9KHnAkqVaPYv+fCbjn6oN7gttvidOPLFwY1PRCa3dZ9kmVT 38Q2yv5rAl45gEk0FMUleuSMBhnOFNE4pQ85jz4BIS715VxnHNzo//McT u1ae3wNnttVS2FM5yjChaudBUf3rHbsap5hod8WDy47jc6yQQ94gPmoOd WdIsa9LKcppeOGHBqDMqIvkPtrzYwnP7uxmmOiHJml5tgWzluOjZY0G/U Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10162"; a="42965141" X-IronPort-AV: E=Sophos;i="5.87,218,1631545200"; d="scan'208";a="42965141" Received: from mail-os2jpn01lp2054.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([104.47.92.54]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 10:08:14 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ONDnEKaz09zVhe5atNzMxzOor4H4SB+xvgFKGkM5E3QDK72vIKpNp/f5mN9EAdh7/GWoHN6Z0BYCSrhYY2hz+IzHGue0CxfgA6ki/QG28lIDwl+Q4F9aQdTy9h00X7J7xTkYIk+6CoHH39WphEDN4FDLY1+utGhnZUL+xu9iJl62ukAx3WmZuHdcCFrhiKJ0Wfmx7flM0x2WmJ8BvjmSrpMZKlfY6zpqs3IuA3A80AyPQVa/zBePBhkPN6Jt8PkjuZ5Gj1UidUyj8925P9+nNcwlxmowTI9aqSoXpSgMT6K9BhOUbVxiS/19uM52/gfjoRIRD1Sj6xwZcUvWnqwseA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EpuR3A/v67MMC+5yiqVhU8GT+wDHXK+jaHEq7l5ude4=; b=I8yKGM0GlPT6K8N0zABP0Dc3EnSM0W7ahbi9ZszvLztm2IGfOy5HcPtErO2Cyu52CsKMzNiu7DrDO3Xw9sBKWcOx+54hYhqdgbVk1UWaoqQ69UycpZrDamToq7oHvROuxvzriD3Mr4zUvLf8iIz3Oe/wIJ/2fUCF4iyakRUSTYo28P+LQgj0FR7txLd8/Kvi81EyUg4ArcXtUrAxm3wfiEe8eMPMWZJAfCG/YDUehAc0D3d9vDxyD89BWxVRT6FI7Kd9knGCTGi/uq8cm1DfHoW5GAbbuK6+tyqAJZwzul0Wo7gBQPL83NwLYuAJEXAjCZc4E4ANJfa4Wh7CK8NsJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EpuR3A/v67MMC+5yiqVhU8GT+wDHXK+jaHEq7l5ude4=; b=gKc4aGPacTDeTQOYjLw1YrazuZFLObY6x6b1OeqXDMTgMKV2qti5ye5BWjHRpambH5QabzRe5yGvXaJ8dkmYZsFAV3tc9W9rEoGjaEOKZ2ToIAp+gBWtwHB3SmYi0zp9Fka9Swm4sGDT06pzeWBaeMn7sBiYoLrnib2MTdDIjxU= Received: from TYCPR01MB6544.jpnprd01.prod.outlook.com (2603:1096:400:98::6) by TY2PR01MB3465.jpnprd01.prod.outlook.com (2603:1096:404:d5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Tue, 9 Nov 2021 01:08:10 +0000 Received: from TYCPR01MB6544.jpnprd01.prod.outlook.com ([fe80::35a5:c639:9f43:ee9]) by TYCPR01MB6544.jpnprd01.prod.outlook.com ([fe80::35a5:c639:9f43:ee9%8]) with mapi id 15.20.4669.016; Tue, 9 Nov 2021 01:08:10 +0000 From: "xuyang2018.jy@fujitsu.com" To: Lukas Czerner CC: "Darrick J. Wong" , "fstests@vger.kernel.org" , "linux-ext4@vger.kernel.org" , "tytso@mit.edu" , "guan@eryu.me" Subject: Re: [PATCH v5] ext4: add test for all ext4/ext3/ext2 mount options Thread-Topic: [PATCH v5] ext4: add test for all ext4/ext3/ext2 mount options Thread-Index: AQHX0WZK3XiKGrOOlU6i65bTTNBAOKvznLmAgAAEDYCAAHl/AIAFRiCAgAEJdoA= Date: Tue, 9 Nov 2021 01:08:10 +0000 Message-ID: <6189CA17.60706@fujitsu.com> References: <20211102105911.5790-1-lczerner@redhat.com> <20211104102450.22965-1-lczerner@redhat.com> <20211104171653.GY24282@magnolia> <20211104173123.2k3iyhxiy3s6473o@work> <61847ED6.3000703@fujitsu.com> <20211108091831.tguxwthbqlqwjlt7@work> In-Reply-To: <20211108091831.tguxwthbqlqwjlt7@work> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d1f1379c-a153-4305-cb90-08d9a31d65f5 x-ms-traffictypediagnostic: TY2PR01MB3465: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: R/RwIEDLgTWGpy/wXhrgTSWjTOnrPK9Vjwdk4p7zvORF1yKNM8j3K4h3F6Jn6bCBU7E9J8bbtGFsFZXtsCEaCZq/JZUj0CxckhodtMs0KnC4eY3o92rh8tEFTujQiWlXo2sTfRKgRvC4DdJvIgVJL4yZbJA+9mE1EAN2aURZK0HTAgeyoxg8TQtkS8/7Sdj7ySJx3eBcut+/i9RvC6pJifjvF+ji+ghcwV4PmDSXJ8uUXv0SMSwhb2ET+ymfpzQyb+uEtNuGaaLpeWHrz5wE78y7xczjiuQU1oWJdNg4Z0uUFEe2hVcXjY1pdXF1lOYh3U5wBSFu+tzBXj0/6hJi/c/jnEErGmgebSsOpSJ8ouYNGxlJi8cADAc2Ohb7wWsu221D5GJKxtVAKfvwt4XqK1jqZ3K3+HhCcZYuL3tprv48rYllvRm4pKCrrhJWeoTdMxJkzOMRMvXX/uh+JsLLjY3beEPdf12uosB0J0lwGstZi/AXbL4SoqDJKOyf5M3yi04htUsRJIx8A4bOeerAAJzzoCzqFUGCVqNoCHZj8jJm2cYRtJstC3Xj5ZAuB6btpWuju/p+al8mIeUDp6kmbzy0UkN4dSTRhTekkd9YKR6W759ROYdh0Uk37mZ6oVjUtK882I5HnVWhBSXEQlthhb1/NALhNB8r0nm2dMX+05uUFYW3H6+VsVhcbEiHsKE1Kr01T11KHyl9INAAL9YDv7/J2cEDzWvAOwPrKtleaHAotjXKHa3xB8ag3k4TnugqmXOZwRFsWVKpVbpYrywJI4CJqHFZaPyazKJztcD+q/o+I2ONpIVtm9M2Yh85BWVKesgl5+gHUlLqgZ7k1ZXl5Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB6544.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(33656002)(2906002)(66446008)(66476007)(82960400001)(8936002)(6512007)(30864003)(6506007)(316002)(2616005)(508600001)(64756008)(66946007)(6486002)(38070700005)(76116006)(91956017)(54906003)(4326008)(36756003)(66556008)(6916009)(38100700002)(83380400001)(71200400001)(26005)(186003)(122000001)(85182001)(8676002)(5660300002)(86362001)(590914001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?OFNNUmk3dzJDbnAwZVhITXlDT25RSWxIVnZmTUxzTHloVE1lN1M4QWZ0TzU4?= =?gb2312?B?K201cWJDQTdEMGhxVWZOMTdXWXZhcXB0WWUrRE1Ic3hsYzkwSWE0L2dUK29h?= =?gb2312?B?SnhhVHp6MWlNNW8wNmJUeXdGVUZDcXlUcDdscFZ0SEkyWXFMZnFoMHBJKy9C?= =?gb2312?B?Q3FyczVSWEhIN0ZLOUVXK0FKS2EvYTNsRkNjbkY3aWxYNCtzME16WTU5bDc0?= =?gb2312?B?SWdmaXlORDdiTld2bEJsR2F3cnk0dnh4MGZCVk9QN0NTaUFpRnRwME5aU1Fp?= =?gb2312?B?M0VYQ1gzRFB1NDUrZFJqK2NhVzR3aUd4S1gxV29xbkNSdldjSFk4N3pqbmts?= =?gb2312?B?UnJYNHdjU1JoK1JYTE5FWVhPSXFEZkxuUXdmSXBlWXI4THdIMEpqMDhJUzJJ?= =?gb2312?B?UHhMdFNTWGdlQWxKdGdTOG9WOUszRWNGaHdYZUxSYXRmSXlFRngzYk9DWXMr?= =?gb2312?B?RHJ2TzlmWVllOXRCY3diWERWT2dMOGdLanRXL05wbkxLWXZUUUFrUEJ2QXp6?= =?gb2312?B?YUtwbllWS21CVzdLcHpjdHRkSHRuWmxIRjN5WHQyNGgyQW1TWUZTUGJjYk5W?= =?gb2312?B?QXZvTDRHcFpPTmx2ckxlcm9nNWhLVHVuRFBVenRVMTloZnVUbWRNRXBFTWFr?= =?gb2312?B?bndzSVBlMHhTQ0EwSHVLVEkyKzdMLzhFZ2FGdWZ2aUpIVnMwWlF3ZDVJUng3?= =?gb2312?B?d082eURWU21iblZET1dkVno3Q3NqQ2ljbmhXMGZmWnRqbkJIb3pLQ21GbWNG?= =?gb2312?B?QXhjbk9peE5TMHQ4dCtORFFhWVo4UkRCc01rYXE2ZmU5bVNocVdSN2NBZ0ZZ?= =?gb2312?B?YlJzSk50YTVkNC9rS3BhSlBQQTJBUkV0WG12QUs5Qkk3RHd4ZUFOa2I4dUI5?= =?gb2312?B?WFZ6bkNmTlF1MllCazFGa0RhSk0zSlEzZWlubVFtV1B0a2dOdnZ0dUd4RXFm?= =?gb2312?B?SFNhNFIyajk1K2htTW0wcGdIM1ZRNms1RGp5YWdjSXhJd2RXQWdPbElFclpR?= =?gb2312?B?SEhvcEhjZ253VjhFZHJJZ09ML0wvSVJPRjV1eGZnTi9qNnZrUUgvL2RzdFhq?= =?gb2312?B?Z1NkYkJnbkVqZlBJN2xuU2pXSmMxYkVWdDRTdGJ1RENTRjNZR3VmR2c5VEVT?= =?gb2312?B?NkpWUmdxTlZGL0d2STBPRW1YaFpEd2RnVklOdWVIUU5SSXVpaThDSlpCS3Fy?= =?gb2312?B?T0NnazZRQzhLQUppOEJFQVVXWVFOVUZzWi9rU25EM2JPS3ozencyeDFxWFJr?= =?gb2312?B?aWRqb2J5Ni9FZWN1bVBMZTFVa0V6Y0JIVC9FbFB3d1dNZHh2aGdlT1FjdXZo?= =?gb2312?B?N3NlNnRseGtINE9RQjdzSFFXWVBhNGJ4UXF6OGFzK0crS29HTmZtdy9aWUgy?= =?gb2312?B?MTFLQnFmaDdxT3FxVFo1Q2thVEIwYkwyQ0RiWjJWdlMzbVZwS25pRkhsNllN?= =?gb2312?B?Yk5uWFZoc2pzSFFGM1lkZE9KN2RnbHNtRDlpUlRvT1grQXFoL2dveVIxbnMz?= =?gb2312?B?YVo2S3hLcDRSN25zWjdaOU05VE1nNjRUeXZoQm9NRSt5UWtadXdyTWdpWDVJ?= =?gb2312?B?d1lwdjZiQ2VvNkhkc1cxQWptR1BiSmNMNnlqSDc3cjJQU0VOeERmd0Q3ay91?= =?gb2312?B?a0x4NWttMDJXTS81Rmxqbm1LQnloTHJVZkwzZzZCcFhiOWw1NEwzbTdaRTJl?= =?gb2312?B?OVgyTktwcGVTL2pKWkh2WWxIV1czOWlQVHRzZGFoNmt2b1U0bWZDNjZaaEVD?= =?gb2312?B?SWRSSE9OU0RXRk9WV0JTWjJnSlRlMDN1Tjk1WWhhek9pU0hienMvR294ZkJX?= =?gb2312?B?WUpDQUtxcGpuV3BReVkrYVZibXlWME0yQ0EwaXJ0NHFKT291L1QxRWNlUlh4?= =?gb2312?B?cjhVOWZoOXBHQjY4RWl5N0tOckoyZ0VlYkRMOXBuUFhGSmtaalZFMlJoMWFP?= =?gb2312?B?N0NSWlFadWExUkVhWkZFeG5iY1VxOGMxRDQ3dVQyQ0hZYzN3N3lwY1NiMGFE?= =?gb2312?B?b1ltRWxBSm1yQ2lKNFlJQ1VmNWpzcmlxTXp6VlgwSnRybVVPSjVmWFcrZnR3?= =?gb2312?B?ejdZbnFNYWxqY0JCaCtUbytUT3FCZmlLNHB3WFVZRnQzenVYTGJPUEY2UUJj?= =?gb2312?B?S1YrWFJtVU8yTGdNY3NKTGNlWUNKd0xWK2pYQjc4UHdSdkhiU3l1SXhZQW9O?= =?gb2312?B?cUUybk00dUZURnVld3JZcXFDNHQ3Z2dUTEE2T1hTQjc3SXppS1VWUGtwc1cy?= =?gb2312?Q?rFcm4MiBIXUA0jWoQTklxvmc37XCqld/xlD7JUA7CM=3D?= Content-Type: text/plain; charset="gb2312" Content-ID: <6284A0245A923C4F8D9A3B3BA2738E6D@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB6544.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1f1379c-a153-4305-cb90-08d9a31d65f5 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2021 01:08:10.8059 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xSA11mvAdkSIW9332J4ZeeMfMFA4QNotFiQ87Kh4N7f96Y296xo+e2FwT/p15jSbjHSlpaH6sPmghlrp4oST298nNRj2IzKwvCVwJs371AY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR01MB3465 Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org b24gMjAyMS8xMS84IDE3OjE4LCBMdWthcyBDemVybmVyIHdyb3RlOg0KPiBPbiBGcmksIE5vdiAw NSwgMjAyMSBhdCAxMjo0NTo1M0FNICswMDAwLCB4dXlhbmcyMDE4Lmp5QGZ1aml0c3UuY29tIHdy b3RlOg0KPj4gb24gMjAyMS8xMS81IDE6MzEsIEx1a2FzIEN6ZXJuZXIgd3JvdGU6DQo+Pj4gT24g VGh1LCBOb3YgMDQsIDIwMjEgYXQgMTA6MTY6NTNBTSAtMDcwMCwgRGFycmljayBKLiBXb25nIHdy b3RlOg0KPj4+PiBPbiBUaHUsIE5vdiAwNCwgMjAyMSBhdCAxMToyNDo1MEFNICswMTAwLCBMdWth cyBDemVybmVyIHdyb3RlOg0KPj4+Pj4gQWRkIHRlc3QgdG8gdmFsaWRhdGUgdGhhdCBhbGwgdGhl IGV4dDQsIGV4dDMgYW5kIGV4dDIgYXJlIHByb3Blcmx5DQo+Pj4+PiByZWNvZ25pemVkLCB2YWxp ZGF0ZSBhbmQgYXBwbGllZCB0byBhdm9pZCByZWdyZXNzaW9ucyBhcyBleHQ0IG1vdmVzIHRvDQo+ Pj4+PiB0aGUgbmV3IG1vdW50IEFQSS4NCj4+Pj4+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMdWth cyBDemVybmVyPGxjemVybmVyQHJlZGhhdC5jb20+DQo+Pj4+PiAtLS0NCj4+Pj4+IFYyOiBNb3Zl IG1pbmltdW0ga2VybmVsIHZlcnNpb24gcmVxdWlyZW1lbnQgdXAgdG8gNS4xMg0KPj4+Pj4gICAg ICAgUmV3cml0ZSBrZXJuZWxfZ3RlKCkgdG8gd29yayBjb3JyZWN0bHkNCj4+Pj4+IFYzOiBSZW5h bWUgZnVuY3Rpb25zIHRvIG5vdCBzdGFydCB3aXRoIF8NCj4+Pj4+IFY0OiBDaGVjayBrZXJuZWwg Y29uZmlnIGZpbGUgdG8gbWFrZSBzdXJlIHRoZSB0ZXN0IHdvcmtzIHdpdGgNCj4+Pj4+ICAgICAg IHZhcmlvdXMga2VybmVsIGNvbmZpZ3VyYXRpb24NCj4+Pj4+IFY1OiBDaGVjayAvcHJvYy9jb25m aWcuZ3ogZm9yIGtlcm5lbCBjb25maWcgbG9jYXRpb24gZmlyc3QNCj4+Pj4+DQo+Pj4+PiAgICB0 ZXN0cy9leHQ0LzA1MyAgICAgfCA2NTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrDQo+Pj4+PiAgICB0ZXN0cy9leHQ0LzA1My5vdXQgfCAgIDIgKw0KPj4+Pj4g ICAgMiBmaWxlcyBjaGFuZ2VkLCA2NTIgaW5zZXJ0aW9ucygrKQ0KPj4+Pj4gICAgY3JlYXRlIG1v ZGUgMTAwNzU1IHRlc3RzL2V4dDQvMDUzDQo+Pj4+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVz dHMvZXh0NC8wNTMub3V0DQo+Pj4+Pg0KPj4+Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dDQvMDUz IGIvdGVzdHMvZXh0NC8wNTMNCj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNzU1DQo+Pj4+PiBpbmRl eCAwMDAwMDAwMC4uYzQ0NDc2MjMNCj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsrKyBiL3Rl c3RzL2V4dDQvMDUzDQo+Pj4+PiBAQCAtMCwwICsxLDY1MCBAQA0KPj4+Pj4gKyMhIC9iaW4vYmFz aA0KPj4+Pj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4+Pj4+ICsjIENv cHlyaWdodCAoYykgMjAyMVJlZCBIYXQsIEluYy4sIEx1a2FzIEN6ZXJuZXI8bGN6ZXJuZXJAcmVk aGF0LmNvbT4uDQo+Pj4+PiArIw0KPj4+Pj4gKyMgRlMgUUEgVGVzdCAwNTMNCj4+Pj4+ICsjDQo+ Pj4+PiArIyBTYW5pdHkgY2hlY2sgb2YgZXh0NCBtb3VudCBvcHRpb25zDQo+Pj4+PiArIw0KPj4+ Pj4gKy4gLi9jb21tb24vcHJlYW1ibGUNCj4+Pj4+ICtfYmVnaW5fZnN0ZXN0IGF1dG8gbW91bnQN Cj4+Pj4+ICsNCj4+Pj4+ICtzZXE9YGJhc2VuYW1lICQwYA0KPj4+Pj4gK3NlcXJlcz0kUkVTVUxU X0RJUi8kc2VxDQo+Pj4+PiArDQo+Pj4+PiAraGVyZT1gcHdkYA0KPj4+Pj4gK3RtcD0vdG1wLyQk DQo+Pj4+PiArc3RhdHVzPTEJIyBmYWlsdXJlIGlzIHRoZSBkZWZhdWx0IQ0KPj4+Pj4gK3RyYXAg Il9jbGVhbnVwOyBleGl0IFwkc3RhdHVzIiAwIDEgMiAzIDE1DQo+Pj4+PiArDQo+Pj4+PiArX2Ns ZWFudXAoKQ0KPj4+Pj4gK3sNCj4+Pj4+ICsJY2QgLw0KPj4+Pj4gKwkkVU1PVU5UX1BST0cgJFND UkFUQ0hfTU5UPiAgIC9kZXYvbnVsbCAyPiYxDQo+Pj4+PiArCWlmIFsgLW4gIiRMT09QX0xPR0RF ViIgXTt0aGVuDQo+Pj4+PiArCQlfZGVzdHJveV9sb29wX2RldmljZSAkTE9PUF9MT0dERVYgMj4v ZGV2L251bGwNCj4+Pj4+ICsJZmkNCj4+Pj4+ICsJcm0gLWYgJHRtcC4qDQo+Pj4+PiArfQ0KPj4+ Pj4gKw0KPj4+Pj4gK19oYXNfa2VybmVsX2NvbmZpZygpDQo+Pj4+PiArew0KPj4+Pj4gKwlvcHRp b249JDENCj4+Pj4+ICsJY29uZmlnPSIvcHJvYy9jb25maWcuZ3oiDQo+Pj4+PiArCWlmIFsgLWYg JGNvbmZpZyBdOyB0aGVuDQo+Pj4+PiArCQlnemlwIC1jZCAkY29uZmlnIHwgZ3JlcCAtcUUgIl4k e29wdGlvbn09W215XSINCj4+Pj4+ICsJCXJldHVybg0KPj4+Pj4gKwlmaQ0KPj4+Pj4gKwljb25m aWc9Ii9saWIvbW9kdWxlcy8kKHVuYW1lIC1yKS9idWlsZC8uY29uZmlnIg0KPj4+Pj4gKwlncmVw IC1xRSAiXiR7b3B0aW9ufT1bbXldIiAkY29uZmlnDQo+Pj4+DQo+Pj4+IFRoaXMgcHJvYmFibHkg b3VnaHQgdG8gY2hlY2sgL2Jvb3QvY29uZmlnLSQodW5hbWUgLXIpIGFsc28sIHNpbmNlIHRoYXQN Cj4+Pj4gZmlsZSBzZWVtcyB0byBleGlzdCBvbiBSSCBhbmQgRGViaWFuLg0KPj4+DQo+Pj4gSSB3 YXMgdGhpbmtpbmcgYWJvdXQgaXQsIGJ1dCBhdCBsZWFzdCBvbiBSSCB0aGUgY29uZmlnIGlzIGlu DQo+Pj4gL2xpYi9tb2R1bGVzLy4uLiB3aGljaCB3ZSBhbHJlYWR5IGNoZWNrIGFuZCBmb3IgY3Vz dG9tIGtlcm5lbHMNCj4+PiAvYm9vdC9jb25maWctJCh1bmFtZSAtcikgZG9lcyBub3QgZXhpc3Qu IFNvIGl0IHNlZW1zIHJlZHVuZGFudCwgYnV0IG9uDQo+Pj4gdGhlIG90aGVyIGhhbmQgaXQgY2Fu J3QgaHVydCBlaXRoZXIuDQo+Pj4NCj4+IERvbid0IG1ha2Ugd2hlZWxzIHJlcGVhdGVkbHkuIExU UCBoYXMgc2xvdXRpb25zIGZvciB0aGlzLiBZb3UgY2FuIHJlZmVyDQo+PiB0byBpdC4NCj4+IFsx XWh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC10ZXN0LXByb2plY3QvbHRwL2Jsb2IvbWFzdGVyL2xp Yi90c3Rfa2NvbmZpZy5jI0wxOA0KPg0KPiBUaGFua3MgZm9yIHRoZSB0aXAuIEhvd2V2ZXIgaXQg aXMgbWlzc2luZyB0aGUgbG9jYXRpb24gdGhhdCB3b3JrcyBtb3N0DQo+IHJlbGlhYmx5IG9uIHRo ZSBzeXN0ZW1zIEkgdHJpZWQgcmVjZW50bHkgYW5kIHRoYXQgaXMNCj4gL2xpYi9tb2R1bGVzLyQo dW5hbWUgLXIpL2J1aWxkLy5jb25maWcNCj4NCj4gTW9zdCBvZiBteSBzeXN0ZW1zIGRvbid0IGhh dmUgYW55dGhpbmcgZWxzZSBmb3IgdGhlIGN1c3RvbSBrZXJuZWxzIEkgYW0NCj4gdGVzdGluZy4N Cg0KR29vZCBzdWdnZXN0aW9uLiBJIHdpbGwgYWRkIHRoaXMgcGF0aCB0byBsdHAuIEJlZm9yZSB0 aGlzLCBmb3IgbXlzZWxmIA0KYnVpbGQgbGludXgga2VybmVsLCBJIHVzdWFsbHkgdXNlIEtDT05G SUdfUEFUSCBlbnYuDQoNCkJlc3QgUmVnYXJkcw0KWWFuZyBYdQ0KPg0KPiBBbnl3YXkgSSBhbSBn b2luZyB0byBtb2RlbCBpdCBhZnRlciB0aGF0IGFuZCBtb3ZlIHRoZSBoZWxwZXJzIHRvDQo+IGNv bW1vbi9yYy4NCj4NCj4gVGhhbmtzIQ0KPiAtTHVrYXMNCj4NCj4+DQo+PiBCZXN0IFJlZ2FyZHMN Cj4+IFlhbmcgWHUNCj4+Pj4NCj4+Pj4gKFRoZSByZXN0IG9mIHRoZSBsb2dpYyBsb29rcyByZWFz b25hYmxlLCBidXQgSSd2ZSBiZWVuIGF3YXkgZnJvbSBleHQ0DQo+Pj4+IGZvciBzbyBsb25nIHRo YXQgSSBkb24ndCByZWFsbHkgaGF2ZSBlbm91Z2ggb2YgYSBjbHVlIGFueW1vcmUuLi4gOiggKQ0K Pj4+DQo+Pj4gVGhhbmtzIQ0KPj4+IC1MdWthcw0KPj4+DQo+Pj4+DQo+Pj4+IC0tRA0KPj4+Pg0K Pj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICtfcmVxdWlyZV9rZXJuZWxfY29uZmlnKCkNCj4+Pj4+ ICt7DQo+Pj4+PiArCV9oYXNfa2VybmVsX2NvbmZpZyAkMSB8fCBfbm90cnVuICJJbnN0YWxsZWQg a2VybmVsIG5vdCBidWlsdCB3aXRoICQxIg0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICsjIGdl dCBzdGFuZGFyZCBlbnZpcm9ubWVudCwgZmlsdGVycyBhbmQgY2hlY2tzDQo+Pj4+PiArLiAuL2Nv bW1vbi9yYw0KPj4+Pj4gKy4gLi9jb21tb24vZmlsdGVyDQo+Pj4+PiArLiAuL2NvbW1vbi9xdW90 YQ0KPj4+Pj4gKw0KPj4+Pj4gKyMgcmVtb3ZlIHByZXZpb3VzICRzZXFyZXMuZnVsbCBiZWZvcmUg dGVzdA0KPj4+Pj4gK3JtIC1mICRzZXFyZXMuZnVsbA0KPj4+Pj4gKw0KPj4+Pj4gK2VjaG8gIlNp bGVuY2UgaXMgZ29sZGVuLiINCj4+Pj4+ICsNCj4+Pj4+ICtTSVpFPSQoKDEwMjQgKiAxMDI0KSkJ IyAxR0IgaW4gS0INCj4+Pj4+ICtMT0dTSVpFPSQoKDEwICoxMDI0KSkJIyAxME1CIGluIEtCDQo+ Pj4+PiArDQo+Pj4+PiArX3N1cHBvcnRlZF9mcyBleHQyIGV4dDMgZXh0NA0KPj4+Pj4gK19yZXF1 aXJlX3NjcmF0Y2hfc2l6ZSAkU0laRQ0KPj4+Pj4gK19yZXF1aXJlX3F1b3RhDQo+Pj4+PiArX3Jl cXVpcmVfbG9vcA0KPj4+Pj4gK19yZXF1aXJlX2NvbW1hbmQgIiRUVU5FMkZTX1BST0ciIHR1bmUy ZnMNCj4+Pj4+ICtNS0UyRlNfUFJPRz0kKHR5cGUgLVAgbWtlMmZzKQ0KPj4+Pj4gK19yZXF1aXJl X2NvbW1hbmQgIiRNS0UyRlNfUFJPRyIgbWtlMmZzDQo+Pj4+PiArX3JlcXVpcmVfa2VybmVsX2Nv bmZpZyBDT05GSUdfUUZNVF9WMg0KPj4+Pj4gKw0KPj4+Pj4gK0xPRz0iIg0KPj4+Pj4gK3ByaW50 X2xvZygpIHsNCj4+Pj4+ICsJTE9HPSIkTE9HICRAIg0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ ICtLRVJORUxfVkVSU0lPTj1gdW5hbWUgLXIgfCBjdXQgLWQnLicgLWYxLDJgDQo+Pj4+PiArS0VS TkVMX01BSj0ke0tFUk5FTF9WRVJTSU9OJS4qfQ0KPj4+Pj4gK0tFUk5FTF9NSU49JHtLRVJORUxf VkVSU0lPTiMqLn0NCj4+Pj4+ICsNCj4+Pj4+ICtrZXJuZWxfZ3RlKCkgew0KPj4+Pj4gKwltYWpv cj0kezElLip9DQo+Pj4+PiArCW1pbm9yPSR7MSMqLn0NCj4+Pj4+ICsNCj4+Pj4+ICsJaWYgWyAk S0VSTkVMX01BSiAtZ3QgJG1ham9yIF07IHRoZW4NCj4+Pj4+ICsJCXJldHVybiAwDQo+Pj4+PiAr CWVsaWYgW1sgJEtFUk5FTF9NQUogLWVxICRtYWpvciYmICAgJEtFUk5FTF9NSU4gLWdlICRtaW5v ciBdXTsgdGhlbg0KPj4+Pj4gKwkJcmV0dXJuIDANCj4+Pj4+ICsJZmkNCj4+Pj4+ICsJcmV0dXJu IDENCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArDQo+Pj4+PiArIyBUaGUgYWltIGhlcmUgaXMg dG8ga2VlcCB0aGUgbW91bnQgb3B0aW9ucyBiZWhhdmlvdXIgc3RhYmxlIGdvaW5nIGZvcndhcmQN Cj4+Pj4+ICsjIHNvIHRoZXJlIGlzIG5vdCBtdWNoIHBvaW50IGluIHRlc3Rpbmcgb2xkZXIga2Vy bmVscy4NCj4+Pj4+ICtrZXJuZWxfZ3RlIDUuMTIgfHwgX25vdHJ1biAiVGhpcyB0ZXN0IGlzIG9u bHkgcmVsZXZhbnQgZm9yIGtlcm5lbCB2ZXJzaW9ucyA1LjEyIGFuZCBoaWdoZXIiDQo+Pj4+PiAr DQo+Pj4+PiArSUdOT1JFRD0icmVtb3VudCxkZWZhdWx0cyxpZ25vcmVkLHJlbW92ZWQiDQo+Pj4+ PiArQ0hFQ0tfTUlORk89Imxhenl0aW1lLG5vYXRpbWUsbm9kaXJhdGltZSxub2V4ZWMsbm9zdWlk LHJvIg0KPj4+Pj4gK0VSUj0wDQo+Pj4+PiArDQo+Pj4+PiArdGVzdF9tbnQoKSB7DQo+Pj4+PiAr CWZpbmRtbnQgLW4gJFNDUkFUQ0hfREVWPiAgIC9kZXYvbnVsbCAyPiYxDQo+Pj4+PiArCVsgJD8g LW5lIDAgXSYmICAgcmV0dXJuICQ/DQo+Pj4+PiArDQo+Pj4+PiArCWlmIFsgJCMgLWVxIDEgXTsg dGhlbg0KPj4+Pj4gKwkJT1BUUz0kMQ0KPj4+Pj4gKwllbGlmIFsgJCMgLWVxIDIgXTsgdGhlbg0K Pj4+Pj4gKwkJT1BUUz0kMg0KPj4+Pj4gKwllbHNlDQo+Pj4+PiArCQlyZXR1cm4gMA0KPj4+Pj4g KwlmaQ0KPj4+Pj4gKw0KPj4+Pj4gKwlwcmludF9sb2cgImNoZWNraW5nIFwiJE9QVFNcIiAiDQo+ Pj4+PiArCSMgdGVzdCBvcHRpb25zIGluIC9wcm9jL2ZzL2V4dDQvZGV2L29wdGlvbnMNCj4+Pj4+ ICsJKA0KPj4+Pj4gKwlyZXQ9MA0KPj4+Pj4gKwlJRlM9JywnDQo+Pj4+PiArCWZvciBvcHRpb24g aW4gJE9QVFM7IGRvDQo+Pj4+PiArCQlpZiBlY2hvICRJR05PUkVEIHwgZ3JlcCAtdyAkb3B0aW9u OyB0aGVuDQo+Pj4+PiArCQkJY29udGludWUNCj4+Pj4+ICsJCWZpDQo+Pj4+PiArDQo+Pj4+PiAr CQlbICRvcHRpb24gPSAibm9sb2FkIiBdJiYgICBvcHRpb249Im5vcmVjb3ZlcnkiDQo+Pj4+PiAr DQo+Pj4+PiArCQlpZiBbWyAkb3B0aW9uID0gXiogXV07IHRoZW4NCj4+Pj4+ICsJCQlleHBlY3Rl ZD0xDQo+Pj4+PiArCQllbHNlDQo+Pj4+PiArCQkJZXhwZWN0ZWQ9MA0KPj4+Pj4gKwkJZmkNCj4+ Pj4+ICsJCW9wdGlvbj0ke29wdGlvbiNefQ0KPj4+Pj4gKw0KPj4+Pj4gKwkJaWYgZWNobyAkQ0hF Q0tfTUlORk8gfCBncmVwIC13ICRvcHRpb247IHRoZW4NCj4+Pj4+ICsJCQlmaW5kbW50IC1uIC1v IE9QVElPTlMgJFNDUkFUQ0hfREVWIHwgZ3JlcCAkb3B0aW9uDQo+Pj4+PiArCQkJcmV0PSQ/DQo+ Pj4+PiArCQllbHNlDQo+Pj4+PiArCQkJZ3JlcCAkb3B0aW9uIC9wcm9jL2ZzL2V4dDQvJChfc2hv cnRfZGV2ICRTQ1JBVENIX0RFVikvb3B0aW9ucw0KPj4+Pj4gKwkJCXJldD0kPw0KPj4+Pj4gKwkJ ZmkNCj4+Pj4+ICsNCj4+Pj4+ICsJCWlmIFsgJHJldCAtbmUgJGV4cGVjdGVkIF07IHRoZW4NCj4+ Pj4+ICsJCQlleGl0IDENCj4+Pj4+ICsJCWZpDQo+Pj4+PiArCWRvbmUNCj4+Pj4+ICsJKT4gICAv ZGV2L251bGwgMj4mMQ0KPj4+Pj4gKwlyZXR1cm4gJD8NCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+ PiArZmFpbCgpIHsNCj4+Pj4+ICsJcHJpbnRfbG9nICIgICBGQUlMRUQiDQo+Pj4+PiArCUVSUj0k KChFUlIrMSkpDQo+Pj4+PiArCWVjaG8gJExPRyB8IHRlZSAtYSAkc2VxcmVzLmZ1bGwNCj4+Pj4+ ICsJTE9HPSIiDQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK29rKCkgew0KPj4+Pj4gKwlwcmlu dF9sb2cgIiAgIE9LIg0KPj4+Pj4gKwllY2hvICRMT0c+PiAgICRzZXFyZXMuZnVsbA0KPj4+Pj4g KwlMT0c9IiINCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArc2ltcGxlX21vdW50KCkgew0KPj4+ Pj4gKwlfbW91bnQgJCo+PiAgICRzZXFyZXMuZnVsbCAyPiYxDQo+Pj4+PiArfQ0KPj4+Pj4gKw0K Pj4+Pj4gKyMgJDEgLSBjYW4gaG9sZCAtbiBvcHRpb24sIGlmIGl0IGRvZXMgYXJndW1ldG5zIGFy ZSBzaGlmdGVkDQo+Pj4+PiArIyAkMSAtIG9wdGlvbnMgdG8gdGVzdA0KPj4+Pj4gKyMgJDIgLSBp ZiBwcm92aWRlZCBpdCdzIHRoZSBvcHRpb24gc3RyaW5nIHRvIGNoZWNrIGZvcg0KPj4+Pj4gK2Rv X21udCgpIHsNCj4+Pj4+ICsJZGV2aWNlPSRTQ1JBVENIX0RFVg0KPj4+Pj4gKwkjIElmIC1uIGFy Z3VtZW50IGlzIHByb3ZpZGVkIGRvIG5vdCBzcGVjaWZ5ICRTQ1JBVENIX0RFVg0KPj4+Pj4gKwkj IHVzZWZ1bGwgZm9yIHJlbW91bnQNCj4+Pj4+ICsJaWYgWyAiJDEiID09ICItbiIgXTsgdGhlbg0K Pj4+Pj4gKwkJdW5zZXQgZGV2aWNlDQo+Pj4+PiArCQlzaGlmdA0KPj4+Pj4gKwlmaQ0KPj4+Pj4g Kw0KPj4+Pj4gKwlpZiBbIC16ICIkMSIgXTsgdGhlbg0KPj4+Pj4gKwkJc2ltcGxlX21vdW50ICRk ZXZpY2UgJFNDUkFUQ0hfTU5UDQo+Pj4+PiArCQlyZXQ9JD8NCj4+Pj4+ICsJZWxzZQ0KPj4+Pj4g KwkJc2ltcGxlX21vdW50IC1vICQxICRkZXZpY2UgJFNDUkFUQ0hfTU5UDQo+Pj4+PiArCQlyZXQ9 JD8NCj4+Pj4+ICsJZmkNCj4+Pj4+ICsJaWYgWyAkcmV0IC1lcSAwIF07IHRoZW4NCj4+Pj4+ICsJ CXRlc3RfbW50ICQxICQyDQo+Pj4+PiArCQlyZXQ9JD8NCj4+Pj4+ICsJCVsgJHJldCAtbmUgMCBd JiYgICBwcmludF9sb2cgIihub3QgZm91bmQpIg0KPj4+Pj4gKwllbHNlDQo+Pj4+PiArCQlwcmlu dF9sb2cgIihmYWlsZWQgbW91bnQpIg0KPj4+Pj4gKwlmaQ0KPj4+Pj4gKw0KPj4+Pj4gKwlyZXR1 cm4gJHJldA0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICtub3RfbW50KCkgew0KPj4+Pj4gKwkj IFdlIGRvbid0IG5lZWQgLXQgbm90IG5vdF8gdmFyaWFudA0KPj4+Pj4gKwlpZiBbICIkMSIgPT0g Ii10IiBdOyB0aGVuDQo+Pj4+PiArCQlzaGlmdA0KPj4+Pj4gKwlmaQ0KPj4+Pj4gKw0KPj4+Pj4g KwlwcmludF9sb2cgIlNIT1VMRCBGQUlMIG1vdW50aW5nICRmc3R5cGUgXCIkMVwiICINCj4+Pj4+ ICsJZG9fbW50ICRADQo+Pj4+PiArCWlmIFsgJD8gLWVxIDAgXTsgdGhlbg0KPj4+Pj4gKwkJZmFp bA0KPj4+Pj4gKwllbHNlDQo+Pj4+PiArCQlvaw0KPj4+Pj4gKwlmaQ0KPj4+Pj4gKwkkVU1PVU5U X1BST0cgJFNDUkFUQ0hfTU5UIDI+ICAgL2Rldi9udWxsDQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+ Pj4gK21udF9vbmx5KCkgew0KPj4+Pj4gKwlwcmludF9sb2cgIm1vdW50aW5nICRmc3R5cGUgXCIk MVwiICINCj4+Pj4+ICsJZG9fbW50ICRADQo+Pj4+PiArCWlmIFsgJD8gLW5lIDAgXTsgdGhlbg0K Pj4+Pj4gKwkJZmFpbA0KPj4+Pj4gKwllbHNlDQo+Pj4+PiArCQlvaw0KPj4+Pj4gKwlmaQ0KPj4+ Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICttbnQoKSB7DQo+Pj4+PiArCSMgRG8gd2UgbmVlZCB0byBy dW4gdGhlIHR1bmUyZnMgbW91bnQgb3B0aW9uIHRlc3QgPw0KPj4+Pj4gKwl0MmZzPTANCj4+Pj4+ ICsJaWYgWyAiJDEiID09ICItdCIgXTsgdGhlbg0KPj4+Pj4gKwkJdDJmcz0xDQo+Pj4+PiArCQlz aGlmdA0KPj4+Pj4gKwlmaQ0KPj4+Pj4gKw0KPj4+Pj4gKwltbnRfb25seSAkKg0KPj4+Pj4gKwkk VU1PVU5UX1BST0cgJFNDUkFUQ0hfTU5UIDI+ICAgL2Rldi9udWxsDQo+Pj4+PiArDQo+Pj4+PiAr CVsgIiR0MmZzIiAtZXEgMCBdJiYgICByZXR1cm4NCj4+Pj4+ICsNCj4+Pj4+ICsJb3Bfc2V0PSQx DQo+Pj4+PiArCWlmIFsgJCMgLWVxIDEgXTsgdGhlbg0KPj4+Pj4gKwkJY2hlY2s9JDENCj4+Pj4+ ICsJZWxpZiBbICQjIC1lcSAyIF07IHRoZW4NCj4+Pj4+ICsJCWNoZWNrPSQyDQo+Pj4+PiArCWVs c2UNCj4+Pj4+ICsJCXJldHVybiAwDQo+Pj4+PiArCWZpDQo+Pj4+PiArDQo+Pj4+PiArCSMgc29t ZSBvcHRpb25zIG5lZWQgdHJhbnNsYXRpb24gZm9yIHR1bmUyZnMNCj4+Pj4+ICsJb3Bfc2V0PSQo ZWNobyAkb3Bfc2V0IHwgc2VkIC1lICdzL2RhdGE9am91cm5hbC9qb3VybmFsX2RhdGEvJyBcDQo+ Pj4+PiArCQkJCSAgICAtZSAncy9kYXRhPW9yZGVyZWQvam91cm5hbF9kYXRhX29yZGVyZWQvJyBc DQo+Pj4+PiArCQkJCSAgICAtZSAncy9kYXRhPXdyaXRlYmFjay9qb3VybmFsX2RhdGFfd3JpdGVi YWNrLycpDQo+Pj4+PiArCSRUVU5FMkZTX1BST0cgLW8gJG9wX3NldCAkU0NSQVRDSF9ERVY+ICAg L2Rldi9udWxsIDI+JjENCj4+Pj4+ICsJbW50X29ubHkgImRlZmF1bHRzIiAkY2hlY2sNCj4+Pj4+ ICsJJFVNT1VOVF9QUk9HICRTQ1JBVENIX01OVCAyPiAgIC9kZXYvbnVsbA0KPj4+Pj4gKwlpZiBb ICIkb3Bfc2V0IiA9IF4qIF07IHRoZW4NCj4+Pj4+ICsJCW9wX3NldD0ke29wX3NldCNefQ0KPj4+ Pj4gKwllbHNlDQo+Pj4+PiArCQlvcF9zZXQ9Il4ke29wX3NldH0iDQo+Pj4+PiArCWZpDQo+Pj4+ PiArCSRUVU5FMkZTX1BST0cgLW8gJG9wX3NldCAkU0NSQVRDSF9ERVY+ICAgL2Rldi9udWxsIDI+ JjENCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArIyAkMSAtIG9wdGlvbnMgdG8gbW91bnQgd2l0 aA0KPj4+Pj4gKyMgJDIgLSBvcHRpb25zIHRvIHJlbW91bnQgd2l0aA0KPj4+Pj4gK3JlbW91bnQo KSB7DQo+Pj4+PiArCSMgRmlyc3QgZG8gdGhpcyBzcGVjaWZ5aW5nIGJvdGggZGV2IGFuZCBtbnQN Cj4+Pj4+ICsJcHJpbnRfbG9nICJtb3VudGluZyAkZnN0eXBlIFwiJDFcIiAiDQo+Pj4+PiArCWRv X21udCAkMQ0KPj4+Pj4gKwlbICQ/IC1uZSAwIF0mJiAgIGZhaWwmJiAgIHJldHVybg0KPj4+Pj4g KwlwcmludF9sb2cgInJlbW91bnRpbmcgXCIkMlwiICINCj4+Pj4+ICsJZG9fbW50IHJlbW91bnQs JDIgJDMNCj4+Pj4+ICsJaWYgWyAkPyAtbmUgMCBdOyB0aGVuDQo+Pj4+PiArCQlmYWlsDQo+Pj4+ PiArCQkkVU1PVU5UX1BST0cgJFNDUkFUQ0hfTU5UIDI+ICAgL2Rldi9udWxsDQo+Pj4+PiArCQly ZXR1cm4NCj4+Pj4+ICsJZWxzZQ0KPj4+Pj4gKwkJb2sNCj4+Pj4+ICsJZmkNCj4+Pj4+ICsJJFVN T1VOVF9QUk9HICRTQ1JBVENIX01OVCAyPiAgIC9kZXYvbnVsbA0KPj4+Pj4gKw0KPj4+Pj4gKwkj IE5vdyBqdXN0IHNwZWNpZnkgbW50DQo+Pj4+PiArCXByaW50X2xvZyAibW91bnRpbmcgJGZzdHlw ZSBcIiQxXCIgIg0KPj4+Pj4gKwlkb19tbnQgJDENCj4+Pj4+ICsJWyAkPyAtbmUgMCBdJiYgICBm YWlsJiYgICByZXR1cm4NCj4+Pj4+ICsJcHJpbnRfbG9nICJyZW1vdW50aW5nIChNTlQgT05MWSkg XCIkMlwiICINCj4+Pj4+ICsJZG9fbW50IC1uIHJlbW91bnQsJDIgJDMNCj4+Pj4+ICsJaWYgWyAk PyAtbmUgMCBdOyB0aGVuDQo+Pj4+PiArCQlmYWlsDQo+Pj4+PiArCWVsc2UNCj4+Pj4+ICsJCW9r DQo+Pj4+PiArCWZpDQo+Pj4+PiArDQo+Pj4+PiArCSRVTU9VTlRfUFJPRyAkU0NSQVRDSF9NTlQg Mj4gICAvZGV2L251bGwNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArIyAkMSAtIG9wdGlvbnMg dG8gbW91bnQgd2l0aCwgb3IgLXIgYXJndW1lbnQNCj4+Pj4+ICsjICQyIC0gb3B0aW9ucyB0byBy ZW1vdW50IHdpdGgNCj4+Pj4+ICtub3RfcmVtb3VudF9ub3Vtb3VudCgpIHsNCj4+Pj4+ICsJcmVt b3VudF9vbmx5PTANCj4+Pj4+ICsJIyBJZiAtciBpcyBzcGVjaWZpZWQgd2UncmUgZ29pbmcgdG8g ZG8gcmVtb3VudCBvbmx5DQo+Pj4+PiArCWlmIFsgIiQxIiA9PSAiLXIiIF07IHRoZW4NCj4+Pj4+ ICsJCXJlbW91bnRfb25seT0xDQo+Pj4+PiArCQkjIERvbnQgbmVlZCBzaGlmdCBzaW5jZSBmaXJz dCBhcmd1bWVudCB3b3VsZA0KPj4+Pj4gKwkJIyBoYXZlIGJlZW4gY29uc3VtZWQgYnkgbW91bnQg YW55d2F5DQo+Pj4+PiArCWZpDQo+Pj4+PiArDQo+Pj4+PiArCWlmIFsgJHJlbW91bnRfb25seSAt ZXEgMCBdOyB0aGVuDQo+Pj4+PiArCQlwcmludF9sb2cgIm1vdW50aW5nICRmc3R5cGUgXCIkMVwi ICINCj4+Pj4+ICsJCWRvX21udCAkMQ0KPj4+Pj4gKwkJWyAkPyAtbmUgMCBdJiYgICBmYWlsJiYg ICByZXR1cm4NCj4+Pj4+ICsJZmkNCj4+Pj4+ICsJcHJpbnRfbG9nICJTSE9VTEQgRkFJTCByZW1v dW50aW5nICRmc3R5cGUgXCIkMlwiICINCj4+Pj4+ICsJZG9fbW50IHJlbW91bnQsJDIgJDMNCj4+ Pj4+ICsJaWYgWyAkPyAtZXEgMCBdOyB0aGVuDQo+Pj4+PiArCQlmYWlsDQo+Pj4+PiArCWVsc2UN Cj4+Pj4+ICsJCW9rDQo+Pj4+PiArCWZpDQo+Pj4+PiArDQo+Pj4+PiArCSMgTm93IGp1c3Qgc3Bl Y2lmeSBtbnQNCj4+Pj4+ICsJcHJpbnRfbG9nICJTSE9VTEQgRkFJTCByZW1vdW50aW5nICRmc3R5 cGUgKE1OVCBPTkxZKSBcIiQyXCIgIg0KPj4+Pj4gKwlkb19tbnQgLW4gcmVtb3VudCwkMiAkMw0K Pj4+Pj4gKwlpZiBbICQ/IC1lcSAwIF07IHRoZW4NCj4+Pj4+ICsJCWZhaWwNCj4+Pj4+ICsJZWxz ZQ0KPj4+Pj4gKwkJb2sNCj4+Pj4+ICsJZmkNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArbm90 X3JlbW91bnQoKSB7DQo+Pj4+PiArCW5vdF9yZW1vdW50X25vdW1vdW50ICQqDQo+Pj4+PiArCSRV TU9VTlRfUFJPRyAkU0NSQVRDSF9NTlQgMj4gICAvZGV2L251bGwNCj4+Pj4+ICt9DQo+Pj4+PiAr DQo+Pj4+PiArDQo+Pj4+PiArZG9fbWtmcygpIHsNCj4+Pj4+ICsJJE1LRTJGU19QUk9HIC1UICRm c3R5cGUgLUZxICQqPj4gICAkc2VxcmVzLmZ1bGwgMj4mMSB8fA0KPj4+Pj4gKwlfZmFpbCAibWtm cyBmYWlsZWQgLSAkTUtGU19FWFQ0X1BST0cgLUZxICQqICRTQ1JBVENIX0RFViINCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArbm90X2V4dDIoKSB7DQo+Pj4+PiArCWlmIFtbICRmc3R5cGUgPT0g ImV4dDIiIF1dOyB0aGVuDQo+Pj4+PiArCQlub3RfJCoNCj4+Pj4+ICsJZWxzZQ0KPj4+Pj4gKwkJ JCoNCj4+Pj4+ICsJZmkNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArb25seV9leHQ0KCkgew0K Pj4+Pj4gKwlpZiBbWyAkZnN0eXBlID09ICJleHQ0IiBdXTsgdGhlbg0KPj4+Pj4gKwkJJCoNCj4+ Pj4+ICsJZWxzZQ0KPj4+Pj4gKwkJbm90XyQqDQo+Pj4+PiArCWZpDQo+Pj4+PiArfQ0KPj4+Pj4g Kw0KPj4+Pj4gKyMgQ3JlYXRlIGxvZ2RldiBmb3IgZXh0ZXJuYWwgam91cm5hbA0KPj4+Pj4gK0xP T1BfSU1HPSR0bXAubG9nZGV2DQo+Pj4+PiArdHJ1bmNhdGUgLXMgJHtMT0dTSVpFfWsgJExPT1Bf SU1HDQo+Pj4+PiArTE9PUF9MT0dERVY9YF9jcmVhdGVfbG9vcF9kZXZpY2UgJExPT1BfSU1HYA0K Pj4+Pj4gK21ham1pbj1gc3RhdCAtYyAiJXQ6JVQiICRMT09QX0xPR0RFVmANCj4+Pj4+ICtMT0dE RVZfREVWTlVNPWBlY2hvICIke21ham1pbiU6Kn0qMl44ICsgJHttYWptaW4jKjp9IiB8IGJjYA0K Pj4+Pj4gKw0KPj4+Pj4gKyMgVGVzdCBhbGwgdGhlIGV4dE4gZmlsZSBzeXN0ZW0gc3VwcG9ydGVk IGJ5IGV4dDQgZHJpdmVyDQo+Pj4+PiArZnN0eXBlPQ0KPj4+Pj4gK2ZvciBmc3R5cGUgaW4gZXh0 MiBleHQzIGV4dDQ7IGRvDQo+Pj4+PiArDQo+Pj4+PiArCSRVTU9VTlRfUFJPRyAkU0NSQVRDSF9N TlQgMj4gICAvZGV2L251bGwNCj4+Pj4+ICsJJFVNT1VOVF9QUk9HICRTQ1JBVENIX0RFViAyPiAg IC9kZXYvbnVsbA0KPj4+Pj4gKw0KPj4+Pj4gKwlkb19ta2ZzICRTQ1JBVENIX0RFViAke1NJWkV9 aw0KPj4+Pj4gKw0KPj4+Pj4gKwkjIGRvIHdlIGhhdmUgZnN0eXBlIHN1cHBvcnQgPw0KPj4+Pj4g Kwlkb19tbnQNCj4+Pj4+ICsJaWYgWyAkPyAtbmUgMCBdOyB0aGVuDQo+Pj4+PiArCQlwcmludF9s b2cgIiRmc3R5cGUgbm90IHN1cHBvcnRlZC4gU2tpcHBpbmcuLi4iDQo+Pj4+PiArCQlvaw0KPj4+ Pj4gKwkJY29udGludWUNCj4+Pj4+ICsJZmkNCj4+Pj4+ICsJaWYgWyAhIC1mIC9wcm9jL2ZzL2V4 dDQvJChfc2hvcnRfZGV2ICRTQ1JBVENIX0RFVikvb3B0aW9ucyBdOyB0aGVuDQo+Pj4+PiArCQlw cmludF9sb2cgIiRmc3R5cGUgbm90IHN1cHBvcnRlZC4gU2tpcHBpbmcuLi4iDQo+Pj4+PiArCQlv aw0KPj4+Pj4gKwkJY29udGludWUNCj4+Pj4+ICsJZmkNCj4+Pj4+ICsNCj4+Pj4+ICsJJFVNT1VO VF9QUk9HICRTQ1JBVENIX01OVCAyPiAgIC9kZXYvbnVsbA0KPj4+Pj4gKw0KPj4+Pj4gKwlub3Rf bW50IGZhaWxtZQ0KPj4+Pj4gKwltbnQNCj4+Pj4+ICsJbW50IGJzZGRmDQo+Pj4+PiArCW1udCBt aW5peGRmDQo+Pj4+PiArCW1udCBncnBpZA0KPj4+Pj4gKwltbnQgLXQgYnNkZ3JvdXBzIGdycGlk DQo+Pj4+PiArCW1udCBub2dycGlkDQo+Pj4+PiArCW1udCBzeXN2Z3JvdXBzIG5vZ3JwaWQNCj4+ Pj4+ICsJbW50IHJlc2dpZD0xMDAxDQo+Pj4+PiArCW1udCByZXN1aWQ9MTAwMQ0KPj4+Pj4gKwlt bnQgc2I9MTMxMDcyDQo+Pj4+PiArCW1udCBlcnJvcnM9Y29udGludWUNCj4+Pj4+ICsJbW50IGVy cm9ycz1wYW5pYw0KPj4+Pj4gKwltbnQgZXJyb3JzPXJlbW91bnQtcm8NCj4+Pj4+ICsJbW50IG5v dWlkMzINCj4+Pj4+ICsJbW50IGRlYnVnDQo+Pj4+PiArCW1udCBvbGRhbGxvYyByZW1vdmVkDQo+ Pj4+PiArCW1udCBvcmxvdiByZW1vdmVkDQo+Pj4+PiArCW1udCAtdCB1c2VyX3hhdHRyDQo+Pj4+ PiArCW1udCBub3VzZXJfeGF0dHINCj4+Pj4+ICsNCj4+Pj4+ICsJaWYgX2hhc19rZXJuZWxfY29u ZmlnIENPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTDsgdGhlbg0KPj4+Pj4gKwkJbW50IC10IGFjbA0K Pj4+Pj4gKwllbHNlDQo+Pj4+PiArCQltbnQgLXQgYWNsIF5hY2wNCj4+Pj4+ICsJZmkNCj4+Pj4+ ICsNCj4+Pj4+ICsJbm90X2V4dDIgbW50IG5vbG9hZCBub3JlY292ZXJ5DQo+Pj4+PiArCW1udCBi aCByZW1vdmVkDQo+Pj4+PiArCW1udCBub2JoIHJlbW92ZWQNCj4+Pj4+ICsJbm90X2V4dDIgbW50 IGNvbW1pdD03DQo+Pj4+PiArCW1udCBtaW5fYmF0Y2hfdGltZT0yMDANCj4+Pj4+ICsJbW50IG1h eF9iYXRjaF90aW1lPTEwMDAwDQo+Pj4+PiArCW9ubHlfZXh0NCBtbnQgam91cm5hbF9jaGVja3N1 bQ0KPj4+Pj4gKwlvbmx5X2V4dDQgbW50IG5vam91cm5hbF9jaGVja3N1bQ0KPj4+Pj4gKwlvbmx5 X2V4dDQgbW50IGpvdXJuYWxfYXN5bmNfY29tbWl0LGRhdGE9d3JpdGViYWNrDQo+Pj4+PiArCW1u dCBhYm9ydCBpZ25vcmVkDQo+Pj4+PiArCW5vdF9leHQyIG1udCAtdCBkYXRhPWpvdXJuYWwNCj4+ Pj4+ICsJbm90X2V4dDIgbW50IC10IGRhdGE9b3JkZXJlZA0KPj4+Pj4gKwlub3RfZXh0MiBtbnQg LXQgZGF0YT13cml0ZWJhY2sNCj4+Pj4+ICsJbm90X2V4dDIgbW50IGRhdGFfZXJyPWFib3J0DQo+ Pj4+PiArCW5vdF9leHQyIG1udCBkYXRhX2Vycj1pZ25vcmUgaWdub3JlZA0KPj4+Pj4gKwltbnQg dXNyanF1b3RhPWFxdW90YS51c2VyLGpxZm10PXZmc3YwDQo+Pj4+PiArCW5vdF9tbnQgdXNyanF1 b3RhPWFxdW90YS51c2VyDQo+Pj4+PiArCW1udCB1c3JqcXVvdGE9IGlnbm9yZWQNCj4+Pj4+ICsJ bW50IGdycGpxdW90YT1hcXVvdGEuZ3JvdXAsanFmbXQ9dmZzdjANCj4+Pj4+ICsJbm90X21udCBn cnBqcXVvdGE9YXF1b3RhLmdyb3VwDQo+Pj4+PiArCW1udCBncnBqcXVvdGE9IGlnbm9yZWQNCj4+ Pj4+ICsJbW50IGpxZm10PXZmc29sZA0KPj4+Pj4gKwltbnQganFmbXQ9dmZzdjANCj4+Pj4+ICsJ bW50IGpxZm10PXZmc3YxDQo+Pj4+PiArCW1udCBncnBxdW90YQ0KPj4+Pj4gKwltbnQgcXVvdGEN Cj4+Pj4+ICsJbW50IG5vcXVvdGENCj4+Pj4+ICsJbW50IHVzcnF1b3RhDQo+Pj4+PiArCW1udCBn cnBxdW90YQ0KPj4+Pj4gKwltbnQgYmFycmllcg0KPj4+Pj4gKwltbnQgYmFycmllcj0wIG5vYmFy cmllcg0KPj4+Pj4gKwltbnQgYmFycmllcj0xIGJhcnJpZXINCj4+Pj4+ICsJbW50IGJhcnJpZXI9 OTkgYmFycmllcg0KPj4+Pj4gKwltbnQgLXQgbm9iYXJyaWVyDQo+Pj4+PiArCW1udCBpX3ZlcnNp b24NCj4+Pj4+ICsJbW50IHN0cmlwZT01MTINCj4+Pj4+ICsJb25seV9leHQ0IG1udCBkZWxhbGxv Yw0KPj4+Pj4gKwlvbmx5X2V4dDQgbW50IC10IG5vZGVsYWxsb2MNCj4+Pj4+ICsJbW50IHdhcm5f b25fZXJyb3INCj4+Pj4+ICsJbW50IG5vd2Fybl9vbl9lcnJvcg0KPj4+Pj4gKwlub3RfbW50IGRl YnVnX3dhbnRfZXh0cmFfaXNpemU9NTEyDQo+Pj4+PiArCW1udCBkZWJ1Z193YW50X2V4dHJhX2lz aXplPTMyIGlnbm9yZWQNCj4+Pj4+ICsJbW50IG1ibGtfaW9fc3VibWl0IHJlbW92ZWQNCj4+Pj4+ ICsJbW50IG5vbWJsa19pb19zdWJtaXQgcmVtb3ZlZA0KPj4+Pj4gKwltbnQgLXQgYmxvY2tfdmFs aWRpdHkNCj4+Pj4+ICsJbW50IG5vYmxvY2tfdmFsaWRpdHkNCj4+Pj4+ICsJbW50IGlub2RlX3Jl YWRhaGVhZF9ibGtzPTE2DQo+Pj4+PiArCW5vdF9leHQyIG1udCBqb3VybmFsX2lvcHJpbz02IGln bm9yZWQNCj4+Pj4+ICsJbW50IGF1dG9fZGFfYWxsb2M9MCBub2F1dG9fZGFfYWxsb2MNCj4+Pj4+ ICsJbW50IGF1dG9fZGFfYWxsb2M9MSBhdXRvX2RhX2FsbG9jDQo+Pj4+PiArCW1udCBhdXRvX2Rh X2FsbG9jPTk1IGF1dG9fZGFfYWxsb2MNCj4+Pj4+ICsJbW50IGF1dG9fZGFfYWxsb2MNCj4+Pj4+ ICsJbW50IG5vYXV0b19kYV9hbGxvYw0KPj4+Pj4gKwlvbmx5X2V4dDQgbW50IGRpb3JlYWRfbm9s b2NrDQo+Pj4+PiArCW9ubHlfZXh0NCBtbnQgbm9kaW9yZWFkX25vbG9jaw0KPj4+Pj4gKwlvbmx5 X2V4dDQgbW50IGRpb3JlYWRfbG9jayBub2Rpb3JlYWRfbm9sb2NrDQo+Pj4+PiArCW1udCAtdCBk aXNjYXJkDQo+Pj4+PiArCW1udCBub2Rpc2NhcmQNCj4+Pj4+ICsJbW50IGluaXRfaXRhYmxlPTIw DQo+Pj4+PiArCW1udCBpbml0X2l0YWJsZQ0KPj4+Pj4gKwltbnQgaW5pdF9pdGFibGU9MA0KPj4+ Pj4gKwltbnQgbm9pbml0X2l0YWJsZQ0KPj4+Pj4gKwltbnQgbWF4X2Rpcl9zaXplX2tiPTQwOTYN Cj4+Pj4+ICsNCj4+Pj4+ICsJaWYgX2hhc19rZXJuZWxfY29uZmlnIENPTkZJR19GU19FTkNSWVBU SU9OOyB0aGVuDQo+Pj4+PiArCQltbnQgdGVzdF9kdW1teV9lbmNyeXB0aW9uDQo+Pj4+PiArCQlt bnQgdGVzdF9kdW1teV9lbmNyeXB0aW9uPXYxDQo+Pj4+PiArCQltbnQgdGVzdF9kdW1teV9lbmNy eXB0aW9uPXYyDQo+Pj4+PiArCQlub3RfbW50IHRlc3RfZHVtbXlfZW5jcnlwdGlvbj12Mw0KPj4+ Pj4gKwkJbm90X21udCB0ZXN0X2R1bW15X2VuY3J5cHRpb249DQo+Pj4+PiArCWVsc2UNCj4+Pj4+ ICsJCW1udCB0ZXN0X2R1bW15X2VuY3J5cHRpb24gXnRlc3RfZHVtbXlfZW5jcnlwdGlvbg0KPj4+ Pj4gKwkJbW50IHRlc3RfZHVtbXlfZW5jcnlwdGlvbj12MSBedGVzdF9kdW1teV9lbmNyeXB0aW9u PXYxDQo+Pj4+PiArCQltbnQgdGVzdF9kdW1teV9lbmNyeXB0aW9uPXYyIF50ZXN0X2R1bW15X2Vu Y3J5cHRpb249djINCj4+Pj4+ICsJCW5vdF9tbnQgdGVzdF9kdW1teV9lbmNyeXB0aW9uPXYzDQo+ Pj4+PiArCQlub3RfbW50IHRlc3RfZHVtbXlfZW5jcnlwdGlvbj0NCj4+Pj4+ICsJZmkNCj4+Pj4+ ICsNCj4+Pj4+ICsJaWYgX2hhc19rZXJuZWxfY29uZmlnIENPTkZJR19GU19FTkNSWVBUSU9OX0lO TElORV9DUllQVDsgdGhlbg0KPj4+Pj4gKwkJbW50IGlubGluZWNyeXB0DQo+Pj4+PiArCWVsc2UN Cj4+Pj4+ICsJCW1udCBpbmxpbmVjcnlwdCBeaW5saW5lY3J5cHQNCj4+Pj4+ICsJZmkNCj4+Pj4+ ICsNCj4+Pj4+ICsJbW50IHByZWZldGNoX2Jsb2NrX2JpdG1hcHMgcmVtb3ZlZA0KPj4+Pj4gKwlt bnQgbm9fcHJlZmV0Y2hfYmxvY2tfYml0bWFwcw0KPj4+Pj4gKwkjIFdlIGRvbid0IGN1cnJlbnRs eSBoYXZlIGEgd2F5IHRvIGtub3cgdGhhdCB0aGUgb3B0aW9uIGhhcyBiZWVuDQo+Pj4+PiArCSMg YXBwbGllZCwgc28gY29tbWVudCBpdCBvdXQgZm9yIG5vdy4gVGhpcyBzaG91bGQgYmUgZml4ZWQg aW4gdGhlDQo+Pj4+PiArCSMgZnV0dXJlLg0KPj4+Pj4gKwkjbW50IG1iX29wdGltaXplX3NjYW49 MA0KPj4+Pj4gKwkjbW50IG1iX29wdGltaXplX3NjYW49MQ0KPj4+Pj4gKwkjbm90X21udCBtYl9v cHRpbWl6ZV9zY2FuPTkNCj4+Pj4+ICsJI25vdF9tbnQgbWJfb3B0aW1pemVfc2Nhbj0NCj4+Pj4+ ICsJbW50IG5vbWJjYWNoZQ0KPj4+Pj4gKwltbnQgbm9fbWJjYWNoZSBub21iY2FjaGUNCj4+Pj4+ ICsJbW50IGNoZWNrPW5vbmUgcmVtb3ZlZA0KPj4+Pj4gKwltbnQgbm9jaGVjayByZW1vdmVkDQo+ Pj4+PiArCW1udCByZXNlcnZhdGlvbiByZW1vdmVkDQo+Pj4+PiArCW1udCBub3Jlc2VydmF0aW9u IHJlbW92ZWQNCj4+Pj4+ICsJbW50IGpvdXJuYWw9MjAgaWdub3JlZA0KPj4+Pj4gKwlub3RfbW50 IG5vbnNlbnNlb3B0aW9uDQo+Pj4+PiArCW5vdF9tbnQgbm9uc2Vuc2VvcHRpb249dmFsdWUNCj4+ Pj4+ICsNCj4+Pj4+ICsJIyBnZW5lcmljIG1vdW50IG9wdGlvbnMNCj4+Pj4+ICsJbW50IGxhenl0 aW1lDQo+Pj4+PiArCW1udCBub2xhenl0aW1lIF5sYXp5dGltZQ0KPj4+Pj4gKwltbnQgbm9hdGlt ZQ0KPj4+Pj4gKwltbnQgbm9kaXJhdGltZQ0KPj4+Pj4gKwltbnQgbm9leGVjDQo+Pj4+PiArCW1u dCBub3N1aWQNCj4+Pj4+ICsJbW50IHJvDQo+Pj4+PiArDQo+Pj4+PiArCSMgZ2VuZXJpYyByZW1v dW50IGNoZWNrDQo+Pj4+PiArCXJlbW91bnQgYmFycmllciBub2JhcnJpZXINCj4+Pj4+ICsJcmVt b3VudCBub2JhcnJpZXIgYmFycmllcg0KPj4+Pj4gKwlyZW1vdW50IGRpc2NhcmQgbm9kaXNjYXJk DQo+Pj4+PiArCXJlbW91bnQgbm9kaXNjYXJkIGRpc2NhcmQNCj4+Pj4+ICsNCj4+Pj4+ICsJIyBk YXggbW91bnQgb3B0aW9ucw0KPj4+Pj4gKwlzaW1wbGVfbW91bnQgLW8gZGF4PWFsd2F5cyAkU0NS QVRDSF9ERVYgJFNDUkFUQ0hfTU5UPiAgIC9kZXYvbnVsbCAyPiYxDQo+Pj4+PiArCWlmIFsgJD8g LWVxIDAgXTsgdGhlbg0KPj4+Pj4gKwkJJFVNT1VOVF9QUk9HICRTQ1JBVENIX01OVCAyPiAgIC9k ZXYvbnVsbA0KPj4+Pj4gKwkJbW50IGRheA0KPj4+Pj4gKwkJbW50IGRheD1hbHdheXMNCj4+Pj4+ ICsJCW1udCBkYXg9bmV2ZXINCj4+Pj4+ICsJCW1udCBkYXg9aW5vZGUNCj4+Pj4+ICsNCj4+Pj4+ ICsJCW5vdF9yZW1vdW50IGxhenl0aW1lIGRheA0KPj4+Pj4gKwkJbm90X3JlbW91bnQgZGF4PWFs d2F5cyBkYXg9bmV2ZXINCj4+Pj4+ICsNCj4+Pj4+ICsJCWlmIFtbICRmc3R5cGUgIT0gImV4dDIi IF1dOyB0aGVuDQo+Pj4+PiArCQkJbm90X3JlbW91bnQgZGF0YT1qb3VybmFsIGRheA0KPj4+Pj4g KwkJCW5vdF9yZW1vdW50IGRhdGE9am91cm5hbCBkYXg9YWx3YXlzDQo+Pj4+PiArCQkJbm90X3Jl bW91bnQgZGF0YT1qb3VybmFsIGRheD1uZXZlcg0KPj4+Pj4gKwkJCW5vdF9yZW1vdW50IGRhdGE9 am91cm5hbCBkYXg9aW5vZGUNCj4+Pj4+ICsJCWZpDQo+Pj4+PiArCWZpDQo+Pj4+PiArDQo+Pj4+ PiArCSMgUXVvdGEgcmVtb3VudCBjaGVjaw0KPj4+Pj4gKwlyZW1vdW50IGdycHF1b3RhIHVzcnF1 b3RhDQo+Pj4+PiArCXJlbW91bnQgdXNycXVvdGEgcXVvdGENCj4+Pj4+ICsJcmVtb3VudCB1c3Jx dW90YSB1c3JqcXVvdGE9cS51LGpxZm10PXZmc3YwDQo+Pj4+PiArCXJlbW91bnQgZ3JwcXVvdGEg Z3JwanF1b3RhPXEuZyxqcWZtdD12ZnN2MA0KPj4+Pj4gKw0KPj4+Pj4gKwlub3RfcmVtb3VudCB1 c3JxdW90YSBncnBqcXVvdGE9cS5nLGpxZm10PXZmc3YwDQo+Pj4+PiArCW5vdF9yZW1vdW50IGdy cHF1b3RhIHVzcmpxdW90YT1xLnUsanFmbXQ9dmZzdjANCj4+Pj4+ICsNCj4+Pj4+ICsJcmVtb3Vu dCBxdW90YSB1c3JqcXVvdGE9cS51LGpxZm10PXZmc3YwDQo+Pj4+PiArCW5vdF9yZW1vdW50IHF1 b3RhIGdycGpxdW90YT1xLmcsanFmbXQ9dmZzdjANCj4+Pj4+ICsNCj4+Pj4+ICsJcmVtb3VudCB1 c3JqcXVvdGE9cS51LGpxZm10PXZmc3YwIGdycGpxdW90YT1xLmcNCj4+Pj4+ICsJbm90X3JlbW91 bnQgdXNyanF1b3RhPXEudSxqcWZtdD12ZnN2MCB1c3JqcXVvdGE9cS51YQ0KPj4+Pj4gKwlub3Rf cmVtb3VudCBncnBqcXVvdGE9cS5nLGpxZm10PXZmc3YwIGdycGpxdW90YT1xLmdhDQo+Pj4+PiAr DQo+Pj4+PiArCXJlbW91bnQgdXNyanF1b3RhPXEudSxqcWZtdD12ZnN2MCB1c3JxdW90YSB1c3Jq cXVvdGE9cS51LGpxZm10PXZmc3YwDQo+Pj4+PiArCXJlbW91bnQgZ3JwanF1b3RhPXEuZyxqcWZt dD12ZnN2MCBncnBxdW90YSBncnBqcXVvdGE9cS5nLGpxZm10PXZmc3YwDQo+Pj4+PiArCW5vdF9y ZW1vdW50IHVzcmpxdW90YT1xLnUsanFmbXQ9dmZzdjAgZ3JwcXVvdGENCj4+Pj4+ICsJbm90X3Jl bW91bnQgZ3JwanF1b3RhPXEuZyxqcWZtdD12ZnN2MCB1c3JxdW90YQ0KPj4+Pj4gKw0KPj4+Pj4g KwlyZW1vdW50IGdycGpxdW90YT1xLmcsanFmbXQ9dmZzdjAgZ3JwanF1b3RhPSBeZ3JwanF1b3Rh PQ0KPj4+Pj4gKwlyZW1vdW50IHVzcmpxdW90YT1xLnUsanFmbXQ9dmZzdjAgdXNyanF1b3RhPSBe dXNyanF1b3RhPQ0KPj4+Pj4gKwlyZW1vdW50IGdycGpxdW90YT1xLmcsdXNyanF1b3RhPXEudSxq cWZtdD12ZnN2MCBncnBqcXVvdGE9LHVzcmpxdW90YT0gXmdycGpxdW90YT0sXnVzcmpxdW90YT0N Cj4+Pj4+ICsNCj4+Pj4+ICsJcmVtb3VudCBqcWZtdD12ZnN2MCBncnBqcXVvdGE9cS5nDQo+Pj4+ PiArCXJlbW91bnQganFmbXQ9dmZzdjAgdXNyanF1b3RhPXEudQ0KPj4+Pj4gKw0KPj4+Pj4gKwlp ZiBbWyAkZnN0eXBlICE9ICJleHQyIiBdXTsgdGhlbg0KPj4+Pj4gKwkJcmVtb3VudCBub2xvYWQg ZGF0YT1qb3VybmFsIG5vcmVjb3ZlcnkNCj4+Pj4+ICsJCW5vdF9yZW1vdW50IGRhdGE9b3JkZXJl ZCBkYXRhPWpvdXJuYWwNCj4+Pj4+ICsJCW5vdF9yZW1vdW50IGRhdGE9am91cm5hbCBkYXRhPXdy aXRlYmFjaw0KPj4+Pj4gKwkJbm90X3JlbW91bnQgZGF0YT13cml0ZWJhY2sgZGF0YT1vcmRlcmVk DQo+Pj4+PiArCWZpDQo+Pj4+PiArDQo+Pj4+PiArCWRvX21rZnMgLU8gam91cm5hbF9kZXYgJExP T1BfTE9HREVWICR7TE9HU0laRX1rDQo+Pj4+PiArCWRvX21rZnMgLUogZGV2aWNlPSRMT09QX0xP R0RFViAkU0NSQVRDSF9ERVYgJHtTSVpFfWsNCj4+Pj4+ICsJbW50IGRlZmF1bHRzDQo+Pj4+PiAr CW1udCBqb3VybmFsX3BhdGg9JExPT1BfTE9HREVWIGlnbm9yZWQNCj4+Pj4+ICsJbW50IGpvdXJu YWxfZGV2PSRMT0dERVZfREVWTlVNIGlnbm9yZWQNCj4+Pj4+ICsJbm90X21udCBqb3VybmFsX3Bh dGg9JHtMT09QX0xPR0RFVn1fbm9uZXhpc3RlbnQgaWdub3JlZA0KPj4+Pj4gKwlub3RfbW50IGpv dXJuYWxfZGV2PTEyMzQ1NiBpZ25vcmVkDQo+Pj4+PiArCW5vdF9tbnQgam91cm5hbF9kZXY9OTk5 OTk5OTk5OTk5OTk5IGlnbm9yZWQNCj4+Pj4+ICsNCj4+Pj4+ICsJZG9fbWtmcyAtRSBxdW90YXR5 cGU9cHJqcXVvdGEgJFNDUkFUQ0hfREVWICR7U0laRX1rDQo+Pj4+PiArCW1udCBwcmpxdW90YQ0K Pj4+Pj4gKw0KPj4+Pj4gKwkjIHRlc3QgY2xlYXJpbmcvY2hhbmdpbmcgam91cm5hbGxlZCBxdW90 YSB3aGVuIGVuYWJsZWQNCj4+Pj4+ICsJZWNobyAiPT0gVGVzdGluZyBhY3RpdmUgam91cm5hbGxl ZCBxdW90YSI+PiAgICRzZXFyZXMuZnVsbA0KPj4+Pj4gKwltbnRfb25seSBwcmpxdW90YSxncnBq cXVvdGE9YXF1b3RhLmdyb3VwLHVzcmpxdW90YT1hcXVvdGEudXNlcixqcWZtdD12ZnN2MA0KPj4+ Pj4gKw0KPj4+Pj4gKwkjIFByZXBhcmUgYW5kIGVuYWJsZSBxdW90YQ0KPj4+Pj4gKwlxdW90YWNo ZWNrIC12dWdtICRTQ1JBVENIX01OVD4+ICAgJHNlcXJlcy5mdWxsIDI+JjENCj4+Pj4+ICsJcXVv dGFvbiAtdnVnICRTQ1JBVENIX01OVD4+ICAgJHNlcXJlcy5mdWxsIDI+JjENCj4+Pj4+ICsNCj4+ Pj4+ICsJbm90X3JlbW91bnRfbm91bW91bnQgLXIgZ3JwanF1b3RhPQ0KPj4+Pj4gKwlub3RfcmVt b3VudF9ub3Vtb3VudCAtciB1c3JqcXVvdGE9YWFxdW90YS51c2VyDQo+Pj4+PiArCW5vdF9yZW1v dW50X25vdW1vdW50IC1yIGdycGpxdW90YT1hYXF1b3RhLmdyb3VwDQo+Pj4+PiArCW5vdF9yZW1v dW50X25vdW1vdW50IC1yIGpxZm10PXZmc3YxDQo+Pj4+PiArCW5vdF9yZW1vdW50X25vdW1vdW50 IC1yIG5vcXVvdGENCj4+Pj4+ICsJbW50X29ubHkgcmVtb3VudCx1c3JxdW90YSxncnBxdW90YSBe dXNycXVvdGEsXmdycHF1b3RhDQo+Pj4+PiArCSRVTU9VTlRfUFJPRyAkU0NSQVRDSF9NTlQ+ICAg L2Rldi9udWxsIDI+JjENCj4+Pj4+ICsNCj4+Pj4+ICsJIyB0ZXN0IGNsZWFyaW5nL2NoYW5naW5n IHF1b3RhIHdoZW4gZW5hYmxlZA0KPj4+Pj4gKwlkb19ta2ZzIC1FIHF1b3RhdHlwZT1ecHJqcXVv dGEgJFNDUkFUQ0hfREVWICR7U0laRX1rDQo+Pj4+PiArCW5vdF9tbnQgcHJqcXVvdGENCj4+Pj4+ ICsJZWNobyAiPT0gVGVzdGluZyBhY3RpdmUgbm9uLWpvdXJuYWxsZWQgcXVvdGEiPj4gICAkc2Vx cmVzLmZ1bGwNCj4+Pj4+ICsJbW50X29ubHkgZ3JwcXVvdGEsdXNycXVvdGENCj4+Pj4+ICsNCj4+ Pj4+ICsJIyBQcmVwYXJlIGFuZCBlbmFibGUgcXVvdGENCj4+Pj4+ICsJcXVvdGFjaGVjayAtdnVn bSAkU0NSQVRDSF9NTlQ+PiAgICRzZXFyZXMuZnVsbCAyPiYxDQo+Pj4+PiArCXF1b3Rhb24gLXZ1 ZyAkU0NSQVRDSF9NTlQ+PiAgICRzZXFyZXMuZnVsbCAyPiYxDQo+Pj4+PiArDQo+Pj4+PiArCW5v dF9yZW1vdW50X25vdW1vdW50IC1yIG5vcXVvdGENCj4+Pj4+ICsJbm90X3JlbW91bnRfbm91bW91 bnQgLXIgdXNyanF1b3RhPWFxdW90YS51c2VyDQo+Pj4+PiArCW5vdF9yZW1vdW50X25vdW1vdW50 IC1yIGdycGpxdW90YT1hcXVvdGEuZ3JvdXANCj4+Pj4+ICsJbm90X3JlbW91bnRfbm91bW91bnQg LXIganFmbXQ9dmZzdjENCj4+Pj4+ICsJbW50X29ubHkgcmVtb3VudCxncnBqcXVvdGE9IGdycHF1 b3RhLF5ncnBqcXVvdGENCj4+Pj4+ICsJbW50X29ubHkgcmVtb3VudCx1c3JqcXVvdGE9IHVzcnF1 b3RhLF51c3JqcXVvdGENCj4+Pj4+ICsJbW50X29ubHkgcmVtb3VudCx1c3JxdW90YSxncnBxdW90 YSB1c3JxdW90YSxncnBxdW90YQ0KPj4+Pj4gKwlxdW90YW9mZiAtZiAkU0NSQVRDSF9NTlQ+PiAg ICRzZXFyZXMuZnVsbCAyPiYxDQo+Pj4+PiArCW1udF9vbmx5IHJlbW91bnQsbm9xdW90YSBedXNy cXVvdGEsXmdycHF1b3RhLHF1b3RhDQo+Pj4+PiArCSRVTU9VTlRfUFJPRyAkU0NSQVRDSF9NTlQ+ ICAgL2Rldi9udWxsIDI+JjENCj4+Pj4+ICsNCj4+Pj4+ICsJIyBRdW90YSBmZWF0dXJlDQo+Pj4+ PiArCWVjaG8gIj09IFRlc3RpbmcgcXVvdGEgZmVhdHVyZSAiPj4gICAkc2VxcmVzLmZ1bGwNCj4+ Pj4+ICsJZG9fbWtmcyAtTyBxdW90YSAtRSBxdW90YXR5cGU9cHJqcXVvdGEgJFNDUkFUQ0hfREVW ICR7U0laRX1rDQo+Pj4+PiArCW1udCB1c3JqcXVvdGE9YXF1b3RhLnVzZXIsanFmbXQ9dmZzdjAg XnVzcmpxdW90YT0NCj4+Pj4+ICsJbW50IGdycGpxdW90YT1hcXVvdGEudXNlcixqcWZtdD12ZnN2 MCBeZ3JwanF1b3RhPQ0KPj4+Pj4gKwltbnQganFmbXQ9dmZzdjEgXmpxZm10PQ0KPj4+Pj4gKwlt bnQgcHJqcXVvdGENCj4+Pj4+ICsJbW50IHVzcnF1b3RhDQo+Pj4+PiArCW1udCBncnBxdW90YQ0K Pj4+Pj4gKwlub3RfcmVtb3VudCBkZWZhdWx0cyB1c3JqcXVvdGE9YXF1b3RhLnVzZXINCj4+Pj4+ ICsJbm90X3JlbW91bnQgZGVmYXVsdHMgZ3JwanF1b3RhPWFxdW90YS51c2VyDQo+Pj4+PiArCW5v dF9yZW1vdW50IGRlZmF1bHRzIGpxZm10PXZmc3YxDQo+Pj4+PiArCXJlbW91bnQgZGVmYXVsdHMg Z3JwanF1b3RhPSx1c3JqcXVvdGE9IGlnbm9yZWQNCj4+Pj4+ICsNCj4+Pj4+ICtkb25lICNmb3Ig ZnN0eXBlIGluIGV4dDIgZXh0MyBleHQ0OyBkbw0KPj4+Pj4gKw0KPj4+Pj4gKyRVTU9VTlRfUFJP RyAkU0NSQVRDSF9NTlQ+ICAgL2Rldi9udWxsIDI+JjENCj4+Pj4+ICtlY2hvICIkRVJSIGVycm9y cyBlbmNvdW50ZXJlZCI+PiAgICRzZXFyZXMuZnVsbA0KPj4+Pj4gKw0KPj4+Pj4gK3N0YXR1cz0k RVJSDQo+Pj4+PiArZXhpdA0KPj4+Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dDQvMDUzLm91dCBi L3Rlc3RzL2V4dDQvMDUzLm91dA0KPj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4+IGlu ZGV4IDAwMDAwMDAwLi5kNThkYjdlNA0KPj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4gKysrIGIv dGVzdHMvZXh0NC8wNTMub3V0DQo+Pj4+PiBAQCAtMCwwICsxLDIgQEANCj4+Pj4+ICtRQSBvdXRw dXQgY3JlYXRlZCBieSAwNTMNCj4+Pj4+ICtTaWxlbmNlIGlzIGdvbGRlbi4NCj4+Pj4+IC0tDQo+ Pj4+PiAyLjMxLjENCj4+Pj4+DQo+Pj4+DQo+Pj4NCj4+Pg0KPj4+DQo+DQo=