From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id C82F73860765 for ; Wed, 17 Jan 2024 12:15:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C82F73860765 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C82F73860765 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705493710; cv=none; b=um1LTAyi1Po3CNwFgR6F98JOLDLpgW8TXkSDgPJyM3SPKQkvyDrOu+U6UcxUw9dWlMSq8ceSsGvp1fP6NFW6ej6lMr7FqmR0enUMkm85n7rhN7e6oSR+ACcGbS9CWFX2fktMEOHyi/jObOHjGCVShBQIYw9szx1KVY/Uxvd9ysI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705493710; c=relaxed/simple; bh=a82qHVQfwufvrQcAyPYesc+KfISe9u6bIWLp8GlFZec=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=H3II2Afdf3o162Z7uLOcyyI+C0+Dviv7361VnzvwxYSfdwSI6aOEAXWSe0Ekqexu65jYU3hePLTytFHj2pP3iPETRYKzLZlgRZmcWHifhEIOrg1b17V14SWRWaASskueAYW2jH/N4tInxQrPhut82pFOR+K4290u7wkxRuEiwpE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705493703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=a82qHVQfwufvrQcAyPYesc+KfISe9u6bIWLp8GlFZec=; b=GZ1dbBvZkPqrmmIkADuCfSBTzPTTEC5XgqA4tZb1+VFgI+sXqL927B96U1A8qhp+rI8QP0 Go1v5QM5SBHeanZ2hjvKx7xosQAbCx8gDXKThtt664ivGBOv0SeT+pMG6rsXKlcTZondGv qZabBN7Rfl0LKi6B4aHh+e2/NWKbtgg= Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com [209.85.128.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-272-vrH5OobEOCK81HZFKdt3cw-1; Wed, 17 Jan 2024 07:15:01 -0500 X-MC-Unique: vrH5OobEOCK81HZFKdt3cw-1 Received: by mail-yw1-f197.google.com with SMTP id 00721157ae682-5ff69450898so4527537b3.1 for ; Wed, 17 Jan 2024 04:15:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705493701; x=1706098501; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=a82qHVQfwufvrQcAyPYesc+KfISe9u6bIWLp8GlFZec=; b=BBbrq3FypjIodUBHiwk6KkCAOHPEirHCEJq/ckkMpHC+UC6qCSBv+YnuRZOEZ2ZPdn /I5dJ9hVNnW58C++27gLBvjotJgx0mRPTVlmx1QAtd235XJWi1jerhlvOsilqzTbX7f3 J+Va5kuUgSATkzgvwiHRXKdF0ivHeTp3RDKU/V0hh+5MHmiXCz4nvL9O8kYjf/hlCyiR qPz0Gk1L7sx+MCfwoXvNtd44nCHIwwXm2/N7YbfWd45manwpcYp93892jeqiX8KklOiG ffl3WDXJbIGNCHIZNQhnD8Fpl47PR/eqItYj9CHXCa9evaumOeFiUIcqHpDCQE17AfoK jlbw== X-Gm-Message-State: AOJu0YywuYa6auMA0Uuh3fUprhJl2tsZQRGLNK+eE0BkJyEcme1oJIwc uN/vYLSkq34v8P7f5VRYzpAWnh1LmvHVpxpJaB2ouAiLJK2mE0OfFeqqwwxUELLh5mcLokMu4/N S2N8sTNv8hWmw7+nvBvuvkLkDcv26krb2uBqb3Lr+3x9ufwS8n/bLJOrhZgzkcmbTL4CueKi+Qv gqQ8CxL3iZBCcXB1AHc8ECXtmkLes= X-Received: by 2002:a0d:db06:0:b0:5f9:c0ae:b10a with SMTP id d6-20020a0ddb06000000b005f9c0aeb10amr411135ywe.3.1705493701168; Wed, 17 Jan 2024 04:15:01 -0800 (PST) X-Google-Smtp-Source: AGHT+IHv9VCBJkvs9YhKtpy2h9OThetW0PVk4vC44gufvLh2LZPoo1e93y1mzuiTmOPFogV1o8L1CukJ0xOGEdczNUY= X-Received: by 2002:a0d:db06:0:b0:5f9:c0ae:b10a with SMTP id d6-20020a0ddb06000000b005f9c0aeb10amr411126ywe.3.1705493700883; Wed, 17 Jan 2024 04:15:00 -0800 (PST) MIME-Version: 1.0 References: <20240113124834.1296437-1-jwakely@redhat.com> <20240115204803.1550804-1-jwakely@redhat.com> In-Reply-To: From: Jonathan Wakely Date: Wed, 17 Jan 2024 12:14:45 +0000 Message-ID: Subject: [committed v5] libstdc++: Implement C++26 std::text_encoding (P1885R12) [PR113318] To: Patrick Palka Cc: "libstdc++" , gcc Patches , Ulrich Drepper X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="00000000000035877a060f2332bb" X-Spam-Status: No, score=-15.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000035877a060f2332bb Content-Type: text/plain; charset="UTF-8" Here's the final version that I pushed. Tested aarch64-linux, x86_64-linux. --00000000000035877a060f2332bb Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrhqw6s50 Y29tbWl0IGRmMGE2NjhiNzg0NTU2ZmU0MzE3MzE3ZDU4OTYxNjUyZDkzZDUzZGUKQXV0aG9yOiBK b25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4KRGF0ZTogICBNb24gSmFuIDE1IDE1 OjQyOjUwIDIwMjQKCiAgICBsaWJzdGRjKys6IEltcGxlbWVudCBDKysyNiBzdGQ6OnRleHRfZW5j b2RpbmcgKFAxODg1UjEyKSBbUFIxMTMzMThdCiAgICAKICAgIFRoaXMgaXMgYW5vdGhlciBDKysy NiBjaGFuZ2UsIGFwcHJvdmVkIGluIFZhcm5hIDIwMjMuIFdlIHJlcXVpcmUgYSBuZXcKICAgIHN0 YXRpYyBhcnJheSBvZiBkYXRhIHRoYXQgaXMgZXh0cmFjdGVkIGZyb20gdGhlIElBTkEgQ2hhcmFj dGVyIFNldHMKICAgIGRhdGFiYXNlLiBBIG5ldyBQeXRob24gc2NyaXB0IHRvIGdlbmVyYXRlIGEg aGVhZGVyIGZyb20gdGhlIElBTkEgQ1NWCiAgICBmaWxlIGlzIGFkZGVkLgogICAgCiAgICBUaGUg dGV4dF9lbmNvZGluZyBjbGFzcyBpcyBiYXNpY2FsbHkganVzdCBhIHBvaW50ZXIgdG8gYW4ge0lE LG5hbWV9IHBhaXIKICAgIGluIHRoZSBzdGF0aWMgYXJyYXkuIFRoZSBhbGlhc2VzIHZpZXcgaXMg YWxzbyBqdXN0IHRoZSBzYW1lIHBvaW50ZXIgKG9yCiAgICBlbXB0eSksIGFuZCB0aGUgdmlldydz IGl0ZXJhdG9yIG1vdmVzIGZvcndhcmRzIGFuZCBiYWNrd2FyZHMgaW4gdGhlCiAgICBhcnJheSB3 aGlsZSB0aGUgYXJyYXkgZWxlbWVudHMgaGF2ZSB0aGUgc2FtZSBJRCAob3IgdG8gb25lIGVsZW1l bnQKICAgIGZ1cnRoZXIsIGZvciBhIHBhc3QtdGhlLWVuZCBpdGVyYXRvcikuCiAgICAKICAgIEJl Y2F1c2UgdGhvc2UgaXRlcmF0b3JzIHJlZmVyIHRvIGEgZ2xvYmFsIGFycmF5IHRoYXQgbmV2ZXIg Z29lcyBvdXQgb2YKICAgIHNjb3BlLCB0aGVyZSdzIG5vIHJlYXNvbiB0aGV5IHNob3VsZCBldmVy eSBwcm9kdWNlIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgIG9yIGluZGV0ZXJtaW5hdGUgdmFsdWVz LiAgVGhleSBzaG91bGQgZWl0aGVyIGhhdmUgd2VsbC1kZWZpbmVkCiAgICBiZWhhdmlvdXIsIG9y IGFib3J0LiBUaGUgb3ZlcmhlYWQgb2YgZW5zdXJpbmcgdGhvc2UgcHJvcGVydGllcyBpcyBwcmV0 dHkKICAgIGxvdywgc28gc2VlbXMgd29ydGggaXQuCiAgICAKICAgIFRoaXMgbWVhbnMgdGhhdCBh biBhbGlhc2VzX3ZpZXcgaXRlcmF0b3Igc2hvdWxkIG5ldmVyIGJlIGFibGUgdG8gYWNjZXNzCiAg ICBvdXQtb2YtYm91bmRzLiBBIG5vbi12YWx1ZS1pbml0aWFsaXplZCBpdGVyYXRvciBhbHdheXMg cG9pbnRzIHRvIGFuCiAgICBlbGVtZW50IG9mIHRoZSBzdGF0aWMgYXJyYXkgZXZlbiB3aGVuIG5v dCBkZXJlZmVyZW5jZWFibGUgKHRoZSBhcnJheSBoYXMKICAgIHVucmVhY2hhYmxlIGVudHJpZXMg YXQgdGhlIHN0YXJ0IGFuZCBlbmQsIHdoaWNoIG1lYW5zIHRoYXQgZXZlbiBhCiAgICBwYXN0LXRo ZS1lbmQgaXRlcmF0b3IgZm9yIHRoZSBsYXN0IGVuY29kaW5nIGluIHRoZSBhcnJheSBzdGlsbCBw b2ludHMgdG8KICAgIHZhbGlkIG1lbW9yeSkuICBEZXJlZmVyZW5jaW5nIGFuIGl0ZXJhdG9yIGNh biBhbHdheXMgcmV0dXJuIGEgdmFsaWQKICAgIGFycmF5IGVsZW1lbnQsIG9yICIiIGZvciBhIG5v bi1kZXJlZmVyZW5jZWFibGUgaXRlcmF0b3IgKGJ1dCBkb2luZyBzbwogICAgd2lsbCBhYm9ydCB3 aGVuIGFzc2VydGlvbnMgYXJlIGVuYWJsZWQpLiAgSW4gdGhlIGxhbmd1YWdlIGJlaW5nIHByb3Bv c2VkCiAgICBmb3IgQysrMjYsIGRlcmVmZXJlbmNpbmcgYW4gaW52YWxpZCBpdGVyYXRvciBlcnJv bmVvdXNseSByZXR1cm5zICIiLgogICAgQXR0ZW1wdGluZyB0byBpbmNyZW1lbnQvZGVjcmVtZW50 IHBhc3QgdGhlIGxhc3QvZmlyc3QgZWxlbWVudCBpbiB0aGUKICAgIHZpZXcgaXMgZXJyb25lb3Vz bHkgYSBuby1vcCwgc28gYWJvcnRzIHdoZW4gYXNzZXJ0aW9ucyBhcmUgZW5hYmxlZCwgYW5kCiAg ICBkb2Vzbid0IGNoYW5nZSB2YWx1ZSBvdGhlcndpc2UuCiAgICAKICAgIFNpbWlsYXJseSwgY29u c3RydWN0aW5nIGEgc3RkOjp0ZXh0X2VuY29kaW5nIHdpdGggYW4gaW52YWxpZCBpZCAob25lCiAg ICB0aGF0IGRvZXNuJ3QgaGF2ZSB0aGUgdmFsdWUgb2YgYW4gZW51bWVyYXRvcikgZXJyb25lb3Vz bHkgYmVoYXZlcyB0aGUKICAgIHNhbWUgYXMgY29uc3RydWN0aW5nIHdpdGggaWQ6OnVua25vd24s IG9yIGFib3J0cyB3aXRoIGFzc2VydGlvbnMKICAgIGVuYWJsZWQuCiAgICAKICAgIGxpYnN0ZGMr Ky12My9DaGFuZ2VMb2c6CiAgICAKICAgICAgICAgICAgUFIgbGlic3RkYysrLzExMzMxOAogICAg ICAgICAgICAqIGFjaW5jbHVkZS5tNCAoR0xJQkNYWF9DT05GSUdVUkUpOiBBZGQgYysrMjYgZGly ZWN0b3J5LgogICAgICAgICAgICAoR0xJQkNYWF9DSEVDS19URVhUX0VOQ09ESU5HKTogRGVmaW5l LgogICAgICAgICAgICAqIGNvbmZpZy5oLmluOiBSZWdlbmVyYXRlLgogICAgICAgICAgICAqIGNv bmZpZ3VyZTogUmVnZW5lcmF0ZS4KICAgICAgICAgICAgKiBjb25maWd1cmUuYWM6IFVzZSBHTElC Q1hYX0NIRUNLX1RFWFRfRU5DT0RJTkcuCiAgICAgICAgICAgICogaW5jbHVkZS9NYWtlZmlsZS5h bTogQWRkIG5ldyBoZWFkZXJzLgogICAgICAgICAgICAqIGluY2x1ZGUvTWFrZWZpbGUuaW46IFJl Z2VuZXJhdGUuCiAgICAgICAgICAgICogaW5jbHVkZS9iaXRzL2xvY2FsZV9jbGFzc2VzLmggKGxv Y2FsZTo6ZW5jb2RpbmcpOiBEZWNsYXJlIG5ldwogICAgICAgICAgICBtZW1iZXIgZnVuY3Rpb24u CiAgICAgICAgICAgICogaW5jbHVkZS9iaXRzL3VuaWNvZGUuaCAoX19jaGFyc2V0X2FsaWFzX21h dGNoKTogTmV3IGZ1bmN0aW9uLgogICAgICAgICAgICAqIGluY2x1ZGUvYml0cy90ZXh0X2VuY29k aW5nLWRhdGEuaDogTmV3IGZpbGUuCiAgICAgICAgICAgICogaW5jbHVkZS9iaXRzL3ZlcnNpb24u ZGVmICh0ZXh0X2VuY29kaW5nKTogRGVmaW5lLgogICAgICAgICAgICAqIGluY2x1ZGUvYml0cy92 ZXJzaW9uLmg6IFJlZ2VuZXJhdGUuCiAgICAgICAgICAgICogaW5jbHVkZS9zdGQvdGV4dF9lbmNv ZGluZzogTmV3IGZpbGUuCiAgICAgICAgICAgICogc3JjL01ha2VmaWxlLmFtOiBBZGQgbmV3IHN1 YmRpcmVjdG9yeS4KICAgICAgICAgICAgKiBzcmMvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCiAg ICAgICAgICAgICogc3JjL2MrKzI2L01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KICAgICAgICAgICAg KiBzcmMvYysrMjYvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgogICAgICAgICAgICAqIHNyYy9jKysy Ni90ZXh0X2VuY29kaW5nLmNjOiBOZXcgZmlsZS4KICAgICAgICAgICAgKiBzcmMvZXhwZXJpbWVu dGFsL01ha2VmaWxlLmFtOiBJbmNsdWRlIGMrKzI2IGNvbnZlbmllbmNlCiAgICAgICAgICAgIGxp YnJhcnkuCiAgICAgICAgICAgICogc3JjL2V4cGVyaW1lbnRhbC9NYWtlZmlsZS5pbjogUmVnZW5l cmF0ZS4KICAgICAgICAgICAgKiBweXRob24vbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5IChTdGRU ZXh0RW5jb2RpbmdQcmludGVyKTogTmV3CiAgICAgICAgICAgIHByaW50ZXIuCiAgICAgICAgICAg ICogc2NyaXB0cy9nZW5fdGV4dF9lbmNvZGluZ19kYXRhLnB5OiBOZXcgZmlsZS4KICAgICAgICAg ICAgKiB0ZXN0c3VpdGUvMjJfbG9jYWxlL2xvY2FsZS9lbmNvZGluZy5jYzogTmV3IHRlc3QuCiAg ICAgICAgICAgICogdGVzdHN1aXRlL2V4dC91bmljb2RlL2NoYXJzZXRfYWxpYXNfbWF0Y2guY2M6 IE5ldyB0ZXN0LgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9zdGQvdGV4dF9lbmNvZGluZy9jb25z LmNjOiBOZXcgdGVzdC4KICAgICAgICAgICAgKiB0ZXN0c3VpdGUvc3RkL3RleHRfZW5jb2Rpbmcv bWVtYmVycy5jYzogTmV3IHRlc3QuCiAgICAgICAgICAgICogdGVzdHN1aXRlL3N0ZC90ZXh0X2Vu Y29kaW5nL3JlcXVpcmVtZW50cy5jYzogTmV3IHRlc3QuCiAgICAKICAgIFJldmlld2VkLWJ5OiBV bHJpY2ggRHJlcHBlciA8ZHJlcHBlci5mc3BAZ21haWwuY29tPgogICAgUmV2aWV3ZWQtYnk6IFBh dHJpY2sgUGFsa2EgPHBwYWxrYUByZWRoYXQuY29tPgoKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12 My9hY2luY2x1ZGUubTQgYi9saWJzdGRjKystdjMvYWNpbmNsdWRlLm00CmluZGV4IGU3Y2JmMGZj Zjk2Li5mOWJhN2VmNzQ0YiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2FjaW5jbHVkZS5tNAor KysgYi9saWJzdGRjKystdjMvYWNpbmNsdWRlLm00CkBAIC00OSw3ICs0OSw3IEBAIEFDX0RFRlVO KFtHTElCQ1hYX0NPTkZJR1VSRV0sIFsKICAgIyBLZWVwIHRoZXNlIHN5bmMnZCB3aXRoIHRoZSBs aXN0IGluIE1ha2VmaWxlLmFtLiAgVGhlIGZpcnN0IHByb3ZpZGVzIGFuCiAgICMgZXhwYW5kYWJs ZSBsaXN0IGF0IGF1dG9jb25mIHRpbWU7IHRoZSBzZWNvbmQgcHJvdmlkZXMgYW4gZXhwYW5kYWJs ZSBsaXN0CiAgICMgKGkuZS4sIHNoZWxsIHZhcmlhYmxlKSBhdCBjb25maWd1cmUgdGltZS4KLSAg bTRfZGVmaW5lKFtnbGliY3h4X1NVQkRJUlNdLFtpbmNsdWRlIGxpYnN1cGMrKyBzcmMgc3JjL2Mr Kzk4IHNyYy9jKysxMSBzcmMvYysrMTcgc3JjL2MrKzIwIHNyYy9jKysyMyBzcmMvZmlsZXN5c3Rl bSBzcmMvbGliYmFja3RyYWNlIHNyYy9leHBlcmltZW50YWwgZG9jIHBvIHRlc3RzdWl0ZSBweXRo b25dKQorICBtNF9kZWZpbmUoW2dsaWJjeHhfU1VCRElSU10sW2luY2x1ZGUgbGlic3VwYysrIHNy YyBzcmMvYysrOTggc3JjL2MrKzExIHNyYy9jKysxNyBzcmMvYysrMjAgc3JjL2MrKzIzIHNyYy9j KysyNiBzcmMvZmlsZXN5c3RlbSBzcmMvbGliYmFja3RyYWNlIHNyYy9leHBlcmltZW50YWwgZG9j IHBvIHRlc3RzdWl0ZSBweXRob25dKQogICBTVUJESVJTPSdnbGliY3h4X1NVQkRJUlMnCiAKICAg IyBUaGVzZSBuZWVkIHRvIGJlIGFic29sdXRlIHBhdGhzLCB5ZXQgYXQgdGhlIHNhbWUgdGltZSBu ZWVkIHRvCkBAIC01ODIxLDYgKzU4MjEsMzQgQEAgQUNfTEFOR19TQVZFCiAgIEFDX0xBTkdfUkVT VE9SRQogXSkKIAorZG5sCitkbmwgQ2hlY2sgd2hldGhlciB0aGUgZGVwZW5kZW5jaWVzIGZvciBz dGQ6OnRleHRfZW5jb2RpbmcgYXJlIGF2YWlsYWJsZS4KK2RubAorZG5sIERlZmluZXM6Citkbmwg ICBfR0xJQkNYWF9VU0VfTkxfTEFOR0lORk9fTCBpZiBubF9sYW5naW5mb19sIGlzIGluIDxsYW5n aW5mby5oPi4KK2RubAorQUNfREVGVU4oW0dMSUJDWFhfQ0hFQ0tfVEVYVF9FTkNPRElOR10sIFsK K0FDX0xBTkdfU0FWRQorICBBQ19MQU5HX0NQTFVTUExVUworCisgIEFDX01TR19DSEVDS0lORyhb d2hldGhlciBubF9sYW5naW5mb19sIGlzIGRlZmluZWQgaW4gPGxhbmdpbmZvLmg+XSkKKyAgQUNf VFJZX0NPTVBJTEUoWworICAjaW5jbHVkZSA8bG9jYWxlLmg+CisgICNpbmNsdWRlIDxsYW5naW5m by5oPgorICBdLFsKKyAgICBsb2NhbGVfdCBsb2MgPSBuZXdsb2NhbGUoTENfQUxMX01BU0ssICIi LCAobG9jYWxlX3QpMCk7CisgICAgY29uc3QgY2hhciogZW5jID0gbmxfbGFuZ2luZm9fbChDT0RF U0VULCBsb2MpOworICAgIGZyZWVsb2NhbGUobG9jKTsKKyAgXSwgW2FjX25sX2xhbmdpbmZvX2w9 eWVzXSwgW2FjX25sX2xhbmdpbmZvX2w9bm9dKQorICBBQ19NU0dfUkVTVUxUKCRhY19ubF9sYW5n aW5mb19sKQorICBpZiB0ZXN0ICIkYWNfbmxfbGFuZ2luZm9fbCIgPSB5ZXM7IHRoZW4KKyAgICBB Q19ERUZJTkVfVU5RVU9URUQoX0dMSUJDWFhfVVNFX05MX0xBTkdJTkZPX0wsIDEsCisgICAgICBb RGVmaW5lIGlmIG5sX2xhbmdpbmZvX2wgc2hvdWxkIGJlIHVzZWQgZm9yIHN0ZDo6dGV4dF9lbmNv ZGluZy5dKQorICBmaQorCisgIEFDX0xBTkdfUkVTVE9SRQorXSkKKwogIyBNYWNyb3MgZnJvbSB0 aGUgdG9wLWxldmVsIGdjYyBkaXJlY3RvcnkuCiBtNF9pbmNsdWRlKFsuLi9jb25maWcvZ2MrK2Zp bHQubTRdKQogbTRfaW5jbHVkZShbLi4vY29uZmlnL3Rscy5tNF0pCmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvY29uZmlndXJlLmFjIGIvbGlic3RkYysrLXYzL2NvbmZpZ3VyZS5hYwppbmRleCBj OGIzNjMzMzAxOS4uYzY4Y2FjNGYzNDUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9jb25maWd1 cmUuYWMKKysrIGIvbGlic3RkYysrLXYzL2NvbmZpZ3VyZS5hYwpAQCAtNTU3LDYgKzU1Nyw5IEBA IEdMSUJDWFhfQ0hFQ0tfSU5JVF9QUklPUklUWQogIyBGb3IgX19iYXNpY19maWxlOjpuYXRpdmVf aGFuZGxlKCkKIEdMSUJDWFhfQ0hFQ0tfRklMRUJVRl9OQVRJVkVfSEFORExFUwogCisjIEZvciBz dGQ6OnRleHRfZW5jb2RpbmcKK0dMSUJDWFhfQ0hFQ0tfVEVYVF9FTkNPRElORworCiAjIERlZmlu ZSBkb2N1bWVudGF0aW9uIHJ1bGVzIGNvbmRpdGlvbmFsbHkuCiAKICMgU2VlIGlmIG1ha2VpbmZv IGhhcyBiZWVuIGluc3RhbGxlZCBhbmQgaXMgbW9kZXJuIGVub3VnaApkaWZmIC0tZ2l0IGEvbGli c3RkYysrLXYzL2luY2x1ZGUvTWFrZWZpbGUuYW0gYi9saWJzdGRjKystdjMvaW5jbHVkZS9NYWtl ZmlsZS5hbQppbmRleCBjNmQ2YTI0ZWI5ZS4uNjQxNTIzNTFlZDAgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9pbmNsdWRlL01ha2VmaWxlLmFtCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL01h a2VmaWxlLmFtCkBAIC0xMDQsNiArMTA0LDcgQEAgc3RkX2hlYWRlcnMgPSBcCiAJJHtzdGRfc3Jj ZGlyfS9zdHJlYW1idWYgXAogCSR7c3RkX3NyY2Rpcn0vc3RyaW5nIFwKIAkke3N0ZF9zcmNkaXJ9 L3N5c3RlbV9lcnJvciBcCisJJHtzdGRfc3JjZGlyfS90ZXh0X2VuY29kaW5nIFwKIAkke3N0ZF9z cmNkaXJ9L3RocmVhZCBcCiAJJHtzdGRfc3JjZGlyfS91bm9yZGVyZWRfbWFwIFwKIAkke3N0ZF9z cmNkaXJ9L3Vub3JkZXJlZF9zZXQgXApAQCAtMTU5LDYgKzE2MCw3IEBAIGJpdHNfZnJlZXN0YW5k aW5nID0gXAogCSR7Yml0c19zcmNkaXJ9L3N0bF9yYXdfc3RvcmFnZV9pdGVyLmggXAogCSR7Yml0 c19zcmNkaXJ9L3N0bF9yZWxvcHMuaCBcCiAJJHtiaXRzX3NyY2Rpcn0vc3RsX3VuaW5pdGlhbGl6 ZWQuaCBcCisJJHtiaXRzX3NyY2Rpcn0vdGV4dF9lbmNvZGluZy1kYXRhLmggXAogCSR7Yml0c19z cmNkaXJ9L3ZlcnNpb24uaCBcCiAJJHtiaXRzX3NyY2Rpcn0vc3RyaW5nX3ZpZXcudGNjIFwKIAkk e2JpdHNfc3JjZGlyfS91bmljb2RlLmggXApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1 ZGUvYml0cy9sb2NhbGVfY2xhc3Nlcy5oIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9sb2Nh bGVfY2xhc3Nlcy5oCmluZGV4IDYyMWYyYTI5ZjUwLi5hMmU5NDIxNzAwNiAxMDA2NDQKLS0tIGEv bGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9sb2NhbGVfY2xhc3Nlcy5oCisrKyBiL2xpYnN0ZGMr Ky12My9pbmNsdWRlL2JpdHMvbG9jYWxlX2NsYXNzZXMuaApAQCAtNDAsNiArNDAsMTAgQEAKICNp bmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8ZXh0L2F0b21pY2l0eS5oPgogCisjaWZkZWYgX19n bGliY3h4X3RleHRfZW5jb2RpbmcKKyNpbmNsdWRlIDx0ZXh0X2VuY29kaW5nPgorI2VuZGlmCisK IG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KQEAgLTI0OCw2ICsyNTIsMTYgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICBzdHJpbmcKICAgICBuYW1lKCkgY29uc3Q7CiAKKyNp ZmRlZiBfX2dsaWJjeHhfdGV4dF9lbmNvZGluZworIyBpZiBfX0NIQVJfQklUX18gPT0gOAorICAg IHRleHRfZW5jb2RpbmcKKyAgICBlbmNvZGluZygpIGNvbnN0OworIyBlbHNlCisgICAgdGV4dF9l bmNvZGluZworICAgIGVuY29kaW5nKCkgY29uc3QgPSBkZWxldGU7CisjIGVuZGlmCisjZW5kaWYK KwogICAgIC8qKgogICAgICAqICBAYnJpZWYgIExvY2FsZSBlcXVhbGl0eS4KICAgICAgKgpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy90ZXh0X2VuY29kaW5nLWRhdGEuaCBi L2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvdGV4dF9lbmNvZGluZy1kYXRhLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdhYzJlOWRjM2Q5Ci0tLSAvZGV2L251bGwK KysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy90ZXh0X2VuY29kaW5nLWRhdGEuaApAQCAt MCwwICsxLDkwMiBAQAorLy8gR2VuZXJhdGVkIGJ5IGdlbl90ZXh0X2VuY29kaW5nX2RhdGEucHks IGRvIG5vdCBlZGl0LgorCisjaWZuZGVmIF9HTElCQ1hYX0dFVF9FTkNPRElOR19EQVRBCisjIGVy cm9yICJUaGlzIGlzIG5vdCBhIHB1YmxpYyBoZWFkZXIsIGRvIG5vdCBpbmNsdWRlIGl0IGRpcmVj dGx5IgorI2VuZGlmCisKKyAgeyAgICAzLCAiVVMtQVNDSUkiIH0sCisgIHsgICAgMywgImlzby1p ci02IiB9LAorICB7ICAgIDMsICJBTlNJX1gzLjQtMTk2OCIgfSwKKyAgeyAgICAzLCAiQU5TSV9Y My40LTE5ODYiIH0sCisgIHsgICAgMywgIklTT182NDYuaXJ2OjE5OTEiIH0sCisgIHsgICAgMywg IklTTzY0Ni1VUyIgfSwKKyAgeyAgICAzLCAidXMiIH0sCisgIHsgICAgMywgIklCTTM2NyIgfSwK KyAgeyAgICAzLCAiY3AzNjciIH0sCisgIHsgICAgMywgImNzQVNDSUkiIH0sCisgIHsgICAgNCwg IklTT184ODU5LTE6MTk4NyIgfSwKKyAgeyAgICA0LCAiaXNvLWlyLTEwMCIgfSwKKyAgeyAgICA0 LCAiSVNPXzg4NTktMSIgfSwKKyAgeyAgICA0LCAiSVNPLTg4NTktMSIgfSwKKyAgeyAgICA0LCAi bGF0aW4xIiB9LAorICB7ICAgIDQsICJsMSIgfSwKKyAgeyAgICA0LCAiSUJNODE5IiB9LAorICB7 ICAgIDQsICJDUDgxOSIgfSwKKyAgeyAgICA0LCAiY3NJU09MYXRpbjEiIH0sCisgIHsgICAgNSwg IklTT184ODU5LTI6MTk4NyIgfSwKKyAgeyAgICA1LCAiaXNvLWlyLTEwMSIgfSwKKyAgeyAgICA1 LCAiSVNPXzg4NTktMiIgfSwKKyAgeyAgICA1LCAiSVNPLTg4NTktMiIgfSwKKyAgeyAgICA1LCAi bGF0aW4yIiB9LAorICB7ICAgIDUsICJsMiIgfSwKKyAgeyAgICA1LCAiY3NJU09MYXRpbjIiIH0s CisgIHsgICAgNiwgIklTT184ODU5LTM6MTk4OCIgfSwKKyAgeyAgICA2LCAiaXNvLWlyLTEwOSIg fSwKKyAgeyAgICA2LCAiSVNPXzg4NTktMyIgfSwKKyAgeyAgICA2LCAiSVNPLTg4NTktMyIgfSwK KyAgeyAgICA2LCAibGF0aW4zIiB9LAorICB7ICAgIDYsICJsMyIgfSwKKyAgeyAgICA2LCAiY3NJ U09MYXRpbjMiIH0sCisgIHsgICAgNywgIklTT184ODU5LTQ6MTk4OCIgfSwKKyAgeyAgICA3LCAi aXNvLWlyLTExMCIgfSwKKyAgeyAgICA3LCAiSVNPXzg4NTktNCIgfSwKKyAgeyAgICA3LCAiSVNP LTg4NTktNCIgfSwKKyAgeyAgICA3LCAibGF0aW40IiB9LAorICB7ICAgIDcsICJsNCIgfSwKKyAg eyAgICA3LCAiY3NJU09MYXRpbjQiIH0sCisgIHsgICAgOCwgIklTT184ODU5LTU6MTk4OCIgfSwK KyAgeyAgICA4LCAiaXNvLWlyLTE0NCIgfSwKKyAgeyAgICA4LCAiSVNPXzg4NTktNSIgfSwKKyAg eyAgICA4LCAiSVNPLTg4NTktNSIgfSwKKyAgeyAgICA4LCAiY3lyaWxsaWMiIH0sCisgIHsgICAg OCwgImNzSVNPTGF0aW5DeXJpbGxpYyIgfSwKKyAgeyAgICA5LCAiSVNPXzg4NTktNjoxOTg3IiB9 LAorICB7ICAgIDksICJpc28taXItMTI3IiB9LAorICB7ICAgIDksICJJU09fODg1OS02IiB9LAor ICB7ICAgIDksICJJU08tODg1OS02IiB9LAorICB7ICAgIDksICJFQ01BLTExNCIgfSwKKyAgeyAg ICA5LCAiQVNNTy03MDgiIH0sCisgIHsgICAgOSwgImFyYWJpYyIgfSwKKyAgeyAgICA5LCAiY3NJ U09MYXRpbkFyYWJpYyIgfSwKKyAgeyAgIDEwLCAiSVNPXzg4NTktNzoxOTg3IiB9LAorICB7ICAg MTAsICJpc28taXItMTI2IiB9LAorICB7ICAgMTAsICJJU09fODg1OS03IiB9LAorICB7ICAgMTAs ICJJU08tODg1OS03IiB9LAorICB7ICAgMTAsICJFTE9UXzkyOCIgfSwKKyAgeyAgIDEwLCAiRUNN QS0xMTgiIH0sCisgIHsgICAxMCwgImdyZWVrIiB9LAorICB7ICAgMTAsICJncmVlazgiIH0sCisg IHsgICAxMCwgImNzSVNPTGF0aW5HcmVlayIgfSwKKyAgeyAgIDExLCAiSVNPXzg4NTktODoxOTg4 IiB9LAorICB7ICAgMTEsICJpc28taXItMTM4IiB9LAorICB7ICAgMTEsICJJU09fODg1OS04IiB9 LAorICB7ICAgMTEsICJJU08tODg1OS04IiB9LAorICB7ICAgMTEsICJoZWJyZXciIH0sCisgIHsg ICAxMSwgImNzSVNPTGF0aW5IZWJyZXciIH0sCisgIHsgICAxMiwgIklTT184ODU5LTk6MTk4OSIg fSwKKyAgeyAgIDEyLCAiaXNvLWlyLTE0OCIgfSwKKyAgeyAgIDEyLCAiSVNPXzg4NTktOSIgfSwK KyAgeyAgIDEyLCAiSVNPLTg4NTktOSIgfSwKKyAgeyAgIDEyLCAibGF0aW41IiB9LAorICB7ICAg MTIsICJsNSIgfSwKKyAgeyAgIDEyLCAiY3NJU09MYXRpbjUiIH0sCisgIHsgICAxMywgIklTTy04 ODU5LTEwIiB9LAorICB7ICAgMTMsICJpc28taXItMTU3IiB9LAorICB7ICAgMTMsICJsNiIgfSwK KyAgeyAgIDEzLCAiSVNPXzg4NTktMTA6MTk5MiIgfSwKKyAgeyAgIDEzLCAiY3NJU09MYXRpbjYi IH0sCisgIHsgICAxMywgImxhdGluNiIgfSwKKyAgeyAgIDE0LCAiSVNPXzY5MzctMi1hZGQiIH0s CisgIHsgICAxNCwgImlzby1pci0xNDIiIH0sCisgIHsgICAxNCwgImNzSVNPVGV4dENvbW0iIH0s CisgIHsgICAxNSwgIkpJU19YMDIwMSIgfSwKKyAgeyAgIDE1LCAiWDAyMDEiIH0sCisgIHsgICAx NSwgImNzSGFsZldpZHRoS2F0YWthbmEiIH0sCisgIHsgICAxNiwgIkpJU19FbmNvZGluZyIgfSwK KyAgeyAgIDE2LCAiY3NKSVNFbmNvZGluZyIgfSwKKyAgeyAgIDE3LCAiU2hpZnRfSklTIiB9LAor ICB7ICAgMTcsICJNU19LYW5qaSIgfSwKKyAgeyAgIDE3LCAiY3NTaGlmdEpJUyIgfSwKKyAgeyAg IDE4LCAiRXh0ZW5kZWRfVU5JWF9Db2RlX1BhY2tlZF9Gb3JtYXRfZm9yX0phcGFuZXNlIiB9LAor ICB7ICAgMTgsICJjc0VVQ1BrZEZtdEphcGFuZXNlIiB9LAorICB7ICAgMTgsICJFVUMtSlAiIH0s CisgIHsgICAxOSwgIkV4dGVuZGVkX1VOSVhfQ29kZV9GaXhlZF9XaWR0aF9mb3JfSmFwYW5lc2Ui IH0sCisgIHsgICAxOSwgImNzRVVDRml4V2lkSmFwYW5lc2UiIH0sCisgIHsgICAyMCwgIkJTXzQ3 MzAiIH0sCisgIHsgICAyMCwgImlzby1pci00IiB9LAorICB7ICAgMjAsICJJU082NDYtR0IiIH0s CisgIHsgICAyMCwgImdiIiB9LAorICB7ICAgMjAsICJ1ayIgfSwKKyAgeyAgIDIwLCAiY3NJU080 VW5pdGVkS2luZ2RvbSIgfSwKKyAgeyAgIDIxLCAiU0VOXzg1MDIwMF9DIiB9LAorICB7ICAgMjEs ICJpc28taXItMTEiIH0sCisgIHsgICAyMSwgIklTTzY0Ni1TRTIiIH0sCisgIHsgICAyMSwgInNl MiIgfSwKKyAgeyAgIDIxLCAiY3NJU08xMVN3ZWRpc2hGb3JOYW1lcyIgfSwKKyAgeyAgIDIyLCAi SVQiIH0sCisgIHsgICAyMiwgImlzby1pci0xNSIgfSwKKyAgeyAgIDIyLCAiSVNPNjQ2LUlUIiB9 LAorICB7ICAgMjIsICJjc0lTTzE1SXRhbGlhbiIgfSwKKyAgeyAgIDIzLCAiRVMiIH0sCisgIHsg ICAyMywgImlzby1pci0xNyIgfSwKKyAgeyAgIDIzLCAiSVNPNjQ2LUVTIiB9LAorICB7ICAgMjMs ICJjc0lTTzE3U3BhbmlzaCIgfSwKKyAgeyAgIDI0LCAiRElOXzY2MDAzIiB9LAorICB7ICAgMjQs ICJpc28taXItMjEiIH0sCisgIHsgICAyNCwgImRlIiB9LAorICB7ICAgMjQsICJJU082NDYtREUi IH0sCisgIHsgICAyNCwgImNzSVNPMjFHZXJtYW4iIH0sCisgIHsgICAyNSwgIk5TXzQ1NTEtMSIg fSwKKyAgeyAgIDI1LCAiaXNvLWlyLTYwIiB9LAorICB7ICAgMjUsICJJU082NDYtTk8iIH0sCisg IHsgICAyNSwgIm5vIiB9LAorICB7ICAgMjUsICJjc0lTTzYwRGFuaXNoTm9yd2VnaWFuIiB9LAor ICB7ICAgMjUsICJjc0lTTzYwTm9yd2VnaWFuMSIgfSwKKyAgeyAgIDI2LCAiTkZfWl82Mi0wMTAi IH0sCisgIHsgICAyNiwgImlzby1pci02OSIgfSwKKyAgeyAgIDI2LCAiSVNPNjQ2LUZSIiB9LAor ICB7ICAgMjYsICJmciIgfSwKKyAgeyAgIDI2LCAiY3NJU082OUZyZW5jaCIgfSwKKyAgeyAgIDI3 LCAiSVNPLTEwNjQ2LVVURi0xIiB9LAorICB7ICAgMjcsICJjc0lTTzEwNjQ2VVRGMSIgfSwKKyAg eyAgIDI4LCAiSVNPXzY0Ni5iYXNpYzoxOTgzIiB9LAorICB7ICAgMjgsICJyZWYiIH0sCisgIHsg ICAyOCwgImNzSVNPNjQ2YmFzaWMxOTgzIiB9LAorICB7ICAgMjksICJJTlZBUklBTlQiIH0sCisg IHsgICAyOSwgImNzSU5WQVJJQU5UIiB9LAorICB7ICAgMzAsICJJU09fNjQ2LmlydjoxOTgzIiB9 LAorICB7ICAgMzAsICJpc28taXItMiIgfSwKKyAgeyAgIDMwLCAiaXJ2IiB9LAorICB7ICAgMzAs ICJjc0lTTzJJbnRsUmVmVmVyc2lvbiIgfSwKKyAgeyAgIDMxLCAiTkFUUy1TRUZJIiB9LAorICB7 ICAgMzEsICJpc28taXItOC0xIiB9LAorICB7ICAgMzEsICJjc05BVFNTRUZJIiB9LAorICB7ICAg MzIsICJOQVRTLVNFRkktQUREIiB9LAorICB7ICAgMzIsICJpc28taXItOC0yIiB9LAorICB7ICAg MzIsICJjc05BVFNTRUZJQUREIiB9LAorICB7ICAgMzUsICJTRU5fODUwMjAwX0IiIH0sCisgIHsg ICAzNSwgImlzby1pci0xMCIgfSwKKyAgeyAgIDM1LCAiRkkiIH0sCisgIHsgICAzNSwgIklTTzY0 Ni1GSSIgfSwKKyAgeyAgIDM1LCAiSVNPNjQ2LVNFIiB9LAorICB7ICAgMzUsICJzZSIgfSwKKyAg eyAgIDM1LCAiY3NJU08xMFN3ZWRpc2giIH0sCisgIHsgICAzNiwgIktTX0NfNTYwMS0xOTg3IiB9 LAorICB7ICAgMzYsICJpc28taXItMTQ5IiB9LAorICB7ICAgMzYsICJLU19DXzU2MDEtMTk4OSIg fSwKKyAgeyAgIDM2LCAiS1NDXzU2MDEiIH0sCisgIHsgICAzNiwgImtvcmVhbiIgfSwKKyAgeyAg IDM2LCAiY3NLU0M1NjAxMTk4NyIgfSwKKyAgeyAgIDM3LCAiSVNPLTIwMjItS1IiIH0sCisgIHsg ICAzNywgImNzSVNPMjAyMktSIiB9LAorICB7ICAgMzgsICJFVUMtS1IiIH0sCisgIHsgICAzOCwg ImNzRVVDS1IiIH0sCisgIHsgICAzOSwgIklTTy0yMDIyLUpQIiB9LAorICB7ICAgMzksICJjc0lT TzIwMjJKUCIgfSwKKyAgeyAgIDQwLCAiSVNPLTIwMjItSlAtMiIgfSwKKyAgeyAgIDQwLCAiY3NJ U08yMDIySlAyIiB9LAorICB7ICAgNDEsICJKSVNfQzYyMjAtMTk2OS1qcCIgfSwKKyAgeyAgIDQx LCAiSklTX0M2MjIwLTE5NjkiIH0sCisgIHsgICA0MSwgImlzby1pci0xMyIgfSwKKyAgeyAgIDQx LCAia2F0YWthbmEiIH0sCisgIHsgICA0MSwgIngwMjAxLTciIH0sCisgIHsgICA0MSwgImNzSVNP MTNKSVNDNjIyMGpwIiB9LAorICB7ICAgNDIsICJKSVNfQzYyMjAtMTk2OS1ybyIgfSwKKyAgeyAg IDQyLCAiaXNvLWlyLTE0IiB9LAorICB7ICAgNDIsICJqcCIgfSwKKyAgeyAgIDQyLCAiSVNPNjQ2 LUpQIiB9LAorICB7ICAgNDIsICJjc0lTTzE0SklTQzYyMjBybyIgfSwKKyAgeyAgIDQzLCAiUFQi IH0sCisgIHsgICA0MywgImlzby1pci0xNiIgfSwKKyAgeyAgIDQzLCAiSVNPNjQ2LVBUIiB9LAor ICB7ICAgNDMsICJjc0lTTzE2UG9ydHVndWVzZSIgfSwKKyAgeyAgIDQ0LCAiZ3JlZWs3LW9sZCIg fSwKKyAgeyAgIDQ0LCAiaXNvLWlyLTE4IiB9LAorICB7ICAgNDQsICJjc0lTTzE4R3JlZWs3T2xk IiB9LAorICB7ICAgNDUsICJsYXRpbi1ncmVlayIgfSwKKyAgeyAgIDQ1LCAiaXNvLWlyLTE5IiB9 LAorICB7ICAgNDUsICJjc0lTTzE5TGF0aW5HcmVlayIgfSwKKyAgeyAgIDQ2LCAiTkZfWl82Mi0w MTBfKDE5NzMpIiB9LAorICB7ICAgNDYsICJpc28taXItMjUiIH0sCisgIHsgICA0NiwgIklTTzY0 Ni1GUjEiIH0sCisgIHsgICA0NiwgImNzSVNPMjVGcmVuY2giIH0sCisgIHsgICA0NywgIkxhdGlu LWdyZWVrLTEiIH0sCisgIHsgICA0NywgImlzby1pci0yNyIgfSwKKyAgeyAgIDQ3LCAiY3NJU08y N0xhdGluR3JlZWsxIiB9LAorICB7ICAgNDgsICJJU09fNTQyNyIgfSwKKyAgeyAgIDQ4LCAiaXNv LWlyLTM3IiB9LAorICB7ICAgNDgsICJjc0lTTzU0MjdDeXJpbGxpYyIgfSwKKyAgeyAgIDQ5LCAi SklTX0M2MjI2LTE5NzgiIH0sCisgIHsgICA0OSwgImlzby1pci00MiIgfSwKKyAgeyAgIDQ5LCAi Y3NJU080MkpJU0M2MjI2MTk3OCIgfSwKKyAgeyAgIDUwLCAiQlNfdmlld2RhdGEiIH0sCisgIHsg ICA1MCwgImlzby1pci00NyIgfSwKKyAgeyAgIDUwLCAiY3NJU080N0JTVmlld2RhdGEiIH0sCisg IHsgICA1MSwgIklOSVMiIH0sCisgIHsgICA1MSwgImlzby1pci00OSIgfSwKKyAgeyAgIDUxLCAi Y3NJU080OUlOSVMiIH0sCisgIHsgICA1MiwgIklOSVMtOCIgfSwKKyAgeyAgIDUyLCAiaXNvLWly LTUwIiB9LAorICB7ICAgNTIsICJjc0lTTzUwSU5JUzgiIH0sCisgIHsgICA1MywgIklOSVMtY3ly aWxsaWMiIH0sCisgIHsgICA1MywgImlzby1pci01MSIgfSwKKyAgeyAgIDUzLCAiY3NJU081MUlO SVNDeXJpbGxpYyIgfSwKKyAgeyAgIDU0LCAiSVNPXzU0Mjc6MTk4MSIgfSwKKyAgeyAgIDU0LCAi aXNvLWlyLTU0IiB9LAorICB7ICAgNTQsICJJU081NDI3Q3lyaWxsaWMxOTgxIiB9LAorICB7ICAg NTQsICJjc0lTTzU0MjcxOTgxIiB9LAorICB7ICAgNTUsICJJU09fNTQyODoxOTgwIiB9LAorICB7 ICAgNTUsICJpc28taXItNTUiIH0sCisgIHsgICA1NSwgImNzSVNPNTQyOEdyZWVrIiB9LAorICB7 ICAgNTYsICJHQl8xOTg4LTgwIiB9LAorICB7ICAgNTYsICJpc28taXItNTciIH0sCisgIHsgICA1 NiwgImNuIiB9LAorICB7ICAgNTYsICJJU082NDYtQ04iIH0sCisgIHsgICA1NiwgImNzSVNPNTdH QjE5ODgiIH0sCisgIHsgICA1NywgIkdCXzIzMTItODAiIH0sCisgIHsgICA1NywgImlzby1pci01 OCIgfSwKKyAgeyAgIDU3LCAiY2hpbmVzZSIgfSwKKyAgeyAgIDU3LCAiY3NJU081OEdCMjMxMjgw IiB9LAorICB7ICAgNTgsICJOU180NTUxLTIiIH0sCisgIHsgICA1OCwgIklTTzY0Ni1OTzIiIH0s CisgIHsgICA1OCwgImlzby1pci02MSIgfSwKKyAgeyAgIDU4LCAibm8yIiB9LAorICB7ICAgNTgs ICJjc0lTTzYxTm9yd2VnaWFuMiIgfSwKKyAgeyAgIDU5LCAidmlkZW90ZXgtc3VwcGwiIH0sCisg IHsgICA1OSwgImlzby1pci03MCIgfSwKKyAgeyAgIDU5LCAiY3NJU083MFZpZGVvdGV4U3VwcDEi IH0sCisgIHsgICA2MCwgIlBUMiIgfSwKKyAgeyAgIDYwLCAiaXNvLWlyLTg0IiB9LAorICB7ICAg NjAsICJJU082NDYtUFQyIiB9LAorICB7ICAgNjAsICJjc0lTTzg0UG9ydHVndWVzZTIiIH0sCisg IHsgICA2MSwgIkVTMiIgfSwKKyAgeyAgIDYxLCAiaXNvLWlyLTg1IiB9LAorICB7ICAgNjEsICJJ U082NDYtRVMyIiB9LAorICB7ICAgNjEsICJjc0lTTzg1U3BhbmlzaDIiIH0sCisgIHsgICA2Miwg Ik1TWl83Nzk1LjMiIH0sCisgIHsgICA2MiwgImlzby1pci04NiIgfSwKKyAgeyAgIDYyLCAiSVNP NjQ2LUhVIiB9LAorICB7ICAgNjIsICJodSIgfSwKKyAgeyAgIDYyLCAiY3NJU084Nkh1bmdhcmlh biIgfSwKKyAgeyAgIDYzLCAiSklTX0M2MjI2LTE5ODMiIH0sCisgIHsgICA2MywgImlzby1pci04 NyIgfSwKKyAgeyAgIDYzLCAieDAyMDgiIH0sCisgIHsgICA2MywgIkpJU19YMDIwOC0xOTgzIiB9 LAorICB7ICAgNjMsICJjc0lTTzg3SklTWDAyMDgiIH0sCisgIHsgICA2NCwgImdyZWVrNyIgfSwK KyAgeyAgIDY0LCAiaXNvLWlyLTg4IiB9LAorICB7ICAgNjQsICJjc0lTTzg4R3JlZWs3IiB9LAor ICB7ICAgNjUsICJBU01PXzQ0OSIgfSwKKyAgeyAgIDY1LCAiSVNPXzkwMzYiIH0sCisgIHsgICA2 NSwgImFyYWJpYzciIH0sCisgIHsgICA2NSwgImlzby1pci04OSIgfSwKKyAgeyAgIDY1LCAiY3NJ U084OUFTTU80NDkiIH0sCisgIHsgICA2NiwgImlzby1pci05MCIgfSwKKyAgeyAgIDY2LCAiY3NJ U085MCIgfSwKKyAgeyAgIDY3LCAiSklTX0M2MjI5LTE5ODQtYSIgfSwKKyAgeyAgIDY3LCAiaXNv LWlyLTkxIiB9LAorICB7ICAgNjcsICJqcC1vY3ItYSIgfSwKKyAgeyAgIDY3LCAiY3NJU085MUpJ U0M2MjI5MTk4NGEiIH0sCisgIHsgICA2OCwgIkpJU19DNjIyOS0xOTg0LWIiIH0sCisgIHsgICA2 OCwgImlzby1pci05MiIgfSwKKyAgeyAgIDY4LCAiSVNPNjQ2LUpQLU9DUi1CIiB9LAorICB7ICAg NjgsICJqcC1vY3ItYiIgfSwKKyAgeyAgIDY4LCAiY3NJU085MkpJU0M2Mjk5MTk4NGIiIH0sCisg IHsgICA2OSwgIkpJU19DNjIyOS0xOTg0LWItYWRkIiB9LAorICB7ICAgNjksICJpc28taXItOTMi IH0sCisgIHsgICA2OSwgImpwLW9jci1iLWFkZCIgfSwKKyAgeyAgIDY5LCAiY3NJU085M0pJUzYy MjkxOTg0YmFkZCIgfSwKKyAgeyAgIDcwLCAiSklTX0M2MjI5LTE5ODQtaGFuZCIgfSwKKyAgeyAg IDcwLCAiaXNvLWlyLTk0IiB9LAorICB7ICAgNzAsICJqcC1vY3ItaGFuZCIgfSwKKyAgeyAgIDcw LCAiY3NJU085NEpJUzYyMjkxOTg0aGFuZCIgfSwKKyAgeyAgIDcxLCAiSklTX0M2MjI5LTE5ODQt aGFuZC1hZGQiIH0sCisgIHsgICA3MSwgImlzby1pci05NSIgfSwKKyAgeyAgIDcxLCAianAtb2Ny LWhhbmQtYWRkIiB9LAorICB7ICAgNzEsICJjc0lTTzk1SklTNjIyOTE5ODRoYW5kYWRkIiB9LAor ICB7ICAgNzIsICJKSVNfQzYyMjktMTk4NC1rYW5hIiB9LAorICB7ICAgNzIsICJpc28taXItOTYi IH0sCisgIHsgICA3MiwgImNzSVNPOTZKSVNDNjIyOTE5ODRrYW5hIiB9LAorICB7ICAgNzMsICJJ U09fMjAzMy0xOTgzIiB9LAorICB7ICAgNzMsICJpc28taXItOTgiIH0sCisgIHsgICA3MywgImUx M2IiIH0sCisgIHsgICA3MywgImNzSVNPMjAzMyIgfSwKKyAgeyAgIDc0LCAiQU5TSV9YMy4xMTAt MTk4MyIgfSwKKyAgeyAgIDc0LCAiaXNvLWlyLTk5IiB9LAorICB7ICAgNzQsICJDU0FfVDUwMC0x OTgzIiB9LAorICB7ICAgNzQsICJOQVBMUFMiIH0sCisgIHsgICA3NCwgImNzSVNPOTlOQVBMUFMi IH0sCisgIHsgICA3NSwgIlQuNjEtN2JpdCIgfSwKKyAgeyAgIDc1LCAiaXNvLWlyLTEwMiIgfSwK KyAgeyAgIDc1LCAiY3NJU08xMDJUNjE3Yml0IiB9LAorICB7ICAgNzYsICJULjYxLThiaXQiIH0s CisgIHsgICA3NiwgIlQuNjEiIH0sCisgIHsgICA3NiwgImlzby1pci0xMDMiIH0sCisgIHsgICA3 NiwgImNzSVNPMTAzVDYxOGJpdCIgfSwKKyAgeyAgIDc3LCAiRUNNQS1jeXJpbGxpYyIgfSwKKyAg eyAgIDc3LCAiaXNvLWlyLTExMSIgfSwKKyAgeyAgIDc3LCAiS09JOC1FIiB9LAorICB7ICAgNzcs ICJjc0lTTzExMUVDTUFDeXJpbGxpYyIgfSwKKyAgeyAgIDc4LCAiQ1NBX1oyNDMuNC0xOTg1LTEi IH0sCisgIHsgICA3OCwgImlzby1pci0xMjEiIH0sCisgIHsgICA3OCwgIklTTzY0Ni1DQSIgfSwK KyAgeyAgIDc4LCAiY3NhNy0xIiB9LAorICB7ICAgNzgsICJjc2E3MSIgfSwKKyAgeyAgIDc4LCAi Y2EiIH0sCisgIHsgICA3OCwgImNzSVNPMTIxQ2FuYWRpYW4xIiB9LAorICB7ICAgNzksICJDU0Ff WjI0My40LTE5ODUtMiIgfSwKKyAgeyAgIDc5LCAiaXNvLWlyLTEyMiIgfSwKKyAgeyAgIDc5LCAi SVNPNjQ2LUNBMiIgfSwKKyAgeyAgIDc5LCAiY3NhNy0yIiB9LAorICB7ICAgNzksICJjc2E3MiIg fSwKKyAgeyAgIDc5LCAiY3NJU08xMjJDYW5hZGlhbjIiIH0sCisgIHsgICA4MCwgIkNTQV9aMjQz LjQtMTk4NS1nciIgfSwKKyAgeyAgIDgwLCAiaXNvLWlyLTEyMyIgfSwKKyAgeyAgIDgwLCAiY3NJ U08xMjNDU0FaMjQzNDE5ODVnciIgfSwKKyAgeyAgIDgxLCAiSVNPXzg4NTktNi1FIiB9LAorICB7 ICAgODEsICJjc0lTTzg4NTk2RSIgfSwKKyAgeyAgIDgxLCAiSVNPLTg4NTktNi1FIiB9LAorICB7 ICAgODIsICJJU09fODg1OS02LUkiIH0sCisgIHsgICA4MiwgImNzSVNPODg1OTZJIiB9LAorICB7 ICAgODIsICJJU08tODg1OS02LUkiIH0sCisgIHsgICA4MywgIlQuMTAxLUcyIiB9LAorICB7ICAg ODMsICJpc28taXItMTI4IiB9LAorICB7ICAgODMsICJjc0lTTzEyOFQxMDFHMiIgfSwKKyAgeyAg IDg0LCAiSVNPXzg4NTktOC1FIiB9LAorICB7ICAgODQsICJjc0lTTzg4NTk4RSIgfSwKKyAgeyAg IDg0LCAiSVNPLTg4NTktOC1FIiB9LAorICB7ICAgODUsICJJU09fODg1OS04LUkiIH0sCisgIHsg ICA4NSwgImNzSVNPODg1OThJIiB9LAorICB7ICAgODUsICJJU08tODg1OS04LUkiIH0sCisgIHsg ICA4NiwgIkNTTl8zNjkxMDMiIH0sCisgIHsgICA4NiwgImlzby1pci0xMzkiIH0sCisgIHsgICA4 NiwgImNzSVNPMTM5Q1NOMzY5MTAzIiB9LAorICB7ICAgODcsICJKVVNfSS5CMS4wMDIiIH0sCisg IHsgICA4NywgImlzby1pci0xNDEiIH0sCisgIHsgICA4NywgIklTTzY0Ni1ZVSIgfSwKKyAgeyAg IDg3LCAianMiIH0sCisgIHsgICA4NywgInl1IiB9LAorICB7ICAgODcsICJjc0lTTzE0MUpVU0lC MTAwMiIgfSwKKyAgeyAgIDg4LCAiSUVDX1AyNy0xIiB9LAorICB7ICAgODgsICJpc28taXItMTQz IiB9LAorICB7ICAgODgsICJjc0lTTzE0M0lFQ1AyNzEiIH0sCisgIHsgICA4OSwgIkpVU19JLkIx LjAwMy1zZXJiIiB9LAorICB7ICAgODksICJpc28taXItMTQ2IiB9LAorICB7ICAgODksICJzZXJi aWFuIiB9LAorICB7ICAgODksICJjc0lTTzE0NlNlcmJpYW4iIH0sCisgIHsgICA5MCwgIkpVU19J LkIxLjAwMy1tYWMiIH0sCisgIHsgICA5MCwgIm1hY2Vkb25pYW4iIH0sCisgIHsgICA5MCwgImlz by1pci0xNDciIH0sCisgIHsgICA5MCwgImNzSVNPMTQ3TWFjZWRvbmlhbiIgfSwKKyAgeyAgIDkx LCAiZ3JlZWstY2NpdHQiIH0sCisgIHsgICA5MSwgImlzby1pci0xNTAiIH0sCisgIHsgICA5MSwg ImNzSVNPMTUwIiB9LAorICB7ICAgOTEsICJjc0lTTzE1MEdyZWVrQ0NJVFQiIH0sCisgIHsgICA5 MiwgIk5DX05DMDAtMTA6ODEiIH0sCisgIHsgICA5MiwgImN1YmEiIH0sCisgIHsgICA5MiwgImlz by1pci0xNTEiIH0sCisgIHsgICA5MiwgIklTTzY0Ni1DVSIgfSwKKyAgeyAgIDkyLCAiY3NJU08x NTFDdWJhIiB9LAorICB7ICAgOTMsICJJU09fNjkzNy0yLTI1IiB9LAorICB7ICAgOTMsICJpc28t aXItMTUyIiB9LAorICB7ICAgOTMsICJjc0lTTzY5MzdBZGQiIH0sCisgIHsgICA5NCwgIkdPU1Rf MTk3NjgtNzQiIH0sCisgIHsgICA5NCwgIlNUX1NFVl8zNTgtODgiIH0sCisgIHsgICA5NCwgImlz by1pci0xNTMiIH0sCisgIHsgICA5NCwgImNzSVNPMTUzR09TVDE5NzY4NzQiIH0sCisgIHsgICA5 NSwgIklTT184ODU5LXN1cHAiIH0sCisgIHsgICA5NSwgImlzby1pci0xNTQiIH0sCisgIHsgICA5 NSwgImxhdGluMS0yLTUiIH0sCisgIHsgICA5NSwgImNzSVNPODg1OVN1cHAiIH0sCisgIHsgICA5 NiwgIklTT18xMDM2Ny1ib3giIH0sCisgIHsgICA5NiwgImlzby1pci0xNTUiIH0sCisgIHsgICA5 NiwgImNzSVNPMTAzNjdCb3giIH0sCisgIHsgICA5NywgImxhdGluLWxhcCIgfSwKKyAgeyAgIDk3 LCAibGFwIiB9LAorICB7ICAgOTcsICJpc28taXItMTU4IiB9LAorICB7ICAgOTcsICJjc0lTTzE1 OExhcCIgfSwKKyAgeyAgIDk4LCAiSklTX1gwMjEyLTE5OTAiIH0sCisgIHsgICA5OCwgIngwMjEy IiB9LAorICB7ICAgOTgsICJpc28taXItMTU5IiB9LAorICB7ICAgOTgsICJjc0lTTzE1OUpJU1gw MjEyMTk5MCIgfSwKKyAgeyAgIDk5LCAiRFNfMjA4OSIgfSwKKyAgeyAgIDk5LCAiRFMyMDg5IiB9 LAorICB7ICAgOTksICJJU082NDYtREsiIH0sCisgIHsgICA5OSwgImRrIiB9LAorICB7ICAgOTks ICJjc0lTTzY0NkRhbmlzaCIgfSwKKyAgeyAgMTAwLCAidXMtZGsiIH0sCisgIHsgIDEwMCwgImNz VVNESyIgfSwKKyAgeyAgMTAxLCAiZGstdXMiIH0sCisgIHsgIDEwMSwgImNzREtVUyIgfSwKKyAg eyAgMTAyLCAiS1NDNTYzNiIgfSwKKyAgeyAgMTAyLCAiSVNPNjQ2LUtSIiB9LAorICB7ICAxMDIs ICJjc0tTQzU2MzYiIH0sCisgIHsgIDEwMywgIlVOSUNPREUtMS0xLVVURi03IiB9LAorICB7ICAx MDMsICJjc1VuaWNvZGUxMVVURjciIH0sCisgIHsgIDEwNCwgIklTTy0yMDIyLUNOIiB9LAorICB7 ICAxMDQsICJjc0lTTzIwMjJDTiIgfSwKKyAgeyAgMTA1LCAiSVNPLTIwMjItQ04tRVhUIiB9LAor ICB7ICAxMDUsICJjc0lTTzIwMjJDTkVYVCIgfSwKKyNkZWZpbmUgX0dMSUJDWFhfVEVYVF9FTkNP RElOR19VVEY4X09GRlNFVCA0MTMKKyAgeyAgMTA2LCAiVVRGLTgiIH0sCisgIHsgIDEwNiwgImNz VVRGOCIgfSwKKyAgeyAgMTA5LCAiSVNPLTg4NTktMTMiIH0sCisgIHsgIDEwOSwgImNzSVNPODg1 OTEzIiB9LAorICB7ICAxMTAsICJJU08tODg1OS0xNCIgfSwKKyAgeyAgMTEwLCAiaXNvLWlyLTE5 OSIgfSwKKyAgeyAgMTEwLCAiSVNPXzg4NTktMTQ6MTk5OCIgfSwKKyAgeyAgMTEwLCAiSVNPXzg4 NTktMTQiIH0sCisgIHsgIDExMCwgImxhdGluOCIgfSwKKyAgeyAgMTEwLCAiaXNvLWNlbHRpYyIg fSwKKyAgeyAgMTEwLCAibDgiIH0sCisgIHsgIDExMCwgImNzSVNPODg1OTE0IiB9LAorICB7ICAx MTEsICJJU08tODg1OS0xNSIgfSwKKyAgeyAgMTExLCAiSVNPXzg4NTktMTUiIH0sCisgIHsgIDEx MSwgIkxhdGluLTkiIH0sCisgIHsgIDExMSwgImNzSVNPODg1OTE1IiB9LAorICB7ICAxMTIsICJJ U08tODg1OS0xNiIgfSwKKyAgeyAgMTEyLCAiaXNvLWlyLTIyNiIgfSwKKyAgeyAgMTEyLCAiSVNP Xzg4NTktMTY6MjAwMSIgfSwKKyAgeyAgMTEyLCAiSVNPXzg4NTktMTYiIH0sCisgIHsgIDExMiwg ImxhdGluMTAiIH0sCisgIHsgIDExMiwgImwxMCIgfSwKKyAgeyAgMTEyLCAiY3NJU084ODU5MTYi IH0sCisgIHsgIDExMywgIkdCSyIgfSwKKyAgeyAgMTEzLCAiQ1A5MzYiIH0sCisgIHsgIDExMywg Ik1TOTM2IiB9LAorICB7ICAxMTMsICJ3aW5kb3dzLTkzNiIgfSwKKyAgeyAgMTEzLCAiY3NHQksi IH0sCisgIHsgIDExNCwgIkdCMTgwMzAiIH0sCisgIHsgIDExNCwgImNzR0IxODAzMCIgfSwKKyAg eyAgMTE1LCAiT1NEX0VCQ0RJQ19ERjA0XzE1IiB9LAorICB7ICAxMTUsICJjc09TREVCQ0RJQ0RG MDQxNSIgfSwKKyAgeyAgMTE2LCAiT1NEX0VCQ0RJQ19ERjAzX0lSViIgfSwKKyAgeyAgMTE2LCAi Y3NPU0RFQkNESUNERjAzSVJWIiB9LAorICB7ICAxMTcsICJPU0RfRUJDRElDX0RGMDRfMSIgfSwK KyAgeyAgMTE3LCAiY3NPU0RFQkNESUNERjA0MSIgfSwKKyAgeyAgMTE4LCAiSVNPLTExNTQ4LTEi IH0sCisgIHsgIDExOCwgIklTT18xMTU0OC0xIiB9LAorICB7ICAxMTgsICJJU09fVFJfMTE1NDgt MSIgfSwKKyAgeyAgMTE4LCAiY3NJU08xMTU0ODEiIH0sCisgIHsgIDExOSwgIktaLTEwNDgiIH0s CisgIHsgIDExOSwgIlNUUksxMDQ4LTIwMDIiIH0sCisgIHsgIDExOSwgIlJLMTA0OCIgfSwKKyAg eyAgMTE5LCAiY3NLWjEwNDgiIH0sCisgIHsgMTAwMCwgIklTTy0xMDY0Ni1VQ1MtMiIgfSwKKyAg eyAxMDAwLCAiY3NVbmljb2RlIiB9LAorICB7IDEwMDEsICJJU08tMTA2NDYtVUNTLTQiIH0sCisg IHsgMTAwMSwgImNzVUNTNCIgfSwKKyAgeyAxMDAyLCAiSVNPLTEwNjQ2LVVDUy1CYXNpYyIgfSwK KyAgeyAxMDAyLCAiY3NVbmljb2RlQVNDSUkiIH0sCisgIHsgMTAwMywgIklTTy0xMDY0Ni1Vbmlj b2RlLUxhdGluMSIgfSwKKyAgeyAxMDAzLCAiY3NVbmljb2RlTGF0aW4xIiB9LAorICB7IDEwMDMs ICJJU08tMTA2NDYiIH0sCisgIHsgMTAwNCwgIklTTy0xMDY0Ni1KLTEiIH0sCisgIHsgMTAwNCwg ImNzVW5pY29kZUphcGFuZXNlIiB9LAorICB7IDEwMDUsICJJU08tVW5pY29kZS1JQk0tMTI2MSIg fSwKKyAgeyAxMDA1LCAiY3NVbmljb2RlSUJNMTI2MSIgfSwKKyAgeyAxMDA2LCAiSVNPLVVuaWNv ZGUtSUJNLTEyNjgiIH0sCisgIHsgMTAwNiwgImNzVW5pY29kZUlCTTEyNjgiIH0sCisgIHsgMTAw NywgIklTTy1Vbmljb2RlLUlCTS0xMjc2IiB9LAorICB7IDEwMDcsICJjc1VuaWNvZGVJQk0xMjc2 IiB9LAorICB7IDEwMDgsICJJU08tVW5pY29kZS1JQk0tMTI2NCIgfSwKKyAgeyAxMDA4LCAiY3NV bmljb2RlSUJNMTI2NCIgfSwKKyAgeyAxMDA5LCAiSVNPLVVuaWNvZGUtSUJNLTEyNjUiIH0sCisg IHsgMTAwOSwgImNzVW5pY29kZUlCTTEyNjUiIH0sCisgIHsgMTAxMCwgIlVOSUNPREUtMS0xIiB9 LAorICB7IDEwMTAsICJjc1VuaWNvZGUxMSIgfSwKKyAgeyAxMDExLCAiU0NTVSIgfSwKKyAgeyAx MDExLCAiY3NTQ1NVIiB9LAorICB7IDEwMTIsICJVVEYtNyIgfSwKKyAgeyAxMDEyLCAiY3NVVEY3 IiB9LAorICB7IDEwMTMsICJVVEYtMTZCRSIgfSwKKyAgeyAxMDEzLCAiY3NVVEYxNkJFIiB9LAor ICB7IDEwMTQsICJVVEYtMTZMRSIgfSwKKyAgeyAxMDE0LCAiY3NVVEYxNkxFIiB9LAorICB7IDEw MTUsICJVVEYtMTYiIH0sCisgIHsgMTAxNSwgImNzVVRGMTYiIH0sCisgIHsgMTAxNiwgIkNFU1Ut OCIgfSwKKyAgeyAxMDE2LCAiY3NDRVNVOCIgfSwKKyAgeyAxMDE2LCAiY3NDRVNVLTgiIH0sCisg IHsgMTAxNywgIlVURi0zMiIgfSwKKyAgeyAxMDE3LCAiY3NVVEYzMiIgfSwKKyAgeyAxMDE4LCAi VVRGLTMyQkUiIH0sCisgIHsgMTAxOCwgImNzVVRGMzJCRSIgfSwKKyAgeyAxMDE5LCAiVVRGLTMy TEUiIH0sCisgIHsgMTAxOSwgImNzVVRGMzJMRSIgfSwKKyAgeyAxMDIwLCAiQk9DVS0xIiB9LAor ICB7IDEwMjAsICJjc0JPQ1UxIiB9LAorICB7IDEwMjAsICJjc0JPQ1UtMSIgfSwKKyAgeyAxMDIx LCAiVVRGLTctSU1BUCIgfSwKKyAgeyAxMDIxLCAiY3NVVEY3SU1BUCIgfSwKKyAgeyAyMDAwLCAi SVNPLTg4NTktMS1XaW5kb3dzLTMuMC1MYXRpbi0xIiB9LAorICB7IDIwMDAsICJjc1dpbmRvd3Mz MExhdGluMSIgfSwKKyAgeyAyMDAxLCAiSVNPLTg4NTktMS1XaW5kb3dzLTMuMS1MYXRpbi0xIiB9 LAorICB7IDIwMDEsICJjc1dpbmRvd3MzMUxhdGluMSIgfSwKKyAgeyAyMDAyLCAiSVNPLTg4NTkt Mi1XaW5kb3dzLUxhdGluLTIiIH0sCisgIHsgMjAwMiwgImNzV2luZG93czMxTGF0aW4yIiB9LAor ICB7IDIwMDMsICJJU08tODg1OS05LVdpbmRvd3MtTGF0aW4tNSIgfSwKKyAgeyAyMDAzLCAiY3NX aW5kb3dzMzFMYXRpbjUiIH0sCisgIHsgMjAwNCwgImhwLXJvbWFuOCIgfSwKKyAgeyAyMDA0LCAi cm9tYW44IiB9LAorICB7IDIwMDQsICJyOCIgfSwKKyAgeyAyMDA0LCAiY3NIUFJvbWFuOCIgfSwK KyAgeyAyMDA1LCAiQWRvYmUtU3RhbmRhcmQtRW5jb2RpbmciIH0sCisgIHsgMjAwNSwgImNzQWRv YmVTdGFuZGFyZEVuY29kaW5nIiB9LAorICB7IDIwMDYsICJWZW50dXJhLVVTIiB9LAorICB7IDIw MDYsICJjc1ZlbnR1cmFVUyIgfSwKKyAgeyAyMDA3LCAiVmVudHVyYS1JbnRlcm5hdGlvbmFsIiB9 LAorICB7IDIwMDcsICJjc1ZlbnR1cmFJbnRlcm5hdGlvbmFsIiB9LAorICB7IDIwMDgsICJERUMt TUNTIiB9LAorICB7IDIwMDgsICJkZWMiIH0sCisgIHsgMjAwOCwgImNzREVDTUNTIiB9LAorICB7 IDIwMDksICJJQk04NTAiIH0sCisgIHsgMjAwOSwgImNwODUwIiB9LAorICB7IDIwMDksICI4NTAi IH0sCisgIHsgMjAwOSwgImNzUEM4NTBNdWx0aWxpbmd1YWwiIH0sCisgIHsgMjAxMCwgIklCTTg1 MiIgfSwKKyAgeyAyMDEwLCAiY3A4NTIiIH0sCisgIHsgMjAxMCwgIjg1MiIgfSwKKyAgeyAyMDEw LCAiY3NQQ3A4NTIiIH0sCisgIHsgMjAxMSwgIklCTTQzNyIgfSwKKyAgeyAyMDExLCAiY3A0Mzci IH0sCisgIHsgMjAxMSwgIjQzNyIgfSwKKyAgeyAyMDExLCAiY3NQQzhDb2RlUGFnZTQzNyIgfSwK KyAgeyAyMDEyLCAiUEM4LURhbmlzaC1Ob3J3ZWdpYW4iIH0sCisgIHsgMjAxMiwgImNzUEM4RGFu aXNoTm9yd2VnaWFuIiB9LAorICB7IDIwMTMsICJJQk04NjIiIH0sCisgIHsgMjAxMywgImNwODYy IiB9LAorICB7IDIwMTMsICI4NjIiIH0sCisgIHsgMjAxMywgImNzUEM4NjJMYXRpbkhlYnJldyIg fSwKKyAgeyAyMDE0LCAiUEM4LVR1cmtpc2giIH0sCisgIHsgMjAxNCwgImNzUEM4VHVya2lzaCIg fSwKKyAgeyAyMDE1LCAiSUJNLVN5bWJvbHMiIH0sCisgIHsgMjAxNSwgImNzSUJNU3ltYm9scyIg fSwKKyAgeyAyMDE2LCAiSUJNLVRoYWkiIH0sCisgIHsgMjAxNiwgImNzSUJNVGhhaSIgfSwKKyAg eyAyMDE3LCAiSFAtTGVnYWwiIH0sCisgIHsgMjAxNywgImNzSFBMZWdhbCIgfSwKKyAgeyAyMDE4 LCAiSFAtUGktZm9udCIgfSwKKyAgeyAyMDE4LCAiY3NIUFBpRm9udCIgfSwKKyAgeyAyMDE5LCAi SFAtTWF0aDgiIH0sCisgIHsgMjAxOSwgImNzSFBNYXRoOCIgfSwKKyAgeyAyMDIwLCAiQWRvYmUt U3ltYm9sLUVuY29kaW5nIiB9LAorICB7IDIwMjAsICJjc0hQUFNNYXRoIiB9LAorICB7IDIwMjEs ICJIUC1EZXNrVG9wIiB9LAorICB7IDIwMjEsICJjc0hQRGVza3RvcCIgfSwKKyAgeyAyMDIyLCAi VmVudHVyYS1NYXRoIiB9LAorICB7IDIwMjIsICJjc1ZlbnR1cmFNYXRoIiB9LAorICB7IDIwMjMs ICJNaWNyb3NvZnQtUHVibGlzaGluZyIgfSwKKyAgeyAyMDIzLCAiY3NNaWNyb3NvZnRQdWJsaXNo aW5nIiB9LAorICB7IDIwMjQsICJXaW5kb3dzLTMxSiIgfSwKKyAgeyAyMDI0LCAiY3NXaW5kb3dz MzFKIiB9LAorICB7IDIwMjUsICJHQjIzMTIiIH0sCisgIHsgMjAyNSwgImNzR0IyMzEyIiB9LAor ICB7IDIwMjYsICJCaWc1IiB9LAorICB7IDIwMjYsICJjc0JpZzUiIH0sCisgIHsgMjAyNywgIm1h Y2ludG9zaCIgfSwKKyAgeyAyMDI3LCAibWFjIiB9LAorICB7IDIwMjcsICJjc01hY2ludG9zaCIg fSwKKyAgeyAyMDI4LCAiSUJNMDM3IiB9LAorICB7IDIwMjgsICJjcDAzNyIgfSwKKyAgeyAyMDI4 LCAiZWJjZGljLWNwLXVzIiB9LAorICB7IDIwMjgsICJlYmNkaWMtY3AtY2EiIH0sCisgIHsgMjAy OCwgImViY2RpYy1jcC13dCIgfSwKKyAgeyAyMDI4LCAiZWJjZGljLWNwLW5sIiB9LAorICB7IDIw MjgsICJjc0lCTTAzNyIgfSwKKyAgeyAyMDI5LCAiSUJNMDM4IiB9LAorICB7IDIwMjksICJFQkNE SUMtSU5UIiB9LAorICB7IDIwMjksICJjcDAzOCIgfSwKKyAgeyAyMDI5LCAiY3NJQk0wMzgiIH0s CisgIHsgMjAzMCwgIklCTTI3MyIgfSwKKyAgeyAyMDMwLCAiQ1AyNzMiIH0sCisgIHsgMjAzMCwg ImNzSUJNMjczIiB9LAorICB7IDIwMzEsICJJQk0yNzQiIH0sCisgIHsgMjAzMSwgIkVCQ0RJQy1C RSIgfSwKKyAgeyAyMDMxLCAiQ1AyNzQiIH0sCisgIHsgMjAzMSwgImNzSUJNMjc0IiB9LAorICB7 IDIwMzIsICJJQk0yNzUiIH0sCisgIHsgMjAzMiwgIkVCQ0RJQy1CUiIgfSwKKyAgeyAyMDMyLCAi Y3AyNzUiIH0sCisgIHsgMjAzMiwgImNzSUJNMjc1IiB9LAorICB7IDIwMzMsICJJQk0yNzciIH0s CisgIHsgMjAzMywgIkVCQ0RJQy1DUC1ESyIgfSwKKyAgeyAyMDMzLCAiRUJDRElDLUNQLU5PIiB9 LAorICB7IDIwMzMsICJjc0lCTTI3NyIgfSwKKyAgeyAyMDM0LCAiSUJNMjc4IiB9LAorICB7IDIw MzQsICJDUDI3OCIgfSwKKyAgeyAyMDM0LCAiZWJjZGljLWNwLWZpIiB9LAorICB7IDIwMzQsICJl YmNkaWMtY3Atc2UiIH0sCisgIHsgMjAzNCwgImNzSUJNMjc4IiB9LAorICB7IDIwMzUsICJJQk0y ODAiIH0sCisgIHsgMjAzNSwgIkNQMjgwIiB9LAorICB7IDIwMzUsICJlYmNkaWMtY3AtaXQiIH0s CisgIHsgMjAzNSwgImNzSUJNMjgwIiB9LAorICB7IDIwMzYsICJJQk0yODEiIH0sCisgIHsgMjAz NiwgIkVCQ0RJQy1KUC1FIiB9LAorICB7IDIwMzYsICJjcDI4MSIgfSwKKyAgeyAyMDM2LCAiY3NJ Qk0yODEiIH0sCisgIHsgMjAzNywgIklCTTI4NCIgfSwKKyAgeyAyMDM3LCAiQ1AyODQiIH0sCisg IHsgMjAzNywgImViY2RpYy1jcC1lcyIgfSwKKyAgeyAyMDM3LCAiY3NJQk0yODQiIH0sCisgIHsg MjAzOCwgIklCTTI4NSIgfSwKKyAgeyAyMDM4LCAiQ1AyODUiIH0sCisgIHsgMjAzOCwgImViY2Rp Yy1jcC1nYiIgfSwKKyAgeyAyMDM4LCAiY3NJQk0yODUiIH0sCisgIHsgMjAzOSwgIklCTTI5MCIg fSwKKyAgeyAyMDM5LCAiY3AyOTAiIH0sCisgIHsgMjAzOSwgIkVCQ0RJQy1KUC1rYW5hIiB9LAor ICB7IDIwMzksICJjc0lCTTI5MCIgfSwKKyAgeyAyMDQwLCAiSUJNMjk3IiB9LAorICB7IDIwNDAs ICJjcDI5NyIgfSwKKyAgeyAyMDQwLCAiZWJjZGljLWNwLWZyIiB9LAorICB7IDIwNDAsICJjc0lC TTI5NyIgfSwKKyAgeyAyMDQxLCAiSUJNNDIwIiB9LAorICB7IDIwNDEsICJjcDQyMCIgfSwKKyAg eyAyMDQxLCAiZWJjZGljLWNwLWFyMSIgfSwKKyAgeyAyMDQxLCAiY3NJQk00MjAiIH0sCisgIHsg MjA0MiwgIklCTTQyMyIgfSwKKyAgeyAyMDQyLCAiY3A0MjMiIH0sCisgIHsgMjA0MiwgImViY2Rp Yy1jcC1nciIgfSwKKyAgeyAyMDQyLCAiY3NJQk00MjMiIH0sCisgIHsgMjA0MywgIklCTTQyNCIg fSwKKyAgeyAyMDQzLCAiY3A0MjQiIH0sCisgIHsgMjA0MywgImViY2RpYy1jcC1oZSIgfSwKKyAg eyAyMDQzLCAiY3NJQk00MjQiIH0sCisgIHsgMjA0NCwgIklCTTUwMCIgfSwKKyAgeyAyMDQ0LCAi Q1A1MDAiIH0sCisgIHsgMjA0NCwgImViY2RpYy1jcC1iZSIgfSwKKyAgeyAyMDQ0LCAiZWJjZGlj LWNwLWNoIiB9LAorICB7IDIwNDQsICJjc0lCTTUwMCIgfSwKKyAgeyAyMDQ1LCAiSUJNODUxIiB9 LAorICB7IDIwNDUsICJjcDg1MSIgfSwKKyAgeyAyMDQ1LCAiODUxIiB9LAorICB7IDIwNDUsICJj c0lCTTg1MSIgfSwKKyAgeyAyMDQ2LCAiSUJNODU1IiB9LAorICB7IDIwNDYsICJjcDg1NSIgfSwK KyAgeyAyMDQ2LCAiODU1IiB9LAorICB7IDIwNDYsICJjc0lCTTg1NSIgfSwKKyAgeyAyMDQ3LCAi SUJNODU3IiB9LAorICB7IDIwNDcsICJjcDg1NyIgfSwKKyAgeyAyMDQ3LCAiODU3IiB9LAorICB7 IDIwNDcsICJjc0lCTTg1NyIgfSwKKyAgeyAyMDQ4LCAiSUJNODYwIiB9LAorICB7IDIwNDgsICJj cDg2MCIgfSwKKyAgeyAyMDQ4LCAiODYwIiB9LAorICB7IDIwNDgsICJjc0lCTTg2MCIgfSwKKyAg eyAyMDQ5LCAiSUJNODYxIiB9LAorICB7IDIwNDksICJjcDg2MSIgfSwKKyAgeyAyMDQ5LCAiODYx IiB9LAorICB7IDIwNDksICJjcC1pcyIgfSwKKyAgeyAyMDQ5LCAiY3NJQk04NjEiIH0sCisgIHsg MjA1MCwgIklCTTg2MyIgfSwKKyAgeyAyMDUwLCAiY3A4NjMiIH0sCisgIHsgMjA1MCwgIjg2MyIg fSwKKyAgeyAyMDUwLCAiY3NJQk04NjMiIH0sCisgIHsgMjA1MSwgIklCTTg2NCIgfSwKKyAgeyAy MDUxLCAiY3A4NjQiIH0sCisgIHsgMjA1MSwgImNzSUJNODY0IiB9LAorICB7IDIwNTIsICJJQk04 NjUiIH0sCisgIHsgMjA1MiwgImNwODY1IiB9LAorICB7IDIwNTIsICI4NjUiIH0sCisgIHsgMjA1 MiwgImNzSUJNODY1IiB9LAorICB7IDIwNTMsICJJQk04NjgiIH0sCisgIHsgMjA1MywgIkNQODY4 IiB9LAorICB7IDIwNTMsICJjcC1hciIgfSwKKyAgeyAyMDUzLCAiY3NJQk04NjgiIH0sCisgIHsg MjA1NCwgIklCTTg2OSIgfSwKKyAgeyAyMDU0LCAiY3A4NjkiIH0sCisgIHsgMjA1NCwgIjg2OSIg fSwKKyAgeyAyMDU0LCAiY3AtZ3IiIH0sCisgIHsgMjA1NCwgImNzSUJNODY5IiB9LAorICB7IDIw NTUsICJJQk04NzAiIH0sCisgIHsgMjA1NSwgIkNQODcwIiB9LAorICB7IDIwNTUsICJlYmNkaWMt Y3Atcm9lY2UiIH0sCisgIHsgMjA1NSwgImViY2RpYy1jcC15dSIgfSwKKyAgeyAyMDU1LCAiY3NJ Qk04NzAiIH0sCisgIHsgMjA1NiwgIklCTTg3MSIgfSwKKyAgeyAyMDU2LCAiQ1A4NzEiIH0sCisg IHsgMjA1NiwgImViY2RpYy1jcC1pcyIgfSwKKyAgeyAyMDU2LCAiY3NJQk04NzEiIH0sCisgIHsg MjA1NywgIklCTTg4MCIgfSwKKyAgeyAyMDU3LCAiY3A4ODAiIH0sCisgIHsgMjA1NywgIkVCQ0RJ Qy1DeXJpbGxpYyIgfSwKKyAgeyAyMDU3LCAiY3NJQk04ODAiIH0sCisgIHsgMjA1OCwgIklCTTg5 MSIgfSwKKyAgeyAyMDU4LCAiY3A4OTEiIH0sCisgIHsgMjA1OCwgImNzSUJNODkxIiB9LAorICB7 IDIwNTksICJJQk05MDMiIH0sCisgIHsgMjA1OSwgImNwOTAzIiB9LAorICB7IDIwNTksICJjc0lC TTkwMyIgfSwKKyAgeyAyMDYwLCAiSUJNOTA0IiB9LAorICB7IDIwNjAsICJjcDkwNCIgfSwKKyAg eyAyMDYwLCAiOTA0IiB9LAorICB7IDIwNjAsICJjc0lCQk05MDQiIH0sCisgIHsgMjA2MSwgIklC TTkwNSIgfSwKKyAgeyAyMDYxLCAiQ1A5MDUiIH0sCisgIHsgMjA2MSwgImViY2RpYy1jcC10ciIg fSwKKyAgeyAyMDYxLCAiY3NJQk05MDUiIH0sCisgIHsgMjA2MiwgIklCTTkxOCIgfSwKKyAgeyAy MDYyLCAiQ1A5MTgiIH0sCisgIHsgMjA2MiwgImViY2RpYy1jcC1hcjIiIH0sCisgIHsgMjA2Miwg ImNzSUJNOTE4IiB9LAorICB7IDIwNjMsICJJQk0xMDI2IiB9LAorICB7IDIwNjMsICJDUDEwMjYi IH0sCisgIHsgMjA2MywgImNzSUJNMTAyNiIgfSwKKyAgeyAyMDY0LCAiRUJDRElDLUFULURFIiB9 LAorICB7IDIwNjQsICJjc0lCTUVCQ0RJQ0FUREUiIH0sCisgIHsgMjA2NSwgIkVCQ0RJQy1BVC1E RS1BIiB9LAorICB7IDIwNjUsICJjc0VCQ0RJQ0FUREVBIiB9LAorICB7IDIwNjYsICJFQkNESUMt Q0EtRlIiIH0sCisgIHsgMjA2NiwgImNzRUJDRElDQ0FGUiIgfSwKKyAgeyAyMDY3LCAiRUJDRElD LURLLU5PIiB9LAorICB7IDIwNjcsICJjc0VCQ0RJQ0RLTk8iIH0sCisgIHsgMjA2OCwgIkVCQ0RJ Qy1ESy1OTy1BIiB9LAorICB7IDIwNjgsICJjc0VCQ0RJQ0RLTk9BIiB9LAorICB7IDIwNjksICJF QkNESUMtRkktU0UiIH0sCisgIHsgMjA2OSwgImNzRUJDRElDRklTRSIgfSwKKyAgeyAyMDcwLCAi RUJDRElDLUZJLVNFLUEiIH0sCisgIHsgMjA3MCwgImNzRUJDRElDRklTRUEiIH0sCisgIHsgMjA3 MSwgIkVCQ0RJQy1GUiIgfSwKKyAgeyAyMDcxLCAiY3NFQkNESUNGUiIgfSwKKyAgeyAyMDcyLCAi RUJDRElDLUlUIiB9LAorICB7IDIwNzIsICJjc0VCQ0RJQ0lUIiB9LAorICB7IDIwNzMsICJFQkNE SUMtUFQiIH0sCisgIHsgMjA3MywgImNzRUJDRElDUFQiIH0sCisgIHsgMjA3NCwgIkVCQ0RJQy1F UyIgfSwKKyAgeyAyMDc0LCAiY3NFQkNESUNFUyIgfSwKKyAgeyAyMDc1LCAiRUJDRElDLUVTLUEi IH0sCisgIHsgMjA3NSwgImNzRUJDRElDRVNBIiB9LAorICB7IDIwNzYsICJFQkNESUMtRVMtUyIg fSwKKyAgeyAyMDc2LCAiY3NFQkNESUNFU1MiIH0sCisgIHsgMjA3NywgIkVCQ0RJQy1VSyIgfSwK KyAgeyAyMDc3LCAiY3NFQkNESUNVSyIgfSwKKyAgeyAyMDc4LCAiRUJDRElDLVVTIiB9LAorICB7 IDIwNzgsICJjc0VCQ0RJQ1VTIiB9LAorICB7IDIwNzksICJVTktOT1dOLThCSVQiIH0sCisgIHsg MjA3OSwgImNzVW5rbm93bjhCaVQiIH0sCisgIHsgMjA4MCwgIk1ORU1PTklDIiB9LAorICB7IDIw ODAsICJjc01uZW1vbmljIiB9LAorICB7IDIwODEsICJNTkVNIiB9LAorICB7IDIwODEsICJjc01u ZW0iIH0sCisgIHsgMjA4MiwgIlZJU0NJSSIgfSwKKyAgeyAyMDgyLCAiY3NWSVNDSUkiIH0sCisg IHsgMjA4MywgIlZJUVIiIH0sCisgIHsgMjA4MywgImNzVklRUiIgfSwKKyAgeyAyMDg0LCAiS09J OC1SIiB9LAorICB7IDIwODQsICJjc0tPSThSIiB9LAorICB7IDIwODUsICJIWi1HQi0yMzEyIiB9 LAorICB7IDIwODYsICJJQk04NjYiIH0sCisgIHsgMjA4NiwgImNwODY2IiB9LAorICB7IDIwODYs ICI4NjYiIH0sCisgIHsgMjA4NiwgImNzSUJNODY2IiB9LAorICB7IDIwODcsICJJQk03NzUiIH0s CisgIHsgMjA4NywgImNwNzc1IiB9LAorICB7IDIwODcsICJjc1BDNzc1QmFsdGljIiB9LAorICB7 IDIwODgsICJLT0k4LVUiIH0sCisgIHsgMjA4OCwgImNzS09JOFUiIH0sCisgIHsgMjA4OSwgIklC TTAwODU4IiB9LAorICB7IDIwODksICJDQ1NJRDAwODU4IiB9LAorICB7IDIwODksICJDUDAwODU4 IiB9LAorICB7IDIwODksICJQQy1NdWx0aWxpbmd1YWwtODUwK2V1cm8iIH0sCisgIHsgMjA4OSwg ImNzSUJNMDA4NTgiIH0sCisgIHsgMjA5MCwgIklCTTAwOTI0IiB9LAorICB7IDIwOTAsICJDQ1NJ RDAwOTI0IiB9LAorICB7IDIwOTAsICJDUDAwOTI0IiB9LAorICB7IDIwOTAsICJlYmNkaWMtTGF0 aW45LS1ldXJvIiB9LAorICB7IDIwOTAsICJjc0lCTTAwOTI0IiB9LAorICB7IDIwOTEsICJJQk0w MTE0MCIgfSwKKyAgeyAyMDkxLCAiQ0NTSUQwMTE0MCIgfSwKKyAgeyAyMDkxLCAiQ1AwMTE0MCIg fSwKKyAgeyAyMDkxLCAiZWJjZGljLXVzLTM3K2V1cm8iIH0sCisgIHsgMjA5MSwgImNzSUJNMDEx NDAiIH0sCisgIHsgMjA5MiwgIklCTTAxMTQxIiB9LAorICB7IDIwOTIsICJDQ1NJRDAxMTQxIiB9 LAorICB7IDIwOTIsICJDUDAxMTQxIiB9LAorICB7IDIwOTIsICJlYmNkaWMtZGUtMjczK2V1cm8i IH0sCisgIHsgMjA5MiwgImNzSUJNMDExNDEiIH0sCisgIHsgMjA5MywgIklCTTAxMTQyIiB9LAor ICB7IDIwOTMsICJDQ1NJRDAxMTQyIiB9LAorICB7IDIwOTMsICJDUDAxMTQyIiB9LAorICB7IDIw OTMsICJlYmNkaWMtZGstMjc3K2V1cm8iIH0sCisgIHsgMjA5MywgImViY2RpYy1uby0yNzcrZXVy byIgfSwKKyAgeyAyMDkzLCAiY3NJQk0wMTE0MiIgfSwKKyAgeyAyMDk0LCAiSUJNMDExNDMiIH0s CisgIHsgMjA5NCwgIkNDU0lEMDExNDMiIH0sCisgIHsgMjA5NCwgIkNQMDExNDMiIH0sCisgIHsg MjA5NCwgImViY2RpYy1maS0yNzgrZXVybyIgfSwKKyAgeyAyMDk0LCAiZWJjZGljLXNlLTI3OCtl dXJvIiB9LAorICB7IDIwOTQsICJjc0lCTTAxMTQzIiB9LAorICB7IDIwOTUsICJJQk0wMTE0NCIg fSwKKyAgeyAyMDk1LCAiQ0NTSUQwMTE0NCIgfSwKKyAgeyAyMDk1LCAiQ1AwMTE0NCIgfSwKKyAg eyAyMDk1LCAiZWJjZGljLWl0LTI4MCtldXJvIiB9LAorICB7IDIwOTUsICJjc0lCTTAxMTQ0IiB9 LAorICB7IDIwOTYsICJJQk0wMTE0NSIgfSwKKyAgeyAyMDk2LCAiQ0NTSUQwMTE0NSIgfSwKKyAg eyAyMDk2LCAiQ1AwMTE0NSIgfSwKKyAgeyAyMDk2LCAiZWJjZGljLWVzLTI4NCtldXJvIiB9LAor ICB7IDIwOTYsICJjc0lCTTAxMTQ1IiB9LAorICB7IDIwOTcsICJJQk0wMTE0NiIgfSwKKyAgeyAy MDk3LCAiQ0NTSUQwMTE0NiIgfSwKKyAgeyAyMDk3LCAiQ1AwMTE0NiIgfSwKKyAgeyAyMDk3LCAi ZWJjZGljLWdiLTI4NStldXJvIiB9LAorICB7IDIwOTcsICJjc0lCTTAxMTQ2IiB9LAorICB7IDIw OTgsICJJQk0wMTE0NyIgfSwKKyAgeyAyMDk4LCAiQ0NTSUQwMTE0NyIgfSwKKyAgeyAyMDk4LCAi Q1AwMTE0NyIgfSwKKyAgeyAyMDk4LCAiZWJjZGljLWZyLTI5NytldXJvIiB9LAorICB7IDIwOTgs ICJjc0lCTTAxMTQ3IiB9LAorICB7IDIwOTksICJJQk0wMTE0OCIgfSwKKyAgeyAyMDk5LCAiQ0NT SUQwMTE0OCIgfSwKKyAgeyAyMDk5LCAiQ1AwMTE0OCIgfSwKKyAgeyAyMDk5LCAiZWJjZGljLWlu dGVybmF0aW9uYWwtNTAwK2V1cm8iIH0sCisgIHsgMjA5OSwgImNzSUJNMDExNDgiIH0sCisgIHsg MjEwMCwgIklCTTAxMTQ5IiB9LAorICB7IDIxMDAsICJDQ1NJRDAxMTQ5IiB9LAorICB7IDIxMDAs ICJDUDAxMTQ5IiB9LAorICB7IDIxMDAsICJlYmNkaWMtaXMtODcxK2V1cm8iIH0sCisgIHsgMjEw MCwgImNzSUJNMDExNDkiIH0sCisgIHsgMjEwMSwgIkJpZzUtSEtTQ1MiIH0sCisgIHsgMjEwMSwg ImNzQmlnNUhLU0NTIiB9LAorICB7IDIxMDIsICJJQk0xMDQ3IiB9LAorICB7IDIxMDIsICJJQk0t MTA0NyIgfSwKKyAgeyAyMTAyLCAiY3NJQk0xMDQ3IiB9LAorICB7IDIxMDMsICJQVENQMTU0IiB9 LAorICB7IDIxMDMsICJjc1BUQ1AxNTQiIH0sCisgIHsgMjEwMywgIlBUMTU0IiB9LAorICB7IDIx MDMsICJDUDE1NCIgfSwKKyAgeyAyMTAzLCAiQ3lyaWxsaWMtQXNpYW4iIH0sCisgIHsgMjEwNCwg IkFtaWdhLTEyNTEiIH0sCisgIHsgMjEwNCwgIkFtaTEyNTEiIH0sCisgIHsgMjEwNCwgIkFtaWdh MTI1MSIgfSwKKyAgeyAyMTA0LCAiQW1pLTEyNTEiIH0sCisgIHsgMjEwNCwgImNzQW1pZ2ExMjUx IiB9LAorICB7IDIxMDQsICIoQWxpYXNlcyIgfSwKKyAgeyAyMTA0LCAiYXJlIiB9LAorICB7IDIx MDQsICJwcm92aWRlZCIgfSwKKyAgeyAyMTA0LCAiZm9yIiB9LAorICB7IDIxMDQsICJoaXN0b3Jp Y2FsIiB9LAorICB7IDIxMDQsICJyZWFzb25zIiB9LAorICB7IDIxMDQsICJhbmQiIH0sCisgIHsg MjEwNCwgInNob3VsZCIgfSwKKyAgeyAyMTA0LCAibm90IiB9LAorICB7IDIxMDQsICJiZSIgfSwK KyAgeyAyMTA0LCAidXNlZCkiIH0sCisgIHsgMjEwNCwgIltNYWx5c2hldl0iIH0sCisgIHsgMjEw NSwgIktPSTctc3dpdGNoZWQiIH0sCisgIHsgMjEwNSwgImNzS09JN3N3aXRjaGVkIiB9LAorICB7 IDIxMDYsICJCUkYiIH0sCisgIHsgMjEwNiwgImNzQlJGIiB9LAorICB7IDIxMDcsICJUU0NJSSIg fSwKKyAgeyAyMTA3LCAiY3NUU0NJSSIgfSwKKyAgeyAyMTA4LCAiQ1A1MTkzMiIgfSwKKyAgeyAy MTA4LCAiY3NDUDUxOTMyIiB9LAorICB7IDIxMDksICJ3aW5kb3dzLTg3NCIgfSwKKyAgeyAyMTA5 LCAiY3N3aW5kb3dzODc0IiB9LAorICB7IDIyNTAsICJ3aW5kb3dzLTEyNTAiIH0sCisgIHsgMjI1 MCwgImNzd2luZG93czEyNTAiIH0sCisgIHsgMjI1MSwgIndpbmRvd3MtMTI1MSIgfSwKKyAgeyAy MjUxLCAiY3N3aW5kb3dzMTI1MSIgfSwKKyAgeyAyMjUyLCAid2luZG93cy0xMjUyIiB9LAorICB7 IDIyNTIsICJjc3dpbmRvd3MxMjUyIiB9LAorICB7IDIyNTMsICJ3aW5kb3dzLTEyNTMiIH0sCisg IHsgMjI1MywgImNzd2luZG93czEyNTMiIH0sCisgIHsgMjI1NCwgIndpbmRvd3MtMTI1NCIgfSwK KyAgeyAyMjU0LCAiY3N3aW5kb3dzMTI1NCIgfSwKKyAgeyAyMjU1LCAid2luZG93cy0xMjU1IiB9 LAorICB7IDIyNTUsICJjc3dpbmRvd3MxMjU1IiB9LAorICB7IDIyNTYsICJ3aW5kb3dzLTEyNTYi IH0sCisgIHsgMjI1NiwgImNzd2luZG93czEyNTYiIH0sCisgIHsgMjI1NywgIndpbmRvd3MtMTI1 NyIgfSwKKyAgeyAyMjU3LCAiY3N3aW5kb3dzMTI1NyIgfSwKKyAgeyAyMjU4LCAid2luZG93cy0x MjU4IiB9LAorICB7IDIyNTgsICJjc3dpbmRvd3MxMjU4IiB9LAorICB7IDIyNTksICJUSVMtNjIw IiB9LAorICB7IDIyNTksICJjc1RJUzYyMCIgfSwKKyAgeyAyMjU5LCAiSVNPLTg4NTktMTEiIH0s CisgIHsgMjI2MCwgIkNQNTAyMjAiIH0sCisgIHsgMjI2MCwgImNzQ1A1MDIyMCIgfSwKKworI3Vu ZGVmIF9HTElCQ1hYX0dFVF9FTkNPRElOR19EQVRBCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMv aW5jbHVkZS9iaXRzL3VuaWNvZGUuaCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvdW5pY29k ZS5oCmluZGV4IGQzNWM4M2QwMDkwLi5kMDI1ZDIxZjNkZCAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL2luY2x1ZGUvYml0cy91bmljb2RlLmgKKysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0 cy91bmljb2RlLmgKQEAgLTMyLDcgKzMyLDggQEAKIAogI2lmIF9fY3BsdXNwbHVzID49IDIwMjAw MkwKICNpbmNsdWRlIDxhcnJheT4KLSNpbmNsdWRlIDxiaXQ+CisjaW5jbHVkZSA8Yml0PiAgICAg IC8vIGJpdF93aWR0aAorI2luY2x1ZGUgPGNoYXJjb252PiAvLyBfX2RldGFpbDo6X19mcm9tX2No YXJzX2FsbnVtX3RvX3ZhbF90YWJsZQogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8Yml0 cy9zdGxfYWxnby5oPgogI2luY2x1ZGUgPGJpdHMvc3RsX2l0ZXJhdG9yLmg+CkBAIC05ODYsNyAr OTg3LDcgQEAgaW5saW5lIG5hbWVzcGFjZSBfX3YxNV8xXzAKICAgICAgIHJldHVybiBfX247CiAg ICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJUPgorICB0ZW1wbGF0ZTx0eXBlbmFt ZSBfQ2hhclQ+CiAgICAgY29uc3RldmFsIGJvb2wKICAgICBfX2xpdGVyYWxfZW5jb2RpbmdfaXNf dW5pY29kZSgpCiAgICAgewpAQCAtMTA1Niw2ICsxMDU3LDUzIEBAIGlubGluZSBuYW1lc3BhY2Ug X192MTVfMV8wCiAgIF9fbGl0ZXJhbF9lbmNvZGluZ19pc191dGY4KCkKICAgeyByZXR1cm4gX19s aXRlcmFsX2VuY29kaW5nX2lzX3VuaWNvZGU8Y2hhcj4oKTsgfQogCisgIGNvbnN0ZXZhbCBib29s CisgIF9fbGl0ZXJhbF9lbmNvZGluZ19pc19leHRlbmRlZF9hc2NpaSgpCisgIHsKKyAgICByZXR1 cm4gJzAnID09IDB4MzAgJiYgJ0EnID09IDB4NDEgJiYgJ1onID09IDB4NWEKKwkgICAgICYmICdh JyA9PSAweDYxICYmICd6JyA9PSAweDdhOworICB9CisKKyAgLy8gaHR0cHM6Ly93d3cudW5pY29k ZS5vcmcvcmVwb3J0cy90cjIyL3RyMjItOC5odG1sI0NoYXJzZXRfQWxpYXNfTWF0Y2hpbmcKKyAg Y29uc3RleHByIGJvb2wKKyAgX19jaGFyc2V0X2FsaWFzX21hdGNoKHN0cmluZ192aWV3IF9fYSwg c3RyaW5nX3ZpZXcgX19iKQorICB7CisgICAgLy8gTWFwIGFscGhhbnVtZXJpYyBjaGFycyB0byB0 aGVpciBiYXNlIDY0IHZhbHVlLCBldmVyeXRoaW5nIGVsc2UgdG8gMTI3LgorICAgIGF1dG8gX19t YXAgPSBbXShjaGFyIF9fYywgYm9vbCYgX19udW0pIC0+IHVuc2lnbmVkIGNoYXIgeworICAgICAg aWYgKF9fYyA9PSAnMCcpIFtbdW5saWtlbHldXQorCXJldHVybiBfX251bSA/IDAgOiAxMjc7Cisg ICAgICBjb25zdCBhdXRvIF9fdiA9IF9fZGV0YWlsOjpfX2Zyb21fY2hhcnNfYWxudW1fdG9fdmFs KF9fYyk7CisgICAgICBfX251bSA9IF9fdiA8IDEwOworICAgICAgcmV0dXJuIF9fdjsKKyAgICB9 OworCisgICAgYXV0byBfX3B0cl9hID0gX19hLmJlZ2luKCksIF9fZW5kX2EgPSBfX2EuZW5kKCk7 CisgICAgYXV0byBfX3B0cl9iID0gX19iLmJlZ2luKCksIF9fZW5kX2IgPSBfX2IuZW5kKCk7Cisg ICAgYm9vbCBfX251bV9hID0gZmFsc2UsIF9fbnVtX2IgPSBmYWxzZTsKKworICAgIHdoaWxlICh0 cnVlKQorICAgICAgeworCS8vIEZpbmQgdGhlIHZhbHVlIG9mIHRoZSBuZXh0IGFscGhhbnVtZXJp YyBjaGFyYWN0ZXIgaW4gZWFjaCBzdHJpbmcuCisJdW5zaWduZWQgY2hhciBfX3ZhbF9hLCBfX3Zh bF9iOworCXdoaWxlIChfX3B0cl9hICE9IF9fZW5kX2EKKwkJICYmIChfX3ZhbF9hID0gX19tYXAo Kl9fcHRyX2EsIF9fbnVtX2EpKSA9PSAxMjcpCisJICArK19fcHRyX2E7CisJd2hpbGUgKF9fcHRy X2IgIT0gX19lbmRfYgorCQkgJiYgKF9fdmFsX2IgPSBfX21hcCgqX19wdHJfYiwgX19udW1fYikp ID09IDEyNykKKwkgICsrX19wdHJfYjsKKwkvLyBTdG9wIHdoZW4gd2UgcmVhY2ggdGhlIGVuZCBv ZiBhIHN0cmluZywgb3IgZ2V0IGEgbWlzbWF0Y2guCisJaWYgKF9fcHRyX2EgPT0gX19lbmRfYSkK KwkgIHJldHVybiBfX3B0cl9iID09IF9fZW5kX2I7CisJZWxzZSBpZiAoX19wdHJfYiA9PSBfX2Vu ZF9iKQorCSAgcmV0dXJuIGZhbHNlOworCWVsc2UgaWYgKF9fdmFsX2EgIT0gX192YWxfYikKKwkg IHJldHVybiBmYWxzZTsgLy8gRm91bmQgbm9uLW1hdGNoaW5nIGNoYXJhY3RlcnMuCisJKytfX3B0 cl9hOworCSsrX19wdHJfYjsKKyAgICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCiB9IC8v IG5hbWVzcGFjZSBfX3VuaWNvZGUKIAogbmFtZXNwYWNlIHJhbmdlcwpkaWZmIC0tZ2l0IGEvbGli c3RkYysrLXYzL2luY2x1ZGUvYml0cy92ZXJzaW9uLmRlZiBiL2xpYnN0ZGMrKy12My9pbmNsdWRl L2JpdHMvdmVyc2lvbi5kZWYKaW5kZXggYWZiZWM2YzNlNmEuLjhmYjhhMjg3N2VlIDEwMDY0NAot LS0gYS9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3ZlcnNpb24uZGVmCisrKyBiL2xpYnN0ZGMr Ky12My9pbmNsdWRlL2JpdHMvdmVyc2lvbi5kZWYKQEAgLTE3NTEsNiArMTc1MSwxNiBAQCBmdG1z ID0gewogICB9OwogfTsKIAorZnRtcyA9IHsKKyAgbmFtZSA9IHRleHRfZW5jb2Rpbmc7CisgIHZh bHVlcyA9IHsKKyAgICB2ID0gMjAyMzA2OworICAgIGN4eG1pbiA9IDI2OworICAgIGhvc3RlZCA9 IHllczsKKyAgICBleHRyYV9jb25kID0gIl9HTElCQ1hYX1VTRV9OTF9MQU5HSU5GT19MIjsKKyAg fTsKK307CisKIGZ0bXMgPSB7CiAgIG5hbWUgPSB0b19zdHJpbmc7CiAgIHZhbHVlcyA9IHsKZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvdmVyc2lvbi5oIGIvbGlic3RkYysr LXYzL2luY2x1ZGUvYml0cy92ZXJzaW9uLmgKaW5kZXggOTY4OGIyNDZlZjQuLjliYTk5ZGVlZGE2 IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3ZlcnNpb24uaAorKysgYi9s aWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3ZlcnNpb24uaApAQCAtMjEzNyw2ICsyMTM3LDE3IEBA CiAjdW5kZWYgX19nbGliY3h4X3dhbnRfc2F0dXJhdGlvbl9hcml0aG1ldGljCiAKIC8vIGZyb20g dmVyc2lvbi5kZWYgbGluZSAxNzU1CisjaWYgIWRlZmluZWQoX19jcHBfbGliX3RleHRfZW5jb2Rp bmcpCisjIGlmIChfX2NwbHVzcGx1cyA+ICAyMDIzMDJMKSAmJiBfR0xJQkNYWF9IT1NURUQgJiYg KF9HTElCQ1hYX1VTRV9OTF9MQU5HSU5GT19MKQorIyAgZGVmaW5lIF9fZ2xpYmN4eF90ZXh0X2Vu Y29kaW5nIDIwMjMwNkwKKyMgIGlmIGRlZmluZWQoX19nbGliY3h4X3dhbnRfYWxsKSB8fCBkZWZp bmVkKF9fZ2xpYmN4eF93YW50X3RleHRfZW5jb2RpbmcpCisjICAgZGVmaW5lIF9fY3BwX2xpYl90 ZXh0X2VuY29kaW5nIDIwMjMwNkwKKyMgIGVuZGlmCisjIGVuZGlmCisjZW5kaWYgLyogIWRlZmlu ZWQoX19jcHBfbGliX3RleHRfZW5jb2RpbmcpICYmIGRlZmluZWQoX19nbGliY3h4X3dhbnRfdGV4 dF9lbmNvZGluZykgKi8KKyN1bmRlZiBfX2dsaWJjeHhfd2FudF90ZXh0X2VuY29kaW5nCisKKy8v IGZyb20gdmVyc2lvbi5kZWYgbGluZSAxNzY1CiAjaWYgIWRlZmluZWQoX19jcHBfbGliX3RvX3N0 cmluZykKICMgaWYgKF9fY3BsdXNwbHVzID4gIDIwMjMwMkwpICYmIF9HTElCQ1hYX0hPU1RFRCAm JiAoX19nbGliY3h4X3RvX2NoYXJzKQogIyAgZGVmaW5lIF9fZ2xpYmN4eF90b19zdHJpbmcgMjAy MzA2TApAQCAtMjE0Nyw3ICsyMTU4LDcgQEAKICNlbmRpZiAvKiAhZGVmaW5lZChfX2NwcF9saWJf dG9fc3RyaW5nKSAmJiBkZWZpbmVkKF9fZ2xpYmN4eF93YW50X3RvX3N0cmluZykgKi8KICN1bmRl ZiBfX2dsaWJjeHhfd2FudF90b19zdHJpbmcKIAotLy8gZnJvbSB2ZXJzaW9uLmRlZiBsaW5lIDE3 NjUKKy8vIGZyb20gdmVyc2lvbi5kZWYgbGluZSAxNzc1CiAjaWYgIWRlZmluZWQoX19jcHBfbGli X2dlbmVyYXRvcikKICMgaWYgKF9fY3BsdXNwbHVzID49IDIwMjEwMEwpICYmIChfX2dsaWJjeHhf Y29yb3V0aW5lKQogIyAgZGVmaW5lIF9fZ2xpYmN4eF9nZW5lcmF0b3IgMjAyMjA3TApkaWZmIC0t Z2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL3RleHRfZW5jb2RpbmcgYi9saWJzdGRjKyst djMvaW5jbHVkZS9zdGQvdGV4dF9lbmNvZGluZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uODNkMDIzYmM3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzdGRjKystdjMv aW5jbHVkZS9zdGQvdGV4dF9lbmNvZGluZwpAQCAtMCwwICsxLDY3OCBAQAorLy8gPHRleHRfZW5j b2Rpbmc+IC0qLSBDKysgLSotCisKKy8vIENvcHlyaWdodCBUaGUgR05VIFRvb2xjaGFpbiBBdXRo b3JzLgorLy8KKy8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgSVNPIEMrKyBMaWJyYXJ5 LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQorLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKy8vIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorLy8gYW55 IGxhdGVyIHZlcnNpb24uCisKKy8vIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy8vIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy8vIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKy8vIFVuZGVyIFNlY3Rp b24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5b3UgYXJlIGdyYW50ZWQgYWRkaXRpb25hbAorLy8gcGVy bWlzc2lvbnMgZGVzY3JpYmVkIGluIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiwg dmVyc2lvbgorLy8gMy4xLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KKworLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisvLyBhIGNvcHkgb2YgdGhlIEdDQyBSdW50aW1lIExp YnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOworLy8gc2VlIHRoZSBmaWxl cyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2Vl CisvLyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy8qKiBAZmlsZSBpbmNsdWRl L3RleHRfZW5jb2RpbmcKKyAqICBUaGlzIGlzIGEgU3RhbmRhcmQgQysrIExpYnJhcnkgaGVhZGVy LgorICovCisKKyNpZm5kZWYgX0dMSUJDWFhfVEVYVF9FTkNPRElORworI2RlZmluZSBfR0xJQkNY WF9URVhUX0VOQ09ESU5HCisKKyNwcmFnbWEgR0NDIHN5c3RlbV9oZWFkZXIKKworI2luY2x1ZGUg PGJpdHMvcmVxdWlyZXNfaG9zdGVkLmg+CisKKyNkZWZpbmUgX19nbGliY3h4X3dhbnRfdGV4dF9l bmNvZGluZworI2luY2x1ZGUgPGJpdHMvdmVyc2lvbi5oPgorCisjaWZkZWYgX19jcHBfbGliX3Rl eHRfZW5jb2RpbmcKKyNpbmNsdWRlIDxjb21wYXJlPgorI2luY2x1ZGUgPHN0cmluZ192aWV3Pgor I2luY2x1ZGUgPGJpdHMvZnVuY3Rpb25hbF9oYXNoLmg+IC8vIGhhc2gKKyNpbmNsdWRlIDxiaXRz L3Jhbmdlc191dGlsLmg+ICAgICAvLyB2aWV3X2ludGVyZmFjZQorI2luY2x1ZGUgPGJpdHMvdW5p Y29kZS5oPiAgICAgICAgIC8vIF9fY2hhcnNldF9hbGlhc19tYXRjaAorI2luY2x1ZGUgPGV4dC9u dW1lcmljX3RyYWl0cy5oPiAgIC8vIF9faW50X3RyYWl0cworCituYW1lc3BhY2Ugc3RkIF9HTElC Q1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKK3sKK19HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCisKKyAgLyoqCisgICAqIEBicmllZiBBbiBpbnRlcmZhY2UgZm9yIGFjY2Vzc2luZyB0aGUg SUFOQSBDaGFyYWN0ZXIgU2V0cyByZWdpc3RyeS4KKyAgICogQGluZ3JvdXAgbG9jYWxlcworICAg KiBAc2luY2UgQysrMjMKKyAgICovCisgIHN0cnVjdCB0ZXh0X2VuY29kaW5nCisgIHsKKyAgcHJp dmF0ZToKKyAgICBzdHJ1Y3QgX1JlcAorICAgIHsKKyAgICAgIHVzaW5nIGlkID0gX19JTlRfTEVB U1QzMl9UWVBFX187CisgICAgICBpZCBfTV9pZDsKKyAgICAgIGNvbnN0IGNoYXIqIF9NX25hbWU7 CisKKyAgICAgIGZyaWVuZCBjb25zdGV4cHIgYm9vbAorICAgICAgb3BlcmF0b3I8KGNvbnN0IF9S ZXAmIF9fciwgaWQgX19tKSBub2V4Y2VwdAorICAgICAgeyByZXR1cm4gX19yLl9NX2lkIDwgX19t OyB9CisKKyAgICAgIGZyaWVuZCBjb25zdGV4cHIgYm9vbAorICAgICAgb3BlcmF0b3I9PShjb25z dCBfUmVwJiBfX3IsIHN0cmluZ192aWV3IF9fbmFtZSkgbm9leGNlcHQKKyAgICAgIHsgcmV0dXJu IF9fci5fTV9uYW1lID09IF9fbmFtZTsgfQorICAgIH07CisKKyAgcHVibGljOgorICAgIHN0YXRp YyBjb25zdGV4cHIgc2l6ZV90IG1heF9uYW1lX2xlbmd0aCA9IDYzOworCisgICAgZW51bSBjbGFz cyBpZCA6IF9SZXA6OmlkCisgICAgeworICAgICAgb3RoZXIgPSAxLAorICAgICAgdW5rbm93biA9 IDIsCisgICAgICBBU0NJSSA9IDMsCisgICAgICBJU09MYXRpbjEgPSA0LAorICAgICAgSVNPTGF0 aW4yID0gNSwKKyAgICAgIElTT0xhdGluMyA9IDYsCisgICAgICBJU09MYXRpbjQgPSA3LAorICAg ICAgSVNPTGF0aW5DeXJpbGxpYyA9IDgsCisgICAgICBJU09MYXRpbkFyYWJpYyA9IDksCisgICAg ICBJU09MYXRpbkdyZWVrID0gMTAsCisgICAgICBJU09MYXRpbkhlYnJldyA9IDExLAorICAgICAg SVNPTGF0aW41ID0gMTIsCisgICAgICBJU09MYXRpbjYgPSAxMywKKyAgICAgIElTT1RleHRDb21t ID0gMTQsCisgICAgICBIYWxmV2lkdGhLYXRha2FuYSA9IDE1LAorICAgICAgSklTRW5jb2Rpbmcg PSAxNiwKKyAgICAgIFNoaWZ0SklTID0gMTcsCisgICAgICBFVUNQa2RGbXRKYXBhbmVzZSA9IDE4 LAorICAgICAgRVVDRml4V2lkSmFwYW5lc2UgPSAxOSwKKyAgICAgIElTTzRVbml0ZWRLaW5nZG9t ID0gMjAsCisgICAgICBJU08xMVN3ZWRpc2hGb3JOYW1lcyA9IDIxLAorICAgICAgSVNPMTVJdGFs aWFuID0gMjIsCisgICAgICBJU08xN1NwYW5pc2ggPSAyMywKKyAgICAgIElTTzIxR2VybWFuID0g MjQsCisgICAgICBJU082MERhbmlzaE5vcndlZ2lhbiA9IDI1LAorICAgICAgSVNPNjlGcmVuY2gg PSAyNiwKKyAgICAgIElTTzEwNjQ2VVRGMSA9IDI3LAorICAgICAgSVNPNjQ2YmFzaWMxOTgzID0g MjgsCisgICAgICBJTlZBUklBTlQgPSAyOSwKKyAgICAgIElTTzJJbnRsUmVmVmVyc2lvbiA9IDMw LAorICAgICAgTkFUU1NFRkkgPSAzMSwKKyAgICAgIE5BVFNTRUZJQUREID0gMzIsCisgICAgICBJ U08xMFN3ZWRpc2ggPSAzNSwKKyAgICAgIEtTQzU2MDExOTg3ID0gMzYsCisgICAgICBJU08yMDIy S1IgPSAzNywKKyAgICAgIEVVQ0tSID0gMzgsCisgICAgICBJU08yMDIySlAgPSAzOSwKKyAgICAg IElTTzIwMjJKUDIgPSA0MCwKKyAgICAgIElTTzEzSklTQzYyMjBqcCA9IDQxLAorICAgICAgSVNP MTRKSVNDNjIyMHJvID0gNDIsCisgICAgICBJU08xNlBvcnR1Z3Vlc2UgPSA0MywKKyAgICAgIElT TzE4R3JlZWs3T2xkID0gNDQsCisgICAgICBJU08xOUxhdGluR3JlZWsgPSA0NSwKKyAgICAgIElT TzI1RnJlbmNoID0gNDYsCisgICAgICBJU08yN0xhdGluR3JlZWsxID0gNDcsCisgICAgICBJU081 NDI3Q3lyaWxsaWMgPSA0OCwKKyAgICAgIElTTzQySklTQzYyMjYxOTc4ID0gNDksCisgICAgICBJ U080N0JTVmlld2RhdGEgPSA1MCwKKyAgICAgIElTTzQ5SU5JUyA9IDUxLAorICAgICAgSVNPNTBJ TklTOCA9IDUyLAorICAgICAgSVNPNTFJTklTQ3lyaWxsaWMgPSA1MywKKyAgICAgIElTTzU0Mjcx OTgxID0gNTQsCisgICAgICBJU081NDI4R3JlZWsgPSA1NSwKKyAgICAgIElTTzU3R0IxOTg4ID0g NTYsCisgICAgICBJU081OEdCMjMxMjgwID0gNTcsCisgICAgICBJU082MU5vcndlZ2lhbjIgPSA1 OCwKKyAgICAgIElTTzcwVmlkZW90ZXhTdXBwMSA9IDU5LAorICAgICAgSVNPODRQb3J0dWd1ZXNl MiA9IDYwLAorICAgICAgSVNPODVTcGFuaXNoMiA9IDYxLAorICAgICAgSVNPODZIdW5nYXJpYW4g PSA2MiwKKyAgICAgIElTTzg3SklTWDAyMDggPSA2MywKKyAgICAgIElTTzg4R3JlZWs3ID0gNjQs CisgICAgICBJU084OUFTTU80NDkgPSA2NSwKKyAgICAgIElTTzkwID0gNjYsCisgICAgICBJU085 MUpJU0M2MjI5MTk4NGEgPSA2NywKKyAgICAgIElTTzkySklTQzYyOTkxOTg0YiA9IDY4LAorICAg ICAgSVNPOTNKSVM2MjI5MTk4NGJhZGQgPSA2OSwKKyAgICAgIElTTzk0SklTNjIyOTE5ODRoYW5k ID0gNzAsCisgICAgICBJU085NUpJUzYyMjkxOTg0aGFuZGFkZCA9IDcxLAorICAgICAgSVNPOTZK SVNDNjIyOTE5ODRrYW5hID0gNzIsCisgICAgICBJU08yMDMzID0gNzMsCisgICAgICBJU085OU5B UExQUyA9IDc0LAorICAgICAgSVNPMTAyVDYxN2JpdCA9IDc1LAorICAgICAgSVNPMTAzVDYxOGJp dCA9IDc2LAorICAgICAgSVNPMTExRUNNQUN5cmlsbGljID0gNzcsCisgICAgICBJU08xMjFDYW5h ZGlhbjEgPSA3OCwKKyAgICAgIElTTzEyMkNhbmFkaWFuMiA9IDc5LAorICAgICAgSVNPMTIzQ1NB WjI0MzQxOTg1Z3IgPSA4MCwKKyAgICAgIElTTzg4NTk2RSA9IDgxLAorICAgICAgSVNPODg1OTZJ ID0gODIsCisgICAgICBJU08xMjhUMTAxRzIgPSA4MywKKyAgICAgIElTTzg4NTk4RSA9IDg0LAor ICAgICAgSVNPODg1OThJID0gODUsCisgICAgICBJU08xMzlDU04zNjkxMDMgPSA4NiwKKyAgICAg IElTTzE0MUpVU0lCMTAwMiA9IDg3LAorICAgICAgSVNPMTQzSUVDUDI3MSA9IDg4LAorICAgICAg SVNPMTQ2U2VyYmlhbiA9IDg5LAorICAgICAgSVNPMTQ3TWFjZWRvbmlhbiA9IDkwLAorICAgICAg SVNPMTUwID0gOTEsCisgICAgICBJU08xNTFDdWJhID0gOTIsCisgICAgICBJU082OTM3QWRkID0g OTMsCisgICAgICBJU08xNTNHT1NUMTk3Njg3NCA9IDk0LAorICAgICAgSVNPODg1OVN1cHAgPSA5 NSwKKyAgICAgIElTTzEwMzY3Qm94ID0gOTYsCisgICAgICBJU08xNThMYXAgPSA5NywKKyAgICAg IElTTzE1OUpJU1gwMjEyMTk5MCA9IDk4LAorICAgICAgSVNPNjQ2RGFuaXNoID0gOTksCisgICAg ICBVU0RLID0gMTAwLAorICAgICAgREtVUyA9IDEwMSwKKyAgICAgIEtTQzU2MzYgPSAxMDIsCisg ICAgICBVbmljb2RlMTFVVEY3ID0gMTAzLAorICAgICAgSVNPMjAyMkNOID0gMTA0LAorICAgICAg SVNPMjAyMkNORVhUID0gMTA1LAorICAgICAgVVRGOCA9IDEwNiwKKyAgICAgIElTTzg4NTkxMyA9 IDEwOSwKKyAgICAgIElTTzg4NTkxNCA9IDExMCwKKyAgICAgIElTTzg4NTkxNSA9IDExMSwKKyAg ICAgIElTTzg4NTkxNiA9IDExMiwKKyAgICAgIEdCSyA9IDExMywKKyAgICAgIEdCMTgwMzAgPSAx MTQsCisgICAgICBPU0RFQkNESUNERjA0MTUgPSAxMTUsCisgICAgICBPU0RFQkNESUNERjAzSVJW ID0gMTE2LAorICAgICAgT1NERUJDRElDREYwNDEgPSAxMTcsCisgICAgICBJU08xMTU0ODEgPSAx MTgsCisgICAgICBLWjEwNDggPSAxMTksCisgICAgICBVQ1MyID0gMTAwMCwKKyAgICAgIFVDUzQg PSAxMDAxLAorICAgICAgVW5pY29kZUFTQ0lJID0gMTAwMiwKKyAgICAgIFVuaWNvZGVMYXRpbjEg PSAxMDAzLAorICAgICAgVW5pY29kZUphcGFuZXNlID0gMTAwNCwKKyAgICAgIFVuaWNvZGVJQk0x MjYxID0gMTAwNSwKKyAgICAgIFVuaWNvZGVJQk0xMjY4ID0gMTAwNiwKKyAgICAgIFVuaWNvZGVJ Qk0xMjc2ID0gMTAwNywKKyAgICAgIFVuaWNvZGVJQk0xMjY0ID0gMTAwOCwKKyAgICAgIFVuaWNv ZGVJQk0xMjY1ID0gMTAwOSwKKyAgICAgIFVuaWNvZGUxMSA9IDEwMTAsCisgICAgICBTQ1NVID0g MTAxMSwKKyAgICAgIFVURjcgPSAxMDEyLAorICAgICAgVVRGMTZCRSA9IDEwMTMsCisgICAgICBV VEYxNkxFID0gMTAxNCwKKyAgICAgIFVURjE2ID0gMTAxNSwKKyAgICAgIENFU1U4ID0gMTAxNiwK KyAgICAgIFVURjMyID0gMTAxNywKKyAgICAgIFVURjMyQkUgPSAxMDE4LAorICAgICAgVVRGMzJM RSA9IDEwMTksCisgICAgICBCT0NVMSA9IDEwMjAsCisgICAgICBVVEY3SU1BUCA9IDEwMjEsCisg ICAgICBXaW5kb3dzMzBMYXRpbjEgPSAyMDAwLAorICAgICAgV2luZG93czMxTGF0aW4xID0gMjAw MSwKKyAgICAgIFdpbmRvd3MzMUxhdGluMiA9IDIwMDIsCisgICAgICBXaW5kb3dzMzFMYXRpbjUg PSAyMDAzLAorICAgICAgSFBSb21hbjggPSAyMDA0LAorICAgICAgQWRvYmVTdGFuZGFyZEVuY29k aW5nID0gMjAwNSwKKyAgICAgIFZlbnR1cmFVUyA9IDIwMDYsCisgICAgICBWZW50dXJhSW50ZXJu YXRpb25hbCA9IDIwMDcsCisgICAgICBERUNNQ1MgPSAyMDA4LAorICAgICAgUEM4NTBNdWx0aWxp bmd1YWwgPSAyMDA5LAorICAgICAgUEM4RGFuaXNoTm9yd2VnaWFuID0gMjAxMiwKKyAgICAgIFBD ODYyTGF0aW5IZWJyZXcgPSAyMDEzLAorICAgICAgUEM4VHVya2lzaCA9IDIwMTQsCisgICAgICBJ Qk1TeW1ib2xzID0gMjAxNSwKKyAgICAgIElCTVRoYWkgPSAyMDE2LAorICAgICAgSFBMZWdhbCA9 IDIwMTcsCisgICAgICBIUFBpRm9udCA9IDIwMTgsCisgICAgICBIUE1hdGg4ID0gMjAxOSwKKyAg ICAgIEhQUFNNYXRoID0gMjAyMCwKKyAgICAgIEhQRGVza3RvcCA9IDIwMjEsCisgICAgICBWZW50 dXJhTWF0aCA9IDIwMjIsCisgICAgICBNaWNyb3NvZnRQdWJsaXNoaW5nID0gMjAyMywKKyAgICAg IFdpbmRvd3MzMUogPSAyMDI0LAorICAgICAgR0IyMzEyID0gMjAyNSwKKyAgICAgIEJpZzUgPSAy MDI2LAorICAgICAgTWFjaW50b3NoID0gMjAyNywKKyAgICAgIElCTTAzNyA9IDIwMjgsCisgICAg ICBJQk0wMzggPSAyMDI5LAorICAgICAgSUJNMjczID0gMjAzMCwKKyAgICAgIElCTTI3NCA9IDIw MzEsCisgICAgICBJQk0yNzUgPSAyMDMyLAorICAgICAgSUJNMjc3ID0gMjAzMywKKyAgICAgIElC TTI3OCA9IDIwMzQsCisgICAgICBJQk0yODAgPSAyMDM1LAorICAgICAgSUJNMjgxID0gMjAzNiwK KyAgICAgIElCTTI4NCA9IDIwMzcsCisgICAgICBJQk0yODUgPSAyMDM4LAorICAgICAgSUJNMjkw ID0gMjAzOSwKKyAgICAgIElCTTI5NyA9IDIwNDAsCisgICAgICBJQk00MjAgPSAyMDQxLAorICAg ICAgSUJNNDIzID0gMjA0MiwKKyAgICAgIElCTTQyNCA9IDIwNDMsCisgICAgICBQQzhDb2RlUGFn ZTQzNyA9IDIwMTEsCisgICAgICBJQk01MDAgPSAyMDQ0LAorICAgICAgSUJNODUxID0gMjA0NSwK KyAgICAgIFBDcDg1MiA9IDIwMTAsCisgICAgICBJQk04NTUgPSAyMDQ2LAorICAgICAgSUJNODU3 ID0gMjA0NywKKyAgICAgIElCTTg2MCA9IDIwNDgsCisgICAgICBJQk04NjEgPSAyMDQ5LAorICAg ICAgSUJNODYzID0gMjA1MCwKKyAgICAgIElCTTg2NCA9IDIwNTEsCisgICAgICBJQk04NjUgPSAy MDUyLAorICAgICAgSUJNODY4ID0gMjA1MywKKyAgICAgIElCTTg2OSA9IDIwNTQsCisgICAgICBJ Qk04NzAgPSAyMDU1LAorICAgICAgSUJNODcxID0gMjA1NiwKKyAgICAgIElCTTg4MCA9IDIwNTcs CisgICAgICBJQk04OTEgPSAyMDU4LAorICAgICAgSUJNOTAzID0gMjA1OSwKKyAgICAgIElCTTkw NCA9IDIwNjAsCisgICAgICBJQk05MDUgPSAyMDYxLAorICAgICAgSUJNOTE4ID0gMjA2MiwKKyAg ICAgIElCTTEwMjYgPSAyMDYzLAorICAgICAgSUJNRUJDRElDQVRERSA9IDIwNjQsCisgICAgICBF QkNESUNBVERFQSA9IDIwNjUsCisgICAgICBFQkNESUNDQUZSID0gMjA2NiwKKyAgICAgIEVCQ0RJ Q0RLTk8gPSAyMDY3LAorICAgICAgRUJDRElDREtOT0EgPSAyMDY4LAorICAgICAgRUJDRElDRklT RSA9IDIwNjksCisgICAgICBFQkNESUNGSVNFQSA9IDIwNzAsCisgICAgICBFQkNESUNGUiA9IDIw NzEsCisgICAgICBFQkNESUNJVCA9IDIwNzIsCisgICAgICBFQkNESUNQVCA9IDIwNzMsCisgICAg ICBFQkNESUNFUyA9IDIwNzQsCisgICAgICBFQkNESUNFU0EgPSAyMDc1LAorICAgICAgRUJDRElD RVNTID0gMjA3NiwKKyAgICAgIEVCQ0RJQ1VLID0gMjA3NywKKyAgICAgIEVCQ0RJQ1VTID0gMjA3 OCwKKyAgICAgIFVua25vd244QmlUID0gMjA3OSwKKyAgICAgIE1uZW1vbmljID0gMjA4MCwKKyAg ICAgIE1uZW0gPSAyMDgxLAorICAgICAgVklTQ0lJID0gMjA4MiwKKyAgICAgIFZJUVIgPSAyMDgz LAorICAgICAgS09JOFIgPSAyMDg0LAorICAgICAgSFpHQjIzMTIgPSAyMDg1LAorICAgICAgSUJN ODY2ID0gMjA4NiwKKyAgICAgIFBDNzc1QmFsdGljID0gMjA4NywKKyAgICAgIEtPSThVID0gMjA4 OCwKKyAgICAgIElCTTAwODU4ID0gMjA4OSwKKyAgICAgIElCTTAwOTI0ID0gMjA5MCwKKyAgICAg IElCTTAxMTQwID0gMjA5MSwKKyAgICAgIElCTTAxMTQxID0gMjA5MiwKKyAgICAgIElCTTAxMTQy ID0gMjA5MywKKyAgICAgIElCTTAxMTQzID0gMjA5NCwKKyAgICAgIElCTTAxMTQ0ID0gMjA5NSwK KyAgICAgIElCTTAxMTQ1ID0gMjA5NiwKKyAgICAgIElCTTAxMTQ2ID0gMjA5NywKKyAgICAgIElC TTAxMTQ3ID0gMjA5OCwKKyAgICAgIElCTTAxMTQ4ID0gMjA5OSwKKyAgICAgIElCTTAxMTQ5ID0g MjEwMCwKKyAgICAgIEJpZzVIS1NDUyA9IDIxMDEsCisgICAgICBJQk0xMDQ3ID0gMjEwMiwKKyAg ICAgIFBUQ1AxNTQgPSAyMTAzLAorICAgICAgQW1pZ2ExMjUxID0gMjEwNCwKKyAgICAgIEtPSTdz d2l0Y2hlZCA9IDIxMDUsCisgICAgICBCUkYgPSAyMTA2LAorICAgICAgVFNDSUkgPSAyMTA3LAor ICAgICAgQ1A1MTkzMiA9IDIxMDgsCisgICAgICB3aW5kb3dzODc0ID0gMjEwOSwKKyAgICAgIHdp bmRvd3MxMjUwID0gMjI1MCwKKyAgICAgIHdpbmRvd3MxMjUxID0gMjI1MSwKKyAgICAgIHdpbmRv d3MxMjUyID0gMjI1MiwKKyAgICAgIHdpbmRvd3MxMjUzID0gMjI1MywKKyAgICAgIHdpbmRvd3Mx MjU0ID0gMjI1NCwKKyAgICAgIHdpbmRvd3MxMjU1ID0gMjI1NSwKKyAgICAgIHdpbmRvd3MxMjU2 ID0gMjI1NiwKKyAgICAgIHdpbmRvd3MxMjU3ID0gMjI1NywKKyAgICAgIHdpbmRvd3MxMjU4ID0g MjI1OCwKKyAgICAgIFRJUzYyMCA9IDIyNTksCisgICAgICBDUDUwMjIwID0gMjI2MAorICAgIH07 CisgICAgdXNpbmcgZW51bSBpZDsKKworICAgIGNvbnN0ZXhwciB0ZXh0X2VuY29kaW5nKCkgPSBk ZWZhdWx0OworCisgICAgY29uc3RleHByIGV4cGxpY2l0CisgICAgdGV4dF9lbmNvZGluZyhzdHJp bmdfdmlldyBfX2VuYykgbm9leGNlcHQKKyAgICA6IF9NX3JlcChfU19maW5kX25hbWUoX19lbmMp KQorICAgIHsKKyAgICAgIF9fZW5jLmNvcHkoX01fbmFtZSwgbWF4X25hbWVfbGVuZ3RoKTsKKyAg ICB9CisKKyAgICAvLyBAcHJlIGkgaGFzIHRoZSB2YWx1ZSBvZiBvbmUgb2YgdGhlIGVudW1lcmF0 b3JzIG9mIGlkLgorICAgIGNvbnN0ZXhwcgorICAgIHRleHRfZW5jb2RpbmcoaWQgX19pKSBub2V4 Y2VwdAorICAgIDogX01fcmVwKF9TX2ZpbmRfaWQoX19pKSkKKyAgICB7CisgICAgICBpZiAoc3Ry aW5nX3ZpZXcgX19uYW1lKF9NX3JlcC0+X01fbmFtZSk7ICFfX25hbWUuZW1wdHkoKSkKKwlfX25h bWUuY29weShfTV9uYW1lLCBtYXhfbmFtZV9sZW5ndGgpOworICAgIH0KKworICAgIGNvbnN0ZXhw ciBpZCBtaWIoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiBpZChfTV9yZXAtPl9NX2lkKTsgfQor CisgICAgY29uc3RleHByIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVy biBfTV9uYW1lOyB9CisKKyAgICBzdHJ1Y3QgYWxpYXNlc192aWV3IDogcmFuZ2VzOjp2aWV3X2lu dGVyZmFjZTxhbGlhc2VzX3ZpZXc+CisgICAgeworICAgIHByaXZhdGU6CisgICAgICBjbGFzcyBf SXRlcmF0b3I7CisgICAgICBzdHJ1Y3QgX1NlbnRpbmVsIHsgfTsKKworICAgIHB1YmxpYzoKKyAg ICAgIGNvbnN0ZXhwciBfSXRlcmF0b3IgYmVnaW4oKSBjb25zdCBub2V4Y2VwdDsKKyAgICAgIGNv bnN0ZXhwciBfU2VudGluZWwgZW5kKCkgY29uc3Qgbm9leGNlcHQgeyByZXR1cm4ge307IH0KKwor ICAgIHByaXZhdGU6CisgICAgICBmcmllbmQgc3RydWN0IHRleHRfZW5jb2Rpbmc7CisKKyAgICAg IGNvbnN0ZXhwciBleHBsaWNpdCBhbGlhc2VzX3ZpZXcoY29uc3QgX1JlcCogX19yKSA6IF9NX2Jl Z2luKF9fcikgeyB9CisKKyAgICAgIGNvbnN0IF9SZXAqIF9NX2JlZ2luID0gbnVsbHB0cjsKKyAg ICB9OworCisgICAgY29uc3RleHByIGFsaWFzZXNfdmlldworICAgIGFsaWFzZXMoKSBjb25zdCBu b2V4Y2VwdAorICAgIHsKKyAgICAgIHJldHVybiBfTV9yZXAtPl9NX25hbWVbMF0gPyBhbGlhc2Vz X3ZpZXcoX01fcmVwKSA6IGFsaWFzZXNfdmlld3tudWxscHRyfTsKKyAgICB9CisKKyAgICBmcmll bmQgY29uc3RleHByIGJvb2wKKyAgICBvcGVyYXRvcj09KGNvbnN0IHRleHRfZW5jb2RpbmcmIF9f YSwKKwkgICAgICAgY29uc3QgdGV4dF9lbmNvZGluZyYgX19iKSBub2V4Y2VwdAorICAgIHsKKyAg ICAgIGlmIChfX2EubWliKCkgPT0gaWQ6Om90aGVyICYmIF9fYi5taWIoKSA9PSBpZDo6b3RoZXIp IFtbdW5saWtlbHldXQorCXJldHVybiBfU19jb21wKF9fYS5fTV9uYW1lLCBfX2IuX01fbmFtZSk7 CisgICAgICBlbHNlCisJcmV0dXJuIF9fYS5taWIoKSA9PSBfX2IubWliKCk7CisgICAgfQorCisg ICAgZnJpZW5kIGNvbnN0ZXhwciBib29sCisgICAgb3BlcmF0b3I9PShjb25zdCB0ZXh0X2VuY29k aW5nJiBfX2VuY29kaW5nLCBpZCBfX2kpIG5vZXhjZXB0CisgICAgeyByZXR1cm4gX19lbmNvZGlu Zy5taWIoKSA9PSBfX2k7IH0KKworI2lmIF9fQ0hBUl9CSVRfXyA9PSA4CisgICAgc3RhdGljIGNv bnN0ZXZhbCB0ZXh0X2VuY29kaW5nCisgICAgbGl0ZXJhbCgpIG5vZXhjZXB0CisgICAgeworI2lm ZGVmIF9fR05VQ19FWEVDVVRJT05fQ0hBUlNFVF9OQU1FCisgICAgICByZXR1cm4gdGV4dF9lbmNv ZGluZyhfX0dOVUNfRVhFQ1VUSU9OX0NIQVJTRVRfTkFNRSk7CisjZWxpZiBkZWZpbmVkIF9fY2xh bmdfbGl0ZXJhbF9lbmNvZGluZ19fCisgICAgICByZXR1cm4gdGV4dF9lbmNvZGluZyhfX2NsYW5n X2xpdGVyYWxfZW5jb2RpbmdfXyk7CisjZWxzZQorICAgICAgcmV0dXJuIHRleHRfZW5jb2Rpbmco KTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyB0ZXh0X2VuY29kaW5nCisgICAgZW52aXJv bm1lbnQoKTsKKworICAgIHRlbXBsYXRlPGlkIF9JZD4KKyAgICAgIHN0YXRpYyBib29sCisgICAg ICBlbnZpcm9ubWVudF9pcygpCisgICAgICB7IHJldHVybiB0ZXh0X2VuY29kaW5nKF9JZCkuX01f aXNfZW52aXJvbm1lbnQoKTsgfQorI2Vsc2UKKyAgICBzdGF0aWMgdGV4dF9lbmNvZGluZyBsaXRl cmFsKCkgPSBkZWxldGU7CisgICAgc3RhdGljIHRleHRfZW5jb2RpbmcgZW52aXJvbm1lbnQoKSA9 IGRlbGV0ZTsKKyAgICB0ZW1wbGF0ZTxpZD4gc3RhdGljIGJvb2wgZW52aXJvbm1lbnRfaXMoKSA9 IGRlbGV0ZTsKKyNlbmRpZgorCisgIHByaXZhdGU6CisgICAgY29uc3QgX1JlcCogX01fcmVwID0g X1NfcmVwcyArIDE7IC8vIGlkOjp1bmtub3duCisgICAgY2hhciBfTV9uYW1lW21heF9uYW1lX2xl bmd0aCArIDFdID0gezB9OworCisgICAgYm9vbAorICAgIF9NX2lzX2Vudmlyb25tZW50KCkgY29u c3Q7CisKKyAgICBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBfUmVwIF9TX3JlcHNbXSA9IHsKKyAg ICAgIHsgMSwgIiIgfSwgeyAyLCAiIiB9LAorI2RlZmluZSBfR0xJQkNYWF9HRVRfRU5DT0RJTkdf REFUQQorI2luY2x1ZGUgPGJpdHMvdGV4dF9lbmNvZGluZy1kYXRhLmg+CisjaWZkZWYgX0dMSUJD WFhfR0VUX0VOQ09ESU5HX0RBVEEKKyMgZXJyb3IgIkludmFsaWQgdGV4dF9lbmNvZGluZyBkYXRh IgorI2VuZGlmCisgICAgICB7IDk5OTksIG51bGxwdHIgfSwgLy8gc2VudGluZWwKKyAgICB9Owor CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sCisgICAgX1NfY29tcChzdHJpbmdfdmlldyBfX2Es IHN0cmluZ192aWV3IF9fYikKKyAgICB7IHJldHVybiBfX3VuaWNvZGU6Ol9fY2hhcnNldF9hbGlh c19tYXRjaChfX2EsIF9fYik7IH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgX1JlcCoK KyAgICBfU19maW5kX25hbWUoc3RyaW5nX3ZpZXcgX19uYW1lKSBub2V4Y2VwdAorICAgIHsKKyNp ZmRlZiBfR0xJQkNYWF9URVhUX0VOQ09ESU5HX1VURjhfT0ZGU0VUCisgICAgICAvLyBPcHRpbWl6 ZSB0aGUgY29tbW9uIFVURi04IGNhc2UgdG8gYXZvaWQgYSBsaW5lYXIgc2VhcmNoIHRocm91Z2gg YWxsCisgICAgICAvLyBzdHJpbmdzIGluIHRoZSB0YWJsZSB1c2luZyB0aGUgX1NfY29tcCBmdW5j dGlvbi4KKyAgICAgIGlmIChfX25hbWUgPT0gIlVURi04IikKKwlyZXR1cm4gX1NfcmVwcyArIDIg KyBfR0xJQkNYWF9URVhUX0VOQ09ESU5HX1VURjhfT0ZGU0VUOworI2VuZGlmCisKKyAgICAgIC8v IFRoZSBmaXJzdCB0d28gYXJyYXkgZWxlbWVudHMgKG90aGVyIGFuZCB1bmtub3duKSBkb24ndCBo YXZlIG5hbWVzLgorICAgICAgLy8gVGhlIGxhc3QgZWxlbWVudCBpcyBhIHNlbnRpbmVsIHRoYXQg Y2FuIG5ldmVyIG1hdGNoIGFueXRoaW5nLgorICAgICAgY29uc3QgYXV0byBfX2ZpcnN0ID0gX1Nf cmVwcyArIDIsIF9fZW5kID0gc3RkOjplbmQoX1NfcmVwcykgLSAxOworICAgICAgZm9yIChhdXRv IF9fciA9IF9fZmlyc3Q7IF9fciAhPSBfX2VuZDsgKytfX3IpCisJaWYgKF9TX2NvbXAoX19yLT5f TV9uYW1lLCBfX25hbWUpKQorCSAgeworCSAgICAvLyBNaWdodCBoYXZlIG1hdGNoZWQgYW4gYWxp YXMuIEZpbmQgdGhlIGZpcnN0IGVudHJ5IGZvciB0aGlzIElELgorCSAgICBjb25zdCBhdXRvIF9f aWQgPSBfX3ItPl9NX2lkOworCSAgICB3aGlsZSAoX19yWy0xXS5fTV9pZCA9PSBfX2lkKQorCSAg ICAgIC0tX19yOworCSAgICByZXR1cm4gX19yOworCSAgfQorICAgICAgcmV0dXJuIF9TX3JlcHM7 IC8vIGlkOjpvdGhlcgorICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgX1JlcCoK KyAgICBfU19maW5kX2lkKGlkIF9faWQpIG5vZXhjZXB0CisgICAgeworICAgICAgY29uc3QgYXV0 byBfX2kgPSAoX1JlcDo6aWQpX19pZDsKKyAgICAgIGNvbnN0IGF1dG8gX19yID0gc3RkOjpsb3dl cl9ib3VuZChfU19yZXBzLCBzdGQ6OmVuZChfU19yZXBzKSAtIDEsIF9faSk7CisgICAgICBpZiAo X19yLT5fTV9pZCA9PSBfX2kpIFtbbGlrZWx5XV0KKwlyZXR1cm4gX19yOworICAgICAgZWxzZQor CXsKKwkgIC8vIFByZWNvbmRpdGlvbnM6IGkgaGFzIHRoZSB2YWx1ZSBvZiBvbmUgb2YgdGhlIGVu dW1lcmF0b3JzIG9mIGlkLgorCSAgX19nbGliY3h4X2Fzc2VydChfX3ItPl9NX2lkID09IF9faSk7 CisJICByZXR1cm4gX1NfcmVwcyArIDE7IC8vIGlkOjp1bmtub3duCisJfQorICAgIH0KKyAgfTsK KworICB0ZW1wbGF0ZTw+CisgICAgc3RydWN0IGhhc2g8dGV4dF9lbmNvZGluZz4KKyAgICB7Cisg ICAgICBzaXplX3QKKyAgICAgIG9wZXJhdG9yKCkoY29uc3QgdGV4dF9lbmNvZGluZyYgX19lbmMp IGNvbnN0IG5vZXhjZXB0CisgICAgICB7IHJldHVybiBzdGQ6Omhhc2g8dGV4dF9lbmNvZGluZzo6 aWQ+KCkoX19lbmMubWliKCkpOyB9CisgICAgfTsKKworICBjbGFzcyB0ZXh0X2VuY29kaW5nOjph bGlhc2VzX3ZpZXc6Ol9JdGVyYXRvcgorICB7CisgIHB1YmxpYzoKKyAgICB1c2luZyB2YWx1ZV90 eXBlID0gY29uc3QgY2hhcio7CisgICAgdXNpbmcgcmVmZXJlbmNlID0gY29uc3QgY2hhcio7Cisg ICAgdXNpbmcgZGlmZmVyZW5jZV90eXBlID0gaW50OworCisgICAgY29uc3RleHByIF9JdGVyYXRv cigpID0gZGVmYXVsdDsKKworICAgIGNvbnN0ZXhwciB2YWx1ZV90eXBlCisgICAgb3BlcmF0b3Iq KCkgY29uc3QKKyAgICB7CisgICAgICBpZiAoX01fZGVyZWZlcmVuY2VhYmxlKCkpIFtbbGlrZWx5 XV0KKwlyZXR1cm4gX01fcmVwLT5fTV9uYW1lOworICAgICAgZWxzZQorCXsKKwkgIF9fZ2xpYmN4 eF9hc3NlcnQoX01fZGVyZWZlcmVuY2VhYmxlKCkpOworCSAgcmV0dXJuICIiOworCX0KKyAgICB9 CisKKyAgICBjb25zdGV4cHIgX0l0ZXJhdG9yJgorICAgIG9wZXJhdG9yKysoKQorICAgIHsKKyAg ICAgIGlmIChfTV9kZXJlZmVyZW5jZWFibGUoKSkgW1tsaWtlbHldXQorICAgICAgKytfTV9yZXA7 CisgICAgICBlbHNlCisJeworCSAgX19nbGliY3h4X2Fzc2VydChfTV9kZXJlZmVyZW5jZWFibGUo KSk7CisJICAqdGhpcyA9IF9JdGVyYXRvcnt9OworCX0KKyAgICAgIHJldHVybiAqdGhpczsKKyAg ICB9CisKKyAgICBjb25zdGV4cHIgX0l0ZXJhdG9yJgorICAgIG9wZXJhdG9yLS0oKQorICAgIHsK KyAgICAgIGNvbnN0IGJvb2wgX19kZWNyZW1lbnRhYmxlCisJPSBfTV9yZXAgIT0gbnVsbHB0ciAm JiBfTV9yZXBbLTFdLl9NX2lkID09IF9NX2lkOworICAgICAgaWYgKF9fZGVjcmVtZW50YWJsZSkg W1tsaWtlbHldXQorICAgICAgLS1fTV9yZXA7CisgICAgICBlbHNlCisJeworCSAgX19nbGliY3h4 X2Fzc2VydChfX2RlY3JlbWVudGFibGUpOworCSAgKnRoaXMgPSBfSXRlcmF0b3J7fTsKKwl9Cisg ICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgY29uc3RleHByIF9JdGVyYXRvcgorICAg IG9wZXJhdG9yKysoaW50KQorICAgIHsKKyAgICAgIGF1dG8gX19pdCA9ICp0aGlzOworICAgICAg KysqdGhpczsKKyAgICAgIHJldHVybiBfX2l0OworICAgIH0KKworICAgIGNvbnN0ZXhwciBfSXRl cmF0b3IKKyAgICBvcGVyYXRvci0tKGludCkKKyAgICB7CisgICAgICBhdXRvIF9faXQgPSAqdGhp czsKKyAgICAgIC0tKnRoaXM7CisgICAgICByZXR1cm4gX19pdDsKKyAgICB9CisKKyAgICBjb25z dGV4cHIgdmFsdWVfdHlwZQorICAgIG9wZXJhdG9yW10oZGlmZmVyZW5jZV90eXBlIF9fbikgY29u c3QKKyAgICB7IHJldHVybiAqKCp0aGlzICsgX19uKTsgfQorCisgICAgY29uc3RleHByIF9JdGVy YXRvciYKKyAgICBvcGVyYXRvcis9KGRpZmZlcmVuY2VfdHlwZSBfX24pCisgICAgeworICAgICAg aWYgKF9NX3JlcCAhPSBudWxscHRyKQorCXsKKwkgIGlmIChfX24gPiAwKQorCSAgICB7CisJICAg ICAgaWYgKF9fbiA8IChzdGQ6OmVuZChfU19yZXBzKSAtIF9NX3JlcCkKKwkJCSAgJiYgX01fcmVw W19fbiAtIDFdLl9NX2lkID09IF9NX2lkKSBbW2xpa2VseV1dCisJCSBfTV9yZXAgKz0gX19uOwor CSAgICAgIGVsc2UKKwkJKnRoaXMgPT0gX0l0ZXJhdG9ye307CisJICAgIH0KKwkgIGVsc2UgaWYg KF9fbiA8IDApCisJICAgIHsKKwkgICAgICBpZiAoX19uID4gKF9TX3JlcHMgLSBfTV9yZXApCisJ CSAgICAmJiBfTV9yZXBbX19uXS5fTV9pZCA9PSBfTV9pZCkgW1tsaWtlbHldXQorCQkgX01fcmVw ICs9IF9fbjsKKwkgICAgICBlbHNlCisJCSp0aGlzID09IF9JdGVyYXRvcnt9OworCSAgICB9CisJ fQorICAgICAgaWYgKF9fbiAhPSAwKQorCV9fZ2xpYmN4eF9hc3NlcnQoX01fcmVwICE9IG51bGxw dHIpOworICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGNvbnN0ZXhwciBfSXRlcmF0 b3ImCisgICAgb3BlcmF0b3ItPShkaWZmZXJlbmNlX3R5cGUgX19uKQorICAgIHsKKyAgICAgIHVz aW5nIF9UcmFpdHMgPSBfX2dudV9jeHg6Ol9faW50X3RyYWl0czxkaWZmZXJlbmNlX3R5cGU+Owor ICAgICAgaWYgKF9fbiA9PSBfVHJhaXRzOjpfX21pbikgW1t1bmxpa2VseV1dCisJcmV0dXJuIG9w ZXJhdG9yKz0oX1RyYWl0czo6X19tYXgpOworICAgICAgcmV0dXJuIG9wZXJhdG9yKz0oLV9fbik7 CisgICAgfQorCisgICAgY29uc3RleHByIGRpZmZlcmVuY2VfdHlwZQorICAgIG9wZXJhdG9yLShj b25zdCBfSXRlcmF0b3ImIF9faSkgY29uc3QKKyAgICB7CisgICAgICBpZiAoX01faWQgPT0gX19p Ll9NX2lkKQorCXJldHVybiBfTV9yZXAgLSBfX2kuX01fcmVwOworICAgICAgX19nbGliY3h4X2Fz c2VydChfTV9pZCA9PSBfX2kuX01faWQpOworICAgICAgcmV0dXJuIF9fZ251X2N4eDo6X19pbnRf dHJhaXRzPGRpZmZlcmVuY2VfdHlwZT46Ol9fbWF4OworICAgIH0KKworICAgIGNvbnN0ZXhwciBi b29sCisgICAgb3BlcmF0b3I9PShjb25zdCBfSXRlcmF0b3ImKSBjb25zdCA9IGRlZmF1bHQ7CisK KyAgICBjb25zdGV4cHIgYm9vbAorICAgIG9wZXJhdG9yPT0oX1NlbnRpbmVsKSBjb25zdCBub2V4 Y2VwdAorICAgIHsgcmV0dXJuICFfTV9kZXJlZmVyZW5jZWFibGUoKTsgfQorCisgICAgY29uc3Rl eHByIHN0cm9uZ19vcmRlcmluZworICAgIG9wZXJhdG9yPD0+KGNvbnN0IF9JdGVyYXRvciYgX19p KSBjb25zdAorICAgIHsKKyAgICAgIF9fZ2xpYmN4eF9hc3NlcnQoX01faWQgPT0gX19pLl9NX2lk KTsKKyAgICAgIHJldHVybiBfTV9yZXAgPD0+IF9faS5fTV9yZXA7CisgICAgfQorCisgICAgZnJp ZW5kIGNvbnN0ZXhwciBfSXRlcmF0b3IKKyAgICBvcGVyYXRvcisoX0l0ZXJhdG9yIF9faSwgZGlm ZmVyZW5jZV90eXBlIF9fbikKKyAgICB7CisgICAgICBfX2kgKz0gX19uOworICAgICAgcmV0dXJu IF9faTsKKyAgICB9CisKKyAgICBmcmllbmQgY29uc3RleHByIF9JdGVyYXRvcgorICAgIG9wZXJh dG9yKyhkaWZmZXJlbmNlX3R5cGUgX19uLCBfSXRlcmF0b3IgX19pKQorICAgIHsKKyAgICAgIF9f aSArPSBfX247CisgICAgICByZXR1cm4gX19pOworICAgIH0KKworICAgIGZyaWVuZCBjb25zdGV4 cHIgX0l0ZXJhdG9yCisgICAgb3BlcmF0b3ItKF9JdGVyYXRvciBfX2ksIGRpZmZlcmVuY2VfdHlw ZSBfX24pCisgICAgeworICAgICAgX19pIC09IF9fbjsKKyAgICAgIHJldHVybiBfX2k7CisgICAg fQorCisgIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIHRleHRfZW5jb2Rpbmc7CisKKyAgICBj b25zdGV4cHIgZXhwbGljaXQKKyAgICBfSXRlcmF0b3IoY29uc3QgX1JlcCogX19yKSBub2V4Y2Vw dAorICAgIDogX01fcmVwKF9fciksIF9NX2lkKF9fciA/IF9fci0+X01faWQgOiAwKQorICAgIHsg fQorCisgICAgY29uc3RleHByIGJvb2wKKyAgICBfTV9kZXJlZmVyZW5jZWFibGUoKSBjb25zdCBu b2V4Y2VwdAorICAgIHsgcmV0dXJuIF9NX3JlcCAhPSBudWxscHRyICYmIF9NX3JlcC0+X01faWQg PT0gX01faWQ7IH0KKworICAgIGNvbnN0IF9SZXAqIF9NX3JlcCA9IG51bGxwdHI7CisgICAgX1Jl cDo6aWQgX01faWQgPSAwOworICB9OworCisgIGNvbnN0ZXhwciBhdXRvCisgIHRleHRfZW5jb2Rp bmc6OmFsaWFzZXNfdmlldzo6YmVnaW4oKSBjb25zdCBub2V4Y2VwdAorICAtPiBfSXRlcmF0b3IK KyAgeyByZXR1cm4gX0l0ZXJhdG9yKF9NX2JlZ2luKTsgfQorCituYW1lc3BhY2UgcmFuZ2VzCit7 CisgIC8vIE9wdC1pbiB0byBib3Jyb3dlZF9yYW5nZSBjb25jZXB0CisgIHRlbXBsYXRlPD4KKyAg ICBpbmxpbmUgY29uc3RleHByIGJvb2wKKyAgICBlbmFibGVfYm9ycm93ZWRfcmFuZ2U8c3RkOjp0 ZXh0X2VuY29kaW5nOjphbGlhc2VzX3ZpZXc+ID0gdHJ1ZTsKK30KKworX0dMSUJDWFhfRU5EX05B TUVTUEFDRV9WRVJTSU9OCit9IC8vIG5hbWVzcGFjZSBzdGQKKworI2VuZGlmIC8vIF9fY3BwX2xp Yl90ZXh0X2VuY29kaW5nCisjZW5kaWYgLy8gX0dMSUJDWFhfVEVYVF9FTkNPRElORwpkaWZmIC0t Z2l0IGEvbGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkgYi9saWJz dGRjKystdjMvcHl0aG9uL2xpYnN0ZGN4eC92Ni9wcmludGVycy5weQppbmRleCAwMzJhN2FhNThh Mi4uYTZjMmVkNDU5OWYgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9weXRob24vbGlic3RkY3h4 L3Y2L3ByaW50ZXJzLnB5CisrKyBiL2xpYnN0ZGMrKy12My9weXRob24vbGlic3RkY3h4L3Y2L3By aW50ZXJzLnB5CkBAIC0yMzI0LDYgKzIzMjQsMjEgQEAgY2xhc3MgU3RkSW50ZWdyYWxDb25zdGFu dFByaW50ZXIocHJpbnRlcl9iYXNlKToKICAgICAgICAgdHlwZW5hbWUgPSBzdHJpcF92ZXJzaW9u ZWRfbmFtZXNwYWNlKHNlbGYuX3R5cGVuYW1lKQogICAgICAgICByZXR1cm4gInt9PHt9LCB7fT4i LmZvcm1hdCh0eXBlbmFtZSwgdmFsdWVfdHlwZSwgdmFsdWUpCiAKK2NsYXNzIFN0ZFRleHRFbmNv ZGluZ1ByaW50ZXIocHJpbnRlcl9iYXNlKToKKyAgICAiIiJQcmludCBhIHN0ZDo6dGV4dF9lbmNv ZGluZy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0eXBlbmFtZSwgdmFsKToKKyAgICAg ICAgc2VsZi5fdmFsID0gdmFsCisgICAgICAgIHNlbGYuX3R5cGVuYW1lID0gdHlwZW5hbWUKKwor ICAgIGRlZiB0b19zdHJpbmcoc2VsZik6CisgICAgICAgIHJlcCA9IHNlbGYuX3ZhbFsnX01fcmVw J10uZGVyZWZlcmVuY2UoKQorICAgICAgICBpZiByZXBbJ19NX2lkJ10gPT0gMToKKyAgICAgICAg ICAgIHJldHVybiBzZWxmLl92YWxbJ19NX25hbWUnXQorICAgICAgICBpZiByZXBbJ19NX2lkJ10g PT0gMjoKKyAgICAgICAgICAgIHJldHVybiAndW5rbm93bicKKyAgICAgICAgcmV0dXJuIHJlcFsn X01fbmFtZSddCisKICMgQSAicmVndWxhciBleHByZXNzaW9uIiBwcmludGVyIHdoaWNoIGNvbmZv cm1zIHRvIHRoZQogIyAiU3ViUHJldHR5UHJpbnRlciIgcHJvdG9jb2wgZnJvbSBnZGIucHJpbnRp bmcuCiBjbGFzcyBSeFByaW50ZXIob2JqZWN0KToKQEAgLTI4MDcsNiArMjgyMiw4IEBAIGRlZiBi dWlsZF9saWJzdGRjeHhfZGljdGlvbmFyeSgpOgogCiAgICAgbGlic3RkY3h4X3ByaW50ZXIuYWRk X3ZlcnNpb24oJ3N0ZDo6JywgJ2ludGVncmFsX2NvbnN0YW50JywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdGRJbnRlZ3JhbENvbnN0YW50UHJpbnRlcikKKyAgICBsaWJzdGRj eHhfcHJpbnRlci5hZGRfdmVyc2lvbignc3RkOjonLCAndGV4dF9lbmNvZGluZycsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RkVGV4dEVuY29kaW5nUHJpbnRlcikKIAogICAg IGlmIGhhc2F0dHIoZ2RiLlZhbHVlLCAnZHluYW1pY190eXBlJyk6CiAgICAgICAgIGxpYnN0ZGN4 eF9wcmludGVyLmFkZF92ZXJzaW9uKCdzdGQ6OicsICdlcnJvcl9jb2RlJywKZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My9zY3JpcHRzL2dlbl90ZXh0X2VuY29kaW5nX2RhdGEucHkgYi9saWJzdGRj KystdjMvc2NyaXB0cy9nZW5fdGV4dF9lbmNvZGluZ19kYXRhLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NzU1CmluZGV4IDAwMDAwMDAwMDAwLi4yZDZmM2U0MDc3YQotLS0gL2Rldi9udWxsCisrKyBiL2xp YnN0ZGMrKy12My9zY3JpcHRzL2dlbl90ZXh0X2VuY29kaW5nX2RhdGEucHkKQEAgLTAsMCArMSw3 MCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIworIyBTY3JpcHQgdG8gZ2VuZXJhdGUgdGFi bGVzIGZvciBsaWJzdGRjKysgc3RkOjp0ZXh0X2VuY29kaW5nLgorIworIyBUaGlzIGZpbGUgaXMg cGFydCBvZiBHQ0MuCisjCisjIEdDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCisjIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisjIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyCisjIHZlcnNpb24uCisjCisjIEdDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyMgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKKyMgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisjIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGgg R0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCisjIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKworIyBUbyB1cGRhdGUgdGhlIExpYnN0ZGMrKyBzdGF0aWMgZGF0 YSBpbiA8Yml0cy90ZXh0X2VuY29kaW5nLWRhdGEuaD4gZG93bmxvYWQKKyMgdGhlIGxhdGVzdDoK KyMgaHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvY2hhcmFjdGVyLXNldHMvY2hhcmFj dGVyLXNldHMtMS5jc3YKKyMgVGhlbiBydW4gdGhpcyBzY3JpcHQgYW5kIHNhdmUgdGhlIG91dHB1 dCB0bworIyBpbmNsdWRlL2JpdHMvdGV4dF9lbmNvZGluZy1kYXRhLmgKKworaW1wb3J0IHN5cwor aW1wb3J0IGNzdgorCitpZiBsZW4oc3lzLmFyZ3YpICE9IDI6CisgICAgcHJpbnQoIlVzYWdlOiAl cyA8Y2hhcmFjdGVyIHNldHMgY3N2PiIgJSBzeXMuYXJndlswXSwgZmlsZT1zeXMuc3RkZXJyKQor ICAgIHN5cy5leGl0KDEpCisKK3ByaW50KCIvLyBHZW5lcmF0ZWQgYnkgZ2VuX3RleHRfZW5jb2Rp bmdfZGF0YS5weSwgZG8gbm90IGVkaXQuXG4iKQorcHJpbnQoIiNpZm5kZWYgX0dMSUJDWFhfR0VU X0VOQ09ESU5HX0RBVEEiKQorcHJpbnQoJyMgZXJyb3IgIlRoaXMgaXMgbm90IGEgcHVibGljIGhl YWRlciwgZG8gbm90IGluY2x1ZGUgaXQgZGlyZWN0bHkiJykKK3ByaW50KCIjZW5kaWZcbiIpCisK KworY2hhcnNldHMgPSB7fQord2l0aCBvcGVuKHN5cy5hcmd2WzFdLCBuZXdsaW5lPScnKSBhcyBm OgorICAgIHJlYWRlciA9IGNzdi5yZWFkZXIoZikKKyAgICBuZXh0KHJlYWRlcikgIyBza2lwIGhl YWRlciByb3cKKyAgICBmb3Igcm93IGluIHJlYWRlcjoKKyAgICAgICAgbWliID0gaW50KHJvd1sy XSkKKyAgICAgICAgaWYgbWliIGluIGNoYXJzZXRzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigiTXVsdGlwbGUgcm93cyBmb3IgbWliRW51bT17fSIuZm9ybWF0KG1pYikpCisgICAgICAg IG5hbWUgPSByb3dbMV0KKyAgICAgICAgYWxpYXNlcyA9IHJvd1s1XS5zcGxpdCgpCisgICAgICAg ICMgRW5zdXJlIHByaW1hcnkgbmFtZSBjb21lcyBmaXJzdAorICAgICAgICBpZiBuYW1lIGluIGFs aWFzZXM6CisgICAgICAgICAgICBhbGlhc2VzLnJlbW92ZShuYW1lKQorICAgICAgICBjaGFyc2V0 c1ttaWJdID0gW25hbWVdICsgYWxpYXNlcworCisjIFJlbW92ZSAiTkFUUy1EQU5PIiBhbmQgIk5B VFMtREFOTy1BREQiCitjaGFyc2V0cy5wb3AoMzMsIE5vbmUpCitjaGFyc2V0cy5wb3AoMzQsIE5v bmUpCisKK2NvdW50ID0gMAorZm9yIG1pYiBpbiBzb3J0ZWQoY2hhcnNldHMua2V5cygpKToKKyAg ICBuYW1lcyA9IGNoYXJzZXRzW21pYl0KKyAgICBpZiBuYW1lc1swXSA9PSAiVVRGLTgiOgorICAg ICAgICBwcmludCgiI2RlZmluZSBfR0xJQkNYWF9URVhUX0VOQ09ESU5HX1VURjhfT0ZGU0VUIHt9 Ii5mb3JtYXQoY291bnQpKQorICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICBwcmludCgn ICB7eyB7OjR9LCAie30iIH19LCcuZm9ybWF0KG1pYiwgbmFtZSkpCisgICAgY291bnQgKz0gbGVu KG5hbWVzKQorCisjIDx0ZXh0X2VuY29kaW5nPiBnaXZlcyBhbiBlcnJvciBpZiB0aGlzIG1hY3Jv IGlzIGxlZnQgZGVmaW5lZC4KKyMgRG8gdGhpcyBsYXN0LCBzbyB0aGF0IHRoZSBnZW5lcmF0ZWQg b3V0cHV0IGlzIG5vdCB1c2FibGUgdW5sZXNzIHdlIHJlYWNoIGhlcmUuCitwcmludCgiXG4jdW5k ZWYgX0dMSUJDWFhfR0VUX0VOQ09ESU5HX0RBVEEiKQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L3NyYy9NYWtlZmlsZS5hbSBiL2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0KaW5kZXggNzI5 MmFlNzBmODEuLjM3YmExNDkxZGVhIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL01ha2Vm aWxlLmFtCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0KQEAgLTQzLDcgKzQzLDcg QEAgZXhwZXJpbWVudGFsX2RpciA9CiBlbmRpZgogCiAjIyBLZWVwIHRoaXMgbGlzdCBzeW5jJ2Qg d2l0aCBhY2luY2x1ZGUubTQ6R0xJQkNYWF9DT05GSUdVUkUuCi1TVUJESVJTID0gYysrOTggYysr MTEgYysrMTcgYysrMjAgYysrMjMgXAorU1VCRElSUyA9IGMrKzk4IGMrKzExIGMrKzE3IGMrKzIw IGMrKzIzIGMrKzI2IFwKIAkkKGZpbGVzeXN0ZW1fZGlyKSAkKGJhY2t0cmFjZV9kaXIpICQoZXhw ZXJpbWVudGFsX2RpcikKIAogIyBDcm9zcyBjb21waWxlciBzdXBwb3J0LgpAQCAtNzcsNiArNzcs NyBAQCB2cGF0aCAlICQodG9wX3NyY2Rpcikvc3JjL2MrKzExCiB2cGF0aCAlICQodG9wX3NyY2Rp cikvc3JjL2MrKzE3CiB2cGF0aCAlICQodG9wX3NyY2Rpcikvc3JjL2MrKzIwCiB2cGF0aCAlICQo dG9wX3NyY2Rpcikvc3JjL2MrKzIzCit2cGF0aCAlICQodG9wX3NyY2Rpcikvc3JjL2MrKzI2CiBp ZiBFTkFCTEVfRklMRVNZU1RFTV9UUwogdnBhdGggJSAkKHRvcF9zcmNkaXIpL3NyYy9maWxlc3lz dGVtCiBlbmRpZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysyNi9NYWtlZmlsZS5h bSBiL2xpYnN0ZGMrKy12My9zcmMvYysrMjYvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAwMGNlZDFmNTAxCi0tLSAvZGV2L251bGwKKysrIGIvbGli c3RkYysrLXYzL3NyYy9jKysyNi9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDEwOSBAQAorIyMgTWFr ZWZpbGUgZm9yIHRoZSBDKysyNiBzb3VyY2VzIG9mIHRoZSBHTlUgQysrIFN0YW5kYXJkIGxpYnJh cnkuCisjIworIyMgQ29weXJpZ2h0IChDKSAxOTk3LTIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisjIworIyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGxpYnN0ZGMrKyB2ZXJz aW9uIDMgZGlzdHJpYnV0aW9uLgorIyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvbWFrZSB0 byBwcm9kdWNlIE1ha2VmaWxlLmluLgorCisjIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05V IElTTyBDKysgTGlicmFyeS4gIFRoaXMgbGlicmFyeSBpcyBmcmVlCisjIyBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKKyMjIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisj IyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3Vy IG9wdGlvbikKKyMjIGFueSBsYXRlciB2ZXJzaW9uLgorCisjIyBUaGlzIGxpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisjIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CisjIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhbG9uZworIyMgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD T1BZSU5HMy4gIElmIG5vdCBzZWUKKyMjIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KworaW5jbHVkZSAkKHRvcF9zcmNkaXIpL2ZyYWdtZW50LmFtCisKKyMgQ29udmVuaWVuY2UgbGli cmFyeSBmb3IgQysrMjYgcnVudGltZS4KK25vaW5zdF9MVExJQlJBUklFUyA9IGxpYmMrKzI2Y29u dmVuaWVuY2UubGEKKworaGVhZGVycyA9CisKK2lmIEVOQUJMRV9FWFRFUk5fVEVNUExBVEUKKyMg WFRFTVBMQVRFX0ZMQUdTID0gLWZuby1pbXBsaWNpdC10ZW1wbGF0ZXMKK2luc3Rfc291cmNlcyA9 CitlbHNlCisjIFhURU1QTEFURV9GTEFHUyA9CitpbnN0X3NvdXJjZXMgPQorZW5kaWYKKworc291 cmNlcyA9IHRleHRfZW5jb2RpbmcuY2MKKwordnBhdGggJSAkKHRvcF9zcmNkaXIpL3NyYy9jKysy NgorCisKK2lmIEdMSUJDWFhfSE9TVEVECitsaWJjX18yNmNvbnZlbmllbmNlX2xhX1NPVVJDRVMg PSAkKHNvdXJjZXMpICAkKGluc3Rfc291cmNlcykKK2Vsc2UKK2xpYmNfXzI2Y29udmVuaWVuY2Vf bGFfU09VUkNFUyA9CitlbmRpZgorCisjIEFNX0NYWEZMQUdTIG5lZWRzIHRvIGJlIGluIGVhY2gg c3ViZGlyZWN0b3J5IHNvIHRoYXQgaXQgY2FuIGJlCisjIG1vZGlmaWVkIGluIGEgcGVyLWxpYnJh cnkgb3IgcGVyLXN1Yi1saWJyYXJ5IHdheS4gIE5lZWQgdG8gbWFudWFsbHkKKyMgc2V0IHRoaXMg b3B0aW9uIGJlY2F1c2UgQ09ORklHX0NYWEZMQUdTIGhhcyB0byBiZSBhZnRlcgorIyBPUFRJTUla RV9DWFhGTEFHUyBvbiB0aGUgY29tcGlsZSBsaW5lIHNvIHRoYXQgLU8yIGNhbiBiZSBvdmVycmlk ZGVuCisjIGFzIHRoZSBvY2Nhc2lvbiBjYWxscyBmb3IgaXQuCitBTV9DWFhGTEFHUyA9IFwKKwkt c3RkPWdudSsrMjYgXAorCSQoZ2xpYmN4eF9sdF9waWNfZmxhZykgJChnbGliY3h4X2NvbXBpbGVy X3NoYXJlZF9mbGFnKSBcCisJJChYVEVNUExBVEVfRkxBR1MpICQoVlRWX0NYWEZMQUdTKSBcCisJ JChXQVJOX0NYWEZMQUdTKSAkKE9QVElNSVpFX0NYWEZMQUdTKSAkKENPTkZJR19DWFhGTEFHUykg XAorCS1maW1wbGljaXQtdGVtcGxhdGVzCisKK0FNX01BS0VGTEFHUyA9IFwKKwkiZ3h4X2luY2x1 ZGVfZGlyPSQoZ3h4X2luY2x1ZGVfZGlyKSIKKworIyBMaWJ0b29sIG5vdGVzCisKKyMgMSkgSW4g Z2VuZXJhbCwgbGlidG9vbCBleHBlY3RzIGFuIGFyZ3VtZW50IHN1Y2ggYXMgYC0tdGFnPUNYWCcg d2hlbgorIyB1c2luZyB0aGUgQysrIGNvbXBpbGVyLCBiZWNhdXNlIHRoYXQgd2lsbCBlbmFibGUg dGhlIHNldHRpbmdzCisjIGRldGVjdGVkIHdoZW4gQysrIHN1cHBvcnQgd2FzIGJlaW5nIGNvbmZp Z3VyZWQuICBIb3dldmVyLCB3aGVuIG5vCisjIHN1Y2ggZmxhZyBpcyBnaXZlbiBpbiB0aGUgY29t bWFuZCBsaW5lLCBsaWJ0b29sIGF0dGVtcHRzIHRvIGZpZ3VyZQorIyBpdCBvdXQgYnkgbWF0Y2hp bmcgdGhlIGNvbXBpbGVyIG5hbWUgaW4gZWFjaCBjb25maWd1cmF0aW9uIHNlY3Rpb24KKyMgYWdh aW5zdCBhIHByZWZpeCBvZiB0aGUgY29tbWFuZCBsaW5lLiAgVGhlIHByb2JsZW0gaXMgdGhhdCwg aWYgdGhlCisjIGNvbXBpbGVyIG5hbWUgYW5kIGl0cyBpbml0aWFsIGZsYWdzIHN0b3JlZCBpbiB0 aGUgbGlidG9vbAorIyBjb25maWd1cmF0aW9uIGZpbGUgZG9uJ3QgbWF0Y2ggdGhvc2UgaW4gdGhl IGNvbW1hbmQgbGluZSwgbGlidG9vbAorIyBjYW4ndCBkZWNpZGUgd2hpY2ggY29uZmlndXJhdGlv biB0byB1c2UsIGFuZCBpdCBnaXZlcyB1cC4gIFRoZQorIyBjb3JyZWN0IHNvbHV0aW9uIGlzIHRv IGFkZCBgLS10YWcgQ1hYJyB0byBMVENYWENPTVBJTEUgYW5kIG1heWJlCisjIENYWExJTkssIGp1 c3QgYWZ0ZXIgJChMSUJUT09MKSwgc28gdGhhdCBsaWJ0b29sIGRvZXNuJ3QgaGF2ZSB0bworIyBh dHRlbXB0IHRvIGluZmVyIHdoaWNoIGNvbmZpZ3VyYXRpb24gdG8gdXNlLgorIworIyBUaGUgc2Vj b25kIHRhZyBhcmd1bWVudCwgYC0tdGFnIGRpc2FibGUtc2hhcmVkYCBtZWFucyB0aGF0IGxpYnRv b2wKKyMgb25seSBjb21waWxlcyBlYWNoIHNvdXJjZSBvbmNlLCBmb3Igc3RhdGljIG9iamVjdHMu IEluIGFjdHVhbGl0eSwKKyMgZ2xpYmN4eF9sdF9waWNfZmxhZyBhbmQgZ2xpYmN4eF9jb21waWxl cl9zaGFyZWRfZmxhZyBhcmUgYWRkZWQgdG8KKyMgdGhlIGxpYnRvb2wgY29tbWFuZCB0aGF0IGlz IHVzZWQgY3JlYXRlIHRoZSBvYmplY3QsIHdoaWNoIGlzCisjIHN1aXRhYmxlIGZvciBzaGFyZWQg bGlicmFyaWVzLiAgVGhlIGAtLXRhZyBkaXNhYmxlLXNoYXJlZGAgbXVzdCBiZQorIyBwbGFjZWQg YWZ0ZXIgLS10YWcgQ1hYIGxlc3QgdGhpbmdzIENYWCB1bmRvIHRoZSBhZmZlY3Qgb2YKKyMgZGlz YWJsZS1zaGFyZWQuCisKKyMgMikgTmVlZCB0byBleHBsaWNpdGx5IHNldCBMVENYWENPTVBJTEUg c28gdGhhdCBFWFRSQV9DWFhfRkxBR1MgaXMKKyMgbGFzdC4gKFRoYXQgd2F5LCB0aGluZ3MgbGlr ZSAtTzIgcGFzc2VkIGRvd24gZnJvbSB0aGUgdG9wbGV2ZWwgY2FuCisjIGJlIG92ZXJyaWRkZW4g YnkgLS1lbmFibGUtZGVidWcuKQorTFRDWFhDT01QSUxFID0gXAorCSQoTElCVE9PTCkgLS10YWcg Q1hYIC0tdGFnIGRpc2FibGUtc2hhcmVkIFwKKwkkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChUT1BMRVZFTF9JTkNMVURFUykgXAor CSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQo RVhUUkFfQ1hYX0ZMQUdTKQorCitMVExERkxBR1MgPSAkKHNoZWxsICQoU0hFTEwpICQodG9wX3Ny Y2RpcikvLi4vbGlidG9vbC1sZGZsYWdzICQoTERGTEFHUykpCisKKyMgMykgV2UnZCBoYXZlIGEg cHJvYmxlbSB3aGVuIGJ1aWxkaW5nIHRoZSBzaGFyZWQgbGlic3RkYysrIG9iamVjdCBpZgorIyB0 aGUgcnVsZXMgYXV0b21ha2UgZ2VuZXJhdGVzIHdvdWxkIGJlIHVzZWQuICBXZSBjYW5ub3QgYWxs b3cgZysrIHRvCisjIGJlIHVzZWQgc2luY2UgdGhpcyB3b3VsZCBhZGQgLWxzdGRjKysgdG8gdGhl IGxpbmsgbGluZSB3aGljaCBvZgorIyBjb3Vyc2UgaXMgcHJvYmxlbWF0aWMgYXQgdGhpcyBwb2lu dC4gIFNvLCB3ZSBnZXQgdGhlIHRvcC1sZXZlbAorIyBkaXJlY3RvcnkgdG8gY29uZmlndXJlIGxp YnN0ZGMrKy12MyB0byB1c2UgZ2NjIGFzIHRoZSBDKysKKyMgY29tcGlsYXRpb24gZHJpdmVyLgor Q1hYTElOSyA9IFwKKwkkKExJQlRPT0wpIC0tdGFnIENYWCAtLXRhZyBkaXNhYmxlLXNoYXJlZCBc CisJJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChD WFgpIFwKKwkkKFZUVl9DWFhMSU5LRkxBR1MpIFwKKwkkKE9QVF9MREZMQUdTKSAkKFNFQ1RJT05f TERGTEFHUykgJChBTV9DWFhGTEFHUykgJChMVExERkxBR1MpIC1vICRACmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvc3JjL2MrKzI2L01ha2VmaWxlLmluIGIvbGlic3RkYysrLXYzL3NyYy9jKysy Ni9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzdl NzNiMmIyNjUKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMjYvdGV4dF9lbmNvZGlu Zy5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMjYvdGV4dF9lbmNvZGluZy5jYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzNjNmMwNzgyMGMKLS0tIC9kZXYvbnVsbAor KysgYi9saWJzdGRjKystdjMvc3JjL2MrKzI2L3RleHRfZW5jb2RpbmcuY2MKQEAgLTAsMCArMSw5 MSBAQAorLy8gRGVmaW5pdGlvbnMgZm9yIDx0ZXh0X2VuY29kaW5nPiAtKi0gQysrIC0qLQorCisv LyBDb3B5cmlnaHQgVGhlIEdOVSBUb29sY2hhaW4gQXV0aG9ycy4KKy8vCisvLyBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIElTTyBDKysgTGlicmFyeS4gIFRoaXMgbGlicmFyeSBpcyBmcmVl CisvLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1 bmRlciB0aGUKKy8vIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlCisvLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikKKy8vIGFueSBsYXRlciB2ZXJzaW9uLgorCisvLyBU aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKy8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisvLyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorCisvLyBVbmRlciBTZWN0aW9uIDcgb2YgR1BMIHZlcnNpb24gMywg eW91IGFyZSBncmFudGVkIGFkZGl0aW9uYWwKKy8vIHBlcm1pc3Npb25zIGRlc2NyaWJlZCBpbiB0 aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24sIHZlcnNpb24KKy8vIDMuMSwgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKy8vIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFu ZAorLy8gYSBjb3B5IG9mIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsKKy8vIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcu UlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorCisjaW5jbHVkZSA8dGV4dF9lbmNvZGluZz4KKyNpbmNsdWRlIDxsb2Nh bGU+CisKKyNpZmRlZiBfR0xJQkNYWF9VU0VfTkxfTEFOR0lORk9fTAorI2luY2x1ZGUgPGxvY2Fs ZS5oPgorI2luY2x1ZGUgPGxhbmdpbmZvLmg+CisKKyNpZiBfX0NIQVJfQklUX18gPT0gOAorbmFt ZXNwYWNlIHN0ZAoreworX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KKwordGV4dF9l bmNvZGluZworX19sb2NhbGVfZW5jb2RpbmcoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgdGV4dF9l bmNvZGluZyBlbmM7CisgIGlmIChsb2NhbGVfdCBsb2MgPSA6Om5ld2xvY2FsZShMQ19DVFlQRV9N QVNLLCBuYW1lLCAobG9jYWxlX3QpMCkpCisgICAgeworICAgICAgaWYgKGNvbnN0IGNoYXIqIGNv ZGVzZXQgPSA6Om5sX2xhbmdpbmZvX2woQ09ERVNFVCwgbG9jKSkKKwl7CisJICBzdHJpbmdfdmll dyBzKGNvZGVzZXQpOworCSAgaWYgKHMuc2l6ZSgpIDwgdGV4dF9lbmNvZGluZzo6bWF4X25hbWVf bGVuZ3RoKQorCSAgICBlbmMgPSB0ZXh0X2VuY29kaW5nKHMpOworCX0KKyAgICAgIDo6ZnJlZWxv Y2FsZShsb2MpOworICAgIH0KKyAgcmV0dXJuIGVuYzsKK30KKworX0dMSUJDWFhfRU5EX05BTUVT UEFDRV9WRVJTSU9OCit9IC8vIG5hbWVzcGFjZSBzdGQKKworc3RkOjp0ZXh0X2VuY29kaW5nCitz dGQ6OnRleHRfZW5jb2Rpbmc6OmVudmlyb25tZW50KCkKK3sKKyAgcmV0dXJuIHN0ZDo6X19sb2Nh bGVfZW5jb2RpbmcoIiIpOworfQorCitib29sCitzdGQ6OnRleHRfZW5jb2Rpbmc6Ol9NX2lzX2Vu dmlyb25tZW50KCkgY29uc3QKK3sKKyAgYm9vbCBtYXRjaGVkID0gZmFsc2U7CisgIGlmIChsb2Nh bGVfdCBsb2MgPSA6Om5ld2xvY2FsZShMQ19DVFlQRV9NQVNLLCAiIiwgKGxvY2FsZV90KTApKQor ICAgIHsKKyAgICAgIGlmIChjb25zdCBjaGFyKiBjb2Rlc2V0ID0gOjpubF9sYW5naW5mb19sKENP REVTRVQsIGxvYykpCisJeworCSAgc3RyaW5nX3ZpZXcgc3YoY29kZXNldCk7CisJICBmb3IgKGF1 dG8gYWxpYXMgOiBhbGlhc2VzKCkpCisJICAgIGlmIChfX3VuaWNvZGU6Ol9fY2hhcnNldF9hbGlh c19tYXRjaChhbGlhcywgc3YpKQorCSAgICAgIHsKKwkJbWF0Y2hlZCA9IHRydWU7CisJCWJyZWFr OworCSAgICAgIH0KKwl9CisgICAgICA6OmZyZWVsb2NhbGUobG9jKTsKKyAgICB9CisgIHJldHVy biBtYXRjaGVkOworfQorCitzdGQ6OnRleHRfZW5jb2RpbmcKK3N0ZDo6bG9jYWxlOjplbmNvZGlu ZygpIGNvbnN0Cit7CisgIHJldHVybiBzdGQ6Ol9fbG9jYWxlX2VuY29kaW5nKG5hbWUoKS5jX3N0 cigpKTsKK30KKyNlbmRpZiAvLyBDSEFSX0JJVCA9PSA4CisKKyNlbmRpZiAvLyBfR0xJQkNYWF9V U0VfTkxfTEFOR0lORk9fTApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9leHBlcmltZW50 YWwvTWFrZWZpbGUuYW0gYi9saWJzdGRjKystdjMvc3JjL2V4cGVyaW1lbnRhbC9NYWtlZmlsZS5h bQppbmRleCA4MjU5Zjk4NmQ5NS4uNjI0MTQzMDk4OGUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My9zcmMvZXhwZXJpbWVudGFsL01ha2VmaWxlLmFtCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvZXhw ZXJpbWVudGFsL01ha2VmaWxlLmFtCkBAIC00NywxMCArNDcsMTIgQEAgbGlic3RkY19fZXhwX2xh X1NPVVJDRVMgPSAkKHNvdXJjZXMpCiAKIGxpYnN0ZGNfX2V4cF9sYV9MSUJBREQgPSBcCiAJJCh0 b3BfYnVpbGRkaXIpL3NyYy9jKysyMy9saWJjKysyM2NvbnZlbmllbmNlLmxhIFwKKwkkKHRvcF9i dWlsZGRpcikvc3JjL2MrKzI2L2xpYmMrKzI2Y29udmVuaWVuY2UubGEgXAogCSQoZmlsZXN5c3Rl bV9saWIpICQoYmFja3RyYWNlX2xpYikKIAogbGlic3RkY19fZXhwX2xhX0RFUEVOREVOQ0lFUyA9 IFwKIAkkKHRvcF9idWlsZGRpcikvc3JjL2MrKzIzL2xpYmMrKzIzY29udmVuaWVuY2UubGEgXAor CSQodG9wX2J1aWxkZGlyKS9zcmMvYysrMjYvbGliYysrMjZjb252ZW5pZW5jZS5sYSBcCiAJJChm aWxlc3lzdGVtX2xpYikgJChiYWNrdHJhY2VfbGliKQogCiAjIEFNX0NYWEZMQUdTIG5lZWRzIHRv IGJlIGluIGVhY2ggc3ViZGlyZWN0b3J5IHNvIHRoYXQgaXQgY2FuIGJlCmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvdGVzdHN1aXRlLzIyX2xvY2FsZS9sb2NhbGUvZW5jb2RpbmcuY2MgYi9saWJz dGRjKystdjMvdGVzdHN1aXRlLzIyX2xvY2FsZS9sb2NhbGUvZW5jb2RpbmcuY2MKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE4ODI1ZmI4OGI5Ci0tLSAvZGV2L251bGwK KysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvbG9jYWxlL2VuY29kaW5nLmNj CkBAIC0wLDAgKzEsMzYgQEAKKy8vIHsgZGctb3B0aW9ucyAiLWxzdGRjKytleHAiIH0KKy8vIHsg ZGctZG8gcnVuIHsgdGFyZ2V0IGMrKzI2IH0gfQorLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxl ICJlbl9VUy5JU084ODU5LTEiIH0KKy8vIHsgZGctcmVxdWlyZS1uYW1lZGxvY2FsZSAiZnJfRlIu SVNPODg1OS0xNSIgfQorCisjaW5jbHVkZSA8bG9jYWxlPgorI2luY2x1ZGUgPHRlc3RzdWl0ZV9o b29rcy5oPgorCit2b2lkCit0ZXN0X2VuY29kaW5nKCkKK3sKKyAgY29uc3Qgc3RkOjpsb2NhbGUg YyA9IHN0ZDo6bG9jYWxlOjpjbGFzc2ljKCk7CisgIHN0ZDo6dGV4dF9lbmNvZGluZyBjX2VuYyA9 IGMuZW5jb2RpbmcoKTsKKyAgVkVSSUZZKCBjX2VuYyA9PSBzdGQ6OnRleHRfZW5jb2Rpbmc6OkFT Q0lJICk7CisKKyAgY29uc3Qgc3RkOjpsb2NhbGUgZnIgPSBzdGQ6OmxvY2FsZShJU09fODg1OSgx NSwgZnJfRlIpKTsKKyAgc3RkOjp0ZXh0X2VuY29kaW5nIGZyX2VuYyA9IGZyLmVuY29kaW5nKCk7 CisgIFZFUklGWSggZnJfZW5jID09IHN0ZDo6dGV4dF9lbmNvZGluZzo6SVNPODg1OTE1ICk7CisK KyAgY29uc3Qgc3RkOjpsb2NhbGUgZW4gPSBzdGQ6OmxvY2FsZShJU09fODg1OSgxLCBlbl9VUykp OworICBzdGQ6OnRleHRfZW5jb2RpbmcgZW5fZW5jID0gZW4uZW5jb2RpbmcoKTsKKyAgVkVSSUZZ KCBlbl9lbmMgPT0gc3RkOjp0ZXh0X2VuY29kaW5nOjpJU09MYXRpbjEgKTsKKworI2lmIF9fY3Bw X2V4Y2VwdGlvbnMKKyAgdHJ5IHsKKyAgICBjb25zdCBzdGQ6OmxvY2FsZSBjX3V0ZjggPSBzdGQ6 OmxvY2FsZSgiQy5VVEYtOCIpOworICAgIFZFUklGWSggY191dGY4LmVuY29kaW5nKCkgPT0gc3Rk Ojp0ZXh0X2VuY29kaW5nOjpVVEY4ICk7CisgIH0gY2F0Y2ggKC4uLikgeworICB9CisjZW5kaWYK K30KKworaW50IG1haW4oKQoreworICB0ZXN0X2VuY29kaW5nKCk7Cit9CmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvdGVzdHN1aXRlL2V4dC91bmljb2RlL2NoYXJzZXRfYWxpYXNfbWF0Y2guY2Mg Yi9saWJzdGRjKystdjMvdGVzdHN1aXRlL2V4dC91bmljb2RlL2NoYXJzZXRfYWxpYXNfbWF0Y2gu Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2MjcyYWU5OThiCi0t LSAvZGV2L251bGwKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9leHQvdW5pY29kZS9jaGFy c2V0X2FsaWFzX21hdGNoLmNjCkBAIC0wLDAgKzEsMTggQEAKKy8vIHsgZGctZG8gY29tcGlsZSB7 IHRhcmdldCBjKysyMCB9IH0KKyNpbmNsdWRlIDxmb3JtYXQ+CisKK3VzaW5nIHN0ZDo6X191bmlj b2RlOjpfX2NoYXJzZXRfYWxpYXNfbWF0Y2g7CitzdGF0aWNfYXNzZXJ0KCBfX2NoYXJzZXRfYWxp YXNfbWF0Y2goIlVURi04IiwgInV0ZjgiKSA9PSB0cnVlICk7CitzdGF0aWNfYXNzZXJ0KCBfX2No YXJzZXRfYWxpYXNfbWF0Y2goIlVURi04IiwgInUudC5mLTAwOCIpID09IHRydWUgKTsKK3N0YXRp Y19hc3NlcnQoIF9fY2hhcnNldF9hbGlhc19tYXRjaCgiVVRGLTgiLCAidXRmLTgwIikgPT0gZmFs c2UgKTsKK3N0YXRpY19hc3NlcnQoIF9fY2hhcnNldF9hbGlhc19tYXRjaCgiVVRGLTgiLCAidXQ4 IikgPT0gZmFsc2UgKTsKKworc3RhdGljX2Fzc2VydCggX19jaGFyc2V0X2FsaWFzX21hdGNoKCJp c284ODU5XzEiLCAiSVNPLTg4NTktMSIpID09IHRydWUgKTsKKworc3RhdGljX2Fzc2VydCggX19j aGFyc2V0X2FsaWFzX21hdGNoKCIiLCAiIikgPT0gdHJ1ZSApOworc3RhdGljX2Fzc2VydCggX19j aGFyc2V0X2FsaWFzX21hdGNoKCIiLCAiLiIpID09IHRydWUgKTsKK3N0YXRpY19hc3NlcnQoIF9f Y2hhcnNldF9hbGlhc19tYXRjaCgiLS0iLCAiLi4uIikgPT0gdHJ1ZSApOworc3RhdGljX2Fzc2Vy dCggX19jaGFyc2V0X2FsaWFzX21hdGNoKCItLWEiLCAiYS4uLiIpID09IHRydWUgKTsKK3N0YXRp Y19hc3NlcnQoIF9fY2hhcnNldF9hbGlhc19tYXRjaCgiLS1hMDEwIiwgImEuLjEwLiIpID09IHRy dWUgKTsKK3N0YXRpY19hc3NlcnQoIF9fY2hhcnNldF9hbGlhc19tYXRjaCgiLS1hMDEwIiwgImEu LjEuMCIpID09IGZhbHNlICk7CitzdGF0aWNfYXNzZXJ0KCBfX2NoYXJzZXRfYWxpYXNfbWF0Y2go ImFhYWEiLCAiMDAwLjAwLjBhMGEpMGFhLi4uIikgPT0gdHJ1ZSApOwpkaWZmIC0tZ2l0IGEvbGli c3RkYysrLXYzL3Rlc3RzdWl0ZS9zdGQvdGV4dF9lbmNvZGluZy9jb25zLmNjIGIvbGlic3RkYysr LXYzL3Rlc3RzdWl0ZS9zdGQvdGV4dF9lbmNvZGluZy9jb25zLmNjCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOWQ5MzY0MWRlNAotLS0gL2Rldi9udWxsCisrKyBiL2xp YnN0ZGMrKy12My90ZXN0c3VpdGUvc3RkL3RleHRfZW5jb2RpbmcvY29ucy5jYwpAQCAtMCwwICsx LDExMyBAQAorLy8geyBkZy1kbyBydW4geyB0YXJnZXQgYysrMjYgfSB9CisKKyNpbmNsdWRlIDx0 ZXh0X2VuY29kaW5nPgorI2luY2x1ZGUgPHN0cmluZ192aWV3PgorI2luY2x1ZGUgPHRlc3RzdWl0 ZV9ob29rcy5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOjpzdHJpbmdfdmlld19saXRlcmFsczsK KworY29uc3RleHByIHZvaWQKK3Rlc3RfZGVmYXVsdF9jb25zdHJ1Y3QoKQoreworICBzdGQ6OnRl eHRfZW5jb2RpbmcgZTA7CisgIFZFUklGWSggZTAubWliKCkgPT0gc3RkOjp0ZXh0X2VuY29kaW5n Ojp1bmtub3duICk7CisgIFZFUklGWSggZTAubmFtZSgpWzBdID09ICdcMCcgKTsgLy8gUDI4NjJS MSBuYW1lKCkgc2hvdWxkIG5ldmVyIHJldHVybiBudWxsCisgIFZFUklGWSggZTAuYWxpYXNlcygp LmVtcHR5KCkgKTsKK30KKworY29uc3RleHByIHZvaWQKK3Rlc3RfY29uc3RydWN0X2J5X25hbWUo KQoreworICBzdGQ6OnN0cmluZ192aWV3IHM7CisgIHN0ZDo6dGV4dF9lbmNvZGluZyBlMChzKTsK KyAgVkVSSUZZKCBlMC5taWIoKSA9PSBzdGQ6OnRleHRfZW5jb2Rpbmc6Om90aGVyICk7CisgIFZF UklGWSggZTAubmFtZSgpID09IHMgKTsKKyAgVkVSSUZZKCBlMC5hbGlhc2VzKCkuZW1wdHkoKSAp OworCisgIHMgPSAibm90IGEgcmVhbCBlbmNvZGluZyI7CisgIHN0ZDo6dGV4dF9lbmNvZGluZyBl MShzKTsKKyAgVkVSSUZZKCBlMS5taWIoKSA9PSBzdGQ6OnRleHRfZW5jb2Rpbmc6Om90aGVyICk7 CisgIFZFUklGWSggZTEubmFtZSgpID09IHMgKTsKKyAgVkVSSUZZKCBlMS5hbGlhc2VzKCkuZW1w dHkoKSApOworCisgIFZFUklGWSggZTEgIT0gZTAgKTsKKyAgVkVSSUZZKCBlMSA9PSBlMC5taWIo KSApOworCisgIHMgPSAidXRmOCI7CisgIHN0ZDo6dGV4dF9lbmNvZGluZyBlMihzKTsKKyAgVkVS SUZZKCBlMi5taWIoKSA9PSBzdGQ6OnRleHRfZW5jb2Rpbmc6OlVURjggKTsKKyAgVkVSSUZZKCBl Mi5uYW1lKCkgPT0gcyApOworICBWRVJJRlkoICEgZTIuYWxpYXNlcygpLmVtcHR5KCkgKTsKKyAg VkVSSUZZKCBlMi5hbGlhc2VzKCkuZnJvbnQoKSA9PSAiVVRGLTgic3YgKTsKKworICBzID0gIkxh dGluLTEiOyAvLyBtYXRjaGVzICJsYXRpbjEiCisgIHN0ZDo6dGV4dF9lbmNvZGluZyBlMyhzKTsK KyAgVkVSSUZZKCBlMy5taWIoKSA9PSBzdGQ6OnRleHRfZW5jb2Rpbmc6OklTT0xhdGluMSApOwor ICBWRVJJRlkoIGUzLm5hbWUoKSA9PSBzICk7CisgIFZFUklGWSggISBlMy5hbGlhc2VzKCkuZW1w dHkoKSApOworICBWRVJJRlkoIGUzLmFsaWFzZXMoKS5mcm9udCgpID09ICJJU09fODg1OS0xOjE5 ODcic3YgKTsgLy8gcHJpbWFyeSBuYW1lCisKKyAgcyA9ICJVLlMuIjsgLy8gbWF0Y2hlcyAidXMi CisgIHN0ZDo6dGV4dF9lbmNvZGluZyBlNChzKTsKKyAgVkVSSUZZKCBlNC5taWIoKSA9PSBzdGQ6 OnRleHRfZW5jb2Rpbmc6OkFTQ0lJICk7CisgIFZFUklGWSggZTQubmFtZSgpID09IHMgKTsKKyAg VkVSSUZZKCAhIGU0LmFsaWFzZXMoKS5lbXB0eSgpICk7CisgIFZFUklGWSggZTQuYWxpYXNlcygp LmZyb250KCkgPT0gIlVTLUFTQ0lJInN2ICk7IC8vIHByaW1hcnkgbmFtZQorfQorCitjb25zdGV4 cHIgdm9pZAordGVzdF9jb25zdHJ1Y3RfYnlfaWQoKQoreworICBzdGQ6OnRleHRfZW5jb2Rpbmcg ZTAoc3RkOjp0ZXh0X2VuY29kaW5nOjpvdGhlcik7CisgIFZFUklGWSggZTAubWliKCkgPT0gc3Rk Ojp0ZXh0X2VuY29kaW5nOjpvdGhlciApOworICBWRVJJRlkoIGUwLm5hbWUoKSA9PSAiInN2ICk7 CisgIFZFUklGWSggZTAuYWxpYXNlcygpLmVtcHR5KCkgKTsKKworICBzdGQ6OnRleHRfZW5jb2Rp bmcgZTEoc3RkOjp0ZXh0X2VuY29kaW5nOjp1bmtub3duKTsKKyAgVkVSSUZZKCBlMS5taWIoKSA9 PSBzdGQ6OnRleHRfZW5jb2Rpbmc6OnVua25vd24gKTsKKyAgVkVSSUZZKCBlMS5uYW1lKCkgPT0g IiJzdiApOworICBWRVJJRlkoIGUxLmFsaWFzZXMoKS5lbXB0eSgpICk7CisKKyAgc3RkOjp0ZXh0 X2VuY29kaW5nIGUyKHN0ZDo6dGV4dF9lbmNvZGluZzo6VVRGOCk7CisgIFZFUklGWSggZTIubWli KCkgPT0gc3RkOjp0ZXh0X2VuY29kaW5nOjpVVEY4ICk7CisgIFZFUklGWSggZTIubmFtZSgpID09 ICJVVEYtOCJzdiApOworICBWRVJJRlkoICEgZTIuYWxpYXNlcygpLmVtcHR5KCkgKTsKKyAgVkVS SUZZKCBlMi5hbGlhc2VzKCkuZnJvbnQoKSA9PSBzdGQ6OnN0cmluZ192aWV3KGUyLm5hbWUoKSkg KTsKKyAgYm9vbCBmb3VuZCA9IGZhbHNlOworICBmb3IgKGF1dG8gYWxpYXMgOiBlMi5hbGlhc2Vz KCkpCisgICAgaWYgKGFsaWFzID09ICJjc1VURjgic3YpCisgICAgeworICAgICAgZm91bmQgPSB0 cnVlOworICAgICAgYnJlYWs7CisgICAgfQorICBWRVJJRlkoIGZvdW5kICk7Cit9CisKK2NvbnN0 ZXhwciB2b2lkCit0ZXN0X2NvcHlfY29uc3RydWN0KCkKK3sKKyAgc3RkOjp0ZXh0X2VuY29kaW5n IGUwOworICBzdGQ6OnRleHRfZW5jb2RpbmcgZTEgPSBlMDsKKyAgVkVSSUZZKCBlMSA9PSBlMCAp OworCisgIHN0ZDo6dGV4dF9lbmNvZGluZyBlMihzdGQ6OnRleHRfZW5jb2Rpbmc6OlVURjgpOwor ICBhdXRvIGUzID0gZTI7CisgIFZFUklGWSggZTMgPT0gZTIgKTsKKworICBlMSA9IGUzOworICBW RVJJRlkoIGUxID09IGUyICk7Cit9CisKK2ludCBtYWluKCkKK3sKKyAgYXV0byBydW5fdGVzdHMg PSBbXSB7CisgICAgdGVzdF9kZWZhdWx0X2NvbnN0cnVjdCgpOworICAgIHRlc3RfY29uc3RydWN0 X2J5X25hbWUoKTsKKyAgICB0ZXN0X2NvbnN0cnVjdF9ieV9pZCgpOworICAgIHRlc3RfY29weV9j b25zdHJ1Y3QoKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfTsKKworICBydW5fdGVzdHMoKTsKKyAg c3RhdGljX2Fzc2VydCggcnVuX3Rlc3RzKCkgKTsKK30KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12 My90ZXN0c3VpdGUvc3RkL3RleHRfZW5jb2RpbmcvbWVtYmVycy5jYyBiL2xpYnN0ZGMrKy12My90 ZXN0c3VpdGUvc3RkL3RleHRfZW5jb2RpbmcvbWVtYmVycy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYWRiZDc0YWI4NWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJz dGRjKystdjMvdGVzdHN1aXRlL3N0ZC90ZXh0X2VuY29kaW5nL21lbWJlcnMuY2MKQEAgLTAsMCAr MSw4NiBAQAorLy8geyBkZy1vcHRpb25zICItbHN0ZGMrK2V4cCIgfQorLy8geyBkZy1kbyBydW4g eyB0YXJnZXQgYysrMjYgfSB9CisvLyB7IGRnLXJlcXVpcmUtbmFtZWRsb2NhbGUgImVuX1VTLklT Tzg4NTktMSIgfQorLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxlICJmcl9GUi5JU084ODU5LTE1 IiB9CisKKyNpbmNsdWRlIDx0ZXh0X2VuY29kaW5nPgorI2luY2x1ZGUgPHN0cmluZ192aWV3Pgor I2luY2x1ZGUgPGxvY2FsZS5oPgorI2luY2x1ZGUgPHRlc3RzdWl0ZV9ob29rcy5oPgorCit1c2lu ZyBuYW1lc3BhY2Ugc3RkOjpzdHJpbmdfdmlld19saXRlcmFsczsKKwordm9pZAordGVzdF9saXRl cmFsKCkKK3sKKyAgY29uc3Qgc3RkOjp0ZXh0X2VuY29kaW5nIGxpdCA9IHN0ZDo6dGV4dF9lbmNv ZGluZzo6bGl0ZXJhbCgpOworICBWRVJJRlkoIGxpdC5uYW1lKCkgPT0gc3RkOjpzdHJpbmdfdmll dyhfX0dOVUNfRVhFQ1VUSU9OX0NIQVJTRVRfTkFNRSkgKTsKK30KKwordm9pZAordGVzdF9lbnYo KQoreworICBjb25zdCBzdGQ6OnRleHRfZW5jb2RpbmcgZW52ID0gc3RkOjp0ZXh0X2VuY29kaW5n OjplbnZpcm9ubWVudCgpOworCisgIGlmIChlbnYubWliKCkgPT0gc3RkOjp0ZXh0X2VuY29kaW5n OjpVVEY4KQorICAgIFZFUklGWSggc3RkOjp0ZXh0X2VuY29kaW5nOjplbnZpcm9ubWVudF9pczxz dGQ6OnRleHRfZW5jb2Rpbmc6OlVURjg+KCkgKTsKKworICA6OnNldGxvY2FsZShMQ19BTEwsIElT T184ODU5KDEsIGVuX1VTKSk7CisgIGNvbnN0IHN0ZDo6dGV4dF9lbmNvZGluZyBlbnYxID0gc3Rk Ojp0ZXh0X2VuY29kaW5nOjplbnZpcm9ubWVudCgpOworICBWRVJJRlkoIGVudjEgPT0gZW52ICk7 CisKKyAgOjpzZXRsb2NhbGUoTENfQUxMLCBJU09fODg1OSgxNSwgZnJfRlIpKTsKKyAgY29uc3Qg c3RkOjp0ZXh0X2VuY29kaW5nIGVudjIgPSBzdGQ6OnRleHRfZW5jb2Rpbmc6OmVudmlyb25tZW50 KCk7CisgIFZFUklGWSggZW52MiA9PSBlbnYgKTsKK30KKwordm9pZAordGVzdF9ldmVyeV9pZCgp Cit7CisgIGZvciAoaW50IGkgPSAwOyBpIDw9IDIyNjA7ICsraSkKKyAgeworICAgIHN0ZDo6dGV4 dF9lbmNvZGluZzo6aWQgbWlie2l9OworICAgIHN3aXRjaCAoaSkKKyAgICB7CisgICAgY2FzZSAw OgorICAgIGNhc2UgMzMgLi4uIDM0OgorICAgIGNhc2UgMTA3IC4uLiAxMDg6CisgICAgY2FzZSAx MjAgLi4uIDk5OToKKyAgICBjYXNlIDEwMjIgLi4uIDE5OTk6CisgICAgY2FzZSAyMTEwIC4uLiAy MjQ5OgorICAgICAgLy8gVGhlc2UgZG8gbm90IGNvcnJlc3BvbmQgdG8gYW4gZW51bWVyYXRvciBv ZiBzdGQ6OnRleHRfZW5jb2Rpbmc6OmlkCisgICAgICAvLyBzbyBhcmUgbm90IHZhbGlkIGFyZ3Vt ZW50cyB0byB0aGUgY29uc3RydWN0b3IuIFdpdGhvdXQgYXNzZXJ0aW9ucworICAgICAgLy8gZW5h YmxlZCwgd2UgbWFwIGJhZCBJRHMgdG8gaWQ6OnVua25vd24gYXMgYSBsaWJzdGRjKysgZXh0ZW5z aW9uLgorI2lmbmRlZiBfR0xJQkNYWF9BU1NFUlRJT05TCisgICAgICB7CisgICAgICAgIHN0ZDo6 dGV4dF9lbmNvZGluZyBiYWR7bWlifTsKKyAgICAgICAgVkVSSUZZKCBiYWQubWliKCkgPT0gc3Rk Ojp0ZXh0X2VuY29kaW5nOjp1bmtub3duICk7CisgICAgICAgIFZFUklGWSggYmFkLm5hbWUoKSA9 PSAiInN2ICk7CisgICAgICB9CisjZW5kaWYKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICBz dGQ6OnRleHRfZW5jb2RpbmcgZW5je21pYn07CisgICAgYXV0byBhbGlhc2VzID0gZW5jLmFsaWFz ZXMoKTsKKyAgICBpZiAoaSA9PSAxIHx8IGkgPT0gMikKKyAgICAgIFZFUklGWSggZW5jLm5hbWUo KSA9PSAiInN2ICk7CisgICAgZWxzZQorICAgICAgVkVSSUZZKCBlbmMubmFtZSgpID09IHN0ZDo6 c3RyaW5nX3ZpZXcoYWxpYXNlcy5mcm9udCgpKSApOworICAgIGF1dG8gYmVnaW4gPSBhbGlhc2Vz LmJlZ2luKCk7CisgICAgYXV0byBlbmQgPSBhbGlhc2VzLmVuZCgpOworICAgIFZFUklGWSggKGJl Z2luICsgc3RkOjpyYW5nZXM6OmRpc3RhbmNlKGFsaWFzZXMpKSA9PSBlbmQgKTsKKyNpZm5kZWYg X0dMSUJDWFhfQVNTRVJUSU9OUworICAgIC8vIFRoaXMgaXMgYW4gZXJyb3IsIGJ1dCB3aXRoIGFz c2VydGlvbnMgZGlzYWJsZWQgaXMgZ3VhcmFudGVlZCBzYWZlOgorICAgIFZFUklGWSggYmVnaW5b c3RkOjpyYW5nZXM6OmRpc3RhbmNlKGFsaWFzZXMpXSA9PSAiInN2ICk7CisgICAgLy8gTGlrZXdp c2U6CisgICAgVkVSSUZZKCBiZWdpbls5OTk5OTldID09ICpiZWdpbiApOworI2VuZGlmCisgIH0K K30KKworaW50IG1haW4oKQoreworICB0ZXN0X2xpdGVyYWwoKTsKKyAgdGVzdF9lbnYoKTsKKyAg dGVzdF9ldmVyeV9pZCgpOworfQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9z dGQvdGV4dF9lbmNvZGluZy9yZXF1aXJlbWVudHMuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRl L3N0ZC90ZXh0X2VuY29kaW5nL3JlcXVpcmVtZW50cy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uYTFkNWQ2YmFlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzdGRj KystdjMvdGVzdHN1aXRlL3N0ZC90ZXh0X2VuY29kaW5nL3JlcXVpcmVtZW50cy5jYwpAQCAtMCww ICsxLDc3IEBACisvLyB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgYysrMjYgfSB9CisvLyB7IGRn LWFkZC1vcHRpb25zIG5vX3BjaCB9CisKKyNpbmNsdWRlIDx0ZXh0X2VuY29kaW5nPgorI2lmbmRl ZiBfX2NwcF9saWJfdGV4dF9lbmNvZGluZworIyBlcnJvciAiRmVhdHVyZS10ZXN0IG1hY3JvIGZv ciB0ZXh0X2VuY29kaW5nIG1pc3NpbmcgaW4gPHRleHRfZW5jb2Rpbmc+IgorI2VsaWYgX19jcHBf bGliX3RleHRfZW5jb2RpbmcgIT0gMjAyMzA2TAorIyBlcnJvciAiRmVhdHVyZS10ZXN0IG1hY3Jv IGZvciB0ZXh0X2VuY29kaW5nIGhhcyB3cm9uZyB2YWx1ZSBpbiA8dGV4dF9lbmNvZGluZz4iCisj ZW5kaWYKKworI3VuZGVmIF9fY3BwX2xpYl9leHBlY3RlZAorI2luY2x1ZGUgPHZlcnNpb24+Cisj aWZuZGVmIF9fY3BwX2xpYl90ZXh0X2VuY29kaW5nCisjIGVycm9yICJGZWF0dXJlLXRlc3QgbWFj cm8gZm9yIHRleHRfZW5jb2RpbmcgbWlzc2luZyBpbiA8dmVyc2lvbj4iCisjZWxpZiBfX2NwcF9s aWJfdGV4dF9lbmNvZGluZyAhPSAyMDIzMDZMCisjIGVycm9yICJGZWF0dXJlLXRlc3QgbWFjcm8g Zm9yIHRleHRfZW5jb2RpbmcgaGFzIHdyb25nIHZhbHVlIGluIDx2ZXJzaW9uPiIKKyNlbmRpZgor CisjaW5jbHVkZSA8Y29uY2VwdHM+CisjaW5jbHVkZSA8cmFuZ2VzPgorc3RhdGljX2Fzc2VydCgg c3RkOjppc190cml2aWFsbHlfY29weWFibGVfdjxzdGQ6OnRleHRfZW5jb2Rpbmc+ICk7CisKK3Vz aW5nIGFsaWFzZXNfdmlldyA9IHN0ZDo6dGV4dF9lbmNvZGluZzo6YWxpYXNlc192aWV3Oworc3Rh dGljX2Fzc2VydCggc3RkOjpjb3B5YWJsZTxhbGlhc2VzX3ZpZXc+ICk7CitzdGF0aWNfYXNzZXJ0 KCBzdGQ6OnJhbmdlczo6dmlldzxhbGlhc2VzX3ZpZXc+ICk7CitzdGF0aWNfYXNzZXJ0KCBzdGQ6 OnJhbmdlczo6cmFuZG9tX2FjY2Vzc19yYW5nZTxhbGlhc2VzX3ZpZXc+ICk7CitzdGF0aWNfYXNz ZXJ0KCBzdGQ6OnJhbmdlczo6Ym9ycm93ZWRfcmFuZ2U8YWxpYXNlc192aWV3PiApOworc3RhdGlj X2Fzc2VydCggc3RkOjpzYW1lX2FzPHN0ZDo6cmFuZ2VzOjpyYW5nZV92YWx1ZV90PGFsaWFzZXNf dmlldz4sCisJCQkgICAgY29uc3QgY2hhcio+ICk7CitzdGF0aWNfYXNzZXJ0KCBzdGQ6OnNhbWVf YXM8c3RkOjpyYW5nZXM6OnJhbmdlX3JlZmVyZW5jZV90PGFsaWFzZXNfdmlldz4sCisJCQkgICAg Y29uc3QgY2hhcio+ICk7CisKKyNpbmNsdWRlIDx0ZXN0c3VpdGVfaG9va3MuaD4KKworY29uc3Rl eHByIGJvb2wKK3Rlc3RfY29uc3RleHByX2l0ZXJhdG9yKCkKK3sKKyAgLy8gVGhpcyBlbmNvZGlu ZyBoYXMgdHdvIGFsaWFzZXMsICJVVEYtOCIgYW5kICJjc1VURjgiLgorICBjb25zdCBhdXRvIGEg PSBzdGQ6OnRleHRfZW5jb2Rpbmcoc3RkOjp0ZXh0X2VuY29kaW5nOjpVVEY4KS5hbGlhc2VzKCk7 CisgIGNvbnN0IGF1dG8gYmVnaW4gPSBhLmJlZ2luKCk7CisgIGNvbnN0IGF1dG8gZW5kID0gYS5l bmQoKTsKKyAgYXV0byBpdGVyID0gYmVnaW47CisgIFZFUklGWSggKml0ZXIgPT0gKmJlZ2luICk7 CisgIFZFUklGWSggKml0ZXIgPT0gaXRlclswXSApOworICBWRVJJRlkoIGl0ZXJbMV0gPT0gYmVn aW5bMV0gKTsKKyAgLS0rK2l0ZXI7CisgIFZFUklGWSggaXRlciA9PSBiZWdpbiApOworICBhdXRv IGl0ZXIyID0gaXRlcisrOworICBWRVJJRlkoIGl0ZXIyID09IGJlZ2luICk7CisgIFZFUklGWSgg aXRlciAhPSBiZWdpbiApOworICBpdGVyMiA9IGl0ZXItLTsKKyAgVkVSSUZZKCBpdGVyMiAhPSBi ZWdpbiApOworICBWRVJJRlkoIGl0ZXIgPT0gYmVnaW4gKTsKKyAgaXRlcisrKys7IC8vIEluY3Jl bWVudHMgcHJ2YWx1ZSByZXR1cm5lZCBieSBvcGVyYXRvcisrKGludCkgaW5zdGVhZCBvZiBpdGVy LgorICBWRVJJRlkoIGl0ZXIgPT0gaXRlcjIgKTsKKyAgaXRlci0tLS07IC8vIERlY3JlbWVudHMg cHJ2YWx1ZSByZXR1cm5lZCBieSBvcGVyYXRvcisrKGludCkgaW5zdGVhZCBvZiBpdGVyLgorICBW RVJJRlkoIGl0ZXIgPT0gYmVnaW4gKTsKKyAgY29uc3QgYXV0byBkID0gc3RkOjpyYW5nZXM6OmRp c3RhbmNlKGEpOworICBpdGVyICs9IGQ7CisgIFZFUklGWSggaXRlciA9PSBlbmQgKTsKKyAgVkVS SUZZKCAoaXRlciAtIGJlZ2luKSA9PSBkICk7CisgIFZFUklGWSggKGJlZ2luICsgMikgPT0gaXRl ciApOworICBWRVJJRlkoICgyICsgYmVnaW4pID09IGl0ZXIgKTsKKyAgVkVSSUZZKCBpdGVyWy0x XSA9PSBiZWdpblsxXSApOworICBpdGVyIC09IGQ7CisgIFZFUklGWSggaXRlciA9PSBiZWdpbiAp OworICBWRVJJRlkoICooaXRlciArIDEpID09IGl0ZXJbMV0gKTsKKyAgVkVSSUZZKCAoMSArIGl0 ZXIgLSAxKSA9PSBiZWdpbiApOworICBWRVJJRlkoICgtMSArIChpdGVyIC0gLTIpICsgLTEpID09 IGJlZ2luICk7CisKKyAgc3RkOjpyYW5nZXM6Oml0ZXJhdG9yX3Q8c3RkOjp0ZXh0X2VuY29kaW5n OjphbGlhc2VzX3ZpZXc+IHNpbmd1bGFye307CisgIFZFUklGWSggKHNpbmd1bGFyICsgMCkgPT0g c2luZ3VsYXIgKTsKKyAgVkVSSUZZKCAoc2luZ3VsYXIgLSAwKSA9PSBzaW5ndWxhciApOworCisg IHJldHVybiB0cnVlOworfQorc3RhdGljX2Fzc2VydCggdGVzdF9jb25zdGV4cHJfaXRlcmF0b3Io KSApOwo= --00000000000035877a060f2332bb--