From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3C59DD6DDDB for ; Fri, 15 Nov 2024 07:36:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBqrp-0000A1-3k; Fri, 15 Nov 2024 02:35:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBqri-000090-1q for grub-devel@gnu.org; Fri, 15 Nov 2024 02:35:39 -0500 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqrb-0008ST-S3 for grub-devel@gnu.org; Fri, 15 Nov 2024 02:35:37 -0500 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-539e8607c2aso1534033e87.3 for ; Thu, 14 Nov 2024 23:35:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656127; x=1732260927; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rj36lxhCGqOOL99G79rYIwhbqoEFsZHnhws8Mn/h+pw=; b=NYRenrw7HHpWKn6jkBqGwtLv9EYcvgyw219O5iiEYaYx1f0q9sLv5yeUsVjXIQI/GX iPweBxUUrdEQl5WeOr5WnbYABYFzRUOo+eX4WFYuSisM9cRBp1HLTfKGS5yr7oIo7KeC JnkAHMyShTKFyfwpcQIyhTvuaeuKB/HBw0Snudv6ejHod3olvNSnzQjCLpGR2hp90M8i LK9OJuvMqwwitA+lC0stjhkLNfCz8IXLGcRtvwwDkGZC9bWf8BU1N+ykk5NBNj0A9B0N O5FASUWukVXkAgmo/u0rZdGJafUvydjWYmzUB0gEeZcKUGgZGF1kIF1+X0ifLYFchCgP DWTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656127; x=1732260927; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rj36lxhCGqOOL99G79rYIwhbqoEFsZHnhws8Mn/h+pw=; b=JazRVZRkyJlgpNngJ6cUJFDzzCYHDpH05ajGbdU6sZWwmWQ5WPMkb83fstUZgil/Wd apNZSYJLik5Bo6GDIVH1QnQ103PX24Fm8Um3zvJnm1N0LtffL+iwpqFjy7Vgy4qarNKA f4Ks2Y0mnS4aWOhXoio+TLEk+GYK+zeDUhfpq8COTxLwEOKQbbIo49zqJ1Uc+1LhAk/m aYsKCMuF0J8PNsAR5edayPlSjvhy5Ko9lCIZfg/GP+XvbAsE9ZrAD5erPl8mwXdq2JOH LCFqCeIjt7i28WiKOXGaKrwrppyafDwDg42MuesUsjILJT+A51v5W1k8QKvjDVC5ER48 5x0w== X-Gm-Message-State: AOJu0YwrXrVI7kthCErYUaGYxfbgHwLqRAmb91rtLpwlWpxGzb8IJyo3 MFm0Ca3NrBlRhXAdqI43Jo6Ps2Fr0usYrBzXWMbHeHooQ7cNVHTUk6DyMBhtJCbUJgAS5kIXmBK V X-Google-Smtp-Source: AGHT+IHBi+YWId+CG00DVqjpouFz1vYZ13Qtr0D6cNv/5ibCnaagbw4Und1XA6sEj4ogAYfAhDzXRQ== X-Received: by 2002:a05:6512:3b23:b0:53d:9ff8:ea08 with SMTP id 2adb3069b0e04-53dab2a0776mr664585e87.16.1731656125809; Thu, 14 Nov 2024 23:35:25 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7f8c1c172c0sm717303a12.11.2024.11.14.23.35.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:35:24 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 02/33] libtasn1: import libtasn1-4.19.0 Date: Fri, 15 Nov 2024 15:34:30 +0800 Message-ID: <20241115073506.2784-3-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241115073506.2784-1-glin@suse.com> References: <20241115073506.2784-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::135; envelope-from=glin@suse.com; helo=mail-lf1-x135.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , Hernan Gatta , Daniel Axtens , shkhisti@microsoft.com, jaskaran.khurana@microsoft.com, christopher.co@microsoft.com, daniel.mihai@microsoft.com, jaredz@redhat.com, development@efficientek.com, jejb@linux.ibm.com, mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , Vladimir Serbinenko Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org RnJvbTogRGFuaWVsIEF4dGVucyA8ZGphQGF4dGVucy5uZXQ+CgpJbXBvcnQgYSB2ZXJ5IHRyaW1t ZWQtZG93biBzZXQgb2YgbGlidGFzbjEgZmlsZXM6CgpjdXJsIC1MIC1PIGh0dHBzOi8vZnRwLmdu dS5vcmcvZ251L2xpYnRhc24xL2xpYnRhc24xLTQuMTkuMC50YXIuZ3oKdGFyIHhmIGxpYnRhc24x LTQuMTkuMC50YXIuZ3oKcm0gLXJmIGdydWItY29yZS9saWIvbGlidGFzbjEvCm1rZGlyIC1wIGdy dWItY29yZS9saWIvbGlidGFzbjEvbGliLwpta2RpciAtcCBncnViLWNvcmUvbGliL2xpYnRhc24x L3Rlc3RzLwpjcCBsaWJ0YXNuMS00LjE5LjAve1JFQURNRS5tZCxDT1BZSU5HfSBncnViLWNvcmUv bGliL2xpYnRhc24xLwpjcCBsaWJ0YXNuMS00LjE5LjAvbGliL3tjb2RpbmcuYyxkZWNvZGluZy5j LGVsZW1lbnQuYyxlbGVtZW50LmgsZXJyb3JzLmMsZ3N0ci5jLGdzdHIuaCxpbnQuaCxwYXJzZXJf YXV4LmMscGFyc2VyX2F1eC5oLHN0cnVjdHVyZS5jLHN0cnVjdHVyZS5ofSBncnViLWNvcmUvbGli dGFzbjEvbGliLwpjcCBsaWJ0YXNuMS00LjE5LjAvbGliL2luY2x1ZGVzL2xpYnRhc24xLmggZ3J1 Yi1jb3JlL2xpYi9saWJ0YXNuMS8KY3AgbGlidGFzbjEtNC4xOS4wL3Rlc3RzL3tDVkUtMjAxOC0x MDAwNjU0LTFfYXNuMV90YWIuaCxDVkUtMjAxOC0xMDAwNjU0LTJfYXNuMV90YWIuaCxDVkUtMjAx OC0xMDAwNjU0LmMsb2JqZWN0LWlkLWRlY29kaW5nLmMsb2JqZWN0LWlkLWVuY29kaW5nLmMsb2N0 ZXQtc3RyaW5nLmMscmVwcm9kdWNlcnMuYyxUZXN0X292ZXJmbG93LmMsVGVzdF9zaW1wbGUuYyxU ZXN0X3N0cmluZ3MuY30gZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cwpybSAtcmYgbGlidGFz bjEtNC4xOS4wKgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEF4dGVucyA8ZGphQGF4dGVucy5uZXQ+ ClNpZ25lZC1vZmYtYnk6IEdhcnkgTGluIDxnbGluQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogVmxh ZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwg S2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgotLS0KIGdydWItY29yZS9saWIvbGlidGFz bjEvQ09QWUlORyAgICAgICAgICAgICAgICB8ICAgMTYgKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNu MS9SRUFETUUubWQgICAgICAgICAgICAgIHwgICA5OCArCiBncnViLWNvcmUvbGliL2xpYnRhc24x L2xpYi9jb2RpbmcuYyAgICAgICAgICAgfCAxNDI1ICsrKysrKysrKysKIGdydWItY29yZS9saWIv bGlidGFzbjEvbGliL2RlY29kaW5nLmMgICAgICAgICB8IDI1MDEgKysrKysrKysrKysrKysrKysK IGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2VsZW1lbnQuYyAgICAgICAgICB8IDExMDkgKysr KysrKysKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2VsZW1lbnQuaCAgICAgICAgICB8ICAg NDIgKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZXJyb3JzLmMgICAgICAgICAgIHwgIDEw MCArCiBncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9nc3RyLmMgICAgICAgICAgICAgfCAgIDc0 ICsKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2dzdHIuaCAgICAgICAgICAgICB8ICAgNTAg KwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvaW50LmggICAgICAgICAgICAgIHwgIDIyMSAr KwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvcGFyc2VyX2F1eC5jICAgICAgIHwgMTE3OCAr KysrKysrKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvcGFyc2VyX2F1eC5oICAgICAgIHwg IDE3MiArKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvc3RydWN0dXJlLmMgICAgICAgIHwg MTIyNSArKysrKysrKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvc3RydWN0dXJlLmggICAg ICAgIHwgICA0NiArCiBncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYnRhc24xLmggICAgICAgICAg ICAgfCAgNjQzICsrKysrCiAuLi4vdGVzdHMvQ1ZFLTIwMTgtMTAwMDY1NC0xX2FzbjFfdGFiLmgg ICAgICAgfCAgIDMyICsKIC4uLi90ZXN0cy9DVkUtMjAxOC0xMDAwNjU0LTJfYXNuMV90YWIuaCAg ICAgICB8ICAgMzYgKwogLi4uL2xpYi9saWJ0YXNuMS90ZXN0cy9DVkUtMjAxOC0xMDAwNjU0LmMg ICAgIHwgICA3MiArCiBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL1Rlc3Rfb3ZlcmZsb3cu YyAgfCAgMTY4ICsrCiBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL1Rlc3Rfc2ltcGxlLmMg ICAgfCAgMjI2ICsrCiBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL1Rlc3Rfc3RyaW5ncy5j ICAgfCAgMTU2ICsKIC4uLi9saWIvbGlidGFzbjEvdGVzdHMvb2JqZWN0LWlkLWRlY29kaW5nLmMg ICB8ICAxMjEgKwogLi4uL2xpYi9saWJ0YXNuMS90ZXN0cy9vYmplY3QtaWQtZW5jb2RpbmcuYyAg IHwgIDEzMyArCiBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL29jdGV0LXN0cmluZy5jICAg fCAgMjMwICsrCiBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL3JlcHJvZHVjZXJzLmMgICAg fCAgIDkwICsKIDI1IGZpbGVzIGNoYW5nZWQsIDEwMTY0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xL0NPUFlJTkcKIGNyZWF0ZSBtb2RlIDEw MDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xL1JFQURNRS5tZAogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2NvZGluZy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZGVjb2RpbmcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2VsZW1lbnQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2VsZW1lbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2Vycm9ycy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZ3N0ci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1 Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZ3N0ci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1j b3JlL2xpYi9saWJ0YXNuMS9saWIvaW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL2xpYnRhc24xL2xpYi9wYXJzZXJfYXV4LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNv cmUvbGliL2xpYnRhc24xL2xpYi9wYXJzZXJfYXV4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnVi LWNvcmUvbGliL2xpYnRhc24xL2xpYi9zdHJ1Y3R1cmUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdy dWItY29yZS9saWIvbGlidGFzbjEvbGliL3N0cnVjdHVyZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWJ0YXNuMS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1 Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9DVkUtMjAxOC0xMDAwNjU0LTFfYXNuMV90YWIuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvQ1ZFLTIwMTgt MTAwMDY1NC0yX2FzbjFfdGFiLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xp YnRhc24xL3Rlc3RzL0NWRS0yMDE4LTEwMDA2NTQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWIt Y29yZS9saWIvbGlidGFzbjEvdGVzdHMvVGVzdF9vdmVyZmxvdy5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9UZXN0X3NpbXBsZS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9UZXN0X3N0cmluZ3MuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvb2JqZWN0LWlkLWRl Y29kaW5nLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3Rz L29iamVjdC1pZC1lbmNvZGluZy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9s aWJ0YXNuMS90ZXN0cy9vY3RldC1zdHJpbmcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29y ZS9saWIvbGlidGFzbjEvdGVzdHMvcmVwcm9kdWNlcnMuYwoKZGlmZiAtLWdpdCBhL2dydWItY29y ZS9saWIvbGlidGFzbjEvQ09QWUlORyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvQ09QWUlORwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU4YjM2MjhkYgotLS0gL2Rldi9u dWxsCisrKyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvQ09QWUlORwpAQCAtMCwwICsxLDE2IEBA CitMSUNFTlNJTkcKKz09PT09PT09PQorCitUaGUgbGlidGFzbjEgbGlicmFyeSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworTGljZW5zZSAoTEdQTCkgdmVy c2lvbiAyLjEgb3IgbGF0ZXI7IHNlZSBbQ09QWUlORy5MRVNTRVJdKGRvYy9DT1BZSU5HLkxFU1NF UikKK2ZvciB0aGUgbGljZW5zZSB0ZXJtcy4KKworVGhlIEdOVSBMR1BMIGFwcGxpZXMgdG8gdGhl IG1haW4gbGlidGFzbjEgbGlicmFyeSwgd2hpbGUgdGhlCitpbmNsdWRlZCBhcHBsaWNhdGlvbnMg bGlicmFyeSBhcmUgdW5kZXIgdGhlIEdOVSBHUEwgdmVyc2lvbiAzLgorVGhlIGxpYnRhc24xIGxp YnJhcnkgaXMgbG9jYXRlZCBpbiB0aGUgbGliIGRpcmVjdG9yeSwgd2hpbGUgdGhlIGFwcGxpY2F0 aW9ucworaW4gc3JjLy4KKworVGhlIGRvY3VtZW50YXRpb24gaW4gZG9jLyBpcyB1bmRlciB0aGUg R05VIEZETCBsaWNlbnNlIDEuMy4KKworRm9yIGFueSBjb3B5cmlnaHQgeWVhciByYW5nZSBzcGVj aWZpZWQgYXMgWVlZWS1aWlpaIGluIHRoaXMgcGFja2FnZQorbm90ZSB0aGF0IHRoZSByYW5nZSBz cGVjaWZpZXMgZXZlcnkgc2luZ2xlIHllYXIgaW4gdGhhdCBjbG9zZWQgaW50ZXJ2YWwuCmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL2xpYnRhc24xL1JFQURNRS5tZCBiL2dydWItY29yZS9saWIv bGlidGFzbjEvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u YjAzMDViOTNlCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9SRUFE TUUubWQKQEAgLTAsMCArMSw5OCBAQAorIyBMaWJ0YXNuMSBSRUFETUUgLS0gSW50cm9kdWN0aW9u IGluZm9ybWF0aW9uCisKK1RoaXMgaXMgR05VIExpYnRhc24xLCBhIHNtYWxsIEFTTi4xIGxpYnJh cnkuCisKK1RoZSBDIGxpYnJhcnkgKGxpYnRhc24xLiopIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwKK1B1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xIG9yIGxhdGVyLiAg U2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLgorCitUaGUgY29tbWFuZCBsaW5lIHRvb2wsIHNlbGYg dGVzdHMsIGV4YW1wbGVzLCBhbmQgb3RoZXIgYXV4aWxsaWFyeQorZmlsZXMsIGFyZSBsaWNlbnNl ZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzLjAKK29yIGxh dGVyLiAgU2VlIHRoZSBmaWxlIENPUFlJTkcuCisKKyMjIEJ1aWxkaW5nIHRoZSBsaWJyYXJ5CisK K1dlIHJlcXVpcmUgc2V2ZXJhbCB0b29scyB0byBidWlsZCB0aGUgc29mdHdhcmUsIGluY2x1ZGlu ZzoKKworKiBbTWFrZV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9tYWtlLykKKyogW0F1 dG9tYWtlXShodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9tYWtlLykgKHVzZSAxLjEx LjMgb3IgbGF0ZXIpCisqIFtBdXRvY29uZl0oaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9h dXRvY29uZi8pCisqIFtMaWJ0b29sXShodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRv b2wvKQorKiBbVGV4aW5mb10oaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS90ZXhpbmZvLykK KyogW2hlbHAybWFuXShodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvaGVscDJtYW4vKQorKiBb VGFyXShodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL3Rhci8pCisqIFtHemlwXShodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d6aXAvKQorKiBbYmlzb25dKGh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvYmlzb24vKQorKiBbVGV4bGl2ZSAmIGVwc2ZdKGh0dHBzOi8vd3d3LnR1Zy5v cmcvdGV4bGl2ZS8pIChmb3IgUERGIG1hbnVhbCkKKyogW0dUSy1ET0NdKGh0dHBzOi8vd3d3Lmd0 ay5vcmcvZ3RrLWRvYy8pIChmb3IgQVBJIG1hbnVhbCkKKyogW0dpdF0oaHR0cHM6Ly9naXQtc2Nt LmNvbS8pCisqIFtsaWJhYmlnYWlsXShodHRwczovL3BhZ3VyZS5pby9saWJhYmlnYWlsLykgKGZv ciBhYmkgY29tcGFyaXNvbiBpbiBtYWtlIGRpc3QpCisqIFtWYWxncmluZF0oaHR0cHM6Ly92YWxn cmluZC5vcmcvKSAob3B0aW9uYWwpCisKK1RoZSByZXF1aXJlZCBzb2Z0d2FyZSBpcyB0eXBpY2Fs bHkgZGlzdHJpYnV0ZWQgd2l0aCB5b3VyIG9wZXJhdGluZworc3lzdGVtLCBhbmQgdGhlIGluc3Ry dWN0aW9ucyBmb3IgaW5zdGFsbGluZyB0aGVtIGRpZmZlci4gIEhlcmUgYXJlCitzb21lIGhpbnRz OgorCitEZWJpYW4vVWJ1bnR1OgorYGBgCitzdWRvIGFwdC1nZXQgaW5zdGFsbCBtYWtlIGdpdCBh dXRvY29uZiBhdXRvbWFrZSBsaWJ0b29sIGJpc29uCitzdWRvIGFwdC1nZXQgaW5zdGFsbCB0ZXhp bmZvIGhlbHAybWFuIGd0ay1kb2MtdG9vbHMgdmFsZ3JpbmQgYWJpZ2FpbC10b29scworYGBgCisK K1BERiBtYW51YWwgLSBEZWJpYW4gPD0gc3RyZXRjaDoKK2BgYAorc3VkbyBhcHQtZ2V0IGluc3Rh bGwgdGV4bGl2ZS1nZW5lcmljLXJlY29tbWVuZGVkIHRleGxpdmUgdGV4bGl2ZS1leHRyYS11dGls cworYGBgCisKK1BERiBtYW51YWwgLSBEZWJpYW4gPj0gYnVzdGVyOgorYGBgCitzdWRvIGFwdC1n ZXQgaW5zdGFsbCB0ZXhsaXZlLXBsYWluLWdlbmVyaWMgdGV4bGl2ZSB0ZXhsaXZlLWV4dHJhLXV0 aWxzCitgYGAKKworVGhlIG5leHQgc3RlcCBpcyB0byBydW4gYXV0b3JlY29uZiwgLi9jb25maWd1 cmUsIGV0YzoKKworYGBgCiskIC4vYm9vdHN0cmFwCitgYGAKKworVGhlbiBidWlsZCB0aGUgcHJv amVjdCBub3JtYWxseToKKworYGBgCiskIC4vY29uZmlndXJlCiskIG1ha2UgY2hlY2sKK2BgYAor CitIYXBweSBoYWNraW5nIQorCisKKyMjIE1hbnVhbAorCitUaGUgbWFudWFsIGlzIGluIHRoZSBg ZG9jL2AgZGlyZWN0b3J5IG9mIHRoZSByZWxlYXNlLgorCitZb3UgY2FuIGFsc28gYnJvd3NlIHRo ZSBtYW51YWwgb25saW5lIGF0OgorCisgLSBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xp YnRhc24xL21hbnVhbC8KKyAtIGh0dHBzOi8vZ251dGxzLmdpdGxhYi5pby9saWJ0YXNuMS9tYW51 YWwvCisgLSBodHRwczovL2dudXRscy5naXRsYWIuaW8vbGlidGFzbjEvbWFudWFsL2xpYnRhc24x Lmh0bWwKKyAtIGh0dHBzOi8vZ251dGxzLmdpdGxhYi5pby9saWJ0YXNuMS9tYW51YWwvbGlidGFz bjEucGRmCisgLSBodHRwczovL2dudXRscy5naXRsYWIuaW8vbGlidGFzbjEvcmVmZXJlbmNlLwor IC0gaHR0cHM6Ly9nbnV0bHMuZ2l0bGFiLmlvL2xpYnRhc24xL3JlZmVyZW5jZS9saWJ0YXNuMS5w ZGYKKworCisjIyBDb2RlIGNvdmVyYWdlIHJlcG9ydAorCitUaGUgY292ZXJhZ2UgcmVwb3J0IGlz IGF0OgorCisgLSBodHRwczovL2dudXRscy5naXRsYWIuaW8vbGlidGFzbjEvY292ZXJhZ2UKKwor CisjIyBJc3N1ZSB0cmFja2VycworCisgLSBbTWFpbiBpc3N1ZSB0cmFja2VyXShodHRwczovL2dp dGxhYi5jb20vZ251dGxzL2xpYnRhc24xL2lzc3VlcykKKyAtIFtvc3MtZnV6eiBmb3VuZCBpc3N1 ZXNdKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9vc3MtZnV6ei9pc3N1ZXMvbGlzdD9xPWxp YnRhc24xJmNhbj0yKQorCisKKyMjIEhvbWVwYWdlCisKK1RoZSBwcm9qZWN0IGhvbWVwYWdlIGF0 IHRoZSBnbnUgc2l0ZSBpcyBhdDoKKworaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0 YXNuMS8KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFzbjEvbGliL2NvZGluZy5jIGIv Z3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvY29kaW5nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5lYTViYzM3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUv bGliL2xpYnRhc24xL2xpYi9jb2RpbmcuYwpAQCAtMCwwICsxLDE0MjUgQEAKKy8qCisgKiBDb3B5 cmlnaHQgKEMpIDIwMDItMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqCisg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSUJUQVNOMS4KKyAqCisgKiBUaGUgTElCVEFTTjEgbGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdAorICogYW5kL29y IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorICogMDIxMTAtMTMwMSwg VVNBCisgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiBGaWxlOiBjb2RpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogRnVuY3Rpb25zIHRvIGNyZWF0ZSBhIERFUiBj b2Rpbmcgb2YgICovCisvKiAgIGFuIEFTTjEgdHlwZS4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisKKyNpbmNsdWRlIDxpbnQuaD4KKyNpbmNsdWRlICJwYXJzZXJfYXV4Lmgi CisjaW5jbHVkZSA8Z3N0ci5oPgorI2luY2x1ZGUgImVsZW1lbnQuaCIKKyNpbmNsdWRlICJtaW5t YXguaCIKKyNpbmNsdWRlIDxzdHJ1Y3R1cmUuaD4KKworI2RlZmluZSBNQVhfVEFHX0xFTiAxNgor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworLyogRnVuY3Rpb24gOiBfYXNuMV9lcnJvcl9kZXNjcmlwdGlvbl92YWx1ZV9ub3RfZm91bmQg Ki8KKy8qIERlc2NyaXB0aW9uOiBjcmVhdGVzIHRoZSBFcnJvckRlc2NyaXB0aW9uIHN0cmluZyAg ICovCisvKiBmb3IgdGhlIEFTTjFfVkFMVUVfTk9UX0ZPVU5EIGVycm9yLiAgICAgICAgICAgICAg ICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qICAgbm9kZTogbm9kZSBvZiB0aGUgdHJlZSB3aGVyZSB0aGUgdmFsdWUgaXMgTlVM TC4gICovCisvKiAgIEVycm9yRGVzY3JpcHRpb246IHN0cmluZyByZXR1cm5lZC4gICAgICAgICAg ICAgICAqLworLyogUmV0dXJuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCitzdGF0aWMgdm9pZAorX2FzbjFfZXJyb3JfZGVzY3JpcHRpb25fdmFsdWVfbm90 X2ZvdW5kIChhc24xX25vZGUgbm9kZSwKKwkJCQkJIGNoYXIgKkVycm9yRGVzY3JpcHRpb24pCit7 CisKKyAgaWYgKEVycm9yRGVzY3JpcHRpb24gPT0gTlVMTCkKKyAgICByZXR1cm47CisKKyAgRXN0 cmNweSAoRXJyb3JEZXNjcmlwdGlvbiwgIjo6IHZhbHVlIG9mIGVsZW1lbnQgJyIpOworICBfYXNu MV9oaWVyYXJjaGljYWxfbmFtZSAobm9kZSwgRXJyb3JEZXNjcmlwdGlvbiArIHN0cmxlbiAoRXJy b3JEZXNjcmlwdGlvbiksCisJCQkgICBBU04xX01BWF9FUlJPUl9ERVNDUklQVElPTl9TSVpFIC0g NDApOworICBFc3RyY2F0IChFcnJvckRlc2NyaXB0aW9uLCAiJyBub3QgZm91bmQiKTsKKworfQor CisvKioKKyAqIGFzbjFfbGVuZ3RoX2RlcjoKKyAqIEBsZW46IHZhbHVlIHRvIGNvbnZlcnQuCisg KiBAZGVyOiBidWZmZXIgdG8gaG9sZCB0aGUgcmV0dXJuZWQgZW5jb2RpbmcgKG1heSBiZSAlTlVM TCkuCisgKiBAZGVyX2xlbjogbnVtYmVyIG9mIG1lYW5pbmdmdWwgYnl0ZXMgb2YgQU5TIChkZXJb MF0uLmRlcltkZXJfbGVuLTFdKS4KKyAqCisgKiBDcmVhdGVzIHRoZSBERVIgZW5jb2Rpbmcgb2Yg dGhlIHByb3ZpZGVkIGxlbmd0aCB2YWx1ZS4KKyAqIFRoZSBAZGVyIGJ1ZmZlciBtdXN0IGhhdmUg ZW5vdWdoIHJvb20gZm9yIHRoZSBvdXRwdXQuIFRoZSBtYXhpbXVtCisgKiBsZW5ndGggdGhpcyBm dW5jdGlvbiB3aWxsIGVuY29kZSBpcyAlQVNOMV9NQVhfTEVOR1RIX1NJWkUuCisgKgorICogVG8g a25vdyB0aGUgc2l6ZSBvZiB0aGUgREVSIGVuY29kaW5nIHVzZSBhICVOVUxMIHZhbHVlIGZvciBA ZGVyLgorICoqLwordm9pZAorYXNuMV9sZW5ndGhfZGVyICh1bnNpZ25lZCBsb25nIGludCBsZW4s IHVuc2lnbmVkIGNoYXIgKmRlciwgaW50ICpkZXJfbGVuKQoreworICBpbnQgazsKKyAgdW5zaWdu ZWQgY2hhciB0ZW1wW0FTTjFfTUFYX0xFTkdUSF9TSVpFXTsKKyNpZiBTSVpFT0ZfVU5TSUdORURf TE9OR19JTlQgPiA4CisgIGxlbiAmPSAweEZGRkZGRkZGRkZGRkZGRkY7CisjZW5kaWYKKworICBp ZiAobGVuIDwgMTI4KQorICAgIHsKKyAgICAgIC8qIHNob3J0IGZvcm0gKi8KKyAgICAgIGlmIChk ZXIgIT0gTlVMTCkKKwlkZXJbMF0gPSAodW5zaWduZWQgY2hhcikgbGVuOworICAgICAgKmRlcl9s ZW4gPSAxOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIExvbmcgZm9ybSAqLworICAg ICAgayA9IDA7CisgICAgICB3aGlsZSAobGVuKQorCXsKKwkgIHRlbXBbaysrXSA9IGxlbiAmIDB4 RkY7CisJICBsZW4gPSBsZW4gPj4gODsKKwl9CisgICAgICAqZGVyX2xlbiA9IGsgKyAxOworICAg ICAgaWYgKGRlciAhPSBOVUxMKQorCXsKKwkgIGRlclswXSA9ICgodW5zaWduZWQgY2hhcikgayAm IDB4N0YpICsgMTI4OworCSAgd2hpbGUgKGstLSkKKwkgICAgZGVyWypkZXJfbGVuIC0gMSAtIGtd ID0gdGVtcFtrXTsKKwl9CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV90YWdfZGVy ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBjcmVhdGVzIHRo ZSBERVIgY29kaW5nIGZvciB0aGUgQ0xBU1MgICovCisvKiBhbmQgVEFHIHBhcmFtZXRlcnMuICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogSXQgaXMgbGltaXRlZCBieSB0aGUg QVNOMV9NQVhfVEFHX1NJWkUgdmFyaWFibGUgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIGNsYXNzOiB2YWx1ZSB0byBj b252ZXJ0LiAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICB0YWdfdmFsdWU6IHZhbHVl IHRvIGNvbnZlcnQuICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgYW5zOiBzdHJpbmcgcmV0 dXJuZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIGFuc19sZW46IG51bWJl ciBvZiBtZWFuaW5nZnVsIGJ5dGVzIG9mIEFOUyAgICAgICAqLworLyogICAgICAgICAgICAoYW5z WzBdLi5hbnNbYW5zX2xlbi0xXSkuICAgICAgICAgICAgICAgKi8KKy8qIFJldHVybjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQKK19h c24xX3RhZ19kZXIgKHVuc2lnbmVkIGNoYXIgY2xhc3MsIHVuc2lnbmVkIGludCB0YWdfdmFsdWUs CisJICAgICAgIHVuc2lnbmVkIGNoYXIgYW5zW0FTTjFfTUFYX1RBR19TSVpFXSwgaW50ICphbnNf bGVuKQoreworICBpbnQgazsKKyAgdW5zaWduZWQgY2hhciB0ZW1wW0FTTjFfTUFYX1RBR19TSVpF XTsKKworICBpZiAodGFnX3ZhbHVlIDwgMzEpCisgICAgeworICAgICAgLyogc2hvcnQgZm9ybSAq LworICAgICAgYW5zWzBdID0gKGNsYXNzICYgMHhFMCkgKyAoKHVuc2lnbmVkIGNoYXIpICh0YWdf dmFsdWUgJiAweDFGKSk7CisgICAgICAqYW5zX2xlbiA9IDE7CisgICAgfQorICBlbHNlCisgICAg eworICAgICAgLyogTG9uZyBmb3JtICovCisgICAgICBhbnNbMF0gPSAoY2xhc3MgJiAweEUwKSAr IDMxOworICAgICAgayA9IDA7CisgICAgICB3aGlsZSAodGFnX3ZhbHVlICE9IDApCisJeworCSAg dGVtcFtrKytdID0gdGFnX3ZhbHVlICYgMHg3RjsKKwkgIHRhZ192YWx1ZSA+Pj0gNzsKKworCSAg aWYgKGsgPiBBU04xX01BWF9UQUdfU0laRSAtIDEpCisJICAgIGJyZWFrOwkJLyogd2lsbCBub3Qg ZW5jb2RlIGxhcmdlciB0YWdzICovCisJfQorICAgICAgKmFuc19sZW4gPSBrICsgMTsKKyAgICAg IHdoaWxlIChrLS0pCisJYW5zWyphbnNfbGVuIC0gMSAtIGtdID0gdGVtcFtrXSArIDEyODsKKyAg ICAgIGFuc1sqYW5zX2xlbiAtIDFdIC09IDEyODsKKyAgICB9Cit9CisKKy8qKgorICogYXNuMV9v Y3RldF9kZXI6CisgKiBAc3RyOiB0aGUgaW5wdXQgZGF0YS4KKyAqIEBzdHJfbGVuOiBTVFIgbGVu Z3RoIChzdHJbMF0uLnN0clsqc3RyX2xlbi0xXSkuCisgKiBAZGVyOiBlbmNvZGVkIHN0cmluZyBy ZXR1cm5lZC4KKyAqIEBkZXJfbGVuOiBudW1iZXIgb2YgbWVhbmluZ2Z1bCBieXRlcyBvZiBERVIg KGRlclswXS4uZGVyW2Rlcl9sZW4tMV0pLgorICoKKyAqIENyZWF0ZXMgYSBsZW5ndGgtdmFsdWUg REVSIGVuY29kaW5nIGZvciB0aGUgaW5wdXQgZGF0YS4KKyAqIFRoZSBERVIgZW5jb2Rpbmcgb2Yg dGhlIGlucHV0IGRhdGEgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIEBkZXIgdmFyaWFibGUuCisgKgor ICogTm90ZSB0aGF0IHRoZSBPQ1RFVCBTVFJJTkcgdGFnIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUg b3V0cHV0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSBi ZWNhdXNlIGl0IGlzIGV4cGVjdGVkCisgKiB0aGF0IEBkZXJfbGVuIHdpbGwgY29udGFpbiBlbm91 Z2ggYnl0ZXMgdG8gc3RvcmUgdGhlIHN0cmluZworICogcGx1cyB0aGUgREVSIGVuY29kaW5nLiBU aGUgREVSIGVuY29kaW5nIHNpemUgY2FuIGJlIG9idGFpbmVkIHVzaW5nCisgKiBhc24xX2xlbmd0 aF9kZXIoKS4KKyAqKi8KK3ZvaWQKK2FzbjFfb2N0ZXRfZGVyIChjb25zdCB1bnNpZ25lZCBjaGFy ICpzdHIsIGludCBzdHJfbGVuLAorCQl1bnNpZ25lZCBjaGFyICpkZXIsIGludCAqZGVyX2xlbikK K3sKKyAgaW50IGxlbl9sZW47CisKKyAgaWYgKGRlciA9PSBOVUxMIHx8IHN0cl9sZW4gPCAwKQor ICAgIHJldHVybjsKKworICBhc24xX2xlbmd0aF9kZXIgKHN0cl9sZW4sIGRlciwgJmxlbl9sZW4p OworICBtZW1jcHkgKGRlciArIGxlbl9sZW4sIHN0ciwgc3RyX2xlbik7CisgICpkZXJfbGVuID0g c3RyX2xlbiArIGxlbl9sZW47Cit9CisKKworLyoqCisgKiBhc24xX2VuY29kZV9zaW1wbGVfZGVy OgorICogQGV0eXBlOiBUaGUgdHlwZSBvZiB0aGUgc3RyaW5nIHRvIGJlIGVuY29kZWQgKEFTTjFf RVRZUEVfKQorICogQHN0cjogdGhlIHN0cmluZyBkYXRhLgorICogQHN0cl9sZW46IHRoZSBzdHJp bmcgbGVuZ3RoCisgKiBAdGw6IHRoZSBlbmNvZGVkIHRhZyBhbmQgbGVuZ3RoCisgKiBAdGxfbGVu OiB0aGUgYnl0ZXMgb2YgdGhlIEB0bCBmaWVsZAorICoKKyAqIENyZWF0ZXMgdGhlIERFUiBlbmNv ZGluZyBmb3IgdmFyaW91cyBzaW1wbGUgQVNOLjEgdHlwZXMgbGlrZSBzdHJpbmdzIGV0Yy4KKyAq IEl0IHN0b3JlcyB0aGUgdGFnIGFuZCBsZW5ndGggaW4gQHRsLCB3aGljaCBzaG91bGQgaGF2ZSBz cGFjZSBmb3IgYXQgbGVhc3QKKyAqICVBU04xX01BWF9UTF9TSVpFIGJ5dGVzLiBJbml0aWFsbHkg QHRsX2xlbiBzaG91bGQgY29udGFpbiB0aGUgc2l6ZSBvZiBAdGwuCisgKgorICogVGhlIGNvbXBs ZXRlIERFUiBlbmNvZGluZyBzaG91bGQgY29uc2lzdCBvZiB0aGUgdmFsdWUgaW4gQHRsIGFwcGVu ZGVkCisgKiB3aXRoIHRoZSBwcm92aWRlZCBAc3RyLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NV Q0NFU1MgaWYgc3VjY2Vzc2Z1bCBvciBhbiBlcnJvciB2YWx1ZS4KKyAqKi8KK2ludAorYXNuMV9l bmNvZGVfc2ltcGxlX2RlciAodW5zaWduZWQgaW50IGV0eXBlLCBjb25zdCB1bnNpZ25lZCBjaGFy ICpzdHIsCisJCQl1bnNpZ25lZCBpbnQgc3RyX2xlbiwgdW5zaWduZWQgY2hhciAqdGwsCisJCQl1 bnNpZ25lZCBpbnQgKnRsX2xlbikKK3sKKyAgaW50IHRhZ19sZW4sIGxlbl9sZW47CisgIHVuc2ln bmVkIHRsZW47CisgIHVuc2lnbmVkIGNoYXIgZGVyX3RhZ1tBU04xX01BWF9UQUdfU0laRV07Cisg IHVuc2lnbmVkIGNoYXIgZGVyX2xlbmd0aFtBU04xX01BWF9MRU5HVEhfU0laRV07CisgIHVuc2ln bmVkIGNoYXIgKnA7CisKKyAgaWYgKHN0ciA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX1ZBTFVF X05PVF9WQUxJRDsKKworICBpZiAoRVRZUEVfT0sgKGV0eXBlKSA9PSAwKQorICAgIHJldHVybiBB U04xX1ZBTFVFX05PVF9WQUxJRDsKKworICAvKiBkb2Vzbid0IGhhbmRsZSBjb25zdHJ1Y3RlZCBj bGFzc2VzICovCisgIGlmIChFVFlQRV9DTEFTUyAoZXR5cGUpICE9IEFTTjFfQ0xBU1NfVU5JVkVS U0FMKQorICAgIHJldHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsKKworICBfYXNuMV90YWdfZGVy IChFVFlQRV9DTEFTUyAoZXR5cGUpLCBFVFlQRV9UQUcgKGV0eXBlKSwgZGVyX3RhZywgJnRhZ19s ZW4pOworCisgIGFzbjFfbGVuZ3RoX2RlciAoc3RyX2xlbiwgZGVyX2xlbmd0aCwgJmxlbl9sZW4p OworCisgIGlmICh0YWdfbGVuIDw9IDAgfHwgbGVuX2xlbiA8PSAwKQorICAgIHJldHVybiBBU04x X1ZBTFVFX05PVF9WQUxJRDsKKworICB0bGVuID0gdGFnX2xlbiArIGxlbl9sZW47CisKKyAgaWYg KCp0bF9sZW4gPCB0bGVuKQorICAgIHJldHVybiBBU04xX01FTV9FUlJPUjsKKworICBwID0gdGw7 CisgIG1lbWNweSAocCwgZGVyX3RhZywgdGFnX2xlbik7CisgIHAgKz0gdGFnX2xlbjsKKyAgbWVt Y3B5IChwLCBkZXJfbGVuZ3RoLCBsZW5fbGVuKTsKKworICAqdGxfbGVuID0gdGxlbjsKKworICBy ZXR1cm4gQVNOMV9TVUNDRVNTOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV90aW1lX2RlciAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBjcmVhdGVzIHRoZSBE RVIgY29kaW5nIGZvciBhIFRJTUUgICAgICovCisvKiB0eXBlIChsZW5ndGggaW5jbHVkZWQpLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgc3RyOiBUSU1FIG51bGwtdGVybWlu YXRlZCBzdHJpbmcuICAgICAgICAgICAgICAgICovCisvKiAgIGRlcjogc3RyaW5nIHJldHVybmVk LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBkZXJfbGVuOiBudW1iZXIgb2Yg bWVhbmluZ2Z1bCBieXRlcyBvZiBERVIgICAgICAgKi8KKy8qICAgICAgICAgICAgKGRlclswXS4u ZGVyW2Fuc19sZW4tMV0pLiBJbml0aWFsbHkgaXQgICovCisvKiAgICAgICAgICAgIGlmIG11c3Qg c3RvcmUgdGhlIGxlbmdodCBvZiBERVIuICAgICAgICAqLworLyogUmV0dXJuOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgQVNOMV9NRU1fRVJST1Ig d2hlbiBERVIgaXNuJ3QgYmlnIGVub3VnaCAgICAgICAgICovCisvKiAgIEFTTjFfU1VDQ0VTUyBv dGhlcndpc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQKK19hc24x X3RpbWVfZGVyICh1bnNpZ25lZCBjaGFyICpzdHIsIGludCBzdHJfbGVuLCB1bnNpZ25lZCBjaGFy ICpkZXIsCisJCWludCAqZGVyX2xlbikKK3sKKyAgaW50IGxlbl9sZW47CisgIGludCBtYXhfbGVu OworCisgIG1heF9sZW4gPSAqZGVyX2xlbjsKKworICBhc24xX2xlbmd0aF9kZXIgKHN0cl9sZW4s IChtYXhfbGVuID4gMCkgPyBkZXIgOiBOVUxMLCAmbGVuX2xlbik7CisKKyAgaWYgKChsZW5fbGVu ICsgc3RyX2xlbikgPD0gbWF4X2xlbikKKyAgICBtZW1jcHkgKGRlciArIGxlbl9sZW4sIHN0ciwg c3RyX2xlbik7CisgICpkZXJfbGVuID0gbGVuX2xlbiArIHN0cl9sZW47CisKKyAgaWYgKCgqZGVy X2xlbikgPiBtYXhfbGVuKQorICAgIHJldHVybiBBU04xX01FTV9FUlJPUjsKKworICByZXR1cm4g QVNOMV9TVUNDRVNTOworfQorCisKKy8qCit2b2lkCitfYXNuMV9nZXRfdXRjdGltZV9kZXIodW5z aWduZWQgY2hhciAqZGVyLGludCAqZGVyX2xlbix1bnNpZ25lZCBjaGFyICpzdHIpCit7CisgIGlu dCBsZW5fbGVuLHN0cl9sZW47CisgIGNoYXIgdGVtcFsyMF07CisKKyAgaWYoc3RyPT1OVUxMKSBy ZXR1cm47CisgIHN0cl9sZW49YXNuMV9nZXRfbGVuZ3RoX2RlcihkZXIsKmRlcl9sZW4sJmxlbl9s ZW4pOworICBpZiAoc3RyX2xlbjwwKSByZXR1cm47CisgIG1lbWNweSh0ZW1wLGRlcitsZW5fbGVu LHN0cl9sZW4pOworICAqZGVyX2xlbj1zdHJfbGVuK2xlbl9sZW47CisgIHN3aXRjaChzdHJfbGVu KQorICB7CisgIGNhc2UgMTE6CisgICAgdGVtcFsxMF09MDsKKyAgICBzdHJjYXQodGVtcCwiMDAr MDAwMCIpOworICAgIGJyZWFrOworICBjYXNlIDEzOgorICAgIHRlbXBbMTJdPTA7CisgICAgc3Ry Y2F0KHRlbXAsIiswMDAwIik7CisgICAgYnJlYWs7CisgIGNhc2UgMTU6CisgICAgdGVtcFsxNV09 MDsKKyAgICBtZW1tb3ZlKHRlbXArMTIsdGVtcCsxMCw2KTsKKyAgICB0ZW1wWzEwXT10ZW1wWzEx XT0nMCc7CisgICAgYnJlYWs7CisgIGNhc2UgMTc6CisgICAgdGVtcFsxN109MDsKKyAgICBicmVh azsKKyAgZGVmYXVsdDoKKyAgICByZXR1cm47CisgIH0KKyAgc3RyY3B5KHN0cix0ZW1wKTsKK30K KyovCisKK3N0YXRpYyB2b2lkCitlbmNvZGVfdmFsICh1aW50NjRfdCB2YWwsIHVuc2lnbmVkIGNo YXIgKmRlciwgaW50IG1heF9sZW4sIGludCAqZGVyX2xlbikKK3sKKyAgaW50IGZpcnN0LCBrOwor ICB1bnNpZ25lZCBjaGFyIGJpdDc7CisKKyAgZmlyc3QgPSAwOworICBmb3IgKGsgPSBzaXplb2Yg KHZhbCk7IGsgPj0gMDsgay0tKQorICAgIHsKKyAgICAgIGJpdDcgPSAodmFsID4+IChrICogNykp ICYgMHg3RjsKKyAgICAgIGlmIChiaXQ3IHx8IGZpcnN0IHx8ICFrKQorCXsKKwkgIGlmIChrKQor CSAgICBiaXQ3IHw9IDB4ODA7CisJICBpZiAobWF4X2xlbiA+ICgqZGVyX2xlbikpCisJICAgIGRl clsqZGVyX2xlbl0gPSBiaXQ3OworCSAgKCpkZXJfbGVuKSsrOworCSAgZmlyc3QgPSAxOworCX0K KyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiBGdW5jdGlvbiA6IF9hc24xX29iamVjdF9pZF9kZXIgICAgICAgICAg ICAgICAgICAgICAqLworLyogRGVzY3JpcHRpb246IGNyZWF0ZXMgdGhlIERFUiBjb2RpbmcgZm9y IGFuICAgICAgICAgKi8KKy8qIE9CSkVDVCBJREVOVElGSUVSICB0eXBlIChsZW5ndGggaW5jbHVk ZWQpLiAgICAgICAgICovCisvKiBQYXJhbWV0ZXJzOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyogICBzdHI6IE9CSkVDVCBJREVOVElGSUVSIG51bGwtdGVybWlu YXRlZCBzdHJpbmcuICAgKi8KKy8qICAgZGVyOiBzdHJpbmcgcmV0dXJuZWQuICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKiAgIGRlcl9sZW46IG51bWJlciBvZiBtZWFuaW5nZnVsIGJ5 dGVzIG9mIERFUiAgICAgICAqLworLyogICAgICAgICAgICAoZGVyWzBdLi5kZXJbYW5zX2xlbi0x XSkuIEluaXRpYWxseSBpdCAgKi8KKy8qICAgICAgICAgICAgbXVzdCBzdG9yZSB0aGUgbGVuZ3Ro IG9mIERFUi4gICAgICAgICAgICovCisvKiBSZXR1cm46ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLworLyogICBBU04xX01FTV9FUlJPUiB3aGVuIERFUiBpc24n dCBiaWcgZW5vdWdoICAgICAgICAgKi8KKy8qICAgQVNOMV9TVUNDRVNTIGlmIHN1Y2Nlc2Z1bCAg ICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIG9yIGFuIGVycm9yIHZhbHVlLiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQKK19hc24xX29iamVjdF9pZF9k ZXIgKGNvbnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgKmRlcl9sZW4pCit7 CisgIGludCBsZW5fbGVuLCBjb3VudGVyLCBtYXhfbGVuOworICBjaGFyICp0ZW1wLCAqbl9lbmQs ICpuX3N0YXJ0OworICB1aW50NjRfdCB2YWwsIHZhbDEgPSAwOworICBpbnQgc3RyX2xlbiA9IF9h c24xX3N0cmxlbiAoc3RyKTsKKworICBtYXhfbGVuID0gKmRlcl9sZW47CisgICpkZXJfbGVuID0g MDsKKworICBpZiAoZGVyID09IE5VTEwgJiYgbWF4X2xlbiA+IDApCisgICAgcmV0dXJuIEFTTjFf VkFMVUVfTk9UX1ZBTElEOworCisgIHRlbXAgPSBtYWxsb2MgKHN0cl9sZW4gKyAyKTsKKyAgaWYg KHRlbXAgPT0gTlVMTCkKKyAgICByZXR1cm4gQVNOMV9NRU1fQUxMT0NfRVJST1I7CisKKyAgbWVt Y3B5ICh0ZW1wLCBzdHIsIHN0cl9sZW4pOworICB0ZW1wW3N0cl9sZW5dID0gJy4nOworICB0ZW1w W3N0cl9sZW4gKyAxXSA9IDA7CisKKyAgY291bnRlciA9IDA7CisgIG5fc3RhcnQgPSB0ZW1wOwor ICB3aGlsZSAoKG5fZW5kID0gc3RyY2hyIChuX3N0YXJ0LCAnLicpKSkKKyAgICB7CisgICAgICAq bl9lbmQgPSAwOworICAgICAgdmFsID0gX2FzbjFfc3RydG91NjQgKG5fc3RhcnQsIE5VTEwsIDEw KTsKKyAgICAgIGNvdW50ZXIrKzsKKworICAgICAgaWYgKGNvdW50ZXIgPT0gMSkKKwl7CisJICB2 YWwxID0gdmFsOworCX0KKyAgICAgIGVsc2UgaWYgKGNvdW50ZXIgPT0gMikKKwl7CisJICB1aW50 NjRfdCB2YWwwOworCisJICBpZiAodmFsMSA+IDIpCisJICAgIHsKKwkgICAgICBmcmVlICh0ZW1w KTsKKwkgICAgICByZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJICAgIH0KKwkgIGVsc2Ug aWYgKCh2YWwxID09IDAgfHwgdmFsMSA9PSAxKSAmJiB2YWwgPiAzOSkKKwkgICAgeworCSAgICAg IGZyZWUgKHRlbXApOworCSAgICAgIHJldHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsKKwkgICAg fQorCisJICB2YWwwID0gNDAgKiB2YWwxICsgdmFsOworCSAgZW5jb2RlX3ZhbCAodmFsMCwgZGVy LCBtYXhfbGVuLCBkZXJfbGVuKTsKKwl9CisgICAgICBlbHNlCisJeworCSAgZW5jb2RlX3ZhbCAo dmFsLCBkZXIsIG1heF9sZW4sIGRlcl9sZW4pOworCX0KKyAgICAgIG5fc3RhcnQgPSBuX2VuZCAr IDE7CisgICAgfQorCisgIGFzbjFfbGVuZ3RoX2RlciAoKmRlcl9sZW4sIE5VTEwsICZsZW5fbGVu KTsKKyAgaWYgKG1heF9sZW4gPj0gKCpkZXJfbGVuICsgbGVuX2xlbikpCisgICAgeworICAgICAg bWVtbW92ZSAoZGVyICsgbGVuX2xlbiwgZGVyLCAqZGVyX2xlbik7CisgICAgICBhc24xX2xlbmd0 aF9kZXIgKCpkZXJfbGVuLCBkZXIsICZsZW5fbGVuKTsKKyAgICB9CisgICpkZXJfbGVuICs9IGxl bl9sZW47CisKKyAgZnJlZSAodGVtcCk7CisKKyAgaWYgKG1heF9sZW4gPCAoKmRlcl9sZW4pKQor ICAgIHJldHVybiBBU04xX01FTV9FUlJPUjsKKworICByZXR1cm4gQVNOMV9TVUNDRVNTOworfQor CisvKioKKyAqIGFzbjFfb2JqZWN0X2lkX2RlcjoKKyAqIEBzdHI6IEFuIG9iamVjdCBpZGVudGlm aWVyIGluIG51bWVyaWMsIGRvdCBmb3JtYXQuCisgKiBAZGVyOiBidWZmZXIgdG8gaG9sZCB0aGUg cmV0dXJuZWQgZW5jb2RpbmcgKG1heSBiZSAlTlVMTCkuCisgKiBAZGVyX2xlbjogaW5pdGlhbGx5 IHRoZSBzaXplIG9mIEBkZXI7IHdpbGwgaG9sZCB0aGUgZmluYWwgc2l6ZS4KKyAqIEBmbGFnczog bXVzdCBiZSB6ZXJvCisgKgorICogQ3JlYXRlcyB0aGUgREVSIGVuY29kaW5nIG9mIHRoZSBwcm92 aWRlZCBvYmplY3QgaWRlbnRpZmllci4KKyAqCisgKiBSZXR1cm5zOiAlQVNOMV9TVUNDRVNTIGlm IERFUiBlbmNvZGluZyB3YXMgT0ssICVBU04xX1ZBTFVFX05PVF9WQUxJRAorICogICBpZiBAc3Ry IGlzIG5vdCBhIHZhbGlkIE9JRCwgJUFTTjFfTUVNX0VSUk9SIGlmIHRoZSBAZGVyCisgKiAgIHZl Y3RvciBpc24ndCBiaWcgZW5vdWdoIGFuZCBpbiB0aGlzIGNhc2UgQGRlcl9sZW4gd2lsbCBjb250 YWluIHRoZQorICogICBsZW5ndGggbmVlZGVkLgorICoqLworaW50Cithc24xX29iamVjdF9pZF9k ZXIgKGNvbnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgKmRlcl9sZW4sCisJ CSAgICB1bnNpZ25lZCBmbGFncykKK3sKKyAgdW5zaWduZWQgY2hhciB0YWdfZGVyW01BWF9UQUdf TEVOXTsKKyAgaW50IHRhZ19sZW4gPSAwLCByOworICBpbnQgbWF4X2xlbiA9ICpkZXJfbGVuOwor CisgICpkZXJfbGVuID0gMDsKKworICBfYXNuMV90YWdfZGVyIChFVFlQRV9DTEFTUyAoQVNOMV9F VFlQRV9PQkpFQ1RfSUQpLAorCQkgRVRZUEVfVEFHIChBU04xX0VUWVBFX09CSkVDVF9JRCksIHRh Z19kZXIsICZ0YWdfbGVuKTsKKworICBpZiAobWF4X2xlbiA+IHRhZ19sZW4pCisgICAgeworICAg ICAgbWVtY3B5IChkZXIsIHRhZ19kZXIsIHRhZ19sZW4pOworICAgIH0KKyAgbWF4X2xlbiAtPSB0 YWdfbGVuOworICBkZXIgKz0gdGFnX2xlbjsKKworICByID0gX2FzbjFfb2JqZWN0X2lkX2RlciAo c3RyLCBkZXIsICZtYXhfbGVuKTsKKyAgaWYgKHIgPT0gQVNOMV9NRU1fRVJST1IgfHwgciA9PSBB U04xX1NVQ0NFU1MpCisgICAgeworICAgICAgKmRlcl9sZW4gPSBtYXhfbGVuICsgdGFnX2xlbjsK KyAgICB9CisKKyAgcmV0dXJuIHI7Cit9CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGJp dF9tYXNrW10gPQorICB7IDB4RkYsIDB4RkUsIDB4RkMsIDB4RjgsIDB4RjAsIDB4RTAsIDB4QzAs IDB4ODAgfTsKKworLyoqCisgKiBhc24xX2JpdF9kZXI6CisgKiBAc3RyOiBCSVQgc3RyaW5nLgor ICogQGJpdF9sZW46IG51bWJlciBvZiBtZWFuaW5nZnVsIGJpdHMgaW4gU1RSLgorICogQGRlcjog c3RyaW5nIHJldHVybmVkLgorICogQGRlcl9sZW46IG51bWJlciBvZiBtZWFuaW5nZnVsIGJ5dGVz IG9mIERFUgorICogICAoZGVyWzBdLi5kZXJbYW5zX2xlbi0xXSkuCisgKgorICogQ3JlYXRlcyBh IGxlbmd0aC12YWx1ZSBERVIgZW5jb2RpbmcgZm9yIHRoZSBpbnB1dCBkYXRhCisgKiBhcyBpdCB3 b3VsZCBoYXZlIGJlZW4gZm9yIGEgQklUIFNUUklORy4KKyAqIFRoZSBERVIgZW5jb2RlZCBkYXRh IHdpbGwgYmUgY29waWVkIGluIEBkZXIuCisgKgorICogTm90ZSB0aGF0IHRoZSBCSVQgU1RSSU5H IHRhZyBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9u IGRvZXMgbm90IHJldHVybiBhbnkgdmFsdWUgYmVjYXVzZSBpdCBpcyBleHBlY3RlZAorICogdGhh dCBAZGVyX2xlbiB3aWxsIGNvbnRhaW4gZW5vdWdoIGJ5dGVzIHRvIHN0b3JlIHRoZSBzdHJpbmcK KyAqIHBsdXMgdGhlIERFUiBlbmNvZGluZy4gVGhlIERFUiBlbmNvZGluZyBzaXplIGNhbiBiZSBv YnRhaW5lZCB1c2luZworICogYXNuMV9sZW5ndGhfZGVyKCkuCisgKiovCit2b2lkCithc24xX2Jp dF9kZXIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50IGJpdF9sZW4sCisJICAgICAgdW5z aWduZWQgY2hhciAqZGVyLCBpbnQgKmRlcl9sZW4pCit7CisgIGludCBsZW5fbGVuLCBsZW5fYnl0 ZSwgbGVuX3BhZDsKKworICBpZiAoZGVyID09IE5VTEwpCisgICAgcmV0dXJuOworCisgIGxlbl9i eXRlID0gYml0X2xlbiA+PiAzOworICBsZW5fcGFkID0gOCAtIChiaXRfbGVuICYgNyk7CisgIGlm IChsZW5fcGFkID09IDgpCisgICAgbGVuX3BhZCA9IDA7CisgIGVsc2UKKyAgICBsZW5fYnl0ZSsr OworICBhc24xX2xlbmd0aF9kZXIgKGxlbl9ieXRlICsgMSwgZGVyLCAmbGVuX2xlbik7CisgIGRl cltsZW5fbGVuXSA9IGxlbl9wYWQ7CisKKyAgaWYgKHN0cikKKyAgICBtZW1jcHkgKGRlciArIGxl bl9sZW4gKyAxLCBzdHIsIGxlbl9ieXRlKTsKKyAgZGVyW2xlbl9sZW4gKyBsZW5fYnl0ZV0gJj0g Yml0X21hc2tbbGVuX3BhZF07CisgICpkZXJfbGVuID0gbGVuX2J5dGUgKyBsZW5fbGVuICsgMTsK K30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9jb21wbGV0ZV9leHBsaWNpdF90YWcgICAgICAg ICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBhZGQgdGhlIGxlbmd0aCBjb2RpbmcgdG8gdGhlIEVY UExJQ0lUICovCisvKiB0YWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy8qICAgbm9kZTogcG9pbnRlciB0byB0aGUgdHJlZSBlbGVtZW50LiAgICAg ICAgICAgICAgICovCisvKiAgIGRlcjogc3RyaW5nIHdpdGggdGhlIERFUiBjb2Rpbmcgb2YgdGhl IHdob2xlIHRyZWUqLworLyogICBjb3VudGVyOiBudW1iZXIgb2YgbWVhbmluZ2Z1bCBieXRlcyBv ZiBERVIgICAgICAgKi8KKy8qICAgICAgICAgICAgKGRlclswXS4uZGVyWypjb3VudGVyLTFdKS4g ICAgICAgICAgICAgICovCisvKiAgIG1heF9sZW46IHNpemUgb2YgZGVyIHZlY3RvciAgICAgICAg ICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKi8KKy8qICAgQVNOMV9NRU1fRVJST1IgaWYgZGVyIHZlY3RvciBpc24n dCBiaWcgZW5vdWdoLCAgICovCisvKiAgIG90aGVyd2lzZSBBU04xX1NVQ0NFU1MuICAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQKK19hc24xX2NvbXBsZXRlX2V4cGxpY2l0 X3RhZyAoYXNuMV9ub2RlIG5vZGUsIHVuc2lnbmVkIGNoYXIgKmRlciwKKwkJCSAgICAgaW50ICpj b3VudGVyLCBpbnQgKm1heF9sZW4pCit7CisgIGFzbjFfbm9kZSBwOworICBpbnQgaXNfdGFnX2lt cGxpY2l0LCBsZW4yLCBsZW4zOworICB1bnNpZ25lZCBjaGFyIHRlbXBbU0laRU9GX1VOU0lHTkVE X0lOVF07CisKKyAgaWYgKGRlciA9PSBOVUxMICYmICptYXhfbGVuID4gMCkKKyAgICByZXR1cm4g QVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisKKyAgaXNfdGFnX2ltcGxpY2l0ID0gMDsKKworICBpZiAo bm9kZS0+dHlwZSAmIENPTlNUX1RBRykKKyAgICB7CisgICAgICBwID0gbm9kZS0+ZG93bjsKKyAg ICAgIGlmIChwID09IE5VTEwpCisJcmV0dXJuIEFTTjFfREVSX0VSUk9SOworICAgICAgLyogV2hl biB0aGVyZSBhcmUgbmVzdGVkIHRhZ3Mgd2UgbXVzdCBjb21wbGV0ZSB0aGVtIHJldmVyc2UgdG8K KyAgICAgICAgIHRoZSBvcmRlciB0aGV5IHdlcmUgY3JlYXRlZC4gVGhpcyBpcyBiZWNhdXNlIGNv bXBsZXRpbmcgYSB0YWcKKyAgICAgICAgIG1vZGlmaWVzIGFsbCBkYXRhIHdpdGhpbiBpdCwgaW5j bHVkaW5nIHRoZSBpbmNvbXBsZXRlIHRhZ3MKKyAgICAgICAgIHdoaWNoIHN0b3JlIGJ1ZmZlciBw b3NpdGlvbnMgLS0gc2ltb25Aam9zZWZzc29uLm9yZyAyMDAyLTA5LTA2CisgICAgICAgKi8KKyAg ICAgIHdoaWxlIChwLT5yaWdodCkKKwlwID0gcC0+cmlnaHQ7CisgICAgICB3aGlsZSAocCAmJiBw ICE9IG5vZGUtPmRvd24tPmxlZnQpCisJeworCSAgaWYgKHR5cGVfZmllbGQgKHAtPnR5cGUpID09 IEFTTjFfRVRZUEVfVEFHKQorCSAgICB7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9FWFBM SUNJVCkKKwkJeworCQkgIGxlbjIgPSBzdHJ0b2wgKHAtPm5hbWUsIE5VTEwsIDEwKTsKKwkJICBf YXNuMV9zZXRfbmFtZSAocCwgTlVMTCk7CisKKwkJICBhc24xX2xlbmd0aF9kZXIgKCpjb3VudGVy IC0gbGVuMiwgdGVtcCwgJmxlbjMpOworCQkgIGlmIChsZW4zIDw9ICgqbWF4X2xlbikpCisJCSAg ICB7CisJCSAgICAgIG1lbW1vdmUgKGRlciArIGxlbjIgKyBsZW4zLCBkZXIgKyBsZW4yLAorCQkJ ICAgICAgICpjb3VudGVyIC0gbGVuMik7CisJCSAgICAgIG1lbWNweSAoZGVyICsgbGVuMiwgdGVt cCwgbGVuMyk7CisJCSAgICB9CisJCSAgKm1heF9sZW4gLT0gbGVuMzsKKwkJICAqY291bnRlciAr PSBsZW4zOworCQkgIGlzX3RhZ19pbXBsaWNpdCA9IDA7CisJCX0KKwkgICAgICBlbHNlCisJCXsJ CS8qIENPTlNUX0lNUExJQ0lUICovCisJCSAgaWYgKCFpc190YWdfaW1wbGljaXQpCisJCSAgICB7 CisJCSAgICAgIGlzX3RhZ19pbXBsaWNpdCA9IDE7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAg cCA9IHAtPmxlZnQ7CisJfQorICAgIH0KKworICBpZiAoKm1heF9sZW4gPCAwKQorICAgIHJldHVy biBBU04xX01FTV9FUlJPUjsKKworICByZXR1cm4gQVNOMV9TVUNDRVNTOworfQorCitjb25zdCB0 YWdfYW5kX2NsYXNzX3N0IF9hc24xX3RhZ3NbXSA9IHsKKyAgW0FTTjFfRVRZUEVfR0VORVJBTFNU UklOR10gPQorICAgIHtBU04xX1RBR19HRU5FUkFMU1RSSU5HLCBBU04xX0NMQVNTX1VOSVZFUlNB TCwgInR5cGU6R0VORVJBTFNUUklORyJ9LAorICBbQVNOMV9FVFlQRV9OVU1FUklDX1NUUklOR10g PQorICAgIHtBU04xX1RBR19OVU1FUklDX1NUUklORywgQVNOMV9DTEFTU19VTklWRVJTQUwsICJ0 eXBlOk5VTUVSSUNfU1RSIn0sCisgIFtBU04xX0VUWVBFX0lBNV9TVFJJTkddID0KKyAgICB7QVNO MV9UQUdfSUE1X1NUUklORywgQVNOMV9DTEFTU19VTklWRVJTQUwsICJ0eXBlOklBNV9TVFIifSwK KyAgW0FTTjFfRVRZUEVfVEVMRVRFWF9TVFJJTkddID0KKyAgICB7QVNOMV9UQUdfVEVMRVRFWF9T VFJJTkcsIEFTTjFfQ0xBU1NfVU5JVkVSU0FMLCAidHlwZTpURUxFVEVYX1NUUiJ9LAorICBbQVNO MV9FVFlQRV9QUklOVEFCTEVfU1RSSU5HXSA9CisgICAge0FTTjFfVEFHX1BSSU5UQUJMRV9TVFJJ TkcsIEFTTjFfQ0xBU1NfVU5JVkVSU0FMLCAidHlwZTpQUklOVEFCTEVfU1RSIn0sCisgIFtBU04x X0VUWVBFX1VOSVZFUlNBTF9TVFJJTkddID0KKyAgICB7QVNOMV9UQUdfVU5JVkVSU0FMX1NUUklO RywgQVNOMV9DTEFTU19VTklWRVJTQUwsICJ0eXBlOlVOSVZFUlNBTF9TVFIifSwKKyAgW0FTTjFf RVRZUEVfQk1QX1NUUklOR10gPQorICAgIHtBU04xX1RBR19CTVBfU1RSSU5HLCBBU04xX0NMQVNT X1VOSVZFUlNBTCwgInR5cGU6Qk1QX1NUUiJ9LAorICBbQVNOMV9FVFlQRV9VVEY4X1NUUklOR10g PQorICAgIHtBU04xX1RBR19VVEY4X1NUUklORywgQVNOMV9DTEFTU19VTklWRVJTQUwsICJ0eXBl OlVURjhfU1RSIn0sCisgIFtBU04xX0VUWVBFX1ZJU0lCTEVfU1RSSU5HXSA9CisgICAge0FTTjFf VEFHX1ZJU0lCTEVfU1RSSU5HLCBBU04xX0NMQVNTX1VOSVZFUlNBTCwgInR5cGU6VklTSUJMRV9T VFIifSwKKyAgW0FTTjFfRVRZUEVfT0NURVRfU1RSSU5HXSA9CisgICAge0FTTjFfVEFHX09DVEVU X1NUUklORywgQVNOMV9DTEFTU19VTklWRVJTQUwsICJ0eXBlOk9DVF9TVFIifSwKKyAgW0FTTjFf RVRZUEVfQklUX1NUUklOR10gPQorICAgIHtBU04xX1RBR19CSVRfU1RSSU5HLCBBU04xX0NMQVNT X1VOSVZFUlNBTCwgInR5cGU6QklUX1NUUiJ9LAorICBbQVNOMV9FVFlQRV9PQkpFQ1RfSURdID0K KyAgICB7QVNOMV9UQUdfT0JKRUNUX0lELCBBU04xX0NMQVNTX1VOSVZFUlNBTCwgInR5cGU6T0JK X0lEIn0sCisgIFtBU04xX0VUWVBFX05VTExdID0ge0FTTjFfVEFHX05VTEwsIEFTTjFfQ0xBU1Nf VU5JVkVSU0FMLCAidHlwZTpOVUxMIn0sCisgIFtBU04xX0VUWVBFX0JPT0xFQU5dID0KKyAgICB7 QVNOMV9UQUdfQk9PTEVBTiwgQVNOMV9DTEFTU19VTklWRVJTQUwsICJ0eXBlOkJPT0xFQU4ifSwK KyAgW0FTTjFfRVRZUEVfSU5URUdFUl0gPQorICAgIHtBU04xX1RBR19JTlRFR0VSLCBBU04xX0NM QVNTX1VOSVZFUlNBTCwgInR5cGU6SU5URUdFUiJ9LAorICBbQVNOMV9FVFlQRV9FTlVNRVJBVEVE XSA9CisgICAge0FTTjFfVEFHX0VOVU1FUkFURUQsIEFTTjFfQ0xBU1NfVU5JVkVSU0FMLCAidHlw ZTpFTlVNRVJBVEVEIn0sCisgIFtBU04xX0VUWVBFX1NFUVVFTkNFXSA9CisgICAge0FTTjFfVEFH X1NFUVVFTkNFLCBBU04xX0NMQVNTX1VOSVZFUlNBTCB8IEFTTjFfQ0xBU1NfU1RSVUNUVVJFRCwK KyAgICAgInR5cGU6U0VRVUVOQ0UifSwKKyAgW0FTTjFfRVRZUEVfU0VRVUVOQ0VfT0ZdID0KKyAg ICB7QVNOMV9UQUdfU0VRVUVOQ0UsIEFTTjFfQ0xBU1NfVU5JVkVSU0FMIHwgQVNOMV9DTEFTU19T VFJVQ1RVUkVELAorICAgICAidHlwZTpTRVFfT0YifSwKKyAgW0FTTjFfRVRZUEVfU0VUXSA9Cisg ICAge0FTTjFfVEFHX1NFVCwgQVNOMV9DTEFTU19VTklWRVJTQUwgfCBBU04xX0NMQVNTX1NUUlVD VFVSRUQsICJ0eXBlOlNFVCJ9LAorICBbQVNOMV9FVFlQRV9TRVRfT0ZdID0KKyAgICB7QVNOMV9U QUdfU0VULCBBU04xX0NMQVNTX1VOSVZFUlNBTCB8IEFTTjFfQ0xBU1NfU1RSVUNUVVJFRCwKKyAg ICAgInR5cGU6U0VUX09GIn0sCisgIFtBU04xX0VUWVBFX0dFTkVSQUxJWkVEX1RJTUVdID0KKyAg ICB7QVNOMV9UQUdfR0VORVJBTElaRURUaW1lLCBBU04xX0NMQVNTX1VOSVZFUlNBTCwgInR5cGU6 R0VORVJBTElaRURfVElNRSJ9LAorICBbQVNOMV9FVFlQRV9VVENfVElNRV0gPQorICAgIHtBU04x X1RBR19VVENUaW1lLCBBU04xX0NMQVNTX1VOSVZFUlNBTCwgInR5cGU6VVRDX1RJTUUifSwKK307 CisKK3Vuc2lnbmVkIGludCBfYXNuMV90YWdzX3NpemUgPSBzaXplb2YgKF9hc24xX3RhZ3MpIC8g c2l6ZW9mIChfYXNuMV90YWdzWzBdKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9uIDogX2FzbjFfaW5zZXJ0X3Rh Z19kZXIgICAgICAgICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogY3JlYXRlcyB0aGUg REVSIGNvZGluZyBvZiB0YWdzIG9mIG9uZSAqLworLyogTk9ERS4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIG5vZGU6IHBvaW50ZXIgdG8gdGhl IHRyZWUgZWxlbWVudC4gICAgICAgICAgICAgICAqLworLyogICBkZXI6IHN0cmluZyByZXR1cm5l ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgY291bnRlcjogbnVtYmVyIG9m IG1lYW5pbmdmdWwgYnl0ZXMgb2YgREVSICAgICAgICovCisvKiAgICAgICAgICAgIChjb3VudGVy WzBdLi5kZXJbKmNvdW50ZXItMV0pLiAgICAgICAgICAqLworLyogICBtYXhfbGVuOiBzaXplIG9m IGRlciB2ZWN0b3IgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFJldHVybjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIEFTTjFfR0VORVJJQ19F UlJPUiBpZiB0aGUgdHlwZSBpcyB1bmtub3duLCAgICAgICAqLworLyogICBBU04xX01FTV9FUlJP UiBpZiBkZXIgdmVjdG9yIGlzbid0IGJpZyBlbm91Z2gsICAgKi8KKy8qICAgb3RoZXJ3aXNlIEFT TjFfU1VDQ0VTUy4gICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludAorX2Fz bjFfaW5zZXJ0X3RhZ19kZXIgKGFzbjFfbm9kZSBub2RlLCB1bnNpZ25lZCBjaGFyICpkZXIsIGlu dCAqY291bnRlciwKKwkJICAgICAgaW50ICptYXhfbGVuKQoreworICBhc24xX25vZGUgcDsKKyAg aW50IHRhZ19sZW4sIGlzX3RhZ19pbXBsaWNpdDsKKyAgdW5zaWduZWQgY2hhciBjbGFzcywgY2xh c3NfaW1wbGljaXQgPQorICAgIDAsIHRlbXBbTUFYIChTSVpFT0ZfVU5TSUdORURfSU5UICogMyAr IDEsIExUT1NUUl9NQVhfU0laRSldOworICB1bnNpZ25lZCBsb25nIHRhZ19pbXBsaWNpdCA9IDA7 CisgIHVuc2lnbmVkIGNoYXIgdGFnX2RlcltNQVhfVEFHX0xFTl07CisKKyAgaXNfdGFnX2ltcGxp Y2l0ID0gMDsKKworICBpZiAobm9kZS0+dHlwZSAmIENPTlNUX1RBRykKKyAgICB7CisgICAgICBw ID0gbm9kZS0+ZG93bjsKKyAgICAgIHdoaWxlIChwKQorCXsKKwkgIGlmICh0eXBlX2ZpZWxkIChw LT50eXBlKSA9PSBBU04xX0VUWVBFX1RBRykKKwkgICAgeworCSAgICAgIGlmIChwLT50eXBlICYg Q09OU1RfQVBQTElDQVRJT04pCisJCWNsYXNzID0gQVNOMV9DTEFTU19BUFBMSUNBVElPTjsKKwkg ICAgICBlbHNlIGlmIChwLT50eXBlICYgQ09OU1RfVU5JVkVSU0FMKQorCQljbGFzcyA9IEFTTjFf Q0xBU1NfVU5JVkVSU0FMOworCSAgICAgIGVsc2UgaWYgKHAtPnR5cGUgJiBDT05TVF9QUklWQVRF KQorCQljbGFzcyA9IEFTTjFfQ0xBU1NfUFJJVkFURTsKKwkgICAgICBlbHNlCisJCWNsYXNzID0g QVNOMV9DTEFTU19DT05URVhUX1NQRUNJRklDOworCisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05T VF9FWFBMSUNJVCkKKwkJeworCQkgIGlmIChpc190YWdfaW1wbGljaXQpCisJCSAgICBfYXNuMV90 YWdfZGVyIChjbGFzc19pbXBsaWNpdCwgdGFnX2ltcGxpY2l0LCB0YWdfZGVyLAorCQkJCSAgICZ0 YWdfbGVuKTsKKwkJICBlbHNlCisJCSAgICBfYXNuMV90YWdfZGVyIChjbGFzcyB8IEFTTjFfQ0xB U1NfU1RSVUNUVVJFRCwKKwkJCQkgICBfYXNuMV9zdHJ0b3VsIChwLT52YWx1ZSwgTlVMTCwgMTAp LAorCQkJCSAgIHRhZ19kZXIsICZ0YWdfbGVuKTsKKworCQkgICptYXhfbGVuIC09IHRhZ19sZW47 CisJCSAgaWYgKGRlciAmJiAqbWF4X2xlbiA+PSAwKQorCQkgICAgbWVtY3B5IChkZXIgKyAqY291 bnRlciwgdGFnX2RlciwgdGFnX2xlbik7CisJCSAgKmNvdW50ZXIgKz0gdGFnX2xlbjsKKworCQkg IF9hc24xX2x0b3N0ciAoKmNvdW50ZXIsIChjaGFyICopIHRlbXApOworCQkgIF9hc24xX3NldF9u YW1lIChwLCAoY29uc3QgY2hhciAqKSB0ZW1wKTsKKworCQkgIGlzX3RhZ19pbXBsaWNpdCA9IDA7 CisJCX0KKwkgICAgICBlbHNlCisJCXsJCS8qIENPTlNUX0lNUExJQ0lUICovCisJCSAgaWYgKCFp c190YWdfaW1wbGljaXQpCisJCSAgICB7CisJCSAgICAgIGlmICgodHlwZV9maWVsZCAobm9kZS0+ dHlwZSkgPT0gQVNOMV9FVFlQRV9TRVFVRU5DRSkgfHwKKwkJCSAgKHR5cGVfZmllbGQgKG5vZGUt PnR5cGUpID09IEFTTjFfRVRZUEVfU0VRVUVOQ0VfT0YpCisJCQkgIHx8ICh0eXBlX2ZpZWxkIChu b2RlLT50eXBlKSA9PSBBU04xX0VUWVBFX1NFVCkKKwkJCSAgfHwgKHR5cGVfZmllbGQgKG5vZGUt PnR5cGUpID09IEFTTjFfRVRZUEVfU0VUX09GKSkKKwkJCWNsYXNzIHw9IEFTTjFfQ0xBU1NfU1RS VUNUVVJFRDsKKwkJICAgICAgY2xhc3NfaW1wbGljaXQgPSBjbGFzczsKKwkJICAgICAgdGFnX2lt cGxpY2l0ID0gX2FzbjFfc3RydG91bCAocC0+dmFsdWUsIE5VTEwsIDEwKTsKKwkJICAgICAgaXNf dGFnX2ltcGxpY2l0ID0gMTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICBwID0gcC0+cmlnaHQ7 CisJfQorICAgIH0KKworICBpZiAoaXNfdGFnX2ltcGxpY2l0KQorICAgIHsKKyAgICAgIF9hc24x X3RhZ19kZXIgKGNsYXNzX2ltcGxpY2l0LCB0YWdfaW1wbGljaXQsIHRhZ19kZXIsICZ0YWdfbGVu KTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICB1bnNpZ25lZCB0eXBlID0gdHlwZV9maWVs ZCAobm9kZS0+dHlwZSk7CisgICAgICBzd2l0Y2ggKHR5cGUpCisJeworCUNBU0VfSEFORExFRF9F VFlQRVM6CisJICBfYXNuMV90YWdfZGVyIChfYXNuMV90YWdzW3R5cGVdLmNsYXNzLCBfYXNuMV90 YWdzW3R5cGVdLnRhZywKKwkJCSB0YWdfZGVyLCAmdGFnX2xlbik7CisJICBicmVhazsKKwljYXNl IEFTTjFfRVRZUEVfVEFHOgorCWNhc2UgQVNOMV9FVFlQRV9DSE9JQ0U6CisJY2FzZSBBU04xX0VU WVBFX0FOWToKKwkgIHRhZ19sZW4gPSAwOworCSAgYnJlYWs7CisJZGVmYXVsdDoKKwkgIHJldHVy biBBU04xX0dFTkVSSUNfRVJST1I7CisJfQorICAgIH0KKworICAqbWF4X2xlbiAtPSB0YWdfbGVu OworICBpZiAoZGVyICYmICptYXhfbGVuID49IDApCisgICAgbWVtY3B5IChkZXIgKyAqY291bnRl ciwgdGFnX2RlciwgdGFnX2xlbik7CisgICpjb3VudGVyICs9IHRhZ19sZW47CisKKyAgaWYgKCpt YXhfbGVuIDwgMCkKKyAgICByZXR1cm4gQVNOMV9NRU1fRVJST1I7CisKKyAgcmV0dXJuIEFTTjFf U1VDQ0VTUzsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9uIDogX2FzbjFfb3JkZXJpbmdfc2V0ICAgICAgICAg ICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogcHV0cyB0aGUgZWxlbWVudHMgb2YgYSBT RVQgdHlwZSBpbiAgICAqLworLyogdGhlIGNvcnJlY3Qgb3JkZXIgYWNjb3JkaW5nIHRvIERFUiBy dWxlcy4gICAgICAgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKiAgIGRlcjogc3RyaW5nIHdpdGggdGhlIERFUiBjb2Rpbmcu ICAgICAgICAgICAgICAgICAqLworLyogICBub2RlOiBwb2ludGVyIHRvIHRoZSBTRVQgZWxlbWVu dC4gICAgICAgICAgICAgICAgKi8KKy8qIFJldHVybjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCisvKiAgICBBU04xX1NVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCAg ICAgICAgICAgICAgICAgICAgICAqLworLyogICAgb3IgYW4gZXJyb3IgdmFsdWUuICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50CitfYXNuMV9vcmRlcmluZ19zZXQg KHVuc2lnbmVkIGNoYXIgKmRlciwgaW50IGRlcl9sZW4sIGFzbjFfbm9kZSBub2RlKQoreworICBz dHJ1Y3QgdmV0CisgIHsKKyAgICBpbnQgZW5kOworICAgIHVuc2lnbmVkIGxvbmcgdmFsdWU7Cisg ICAgc3RydWN0IHZldCAqbmV4dCwgKnByZXY7CisgIH07CisKKyAgaW50IGNvdW50ZXIsIGxlbiwg bGVuMjsKKyAgc3RydWN0IHZldCAqZmlyc3QsICpsYXN0LCAqcF92ZXQsICpwMl92ZXQ7CisgIGFz bjFfbm9kZSBwOworICB1bnNpZ25lZCBjaGFyIGNsYXNzLCAqdGVtcDsKKyAgdW5zaWduZWQgbG9u ZyB0YWcsIHQ7CisgIGludCBlcnI7CisKKyAgY291bnRlciA9IDA7CisKKyAgaWYgKHR5cGVfZmll bGQgKG5vZGUtPnR5cGUpICE9IEFTTjFfRVRZUEVfU0VUKQorICAgIHJldHVybiBBU04xX1ZBTFVF X05PVF9WQUxJRDsKKworICBwID0gbm9kZS0+ZG93bjsKKyAgd2hpbGUgKHAgJiYgKCh0eXBlX2Zp ZWxkIChwLT50eXBlKSA9PSBBU04xX0VUWVBFX1RBRykgfHwKKwkgICAgICAgKHR5cGVfZmllbGQg KHAtPnR5cGUpID09IEFTTjFfRVRZUEVfU0laRSkpKQorICAgIHAgPSBwLT5yaWdodDsKKworICBp ZiAoKHAgPT0gTlVMTCkgfHwgKHAtPnJpZ2h0ID09IE5VTEwpKQorICAgIHJldHVybiBBU04xX1NV Q0NFU1M7CisKKyAgZmlyc3QgPSBsYXN0ID0gTlVMTDsKKyAgd2hpbGUgKHApCisgICAgeworICAg ICAgcF92ZXQgPSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IHZldCkpOworICAgICAgaWYgKHBfdmV0 ID09IE5VTEwpCisJeworCSAgZXJyID0gQVNOMV9NRU1fQUxMT0NfRVJST1I7CisJICBnb3RvIGVy cm9yOworCX0KKworICAgICAgcF92ZXQtPm5leHQgPSBOVUxMOworICAgICAgcF92ZXQtPnByZXYg PSBsYXN0OworICAgICAgaWYgKGZpcnN0ID09IE5VTEwpCisJZmlyc3QgPSBwX3ZldDsKKyAgICAg IGVsc2UKKwlsYXN0LT5uZXh0ID0gcF92ZXQ7CisgICAgICBsYXN0ID0gcF92ZXQ7CisKKyAgICAg IC8qIHRhZyB2YWx1ZSBjYWxjdWxhdGlvbiAqLworICAgICAgZXJyID0gYXNuMV9nZXRfdGFnX2Rl ciAoZGVyICsgY291bnRlciwgZGVyX2xlbiAtIGNvdW50ZXIsICZjbGFzcywgJmxlbjIsCisJCQkg ICAgICAmdGFnKTsKKyAgICAgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNTKQorCWdvdG8gZXJyb3I7 CisKKyAgICAgIHQgPSAoKHVuc2lnbmVkIGludCkgY2xhc3MpIDw8IDI0OworICAgICAgcF92ZXQt PnZhbHVlID0gdCB8IHRhZzsKKyAgICAgIGNvdW50ZXIgKz0gbGVuMjsKKworICAgICAgLyogZXh0 cmFjdGlvbiBhbmQgbGVuZ3RoICovCisgICAgICBsZW4yID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAo ZGVyICsgY291bnRlciwgZGVyX2xlbiAtIGNvdW50ZXIsICZsZW4pOworICAgICAgaWYgKGxlbjIg PCAwKQorCXsKKwkgIGVyciA9IEFTTjFfREVSX0VSUk9SOworCSAgZ290byBlcnJvcjsKKwl9Cisg ICAgICBjb3VudGVyICs9IGxlbiArIGxlbjI7CisKKyAgICAgIHBfdmV0LT5lbmQgPSBjb3VudGVy OworICAgICAgcCA9IHAtPnJpZ2h0OworICAgIH0KKworICBwX3ZldCA9IGZpcnN0OworCisgIHdo aWxlIChwX3ZldCkKKyAgICB7CisgICAgICBwMl92ZXQgPSBwX3ZldC0+bmV4dDsKKyAgICAgIGNv dW50ZXIgPSAwOworICAgICAgd2hpbGUgKHAyX3ZldCkKKwl7CisJICBpZiAocF92ZXQtPnZhbHVl ID4gcDJfdmV0LT52YWx1ZSkKKwkgICAgeworCSAgICAgIC8qIGNoYW5nZSBwb3NpdGlvbiAqLwor CSAgICAgIHRlbXAgPSBtYWxsb2MgKHBfdmV0LT5lbmQgLSBjb3VudGVyKTsKKwkgICAgICBpZiAo dGVtcCA9PSBOVUxMKQorCQl7CisJCSAgZXJyID0gQVNOMV9NRU1fQUxMT0NfRVJST1I7CisJCSAg Z290byBlcnJvcjsKKwkJfQorCisJICAgICAgbWVtY3B5ICh0ZW1wLCBkZXIgKyBjb3VudGVyLCBw X3ZldC0+ZW5kIC0gY291bnRlcik7CisJICAgICAgbWVtY3B5IChkZXIgKyBjb3VudGVyLCBkZXIg KyBwX3ZldC0+ZW5kLAorCQkgICAgICBwMl92ZXQtPmVuZCAtIHBfdmV0LT5lbmQpOworCSAgICAg IG1lbWNweSAoZGVyICsgY291bnRlciArIHAyX3ZldC0+ZW5kIC0gcF92ZXQtPmVuZCwgdGVtcCwK KwkJICAgICAgcF92ZXQtPmVuZCAtIGNvdW50ZXIpOworCSAgICAgIGZyZWUgKHRlbXApOworCisJ ICAgICAgdGFnID0gcF92ZXQtPnZhbHVlOworCSAgICAgIHBfdmV0LT52YWx1ZSA9IHAyX3ZldC0+ dmFsdWU7CisJICAgICAgcDJfdmV0LT52YWx1ZSA9IHRhZzsKKworCSAgICAgIHBfdmV0LT5lbmQg PSBjb3VudGVyICsgKHAyX3ZldC0+ZW5kIC0gcF92ZXQtPmVuZCk7CisJICAgIH0KKwkgIGNvdW50 ZXIgPSBwX3ZldC0+ZW5kOworCisJICBwMl92ZXQgPSBwMl92ZXQtPm5leHQ7CisJICBwX3ZldCA9 IHBfdmV0LT5uZXh0OworCX0KKworICAgICAgaWYgKHBfdmV0ICE9IGZpcnN0KQorCXBfdmV0LT5w cmV2LT5uZXh0ID0gTlVMTDsKKyAgICAgIGVsc2UKKwlmaXJzdCA9IE5VTEw7CisgICAgICBmcmVl IChwX3ZldCk7CisgICAgICBwX3ZldCA9IGZpcnN0OworICAgIH0KKyAgcmV0dXJuIEFTTjFfU1VD Q0VTUzsKKworZXJyb3I6CisgIHdoaWxlIChmaXJzdCAhPSBOVUxMKQorICAgIHsKKyAgICAgIHBf dmV0ID0gZmlyc3Q7CisgICAgICBmaXJzdCA9IGZpcnN0LT5uZXh0OworICAgICAgZnJlZSAocF92 ZXQpOworICAgIH0KKyAgcmV0dXJuIGVycjsKK30KKworc3RydWN0IHZldAoreworICB1bnNpZ25l ZCBjaGFyICpwdHI7CisgIGludCBzaXplOworfTsKKworc3RhdGljIGludAorc2V0b2ZfY29tcGFy IChjb25zdCB2b2lkICpfZTEsIGNvbnN0IHZvaWQgKl9lMikKK3sKKyAgdW5zaWduZWQgbGVuZ3Ro OworICBjb25zdCBzdHJ1Y3QgdmV0ICplMSA9IF9lMSwgKmUyID0gX2UyOworICBpbnQgcnZhbDsK KworICAvKiBUaGUgZW5jb2RpbmdzIG9mIHRoZSBjb21wb25lbnQgdmFsdWVzIG9mIGEgc2V0LW9m IHZhbHVlIHNoYWxsCisgICAqIGFwcGVhciBpbiBhc2NlbmRpbmcgb3JkZXIsIHRoZSBlbmNvZGlu Z3MgYmVpbmcgY29tcGFyZWQKKyAgICogYXMgb2N0ZXQgc3RyaW5ncyB3aXRoIHRoZSBzaG9ydGVy IGNvbXBvbmVudHMgYmVpbmcKKyAgICogcGFkZGVkIGF0IHRoZWlyIHRyYWlsaW5nIGVuZCB3aXRo IDAtb2N0ZXRzLgorICAgKiBUaGUgcGFkZGluZyBvY3RldHMgYXJlIGZvciBjb21wYXJpc29uIHB1 cnBvc2VzIGFuZAorICAgKiBkbyBub3QgYXBwZWFyIGluIHRoZSBlbmNvZGluZ3MuCisgICAqLwor ICBsZW5ndGggPSBNSU4gKGUxLT5zaXplLCBlMi0+c2l6ZSk7CisKKyAgcnZhbCA9IG1lbWNtcCAo ZTEtPnB0ciwgZTItPnB0ciwgbGVuZ3RoKTsKKyAgaWYgKHJ2YWwgPT0gMCAmJiBlMS0+c2l6ZSAh PSBlMi0+c2l6ZSkKKyAgICB7CisgICAgICBpZiAoZTEtPnNpemUgPiBlMi0+c2l6ZSkKKwlydmFs ID0gMTsKKyAgICAgIGVsc2UgaWYgKGUyLT5zaXplID4gZTEtPnNpemUpCisJcnZhbCA9IC0xOwor ICAgIH0KKworICByZXR1cm4gcnZhbDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9uIDogX2FzbjFfb3JkZXJp bmdfc2V0X29mICAgICAgICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogcHV0cyB0aGUg ZWxlbWVudHMgb2YgYSBTRVQgT0YgdHlwZSBpbiAqLworLyogdGhlIGNvcnJlY3Qgb3JkZXIgYWNj b3JkaW5nIHRvIERFUiBydWxlcy4gICAgICAgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIGRlcjogc3RyaW5nIHdpdGgg dGhlIERFUiBjb2RpbmcuICAgICAgICAgICAgICAgICAqLworLyogICBub2RlOiBwb2ludGVyIHRv IHRoZSBTRVQgT0YgZWxlbWVudC4gICAgICAgICAgICAgKi8KKy8qIFJldHVybjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICBBU04xX1NVQ0NFU1Mg aWYgc3VjY2Vzc2Z1bCAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgb3IgYW4gZXJyb3Ig dmFsdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50CitfYXNu MV9vcmRlcmluZ19zZXRfb2YgKHVuc2lnbmVkIGNoYXIgKmRlciwgaW50IGRlcl9sZW4sIGFzbjFf bm9kZSBub2RlKQoreworICBpbnQgY291bnRlciwgbGVuLCBsZW4yOworICBzdHJ1Y3QgdmV0ICps aXN0ID0gTlVMTCwgKnRsaXN0OworICB1bnNpZ25lZCBsaXN0X3NpemUgPSAwOworICBzdHJ1Y3Qg dmV0ICpwX3ZldDsKKyAgYXNuMV9ub2RlIHA7CisgIHVuc2lnbmVkIGNoYXIgY2xhc3M7CisgIHVu c2lnbmVkIGk7CisgIHVuc2lnbmVkIGNoYXIgKm91dCA9IE5VTEw7CisgIGludCBlcnI7CisKKyAg Y291bnRlciA9IDA7CisKKyAgaWYgKHR5cGVfZmllbGQgKG5vZGUtPnR5cGUpICE9IEFTTjFfRVRZ UEVfU0VUX09GKQorICAgIHJldHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsKKworICBwID0gbm9k ZS0+ZG93bjsKKyAgd2hpbGUgKHAgJiYgKCh0eXBlX2ZpZWxkIChwLT50eXBlKSA9PSBBU04xX0VU WVBFX1RBRykgfHwKKwkgICAgICAgKHR5cGVfZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVf U0laRSkpKQorICAgIHAgPSBwLT5yaWdodDsKKyAgaWYgKHAgPT0gTlVMTCkKKyAgICByZXR1cm4g QVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisgIHAgPSBwLT5yaWdodDsKKworICBpZiAoKHAgPT0gTlVM TCkgfHwgKHAtPnJpZ2h0ID09IE5VTEwpKQorICAgIHJldHVybiBBU04xX1NVQ0NFU1M7CisKKyAg d2hpbGUgKHApCisgICAgeworICAgICAgbGlzdF9zaXplKys7CisgICAgICB0bGlzdCA9IHJlYWxs b2MgKGxpc3QsIGxpc3Rfc2l6ZSAqIHNpemVvZiAoc3RydWN0IHZldCkpOworICAgICAgaWYgKHRs aXN0ID09IE5VTEwpCisJeworCSAgZXJyID0gQVNOMV9NRU1fQUxMT0NfRVJST1I7CisJICBnb3Rv IGVycm9yOworCX0KKyAgICAgIGxpc3QgPSB0bGlzdDsKKyAgICAgIHBfdmV0ID0gJmxpc3RbbGlz dF9zaXplIC0gMV07CisKKyAgICAgIHBfdmV0LT5wdHIgPSBkZXIgKyBjb3VudGVyOworICAgICAg cF92ZXQtPnNpemUgPSAwOworCisgICAgICAvKiBleHRyYWN0aW9uIG9mIHRhZyBhbmQgbGVuZ3Ro ICovCisgICAgICBpZiAoZGVyX2xlbiAtIGNvdW50ZXIgPiAwKQorCXsKKwkgIGVyciA9IGFzbjFf Z2V0X3RhZ19kZXIgKGRlciArIGNvdW50ZXIsIGRlcl9sZW4gLSBjb3VudGVyLCAmY2xhc3MsCisJ CQkJICAmbGVuLCBOVUxMKTsKKwkgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNTKQorCSAgICBnb3Rv IGVycm9yOworCSAgY291bnRlciArPSBsZW47CisJICBwX3ZldC0+c2l6ZSArPSBsZW47CisKKwkg IGxlbjIgPSBhc24xX2dldF9sZW5ndGhfZGVyIChkZXIgKyBjb3VudGVyLCBkZXJfbGVuIC0gY291 bnRlciwgJmxlbik7CisJICBpZiAobGVuMiA8IDApCisJICAgIHsKKwkgICAgICBlcnIgPSBBU04x X0RFUl9FUlJPUjsKKwkgICAgICBnb3RvIGVycm9yOworCSAgICB9CisJICBjb3VudGVyICs9IGxl biArIGxlbjI7CisJICBwX3ZldC0+c2l6ZSArPSBsZW4gKyBsZW4yOworCisJfQorICAgICAgZWxz ZQorCXsKKwkgIGVyciA9IEFTTjFfREVSX0VSUk9SOworCSAgZ290byBlcnJvcjsKKwl9CisgICAg ICBwID0gcC0+cmlnaHQ7CisgICAgfQorCisgIGlmIChjb3VudGVyID4gZGVyX2xlbikKKyAgICB7 CisgICAgICBlcnIgPSBBU04xX0RFUl9FUlJPUjsKKyAgICAgIGdvdG8gZXJyb3I7CisgICAgfQor CisgIHFzb3J0IChsaXN0LCBsaXN0X3NpemUsIHNpemVvZiAoc3RydWN0IHZldCksIHNldG9mX2Nv bXBhcik7CisKKyAgb3V0ID0gbWFsbG9jIChkZXJfbGVuKTsKKyAgaWYgKG91dCA9PSBOVUxMKQor ICAgIHsKKyAgICAgIGVyciA9IEFTTjFfTUVNX0VSUk9SOworICAgICAgZ290byBlcnJvcjsKKyAg ICB9CisKKyAgLyogdGhlIHN1bSBvZiBwX3ZldC0+c2l6ZSA9PSBkZXJfbGVuICovCisgIGNvdW50 ZXIgPSAwOworICBmb3IgKGkgPSAwOyBpIDwgbGlzdF9zaXplOyBpKyspCisgICAgeworICAgICAg cF92ZXQgPSAmbGlzdFtpXTsKKyAgICAgIG1lbWNweSAob3V0ICsgY291bnRlciwgcF92ZXQtPnB0 ciwgcF92ZXQtPnNpemUpOworICAgICAgY291bnRlciArPSBwX3ZldC0+c2l6ZTsKKyAgICB9Cisg IG1lbWNweSAoZGVyLCBvdXQsIGRlcl9sZW4pOworICBmcmVlIChvdXQpOworCisgIGVyciA9IEFT TjFfU1VDQ0VTUzsKKworZXJyb3I6CisgIGZyZWUgKGxpc3QpOworICByZXR1cm4gZXJyOworfQor CisvKioKKyAqIGFzbjFfZGVyX2NvZGluZzoKKyAqIEBlbGVtZW50OiBwb2ludGVyIHRvIGFuIEFT TjEgZWxlbWVudAorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSBzdHJ1Y3R1cmUgeW91IHdhbnQg dG8gZW5jb2RlIChpdCBtdXN0IGJlCisgKiAgIGluc2lkZSAqUE9JTlRFUikuCisgKiBAaWRlcjog dmVjdG9yIHRoYXQgd2lsbCBjb250YWluIHRoZSBERVIgZW5jb2RpbmcuIERFUiBtdXN0IGJlIGEK KyAqICAgcG9pbnRlciB0byBtZW1vcnkgY2VsbHMgYWxyZWFkeSBhbGxvY2F0ZWQuCisgKiBAbGVu OiBudW1iZXIgb2YgYnl0ZXMgb2YgKkBpZGVyOiBAaWRlclswXS4uQGlkZXJbbGVuLTFdLCBJbml0 aWFseQorICogICBob2xkcyB0aGUgc2l6ZW9mIG9mIGRlciB2ZWN0b3IuCisgKiBARXJyb3JEZXNj cmlwdGlvbjogcmV0dXJuIHRoZSBlcnJvciBkZXNjcmlwdGlvbiBvciBhbiBlbXB0eQorICogICBz dHJpbmcgaWYgc3VjY2Vzcy4KKyAqCisgKiBDcmVhdGVzIHRoZSBERVIgZW5jb2RpbmcgZm9yIHRo ZSBOQU1FIHN0cnVjdHVyZSAoaW5zaWRlICpQT0lOVEVSCisgKiBzdHJ1Y3R1cmUpLgorICoKKyAq IFJldHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgREVSIGVuY29kaW5nIE9LLCAlQVNOMV9FTEVNRU5U X05PVF9GT1VORAorICogICBpZiBAbmFtZSBpcyBub3QgYSB2YWxpZCBlbGVtZW50LCAlQVNOMV9W QUxVRV9OT1RfRk9VTkQgaWYgdGhlcmUKKyAqICAgaXMgYW4gZWxlbWVudCB3aXRob3V0IGEgdmFs dWUsICVBU04xX01FTV9FUlJPUiBpZiB0aGUgQGlkZXIKKyAqICAgdmVjdG9yIGlzbid0IGJpZyBl bm91Z2ggYW5kIGluIHRoaXMgY2FzZSBAbGVuIHdpbGwgY29udGFpbiB0aGUKKyAqICAgbGVuZ3Ro IG5lZWRlZC4KKyAqKi8KK2ludAorYXNuMV9kZXJfY29kaW5nIChhc24xX25vZGVfY29uc3QgZWxl bWVudCwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqaWRlciwKKwkJIGludCAqbGVuLCBjaGFyICpF cnJvckRlc2NyaXB0aW9uKQoreworICBhc24xX25vZGUgbm9kZSwgcCwgcDI7CisgIHVuc2lnbmVk IGNoYXIgdGVtcFtNQVggKExUT1NUUl9NQVhfU0laRSwgU0laRU9GX1VOU0lHTkVEX0xPTkdfSU5U ICogMyArIDEpXTsKKyAgaW50IGNvdW50ZXIsIGNvdW50ZXJfb2xkLCBsZW4yLCBsZW4zLCBtb3Zl LCBtYXhfbGVuLCBtYXhfbGVuX29sZDsKKyAgaW50IGVycjsKKyAgdW5zaWduZWQgY2hhciAqZGVy ID0gaWRlcjsKKyAgdW5zaWduZWQgY2hhciBkdW1teTsKKworICBpZiAoRXJyb3JEZXNjcmlwdGlv bikKKyAgICBFcnJvckRlc2NyaXB0aW9uWzBdID0gMDsKKworICBub2RlID0gYXNuMV9maW5kX25v ZGUgKGVsZW1lbnQsIG5hbWUpOworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJldHVybiBBU04x X0VMRU1FTlRfTk9UX0ZPVU5EOworCisgIC8qIE5vZGUgaXMgbm93IGEgbG9jYWxseSBhbGxvY2F0 ZWQgdmFyaWFibGUuCisgICAqIFRoYXQgaXMgYmVjYXVzZSBpbiBzb21lIHBvaW50IHdlIG1vZGlm eSB0aGUKKyAgICogc3RydWN0dXJlLCBhbmQgSSBkb24ndCBrbm93IHdoeSEgLS1ubWF2CisgICAq LworICBub2RlID0gX2FzbjFfY29weV9zdHJ1Y3R1cmUzIChub2RlKTsKKyAgaWYgKG5vZGUgPT0g TlVMTCkKKyAgICByZXR1cm4gQVNOMV9FTEVNRU5UX05PVF9GT1VORDsKKworICBtYXhfbGVuID0g KmxlbjsKKworICBpZiAoZGVyID09IE5VTEwgJiYgbWF4X2xlbiA+IDApCisgICAgeworICAgICAg ZXJyID0gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisgICAgICBnb3RvIGVycm9yOworICAgIH0KKwor ICBjb3VudGVyID0gMDsKKyAgbW92ZSA9IERPV047CisgIHAgPSBub2RlOworCisgIHdoaWxlICgx KQorICAgIHsKKworICAgICAgY291bnRlcl9vbGQgPSBjb3VudGVyOworICAgICAgbWF4X2xlbl9v bGQgPSBtYXhfbGVuOworICAgICAgaWYgKG1vdmUgIT0gVVApCisJeworCSAgcC0+c3RhcnQgPSBj b3VudGVyOworCSAgZXJyID0gX2FzbjFfaW5zZXJ0X3RhZ19kZXIgKHAsIGRlciwgJmNvdW50ZXIs ICZtYXhfbGVuKTsKKwkgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNTICYmIGVyciAhPSBBU04xX01F TV9FUlJPUikKKwkgICAgZ290byBlcnJvcjsKKwl9CisgICAgICBzd2l0Y2ggKHR5cGVfZmllbGQg KHAtPnR5cGUpKQorCXsKKwljYXNlIEFTTjFfRVRZUEVfTlVMTDoKKwkgIG1heF9sZW4tLTsKKwkg IGlmIChkZXIgIT0gTlVMTCAmJiBtYXhfbGVuID49IDApCisJICAgIGRlcltjb3VudGVyXSA9IDA7 CisJICBjb3VudGVyKys7CisJICBtb3ZlID0gUklHSFQ7CisJICBicmVhazsKKwljYXNlIEFTTjFf RVRZUEVfQk9PTEVBTjoKKwkgIGlmICgocC0+dHlwZSAmIENPTlNUX0RFRkFVTFQpICYmIChwLT52 YWx1ZSA9PSBOVUxMKSkKKwkgICAgeworCSAgICAgIGNvdW50ZXIgPSBjb3VudGVyX29sZDsKKwkg ICAgICBtYXhfbGVuID0gbWF4X2xlbl9vbGQ7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAg ICAgIGlmIChwLT52YWx1ZSA9PSBOVUxMKQorCQl7CisJCSAgX2FzbjFfZXJyb3JfZGVzY3JpcHRp b25fdmFsdWVfbm90X2ZvdW5kIChwLAorCQkJCQkJCSAgIEVycm9yRGVzY3JpcHRpb24pOworCQkg IGVyciA9IEFTTjFfVkFMVUVfTk9UX0ZPVU5EOworCQkgIGdvdG8gZXJyb3I7CisJCX0KKwkgICAg ICBtYXhfbGVuIC09IDI7CisJICAgICAgaWYgKGRlciAhPSBOVUxMICYmIG1heF9sZW4gPj0gMCkK KwkJeworCQkgIGRlcltjb3VudGVyKytdID0gMTsKKwkJICBpZiAocC0+dmFsdWVbMF0gPT0gJ0Yn KQorCQkgICAgZGVyW2NvdW50ZXIrK10gPSAwOworCQkgIGVsc2UKKwkJICAgIGRlcltjb3VudGVy KytdID0gMHhGRjsKKwkJfQorCSAgICAgIGVsc2UKKwkJY291bnRlciArPSAyOworCSAgICB9CisJ ICBtb3ZlID0gUklHSFQ7CisJICBicmVhazsKKwljYXNlIEFTTjFfRVRZUEVfSU5URUdFUjoKKwlj YXNlIEFTTjFfRVRZUEVfRU5VTUVSQVRFRDoKKwkgIGlmICgocC0+dHlwZSAmIENPTlNUX0RFRkFV TFQpICYmIChwLT52YWx1ZSA9PSBOVUxMKSkKKwkgICAgeworCSAgICAgIGNvdW50ZXIgPSBjb3Vu dGVyX29sZDsKKwkgICAgICBtYXhfbGVuID0gbWF4X2xlbl9vbGQ7CisJICAgIH0KKwkgIGVsc2UK KwkgICAgeworCSAgICAgIGlmIChwLT52YWx1ZSA9PSBOVUxMKQorCQl7CisJCSAgX2FzbjFfZXJy b3JfZGVzY3JpcHRpb25fdmFsdWVfbm90X2ZvdW5kIChwLAorCQkJCQkJCSAgIEVycm9yRGVzY3Jp cHRpb24pOworCQkgIGVyciA9IEFTTjFfVkFMVUVfTk9UX0ZPVU5EOworCQkgIGdvdG8gZXJyb3I7 CisJCX0KKwkgICAgICBsZW4yID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAocC0+dmFsdWUsIHAtPnZh bHVlX2xlbiwgJmxlbjMpOworCSAgICAgIGlmIChsZW4yIDwgMCkKKwkJeworCQkgIGVyciA9IEFT TjFfREVSX0VSUk9SOworCQkgIGdvdG8gZXJyb3I7CisJCX0KKwkgICAgICBtYXhfbGVuIC09IGxl bjIgKyBsZW4zOworCSAgICAgIGlmIChkZXIgIT0gTlVMTCAmJiBtYXhfbGVuID49IDApCisJCW1l bWNweSAoZGVyICsgY291bnRlciwgcC0+dmFsdWUsIGxlbjMgKyBsZW4yKTsKKwkgICAgICBjb3Vu dGVyICs9IGxlbjMgKyBsZW4yOworCSAgICB9CisJICBtb3ZlID0gUklHSFQ7CisJICBicmVhazsK KwljYXNlIEFTTjFfRVRZUEVfT0JKRUNUX0lEOgorCSAgaWYgKChwLT50eXBlICYgQ09OU1RfREVG QVVMVCkgJiYgKHAtPnZhbHVlID09IE5VTEwpKQorCSAgICB7CisJICAgICAgY291bnRlciA9IGNv dW50ZXJfb2xkOworCSAgICAgIG1heF9sZW4gPSBtYXhfbGVuX29sZDsKKwkgICAgfQorCSAgZWxz ZQorCSAgICB7CisJICAgICAgaWYgKHAtPnZhbHVlID09IE5VTEwpCisJCXsKKwkJICBfYXNuMV9l cnJvcl9kZXNjcmlwdGlvbl92YWx1ZV9ub3RfZm91bmQgKHAsCisJCQkJCQkJICAgRXJyb3JEZXNj cmlwdGlvbik7CisJCSAgZXJyID0gQVNOMV9WQUxVRV9OT1RfRk9VTkQ7CisJCSAgZ290byBlcnJv cjsKKwkJfQorCSAgICAgIGxlbjIgPSBtYXhfbGVuOworCSAgICAgIGVyciA9CisJCV9hc24xX29i amVjdF9pZF9kZXIgKChjaGFyICopIHAtPnZhbHVlLAorCQkJCSAgICAgZGVyID8gZGVyICsgY291 bnRlciA6ICZkdW1teSwgJmxlbjIpOworCSAgICAgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNTICYm IGVyciAhPSBBU04xX01FTV9FUlJPUikKKwkJZ290byBlcnJvcjsKKworCSAgICAgIG1heF9sZW4g LT0gbGVuMjsKKwkgICAgICBjb3VudGVyICs9IGxlbjI7CisJICAgIH0KKwkgIG1vdmUgPSBSSUdI VDsKKwkgIGJyZWFrOworCWNhc2UgQVNOMV9FVFlQRV9HRU5FUkFMSVpFRF9USU1FOgorCWNhc2Ug QVNOMV9FVFlQRV9VVENfVElNRToKKwkgIGlmIChwLT52YWx1ZSA9PSBOVUxMKQorCSAgICB7CisJ ICAgICAgX2FzbjFfZXJyb3JfZGVzY3JpcHRpb25fdmFsdWVfbm90X2ZvdW5kIChwLCBFcnJvckRl c2NyaXB0aW9uKTsKKwkgICAgICBlcnIgPSBBU04xX1ZBTFVFX05PVF9GT1VORDsKKwkgICAgICBn b3RvIGVycm9yOworCSAgICB9CisJICBsZW4yID0gbWF4X2xlbjsKKwkgIGVyciA9CisJICAgIF9h c24xX3RpbWVfZGVyIChwLT52YWx1ZSwgcC0+dmFsdWVfbGVuLAorCQkJICAgIGRlciA/IGRlciAr IGNvdW50ZXIgOiAmZHVtbXksICZsZW4yKTsKKwkgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNTICYm IGVyciAhPSBBU04xX01FTV9FUlJPUikKKwkgICAgZ290byBlcnJvcjsKKworCSAgbWF4X2xlbiAt PSBsZW4yOworCSAgY291bnRlciArPSBsZW4yOworCSAgbW92ZSA9IFJJR0hUOworCSAgYnJlYWs7 CisJY2FzZSBBU04xX0VUWVBFX09DVEVUX1NUUklORzoKKwljYXNlIEFTTjFfRVRZUEVfR0VORVJB TFNUUklORzoKKwljYXNlIEFTTjFfRVRZUEVfTlVNRVJJQ19TVFJJTkc6CisJY2FzZSBBU04xX0VU WVBFX0lBNV9TVFJJTkc6CisJY2FzZSBBU04xX0VUWVBFX1RFTEVURVhfU1RSSU5HOgorCWNhc2Ug QVNOMV9FVFlQRV9QUklOVEFCTEVfU1RSSU5HOgorCWNhc2UgQVNOMV9FVFlQRV9VTklWRVJTQUxf U1RSSU5HOgorCWNhc2UgQVNOMV9FVFlQRV9CTVBfU1RSSU5HOgorCWNhc2UgQVNOMV9FVFlQRV9V VEY4X1NUUklORzoKKwljYXNlIEFTTjFfRVRZUEVfVklTSUJMRV9TVFJJTkc6CisJY2FzZSBBU04x X0VUWVBFX0JJVF9TVFJJTkc6CisJICBpZiAocC0+dmFsdWUgPT0gTlVMTCkKKwkgICAgeworCSAg ICAgIF9hc24xX2Vycm9yX2Rlc2NyaXB0aW9uX3ZhbHVlX25vdF9mb3VuZCAocCwgRXJyb3JEZXNj cmlwdGlvbik7CisJICAgICAgZXJyID0gQVNOMV9WQUxVRV9OT1RfRk9VTkQ7CisJICAgICAgZ290 byBlcnJvcjsKKwkgICAgfQorCSAgbGVuMiA9IGFzbjFfZ2V0X2xlbmd0aF9kZXIgKHAtPnZhbHVl LCBwLT52YWx1ZV9sZW4sICZsZW4zKTsKKwkgIGlmIChsZW4yIDwgMCkKKwkgICAgeworCSAgICAg IGVyciA9IEFTTjFfREVSX0VSUk9SOworCSAgICAgIGdvdG8gZXJyb3I7CisJICAgIH0KKwkgIG1h eF9sZW4gLT0gbGVuMiArIGxlbjM7CisJICBpZiAoZGVyICE9IE5VTEwgJiYgbWF4X2xlbiA+PSAw KQorCSAgICBtZW1jcHkgKGRlciArIGNvdW50ZXIsIHAtPnZhbHVlLCBsZW4zICsgbGVuMik7CisJ ICBjb3VudGVyICs9IGxlbjMgKyBsZW4yOworCSAgbW92ZSA9IFJJR0hUOworCSAgYnJlYWs7CisJ Y2FzZSBBU04xX0VUWVBFX1NFUVVFTkNFOgorCWNhc2UgQVNOMV9FVFlQRV9TRVQ6CisJICBpZiAo bW92ZSAhPSBVUCkKKwkgICAgeworCSAgICAgIHAtPnRtcF9pdmFsID0gY291bnRlcjsKKwkgICAg ICBpZiAocC0+ZG93biA9PSBOVUxMKQorCQl7CisJCSAgbW92ZSA9IFVQOworCQkgIGNvbnRpbnVl OworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgcDIgPSBwLT5kb3duOworCQkgIHdoaWxlIChw MiAmJiAodHlwZV9maWVsZCAocDItPnR5cGUpID09IEFTTjFfRVRZUEVfVEFHKSkKKwkJICAgIHAy ID0gcDItPnJpZ2h0OworCQkgIGlmIChwMikKKwkJICAgIHsKKwkJICAgICAgcCA9IHAyOworCQkg ICAgICBtb3ZlID0gUklHSFQ7CisJCSAgICAgIGNvbnRpbnVlOworCQkgICAgfQorCQkgIG1vdmUg PSBVUDsKKwkJICBjb250aW51ZTsKKwkJfQorCSAgICB9CisJICBlbHNlCisJICAgIHsJCQkvKiBt b3ZlPT1VUCAqLworCSAgICAgIGxlbjIgPSBwLT50bXBfaXZhbDsKKwkgICAgICBwLT50bXBfaXZh bCA9IDA7CisJICAgICAgaWYgKCh0eXBlX2ZpZWxkIChwLT50eXBlKSA9PSBBU04xX0VUWVBFX1NF VCkgJiYgKG1heF9sZW4gPj0gMCkpCisJCXsKKwkJICBlcnIgPQorCQkgICAgX2FzbjFfb3JkZXJp bmdfc2V0IChkZXIgPyBkZXIgKyBsZW4yIDogJmR1bW15LAorCQkJCQljb3VudGVyIC0gbGVuMiwg cCk7CisJCSAgaWYgKGVyciAhPSBBU04xX1NVQ0NFU1MpCisJCSAgICBnb3RvIGVycm9yOworCQl9 CisJICAgICAgYXNuMV9sZW5ndGhfZGVyIChjb3VudGVyIC0gbGVuMiwgdGVtcCwgJmxlbjMpOwor CSAgICAgIG1heF9sZW4gLT0gbGVuMzsKKwkgICAgICBpZiAoZGVyICE9IE5VTEwgJiYgbWF4X2xl biA+PSAwKQorCQl7CisJCSAgbWVtbW92ZSAoZGVyICsgbGVuMiArIGxlbjMsIGRlciArIGxlbjIs IGNvdW50ZXIgLSBsZW4yKTsKKwkJICBtZW1jcHkgKGRlciArIGxlbjIsIHRlbXAsIGxlbjMpOwor CQl9CisJICAgICAgY291bnRlciArPSBsZW4zOworCSAgICAgIG1vdmUgPSBSSUdIVDsKKwkgICAg fQorCSAgYnJlYWs7CisJY2FzZSBBU04xX0VUWVBFX1NFUVVFTkNFX09GOgorCWNhc2UgQVNOMV9F VFlQRV9TRVRfT0Y6CisJICBpZiAobW92ZSAhPSBVUCkKKwkgICAgeworCSAgICAgIHAtPnRtcF9p dmFsID0gY291bnRlcjsKKwkgICAgICBwID0gcC0+ZG93bjsKKwkgICAgICB3aGlsZSAoKHR5cGVf ZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVfVEFHKQorCQkgICAgIHx8ICh0eXBlX2ZpZWxk IChwLT50eXBlKSA9PSBBU04xX0VUWVBFX1NJWkUpKQorCQlwID0gcC0+cmlnaHQ7CisJICAgICAg aWYgKHAtPnJpZ2h0KQorCQl7CisJCSAgcCA9IHAtPnJpZ2h0OworCQkgIG1vdmUgPSBSSUdIVDsK KwkJICBjb250aW51ZTsKKwkJfQorCSAgICAgIGVsc2UKKwkJcCA9IF9hc24xX2ZpbmRfdXAgKHAp OworCSAgICAgIG1vdmUgPSBVUDsKKwkgICAgfQorCSAgaWYgKG1vdmUgPT0gVVApCisJICAgIHsK KwkgICAgICBsZW4yID0gcC0+dG1wX2l2YWw7CisJICAgICAgcC0+dG1wX2l2YWwgPSAwOworCSAg ICAgIGlmICgodHlwZV9maWVsZCAocC0+dHlwZSkgPT0gQVNOMV9FVFlQRV9TRVRfT0YpCisJCSAg JiYgKGNvdW50ZXIgLSBsZW4yID4gMCkgJiYgKG1heF9sZW4gPj0gMCkpCisJCXsKKwkJICBlcnIg PQorCQkgICAgX2FzbjFfb3JkZXJpbmdfc2V0X29mIChkZXIgPyBkZXIgKyBsZW4yIDogJmR1bW15 LAorCQkJCQkgICBjb3VudGVyIC0gbGVuMiwgcCk7CisJCSAgaWYgKGVyciAhPSBBU04xX1NVQ0NF U1MpCisJCSAgICBnb3RvIGVycm9yOworCQl9CisJICAgICAgYXNuMV9sZW5ndGhfZGVyIChjb3Vu dGVyIC0gbGVuMiwgdGVtcCwgJmxlbjMpOworCSAgICAgIG1heF9sZW4gLT0gbGVuMzsKKwkgICAg ICBpZiAoZGVyICE9IE5VTEwgJiYgbWF4X2xlbiA+PSAwKQorCQl7CisJCSAgbWVtbW92ZSAoZGVy ICsgbGVuMiArIGxlbjMsIGRlciArIGxlbjIsIGNvdW50ZXIgLSBsZW4yKTsKKwkJICBtZW1jcHkg KGRlciArIGxlbjIsIHRlbXAsIGxlbjMpOworCQl9CisJICAgICAgY291bnRlciArPSBsZW4zOwor CSAgICAgIG1vdmUgPSBSSUdIVDsKKwkgICAgfQorCSAgYnJlYWs7CisJY2FzZSBBU04xX0VUWVBF X0FOWToKKwkgIGlmIChwLT52YWx1ZSA9PSBOVUxMKQorCSAgICB7CisJICAgICAgX2FzbjFfZXJy b3JfZGVzY3JpcHRpb25fdmFsdWVfbm90X2ZvdW5kIChwLCBFcnJvckRlc2NyaXB0aW9uKTsKKwkg ICAgICBlcnIgPSBBU04xX1ZBTFVFX05PVF9GT1VORDsKKwkgICAgICBnb3RvIGVycm9yOworCSAg ICB9CisJICBsZW4yID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAocC0+dmFsdWUsIHAtPnZhbHVlX2xl biwgJmxlbjMpOworCSAgaWYgKGxlbjIgPCAwKQorCSAgICB7CisJICAgICAgZXJyID0gQVNOMV9E RVJfRVJST1I7CisJICAgICAgZ290byBlcnJvcjsKKwkgICAgfQorCSAgbWF4X2xlbiAtPSBsZW4y OworCSAgaWYgKGRlciAhPSBOVUxMICYmIG1heF9sZW4gPj0gMCkKKwkgICAgbWVtY3B5IChkZXIg KyBjb3VudGVyLCBwLT52YWx1ZSArIGxlbjMsIGxlbjIpOworCSAgY291bnRlciArPSBsZW4yOwor CSAgbW92ZSA9IFJJR0hUOworCSAgYnJlYWs7CisJZGVmYXVsdDoKKwkgIG1vdmUgPSAobW92ZSA9 PSBVUCkgPyBSSUdIVCA6IERPV047CisJICBicmVhazsKKwl9CisKKyAgICAgIGlmICgobW92ZSAh PSBET1dOKSAmJiAoY291bnRlciAhPSBjb3VudGVyX29sZCkpCisJeworCSAgcC0+ZW5kID0gY291 bnRlciAtIDE7CisJICBlcnIgPSBfYXNuMV9jb21wbGV0ZV9leHBsaWNpdF90YWcgKHAsIGRlciwg JmNvdW50ZXIsICZtYXhfbGVuKTsKKwkgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNTICYmIGVyciAh PSBBU04xX01FTV9FUlJPUikKKwkgICAgZ290byBlcnJvcjsKKwl9CisKKyAgICAgIGlmIChwID09 IG5vZGUgJiYgbW92ZSAhPSBET1dOKQorCWJyZWFrOworCisgICAgICBpZiAobW92ZSA9PSBET1dO KQorCXsKKwkgIGlmIChwLT5kb3duKQorCSAgICBwID0gcC0+ZG93bjsKKwkgIGVsc2UKKwkgICAg bW92ZSA9IFJJR0hUOworCX0KKyAgICAgIGlmIChtb3ZlID09IFJJR0hUKQorCXsKKwkgIGlmIChw LT5yaWdodCkKKwkgICAgcCA9IHAtPnJpZ2h0OworCSAgZWxzZQorCSAgICBtb3ZlID0gVVA7CisJ fQorICAgICAgaWYgKG1vdmUgPT0gVVApCisJcCA9IF9hc24xX2ZpbmRfdXAgKHApOworICAgIH0K KworICAqbGVuID0gY291bnRlcjsKKworICBpZiAobWF4X2xlbiA8IDApCisgICAgeworICAgICAg ZXJyID0gQVNOMV9NRU1fRVJST1I7CisgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICBlcnIg PSBBU04xX1NVQ0NFU1M7CisKK2Vycm9yOgorICBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmUgKCZub2Rl KTsKKyAgcmV0dXJuIGVycjsKK30KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFzbjEv bGliL2RlY29kaW5nLmMgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYjkyNDVjNDg2Ci0tLSAvZGV2L251 bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZGVjb2RpbmcuYwpAQCAtMCwwICsx LDI1MDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAyMiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSUJUQVNOMS4KKyAq CisgKiBUaGUgTElCVEFTTjEgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdAorICogYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3 aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQQorICogMDIxMTAtMTMwMSwgVVNBCisgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGaWxlOiBkZWNvZGluZy5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogRnVuY3Rp b25zIHRvIG1hbmFnZSBERVIgZGVjb2RpbmcgICAgICovCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxpbnQuaD4KKyNp bmNsdWRlIDxwYXJzZXJfYXV4Lmg+CisjaW5jbHVkZSA8Z3N0ci5oPgorI2luY2x1ZGUgPHN0cnVj dHVyZS5oPgorI2luY2x1ZGUgPGVsZW1lbnQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNs dWRlIDxpbnRwcm9wcy5oPgorI2luY2x1ZGUgImMtY3R5cGUuaCIKKworI2lmZGVmIERFQlVHCisj IGRlZmluZSB3YXJuKCkgZnByaW50ZihzdGRlcnIsICIlczogJWRcbiIsIF9fZnVuY19fLCBfX0xJ TkVfXykKKyNlbHNlCisjIGRlZmluZSB3YXJuKCkKKyNlbmRpZgorCisjZGVmaW5lIElTX0VSUihs ZW4sIGZsYWdzKSAobGVuIDwgLTEgfHwgKChmbGFncyAmIEFTTjFfREVDT0RFX0ZMQUdfU1RSSUNU X0RFUikgJiYgbGVuIDwgMCkpCisKKyNkZWZpbmUgSEFWRV9UV08oeCkgKHg+PTI/MTowKQorCisv KiBEZWNvZGluZyBmbGFncyAoZGZsYWdzKSB1c2VkIGluIHNldmVyYWwgZGVjb2RpbmcgZnVuY3Rp b25zLgorICogIERFQ09ERV9GTEFHX0hBVkVfVEFHOiBUaGUgcHJvdmlkZWQgYnVmZmVyIGluY2x1 ZGVzIGEgdGFnCisgKiAgREVDT0RFX0ZMQUdfQ09OU1RSVUNURUQ6IFRoZSBwcm92aWRlZCBidWZm ZXIgaXMgb2YgaW5kZWZpbml0ZSBlbmNvZGluZyAodXNlZnVsCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgIHdoZW4gbm8gdGFncyBhcmUgcHJlc2VudCkuCisgKiAgREVDT0RFX0ZMQUdfTEVW RUwxOiBJbnRlcm5hbCBmbGFnIHRvIGluZGljYXRlIGEgbGV2ZWwgb2YgcmVjdXJzaW9uIGZvciBC RVIgc3RyaW5ncy4KKyAqICBERUNPREVfRkxBR19MRVZFTDI6IEludGVybmFsIGZsYWcgdG8gaW5k aWNhdGUgdHdvIGxldmVscyBvZiByZWN1cnNpb24gZm9yIEJFUiBzdHJpbmdzLgorICogIERFQ09E RV9GTEFHX0xFVkVMMzogSW50ZXJuYWwgZmxhZyB0byBpbmRpY2F0ZSB0aHJlZSBsZXZlbHMgb2Yg cmVjdXJzaW9uIGZvciBCRVIgc3RyaW5ncy4KKyAqICAgICAgICAgICAgICAgICAgICAgIFRoaXMg aXMgdGhlIG1heGltdW0gbGV2ZWxzIG9mIHJlY3Vyc2lvbiBwb3NzaWJsZSB0byBwcmV2ZW50IHN0 YWNrCisgKiAgICAgICAgICAgICAgICAgICAgICBleGhhdXN0aW9uLgorICovCisKKyNkZWZpbmUg REVDT0RFX0ZMQUdfSEFWRV9UQUcgMQorI2RlZmluZSBERUNPREVfRkxBR19DT05TVFJVQ1RFRCAo MTw8MSkKKyNkZWZpbmUgREVDT0RFX0ZMQUdfTEVWRUwxICgxPDwyKQorI2RlZmluZSBERUNPREVf RkxBR19MRVZFTDIgKDE8PDMpCisjZGVmaW5lIERFQ09ERV9GTEFHX0xFVkVMMyAoMTw8NCkKKwor I2RlZmluZSBERUNSX0xFTihsLCBzKSBkbyB7IFwKKwkgIGwgLT0gczsgXAorCSAgaWYgKGwgPCAw KSB7IFwKKwkgICAgd2FybigpOyBcCisJICAgIHJlc3VsdCA9IEFTTjFfREVSX0VSUk9SOyBcCisJ ICAgIGdvdG8gY2xlYW51cDsgXAorCSAgfSBcCisJfSB3aGlsZSAoMCkKKworc3RhdGljIGludAor X2FzbjFfZ2V0X2luZGVmaW5pdGVfbGVuZ3RoX3N0cmluZyAoY29uc3QgdW5zaWduZWQgY2hhciAq ZGVyLCBpbnQgZGVyX2xlbiwKKwkJCQkgICAgaW50ICpsZW4pOworCitzdGF0aWMgaW50CitfYXNu MV9kZWNvZGVfc2ltcGxlX2JlciAodW5zaWduZWQgaW50IGV0eXBlLCBjb25zdCB1bnNpZ25lZCBj aGFyICpkZXIsCisJCQkgdW5zaWduZWQgaW50IF9kZXJfbGVuLCB1bnNpZ25lZCBjaGFyICoqc3Ry LAorCQkJIHVuc2lnbmVkIGludCAqc3RyX2xlbiwgdW5zaWduZWQgaW50ICpiZXJfbGVuLAorCQkJ IHVuc2lnbmVkIGRmbGFncyk7CisKK3N0YXRpYyBpbnQKK19hc24xX2RlY29kZV9zaW1wbGVfZGVy ICh1bnNpZ25lZCBpbnQgZXR5cGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRlciwKKwkJCSB1bnNp Z25lZCBpbnQgX2Rlcl9sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipzdHIsCisJCQkgdW5zaWdu ZWQgaW50ICpzdHJfbGVuLCB1bnNpZ25lZCBkZmxhZ3MpOworCitzdGF0aWMgdm9pZAorX2FzbjFf ZXJyb3JfZGVzY3JpcHRpb25fdGFnX2Vycm9yIChhc24xX25vZGUgbm9kZSwgY2hhciAqRXJyb3JE ZXNjcmlwdGlvbikKK3sKKworICBFc3RyY3B5IChFcnJvckRlc2NyaXB0aW9uLCAiOjogdGFnIGVy cm9yIG5lYXIgZWxlbWVudCAnIik7CisgIF9hc24xX2hpZXJhcmNoaWNhbF9uYW1lIChub2RlLCBF cnJvckRlc2NyaXB0aW9uICsgc3RybGVuIChFcnJvckRlc2NyaXB0aW9uKSwKKwkJCSAgIEFTTjFf TUFYX0VSUk9SX0RFU0NSSVBUSU9OX1NJWkUgLSA0MCk7CisgIEVzdHJjYXQgKEVycm9yRGVzY3Jp cHRpb24sICInIik7CisKK30KKworLyoqCisgKiBhc24xX2dldF9sZW5ndGhfZGVyOgorICogQGRl cjogREVSIGRhdGEgdG8gZGVjb2RlLgorICogQGRlcl9sZW46IExlbmd0aCBvZiBERVIgZGF0YSB0 byBkZWNvZGUuCisgKiBAbGVuOiBPdXRwdXQgdmFyaWFibGUgY29udGFpbmluZyB0aGUgbGVuZ3Ro IG9mIHRoZSBERVIgbGVuZ3RoIGZpZWxkLgorICoKKyAqIEV4dHJhY3QgYSBsZW5ndGggZmllbGQg ZnJvbSBERVIgZGF0YS4KKyAqCisgKiBSZXR1cm5zOiBSZXR1cm4gdGhlIGRlY29kZWQgbGVuZ3Ro IHZhbHVlLCBvciAtMSBvbiBpbmRlZmluaXRlCisgKiAgIGxlbmd0aCwgb3IgLTIgd2hlbiB0aGUg dmFsdWUgd2FzIHRvbyBiaWcgdG8gZml0IGluIGEgaW50LCBvciAtNAorICogICB3aGVuIHRoZSBk ZWNvZGVkIGxlbmd0aCB2YWx1ZSBwbHVzIEBsZW4gd291bGQgZXhjZWVkIEBkZXJfbGVuLgorICoq LworbG9uZworYXNuMV9nZXRfbGVuZ3RoX2RlciAoY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBp bnQgZGVyX2xlbiwgaW50ICpsZW4pCit7CisgIHVuc2lnbmVkIGludCBhbnM7CisgIGludCBrLCBw dW50LCBzdW07CisKKyAgKmxlbiA9IDA7CisgIGlmIChkZXJfbGVuIDw9IDApCisgICAgcmV0dXJu IDA7CisKKyAgaWYgKCEoZGVyWzBdICYgMTI4KSkKKyAgICB7CisgICAgICAvKiBzaG9ydCBmb3Jt ICovCisgICAgICAqbGVuID0gMTsKKyAgICAgIGFucyA9IGRlclswXTsKKyAgICB9CisgIGVsc2UK KyAgICB7CisgICAgICAvKiBMb25nIGZvcm0gKi8KKyAgICAgIGsgPSBkZXJbMF0gJiAweDdGOwor ICAgICAgcHVudCA9IDE7CisgICAgICBpZiAoaykKKwl7CQkJLyogZGVmaW5pdGUgbGVuZ3RoIG1l dGhvZCAqLworCSAgYW5zID0gMDsKKwkgIHdoaWxlIChwdW50IDw9IGsgJiYgcHVudCA8IGRlcl9s ZW4pCisJICAgIHsKKwkgICAgICBpZiAoSU5UX01VTFRJUExZX09WRVJGTE9XIChhbnMsIDI1Nikp CisJCXJldHVybiAtMjsKKwkgICAgICBhbnMgKj0gMjU2OworCisJICAgICAgaWYgKElOVF9BRERf T1ZFUkZMT1cgKGFucywgKCh1bnNpZ25lZCkgZGVyW3B1bnRdKSkpCisJCXJldHVybiAtMjsKKwkg ICAgICBhbnMgKz0gZGVyW3B1bnRdOworCSAgICAgIHB1bnQrKzsKKwkgICAgfQorCX0KKyAgICAg IGVsc2UKKwl7CQkJLyogaW5kZWZpbml0ZSBsZW5ndGggbWV0aG9kICovCisJICAqbGVuID0gcHVu dDsKKwkgIHJldHVybiAtMTsKKwl9CisKKyAgICAgICpsZW4gPSBwdW50OworICAgIH0KKworICBz dW0gPSBhbnM7CisgIGlmIChhbnMgPj0gSU5UX01BWCB8fCBJTlRfQUREX09WRVJGTE9XIChzdW0s ICgqbGVuKSkpCisgICAgcmV0dXJuIC0yOworICBzdW0gKz0gKmxlbjsKKworICBpZiAoc3VtID4g ZGVyX2xlbikKKyAgICByZXR1cm4gLTQ7CisKKyAgcmV0dXJuIGFuczsKK30KKworLyoqCisgKiBh c24xX2dldF90YWdfZGVyOgorICogQGRlcjogREVSIGRhdGEgdG8gZGVjb2RlLgorICogQGRlcl9s ZW46IExlbmd0aCBvZiBERVIgZGF0YSB0byBkZWNvZGUuCisgKiBAY2xzOiBPdXRwdXQgdmFyaWFi bGUgY29udGFpbmluZyBkZWNvZGVkIGNsYXNzLgorICogQGxlbjogT3V0cHV0IHZhcmlhYmxlIGNv bnRhaW5pbmcgdGhlIGxlbmd0aCBvZiB0aGUgREVSIFRBRyBkYXRhLgorICogQHRhZzogT3V0cHV0 IHZhcmlhYmxlIGNvbnRhaW5pbmcgdGhlIGRlY29kZWQgdGFnIChtYXkgYmUgJU5VTEwpLgorICoK KyAqIERlY29kZSB0aGUgY2xhc3MgYW5kIFRBRyBmcm9tIERFUiBjb2RlLgorICoKKyAqIFJldHVy bnM6IFJldHVybnMgJUFTTjFfU1VDQ0VTUyBvbiBzdWNjZXNzLCBvciBhbiBlcnJvci4KKyAqKi8K K2ludAorYXNuMV9nZXRfdGFnX2RlciAoY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgZGVy X2xlbiwKKwkJICB1bnNpZ25lZCBjaGFyICpjbHMsIGludCAqbGVuLCB1bnNpZ25lZCBsb25nICp0 YWcpCit7CisgIHVuc2lnbmVkIGludCByaXM7CisgIGludCBwdW50OworCisgIGlmIChkZXIgPT0g TlVMTCB8fCBkZXJfbGVuIDwgMiB8fCBsZW4gPT0gTlVMTCkKKyAgICByZXR1cm4gQVNOMV9ERVJf RVJST1I7CisKKyAgKmNscyA9IGRlclswXSAmIDB4RTA7CisgIGlmICgoZGVyWzBdICYgMHgxRikg IT0gMHgxRikKKyAgICB7CisgICAgICAvKiBzaG9ydCBmb3JtICovCisgICAgICAqbGVuID0gMTsK KyAgICAgIHJpcyA9IGRlclswXSAmIDB4MUY7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAg LyogTG9uZyBmb3JtICovCisgICAgICBwdW50ID0gMTsKKyAgICAgIHJpcyA9IDA7CisgICAgICB3 aGlsZSAocHVudCA8IGRlcl9sZW4gJiYgZGVyW3B1bnRdICYgMTI4KQorCXsKKworCSAgaWYgKElO VF9NVUxUSVBMWV9PVkVSRkxPVyAocmlzLCAxMjgpKQorCSAgICByZXR1cm4gQVNOMV9ERVJfRVJS T1I7CisJICByaXMgKj0gMTI4OworCisJICBpZiAoSU5UX0FERF9PVkVSRkxPVyAocmlzLCAoKHVu c2lnbmVkKSAoZGVyW3B1bnRdICYgMHg3RikpKSkKKwkgICAgcmV0dXJuIEFTTjFfREVSX0VSUk9S OworCSAgcmlzICs9IChkZXJbcHVudF0gJiAweDdGKTsKKwkgIHB1bnQrKzsKKwl9CisKKyAgICAg IGlmIChwdW50ID49IGRlcl9sZW4pCisJcmV0dXJuIEFTTjFfREVSX0VSUk9SOworCisgICAgICBp ZiAoSU5UX01VTFRJUExZX09WRVJGTE9XIChyaXMsIDEyOCkpCisJcmV0dXJuIEFTTjFfREVSX0VS Uk9SOworICAgICAgcmlzICo9IDEyODsKKworICAgICAgaWYgKElOVF9BRERfT1ZFUkZMT1cgKHJp cywgKCh1bnNpZ25lZCkgKGRlcltwdW50XSAmIDB4N0YpKSkpCisJcmV0dXJuIEFTTjFfREVSX0VS Uk9SOworICAgICAgcmlzICs9IChkZXJbcHVudF0gJiAweDdGKTsKKyAgICAgIHB1bnQrKzsKKwor ICAgICAgKmxlbiA9IHB1bnQ7CisgICAgfQorCisgIGlmICh0YWcpCisgICAgKnRhZyA9IHJpczsK KyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworLyoqCisgKiBhc24xX2dldF9sZW5ndGhfYmVy OgorICogQGJlcjogQkVSIGRhdGEgdG8gZGVjb2RlLgorICogQGJlcl9sZW46IExlbmd0aCBvZiBC RVIgZGF0YSB0byBkZWNvZGUuCisgKiBAbGVuOiBPdXRwdXQgdmFyaWFibGUgY29udGFpbmluZyB0 aGUgbGVuZ3RoIG9mIHRoZSBCRVIgbGVuZ3RoIGZpZWxkLgorICoKKyAqIEV4dHJhY3QgYSBsZW5n dGggZmllbGQgZnJvbSBCRVIgZGF0YS4gIFRoZSBkaWZmZXJlbmNlIHRvCisgKiBhc24xX2dldF9s ZW5ndGhfZGVyKCkgaXMgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgbGVuZ3RoCisg KiBldmVuIGlmIHRoZSB2YWx1ZSBoYXMgaW5kZWZpbml0ZSBlbmNvZGluZy4KKyAqCisgKiBSZXR1 cm5zOiBSZXR1cm4gdGhlIGRlY29kZWQgbGVuZ3RoIHZhbHVlLCBvciBuZWdhdGl2ZSB2YWx1ZSB3 aGVuCisgKiAgIHRoZSB2YWx1ZSB3YXMgdG9vIGJpZy4KKyAqCisgKiBTaW5jZTogMi4wCisgKiov Citsb25nCithc24xX2dldF9sZW5ndGhfYmVyIChjb25zdCB1bnNpZ25lZCBjaGFyICpiZXIsIGlu dCBiZXJfbGVuLCBpbnQgKmxlbikKK3sKKyAgaW50IHJldDsKKyAgbG9uZyBlcnI7CisKKyAgcmV0 ID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAoYmVyLCBiZXJfbGVuLCBsZW4pOworCisgIGlmIChyZXQg PT0gLTEgJiYgYmVyX2xlbiA+IDEpCisgICAgewkJCQkvKiBpbmRlZmluaXRlIGxlbmd0aCBtZXRo b2QgKi8KKyAgICAgIGVyciA9IF9hc24xX2dldF9pbmRlZmluaXRlX2xlbmd0aF9zdHJpbmcgKGJl ciArIDEsIGJlcl9sZW4gLSAxLCAmcmV0KTsKKyAgICAgIGlmIChlcnIgIT0gQVNOMV9TVUNDRVNT KQorCXJldHVybiAtMzsKKyAgICB9CisKKyAgcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBhc24x X2dldF9vY3RldF9kZXI6CisgKiBAZGVyOiBERVIgZGF0YSB0byBkZWNvZGUgY29udGFpbmluZyB0 aGUgT0NURVQgU0VRVUVOQ0UuCisgKiBAZGVyX2xlbjogVGhlIGxlbmd0aCBvZiB0aGUgQGRlciBk YXRhIHRvIGRlY29kZS4KKyAqIEByZXRfbGVuOiBPdXRwdXQgdmFyaWFibGUgY29udGFpbmluZyB0 aGUgZW5jb2RlZCBsZW5ndGggb2YgdGhlIERFUiBkYXRhLgorICogQHN0cjogUHJlLWFsbG9jYXRl ZCBvdXRwdXQgYnVmZmVyIHRvIHB1dCBkZWNvZGVkIE9DVEVUIFNFUVVFTkNFIGluLgorICogQHN0 cl9zaXplOiBMZW5ndGggb2YgcHJlLWFsbG9jYXRlZCBvdXRwdXQgYnVmZmVyLgorICogQHN0cl9s ZW46IE91dHB1dCB2YXJpYWJsZSBjb250YWluaW5nIHRoZSBsZW5ndGggb2YgdGhlIGNvbnRlbnRz IG9mIHRoZSBPQ1RFVCBTRVFVRU5DRS4KKyAqCisgKiBFeHRyYWN0IGFuIE9DVEVUIFNFUVVFTkNF IGZyb20gREVSIGRhdGEuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uCisgKiBleHBlY3RzIHRoZSBE RVIgZGF0YSBwYXN0IHRoZSB0YWcgZmllbGQsIGkuZS4sIHRoZSBsZW5ndGggYW5kCisgKiBjb250 ZW50IG9jdGV0cy4KKyAqCisgKiBSZXR1cm5zOiBSZXR1cm5zICVBU04xX1NVQ0NFU1Mgb24gc3Vj Y2Vzcywgb3IgYW4gZXJyb3IuCisgKiovCitpbnQKK2FzbjFfZ2V0X29jdGV0X2RlciAoY29uc3Qg dW5zaWduZWQgY2hhciAqZGVyLCBpbnQgZGVyX2xlbiwKKwkJICAgIGludCAqcmV0X2xlbiwgdW5z aWduZWQgY2hhciAqc3RyLCBpbnQgc3RyX3NpemUsCisJCSAgICBpbnQgKnN0cl9sZW4pCit7Cisg IGludCBsZW5fbGVuID0gMDsKKworICBpZiAoZGVyX2xlbiA8PSAwKQorICAgIHJldHVybiBBU04x X0dFTkVSSUNfRVJST1I7CisKKyAgKnN0cl9sZW4gPSBhc24xX2dldF9sZW5ndGhfZGVyIChkZXIs IGRlcl9sZW4sICZsZW5fbGVuKTsKKworICBpZiAoKnN0cl9sZW4gPCAwKQorICAgIHJldHVybiBB U04xX0RFUl9FUlJPUjsKKworICAqcmV0X2xlbiA9ICpzdHJfbGVuICsgbGVuX2xlbjsKKyAgaWYg KHN0cl9zaXplID49ICpzdHJfbGVuKQorICAgIHsKKyAgICAgIGlmICgqc3RyX2xlbiA+IDAgJiYg c3RyICE9IE5VTEwpCisJbWVtY3B5IChzdHIsIGRlciArIGxlbl9sZW4sICpzdHJfbGVuKTsKKyAg ICB9CisgIGVsc2UKKyAgICB7CisgICAgICByZXR1cm4gQVNOMV9NRU1fRVJST1I7CisgICAgfQor CisgIHJldHVybiBBU04xX1NVQ0NFU1M7Cit9CisKKworLyotCisgKiBfYXNuMV9nZXRfdGltZV9k ZXI6CisgKiBAdHlwZTogJUFTTjFfRVRZUEVfR0VORVJBTElaRURfVElNRSBvciAlQVNOMV9FVFlQ RV9VVENfVElNRQorICogQGRlcjogREVSIGRhdGEgdG8gZGVjb2RlIGNvbnRhaW5pbmcgdGhlIHRp bWUKKyAqIEBkZXJfbGVuOiBMZW5ndGggb2YgREVSIGRhdGEgdG8gZGVjb2RlLgorICogQHJldF9s ZW46IE91dHB1dCB2YXJpYWJsZSBjb250YWluaW5nIHRoZSBsZW5ndGggb2YgdGhlIERFUiBkYXRh LgorICogQHN0cjogUHJlLWFsbG9jYXRlZCBvdXRwdXQgYnVmZmVyIHRvIHB1dCB0aGUgdGV4dHVh bCB0aW1lIGluLgorICogQHN0cl9zaXplOiBMZW5ndGggb2YgcHJlLWFsbG9jYXRlZCBvdXRwdXQg YnVmZmVyLgorICogQGZsYWdzOiBaZXJvIG9yICVBU04xX0RFQ09ERV9GTEFHX1NUUklDVF9ERVIK KyAqCisgKiBQZXJmb3JtcyBiYXNpYyBjaGVja3MgaW4gdGhlIERFUiBlbmNvZGVkIHRpbWUgb2Jq ZWN0IGFuZCByZXR1cm5zIGl0cyB0ZXh0dWFsIGZvcm0uCisgKiBUaGUgdGV4dHVhbCBmb3JtIHdp bGwgYmUgaW4gdGhlIFlZWVlNTUREMDAwMDAwWiBmb3JtYXQgZm9yIEdlbmVyYWxpemVkVGltZQor ICogYW5kIFlZTU1ERDAwMDAwMFogZm9yIFVUQ1RpbWUuCisgKgorICogUmV0dXJuczogJUFTTjFf U1VDQ0VTUyBvbiBzdWNjZXNzLCBvciBhbiBlcnJvci4KKyAtKi8KK3N0YXRpYyBpbnQKK19hc24x X2dldF90aW1lX2RlciAodW5zaWduZWQgdHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBp bnQgZGVyX2xlbiwKKwkJICAgIGludCAqcmV0X2xlbiwgY2hhciAqc3RyLCBpbnQgc3RyX3NpemUs IHVuc2lnbmVkIGZsYWdzKQoreworICBpbnQgbGVuX2xlbiwgc3RyX2xlbjsKKyAgdW5zaWduZWQg aTsKKyAgdW5zaWduZWQgc2lnbl9jb3VudCA9IDA7CisgIHVuc2lnbmVkIGRvdF9jb3VudCA9IDA7 CisgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CisKKyAgaWYgKGRlcl9sZW4gPD0gMCB8fCBzdHIg PT0gTlVMTCkKKyAgICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisKKyAgc3RyX2xlbiA9IGFzbjFf Z2V0X2xlbmd0aF9kZXIgKGRlciwgZGVyX2xlbiwgJmxlbl9sZW4pOworICBpZiAoc3RyX2xlbiA8 PSAwIHx8IHN0cl9zaXplIDwgc3RyX2xlbikKKyAgICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisK KyAgLyogcGVyZm9ybSBzb21lIHNhbml0eSBjaGVja3Mgb24gdGhlIGRhdGEgKi8KKyAgaWYgKHN0 cl9sZW4gPCA4KQorICAgIHsKKyAgICAgIHdhcm4gKCk7CisgICAgICByZXR1cm4gQVNOMV9USU1F X0VOQ09ESU5HX0VSUk9SOworICAgIH0KKworICBpZiAoKGZsYWdzICYgQVNOMV9ERUNPREVfRkxB R19TVFJJQ1RfREVSKQorICAgICAgJiYgIShmbGFncyAmIEFTTjFfREVDT0RFX0ZMQUdfQUxMT1df SU5DT1JSRUNUX1RJTUUpKQorICAgIHsKKyAgICAgIHAgPSAmZGVyW2xlbl9sZW5dOworICAgICAg Zm9yIChpID0gMDsgaSA8ICh1bnNpZ25lZCkgKHN0cl9sZW4gLSAxKTsgaSsrKQorCXsKKwkgIGlm IChjX2lzZGlnaXQgKHBbaV0pID09IDApCisJICAgIHsKKwkgICAgICBpZiAodHlwZSA9PSBBU04x X0VUWVBFX0dFTkVSQUxJWkVEX1RJTUUpCisJCXsKKwkJICAvKiB0b2xlcmF0ZSBsYXggZW5jb2Rp bmdzICovCisJCSAgaWYgKHBbaV0gPT0gJy4nICYmIGRvdF9jb3VudCA9PSAwKQorCQkgICAgewor CQkgICAgICBkb3RfY291bnQrKzsKKwkJICAgICAgY29udGludWU7CisJCSAgICB9CisKKwkJICAv KiBUaGlzIGlzIG5vdCByZWFsbHkgdmFsaWQgREVSLCBidXQgdGhlcmUgYXJlCisJCSAgICogc3Ry dWN0dXJlcyB1c2luZyB0aGF0ICovCisJCSAgaWYgKCEoZmxhZ3MgJiBBU04xX0RFQ09ERV9GTEFH X1NUUklDVF9ERVIpICYmCisJCSAgICAgIChwW2ldID09ICcrJyB8fCBwW2ldID09ICctJykgJiYg c2lnbl9jb3VudCA9PSAwKQorCQkgICAgeworCQkgICAgICBzaWduX2NvdW50Kys7CisJCSAgICAg IGNvbnRpbnVlOworCQkgICAgfQorCQl9CisKKwkgICAgICB3YXJuICgpOworCSAgICAgIHJldHVy biBBU04xX1RJTUVfRU5DT0RJTkdfRVJST1I7CisJICAgIH0KKwl9CisKKyAgICAgIGlmIChzaWdu X2NvdW50ID09IDAgJiYgcFtzdHJfbGVuIC0gMV0gIT0gJ1onKQorCXsKKwkgIHdhcm4gKCk7CisJ ICByZXR1cm4gQVNOMV9USU1FX0VOQ09ESU5HX0VSUk9SOworCX0KKyAgICB9CisgIG1lbWNweSAo c3RyLCBkZXIgKyBsZW5fbGVuLCBzdHJfbGVuKTsKKyAgc3RyW3N0cl9sZW5dID0gMDsKKyAgKnJl dF9sZW4gPSBzdHJfbGVuICsgbGVuX2xlbjsKKworICByZXR1cm4gQVNOMV9TVUNDRVNTOworfQor CisvKioKKyAqIGFzbjFfZ2V0X29iamVjdF9pZF9kZXI6CisgKiBAZGVyOiBERVIgZGF0YSB0byBk ZWNvZGUgY29udGFpbmluZyB0aGUgT0JKRUNUIElERU5USUZJRVIKKyAqIEBkZXJfbGVuOiBMZW5n dGggb2YgREVSIGRhdGEgdG8gZGVjb2RlLgorICogQHJldF9sZW46IE91dHB1dCB2YXJpYWJsZSBj b250YWluaW5nIHRoZSBsZW5ndGggb2YgdGhlIERFUiBkYXRhLgorICogQHN0cjogUHJlLWFsbG9j YXRlZCBvdXRwdXQgYnVmZmVyIHRvIHB1dCB0aGUgdGV4dHVhbCBvYmplY3QgaWQgaW4uCisgKiBA c3RyX3NpemU6IExlbmd0aCBvZiBwcmUtYWxsb2NhdGVkIG91dHB1dCBidWZmZXIuCisgKgorICog Q29udmVydHMgYSBERVIgZW5jb2RlZCBvYmplY3QgaWRlbnRpZmllciB0byBpdHMgdGV4dHVhbCBm b3JtLiBUaGlzCisgKiBmdW5jdGlvbiBleHBlY3RzIHRoZSBERVIgb2JqZWN0IGlkZW50aWZpZXIg d2l0aG91dCB0aGUgdGFnLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NVQ0NFU1Mgb24gc3VjY2Vz cywgb3IgYW4gZXJyb3IuCisgKiovCitpbnQKK2FzbjFfZ2V0X29iamVjdF9pZF9kZXIgKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmRlciwgaW50IGRlcl9sZW4sIGludCAqcmV0X2xlbiwKKwkJCWNoYXIg KnN0ciwgaW50IHN0cl9zaXplKQoreworICBpbnQgbGVuX2xlbiwgbGVuLCBrOworICBpbnQgbGVh ZGluZywgcGFyc2VkOworICBjaGFyIHRlbXBbTFRPU1RSX01BWF9TSVpFXTsKKyAgdWludDY0X3Qg dmFsLCB2YWwxLCB2YWwwOworCisgICpyZXRfbGVuID0gMDsKKyAgaWYgKHN0ciAmJiBzdHJfc2l6 ZSA+IDApCisgICAgc3RyWzBdID0gMDsJCQkvKiBubyBvaWQgKi8KKworICBpZiAoc3RyID09IE5V TEwgfHwgZGVyX2xlbiA8PSAwKQorICAgIHJldHVybiBBU04xX0dFTkVSSUNfRVJST1I7CisKKyAg bGVuID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAoZGVyLCBkZXJfbGVuLCAmbGVuX2xlbik7CisKKyAg aWYgKGxlbiA8PSAwIHx8IGxlbiArIGxlbl9sZW4gPiBkZXJfbGVuKQorICAgIHJldHVybiBBU04x X0RFUl9FUlJPUjsKKworICAvKiBsZWFkaW5nIG9jdGV0IGNhbiBuZXZlciBiZSAweDgwICovCisg IGlmIChkZXJbbGVuX2xlbl0gPT0gMHg4MCkKKyAgICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisK KyAgdmFsMCA9IDA7CisKKyAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrKQorICAgIHsKKyAgICAg IGlmIChJTlRfTEVGVF9TSElGVF9PVkVSRkxPVyAodmFsMCwgNykpCisJcmV0dXJuIEFTTjFfREVS X0VSUk9SOworCisgICAgICB2YWwwIDw8PSA3OworICAgICAgdmFsMCB8PSBkZXJbbGVuX2xlbiAr IGtdICYgMHg3RjsKKyAgICAgIGlmICghKGRlcltsZW5fbGVuICsga10gJiAweDgwKSkKKwlicmVh azsKKyAgICB9CisgIHBhcnNlZCA9ICsrazsKKworICAvKiB2YWwwID0gKFgqNDApICsgWSwgWD17 MCwxLDJ9LCBZPD0zOSB3aGVuIFg9ezAsMX0gKi8KKyAgLyogWCA9IHZhbCwgWSA9IHZhbDEgKi8K KworICAvKiBjaGVjayBpZiBYID09IDAgICovCisgIHZhbCA9IDA7CisgIHZhbDEgPSB2YWwwOwor ICBpZiAodmFsMSA+IDM5KQorICAgIHsKKyAgICAgIHZhbCA9IDE7CisgICAgICB2YWwxID0gdmFs MCAtIDQwOworICAgICAgaWYgKHZhbDEgPiAzOSkKKwl7CisJICB2YWwgPSAyOworCSAgdmFsMSA9 IHZhbDAgLSA4MDsKKwl9CisgICAgfQorCisgIF9hc24xX3N0cl9jcHkgKHN0ciwgc3RyX3NpemUs IF9hc24xX2x0b3N0ciAodmFsLCB0ZW1wKSk7CisgIF9hc24xX3N0cl9jYXQgKHN0ciwgc3RyX3Np emUsICIuIik7CisgIF9hc24xX3N0cl9jYXQgKHN0ciwgc3RyX3NpemUsIF9hc24xX2x0b3N0ciAo dmFsMSwgdGVtcCkpOworCisgIHZhbCA9IDA7CisgIGxlYWRpbmcgPSAxOworICBmb3IgKGsgPSBw YXJzZWQ7IGsgPCBsZW47IGsrKykKKyAgICB7CisgICAgICAvKiBYLjY5MCBtYW5kYXRlcyB0aGF0 IHRoZSBsZWFkaW5nIGJ5dGUgbXVzdCBuZXZlciBiZSAweDgwCisgICAgICAgKi8KKyAgICAgIGlm IChsZWFkaW5nICE9IDAgJiYgZGVyW2xlbl9sZW4gKyBrXSA9PSAweDgwKQorCXJldHVybiBBU04x X0RFUl9FUlJPUjsKKyAgICAgIGxlYWRpbmcgPSAwOworCisgICAgICAvKiBjaGVjayBmb3Igd3Jh cCBhcm91bmQgKi8KKyAgICAgIGlmIChJTlRfTEVGVF9TSElGVF9PVkVSRkxPVyAodmFsLCA3KSkK KwlyZXR1cm4gQVNOMV9ERVJfRVJST1I7CisKKyAgICAgIHZhbCA9IHZhbCA8PCA3OworICAgICAg dmFsIHw9IGRlcltsZW5fbGVuICsga10gJiAweDdGOworCisgICAgICBpZiAoIShkZXJbbGVuX2xl biArIGtdICYgMHg4MCkpCisJeworCSAgX2FzbjFfc3RyX2NhdCAoc3RyLCBzdHJfc2l6ZSwgIi4i KTsKKwkgIF9hc24xX3N0cl9jYXQgKHN0ciwgc3RyX3NpemUsIF9hc24xX2x0b3N0ciAodmFsLCB0 ZW1wKSk7CisJICB2YWwgPSAwOworCSAgbGVhZGluZyA9IDE7CisJfQorICAgIH0KKworICBpZiAo SU5UX0FERF9PVkVSRkxPVyAobGVuLCBsZW5fbGVuKSkKKyAgICByZXR1cm4gQVNOMV9ERVJfRVJS T1I7CisKKyAgKnJldF9sZW4gPSBsZW4gKyBsZW5fbGVuOworCisgIHJldHVybiBBU04xX1NVQ0NF U1M7Cit9CisKKy8qKgorICogYXNuMV9nZXRfYml0X2RlcjoKKyAqIEBkZXI6IERFUiBkYXRhIHRv IGRlY29kZSBjb250YWluaW5nIHRoZSBCSVQgU0VRVUVOQ0UuCisgKiBAZGVyX2xlbjogTGVuZ3Ro IG9mIERFUiBkYXRhIHRvIGRlY29kZS4KKyAqIEByZXRfbGVuOiBPdXRwdXQgdmFyaWFibGUgY29u dGFpbmluZyB0aGUgbGVuZ3RoIG9mIHRoZSBERVIgZGF0YS4KKyAqIEBzdHI6IFByZS1hbGxvY2F0 ZWQgb3V0cHV0IGJ1ZmZlciB0byBwdXQgZGVjb2RlZCBCSVQgU0VRVUVOQ0UgaW4uCisgKiBAc3Ry X3NpemU6IExlbmd0aCBvZiBwcmUtYWxsb2NhdGVkIG91dHB1dCBidWZmZXIuCisgKiBAYml0X2xl bjogT3V0cHV0IHZhcmlhYmxlIGNvbnRhaW5pbmcgdGhlIHNpemUgb2YgdGhlIEJJVCBTRVFVRU5D RS4KKyAqCisgKiBFeHRyYWN0IGEgQklUIFNFUVVFTkNFIGZyb20gREVSIGRhdGEuCisgKgorICog UmV0dXJuczogJUFTTjFfU1VDQ0VTUyBvbiBzdWNjZXNzLCBvciBhbiBlcnJvci4KKyAqKi8KK2lu dAorYXNuMV9nZXRfYml0X2RlciAoY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgZGVyX2xl biwKKwkJICBpbnQgKnJldF9sZW4sIHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50IHN0cl9zaXplLAor CQkgIGludCAqYml0X2xlbikKK3sKKyAgaW50IGxlbl9sZW4gPSAwLCBsZW5fYnl0ZTsKKworICBp ZiAoZGVyX2xlbiA8PSAwKQorICAgIHJldHVybiBBU04xX0dFTkVSSUNfRVJST1I7CisKKyAgbGVu X2J5dGUgPSBhc24xX2dldF9sZW5ndGhfZGVyIChkZXIsIGRlcl9sZW4sICZsZW5fbGVuKSAtIDE7 CisgIGlmIChsZW5fYnl0ZSA8IDApCisgICAgcmV0dXJuIEFTTjFfREVSX0VSUk9SOworCisgICpy ZXRfbGVuID0gbGVuX2J5dGUgKyBsZW5fbGVuICsgMTsKKyAgKmJpdF9sZW4gPSBsZW5fYnl0ZSAq IDggLSBkZXJbbGVuX2xlbl07CisKKyAgaWYgKCpiaXRfbGVuIDwgMCkKKyAgICByZXR1cm4gQVNO MV9ERVJfRVJST1I7CisKKyAgaWYgKHN0cl9zaXplID49IGxlbl9ieXRlKQorICAgIHsKKyAgICAg IGlmIChsZW5fYnl0ZSA+IDAgJiYgc3RyKQorCW1lbWNweSAoc3RyLCBkZXIgKyBsZW5fbGVuICsg MSwgbGVuX2J5dGUpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHJldHVybiBBU04xX01F TV9FUlJPUjsKKyAgICB9CisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworLyogdGFnX2xl bjogdGhlIHRvdGFsIHRhZyBsZW5ndGggKGV4cGxpY2l0K2lubmVyKQorICogaW5uZXJfdGFnX2xl bjogdGhlIGlubmVyX3RhZyBsZW5ndGgKKyAqLworc3RhdGljIGludAorX2FzbjFfZXh0cmFjdF90 YWdfZGVyIChhc24xX25vZGUgbm9kZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgZGVy X2xlbiwKKwkJICAgICAgIGludCAqdGFnX2xlbiwgaW50ICppbm5lcl90YWdfbGVuLCB1bnNpZ25l ZCBmbGFncykKK3sKKyAgYXNuMV9ub2RlIHA7CisgIGludCBjb3VudGVyLCBsZW4yLCBsZW4zLCBp c190YWdfaW1wbGljaXQ7CisgIGludCByZXN1bHQ7CisgIHVuc2lnbmVkIGxvbmcgdGFnLCB0YWdf aW1wbGljaXQgPSAwOworICB1bnNpZ25lZCBjaGFyIGNsYXNzLCBjbGFzczIsIGNsYXNzX2ltcGxp Y2l0ID0gMDsKKworICBpZiAoZGVyX2xlbiA8PSAwKQorICAgIHJldHVybiBBU04xX0dFTkVSSUNf RVJST1I7CisKKyAgY291bnRlciA9IGlzX3RhZ19pbXBsaWNpdCA9IDA7CisKKyAgaWYgKG5vZGUt PnR5cGUgJiBDT05TVF9UQUcpCisgICAgeworICAgICAgcCA9IG5vZGUtPmRvd247CisgICAgICB3 aGlsZSAocCkKKwl7CisJICBpZiAodHlwZV9maWVsZCAocC0+dHlwZSkgPT0gQVNOMV9FVFlQRV9U QUcpCisJICAgIHsKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX0FQUExJQ0FUSU9OKQorCQlj bGFzczIgPSBBU04xX0NMQVNTX0FQUExJQ0FUSU9OOworCSAgICAgIGVsc2UgaWYgKHAtPnR5cGUg JiBDT05TVF9VTklWRVJTQUwpCisJCWNsYXNzMiA9IEFTTjFfQ0xBU1NfVU5JVkVSU0FMOworCSAg ICAgIGVsc2UgaWYgKHAtPnR5cGUgJiBDT05TVF9QUklWQVRFKQorCQljbGFzczIgPSBBU04xX0NM QVNTX1BSSVZBVEU7CisJICAgICAgZWxzZQorCQljbGFzczIgPSBBU04xX0NMQVNTX0NPTlRFWFRf U1BFQ0lGSUM7CisKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX0VYUExJQ0lUKQorCQl7CisJ CSAgaWYgKGFzbjFfZ2V0X3RhZ19kZXIKKwkJICAgICAgKGRlciArIGNvdW50ZXIsIGRlcl9sZW4s ICZjbGFzcywgJmxlbjIsCisJCSAgICAgICAmdGFnKSAhPSBBU04xX1NVQ0NFU1MpCisJCSAgICBy ZXR1cm4gQVNOMV9ERVJfRVJST1I7CisKKwkJICBERUNSX0xFTiAoZGVyX2xlbiwgbGVuMik7CisJ CSAgY291bnRlciArPSBsZW4yOworCisJCSAgaWYgKGZsYWdzICYgQVNOMV9ERUNPREVfRkxBR19T VFJJQ1RfREVSKQorCQkgICAgbGVuMyA9CisJCSAgICAgIGFzbjFfZ2V0X2xlbmd0aF9kZXIgKGRl ciArIGNvdW50ZXIsIGRlcl9sZW4sICZsZW4yKTsKKwkJICBlbHNlCisJCSAgICBsZW4zID0KKwkJ ICAgICAgYXNuMV9nZXRfbGVuZ3RoX2JlciAoZGVyICsgY291bnRlciwgZGVyX2xlbiwgJmxlbjIp OworCQkgIGlmIChsZW4zIDwgMCkKKwkJICAgIHJldHVybiBBU04xX0RFUl9FUlJPUjsKKworCQkg IERFQ1JfTEVOIChkZXJfbGVuLCBsZW4yKTsKKwkJICBjb3VudGVyICs9IGxlbjI7CisKKwkJICBp ZiAoIWlzX3RhZ19pbXBsaWNpdCkKKwkJICAgIHsKKwkJICAgICAgaWYgKChjbGFzcyAhPSAoY2xh c3MyIHwgQVNOMV9DTEFTU19TVFJVQ1RVUkVEKSkgfHwKKwkJCSAgKHRhZyAhPSBzdHJ0b3VsICgo Y2hhciAqKSBwLT52YWx1ZSwgTlVMTCwgMTApKSkKKwkJCXJldHVybiBBU04xX1RBR19FUlJPUjsK KwkJICAgIH0KKwkJICBlbHNlCisJCSAgICB7CQkvKiBBU04xX1RBR19JTVBMSUNJVCAqLworCQkg ICAgICBpZiAoKGNsYXNzICE9IGNsYXNzX2ltcGxpY2l0KSB8fCAodGFnICE9IHRhZ19pbXBsaWNp dCkpCisJCQlyZXR1cm4gQVNOMV9UQUdfRVJST1I7CisJCSAgICB9CisJCSAgaXNfdGFnX2ltcGxp Y2l0ID0gMDsKKwkJfQorCSAgICAgIGVsc2UKKwkJewkJLyogQVNOMV9UQUdfSU1QTElDSVQgKi8K KwkJICBpZiAoIWlzX3RhZ19pbXBsaWNpdCkKKwkJICAgIHsKKwkJICAgICAgaWYgKCh0eXBlX2Zp ZWxkIChub2RlLT50eXBlKSA9PSBBU04xX0VUWVBFX1NFUVVFTkNFKSB8fAorCQkJICAodHlwZV9m aWVsZCAobm9kZS0+dHlwZSkgPT0gQVNOMV9FVFlQRV9TRVFVRU5DRV9PRikKKwkJCSAgfHwgKHR5 cGVfZmllbGQgKG5vZGUtPnR5cGUpID09IEFTTjFfRVRZUEVfU0VUKQorCQkJICB8fCAodHlwZV9m aWVsZCAobm9kZS0+dHlwZSkgPT0gQVNOMV9FVFlQRV9TRVRfT0YpKQorCQkJY2xhc3MyIHw9IEFT TjFfQ0xBU1NfU1RSVUNUVVJFRDsKKwkJICAgICAgY2xhc3NfaW1wbGljaXQgPSBjbGFzczI7CisJ CSAgICAgIHRhZ19pbXBsaWNpdCA9IHN0cnRvdWwgKChjaGFyICopIHAtPnZhbHVlLCBOVUxMLCAx MCk7CisJCSAgICAgIGlzX3RhZ19pbXBsaWNpdCA9IDE7CisJCSAgICB9CisJCX0KKwkgICAgfQor CSAgcCA9IHAtPnJpZ2h0OworCX0KKyAgICB9CisKKyAgaWYgKGlzX3RhZ19pbXBsaWNpdCkKKyAg ICB7CisgICAgICBpZiAoYXNuMV9nZXRfdGFnX2RlcgorCSAgKGRlciArIGNvdW50ZXIsIGRlcl9s ZW4sICZjbGFzcywgJmxlbjIsICZ0YWcpICE9IEFTTjFfU1VDQ0VTUykKKwlyZXR1cm4gQVNOMV9E RVJfRVJST1I7CisKKyAgICAgIERFQ1JfTEVOIChkZXJfbGVuLCBsZW4yKTsKKworICAgICAgaWYg KChjbGFzcyAhPSBjbGFzc19pbXBsaWNpdCkgfHwgKHRhZyAhPSB0YWdfaW1wbGljaXQpKQorCXsK KwkgIGlmICh0eXBlX2ZpZWxkIChub2RlLT50eXBlKSA9PSBBU04xX0VUWVBFX09DVEVUX1NUUklO RykKKwkgICAgeworCSAgICAgIGNsYXNzX2ltcGxpY2l0IHw9IEFTTjFfQ0xBU1NfU1RSVUNUVVJF RDsKKwkgICAgICBpZiAoKGNsYXNzICE9IGNsYXNzX2ltcGxpY2l0KSB8fCAodGFnICE9IHRhZ19p bXBsaWNpdCkpCisJCXJldHVybiBBU04xX1RBR19FUlJPUjsKKwkgICAgfQorCSAgZWxzZQorCSAg ICByZXR1cm4gQVNOMV9UQUdfRVJST1I7CisJfQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAg IHVuc2lnbmVkIHR5cGUgPSB0eXBlX2ZpZWxkIChub2RlLT50eXBlKTsKKyAgICAgIGlmICh0eXBl ID09IEFTTjFfRVRZUEVfVEFHKQorCXsKKwkgICp0YWdfbGVuID0gMDsKKwkgIGlmIChpbm5lcl90 YWdfbGVuKQorCSAgICAqaW5uZXJfdGFnX2xlbiA9IDA7CisJICByZXR1cm4gQVNOMV9TVUNDRVNT OworCX0KKworICAgICAgaWYgKGFzbjFfZ2V0X3RhZ19kZXIKKwkgIChkZXIgKyBjb3VudGVyLCBk ZXJfbGVuLCAmY2xhc3MsICZsZW4yLCAmdGFnKSAhPSBBU04xX1NVQ0NFU1MpCisJcmV0dXJuIEFT TjFfREVSX0VSUk9SOworCisgICAgICBERUNSX0xFTiAoZGVyX2xlbiwgbGVuMik7CisKKyAgICAg IHN3aXRjaCAodHlwZSkKKwl7CisJY2FzZSBBU04xX0VUWVBFX05VTEw6CisJY2FzZSBBU04xX0VU WVBFX0JPT0xFQU46CisJY2FzZSBBU04xX0VUWVBFX0lOVEVHRVI6CisJY2FzZSBBU04xX0VUWVBF X0VOVU1FUkFURUQ6CisJY2FzZSBBU04xX0VUWVBFX09CSkVDVF9JRDoKKwljYXNlIEFTTjFfRVRZ UEVfR0VORVJBTFNUUklORzoKKwljYXNlIEFTTjFfRVRZUEVfTlVNRVJJQ19TVFJJTkc6CisJY2Fz ZSBBU04xX0VUWVBFX0lBNV9TVFJJTkc6CisJY2FzZSBBU04xX0VUWVBFX1RFTEVURVhfU1RSSU5H OgorCWNhc2UgQVNOMV9FVFlQRV9QUklOVEFCTEVfU1RSSU5HOgorCWNhc2UgQVNOMV9FVFlQRV9V TklWRVJTQUxfU1RSSU5HOgorCWNhc2UgQVNOMV9FVFlQRV9CTVBfU1RSSU5HOgorCWNhc2UgQVNO MV9FVFlQRV9VVEY4X1NUUklORzoKKwljYXNlIEFTTjFfRVRZUEVfVklTSUJMRV9TVFJJTkc6CisJ Y2FzZSBBU04xX0VUWVBFX0JJVF9TVFJJTkc6CisJY2FzZSBBU04xX0VUWVBFX1NFUVVFTkNFOgor CWNhc2UgQVNOMV9FVFlQRV9TRVFVRU5DRV9PRjoKKwljYXNlIEFTTjFfRVRZUEVfU0VUOgorCWNh c2UgQVNOMV9FVFlQRV9TRVRfT0Y6CisJY2FzZSBBU04xX0VUWVBFX0dFTkVSQUxJWkVEX1RJTUU6 CisJY2FzZSBBU04xX0VUWVBFX1VUQ19USU1FOgorCSAgaWYgKChjbGFzcyAhPSBfYXNuMV90YWdz W3R5cGVdLmNsYXNzKQorCSAgICAgIHx8ICh0YWcgIT0gX2FzbjFfdGFnc1t0eXBlXS50YWcpKQor CSAgICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisJICBicmVhazsKKworCWNhc2UgQVNOMV9FVFlQ RV9PQ1RFVF9TVFJJTkc6CisJICAvKiBPQ1RFVCBTVFJJTkcgaXMgaGFuZGxlZCBkaWZmZXJlbnRs eSB0byBhbGxvdworCSAgICogQkVSIGVuY29kaW5ncyAoc3RydWN0dXJlZCBjbGFzcykuICovCisJ ICBpZiAoKChjbGFzcyAhPSBBU04xX0NMQVNTX1VOSVZFUlNBTCkKKwkgICAgICAgJiYgKGNsYXNz ICE9IChBU04xX0NMQVNTX1VOSVZFUlNBTCB8IEFTTjFfQ0xBU1NfU1RSVUNUVVJFRCkpKQorCSAg ICAgIHx8ICh0YWcgIT0gQVNOMV9UQUdfT0NURVRfU1RSSU5HKSkKKwkgICAgcmV0dXJuIEFTTjFf REVSX0VSUk9SOworCSAgYnJlYWs7CisJY2FzZSBBU04xX0VUWVBFX0FOWToKKwkgIGNvdW50ZXIg LT0gbGVuMjsKKwkgIGJyZWFrOworCWNhc2UgQVNOMV9FVFlQRV9DSE9JQ0U6CisJICBjb3VudGVy IC09IGxlbjI7CisJICBicmVhazsKKwlkZWZhdWx0OgorCSAgcmV0dXJuIEFTTjFfREVSX0VSUk9S OworCSAgYnJlYWs7CisJfQorICAgIH0KKworICBjb3VudGVyICs9IGxlbjI7CisgICp0YWdfbGVu ID0gY291bnRlcjsKKyAgaWYgKGlubmVyX3RhZ19sZW4pCisgICAgKmlubmVyX3RhZ19sZW4gPSBs ZW4yOworICByZXR1cm4gQVNOMV9TVUNDRVNTOworCitjbGVhbnVwOgorICByZXR1cm4gcmVzdWx0 OworfQorCitzdGF0aWMgaW50CitleHRyYWN0X3RhZ19kZXJfcmVjdXJzaXZlIChhc24xX25vZGUg bm9kZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLAorCQkJICAgaW50IGRlcl9sZW4sIGludCAq cmV0X2xlbiwgaW50ICppbm5lcl9sZW4sCisJCQkgICB1bnNpZ25lZCBmbGFncykKK3sKKyAgYXNu MV9ub2RlIHA7CisgIGludCByaXMgPSBBU04xX0RFUl9FUlJPUjsKKworICBpZiAodHlwZV9maWVs ZCAobm9kZS0+dHlwZSkgPT0gQVNOMV9FVFlQRV9DSE9JQ0UpCisgICAgeworICAgICAgcCA9IG5v ZGUtPmRvd247CisgICAgICB3aGlsZSAocCkKKwl7CisJICByaXMgPQorCSAgICBfYXNuMV9leHRy YWN0X3RhZ19kZXIgKHAsIGRlciwgZGVyX2xlbiwgcmV0X2xlbiwgaW5uZXJfbGVuLAorCQkJCSAg IGZsYWdzKTsKKwkgIGlmIChyaXMgPT0gQVNOMV9TVUNDRVNTKQorCSAgICBicmVhazsKKwkgIHAg PSBwLT5yaWdodDsKKwl9CisKKyAgICAgICpyZXRfbGVuID0gMDsKKyAgICAgIHJldHVybiByaXM7 CisgICAgfQorICBlbHNlCisgICAgcmV0dXJuIF9hc24xX2V4dHJhY3RfdGFnX2RlciAobm9kZSwg ZGVyLCBkZXJfbGVuLCByZXRfbGVuLCBpbm5lcl9sZW4sCisJCQkJICBmbGFncyk7Cit9CisKK3N0 YXRpYyBpbnQKK19hc24xX2RlbGV0ZV9ub3RfdXNlZCAoYXNuMV9ub2RlIG5vZGUpCit7CisgIGFz bjFfbm9kZSBwLCBwMjsKKworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX0VM RU1FTlRfTk9UX0ZPVU5EOworCisgIHAgPSBub2RlOworICB3aGlsZSAocCkKKyAgICB7CisgICAg ICBpZiAocC0+dHlwZSAmIENPTlNUX05PVF9VU0VEKQorCXsKKwkgIHAyID0gTlVMTDsKKwkgIGlm IChwICE9IG5vZGUpCisJICAgIHsKKwkgICAgICBwMiA9IF9hc24xX2ZpbmRfbGVmdCAocCk7CisJ ICAgICAgaWYgKCFwMikKKwkJcDIgPSBfYXNuMV9maW5kX3VwIChwKTsKKwkgICAgfQorCSAgYXNu MV9kZWxldGVfc3RydWN0dXJlICgmcCk7CisJICBwID0gcDI7CisJfQorCisgICAgICBpZiAoIXAp CisJYnJlYWs7CQkJLyogcmVhY2ggbm9kZSAqLworCisgICAgICBpZiAocC0+ZG93bikKKwl7CisJ ICBwID0gcC0+ZG93bjsKKwl9CisgICAgICBlbHNlCisJeworCSAgaWYgKHAgPT0gbm9kZSkKKwkg ICAgcCA9IE5VTEw7CisJICBlbHNlIGlmIChwLT5yaWdodCkKKwkgICAgcCA9IHAtPnJpZ2h0Owor CSAgZWxzZQorCSAgICB7CisJICAgICAgd2hpbGUgKDEpCisJCXsKKwkJICBwID0gX2FzbjFfZmlu ZF91cCAocCk7CisJCSAgaWYgKHAgPT0gbm9kZSkKKwkJICAgIHsKKwkJICAgICAgcCA9IE5VTEw7 CisJCSAgICAgIGJyZWFrOworCQkgICAgfQorCQkgIGlmIChwLT5yaWdodCkKKwkJICAgIHsKKwkJ ICAgICAgcCA9IHAtPnJpZ2h0OworCQkgICAgICBicmVhazsKKwkJICAgIH0KKwkJfQorCSAgICB9 CisJfQorICAgIH0KKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworc3RhdGljIGludAorX2Fz bjFfZ2V0X2luZGVmaW5pdGVfbGVuZ3RoX3N0cmluZyAoY29uc3QgdW5zaWduZWQgY2hhciAqZGVy LAorCQkJCSAgICBpbnQgZGVyX2xlbiwgaW50ICpsZW4pCit7CisgIGludCBsZW4yLCBsZW4zLCBj b3VudGVyLCBpbmRlZmluaXRlOworICBpbnQgcmVzdWx0OworICB1bnNpZ25lZCBsb25nIHRhZzsK KyAgdW5zaWduZWQgY2hhciBjbGFzczsKKworICBjb3VudGVyID0gaW5kZWZpbml0ZSA9IDA7CisK KyAgd2hpbGUgKDEpCisgICAgeworICAgICAgaWYgKEhBVkVfVFdPIChkZXJfbGVuKSAmJiAoZGVy W2NvdW50ZXJdID09IDApCisJICAmJiAoZGVyW2NvdW50ZXIgKyAxXSA9PSAwKSkKKwl7CisJICBj b3VudGVyICs9IDI7CisJICBERUNSX0xFTiAoZGVyX2xlbiwgMik7CisKKwkgIGluZGVmaW5pdGUt LTsKKwkgIGlmIChpbmRlZmluaXRlIDw9IDApCisJICAgIGJyZWFrOworCSAgZWxzZQorCSAgICBj b250aW51ZTsKKwl9CisKKyAgICAgIGlmIChhc24xX2dldF90YWdfZGVyCisJICAoZGVyICsgY291 bnRlciwgZGVyX2xlbiwgJmNsYXNzLCAmbGVuMiwgJnRhZykgIT0gQVNOMV9TVUNDRVNTKQorCXJl dHVybiBBU04xX0RFUl9FUlJPUjsKKworICAgICAgREVDUl9MRU4gKGRlcl9sZW4sIGxlbjIpOwor ICAgICAgY291bnRlciArPSBsZW4yOworCisgICAgICBsZW4yID0gYXNuMV9nZXRfbGVuZ3RoX2Rl ciAoZGVyICsgY291bnRlciwgZGVyX2xlbiwgJmxlbjMpOworICAgICAgaWYgKGxlbjIgPCAtMSkK KwlyZXR1cm4gQVNOMV9ERVJfRVJST1I7CisKKyAgICAgIGlmIChsZW4yID09IC0xKQorCXsKKwkg IGluZGVmaW5pdGUrKzsKKwkgIGNvdW50ZXIgKz0gMTsKKwkgIERFQ1JfTEVOIChkZXJfbGVuLCAx KTsKKwl9CisgICAgICBlbHNlCisJeworCSAgY291bnRlciArPSBsZW4yICsgbGVuMzsKKwkgIERF Q1JfTEVOIChkZXJfbGVuLCBsZW4yICsgbGVuMyk7CisJfQorICAgIH0KKworICAqbGVuID0gY291 bnRlcjsKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKKworY2xlYW51cDoKKyAgcmV0dXJuIHJlc3Vs dDsKK30KKworc3RhdGljIHZvaWQKK2RlbGV0ZV91bm5lZWRlZF9jaG9pY2VfZmllbGRzIChhc24x X25vZGUgcCkKK3sKKyAgYXNuMV9ub2RlIHAyOworCisgIHdoaWxlIChwLT5yaWdodCkKKyAgICB7 CisgICAgICBwMiA9IHAtPnJpZ2h0OworICAgICAgYXNuMV9kZWxldGVfc3RydWN0dXJlICgmcDIp OworICAgIH0KK30KKworCisvKioKKyAqIGFzbjFfZGVyX2RlY29kaW5nMgorICogQGVsZW1lbnQ6 IHBvaW50ZXIgdG8gYW4gQVNOMSBzdHJ1Y3R1cmUuCisgKiBAaWRlcjogdmVjdG9yIHRoYXQgY29u dGFpbnMgdGhlIERFUiBlbmNvZGluZy4KKyAqIEBtYXhfaWRlcl9sZW46IHBvaW50ZXIgdG8gYW4g aW50ZWdlciBnaXZpbmcgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICogICBtYXhpbWFsIG51 bWJlciBvZiBieXRlcyBvY2N1cGllZCBieSAqQGlkZXIuIFRoZSByZWFsIHNpemUgb2YgdGhlIERF UgorICogICBlbmNvZGluZyBpcyByZXR1cm5lZCB0aHJvdWdoIHRoaXMgcG9pbnRlci4KKyAqIEBm bGFnczogZmxhZ3MgY29udHJvbGxpbmcgdGhlIGJlaGF2aW91ciBvZiB0aGUgZnVuY3Rpb24uCisg KiBAZXJyb3JEZXNjcmlwdGlvbjogbnVsbC10ZXJtaW5hdGVkIHN0cmluZyBjb250YWlucyBkZXRh aWxzIHdoZW4gYW4KKyAqICAgZXJyb3Igb2NjdXJyZWQuCisgKgorICogRmlsbCB0aGUgc3RydWN0 dXJlICpAZWxlbWVudCB3aXRoIHZhbHVlcyBvZiBhIERFUiBlbmNvZGluZyBzdHJpbmcuIFRoZQor ICogc3RydWN0dXJlIG11c3QganVzdCBiZSBjcmVhdGVkIHdpdGggZnVuY3Rpb24gYXNuMV9jcmVh dGVfZWxlbWVudCgpLgorICoKKyAqIElmICVBU04xX0RFQ09ERV9GTEFHX0FMTE9XX1BBRERJTkcg ZmxhZyBpcyBzZXQgdGhlbiB0aGUgZnVuY3Rpb24gd2lsbCBpZ25vcmUKKyAqIHBhZGRpbmcgYWZ0 ZXIgdGhlIGRlY29kZWQgREVSIGRhdGEuIFVwb24gYSBzdWNjZXNzZnVsIHJldHVybiB0aGUgdmFs dWUgb2YKKyAqICpAbWF4X2lkZXJfbGVuIHdpbGwgYmUgc2V0IHRvIHRoZSBudW1iZXIgb2YgYnl0 ZXMgZGVjb2RlZC4KKyAqCisgKiBJZiAlQVNOMV9ERUNPREVfRkxBR19TVFJJQ1RfREVSIGZsYWcg aXMgc2V0IHRoZW4gdGhlIGZ1bmN0aW9uIHdpbGwKKyAqIG5vdCBkZWNvZGUgYW55IEJFUi1lbmNv ZGVkIGVsZW1lbnRzLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgREVSIGVuY29k aW5nIE9LLCAlQVNOMV9FTEVNRU5UX05PVF9GT1VORAorICogICBpZiBARUxFTUVOVCBpcyAlTlVM TCwgYW5kICVBU04xX1RBR19FUlJPUiBvcgorICogICAlQVNOMV9ERVJfRVJST1IgaWYgdGhlIGRl ciBlbmNvZGluZyBkb2Vzbid0IG1hdGNoIHRoZSBzdHJ1Y3R1cmUKKyAqICAgbmFtZSAoKkBFTEVN RU5UIGRlbGV0ZWQpLgorICoqLworaW50Cithc24xX2Rlcl9kZWNvZGluZzIgKGFzbjFfbm9kZSAq IGVsZW1lbnQsIGNvbnN0IHZvaWQgKmlkZXIsIGludCAqbWF4X2lkZXJfbGVuLAorCQkgICAgdW5z aWduZWQgaW50IGZsYWdzLCBjaGFyICplcnJvckRlc2NyaXB0aW9uKQoreworICBhc24xX25vZGUg bm9kZSwgcCwgcDIsIHAzOworICBjaGFyIHRlbXBbMTI4XTsKKyAgaW50IGNvdW50ZXIsIGxlbjIs IGxlbjMsIGxlbjQsIG1vdmUsIHJpcywgdGxlbjsKKyAgc3RydWN0IG5vZGVfdGFpbF9jYWNoZV9z dCB0Y2FjaGUgPSB7IE5VTEwsIE5VTEwgfTsKKyAgdW5zaWduZWQgY2hhciBjbGFzczsKKyAgdW5z aWduZWQgbG9uZyB0YWc7CisgIGludCB0YWdfbGVuOworICBpbnQgaW5kZWZpbml0ZSwgcmVzdWx0 LCB0b3RhbF9sZW4gPSAqbWF4X2lkZXJfbGVuLCBpZGVyX2xlbiA9ICptYXhfaWRlcl9sZW47Cisg IGludCBpbm5lcl90YWdfbGVuOworICB1bnNpZ25lZCBjaGFyICpwdG1wOworICBjb25zdCB1bnNp Z25lZCBjaGFyICpwdGFnOworICBjb25zdCB1bnNpZ25lZCBjaGFyICpkZXIgPSBpZGVyOworCisg IG5vZGUgPSAqZWxlbWVudDsKKworICBpZiAoZXJyb3JEZXNjcmlwdGlvbiAhPSBOVUxMKQorICAg IGVycm9yRGVzY3JpcHRpb25bMF0gPSAwOworCisgIGlmIChub2RlID09IE5VTEwpCisgICAgcmV0 dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgaWYgKG5vZGUtPnR5cGUgJiBDT05TVF9P UFRJT04pCisgICAgeworICAgICAgcmVzdWx0ID0gQVNOMV9HRU5FUklDX0VSUk9SOworICAgICAg d2FybiAoKTsKKyAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgY291bnRlciA9IDA7Cisg IG1vdmUgPSBET1dOOworICBwID0gbm9kZTsKKyAgd2hpbGUgKDEpCisgICAgeworICAgICAgdGFn X2xlbiA9IDA7CisgICAgICBpbm5lcl90YWdfbGVuID0gMDsKKyAgICAgIHJpcyA9IEFTTjFfU1VD Q0VTUzsKKyAgICAgIGlmIChtb3ZlICE9IFVQKQorCXsKKwkgIGlmIChwLT50eXBlICYgQ09OU1Rf U0VUKQorCSAgICB7CisJICAgICAgcDIgPSBfYXNuMV9maW5kX3VwIChwKTsKKwkgICAgICBsZW4y ID0gcDItPnRtcF9pdmFsOworCSAgICAgIGlmIChsZW4yID09IC0xKQorCQl7CisJCSAgaWYgKEhB VkVfVFdPIChpZGVyX2xlbikgJiYgIWRlcltjb3VudGVyXQorCQkgICAgICAmJiAhZGVyW2NvdW50 ZXIgKyAxXSkKKwkJICAgIHsKKwkJICAgICAgcCA9IHAyOworCQkgICAgICBtb3ZlID0gVVA7CisJ CSAgICAgIGNvdW50ZXIgKz0gMjsKKwkJICAgICAgREVDUl9MRU4gKGlkZXJfbGVuLCAyKTsKKwkJ ICAgICAgY29udGludWU7CisJCSAgICB9CisJCX0KKwkgICAgICBlbHNlIGlmIChjb3VudGVyID09 IGxlbjIpCisJCXsKKwkJICBwID0gcDI7CisJCSAgbW92ZSA9IFVQOworCQkgIGNvbnRpbnVlOwor CQl9CisJICAgICAgZWxzZSBpZiAoY291bnRlciA+IGxlbjIpCisJCXsKKwkJICByZXN1bHQgPSBB U04xX0RFUl9FUlJPUjsKKwkJICB3YXJuICgpOworCQkgIGdvdG8gY2xlYW51cDsKKwkJfQorCSAg ICAgIHAyID0gcDItPmRvd247CisJICAgICAgd2hpbGUgKHAyKQorCQl7CisJCSAgaWYgKChwMi0+ dHlwZSAmIENPTlNUX1NFVCkgJiYgKHAyLT50eXBlICYgQ09OU1RfTk9UX1VTRUQpKQorCQkgICAg eworCQkgICAgICByaXMgPQorCQkJZXh0cmFjdF90YWdfZGVyX3JlY3Vyc2l2ZSAocDIsIGRlciAr IGNvdW50ZXIsCisJCQkJCQkgICBpZGVyX2xlbiwgJmxlbjIsIE5VTEwsCisJCQkJCQkgICBmbGFn cyk7CisJCSAgICAgIGlmIChyaXMgPT0gQVNOMV9TVUNDRVNTKQorCQkJeworCQkJICBwMi0+dHlw ZSAmPSB+Q09OU1RfTk9UX1VTRUQ7CisJCQkgIHAgPSBwMjsKKwkJCSAgYnJlYWs7CisJCQl9CisJ CSAgICB9CisJCSAgcDIgPSBwMi0+cmlnaHQ7CisJCX0KKwkgICAgICBpZiAocDIgPT0gTlVMTCkK KwkJeworCQkgIHJlc3VsdCA9IEFTTjFfREVSX0VSUk9SOworCQkgIHdhcm4gKCk7CisJCSAgZ290 byBjbGVhbnVwOworCQl9CisJICAgIH0KKworCSAgLyogdGhlIHBvc2l0aW9uIGluIHRoZSBERVIg c3RydWN0dXJlIHRoaXMgc3RhcnRzICovCisJICBwLT5zdGFydCA9IGNvdW50ZXI7CisJICBwLT5l bmQgPSB0b3RhbF9sZW4gLSAxOworCisJICBpZiAoKHAtPnR5cGUgJiBDT05TVF9PUFRJT04pIHx8 IChwLT50eXBlICYgQ09OU1RfREVGQVVMVCkpCisJICAgIHsKKwkgICAgICBwMiA9IF9hc24xX2Zp bmRfdXAgKHApOworCSAgICAgIGxlbjIgPSBwMi0+dG1wX2l2YWw7CisJICAgICAgaWYgKGNvdW50 ZXIgPT0gbGVuMikKKwkJeworCQkgIGlmIChwLT5yaWdodCkKKwkJICAgIHsKKwkJICAgICAgcDIg PSBwLT5yaWdodDsKKwkJICAgICAgbW92ZSA9IFJJR0hUOworCQkgICAgfQorCQkgIGVsc2UKKwkJ ICAgIG1vdmUgPSBVUDsKKworCQkgIGlmIChwLT50eXBlICYgQ09OU1RfT1BUSU9OKQorCQkgICAg YXNuMV9kZWxldGVfc3RydWN0dXJlICgmcCk7CisKKwkJICBwID0gcDI7CisJCSAgY29udGludWU7 CisJCX0KKwkgICAgfQorCisJICBpZiAodHlwZV9maWVsZCAocC0+dHlwZSkgPT0gQVNOMV9FVFlQ RV9DSE9JQ0UpCisJICAgIHsKKwkgICAgICB3aGlsZSAocC0+ZG93bikKKwkJeworCQkgIHJpcyA9 CisJCSAgICBleHRyYWN0X3RhZ19kZXJfcmVjdXJzaXZlIChwLT5kb3duLCBkZXIgKyBjb3VudGVy LAorCQkJCQkgICAgICAgaWRlcl9sZW4sICZsZW4yLCBOVUxMLCBmbGFncyk7CisKKwkJICBpZiAo cmlzID09IEFTTjFfU1VDQ0VTUykKKwkJICAgIHsKKwkJICAgICAgZGVsZXRlX3VubmVlZGVkX2No b2ljZV9maWVsZHMgKHAtPmRvd24pOworCQkgICAgICBicmVhazsKKwkJICAgIH0KKwkJICBlbHNl IGlmIChyaXMgPT0gQVNOMV9FUlJPUl9UWVBFX0FOWSkKKwkJICAgIHsKKwkJICAgICAgcmVzdWx0 ID0gQVNOMV9FUlJPUl9UWVBFX0FOWTsKKwkJICAgICAgd2FybiAoKTsKKwkJICAgICAgZ290byBj bGVhbnVwOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgcDIgPSBwLT5kb3du OworCQkgICAgICBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmUgKCZwMik7CisJCSAgICB9CisJCX0KKwor CSAgICAgIGlmIChwLT5kb3duID09IE5VTEwpCisJCXsKKwkJICBpZiAoIShwLT50eXBlICYgQ09O U1RfT1BUSU9OKSkKKwkJICAgIHsKKwkJICAgICAgcmVzdWx0ID0gQVNOMV9ERVJfRVJST1I7CisJ CSAgICAgIHdhcm4gKCk7CisJCSAgICAgIGdvdG8gY2xlYW51cDsKKwkJICAgIH0KKwkJfQorCSAg ICAgIGVsc2UgaWYgKHR5cGVfZmllbGQgKHAtPnR5cGUpICE9IEFTTjFfRVRZUEVfQ0hPSUNFKQor CQlwID0gcC0+ZG93bjsKKworCSAgICAgIHAtPnN0YXJ0ID0gY291bnRlcjsKKwkgICAgfQorCisJ ICBpZiAoKHAtPnR5cGUgJiBDT05TVF9PUFRJT04pIHx8IChwLT50eXBlICYgQ09OU1RfREVGQVVM VCkpCisJICAgIHsKKwkgICAgICBwMiA9IF9hc24xX2ZpbmRfdXAgKHApOworCSAgICAgIGxlbjIg PSBwMi0+dG1wX2l2YWw7CisKKwkgICAgICBpZiAoKGxlbjIgIT0gLTEpICYmIChjb3VudGVyID4g bGVuMikpCisJCXJpcyA9IEFTTjFfVEFHX0VSUk9SOworCSAgICB9CisKKwkgIGlmIChyaXMgPT0g QVNOMV9TVUNDRVNTKQorCSAgICByaXMgPQorCSAgICAgIGV4dHJhY3RfdGFnX2Rlcl9yZWN1cnNp dmUgKHAsIGRlciArIGNvdW50ZXIsIGlkZXJfbGVuLAorCQkJCQkgJnRhZ19sZW4sICZpbm5lcl90 YWdfbGVuLCBmbGFncyk7CisKKwkgIGlmIChyaXMgIT0gQVNOMV9TVUNDRVNTKQorCSAgICB7CisJ ICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9PUFRJT04pCisJCXsKKwkJICBwLT50eXBlIHw9IENP TlNUX05PVF9VU0VEOworCQkgIG1vdmUgPSBSSUdIVDsKKwkJfQorCSAgICAgIGVsc2UgaWYgKHAt PnR5cGUgJiBDT05TVF9ERUZBVUxUKQorCQl7CisJCSAgX2FzbjFfc2V0X3ZhbHVlIChwLCBOVUxM LCAwKTsKKwkJICBtb3ZlID0gUklHSFQ7CisJCX0KKwkgICAgICBlbHNlCisJCXsKKwkJICBpZiAo ZXJyb3JEZXNjcmlwdGlvbiAhPSBOVUxMKQorCQkgICAgX2FzbjFfZXJyb3JfZGVzY3JpcHRpb25f dGFnX2Vycm9yIChwLCBlcnJvckRlc2NyaXB0aW9uKTsKKworCQkgIHJlc3VsdCA9IEFTTjFfVEFH X0VSUk9SOworCQkgIHdhcm4gKCk7CisJCSAgZ290byBjbGVhbnVwOworCQl9CisJICAgIH0KKwkg IGVsc2UKKwkgICAgeworCSAgICAgIERFQ1JfTEVOIChpZGVyX2xlbiwgdGFnX2xlbik7CisJICAg ICAgY291bnRlciArPSB0YWdfbGVuOworCSAgICB9CisJfQorCisgICAgICBpZiAocmlzID09IEFT TjFfU1VDQ0VTUykKKwl7CisJICBzd2l0Y2ggKHR5cGVfZmllbGQgKHAtPnR5cGUpKQorCSAgICB7 CisJICAgIGNhc2UgQVNOMV9FVFlQRV9OVUxMOgorCSAgICAgIERFQ1JfTEVOIChpZGVyX2xlbiwg MSk7CisJICAgICAgaWYgKGRlcltjb3VudGVyXSkKKwkJeworCQkgIHJlc3VsdCA9IEFTTjFfREVS X0VSUk9SOworCQkgIHdhcm4gKCk7CisJCSAgZ290byBjbGVhbnVwOworCQl9CisJICAgICAgY291 bnRlcisrOworCSAgICAgIG1vdmUgPSBSSUdIVDsKKwkgICAgICBicmVhazsKKwkgICAgY2FzZSBB U04xX0VUWVBFX0JPT0xFQU46CisJICAgICAgREVDUl9MRU4gKGlkZXJfbGVuLCAyKTsKKworCSAg ICAgIGlmIChkZXJbY291bnRlcisrXSAhPSAxKQorCQl7CisJCSAgcmVzdWx0ID0gQVNOMV9ERVJf RVJST1I7CisJCSAgd2FybiAoKTsKKwkJICBnb3RvIGNsZWFudXA7CisJCX0KKwkgICAgICBpZiAo ZGVyW2NvdW50ZXIrK10gPT0gMCkKKwkJX2FzbjFfc2V0X3ZhbHVlIChwLCAiRiIsIDEpOworCSAg ICAgIGVsc2UKKwkJX2FzbjFfc2V0X3ZhbHVlIChwLCAiVCIsIDEpOworCSAgICAgIG1vdmUgPSBS SUdIVDsKKwkgICAgICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX0lOVEVHRVI6CisJICAg IGNhc2UgQVNOMV9FVFlQRV9FTlVNRVJBVEVEOgorCSAgICAgIGxlbjIgPSBhc24xX2dldF9sZW5n dGhfZGVyIChkZXIgKyBjb3VudGVyLCBpZGVyX2xlbiwgJmxlbjMpOworCSAgICAgIGlmIChsZW4y IDwgMCkKKwkJeworCQkgIHJlc3VsdCA9IEFTTjFfREVSX0VSUk9SOworCQkgIHdhcm4gKCk7CisJ CSAgZ290byBjbGVhbnVwOworCQl9CisKKwkgICAgICBERUNSX0xFTiAoaWRlcl9sZW4sIGxlbjMg KyBsZW4yKTsKKworCSAgICAgIF9hc24xX3NldF92YWx1ZSAocCwgZGVyICsgY291bnRlciwgbGVu MyArIGxlbjIpOworCSAgICAgIGNvdW50ZXIgKz0gbGVuMyArIGxlbjI7CisJICAgICAgbW92ZSA9 IFJJR0hUOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFfRVRZUEVfT0JKRUNUX0lEOgor CSAgICAgIHJlc3VsdCA9CisJCWFzbjFfZ2V0X29iamVjdF9pZF9kZXIgKGRlciArIGNvdW50ZXIs IGlkZXJfbGVuLCAmbGVuMiwKKwkJCQkJdGVtcCwgc2l6ZW9mICh0ZW1wKSk7CisJICAgICAgaWYg KHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MpCisJCXsKKwkJICB3YXJuICgpOworCQkgIGdvdG8gY2xl YW51cDsKKwkJfQorCisJICAgICAgREVDUl9MRU4gKGlkZXJfbGVuLCBsZW4yKTsKKworCSAgICAg IHRsZW4gPSBzdHJsZW4gKHRlbXApOworCSAgICAgIGlmICh0bGVuID4gMCkKKwkJX2FzbjFfc2V0 X3ZhbHVlIChwLCB0ZW1wLCB0bGVuICsgMSk7CisKKwkgICAgICBjb3VudGVyICs9IGxlbjI7CisJ ICAgICAgbW92ZSA9IFJJR0hUOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFfRVRZUEVf R0VORVJBTElaRURfVElNRToKKwkgICAgY2FzZSBBU04xX0VUWVBFX1VUQ19USU1FOgorCSAgICAg IHJlc3VsdCA9CisJCV9hc24xX2dldF90aW1lX2RlciAodHlwZV9maWVsZCAocC0+dHlwZSksIGRl ciArIGNvdW50ZXIsCisJCQkJICAgIGlkZXJfbGVuLCAmbGVuMiwgdGVtcCwgc2l6ZW9mICh0ZW1w KSAtIDEsCisJCQkJICAgIGZsYWdzKTsKKwkgICAgICBpZiAocmVzdWx0ICE9IEFTTjFfU1VDQ0VT UykKKwkJeworCQkgIHdhcm4gKCk7CisJCSAgZ290byBjbGVhbnVwOworCQl9CisKKwkgICAgICBE RUNSX0xFTiAoaWRlcl9sZW4sIGxlbjIpOworCisJICAgICAgdGxlbiA9IHN0cmxlbiAodGVtcCk7 CisJICAgICAgaWYgKHRsZW4gPiAwKQorCQlfYXNuMV9zZXRfdmFsdWUgKHAsIHRlbXAsIHRsZW4p OworCisJICAgICAgY291bnRlciArPSBsZW4yOworCSAgICAgIG1vdmUgPSBSSUdIVDsKKwkgICAg ICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX09DVEVUX1NUUklORzoKKwkgICAgICBpZiAo Y291bnRlciA8IGlubmVyX3RhZ19sZW4pCisJCXsKKwkJICByZXN1bHQgPSBBU04xX0RFUl9FUlJP UjsKKwkJICB3YXJuICgpOworCQkgIGdvdG8gY2xlYW51cDsKKwkJfQorCisJICAgICAgcHRhZyA9 IGRlciArIGNvdW50ZXIgLSBpbm5lcl90YWdfbGVuOworCSAgICAgIGlmICgoZmxhZ3MgJiBBU04x X0RFQ09ERV9GTEFHX1NUUklDVF9ERVIpCisJCSAgfHwgIShwdGFnWzBdICYgQVNOMV9DTEFTU19T VFJVQ1RVUkVEKSkKKwkJeworCQkgIGlmIChwdGFnWzBdICYgQVNOMV9DTEFTU19TVFJVQ1RVUkVE KQorCQkgICAgeworCQkgICAgICByZXN1bHQgPSBBU04xX0RFUl9FUlJPUjsKKwkJICAgICAgd2Fy biAoKTsKKwkJICAgICAgZ290byBjbGVhbnVwOworCQkgICAgfQorCisJCSAgbGVuMiA9IGFzbjFf Z2V0X2xlbmd0aF9kZXIgKGRlciArIGNvdW50ZXIsIGlkZXJfbGVuLCAmbGVuMyk7CisJCSAgaWYg KGxlbjIgPCAwKQorCQkgICAgeworCQkgICAgICByZXN1bHQgPSBBU04xX0RFUl9FUlJPUjsKKwkJ ICAgICAgd2FybiAoKTsKKwkJICAgICAgZ290byBjbGVhbnVwOworCQkgICAgfQorCisJCSAgREVD Ul9MRU4gKGlkZXJfbGVuLCBsZW4zICsgbGVuMik7CisKKwkJICBfYXNuMV9zZXRfdmFsdWUgKHAs IGRlciArIGNvdW50ZXIsIGxlbjMgKyBsZW4yKTsKKwkJICBjb3VudGVyICs9IGxlbjMgKyBsZW4y OworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgdW5zaWduZWQgZGZsYWdzID0gMCwgdmxlbiwg YmVyX2xlbjsKKworCQkgIGlmIChwdGFnWzBdICYgQVNOMV9DTEFTU19TVFJVQ1RVUkVEKQorCQkg ICAgZGZsYWdzIHw9IERFQ09ERV9GTEFHX0NPTlNUUlVDVEVEOworCisJCSAgcmVzdWx0ID0KKwkJ ICAgIF9hc24xX2RlY29kZV9zaW1wbGVfYmVyICh0eXBlX2ZpZWxkIChwLT50eXBlKSwKKwkJCQkJ ICAgICBkZXIgKyBjb3VudGVyLCBpZGVyX2xlbiwgJnB0bXAsCisJCQkJCSAgICAgJnZsZW4sICZi ZXJfbGVuLCBkZmxhZ3MpOworCQkgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTKQorCQkgICAg eworCQkgICAgICB3YXJuICgpOworCQkgICAgICBnb3RvIGNsZWFudXA7CisJCSAgICB9CisKKwkJ ICBERUNSX0xFTiAoaWRlcl9sZW4sIGJlcl9sZW4pOworCisJCSAgX2FzbjFfc2V0X3ZhbHVlX2x2 IChwLCBwdG1wLCB2bGVuKTsKKworCQkgIGNvdW50ZXIgKz0gYmVyX2xlbjsKKwkJICBmcmVlIChw dG1wKTsKKwkJfQorCSAgICAgIG1vdmUgPSBSSUdIVDsKKwkgICAgICBicmVhazsKKwkgICAgY2Fz ZSBBU04xX0VUWVBFX0dFTkVSQUxTVFJJTkc6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9OVU1FUklD X1NUUklORzoKKwkgICAgY2FzZSBBU04xX0VUWVBFX0lBNV9TVFJJTkc6CisJICAgIGNhc2UgQVNO MV9FVFlQRV9URUxFVEVYX1NUUklORzoKKwkgICAgY2FzZSBBU04xX0VUWVBFX1BSSU5UQUJMRV9T VFJJTkc6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9VTklWRVJTQUxfU1RSSU5HOgorCSAgICBjYXNl IEFTTjFfRVRZUEVfQk1QX1NUUklORzoKKwkgICAgY2FzZSBBU04xX0VUWVBFX1VURjhfU1RSSU5H OgorCSAgICBjYXNlIEFTTjFfRVRZUEVfVklTSUJMRV9TVFJJTkc6CisJICAgIGNhc2UgQVNOMV9F VFlQRV9CSVRfU1RSSU5HOgorCSAgICAgIGxlbjIgPSBhc24xX2dldF9sZW5ndGhfZGVyIChkZXIg KyBjb3VudGVyLCBpZGVyX2xlbiwgJmxlbjMpOworCSAgICAgIGlmIChsZW4yIDwgMCkKKwkJewor CQkgIHJlc3VsdCA9IEFTTjFfREVSX0VSUk9SOworCQkgIHdhcm4gKCk7CisJCSAgZ290byBjbGVh bnVwOworCQl9CisKKwkgICAgICBERUNSX0xFTiAoaWRlcl9sZW4sIGxlbjMgKyBsZW4yKTsKKwor CSAgICAgIF9hc24xX3NldF92YWx1ZSAocCwgZGVyICsgY291bnRlciwgbGVuMyArIGxlbjIpOwor CSAgICAgIGNvdW50ZXIgKz0gbGVuMyArIGxlbjI7CisJICAgICAgbW92ZSA9IFJJR0hUOworCSAg ICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFfRVRZUEVfU0VRVUVOQ0U6CisJICAgIGNhc2UgQVNO MV9FVFlQRV9TRVQ6CisJICAgICAgaWYgKG1vdmUgPT0gVVApCisJCXsKKwkJICBsZW4yID0gcC0+ dG1wX2l2YWw7CisJCSAgcC0+dG1wX2l2YWwgPSAwOworCQkgIGlmIChsZW4yID09IC0xKQorCQkg ICAgewkJLyogaW5kZWZpbml0ZSBsZW5ndGggbWV0aG9kICovCisJCSAgICAgIERFQ1JfTEVOIChp ZGVyX2xlbiwgMik7CisJCSAgICAgIGlmICgoZGVyW2NvdW50ZXJdKSB8fCBkZXJbY291bnRlciAr IDFdKQorCQkJeworCQkJICByZXN1bHQgPSBBU04xX0RFUl9FUlJPUjsKKwkJCSAgd2FybiAoKTsK KwkJCSAgZ290byBjbGVhbnVwOworCQkJfQorCQkgICAgICBjb3VudGVyICs9IDI7CisJCSAgICB9 CisJCSAgZWxzZQorCQkgICAgewkJLyogZGVmaW5pdGUgbGVuZ3RoIG1ldGhvZCAqLworCQkgICAg ICBpZiAobGVuMiAhPSBjb3VudGVyKQorCQkJeworCQkJICByZXN1bHQgPSBBU04xX0RFUl9FUlJP UjsKKwkJCSAgd2FybiAoKTsKKwkJCSAgZ290byBjbGVhbnVwOworCQkJfQorCQkgICAgfQorCQkg IG1vdmUgPSBSSUdIVDsKKwkJfQorCSAgICAgIGVsc2UKKwkJewkJLyogbW92ZT09RE9XTiB8fCBt b3ZlPT1SSUdIVCAqLworCQkgIGxlbjMgPSBhc24xX2dldF9sZW5ndGhfZGVyIChkZXIgKyBjb3Vu dGVyLCBpZGVyX2xlbiwgJmxlbjIpOworCQkgIGlmIChJU19FUlIgKGxlbjMsIGZsYWdzKSkKKwkJ ICAgIHsKKwkJICAgICAgcmVzdWx0ID0gQVNOMV9ERVJfRVJST1I7CisJCSAgICAgIHdhcm4gKCk7 CisJCSAgICAgIGdvdG8gY2xlYW51cDsKKwkJICAgIH0KKworCQkgIERFQ1JfTEVOIChpZGVyX2xl biwgbGVuMik7CisJCSAgY291bnRlciArPSBsZW4yOworCisJCSAgaWYgKGxlbjMgPiAwKQorCQkg ICAgeworCQkgICAgICBwLT50bXBfaXZhbCA9IGNvdW50ZXIgKyBsZW4zOworCQkgICAgICBtb3Zl ID0gRE9XTjsKKwkJICAgIH0KKwkJICBlbHNlIGlmIChsZW4zID09IDApCisJCSAgICB7CisJCSAg ICAgIHAyID0gcC0+ZG93bjsKKwkJICAgICAgd2hpbGUgKHAyKQorCQkJeworCQkJICBpZiAodHlw ZV9maWVsZCAocDItPnR5cGUpICE9IEFTTjFfRVRZUEVfVEFHKQorCQkJICAgIHsKKwkJCSAgICAg IHAzID0gcDItPnJpZ2h0OworCQkJICAgICAgYXNuMV9kZWxldGVfc3RydWN0dXJlICgmcDIpOwor CQkJICAgICAgcDIgPSBwMzsKKwkJCSAgICB9CisJCQkgIGVsc2UKKwkJCSAgICBwMiA9IHAyLT5y aWdodDsKKwkJCX0KKwkJICAgICAgbW92ZSA9IFJJR0hUOworCQkgICAgfQorCQkgIGVsc2UKKwkJ ICAgIHsJCS8qIGluZGVmaW5pdGUgbGVuZ3RoIG1ldGhvZCAqLworCQkgICAgICBwLT50bXBfaXZh bCA9IC0xOworCQkgICAgICBtb3ZlID0gRE9XTjsKKwkJICAgIH0KKwkJfQorCSAgICAgIGJyZWFr OworCSAgICBjYXNlIEFTTjFfRVRZUEVfU0VRVUVOQ0VfT0Y6CisJICAgIGNhc2UgQVNOMV9FVFlQ RV9TRVRfT0Y6CisJICAgICAgaWYgKG1vdmUgPT0gVVApCisJCXsKKwkJICBsZW4yID0gcC0+dG1w X2l2YWw7CisJCSAgaWYgKGxlbjIgPT0gLTEpCisJCSAgICB7CQkvKiBpbmRlZmluaXRlIGxlbmd0 aCBtZXRob2QgKi8KKwkJICAgICAgaWYgKCFIQVZFX1RXTyAoaWRlcl9sZW4pCisJCQkgIHx8ICgo ZGVyW2NvdW50ZXJdKSB8fCBkZXJbY291bnRlciArIDFdKSkKKwkJCXsKKwkJCSAgcmVzdWx0ID0g X2FzbjFfYXBwZW5kX3NlcXVlbmNlX3NldCAocCwgJnRjYWNoZSk7CisJCQkgIGlmIChyZXN1bHQg IT0gMCkKKwkJCSAgICB7CisJCQkgICAgICB3YXJuICgpOworCQkJICAgICAgZ290byBjbGVhbnVw OworCQkJICAgIH0KKwkJCSAgcCA9IHRjYWNoZS50YWlsOworCQkJICBtb3ZlID0gUklHSFQ7CisJ CQkgIGNvbnRpbnVlOworCQkJfQorCisJCSAgICAgIHAtPnRtcF9pdmFsID0gMDsKKwkJICAgICAg dGNhY2hlLnRhaWwgPSBOVUxMOwkvKiBmaW5pc2hlZCBkZWNvZGluZyB0aGlzIHN0cnVjdHVyZSAq LworCQkgICAgICB0Y2FjaGUuaGVhZCA9IE5VTEw7CisJCSAgICAgIERFQ1JfTEVOIChpZGVyX2xl biwgMik7CisJCSAgICAgIGNvdW50ZXIgKz0gMjsKKwkJICAgIH0KKwkJICBlbHNlCisJCSAgICB7 CQkvKiBkZWZpbml0ZSBsZW5ndGggbWV0aG9kICovCisJCSAgICAgIGlmIChsZW4yID4gY291bnRl cikKKwkJCXsKKwkJCSAgcmVzdWx0ID0gX2FzbjFfYXBwZW5kX3NlcXVlbmNlX3NldCAocCwgJnRj YWNoZSk7CisJCQkgIGlmIChyZXN1bHQgIT0gMCkKKwkJCSAgICB7CisJCQkgICAgICB3YXJuICgp OworCQkJICAgICAgZ290byBjbGVhbnVwOworCQkJICAgIH0KKwkJCSAgcCA9IHRjYWNoZS50YWls OworCQkJICBtb3ZlID0gUklHSFQ7CisJCQkgIGNvbnRpbnVlOworCQkJfQorCisJCSAgICAgIHAt PnRtcF9pdmFsID0gMDsKKwkJICAgICAgdGNhY2hlLnRhaWwgPSBOVUxMOwkvKiBmaW5pc2hlZCBk ZWNvZGluZyB0aGlzIHN0cnVjdHVyZSAqLworCQkgICAgICB0Y2FjaGUuaGVhZCA9IE5VTEw7CisK KwkJICAgICAgaWYgKGxlbjIgIT0gY291bnRlcikKKwkJCXsKKwkJCSAgcmVzdWx0ID0gQVNOMV9E RVJfRVJST1I7CisJCQkgIHdhcm4gKCk7CisJCQkgIGdvdG8gY2xlYW51cDsKKwkJCX0KKwkJICAg IH0KKwkJfQorCSAgICAgIGVsc2UKKwkJewkJLyogbW92ZT09RE9XTiB8fCBtb3ZlPT1SSUdIVCAq LworCQkgIGxlbjMgPSBhc24xX2dldF9sZW5ndGhfZGVyIChkZXIgKyBjb3VudGVyLCBpZGVyX2xl biwgJmxlbjIpOworCQkgIGlmIChJU19FUlIgKGxlbjMsIGZsYWdzKSkKKwkJICAgIHsKKwkJICAg ICAgcmVzdWx0ID0gQVNOMV9ERVJfRVJST1I7CisJCSAgICAgIHdhcm4gKCk7CisJCSAgICAgIGdv dG8gY2xlYW51cDsKKwkJICAgIH0KKworCQkgIERFQ1JfTEVOIChpZGVyX2xlbiwgbGVuMik7CisJ CSAgY291bnRlciArPSBsZW4yOworCQkgIGlmIChsZW4zKQorCQkgICAgeworCQkgICAgICBpZiAo bGVuMyA+IDApCisJCQl7CS8qIGRlZmluaXRlIGxlbmd0aCBtZXRob2QgKi8KKwkJCSAgcC0+dG1w X2l2YWwgPSBjb3VudGVyICsgbGVuMzsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJewkvKiBpbmRl ZmluaXRlIGxlbmd0aCBtZXRob2QgKi8KKwkJCSAgcC0+dG1wX2l2YWwgPSAtMTsKKwkJCX0KKwor CQkgICAgICBwMiA9IHAtPmRvd247CisJCSAgICAgIGlmIChwMiA9PSBOVUxMKQorCQkJeworCQkJ ICByZXN1bHQgPSBBU04xX0RFUl9FUlJPUjsKKwkJCSAgd2FybiAoKTsKKwkJCSAgZ290byBjbGVh bnVwOworCQkJfQorCisJCSAgICAgIHdoaWxlICgodHlwZV9maWVsZCAocDItPnR5cGUpID09IEFT TjFfRVRZUEVfVEFHKQorCQkJICAgICB8fCAodHlwZV9maWVsZCAocDItPnR5cGUpID09IEFTTjFf RVRZUEVfU0laRSkpCisJCQlwMiA9IHAyLT5yaWdodDsKKwkJICAgICAgaWYgKHAyLT5yaWdodCA9 PSBOVUxMKQorCQkJeworCQkJICByZXN1bHQgPSBfYXNuMV9hcHBlbmRfc2VxdWVuY2Vfc2V0IChw LCAmdGNhY2hlKTsKKwkJCSAgaWYgKHJlc3VsdCAhPSAwKQorCQkJICAgIHsKKwkJCSAgICAgIHdh cm4gKCk7CisJCQkgICAgICBnb3RvIGNsZWFudXA7CisJCQkgICAgfQorCQkJfQorCQkgICAgICBw ID0gcDI7CisJCSAgICB9CisJCX0KKwkgICAgICBtb3ZlID0gUklHSFQ7CisJICAgICAgYnJlYWs7 CisJICAgIGNhc2UgQVNOMV9FVFlQRV9BTlk6CisJICAgICAgLyogQ2hlY2sgaW5kZWZpbml0ZSBs ZW50aCBtZXRob2QgaW4gYW4gRVhQTElDSVQgVEFHICovCisKKwkgICAgICBpZiAoIShmbGFncyAm IEFTTjFfREVDT0RFX0ZMQUdfU1RSSUNUX0RFUikKKwkJICAmJiAocC0+dHlwZSAmIENPTlNUX1RB RykgJiYgdGFnX2xlbiA9PSAyCisJCSAgJiYgKGRlcltjb3VudGVyIC0gMV0gPT0gMHg4MCkpCisJ CWluZGVmaW5pdGUgPSAxOworCSAgICAgIGVsc2UKKwkJaW5kZWZpbml0ZSA9IDA7CisKKwkgICAg ICBpZiAoYXNuMV9nZXRfdGFnX2RlcgorCQkgIChkZXIgKyBjb3VudGVyLCBpZGVyX2xlbiwgJmNs YXNzLCAmbGVuMiwKKwkJICAgJnRhZykgIT0gQVNOMV9TVUNDRVNTKQorCQl7CisJCSAgcmVzdWx0 ID0gQVNOMV9ERVJfRVJST1I7CisJCSAgd2FybiAoKTsKKwkJICBnb3RvIGNsZWFudXA7CisJCX0K KworCSAgICAgIERFQ1JfTEVOIChpZGVyX2xlbiwgbGVuMik7CisKKwkgICAgICBsZW40ID0KKwkJ YXNuMV9nZXRfbGVuZ3RoX2RlciAoZGVyICsgY291bnRlciArIGxlbjIsIGlkZXJfbGVuLCAmbGVu Myk7CisJICAgICAgaWYgKElTX0VSUiAobGVuNCwgZmxhZ3MpKQorCQl7CisJCSAgcmVzdWx0ID0g QVNOMV9ERVJfRVJST1I7CisJCSAgd2FybiAoKTsKKwkJICBnb3RvIGNsZWFudXA7CisJCX0KKwkg ICAgICBpZiAobGVuNCAhPSAtMSkJLyogZGVmaW5pdGUgKi8KKwkJeworCQkgIGxlbjIgKz0gbGVu NDsKKworCQkgIERFQ1JfTEVOIChpZGVyX2xlbiwgbGVuNCArIGxlbjMpOworCQkgIF9hc24xX3Nl dF92YWx1ZV9sdiAocCwgZGVyICsgY291bnRlciwgbGVuMiArIGxlbjMpOworCQkgIGNvdW50ZXIg Kz0gbGVuMiArIGxlbjM7CisJCX0KKwkgICAgICBlbHNlCQkvKiA9PSAtMSAqLworCQl7CQkvKiBp bmRlZmluaXRlIGxlbmd0aCAqLworCQkgIGlkZXJfbGVuICs9IGxlbjI7CS8qIHVuZG8gREVDUl9M RU4gKi8KKworCQkgIGlmIChjb3VudGVyID09IDApCisJCSAgICB7CisJCSAgICAgIHJlc3VsdCA9 IEFTTjFfREVSX0VSUk9SOworCQkgICAgICB3YXJuICgpOworCQkgICAgICBnb3RvIGNsZWFudXA7 CisJCSAgICB9CisKKwkJICByZXN1bHQgPQorCQkgICAgX2FzbjFfZ2V0X2luZGVmaW5pdGVfbGVu Z3RoX3N0cmluZyAoZGVyICsgY291bnRlciwKKwkJCQkJCQlpZGVyX2xlbiwgJmxlbjIpOworCQkg IGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTKQorCQkgICAgeworCQkgICAgICB3YXJuICgpOwor CQkgICAgICBnb3RvIGNsZWFudXA7CisJCSAgICB9CisKKwkJICBERUNSX0xFTiAoaWRlcl9sZW4s IGxlbjIpOworCQkgIF9hc24xX3NldF92YWx1ZV9sdiAocCwgZGVyICsgY291bnRlciwgbGVuMik7 CisJCSAgY291bnRlciArPSBsZW4yOworCisJCX0KKworCSAgICAgIC8qIENoZWNrIGlmIGEgY291 cGxlIG9mIDB4MDAgYXJlIHByZXNlbnQgZHVlIHRvIGFuIEVYUExJQ0lUIFRBRyB3aXRoCisJICAg ICAgICAgYW4gaW5kZWZpbml0ZSBsZW5ndGggbWV0aG9kLiAqLworCSAgICAgIGlmIChpbmRlZmlu aXRlKQorCQl7CisJCSAgREVDUl9MRU4gKGlkZXJfbGVuLCAyKTsKKwkJICBpZiAoIWRlcltjb3Vu dGVyXSAmJiAhZGVyW2NvdW50ZXIgKyAxXSkKKwkJICAgIHsKKwkJICAgICAgY291bnRlciArPSAy OworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgcmVzdWx0ID0gQVNOMV9ERVJf RVJST1I7CisJCSAgICAgIHdhcm4gKCk7CisJCSAgICAgIGdvdG8gY2xlYW51cDsKKwkJICAgIH0K KwkJfQorCisJICAgICAgbW92ZSA9IFJJR0hUOworCSAgICAgIGJyZWFrOworCSAgICBkZWZhdWx0 OgorCSAgICAgIG1vdmUgPSAobW92ZSA9PSBVUCkgPyBSSUdIVCA6IERPV047CisJICAgICAgYnJl YWs7CisJICAgIH0KKwl9CisKKyAgICAgIGlmIChwKQorCXsKKwkgIHAtPmVuZCA9IGNvdW50ZXIg LSAxOworCX0KKworICAgICAgaWYgKHAgPT0gbm9kZSAmJiBtb3ZlICE9IERPV04pCisJYnJlYWs7 CisKKyAgICAgIGlmIChtb3ZlID09IERPV04pCisJeworCSAgaWYgKHAtPmRvd24pCisJICAgIHAg PSBwLT5kb3duOworCSAgZWxzZQorCSAgICBtb3ZlID0gUklHSFQ7CisJfQorICAgICAgaWYgKCht b3ZlID09IFJJR0hUKSAmJiAhKHAtPnR5cGUgJiBDT05TVF9TRVQpKQorCXsKKwkgIGlmIChwLT5y aWdodCkKKwkgICAgcCA9IHAtPnJpZ2h0OworCSAgZWxzZQorCSAgICBtb3ZlID0gVVA7CisJfQor ICAgICAgaWYgKG1vdmUgPT0gVVApCisJcCA9IF9hc24xX2ZpbmRfdXAgKHApOworICAgIH0KKwor ICBfYXNuMV9kZWxldGVfbm90X3VzZWQgKCplbGVtZW50KTsKKworICBpZiAoKGlkZXJfbGVuIDwg MCkgfHwKKyAgICAgICghKGZsYWdzICYgQVNOMV9ERUNPREVfRkxBR19BTExPV19QQURESU5HKSAm JiAoaWRlcl9sZW4gIT0gMCkpKQorICAgIHsKKyAgICAgIHdhcm4gKCk7CisgICAgICByZXN1bHQg PSBBU04xX0RFUl9FUlJPUjsKKyAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgKm1heF9p ZGVyX2xlbiA9IHRvdGFsX2xlbiAtIGlkZXJfbGVuOworCisgIHJldHVybiBBU04xX1NVQ0NFU1M7 CisKK2NsZWFudXA6CisgIGFzbjFfZGVsZXRlX3N0cnVjdHVyZSAoZWxlbWVudCk7CisgIHJldHVy biByZXN1bHQ7Cit9CisKKworLyoqCisgKiBhc24xX2Rlcl9kZWNvZGluZzoKKyAqIEBlbGVtZW50 OiBwb2ludGVyIHRvIGFuIEFTTjEgc3RydWN0dXJlLgorICogQGlkZXI6IHZlY3RvciB0aGF0IGNv bnRhaW5zIHRoZSBERVIgZW5jb2RpbmcuCisgKiBAaWRlcl9sZW46IG51bWJlciBvZiBieXRlcyBv ZiAqQGlkZXI6IEBpZGVyWzBdLi5AaWRlcltsZW4tMV0uCisgKiBAZXJyb3JEZXNjcmlwdGlvbjog bnVsbC10ZXJtaW5hdGVkIHN0cmluZyBjb250YWlucyBkZXRhaWxzIHdoZW4gYW4KKyAqICAgZXJy b3Igb2NjdXJyZWQuCisgKgorICogRmlsbCB0aGUgc3RydWN0dXJlICpAZWxlbWVudCB3aXRoIHZh bHVlcyBvZiBhIERFUiBlbmNvZGluZworICogc3RyaW5nLiBUaGUgc3RydWN0dXJlIG11c3QganVz dCBiZSBjcmVhdGVkIHdpdGggZnVuY3Rpb24KKyAqIGFzbjFfY3JlYXRlX2VsZW1lbnQoKS4KKyAq CisgKiBOb3RlIHRoYXQgdGhlICpAZWxlbWVudCB2YXJpYWJsZSBpcyBwcm92aWRlZCBhcyBhIHBv aW50ZXIgZm9yCisgKiBoaXN0b3JpY2FsIHJlYXNvbnMuCisgKgorICogUmV0dXJuczogJUFTTjFf U1VDQ0VTUyBpZiBERVIgZW5jb2RpbmcgT0ssICVBU04xX0VMRU1FTlRfTk9UX0ZPVU5ECisgKiAg IGlmIEBFTEVNRU5UIGlzICVOVUxMLCBhbmQgJUFTTjFfVEFHX0VSUk9SIG9yCisgKiAgICVBU04x X0RFUl9FUlJPUiBpZiB0aGUgZGVyIGVuY29kaW5nIGRvZXNuJ3QgbWF0Y2ggdGhlIHN0cnVjdHVy ZQorICogICBuYW1lICgqQEVMRU1FTlQgZGVsZXRlZCkuCisgKiovCitpbnQKK2FzbjFfZGVyX2Rl Y29kaW5nIChhc24xX25vZGUgKiBlbGVtZW50LCBjb25zdCB2b2lkICppZGVyLCBpbnQgaWRlcl9s ZW4sCisJCSAgIGNoYXIgKmVycm9yRGVzY3JpcHRpb24pCit7CisgIHJldHVybiBhc24xX2Rlcl9k ZWNvZGluZzIgKGVsZW1lbnQsIGlkZXIsICZpZGVyX2xlbiwgMCwgZXJyb3JEZXNjcmlwdGlvbik7 Cit9CisKKy8qKgorICogYXNuMV9kZXJfZGVjb2RpbmdfZWxlbWVudDoKKyAqIEBzdHJ1Y3R1cmU6 IHBvaW50ZXIgdG8gYW4gQVNOMSBzdHJ1Y3R1cmUKKyAqIEBlbGVtZW50TmFtZTogbmFtZSBvZiB0 aGUgZWxlbWVudCB0byBmaWxsCisgKiBAaWRlcjogdmVjdG9yIHRoYXQgY29udGFpbnMgdGhlIERF UiBlbmNvZGluZyBvZiB0aGUgd2hvbGUgc3RydWN0dXJlLgorICogQGxlbjogbnVtYmVyIG9mIGJ5 dGVzIG9mICpkZXI6IGRlclswXS4uZGVyW2xlbi0xXQorICogQGVycm9yRGVzY3JpcHRpb246IG51 bGwtdGVybWluYXRlZCBzdHJpbmcgY29udGFpbnMgZGV0YWlscyB3aGVuIGFuCisgKiAgIGVycm9y IG9jY3VycmVkLgorICoKKyAqIEZpbGwgdGhlIGVsZW1lbnQgbmFtZWQgQEVMRU1FTlROQU1FIHdp dGggdmFsdWVzIG9mIGEgREVSIGVuY29kaW5nCisgKiBzdHJpbmcuICBUaGUgc3RydWN0dXJlIG11 c3QganVzdCBiZSBjcmVhdGVkIHdpdGggZnVuY3Rpb24KKyAqIGFzbjFfY3JlYXRlX2VsZW1lbnQo KS4gIFRoZSBERVIgdmVjdG9yIG11c3QgY29udGFpbiB0aGUgZW5jb2RpbmcKKyAqIHN0cmluZyBv ZiB0aGUgd2hvbGUgQFNUUlVDVFVSRS4gIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlCisg KiBkZWNvZGluZyBwcm9jZWR1cmUsIHRoZSAqQFNUUlVDVFVSRSBpcyBkZWxldGVkIGFuZCBzZXQg ZXF1YWwgdG8KKyAqICVOVUxMLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBh bmQgbWF5IGp1c3QgYmUgYW4gYWxpYXMgdG8gYXNuMV9kZXJfZGVjb2RpbmcKKyAqIGluIGZ1dHVy ZSB2ZXJzaW9ucy4gVXNlIGFzbjFfZGVyX2RlY29kaW5nKCkgaW5zdGVhZC4KKyAqCisgKiBSZXR1 cm5zOiAlQVNOMV9TVUNDRVNTIGlmIERFUiBlbmNvZGluZyBPSywgJUFTTjFfRUxFTUVOVF9OT1Rf Rk9VTkQKKyAqICAgaWYgRUxFTUVOVCBpcyAlTlVMTCBvciBAZWxlbWVudE5hbWUgPT0gTlVMTCwg YW5kCisgKiAgICVBU04xX1RBR19FUlJPUiBvciAlQVNOMV9ERVJfRVJST1IgaWYgdGhlIGRlciBl bmNvZGluZyBkb2Vzbid0CisgKiAgIG1hdGNoIHRoZSBzdHJ1Y3R1cmUgQHN0cnVjdHVyZSAoKkVM RU1FTlQgZGVsZXRlZCkuCisgKiovCitpbnQKK2FzbjFfZGVyX2RlY29kaW5nX2VsZW1lbnQgKGFz bjFfbm9kZSAqIHN0cnVjdHVyZSwgY29uc3QgY2hhciAqZWxlbWVudE5hbWUsCisJCQkgICBjb25z dCB2b2lkICppZGVyLCBpbnQgbGVuLCBjaGFyICplcnJvckRlc2NyaXB0aW9uKQoreworICByZXR1 cm4gYXNuMV9kZXJfZGVjb2RpbmcgKHN0cnVjdHVyZSwgaWRlciwgbGVuLCBlcnJvckRlc2NyaXB0 aW9uKTsKK30KKworLyoqCisgKiBhc24xX2Rlcl9kZWNvZGluZ19zdGFydEVuZDoKKyAqIEBlbGVt ZW50OiBwb2ludGVyIHRvIGFuIEFTTjEgZWxlbWVudAorICogQGlkZXI6IHZlY3RvciB0aGF0IGNv bnRhaW5zIHRoZSBERVIgZW5jb2RpbmcuCisgKiBAaWRlcl9sZW46IG51bWJlciBvZiBieXRlcyBv ZiAqQGlkZXI6IEBpZGVyWzBdLi5AaWRlcltsZW4tMV0KKyAqIEBuYW1lX2VsZW1lbnQ6IGFuIGVs ZW1lbnQgb2YgTkFNRSBzdHJ1Y3R1cmUuCisgKiBAc3RhcnQ6IHRoZSBwb3NpdGlvbiBvZiB0aGUg Zmlyc3QgYnl0ZSBvZiBOQU1FX0VMRU1FTlQgZGVjb2RpbmcKKyAqICAgKEBpZGVyWypzdGFydF0p CisgKiBAZW5kOiB0aGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYnl0ZSBvZiBOQU1FX0VMRU1FTlQg ZGVjb2RpbmcKKyAqICAoQGlkZXJbKmVuZF0pCisgKgorICogRmluZCB0aGUgc3RhcnQgYW5kIGVu ZCBwb2ludCBvZiBhbiBlbGVtZW50IGluIGEgREVSIGVuY29kaW5nCisgKiBzdHJpbmcuIEkgbWVh biB0aGF0IGlmIHlvdSBoYXZlIGEgZGVyIGVuY29kaW5nIGFuZCB5b3UgaGF2ZSBhbHJlYWR5Cisg KiB1c2VkIHRoZSBmdW5jdGlvbiBhc24xX2Rlcl9kZWNvZGluZygpIHRvIGZpbGwgYSBzdHJ1Y3R1 cmUsIGl0IG1heQorICogaGFwcGVuIHRoYXQgeW91IHdhbnQgdG8gZmluZCB0aGUgcGllY2Ugb2Yg c3RyaW5nIGNvbmNlcm5pbmcgYW4KKyAqIGVsZW1lbnQgb2YgdGhlIHN0cnVjdHVyZS4KKyAqCisg KiBPbmUgZXhhbXBsZSBpcyB0aGUgc2VxdWVuY2UgInRic0NlcnRpZmljYXRlIiBpbnNpZGUgYW4g WDUwOQorICogY2VydGlmaWNhdGUuCisgKgorICogTm90ZSB0aGF0IHNpbmNlIGxpYnRhc24xIDMu NyB0aGUgQGlkZXIgYW5kIEBpZGVyX2xlbiBwYXJhbWV0ZXJzCisgKiBjYW4gYmUgb21pdHRlZCwg aWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBkZWNvZGVkIHVzaW5nIGFzbjFfZGVyX2RlY29kaW5n KCkuCisgKgorICogUmV0dXJuczogJUFTTjFfU1VDQ0VTUyBpZiBERVIgZW5jb2RpbmcgT0ssICVB U04xX0VMRU1FTlRfTk9UX0ZPVU5ECisgKiAgIGlmIEVMRU1FTlQgaXMgJWFzbjFfbm9kZSBFTVBU WSBvciBAbmFtZV9lbGVtZW50IGlzIG5vdCBhIHZhbGlkCisgKiAgIGVsZW1lbnQsICVBU04xX1RB R19FUlJPUiBvciAlQVNOMV9ERVJfRVJST1IgaWYgdGhlIGRlciBlbmNvZGluZworICogICBkb2Vz bid0IG1hdGNoIHRoZSBzdHJ1Y3R1cmUgRUxFTUVOVC4KKyAqKi8KK2ludAorYXNuMV9kZXJfZGVj b2Rpbmdfc3RhcnRFbmQgKGFzbjFfbm9kZSBlbGVtZW50LCBjb25zdCB2b2lkICppZGVyLCBpbnQg aWRlcl9sZW4sCisJCQkgICAgY29uc3QgY2hhciAqbmFtZV9lbGVtZW50LCBpbnQgKnN0YXJ0LCBp bnQgKmVuZCkKK3sKKyAgYXNuMV9ub2RlIG5vZGUsIG5vZGVfdG9fZmluZDsKKyAgaW50IHJlc3Vs dCA9IEFTTjFfREVSX0VSUk9SOworCisgIG5vZGUgPSBlbGVtZW50OworCisgIGlmIChub2RlID09 IE5VTEwpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgbm9kZV90b19m aW5kID0gYXNuMV9maW5kX25vZGUgKG5vZGUsIG5hbWVfZWxlbWVudCk7CisKKyAgaWYgKG5vZGVf dG9fZmluZCA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOworCisg ICpzdGFydCA9IG5vZGVfdG9fZmluZC0+c3RhcnQ7CisgICplbmQgPSBub2RlX3RvX2ZpbmQtPmVu ZDsKKworICBpZiAoKnN0YXJ0ID09IDAgJiYgKmVuZCA9PSAwKQorICAgIHsKKyAgICAgIGlmIChp ZGVyID09IE5VTEwgfHwgaWRlcl9sZW4gPT0gMCkKKwlyZXR1cm4gQVNOMV9HRU5FUklDX0VSUk9S OworCisgICAgICAvKiBpdCBzZWVtcyBhc24xX2Rlcl9kZWNvZGluZygpIHdhc24ndCBjYWxsZWQg YmVmb3JlLiBEbyBpdCBub3cgKi8KKyAgICAgIHJlc3VsdCA9IGFzbjFfZGVyX2RlY29kaW5nICgm bm9kZSwgaWRlciwgaWRlcl9sZW4sIE5VTEwpOworICAgICAgaWYgKHJlc3VsdCAhPSBBU04xX1NV Q0NFU1MpCisJeworCSAgd2FybiAoKTsKKwkgIHJldHVybiByZXN1bHQ7CisJfQorCisgICAgICBu b2RlX3RvX2ZpbmQgPSBhc24xX2ZpbmRfbm9kZSAobm9kZSwgbmFtZV9lbGVtZW50KTsKKyAgICAg IGlmIChub2RlX3RvX2ZpbmQgPT0gTlVMTCkKKwlyZXR1cm4gQVNOMV9FTEVNRU5UX05PVF9GT1VO RDsKKworICAgICAgKnN0YXJ0ID0gbm9kZV90b19maW5kLT5zdGFydDsKKyAgICAgICplbmQgPSBu b2RlX3RvX2ZpbmQtPmVuZDsKKyAgICB9CisKKyAgaWYgKCplbmQgPCAqc3RhcnQpCisgICAgcmV0 dXJuIEFTTjFfR0VORVJJQ19FUlJPUjsKKworICByZXR1cm4gQVNOMV9TVUNDRVNTOworfQorCisv KioKKyAqIGFzbjFfZXhwYW5kX2FueV9kZWZpbmVkX2J5OgorICogQGRlZmluaXRpb25zOiBBU04x IGRlZmluaXRpb25zCisgKiBAZWxlbWVudDogcG9pbnRlciB0byBhbiBBU04xIHN0cnVjdHVyZQor ICoKKyAqIEV4cGFuZHMgZXZlcnkgIkFOWSBERUZJTkVEIEJZIiBlbGVtZW50IG9mIGEgc3RydWN0 dXJlIGNyZWF0ZWQgZnJvbQorICogYSBERVIgZGVjb2RpbmcgcHJvY2VzcyAoYXNuMV9kZXJfZGVj b2RpbmcgZnVuY3Rpb24pLiBUaGUgZWxlbWVudAorICogQU5ZIG11c3QgYmUgZGVmaW5lZCBieSBh biBPQkpFQ1QgSURFTlRJRklFUi4gVGhlIHR5cGUgdXNlZCB0bworICogZXhwYW5kIHRoZSBlbGVt ZW50IEFOWSBpcyB0aGUgZmlyc3Qgb25lIGZvbGxvd2luZyB0aGUgZGVmaW5pdGlvbiBvZgorICog dGhlIGFjdHVhbCB2YWx1ZSBvZiB0aGUgT0JKRUNUIElERU5USUZJRVIuCisgKgorICogUmV0dXJu czogJUFTTjFfU1VDQ0VTUyBpZiBTdWJzdGl0dXRpb24gT0ssICVBU04xX0VSUk9SX1RZUEVfQU5Z IGlmCisgKiAgIHNvbWUgIkFOWSBERUZJTkVEIEJZIiBlbGVtZW50IGNvdWxkbid0IGJlIGV4cGFu ZGVkIGR1ZSB0byBhCisgKiAgIHByb2JsZW0gaW4gT0JKRUNUX0lEIC0+IFRZUEUgYXNzb2NpYXRp b24sIG9yIG90aGVyIGVycm9yIGNvZGVzCisgKiAgIGRlcGVuZGluZyBvbiBERVIgZGVjb2Rpbmcu CisgKiovCitpbnQKK2FzbjFfZXhwYW5kX2FueV9kZWZpbmVkX2J5IChhc24xX25vZGVfY29uc3Qg ZGVmaW5pdGlvbnMsIGFzbjFfbm9kZSAqIGVsZW1lbnQpCit7CisgIGNoYXIgbmFtZVsyICogQVNO MV9NQVhfTkFNRV9TSVpFICsgMl0sIHZhbHVlW0FTTjFfTUFYX05BTUVfU0laRV07CisgIGludCBy ZXRDb2RlID0gQVNOMV9TVUNDRVNTLCByZXN1bHQ7CisgIGludCBsZW4sIGxlbjIsIGxlbjM7Cisg IGFzbjFfbm9kZV9jb25zdCBwMjsKKyAgYXNuMV9ub2RlIHAsIHAzLCBhdXggPSBOVUxMOworICBj aGFyIGVycm9yRGVzY3JpcHRpb25bQVNOMV9NQVhfRVJST1JfREVTQ1JJUFRJT05fU0laRV07Cisg IGNvbnN0IGNoYXIgKmRlZmluaXRpb25zTmFtZTsKKworICBpZiAoKGRlZmluaXRpb25zID09IE5V TEwpIHx8ICgqZWxlbWVudCA9PSBOVUxMKSkKKyAgICByZXR1cm4gQVNOMV9FTEVNRU5UX05PVF9G T1VORDsKKworICBkZWZpbml0aW9uc05hbWUgPSBkZWZpbml0aW9ucy0+bmFtZTsKKworICBwID0g KmVsZW1lbnQ7CisgIHdoaWxlIChwKQorICAgIHsKKworICAgICAgc3dpdGNoICh0eXBlX2ZpZWxk IChwLT50eXBlKSkKKwl7CisJY2FzZSBBU04xX0VUWVBFX0FOWToKKwkgIGlmICgocC0+dHlwZSAm IENPTlNUX0RFRklORURfQlkpICYmIChwLT52YWx1ZSkpCisJICAgIHsKKwkgICAgICAvKiBzZWFy Y2ggdGhlICJERUZfQlkiIGVsZW1lbnQgKi8KKwkgICAgICBwMiA9IHAtPmRvd247CisJICAgICAg d2hpbGUgKChwMikgJiYgKHR5cGVfZmllbGQgKHAyLT50eXBlKSAhPSBBU04xX0VUWVBFX0NPTlNU QU5UKSkKKwkJcDIgPSBwMi0+cmlnaHQ7CisKKwkgICAgICBpZiAoIXAyKQorCQl7CisJCSAgcmV0 Q29kZSA9IEFTTjFfRVJST1JfVFlQRV9BTlk7CisJCSAgYnJlYWs7CisJCX0KKworCSAgICAgIHAz ID0gX2FzbjFfZmluZF91cCAocCk7CisKKwkgICAgICBpZiAoIXAzKQorCQl7CisJCSAgcmV0Q29k ZSA9IEFTTjFfRVJST1JfVFlQRV9BTlk7CisJCSAgYnJlYWs7CisJCX0KKworCSAgICAgIHAzID0g cDMtPmRvd247CisJICAgICAgd2hpbGUgKHAzKQorCQl7CisJCSAgaWYgKCEoc3RyY21wIChwMy0+ bmFtZSwgcDItPm5hbWUpKSkKKwkJICAgIGJyZWFrOworCQkgIHAzID0gcDMtPnJpZ2h0OworCQl9 CisKKwkgICAgICBpZiAoKCFwMykgfHwgKHR5cGVfZmllbGQgKHAzLT50eXBlKSAhPSBBU04xX0VU WVBFX09CSkVDVF9JRCkgfHwKKwkJICAocDMtPnZhbHVlID09IE5VTEwpKQorCQl7CisKKwkJICBw MyA9IF9hc24xX2ZpbmRfdXAgKHApOworCQkgIHAzID0gX2FzbjFfZmluZF91cCAocDMpOworCisJ CSAgaWYgKCFwMykKKwkJICAgIHsKKwkJICAgICAgcmV0Q29kZSA9IEFTTjFfRVJST1JfVFlQRV9B Tlk7CisJCSAgICAgIGJyZWFrOworCQkgICAgfQorCisJCSAgcDMgPSBwMy0+ZG93bjsKKworCQkg IHdoaWxlIChwMykKKwkJICAgIHsKKwkJICAgICAgaWYgKCEoc3RyY21wIChwMy0+bmFtZSwgcDIt Pm5hbWUpKSkKKwkJCWJyZWFrOworCQkgICAgICBwMyA9IHAzLT5yaWdodDsKKwkJICAgIH0KKwor CQkgIGlmICgoIXAzKSB8fCAodHlwZV9maWVsZCAocDMtPnR5cGUpICE9IEFTTjFfRVRZUEVfT0JK RUNUX0lEKQorCQkgICAgICB8fCAocDMtPnZhbHVlID09IE5VTEwpKQorCQkgICAgeworCQkgICAg ICByZXRDb2RlID0gQVNOMV9FUlJPUl9UWVBFX0FOWTsKKwkJICAgICAgYnJlYWs7CisJCSAgICB9 CisJCX0KKworCSAgICAgIC8qIHNlYXJjaCB0aGUgT0JKRUNUX0lEIGludG8gZGVmaW5pdGlvbnMg Ki8KKwkgICAgICBwMiA9IGRlZmluaXRpb25zLT5kb3duOworCSAgICAgIHdoaWxlIChwMikKKwkJ eworCQkgIGlmICgodHlwZV9maWVsZCAocDItPnR5cGUpID09IEFTTjFfRVRZUEVfT0JKRUNUX0lE KSAmJgorCQkgICAgICAocDItPnR5cGUgJiBDT05TVF9BU1NJR04pKQorCQkgICAgeworCQkgICAg ICBzbnByaW50ZiAobmFtZSwgc2l6ZW9mIChuYW1lKSwgIiVzLiVzIiwgZGVmaW5pdGlvbnNOYW1l LAorCQkJCXAyLT5uYW1lKTsKKworCQkgICAgICBsZW4gPSBBU04xX01BWF9OQU1FX1NJWkU7CisJ CSAgICAgIHJlc3VsdCA9CisJCQlhc24xX3JlYWRfdmFsdWUgKGRlZmluaXRpb25zLCBuYW1lLCB2 YWx1ZSwgJmxlbik7CisKKwkJICAgICAgaWYgKChyZXN1bHQgPT0gQVNOMV9TVUNDRVNTKQorCQkJ ICAmJiAoIV9hc24xX3N0cmNtcCAocDMtPnZhbHVlLCB2YWx1ZSkpKQorCQkJeworCQkJICBwMiA9 IHAyLT5yaWdodDsJLyogcG9pbnRlciB0byB0aGUgc3RydWN0dXJlIHRvCisJCQkJCQkgICB1c2Ug Zm9yIGV4cGFuc2lvbiAqLworCQkJICB3aGlsZSAoKHAyKSAmJiAocDItPnR5cGUgJiBDT05TVF9B U1NJR04pKQorCQkJICAgIHAyID0gcDItPnJpZ2h0OworCisJCQkgIGlmIChwMikKKwkJCSAgICB7 CisJCQkgICAgICBzbnByaW50ZiAobmFtZSwgc2l6ZW9mIChuYW1lKSwgIiVzLiVzIiwKKwkJCQkJ ZGVmaW5pdGlvbnNOYW1lLCBwMi0+bmFtZSk7CisKKwkJCSAgICAgIHJlc3VsdCA9CisJCQkJYXNu MV9jcmVhdGVfZWxlbWVudCAoZGVmaW5pdGlvbnMsIG5hbWUsICZhdXgpOworCQkJICAgICAgaWYg KHJlc3VsdCA9PSBBU04xX1NVQ0NFU1MpCisJCQkJeworCQkJCSAgX2FzbjFfY3B5X25hbWUgKGF1 eCwgcCk7CisJCQkJICBsZW4yID0KKwkJCQkgICAgYXNuMV9nZXRfbGVuZ3RoX2RlciAocC0+dmFs dWUsCisJCQkJCQkJIHAtPnZhbHVlX2xlbiwgJmxlbjMpOworCQkJCSAgaWYgKGxlbjIgPCAwKQor CQkJCSAgICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisKKwkJCQkgIHJlc3VsdCA9CisJCQkJICAg IGFzbjFfZGVyX2RlY29kaW5nICgmYXV4LCBwLT52YWx1ZSArIGxlbjMsCisJCQkJCQkgICAgICAg bGVuMiwKKwkJCQkJCSAgICAgICBlcnJvckRlc2NyaXB0aW9uKTsKKwkJCQkgIGlmIChyZXN1bHQg PT0gQVNOMV9TVUNDRVNTKQorCQkJCSAgICB7CisKKwkJCQkgICAgICBfYXNuMV9zZXRfcmlnaHQg KGF1eCwgcC0+cmlnaHQpOworCQkJCSAgICAgIF9hc24xX3NldF9yaWdodCAocCwgYXV4KTsKKwor CQkJCSAgICAgIHJlc3VsdCA9IGFzbjFfZGVsZXRlX3N0cnVjdHVyZSAoJnApOworCQkJCSAgICAg IGlmIChyZXN1bHQgPT0gQVNOMV9TVUNDRVNTKQorCQkJCQl7CisJCQkJCSAgcCA9IGF1eDsKKwkJ CQkJICBhdXggPSBOVUxMOworCQkJCQkgIGJyZWFrOworCQkJCQl9CisJCQkJICAgICAgZWxzZQor CQkJCQl7CS8qIGVycm9yIHdpdGggYXNuMV9kZWxldGVfc3RydWN0dXJlICovCisJCQkJCSAgYXNu MV9kZWxldGVfc3RydWN0dXJlICgmYXV4KTsKKwkJCQkJICByZXRDb2RlID0gcmVzdWx0OworCQkJ CQkgIGJyZWFrOworCQkJCQl9CisJCQkJICAgIH0KKwkJCQkgIGVsc2UKKwkJCQkgICAgewkvKiBl cnJvciB3aXRoIGFzbjFfZGVyX2RlY29kaW5nICovCisJCQkJICAgICAgcmV0Q29kZSA9IHJlc3Vs dDsKKwkJCQkgICAgICBicmVhazsKKwkJCQkgICAgfQorCQkJCX0KKwkJCSAgICAgIGVsc2UKKwkJ CQl7CS8qIGVycm9yIHdpdGggYXNuMV9jcmVhdGVfZWxlbWVudCAqLworCQkJCSAgcmV0Q29kZSA9 IHJlc3VsdDsKKwkJCQkgIGJyZWFrOworCQkJCX0KKwkJCSAgICB9CisJCQkgIGVsc2UKKwkJCSAg ICB7CS8qIGVycm9yIHdpdGggdGhlIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSB0byBleGFwYW5k ICovCisJCQkgICAgICByZXRDb2RlID0gQVNOMV9FUlJPUl9UWVBFX0FOWTsKKwkJCSAgICAgIGJy ZWFrOworCQkJICAgIH0KKwkJCX0KKwkJICAgIH0KKwkJICBwMiA9IHAyLT5yaWdodDsKKwkJfQkJ LyogZW5kIHdoaWxlICovCisKKwkgICAgICBpZiAoIXAyKQorCQl7CisJCSAgcmV0Q29kZSA9IEFT TjFfRVJST1JfVFlQRV9BTlk7CisJCSAgYnJlYWs7CisJCX0KKworCSAgICB9CisJICBicmVhazsK KwlkZWZhdWx0OgorCSAgYnJlYWs7CisJfQorCisKKyAgICAgIGlmIChwLT5kb3duKQorCXsKKwkg IHAgPSBwLT5kb3duOworCX0KKyAgICAgIGVsc2UgaWYgKHAgPT0gKmVsZW1lbnQpCisJeworCSAg cCA9IE5VTEw7CisJICBicmVhazsKKwl9CisgICAgICBlbHNlIGlmIChwLT5yaWdodCkKKwlwID0g cC0+cmlnaHQ7CisgICAgICBlbHNlCisJeworCSAgd2hpbGUgKDEpCisJICAgIHsKKwkgICAgICBw ID0gX2FzbjFfZmluZF91cCAocCk7CisJICAgICAgaWYgKHAgPT0gKmVsZW1lbnQpCisJCXsKKwkJ ICBwID0gTlVMTDsKKwkJICBicmVhazsKKwkJfQorCSAgICAgIGlmIChwLT5yaWdodCkKKwkJewor CQkgIHAgPSBwLT5yaWdodDsKKwkJICBicmVhazsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKwor ICByZXR1cm4gcmV0Q29kZTsKK30KKworLyoqCisgKiBhc24xX2V4cGFuZF9vY3RldF9zdHJpbmc6 CisgKiBAZGVmaW5pdGlvbnM6IEFTTjEgZGVmaW5pdGlvbnMKKyAqIEBlbGVtZW50OiBwb2ludGVy IHRvIGFuIEFTTjEgc3RydWN0dXJlCisgKiBAb2N0ZXROYW1lOiBuYW1lIG9mIHRoZSBPQ1RFQ1Qg U1RSSU5HIGZpZWxkIHRvIGV4cGFuZC4KKyAqIEBvYmplY3ROYW1lOiBuYW1lIG9mIHRoZSBPQkpF Q1QgSURFTlRJRklFUiBmaWVsZCB0byB1c2UgdG8gZGVmaW5lCisgKiAgICB0aGUgdHlwZSBmb3Ig ZXhwYW5zaW9uLgorICoKKyAqIEV4cGFuZHMgYW4gIk9DVEVUIFNUUklORyIgZWxlbWVudCBvZiBh IHN0cnVjdHVyZSBjcmVhdGVkIGZyb20gYSBERVIKKyAqIGRlY29kaW5nIHByb2Nlc3MgKHRoZSBh c24xX2Rlcl9kZWNvZGluZygpIGZ1bmN0aW9uKS4gIFRoZSB0eXBlIHVzZWQKKyAqIGZvciBleHBh bnNpb24gaXMgdGhlIGZpcnN0IG9uZSBmb2xsb3dpbmcgdGhlIGRlZmluaXRpb24gb2YgdGhlCisg KiBhY3R1YWwgdmFsdWUgb2YgdGhlIE9CSkVDVCBJREVOVElGSUVSIGluZGljYXRlZCBieSBPQkpF Q1ROQU1FLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgc3Vic3RpdHV0aW9uIE9L LCAlQVNOMV9FTEVNRU5UX05PVF9GT1VORAorICogICBpZiBAb2JqZWN0TmFtZSBvciBAb2N0ZXRO YW1lIGFyZSBub3QgY29ycmVjdCwKKyAqICAgJUFTTjFfVkFMVUVfTk9UX1ZBTElEIGlmIGl0IHdh c24ndCBwb3NzaWJsZSB0byBmaW5kIHRoZSB0eXBlIHRvCisgKiAgIHVzZSBmb3IgZXhwYW5zaW9u LCBvciBvdGhlciBlcnJvcnMgZGVwZW5kaW5nIG9uIERFUiBkZWNvZGluZy4KKyAqKi8KK2ludAor YXNuMV9leHBhbmRfb2N0ZXRfc3RyaW5nIChhc24xX25vZGVfY29uc3QgZGVmaW5pdGlvbnMsIGFz bjFfbm9kZSAqIGVsZW1lbnQsCisJCQkgIGNvbnN0IGNoYXIgKm9jdGV0TmFtZSwgY29uc3QgY2hh ciAqb2JqZWN0TmFtZSkKK3sKKyAgY2hhciBuYW1lWzIgKiBBU04xX01BWF9OQU1FX1NJWkUgKyAx XSwgdmFsdWVbQVNOMV9NQVhfTkFNRV9TSVpFXTsKKyAgaW50IHJldENvZGUgPSBBU04xX1NVQ0NF U1MsIHJlc3VsdDsKKyAgaW50IGxlbiwgbGVuMiwgbGVuMzsKKyAgYXNuMV9ub2RlX2NvbnN0IHAy OworICBhc24xX25vZGUgYXV4ID0gTlVMTDsKKyAgYXNuMV9ub2RlIG9jdGV0Tm9kZSA9IE5VTEws IG9iamVjdE5vZGUgPSBOVUxMOworICBjaGFyIGVycm9yRGVzY3JpcHRpb25bQVNOMV9NQVhfRVJS T1JfREVTQ1JJUFRJT05fU0laRV07CisKKyAgaWYgKChkZWZpbml0aW9ucyA9PSBOVUxMKSB8fCAo KmVsZW1lbnQgPT0gTlVMTCkpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisK KyAgb2N0ZXROb2RlID0gYXNuMV9maW5kX25vZGUgKCplbGVtZW50LCBvY3RldE5hbWUpOworICBp ZiAob2N0ZXROb2RlID09IE5VTEwpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7 CisgIGlmICh0eXBlX2ZpZWxkIChvY3RldE5vZGUtPnR5cGUpICE9IEFTTjFfRVRZUEVfT0NURVRf U1RSSU5HKQorICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOworICBpZiAob2N0ZXRO b2RlLT52YWx1ZSA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX1ZBTFVFX05PVF9GT1VORDsKKwor ICBvYmplY3ROb2RlID0gYXNuMV9maW5kX25vZGUgKCplbGVtZW50LCBvYmplY3ROYW1lKTsKKyAg aWYgKG9iamVjdE5vZGUgPT0gTlVMTCkKKyAgICByZXR1cm4gQVNOMV9FTEVNRU5UX05PVF9GT1VO RDsKKworICBpZiAodHlwZV9maWVsZCAob2JqZWN0Tm9kZS0+dHlwZSkgIT0gQVNOMV9FVFlQRV9P QkpFQ1RfSUQpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgaWYgKG9i amVjdE5vZGUtPnZhbHVlID09IE5VTEwpCisgICAgcmV0dXJuIEFTTjFfVkFMVUVfTk9UX0ZPVU5E OworCisKKyAgLyogc2VhcmNoIHRoZSBPQkpFQ1RfSUQgaW50byBkZWZpbml0aW9ucyAqLworICBw MiA9IGRlZmluaXRpb25zLT5kb3duOworICB3aGlsZSAocDIpCisgICAgeworICAgICAgaWYgKCh0 eXBlX2ZpZWxkIChwMi0+dHlwZSkgPT0gQVNOMV9FVFlQRV9PQkpFQ1RfSUQpICYmCisJICAocDIt PnR5cGUgJiBDT05TVF9BU1NJR04pKQorCXsKKwkgIHN0cmNweSAobmFtZSwgZGVmaW5pdGlvbnMt Pm5hbWUpOworCSAgc3RyY2F0IChuYW1lLCAiLiIpOworCSAgc3RyY2F0IChuYW1lLCBwMi0+bmFt ZSk7CisKKwkgIGxlbiA9IHNpemVvZiAodmFsdWUpOworCSAgcmVzdWx0ID0gYXNuMV9yZWFkX3Zh bHVlIChkZWZpbml0aW9ucywgbmFtZSwgdmFsdWUsICZsZW4pOworCisJICBpZiAoKHJlc3VsdCA9 PSBBU04xX1NVQ0NFU1MpCisJICAgICAgJiYgKCFfYXNuMV9zdHJjbXAgKG9iamVjdE5vZGUtPnZh bHVlLCB2YWx1ZSkpKQorCSAgICB7CisKKwkgICAgICBwMiA9IHAyLT5yaWdodDsJLyogcG9pbnRl ciB0byB0aGUgc3RydWN0dXJlIHRvCisJCQkJICAgdXNlIGZvciBleHBhbnNpb24gKi8KKwkgICAg ICB3aGlsZSAoKHAyKSAmJiAocDItPnR5cGUgJiBDT05TVF9BU1NJR04pKQorCQlwMiA9IHAyLT5y aWdodDsKKworCSAgICAgIGlmIChwMikKKwkJeworCQkgIHN0cmNweSAobmFtZSwgZGVmaW5pdGlv bnMtPm5hbWUpOworCQkgIHN0cmNhdCAobmFtZSwgIi4iKTsKKwkJICBzdHJjYXQgKG5hbWUsIHAy LT5uYW1lKTsKKworCQkgIHJlc3VsdCA9IGFzbjFfY3JlYXRlX2VsZW1lbnQgKGRlZmluaXRpb25z LCBuYW1lLCAmYXV4KTsKKwkJICBpZiAocmVzdWx0ID09IEFTTjFfU1VDQ0VTUykKKwkJICAgIHsK KwkJICAgICAgX2FzbjFfY3B5X25hbWUgKGF1eCwgb2N0ZXROb2RlKTsKKwkJICAgICAgbGVuMiA9 CisJCQlhc24xX2dldF9sZW5ndGhfZGVyIChvY3RldE5vZGUtPnZhbHVlLAorCQkJCQkgICAgIG9j dGV0Tm9kZS0+dmFsdWVfbGVuLCAmbGVuMyk7CisJCSAgICAgIGlmIChsZW4yIDwgMCkKKwkJCXJl dHVybiBBU04xX0RFUl9FUlJPUjsKKworCQkgICAgICByZXN1bHQgPQorCQkJYXNuMV9kZXJfZGVj b2RpbmcgKCZhdXgsIG9jdGV0Tm9kZS0+dmFsdWUgKyBsZW4zLAorCQkJCQkgICBsZW4yLCBlcnJv ckRlc2NyaXB0aW9uKTsKKwkJICAgICAgaWYgKHJlc3VsdCA9PSBBU04xX1NVQ0NFU1MpCisJCQl7 CisKKwkJCSAgX2FzbjFfc2V0X3JpZ2h0IChhdXgsIG9jdGV0Tm9kZS0+cmlnaHQpOworCQkJICBf YXNuMV9zZXRfcmlnaHQgKG9jdGV0Tm9kZSwgYXV4KTsKKworCQkJICByZXN1bHQgPSBhc24xX2Rl bGV0ZV9zdHJ1Y3R1cmUgKCZvY3RldE5vZGUpOworCQkJICBpZiAocmVzdWx0ID09IEFTTjFfU1VD Q0VTUykKKwkJCSAgICB7CisJCQkgICAgICBhdXggPSBOVUxMOworCQkJICAgICAgYnJlYWs7CisJ CQkgICAgfQorCQkJICBlbHNlCisJCQkgICAgewkvKiBlcnJvciB3aXRoIGFzbjFfZGVsZXRlX3N0 cnVjdHVyZSAqLworCQkJICAgICAgYXNuMV9kZWxldGVfc3RydWN0dXJlICgmYXV4KTsKKwkJCSAg ICAgIHJldENvZGUgPSByZXN1bHQ7CisJCQkgICAgICBicmVhazsKKwkJCSAgICB9CisJCQl9CisJ CSAgICAgIGVsc2UKKwkJCXsJLyogZXJyb3Igd2l0aCBhc24xX2Rlcl9kZWNvZGluZyAqLworCQkJ ICByZXRDb2RlID0gcmVzdWx0OworCQkJICBicmVhazsKKwkJCX0KKwkJICAgIH0KKwkJICBlbHNl CisJCSAgICB7CQkvKiBlcnJvciB3aXRoIGFzbjFfY3JlYXRlX2VsZW1lbnQgKi8KKwkJICAgICAg cmV0Q29kZSA9IHJlc3VsdDsKKwkJICAgICAgYnJlYWs7CisJCSAgICB9CisJCX0KKwkgICAgICBl bHNlCisJCXsJCS8qIGVycm9yIHdpdGggdGhlIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSB0byBl eGFwYW5kICovCisJCSAgcmV0Q29kZSA9IEFTTjFfVkFMVUVfTk9UX1ZBTElEOworCQkgIGJyZWFr OworCQl9CisJICAgIH0KKwl9CisKKyAgICAgIHAyID0gcDItPnJpZ2h0OworCisgICAgfQorCisg IGlmICghcDIpCisgICAgcmV0Q29kZSA9IEFTTjFfVkFMVUVfTk9UX1ZBTElEOworCisgIHJldHVy biByZXRDb2RlOworfQorCisvKi0KKyAqIF9hc24xX2RlY29kZV9zaW1wbGVfZGVyOgorICogQGV0 eXBlOiBUaGUgdHlwZSBvZiB0aGUgc3RyaW5nIHRvIGJlIGVuY29kZWQgKEFTTjFfRVRZUEVfKQor ICogQGRlcjogdGhlIGVuY29kZWQgc3RyaW5nCisgKiBAX2Rlcl9sZW46IHRoZSBieXRlcyBvZiB0 aGUgZW5jb2RlZCBzdHJpbmcKKyAqIEBzdHI6IGEgcG9pbnRlciB0byB0aGUgZGF0YQorICogQHN0 cl9sZW46IHRoZSBsZW5ndGggb2YgdGhlIGRhdGEKKyAqIEBkZmxhZ3M6IERFQ09ERV9GTEFHXyoK KyAqCisgKiBEZWNvZGVzIGEgc2ltcGxlIERFUiBlbmNvZGVkIHR5cGUgKGUuZy4gYSBzdHJpbmcs IHdoaWNoIGlzIG5vdCBjb25zdHJ1Y3RlZCkuCisgKiBUaGUgb3V0cHV0IGlzIGEgcG9pbnRlciBp bnNpZGUgdGhlIEBkZXIuCisgKgorICogUmV0dXJuczogJUFTTjFfU1VDQ0VTUyBpZiBzdWNjZXNz ZnVsIG9yIGFuIGVycm9yIHZhbHVlLgorIC0qLworc3RhdGljIGludAorX2FzbjFfZGVjb2RlX3Np bXBsZV9kZXIgKHVuc2lnbmVkIGludCBldHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLAor CQkJIHVuc2lnbmVkIGludCBfZGVyX2xlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqKnN0ciwKKwkJ CSB1bnNpZ25lZCBpbnQgKnN0cl9sZW4sIHVuc2lnbmVkIGRmbGFncykKK3sKKyAgaW50IHRhZ19s ZW4sIGxlbl9sZW47CisgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CisgIGludCBkZXJfbGVuID0g X2Rlcl9sZW47CisgIHVuc2lnbmVkIGNoYXIgY2xhc3M7CisgIHVuc2lnbmVkIGxvbmcgdGFnOwor ICBsb25nIHJldDsKKworICBpZiAoZGVyID09IE5VTEwgfHwgZGVyX2xlbiA9PSAwKQorICAgIHJl dHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsKKworICBpZiAoRVRZUEVfT0sgKGV0eXBlKSA9PSAw IHx8IEVUWVBFX0lTX1NUUklORyAoZXR5cGUpID09IDApCisgICAgcmV0dXJuIEFTTjFfVkFMVUVf Tk9UX1ZBTElEOworCisgIC8qIGRvZXNuJ3QgaGFuZGxlIGNvbnN0cnVjdGVkIGNsYXNzZXMgKi8K KyAgY2xhc3MgPSBFVFlQRV9DTEFTUyAoZXR5cGUpOworICBpZiAoY2xhc3MgIT0gQVNOMV9DTEFT U19VTklWRVJTQUwpCisgICAgcmV0dXJuIEFTTjFfVkFMVUVfTk9UX1ZBTElEOworCisgIHAgPSBk ZXI7CisKKyAgaWYgKGRmbGFncyAmIERFQ09ERV9GTEFHX0hBVkVfVEFHKQorICAgIHsKKyAgICAg IHJldCA9IGFzbjFfZ2V0X3RhZ19kZXIgKHAsIGRlcl9sZW4sICZjbGFzcywgJnRhZ19sZW4sICZ0 YWcpOworICAgICAgaWYgKHJldCAhPSBBU04xX1NVQ0NFU1MpCisJcmV0dXJuIHJldDsKKworICAg ICAgaWYgKGNsYXNzICE9IEVUWVBFX0NMQVNTIChldHlwZSkgfHwgdGFnICE9IEVUWVBFX1RBRyAo ZXR5cGUpKQorCXsKKwkgIHdhcm4gKCk7CisJICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisJfQor CisgICAgICBwICs9IHRhZ19sZW47CisgICAgICBkZXJfbGVuIC09IHRhZ19sZW47CisgICAgICBp ZiAoZGVyX2xlbiA8PSAwKQorCXJldHVybiBBU04xX0RFUl9FUlJPUjsKKyAgICB9CisKKyAgcmV0 ID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAocCwgZGVyX2xlbiwgJmxlbl9sZW4pOworICBpZiAocmV0 IDwgMCkKKyAgICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisKKyAgcCArPSBsZW5fbGVuOworICBk ZXJfbGVuIC09IGxlbl9sZW47CisgIGlmIChkZXJfbGVuIDw9IDApCisgICAgcmV0dXJuIEFTTjFf REVSX0VSUk9SOworCisgICpzdHJfbGVuID0gcmV0OworICAqc3RyID0gcDsKKworICByZXR1cm4g QVNOMV9TVUNDRVNTOworfQorCisvKioKKyAqIGFzbjFfZGVjb2RlX3NpbXBsZV9kZXI6CisgKiBA ZXR5cGU6IFRoZSB0eXBlIG9mIHRoZSBzdHJpbmcgdG8gYmUgZW5jb2RlZCAoQVNOMV9FVFlQRV8p CisgKiBAZGVyOiB0aGUgZW5jb2RlZCBzdHJpbmcKKyAqIEBfZGVyX2xlbjogdGhlIGJ5dGVzIG9m IHRoZSBlbmNvZGVkIHN0cmluZworICogQHN0cjogYSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBA c3RyX2xlbjogdGhlIGxlbmd0aCBvZiB0aGUgZGF0YQorICoKKyAqIERlY29kZXMgYSBzaW1wbGUg REVSIGVuY29kZWQgdHlwZSAoZS5nLiBhIHN0cmluZywgd2hpY2ggaXMgbm90IGNvbnN0cnVjdGVk KS4KKyAqIFRoZSBvdXRwdXQgaXMgYSBwb2ludGVyIGluc2lkZSB0aGUgQGRlci4KKyAqCisgKiBS ZXR1cm5zOiAlQVNOMV9TVUNDRVNTIGlmIHN1Y2Nlc3NmdWwgb3IgYW4gZXJyb3IgdmFsdWUuCisg KiovCitpbnQKK2FzbjFfZGVjb2RlX3NpbXBsZV9kZXIgKHVuc2lnbmVkIGludCBldHlwZSwgY29u c3QgdW5zaWduZWQgY2hhciAqZGVyLAorCQkJdW5zaWduZWQgaW50IF9kZXJfbGVuLCBjb25zdCB1 bnNpZ25lZCBjaGFyICoqc3RyLAorCQkJdW5zaWduZWQgaW50ICpzdHJfbGVuKQoreworICByZXR1 cm4gX2FzbjFfZGVjb2RlX3NpbXBsZV9kZXIgKGV0eXBlLCBkZXIsIF9kZXJfbGVuLCBzdHIsIHN0 cl9sZW4sCisJCQkJICBERUNPREVfRkxBR19IQVZFX1RBRyk7Cit9CisKK3N0YXRpYyBpbnQKK2Fw cGVuZCAodWludDhfdCAqKiBkc3QsIHVuc2lnbmVkICpkc3Rfc2l6ZSwgY29uc3QgdW5zaWduZWQg Y2hhciAqc3JjLAorCXVuc2lnbmVkIHNyY19zaXplKQoreworICBpZiAoc3JjX3NpemUgPT0gMCkK KyAgICByZXR1cm4gQVNOMV9TVUNDRVNTOworCisgICpkc3QgPSBfYXNuMV9yZWFsbG9jICgqZHN0 LCAqZHN0X3NpemUgKyBzcmNfc2l6ZSk7CisgIGlmICgqZHN0ID09IE5VTEwpCisgICAgcmV0dXJu IEFTTjFfTUVNX0FMTE9DX0VSUk9SOworICBtZW1jcHkgKCpkc3QgKyAqZHN0X3NpemUsIHNyYywg c3JjX3NpemUpOworICAqZHN0X3NpemUgKz0gc3JjX3NpemU7CisgIHJldHVybiBBU04xX1NVQ0NF U1M7Cit9CisKKy8qLQorICogX2FzbjFfZGVjb2RlX3NpbXBsZV9iZXI6CisgKiBAZXR5cGU6IFRo ZSB0eXBlIG9mIHRoZSBzdHJpbmcgdG8gYmUgZW5jb2RlZCAoQVNOMV9FVFlQRV8pCisgKiBAZGVy OiB0aGUgZW5jb2RlZCBzdHJpbmcKKyAqIEBfZGVyX2xlbjogdGhlIGJ5dGVzIG9mIHRoZSBlbmNv ZGVkIHN0cmluZworICogQHN0cjogYSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAc3RyX2xlbjog dGhlIGxlbmd0aCBvZiB0aGUgZGF0YQorICogQGJlcl9sZW46IHRoZSB0b3RhbCBsZW5ndGggb2Nj dXBpZWQgYnkgQkVSIChtYXkgYmUgJU5VTEwpCisgKiBAaGF2ZV90YWc6IHdoZXRoZXIgYSBERVIg dGFnIGlzIGluY2x1ZGVkCisgKgorICogRGVjb2RlcyBhIEJFUiBlbmNvZGVkIHR5cGUuIFRoZSBv dXRwdXQgaXMgYW4gYWxsb2NhdGVkIHZhbHVlCisgKiBvZiB0aGUgZGF0YS4gVGhpcyBkZWNvZGVz IEJFUiBTVFJJTkdTIG9ubHkuIE90aGVyIHR5cGVzIGFyZQorICogZGVjb2RlZCBhcyBERVIuCisg KgorICogUmV0dXJuczogJUFTTjFfU1VDQ0VTUyBpZiBzdWNjZXNzZnVsIG9yIGFuIGVycm9yIHZh bHVlLgorIC0qLworc3RhdGljIGludAorX2FzbjFfZGVjb2RlX3NpbXBsZV9iZXIgKHVuc2lnbmVk IGludCBldHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLAorCQkJIHVuc2lnbmVkIGludCBf ZGVyX2xlbiwgdW5zaWduZWQgY2hhciAqKnN0ciwKKwkJCSB1bnNpZ25lZCBpbnQgKnN0cl9sZW4s IHVuc2lnbmVkIGludCAqYmVyX2xlbiwKKwkJCSB1bnNpZ25lZCBkZmxhZ3MpCit7CisgIGludCB0 YWdfbGVuLCBsZW5fbGVuOworICBjb25zdCB1bnNpZ25lZCBjaGFyICpwOworICBpbnQgZGVyX2xl biA9IF9kZXJfbGVuOworICB1aW50OF90ICp0b3RhbCA9IE5VTEw7CisgIHVuc2lnbmVkIHRvdGFs X3NpemUgPSAwOworICB1bnNpZ25lZCBjaGFyIGNsYXNzOworICB1bnNpZ25lZCBsb25nIHRhZzsK KyAgdW5zaWduZWQgY2hhciAqb3V0ID0gTlVMTDsKKyAgY29uc3QgdW5zaWduZWQgY2hhciAqY291 dCA9IE5VTEw7CisgIHVuc2lnbmVkIG91dF9sZW47CisgIGxvbmcgcmVzdWx0OworCisgIGlmIChi ZXJfbGVuKQorICAgICpiZXJfbGVuID0gMDsKKworICBpZiAoZGVyID09IE5VTEwgfHwgZGVyX2xl biA9PSAwKQorICAgIHsKKyAgICAgIHdhcm4gKCk7CisgICAgICByZXR1cm4gQVNOMV9WQUxVRV9O T1RfVkFMSUQ7CisgICAgfQorCisgIGlmIChFVFlQRV9PSyAoZXR5cGUpID09IDApCisgICAgewor ICAgICAgd2FybiAoKTsKKyAgICAgIHJldHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsKKyAgICB9 CisKKyAgLyogZG9lc24ndCBoYW5kbGUgY29uc3RydWN0ZWQgKyBkZWZpbml0ZSBjbGFzc2VzICov CisgIGNsYXNzID0gRVRZUEVfQ0xBU1MgKGV0eXBlKTsKKyAgaWYgKGNsYXNzICE9IEFTTjFfQ0xB U1NfVU5JVkVSU0FMKQorICAgIHsKKyAgICAgIHdhcm4gKCk7CisgICAgICByZXR1cm4gQVNOMV9W QUxVRV9OT1RfVkFMSUQ7CisgICAgfQorCisgIHAgPSBkZXI7CisKKyAgaWYgKGRmbGFncyAmIERF Q09ERV9GTEFHX0hBVkVfVEFHKQorICAgIHsKKyAgICAgIHJlc3VsdCA9IGFzbjFfZ2V0X3RhZ19k ZXIgKHAsIGRlcl9sZW4sICZjbGFzcywgJnRhZ19sZW4sICZ0YWcpOworICAgICAgaWYgKHJlc3Vs dCAhPSBBU04xX1NVQ0NFU1MpCisJeworCSAgd2FybiAoKTsKKwkgIHJldHVybiByZXN1bHQ7CisJ fQorCisgICAgICBpZiAodGFnICE9IEVUWVBFX1RBRyAoZXR5cGUpKQorCXsKKwkgIHdhcm4gKCk7 CisJICByZXR1cm4gQVNOMV9ERVJfRVJST1I7CisJfQorCisgICAgICBwICs9IHRhZ19sZW47CisK KyAgICAgIERFQ1JfTEVOIChkZXJfbGVuLCB0YWdfbGVuKTsKKworICAgICAgaWYgKGJlcl9sZW4p CisJKmJlcl9sZW4gKz0gdGFnX2xlbjsKKyAgICB9CisKKyAgLyogaW5kZWZpbml0ZSBjb25zdHJ1 Y3RlZCAqLworICBpZiAoKCgoZGZsYWdzICYgREVDT0RFX0ZMQUdfQ09OU1RSVUNURUQpIHx8IGNs YXNzID09IEFTTjFfQ0xBU1NfU1RSVUNUVVJFRCkKKyAgICAgICAmJiBFVFlQRV9JU19TVFJJTkcg KGV0eXBlKSkgJiYgIShkZmxhZ3MgJiBERUNPREVfRkxBR19MRVZFTDMpKQorICAgIHsKKyAgICAg IGlmIChkZXJfbGVuID09IDApCisJeworCSAgd2FybiAoKTsKKwkgIHJlc3VsdCA9IEFTTjFfREVS X0VSUk9SOworCSAgZ290byBjbGVhbnVwOworCX0KKworICAgICAgaWYgKGRlcl9sZW4gPiAwICYm IHBbMF0gPT0gMHg4MCkJLyogaW5kZWZpbml0ZSAqLworCXsKKwkgIGxlbl9sZW4gPSAxOworCSAg REVDUl9MRU4gKGRlcl9sZW4sIGxlbl9sZW4pOworCSAgcCArPSBsZW5fbGVuOworCisJICBpZiAo YmVyX2xlbikKKwkgICAgKmJlcl9sZW4gKz0gbGVuX2xlbjsKKworCSAgLyogZGVjb2RlIHRoZSBh dmFpbGFibGUgb2N0ZXQgc3RyaW5ncyAqLworCSAgZG8KKwkgICAgeworCSAgICAgIHVuc2lnbmVk IHRtcF9sZW47CisJICAgICAgdW5zaWduZWQgZmxhZ3MgPSBERUNPREVfRkxBR19IQVZFX1RBRzsK KworCSAgICAgIGlmIChkZmxhZ3MgJiBERUNPREVfRkxBR19MRVZFTDEpCisJCWZsYWdzIHw9IERF Q09ERV9GTEFHX0xFVkVMMjsKKwkgICAgICBlbHNlIGlmIChkZmxhZ3MgJiBERUNPREVfRkxBR19M RVZFTDIpCisJCWZsYWdzIHw9IERFQ09ERV9GTEFHX0xFVkVMMzsKKwkgICAgICBlbHNlCisJCWZs YWdzIHw9IERFQ09ERV9GTEFHX0xFVkVMMTsKKworCSAgICAgIHJlc3VsdCA9CisJCV9hc24xX2Rl Y29kZV9zaW1wbGVfYmVyIChldHlwZSwgcCwgZGVyX2xlbiwgJm91dCwgJm91dF9sZW4sCisJCQkJ CSAmdG1wX2xlbiwgZmxhZ3MpOworCSAgICAgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTKQor CQl7CisJCSAgd2FybiAoKTsKKwkJICBnb3RvIGNsZWFudXA7CisJCX0KKworCSAgICAgIHAgKz0g dG1wX2xlbjsKKwkgICAgICBERUNSX0xFTiAoZGVyX2xlbiwgdG1wX2xlbik7CisKKwkgICAgICBp ZiAoYmVyX2xlbikKKwkJKmJlcl9sZW4gKz0gdG1wX2xlbjsKKworCSAgICAgIERFQ1JfTEVOIChk ZXJfbGVuLCAyKTsJLyogd2UgbmVlZCB0aGUgRU9DICovCisKKwkgICAgICByZXN1bHQgPSBhcHBl bmQgKCZ0b3RhbCwgJnRvdGFsX3NpemUsIG91dCwgb3V0X2xlbik7CisJICAgICAgaWYgKHJlc3Vs dCAhPSBBU04xX1NVQ0NFU1MpCisJCXsKKwkJICB3YXJuICgpOworCQkgIGdvdG8gY2xlYW51cDsK KwkJfQorCisJICAgICAgZnJlZSAob3V0KTsKKwkgICAgICBvdXQgPSBOVUxMOworCisJICAgICAg aWYgKHBbMF0gPT0gMCAmJiBwWzFdID09IDApCS8qIEVPQyAqLworCQl7CisJCSAgaWYgKGJlcl9s ZW4pCisJCSAgICAqYmVyX2xlbiArPSAyOworCQkgIGJyZWFrOworCQl9CisKKwkgICAgICAvKiBu byBFT0MgKi8KKwkgICAgICBkZXJfbGVuICs9IDI7CisKKwkgICAgICBpZiAoZGVyX2xlbiA9PSAy KQorCQl7CisJCSAgd2FybiAoKTsKKwkJICByZXN1bHQgPSBBU04xX0RFUl9FUlJPUjsKKwkJICBn b3RvIGNsZWFudXA7CisJCX0KKwkgICAgfQorCSAgd2hpbGUgKDEpOworCX0KKyAgICAgIGVsc2UJ CQkvKiBjb25zdHJ1Y3RlZCAqLworCXsKKwkgIGxvbmcgY29uc3RfbGVuOworCisJICByZXN1bHQg PSBhc24xX2dldF9sZW5ndGhfYmVyIChwLCBkZXJfbGVuLCAmbGVuX2xlbik7CisJICBpZiAocmVz dWx0IDwgMCkKKwkgICAgeworCSAgICAgIHdhcm4gKCk7CisJICAgICAgcmVzdWx0ID0gQVNOMV9E RVJfRVJST1I7CisJICAgICAgZ290byBjbGVhbnVwOworCSAgICB9CisKKwkgIERFQ1JfTEVOIChk ZXJfbGVuLCBsZW5fbGVuKTsKKwkgIHAgKz0gbGVuX2xlbjsKKworCSAgY29uc3RfbGVuID0gcmVz dWx0OworCisJICBpZiAoYmVyX2xlbikKKwkgICAgKmJlcl9sZW4gKz0gbGVuX2xlbjsKKworCSAg LyogZGVjb2RlIHRoZSBhdmFpbGFibGUgb2N0ZXQgc3RyaW5ncyAqLworCSAgd2hpbGUgKGNvbnN0 X2xlbiA+IDApCisJICAgIHsKKwkgICAgICB1bnNpZ25lZCB0bXBfbGVuOworCSAgICAgIHVuc2ln bmVkIGZsYWdzID0gREVDT0RFX0ZMQUdfSEFWRV9UQUc7CisKKwkgICAgICBpZiAoZGZsYWdzICYg REVDT0RFX0ZMQUdfTEVWRUwxKQorCQlmbGFncyB8PSBERUNPREVfRkxBR19MRVZFTDI7CisJICAg ICAgZWxzZSBpZiAoZGZsYWdzICYgREVDT0RFX0ZMQUdfTEVWRUwyKQorCQlmbGFncyB8PSBERUNP REVfRkxBR19MRVZFTDM7CisJICAgICAgZWxzZQorCQlmbGFncyB8PSBERUNPREVfRkxBR19MRVZF TDE7CisKKwkgICAgICByZXN1bHQgPQorCQlfYXNuMV9kZWNvZGVfc2ltcGxlX2JlciAoZXR5cGUs IHAsIGRlcl9sZW4sICZvdXQsICZvdXRfbGVuLAorCQkJCQkgJnRtcF9sZW4sIGZsYWdzKTsKKwkg ICAgICBpZiAocmVzdWx0ICE9IEFTTjFfU1VDQ0VTUykKKwkJeworCQkgIHdhcm4gKCk7CisJCSAg Z290byBjbGVhbnVwOworCQl9CisKKwkgICAgICBwICs9IHRtcF9sZW47CisJICAgICAgREVDUl9M RU4gKGRlcl9sZW4sIHRtcF9sZW4pOworCSAgICAgIERFQ1JfTEVOIChjb25zdF9sZW4sIHRtcF9s ZW4pOworCisJICAgICAgaWYgKGJlcl9sZW4pCisJCSpiZXJfbGVuICs9IHRtcF9sZW47CisKKwkg ICAgICByZXN1bHQgPSBhcHBlbmQgKCZ0b3RhbCwgJnRvdGFsX3NpemUsIG91dCwgb3V0X2xlbik7 CisJICAgICAgaWYgKHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MpCisJCXsKKwkJICB3YXJuICgpOwor CQkgIGdvdG8gY2xlYW51cDsKKwkJfQorCisJICAgICAgZnJlZSAob3V0KTsKKwkgICAgICBvdXQg PSBOVUxMOworCSAgICB9CisJfQorICAgIH0KKyAgZWxzZSBpZiAoY2xhc3MgPT0gRVRZUEVfQ0xB U1MgKGV0eXBlKSkKKyAgICB7CisgICAgICBpZiAoYmVyX2xlbikKKwl7CisJICByZXN1bHQgPSBh c24xX2dldF9sZW5ndGhfZGVyIChwLCBkZXJfbGVuLCAmbGVuX2xlbik7CisJICBpZiAocmVzdWx0 IDwgMCkKKwkgICAgeworCSAgICAgIHdhcm4gKCk7CisJICAgICAgcmVzdWx0ID0gQVNOMV9ERVJf RVJST1I7CisJICAgICAgZ290byBjbGVhbnVwOworCSAgICB9CisJICAqYmVyX2xlbiArPSByZXN1 bHQgKyBsZW5fbGVuOworCX0KKworICAgICAgLyogbm9uLXN0cmluZyB2YWx1ZXMgYXJlIGRlY29k ZWQgYXMgREVSICovCisgICAgICByZXN1bHQgPQorCV9hc24xX2RlY29kZV9zaW1wbGVfZGVyIChl dHlwZSwgZGVyLCBfZGVyX2xlbiwgJmNvdXQsICZvdXRfbGVuLAorCQkJCSBkZmxhZ3MpOworICAg ICAgaWYgKHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MpCisJeworCSAgd2FybiAoKTsKKwkgIGdvdG8g Y2xlYW51cDsKKwl9CisKKyAgICAgIHJlc3VsdCA9IGFwcGVuZCAoJnRvdGFsLCAmdG90YWxfc2l6 ZSwgY291dCwgb3V0X2xlbik7CisgICAgICBpZiAocmVzdWx0ICE9IEFTTjFfU1VDQ0VTUykKKwl7 CisJICB3YXJuICgpOworCSAgZ290byBjbGVhbnVwOworCX0KKyAgICB9CisgIGVsc2UKKyAgICB7 CisgICAgICB3YXJuICgpOworICAgICAgcmVzdWx0ID0gQVNOMV9ERVJfRVJST1I7CisgICAgICBn b3RvIGNsZWFudXA7CisgICAgfQorCisgICpzdHIgPSB0b3RhbDsKKyAgKnN0cl9sZW4gPSB0b3Rh bF9zaXplOworCisgIHJldHVybiBBU04xX1NVQ0NFU1M7CitjbGVhbnVwOgorICBmcmVlIChvdXQp OworICBmcmVlICh0b3RhbCk7CisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKgorICogYXNuMV9k ZWNvZGVfc2ltcGxlX2JlcjoKKyAqIEBldHlwZTogVGhlIHR5cGUgb2YgdGhlIHN0cmluZyB0byBi ZSBlbmNvZGVkIChBU04xX0VUWVBFXykKKyAqIEBkZXI6IHRoZSBlbmNvZGVkIHN0cmluZworICog QF9kZXJfbGVuOiB0aGUgYnl0ZXMgb2YgdGhlIGVuY29kZWQgc3RyaW5nCisgKiBAc3RyOiBhIHBv aW50ZXIgdG8gdGhlIGRhdGEKKyAqIEBzdHJfbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhCisg KiBAYmVyX2xlbjogdGhlIHRvdGFsIGxlbmd0aCBvY2N1cGllZCBieSBCRVIgKG1heSBiZSAlTlVM TCkKKyAqCisgKiBEZWNvZGVzIGEgQkVSIGVuY29kZWQgdHlwZS4gVGhlIG91dHB1dCBpcyBhbiBh bGxvY2F0ZWQgdmFsdWUKKyAqIG9mIHRoZSBkYXRhLiBUaGlzIGRlY29kZXMgQkVSIFNUUklOR1Mg b25seS4gT3RoZXIgdHlwZXMgYXJlCisgKiBkZWNvZGVkIGFzIERFUi4KKyAqCisgKiBSZXR1cm5z OiAlQVNOMV9TVUNDRVNTIGlmIHN1Y2Nlc3NmdWwgb3IgYW4gZXJyb3IgdmFsdWUuCisgKiovCitp bnQKK2FzbjFfZGVjb2RlX3NpbXBsZV9iZXIgKHVuc2lnbmVkIGludCBldHlwZSwgY29uc3QgdW5z aWduZWQgY2hhciAqZGVyLAorCQkJdW5zaWduZWQgaW50IF9kZXJfbGVuLCB1bnNpZ25lZCBjaGFy ICoqc3RyLAorCQkJdW5zaWduZWQgaW50ICpzdHJfbGVuLCB1bnNpZ25lZCBpbnQgKmJlcl9sZW4p Cit7CisgIHJldHVybiBfYXNuMV9kZWNvZGVfc2ltcGxlX2JlciAoZXR5cGUsIGRlciwgX2Rlcl9s ZW4sIHN0ciwgc3RyX2xlbiwgYmVyX2xlbiwKKwkJCQkgIERFQ09ERV9GTEFHX0hBVkVfVEFHKTsK K30KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFzbjEvbGliL2VsZW1lbnQuYyBiL2dy dWItY29yZS9saWIvbGlidGFzbjEvbGliL2VsZW1lbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLmQ0YzU1OGUxMAotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9s aWIvbGlidGFzbjEvbGliL2VsZW1lbnQuYwpAQCAtMCwwICsxLDExMDkgQEAKKy8qCisgKiBDb3B5 cmlnaHQgKEMpIDIwMDAtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqCisg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSUJUQVNOMS4KKyAqCisgKiBUaGUgTElCVEFTTjEgbGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdAorICogYW5kL29y IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorICogMDIxMTAtMTMwMSwg VVNBCisgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworLyogRmlsZTogZWxlbWVudC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyogRGVzY3JpcHRpb246IEZ1bmN0aW9ucyB3aXRoIHRoZSByZWFkIGFuZCB3 cml0ZSAgICAqLworLyogICBmdW5jdGlvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworCisKKyNpbmNsdWRlIDxpbnQuaD4KKyNpbmNsdWRlICJwYXJzZXJfYXV4Lmgi CisjaW5jbHVkZSA8Z3N0ci5oPgorI2luY2x1ZGUgInN0cnVjdHVyZS5oIgorI2luY2x1ZGUgImMt Y3R5cGUuaCIKKyNpbmNsdWRlICJlbGVtZW50LmgiCisKK3ZvaWQKK19hc24xX2hpZXJhcmNoaWNh bF9uYW1lIChhc24xX25vZGVfY29uc3Qgbm9kZSwgY2hhciAqbmFtZSwgaW50IG5hbWVfc2l6ZSkK K3sKKyAgYXNuMV9ub2RlX2NvbnN0IHA7CisgIGNoYXIgdG1wX25hbWVbNjRdOworCisgIHAgPSBu b2RlOworCisgIG5hbWVbMF0gPSAwOworCisgIHdoaWxlIChwICE9IE5VTEwpCisgICAgeworICAg ICAgaWYgKHAtPm5hbWVbMF0gIT0gMCkKKwl7CisJICBfYXNuMV9zdHJfY3B5ICh0bXBfbmFtZSwg c2l6ZW9mICh0bXBfbmFtZSksIG5hbWUpLAorCSAgICBfYXNuMV9zdHJfY3B5IChuYW1lLCBuYW1l X3NpemUsIHAtPm5hbWUpOworCSAgX2FzbjFfc3RyX2NhdCAobmFtZSwgbmFtZV9zaXplLCAiLiIp OworCSAgX2FzbjFfc3RyX2NhdCAobmFtZSwgbmFtZV9zaXplLCB0bXBfbmFtZSk7CisJfQorICAg ICAgcCA9IF9hc24xX2ZpbmRfdXAgKHApOworICAgIH0KKworICBpZiAobmFtZVswXSA9PSAwKQor ICAgIF9hc24xX3N0cl9jcHkgKG5hbWUsIG5hbWVfc2l6ZSwgIlJPT1QiKTsKK30KKworCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9jb252ZXJ0X2ludGVnZXIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBjb252ZXJ0cyBhbiBpbnRlZ2Vy IGZyb20gYSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5nICovCisvKiAgICAgICAgICAgICAgdG8gZGVy IGRlY29kaW5nLiBUaGUgY29udmVydGlvbiBmcm9tIGEgbnVsbCAgICAgICAqLworLyogICAgICAg ICAgICAgIHRlcm1pbmF0ZWQgc3RyaW5nIHRvIGFuIGludGVnZXIgaXMgbWFkZSB3aXRoICAgICAg Ki8KKy8qICAgICAgICAgICAgICB0aGUgJ3N0cnRvbCcgZnVuY3Rpb24uICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiBQYXJhbWV0ZXJzOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICB2YWx1ZTogbnVsbCB0ZXJtaW5hdGVk IHN0cmluZyB0byBjb252ZXJ0LiAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgdmFsdWVfb3V0 OiBjb252ZXJ0aW9uIHJlc3VsdCAobWVtb3J5IG11c3QgYmUgYWxyZWFkeSAgICAgICAgICovCisv KiAgICAgICAgICAgICAgYWxsb2NhdGVkKS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyogICB2YWx1ZV9vdXRfc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIG9mIHZhbHVl X291dC4gICAgICAgICAgICAgICAgKi8KKy8qICAgbGVuOiBudW1iZXIgb2Ygc2lnbmlmaWNhbnQg Ynl0ZSBvZiB2YWx1ZV9vdXQuICAgICAgICAgICAgICAgICovCisvKiBSZXR1cm46IEFTTjFfTUVN X0VSUk9SIG9yIEFTTjFfU1VDQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KK2ludAorX2FzbjFfY29udmVydF9pbnRlZ2VyIChjb25zdCB1bnNpZ25lZCBjaGFyICp2 YWx1ZSwgdW5zaWduZWQgY2hhciAqdmFsdWVfb3V0LAorCQkgICAgICAgaW50IHZhbHVlX291dF9z aXplLCBpbnQgKmxlbikKK3sKKyAgY2hhciBuZWdhdGl2ZTsKKyAgdW5zaWduZWQgY2hhciB2YWxb U0laRU9GX1VOU0lHTkVEX0xPTkdfSU5UXTsKKyAgbG9uZyB2YWx0bXA7CisgIGludCBrLCBrMjsK KworICB2YWx0bXAgPSBfYXNuMV9zdHJ0b2wgKHZhbHVlLCBOVUxMLCAxMCk7CisKKyAgZm9yIChr ID0gMDsgayA8IFNJWkVPRl9VTlNJR05FRF9MT05HX0lOVDsgaysrKQorICAgIHsKKyAgICAgIHZh bFtTSVpFT0ZfVU5TSUdORURfTE9OR19JTlQgLSBrIC0gMV0gPSAodmFsdG1wID4+ICg4ICogaykp ICYgMHhGRjsKKyAgICB9CisKKyAgaWYgKHZhbFswXSAmIDB4ODApCisgICAgbmVnYXRpdmUgPSAx OworICBlbHNlCisgICAgbmVnYXRpdmUgPSAwOworCisgIGZvciAoayA9IDA7IGsgPCBTSVpFT0Zf VU5TSUdORURfTE9OR19JTlQgLSAxOyBrKyspCisgICAgeworICAgICAgaWYgKG5lZ2F0aXZlICYm ICh2YWxba10gIT0gMHhGRikpCisJYnJlYWs7CisgICAgICBlbHNlIGlmICghbmVnYXRpdmUgJiYg dmFsW2tdKQorCWJyZWFrOworICAgIH0KKworICBpZiAoKG5lZ2F0aXZlICYmICEodmFsW2tdICYg MHg4MCkpIHx8ICghbmVnYXRpdmUgJiYgKHZhbFtrXSAmIDB4ODApKSkKKyAgICBrLS07CisKKyAg KmxlbiA9IFNJWkVPRl9VTlNJR05FRF9MT05HX0lOVCAtIGs7CisKKyAgaWYgKFNJWkVPRl9VTlNJ R05FRF9MT05HX0lOVCAtIGsgPiB2YWx1ZV9vdXRfc2l6ZSkKKyAgICAvKiBWQUxVRV9PVVQgaXMg dG9vIHNob3J0IHRvIGNvbnRhaW4gdGhlIHZhbHVlIGNvbnZlcnNpb24gKi8KKyAgICByZXR1cm4g QVNOMV9NRU1fRVJST1I7CisKKyAgaWYgKHZhbHVlX291dCAhPSBOVUxMKQorICAgIHsKKyAgICAg IGZvciAoazIgPSBrOyBrMiA8IFNJWkVPRl9VTlNJR05FRF9MT05HX0lOVDsgazIrKykKKwl2YWx1 ZV9vdXRbazIgLSBrXSA9IHZhbFtrMl07CisgICAgfQorCisjaWYgMAorICBwcmludGYgKCJfYXNu MV9jb252ZXJ0X2ludGVnZXI6IHZhbHVlSW49JXMsIGxlbk91dD0lZCIsIHZhbHVlLCAqbGVuKTsK KyAgZm9yIChrID0gMDsgayA8IFNJWkVPRl9VTlNJR05FRF9MT05HX0lOVDsgaysrKQorICAgIHBy aW50ZiAoIiwgdk91dFslZF09JWQiLCBrLCB2YWx1ZV9vdXRba10pOworICBwcmludGYgKCJcbiIp OworI2VuZGlmCisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworLyogQXBwZW5kcyBhIG5l dyBlbGVtZW50IGludG8gdGhlIHNlcXVlbmNlIChvciBzZXQpIGRlZmluZWQgYnkgdGhpcworICog bm9kZS4gVGhlIG5ldyBlbGVtZW50IHdpbGwgaGF2ZSBhIG5hbWUgb2YgJz9udW1iZXInLCB3aGVy ZSBudW1iZXIKKyAqIGlzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzZWQgc2VyaWFsIG51bWJlci4K KyAqCisgKiBUaGUgbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0IG1heSBiZSBwcm92aWRlZCBpbiBA cGNhY2hlLCB0byBhdm9pZAorICogdHJhdmVyc2luZyB0aGUgbGlzdCwgYW4gZXhwZW5zaXZlIG9w ZXJhdGlvbiBpbiBsb25nIGxpc3RzLgorICoKKyAqIE9uIHN1Y2Nlc3MgaXQgcmV0dXJucyBpbiBA cGNhY2hlIHRoZSBhZGRlZCBlbGVtZW50ICh3aGljaCBpcyB0aGUKKyAqIHRhaWwgaW4gdGhlIGxp c3Qgb2YgYWRkZWQgZWxlbWVudHMpLgorICovCitpbnQKK19hc24xX2FwcGVuZF9zZXF1ZW5jZV9z ZXQgKGFzbjFfbm9kZSBub2RlLCBzdHJ1Y3Qgbm9kZV90YWlsX2NhY2hlX3N0ICpwY2FjaGUpCit7 CisgIGFzbjFfbm9kZSBwLCBwMjsKKyAgY2hhciB0ZW1wW0xUT1NUUl9NQVhfU0laRSArIDFdOwor ICBsb25nIG47CisKKyAgaWYgKCFub2RlIHx8ICEobm9kZS0+ZG93bikpCisgICAgcmV0dXJuIEFT TjFfR0VORVJJQ19FUlJPUjsKKworICBwID0gbm9kZS0+ZG93bjsKKyAgd2hpbGUgKCh0eXBlX2Zp ZWxkIChwLT50eXBlKSA9PSBBU04xX0VUWVBFX1RBRykKKwkgfHwgKHR5cGVfZmllbGQgKHAtPnR5 cGUpID09IEFTTjFfRVRZUEVfU0laRSkpCisgICAgcCA9IHAtPnJpZ2h0OworCisgIHAyID0gX2Fz bjFfY29weV9zdHJ1Y3R1cmUzIChwKTsKKyAgaWYgKHAyID09IE5VTEwpCisgICAgcmV0dXJuIEFT TjFfR0VORVJJQ19FUlJPUjsKKworICBpZiAocGNhY2hlID09IE5VTEwgfHwgcGNhY2hlLT50YWls ID09IE5VTEwgfHwgcGNhY2hlLT5oZWFkICE9IG5vZGUpCisgICAgeworICAgICAgd2hpbGUgKHAt PnJpZ2h0KQorCXsKKwkgIHAgPSBwLT5yaWdodDsKKwl9CisgICAgfQorICBlbHNlCisgICAgewor ICAgICAgcCA9IHBjYWNoZS0+dGFpbDsKKyAgICB9CisKKyAgX2FzbjFfc2V0X3JpZ2h0IChwLCBw Mik7CisgIGlmIChwY2FjaGUpCisgICAgeworICAgICAgcGNhY2hlLT5oZWFkID0gbm9kZTsKKyAg ICAgIHBjYWNoZS0+dGFpbCA9IHAyOworICAgIH0KKworICBpZiAocC0+bmFtZVswXSA9PSAwKQor ICAgIF9hc24xX3N0cl9jcHkgKHRlbXAsIHNpemVvZiAodGVtcCksICI/MSIpOworICBlbHNlCisg ICAgeworICAgICAgbiA9IHN0cnRvbCAocC0+bmFtZSArIDEsIE5VTEwsIDApOworICAgICAgbisr OworICAgICAgdGVtcFswXSA9ICc/JzsKKyAgICAgIF9hc24xX2x0b3N0ciAobiwgdGVtcCArIDEp OworICAgIH0KKyAgX2FzbjFfc2V0X25hbWUgKHAyLCB0ZW1wKTsKKyAgLyogIHAyLT50eXBlIHw9 IENPTlNUX09QVElPTjsgKi8KKworICByZXR1cm4gQVNOMV9TVUNDRVNTOworfQorCisKKy8qKgor ICogYXNuMV93cml0ZV92YWx1ZToKKyAqIEBub2RlX3Jvb3Q6IHBvaW50ZXIgdG8gYSBzdHJ1Y3R1 cmUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudCBpbnNpZGUgdGhlIHN0cnVjdHVy ZSB0aGF0IHlvdSB3YW50IHRvIHNldC4KKyAqIEBpdmFsdWU6IHZlY3RvciB1c2VkIHRvIHNwZWNp ZnkgdGhlIHZhbHVlIHRvIHNldC4gSWYgbGVuIGlzID4wLAorICogICBWQUxVRSBtdXN0IGJlIGEg dHdvJ3MgY29tcGxlbWVudCBmb3JtIGludGVnZXIuICBpZiBsZW49MCAqVkFMVUUKKyAqICAgbXVz dCBiZSBhIG51bGwgdGVybWluYXRlZCBzdHJpbmcgd2l0aCBhbiBpbnRlZ2VyIHZhbHVlLgorICog QGxlbjogbnVtYmVyIG9mIGJ5dGVzIG9mICp2YWx1ZSB0byB1c2UgdG8gc2V0IHRoZSB2YWx1ZToK KyAqICAgdmFsdWVbMF0uLnZhbHVlW2xlbi0xXSBvciAwIGlmIHZhbHVlIGlzIGEgbnVsbCB0ZXJt aW5hdGVkIHN0cmluZworICoKKyAqIFNldCB0aGUgdmFsdWUgb2Ygb25lIGVsZW1lbnQgaW5zaWRl IGEgc3RydWN0dXJlLgorICoKKyAqIElmIGFuIGVsZW1lbnQgaXMgT1BUSU9OQUwgYW5kIHlvdSB3 YW50IHRvIGRlbGV0ZSBpdCwgeW91IG11c3QgdXNlCisgKiB0aGUgdmFsdWU9TlVMTCBhbmQgbGVu PTAuICBVc2luZyAicGtpeC5hc24iOgorICoKKyAqIHJlc3VsdD1hc24xX3dyaXRlX3ZhbHVlKGNl cnQsICJ0YnNDZXJ0aWZpY2F0ZS5pc3N1ZXJVbmlxdWVJRCIsCisgKiBOVUxMLCAwKTsKKyAqCisg KiBEZXNjcmlwdGlvbiBmb3IgZWFjaCB0eXBlOgorICoKKyAqIElOVEVHRVI6IFZBTFVFIG11c3Qg Y29udGFpbiBhIHR3bydzIGNvbXBsZW1lbnQgZm9ybSBpbnRlZ2VyLgorICoKKyAqICAgICAgICAg ICAgdmFsdWVbMF09MHhGRiAsICAgICAgICAgICAgICAgbGVuPTEgLT4gaW50ZWdlcj0tMS4KKyAq ICAgICAgICAgICAgdmFsdWVbMF09MHhGRiB2YWx1ZVsxXT0weEZGICwgbGVuPTIgLT4gaW50ZWdl cj0tMS4KKyAqICAgICAgICAgICAgdmFsdWVbMF09MHgwMSAsICAgICAgICAgICAgICAgbGVuPTEg LT4gaW50ZWdlcj0gMS4KKyAqICAgICAgICAgICAgdmFsdWVbMF09MHgwMCB2YWx1ZVsxXT0weDAx ICwgbGVuPTIgLT4gaW50ZWdlcj0gMS4KKyAqICAgICAgICAgICAgdmFsdWU9IjEyMyIgICAgICAg ICAgICAgICAgICwgbGVuPTAgLT4gaW50ZWdlcj0gMTIzLgorICoKKyAqIEVOVU1FUkFURUQ6IEFz IElOVEVHRVIgKGJ1dCBvbmx5IHdpdGggbm90IG5lZ2F0aXZlIG51bWJlcnMpLgorICoKKyAqIEJP T0xFQU46IFZBTFVFIG11c3QgYmUgdGhlIG51bGwgdGVybWluYXRlZCBzdHJpbmcgIlRSVUUiIG9y CisgKiAgICJGQUxTRSIgYW5kIExFTiAhPSAwLgorICoKKyAqICAgICAgICAgICAgdmFsdWU9IlRS VUUiICwgbGVuPTEgLT4gYm9vbGVhbj1UUlVFLgorICogICAgICAgICAgICB2YWx1ZT0iRkFMU0Ui ICwgbGVuPTEgLT4gYm9vbGVhbj1GQUxTRS4KKyAqCisgKiBPQkpFQ1QgSURFTlRJRklFUjogVkFM VUUgbXVzdCBiZSBhIG51bGwgdGVybWluYXRlZCBzdHJpbmcgd2l0aAorICogICBlYWNoIG51bWJl ciBzZXBhcmF0ZWQgYnkgYSBkb3QgKGUuZy4gIjEuMi4zLjU0My4xIikuICBMRU4gIT0gMC4KKyAq CisgKiAgICAgICAgICAgIHZhbHVlPSIxIDIgODQwIDEwMDQwIDQgMyIgLCBsZW49MSAtPiBPSUQ9 ZHNhLXdpdGgtc2hhLgorICoKKyAqIFVUQ1RpbWU6IFZBTFVFIG11c3QgYmUgYSBudWxsIHRlcm1p bmF0ZWQgc3RyaW5nIGluIG9uZSBvZiB0aGVzZQorICogICBmb3JtYXRzOiAiWVlNTUREaGhtbXNz WiIsICJZWU1NRERoaG1tc3NaIiwKKyAqICAgIllZTU1ERGhobW1zcytoaCdtbSciLCAiWVlNTURE aGhtbXNzLWhoJ21tJyIsCisgKiAgICJZWU1NRERoaG1tK2hoJ21tJyIsIG9yICJZWU1NRERoaG1t LWhoJ21tJyIuICBMRU4gIT0gMC4KKyAqCisgKiAgICAgICAgICAgIHZhbHVlPSI5ODAxMDExMjAw WiIgLCBsZW49MSAtPiB0aW1lPUphbm51YXJ5IDFzdCwgMTk5OAorICogICAgICAgICAgICBhdCAx MmggMDBtIEdyZWVud2ljaCBNZWFuIFRpbWUKKyAqCisgKiBHZW5lcmFsaXplZFRpbWU6IFZBTFVF IG11c3QgYmUgaW4gb25lIG9mIHRoaXMgZm9ybWF0OgorICogICAiWVlZWU1NRERoaG1tc3Muc1oi LCAiWVlZWU1NRERoaG1tc3Muc1oiLAorICogICAiWVlZWU1NRERoaG1tc3MucytoaCdtbSciLCAi WVlZWU1NRERoaG1tc3Mucy1oaCdtbSciLAorICogICAiWVlZWU1NRERoaG1tK2hoJ21tJyIsIG9y ICJZWVlZTU1ERGhobW0taGgnbW0nIiB3aGVyZSBzcy5zCisgKiAgIGluZGljYXRlcyB0aGUgc2Vj b25kcyB3aXRoIGFueSBwcmVjaXNpb24gbGlrZSAiMTAuMSIgb3IgIjAxLjAyIi4KKyAqICAgTEVO ICE9IDAKKyAqCisgKiAgICAgICAgICAgIHZhbHVlPSIyMDAxMDEwMTEyMDAxLjEyLTA3MDAiICwg bGVuPTEgLT4gdGltZT1KYW5udWFyeQorICogICAgICAgICAgICAxc3QsIDIwMDEgYXQgMTJoIDAw bSAwMS4xMnMgUGFjaWZpYyBEYXlsaWdodCBUaW1lCisgKgorICogT0NURVQgU1RSSU5HOiBWQUxV RSBjb250YWlucyB0aGUgb2N0ZXQgc3RyaW5nIGFuZCBMRU4gaXMgdGhlCisgKiAgIG51bWJlciBv ZiBvY3RldHMuCisgKgorICogICAgICAgICAgICB2YWx1ZT0iJFxiYWNrc2xhc2gkeDAxJFxiYWNr c2xhc2gkeDAyJFxiYWNrc2xhc2gkeDAzIiAsCisgKiAgICAgICAgICAgIGxlbj0zIC0+IHRocmVl IGJ5dGVzIG9jdGV0IHN0cmluZworICoKKyAqIEdlbmVyYWxTdHJpbmc6IFZBTFVFIGNvbnRhaW5z IHRoZSBnZW5lcmFsc3RyaW5nIGFuZCBMRU4gaXMgdGhlCisgKiAgIG51bWJlciBvZiBvY3RldHMu CisgKgorICogICAgICAgICAgICB2YWx1ZT0iJFxiYWNrc2xhc2gkeDAxJFxiYWNrc2xhc2gkeDAy JFxiYWNrc2xhc2gkeDAzIiAsCisgKiAgICAgICAgICAgIGxlbj0zIC0+IHRocmVlIGJ5dGVzIGdl bmVyYWxzdHJpbmcKKyAqCisgKiBCSVQgU1RSSU5HOiBWQUxVRSBjb250YWlucyB0aGUgYml0IHN0 cmluZyBvcmdhbml6ZWQgYnkgYnl0ZXMgYW5kCisgKiAgIExFTiBpcyB0aGUgbnVtYmVyIG9mIGJp dHMuCisgKgorICogICB2YWx1ZT0iJFxiYWNrc2xhc2gkeENGIiAsIGxlbj02IC0+IGJpdCBzdHJp bmc9IjExMDAxMSIgKHNpeAorICogICBiaXRzKQorICoKKyAqIENIT0lDRTogaWYgTkFNRSBpbmRp Y2F0ZXMgYSBjaG9pY2UgdHlwZSwgVkFMVUUgbXVzdCBzcGVjaWZ5IG9uZSBvZgorICogICB0aGUg YWx0ZXJuYXRpdmVzIHdpdGggYSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5nLiBMRU4gIT0gMC4gVXNp bmcKKyAqICAgInBraXguYXNuIlw6CisgKgorICogICAgICAgICAgIHJlc3VsdD1hc24xX3dyaXRl X3ZhbHVlKGNlcnQsCisgKiAgICAgICAgICAgImNlcnRpZmljYXRlMS50YnNDZXJ0aWZpY2F0ZS5z dWJqZWN0IiwgInJkblNlcXVlbmNlIiwKKyAqICAgICAgICAgICAxKTsKKyAqCisgKiBBTlk6IFZB TFVFIGluZGljYXRlcyB0aGUgZGVyIGVuY29kaW5nIG9mIGEgc3RydWN0dXJlLiAgTEVOICE9IDAu CisgKgorICogU0VRVUVOQ0UgT0Y6IFZBTFVFIG11c3QgYmUgdGhlIG51bGwgdGVybWluYXRlZCBz dHJpbmcgIk5FVyIgYW5kCisgKiAgIExFTiAhPSAwLiBXaXRoIHRoaXMgaW5zdHJ1Y3Rpb24gYW5v dGhlciBlbGVtZW50IGlzIGFwcGVuZGVkIGluCisgKiAgIHRoZSBzZXF1ZW5jZS4gVGhlIG5hbWUg b2YgdGhpcyBlbGVtZW50IHdpbGwgYmUgIj8xIiBpZiBpdCdzIHRoZQorICogICBmaXJzdCBvbmUs ICI/MiIgZm9yIHRoZSBzZWNvbmQgYW5kIHNvIG9uLgorICoKKyAqICAgVXNpbmcgInBraXguYXNu Ilw6CisgKgorICogICByZXN1bHQ9YXNuMV93cml0ZV92YWx1ZShjZXJ0LAorICogICAiY2VydGlm aWNhdGUxLnRic0NlcnRpZmljYXRlLnN1YmplY3QucmRuU2VxdWVuY2UiLCAiTkVXIiwgMSk7Cisg KgorICogU0VUIE9GOiB0aGUgc2FtZSBhcyBTRVFVRU5DRSBPRi4gIFVzaW5nICJwa2l4LmFzbiI6 CisgKgorICogICAgICAgICAgIHJlc3VsdD1hc24xX3dyaXRlX3ZhbHVlKGNlcnQsCisgKiAgICAg ICAgICAgInRic0NlcnRpZmljYXRlLnN1YmplY3QucmRuU2VxdWVuY2UuP0xBU1QiLCAiTkVXIiwg MSk7CisgKgorICogUmV0dXJuczogJUFTTjFfU1VDQ0VTUyBpZiB0aGUgdmFsdWUgd2FzIHNldCwK KyAqICAgJUFTTjFfRUxFTUVOVF9OT1RfRk9VTkQgaWYgQG5hbWUgaXMgbm90IGEgdmFsaWQgZWxl bWVudCwgYW5kCisgKiAgICVBU04xX1ZBTFVFX05PVF9WQUxJRCBpZiBAaXZhbHVlIGhhcyBhIHdy b25nIGZvcm1hdC4KKyAqKi8KK2ludAorYXNuMV93cml0ZV92YWx1ZSAoYXNuMV9ub2RlIG5vZGVf cm9vdCwgY29uc3QgY2hhciAqbmFtZSwKKwkJICBjb25zdCB2b2lkICppdmFsdWUsIGludCBsZW4p Cit7CisgIGFzbjFfbm9kZSBub2RlLCBwLCBwMjsKKyAgdW5zaWduZWQgY2hhciAqdGVtcCwgKnZh bHVlX3RlbXAgPSBOVUxMLCAqZGVmYXVsdF90ZW1wID0gTlVMTDsKKyAgaW50IGxlbjIsIGssIGsy LCBuZWdhdGl2ZTsKKyAgc2l6ZV90IGk7CisgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlID0g aXZhbHVlOworICB1bnNpZ25lZCBpbnQgdHlwZTsKKworICBub2RlID0gYXNuMV9maW5kX25vZGUg KG5vZGVfcm9vdCwgbmFtZSk7CisgIGlmIChub2RlID09IE5VTEwpCisgICAgcmV0dXJuIEFTTjFf RUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgaWYgKChub2RlLT50eXBlICYgQ09OU1RfT1BUSU9OKSAm JiAodmFsdWUgPT0gTlVMTCkgJiYgKGxlbiA9PSAwKSkKKyAgICB7CisgICAgICBhc24xX2RlbGV0 ZV9zdHJ1Y3R1cmUgKCZub2RlKTsKKyAgICAgIHJldHVybiBBU04xX1NVQ0NFU1M7CisgICAgfQor CisgIHR5cGUgPSB0eXBlX2ZpZWxkIChub2RlLT50eXBlKTsKKworICBpZiAoKHR5cGUgPT0gQVNO MV9FVFlQRV9TRVFVRU5DRV9PRiB8fCB0eXBlID09IEFTTjFfRVRZUEVfU0VUX09GKQorICAgICAg JiYgKHZhbHVlID09IE5VTEwpICYmIChsZW4gPT0gMCkpCisgICAgeworICAgICAgcCA9IG5vZGUt PmRvd247CisgICAgICB3aGlsZSAoKHR5cGVfZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVf VEFHKQorCSAgICAgfHwgKHR5cGVfZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVfU0laRSkp CisJcCA9IHAtPnJpZ2h0OworCisgICAgICB3aGlsZSAocC0+cmlnaHQpCisJYXNuMV9kZWxldGVf c3RydWN0dXJlICgmcC0+cmlnaHQpOworCisgICAgICByZXR1cm4gQVNOMV9TVUNDRVNTOworICAg IH0KKworICAvKiBEb24ndCBhbGxvdyBlbGVtZW50IGRlbGV0aW9uIGZvciBvdGhlciB0eXBlcyAq LworICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICB7CisgICAgICByZXR1cm4gQVNOMV9WQUxVRV9O T1RfVkFMSUQ7CisgICAgfQorCisgIHN3aXRjaCAodHlwZSkKKyAgICB7CisgICAgY2FzZSBBU04x X0VUWVBFX0JPT0xFQU46CisgICAgICBpZiAoIV9hc24xX3N0cmNtcCAodmFsdWUsICJUUlVFIikp CisJeworCSAgaWYgKG5vZGUtPnR5cGUgJiBDT05TVF9ERUZBVUxUKQorCSAgICB7CisJICAgICAg cCA9IG5vZGUtPmRvd247CisJICAgICAgd2hpbGUgKHR5cGVfZmllbGQgKHAtPnR5cGUpICE9IEFT TjFfRVRZUEVfREVGQVVMVCkKKwkJcCA9IHAtPnJpZ2h0OworCSAgICAgIGlmIChwLT50eXBlICYg Q09OU1RfVFJVRSkKKwkJX2FzbjFfc2V0X3ZhbHVlIChub2RlLCBOVUxMLCAwKTsKKwkgICAgICBl bHNlCisJCV9hc24xX3NldF92YWx1ZSAobm9kZSwgIlQiLCAxKTsKKwkgICAgfQorCSAgZWxzZQor CSAgICBfYXNuMV9zZXRfdmFsdWUgKG5vZGUsICJUIiwgMSk7CisJfQorICAgICAgZWxzZSBpZiAo IV9hc24xX3N0cmNtcCAodmFsdWUsICJGQUxTRSIpKQorCXsKKwkgIGlmIChub2RlLT50eXBlICYg Q09OU1RfREVGQVVMVCkKKwkgICAgeworCSAgICAgIHAgPSBub2RlLT5kb3duOworCSAgICAgIHdo aWxlICh0eXBlX2ZpZWxkIChwLT50eXBlKSAhPSBBU04xX0VUWVBFX0RFRkFVTFQpCisJCXAgPSBw LT5yaWdodDsKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX0ZBTFNFKQorCQlfYXNuMV9zZXRf dmFsdWUgKG5vZGUsIE5VTEwsIDApOworCSAgICAgIGVsc2UKKwkJX2FzbjFfc2V0X3ZhbHVlIChu b2RlLCAiRiIsIDEpOworCSAgICB9CisJICBlbHNlCisJICAgIF9hc24xX3NldF92YWx1ZSAobm9k ZSwgIkYiLCAxKTsKKwl9CisgICAgICBlbHNlCisJcmV0dXJuIEFTTjFfVkFMVUVfTk9UX1ZBTElE OworICAgICAgYnJlYWs7CisgICAgY2FzZSBBU04xX0VUWVBFX0lOVEVHRVI6CisgICAgY2FzZSBB U04xX0VUWVBFX0VOVU1FUkFURUQ6CisgICAgICBpZiAobGVuID09IDApCisJeworCSAgaWYgKChj X2lzZGlnaXQgKHZhbHVlWzBdKSkgfHwgKHZhbHVlWzBdID09ICctJykpCisJICAgIHsKKwkgICAg ICB2YWx1ZV90ZW1wID0gbWFsbG9jIChTSVpFT0ZfVU5TSUdORURfTE9OR19JTlQpOworCSAgICAg IGlmICh2YWx1ZV90ZW1wID09IE5VTEwpCisJCXJldHVybiBBU04xX01FTV9BTExPQ19FUlJPUjsK KworCSAgICAgIF9hc24xX2NvbnZlcnRfaW50ZWdlciAodmFsdWUsIHZhbHVlX3RlbXAsCisJCQkJ ICAgICBTSVpFT0ZfVU5TSUdORURfTE9OR19JTlQsICZsZW4pOworCSAgICB9CisJICBlbHNlCisJ ICAgIHsJCQkvKiBpcyBhbiBpZGVudGlmaWVyIGxpa2UgdjEgKi8KKwkgICAgICBpZiAoIShub2Rl LT50eXBlICYgQ09OU1RfTElTVCkpCisJCXJldHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsKKwkg ICAgICBwID0gbm9kZS0+ZG93bjsKKwkgICAgICB3aGlsZSAocCkKKwkJeworCQkgIGlmICh0eXBl X2ZpZWxkIChwLT50eXBlKSA9PSBBU04xX0VUWVBFX0NPTlNUQU5UKQorCQkgICAgeworCQkgICAg ICBpZiAoIV9hc24xX3N0cmNtcCAocC0+bmFtZSwgdmFsdWUpKQorCQkJeworCQkJICB2YWx1ZV90 ZW1wID0gbWFsbG9jIChTSVpFT0ZfVU5TSUdORURfTE9OR19JTlQpOworCQkJICBpZiAodmFsdWVf dGVtcCA9PSBOVUxMKQorCQkJICAgIHJldHVybiBBU04xX01FTV9BTExPQ19FUlJPUjsKKworCQkJ ICBfYXNuMV9jb252ZXJ0X2ludGVnZXIgKHAtPnZhbHVlLAorCQkJCQkJIHZhbHVlX3RlbXAsCisJ CQkJCQkgU0laRU9GX1VOU0lHTkVEX0xPTkdfSU5ULAorCQkJCQkJICZsZW4pOworCQkJICBicmVh azsKKwkJCX0KKwkJICAgIH0KKwkJICBwID0gcC0+cmlnaHQ7CisJCX0KKwkgICAgICBpZiAocCA9 PSBOVUxMKQorCQlyZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJICAgIH0KKwl9CisgICAg ICBlbHNlCisJewkJCS8qIGxlbiAhPSAwICovCisJICB2YWx1ZV90ZW1wID0gbWFsbG9jIChsZW4p OworCSAgaWYgKHZhbHVlX3RlbXAgPT0gTlVMTCkKKwkgICAgcmV0dXJuIEFTTjFfTUVNX0FMTE9D X0VSUk9SOworCSAgbWVtY3B5ICh2YWx1ZV90ZW1wLCB2YWx1ZSwgbGVuKTsKKwl9CisKKyAgICAg IGlmICh2YWx1ZV90ZW1wWzBdICYgMHg4MCkKKwluZWdhdGl2ZSA9IDE7CisgICAgICBlbHNlCisJ bmVnYXRpdmUgPSAwOworCisgICAgICBpZiAobmVnYXRpdmUgJiYgKHR5cGVfZmllbGQgKG5vZGUt PnR5cGUpID09IEFTTjFfRVRZUEVfRU5VTUVSQVRFRCkpCisJeworCSAgZnJlZSAodmFsdWVfdGVt cCk7CisJICByZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJfQorCisgICAgICBmb3IgKGsg PSAwOyBrIDwgbGVuIC0gMTsgaysrKQorCWlmIChuZWdhdGl2ZSAmJiAodmFsdWVfdGVtcFtrXSAh PSAweEZGKSkKKwkgIGJyZWFrOworCWVsc2UgaWYgKCFuZWdhdGl2ZSAmJiB2YWx1ZV90ZW1wW2td KQorCSAgYnJlYWs7CisKKyAgICAgIGlmICgobmVnYXRpdmUgJiYgISh2YWx1ZV90ZW1wW2tdICYg MHg4MCkpIHx8CisJICAoIW5lZ2F0aXZlICYmICh2YWx1ZV90ZW1wW2tdICYgMHg4MCkpKQorCWst LTsKKworICAgICAgX2FzbjFfc2V0X3ZhbHVlX2x2IChub2RlLCB2YWx1ZV90ZW1wICsgaywgbGVu IC0gayk7CisKKyAgICAgIGlmIChub2RlLT50eXBlICYgQ09OU1RfREVGQVVMVCkKKwl7CisJICBw ID0gbm9kZS0+ZG93bjsKKwkgIHdoaWxlICh0eXBlX2ZpZWxkIChwLT50eXBlKSAhPSBBU04xX0VU WVBFX0RFRkFVTFQpCisJICAgIHAgPSBwLT5yaWdodDsKKwkgIGlmICgoY19pc2RpZ2l0IChwLT52 YWx1ZVswXSkpIHx8IChwLT52YWx1ZVswXSA9PSAnLScpKQorCSAgICB7CisJICAgICAgZGVmYXVs dF90ZW1wID0gbWFsbG9jIChTSVpFT0ZfVU5TSUdORURfTE9OR19JTlQpOworCSAgICAgIGlmIChk ZWZhdWx0X3RlbXAgPT0gTlVMTCkKKwkJeworCQkgIGZyZWUgKHZhbHVlX3RlbXApOworCQkgIHJl dHVybiBBU04xX01FTV9BTExPQ19FUlJPUjsKKwkJfQorCisJICAgICAgX2FzbjFfY29udmVydF9p bnRlZ2VyIChwLT52YWx1ZSwgZGVmYXVsdF90ZW1wLAorCQkJCSAgICAgU0laRU9GX1VOU0lHTkVE X0xPTkdfSU5ULCAmbGVuMik7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgewkJCS8qIGlzIGFuIGlk ZW50aWZpZXIgbGlrZSB2MSAqLworCSAgICAgIGlmICghKG5vZGUtPnR5cGUgJiBDT05TVF9MSVNU KSkKKwkJeworCQkgIGZyZWUgKHZhbHVlX3RlbXApOworCQkgIHJldHVybiBBU04xX1ZBTFVFX05P VF9WQUxJRDsKKwkJfQorCSAgICAgIHAyID0gbm9kZS0+ZG93bjsKKwkgICAgICB3aGlsZSAocDIp CisJCXsKKwkJICBpZiAodHlwZV9maWVsZCAocDItPnR5cGUpID09IEFTTjFfRVRZUEVfQ09OU1RB TlQpCisJCSAgICB7CisJCSAgICAgIGlmICghX2FzbjFfc3RyY21wIChwMi0+bmFtZSwgcC0+dmFs dWUpKQorCQkJeworCQkJICBkZWZhdWx0X3RlbXAgPSBtYWxsb2MgKFNJWkVPRl9VTlNJR05FRF9M T05HX0lOVCk7CisJCQkgIGlmIChkZWZhdWx0X3RlbXAgPT0gTlVMTCkKKwkJCSAgICB7CisJCQkg ICAgICBmcmVlICh2YWx1ZV90ZW1wKTsKKwkJCSAgICAgIHJldHVybiBBU04xX01FTV9BTExPQ19F UlJPUjsKKwkJCSAgICB9CisKKwkJCSAgX2FzbjFfY29udmVydF9pbnRlZ2VyIChwMi0+dmFsdWUs CisJCQkJCQkgZGVmYXVsdF90ZW1wLAorCQkJCQkJIFNJWkVPRl9VTlNJR05FRF9MT05HX0lOVCwK KwkJCQkJCSAmbGVuMik7CisJCQkgIGJyZWFrOworCQkJfQorCQkgICAgfQorCQkgIHAyID0gcDIt PnJpZ2h0OworCQl9CisJICAgICAgaWYgKHAyID09IE5VTEwpCisJCXsKKwkJICBmcmVlICh2YWx1 ZV90ZW1wKTsKKwkJICByZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJCX0KKwkgICAgfQor CisKKwkgIGlmICgobGVuIC0gaykgPT0gbGVuMikKKwkgICAgeworCSAgICAgIGZvciAoazIgPSAw OyBrMiA8IGxlbjI7IGsyKyspCisJCWlmICh2YWx1ZV90ZW1wW2sgKyBrMl0gIT0gZGVmYXVsdF90 ZW1wW2syXSkKKwkJICB7CisJCSAgICBicmVhazsKKwkJICB9CisJICAgICAgaWYgKGsyID09IGxl bjIpCisJCV9hc24xX3NldF92YWx1ZSAobm9kZSwgTlVMTCwgMCk7CisJICAgIH0KKwkgIGZyZWUg KGRlZmF1bHRfdGVtcCk7CisJfQorICAgICAgZnJlZSAodmFsdWVfdGVtcCk7CisgICAgICBicmVh azsKKyAgICBjYXNlIEFTTjFfRVRZUEVfT0JKRUNUX0lEOgorICAgICAgZm9yIChpID0gMDsgaSA8 IF9hc24xX3N0cmxlbiAodmFsdWUpOyBpKyspCisJaWYgKCghY19pc2RpZ2l0ICh2YWx1ZVtpXSkp ICYmICh2YWx1ZVtpXSAhPSAnLicpICYmICh2YWx1ZVtpXSAhPSAnKycpKQorCSAgcmV0dXJuIEFT TjFfVkFMVUVfTk9UX1ZBTElEOworICAgICAgaWYgKG5vZGUtPnR5cGUgJiBDT05TVF9ERUZBVUxU KQorCXsKKwkgIHAgPSBub2RlLT5kb3duOworCSAgd2hpbGUgKHR5cGVfZmllbGQgKHAtPnR5cGUp ICE9IEFTTjFfRVRZUEVfREVGQVVMVCkKKwkgICAgcCA9IHAtPnJpZ2h0OworCSAgaWYgKCFfYXNu MV9zdHJjbXAgKHZhbHVlLCBwLT52YWx1ZSkpCisJICAgIHsKKwkgICAgICBfYXNuMV9zZXRfdmFs dWUgKG5vZGUsIE5VTEwsIDApOworCSAgICAgIGJyZWFrOworCSAgICB9CisJfQorICAgICAgX2Fz bjFfc2V0X3ZhbHVlIChub2RlLCB2YWx1ZSwgX2FzbjFfc3RybGVuICh2YWx1ZSkgKyAxKTsKKyAg ICAgIGJyZWFrOworICAgIGNhc2UgQVNOMV9FVFlQRV9VVENfVElNRToKKyAgICAgIHsKKwlsZW4g PSBfYXNuMV9zdHJsZW4gKHZhbHVlKTsKKwlpZiAobGVuIDwgMTEpCisJICByZXR1cm4gQVNOMV9W QUxVRV9OT1RfVkFMSUQ7CisJZm9yIChrID0gMDsgayA8IDEwOyBrKyspCisJICBpZiAoIWNfaXNk aWdpdCAodmFsdWVba10pKQorCSAgICByZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJc3dp dGNoIChsZW4pCisJICB7CisJICBjYXNlIDExOgorCSAgICBpZiAodmFsdWVbMTBdICE9ICdaJykK KwkgICAgICByZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJICAgIGJyZWFrOworCSAgY2Fz ZSAxMzoKKwkgICAgaWYgKCghY19pc2RpZ2l0ICh2YWx1ZVsxMF0pKSB8fCAoIWNfaXNkaWdpdCAo dmFsdWVbMTFdKSkgfHwKKwkJKHZhbHVlWzEyXSAhPSAnWicpKQorCSAgICAgIHJldHVybiBBU04x X1ZBTFVFX05PVF9WQUxJRDsKKwkgICAgYnJlYWs7CisJICBjYXNlIDE1OgorCSAgICBpZiAoKHZh bHVlWzEwXSAhPSAnKycpICYmICh2YWx1ZVsxMF0gIT0gJy0nKSkKKwkgICAgICByZXR1cm4gQVNO MV9WQUxVRV9OT1RfVkFMSUQ7CisJICAgIGZvciAoayA9IDExOyBrIDwgMTU7IGsrKykKKwkgICAg ICBpZiAoIWNfaXNkaWdpdCAodmFsdWVba10pKQorCQlyZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFM SUQ7CisJICAgIGJyZWFrOworCSAgY2FzZSAxNzoKKwkgICAgaWYgKCghY19pc2RpZ2l0ICh2YWx1 ZVsxMF0pKSB8fCAoIWNfaXNkaWdpdCAodmFsdWVbMTFdKSkpCisJICAgICAgcmV0dXJuIEFTTjFf VkFMVUVfTk9UX1ZBTElEOworCSAgICBpZiAoKHZhbHVlWzEyXSAhPSAnKycpICYmICh2YWx1ZVsx Ml0gIT0gJy0nKSkKKwkgICAgICByZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJICAgIGZv ciAoayA9IDEzOyBrIDwgMTc7IGsrKykKKwkgICAgICBpZiAoIWNfaXNkaWdpdCAodmFsdWVba10p KQorCQlyZXR1cm4gQVNOMV9WQUxVRV9OT1RfVkFMSUQ7CisJICAgIGJyZWFrOworCSAgZGVmYXVs dDoKKwkgICAgcmV0dXJuIEFTTjFfVkFMVUVfTk9UX0ZPVU5EOworCSAgfQorCV9hc24xX3NldF92 YWx1ZSAobm9kZSwgdmFsdWUsIGxlbik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICBjYXNl IEFTTjFfRVRZUEVfR0VORVJBTElaRURfVElNRToKKyAgICAgIGxlbiA9IF9hc24xX3N0cmxlbiAo dmFsdWUpOworICAgICAgX2FzbjFfc2V0X3ZhbHVlIChub2RlLCB2YWx1ZSwgbGVuKTsKKyAgICAg IGJyZWFrOworICAgIGNhc2UgQVNOMV9FVFlQRV9PQ1RFVF9TVFJJTkc6CisgICAgY2FzZSBBU04x X0VUWVBFX0dFTkVSQUxTVFJJTkc6CisgICAgY2FzZSBBU04xX0VUWVBFX05VTUVSSUNfU1RSSU5H OgorICAgIGNhc2UgQVNOMV9FVFlQRV9JQTVfU1RSSU5HOgorICAgIGNhc2UgQVNOMV9FVFlQRV9U RUxFVEVYX1NUUklORzoKKyAgICBjYXNlIEFTTjFfRVRZUEVfUFJJTlRBQkxFX1NUUklORzoKKyAg ICBjYXNlIEFTTjFfRVRZUEVfVU5JVkVSU0FMX1NUUklORzoKKyAgICBjYXNlIEFTTjFfRVRZUEVf Qk1QX1NUUklORzoKKyAgICBjYXNlIEFTTjFfRVRZUEVfVVRGOF9TVFJJTkc6CisgICAgY2FzZSBB U04xX0VUWVBFX1ZJU0lCTEVfU1RSSU5HOgorICAgICAgaWYgKGxlbiA9PSAwKQorCWxlbiA9IF9h c24xX3N0cmxlbiAodmFsdWUpOworICAgICAgX2FzbjFfc2V0X3ZhbHVlX2x2IChub2RlLCB2YWx1 ZSwgbGVuKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQVNOMV9FVFlQRV9CSVRfU1RSSU5HOgor ICAgICAgaWYgKGxlbiA9PSAwKQorCWxlbiA9IF9hc24xX3N0cmxlbiAodmFsdWUpOworICAgICAg YXNuMV9sZW5ndGhfZGVyICgobGVuID4+IDMpICsgMiwgTlVMTCwgJmxlbjIpOworICAgICAgdGVt cCA9IG1hbGxvYyAoKGxlbiA+PiAzKSArIDIgKyBsZW4yKTsKKyAgICAgIGlmICh0ZW1wID09IE5V TEwpCisJcmV0dXJuIEFTTjFfTUVNX0FMTE9DX0VSUk9SOworCisgICAgICBhc24xX2JpdF9kZXIg KHZhbHVlLCBsZW4sIHRlbXAsICZsZW4yKTsKKyAgICAgIF9hc24xX3NldF92YWx1ZV9tIChub2Rl LCB0ZW1wLCBsZW4yKTsKKyAgICAgIHRlbXAgPSBOVUxMOworICAgICAgYnJlYWs7CisgICAgY2Fz ZSBBU04xX0VUWVBFX0NIT0lDRToKKyAgICAgIHAgPSBub2RlLT5kb3duOworICAgICAgd2hpbGUg KHApCisJeworCSAgaWYgKCFfYXNuMV9zdHJjbXAgKHAtPm5hbWUsIHZhbHVlKSkKKwkgICAgewor CSAgICAgIHAyID0gbm9kZS0+ZG93bjsKKwkgICAgICB3aGlsZSAocDIpCisJCXsKKwkJICBpZiAo cDIgIT0gcCkKKwkJICAgIHsKKwkJICAgICAgYXNuMV9kZWxldGVfc3RydWN0dXJlICgmcDIpOwor CQkgICAgICBwMiA9IG5vZGUtPmRvd247CisJCSAgICB9CisJCSAgZWxzZQorCQkgICAgcDIgPSBw Mi0+cmlnaHQ7CisJCX0KKwkgICAgICBicmVhazsKKwkgICAgfQorCSAgcCA9IHAtPnJpZ2h0Owor CX0KKyAgICAgIGlmICghcCkKKwlyZXR1cm4gQVNOMV9FTEVNRU5UX05PVF9GT1VORDsKKyAgICAg IGJyZWFrOworICAgIGNhc2UgQVNOMV9FVFlQRV9BTlk6CisgICAgICBfYXNuMV9zZXRfdmFsdWVf bHYgKG5vZGUsIHZhbHVlLCBsZW4pOworICAgICAgYnJlYWs7CisgICAgY2FzZSBBU04xX0VUWVBF X1NFUVVFTkNFX09GOgorICAgIGNhc2UgQVNOMV9FVFlQRV9TRVRfT0Y6CisgICAgICBpZiAoX2Fz bjFfc3RyY21wICh2YWx1ZSwgIk5FVyIpKQorCXJldHVybiBBU04xX1ZBTFVFX05PVF9WQUxJRDsK KyAgICAgIF9hc24xX2FwcGVuZF9zZXF1ZW5jZV9zZXQgKG5vZGUsIE5VTEwpOworICAgICAgYnJl YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOwor ICAgICAgYnJlYWs7CisgICAgfQorCisgIHJldHVybiBBU04xX1NVQ0NFU1M7Cit9CisKKworI2Rl ZmluZSBQVVRfVkFMVUUoIHB0ciwgcHRyX3NpemUsIGRhdGEsIGRhdGFfc2l6ZSkgXAorCSpsZW4g PSBkYXRhX3NpemU7IFwKKwlpZiAocHRyX3NpemUgPCBkYXRhX3NpemUpIHsgXAorCQlyZXR1cm4g QVNOMV9NRU1fRVJST1I7IFwKKwl9IGVsc2UgeyBcCisJCWlmIChwdHIgJiYgZGF0YV9zaXplID4g MCkgXAorCQkgIG1lbWNweSAocHRyLCBkYXRhLCBkYXRhX3NpemUpOyBcCisJfQorCisjZGVmaW5l IFBVVF9TVFJfVkFMVUUoIHB0ciwgcHRyX3NpemUsIGRhdGEpIFwKKwkqbGVuID0gX2FzbjFfc3Ry bGVuIChkYXRhKSArIDE7IFwKKwlpZiAocHRyX3NpemUgPCAqbGVuKSB7IFwKKwkJcmV0dXJuIEFT TjFfTUVNX0VSUk9SOyBcCisJfSBlbHNlIHsgXAorCQkvKiB0aGlzIHN0cmNweSBpcyBjaGVja2Vk ICovIFwKKwkJaWYgKHB0cikgeyBcCisJCSAgX2FzbjFfc3RyY3B5IChwdHIsIGRhdGEpOyBcCisJ CX0gXAorCX0KKworI2RlZmluZSBQVVRfQVNfU1RSX1ZBTFVFKCBwdHIsIHB0cl9zaXplLCBkYXRh LCBkYXRhX3NpemUpIFwKKwkqbGVuID0gZGF0YV9zaXplICsgMTsgXAorCWlmIChwdHJfc2l6ZSA8 ICpsZW4pIHsgXAorCQlyZXR1cm4gQVNOMV9NRU1fRVJST1I7IFwKKwl9IGVsc2UgeyBcCisJCS8q IHRoaXMgc3RyY3B5IGlzIGNoZWNrZWQgKi8gXAorCQlpZiAocHRyKSB7IFwKKwkJICBpZiAoZGF0 YV9zaXplID4gMCkgXAorCQkgICAgbWVtY3B5IChwdHIsIGRhdGEsIGRhdGFfc2l6ZSk7IFwKKwkJ ICBwdHJbZGF0YV9zaXplXSA9IDA7IFwKKwkJfSBcCisJfQorCisjZGVmaW5lIEFERF9TVFJfVkFM VUUoIHB0ciwgcHRyX3NpemUsIGRhdGEpIFwKKyAgICAgICAgKmxlbiArPSBfYXNuMV9zdHJsZW4o ZGF0YSk7IFwKKyAgICAgICAgaWYgKHB0cl9zaXplIDwgKGludCkgKmxlbikgeyBcCisgICAgICAg ICAgICAgICAgKCpsZW4pKys7IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gQVNOMV9NRU1fRVJS T1I7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgICAgIC8qIHRoaXMgc3RyY2F0 IGlzIGNoZWNrZWQgKi8gXAorICAgICAgICAgICAgICAgIGlmIChwdHIpIF9hc24xX3N0cmNhdCAo cHRyLCBkYXRhKTsgXAorICAgICAgICB9CisKKy8qKgorICogYXNuMV9yZWFkX3ZhbHVlOgorICog QHJvb3Q6IHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUuCisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhl IGVsZW1lbnQgaW5zaWRlIGEgc3RydWN0dXJlIHRoYXQgeW91IHdhbnQgdG8gcmVhZC4KKyAqIEBp dmFsdWU6IHZlY3RvciB0aGF0IHdpbGwgY29udGFpbiB0aGUgZWxlbWVudCdzIGNvbnRlbnQsIG11 c3QgYmUgYQorICogICBwb2ludGVyIHRvIG1lbW9yeSBjZWxscyBhbHJlYWR5IGFsbG9jYXRlZCAo bWF5IGJlICVOVUxMKS4KKyAqIEBsZW46IG51bWJlciBvZiBieXRlcyBvZiAqdmFsdWU6IHZhbHVl WzBdLi52YWx1ZVtsZW4tMV0uIEluaXRpYWx5CisgKiAgIGhvbGRzIHRoZSBzaXplb2YgdmFsdWUu CisgKgorICogUmV0dXJucyB0aGUgdmFsdWUgb2Ygb25lIGVsZW1lbnQgaW5zaWRlIGEgc3RydWN0 dXJlLgorICogSWYgYW4gZWxlbWVudCBpcyBPUFRJT05BTCBhbmQgdGhpcyByZXR1cm5zCisgKiAl QVNOMV9FTEVNRU5UX05PVF9GT1VORCwgaXQgbWVhbnMgdGhhdCB0aGlzIGVsZW1lbnQgd2Fzbid0 IHByZXNlbnQKKyAqIGluIHRoZSBkZXIgZW5jb2RpbmcgdGhhdCBjcmVhdGVkIHRoZSBzdHJ1Y3R1 cmUuICBUaGUgZmlyc3QgZWxlbWVudAorICogb2YgYSBTRVFVRU5DRV9PRiBvciBTRVRfT0YgaXMg bmFtZWQgIj8xIi4gVGhlIHNlY29uZCBvbmUgIj8yIiBhbmQKKyAqIHNvIG9uLiBJZiB0aGUgQHJv b3QgcHJvdmlkZWQgaXMgYSBub2RlIHRvIHNwZWNpZmljIHNlcXVlbmNlIGVsZW1lbnQsCisgKiB0 aGVuIHRoZSBrZXl3b3JkICI/Q1VSUkVOVCIgaXMgYWxzbyBhY2NlcHRhYmxlIGFuZCBpbmRpY2F0 ZXMgdGhlCisgKiBjdXJyZW50IHNlcXVlbmNlIGVsZW1lbnQgb2YgdGhpcyBub2RlLgorICoKKyAq IE5vdGUgdGhhdCB0aGVyZSBjYW4gYmUgdmFsaWQgdmFsdWVzIHdpdGggbGVuZ3RoIHplcm8uIElu IHRoZXNlIGNhc2UKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBzdWNjZWVkIGFuZCBAbGVuIHdpbGwg YmUgemVyby4KKyAqCisgKiBJTlRFR0VSOiBWQUxVRSB3aWxsIGNvbnRhaW4gYSB0d28ncyBjb21w bGVtZW50IGZvcm0gaW50ZWdlci4KKyAqCisgKiAgICAgICAgICAgIGludGVnZXI9LTEgIC0+IHZh bHVlWzBdPTB4RkYgLCBsZW49MS4KKyAqICAgICAgICAgICAgaW50ZWdlcj0xICAgLT4gdmFsdWVb MF09MHgwMSAsIGxlbj0xLgorICoKKyAqIEVOVU1FUkFURUQ6IEFzIElOVEVHRVIgKGJ1dCBvbmx5 IHdpdGggbm90IG5lZ2F0aXZlIG51bWJlcnMpLgorICoKKyAqIEJPT0xFQU46IFZBTFVFIHdpbGwg YmUgdGhlIG51bGwgdGVybWluYXRlZCBzdHJpbmcgIlRSVUUiIG9yCisgKiAgICJGQUxTRSIgYW5k IExFTj01IG9yIExFTj02LgorICoKKyAqIE9CSkVDVCBJREVOVElGSUVSOiBWQUxVRSB3aWxsIGJl IGEgbnVsbCB0ZXJtaW5hdGVkIHN0cmluZyB3aXRoCisgKiAgIGVhY2ggbnVtYmVyIHNlcGFyYXRl ZCBieSBhIGRvdCAoaS5lLiAiMS4yLjMuNTQzLjEiKS4KKyAqCisgKiAgICAgICAgICAgICAgICAg ICAgICBMRU4gPSBzdHJsZW4oVkFMVUUpKzEKKyAqCisgKiBVVENUaW1lOiBWQUxVRSB3aWxsIGJl IGEgbnVsbCB0ZXJtaW5hdGVkIHN0cmluZyBpbiBvbmUgb2YgdGhlc2UKKyAqICAgZm9ybWF0czog IllZTU1ERGhobW1zcytoaCdtbSciIG9yICJZWU1NRERoaG1tc3MtaGgnbW0nIi4KKyAqICAgTEVO PXN0cmxlbihWQUxVRSkrMS4KKyAqCisgKiBHZW5lcmFsaXplZFRpbWU6IFZBTFVFIHdpbGwgYmUg YSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5nIGluIHRoZQorICogICBzYW1lIGZvcm1hdCB1c2VkIHRv IHNldCB0aGUgdmFsdWUuCisgKgorICogT0NURVQgU1RSSU5HOiBWQUxVRSB3aWxsIGNvbnRhaW4g dGhlIG9jdGV0IHN0cmluZyBhbmQgTEVOIHdpbGwgYmUKKyAqICAgdGhlIG51bWJlciBvZiBvY3Rl dHMuCisgKgorICogR2VuZXJhbFN0cmluZzogVkFMVUUgd2lsbCBjb250YWluIHRoZSBnZW5lcmFs c3RyaW5nIGFuZCBMRU4gd2lsbAorICogICBiZSB0aGUgbnVtYmVyIG9mIG9jdGV0cy4KKyAqCisg KiBCSVQgU1RSSU5HOiBWQUxVRSB3aWxsIGNvbnRhaW4gdGhlIGJpdCBzdHJpbmcgb3JnYW5pemVk IGJ5IGJ5dGVzCisgKiAgIGFuZCBMRU4gd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGJpdHMuCisgKgor ICogQ0hPSUNFOiBJZiBOQU1FIGluZGljYXRlcyBhIGNob2ljZSB0eXBlLCBWQUxVRSB3aWxsIHNw ZWNpZnkgdGhlCisgKiAgIGFsdGVybmF0aXZlIHNlbGVjdGVkLgorICoKKyAqIEFOWTogSWYgTkFN RSBpbmRpY2F0ZXMgYW4gYW55IHR5cGUsIFZBTFVFIHdpbGwgaW5kaWNhdGUgdGhlIERFUgorICog ICBlbmNvZGluZyBvZiB0aGUgc3RydWN0dXJlIGFjdHVhbGx5IHVzZWQuCisgKgorICogUmV0dXJu czogJUFTTjFfU1VDQ0VTUyBpZiB2YWx1ZSBpcyByZXR1cm5lZCwKKyAqICAgJUFTTjFfRUxFTUVO VF9OT1RfRk9VTkQgaWYgQG5hbWUgaXMgbm90IGEgdmFsaWQgZWxlbWVudCwKKyAqICAgJUFTTjFf VkFMVUVfTk9UX0ZPVU5EIGlmIHRoZXJlIGlzbid0IGFueSB2YWx1ZSBmb3IgdGhlIGVsZW1lbnQK KyAqICAgc2VsZWN0ZWQsIGFuZCAlQVNOMV9NRU1fRVJST1IgaWYgVGhlIHZhbHVlIHZlY3RvciBp c24ndCBiaWcgZW5vdWdoCisgKiAgIHRvIHN0b3JlIHRoZSByZXN1bHQsIGFuZCBpbiB0aGlzIGNh c2UgQGxlbiB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZgorICogICBieXRlcyBuZWVkZWQuIE9u IHRoZSBvY2Nhc2lvbiB0aGF0IHRoZSBzdG9yZWQgZGF0YSBhcmUgb2YgemVyby1sZW5ndGgKKyAq ICAgdGhpcyBmdW5jdGlvbiBtYXkgcmV0dXJuICVBU04xX1NVQ0NFU1MgZXZlbiBpZiB0aGUgcHJv dmlkZWQgQGxlbiBpcyB6ZXJvLgorICoqLworaW50Cithc24xX3JlYWRfdmFsdWUgKGFzbjFfbm9k ZV9jb25zdCByb290LCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICppdmFsdWUsCisJCSBpbnQgKmxl bikKK3sKKyAgcmV0dXJuIGFzbjFfcmVhZF92YWx1ZV90eXBlIChyb290LCBuYW1lLCBpdmFsdWUs IGxlbiwgTlVMTCk7Cit9CisKKy8qKgorICogYXNuMV9yZWFkX3ZhbHVlX3R5cGU6CisgKiBAcm9v dDogcG9pbnRlciB0byBhIHN0cnVjdHVyZS4KKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgZWxl bWVudCBpbnNpZGUgYSBzdHJ1Y3R1cmUgdGhhdCB5b3Ugd2FudCB0byByZWFkLgorICogQGl2YWx1 ZTogdmVjdG9yIHRoYXQgd2lsbCBjb250YWluIHRoZSBlbGVtZW50J3MgY29udGVudCwgbXVzdCBi ZSBhCisgKiAgIHBvaW50ZXIgdG8gbWVtb3J5IGNlbGxzIGFscmVhZHkgYWxsb2NhdGVkIChtYXkg YmUgJU5VTEwpLgorICogQGxlbjogbnVtYmVyIG9mIGJ5dGVzIG9mICp2YWx1ZTogdmFsdWVbMF0u LnZhbHVlW2xlbi0xXS4gSW5pdGlhbHkKKyAqICAgaG9sZHMgdGhlIHNpemVvZiB2YWx1ZS4KKyAq IEBldHlwZTogVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHJlYWQgKEFTTjFfRVRZUEUpCisgKgorICog UmV0dXJucyB0aGUgdHlwZSBhbmQgdmFsdWUgb2Ygb25lIGVsZW1lbnQgaW5zaWRlIGEgc3RydWN0 dXJlLgorICogSWYgYW4gZWxlbWVudCBpcyBPUFRJT05BTCBhbmQgdGhpcyByZXR1cm5zCisgKiAl QVNOMV9FTEVNRU5UX05PVF9GT1VORCwgaXQgbWVhbnMgdGhhdCB0aGlzIGVsZW1lbnQgd2Fzbid0 IHByZXNlbnQKKyAqIGluIHRoZSBkZXIgZW5jb2RpbmcgdGhhdCBjcmVhdGVkIHRoZSBzdHJ1Y3R1 cmUuICBUaGUgZmlyc3QgZWxlbWVudAorICogb2YgYSBTRVFVRU5DRV9PRiBvciBTRVRfT0YgaXMg bmFtZWQgIj8xIi4gVGhlIHNlY29uZCBvbmUgIj8yIiBhbmQKKyAqIHNvIG9uLiBJZiB0aGUgQHJv b3QgcHJvdmlkZWQgaXMgYSBub2RlIHRvIHNwZWNpZmljIHNlcXVlbmNlIGVsZW1lbnQsCisgKiB0 aGVuIHRoZSBrZXl3b3JkICI/Q1VSUkVOVCIgaXMgYWxzbyBhY2NlcHRhYmxlIGFuZCBpbmRpY2F0 ZXMgdGhlCisgKiBjdXJyZW50IHNlcXVlbmNlIGVsZW1lbnQgb2YgdGhpcyBub2RlLgorICoKKyAq IE5vdGUgdGhhdCB0aGVyZSBjYW4gYmUgdmFsaWQgdmFsdWVzIHdpdGggbGVuZ3RoIHplcm8uIElu IHRoZXNlIGNhc2UKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBzdWNjZWVkIGFuZCBAbGVuIHdpbGwg YmUgemVyby4KKyAqCisgKgorICogSU5URUdFUjogVkFMVUUgd2lsbCBjb250YWluIGEgdHdvJ3Mg Y29tcGxlbWVudCBmb3JtIGludGVnZXIuCisgKgorICogICAgICAgICAgICBpbnRlZ2VyPS0xICAt PiB2YWx1ZVswXT0weEZGICwgbGVuPTEuCisgKiAgICAgICAgICAgIGludGVnZXI9MSAgIC0+IHZh bHVlWzBdPTB4MDEgLCBsZW49MS4KKyAqCisgKiBFTlVNRVJBVEVEOiBBcyBJTlRFR0VSIChidXQg b25seSB3aXRoIG5vdCBuZWdhdGl2ZSBudW1iZXJzKS4KKyAqCisgKiBCT09MRUFOOiBWQUxVRSB3 aWxsIGJlIHRoZSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5nICJUUlVFIiBvcgorICogICAiRkFMU0Ui IGFuZCBMRU49NSBvciBMRU49Ni4KKyAqCisgKiBPQkpFQ1QgSURFTlRJRklFUjogVkFMVUUgd2ls bCBiZSBhIG51bGwgdGVybWluYXRlZCBzdHJpbmcgd2l0aAorICogICBlYWNoIG51bWJlciBzZXBh cmF0ZWQgYnkgYSBkb3QgKGkuZS4gIjEuMi4zLjU0My4xIikuCisgKgorICogICAgICAgICAgICAg ICAgICAgICAgTEVOID0gc3RybGVuKFZBTFVFKSsxCisgKgorICogVVRDVGltZTogVkFMVUUgd2ls bCBiZSBhIG51bGwgdGVybWluYXRlZCBzdHJpbmcgaW4gb25lIG9mIHRoZXNlCisgKiAgIGZvcm1h dHM6ICJZWU1NRERoaG1tc3MraGgnbW0nIiBvciAiWVlNTUREaGhtbXNzLWhoJ21tJyIuCisgKiAg IExFTj1zdHJsZW4oVkFMVUUpKzEuCisgKgorICogR2VuZXJhbGl6ZWRUaW1lOiBWQUxVRSB3aWxs IGJlIGEgbnVsbCB0ZXJtaW5hdGVkIHN0cmluZyBpbiB0aGUKKyAqICAgc2FtZSBmb3JtYXQgdXNl ZCB0byBzZXQgdGhlIHZhbHVlLgorICoKKyAqIE9DVEVUIFNUUklORzogVkFMVUUgd2lsbCBjb250 YWluIHRoZSBvY3RldCBzdHJpbmcgYW5kIExFTiB3aWxsIGJlCisgKiAgIHRoZSBudW1iZXIgb2Yg b2N0ZXRzLgorICoKKyAqIEdlbmVyYWxTdHJpbmc6IFZBTFVFIHdpbGwgY29udGFpbiB0aGUgZ2Vu ZXJhbHN0cmluZyBhbmQgTEVOIHdpbGwKKyAqICAgYmUgdGhlIG51bWJlciBvZiBvY3RldHMuCisg KgorICogQklUIFNUUklORzogVkFMVUUgd2lsbCBjb250YWluIHRoZSBiaXQgc3RyaW5nIG9yZ2Fu aXplZCBieSBieXRlcworICogICBhbmQgTEVOIHdpbGwgYmUgdGhlIG51bWJlciBvZiBiaXRzLgor ICoKKyAqIENIT0lDRTogSWYgTkFNRSBpbmRpY2F0ZXMgYSBjaG9pY2UgdHlwZSwgVkFMVUUgd2ls bCBzcGVjaWZ5IHRoZQorICogICBhbHRlcm5hdGl2ZSBzZWxlY3RlZC4KKyAqCisgKiBBTlk6IElm IE5BTUUgaW5kaWNhdGVzIGFuIGFueSB0eXBlLCBWQUxVRSB3aWxsIGluZGljYXRlIHRoZSBERVIK KyAqICAgZW5jb2Rpbmcgb2YgdGhlIHN0cnVjdHVyZSBhY3R1YWxseSB1c2VkLgorICoKKyAqIFJl dHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgdmFsdWUgaXMgcmV0dXJuZWQsCisgKiAgICVBU04xX0VM RU1FTlRfTk9UX0ZPVU5EIGlmIEBuYW1lIGlzIG5vdCBhIHZhbGlkIGVsZW1lbnQsCisgKiAgICVB U04xX1ZBTFVFX05PVF9GT1VORCBpZiB0aGVyZSBpc24ndCBhbnkgdmFsdWUgZm9yIHRoZSBlbGVt ZW50CisgKiAgIHNlbGVjdGVkLCBhbmQgJUFTTjFfTUVNX0VSUk9SIGlmIFRoZSB2YWx1ZSB2ZWN0 b3IgaXNuJ3QgYmlnIGVub3VnaAorICogICB0byBzdG9yZSB0aGUgcmVzdWx0LCBhbmQgaW4gdGhp cyBjYXNlIEBsZW4gd2lsbCBjb250YWluIHRoZSBudW1iZXIgb2YKKyAqICAgYnl0ZXMgbmVlZGVk LiBPbiB0aGUgb2NjYXNpb24gdGhhdCB0aGUgc3RvcmVkIGRhdGEgYXJlIG9mIHplcm8tbGVuZ3Ro CisgKiAgIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiAlQVNOMV9TVUNDRVNTIGV2ZW4gaWYgdGhl IHByb3ZpZGVkIEBsZW4gaXMgemVyby4KKyAqKi8KK2ludAorYXNuMV9yZWFkX3ZhbHVlX3R5cGUg KGFzbjFfbm9kZV9jb25zdCByb290LCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICppdmFsdWUsCisJ CSAgICAgIGludCAqbGVuLCB1bnNpZ25lZCBpbnQgKmV0eXBlKQoreworICBhc24xX25vZGVfY29u c3Qgbm9kZSwgcCwgcDI7CisgIGludCBsZW4yLCBsZW4zLCByZXN1bHQ7CisgIGludCB2YWx1ZV9z aXplID0gKmxlbjsKKyAgdW5zaWduZWQgY2hhciAqdmFsdWUgPSBpdmFsdWU7CisgIHVuc2lnbmVk IHR5cGU7CisKKyAgbm9kZSA9IGFzbjFfZmluZF9ub2RlIChyb290LCBuYW1lKTsKKyAgaWYgKG5v ZGUgPT0gTlVMTCkKKyAgICByZXR1cm4gQVNOMV9FTEVNRU5UX05PVF9GT1VORDsKKworICB0eXBl ID0gdHlwZV9maWVsZCAobm9kZS0+dHlwZSk7CisKKyAgaWYgKCh0eXBlICE9IEFTTjFfRVRZUEVf TlVMTCkgJiYKKyAgICAgICh0eXBlICE9IEFTTjFfRVRZUEVfQ0hPSUNFKSAmJgorICAgICAgIShu b2RlLT50eXBlICYgQ09OU1RfREVGQVVMVCkgJiYgIShub2RlLT50eXBlICYgQ09OU1RfQVNTSUdO KSAmJgorICAgICAgKG5vZGUtPnZhbHVlID09IE5VTEwpKQorICAgIHJldHVybiBBU04xX1ZBTFVF X05PVF9GT1VORDsKKworICBpZiAoZXR5cGUpCisgICAgKmV0eXBlID0gdHlwZTsKKyAgc3dpdGNo ICh0eXBlKQorICAgIHsKKyAgICBjYXNlIEFTTjFfRVRZUEVfTlVMTDoKKyAgICAgIFBVVF9TVFJf VkFMVUUgKHZhbHVlLCB2YWx1ZV9zaXplLCAiTlVMTCIpOworICAgICAgYnJlYWs7CisgICAgY2Fz ZSBBU04xX0VUWVBFX0JPT0xFQU46CisgICAgICBpZiAoKG5vZGUtPnR5cGUgJiBDT05TVF9ERUZB VUxUKSAmJiAobm9kZS0+dmFsdWUgPT0gTlVMTCkpCisJeworCSAgcCA9IG5vZGUtPmRvd247CisJ ICB3aGlsZSAodHlwZV9maWVsZCAocC0+dHlwZSkgIT0gQVNOMV9FVFlQRV9ERUZBVUxUKQorCSAg ICBwID0gcC0+cmlnaHQ7CisJICBpZiAocC0+dHlwZSAmIENPTlNUX1RSVUUpCisJICAgIHsKKwkg ICAgICBQVVRfU1RSX1ZBTFVFICh2YWx1ZSwgdmFsdWVfc2l6ZSwgIlRSVUUiKTsKKwkgICAgfQor CSAgZWxzZQorCSAgICB7CisJICAgICAgUFVUX1NUUl9WQUxVRSAodmFsdWUsIHZhbHVlX3NpemUs ICJGQUxTRSIpOworCSAgICB9CisJfQorICAgICAgZWxzZSBpZiAobm9kZS0+dmFsdWVbMF0gPT0g J1QnKQorCXsKKwkgIFBVVF9TVFJfVkFMVUUgKHZhbHVlLCB2YWx1ZV9zaXplLCAiVFJVRSIpOwor CX0KKyAgICAgIGVsc2UKKwl7CisJICBQVVRfU1RSX1ZBTFVFICh2YWx1ZSwgdmFsdWVfc2l6ZSwg IkZBTFNFIik7CisJfQorICAgICAgYnJlYWs7CisgICAgY2FzZSBBU04xX0VUWVBFX0lOVEVHRVI6 CisgICAgY2FzZSBBU04xX0VUWVBFX0VOVU1FUkFURUQ6CisgICAgICBpZiAoKG5vZGUtPnR5cGUg JiBDT05TVF9ERUZBVUxUKSAmJiAobm9kZS0+dmFsdWUgPT0gTlVMTCkpCisJeworCSAgcCA9IG5v ZGUtPmRvd247CisJICB3aGlsZSAodHlwZV9maWVsZCAocC0+dHlwZSkgIT0gQVNOMV9FVFlQRV9E RUZBVUxUKQorCSAgICBwID0gcC0+cmlnaHQ7CisJICBpZiAoKGNfaXNkaWdpdCAocC0+dmFsdWVb MF0pKSB8fCAocC0+dmFsdWVbMF0gPT0gJy0nKQorCSAgICAgIHx8IChwLT52YWx1ZVswXSA9PSAn KycpKQorCSAgICB7CisJICAgICAgcmVzdWx0ID0gX2FzbjFfY29udmVydF9pbnRlZ2VyCisJCShw LT52YWx1ZSwgdmFsdWUsIHZhbHVlX3NpemUsIGxlbik7CisJICAgICAgaWYgKHJlc3VsdCAhPSBB U04xX1NVQ0NFU1MpCisJCXJldHVybiByZXN1bHQ7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgewkJ CS8qIGlzIGFuIGlkZW50aWZpZXIgbGlrZSB2MSAqLworCSAgICAgIHAyID0gbm9kZS0+ZG93bjsK KwkgICAgICB3aGlsZSAocDIpCisJCXsKKwkJICBpZiAodHlwZV9maWVsZCAocDItPnR5cGUpID09 IEFTTjFfRVRZUEVfQ09OU1RBTlQpCisJCSAgICB7CisJCSAgICAgIGlmICghX2FzbjFfc3RyY21w IChwMi0+bmFtZSwgcC0+dmFsdWUpKQorCQkJeworCQkJICByZXN1bHQgPSBfYXNuMV9jb252ZXJ0 X2ludGVnZXIKKwkJCSAgICAocDItPnZhbHVlLCB2YWx1ZSwgdmFsdWVfc2l6ZSwgbGVuKTsKKwkJ CSAgaWYgKHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MpCisJCQkgICAgcmV0dXJuIHJlc3VsdDsKKwkJ CSAgYnJlYWs7CisJCQl9CisJCSAgICB9CisJCSAgcDIgPSBwMi0+cmlnaHQ7CisJCX0KKwkgICAg fQorCX0KKyAgICAgIGVsc2UKKwl7CisJICBsZW4yID0gLTE7CisJICByZXN1bHQgPSBhc24xX2dl dF9vY3RldF9kZXIKKwkgICAgKG5vZGUtPnZhbHVlLCBub2RlLT52YWx1ZV9sZW4sICZsZW4yLCB2 YWx1ZSwgdmFsdWVfc2l6ZSwgbGVuKTsKKwkgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTKQor CSAgICByZXR1cm4gcmVzdWx0OworCX0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgQVNOMV9FVFlQ RV9PQkpFQ1RfSUQ6CisgICAgICBpZiAobm9kZS0+dHlwZSAmIENPTlNUX0FTU0lHTikKKwl7CisJ ICAqbGVuID0gMDsKKwkgIGlmICh2YWx1ZSkKKwkgICAgdmFsdWVbMF0gPSAwOworCSAgcCA9IG5v ZGUtPmRvd247CisJICB3aGlsZSAocCkKKwkgICAgeworCSAgICAgIGlmICh0eXBlX2ZpZWxkIChw LT50eXBlKSA9PSBBU04xX0VUWVBFX0NPTlNUQU5UKQorCQl7CisJCSAgQUREX1NUUl9WQUxVRSAo dmFsdWUsIHZhbHVlX3NpemUsIHAtPnZhbHVlKTsKKwkJICBpZiAocC0+cmlnaHQpCisJCSAgICB7 CisJCSAgICAgIEFERF9TVFJfVkFMVUUgKHZhbHVlLCB2YWx1ZV9zaXplLCAiLiIpOworCQkgICAg fQorCQl9CisJICAgICAgcCA9IHAtPnJpZ2h0OworCSAgICB9CisJICAoKmxlbikrKzsKKwl9Cisg ICAgICBlbHNlIGlmICgobm9kZS0+dHlwZSAmIENPTlNUX0RFRkFVTFQpICYmIChub2RlLT52YWx1 ZSA9PSBOVUxMKSkKKwl7CisJICBwID0gbm9kZS0+ZG93bjsKKwkgIHdoaWxlICh0eXBlX2ZpZWxk IChwLT50eXBlKSAhPSBBU04xX0VUWVBFX0RFRkFVTFQpCisJICAgIHAgPSBwLT5yaWdodDsKKwkg IFBVVF9TVFJfVkFMVUUgKHZhbHVlLCB2YWx1ZV9zaXplLCBwLT52YWx1ZSk7CisJfQorICAgICAg ZWxzZQorCXsKKwkgIFBVVF9TVFJfVkFMVUUgKHZhbHVlLCB2YWx1ZV9zaXplLCBub2RlLT52YWx1 ZSk7CisJfQorICAgICAgYnJlYWs7CisgICAgY2FzZSBBU04xX0VUWVBFX0dFTkVSQUxJWkVEX1RJ TUU6CisgICAgY2FzZSBBU04xX0VUWVBFX1VUQ19USU1FOgorICAgICAgUFVUX0FTX1NUUl9WQUxV RSAodmFsdWUsIHZhbHVlX3NpemUsIG5vZGUtPnZhbHVlLCBub2RlLT52YWx1ZV9sZW4pOworICAg ICAgYnJlYWs7CisgICAgY2FzZSBBU04xX0VUWVBFX09DVEVUX1NUUklORzoKKyAgICBjYXNlIEFT TjFfRVRZUEVfR0VORVJBTFNUUklORzoKKyAgICBjYXNlIEFTTjFfRVRZUEVfTlVNRVJJQ19TVFJJ Tkc6CisgICAgY2FzZSBBU04xX0VUWVBFX0lBNV9TVFJJTkc6CisgICAgY2FzZSBBU04xX0VUWVBF X1RFTEVURVhfU1RSSU5HOgorICAgIGNhc2UgQVNOMV9FVFlQRV9QUklOVEFCTEVfU1RSSU5HOgor ICAgIGNhc2UgQVNOMV9FVFlQRV9VTklWRVJTQUxfU1RSSU5HOgorICAgIGNhc2UgQVNOMV9FVFlQ RV9CTVBfU1RSSU5HOgorICAgIGNhc2UgQVNOMV9FVFlQRV9VVEY4X1NUUklORzoKKyAgICBjYXNl IEFTTjFfRVRZUEVfVklTSUJMRV9TVFJJTkc6CisgICAgICBsZW4yID0gLTE7CisgICAgICByZXN1 bHQgPSBhc24xX2dldF9vY3RldF9kZXIKKwkobm9kZS0+dmFsdWUsIG5vZGUtPnZhbHVlX2xlbiwg JmxlbjIsIHZhbHVlLCB2YWx1ZV9zaXplLCBsZW4pOworICAgICAgaWYgKHJlc3VsdCAhPSBBU04x X1NVQ0NFU1MpCisJcmV0dXJuIHJlc3VsdDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQVNOMV9F VFlQRV9CSVRfU1RSSU5HOgorICAgICAgbGVuMiA9IC0xOworICAgICAgcmVzdWx0ID0gYXNuMV9n ZXRfYml0X2RlcgorCShub2RlLT52YWx1ZSwgbm9kZS0+dmFsdWVfbGVuLCAmbGVuMiwgdmFsdWUs IHZhbHVlX3NpemUsIGxlbik7CisgICAgICBpZiAocmVzdWx0ICE9IEFTTjFfU1VDQ0VTUykKKwly ZXR1cm4gcmVzdWx0OworICAgICAgYnJlYWs7CisgICAgY2FzZSBBU04xX0VUWVBFX0NIT0lDRToK KyAgICAgIFBVVF9TVFJfVkFMVUUgKHZhbHVlLCB2YWx1ZV9zaXplLCBub2RlLT5kb3duLT5uYW1l KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQVNOMV9FVFlQRV9BTlk6CisgICAgICBsZW4zID0g LTE7CisgICAgICBsZW4yID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAobm9kZS0+dmFsdWUsIG5vZGUt PnZhbHVlX2xlbiwgJmxlbjMpOworICAgICAgaWYgKGxlbjIgPCAwKQorCXJldHVybiBBU04xX0RF Ul9FUlJPUjsKKyAgICAgIFBVVF9WQUxVRSAodmFsdWUsIHZhbHVlX3NpemUsIG5vZGUtPnZhbHVl ICsgbGVuMywgbGVuMik7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJu IEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisgICAgICBicmVhazsKKyAgICB9CisgIHJldHVybiBB U04xX1NVQ0NFU1M7Cit9CisKKworLyoqCisgKiBhc24xX3JlYWRfdGFnOgorICogQHJvb3Q6IHBv aW50ZXIgdG8gYSBzdHJ1Y3R1cmUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudCBp bnNpZGUgYSBzdHJ1Y3R1cmUuCisgKiBAdGFnVmFsdWU6ICB2YXJpYWJsZSB0aGF0IHdpbGwgY29u dGFpbiB0aGUgVEFHIHZhbHVlLgorICogQGNsYXNzVmFsdWU6IHZhcmlhYmxlIHRoYXQgd2lsbCBz cGVjaWZ5IHRoZSBUQUcgdHlwZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBUQUcgYW5kIHRoZSBDTEFT UyBvZiBvbmUgZWxlbWVudCBpbnNpZGUgYSBzdHJ1Y3R1cmUuCisgKiBDTEFTUyBjYW4gaGF2ZSBv bmUgb2YgdGhlc2UgY29uc3RhbnRzOiAlQVNOMV9DTEFTU19BUFBMSUNBVElPTiwKKyAqICVBU04x X0NMQVNTX1VOSVZFUlNBTCwgJUFTTjFfQ0xBU1NfUFJJVkFURSBvcgorICogJUFTTjFfQ0xBU1Nf Q09OVEVYVF9TUEVDSUZJQy4KKyAqCisgKiBSZXR1cm5zOiAlQVNOMV9TVUNDRVNTIGlmIHN1Y2Nl c3NmdWwsICVBU04xX0VMRU1FTlRfTk9UX0ZPVU5EIGlmCisgKiAgIEBuYW1lIGlzIG5vdCBhIHZh bGlkIGVsZW1lbnQuCisgKiovCitpbnQKK2FzbjFfcmVhZF90YWcgKGFzbjFfbm9kZV9jb25zdCBy b290LCBjb25zdCBjaGFyICpuYW1lLCBpbnQgKnRhZ1ZhbHVlLAorCSAgICAgICBpbnQgKmNsYXNz VmFsdWUpCit7CisgIGFzbjFfbm9kZSBub2RlLCBwLCBwVGFnOworCisgIG5vZGUgPSBhc24xX2Zp bmRfbm9kZSAocm9vdCwgbmFtZSk7CisgIGlmIChub2RlID09IE5VTEwpCisgICAgcmV0dXJuIEFT TjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgcCA9IG5vZGUtPmRvd247CisKKyAgLyogcFRhZyB3 aWxsIHBvaW50cyB0byB0aGUgSU1QTElDSVQgVEFHICovCisgIHBUYWcgPSBOVUxMOworICBpZiAo bm9kZS0+dHlwZSAmIENPTlNUX1RBRykKKyAgICB7CisgICAgICB3aGlsZSAocCkKKwl7CisJICBp ZiAodHlwZV9maWVsZCAocC0+dHlwZSkgPT0gQVNOMV9FVFlQRV9UQUcpCisJICAgIHsKKwkgICAg ICBpZiAoKHAtPnR5cGUgJiBDT05TVF9JTVBMSUNJVCkgJiYgKHBUYWcgPT0gTlVMTCkpCisJCXBU YWcgPSBwOworCSAgICAgIGVsc2UgaWYgKHAtPnR5cGUgJiBDT05TVF9FWFBMSUNJVCkKKwkJcFRh ZyA9IE5VTEw7CisJICAgIH0KKwkgIHAgPSBwLT5yaWdodDsKKwl9CisgICAgfQorCisgIGlmIChw VGFnKQorICAgIHsKKyAgICAgICp0YWdWYWx1ZSA9IF9hc24xX3N0cnRvdWwgKHBUYWctPnZhbHVl LCBOVUxMLCAxMCk7CisKKyAgICAgIGlmIChwVGFnLT50eXBlICYgQ09OU1RfQVBQTElDQVRJT04p CisJKmNsYXNzVmFsdWUgPSBBU04xX0NMQVNTX0FQUExJQ0FUSU9OOworICAgICAgZWxzZSBpZiAo cFRhZy0+dHlwZSAmIENPTlNUX1VOSVZFUlNBTCkKKwkqY2xhc3NWYWx1ZSA9IEFTTjFfQ0xBU1Nf VU5JVkVSU0FMOworICAgICAgZWxzZSBpZiAocFRhZy0+dHlwZSAmIENPTlNUX1BSSVZBVEUpCisJ KmNsYXNzVmFsdWUgPSBBU04xX0NMQVNTX1BSSVZBVEU7CisgICAgICBlbHNlCisJKmNsYXNzVmFs dWUgPSBBU04xX0NMQVNTX0NPTlRFWFRfU1BFQ0lGSUM7CisgICAgfQorICBlbHNlCisgICAgewor ICAgICAgdW5zaWduZWQgdHlwZSA9IHR5cGVfZmllbGQgKG5vZGUtPnR5cGUpOworICAgICAgKmNs YXNzVmFsdWUgPSBBU04xX0NMQVNTX1VOSVZFUlNBTDsKKworICAgICAgc3dpdGNoICh0eXBlKQor CXsKKwlDQVNFX0hBTkRMRURfRVRZUEVTOgorCSAgKnRhZ1ZhbHVlID0gX2FzbjFfdGFnc1t0eXBl XS50YWc7CisJICBicmVhazsKKwljYXNlIEFTTjFfRVRZUEVfVEFHOgorCWNhc2UgQVNOMV9FVFlQ RV9DSE9JQ0U6CisJY2FzZSBBU04xX0VUWVBFX0FOWToKKwkgICp0YWdWYWx1ZSA9IC0xOworCSAg YnJlYWs7CisJZGVmYXVsdDoKKwkgIGJyZWFrOworCX0KKyAgICB9CisKKyAgcmV0dXJuIEFTTjFf U1VDQ0VTUzsKK30KKworLyoqCisgKiBhc24xX3JlYWRfbm9kZV92YWx1ZToKKyAqIEBub2RlOiBw b2ludGVyIHRvIGEgbm9kZS4KKyAqIEBkYXRhOiBhIHBvaW50IHRvIGEgYXNuMV9kYXRhX25vZGVf c3QKKyAqCisgKiBSZXR1cm5zIHRoZSB2YWx1ZSBhIGRhdGEgbm9kZSBpbnNpZGUgYSBhc24xX25v ZGUgc3RydWN0dXJlLgorICogVGhlIGRhdGEgcmV0dXJuZWQgc2hvdWxkIGJlIGhhbmRsZWQgYXMg Y29uc3RhbnQgdmFsdWVzLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgdGhlIG5v ZGUgZXhpc3RzLgorICoqLworaW50Cithc24xX3JlYWRfbm9kZV92YWx1ZSAoYXNuMV9ub2RlX2Nv bnN0IG5vZGUsIGFzbjFfZGF0YV9ub2RlX3N0ICogZGF0YSkKK3sKKyAgZGF0YS0+bmFtZSA9IG5v ZGUtPm5hbWU7CisgIGRhdGEtPnZhbHVlID0gbm9kZS0+dmFsdWU7CisgIGRhdGEtPnZhbHVlX2xl biA9IG5vZGUtPnZhbHVlX2xlbjsKKyAgZGF0YS0+dHlwZSA9IHR5cGVfZmllbGQgKG5vZGUtPnR5 cGUpOworCisgIHJldHVybiBBU04xX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS9ncnViLWNvcmUv bGliL2xpYnRhc24xL2xpYi9lbGVtZW50LmggYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9l bGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi44ZGQwY2ViYTgK LS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9lbGVtZW50LmgK QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDIyIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRB U04xLgorICoKKyAqIFRoZSBMSUJUQVNOMSBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0CisgKiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BCisgKiAwMjExMC0xMzAxLCBVU0EKKyAqLworCisjaWZuZGVmIF9FTEVNRU5U X0gKKyMgZGVmaW5lIF9FTEVNRU5UX0gKKworCitzdHJ1Y3Qgbm9kZV90YWlsX2NhY2hlX3N0Cit7 CisgIGFzbjFfbm9kZSBoZWFkOwkJLyogdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIHNlcXVlbmNl ICovCisgIGFzbjFfbm9kZSB0YWlsOworfTsKKworaW50IF9hc24xX2FwcGVuZF9zZXF1ZW5jZV9z ZXQgKGFzbjFfbm9kZSBub2RlLAorCQkJICAgICAgIHN0cnVjdCBub2RlX3RhaWxfY2FjaGVfc3Qg KnBjYWNoZWQpOworCitpbnQgX2FzbjFfY29udmVydF9pbnRlZ2VyIChjb25zdCB1bnNpZ25lZCBj aGFyICp2YWx1ZSwKKwkJCSAgIHVuc2lnbmVkIGNoYXIgKnZhbHVlX291dCwKKwkJCSAgIGludCB2 YWx1ZV9vdXRfc2l6ZSwgaW50ICpsZW4pOworCit2b2lkIF9hc24xX2hpZXJhcmNoaWNhbF9uYW1l IChhc24xX25vZGVfY29uc3Qgbm9kZSwgY2hhciAqbmFtZSwKKwkJCSAgICAgIGludCBuYW1lX3Np emUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFzbjEvbGliL2Vy cm9ycy5jIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZXJyb3JzLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hZWY1ZGZlNmYKLS0tIC9kZXYvbnVsbAorKysgYi9n cnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9lcnJvcnMuYwpAQCAtMCwwICsxLDEwMCBAQAorLyoK KyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRBU04xLgorICoKKyAqIFRoZSBMSUJU QVNOMSBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0Cisg KiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisgKiAwMjEx MC0xMzAxLCBVU0EKKyAqLworCisjaW5jbHVkZSA8aW50Lmg+CisjaWZkZWYgU1REQ19IRUFERVJT CisjIGluY2x1ZGUgPHN0ZGFyZy5oPgorI2VuZGlmCisKKyNkZWZpbmUgTElCVEFTTjFfRVJST1Jf RU5UUlkobmFtZSkgeyAjbmFtZSwgbmFtZSB9CisKK3N0cnVjdCBsaWJ0YXNuMV9lcnJvcl9lbnRy eQoreworICBjb25zdCBjaGFyICpuYW1lOworICBpbnQgbnVtYmVyOworfTsKK3R5cGVkZWYgc3Ry dWN0IGxpYnRhc24xX2Vycm9yX2VudHJ5IGxpYnRhc24xX2Vycm9yX2VudHJ5OworCitzdGF0aWMg Y29uc3QgbGlidGFzbjFfZXJyb3JfZW50cnkgZXJyb3JfYWxnb3JpdGhtc1tdID0geworICBMSUJU QVNOMV9FUlJPUl9FTlRSWSAoQVNOMV9TVUNDRVNTKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkg KEFTTjFfRklMRV9OT1RfRk9VTkQpLAorICBMSUJUQVNOMV9FUlJPUl9FTlRSWSAoQVNOMV9FTEVN RU5UX05PVF9GT1VORCksCisgIExJQlRBU04xX0VSUk9SX0VOVFJZIChBU04xX0lERU5USUZJRVJf Tk9UX0ZPVU5EKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkgKEFTTjFfREVSX0VSUk9SKSwKKyAg TElCVEFTTjFfRVJST1JfRU5UUlkgKEFTTjFfVkFMVUVfTk9UX0ZPVU5EKSwKKyAgTElCVEFTTjFf RVJST1JfRU5UUlkgKEFTTjFfR0VORVJJQ19FUlJPUiksCisgIExJQlRBU04xX0VSUk9SX0VOVFJZ IChBU04xX1ZBTFVFX05PVF9WQUxJRCksCisgIExJQlRBU04xX0VSUk9SX0VOVFJZIChBU04xX1RB R19FUlJPUiksCisgIExJQlRBU04xX0VSUk9SX0VOVFJZIChBU04xX1RBR19JTVBMSUNJVCksCisg IExJQlRBU04xX0VSUk9SX0VOVFJZIChBU04xX0VSUk9SX1RZUEVfQU5ZKSwKKyAgTElCVEFTTjFf RVJST1JfRU5UUlkgKEFTTjFfU1lOVEFYX0VSUk9SKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkg KEFTTjFfTUVNX0VSUk9SKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkgKEFTTjFfTUVNX0FMTE9D X0VSUk9SKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkgKEFTTjFfREVSX09WRVJGTE9XKSwKKyAg TElCVEFTTjFfRVJST1JfRU5UUlkgKEFTTjFfTkFNRV9UT09fTE9ORyksCisgIExJQlRBU04xX0VS Uk9SX0VOVFJZIChBU04xX0FSUkFZX0VSUk9SKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkgKEFT TjFfRUxFTUVOVF9OT1RfRU1QVFkpLAorICBMSUJUQVNOMV9FUlJPUl9FTlRSWSAoQVNOMV9USU1F X0VOQ09ESU5HX0VSUk9SKSwKKyAgTElCVEFTTjFfRVJST1JfRU5UUlkgKEFTTjFfUkVDVVJTSU9O KSwKKyAgezAsIDB9Cit9OworCisvKioKKyAqIGFzbjFfcGVycm9yOgorICogQGVycm9yOiBpcyBh biBlcnJvciByZXR1cm5lZCBieSBhIGxpYnRhc24xIGZ1bmN0aW9uLgorICoKKyAqIFByaW50cyBh IHN0cmluZyB0byBzdGRlcnIgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIGFuIGVycm9yLiAgVGhpcwor ICogZnVuY3Rpb24gaXMgbGlrZSBwZXJyb3IoKS4gIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhh dCBpdCBhY2NlcHRzCisgKiBhbiBlcnJvciByZXR1cm5lZCBieSBhIGxpYnRhc24xIGZ1bmN0aW9u LgorICoKKyAqIFNpbmNlOiAxLjYKKyAqKi8KK3ZvaWQKK2FzbjFfcGVycm9yIChpbnQgZXJyb3Ip Cit7CisgIGNvbnN0IGNoYXIgKnN0ciA9IGFzbjFfc3RyZXJyb3IgKGVycm9yKTsKKyAgZnByaW50 ZiAoc3RkZXJyLCAiTElCVEFTTjEgRVJST1I6ICVzXG4iLCBzdHIgPyBzdHIgOiAiKG51bGwpIik7 Cit9CisKKy8qKgorICogYXNuMV9zdHJlcnJvcjoKKyAqIEBlcnJvcjogaXMgYW4gZXJyb3IgcmV0 dXJuZWQgYnkgYSBsaWJ0YXNuMSBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zIGEgc3RyaW5nIHdp dGggYSBkZXNjcmlwdGlvbiBvZiBhbiBlcnJvci4gIFRoaXMgZnVuY3Rpb24gaXMKKyAqIHNpbWls YXIgdG8gc3RyZXJyb3IuICBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgaXQgYWNjZXB0cyBh bgorICogZXJyb3IgKG51bWJlcikgcmV0dXJuZWQgYnkgYSBsaWJ0YXNuMSBmdW5jdGlvbi4KKyAq CisgKiBSZXR1cm5zOiBQb2ludGVyIHRvIHN0YXRpYyB6ZXJvLXRlcm1pbmF0ZWQgc3RyaW5nIGRl c2NyaWJpbmcgZXJyb3IKKyAqICAgY29kZS4KKyAqCisgKiBTaW5jZTogMS42CisgKiovCitjb25z dCBjaGFyICoKK2FzbjFfc3RyZXJyb3IgKGludCBlcnJvcikKK3sKKyAgY29uc3QgbGlidGFzbjFf ZXJyb3JfZW50cnkgKnA7CisKKyAgZm9yIChwID0gZXJyb3JfYWxnb3JpdGhtczsgcC0+bmFtZSAh PSBOVUxMOyBwKyspCisgICAgaWYgKHAtPm51bWJlciA9PSBlcnJvcikKKyAgICAgIHJldHVybiBw LT5uYW1lICsgc2l6ZW9mICgiQVNOMV8iKSAtIDE7CisKKyAgcmV0dXJuIE5VTEw7Cit9CmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9nc3RyLmMgYi9ncnViLWNvcmUvbGli L2xpYnRhc24xL2xpYi9nc3RyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li5lZWY0MTk1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xp Yi9nc3RyLmMKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDIy IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIExJQlRBU04xLgorICoKKyAqIFRoZSBMSUJUQVNOMSBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0CisgKiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BCisgKiAwMjExMC0xMzAxLCBVU0EKKyAqLworCisjaW5jbHVk ZSA8aW50Lmg+CisjaW5jbHVkZSAiZ3N0ci5oIgorCisvKiBUaGVzZSBmdW5jdGlvbiBhcmUgbGlr ZSBzdHJjYXQsIHN0cmNweS4gVGhleSBvbmx5CisgKiBkbyBib3VuZHMgY2hlY2tpbmcgKHRoZXkg c2hvdWxkbid0IGNhdXNlIGJ1ZmZlciBvdmVycnVucyksCisgKiBhbmQgdGhleSBhbHdheXMgcHJv ZHVjZSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5ncy4KKyAqCisgKiBUaGV5IHNob3VsZCBiZSB1c2Vk IG9ubHkgd2l0aCBudWxsIHRlcm1pbmF0ZWQgc3RyaW5ncy4KKyAqLwordm9pZAorX2FzbjFfc3Ry X2NhdCAoY2hhciAqZGVzdCwgc2l6ZV90IGRlc3RfdG90X3NpemUsIGNvbnN0IGNoYXIgKnNyYykK K3sKKyAgc2l6ZV90IHN0cl9zaXplID0gc3RybGVuIChzcmMpOworICBzaXplX3QgZGVzdF9zaXpl ID0gc3RybGVuIChkZXN0KTsKKworICBpZiAoZGVzdF90b3Rfc2l6ZSAtIGRlc3Rfc2l6ZSA+IHN0 cl9zaXplKQorICAgIHsKKyAgICAgIHN0cmNhdCAoZGVzdCwgc3JjKTsKKyAgICB9CisgIGVsc2UK KyAgICB7CisgICAgICBpZiAoZGVzdF90b3Rfc2l6ZSA+IGRlc3Rfc2l6ZSkKKwl7CisJICBzdHJu Y2F0IChkZXN0LCBzcmMsIChkZXN0X3RvdF9zaXplIC0gZGVzdF9zaXplKSAtIDEpOworCSAgZGVz dFtkZXN0X3RvdF9zaXplIC0gMV0gPSAwOworCX0KKyAgICB9Cit9CisKKy8qIFJldHVybnMgdGhl IGJ5dGVzIGNvcGllZCAobm90IGluY2x1ZGluZyB0aGUgbnVsbCB0ZXJtaW5hdG9yKSAqLwordW5z aWduZWQgaW50CitfYXNuMV9zdHJfY3B5IChjaGFyICpkZXN0LCBzaXplX3QgZGVzdF90b3Rfc2l6 ZSwgY29uc3QgY2hhciAqc3JjKQoreworICBzaXplX3Qgc3RyX3NpemUgPSBzdHJsZW4gKHNyYyk7 CisKKyAgaWYgKGRlc3RfdG90X3NpemUgPiBzdHJfc2l6ZSkKKyAgICB7CisgICAgICBzdHJjcHkg KGRlc3QsIHNyYyk7CisgICAgICByZXR1cm4gc3RyX3NpemU7CisgICAgfQorICBlbHNlCisgICAg eworICAgICAgaWYgKGRlc3RfdG90X3NpemUgPiAwKQorCXsKKwkgIHN0cl9zaXplID0gZGVzdF90 b3Rfc2l6ZSAtIDE7CisJICBtZW1jcHkgKGRlc3QsIHNyYywgc3RyX3NpemUpOworCSAgZGVzdFtz dHJfc2l6ZV0gPSAwOworCSAgcmV0dXJuIHN0cl9zaXplOworCX0KKyAgICAgIGVsc2UKKwlyZXR1 cm4gMDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9n c3RyLmggYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9nc3RyLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi45OWJlNmM0YWYKLS0tIC9kZXYvbnVsbAorKysgYi9ncnVi LWNvcmUvbGliL2xpYnRhc24xL2xpYi9nc3RyLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv cHlyaWdodCAoQykgMjAwMi0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoK KyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRBU04xLgorICoKKyAqIFRoZSBMSUJUQVNOMSBs aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0CisgKiBhbmQv b3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisgKiAwMjExMC0xMzAx LCBVU0EKKyAqLworCisjaWZuZGVmIEdTVFJfSAorIyBkZWZpbmUgR1NUUl9ICisKK3Vuc2lnbmVk IGludCBfYXNuMV9zdHJfY3B5IChjaGFyICpkZXN0LCBzaXplX3QgZGVzdF90b3Rfc2l6ZSwKKwkJ CSAgICBjb25zdCBjaGFyICpzcmMpOwordm9pZCBfYXNuMV9zdHJfY2F0IChjaGFyICpkZXN0LCBz aXplX3QgZGVzdF90b3Rfc2l6ZSwgY29uc3QgY2hhciAqc3JjKTsKKworIyBkZWZpbmUgRXN0cmNw eSh4LHkpIF9hc24xX3N0cl9jcHkoeCxBU04xX01BWF9FUlJPUl9ERVNDUklQVElPTl9TSVpFLHkp CisjIGRlZmluZSBFc3RyY2F0KHgseSkgX2FzbjFfc3RyX2NhdCh4LEFTTjFfTUFYX0VSUk9SX0RF U0NSSVBUSU9OX1NJWkUseSkKKworaW5saW5lIHN0YXRpYyB2b2lkCitzYWZlX21lbXNldCAodm9p ZCAqZGF0YSwgaW50IGMsIHNpemVfdCBzaXplKQoreworICB2b2xhdGlsZSB1bnNpZ25lZCB2b2xh dGlsZV96ZXJvID0gMDsKKyAgdm9sYXRpbGUgY2hhciAqdmRhdGEgPSAodm9sYXRpbGUgY2hhciAq KSBkYXRhOworCisgIC8qIFRoaXMgaXMgYmFzZWQgb24gYSBuaWNlIHRyaWNrIGZvciBzYWZlIG1l bXNldCwKKyAgICogc2VudCBieSBEYXZpZCBKYWNvYnNvbiBpbiB0aGUgb3BlbnNzbC1kZXYgbWFp bGluZyBsaXN0LgorICAgKi8KKworICBpZiAoc2l6ZSA+IDApCisgICAgZG8KKyAgICAgIHsKKwlt ZW1zZXQgKGRhdGEsIGMsIHNpemUpOworICAgICAgfQorICAgIHdoaWxlICh2ZGF0YVt2b2xhdGls ZV96ZXJvXSAhPSBjKTsKK30KKworI2VuZGlmIC8qIEdTVFJfSCAqLwpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvaW50LmggYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xp Yi9pbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmQ5NGQ1MWM4Ywot LS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvbGliL2ludC5oCkBAIC0w LDAgKzEsMjIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMjIgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgTElCVEFTTjEu CisgKgorICogVGhlIExJQlRBU04xIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQKKyAqIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEKKyAqIDAyMTEwLTEzMDEsIFVTQQorICovCisKKyNpZm5kZWYgSU5UX0gKKyMgZGVm aW5lIElOVF9ICisKKyMgaWZkZWYgSEFWRV9DT05GSUdfSAorIyAgaW5jbHVkZSA8Y29uZmlnLmg+ CisjIGVuZGlmCisKKyMgaW5jbHVkZSA8c3RyaW5nLmg+CisjIGluY2x1ZGUgPHN0ZGxpYi5oPgor IyBpbmNsdWRlIDxzdGRpby5oPgorIyBpbmNsdWRlIDxzdGRpbnQuaD4KKworIyBpZmRlZiBIQVZF X1NZU19UWVBFU19ICisjICBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyMgZW5kaWYKKworIyBpbmNs dWRlIDxsaWJ0YXNuMS5oPgorCisjIGRlZmluZSBBU04xX1NNQUxMX1ZBTFVFX1NJWkUgMTYKKwor LyogVGhpcyBzdHJ1Y3R1cmUgaXMgYWxzbyBpbiBsaWJ0YXNuMS5oLCBidXQgdGhlbiBjb250YWlu cyBsZXNzCisgICBmaWVsZHMuICBZb3UgY2Fubm90IG1ha2UgYW55IG1vZGlmaWNhdGlvbnMgdG8g dGhlc2UgZmlyc3QgZmllbGRzCisgICB3aXRob3V0IGJyZWFraW5nIEFCSS4gICovCitzdHJ1Y3Qg YXNuMV9ub2RlX3N0Cit7CisgIC8qIHB1YmxpYyBmaWVsZHM6ICovCisgIGNoYXIgbmFtZVtBU04x X01BWF9OQU1FX1NJWkUgKyAxXTsJLyogTm9kZSBuYW1lICovCisgIHVuc2lnbmVkIGludCBuYW1l X2hhc2g7CisgIHVuc2lnbmVkIGludCB0eXBlOwkJLyogTm9kZSB0eXBlICovCisgIHVuc2lnbmVk IGNoYXIgKnZhbHVlOwkJLyogTm9kZSB2YWx1ZSAqLworICBpbnQgdmFsdWVfbGVuOworICBhc24x X25vZGUgZG93bjsJCS8qIFBvaW50ZXIgdG8gdGhlIHNvbiBub2RlICovCisgIGFzbjFfbm9kZSBy aWdodDsJCS8qIFBvaW50ZXIgdG8gdGhlIGJyb3RoZXIgbm9kZSAqLworICBhc24xX25vZGUgbGVm dDsJCS8qIFBvaW50ZXIgdG8gdGhlIG5leHQgbGlzdCBlbGVtZW50ICovCisgIC8qIHByaXZhdGUg ZmllbGRzOiAqLworICB1bnNpZ25lZCBjaGFyIHNtYWxsX3ZhbHVlW0FTTjFfU01BTExfVkFMVUVf U0laRV07CS8qIEZvciBzbWFsbCB2YWx1ZXMgKi8KKworICAvKiB2YWx1ZXMgdXNlZCBkdXJpbmcg ZGVjb2RpbmcvY29kaW5nICovCisgIGludCB0bXBfaXZhbDsKKyAgdW5zaWduZWQgc3RhcnQ7CQkv KiB0aGUgc3RhcnQgb2YgdGhlIERFUiBzZXF1ZW5jZSAtIGlmIGRlY29kZWQgKi8KKyAgdW5zaWdu ZWQgZW5kOwkJCS8qIHRoZSBlbmQgb2YgdGhlIERFUiBzZXF1ZW5jZSAtIGlmIGRlY29kZWQgKi8K K307CisKK3R5cGVkZWYgc3RydWN0IHRhZ19hbmRfY2xhc3Nfc3QKK3sKKyAgdW5zaWduZWQgdGFn OworICB1bnNpZ25lZCBjbGFzczsKKyAgY29uc3QgY2hhciAqZGVzYzsKK30gdGFnX2FuZF9jbGFz c19zdDsKKworLyogdGhlIHR5cGVzIHRoYXQgYXJlIGhhbmRsZWQgaW4gX2FzbjFfdGFncyAqLwor IyBkZWZpbmUgQ0FTRV9IQU5ETEVEX0VUWVBFUyBcCisJY2FzZSBBU04xX0VUWVBFX05VTEw6IFwK KwljYXNlIEFTTjFfRVRZUEVfQk9PTEVBTjogXAorCWNhc2UgQVNOMV9FVFlQRV9JTlRFR0VSOiBc CisJY2FzZSBBU04xX0VUWVBFX0VOVU1FUkFURUQ6IFwKKwljYXNlIEFTTjFfRVRZUEVfT0JKRUNU X0lEOiBcCisJY2FzZSBBU04xX0VUWVBFX09DVEVUX1NUUklORzogXAorCWNhc2UgQVNOMV9FVFlQ RV9HRU5FUkFMU1RSSU5HOiBcCisgICAgICAgIGNhc2UgQVNOMV9FVFlQRV9OVU1FUklDX1NUUklO RzogXAorICAgICAgICBjYXNlIEFTTjFfRVRZUEVfSUE1X1NUUklORzogXAorICAgICAgICBjYXNl IEFTTjFfRVRZUEVfVEVMRVRFWF9TVFJJTkc6IFwKKyAgICAgICAgY2FzZSBBU04xX0VUWVBFX1BS SU5UQUJMRV9TVFJJTkc6IFwKKyAgICAgICAgY2FzZSBBU04xX0VUWVBFX1VOSVZFUlNBTF9TVFJJ Tkc6IFwKKyAgICAgICAgY2FzZSBBU04xX0VUWVBFX0JNUF9TVFJJTkc6IFwKKyAgICAgICAgY2Fz ZSBBU04xX0VUWVBFX1VURjhfU1RSSU5HOiBcCisgICAgICAgIGNhc2UgQVNOMV9FVFlQRV9WSVNJ QkxFX1NUUklORzogXAorCWNhc2UgQVNOMV9FVFlQRV9CSVRfU1RSSU5HOiBcCisJY2FzZSBBU04x X0VUWVBFX1NFUVVFTkNFOiBcCisJY2FzZSBBU04xX0VUWVBFX1NFUVVFTkNFX09GOiBcCisJY2Fz ZSBBU04xX0VUWVBFX1NFVDogXAorCWNhc2UgQVNOMV9FVFlQRV9VVENfVElNRTogXAorCWNhc2Ug QVNOMV9FVFlQRV9HRU5FUkFMSVpFRF9USU1FOiBcCisJY2FzZSBBU04xX0VUWVBFX1NFVF9PRgor CisjIGRlZmluZSBFVFlQRV9UQUcoZXR5cGUpIChfYXNuMV90YWdzW2V0eXBlXS50YWcpCisjIGRl ZmluZSBFVFlQRV9DTEFTUyhldHlwZSkgKF9hc24xX3RhZ3NbZXR5cGVdLmNsYXNzKQorIyBkZWZp bmUgRVRZUEVfT0soZXR5cGUpICgoKGV0eXBlKSAhPSBBU04xX0VUWVBFX0lOVkFMSUQgJiYgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAoZXR5cGUpIDwgX2FzbjFfdGFnc19zaXplICYmIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgX2FzbjFfdGFnc1soZXR5cGUpXS5kZXNjICE9IE5V TEwpPzE6MCkKKworIyBkZWZpbmUgRVRZUEVfSVNfU1RSSU5HKGV0eXBlKSAoKGV0eXBlID09IEFT TjFfRVRZUEVfR0VORVJBTFNUUklORyB8fCBcCisJZXR5cGUgPT0gQVNOMV9FVFlQRV9OVU1FUklD X1NUUklORyB8fCBldHlwZSA9PSBBU04xX0VUWVBFX0lBNV9TVFJJTkcgfHwgXAorCWV0eXBlID09 IEFTTjFfRVRZUEVfVEVMRVRFWF9TVFJJTkcgfHwgZXR5cGUgPT0gQVNOMV9FVFlQRV9QUklOVEFC TEVfU1RSSU5HIHx8IFwKKwlldHlwZSA9PSBBU04xX0VUWVBFX1VOSVZFUlNBTF9TVFJJTkcgfHwg ZXR5cGUgPT0gQVNOMV9FVFlQRV9CTVBfU1RSSU5HIHx8IFwKKwlldHlwZSA9PSBBU04xX0VUWVBF X1VURjhfU1RSSU5HIHx8IGV0eXBlID09IEFTTjFfRVRZUEVfVklTSUJMRV9TVFJJTkcgfHwgXAor CWV0eXBlID09IEFTTjFfRVRZUEVfT0NURVRfU1RSSU5HKT8xOjApCisKK2V4dGVybiB1bnNpZ25l ZCBpbnQgX2FzbjFfdGFnc19zaXplOworZXh0ZXJuIGNvbnN0IHRhZ19hbmRfY2xhc3Nfc3QgX2Fz bjFfdGFnc1tdOworCisjIGRlZmluZSBfYXNuMV9zdHJsZW4ocykgc3RybGVuKChjb25zdCBjaGFy ICopIHMpCisjIGRlZmluZSBfYXNuMV9zdHJ0b2wobixlLGIpIHN0cnRvbCgoY29uc3QgY2hhciAq KSBuLCBlLCBiKQorIyBkZWZpbmUgX2FzbjFfc3RydG91bChuLGUsYikgc3RydG91bCgoY29uc3Qg Y2hhciAqKSBuLCBlLCBiKQorIyBkZWZpbmUgX2FzbjFfc3RyY21wKGEsYikgc3RyY21wKChjb25z dCBjaGFyICopYSwgKGNvbnN0IGNoYXIgKiliKQorIyBkZWZpbmUgX2FzbjFfc3RyY3B5KGEsYikg c3RyY3B5KChjaGFyICopYSwgKGNvbnN0IGNoYXIgKiliKQorIyBkZWZpbmUgX2FzbjFfc3RyY2F0 KGEsYikgc3RyY2F0KChjaGFyICopYSwgKGNvbnN0IGNoYXIgKiliKQorCisjIGlmIFNJWkVPRl9V TlNJR05FRF9MT05HX0lOVCA9PSA4CisjICBkZWZpbmUgX2FzbjFfc3RydG91NjQobixlLGIpIHN0 cnRvdWwoKGNvbnN0IGNoYXIgKikgbiwgZSwgYikKKyMgZWxzZQorIyAgZGVmaW5lIF9hc24xX3N0 cnRvdTY0KG4sZSxiKSBzdHJ0b3VsbCgoY29uc3QgY2hhciAqKSBuLCBlLCBiKQorIyBlbmRpZgor CisjIGRlZmluZSBNQVhfTE9HX1NJWkUgMTAyNAkvKiBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0 ZXJzIG9mIGEgbG9nIG1lc3NhZ2UgKi8KKworLyogRGVmaW5lIHVzZWQgZm9yIHZpc2l0aW5nIHRy ZWVzLiAqLworIyBkZWZpbmUgVVAgICAgIDEKKyMgZGVmaW5lIFJJR0hUICAyCisjIGRlZmluZSBE T1dOICAgMworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBMaXN0IG9mIGNvbnN0YW50cyB0byBiZXR0 ZXIgc3BlY2lmeSB0aGUgdHlwZSBvZiB0eXBlZGVmIGFzbjFfbm9kZV9zdC4gICAqLworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworLyogIFVzZWQgd2l0aCBUWVBFX1RBRyAgKi8KKyMgZGVmaW5lIENPTlNUX1VO SVZFUlNBTCAgICgxVTw8OCkKKyMgZGVmaW5lIENPTlNUX1BSSVZBVEUgICAgICgxVTw8OSkKKyMg ZGVmaW5lIENPTlNUX0FQUExJQ0FUSU9OICgxVTw8MTApCisjIGRlZmluZSBDT05TVF9FWFBMSUNJ VCAgICAoMVU8PDExKQorIyBkZWZpbmUgQ09OU1RfSU1QTElDSVQgICAgKDFVPDwxMikKKworIyBk ZWZpbmUgQ09OU1RfVEFHICAgICAgICAgKDFVPDwxMykJLyogIFVzZWQgaW4gQVNOLjEgYXNzaWdu ZW1lbnQgICovCisjIGRlZmluZSBDT05TVF9PUFRJT04gICAgICAoMVU8PDE0KQorIyBkZWZpbmUg Q09OU1RfREVGQVVMVCAgICAgKDFVPDwxNSkKKyMgZGVmaW5lIENPTlNUX1RSVUUgICAgICAgICgx VTw8MTYpCisjIGRlZmluZSBDT05TVF9GQUxTRSAgICAgICAoMVU8PDE3KQorCisjIGRlZmluZSBD T05TVF9MSVNUICAgICAgICAoMVU8PDE4KQkvKiAgVXNlZCB3aXRoIFRZUEVfSU5URUdFUiBhbmQg VFlQRV9CSVRfU1RSSU5HICAqLworIyBkZWZpbmUgQ09OU1RfTUlOX01BWCAgICAgKDFVPDwxOSkK KworIyBkZWZpbmUgQ09OU1RfMV9QQVJBTSAgICAgKDFVPDwyMCkKKworIyBkZWZpbmUgQ09OU1Rf U0laRSAgICAgICAgKDFVPDwyMSkKKworIyBkZWZpbmUgQ09OU1RfREVGSU5FRF9CWSAgKDFVPDwy MikKKworLyogVGhvc2UgdHdvIGFyZSBkZXByZWNhdGVkIGFuZCB1c2VkIGZvciBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eSAqLworIyBkZWZpbmUgQ09OU1RfR0VORVJBTElaRUQgKDFVPDwyMykKKyMg ZGVmaW5lIENPTlNUX1VUQyAgICAgICAgICgxVTw8MjQpCisKKy8qICNkZWZpbmUgQ09OU1RfSU1Q T1JUUyAgICAgKDFVPDwyNSkgKi8KKworIyBkZWZpbmUgQ09OU1RfTk9UX1VTRUQgICAgKDFVPDwy NikKKyMgZGVmaW5lIENPTlNUX1NFVCAgICAgICAgICgxVTw8MjcpCisjIGRlZmluZSBDT05TVF9B U1NJR04gICAgICAoMVU8PDI4KQorCisjIGRlZmluZSBDT05TVF9ET1dOICAgICAgICAoMVU8PDI5 KQorIyBkZWZpbmUgQ09OU1RfUklHSFQgICAgICAgKDFVPDwzMCkKKworCisjIGRlZmluZSBBU04x X0VUWVBFX1RJTUUgMTcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworLyogUmV0dXJucyB0aGUgZmlyc3QgOCBiaXRzLiAgICAgICAgICAgICovCisvKiBVc2VkIHdp dGggdGhlIGZpZWxkIHR5cGUgb2YgYXNuMV9ub2RlX3N0ICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KK2lubGluZSBzdGF0aWMgdW5zaWduZWQgaW50Cit0eXBl X2ZpZWxkICh1bnNpZ25lZCBpbnQgbnR5cGUpCit7CisgIHJldHVybiAobnR5cGUgJiAweGZmKTsK K30KKworLyogVG8gY29udmVydCBvbGQgdHlwZXMgZnJvbSBhIHN0YXRpYyBzdHJ1Y3R1cmUgKi8K K2lubGluZSBzdGF0aWMgdW5zaWduZWQgaW50Citjb252ZXJ0X29sZF90eXBlICh1bnNpZ25lZCBp bnQgbnR5cGUpCit7CisgIHVuc2lnbmVkIGludCB0eXBlID0gbnR5cGUgJiAweGZmOworICBpZiAo dHlwZSA9PSBBU04xX0VUWVBFX1RJTUUpCisgICAgeworICAgICAgaWYgKG50eXBlICYgQ09OU1Rf VVRDKQorCXR5cGUgPSBBU04xX0VUWVBFX1VUQ19USU1FOworICAgICAgZWxzZQorCXR5cGUgPSBB U04xX0VUWVBFX0dFTkVSQUxJWkVEX1RJTUU7CisKKyAgICAgIG50eXBlICY9IH4oQ09OU1RfVVRD IHwgQ09OU1RfR0VORVJBTElaRUQpOworICAgICAgbnR5cGUgJj0gMHhmZmZmZmYwMDsKKyAgICAg IG50eXBlIHw9IHR5cGU7CisKKyAgICAgIHJldHVybiBudHlwZTsKKyAgICB9CisgIGVsc2UKKyAg ICByZXR1cm4gbnR5cGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqCitfYXNuMV9yZWFsbG9j ICh2b2lkICpwdHIsIHNpemVfdCBzaXplKQoreworICB2b2lkICpyZXQ7CisKKyAgaWYgKHNpemUg PT0gMCkKKyAgICByZXR1cm4gcHRyOworCisgIHJldCA9IHJlYWxsb2MgKHB0ciwgc2l6ZSk7Cisg IGlmIChyZXQgPT0gTlVMTCkKKyAgICB7CisgICAgICBmcmVlIChwdHIpOworICAgIH0KKyAgcmV0 dXJuIHJldDsKK30KKworI2VuZGlmIC8qIElOVF9IICovCmRpZmYgLS1naXQgYS9ncnViLWNvcmUv bGliL2xpYnRhc24xL2xpYi9wYXJzZXJfYXV4LmMgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xp Yi9wYXJzZXJfYXV4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jMDVi ZDIzMzkKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9wYXJz ZXJfYXV4LmMKQEAgLTAsMCArMSwxMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIw MjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogVGhpcyBmaWxlIGlzIHBh cnQgb2YgTElCVEFTTjEuCisgKgorICogVGhlIExJQlRBU04xIGxpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQKKyAqIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKyAqIDAyMTEwLTEzMDEsIFVTQQorICovCisKKyNpbmNs dWRlIDxsaW1pdHMuaD4JCS8qIFdPUkRfQklUICovCisKKyNpbmNsdWRlICJpbnQuaCIKKyNpbmNs dWRlICJwYXJzZXJfYXV4LmgiCisjaW5jbHVkZSAiZ3N0ci5oIgorI2luY2x1ZGUgInN0cnVjdHVy ZS5oIgorI2luY2x1ZGUgImVsZW1lbnQuaCIKKyNpbmNsdWRlICJjLWN0eXBlLmgiCisKK2NoYXIg X2FzbjFfaWRlbnRpZmllck1pc3NpbmdbQVNOMV9NQVhfTkFNRV9TSVpFICsgMV07CS8qIGlkZW50 aWZpZXIgbmFtZSBub3QgZm91bmQgKi8KKworLyogUmV0dXJuIGEgaGFzaCBvZiB0aGUgTiBieXRl cyBvZiBYIHVzaW5nIHRoZSBtZXRob2QgZGVzY3JpYmVkIGJ5CisgICBCcnVubyBIYWlibGUgaW4g aHR0cHM6Ly93d3cuaGFpYmxlLmRlL2JydW5vL2hhc2hmdW5jLmh0bWwuCisgICBOb3RlIHRoYXQg d2hpbGUgbWFueSBoYXNoIGZ1bmN0aW9ucyByZWR1Y2UgdGhlaXIgcmVzdWx0IHZpYSBtb2R1bG8K KyAgIHRvIGEgMC4udGFibGVfc2l6ZS0xIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRv IHRoYXQuCisKKyAgIFRoaXMgaW1wbGVtZW50YXRpb24gaGFzIGJlZW4gY2hhbmdlZCBmcm9tIHNp emVfdCAtPiB1bnNpZ25lZCBpbnQuICovCisKKyNpZmRlZiBfX2NsYW5nX18KK19fYXR0cmlidXRl X18oKG5vX3Nhbml0aXplICgiaW50ZWdlciIpKSkKKyNlbmRpZgorICAgICBfR0xfQVRUUklCVVRF X1BVUkUgc3RhdGljIHVuc2lnbmVkIGludCBfYXNuMV9oYXNoX25hbWUgKGNvbnN0IGNoYXIgKngp Cit7CisgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMgPSAodW5zaWduZWQgY2hhciAqKSB4OworICB1 bnNpZ25lZCBoID0gMDsKKworICB3aGlsZSAoKnMpCisgICAgaCA9ICgqcysrKSArICgoaCA8PCA5 KSB8IChoID4+IChXT1JEX0JJVCAtIDkpKSk7CisKKyAgcmV0dXJuIGg7Cit9CisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGdW5j dGlvbiA6IF9hc24xX2FkZF9zdGF0aWNfbm9kZSAgICAgICAgICAgICAgICAgICAqLworLyogRGVz Y3JpcHRpb246IGNyZWF0ZXMgYSBuZXcgTk9ERV9BU04gZWxlbWVudCBhbmQgICAgKi8KKy8qIHB1 dHMgaXQgaW4gdGhlIGxpc3QgcG9pbnRlZCBieSBlX2xpc3QuICAgICAgICovCisvKiBQYXJhbWV0 ZXJzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBlX2xp c3Q6IG9mIHR5cGUgbGlzdF90eXBlOyBtdXN0IGJlIE5VTEwgaW5pdGlhbGx5ICovCisvKiAgIHR5 cGU6IHR5cGUgb2YgdGhlIG5ldyBlbGVtZW50IChzZWUgQVNOMV9FVFlQRV8gICAqLworLyogICAg ICAgICBhbmQgQ09OU1RfIGNvbnN0YW50cykuICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFJl dHVybjogcG9pbnRlciB0byB0aGUgbmV3IGVsZW1lbnQuICAgICAgICAgICAgICAgICovCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworYXNu MV9ub2RlCitfYXNuMV9hZGRfc3RhdGljX25vZGUgKGxpc3RfdHlwZSAqKiBlX2xpc3QsIHVuc2ln bmVkIGludCB0eXBlKQoreworICBsaXN0X3R5cGUgKnA7CisgIGFzbjFfbm9kZSBwdW50OworCisg IHB1bnQgPSBjYWxsb2MgKDEsIHNpemVvZiAoc3RydWN0IGFzbjFfbm9kZV9zdCkpOworICBpZiAo cHVudCA9PSBOVUxMKQorICAgIHJldHVybiBOVUxMOworCisgIHAgPSBtYWxsb2MgKHNpemVvZiAo bGlzdF90eXBlKSk7CisgIGlmIChwID09IE5VTEwpCisgICAgeworICAgICAgZnJlZSAocHVudCk7 CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgcC0+bm9kZSA9IHB1bnQ7CisgIHAtPm5l eHQgPSAqZV9saXN0OworICAqZV9saXN0ID0gcDsKKworICBwdW50LT50eXBlID0gdHlwZTsKKwor ICByZXR1cm4gcHVudDsKK30KKworc3RhdGljIGludAorX2FzbjFfYWRkX3N0YXRpY19ub2RlMiAo bGlzdF90eXBlICoqIGVfbGlzdCwgYXNuMV9ub2RlIG5vZGUpCit7CisgIGxpc3RfdHlwZSAqcDsK KworICBwID0gbWFsbG9jIChzaXplb2YgKGxpc3RfdHlwZSkpOworICBpZiAocCA9PSBOVUxMKQor ICAgIHsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgcC0+bm9kZSA9IG5vZGU7CisgIHAt Pm5leHQgPSAqZV9saXN0OworICAqZV9saXN0ID0gcDsKKworICByZXR1cm4gMDsKK30KKworLyoq CisgKiBhc24xX2ZpbmRfbm9kZToKKyAqIEBwb2ludGVyOiBOT0RFX0FTTiBlbGVtZW50IHBvaW50 ZXIuCisgKiBAbmFtZTogbnVsbCB0ZXJtaW5hdGVkIHN0cmluZyB3aXRoIHRoZSBlbGVtZW50J3Mg bmFtZSB0byBmaW5kLgorICoKKyAqIFNlYXJjaGVzIGZvciBhbiBlbGVtZW50IGNhbGxlZCBAbmFt ZSBzdGFydGluZyBmcm9tIEBwb2ludGVyLiAgVGhlCisgKiBuYW1lIGlzIGNvbXBvc2VkIGJ5IGRp ZmZlcmVudCBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgZG90cy4gIFdoZW4KKyAqICpAcG9pbnRl ciBoYXMgYSBuYW1lLCB0aGUgZmlyc3QgaWRlbnRpZmllciBtdXN0IGJlIHRoZSBuYW1lIG9mCisg KiAqQHBvaW50ZXIsIG90aGVyd2lzZSBpdCBtdXN0IGJlIHRoZSBuYW1lIG9mIG9uZSBjaGlsZCBv ZiAqQHBvaW50ZXIuCisgKgorICogUmV0dXJuczogdGhlIHNlYXJjaCByZXN1bHQsIG9yICVOVUxM IGlmIG5vdCBmb3VuZC4KKyAqKi8KK2FzbjFfbm9kZQorYXNuMV9maW5kX25vZGUgKGFzbjFfbm9k ZV9jb25zdCBwb2ludGVyLCBjb25zdCBjaGFyICpuYW1lKQoreworICBhc24xX25vZGVfY29uc3Qg cDsKKyAgY2hhciAqbl9lbmQsIG5bQVNOMV9NQVhfTkFNRV9TSVpFICsgMV07CisgIGNvbnN0IGNo YXIgKm5fc3RhcnQ7CisgIHVuc2lnbmVkIGludCBuc2l6ZTsKKyAgdW5zaWduZWQgaW50IG5oYXNo OworCisgIGlmIChwb2ludGVyID09IE5VTEwpCisgICAgcmV0dXJuIE5VTEw7CisKKyAgaWYgKG5h bWUgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKworICBwID0gcG9pbnRlcjsKKyAgbl9zdGFy dCA9IG5hbWU7CisKKyAgaWYgKG5hbWVbMF0gPT0gJz8nICYmIG5hbWVbMV0gPT0gJ0MnICYmIHAt Pm5hbWVbMF0gPT0gJz8nKQorICAgIHsJCQkJLyogP0NVUlJFTlQgKi8KKyAgICAgIG5fc3RhcnQg PSBzdHJjaHIgKG5fc3RhcnQsICcuJyk7CisgICAgICBpZiAobl9zdGFydCkKKwluX3N0YXJ0Kys7 CisgICAgfQorICBlbHNlIGlmIChwLT5uYW1lWzBdICE9IDApCisgICAgewkJCQkvKiBoYXMgKnBv aW50ZXIgZ290IGEgbmFtZSA/ICovCisgICAgICBuX2VuZCA9IHN0cmNociAobl9zdGFydCwgJy4n KTsJLyogc2VhcmNoIHRoZSBmaXJzdCBkb3QgKi8KKyAgICAgIGlmIChuX2VuZCkKKwl7CisJICBu c2l6ZSA9IG5fZW5kIC0gbl9zdGFydDsKKwkgIGlmIChuc2l6ZSA+PSBzaXplb2YgKG4pKQorCSAg ICByZXR1cm4gTlVMTDsKKworCSAgbWVtY3B5IChuLCBuX3N0YXJ0LCBuc2l6ZSk7CisJICBuW25z aXplXSA9IDA7CisJICBuX3N0YXJ0ID0gbl9lbmQ7CisJICBuX3N0YXJ0Kys7CisKKwkgIG5oYXNo ID0gX2FzbjFfaGFzaF9uYW1lIChuKTsKKwl9CisgICAgICBlbHNlCisJeworCSAgX2FzbjFfc3Ry X2NweSAobiwgc2l6ZW9mIChuKSwgbl9zdGFydCk7CisJICBuaGFzaCA9IF9hc24xX2hhc2hfbmFt ZSAobik7CisKKwkgIG5fc3RhcnQgPSBOVUxMOworCX0KKworICAgICAgd2hpbGUgKHApCisJewor CSAgaWYgKG5oYXNoID09IHAtPm5hbWVfaGFzaCAmJiAoIXN0cmNtcCAocC0+bmFtZSwgbikpKQor CSAgICBicmVhazsKKwkgIGVsc2UKKwkgICAgcCA9IHAtPnJpZ2h0OworCX0JCQkvKiB3aGlsZSAq LworCisgICAgICBpZiAocCA9PSBOVUxMKQorCXJldHVybiBOVUxMOworICAgIH0KKyAgZWxzZQor ICAgIHsJCQkJLyogKnBvaW50ZXIgZG9lc24ndCBoYXZlIGEgbmFtZSAqLworICAgICAgaWYgKG5f c3RhcnRbMF0gPT0gMCkKKwlyZXR1cm4gKGFzbjFfbm9kZSkgcDsKKyAgICB9CisKKyAgd2hpbGUg KG5fc3RhcnQpCisgICAgewkJCQkvKiBIYXMgdGhlIGVuZCBvZiBOQU1FIGJlZW4gcmVhY2hlZD8g Ki8KKyAgICAgIG5fZW5kID0gc3RyY2hyIChuX3N0YXJ0LCAnLicpOwkvKiBzZWFyY2ggdGhlIG5l eHQgZG90ICovCisgICAgICBpZiAobl9lbmQpCisJeworCSAgbnNpemUgPSBuX2VuZCAtIG5fc3Rh cnQ7CisJICBpZiAobnNpemUgPj0gc2l6ZW9mIChuKSkKKwkgICAgcmV0dXJuIE5VTEw7CisKKwkg IG1lbWNweSAobiwgbl9zdGFydCwgbnNpemUpOworCSAgbltuc2l6ZV0gPSAwOworCSAgbl9zdGFy dCA9IG5fZW5kOworCSAgbl9zdGFydCsrOworCisJICBuaGFzaCA9IF9hc24xX2hhc2hfbmFtZSAo bik7CisJfQorICAgICAgZWxzZQorCXsKKwkgIF9hc24xX3N0cl9jcHkgKG4sIHNpemVvZiAobiks IG5fc3RhcnQpOworCSAgbmhhc2ggPSBfYXNuMV9oYXNoX25hbWUgKG4pOworCSAgbl9zdGFydCA9 IE5VTEw7CisJfQorCisgICAgICBpZiAocC0+ZG93biA9PSBOVUxMKQorCXJldHVybiBOVUxMOwor CisgICAgICBwID0gcC0+ZG93bjsKKyAgICAgIGlmIChwID09IE5VTEwpCisJcmV0dXJuIE5VTEw7 CisKKyAgICAgIC8qIFRoZSBpZGVudGlmaWVyICI/TEFTVCIgaW5kaWNhdGVzIHRoZSBsYXN0IGVs ZW1lbnQKKyAgICAgICAgIGluIHRoZSByaWdodCBjaGFpbi4gKi8KKyAgICAgIGlmIChuWzBdID09 ICc/JyAmJiBuWzFdID09ICdMJykJLyogP0xBU1QgKi8KKwl7CisJICB3aGlsZSAocC0+cmlnaHQp CisJICAgIHAgPSBwLT5yaWdodDsKKwl9CisgICAgICBlbHNlCisJewkJCS8qIG5vICI/TEFTVCIg Ki8KKwkgIHdoaWxlIChwKQorCSAgICB7CisJICAgICAgaWYgKHAtPm5hbWVfaGFzaCA9PSBuaGFz aCAmJiAhc3RyY21wIChwLT5uYW1lLCBuKSkKKwkJYnJlYWs7CisJICAgICAgZWxzZQorCQlwID0g cC0+cmlnaHQ7CisJICAgIH0KKwl9CisgICAgICBpZiAocCA9PSBOVUxMKQorCXJldHVybiBOVUxM OworICAgIH0JCQkJLyogd2hpbGUgKi8KKworICByZXR1cm4gKGFzbjFfbm9kZSkgcDsKK30KKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9zZXRfdmFsdWUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBzZXRzIHRoZSBmaWVs ZCBWQUxVRSBpbiBhIE5PREVfQVNOIGVsZW1lbnQuIFRoZSAgICovCisvKiAgICAgICAgICAgICAg cHJldmlvdXMgdmFsdWUgKGlmIGV4aXN0KSB3aWxsIGJlIGxvc3QgICAgICAgICAgICAqLworLyog UGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qICAgbm9kZTogZWxlbWVudCBwb2ludGVyLiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCisvKiAgIHZhbHVlOiBwb2ludGVyIHRvIHRoZSB2YWx1ZSB0 aGF0IHlvdSB3YW50IHRvIHNldC4gICAgICAgICAgICAqLworLyogICBsZW46IGNoYXJhY3RlciBu dW1iZXIgb2YgdmFsdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFJldHVy bjogcG9pbnRlciB0byB0aGUgTk9ERV9BU04gZWxlbWVudC4gICAgICAgICAgICAgICAgICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworYXNuMV9ub2RlCitfYXNuMV9zZXRfdmFsdWUgKGFzbjFfbm9kZSBu b2RlLCBjb25zdCB2b2lkICp2YWx1ZSwgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgaWYgKG5vZGUg PT0gTlVMTCkKKyAgICByZXR1cm4gbm9kZTsKKyAgaWYgKG5vZGUtPnZhbHVlKQorICAgIHsKKyAg ICAgIGlmIChub2RlLT52YWx1ZSAhPSBub2RlLT5zbWFsbF92YWx1ZSkKKwlmcmVlIChub2RlLT52 YWx1ZSk7CisgICAgICBub2RlLT52YWx1ZSA9IE5VTEw7CisgICAgICBub2RlLT52YWx1ZV9sZW4g PSAwOworICAgIH0KKworICBpZiAoIWxlbikKKyAgICByZXR1cm4gbm9kZTsKKworICBpZiAobGVu IDwgc2l6ZW9mIChub2RlLT5zbWFsbF92YWx1ZSkpCisgICAgeworICAgICAgbm9kZS0+dmFsdWUg PSBub2RlLT5zbWFsbF92YWx1ZTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBub2RlLT52 YWx1ZSA9IG1hbGxvYyAobGVuKTsKKyAgICAgIGlmIChub2RlLT52YWx1ZSA9PSBOVUxMKQorCXJl dHVybiBOVUxMOworICAgIH0KKyAgbm9kZS0+dmFsdWVfbGVuID0gbGVuOworCisgIG1lbWNweSAo bm9kZS0+dmFsdWUsIHZhbHVlLCBsZW4pOworICByZXR1cm4gbm9kZTsKK30KKworLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIEZ1bmN0aW9uIDogX2FzbjFfc2V0X3ZhbHVlX2x2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogc2V0cyB0aGUgZmllbGQgVkFMVUUgaW4g YSBOT0RFX0FTTiBlbGVtZW50LiBUaGUgICAqLworLyogICAgICAgICAgICAgIHByZXZpb3VzIHZh bHVlIChpZiBleGlzdCkgd2lsbCBiZSBsb3N0LiBUaGUgdmFsdWUgKi8KKy8qCQlnaXZlbiBpcyBz dG9yZWQgYXMgYW4gbGVuZ3RoLXZhbHVlIGZvcm1hdCAoTFYgICAgICovCisvKiBQYXJhbWV0ZXJz OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor LyogICBub2RlOiBlbGVtZW50IHBvaW50ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy8qICAgdmFsdWU6IHBvaW50ZXIgdG8gdGhlIHZhbHVlIHRoYXQgeW91IHdh bnQgdG8gc2V0LiAgICAgICAgICAgICovCisvKiAgIGxlbjogY2hhcmFjdGVyIG51bWJlciBvZiB2 YWx1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiBwb2ludGVy IHRvIHRoZSBOT0RFX0FTTiBlbGVtZW50LiAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCithc24xX25vZGUKK19hc24xX3NldF92YWx1ZV9sdiAoYXNuMV9ub2RlIG5vZGUsIGNv bnN0IHZvaWQgKnZhbHVlLCB1bnNpZ25lZCBpbnQgbGVuKQoreworICBpbnQgbGVuMjsKKyAgdm9p ZCAqdGVtcDsKKworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJldHVybiBub2RlOworCisgIGFz bjFfbGVuZ3RoX2RlciAobGVuLCBOVUxMLCAmbGVuMik7CisgIHRlbXAgPSBtYWxsb2MgKGxlbiAr IGxlbjIpOworICBpZiAodGVtcCA9PSBOVUxMKQorICAgIHJldHVybiBOVUxMOworCisgIGFzbjFf b2N0ZXRfZGVyICh2YWx1ZSwgbGVuLCB0ZW1wLCAmbGVuMik7CisgIHJldHVybiBfYXNuMV9zZXRf dmFsdWVfbSAobm9kZSwgdGVtcCwgbGVuMik7Cit9CisKKy8qIHRoZSBzYW1lIGFzIF9hc24xX3Nl dF92YWx1ZSBleGNlcHQgdGhhdCBpdCBzZXRzIGFuIGFscmVhZHkgbWFsbG9jJ2VkCisgKiB2YWx1 ZS4KKyAqLworYXNuMV9ub2RlCitfYXNuMV9zZXRfdmFsdWVfbSAoYXNuMV9ub2RlIG5vZGUsIHZv aWQgKnZhbHVlLCB1bnNpZ25lZCBpbnQgbGVuKQoreworICBpZiAobm9kZSA9PSBOVUxMKQorICAg IHJldHVybiBub2RlOworCisgIGlmIChub2RlLT52YWx1ZSkKKyAgICB7CisgICAgICBpZiAobm9k ZS0+dmFsdWUgIT0gbm9kZS0+c21hbGxfdmFsdWUpCisJZnJlZSAobm9kZS0+dmFsdWUpOworICAg ICAgbm9kZS0+dmFsdWUgPSBOVUxMOworICAgICAgbm9kZS0+dmFsdWVfbGVuID0gMDsKKyAgICB9 CisKKyAgaWYgKCFsZW4pCisgICAgcmV0dXJuIG5vZGU7CisKKyAgbm9kZS0+dmFsdWUgPSB2YWx1 ZTsKKyAgbm9kZS0+dmFsdWVfbGVuID0gbGVuOworCisgIHJldHVybiBub2RlOworfQorCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9hcHBlbmRfdmFsdWUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBhcHBlbmRzIHRvIHRoZSBmaWVs ZCBWQUxVRSBpbiBhIE5PREVfQVNOIGVsZW1lbnQuICovCisvKgkJCQkJCQkgICAgICAgICAgKi8K Ky8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiAgIG5vZGU6IGVsZW1lbnQgcG9pbnRlci4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICB2YWx1ZTogcG9pbnRlciB0byB0aGUgdmFs dWUgdGhhdCB5b3Ugd2FudCB0byBiZSBhcHBlbmRlZC4gICAgKi8KKy8qICAgbGVuOiBjaGFyYWN0 ZXIgbnVtYmVyIG9mIHZhbHVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBS ZXR1cm46IHBvaW50ZXIgdG8gdGhlIE5PREVfQVNOIGVsZW1lbnQuICAgICAgICAgICAgICAgICAg ICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KK2FzbjFfbm9kZQorX2FzbjFfYXBwZW5kX3ZhbHVlIChhc24x X25vZGUgbm9kZSwgY29uc3Qgdm9pZCAqdmFsdWUsIHVuc2lnbmVkIGludCBsZW4pCit7CisgIGlm IChub2RlID09IE5VTEwpCisgICAgcmV0dXJuIG5vZGU7CisKKyAgaWYgKG5vZGUtPnZhbHVlID09 IE5VTEwpCisgICAgcmV0dXJuIF9hc24xX3NldF92YWx1ZSAobm9kZSwgdmFsdWUsIGxlbik7CisK KyAgaWYgKGxlbiA9PSAwKQorICAgIHJldHVybiBub2RlOworCisgIGlmIChub2RlLT52YWx1ZSA9 PSBub2RlLT5zbWFsbF92YWx1ZSkKKyAgICB7CisgICAgICAvKiB2YWx1ZSBpcyBpbiBub2RlICov CisgICAgICBpbnQgcHJldl9sZW4gPSBub2RlLT52YWx1ZV9sZW47CisgICAgICBub2RlLT52YWx1 ZV9sZW4gKz0gbGVuOworICAgICAgbm9kZS0+dmFsdWUgPSBtYWxsb2MgKG5vZGUtPnZhbHVlX2xl bik7CisgICAgICBpZiAobm9kZS0+dmFsdWUgPT0gTlVMTCkKKwl7CisJICBub2RlLT52YWx1ZV9s ZW4gPSAwOworCSAgcmV0dXJuIE5VTEw7CisJfQorCisgICAgICBpZiAocHJldl9sZW4gPiAwKQor CW1lbWNweSAobm9kZS0+dmFsdWUsIG5vZGUtPnNtYWxsX3ZhbHVlLCBwcmV2X2xlbik7CisKKyAg ICAgIG1lbWNweSAoJm5vZGUtPnZhbHVlW3ByZXZfbGVuXSwgdmFsdWUsIGxlbik7CisKKyAgICAg IHJldHVybiBub2RlOworICAgIH0KKyAgZWxzZQkJCQkvKiBpZiAobm9kZS0+dmFsdWUgIT0gTlVM TCAmJiBub2RlLT52YWx1ZSAhPSBub2RlLT5zbWFsbF92YWx1ZSkgKi8KKyAgICB7CisgICAgICAv KiB2YWx1ZSBpcyBhbGxvY2F0ZWQgKi8KKyAgICAgIGludCBwcmV2X2xlbiA9IG5vZGUtPnZhbHVl X2xlbjsKKyAgICAgIG5vZGUtPnZhbHVlX2xlbiArPSBsZW47CisKKyAgICAgIG5vZGUtPnZhbHVl ID0gX2FzbjFfcmVhbGxvYyAobm9kZS0+dmFsdWUsIG5vZGUtPnZhbHVlX2xlbik7CisgICAgICBp ZiAobm9kZS0+dmFsdWUgPT0gTlVMTCkKKwl7CisJICBub2RlLT52YWx1ZV9sZW4gPSAwOworCSAg cmV0dXJuIE5VTEw7CisJfQorCisgICAgICBtZW1jcHkgKCZub2RlLT52YWx1ZVtwcmV2X2xlbl0s IHZhbHVlLCBsZW4pOworCisgICAgICByZXR1cm4gbm9kZTsKKyAgICB9Cit9CisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisvKiBGdW5jdGlvbiA6IF9hc24xX3NldF9uYW1lICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyogRGVzY3JpcHRpb246IHNldHMgdGhlIGZpZWxkIE5BTUUgaW4g YSBOT0RFX0FTTiBlbGVtZW50LiBUaGUgICAgKi8KKy8qICAgICAgICAgICAgICBwcmV2aW91cyB2 YWx1ZSAoaWYgZXhpc3QpIHdpbGwgYmUgbG9zdCAgICAgICAgICAgICovCisvKiBQYXJhbWV0ZXJz OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor LyogICBub2RlOiBlbGVtZW50IHBvaW50ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy8qICAgbmFtZTogYSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5nIHdpdGggdGhl IG5hbWUgdGhhdCB5b3Ugd2FudCAgICovCisvKiAgICAgICAgIHRvIHNldC4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiBwb2ludGVy IHRvIHRoZSBOT0RFX0FTTiBlbGVtZW50LiAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCithc24xX25vZGUKK19hc24xX3NldF9uYW1lIChhc24xX25vZGUgbm9kZSwgY29uc3Qg Y2hhciAqbmFtZSkKK3sKKyAgaWYgKG5vZGUgPT0gTlVMTCkKKyAgICByZXR1cm4gbm9kZTsKKwor ICBfYXNuMV9zdHJfY3B5IChub2RlLT5uYW1lLCBzaXplb2YgKG5vZGUtPm5hbWUpLCBuYW1lID8g bmFtZSA6ICIiKTsKKyAgbm9kZS0+bmFtZV9oYXNoID0gX2FzbjFfaGFzaF9uYW1lIChub2RlLT5u YW1lKTsKKworICByZXR1cm4gbm9kZTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9uIDog X2FzbjFfY3B5X25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv KiBEZXNjcmlwdGlvbjogY29waWVzIHRoZSBmaWVsZCBOQU1FIGluIGEgTk9ERV9BU04gZWxlbWVu dC4gICAgICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgZHN0OiBhIGRlc3QgZWxlbWVudCBwb2ludGVy LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIHNyYzogYSBzb3VyY2Ug ZWxlbWVudCBwb2ludGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0 dXJuOiBwb2ludGVyIHRvIHRoZSBOT0RFX0FTTiBlbGVtZW50LiAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCithc24xX25vZGUKK19hc24xX2NweV9uYW1lIChhc24xX25vZGUg ZHN0LCBhc24xX25vZGVfY29uc3Qgc3JjKQoreworICBpZiAoZHN0ID09IE5VTEwpCisgICAgcmV0 dXJuIGRzdDsKKworICBpZiAoc3JjID09IE5VTEwpCisgICAgeworICAgICAgZHN0LT5uYW1lWzBd ID0gMDsKKyAgICAgIGRzdC0+bmFtZV9oYXNoID0gX2FzbjFfaGFzaF9uYW1lIChkc3QtPm5hbWUp OworICAgICAgcmV0dXJuIGRzdDsKKyAgICB9CisKKyAgX2FzbjFfc3RyX2NweSAoZHN0LT5uYW1l LCBzaXplb2YgKGRzdC0+bmFtZSksIHNyYy0+bmFtZSk7CisgIGRzdC0+bmFtZV9oYXNoID0gc3Jj LT5uYW1lX2hhc2g7CisKKyAgcmV0dXJuIGRzdDsKK30KKworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0 aW9uIDogX2FzbjFfc2V0X3JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCisvKiBEZXNjcmlwdGlvbjogc2V0cyB0aGUgZmllbGQgUklHSFQgaW4gYSBOT0RFX0FTTiBl bGVtZW50LiAgICAgICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgbm9kZTogZWxlbWVudCBwb2ludGVy LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIHJpZ2h0OiBw b2ludGVyIHRvIGEgTk9ERV9BU04gZWxlbWVudCB0aGF0IHlvdSB3YW50IGJlIHBvaW50ZWQqLwor LyogICAgICAgICAgYnkgTk9ERS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy8qIFJldHVybjogcG9pbnRlciB0byAqTk9ERS4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworYXNuMV9ub2RlCitfYXNuMV9z ZXRfcmlnaHQgKGFzbjFfbm9kZSBub2RlLCBhc24xX25vZGUgcmlnaHQpCit7CisgIGlmIChub2Rl ID09IE5VTEwpCisgICAgcmV0dXJuIG5vZGU7CisgIG5vZGUtPnJpZ2h0ID0gcmlnaHQ7CisgIGlm IChyaWdodCkKKyAgICByaWdodC0+bGVmdCA9IG5vZGU7CisgIHJldHVybiBub2RlOworfQorCisK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiBGdW5jdGlvbiA6IF9hc24xX2dldF9sYXN0X3JpZ2h0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogRGVzY3JpcHRpb246IHJldHVybiB0aGUgbGFz dCBlbGVtZW50IGFsb25nIHRoZSByaWdodCBjaGFpbi4gICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg IG5vZGU6IHN0YXJ0aW5nIGVsZW1lbnQgcG9pbnRlci4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyogUmV0dXJuOiBwb2ludGVyIHRvIHRoZSBsYXN0IGVsZW1lbnQgYWxvbmcgdGhl IHJpZ2h0IGNoYWluLiAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCithc24xX25vZGUKK19hc24xX2dldF9s YXN0X3JpZ2h0IChhc24xX25vZGVfY29uc3Qgbm9kZSkKK3sKKyAgYXNuMV9ub2RlX2NvbnN0IHA7 CisKKyAgaWYgKG5vZGUgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKyAgcCA9IG5vZGU7Cisg IHdoaWxlIChwLT5yaWdodCkKKyAgICBwID0gcC0+cmlnaHQ7CisgIHJldHVybiAoYXNuMV9ub2Rl KSBwOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9yZW1vdmVfbm9kZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBnZXRz IGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIGFuIE5PREVfQVNOICAgICovCisvKiAgICAg ICAgICAgICAgZWxlbWVudCAobm90IHRoZSBlbGVtZW50cyBwb2ludGVkIGJ5IGl0KS4gICAgICAg ICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKi8KKy8qICAgbm9kZTogTk9ERV9BU04gZWxlbWVudCBwb2ludGVyLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIGZsYWdzOiBBU04xX0RFTEVURV9G TEFHXyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K K3ZvaWQKK19hc24xX3JlbW92ZV9ub2RlIChhc24xX25vZGUgbm9kZSwgdW5zaWduZWQgaW50IGZs YWdzKQoreworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJldHVybjsKKworICBpZiAobm9kZS0+ dmFsdWUgIT0gTlVMTCkKKyAgICB7CisgICAgICBpZiAoZmxhZ3MgJiBBU04xX0RFTEVURV9GTEFH X1pFUk9JWkUpCisJeworCSAgc2FmZV9tZW1zZXQgKG5vZGUtPnZhbHVlLCAwLCBub2RlLT52YWx1 ZV9sZW4pOworCX0KKworICAgICAgaWYgKG5vZGUtPnZhbHVlICE9IG5vZGUtPnNtYWxsX3ZhbHVl KQorCWZyZWUgKG5vZGUtPnZhbHVlKTsKKyAgICB9CisgIGZyZWUgKG5vZGUpOworfQorCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9maW5kX3VwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiByZXR1cm4gdGhlIGZhdGhlciBv ZiB0aGUgTk9ERV9BU04gZWxlbWVudC4gICAgICAgICovCisvKiBQYXJhbWV0ZXJzOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBub2Rl OiBOT0RFX0FTTiBlbGVtZW50IHBvaW50ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qIFJldHVybjogTnVsbCBpZiBub3QgZm91bmQuICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworYXNuMV9ub2RlCitfYXNuMV9maW5kX3VwIChh c24xX25vZGVfY29uc3Qgbm9kZSkKK3sKKyAgYXNuMV9ub2RlX2NvbnN0IHA7CisKKyAgaWYgKG5v ZGUgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKworICBwID0gbm9kZTsKKworICB3aGlsZSAo KHAtPmxlZnQgIT0gTlVMTCkgJiYgKHAtPmxlZnQtPnJpZ2h0ID09IHApKQorICAgIHAgPSBwLT5s ZWZ0OworCisgIHJldHVybiBwLT5sZWZ0OworfQorCitzdGF0aWMgdW5zaWduZWQKK19hc24xX2lz X3VwIChhc24xX25vZGVfY29uc3QgdXBfY2FuZCwgYXNuMV9ub2RlX2NvbnN0IGRvd24pCit7Cisg IGFzbjFfbm9kZV9jb25zdCBkLCB1OworCisgIGlmICh1cF9jYW5kID09IE5VTEwgfHwgZG93biA9 PSBOVUxMKQorICAgIHJldHVybiAwOworCisgIGQgPSBkb3duOworCisgIHdoaWxlICgodSA9IF9h c24xX2ZpbmRfdXAgKGQpKSAhPSBOVUxMICYmIHUgIT0gZCkKKyAgICB7CisgICAgICBpZiAodSA9 PSB1cF9jYW5kKQorCXJldHVybiAxOworICAgICAgZCA9IHU7CisgICAgfQorCisgIHJldHVybiAw OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9kZWxldGVfbm9kZV9mcm9t X2xpc3QgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiBkZWxldGVz IHRoZSBsaXN0IGVsZW1lbnQgZ2l2ZW4gICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Lwordm9pZAorX2FzbjFfZGVsZXRlX25vZGVfZnJvbV9saXN0IChsaXN0X3R5cGUgKiBsaXN0LCBh c24xX25vZGUgbm9kZSkKK3sKKyAgbGlzdF90eXBlICpwID0gbGlzdDsKKworICB3aGlsZSAocCkK KyAgICB7CisgICAgICBpZiAocC0+bm9kZSA9PSBub2RlKQorCXAtPm5vZGUgPSBOVUxMOworICAg ICAgcCA9IHAtPm5leHQ7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rpb24gOiBf YXNuMV9kZWxldGVfbGlzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q IERlc2NyaXB0aW9uOiBkZWxldGVzIHRoZSBsaXN0IGVsZW1lbnRzIChub3QgdGhlIGVsZW1lbnRz ICAgICAgICovCisvKiAgcG9pbnRlZCBieSB0aGVtKS4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3ZvaWQKK19hc24xX2RlbGV0ZV9s aXN0IChsaXN0X3R5cGUgKiBlX2xpc3QpCit7CisgIGxpc3RfdHlwZSAqcDsKKworICB3aGlsZSAo ZV9saXN0KQorICAgIHsKKyAgICAgIHAgPSBlX2xpc3Q7CisgICAgICBlX2xpc3QgPSBlX2xpc3Qt Pm5leHQ7CisgICAgICBmcmVlIChwKTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGdW5j dGlvbiA6IF9hc24xX2RlbGV0ZV9saXN0X2FuZCBub2RlcyAgICAgICAgICAgICAgICAgICAgICAg ICAqLworLyogRGVzY3JpcHRpb246IGRlbGV0ZXMgdGhlIGxpc3QgZWxlbWVudHMgYW5kIHRoZSBl bGVtZW50cyAgICAgICAgKi8KKy8qICBwb2ludGVkIGJ5IHRoZW0uICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordm9pZAorX2FzbjFf ZGVsZXRlX2xpc3RfYW5kX25vZGVzIChsaXN0X3R5cGUgKiBlX2xpc3QpCit7CisgIGxpc3RfdHlw ZSAqcDsKKworICB3aGlsZSAoZV9saXN0KQorICAgIHsKKyAgICAgIHAgPSBlX2xpc3Q7CisgICAg ICBlX2xpc3QgPSBlX2xpc3QtPm5leHQ7CisgICAgICBfYXNuMV9yZW1vdmVfbm9kZSAocC0+bm9k ZSwgMCk7CisgICAgICBmcmVlIChwKTsKKyAgICB9Cit9CisKKworY2hhciAqCitfYXNuMV9sdG9z dHIgKGludDY0X3QgdiwgY2hhciBzdHJbTFRPU1RSX01BWF9TSVpFXSkKK3sKKyAgdWludDY0X3Qg ZCwgcjsKKyAgY2hhciB0ZW1wW0xUT1NUUl9NQVhfU0laRV07CisgIGludCBjb3VudCwgaywgc3Rh cnQ7CisgIHVpbnQ2NF90IHZhbDsKKworICBpZiAodiA8IDApCisgICAgeworICAgICAgc3RyWzBd ID0gJy0nOworICAgICAgc3RhcnQgPSAxOworICAgICAgdmFsID0gLSgodWludDY0X3QpIHYpOwor ICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHZhbCA9IHY7CisgICAgICBzdGFydCA9IDA7Cisg ICAgfQorCisgIGNvdW50ID0gMDsKKyAgZG8KKyAgICB7CisgICAgICBkID0gdmFsIC8gMTA7Cisg ICAgICByID0gdmFsIC0gZCAqIDEwOworICAgICAgdGVtcFtzdGFydCArIGNvdW50XSA9ICcwJyAr IChjaGFyKSByOworICAgICAgY291bnQrKzsKKyAgICAgIHZhbCA9IGQ7CisgICAgfQorICB3aGls ZSAodmFsICYmICgoc3RhcnQgKyBjb3VudCkgPCBMVE9TVFJfTUFYX1NJWkUgLSAxKSk7CisKKyAg Zm9yIChrID0gMDsgayA8IGNvdW50OyBrKyspCisgICAgc3RyW2sgKyBzdGFydF0gPSB0ZW1wW3N0 YXJ0ICsgY291bnQgLSBrIC0gMV07CisgIHN0cltjb3VudCArIHN0YXJ0XSA9IDA7CisgIHJldHVy biBzdHI7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9uIDogX2FzbjFfY2hhbmdlX2lu dGVnZXJfdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjog Y29udmVydHMgaW50byBERVIgY29kaW5nIHRoZSB2YWx1ZSBhc3NpZ24gdG8gYW4gICAqLworLyog ICBJTlRFR0VSIGNvbnN0YW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCisvKiAgIG5vZGU6IHJvb3Qgb2YgYW4gQVNOMWVsZW1lbnQu ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgQVNO MV9FTEVNRU5UX05PVF9GT1VORCBpZiBOT0RFIGlzIE5VTEwsICAgICAgICAgICAgICAgICAgICAg ICAqLworLyogICBvdGhlcndpc2UgQVNOMV9TVUNDRVNTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQKK19hc24xX2NoYW5nZV9p bnRlZ2VyX3ZhbHVlIChhc24xX25vZGUgbm9kZSkKK3sKKyAgYXNuMV9ub2RlIHA7CisgIHVuc2ln bmVkIGNoYXIgdmFsW1NJWkVPRl9VTlNJR05FRF9MT05HX0lOVF07CisgIHVuc2lnbmVkIGNoYXIg dmFsMltTSVpFT0ZfVU5TSUdORURfTE9OR19JTlQgKyAxXTsKKyAgaW50IGxlbjsKKworICBpZiAo bm9kZSA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOworCisgIHAg PSBub2RlOworICB3aGlsZSAocCkKKyAgICB7CisgICAgICBpZiAoKHR5cGVfZmllbGQgKHAtPnR5 cGUpID09IEFTTjFfRVRZUEVfSU5URUdFUikKKwkgICYmIChwLT50eXBlICYgQ09OU1RfQVNTSUdO KSkKKwl7CisJICBpZiAocC0+dmFsdWUpCisJICAgIHsKKwkgICAgICBfYXNuMV9jb252ZXJ0X2lu dGVnZXIgKHAtPnZhbHVlLCB2YWwsIHNpemVvZiAodmFsKSwgJmxlbik7CisJICAgICAgYXNuMV9v Y3RldF9kZXIgKHZhbCwgbGVuLCB2YWwyLCAmbGVuKTsKKwkgICAgICBfYXNuMV9zZXRfdmFsdWUg KHAsIHZhbDIsIGxlbik7CisJICAgIH0KKwl9CisKKyAgICAgIGlmIChwLT5kb3duKQorCXsKKwkg IHAgPSBwLT5kb3duOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBpZiAocCA9PSBub2RlKQorCSAg ICBwID0gTlVMTDsKKwkgIGVsc2UgaWYgKHAtPnJpZ2h0KQorCSAgICBwID0gcC0+cmlnaHQ7CisJ ICBlbHNlCisJICAgIHsKKwkgICAgICB3aGlsZSAoMSkKKwkJeworCQkgIHAgPSBfYXNuMV9maW5k X3VwIChwKTsKKwkJICBpZiAocCA9PSBub2RlKQorCQkgICAgeworCQkgICAgICBwID0gTlVMTDsK KwkJICAgICAgYnJlYWs7CisJCSAgICB9CisJCSAgaWYgKHAgJiYgcC0+cmlnaHQpCisJCSAgICB7 CisJCSAgICAgIHAgPSBwLT5yaWdodDsKKwkJICAgICAgYnJlYWs7CisJCSAgICB9CisJCX0KKwkg ICAgfQorCX0KKyAgICB9CisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworI2RlZmluZSBN QVhfQ09OU1RBTlRTIDEwMjQKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGdW5jdGlvbiA6IF9hc24xX2V4cGFu ZF9vYmplY3RfaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogRGVzY3JpcHRp b246IGV4cGFuZCB0aGUgSURzIG9mIGFuIE9CSkVDVCBJREVOVElGSUVSIGNvbnN0YW50LiAgKi8K Ky8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiAgIGxpc3Q6IHJvb3Qgb2YgYW4gb2JqZWN0IGxpc3QgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBub2RlOiByb290IG9mIGFuIEFTTjEgZWxl bWVudC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFJldHVybjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg IEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQgaWYgTk9ERSBpcyBOVUxMLCAgICAgICAgICAgICAgICAg ICAgICAqLworLyogICBvdGhlcndpc2UgQVNOMV9TVUNDRVNTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQKK19hc24xX2V4cGFuZF9vYmpl Y3RfaWQgKGxpc3RfdHlwZSAqKiBsaXN0LCBhc24xX25vZGUgbm9kZSkKK3sKKyAgYXNuMV9ub2Rl IHAsIHAyLCBwMywgcDQsIHA1OworICBjaGFyIG5hbWVfcm9vdFtBU04xX01BWF9OQU1FX1NJWkVd LCBuYW1lMlsyICogQVNOMV9NQVhfTkFNRV9TSVpFICsgMV07CisgIGludCBtb3ZlLCB0bGVuLCB0 cmllczsKKyAgdW5zaWduZWQgbWF4X2NvbnN0YW50czsKKworICBpZiAobm9kZSA9PSBOVUxMKQor ICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOworCisgIF9hc24xX3N0cl9jcHkgKG5h bWVfcm9vdCwgc2l6ZW9mIChuYW1lX3Jvb3QpLCBub2RlLT5uYW1lKTsKKworICBwID0gbm9kZTsK KyAgbW92ZSA9IERPV047CisgIHRyaWVzID0gMDsKKworICB3aGlsZSAoISgocCA9PSBub2RlKSAm JiAobW92ZSA9PSBVUCkpKQorICAgIHsKKyAgICAgIGlmIChtb3ZlICE9IFVQKQorCXsKKwkgIGlm ICgodHlwZV9maWVsZCAocC0+dHlwZSkgPT0gQVNOMV9FVFlQRV9PQkpFQ1RfSUQpCisJICAgICAg JiYgKHAtPnR5cGUgJiBDT05TVF9BU1NJR04pKQorCSAgICB7CisJICAgICAgcDIgPSBwLT5kb3du OworCSAgICAgIGlmIChwMiAmJiAodHlwZV9maWVsZCAocDItPnR5cGUpID09IEFTTjFfRVRZUEVf Q09OU1RBTlQpKQorCQl7CisJCSAgaWYgKHAyLT52YWx1ZSAmJiAhY19pc2RpZ2l0IChwMi0+dmFs dWVbMF0pKQorCQkgICAgeworCQkgICAgICBfYXNuMV9zdHJfY3B5IChuYW1lMiwgc2l6ZW9mIChu YW1lMiksIG5hbWVfcm9vdCk7CisJCSAgICAgIF9hc24xX3N0cl9jYXQgKG5hbWUyLCBzaXplb2Yg KG5hbWUyKSwgIi4iKTsKKwkJICAgICAgX2FzbjFfc3RyX2NhdCAobmFtZTIsIHNpemVvZiAobmFt ZTIpLAorCQkJCSAgICAgKGNoYXIgKikgcDItPnZhbHVlKTsKKwkJICAgICAgcDMgPSBhc24xX2Zp bmRfbm9kZSAobm9kZSwgbmFtZTIpOworCQkgICAgICBpZiAoIXAzIHx8IF9hc24xX2lzX3VwIChw MiwgcDMpIHx8CisJCQkgICh0eXBlX2ZpZWxkIChwMy0+dHlwZSkgIT0gQVNOMV9FVFlQRV9PQkpF Q1RfSUQpIHx8CisJCQkgICEocDMtPnR5cGUgJiBDT05TVF9BU1NJR04pKQorCQkJcmV0dXJuIEFT TjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKwkJICAgICAgX2FzbjFfc2V0X2Rvd24gKHAsIHAyLT5y aWdodCk7CisJCSAgICAgIGlmIChwMi0+ZG93bikKKwkJCV9hc24xX2RlbGV0ZV9zdHJ1Y3R1cmUg KCpsaXN0LCAmcDItPmRvd24sIDApOworCQkgICAgICBfYXNuMV9kZWxldGVfbm9kZV9mcm9tX2xp c3QgKCpsaXN0LCBwMik7CisJCSAgICAgIF9hc24xX3JlbW92ZV9ub2RlIChwMiwgMCk7CisJCSAg ICAgIHAyID0gcDsKKwkJICAgICAgcDQgPSBwMy0+ZG93bjsKKwkJICAgICAgbWF4X2NvbnN0YW50 cyA9IDA7CisJCSAgICAgIHdoaWxlIChwNCkKKwkJCXsKKwkJCSAgaWYgKHR5cGVfZmllbGQgKHA0 LT50eXBlKSA9PSBBU04xX0VUWVBFX0NPTlNUQU5UKQorCQkJICAgIHsKKwkJCSAgICAgIG1heF9j b25zdGFudHMrKzsKKwkJCSAgICAgIGlmIChtYXhfY29uc3RhbnRzID09IE1BWF9DT05TVEFOVFMp CisJCQkJcmV0dXJuIEFTTjFfUkVDVVJTSU9OOworCisJCQkgICAgICBwNSA9CisJCQkJX2FzbjFf YWRkX3NpbmdsZV9ub2RlIChBU04xX0VUWVBFX0NPTlNUQU5UKTsKKwkJCSAgICAgIF9hc24xX3Nl dF9uYW1lIChwNSwgcDQtPm5hbWUpOworCQkJICAgICAgaWYgKHA0LT52YWx1ZSkKKwkJCQl7CisJ CQkJICB0bGVuID0gX2FzbjFfc3RybGVuIChwNC0+dmFsdWUpOworCQkJCSAgaWYgKHRsZW4gPiAw KQorCQkJCSAgICBfYXNuMV9zZXRfdmFsdWUgKHA1LCBwNC0+dmFsdWUsIHRsZW4gKyAxKTsKKwkJ CQl9CisJCQkgICAgICBfYXNuMV9hZGRfc3RhdGljX25vZGUyIChsaXN0LCBwNSk7CisKKwkJCSAg ICAgIGlmIChwMiA9PSBwKQorCQkJCXsKKwkJCQkgIF9hc24xX3NldF9yaWdodCAocDUsIHAtPmRv d24pOworCQkJCSAgX2FzbjFfc2V0X2Rvd24gKHAsIHA1KTsKKwkJCQl9CisJCQkgICAgICBlbHNl CisJCQkJeworCQkJCSAgX2FzbjFfc2V0X3JpZ2h0IChwNSwgcDItPnJpZ2h0KTsKKwkJCQkgIF9h c24xX3NldF9yaWdodCAocDIsIHA1KTsKKwkJCQl9CisJCQkgICAgICBwMiA9IHA1OworCQkJICAg IH0KKwkJCSAgcDQgPSBwNC0+cmlnaHQ7CisJCQl9CisJCSAgICAgIG1vdmUgPSBET1dOOworCisJ CSAgICAgIHRyaWVzKys7CisJCSAgICAgIGlmICh0cmllcyA+PSBFWFBBTkRfT0JKRUNUX0lEX01B WF9SRUNVUlNJT04pCisJCQlyZXR1cm4gQVNOMV9SRUNVUlNJT047CisKKwkJICAgICAgY29udGlu dWU7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgbW92ZSA9IERPV047CisJfQorICAgICAgZWxz ZQorCW1vdmUgPSBSSUdIVDsKKworICAgICAgdHJpZXMgPSAwOworICAgICAgaWYgKG1vdmUgPT0g RE9XTikKKwl7CisJICBpZiAocC0+ZG93bikKKwkgICAgcCA9IHAtPmRvd247CisJICBlbHNlCisJ ICAgIG1vdmUgPSBSSUdIVDsKKwl9CisKKyAgICAgIGlmIChwID09IG5vZGUpCisJeworCSAgbW92 ZSA9IFVQOworCSAgY29udGludWU7CisJfQorCisgICAgICBpZiAobW92ZSA9PSBSSUdIVCkKKwl7 CisJICBpZiAocCAmJiBwLT5yaWdodCkKKwkgICAgcCA9IHAtPnJpZ2h0OworCSAgZWxzZQorCSAg ICBtb3ZlID0gVVA7CisJfQorICAgICAgaWYgKG1vdmUgPT0gVVApCisJcCA9IF9hc24xX2ZpbmRf dXAgKHApOworICAgIH0KKworICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAg LyogICAgICAgZXhwYW5kIERFRkFVTFQgICAgICAgICovCisgIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworICBwID0gbm9kZTsKKyAgbW92ZSA9IERPV047CisKKyAgd2hpbGUgKCEo KHAgPT0gbm9kZSkgJiYgKG1vdmUgPT0gVVApKSkKKyAgICB7CisgICAgICBpZiAobW92ZSAhPSBV UCkKKwl7CisJICBpZiAoKHR5cGVfZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVfT0JKRUNU X0lEKSAmJgorCSAgICAgIChwLT50eXBlICYgQ09OU1RfREVGQVVMVCkpCisJICAgIHsKKwkgICAg ICBwMiA9IHAtPmRvd247CisJICAgICAgaWYgKHAyICYmICh0eXBlX2ZpZWxkIChwMi0+dHlwZSkg PT0gQVNOMV9FVFlQRV9ERUZBVUxUKSkKKwkJeworCQkgIF9hc24xX3N0cl9jcHkgKG5hbWUyLCBz aXplb2YgKG5hbWUyKSwgbmFtZV9yb290KTsKKwkJICBfYXNuMV9zdHJfY2F0IChuYW1lMiwgc2l6 ZW9mIChuYW1lMiksICIuIik7CisJCSAgaWYgKHAyLT52YWx1ZSkKKwkJICAgIF9hc24xX3N0cl9j YXQgKG5hbWUyLCBzaXplb2YgKG5hbWUyKSwgKGNoYXIgKikgcDItPnZhbHVlKTsKKwkJICBwMyA9 IGFzbjFfZmluZF9ub2RlIChub2RlLCBuYW1lMik7CisJCSAgaWYgKCFwMyB8fCAodHlwZV9maWVs ZCAocDMtPnR5cGUpICE9IEFTTjFfRVRZUEVfT0JKRUNUX0lEKQorCQkgICAgICB8fCAhKHAzLT50 eXBlICYgQ09OU1RfQVNTSUdOKSkKKwkJICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5E OworCQkgIHA0ID0gcDMtPmRvd247CisJCSAgbmFtZTJbMF0gPSAwOworCQkgIHdoaWxlIChwNCkK KwkJICAgIHsKKwkJICAgICAgaWYgKHR5cGVfZmllbGQgKHA0LT50eXBlKSA9PSBBU04xX0VUWVBF X0NPTlNUQU5UKQorCQkJeworCQkJICBpZiAocDQtPnZhbHVlID09IE5VTEwpCisJCQkgICAgcmV0 dXJuIEFTTjFfVkFMVUVfTk9UX0ZPVU5EOworCisJCQkgIGlmIChuYW1lMlswXSkKKwkJCSAgICBf YXNuMV9zdHJfY2F0IChuYW1lMiwgc2l6ZW9mIChuYW1lMiksICIuIik7CisJCQkgIF9hc24xX3N0 cl9jYXQgKG5hbWUyLCBzaXplb2YgKG5hbWUyKSwKKwkJCQkJIChjaGFyICopIHA0LT52YWx1ZSk7 CisJCQl9CisJCSAgICAgIHA0ID0gcDQtPnJpZ2h0OworCQkgICAgfQorCQkgIHRsZW4gPSBzdHJs ZW4gKG5hbWUyKTsKKwkJICBpZiAodGxlbiA+IDApCisJCSAgICBfYXNuMV9zZXRfdmFsdWUgKHAy LCBuYW1lMiwgdGxlbiArIDEpOworCQl9CisJICAgIH0KKwkgIG1vdmUgPSBET1dOOworCX0KKyAg ICAgIGVsc2UKKwltb3ZlID0gUklHSFQ7CisKKyAgICAgIGlmIChtb3ZlID09IERPV04pCisJewor CSAgaWYgKHAtPmRvd24pCisJICAgIHAgPSBwLT5kb3duOworCSAgZWxzZQorCSAgICBtb3ZlID0g UklHSFQ7CisJfQorCisgICAgICBpZiAocCA9PSBub2RlKQorCXsKKwkgIG1vdmUgPSBVUDsKKwkg IGNvbnRpbnVlOworCX0KKworICAgICAgaWYgKG1vdmUgPT0gUklHSFQpCisJeworCSAgaWYgKHAg JiYgcC0+cmlnaHQpCisJICAgIHAgPSBwLT5yaWdodDsKKwkgIGVsc2UKKwkgICAgbW92ZSA9IFVQ OworCX0KKyAgICAgIGlmIChtb3ZlID09IFVQKQorCXAgPSBfYXNuMV9maW5kX3VwIChwKTsKKyAg ICB9CisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnVu Y3Rpb24gOiBfYXNuMV90eXBlX3NldF9jb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qIERlc2NyaXB0aW9uOiBzZXRzIHRoZSBDT05TVF9TRVQgYW5kIENPTlNUX05PVF9V U0VEIHByb3BlcnRpZXMgICovCisvKiAgIGluIHRoZSBmaWVsZHMgb2YgdGhlIFNFVCBlbGVtZW50 cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgbm9kZTog cm9vdCBvZiBhbiBBU04xIGVsZW1lbnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKiBSZXR1cm46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLworLyogICBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EIGlmIE5PREUgaXMgTlVM TCwgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIG90aGVyd2lzZSBBU04xX1NVQ0NFU1Mg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KK2ludAorX2FzbjFfdHlwZV9zZXRfY29uZmlnIChhc24xX25vZGUgbm9kZSkKK3sKKyAgYXNu MV9ub2RlIHAsIHAyOworICBpbnQgbW92ZTsKKworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJl dHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOworCisgIHAgPSBub2RlOworICBtb3ZlID0gRE9X TjsKKworICB3aGlsZSAoISgocCA9PSBub2RlKSAmJiAobW92ZSA9PSBVUCkpKQorICAgIHsKKyAg ICAgIGlmIChtb3ZlICE9IFVQKQorCXsKKwkgIGlmICh0eXBlX2ZpZWxkIChwLT50eXBlKSA9PSBB U04xX0VUWVBFX1NFVCkKKwkgICAgeworCSAgICAgIHAyID0gcC0+ZG93bjsKKwkgICAgICB3aGls ZSAocDIpCisJCXsKKwkJICBpZiAodHlwZV9maWVsZCAocDItPnR5cGUpICE9IEFTTjFfRVRZUEVf VEFHKQorCQkgICAgcDItPnR5cGUgfD0gQ09OU1RfU0VUIHwgQ09OU1RfTk9UX1VTRUQ7CisJCSAg cDIgPSBwMi0+cmlnaHQ7CisJCX0KKwkgICAgfQorCSAgbW92ZSA9IERPV047CisJfQorICAgICAg ZWxzZQorCW1vdmUgPSBSSUdIVDsKKworICAgICAgaWYgKG1vdmUgPT0gRE9XTikKKwl7CisJICBp ZiAocC0+ZG93bikKKwkgICAgcCA9IHAtPmRvd247CisJICBlbHNlCisJICAgIG1vdmUgPSBSSUdI VDsKKwl9CisKKyAgICAgIGlmIChwID09IG5vZGUpCisJeworCSAgbW92ZSA9IFVQOworCSAgY29u dGludWU7CisJfQorCisgICAgICBpZiAobW92ZSA9PSBSSUdIVCkKKwl7CisJICBpZiAocCAmJiBw LT5yaWdodCkKKwkgICAgcCA9IHAtPnJpZ2h0OworCSAgZWxzZQorCSAgICBtb3ZlID0gVVA7CisJ fQorICAgICAgaWYgKG1vdmUgPT0gVVApCisJcCA9IF9hc24xX2ZpbmRfdXAgKHApOworICAgIH0K KworICByZXR1cm4gQVNOMV9TVUNDRVNTOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGdW5jdGlv biA6IF9hc24xX2NoZWNrX2lkZW50aWZpZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq LworLyogRGVzY3JpcHRpb246IGNoZWNrcyB0aGUgZGVmaW5pdGlvbnMgb2YgYWxsIHRoZSBpZGVu dGlmaWVycyAgICAgKi8KKy8qICAgYW5kIHRoZSBmaXJzdCBlbGVtZW50IG9mIGFuIE9CSkVDVF9J RCAoZS5nLiB7cGtpeCAwIDR9KS4gICAgICovCisvKiAgIFRoZSBfYXNuMV9pZGVudGlmaWVyTWlz c2luZyBnbG9iYWwgdmFyaWFibGUgaXMgZmlsbGVkIGlmICAgICAqLworLyogICBuZWNlc3Nhcnku ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q IFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovCisvKiAgIG5vZGU6IHJvb3Qgb2YgYW4gQVNOMSBlbGVtZW50LiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgQVNOMV9FTEVNRU5UX05P VF9GT1VORCAgICAgIGlmIE5PREUgaXMgTlVMTCwgICAgICAgICAgICAgICAgICovCisvKiAgIEFT TjFfSURFTlRJRklFUl9OT1RfRk9VTkQgICBpZiBhbiBpZGVudGlmaWVyIGlzIG5vdCBkZWZpbmVk LCAqLworLyogICBvdGhlcndpc2UgQVNOMV9TVUNDRVNTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQKK19hc24xX2NoZWNrX2lkZW50aWZp ZXIgKGFzbjFfbm9kZV9jb25zdCBub2RlKQoreworICBhc24xX25vZGVfY29uc3QgcCwgcDI7Cisg IGNoYXIgbmFtZTJbQVNOMV9NQVhfTkFNRV9TSVpFICogMiArIDJdOworCisgIGlmIChub2RlID09 IE5VTEwpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgcCA9IG5vZGU7 CisgIHdoaWxlIChwKQorICAgIHsKKyAgICAgIGlmIChwLT52YWx1ZSAmJiB0eXBlX2ZpZWxkIChw LT50eXBlKSA9PSBBU04xX0VUWVBFX0lERU5USUZJRVIpCisJeworCSAgX2FzbjFfc3RyX2NweSAo bmFtZTIsIHNpemVvZiAobmFtZTIpLCBub2RlLT5uYW1lKTsKKwkgIF9hc24xX3N0cl9jYXQgKG5h bWUyLCBzaXplb2YgKG5hbWUyKSwgIi4iKTsKKwkgIF9hc24xX3N0cl9jYXQgKG5hbWUyLCBzaXpl b2YgKG5hbWUyKSwgKGNoYXIgKikgcC0+dmFsdWUpOworCSAgcDIgPSBhc24xX2ZpbmRfbm9kZSAo bm9kZSwgbmFtZTIpOworCSAgaWYgKHAyID09IE5VTEwpCisJICAgIHsKKwkgICAgICBpZiAocC0+ dmFsdWUpCisJCV9hc24xX3N0cl9jcHkgKF9hc24xX2lkZW50aWZpZXJNaXNzaW5nLAorCQkJICAg ICAgIHNpemVvZiAoX2FzbjFfaWRlbnRpZmllck1pc3NpbmcpLAorCQkJICAgICAgIChjaGFyICop IHAtPnZhbHVlKTsKKwkgICAgICBlbHNlCisJCV9hc24xX3N0cmNweSAoX2FzbjFfaWRlbnRpZmll ck1pc3NpbmcsICIobnVsbCkiKTsKKwkgICAgICByZXR1cm4gQVNOMV9JREVOVElGSUVSX05PVF9G T1VORDsKKwkgICAgfQorCX0KKyAgICAgIGVsc2UgaWYgKCh0eXBlX2ZpZWxkIChwLT50eXBlKSA9 PSBBU04xX0VUWVBFX09CSkVDVF9JRCkgJiYKKwkgICAgICAgKHAtPnR5cGUgJiBDT05TVF9ERUZB VUxUKSkKKwl7CisJICBwMiA9IHAtPmRvd247CisJICBpZiAocDIgJiYgKHR5cGVfZmllbGQgKHAy LT50eXBlKSA9PSBBU04xX0VUWVBFX0RFRkFVTFQpKQorCSAgICB7CisJICAgICAgX2FzbjFfc3Ry X2NweSAobmFtZTIsIHNpemVvZiAobmFtZTIpLCBub2RlLT5uYW1lKTsKKwkgICAgICBpZiAocDIt PnZhbHVlKQorCQl7CisJCSAgX2FzbjFfc3RyX2NhdCAobmFtZTIsIHNpemVvZiAobmFtZTIpLCAi LiIpOworCQkgIF9hc24xX3N0cl9jYXQgKG5hbWUyLCBzaXplb2YgKG5hbWUyKSwgKGNoYXIgKikg cDItPnZhbHVlKTsKKwkJICBfYXNuMV9zdHJfY3B5IChfYXNuMV9pZGVudGlmaWVyTWlzc2luZywK KwkJCQkgc2l6ZW9mIChfYXNuMV9pZGVudGlmaWVyTWlzc2luZyksCisJCQkJIChjaGFyICopIHAy LT52YWx1ZSk7CisJCX0KKwkgICAgICBlbHNlCisJCV9hc24xX3N0cmNweSAoX2FzbjFfaWRlbnRp Zmllck1pc3NpbmcsICIobnVsbCkiKTsKKworCSAgICAgIHAyID0gYXNuMV9maW5kX25vZGUgKG5v ZGUsIG5hbWUyKTsKKwkgICAgICBpZiAoIXAyIHx8ICh0eXBlX2ZpZWxkIChwMi0+dHlwZSkgIT0g QVNOMV9FVFlQRV9PQkpFQ1RfSUQpIHx8CisJCSAgIShwMi0+dHlwZSAmIENPTlNUX0FTU0lHTikp CisJCXJldHVybiBBU04xX0lERU5USUZJRVJfTk9UX0ZPVU5EOworCSAgICAgIGVsc2UKKwkJX2Fz bjFfaWRlbnRpZmllck1pc3NpbmdbMF0gPSAwOworCSAgICB9CisJfQorICAgICAgZWxzZSBpZiAo KHR5cGVfZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVfT0JKRUNUX0lEKSAmJgorCSAgICAg ICAocC0+dHlwZSAmIENPTlNUX0FTU0lHTikpCisJeworCSAgcDIgPSBwLT5kb3duOworCSAgaWYg KHAyICYmICh0eXBlX2ZpZWxkIChwMi0+dHlwZSkgPT0gQVNOMV9FVFlQRV9DT05TVEFOVCkpCisJ ICAgIHsKKwkgICAgICBpZiAocDItPnZhbHVlICYmICFjX2lzZGlnaXQgKHAyLT52YWx1ZVswXSkp CisJCXsKKwkJICBfYXNuMV9zdHJfY3B5IChuYW1lMiwgc2l6ZW9mIChuYW1lMiksIG5vZGUtPm5h bWUpOworCQkgIF9hc24xX3N0cl9jYXQgKG5hbWUyLCBzaXplb2YgKG5hbWUyKSwgIi4iKTsKKwkJ ICBfYXNuMV9zdHJfY2F0IChuYW1lMiwgc2l6ZW9mIChuYW1lMiksIChjaGFyICopIHAyLT52YWx1 ZSk7CisJCSAgX2FzbjFfc3RyX2NweSAoX2FzbjFfaWRlbnRpZmllck1pc3NpbmcsCisJCQkJIHNp emVvZiAoX2FzbjFfaWRlbnRpZmllck1pc3NpbmcpLAorCQkJCSAoY2hhciAqKSBwMi0+dmFsdWUp OworCisJCSAgcDIgPSBhc24xX2ZpbmRfbm9kZSAobm9kZSwgbmFtZTIpOworCQkgIGlmICghcDIg fHwgKHR5cGVfZmllbGQgKHAyLT50eXBlKSAhPSBBU04xX0VUWVBFX09CSkVDVF9JRCkKKwkJICAg ICAgfHwgIShwMi0+dHlwZSAmIENPTlNUX0FTU0lHTikpCisJCSAgICByZXR1cm4gQVNOMV9JREVO VElGSUVSX05PVF9GT1VORDsKKwkJICBlbHNlCisJCSAgICBfYXNuMV9pZGVudGlmaWVyTWlzc2lu Z1swXSA9IDA7CisJCX0KKwkgICAgfQorCX0KKworICAgICAgaWYgKHAtPmRvd24pCisJeworCSAg cCA9IHAtPmRvd247CisJfQorICAgICAgZWxzZSBpZiAocC0+cmlnaHQpCisJcCA9IHAtPnJpZ2h0 OworICAgICAgZWxzZQorCXsKKwkgIHdoaWxlIChwKQorCSAgICB7CisJICAgICAgcCA9IF9hc24x X2ZpbmRfdXAgKHApOworCSAgICAgIGlmIChwID09IG5vZGUpCisJCXsKKwkJICBwID0gTlVMTDsK KwkJICBicmVhazsKKwkJfQorCSAgICAgIGlmIChwICYmIHAtPnJpZ2h0KQorCQl7CisJCSAgcCA9 IHAtPnJpZ2h0OworCQkgIGJyZWFrOworCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgIHJldHVy biBBU04xX1NVQ0NFU1M7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9uIDogX2FzbjFf c2V0X2RlZmF1bHRfdGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBEZXNj cmlwdGlvbjogc2V0cyB0aGUgZGVmYXVsdCBJTVBMSUNJVCBvciBFWFBMSUNJVCBwcm9wZXJ0eSBp biAqLworLyogICB0aGUgdGFnZ2VkIGVsZW1lbnRzIHRoYXQgZG9uJ3QgaGF2ZSB0aGlzIGRlY2xh cmF0aW9uLiAgICAgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIG5vZGU6IHBvaW50ZXIgdG8gYSBE RUZJTklUSU9OUyBlbGVtZW50LiAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K Ky8qICAgQVNOMV9FTEVNRU5UX05PVF9GT1VORCBpZiBOT0RFIGlzIE5VTEwgb3Igbm90IGEgcG9p bnRlciB0byAgICovCisvKiAgICAgYSBERUZJTklUSU9OUyBlbGVtZW50LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBvdGhlcndpc2UgQVNOMV9TVUNDRVNTICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQK K19hc24xX3NldF9kZWZhdWx0X3RhZyAoYXNuMV9ub2RlIG5vZGUpCit7CisgIGFzbjFfbm9kZSBw OworCisgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAodHlwZV9maWVsZCAobm9kZS0+dHlwZSkgIT0g QVNOMV9FVFlQRV9ERUZJTklUSU9OUykpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9V TkQ7CisKKyAgcCA9IG5vZGU7CisgIHdoaWxlIChwKQorICAgIHsKKyAgICAgIGlmICgodHlwZV9m aWVsZCAocC0+dHlwZSkgPT0gQVNOMV9FVFlQRV9UQUcpICYmCisJICAhKHAtPnR5cGUgJiBDT05T VF9FWFBMSUNJVCkgJiYgIShwLT50eXBlICYgQ09OU1RfSU1QTElDSVQpKQorCXsKKwkgIGlmIChu b2RlLT50eXBlICYgQ09OU1RfRVhQTElDSVQpCisJICAgIHAtPnR5cGUgfD0gQ09OU1RfRVhQTElD SVQ7CisJICBlbHNlCisJICAgIHAtPnR5cGUgfD0gQ09OU1RfSU1QTElDSVQ7CisJfQorCisgICAg ICBpZiAocC0+ZG93bikKKwl7CisJICBwID0gcC0+ZG93bjsKKwl9CisgICAgICBlbHNlIGlmIChw LT5yaWdodCkKKwlwID0gcC0+cmlnaHQ7CisgICAgICBlbHNlCisJeworCSAgd2hpbGUgKDEpCisJ ICAgIHsKKwkgICAgICBwID0gX2FzbjFfZmluZF91cCAocCk7CisJICAgICAgaWYgKHAgPT0gbm9k ZSkKKwkJeworCQkgIHAgPSBOVUxMOworCQkgIGJyZWFrOworCQl9CisJICAgICAgaWYgKHAgJiYg cC0+cmlnaHQpCisJCXsKKwkJICBwID0gcC0+cmlnaHQ7CisJCSAgYnJlYWs7CisJCX0KKwkgICAg fQorCX0KKyAgICB9CisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KZGlmZiAtLWdpdCBhL2dy dWItY29yZS9saWIvbGlidGFzbjEvbGliL3BhcnNlcl9hdXguaCBiL2dydWItY29yZS9saWIvbGli dGFzbjEvbGliL3BhcnNlcl9hdXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLjNlYWMxZmEzMAotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGlidGFzbjEv bGliL3BhcnNlcl9hdXguaApAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg MjAwMC0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIExJQlRBU04xLgorICoKKyAqIFRoZSBMSUJUQVNOMSBsaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0CisgKiBhbmQvb3IgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisgKiAwMjExMC0xMzAxLCBVU0EKKyAqLwor CisjaWZuZGVmIF9QQVJTRVJfQVVYX0gKKyMgZGVmaW5lIF9QQVJTRVJfQVVYX0gKKworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogVHlwZTogbGlz dF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogRGVzY3JpcHRpb246IHR5 cGUgdXNlZCBpbiB0aGUgbGlzdCBkdXJpbmcgICAqLworLyogdGhlIHN0cnVjdHVyZSBjcmVhdGlv bi4gICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLwordHlwZWRlZiBzdHJ1Y3QgbGlzdF9zdHJ1Y3QKK3sKKyAgYXNu MV9ub2RlIG5vZGU7CisgIHN0cnVjdCBsaXN0X3N0cnVjdCAqbmV4dDsKK30gbGlzdF90eXBlOwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogIEZ1bmN0aW9u cyB1c2VkIGJ5IEFTTi4xIHBhcnNlciAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCithc24xX25vZGUgX2FzbjFfYWRkX3N0YXRpY19ub2RlIChsaXN0X3R5 cGUgKiogZV9saXN0LCB1bnNpZ25lZCBpbnQgdHlwZSk7CisKK3ZvaWQgX2FzbjFfZGVsZXRlX2xp c3QgKGxpc3RfdHlwZSAqIGVfbGlzdCk7CisKK3ZvaWQgX2FzbjFfZGVsZXRlX2xpc3RfYW5kX25v ZGVzIChsaXN0X3R5cGUgKiBlX2xpc3QpOworCit2b2lkIF9hc24xX2RlbGV0ZV9ub2RlX2Zyb21f bGlzdCAobGlzdF90eXBlICogbGlzdCwgYXNuMV9ub2RlIG5vZGUpOworCithc24xX25vZGUKK19h c24xX3NldF92YWx1ZSAoYXNuMV9ub2RlIG5vZGUsIGNvbnN0IHZvaWQgKnZhbHVlLCB1bnNpZ25l ZCBpbnQgbGVuKTsKKworYXNuMV9ub2RlIF9hc24xX3NldF92YWx1ZV9tIChhc24xX25vZGUgbm9k ZSwgdm9pZCAqdmFsdWUsIHVuc2lnbmVkIGludCBsZW4pOworCithc24xX25vZGUKK19hc24xX3Nl dF92YWx1ZV9sdiAoYXNuMV9ub2RlIG5vZGUsIGNvbnN0IHZvaWQgKnZhbHVlLCB1bnNpZ25lZCBp bnQgbGVuKTsKKworYXNuMV9ub2RlCitfYXNuMV9hcHBlbmRfdmFsdWUgKGFzbjFfbm9kZSBub2Rl LCBjb25zdCB2b2lkICp2YWx1ZSwgdW5zaWduZWQgaW50IGxlbik7CisKK2FzbjFfbm9kZSBfYXNu MV9zZXRfbmFtZSAoYXNuMV9ub2RlIG5vZGUsIGNvbnN0IGNoYXIgKm5hbWUpOworCithc24xX25v ZGUgX2FzbjFfY3B5X25hbWUgKGFzbjFfbm9kZSBkc3QsIGFzbjFfbm9kZV9jb25zdCBzcmMpOwor Cithc24xX25vZGUgX2FzbjFfc2V0X3JpZ2h0IChhc24xX25vZGUgbm9kZSwgYXNuMV9ub2RlIHJp Z2h0KTsKKworYXNuMV9ub2RlIF9hc24xX2dldF9sYXN0X3JpZ2h0IChhc24xX25vZGVfY29uc3Qg bm9kZSk7CisKK3ZvaWQgX2FzbjFfcmVtb3ZlX25vZGUgKGFzbjFfbm9kZSBub2RlLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpOworCisvKiBNYXggNjQtYml0IGludGVnZXIgbGVuZ3RoIGlzIDIwIGNoYXJz ICsgMSBmb3Igc2lnbiArIDEgZm9yIG51bGwgdGVybWluYXRpb24gKi8KKyMgZGVmaW5lIExUT1NU Ul9NQVhfU0laRSAyMgorY2hhciAqX2FzbjFfbHRvc3RyIChpbnQ2NF90IHYsIGNoYXIgc3RyW0xU T1NUUl9NQVhfU0laRV0pOworCithc24xX25vZGUgX2FzbjFfZmluZF91cCAoYXNuMV9ub2RlX2Nv bnN0IG5vZGUpOworCitpbnQgX2FzbjFfY2hhbmdlX2ludGVnZXJfdmFsdWUgKGFzbjFfbm9kZSBu b2RlKTsKKworIyBkZWZpbmUgRVhQQU5EX09CSkVDVF9JRF9NQVhfUkVDVVJTSU9OIDE2CitpbnQg X2FzbjFfZXhwYW5kX29iamVjdF9pZCAobGlzdF90eXBlICoqIGxpc3QsIGFzbjFfbm9kZSBub2Rl KTsKKworaW50IF9hc24xX3R5cGVfc2V0X2NvbmZpZyAoYXNuMV9ub2RlIG5vZGUpOworCitpbnQg X2FzbjFfY2hlY2tfaWRlbnRpZmllciAoYXNuMV9ub2RlX2NvbnN0IG5vZGUpOworCitpbnQgX2Fz bjFfc2V0X2RlZmF1bHRfdGFnIChhc24xX25vZGUgbm9kZSk7CisKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBG dW5jdGlvbiA6IF9hc24xX2dldF9yaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyogRGVzY3JpcHRpb246IHJldHVybnMgdGhlIGVsZW1lbnQgcG9pbnRlZCBieSB0 aGUgUklHSFQgZmllbGQgb2YgKi8KKy8qICAgICAgICAgICAgICBhIE5PREVfQVNOIGVsZW1lbnQu ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBQYXJhbWV0ZXJzOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBub2Rl OiBOT0RFX0FTTiBlbGVtZW50IHBvaW50ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qIFJldHVybjogZmllbGQgUklHSFQgb2YgTk9ERS4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworaW5saW5lIHN0YXRpYyBhc24xX25vZGUKK19h c24xX2dldF9yaWdodCAoYXNuMV9ub2RlX2NvbnN0IG5vZGUpCit7CisgIGlmIChub2RlID09IE5V TEwpCisgICAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBub2RlLT5yaWdodDsKK30KKworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKy8qIEZ1bmN0aW9uIDogX2FzbjFfc2V0X2Rvd24gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogc2V0cyB0aGUgZmllbGQgRE9XTiBp biBhIE5PREVfQVNOIGVsZW1lbnQuICAgICAgICAqLworLyogUGFyYW1ldGVyczogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgbm9kZTog ZWxlbWVudCBwb2ludGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKiAgIGRvd246IHBvaW50ZXIgdG8gYSBOT0RFX0FTTiBlbGVtZW50IHRoYXQgeW91IHdhbnQg YmUgcG9pbnRlZCAqLworLyogICAgICAgICAgYnkgTk9ERS4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFJldHVybjogcG9pbnRlciB0byAqTk9ERS4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworaW5s aW5lIHN0YXRpYyBhc24xX25vZGUKK19hc24xX3NldF9kb3duIChhc24xX25vZGUgbm9kZSwgYXNu MV9ub2RlIGRvd24pCit7CisgIGlmIChub2RlID09IE5VTEwpCisgICAgcmV0dXJuIG5vZGU7Cisg IG5vZGUtPmRvd24gPSBkb3duOworICBpZiAoZG93bikKKyAgICBkb3duLT5sZWZ0ID0gbm9kZTsK KyAgcmV0dXJuIG5vZGU7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGdW5jdGlvbiA6IF9hc24xX2dl dF9kb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogRGVzY3Jp cHRpb246IHJldHVybnMgdGhlIGVsZW1lbnQgcG9pbnRlZCBieSB0aGUgRE9XTiBmaWVsZCBvZiAg Ki8KKy8qICAgICAgICAgICAgICBhIE5PREVfQVNOIGVsZW1lbnQuICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiBQYXJhbWV0ZXJzOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBub2RlOiBOT0RFX0FTTiBlbGVtZW50 IHBvaW50ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFJldHVybjogZmll bGQgRE9XTiBvZiBOT0RFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworaW5saW5lIHN0YXRpYyBhc24xX25vZGUKK19hc24xX2dldF9kb3duIChhc24x X25vZGVfY29uc3Qgbm9kZSkKK3sKKyAgaWYgKG5vZGUgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVM TDsKKyAgcmV0dXJuIG5vZGUtPmRvd247Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGdW5jdGlvbiA6 IF9hc24xX2dldF9uYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor LyogRGVzY3JpcHRpb246IHJldHVybnMgdGhlIG5hbWUgb2YgYSBOT0RFX0FTTiBlbGVtZW50LiAg ICAgICAgICAgKi8KKy8qIFBhcmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIG5vZGU6IE5PREVfQVNOIGVsZW1lbnQgcG9p bnRlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiBhIG51bGwg dGVybWluYXRlZCBzdHJpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCitpbmxpbmUgc3RhdGljIGNoYXIgKgorX2FzbjFfZ2V0X25hbWUgKGFzbjFfbm9kZV9j b25zdCBub2RlKQoreworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJldHVybiBOVUxMOworICBy ZXR1cm4gKGNoYXIgKikgbm9kZS0+bmFtZTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZ1bmN0aW9u IDogX2FzbjFfbW9kX3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKiBEZXNjcmlwdGlvbjogY2hhbmdlIHRoZSBmaWVsZCBUWVBFIG9mIGFuIE5PREVfQVNOIGVs ZW1lbnQuICAgICAqLworLyogICAgICAgICAgICAgIFRoZSBuZXcgdmFsdWUgaXMgdGhlIG9sZCBv bmUgfCAoYml0d2lzZSBvcikgdGhlICAgKi8KKy8qICAgICAgICAgICAgICBwYXJhbWVuZXIgVkFM VUUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiBQYXJhbWV0ZXJzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyog ICBub2RlOiBOT0RFX0FTTiBlbGVtZW50IHBvaW50ZXIuICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qICAgdmFsdWU6IHRoZSBpbnRlZ2VyIHZhbHVlIHRoYXQgbXVzdCBiZSBvci1l ZCB3aXRoIHRoZSBjdXJyZW50ICovCisvKiAgICAgICAgICB2YWx1ZSBvZiBmaWVsZCBUWVBFLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUmV0dXJuOiBOT0RFIHBvaW50 ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCitpbmxpbmUgc3RhdGljIGFzbjFfbm9kZQorX2FzbjFfbW9kX3R5cGUgKGFzbjFfbm9kZSBu b2RlLCB1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisgIGlmIChub2RlID09IE5VTEwpCisgICAgcmV0 dXJuIG5vZGU7CisgIG5vZGUtPnR5cGUgfD0gdmFsdWU7CisgIHJldHVybiBub2RlOworfQorCisj ZW5kaWYKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFzbjEvbGliL3N0cnVjdHVyZS5j IGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvc3RydWN0dXJlLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi41MTJkZDYwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9ncnVi LWNvcmUvbGliL2xpYnRhc24xL2xpYi9zdHJ1Y3R1cmUuYwpAQCAtMCwwICsxLDEyMjUgQEAKKy8q CisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSUJUQVNOMS4KKyAqCisgKiBUaGUgTElC VEFTTjEgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdAor ICogYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICog V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorICogMDIx MTAtMTMwMSwgVVNBCisgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisvKiBGaWxlOiBzdHJ1Y3R1cmUuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCisvKiBEZXNjcmlwdGlvbjogRnVuY3Rpb25zIHRvIGNyZWF0 ZSBhbmQgZGVsZXRlIGFuICAgICovCisvKiAgQVNOMSB0cmVlLiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisKKworI2luY2x1ZGUgPGludC5oPgorI2luY2x1ZGUgPHN0 cnVjdHVyZS5oPgorI2luY2x1ZGUgInBhcnNlcl9hdXguaCIKKyNpbmNsdWRlIDxnc3RyLmg+CisK KworZXh0ZXJuIGNoYXIgX2FzbjFfaWRlbnRpZmllck1pc3NpbmdbXTsKKworCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rp b24gOiBfYXNuMV9hZGRfc2luZ2xlX25vZGUgICAgICAgICAgICAgICAgICAgICAqLworLyogRGVz Y3JpcHRpb246IGNyZWF0ZXMgYSBuZXcgTk9ERV9BU04gZWxlbWVudC4gICAgICAgKi8KKy8qIFBh cmFtZXRlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg IHR5cGU6IHR5cGUgb2YgdGhlIG5ldyBlbGVtZW50IChzZWUgQVNOMV9FVFlQRV8gICAgICAgICAq LworLyogICAgICAgICBhbmQgQ09OU1RfIGNvbnN0YW50cykuICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qIFJldHVybjogcG9pbnRlciB0byB0aGUgbmV3IGVsZW1lbnQuICAgICAgICAgICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworYXNuMV9ub2RlCitfYXNuMV9hZGRfc2luZ2xlX25vZGUgKHVuc2lnbmVkIGludCB0eXBl KQoreworICBhc24xX25vZGUgcHVudDsKKworICBwdW50ID0gY2FsbG9jICgxLCBzaXplb2YgKHN0 cnVjdCBhc24xX25vZGVfc3QpKTsKKyAgaWYgKHB1bnQgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVM TDsKKworICBwdW50LT50eXBlID0gdHlwZTsKKworICByZXR1cm4gcHVudDsKK30KKworCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyogRnVuY3Rpb24gOiBfYXNuMV9maW5kX2xlZnQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qIERlc2NyaXB0aW9uOiByZXR1cm5zIHRoZSBOT0RFX0FT TiBlbGVtZW50IHdpdGggUklHSFQgZmllbGQgdGhhdCovCisvKiAgICAgICAgICAgICAgcG9pbnRz IHRoZSBlbGVtZW50IE5PREUuICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogUGFyYW1l dGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qICAgbm9kZTogTk9ERV9BU04gZWxlbWVudCBwb2ludGVyLiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiBSZXR1cm46IE5VTEwgaWYgbm90IGZvdW5kLiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK2FzbjFfbm9kZQorX2Fz bjFfZmluZF9sZWZ0IChhc24xX25vZGVfY29uc3Qgbm9kZSkKK3sKKyAgaWYgKChub2RlID09IE5V TEwpIHx8IChub2RlLT5sZWZ0ID09IE5VTEwpIHx8IChub2RlLT5sZWZ0LT5kb3duID09IG5vZGUp KQorICAgIHJldHVybiBOVUxMOworCisgIHJldHVybiBub2RlLT5sZWZ0OworfQorCisKK2ludAor X2FzbjFfY3JlYXRlX3N0YXRpY19zdHJ1Y3R1cmUgKGFzbjFfbm9kZV9jb25zdCBwb2ludGVyLAor CQkJICAgICAgIGNoYXIgKm91dHB1dF9maWxlX25hbWUsIGNoYXIgKnZlY3Rvcl9uYW1lKQorewor ICBGSUxFICpmaWxlOworICBhc24xX25vZGVfY29uc3QgcDsKKyAgdW5zaWduZWQgbG9uZyB0Owor CisgIGZpbGUgPSBmb3BlbiAob3V0cHV0X2ZpbGVfbmFtZSwgInciKTsKKworICBpZiAoZmlsZSA9 PSBOVUxMKQorICAgIHJldHVybiBBU04xX0ZJTEVfTk9UX0ZPVU5EOworCisgIGZwcmludGYgKGZp bGUsICIjaWYgSEFWRV9DT05GSUdfSFxuIik7CisgIGZwcmludGYgKGZpbGUsICIjIGluY2x1ZGUg XCJjb25maWcuaFwiXG4iKTsKKyAgZnByaW50ZiAoZmlsZSwgIiNlbmRpZlxuXG4iKTsKKworICBm cHJpbnRmIChmaWxlLCAiI2luY2x1ZGUgPGxpYnRhc24xLmg+XG5cbiIpOworCisgIGZwcmludGYg KGZpbGUsICJjb25zdCBhc24xX3N0YXRpY19ub2RlICVzW10gPSB7XG4iLCB2ZWN0b3JfbmFtZSk7 CisKKyAgcCA9IHBvaW50ZXI7CisKKyAgd2hpbGUgKHApCisgICAgeworICAgICAgZnByaW50ZiAo ZmlsZSwgIiAgeyAiKTsKKworICAgICAgaWYgKHAtPm5hbWVbMF0gIT0gMCkKKwlmcHJpbnRmIChm aWxlLCAiXCIlc1wiLCAiLCBwLT5uYW1lKTsKKyAgICAgIGVsc2UKKwlmcHJpbnRmIChmaWxlLCAi TlVMTCwgIik7CisKKyAgICAgIHQgPSBwLT50eXBlOworICAgICAgaWYgKHAtPmRvd24pCisJdCB8 PSBDT05TVF9ET1dOOworICAgICAgaWYgKHAtPnJpZ2h0KQorCXQgfD0gQ09OU1RfUklHSFQ7CisK KyAgICAgIGZwcmludGYgKGZpbGUsICIlbHUsICIsIHQpOworCisgICAgICBpZiAocC0+dmFsdWUp CisJZnByaW50ZiAoZmlsZSwgIlwiJXNcIn0sXG4iLCBwLT52YWx1ZSk7CisgICAgICBlbHNlCisJ ZnByaW50ZiAoZmlsZSwgIk5VTEwgfSxcbiIpOworCisgICAgICBpZiAocC0+ZG93bikKKwl7CisJ ICBwID0gcC0+ZG93bjsKKwl9CisgICAgICBlbHNlIGlmIChwLT5yaWdodCkKKwl7CisJICBwID0g cC0+cmlnaHQ7CisJfQorICAgICAgZWxzZQorCXsKKwkgIHdoaWxlICgxKQorCSAgICB7CisJICAg ICAgcCA9IF9hc24xX2ZpbmRfdXAgKHApOworCSAgICAgIGlmIChwID09IHBvaW50ZXIpCisJCXsK KwkJICBwID0gTlVMTDsKKwkJICBicmVhazsKKwkJfQorCSAgICAgIGlmIChwLT5yaWdodCkKKwkJ eworCQkgIHAgPSBwLT5yaWdodDsKKwkJICBicmVhazsKKwkJfQorCSAgICB9CisJfQorICAgIH0K KworICBmcHJpbnRmIChmaWxlLCAiICB7IE5VTEwsIDAsIE5VTEwgfVxufTtcbiIpOworCisgIGZj bG9zZSAoZmlsZSk7CisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworCisvKioKKyAqIGFz bjFfYXJyYXkydHJlZToKKyAqIEBhcnJheTogc3BlY2lmeSB0aGUgYXJyYXkgdGhhdCBjb250YWlu cyBBU04uMSBkZWNsYXJhdGlvbnMKKyAqIEBkZWZpbml0aW9uczogcmV0dXJuIHRoZSBwb2ludGVy IHRvIHRoZSBzdHJ1Y3R1cmUgY3JlYXRlZCBieQorICogICAqQVJSQVkgQVNOLjEgZGVjbGFyYXRp b25zCisgKiBAZXJyb3JEZXNjcmlwdGlvbjogcmV0dXJuIHRoZSBlcnJvciBkZXNjcmlwdGlvbi4K KyAqCisgKiBDcmVhdGVzIHRoZSBzdHJ1Y3R1cmVzIG5lZWRlZCB0byBtYW5hZ2UgdGhlIEFTTi4x IGRlZmluaXRpb25zLgorICogQGFycmF5IGlzIGEgdmVjdG9yIGNyZWF0ZWQgYnkgYXNuMV9wYXJz ZXIyYXJyYXkoKS4KKyAqCisgKiBSZXR1cm5zOiAlQVNOMV9TVUNDRVNTIGlmIHN0cnVjdHVyZSB3 YXMgY3JlYXRlZCBjb3JyZWN0bHksCisgKiAgICVBU04xX0VMRU1FTlRfTk9UX0VNUFRZIGlmICpA ZGVmaW5pdGlvbnMgbm90IE5VTEwsCisgKiAgICVBU04xX0lERU5USUZJRVJfTk9UX0ZPVU5EIGlm IGluIHRoZSBmaWxlIHRoZXJlIGlzIGFuIGlkZW50aWZpZXIKKyAqICAgdGhhdCBpcyBub3QgZGVm aW5lZCAoc2VlIEBlcnJvckRlc2NyaXB0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uKSwKKyAqICAg JUFTTjFfQVJSQVlfRVJST1IgaWYgdGhlIGFycmF5IHBvaW50ZWQgYnkgQGFycmF5IGlzIHdyb25n LgorICoqLworaW50Cithc24xX2FycmF5MnRyZWUgKGNvbnN0IGFzbjFfc3RhdGljX25vZGUgKiBh cnJheSwgYXNuMV9ub2RlICogZGVmaW5pdGlvbnMsCisJCSBjaGFyICplcnJvckRlc2NyaXB0aW9u KQoreworICBhc24xX25vZGUgcCwgcF9sYXN0ID0gTlVMTDsKKyAgdW5zaWduZWQgbG9uZyBrOwor ICBpbnQgbW92ZTsKKyAgaW50IHJlc3VsdDsKKyAgdW5zaWduZWQgaW50IHR5cGU7CisgIGxpc3Rf dHlwZSAqZV9saXN0ID0gTlVMTDsKKworICBpZiAoZXJyb3JEZXNjcmlwdGlvbikKKyAgICBlcnJv ckRlc2NyaXB0aW9uWzBdID0gMDsKKworICBpZiAoKmRlZmluaXRpb25zICE9IE5VTEwpCisgICAg cmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRU1QVFk7CisKKyAgbW92ZSA9IFVQOworCisgIGZvciAo ayA9IDA7IGFycmF5W2tdLnZhbHVlIHx8IGFycmF5W2tdLnR5cGUgfHwgYXJyYXlba10ubmFtZTsg aysrKQorICAgIHsKKyAgICAgIHR5cGUgPSBjb252ZXJ0X29sZF90eXBlIChhcnJheVtrXS50eXBl KTsKKworICAgICAgcCA9IF9hc24xX2FkZF9zdGF0aWNfbm9kZSAoJmVfbGlzdCwgdHlwZSAmICh+ Q09OU1RfRE9XTikpOworICAgICAgaWYgKGFycmF5W2tdLm5hbWUpCisJX2FzbjFfc2V0X25hbWUg KHAsIGFycmF5W2tdLm5hbWUpOworICAgICAgaWYgKGFycmF5W2tdLnZhbHVlKQorCV9hc24xX3Nl dF92YWx1ZSAocCwgYXJyYXlba10udmFsdWUsIHN0cmxlbiAoYXJyYXlba10udmFsdWUpICsgMSk7 CisKKyAgICAgIGlmICgqZGVmaW5pdGlvbnMgPT0gTlVMTCkKKwkqZGVmaW5pdGlvbnMgPSBwOwor CisgICAgICBpZiAobW92ZSA9PSBET1dOKQorCXsKKwkgIGlmIChwX2xhc3QgJiYgcF9sYXN0LT5k b3duKQorCSAgICBfYXNuMV9kZWxldGVfc3RydWN0dXJlIChlX2xpc3QsICZwX2xhc3QtPmRvd24s IDApOworCSAgX2FzbjFfc2V0X2Rvd24gKHBfbGFzdCwgcCk7CisJfQorICAgICAgZWxzZSBpZiAo bW92ZSA9PSBSSUdIVCkKKwl7CisJICBpZiAocF9sYXN0ICYmIHBfbGFzdC0+cmlnaHQpCisJICAg IF9hc24xX2RlbGV0ZV9zdHJ1Y3R1cmUgKGVfbGlzdCwgJnBfbGFzdC0+cmlnaHQsIDApOworCSAg X2FzbjFfc2V0X3JpZ2h0IChwX2xhc3QsIHApOworCX0KKworICAgICAgcF9sYXN0ID0gcDsKKwor ICAgICAgaWYgKHR5cGUgJiBDT05TVF9ET1dOKQorCW1vdmUgPSBET1dOOworICAgICAgZWxzZSBp ZiAodHlwZSAmIENPTlNUX1JJR0hUKQorCW1vdmUgPSBSSUdIVDsKKyAgICAgIGVsc2UKKwl7CisJ ICB3aGlsZSAocF9sYXN0ICE9ICpkZWZpbml0aW9ucykKKwkgICAgeworCSAgICAgIHBfbGFzdCA9 IF9hc24xX2ZpbmRfdXAgKHBfbGFzdCk7CisKKwkgICAgICBpZiAocF9sYXN0ID09IE5VTEwpCisJ CWJyZWFrOworCisJICAgICAgaWYgKHBfbGFzdC0+dHlwZSAmIENPTlNUX1JJR0hUKQorCQl7CisJ CSAgcF9sYXN0LT50eXBlICY9IH5DT05TVF9SSUdIVDsKKwkJICBtb3ZlID0gUklHSFQ7CisJCSAg YnJlYWs7CisJCX0KKwkgICAgfQkJCS8qIHdoaWxlICovCisJfQorICAgIH0JCQkJLyogd2hpbGUg Ki8KKworICBpZiAocF9sYXN0ID09ICpkZWZpbml0aW9ucykKKyAgICB7CisgICAgICByZXN1bHQg PSBfYXNuMV9jaGVja19pZGVudGlmaWVyICgqZGVmaW5pdGlvbnMpOworICAgICAgaWYgKHJlc3Vs dCA9PSBBU04xX1NVQ0NFU1MpCisJeworCSAgX2FzbjFfY2hhbmdlX2ludGVnZXJfdmFsdWUgKCpk ZWZpbml0aW9ucyk7CisJICByZXN1bHQgPSBfYXNuMV9leHBhbmRfb2JqZWN0X2lkICgmZV9saXN0 LCAqZGVmaW5pdGlvbnMpOworCX0KKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICByZXN1bHQg PSBBU04xX0FSUkFZX0VSUk9SOworICAgIH0KKworICBpZiAoZXJyb3JEZXNjcmlwdGlvbiAhPSBO VUxMKQorICAgIHsKKyAgICAgIGlmIChyZXN1bHQgPT0gQVNOMV9JREVOVElGSUVSX05PVF9GT1VO RCkKKwl7CisJICBFc3RyY3B5IChlcnJvckRlc2NyaXB0aW9uLCAiOjogaWRlbnRpZmllciAnIik7 CisJICBFc3RyY2F0IChlcnJvckRlc2NyaXB0aW9uLCBfYXNuMV9pZGVudGlmaWVyTWlzc2luZyk7 CisJICBFc3RyY2F0IChlcnJvckRlc2NyaXB0aW9uLCAiJyBub3QgZm91bmQiKTsKKwl9CisgICAg ICBlbHNlCisJZXJyb3JEZXNjcmlwdGlvblswXSA9IDA7CisgICAgfQorCisgIGlmIChyZXN1bHQg IT0gQVNOMV9TVUNDRVNTKQorICAgIHsKKyAgICAgIF9hc24xX2RlbGV0ZV9saXN0X2FuZF9ub2Rl cyAoZV9saXN0KTsKKyAgICAgICpkZWZpbml0aW9ucyA9IE5VTEw7CisgICAgfQorICBlbHNlCisg ICAgX2FzbjFfZGVsZXRlX2xpc3QgKGVfbGlzdCk7CisKKyAgcmV0dXJuIHJlc3VsdDsKK30KKwor LyoqCisgKiBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmU6CisgKiBAc3RydWN0dXJlOiBwb2ludGVyIHRv IHRoZSBzdHJ1Y3R1cmUgdGhhdCB5b3Ugd2FudCB0byBkZWxldGUuCisgKgorICogRGVsZXRlcyB0 aGUgc3RydWN0dXJlICpAc3RydWN0dXJlLiAgQXQgdGhlIGVuZCwgKkBzdHJ1Y3R1cmUgaXMgc2V0 CisgKiB0byBOVUxMLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgc3VjY2Vzc2Z1 bCwgJUFTTjFfRUxFTUVOVF9OT1RfRk9VTkQgaWYKKyAqICAgKkBzdHJ1Y3R1cmUgd2FzIE5VTEwu CisgKiovCitpbnQKK2FzbjFfZGVsZXRlX3N0cnVjdHVyZSAoYXNuMV9ub2RlICogc3RydWN0dXJl KQoreworICByZXR1cm4gX2FzbjFfZGVsZXRlX3N0cnVjdHVyZSAoTlVMTCwgc3RydWN0dXJlLCAw KTsKK30KKworLyoqCisgKiBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmUyOgorICogQHN0cnVjdHVyZTog cG9pbnRlciB0byB0aGUgc3RydWN0dXJlIHRoYXQgeW91IHdhbnQgdG8gZGVsZXRlLgorICogQGZs YWdzOiBhZGRpdGlvbmFsIGZsYWdzIChzZWUgJUFTTjFfREVMRVRFX0ZMQUdfWkVST0laRSkKKyAq CisgKiBEZWxldGVzIHRoZSBzdHJ1Y3R1cmUgKkBzdHJ1Y3R1cmUuICBBdCB0aGUgZW5kLCAqQHN0 cnVjdHVyZSBpcyBzZXQKKyAqIHRvIE5VTEwuCisgKgorICogUmV0dXJuczogJUFTTjFfU1VDQ0VT UyBpZiBzdWNjZXNzZnVsLCAlQVNOMV9FTEVNRU5UX05PVF9GT1VORCBpZgorICogICAqQHN0cnVj dHVyZSB3YXMgTlVMTC4KKyAqKi8KK2ludAorYXNuMV9kZWxldGVfc3RydWN0dXJlMiAoYXNuMV9u b2RlICogc3RydWN0dXJlLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisgIHJldHVybiBfYXNuMV9k ZWxldGVfc3RydWN0dXJlIChOVUxMLCBzdHJ1Y3R1cmUsIGZsYWdzKTsKK30KKworaW50CitfYXNu MV9kZWxldGVfc3RydWN0dXJlIChsaXN0X3R5cGUgKiBlX2xpc3QsIGFzbjFfbm9kZSAqIHN0cnVj dHVyZSwKKwkJCXVuc2lnbmVkIGludCBmbGFncykKK3sKKyAgYXNuMV9ub2RlIHAsIHAyLCBwMzsK KworICBpZiAoKnN0cnVjdHVyZSA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9U X0ZPVU5EOworCisgIHAgPSAqc3RydWN0dXJlOworICB3aGlsZSAocCkKKyAgICB7CisgICAgICBp ZiAocC0+ZG93bikKKwl7CisJICBwID0gcC0+ZG93bjsKKwl9CisgICAgICBlbHNlCisJewkJCS8q IG5vIGRvd24gKi8KKwkgIHAyID0gcC0+cmlnaHQ7CisJICBpZiAocCAhPSAqc3RydWN0dXJlKQor CSAgICB7CisJICAgICAgcDMgPSBfYXNuMV9maW5kX3VwIChwKTsKKwkgICAgICBfYXNuMV9zZXRf ZG93biAocDMsIHAyKTsKKwkgICAgICBpZiAoZV9saXN0KQorCQlfYXNuMV9kZWxldGVfbm9kZV9m cm9tX2xpc3QgKGVfbGlzdCwgcCk7CisJICAgICAgX2FzbjFfcmVtb3ZlX25vZGUgKHAsIGZsYWdz KTsKKwkgICAgICBwID0gcDM7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgewkJCS8qIHA9PXJvb3Qg Ki8KKwkgICAgICBwMyA9IF9hc24xX2ZpbmRfbGVmdCAocCk7CisJICAgICAgaWYgKCFwMykKKwkJ eworCQkgIHAzID0gX2FzbjFfZmluZF91cCAocCk7CisJCSAgaWYgKHAzKQorCQkgICAgX2FzbjFf c2V0X2Rvd24gKHAzLCBwMik7CisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICBpZiAocC0+cmln aHQpCisJCQlwLT5yaWdodC0+bGVmdCA9IE5VTEw7CisJCSAgICB9CisJCX0KKwkgICAgICBlbHNl CisJCV9hc24xX3NldF9yaWdodCAocDMsIHAyKTsKKwkgICAgICBpZiAoZV9saXN0KQorCQlfYXNu MV9kZWxldGVfbm9kZV9mcm9tX2xpc3QgKGVfbGlzdCwgcCk7CisJICAgICAgX2FzbjFfcmVtb3Zl X25vZGUgKHAsIGZsYWdzKTsKKwkgICAgICBwID0gTlVMTDsKKwkgICAgfQorCX0KKyAgICB9CisK KyAgKnN0cnVjdHVyZSA9IE5VTEw7CisgIHJldHVybiBBU04xX1NVQ0NFU1M7Cit9CisKKworLyoq CisgKiBhc24xX2RlbGV0ZV9lbGVtZW50OgorICogQHN0cnVjdHVyZTogcG9pbnRlciB0byB0aGUg c3RydWN0dXJlIHRoYXQgY29udGFpbnMgdGhlIGVsZW1lbnQgeW91CisgKiAgIHdhbnQgdG8gZGVs ZXRlLgorICogQGVsZW1lbnRfbmFtZTogZWxlbWVudCdzIG5hbWUgeW91IHdhbnQgdG8gZGVsZXRl LgorICoKKyAqIERlbGV0ZXMgdGhlIGVsZW1lbnQgbmFtZWQgKkBlbGVtZW50X25hbWUgaW5zaWRl ICpAc3RydWN0dXJlLgorICoKKyAqIFJldHVybnM6ICVBU04xX1NVQ0NFU1MgaWYgc3VjY2Vzc2Z1 bCwgJUFTTjFfRUxFTUVOVF9OT1RfRk9VTkQgaWYKKyAqICAgdGhlIEBlbGVtZW50X25hbWUgd2Fz IG5vdCBmb3VuZC4KKyAqKi8KK2ludAorYXNuMV9kZWxldGVfZWxlbWVudCAoYXNuMV9ub2RlIHN0 cnVjdHVyZSwgY29uc3QgY2hhciAqZWxlbWVudF9uYW1lKQoreworICBhc24xX25vZGUgcDIsIHAz LCBzb3VyY2Vfbm9kZTsKKworICBzb3VyY2Vfbm9kZSA9IGFzbjFfZmluZF9ub2RlIChzdHJ1Y3R1 cmUsIGVsZW1lbnRfbmFtZSk7CisKKyAgaWYgKHNvdXJjZV9ub2RlID09IE5VTEwpCisgICAgcmV0 dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgcDIgPSBzb3VyY2Vfbm9kZS0+cmlnaHQ7 CisgIHAzID0gX2FzbjFfZmluZF9sZWZ0IChzb3VyY2Vfbm9kZSk7CisgIGlmICghcDMpCisgICAg eworICAgICAgcDMgPSBfYXNuMV9maW5kX3VwIChzb3VyY2Vfbm9kZSk7CisgICAgICBpZiAocDMp CisJX2FzbjFfc2V0X2Rvd24gKHAzLCBwMik7CisgICAgICBlbHNlIGlmIChzb3VyY2Vfbm9kZS0+ cmlnaHQpCisJc291cmNlX25vZGUtPnJpZ2h0LT5sZWZ0ID0gTlVMTDsKKyAgICB9CisgIGVsc2UK KyAgICBfYXNuMV9zZXRfcmlnaHQgKHAzLCBwMik7CisKKyAgcmV0dXJuIGFzbjFfZGVsZXRlX3N0 cnVjdHVyZSAoJnNvdXJjZV9ub2RlKTsKK30KKworI2lmbmRlZiBfX2NsYW5nX2FuYWx5emVyX18K K2FzbjFfbm9kZQorX2FzbjFfY29weV9zdHJ1Y3R1cmUzIChhc24xX25vZGVfY29uc3Qgc291cmNl X25vZGUpCit7CisgIGFzbjFfbm9kZV9jb25zdCBwX3M7CisgIGFzbjFfbm9kZSBkZXN0X25vZGUs IHBfZCwgcF9kX3ByZXY7CisgIGludCBtb3ZlOworCisgIGlmIChzb3VyY2Vfbm9kZSA9PSBOVUxM KQorICAgIHJldHVybiBOVUxMOworCisgIGRlc3Rfbm9kZSA9IF9hc24xX2FkZF9zaW5nbGVfbm9k ZSAoc291cmNlX25vZGUtPnR5cGUpOworICBpZiAoZGVzdF9ub2RlID09IE5VTEwpCisgICAgcmV0 dXJuIGRlc3Rfbm9kZTsKKworICBwX3MgPSBzb3VyY2Vfbm9kZTsKKyAgcF9kID0gZGVzdF9ub2Rl OworCisgIG1vdmUgPSBET1dOOworCisgIGRvCisgICAgeworICAgICAgaWYgKG1vdmUgIT0gVVAp CisJeworCSAgaWYgKHBfcy0+bmFtZVswXSAhPSAwKQorCSAgICBfYXNuMV9jcHlfbmFtZSAocF9k LCBwX3MpOworCSAgaWYgKHBfcy0+dmFsdWUpCisJICAgIF9hc24xX3NldF92YWx1ZSAocF9kLCBw X3MtPnZhbHVlLCBwX3MtPnZhbHVlX2xlbik7CisJICBpZiAocF9zLT5kb3duKQorCSAgICB7CisJ ICAgICAgcF9zID0gcF9zLT5kb3duOworCSAgICAgIHBfZF9wcmV2ID0gcF9kOworCSAgICAgIHBf ZCA9IF9hc24xX2FkZF9zaW5nbGVfbm9kZSAocF9zLT50eXBlKTsKKwkgICAgICBfYXNuMV9zZXRf ZG93biAocF9kX3ByZXYsIHBfZCk7CisJICAgICAgY29udGludWU7CisJICAgIH0KKwkgIHBfZC0+ c3RhcnQgPSBwX3MtPnN0YXJ0OworCSAgcF9kLT5lbmQgPSBwX3MtPmVuZDsKKwl9CisKKyAgICAg IGlmIChwX3MgPT0gc291cmNlX25vZGUpCisJYnJlYWs7CisKKyAgICAgIGlmIChwX3MtPnJpZ2h0 KQorCXsKKwkgIG1vdmUgPSBSSUdIVDsKKwkgIHBfcyA9IHBfcy0+cmlnaHQ7CisJICBwX2RfcHJl diA9IHBfZDsKKwkgIHBfZCA9IF9hc24xX2FkZF9zaW5nbGVfbm9kZSAocF9zLT50eXBlKTsKKwkg IF9hc24xX3NldF9yaWdodCAocF9kX3ByZXYsIHBfZCk7CisJfQorICAgICAgZWxzZQorCXsKKwkg IG1vdmUgPSBVUDsKKwkgIHBfcyA9IF9hc24xX2ZpbmRfdXAgKHBfcyk7CisJICBwX2QgPSBfYXNu MV9maW5kX3VwIChwX2QpOworCX0KKyAgICB9CisgIHdoaWxlIChwX3MgIT0gc291cmNlX25vZGUp OworICByZXR1cm4gZGVzdF9ub2RlOworfQorI2Vsc2UKKworLyogTm9uLXByb2R1Y3Rpb24gY29k ZSAqLworYXNuMV9ub2RlCitfYXNuMV9jb3B5X3N0cnVjdHVyZTMgKGFzbjFfbm9kZV9jb25zdCBz b3VyY2Vfbm9kZSkKK3sKKyAgcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYgLyogX19jbGFuZ19hbmFs eXplcl9fICovCisKKworc3RhdGljIGFzbjFfbm9kZQorX2FzbjFfY29weV9zdHJ1Y3R1cmUyIChh c24xX25vZGVfY29uc3Qgcm9vdCwgY29uc3QgY2hhciAqc291cmNlX25hbWUpCit7CisgIGFzbjFf bm9kZSBzb3VyY2Vfbm9kZTsKKworICBzb3VyY2Vfbm9kZSA9IGFzbjFfZmluZF9ub2RlIChyb290 LCBzb3VyY2VfbmFtZSk7CisKKyAgcmV0dXJuIF9hc24xX2NvcHlfc3RydWN0dXJlMyAoc291cmNl X25vZGUpOworCit9CisKKworc3RhdGljIGludAorX2FzbjFfdHlwZV9jaG9pY2VfY29uZmlnIChh c24xX25vZGUgbm9kZSkKK3sKKyAgYXNuMV9ub2RlIHAsIHAyLCBwMywgcDQ7CisgIGludCBtb3Zl LCB0bGVuOworCisgIGlmIChub2RlID09IE5VTEwpCisgICAgcmV0dXJuIEFTTjFfRUxFTUVOVF9O T1RfRk9VTkQ7CisKKyAgcCA9IG5vZGU7CisgIG1vdmUgPSBET1dOOworCisgIHdoaWxlICghKChw ID09IG5vZGUpICYmIChtb3ZlID09IFVQKSkpCisgICAgeworICAgICAgaWYgKG1vdmUgIT0gVVAp CisJeworCSAgaWYgKCh0eXBlX2ZpZWxkIChwLT50eXBlKSA9PSBBU04xX0VUWVBFX0NIT0lDRSkK KwkgICAgICAmJiAocC0+dHlwZSAmIENPTlNUX1RBRykpCisJICAgIHsKKwkgICAgICBwMiA9IHAt PmRvd247CisJICAgICAgd2hpbGUgKHAyKQorCQl7CisJCSAgaWYgKHR5cGVfZmllbGQgKHAyLT50 eXBlKSAhPSBBU04xX0VUWVBFX1RBRykKKwkJICAgIHsKKwkJICAgICAgcDItPnR5cGUgfD0gQ09O U1RfVEFHOworCQkgICAgICBwMyA9IF9hc24xX2ZpbmRfbGVmdCAocDIpOworCQkgICAgICB3aGls ZSAocDMpCisJCQl7CisJCQkgIGlmICh0eXBlX2ZpZWxkIChwMy0+dHlwZSkgPT0gQVNOMV9FVFlQ RV9UQUcpCisJCQkgICAgeworCQkJICAgICAgcDQgPSBfYXNuMV9hZGRfc2luZ2xlX25vZGUgKHAz LT50eXBlKTsKKwkJCSAgICAgIHRsZW4gPSBfYXNuMV9zdHJsZW4gKHAzLT52YWx1ZSk7CisJCQkg ICAgICBpZiAodGxlbiA+IDApCisJCQkJX2FzbjFfc2V0X3ZhbHVlIChwNCwgcDMtPnZhbHVlLCB0 bGVuICsgMSk7CisJCQkgICAgICBfYXNuMV9zZXRfcmlnaHQgKHA0LCBwMi0+ZG93bik7CisJCQkg ICAgICBfYXNuMV9zZXRfZG93biAocDIsIHA0KTsKKwkJCSAgICB9CisJCQkgIHAzID0gX2FzbjFf ZmluZF9sZWZ0IChwMyk7CisJCQl9CisJCSAgICB9CisJCSAgcDIgPSBwMi0+cmlnaHQ7CisJCX0K KwkgICAgICBwLT50eXBlICY9IH4oQ09OU1RfVEFHKTsKKwkgICAgICBwMiA9IHAtPmRvd247CisJ ICAgICAgd2hpbGUgKHAyKQorCQl7CisJCSAgcDMgPSBwMi0+cmlnaHQ7CisJCSAgaWYgKHR5cGVf ZmllbGQgKHAyLT50eXBlKSA9PSBBU04xX0VUWVBFX1RBRykKKwkJICAgIGFzbjFfZGVsZXRlX3N0 cnVjdHVyZSAoJnAyKTsKKwkJICBwMiA9IHAzOworCQl9CisJICAgIH0KKwkgIG1vdmUgPSBET1dO OworCX0KKyAgICAgIGVsc2UKKwltb3ZlID0gUklHSFQ7CisKKyAgICAgIGlmIChtb3ZlID09IERP V04pCisJeworCSAgaWYgKHAtPmRvd24pCisJICAgIHAgPSBwLT5kb3duOworCSAgZWxzZQorCSAg ICBtb3ZlID0gUklHSFQ7CisJfQorCisgICAgICBpZiAocCA9PSBub2RlKQorCXsKKwkgIG1vdmUg PSBVUDsKKwkgIGNvbnRpbnVlOworCX0KKworICAgICAgaWYgKG1vdmUgPT0gUklHSFQpCisJewor CSAgaWYgKHAtPnJpZ2h0KQorCSAgICBwID0gcC0+cmlnaHQ7CisJICBlbHNlCisJICAgIG1vdmUg PSBVUDsKKwl9CisgICAgICBpZiAobW92ZSA9PSBVUCkKKwlwID0gX2FzbjFfZmluZF91cCAocCk7 CisgICAgfQorCisgIHJldHVybiBBU04xX1NVQ0NFU1M7Cit9CisKKworc3RhdGljIGludAorX2Fz bjFfZXhwYW5kX2lkZW50aWZpZXIgKGFzbjFfbm9kZSAqIG5vZGUsIGFzbjFfbm9kZV9jb25zdCBy b290KQoreworICBhc24xX25vZGUgcCwgcDIsIHAzOworICBjaGFyIG5hbWUyW0FTTjFfTUFYX05B TUVfU0laRSArIDJdOworICBpbnQgbW92ZTsKKworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJl dHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOworCisgIHAgPSAqbm9kZTsKKyAgbW92ZSA9IERP V047CisKKyAgd2hpbGUgKCEoKHAgPT0gKm5vZGUpICYmIChtb3ZlID09IFVQKSkpCisgICAgewor ICAgICAgaWYgKG1vdmUgIT0gVVApCisJeworCSAgaWYgKHR5cGVfZmllbGQgKHAtPnR5cGUpID09 IEFTTjFfRVRZUEVfSURFTlRJRklFUikKKwkgICAgeworCSAgICAgIHNucHJpbnRmIChuYW1lMiwg c2l6ZW9mIChuYW1lMiksICIlcy4lcyIsIHJvb3QtPm5hbWUsIHAtPnZhbHVlKTsKKwkgICAgICBw MiA9IF9hc24xX2NvcHlfc3RydWN0dXJlMiAocm9vdCwgbmFtZTIpOworCSAgICAgIGlmIChwMiA9 PSBOVUxMKQorCQl7CisJCSAgcmV0dXJuIEFTTjFfSURFTlRJRklFUl9OT1RfRk9VTkQ7CisJCX0K KwkgICAgICBfYXNuMV9jcHlfbmFtZSAocDIsIHApOworCSAgICAgIHAyLT5yaWdodCA9IHAtPnJp Z2h0OworCSAgICAgIHAyLT5sZWZ0ID0gcC0+bGVmdDsKKwkgICAgICBpZiAocC0+cmlnaHQpCisJ CXAtPnJpZ2h0LT5sZWZ0ID0gcDI7CisJICAgICAgcDMgPSBwLT5kb3duOworCSAgICAgIGlmIChw MykKKwkJeworCQkgIHdoaWxlIChwMy0+cmlnaHQpCisJCSAgICBwMyA9IHAzLT5yaWdodDsKKwkJ ICBfYXNuMV9zZXRfcmlnaHQgKHAzLCBwMi0+ZG93bik7CisJCSAgX2FzbjFfc2V0X2Rvd24gKHAy LCBwLT5kb3duKTsKKwkJfQorCisJICAgICAgcDMgPSBfYXNuMV9maW5kX2xlZnQgKHApOworCSAg ICAgIGlmIChwMykKKwkJX2FzbjFfc2V0X3JpZ2h0IChwMywgcDIpOworCSAgICAgIGVsc2UKKwkJ eworCQkgIHAzID0gX2FzbjFfZmluZF91cCAocCk7CisJCSAgaWYgKHAzKQorCQkgICAgX2FzbjFf c2V0X2Rvd24gKHAzLCBwMik7CisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICBwMi0+bGVmdCA9 IE5VTEw7CisJCSAgICB9CisJCX0KKworCSAgICAgIGlmIChwLT50eXBlICYgQ09OU1RfU0laRSkK KwkJcDItPnR5cGUgfD0gQ09OU1RfU0laRTsKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX1RB RykKKwkJcDItPnR5cGUgfD0gQ09OU1RfVEFHOworCSAgICAgIGlmIChwLT50eXBlICYgQ09OU1Rf T1BUSU9OKQorCQlwMi0+dHlwZSB8PSBDT05TVF9PUFRJT047CisJICAgICAgaWYgKHAtPnR5cGUg JiBDT05TVF9ERUZBVUxUKQorCQlwMi0+dHlwZSB8PSBDT05TVF9ERUZBVUxUOworCSAgICAgIGlm IChwLT50eXBlICYgQ09OU1RfU0VUKQorCQlwMi0+dHlwZSB8PSBDT05TVF9TRVQ7CisJICAgICAg aWYgKHAtPnR5cGUgJiBDT05TVF9OT1RfVVNFRCkKKwkJcDItPnR5cGUgfD0gQ09OU1RfTk9UX1VT RUQ7CisKKwkgICAgICBpZiAocCA9PSAqbm9kZSkKKwkJKm5vZGUgPSBwMjsKKwkgICAgICBfYXNu MV9yZW1vdmVfbm9kZSAocCwgMCk7CisJICAgICAgcCA9IHAyOworCSAgICAgIG1vdmUgPSBET1dO OworCSAgICAgIGNvbnRpbnVlOworCSAgICB9CisJICBtb3ZlID0gRE9XTjsKKwl9CisgICAgICBl bHNlCisJbW92ZSA9IFJJR0hUOworCisgICAgICBpZiAobW92ZSA9PSBET1dOKQorCXsKKwkgIGlm IChwLT5kb3duKQorCSAgICBwID0gcC0+ZG93bjsKKwkgIGVsc2UKKwkgICAgbW92ZSA9IFJJR0hU OworCX0KKworICAgICAgaWYgKHAgPT0gKm5vZGUpCisJeworCSAgbW92ZSA9IFVQOworCSAgY29u dGludWU7CisJfQorCisgICAgICBpZiAobW92ZSA9PSBSSUdIVCkKKwl7CisJICBpZiAocC0+cmln aHQpCisJICAgIHAgPSBwLT5yaWdodDsKKwkgIGVsc2UKKwkgICAgbW92ZSA9IFVQOworCX0KKyAg ICAgIGlmIChtb3ZlID09IFVQKQorCXAgPSBfYXNuMV9maW5kX3VwIChwKTsKKyAgICB9CisKKyAg cmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworCisvKioKKyAqIGFzbjFfY3JlYXRlX2VsZW1lbnQ6 CisgKiBAZGVmaW5pdGlvbnM6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSByZXR1cm5lZCBieSAi cGFyc2VyX2FzbjEiIGZ1bmN0aW9uCisgKiBAc291cmNlX25hbWU6IHRoZSBuYW1lIG9mIHRoZSB0 eXBlIG9mIHRoZSBuZXcgc3RydWN0dXJlIChtdXN0IGJlCisgKiAgIGluc2lkZSBwX3N0cnVjdHVy ZSkuCisgKiBAZWxlbWVudDogcG9pbnRlciB0byB0aGUgc3RydWN0dXJlIGNyZWF0ZWQuCisgKgor ICogQ3JlYXRlcyBhIHN0cnVjdHVyZSBvZiB0eXBlIEBzb3VyY2VfbmFtZS4gIEV4YW1wbGUgdXNp bmcKKyAqICAicGtpeC5hc24iOgorICoKKyAqIHJjID0gYXNuMV9jcmVhdGVfZWxlbWVudChjZXJ0 X2RlZiwgIlBLSVgxLkNlcnRpZmljYXRlIiwgY2VydHB0cik7CisgKgorICogUmV0dXJuczogJUFT TjFfU1VDQ0VTUyBpZiBjcmVhdGlvbiBPSywgJUFTTjFfRUxFTUVOVF9OT1RfRk9VTkQgaWYKKyAq ICAgQHNvdXJjZV9uYW1lIGlzIG5vdCBrbm93bi4KKyAqKi8KK2ludAorYXNuMV9jcmVhdGVfZWxl bWVudCAoYXNuMV9ub2RlX2NvbnN0IGRlZmluaXRpb25zLCBjb25zdCBjaGFyICpzb3VyY2VfbmFt ZSwKKwkJICAgICBhc24xX25vZGUgKiBlbGVtZW50KQoreworICBhc24xX25vZGUgZGVzdF9ub2Rl OworICBpbnQgcmVzOworCisgIGRlc3Rfbm9kZSA9IF9hc24xX2NvcHlfc3RydWN0dXJlMiAoZGVm aW5pdGlvbnMsIHNvdXJjZV9uYW1lKTsKKworICBpZiAoZGVzdF9ub2RlID09IE5VTEwpCisgICAg cmV0dXJuIEFTTjFfRUxFTUVOVF9OT1RfRk9VTkQ7CisKKyAgX2FzbjFfc2V0X25hbWUgKGRlc3Rf bm9kZSwgIiIpOworCisgIHJlcyA9IF9hc24xX2V4cGFuZF9pZGVudGlmaWVyICgmZGVzdF9ub2Rl LCBkZWZpbml0aW9ucyk7CisgIF9hc24xX3R5cGVfY2hvaWNlX2NvbmZpZyAoZGVzdF9ub2RlKTsK KworICAqZWxlbWVudCA9IGRlc3Rfbm9kZTsKKworICByZXR1cm4gcmVzOworfQorCisKKy8qKgor ICogYXNuMV9wcmludF9zdHJ1Y3R1cmU6CisgKiBAb3V0OiBwb2ludGVyIHRvIHRoZSBvdXRwdXQg ZmlsZSAoZS5nLiBzdGRvdXQpLgorICogQHN0cnVjdHVyZTogcG9pbnRlciB0byB0aGUgc3RydWN0 dXJlIHRoYXQgeW91IHdhbnQgdG8gdmlzaXQuCisgKiBAbmFtZTogYW4gZWxlbWVudCBvZiB0aGUg c3RydWN0dXJlCisgKiBAbW9kZTogc3BlY2lmeSBob3cgbXVjaCBvZiB0aGUgc3RydWN0dXJlIHRv IHByaW50LCBjYW4gYmUKKyAqICAgJUFTTjFfUFJJTlRfTkFNRSwgJUFTTjFfUFJJTlRfTkFNRV9U WVBFLAorICogICAlQVNOMV9QUklOVF9OQU1FX1RZUEVfVkFMVUUsIG9yICVBU04xX1BSSU5UX0FM TC4KKyAqCisgKiBQcmludHMgb24gdGhlIEBvdXQgZmlsZSBkZXNjcmlwdG9yIHRoZSBzdHJ1Y3R1 cmUncyB0cmVlIHN0YXJ0aW5nCisgKiBmcm9tIHRoZSBAbmFtZSBlbGVtZW50IGluc2lkZSB0aGUg c3RydWN0dXJlIEBzdHJ1Y3R1cmUuCisgKiovCit2b2lkCithc24xX3ByaW50X3N0cnVjdHVyZSAo RklMRSAqIG91dCwgYXNuMV9ub2RlX2NvbnN0IHN0cnVjdHVyZSwgY29uc3QgY2hhciAqbmFtZSwK KwkJICAgICAgaW50IG1vZGUpCit7CisgIGFzbjFfbm9kZV9jb25zdCBwLCByb290OworICBpbnQg aywgaW5kZW50ID0gMCwgbGVuLCBsZW4yLCBsZW4zOworCisgIGlmIChvdXQgPT0gTlVMTCkKKyAg ICByZXR1cm47CisKKyAgcm9vdCA9IGFzbjFfZmluZF9ub2RlIChzdHJ1Y3R1cmUsIG5hbWUpOwor CisgIGlmIChyb290ID09IE5VTEwpCisgICAgcmV0dXJuOworCisgIHAgPSByb290OworICB3aGls ZSAocCkKKyAgICB7CisgICAgICBpZiAobW9kZSA9PSBBU04xX1BSSU5UX0FMTCkKKwl7CisJICBm b3IgKGsgPSAwOyBrIDwgaW5kZW50OyBrKyspCisJICAgIGZwcmludGYgKG91dCwgIiAiKTsKKwkg IGZwcmludGYgKG91dCwgIm5hbWU6Iik7CisJICBpZiAocC0+bmFtZVswXSAhPSAwKQorCSAgICBm cHJpbnRmIChvdXQsICIlcyAgIiwgcC0+bmFtZSk7CisJICBlbHNlCisJICAgIGZwcmludGYgKG91 dCwgIk5VTEwgICIpOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBzd2l0Y2ggKHR5cGVfZmllbGQg KHAtPnR5cGUpKQorCSAgICB7CisJICAgIGNhc2UgQVNOMV9FVFlQRV9DT05TVEFOVDoKKwkgICAg Y2FzZSBBU04xX0VUWVBFX1RBRzoKKwkgICAgY2FzZSBBU04xX0VUWVBFX1NJWkU6CisJICAgICAg YnJlYWs7CisJICAgIGRlZmF1bHQ6CisJICAgICAgZm9yIChrID0gMDsgayA8IGluZGVudDsgaysr KQorCQlmcHJpbnRmIChvdXQsICIgIik7CisJICAgICAgZnByaW50ZiAob3V0LCAibmFtZToiKTsK KwkgICAgICBpZiAocC0+bmFtZVswXSAhPSAwKQorCQlmcHJpbnRmIChvdXQsICIlcyAgIiwgcC0+ bmFtZSk7CisJICAgICAgZWxzZQorCQlmcHJpbnRmIChvdXQsICJOVUxMICAiKTsKKwkgICAgfQor CX0KKworICAgICAgaWYgKG1vZGUgIT0gQVNOMV9QUklOVF9OQU1FKQorCXsKKwkgIHVuc2lnbmVk IHR5cGUgPSB0eXBlX2ZpZWxkIChwLT50eXBlKTsKKwkgIHN3aXRjaCAodHlwZSkKKwkgICAgewor CSAgICBjYXNlIEFTTjFfRVRZUEVfQ09OU1RBTlQ6CisJICAgICAgaWYgKG1vZGUgPT0gQVNOMV9Q UklOVF9BTEwpCisJCWZwcmludGYgKG91dCwgInR5cGU6Q09OU1QiKTsKKwkgICAgICBicmVhazsK KwkgICAgY2FzZSBBU04xX0VUWVBFX1RBRzoKKwkgICAgICBpZiAobW9kZSA9PSBBU04xX1BSSU5U X0FMTCkKKwkJZnByaW50ZiAob3V0LCAidHlwZTpUQUciKTsKKwkgICAgICBicmVhazsKKwkgICAg Y2FzZSBBU04xX0VUWVBFX1NJWkU6CisJICAgICAgaWYgKG1vZGUgPT0gQVNOMV9QUklOVF9BTEwp CisJCWZwcmludGYgKG91dCwgInR5cGU6U0laRSIpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNl IEFTTjFfRVRZUEVfREVGQVVMVDoKKwkgICAgICBmcHJpbnRmIChvdXQsICJ0eXBlOkRFRkFVTFQi KTsKKwkgICAgICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX0lERU5USUZJRVI6CisJICAg ICAgZnByaW50ZiAob3V0LCAidHlwZTpJREVOVElGSUVSIik7CisJICAgICAgYnJlYWs7CisJICAg IGNhc2UgQVNOMV9FVFlQRV9BTlk6CisJICAgICAgZnByaW50ZiAob3V0LCAidHlwZTpBTlkiKTsK KwkgICAgICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX0NIT0lDRToKKwkgICAgICBmcHJp bnRmIChvdXQsICJ0eXBlOkNIT0lDRSIpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFf RVRZUEVfREVGSU5JVElPTlM6CisJICAgICAgZnByaW50ZiAob3V0LCAidHlwZTpERUZJTklUSU9O UyIpOworCSAgICAgIGJyZWFrOworCSAgICBDQVNFX0hBTkRMRURfRVRZUEVTOgorCSAgICAgIGZw cmludGYgKG91dCwgIiVzIiwgX2FzbjFfdGFnc1t0eXBlXS5kZXNjKTsKKwkgICAgICBicmVhazsK KwkgICAgZGVmYXVsdDoKKwkgICAgICBicmVhazsKKwkgICAgfQorCX0KKworICAgICAgaWYgKCht b2RlID09IEFTTjFfUFJJTlRfTkFNRV9UWVBFX1ZBTFVFKSB8fCAobW9kZSA9PSBBU04xX1BSSU5U X0FMTCkpCisJeworCSAgc3dpdGNoICh0eXBlX2ZpZWxkIChwLT50eXBlKSkKKwkgICAgeworCSAg ICBjYXNlIEFTTjFfRVRZUEVfQ09OU1RBTlQ6CisJICAgICAgaWYgKG1vZGUgPT0gQVNOMV9QUklO VF9BTEwpCisJCWlmIChwLT52YWx1ZSkKKwkJICBmcHJpbnRmIChvdXQsICIgIHZhbHVlOiVzIiwg cC0+dmFsdWUpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFfRVRZUEVfVEFHOgorCSAg ICAgIGlmIChtb2RlID09IEFTTjFfUFJJTlRfQUxMKQorCQlpZiAocC0+dmFsdWUpCisJCSAgZnBy aW50ZiAob3V0LCAiICB2YWx1ZTolcyIsIHAtPnZhbHVlKTsKKwkgICAgICBicmVhazsKKwkgICAg Y2FzZSBBU04xX0VUWVBFX1NJWkU6CisJICAgICAgaWYgKG1vZGUgPT0gQVNOMV9QUklOVF9BTEwp CisJCWlmIChwLT52YWx1ZSkKKwkJICBmcHJpbnRmIChvdXQsICIgIHZhbHVlOiVzIiwgcC0+dmFs dWUpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFfRVRZUEVfREVGQVVMVDoKKwkgICAg ICBpZiAocC0+dmFsdWUpCisJCWZwcmludGYgKG91dCwgIiAgdmFsdWU6JXMiLCBwLT52YWx1ZSk7 CisJICAgICAgZWxzZSBpZiAocC0+dHlwZSAmIENPTlNUX1RSVUUpCisJCWZwcmludGYgKG91dCwg IiAgdmFsdWU6VFJVRSIpOworCSAgICAgIGVsc2UgaWYgKHAtPnR5cGUgJiBDT05TVF9GQUxTRSkK KwkJZnByaW50ZiAob3V0LCAiICB2YWx1ZTpGQUxTRSIpOworCSAgICAgIGJyZWFrOworCSAgICBj YXNlIEFTTjFfRVRZUEVfSURFTlRJRklFUjoKKwkgICAgICBpZiAocC0+dmFsdWUpCisJCWZwcmlu dGYgKG91dCwgIiAgdmFsdWU6JXMiLCBwLT52YWx1ZSk7CisJICAgICAgYnJlYWs7CisJICAgIGNh c2UgQVNOMV9FVFlQRV9JTlRFR0VSOgorCSAgICAgIGlmIChwLT52YWx1ZSkKKwkJeworCQkgIGxl bjIgPSAtMTsKKwkJICBsZW4gPSBhc24xX2dldF9sZW5ndGhfZGVyIChwLT52YWx1ZSwgcC0+dmFs dWVfbGVuLCAmbGVuMik7CisJCSAgZnByaW50ZiAob3V0LCAiICB2YWx1ZToweCIpOworCQkgIGlm IChsZW4gPiAwKQorCQkgICAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrKQorCQkgICAgICBmcHJp bnRmIChvdXQsICIlMDJ4IiwgKHVuc2lnbmVkKSAocC0+dmFsdWUpW2sgKyBsZW4yXSk7CisJCX0K KwkgICAgICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX0VOVU1FUkFURUQ6CisJICAgICAg aWYgKHAtPnZhbHVlKQorCQl7CisJCSAgbGVuMiA9IC0xOworCQkgIGxlbiA9IGFzbjFfZ2V0X2xl bmd0aF9kZXIgKHAtPnZhbHVlLCBwLT52YWx1ZV9sZW4sICZsZW4yKTsKKwkJICBmcHJpbnRmIChv dXQsICIgIHZhbHVlOjB4Iik7CisJCSAgaWYgKGxlbiA+IDApCisJCSAgICBmb3IgKGsgPSAwOyBr IDwgbGVuOyBrKyspCisJCSAgICAgIGZwcmludGYgKG91dCwgIiUwMngiLCAodW5zaWduZWQpIChw LT52YWx1ZSlbayArIGxlbjJdKTsKKwkJfQorCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFf RVRZUEVfQk9PTEVBTjoKKwkgICAgICBpZiAocC0+dmFsdWUpCisJCXsKKwkJICBpZiAocC0+dmFs dWVbMF0gPT0gJ1QnKQorCQkgICAgZnByaW50ZiAob3V0LCAiICB2YWx1ZTpUUlVFIik7CisJCSAg ZWxzZSBpZiAocC0+dmFsdWVbMF0gPT0gJ0YnKQorCQkgICAgZnByaW50ZiAob3V0LCAiICB2YWx1 ZTpGQUxTRSIpOworCQl9CisJICAgICAgYnJlYWs7CisJICAgIGNhc2UgQVNOMV9FVFlQRV9CSVRf U1RSSU5HOgorCSAgICAgIGlmIChwLT52YWx1ZSkKKwkJeworCQkgIGxlbjIgPSAtMTsKKwkJICBs ZW4gPSBhc24xX2dldF9sZW5ndGhfZGVyIChwLT52YWx1ZSwgcC0+dmFsdWVfbGVuLCAmbGVuMik7 CisJCSAgaWYgKGxlbiA+IDApCisJCSAgICB7CisJCSAgICAgIGZwcmludGYgKG91dCwgIiAgdmFs dWUoJWkpOiIsCisJCQkgICAgICAgKGxlbiAtIDEpICogOCAtIChwLT52YWx1ZVtsZW4yXSkpOwor CQkgICAgICBmb3IgKGsgPSAxOyBrIDwgbGVuOyBrKyspCisJCQlmcHJpbnRmIChvdXQsICIlMDJ4 IiwKKwkJCQkgKHVuc2lnbmVkKSAocC0+dmFsdWUpW2sgKyBsZW4yXSk7CisJCSAgICB9CisJCX0K KwkgICAgICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX0dFTkVSQUxJWkVEX1RJTUU6CisJ ICAgIGNhc2UgQVNOMV9FVFlQRV9VVENfVElNRToKKwkgICAgICBpZiAocC0+dmFsdWUpCisJCXsK KwkJICBmcHJpbnRmIChvdXQsICIgIHZhbHVlOiIpOworCQkgIGZvciAoayA9IDA7IGsgPCBwLT52 YWx1ZV9sZW47IGsrKykKKwkJICAgIGZwcmludGYgKG91dCwgIiVjIiwgKHAtPnZhbHVlKVtrXSk7 CisJCX0KKwkgICAgICBicmVhazsKKwkgICAgY2FzZSBBU04xX0VUWVBFX0dFTkVSQUxTVFJJTkc6 CisJICAgIGNhc2UgQVNOMV9FVFlQRV9OVU1FUklDX1NUUklORzoKKwkgICAgY2FzZSBBU04xX0VU WVBFX0lBNV9TVFJJTkc6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9URUxFVEVYX1NUUklORzoKKwkg ICAgY2FzZSBBU04xX0VUWVBFX1BSSU5UQUJMRV9TVFJJTkc6CisJICAgIGNhc2UgQVNOMV9FVFlQ RV9VTklWRVJTQUxfU1RSSU5HOgorCSAgICBjYXNlIEFTTjFfRVRZUEVfVVRGOF9TVFJJTkc6CisJ ICAgIGNhc2UgQVNOMV9FVFlQRV9WSVNJQkxFX1NUUklORzoKKwkgICAgICBpZiAocC0+dmFsdWUp CisJCXsKKwkJICBsZW4yID0gLTE7CisJCSAgbGVuID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAocC0+ dmFsdWUsIHAtPnZhbHVlX2xlbiwgJmxlbjIpOworCQkgIGZwcmludGYgKG91dCwgIiAgdmFsdWU6 Iik7CisJCSAgaWYgKGxlbiA+IDApCisJCSAgICBmb3IgKGsgPSAwOyBrIDwgbGVuOyBrKyspCisJ CSAgICAgIGZwcmludGYgKG91dCwgIiVjIiwgKHAtPnZhbHVlKVtrICsgbGVuMl0pOworCQl9CisJ ICAgICAgYnJlYWs7CisJICAgIGNhc2UgQVNOMV9FVFlQRV9CTVBfU1RSSU5HOgorCSAgICBjYXNl IEFTTjFfRVRZUEVfT0NURVRfU1RSSU5HOgorCSAgICAgIGlmIChwLT52YWx1ZSkKKwkJeworCQkg IGxlbjIgPSAtMTsKKwkJICBsZW4gPSBhc24xX2dldF9sZW5ndGhfZGVyIChwLT52YWx1ZSwgcC0+ dmFsdWVfbGVuLCAmbGVuMik7CisJCSAgZnByaW50ZiAob3V0LCAiICB2YWx1ZToiKTsKKwkJICBp ZiAobGVuID4gMCkKKwkJICAgIGZvciAoayA9IDA7IGsgPCBsZW47IGsrKykKKwkJICAgICAgZnBy aW50ZiAob3V0LCAiJTAyeCIsICh1bnNpZ25lZCkgKHAtPnZhbHVlKVtrICsgbGVuMl0pOworCQl9 CisJICAgICAgYnJlYWs7CisJICAgIGNhc2UgQVNOMV9FVFlQRV9PQkpFQ1RfSUQ6CisJICAgICAg aWYgKHAtPnZhbHVlKQorCQlmcHJpbnRmIChvdXQsICIgIHZhbHVlOiVzIiwgcC0+dmFsdWUpOwor CSAgICAgIGJyZWFrOworCSAgICBjYXNlIEFTTjFfRVRZUEVfQU5ZOgorCSAgICAgIGlmIChwLT52 YWx1ZSkKKwkJeworCQkgIGxlbjMgPSAtMTsKKwkJICBsZW4yID0gYXNuMV9nZXRfbGVuZ3RoX2Rl ciAocC0+dmFsdWUsIHAtPnZhbHVlX2xlbiwgJmxlbjMpOworCQkgIGZwcmludGYgKG91dCwgIiAg dmFsdWU6Iik7CisJCSAgaWYgKGxlbjIgPiAwKQorCQkgICAgZm9yIChrID0gMDsgayA8IGxlbjI7 IGsrKykKKwkJICAgICAgZnByaW50ZiAob3V0LCAiJTAyeCIsICh1bnNpZ25lZCkgKHAtPnZhbHVl KVtrICsgbGVuM10pOworCQl9CisJICAgICAgYnJlYWs7CisJICAgIGNhc2UgQVNOMV9FVFlQRV9T RVQ6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9TRVRfT0Y6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9D SE9JQ0U6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9ERUZJTklUSU9OUzoKKwkgICAgY2FzZSBBU04x X0VUWVBFX1NFUVVFTkNFX09GOgorCSAgICBjYXNlIEFTTjFfRVRZUEVfU0VRVUVOQ0U6CisJICAg IGNhc2UgQVNOMV9FVFlQRV9OVUxMOgorCSAgICAgIGJyZWFrOworCSAgICBkZWZhdWx0OgorCSAg ICAgIGJyZWFrOworCSAgICB9CisJfQorCisgICAgICBpZiAobW9kZSA9PSBBU04xX1BSSU5UX0FM TCkKKwl7CisJICBpZiAocC0+dHlwZSAmIDB4MUZGRkZGMDApCisJICAgIHsKKwkgICAgICBmcHJp bnRmIChvdXQsICIgIGF0dHI6Iik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9VTklWRVJT QUwpCisJCWZwcmludGYgKG91dCwgIlVOSVZFUlNBTCwiKTsKKwkgICAgICBpZiAocC0+dHlwZSAm IENPTlNUX1BSSVZBVEUpCisJCWZwcmludGYgKG91dCwgIlBSSVZBVEUsIik7CisJICAgICAgaWYg KHAtPnR5cGUgJiBDT05TVF9BUFBMSUNBVElPTikKKwkJZnByaW50ZiAob3V0LCAiQVBQTElDQVRJ T04sIik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9FWFBMSUNJVCkKKwkJZnByaW50ZiAo b3V0LCAiRVhQTElDSVQsIik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9JTVBMSUNJVCkK KwkJZnByaW50ZiAob3V0LCAiSU1QTElDSVQsIik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05T VF9UQUcpCisJCWZwcmludGYgKG91dCwgIlRBRywiKTsKKwkgICAgICBpZiAocC0+dHlwZSAmIENP TlNUX0RFRkFVTFQpCisJCWZwcmludGYgKG91dCwgIkRFRkFVTFQsIik7CisJICAgICAgaWYgKHAt PnR5cGUgJiBDT05TVF9UUlVFKQorCQlmcHJpbnRmIChvdXQsICJUUlVFLCIpOworCSAgICAgIGlm IChwLT50eXBlICYgQ09OU1RfRkFMU0UpCisJCWZwcmludGYgKG91dCwgIkZBTFNFLCIpOworCSAg ICAgIGlmIChwLT50eXBlICYgQ09OU1RfTElTVCkKKwkJZnByaW50ZiAob3V0LCAiTElTVCwiKTsK KwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX01JTl9NQVgpCisJCWZwcmludGYgKG91dCwgIk1J Tl9NQVgsIik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9PUFRJT04pCisJCWZwcmludGYg KG91dCwgIk9QVElPTiwiKTsKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUXzFfUEFSQU0pCisJ CWZwcmludGYgKG91dCwgIjFfUEFSQU0sIik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9T SVpFKQorCQlmcHJpbnRmIChvdXQsICJTSVpFLCIpOworCSAgICAgIGlmIChwLT50eXBlICYgQ09O U1RfREVGSU5FRF9CWSkKKwkJZnByaW50ZiAob3V0LCAiREVGX0JZLCIpOworCSAgICAgIGlmIChw LT50eXBlICYgQ09OU1RfR0VORVJBTElaRUQpCisJCWZwcmludGYgKG91dCwgIkdFTkVSQUxJWkVE LCIpOworCSAgICAgIGlmIChwLT50eXBlICYgQ09OU1RfVVRDKQorCQlmcHJpbnRmIChvdXQsICJV VEMsIik7CisJICAgICAgaWYgKHAtPnR5cGUgJiBDT05TVF9TRVQpCisJCWZwcmludGYgKG91dCwg IlNFVCwiKTsKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX05PVF9VU0VEKQorCQlmcHJpbnRm IChvdXQsICJOT1RfVVNFRCwiKTsKKwkgICAgICBpZiAocC0+dHlwZSAmIENPTlNUX0FTU0lHTikK KwkJZnByaW50ZiAob3V0LCAiQVNTSUdOTUVOVCwiKTsKKwkgICAgfQorCX0KKworICAgICAgaWYg KG1vZGUgPT0gQVNOMV9QUklOVF9BTEwpCisJeworCSAgZnByaW50ZiAob3V0LCAiXG4iKTsKKwl9 CisgICAgICBlbHNlCisJeworCSAgc3dpdGNoICh0eXBlX2ZpZWxkIChwLT50eXBlKSkKKwkgICAg eworCSAgICBjYXNlIEFTTjFfRVRZUEVfQ09OU1RBTlQ6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9U QUc6CisJICAgIGNhc2UgQVNOMV9FVFlQRV9TSVpFOgorCSAgICAgIGJyZWFrOworCSAgICBkZWZh dWx0OgorCSAgICAgIGZwcmludGYgKG91dCwgIlxuIik7CisJICAgIH0KKwl9CisKKyAgICAgIGlm IChwLT5kb3duKQorCXsKKwkgIHAgPSBwLT5kb3duOworCSAgaW5kZW50ICs9IDI7CisJfQorICAg ICAgZWxzZSBpZiAocCA9PSByb290KQorCXsKKwkgIHAgPSBOVUxMOworCSAgYnJlYWs7CisJfQor ICAgICAgZWxzZSBpZiAocC0+cmlnaHQpCisJcCA9IHAtPnJpZ2h0OworICAgICAgZWxzZQorCXsK KwkgIHdoaWxlICgxKQorCSAgICB7CisJICAgICAgcCA9IF9hc24xX2ZpbmRfdXAgKHApOworCSAg ICAgIGlmIChwID09IHJvb3QpCisJCXsKKwkJICBwID0gTlVMTDsKKwkJICBicmVhazsKKwkJfQor CSAgICAgIGluZGVudCAtPSAyOworCSAgICAgIGlmIChwLT5yaWdodCkKKwkJeworCQkgIHAgPSBw LT5yaWdodDsKKwkJICBicmVhazsKKwkJfQorCSAgICB9CisJfQorICAgIH0KK30KKworCisKKy8q KgorICogYXNuMV9udW1iZXJfb2ZfZWxlbWVudHM6CisgKiBAZWxlbWVudDogcG9pbnRlciB0byB0 aGUgcm9vdCBvZiBhbiBBU04xIHN0cnVjdHVyZS4KKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiBhIHN1 Yi1zdHJ1Y3R1cmUgb2YgUk9PVC4KKyAqIEBudW06IHBvaW50ZXIgdG8gYW4gaW50ZWdlciB3aGVy ZSB0aGUgcmVzdWx0IHdpbGwgYmUgc3RvcmVkCisgKgorICogQ291bnRzIHRoZSBudW1iZXIgb2Yg ZWxlbWVudHMgb2YgYSBzdWItc3RydWN0dXJlIGNhbGxlZCBOQU1FIHdpdGgKKyAqIG5hbWVzIGVx dWFsIHRvICI/MSIsIj8yIiwgLi4uCisgKgorICogUmV0dXJuczogJUFTTjFfU1VDQ0VTUyBpZiBz dWNjZXNzZnVsLCAlQVNOMV9FTEVNRU5UX05PVF9GT1VORCBpZgorICogICBAbmFtZSBpcyBub3Qg a25vd24sICVBU04xX0dFTkVSSUNfRVJST1IgaWYgcG9pbnRlciBAbnVtIGlzICVOVUxMLgorICoq LworaW50Cithc24xX251bWJlcl9vZl9lbGVtZW50cyAoYXNuMV9ub2RlX2NvbnN0IGVsZW1lbnQs IGNvbnN0IGNoYXIgKm5hbWUsIGludCAqbnVtKQoreworICBhc24xX25vZGVfY29uc3Qgbm9kZSwg cDsKKworICBpZiAobnVtID09IE5VTEwpCisgICAgcmV0dXJuIEFTTjFfR0VORVJJQ19FUlJPUjsK KworICAqbnVtID0gMDsKKworICBub2RlID0gYXNuMV9maW5kX25vZGUgKGVsZW1lbnQsIG5hbWUp OworICBpZiAobm9kZSA9PSBOVUxMKQorICAgIHJldHVybiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5E OworCisgIHAgPSBub2RlLT5kb3duOworCisgIHdoaWxlIChwKQorICAgIHsKKyAgICAgIGlmIChw LT5uYW1lWzBdID09ICc/JykKKwkoKm51bSkrKzsKKyAgICAgIHAgPSBwLT5yaWdodDsKKyAgICB9 CisKKyAgcmV0dXJuIEFTTjFfU1VDQ0VTUzsKK30KKworCisvKioKKyAqIGFzbjFfZmluZF9zdHJ1 Y3R1cmVfZnJvbV9vaWQ6CisgKiBAZGVmaW5pdGlvbnM6IEFTTjEgZGVmaW5pdGlvbnMKKyAqIEBv aWRWYWx1ZTogdmFsdWUgb2YgdGhlIE9JRCB0byBzZWFyY2ggKGUuZy4gIjEuMi4zLjQiKS4KKyAq CisgKiBTZWFyY2ggdGhlIHN0cnVjdHVyZSB0aGF0IGlzIGRlZmluZWQganVzdCBhZnRlciBhbiBP SUQgZGVmaW5pdGlvbi4KKyAqCisgKiBSZXR1cm5zOiAlTlVMTCB3aGVuIEBvaWRWYWx1ZSBub3Qg Zm91bmQsIG90aGVyd2lzZSB0aGUgcG9pbnRlciB0byBhCisgKiAgIGNvbnN0YW50IHN0cmluZyB0 aGF0IGNvbnRhaW5zIHRoZSBlbGVtZW50IG5hbWUgZGVmaW5lZCBqdXN0IGFmdGVyCisgKiAgIHRo ZSBPSUQuCisgKiovCitjb25zdCBjaGFyICoKK2FzbjFfZmluZF9zdHJ1Y3R1cmVfZnJvbV9vaWQg KGFzbjFfbm9kZV9jb25zdCBkZWZpbml0aW9ucywKKwkJCSAgICAgIGNvbnN0IGNoYXIgKm9pZFZh bHVlKQoreworICBjaGFyIG5hbWVbMiAqIEFTTjFfTUFYX05BTUVfU0laRSArIDJdOworICBjaGFy IHZhbHVlW0FTTjFfTUFYX05BTUVfU0laRV07CisgIGFzbjFfbm9kZSBwOworICBpbnQgbGVuOwor ICBpbnQgcmVzdWx0OworICBjb25zdCBjaGFyICpkZWZpbml0aW9uc05hbWU7CisKKyAgaWYgKChk ZWZpbml0aW9ucyA9PSBOVUxMKSB8fCAob2lkVmFsdWUgPT0gTlVMTCkpCisgICAgcmV0dXJuIE5V TEw7CQkvKiBBU04xX0VMRU1FTlRfTk9UX0ZPVU5EOyAqLworCisgIGRlZmluaXRpb25zTmFtZSA9 IGRlZmluaXRpb25zLT5uYW1lOworCisgIC8qIHNlYXJjaCB0aGUgT0JKRUNUX0lEIGludG8gZGVm aW5pdGlvbnMgKi8KKyAgcCA9IGRlZmluaXRpb25zLT5kb3duOworICB3aGlsZSAocCkKKyAgICB7 CisgICAgICBpZiAoKHR5cGVfZmllbGQgKHAtPnR5cGUpID09IEFTTjFfRVRZUEVfT0JKRUNUX0lE KSAmJgorCSAgKHAtPnR5cGUgJiBDT05TVF9BU1NJR04pKQorCXsKKwkgIHNucHJpbnRmIChuYW1l LCBzaXplb2YgKG5hbWUpLCAiJXMuJXMiLCBkZWZpbml0aW9uc05hbWUsIHAtPm5hbWUpOworCisJ ICBsZW4gPSBBU04xX01BWF9OQU1FX1NJWkU7CisJICByZXN1bHQgPSBhc24xX3JlYWRfdmFsdWUg KGRlZmluaXRpb25zLCBuYW1lLCB2YWx1ZSwgJmxlbik7CisKKwkgIGlmICgocmVzdWx0ID09IEFT TjFfU1VDQ0VTUykgJiYgKCFzdHJjbXAgKG9pZFZhbHVlLCB2YWx1ZSkpKQorCSAgICB7CisJICAg ICAgcCA9IHAtPnJpZ2h0OworCSAgICAgIGlmIChwID09IE5VTEwpCS8qIHJlYWNoIHRoZSBlbmQg b2YgQVNOMSBkZWZpbml0aW9ucyAqLworCQlyZXR1cm4gTlVMTDsJLyogQVNOMV9FTEVNRU5UX05P VF9GT1VORDsgKi8KKworCSAgICAgIHJldHVybiBwLT5uYW1lOworCSAgICB9CisJfQorICAgICAg cCA9IHAtPnJpZ2h0OworICAgIH0KKworICByZXR1cm4gTlVMTDsJCQkvKiBBU04xX0VMRU1FTlRf Tk9UX0ZPVU5EOyAqLworfQorCisvKioKKyAqIGFzbjFfY29weV9ub2RlOgorICogQGRzdDogRGVz dGluYXRpb24gYXNuMSBub2RlLgorICogQGRzdF9uYW1lOiBGaWVsZCBuYW1lIGluIGRlc3RpbmF0 aW9uIG5vZGUuCisgKiBAc3JjOiBTb3VyY2UgYXNuMSBub2RlLgorICogQHNyY19uYW1lOiBGaWVs ZCBuYW1lIGluIHNvdXJjZSBub2RlLgorICoKKyAqIENyZWF0ZSBhIGRlZXAgY29weSBvZiBhIGFz bjFfbm9kZSB2YXJpYWJsZS4gVGhhdAorICogZnVuY3Rpb24gcmVxdWlyZXMgQGRzdCB0byBiZSBl eHBhbmRlZCB1c2luZyBhc24xX2NyZWF0ZV9lbGVtZW50KCkuCisgKgorICogUmV0dXJuczogUmV0 dXJuICVBU04xX1NVQ0NFU1Mgb24gc3VjY2Vzcy4KKyAqKi8KK2ludAorYXNuMV9jb3B5X25vZGUg KGFzbjFfbm9kZSBkc3QsIGNvbnN0IGNoYXIgKmRzdF9uYW1lLAorCQlhc24xX25vZGVfY29uc3Qg c3JjLCBjb25zdCBjaGFyICpzcmNfbmFtZSkKK3sKKyAgaW50IHJlc3VsdDsKKyAgYXNuMV9ub2Rl IGRzdF9ub2RlOworICB2b2lkICpkYXRhID0gTlVMTDsKKyAgaW50IHNpemUgPSAwOworCisgIHJl c3VsdCA9IGFzbjFfZGVyX2NvZGluZyAoc3JjLCBzcmNfbmFtZSwgTlVMTCwgJnNpemUsIE5VTEwp OworICBpZiAocmVzdWx0ICE9IEFTTjFfTUVNX0VSUk9SKQorICAgIHJldHVybiByZXN1bHQ7CisK KyAgZGF0YSA9IG1hbGxvYyAoc2l6ZSk7CisgIGlmIChkYXRhID09IE5VTEwpCisgICAgcmV0dXJu IEFTTjFfTUVNX0VSUk9SOworCisgIHJlc3VsdCA9IGFzbjFfZGVyX2NvZGluZyAoc3JjLCBzcmNf bmFtZSwgZGF0YSwgJnNpemUsIE5VTEwpOworICBpZiAocmVzdWx0ICE9IEFTTjFfU1VDQ0VTUykK KyAgICB7CisgICAgICBmcmVlIChkYXRhKTsKKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor CisgIGRzdF9ub2RlID0gYXNuMV9maW5kX25vZGUgKGRzdCwgZHN0X25hbWUpOworICBpZiAoZHN0 X25vZGUgPT0gTlVMTCkKKyAgICB7CisgICAgICBmcmVlIChkYXRhKTsKKyAgICAgIHJldHVybiBB U04xX0VMRU1FTlRfTk9UX0ZPVU5EOworICAgIH0KKworICByZXN1bHQgPSBhc24xX2Rlcl9kZWNv ZGluZyAoJmRzdF9ub2RlLCBkYXRhLCBzaXplLCBOVUxMKTsKKworICBmcmVlIChkYXRhKTsKKwor ICByZXR1cm4gcmVzdWx0OworfQorCisvKioKKyAqIGFzbjFfZHVwX25vZGU6CisgKiBAc3JjOiBT b3VyY2UgYXNuMSBub2RlLgorICogQHNyY19uYW1lOiBGaWVsZCBuYW1lIGluIHNvdXJjZSBub2Rl LgorICoKKyAqIENyZWF0ZSBhIGRlZXAgY29weSBvZiBhIGFzbjFfbm9kZSB2YXJpYWJsZS4gVGhp cyBmdW5jdGlvbgorICogd2lsbCByZXR1cm4gYW4gZXhhY3QgY29weSBvZiB0aGUgcHJvdmlkZWQg c3RydWN0dXJlLgorICoKKyAqIFJldHVybnM6IFJldHVybiAlTlVMTCBvbiBmYWlsdXJlLgorICoq LworYXNuMV9ub2RlCithc24xX2R1cF9ub2RlIChhc24xX25vZGVfY29uc3Qgc3JjLCBjb25zdCBj aGFyICpzcmNfbmFtZSkKK3sKKyAgcmV0dXJuIF9hc24xX2NvcHlfc3RydWN0dXJlMiAoc3JjLCBz cmNfbmFtZSk7Cit9CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9zdHJ1 Y3R1cmUuaCBiL2dydWItY29yZS9saWIvbGlidGFzbjEvbGliL3N0cnVjdHVyZS5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYjk3M2NlOTYzCi0tLSAvZGV2L251bGwKKysr IGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvc3RydWN0dXJlLmgKQEAgLTAsMCArMSw0NiBA QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRBU04xLgorICoKKyAqIFRo ZSBMSUJUQVNOMSBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0CisgKiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhp cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisg KiAwMjExMC0xMzAxLCBVU0EKKyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIEZpbGU6IHN0cnVjdHVyZS5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyogRGVzY3JpcHRpb246IGxpc3Qgb2YgZXhwb3J0ZWQgb2JqZWN0 IGJ5ICAgICAgICovCisvKiAgICJzdHJ1Y3R1cmUuYyIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCisjaWZuZGVmIF9TVFJVQ1RVUkVfSAorIyBkZWZpbmUgX1NUUlVDVFVSRV9ICisKKyMg aW5jbHVkZSAicGFyc2VyX2F1eC5oIgkvKiBsaXN0X3R5cGUgKi8KKworaW50IF9hc24xX2NyZWF0 ZV9zdGF0aWNfc3RydWN0dXJlIChhc24xX25vZGVfY29uc3QgcG9pbnRlciwKKwkJCQkgICBjaGFy ICpvdXRwdXRfZmlsZV9uYW1lLCBjaGFyICp2ZWN0b3JfbmFtZSk7CisKK2FzbjFfbm9kZSBfYXNu MV9jb3B5X3N0cnVjdHVyZTMgKGFzbjFfbm9kZV9jb25zdCBzb3VyY2Vfbm9kZSk7CisKK2FzbjFf bm9kZSBfYXNuMV9hZGRfc2luZ2xlX25vZGUgKHVuc2lnbmVkIGludCB0eXBlKTsKKworYXNuMV9u b2RlIF9hc24xX2ZpbmRfbGVmdCAoYXNuMV9ub2RlX2NvbnN0IG5vZGUpOworCitpbnQKK19hc24x X2RlbGV0ZV9zdHJ1Y3R1cmUgKGxpc3RfdHlwZSAqIGVfbGlzdCwgYXNuMV9ub2RlICogc3RydWN0 dXJlLAorCQkJdW5zaWduZWQgaW50IGZsYWdzKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9ncnVi LWNvcmUvbGliL2xpYnRhc24xL2xpYnRhc24xLmggYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xp YnRhc24xLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41MWNjNzg3OWYK LS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYnRhc24xLmgKQEAg LTAsMCArMSw2NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAyMiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSUJUQVNO MS4KKyAqCisgKiBMSUJUQVNOMSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZgorICogdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogTElCVEFTTjEg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cisg KiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggTElCVEFT TjE7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIElu Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKyAqIDAyMTEw LTEzMDEsIFVTQQorICoKKyAqLworCisvKioKKyAqIFNFQ1RJT046bGlidGFzbjEKKyAqIEBzaG9y dF9kZXNjcmlwdGlvbjogR05VIEFTTi4xIGxpYnJhcnkKKyAqCisgKiBUaGUgTGlidGFzbjEgbGli cmFyeSBwcm92aWRlcyBBYnN0cmFjdCBTeW50YXggTm90YXRpb24gT25lIChBU04uMSwgYXMKKyAq IHNwZWNpZmllZCBieSB0aGUgWC42ODAgSVRVLVQgcmVjb21tZW5kYXRpb24pIHBhcnNpbmcgYW5k IHN0cnVjdHVyZXMKKyAqIG1hbmFnZW1lbnQsIGFuZCBEaXN0aW5ndWlzaGVkIEVuY29kaW5nIFJ1 bGVzIChERVIsIGFzIHBlciBYLjY5MCkKKyAqIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmdW5jdGlv bnMuCisgKi8KKworCisjaWZuZGVmIExJQlRBU04xX0gKKyMgZGVmaW5lIExJQlRBU04xX0gKKwor IyBpZm5kZWYgQVNOMV9BUEkKKyMgIGlmIGRlZmluZWQgQVNOMV9CVUlMRElORyAmJiBkZWZpbmVk IEhBVkVfVklTSUJJTElUWSAmJiBIQVZFX1ZJU0lCSUxJVFkKKyMgICBkZWZpbmUgQVNOMV9BUEkg X19hdHRyaWJ1dGVfXygoX192aXNpYmlsaXR5X18oImRlZmF1bHQiKSkpCisjICBlbGlmIGRlZmlu ZWQgQVNOMV9CVUlMRElORyAmJiBkZWZpbmVkIF9NU0NfVkVSICYmICEgZGVmaW5lZCBBU04xX1NU QVRJQworIyAgIGRlZmluZSBBU04xX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyMgIGVsaWYg ZGVmaW5lZCBfTVNDX1ZFUiAmJiAhIGRlZmluZWQgQVNOMV9TVEFUSUMKKyMgICBkZWZpbmUgQVNO MV9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjICBlbHNlCisjICAgZGVmaW5lIEFTTjFfQVBJ CisjICBlbmRpZgorIyBlbmRpZgorCisjIGlmZGVmIF9fR05VQ19fCisjICBkZWZpbmUgX19MSUJU QVNOMV9DT05TVF9fICBfX2F0dHJpYnV0ZV9fKChjb25zdCkpCisjICBkZWZpbmUgX19MSUJUQVNO MV9QVVJFX18gIF9fYXR0cmlidXRlX18oKHB1cmUpKQorIyBlbHNlCisjICBkZWZpbmUgX19MSUJU QVNOMV9DT05TVF9fCisjICBkZWZpbmUgX19MSUJUQVNOMV9QVVJFX18KKyMgZW5kaWYKKworIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KKyMgaW5jbHVkZSA8dGltZS5oPgorIyBpbmNsdWRlIDxzdGRp by5oPgkJLyogZm9yIEZJTEUqICovCisKKyMgaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIK K3sKKyMgZW5kaWYKKworLyoqCisgKiBBU04xX1ZFUlNJT046CisgKgorICogVmVyc2lvbiBvZiB0 aGUgbGlicmFyeSBhcyBhIHN0cmluZy4KKyAqLworIyBkZWZpbmUgQVNOMV9WRVJTSU9OICI0LjE5 LjAiCisKKy8qKgorICogQVNOMV9WRVJTSU9OX01BSk9SOgorICoKKyAqIE1ham9yIHZlcnNpb24g bnVtYmVyIG9mIHRoZSBsaWJyYXJ5LgorICovCisjIGRlZmluZSBBU04xX1ZFUlNJT05fTUFKT1Ig NAorCisvKioKKyAqIEFTTjFfVkVSU0lPTl9NSU5PUjoKKyAqCisgKiBNaW5vciB2ZXJzaW9uIG51 bWJlciBvZiB0aGUgbGlicmFyeS4KKyAqLworIyBkZWZpbmUgQVNOMV9WRVJTSU9OX01JTk9SIDE5 CisKKy8qKgorICogQVNOMV9WRVJTSU9OX1BBVENIOgorICoKKyAqIFBhdGNoIHZlcnNpb24gbnVt YmVyIG9mIHRoZSBsaWJyYXJ5LgorICovCisjIGRlZmluZSBBU04xX1ZFUlNJT05fUEFUQ0ggMAor CisvKioKKyAqIEFTTjFfVkVSU0lPTl9OVU1CRVI6CisgKgorICogVmVyc2lvbiBudW1iZXIgb2Yg dGhlIGxpYnJhcnkgYXMgYSBudW1iZXIuCisgKi8KKyMgZGVmaW5lIEFTTjFfVkVSU0lPTl9OVU1C RVIgMHgwNDEzMDAKKworCisjIGlmIGRlZmluZWQgX19HTlVDX18gJiYgIWRlZmluZWQgQVNOMV9J TlRFUk5BTF9CVUlMRAorIyAgZGVmaW5lIF9BU04xX0dDQ19WRVJTSU9OIChfX0dOVUNfXyAqIDEw MDAwICsgX19HTlVDX01JTk9SX18gKiAxMDAgKyBfX0dOVUNfUEFUQ0hMRVZFTF9fKQorIyAgaWYg X0FTTjFfR0NDX1ZFUlNJT04gPj0gMzAxMDAKKyMgICBkZWZpbmUgX0FTTjFfR0NDX0FUVFJfREVQ UkVDQVRFRCBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKQorIyAgZW5kaWYKKyMgZW5k aWYKKworIyBpZm5kZWYgX0FTTjFfR0NDX0FUVFJfREVQUkVDQVRFRAorIyAgZGVmaW5lIF9BU04x X0dDQ19BVFRSX0RFUFJFQ0FURUQKKyMgZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworLyogRXJyb3JzIHJldHVybmVkIGJ5IGxpYnRhc24xIGZ1bmN0 aW9ucyAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIyBk ZWZpbmUgQVNOMV9TVUNDRVNTCQkJMAorIyBkZWZpbmUgQVNOMV9GSUxFX05PVF9GT1VORAkJMQor IyBkZWZpbmUgQVNOMV9FTEVNRU5UX05PVF9GT1VORAkJMgorIyBkZWZpbmUgQVNOMV9JREVOVElG SUVSX05PVF9GT1VORAkzCisjIGRlZmluZSBBU04xX0RFUl9FUlJPUgkJCTQKKyMgZGVmaW5lIEFT TjFfVkFMVUVfTk9UX0ZPVU5ECQk1CisjIGRlZmluZSBBU04xX0dFTkVSSUNfRVJST1IJCTYKKyMg ZGVmaW5lIEFTTjFfVkFMVUVfTk9UX1ZBTElECQk3CisjIGRlZmluZSBBU04xX1RBR19FUlJPUgkJ CTgKKyMgZGVmaW5lIEFTTjFfVEFHX0lNUExJQ0lUCQk5CisjIGRlZmluZSBBU04xX0VSUk9SX1RZ UEVfQU5ZCQkxMAorIyBkZWZpbmUgQVNOMV9TWU5UQVhfRVJST1IJCTExCisjIGRlZmluZSBBU04x X01FTV9FUlJPUgkJCTEyCisjIGRlZmluZSBBU04xX01FTV9BTExPQ19FUlJPUgkJMTMKKyMgZGVm aW5lIEFTTjFfREVSX09WRVJGTE9XCQkxNAorIyBkZWZpbmUgQVNOMV9OQU1FX1RPT19MT05HCQkx NQorIyBkZWZpbmUgQVNOMV9BUlJBWV9FUlJPUgkJMTYKKyMgZGVmaW5lIEFTTjFfRUxFTUVOVF9O T1RfRU1QVFkJCTE3CisjIGRlZmluZSBBU04xX1RJTUVfRU5DT0RJTkdfRVJST1IJMTgKKyMgZGVm aW5lIEFTTjFfUkVDVVJTSU9OCQkJMTkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKiBDb25zdGFudHMgdXNlZCBpbiBhc24xX3Zpc2l0X3RyZWUgKi8KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIyBkZWZpbmUgQVNOMV9QUklOVF9O QU1FCQkJMQorIyBkZWZpbmUgQVNOMV9QUklOVF9OQU1FX1RZUEUJCTIKKyMgZGVmaW5lIEFTTjFf UFJJTlRfTkFNRV9UWVBFX1ZBTFVFCTMKKyMgZGVmaW5lIEFTTjFfUFJJTlRfQUxMCQkJNAorCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBDb25zdGFudHMg cmV0dXJuZWQgYnkgYXNuMV9yZWFkX3RhZyAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisjIGRlZmluZSBBU04xX0NMQVNTX1VOSVZFUlNBTAkJMHgwMAkv KiBvbGQ6IDEgKi8KKyMgZGVmaW5lIEFTTjFfQ0xBU1NfQVBQTElDQVRJT04JCTB4NDAJLyogb2xk OiAyICovCisjIGRlZmluZSBBU04xX0NMQVNTX0NPTlRFWFRfU1BFQ0lGSUMJMHg4MAkvKiBvbGQ6 IDMgKi8KKyMgZGVmaW5lIEFTTjFfQ0xBU1NfUFJJVkFURQkJMHhDMAkvKiBvbGQ6IDQgKi8KKyMg ZGVmaW5lIEFTTjFfQ0xBU1NfU1RSVUNUVVJFRAkJMHgyMAorCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCisvKiBDb25zdGFudHMgcmV0dXJuZWQgYnkgYXNuMV9y ZWFkX3RhZyAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisjIGRlZmluZSBBU04xX1RBR19CT09MRUFOCQkweDAxCisjIGRlZmluZSBBU04xX1RBR19JTlRF R0VSCQkweDAyCisjIGRlZmluZSBBU04xX1RBR19TRVFVRU5DRQkJMHgxMAorIyBkZWZpbmUgQVNO MV9UQUdfU0VUCQkJMHgxMQorIyBkZWZpbmUgQVNOMV9UQUdfT0NURVRfU1RSSU5HCQkweDA0Cisj IGRlZmluZSBBU04xX1RBR19CSVRfU1RSSU5HCQkweDAzCisjIGRlZmluZSBBU04xX1RBR19VVENU aW1lCQkweDE3CisjIGRlZmluZSBBU04xX1RBR19HRU5FUkFMSVpFRFRpbWUJMHgxOAorIyBkZWZp bmUgQVNOMV9UQUdfT0JKRUNUX0lECQkweDA2CisjIGRlZmluZSBBU04xX1RBR19FTlVNRVJBVEVE CQkweDBBCisjIGRlZmluZSBBU04xX1RBR19OVUxMCQkJMHgwNQorIyBkZWZpbmUgQVNOMV9UQUdf R0VORVJBTFNUUklORwkJMHgxQgorIyBkZWZpbmUgQVNOMV9UQUdfTlVNRVJJQ19TVFJJTkcJCTB4 MTIKKyMgZGVmaW5lIEFTTjFfVEFHX0lBNV9TVFJJTkcJCTB4MTYKKyMgZGVmaW5lIEFTTjFfVEFH X1RFTEVURVhfU1RSSU5HCQkweDE0CisjIGRlZmluZSBBU04xX1RBR19QUklOVEFCTEVfU1RSSU5H CTB4MTMKKyMgZGVmaW5lIEFTTjFfVEFHX1VOSVZFUlNBTF9TVFJJTkcJMHgxQworIyBkZWZpbmUg QVNOMV9UQUdfQk1QX1NUUklORwkJMHgxRQorIyBkZWZpbmUgQVNOMV9UQUdfVVRGOF9TVFJJTkcJ CTB4MEMKKyMgZGVmaW5lIEFTTjFfVEFHX1ZJU0lCTEVfU1RSSU5HCQkweDFBCisKKy8qKgorICog YXNuMV9ub2RlOgorICoKKyAqIFN0cnVjdHVyZSBkZWZpbml0aW9uIHVzZWQgZm9yIHRoZSBub2Rl IG9mIHRoZSB0cmVlCisgKiB0aGF0IHJlcHJlc2VudHMgYW4gQVNOLjEgREVGSU5JVElPTi4KKyAq LworICB0eXBlZGVmIHN0cnVjdCBhc24xX25vZGVfc3QgYXNuMV9ub2RlX3N0OworCisgIHR5cGVk ZWYgYXNuMV9ub2RlX3N0ICphc24xX25vZGU7CisgIHR5cGVkZWYgY29uc3QgYXNuMV9ub2RlX3N0 ICphc24xX25vZGVfY29uc3Q7CisKKy8qKgorICogQVNOMV9NQVhfTkFNRV9TSVpFOgorICoKKyAq IE1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgb2YgYSBuYW1lCisgKiBpbnNpZGUgYSBmaWxl IHdpdGggQVNOMSBkZWZpbml0aW9ucy4KKyAqLworIyBkZWZpbmUgQVNOMV9NQVhfTkFNRV9TSVpF IDY0CisKKworLyoqCisgKiBhc24xX3N0YXRpY19ub2RlOgorICogQG5hbWU6IE5vZGUgbmFtZQor ICogQHR5cGU6IE5vZGUgdHlwCisgKiBAdmFsdWU6IE5vZGUgdmFsdWUKKyAqCisgKiBGb3IgdGhl IG9uLWRpc2sgZm9ybWF0IG9mIEFTTi4xIHRyZWVzLCBjcmVhdGVkIGJ5IGFzbjFfcGFyc2VyMmFy cmF5KCkuCisgKi8KKyAgdHlwZWRlZiBzdHJ1Y3QgYXNuMV9zdGF0aWNfbm9kZV9zdAorICB7Cisg ICAgY29uc3QgY2hhciAqbmFtZTsJCS8qIE5vZGUgbmFtZSAqLworICAgIHVuc2lnbmVkIGludCB0 eXBlOwkJLyogTm9kZSB0eXBlICovCisgICAgY29uc3Qgdm9pZCAqdmFsdWU7CQkvKiBOb2RlIHZh bHVlICovCisgIH0gYXNuMV9zdGF0aWNfbm9kZTsKKworLyogTGlzdCBvZiBjb25zdGFudHMgZm9y IGZpZWxkIHR5cGUgb2YgYXNuMV9zdGF0aWNfbm9kZSAqLworIyBkZWZpbmUgQVNOMV9FVFlQRV9J TlZBTElEICAgICAgICAwCisjIGRlZmluZSBBU04xX0VUWVBFX0NPTlNUQU5UICAgICAgIDEKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfSURFTlRJRklFUiAgICAgMgorIyBkZWZpbmUgQVNOMV9FVFlQRV9J TlRFR0VSICAgICAgICAzCisjIGRlZmluZSBBU04xX0VUWVBFX0JPT0xFQU4gICAgICAgIDQKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfU0VRVUVOQ0UgICAgICAgNQorIyBkZWZpbmUgQVNOMV9FVFlQRV9C SVRfU1RSSU5HICAgICA2CisjIGRlZmluZSBBU04xX0VUWVBFX09DVEVUX1NUUklORyAgIDcKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfVEFHICAgICAgICAgICAgOAorIyBkZWZpbmUgQVNOMV9FVFlQRV9E RUZBVUxUICAgICAgICA5CisjIGRlZmluZSBBU04xX0VUWVBFX1NJWkUgICAgICAgICAgMTAKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfU0VRVUVOQ0VfT0YgICAxMQorIyBkZWZpbmUgQVNOMV9FVFlQRV9P QkpFQ1RfSUQgICAgIDEyCisjIGRlZmluZSBBU04xX0VUWVBFX0FOWSAgICAgICAgICAgMTMKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfU0VUICAgICAgICAgICAxNAorIyBkZWZpbmUgQVNOMV9FVFlQRV9T RVRfT0YgICAgICAgIDE1CisjIGRlZmluZSBBU04xX0VUWVBFX0RFRklOSVRJT05TICAgMTYKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfQ0hPSUNFICAgICAgICAxOAorIyBkZWZpbmUgQVNOMV9FVFlQRV9J TVBPUlRTICAgICAgIDE5CisjIGRlZmluZSBBU04xX0VUWVBFX05VTEwgICAgICAgICAgMjAKKyMg ZGVmaW5lIEFTTjFfRVRZUEVfRU5VTUVSQVRFRCAgICAyMQorIyBkZWZpbmUgQVNOMV9FVFlQRV9H RU5FUkFMU1RSSU5HIDI3CisjIGRlZmluZSBBU04xX0VUWVBFX05VTUVSSUNfU1RSSU5HIDI4Cisj IGRlZmluZSBBU04xX0VUWVBFX0lBNV9TVFJJTkcgICAgIDI5CisjIGRlZmluZSBBU04xX0VUWVBF X1RFTEVURVhfU1RSSU5HIDMwCisjIGRlZmluZSBBU04xX0VUWVBFX1BSSU5UQUJMRV9TVFJJTkcg MzEKKyMgZGVmaW5lIEFTTjFfRVRZUEVfVU5JVkVSU0FMX1NUUklORyAzMgorIyBkZWZpbmUgQVNO MV9FVFlQRV9CTVBfU1RSSU5HICAgICAzMworIyBkZWZpbmUgQVNOMV9FVFlQRV9VVEY4X1NUUklO RyAgICAzNAorIyBkZWZpbmUgQVNOMV9FVFlQRV9WSVNJQkxFX1NUUklORyAzNQorIyBkZWZpbmUg QVNOMV9FVFlQRV9VVENfVElNRSAgICAgICAzNgorIyBkZWZpbmUgQVNOMV9FVFlQRV9HRU5FUkFM SVpFRF9USU1FIDM3CisKKy8qKgorICogQVNOMV9ERUxFVEVfRkxBR19aRVJPSVpFOgorICoKKyAq IFVzZWQgYnk6IGFzbjFfZGVsZXRlX3N0cnVjdHVyZTIoKQorICoKKyAqIFplcm9pemUgdmFsdWVz IHByaW9yIHRvIGRlaW5pdGlhbGl6YXRpb24uCisgKi8KKyMgZGVmaW5lIEFTTjFfREVMRVRFX0ZM QUdfWkVST0laRSAxCisKKy8qKgorICogQVNOMV9ERUNPREVfRkxBR19BTExPV19QQURESU5HOgor ICoKKyAqIFVzZWQgYnk6IGFzbjFfZGVyX2RlY29kaW5nMigpCisgKgorICogVGhpcyBmbGFnIHdv dWxkIGFsbG93IGFyYml0cmFyeSBkYXRhIHBhc3QgdGhlIERFUiBkYXRhLgorICovCisjIGRlZmlu ZSBBU04xX0RFQ09ERV9GTEFHX0FMTE9XX1BBRERJTkcgMQorLyoqCisgKiBBU04xX0RFQ09ERV9G TEFHX1NUUklDVF9ERVI6CisgKgorICogVXNlZCBieTogYXNuMV9kZXJfZGVjb2RpbmcyKCkKKyAq CisgKiBUaGlzIGZsYWcgd291bGQgZW5zdXJlIHRoYXQgbm8gQkVSIGRlY29kaW5nIHRha2VzIHBs YWNlLgorICovCisjIGRlZmluZSBBU04xX0RFQ09ERV9GTEFHX1NUUklDVF9ERVIgKDE8PDEpCisv KioKKyAqIEFTTjFfREVDT0RFX0ZMQUdfQUxMT1dfSU5DT1JSRUNUX1RJTUU6CisgKgorICogVXNl ZCBieTogYXNuMV9kZXJfZGVjb2RpbmcyKCkKKyAqCisgKiBUaGlzIGZsYWcgd2lsbCB0b2xlcmF0 ZSBUaW1lIGVuY29kaW5nIGVycm9ycyB3aGVuIGluIHN0cmljdCBERVIuCisgKi8KKyMgZGVmaW5l IEFTTjFfREVDT0RFX0ZMQUdfQUxMT1dfSU5DT1JSRUNUX1RJTUUgKDE8PDIpCisKKyAgLyogKklO REVOVC1PRkYqICovCisKKy8qKgorICogYXNuMV9kYXRhX25vZGVfc3Q6CisgKiBAbmFtZTogTm9k ZSBuYW1lCisgKiBAdmFsdWU6IE5vZGUgdmFsdWUKKyAqIEB2YWx1ZV9sZW46IE5vZGUgdmFsdWUg c2l6ZQorICogQHR5cGU6IE5vZGUgdmFsdWUgdHlwZSAoQVNOMV9FVFlQRV8qKQorICoKKyAqIERh dGEgbm9kZSBpbnNpZGUgYSAjYXNuMV9ub2RlIHN0cnVjdHVyZS4KKyAqLworICBzdHJ1Y3QgYXNu MV9kYXRhX25vZGVfc3QKKyAgeworICAgIGNvbnN0IGNoYXIgKm5hbWU7CQkvKiBOb2RlIG5hbWUg Ki8KKyAgICBjb25zdCB2b2lkICp2YWx1ZTsJCS8qIE5vZGUgdmFsdWUgKi8KKyAgICB1bnNpZ25l ZCBpbnQgdmFsdWVfbGVuOwkvKiBOb2RlIHZhbHVlIHNpemUgKi8KKyAgICB1bnNpZ25lZCBpbnQg dHlwZTsJCS8qIE5vZGUgdmFsdWUgdHlwZSAoQVNOMV9FVFlQRV8qKSAqLworfTsKKworICAvKiAq SU5ERU5ULU9OKiAqLworCisgIHR5cGVkZWYgc3RydWN0IGFzbjFfZGF0YV9ub2RlX3N0IGFzbjFf ZGF0YV9ub2RlX3N0OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisv KiAgRml4ZWQgY29uc3RhbnRzICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisKKy8qKgorICogQVNOMV9NQVhfRVJST1JfREVTQ1JJUFRJT05f U0laRToKKyAqCisgKiBNYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzCisgKiBvZiBhIGRlc2Ny aXB0aW9uIG1lc3NhZ2UKKyAqIChudWxsIGNoYXJhY3RlciBpbmNsdWRlZCkuCisgKi8KKyMgZGVm aW5lIEFTTjFfTUFYX0VSUk9SX0RFU0NSSVBUSU9OX1NJWkUgMTI4CisKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KKy8qICBGdW5jdGlvbnMgZGVmaW5pdGlvbnMgICAgICAg ICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworICBleHRlcm4g QVNOMV9BUEkgaW50CisgICAgYXNuMV9wYXJzZXIydHJlZSAoY29uc3QgY2hhciAqZmlsZSwKKwkJ ICAgICAgYXNuMV9ub2RlICogZGVmaW5pdGlvbnMsIGNoYXIgKmVycm9yX2Rlc2MpOworCisgIGV4 dGVybiBBU04xX0FQSSBpbnQKKyAgICBhc24xX3BhcnNlcjJhcnJheSAoY29uc3QgY2hhciAqaW5w dXRGaWxlTmFtZSwKKwkJICAgICAgIGNvbnN0IGNoYXIgKm91dHB1dEZpbGVOYW1lLAorCQkgICAg ICAgY29uc3QgY2hhciAqdmVjdG9yTmFtZSwgY2hhciAqZXJyb3JfZGVzYyk7CisKKyAgZXh0ZXJu IEFTTjFfQVBJIGludAorICAgIGFzbjFfYXJyYXkydHJlZSAoY29uc3QgYXNuMV9zdGF0aWNfbm9k ZSAqIGFycmF5LAorCQkgICAgIGFzbjFfbm9kZSAqIGRlZmluaXRpb25zLCBjaGFyICplcnJvckRl c2NyaXB0aW9uKTsKKworICBleHRlcm4gQVNOMV9BUEkgdm9pZAorICAgIGFzbjFfcHJpbnRfc3Ry dWN0dXJlIChGSUxFICogb3V0LCBhc24xX25vZGVfY29uc3Qgc3RydWN0dXJlLAorCQkJICBjb25z dCBjaGFyICpuYW1lLCBpbnQgbW9kZSk7CisKKyAgZXh0ZXJuIEFTTjFfQVBJIGludAorICAgIGFz bjFfY3JlYXRlX2VsZW1lbnQgKGFzbjFfbm9kZV9jb25zdCBkZWZpbml0aW9ucywKKwkJCSBjb25z dCBjaGFyICpzb3VyY2VfbmFtZSwgYXNuMV9ub2RlICogZWxlbWVudCk7CisKKyAgZXh0ZXJuIEFT TjFfQVBJIGludCBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmUgKGFzbjFfbm9kZSAqIHN0cnVjdHVyZSk7 CisKKyAgZXh0ZXJuIEFTTjFfQVBJIGludCBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmUyIChhc24xX25v ZGUgKiBzdHJ1Y3R1cmUsCisJCQkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CisKKyAgZXh0 ZXJuIEFTTjFfQVBJIGludAorICAgIGFzbjFfZGVsZXRlX2VsZW1lbnQgKGFzbjFfbm9kZSBzdHJ1 Y3R1cmUsIGNvbnN0IGNoYXIgKmVsZW1lbnRfbmFtZSk7CisKKyAgZXh0ZXJuIEFTTjFfQVBJIGlu dAorICAgIGFzbjFfd3JpdGVfdmFsdWUgKGFzbjFfbm9kZSBub2RlX3Jvb3QsIGNvbnN0IGNoYXIg Km5hbWUsCisJCSAgICAgIGNvbnN0IHZvaWQgKml2YWx1ZSwgaW50IGxlbik7CisKKyAgZXh0ZXJu IEFTTjFfQVBJIGludAorICAgIGFzbjFfcmVhZF92YWx1ZSAoYXNuMV9ub2RlX2NvbnN0IHJvb3Qs IGNvbnN0IGNoYXIgKm5hbWUsCisJCSAgICAgdm9pZCAqaXZhbHVlLCBpbnQgKmxlbik7CisKKyAg ZXh0ZXJuIEFTTjFfQVBJIGludAorICAgIGFzbjFfcmVhZF92YWx1ZV90eXBlIChhc24xX25vZGVf Y29uc3Qgcm9vdCwgY29uc3QgY2hhciAqbmFtZSwKKwkJCSAgdm9pZCAqaXZhbHVlLCBpbnQgKmxl biwgdW5zaWduZWQgaW50ICpldHlwZSk7CisKKyAgZXh0ZXJuIEFTTjFfQVBJIGludAorICAgIGFz bjFfcmVhZF9ub2RlX3ZhbHVlIChhc24xX25vZGVfY29uc3Qgbm9kZSwgYXNuMV9kYXRhX25vZGVf c3QgKiBkYXRhKTsKKworICBleHRlcm4gQVNOMV9BUEkgaW50CisgICAgYXNuMV9udW1iZXJfb2Zf ZWxlbWVudHMgKGFzbjFfbm9kZV9jb25zdCBlbGVtZW50LCBjb25zdCBjaGFyICpuYW1lLAorCQkJ ICAgICBpbnQgKm51bSk7CisKKyAgZXh0ZXJuIEFTTjFfQVBJIGludAorICAgIGFzbjFfZGVyX2Nv ZGluZyAoYXNuMV9ub2RlX2NvbnN0IGVsZW1lbnQsIGNvbnN0IGNoYXIgKm5hbWUsCisJCSAgICAg dm9pZCAqaWRlciwgaW50ICpsZW4sIGNoYXIgKkVycm9yRGVzY3JpcHRpb24pOworCisgIGV4dGVy biBBU04xX0FQSSBpbnQKKyAgICBhc24xX2Rlcl9kZWNvZGluZzIgKGFzbjFfbm9kZSAqIGVsZW1l bnQsIGNvbnN0IHZvaWQgKmlkZXIsCisJCQlpbnQgKm1heF9pZGVyX2xlbiwgdW5zaWduZWQgaW50 IGZsYWdzLAorCQkJY2hhciAqZXJyb3JEZXNjcmlwdGlvbik7CisKKyAgZXh0ZXJuIEFTTjFfQVBJ IGludAorICAgIGFzbjFfZGVyX2RlY29kaW5nIChhc24xX25vZGUgKiBlbGVtZW50LCBjb25zdCB2 b2lkICppZGVyLAorCQkgICAgICAgaW50IGlkZXJfbGVuLCBjaGFyICplcnJvckRlc2NyaXB0aW9u KTsKKworLyogRG8gbm90IHVzZS4gVXNlIGFzbjFfZGVyX2RlY29kaW5nKCkgaW5zdGVhZC4gKi8K KyAgZXh0ZXJuIEFTTjFfQVBJIGludAorICAgIGFzbjFfZGVyX2RlY29kaW5nX2VsZW1lbnQgKGFz bjFfbm9kZSAqIHN0cnVjdHVyZSwKKwkJCSAgICAgICBjb25zdCBjaGFyICplbGVtZW50TmFtZSwK KwkJCSAgICAgICBjb25zdCB2b2lkICppZGVyLCBpbnQgbGVuLAorCQkJICAgICAgIGNoYXIgKmVy cm9yRGVzY3JpcHRpb24pCisgICAgX0FTTjFfR0NDX0FUVFJfREVQUkVDQVRFRDsKKworICBleHRl cm4gQVNOMV9BUEkgaW50CisgICAgYXNuMV9kZXJfZGVjb2Rpbmdfc3RhcnRFbmQgKGFzbjFfbm9k ZSBlbGVtZW50LAorCQkJCWNvbnN0IHZvaWQgKmlkZXIsIGludCBpZGVyX2xlbiwKKwkJCQljb25z dCBjaGFyICpuYW1lX2VsZW1lbnQsCisJCQkJaW50ICpzdGFydCwgaW50ICplbmQpOworCisgIGV4 dGVybiBBU04xX0FQSSBpbnQKKyAgICBhc24xX2V4cGFuZF9hbnlfZGVmaW5lZF9ieSAoYXNuMV9u b2RlX2NvbnN0IGRlZmluaXRpb25zLAorCQkJCWFzbjFfbm9kZSAqIGVsZW1lbnQpOworCisgIGV4 dGVybiBBU04xX0FQSSBpbnQKKyAgICBhc24xX2V4cGFuZF9vY3RldF9zdHJpbmcgKGFzbjFfbm9k ZV9jb25zdCBkZWZpbml0aW9ucywKKwkJCSAgICAgIGFzbjFfbm9kZSAqIGVsZW1lbnQsCisJCQkg ICAgICBjb25zdCBjaGFyICpvY3RldE5hbWUsIGNvbnN0IGNoYXIgKm9iamVjdE5hbWUpOworCisg IGV4dGVybiBBU04xX0FQSSBpbnQKKyAgICBhc24xX3JlYWRfdGFnIChhc24xX25vZGVfY29uc3Qg cm9vdCwgY29uc3QgY2hhciAqbmFtZSwKKwkJICAgaW50ICp0YWdWYWx1ZSwgaW50ICpjbGFzc1Zh bHVlKTsKKworICBleHRlcm4gQVNOMV9BUEkgY29uc3QgY2hhciAqYXNuMV9maW5kX3N0cnVjdHVy ZV9mcm9tX29pZCAoYXNuMV9ub2RlX2NvbnN0CisJCQkJCQkJICAgIGRlZmluaXRpb25zLAorCQkJ CQkJCSAgICBjb25zdCBjaGFyCisJCQkJCQkJICAgICpvaWRWYWx1ZSk7CisKKyAgICBfX0xJQlRB U04xX1BVUkVfXworICAgIGV4dGVybiBBU04xX0FQSSBjb25zdCBjaGFyICphc24xX2NoZWNrX3Zl cnNpb24gKGNvbnN0IGNoYXIgKnJlcV92ZXJzaW9uKTsKKworICBfX0xJQlRBU04xX1BVUkVfXyBl eHRlcm4gQVNOMV9BUEkgY29uc3QgY2hhciAqYXNuMV9zdHJlcnJvciAoaW50IGVycm9yKTsKKwor ICBleHRlcm4gQVNOMV9BUEkgdm9pZCBhc24xX3BlcnJvciAoaW50IGVycm9yKTsKKworIyBkZWZp bmUgQVNOMV9NQVhfVEFHX1NJWkUgNAorIyBkZWZpbmUgQVNOMV9NQVhfTEVOR1RIX1NJWkUgOQor IyBkZWZpbmUgQVNOMV9NQVhfVExfU0laRSAoQVNOMV9NQVhfVEFHX1NJWkUrQVNOMV9NQVhfTEVO R1RIX1NJWkUpCisgIGV4dGVybiBBU04xX0FQSSBsb25nCisgICAgYXNuMV9nZXRfbGVuZ3RoX2Rl ciAoY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgZGVyX2xlbiwgaW50ICpsZW4pOworCisg IGV4dGVybiBBU04xX0FQSSBsb25nCisgICAgYXNuMV9nZXRfbGVuZ3RoX2JlciAoY29uc3QgdW5z aWduZWQgY2hhciAqYmVyLCBpbnQgYmVyX2xlbiwgaW50ICpsZW4pOworCisgIGV4dGVybiBBU04x X0FQSSB2b2lkCisgICAgYXNuMV9sZW5ndGhfZGVyICh1bnNpZ25lZCBsb25nIGludCBsZW4sIHVu c2lnbmVkIGNoYXIgKmRlciwgaW50ICpkZXJfbGVuKTsKKworLyogT3RoZXIgdXRpbGl0eSBmdW5j dGlvbnMuICovCisKKyAgZXh0ZXJuIEFTTjFfQVBJCisgICAgaW50IGFzbjFfZGVjb2RlX3NpbXBs ZV9kZXIgKHVuc2lnbmVkIGludCBldHlwZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLAorCQkJ CXVuc2lnbmVkIGludCBfZGVyX2xlbiwKKwkJCQljb25zdCB1bnNpZ25lZCBjaGFyICoqc3RyLAor CQkJCXVuc2lnbmVkIGludCAqc3RyX2xlbik7CisKKyAgZXh0ZXJuIEFTTjFfQVBJCisgICAgaW50 IGFzbjFfZGVjb2RlX3NpbXBsZV9iZXIgKHVuc2lnbmVkIGludCBldHlwZSwgY29uc3QgdW5zaWdu ZWQgY2hhciAqZGVyLAorCQkJCXVuc2lnbmVkIGludCBfZGVyX2xlbiwKKwkJCQl1bnNpZ25lZCBj aGFyICoqc3RyLAorCQkJCXVuc2lnbmVkIGludCAqc3RyX2xlbiwgdW5zaWduZWQgaW50ICpiZXJf bGVuKTsKKworICBleHRlcm4gQVNOMV9BUEkgaW50CisgICAgYXNuMV9lbmNvZGVfc2ltcGxlX2Rl ciAodW5zaWduZWQgaW50IGV0eXBlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzdHIsCisJCQkgICAg dW5zaWduZWQgaW50IHN0cl9sZW4sIHVuc2lnbmVkIGNoYXIgKnRsLAorCQkJICAgIHVuc2lnbmVk IGludCAqdGxfbGVuKTsKKworICBleHRlcm4gQVNOMV9BUEkgYXNuMV9ub2RlCisgICAgYXNuMV9m aW5kX25vZGUgKGFzbjFfbm9kZV9jb25zdCBwb2ludGVyLCBjb25zdCBjaGFyICpuYW1lKTsKKwor ICBleHRlcm4gQVNOMV9BUEkgaW50CisgICAgYXNuMV9jb3B5X25vZGUgKGFzbjFfbm9kZSBkc3Qs IGNvbnN0IGNoYXIgKmRzdF9uYW1lLAorCQkgICAgYXNuMV9ub2RlX2NvbnN0IHNyYywgY29uc3Qg Y2hhciAqc3JjX25hbWUpOworICBleHRlcm4gQVNOMV9BUEkgYXNuMV9ub2RlCisgICAgYXNuMV9k dXBfbm9kZSAoYXNuMV9ub2RlX2NvbnN0IHNyYywgY29uc3QgY2hhciAqc3JjX25hbWUpOworCisv KiBJbnRlcm5hbCBhbmQgbG93LWxldmVsIERFUiB1dGlsaXR5IGZ1bmN0aW9ucy4gKi8KKworICBl eHRlcm4gQVNOMV9BUEkgaW50CisgICAgYXNuMV9nZXRfdGFnX2RlciAoY29uc3QgdW5zaWduZWQg Y2hhciAqZGVyLCBpbnQgZGVyX2xlbiwKKwkJICAgICAgdW5zaWduZWQgY2hhciAqY2xzLCBpbnQg KmxlbiwgdW5zaWduZWQgbG9uZyAqdGFnKTsKKworICBleHRlcm4gQVNOMV9BUEkgdm9pZAorICAg IGFzbjFfb2N0ZXRfZGVyIChjb25zdCB1bnNpZ25lZCBjaGFyICpzdHIsIGludCBzdHJfbGVuLAor CQkgICAgdW5zaWduZWQgY2hhciAqZGVyLCBpbnQgKmRlcl9sZW4pOworCisgIGV4dGVybiBBU04x X0FQSSBpbnQKKyAgICBhc24xX2dldF9vY3RldF9kZXIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRl ciwgaW50IGRlcl9sZW4sCisJCQlpbnQgKnJldF9sZW4sIHVuc2lnbmVkIGNoYXIgKnN0ciwKKwkJ CWludCBzdHJfc2l6ZSwgaW50ICpzdHJfbGVuKTsKKworICBleHRlcm4gQVNOMV9BUEkgdm9pZCBh c24xX2JpdF9kZXIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50IGJpdF9sZW4sCisJCQkJ ICAgICB1bnNpZ25lZCBjaGFyICpkZXIsIGludCAqZGVyX2xlbik7CisKKyAgZXh0ZXJuIEFTTjFf QVBJIGludAorICAgIGFzbjFfZ2V0X2JpdF9kZXIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRlciwg aW50IGRlcl9sZW4sCisJCSAgICAgIGludCAqcmV0X2xlbiwgdW5zaWduZWQgY2hhciAqc3RyLAor CQkgICAgICBpbnQgc3RyX3NpemUsIGludCAqYml0X2xlbik7CisKKyAgZXh0ZXJuIEFTTjFfQVBJ IGludAorICAgIGFzbjFfZ2V0X29iamVjdF9pZF9kZXIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRl ciwKKwkJCSAgICBpbnQgZGVyX2xlbiwgaW50ICpyZXRfbGVuLAorCQkJICAgIGNoYXIgKnN0ciwg aW50IHN0cl9zaXplKTsKKworICBleHRlcm4gQVNOMV9BUEkgaW50CisgICAgYXNuMV9vYmplY3Rf aWRfZGVyIChjb25zdCBjaGFyICpzdHIsIHVuc2lnbmVkIGNoYXIgKmRlciwgaW50ICpkZXJfbGVu LAorCQkJdW5zaWduZWQgZmxhZ3MpOworCisvKiBDb21wYXRpYmlsaXR5IHR5cGVzICovCisKKy8q KgorICogYXNuMV9yZXRDb2RlOgorICoKKyAqIFR5cGUgZm9ybWVybHkgcmV0dXJuZWQgYnkgbGli dGFzbjEgZnVuY3Rpb25zLgorICoKKyAqIERlcHJlY2F0ZWQ6IDMuMDogVXNlIGludCBpbnN0ZWFk LgorICovCisgIHR5cGVkZWYgaW50IGFzbjFfcmV0Q29kZSBfQVNOMV9HQ0NfQVRUUl9ERVBSRUNB VEVEOworCisvKioKKyAqIG5vZGVfYXNuX3N0cnVjdDoKKyAqCisgKiBDb21wYXQgI2RlZmluZS4K KyAqCisgKiBEZXByZWNhdGVkOiAzLjA6IFVzZSAjYXNuMV9ub2RlIGluc3RlYWQuCisgKi8KKyMg aWZuZGVmIEFTTjFfRElTQUJMRV9ERVBSRUNBVEVECisjICBpZiBfQVNOMV9HQ0NfVkVSU0lPTiA+ PSAzMDEwMAorIyAgIGRlZmluZSBub2RlX2Fzbl9zdHJ1Y3QgX1ByYWdtYSAoIkdDQyB3YXJuaW5n IFwiJ25vZGVfYXNuX3N0cnVjdCcgbWFjcm8gaXMgZGVwcmVjYXRlZCwgdXNlICdhc24xX25vZGUn IGluc3RlYWQuXCIiKSBhc24xX25vZGVfc3QKKyMgIGVsc2UKKyMgICBkZWZpbmUgbm9kZV9hc25f c3RydWN0IGFzbjFfbm9kZV9zdAorIyAgZW5kaWYKKyMgZW5kaWYJCQkJLyogIUFTTjFfRElTQUJM RV9ERVBSRUNBVEVEICovCisKKy8qKgorICogbm9kZV9hc246CisgKgorICogQ29tcGF0ICNkZWZp bmUuCisgKgorICogRGVwcmVjYXRlZDogMy4wOiBVc2UgI2FzbjFfbm9kZSBpbnN0ZWFkLgorICov CisjIGlmbmRlZiBBU04xX0RJU0FCTEVfREVQUkVDQVRFRAorIyAgaWYgX0FTTjFfR0NDX1ZFUlNJ T04gPj0gMzAxMDAKKyMgICBkZWZpbmUgbm9kZV9hc24gX1ByYWdtYSAoIkdDQyB3YXJuaW5nIFwi J25vZGVfYXNuJyBtYWNybyBpcyBkZXByZWNhdGVkLCB1c2UgJ2FzbjFfbm9kZScgaW5zdGVhZC5c IiIpIGFzbjFfbm9kZV9zdAorIyAgZWxzZQorIyAgIGRlZmluZSBub2RlX2FzbiBhc24xX25vZGVf c3QKKyMgIGVuZGlmCisjIGVuZGlmCQkJCS8qICFBU04xX0RJU0FCTEVfREVQUkVDQVRFRCAqLwor CisvKioKKyAqIEFTTjFfVFlQRToKKyAqCisgKiBDb21wYXQgI2RlZmluZS4KKyAqCisgKiBEZXBy ZWNhdGVkOiAzLjA6IFVzZSAjYXNuMV9ub2RlIGluc3RlYWQuCisgKi8KKyMgaWZuZGVmIEFTTjFf RElTQUJMRV9ERVBSRUNBVEVECisjICBpZiBfQVNOMV9HQ0NfVkVSU0lPTiA+PSAzMDEwMAorIyAg IGRlZmluZSBBU04xX1RZUEUgX1ByYWdtYSAoIkdDQyB3YXJuaW5nIFwiJ0FTTjFfVFlQRScgbWFj cm8gaXMgZGVwcmVjYXRlZCwgdXNlICdhc24xX25vZGUnIGluc3RlYWQuXCIiKSBhc24xX25vZGUK KyMgIGVsc2UKKyMgICBkZWZpbmUgQVNOMV9UWVBFIGFzbjFfbm9kZQorIyAgZW5kaWYKKyMgZW5k aWYJCQkJLyogIUFTTjFfRElTQUJMRV9ERVBSRUNBVEVEICovCisKKy8qKgorICogQVNOMV9UWVBF X0VNUFRZOgorICoKKyAqIENvbXBhdCAjZGVmaW5lLgorICoKKyAqIERlcHJlY2F0ZWQ6IDMuMDog VXNlIE5VTEwgaW5zdGVhZC4KKyAqLworIyBpZm5kZWYgQVNOMV9ESVNBQkxFX0RFUFJFQ0FURUQK KyMgIGlmIF9BU04xX0dDQ19WRVJTSU9OID49IDMwMTAwCisjICAgZGVmaW5lIEFTTjFfVFlQRV9F TVBUWSBfUHJhZ21hICgiR0NDIHdhcm5pbmcgXCInQVNOMV9UWVBFX0VNUFRZJyBtYWNybyBpcyBk ZXByZWNhdGVkLCB1c2UgJ05VTEwnIGluc3RlYWQuXCIiKSBOVUxMCisjICBlbHNlCisjICAgZGVm aW5lIEFTTjFfVFlQRV9FTVBUWSBOVUxMCisjICBlbmRpZgorIyBlbmRpZgkJCQkvKiAhQVNOMV9E SVNBQkxFX0RFUFJFQ0FURUQgKi8KKworLyoqCisgKiBzdGF0aWNfc3RydWN0X2FzbjoKKyAqCisg KiBDb21wYXQgI2RlZmluZS4KKyAqCisgKiBEZXByZWNhdGVkOiAzLjA6IFVzZSAjYXNuMV9zdGF0 aWNfbm9kZSBpbnN0ZWFkLgorICovCisjIGlmbmRlZiBBU04xX0RJU0FCTEVfREVQUkVDQVRFRAor IyAgaWYgX0FTTjFfR0NDX1ZFUlNJT04gPj0gMzAxMDAKKyMgICBkZWZpbmUgc3RhdGljX3N0cnVj dF9hc24gX1ByYWdtYSAoIkdDQyB3YXJuaW5nIFwiJ3N0YXRpY19zdHJ1Y3RfYXNuJyBtYWNybyBp cyBkZXByZWNhdGVkLCB1c2UgJ2FzbjFfc3RhdGljX25vZGVfc3QnIGluc3RlYWQuXCIiKSBhc24x X3N0YXRpY19ub2RlX3N0CisjICBlbHNlCisjICAgZGVmaW5lIHN0YXRpY19zdHJ1Y3RfYXNuIGFz bjFfc3RhdGljX25vZGVfc3QKKyMgIGVuZGlmCisjIGVuZGlmCQkJCS8qICFBU04xX0RJU0FCTEVf REVQUkVDQVRFRCAqLworCisvKioKKyAqIEFTTjFfQVJSQVlfVFlQRToKKyAqCisgKiBDb21wYXQg I2RlZmluZS4KKyAqCisgKiBEZXByZWNhdGVkOiAzLjA6IFVzZSAjYXNuMV9zdGF0aWNfbm9kZSBp bnN0ZWFkLgorICovCisjIGlmbmRlZiBBU04xX0RJU0FCTEVfREVQUkVDQVRFRAorIyAgaWYgX0FT TjFfR0NDX1ZFUlNJT04gPj0gMzAxMDAKKyMgICBkZWZpbmUgQVNOMV9BUlJBWV9UWVBFIF9QcmFn bWEgKCJHQ0Mgd2FybmluZyBcIidBU04xX0FSUkFZX1RZUEUnIG1hY3JvIGlzIGRlcHJlY2F0ZWQs IHVzZSAnYXNuMV9zdGF0aWNfbm9kZScgaW5zdGVhZC5cIiIpIGFzbjFfc3RhdGljX25vZGUKKyMg IGVsc2UKKyMgICBkZWZpbmUgQVNOMV9BUlJBWV9UWVBFIGFzbjFfc3RhdGljX25vZGUKKyMgIGVu ZGlmCisjIGVuZGlmCQkJCS8qICFBU04xX0RJU0FCTEVfREVQUkVDQVRFRCAqLworCisvKioKKyAq IGFzbjFfc3RhdGljX25vZGVfdDoKKyAqCisgKiBDb21wYXQgI2RlZmluZS4KKyAqCisgKiBEZXBy ZWNhdGVkOiAzLjA6IFVzZSAjYXNuMV9zdGF0aWNfbm9kZSBpbnN0ZWFkLgorICovCisjIGlmbmRl ZiBBU04xX0RJU0FCTEVfREVQUkVDQVRFRAorIyAgaWYgX0FTTjFfR0NDX1ZFUlNJT04gPj0gMzAx MDAKKyMgICBkZWZpbmUgYXNuMV9zdGF0aWNfbm9kZV90IF9QcmFnbWEgKCJHQ0Mgd2FybmluZyBc Iidhc24xX3N0YXRpY19ub2RlX3QnIG1hY3JvIGlzIGRlcHJlY2F0ZWQsIHVzZSAnYXNuMV9zdGF0 aWNfbm9kZScgaW5zdGVhZC5cIiIpIGFzbjFfc3RhdGljX25vZGUKKyMgIGVsc2UKKyMgICBkZWZp bmUgYXNuMV9zdGF0aWNfbm9kZV90IGFzbjFfc3RhdGljX25vZGUKKyMgIGVuZGlmCisjIGVuZGlm CQkJCS8qICFBU04xX0RJU0FCTEVfREVQUkVDQVRFRCAqLworCisvKioKKyAqIG5vZGVfZGF0YV9z dHJ1Y3Q6CisgKgorICogQ29tcGF0ICNkZWZpbmUuCisgKgorICogRGVwcmVjYXRlZDogMy4wOiBV c2UgI2FzbjFfZGF0YV9ub2RlX3N0IGluc3RlYWQuCisgKi8KKyMgaWZuZGVmIEFTTjFfRElTQUJM RV9ERVBSRUNBVEVECisjICBpZiBfQVNOMV9HQ0NfVkVSU0lPTiA+PSAzMDEwMAorIyAgIGRlZmlu ZSBub2RlX2RhdGFfc3RydWN0IF9QcmFnbWEgKCJHQ0Mgd2FybmluZyBcIidub2RlX2RhdGFfc3Ry dWN0JyBtYWNybyBpcyBkZXByZWNhdGVkLCB1c2UgJ2FzbjFfZGF0YV9ub2RlX3N0JyBpbnN0ZWFk LlwiIikgYXNuMV9kYXRhX25vZGVfc3QKKyMgIGVsc2UKKyMgICBkZWZpbmUgbm9kZV9kYXRhX3N0 cnVjdCBhc24xX2RhdGFfbm9kZV9zdAorIyAgZW5kaWYKKyMgZW5kaWYJCQkJLyogIUFTTjFfRElT QUJMRV9ERVBSRUNBVEVEICovCisKKy8qKgorICogQVNOMV9EQVRBX05PREU6CisgKgorICogQ29t cGF0ICNkZWZpbmUuCisgKgorICogRGVwcmVjYXRlZDogMy4wOiBVc2UgI2FzbjFfZGF0YV9ub2Rl X3N0IGluc3RlYWQuCisgKi8KKyMgaWZuZGVmIEFTTjFfRElTQUJMRV9ERVBSRUNBVEVECisjICBp ZiBfQVNOMV9HQ0NfVkVSU0lPTiA+PSAzMDEwMAorIyAgIGRlZmluZSBBU04xX0RBVEFfTk9ERSBf UHJhZ21hICgiR0NDIHdhcm5pbmcgXCInYXNuMV9zdGF0aWNfbm9kZV90JyBtYWNybyBpcyBkZXBy ZWNhdGVkLCB1c2UgJ2FzbjFfc3RhdGljX25vZGUnIGluc3RlYWQuXCIiKSBhc24xX2RhdGFfbm9k ZV9zdAorIyAgZWxzZQorIyAgIGRlZmluZSBBU04xX0RBVEFfTk9ERSBhc24xX2RhdGFfbm9kZV9z dAorIyAgZW5kaWYKKyMgZW5kaWYJCQkJLyogIUFTTjFfRElTQUJMRV9ERVBSRUNBVEVEICovCisK KyMgaWZkZWYgX19jcGx1c3BsdXMKK30KKyMgZW5kaWYKKworI2VuZGlmCQkJCS8qIExJQlRBU04x X0ggKi8KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvQ1ZFLTIwMTgt MTAwMDY1NC0xX2FzbjFfdGFiLmggYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL0NWRS0y MDE4LTEwMDA2NTQtMV9hc24xX3RhYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uZTc5MzAxMzZjCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNu MS90ZXN0cy9DVkUtMjAxOC0xMDAwNjU0LTFfYXNuMV90YWIuaApAQCAtMCwwICsxLDMyIEBACisj aWYgSEFWRV9DT05GSUdfSAorIyBpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZgorCisjaW5jbHVk ZSA8bGlidGFzbjEuaD4KKworY29uc3QgYXNuMV9zdGF0aWNfbm9kZSBDVkVfMjAxOF8xMDAwNjU0 XzFfYXNuMV90YWJbXSA9IHsKKyAgeyAiVEVTVF9UUkVFIiwgNTM2ODc1MDI0LCBOVUxMIH0sCisg IHsgTlVMTCwgMTYxMDYxMjc0OCwgTlVMTCB9LAorICB7ICJpc28iLCAxMDczNzQxODI1LCAiMSJ9 LAorICB7ICJpZGVudGlmaWVkLW9yZ2FuaXphdGlvbiIsIDEwNzM3NDE4MjUsICIzIn0sCisgIHsg ImRvZCIsIDEwNzM3NDE4MjUsICI2In0sCisgIHsgImludGVybmV0IiwgMTA3Mzc0MTgyNSwgIjEi fSwKKyAgeyAic2VjdXJpdHkiLCAxMDczNzQxODI1LCAiNSJ9LAorICB7ICJtZWNoYW5pc21zIiwg MTA3Mzc0MTgyNSwgIjUifSwKKyAgeyAicGtpeCIsIDEwNzM3NDE4MjUsICI3In0sCisgIHsgImlk LW1vZCIsIDEwNzM3NDE4MjUsICIwIn0sCisgIHsgImlkLXBraXgxLWltcGxpY2l0LTg4IiwgMSwg IjIifSwKKyAgeyAiaWQteG55VGVzdCIsIDE4NzkwNDgyMDQsIE5VTEwgfSwKKyAgeyBOVUxMLCAx MDczNzQxODI1LCAiaWQtaXgifSwKKyAgeyBOVUxMLCAxMDczNzQxODI1LCAiMjkifSwKKyAgeyBO VUxMLCAxLCAiMSJ9LAorICB7ICJpZC1peCIsIDE4ODAwOTY3ODAsICJPQkpFQ1IifSwKKyAgeyBO VUxMLCAxMDczNzQxODI1LCAiaWQtaXgifSwKKyAgeyBOVUxMLCAxMDczNzQxODI1LCAiMjkifSwK KyAgeyBOVUxMLCAxLCAiMiJ9LAorICB7ICJpZC14bnlUZXN0IiwgODA1MzA2MzgwLCBOVUxMIH0s CisgIHsgTlVMTCwgMTA3Mzc0MTgyNSwgImlkLWl4In0sCisgIHsgTlVMTCwgMTA3Mzc0MTgyNSwg IjI5In0sCisgIHsgTlVMTCwgMSwgIjEifSwKKyAgeyBOVUxMLCAwLCBOVUxMIH0KK307CmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL0NWRS0yMDE4LTEwMDA2NTQtMl9h c24xX3RhYi5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9DVkUtMjAxOC0xMDAwNjU0 LTJfYXNuMV90YWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU4MTcw ZjVkNQotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvQ1ZF LTIwMTgtMTAwMDY1NC0yX2FzbjFfdGFiLmgKQEAgLTAsMCArMSwzNiBAQAorI2lmIEhBVkVfQ09O RklHX0gKKyMgaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnRhc24x Lmg+CisKK2NvbnN0IGFzbjFfc3RhdGljX25vZGUgQ1ZFXzIwMThfMTAwMDY1NF8yX2FzbjFfdGFi W10gPSB7CisgIHsgIlRFU1RfVFJFRSIsIDUzNjg3NTAyNCwgTlVMTCB9LAorICB7IE5VTEwsIDE2 MTA2MTI3NDgsIE5VTEwgfSwKKyAgeyAiaXNvIiwgMTA3Mzc0MTgyNSwgIjEifSwKKyAgeyAiaWRl bnRpZmllZC1vcmdhbml6YXRpb24iLCAxMDczNzQxODI1LCAiMyJ9LAorICB7ICJkb2QiLCAxMDcz NzQxODI1LCAiNiJ9LAorICB7ICJpbnRlcm5ldCIsIDEwNzM3NDE4MjUsICIxIn0sCisgIHsgInNl Y3VyaXR5IiwgMTA3Mzc0MTgyNSwgIjUifSwKKyAgeyAibWVjaGFuaXNtcyIsIDEwNzM3NDE4MjUs ICI1In0sCisgIHsgInBraXgiLCAxMDczNzQxODI1LCAiNyJ9LAorICB7ICJpZC1tb2QiLCAxMDcz NzQxODI1LCAiMCJ9LAorICB7ICJpZC1wa2l4MS1pbXBsaWNpdC04OCIsIDEsICIyIn0sCisgIHsg ImlkLW9uZVRlc3QiLCAxODc5MDQ4MjA0LCBOVUxMIH0sCisgIHsgTlVMTCwgMTA3Mzc0MTgyNSwg ImlkLXR3byJ9LAorICB7IE5VTEwsIDEwNzM3NDE4MjUsICI5In0sCisgIHsgTlVMTCwgMSwgIjEi fSwKKyAgeyAiaWQtdHdvIiwgMTg3OTA0ODIwNCwgTlVMTCB9LAorICB7IE5VTEwsIDEwNzM3NDE4 MjUsICJpZC10aHJlZSJ9LAorICB7IE5VTEwsIDEwNzM3NDE4MjUsICIyIn0sCisgIHsgTlVMTCwg MSwgIjIifSwKKyAgeyAiaWQtdGhyZWUiLCAxODc5MDQ4MjA0LCBOVUxMIH0sCisgIHsgTlVMTCwg MTA3Mzc0MTgyNSwgImlkLWZvdXIifSwKKyAgeyBOVUxMLCAxMDczNzQxODI1LCAiMyJ9LAorICB7 IE5VTEwsIDEsICIzIn0sCisgIHsgImlkLWZvdXIiLCA4MDUzMDYzODAsIE5VTEwgfSwKKyAgeyBO VUxMLCAxMDczNzQxODI1LCAiaWQtdHdvIn0sCisgIHsgTlVMTCwgMTA3Mzc0MTgyNSwgIjMifSwK KyAgeyBOVUxMLCAxLCAiMyJ9LAorICB7IE5VTEwsIDAsIE5VTEwgfQorfTsKZGlmZiAtLWdpdCBh L2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvQ1ZFLTIwMTgtMTAwMDY1NC5jIGIvZ3J1Yi1j b3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9DVkUtMjAxOC0xMDAwNjU0LmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi4wYzIyYjcwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9ncnVi LWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL0NWRS0yMDE4LTEwMDA2NTQuYwpAQCAtMCwwICsxLDcy IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgTElCVEFTTjEuCisgKgorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqCisgKi8KKworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBEZXNj cmlwdGlvbjogcmVwcm9kdWNlciBmb3IgQ1ZFLTIwMTgtMTAwMDY1NAkJCSovCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K KworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3Rk bGliLmg+CisjaW5jbHVkZSAiQ1ZFLTIwMTgtMTAwMDY1NC0xX2FzbjFfdGFiLmgiCisjaW5jbHVk ZSAiQ1ZFLTIwMTgtMTAwMDY1NC0yX2FzbjFfdGFiLmgiCisKK2ludAorbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKK3sKKyAgaW50IHJlc3VsdCwgdmVyYm9zZSA9IDA7CisgIGFzbjFfbm9k ZSBkZWZpbml0aW9ucyA9IE5VTEw7CisgIGNoYXIgZXJyb3JEZXNjcmlwdGlvbltBU04xX01BWF9F UlJPUl9ERVNDUklQVElPTl9TSVpFXTsKKworICBpZiAoYXJnYyA+IDEpCisgICAgdmVyYm9zZSA9 IDE7CisKKyAgcHJpbnRmICgiVGVzdCAxXG4iKTsKKworICByZXN1bHQgPQorICAgIGFzbjFfYXJy YXkydHJlZSAoQ1ZFXzIwMThfMTAwMDY1NF8xX2FzbjFfdGFiLCAmZGVmaW5pdGlvbnMsCisJCSAg ICAgZXJyb3JEZXNjcmlwdGlvbik7CisgIGlmIChyZXN1bHQgIT0gQVNOMV9SRUNVUlNJT04pCisg ICAgeworICAgICAgYXNuMV9wZXJyb3IgKHJlc3VsdCk7CisgICAgICBwcmludGYgKCJFcnJvckRl c2NyaXB0aW9uID0gJXNcblxuIiwgZXJyb3JEZXNjcmlwdGlvbik7CisgICAgICBleGl0ICgxKTsK KyAgICB9CisKKyAgYXNuMV9kZWxldGVfc3RydWN0dXJlICgmZGVmaW5pdGlvbnMpOworCisgIHBy aW50ZiAoIlRlc3QgMlxuIik7CisKKyAgcmVzdWx0ID0KKyAgICBhc24xX2FycmF5MnRyZWUgKENW RV8yMDE4XzEwMDA2NTRfMl9hc24xX3RhYiwgJmRlZmluaXRpb25zLAorCQkgICAgIGVycm9yRGVz Y3JpcHRpb24pOworICBpZiAocmVzdWx0ICE9IEFTTjFfUkVDVVJTSU9OKQorICAgIHsKKyAgICAg IGFzbjFfcGVycm9yIChyZXN1bHQpOworICAgICAgcHJpbnRmICgiRXJyb3JEZXNjcmlwdGlvbiA9 ICVzXG5cbiIsIGVycm9yRGVzY3JpcHRpb24pOworICAgICAgZXhpdCAoMSk7CisgICAgfQorCisg IGFzbjFfZGVsZXRlX3N0cnVjdHVyZSAoJmRlZmluaXRpb25zKTsKKworICBpZiAodmVyYm9zZSkK KyAgICBwcmludGYgKCJTdWNjZXNzXG4iKTsKKyAgZXhpdCAoMCk7Cit9CmRpZmYgLS1naXQgYS9n cnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL1Rlc3Rfb3ZlcmZsb3cuYyBiL2dydWItY29yZS9s aWIvbGlidGFzbjEvdGVzdHMvVGVzdF9vdmVyZmxvdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uYzYxZGVhNGJiCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xp Yi9saWJ0YXNuMS90ZXN0cy9UZXN0X292ZXJmbG93LmMKQEAgLTAsMCArMSwxNjggQEAKKy8qCisg KiBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSUJUQVNOMS4KKyAqCisgKiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorICoKKyAqLworCisvKiBXcml0dGVuIGJ5IFNpbW9uIEpvc2Vmc3Nv biAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRl IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKworI2luY2x1ZGUgImxpYnRhc24xLmgi CisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAvKiBUZXN0IHRoYXQg dmFsdWVzIGxhcmdlciB0aGFuIGxvbmcgYXJlIHJlamVjdGVkLiAgVGhpcyBoYXMgd29ya2VkCisg ICAgIGZpbmUgd2l0aCBhbGwgdmVyc2lvbnMgb2YgbGlidGFzbjEuICovCisgIGludCB2ZXJib3Nl ID0gMDsKKworICBpZiAoYXJnYyA+IDEpCisgICAgdmVyYm9zZSA9IDE7CisKKyAgeworICAgIHVu c2lnbmVkIGNoYXIgZGVyW10gPSAiXHhGRlx4RkZceEZGXHhGRlx4RkZceEZGXHhGRlx4RkZceEZG XHhGRiI7CisgICAgbG9uZyBsOworICAgIGludCBsZW47CisKKyAgICBsID0gYXNuMV9nZXRfbGVu Z3RoX2RlciAoZGVyLCBzaXplb2YgZGVyLCAmbGVuKTsKKworICAgIGlmIChsID09IC0yTCkKKyAg ICAgIHsKKwlpZiAodmVyYm9zZSkKKwkgIHB1dHMgKCJPSzogYXNuMV9nZXRfbGVuZ3RoX2RlciBi aWdudW0iKTsKKyAgICAgIH0KKyAgICBlbHNlCisgICAgICB7CisJcHJpbnRmICgiRVJST1I6IGFz bjFfZ2V0X2xlbmd0aF9kZXIgYmlnbnVtIChsICVsZCBsZW4gJWQpXG4iLCBsLCBsZW4pOworCXJl dHVybiAxOworICAgICAgfQorICB9CisKKyAgLyogVGVzdCB0aGF0IHZhbHVlcyBsYXJnZXIgdGhh biBpbnQgYnV0IHNtYWxsZXIgdGhhbiBsb25nIGFyZQorICAgICByZWplY3RlZC4gIFRoaXMgbGlt aXRhdGlvbiB3YXMgaW50cm9kdWNlZCB3aXRoIGxpYnRhc24xIDIuMTIuICovCisgIGlmIChMT05H X01BWCA+IElOVF9NQVgpCisgICAgeworICAgICAgdW5zaWduZWQgbG9uZyBudW0gPSAoKGxvbmcp IFVJTlRfTUFYKSA8PCAyOworICAgICAgdW5zaWduZWQgY2hhciBkZXJbMjBdOworICAgICAgaW50 IGRlcl9sZW47CisgICAgICBsb25nIGw7CisgICAgICBpbnQgbGVuOworCisgICAgICBhc24xX2xl bmd0aF9kZXIgKG51bSwgZGVyLCAmZGVyX2xlbik7CisKKyAgICAgIGwgPSBhc24xX2dldF9sZW5n dGhfZGVyIChkZXIsIGRlcl9sZW4sICZsZW4pOworCisgICAgICBpZiAobCA9PSAtMkwpCisJewor CSAgaWYgKHZlcmJvc2UpCisJICAgIHB1dHMgKCJPSzogYXNuMV9nZXRfbGVuZ3RoX2RlciBpbnRu dW0iKTsKKwl9CisgICAgICBlbHNlCisJeworCSAgcHJpbnRmICgiRVJST1I6IGFzbjFfZ2V0X2xl bmd0aF9kZXIgaW50bnVtIChsICVsZCBsZW4gJWQpXG4iLCBsLAorCQkgIGxlbik7CisJICByZXR1 cm4gMTsKKwl9CisgICAgfQorCisgIC8qIFRlc3QgdGhhdCB2YWx1ZXMgbGFyZ2VyIHRoYW4gd291 bGQgZml0IGluIHRoZSBpbnB1dCBzdHJpbmcgYXJlCisgICAgIHJlamVjdGVkLiAgVGhpcyBwcm9i bGVtIHdhcyBmaXhlZCBpbiBsaWJ0YXNuMSAyLjEyLiAqLworICB7CisgICAgdW5zaWduZWQgbG9u ZyBudW0gPSA2NDsKKyAgICB1bnNpZ25lZCBjaGFyIGRlclsyMF07CisgICAgaW50IGRlcl9sZW47 CisgICAgbG9uZyBsOworICAgIGludCBsZW47CisKKyAgICBhc24xX2xlbmd0aF9kZXIgKG51bSwg ZGVyLCAmZGVyX2xlbik7CisKKyAgICBkZXJfbGVuID0gc2l6ZW9mIChkZXIpOworICAgIGwgPSBh c24xX2dldF9sZW5ndGhfZGVyIChkZXIsIGRlcl9sZW4sICZsZW4pOworCisgICAgaWYgKGwgPT0g LTRMKQorICAgICAgeworCWlmICh2ZXJib3NlKQorCSAgcHV0cyAoIk9LOiBhc24xX2dldF9sZW5n dGhfZGVyIG92ZXJmbG93LXNtYWxsIik7CisgICAgICB9CisgICAgZWxzZQorICAgICAgeworCXBy aW50ZiAoIkVSUk9SOiBhc24xX2dldF9sZW5ndGhfZGVyIG92ZXJmbG93LXNtYWxsIChsICVsZCBs ZW4gJWQpXG4iLAorCQlsLCBsZW4pOworCXJldHVybiAxOworICAgICAgfQorICB9CisKKyAgLyog VGVzdCB0aGF0IHZhbHVlcyBsYXJnZXIgdGhhbiB3b3VsZCBmaXQgaW4gdGhlIGlucHV0IHN0cmlu ZyBhcmUKKyAgICAgcmVqZWN0ZWQuICBUaGlzIHByb2JsZW0gd2FzIGZpeGVkIGluIGxpYnRhc24x IDIuMTIuICovCisgIHsKKyAgICB1bnNpZ25lZCBsb25nIG51bSA9IDEwNzM3NDE4MjQ7CisgICAg dW5zaWduZWQgY2hhciBkZXJbMjBdOworICAgIGludCBkZXJfbGVuOworICAgIGxvbmcgbDsKKyAg ICBpbnQgbGVuOworCisgICAgYXNuMV9sZW5ndGhfZGVyIChudW0sIGRlciwgJmRlcl9sZW4pOwor CisgICAgZGVyX2xlbiA9IHNpemVvZiAoZGVyKTsKKyAgICBsID0gYXNuMV9nZXRfbGVuZ3RoX2Rl ciAoZGVyLCBkZXJfbGVuLCAmbGVuKTsKKworICAgIGlmIChsID09IC00TCkKKyAgICAgIHsKKwlp ZiAodmVyYm9zZSkKKwkgIHB1dHMgKCJPSzogYXNuMV9nZXRfbGVuZ3RoX2RlciBvdmVyZmxvdy1s YXJnZTEiKTsKKyAgICAgIH0KKyAgICBlbHNlCisgICAgICB7CisJcHJpbnRmICgiRVJST1I6IGFz bjFfZ2V0X2xlbmd0aF9kZXIgb3ZlcmZsb3ctbGFyZ2UxIChsICVsZCBsZW4gJWQpXG4iLAorCQls LCBsZW4pOworCXJldHVybiAxOworICAgICAgfQorICB9CisKKyAgLyogVGVzdCB0aGF0IHZhbHVl cyBsYXJnZXIgdGhhbiB3b3VsZCBmaXQgaW4gdGhlIGlucHV0IHN0cmluZyBhcmUKKyAgICAgcmVq ZWN0ZWQuICBUaGlzIHByb2JsZW0gd2FzIGZpeGVkIGluIGxpYnRhc24xIDIuMTIuICovCisgIHsK KyAgICB1bnNpZ25lZCBsb25nIG51bSA9IDIxNDc0ODM2NDk7CisgICAgdW5zaWduZWQgY2hhciBk ZXJbMjBdOworICAgIGludCBkZXJfbGVuOworICAgIGxvbmcgbDsKKyAgICBpbnQgbGVuOworCisg ICAgYXNuMV9sZW5ndGhfZGVyIChudW0sIGRlciwgJmRlcl9sZW4pOworCisgICAgZGVyX2xlbiA9 IHNpemVvZiAoZGVyKTsKKyAgICBsID0gYXNuMV9nZXRfbGVuZ3RoX2RlciAoZGVyLCBkZXJfbGVu LCAmbGVuKTsKKworICAgIGlmIChsID09IC0yTCkKKyAgICAgIHsKKwlpZiAodmVyYm9zZSkKKwkg IHB1dHMgKCJPSzogYXNuMV9nZXRfbGVuZ3RoX2RlciBvdmVyZmxvdy1sYXJnZTIiKTsKKyAgICAg IH0KKyAgICBlbHNlCisgICAgICB7CisJcHJpbnRmICgiRVJST1I6IGFzbjFfZ2V0X2xlbmd0aF9k ZXIgb3ZlcmZsb3ctbGFyZ2UyIChsICVsZCBsZW4gJWQpXG4iLAorCQlsLCBsZW4pOworCXJldHVy biAxOworICAgICAgfQorICB9CisKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ncnViLWNv cmUvbGliL2xpYnRhc24xL3Rlc3RzL1Rlc3Rfc2ltcGxlLmMgYi9ncnViLWNvcmUvbGliL2xpYnRh c24xL3Rlc3RzL1Rlc3Rfc2ltcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi42Y2QwN2UwNjkKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYnRhc24x L3Rlc3RzL1Rlc3Rfc2ltcGxlLmMKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg KEMpIDIwMTEtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqCisgKiBUaGlz IGZpbGUgaXMgcGFydCBvZiBMSUJUQVNOMS4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorICoKKyAqIFdyaXR0ZW4gYnkgU2ltb24gSm9zZWZzc29uCisgKgorICovCisKKyNpbmNs dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgor CisjaW5jbHVkZSAibGlidGFzbjEuaCIKKworc3RydWN0IHR2Cit7CisgIGludCBiaXRsZW47Cisg IGNvbnN0IGNoYXIgKmJpdHN0cjsKKyAgaW50IGRlcmxlbjsKKyAgY29uc3QgY2hhciAqZGVyOwor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB0diB0dltdID0geworICB7MCwgIiIsIDIsICJceDAx XHgwMCJ9LAorICB7MSwgIlx4MDAiLCAzLCAiXHgwMlx4MDdceDAwIn0sCisgIHsyLCAiXHgwMCIs IDMsICJceDAyXHgwNlx4MDAifSwKKyAgezMsICJceDAwIiwgMywgIlx4MDJceDA1XHgwMCJ9LAor ICB7NCwgIlx4MDAiLCAzLCAiXHgwMlx4MDRceDAwIn0sCisgIHs1LCAiXHgwMCIsIDMsICJceDAy XHgwM1x4MDAifSwKKyAgezYsICJceDAwIiwgMywgIlx4MDJceDAyXHgwMCJ9LAorICB7NywgIlx4 MDAiLCAzLCAiXHgwMlx4MDFceDAwIn0sCisgIHs4LCAiXHgwMFx4MDAiLCAzLCAiXHgwMlx4MDBc eDAwIn0sCisgIHs5LCAiXHgwMFx4MDAiLCA0LCAiXHgwM1x4MDdceDAwXHgwMCJ9LAorICB7MTAs ICJceDAwXHgwMCIsIDQsICJceDAzXHgwNlx4MDBceDAwIn0sCisgIHsxMSwgIlx4MDBceDAwIiwg NCwgIlx4MDNceDA1XHgwMFx4MDAifSwKKyAgezEyLCAiXHgwMFx4MDAiLCA0LCAiXHgwM1x4MDRc eDAwXHgwMCJ9LAorICB7MTMsICJceDAwXHgwMCIsIDQsICJceDAzXHgwM1x4MDBceDAwIn0sCisg IHsxNCwgIlx4MDBceDAwIiwgNCwgIlx4MDNceDAyXHgwMFx4MDAifSwKKyAgezE1LCAiXHgwMFx4 MDAiLCA0LCAiXHgwM1x4MDFceDAwXHgwMCJ9LAorICB7MTYsICJceDAwXHgwMCIsIDQsICJceDAz XHgwMFx4MDBceDAwIn0sCisgIHsxNywgIlx4MDBceDAwXHgwMCIsIDUsICJceDA0XHgwN1x4MDBc eDAwXHgwMCJ9LAorICB7MTgsICJceDAwXHgwMFx4MDAiLCA1LCAiXHgwNFx4MDZceDAwXHgwMFx4 MDAifSwKKyAgezE5LCAiXHgwMFx4MDBceDAwIiwgNSwgIlx4MDRceDA1XHgwMFx4MDBceDAwIn0s CisgIHsxLCAiXHhGRiIsIDMsICJceDAyXHgwN1x4ODAifSwKKyAgezIsICJceEZGIiwgMywgIlx4 MDJceDA2XHhjMCJ9LAorICB7MywgIlx4RkYiLCAzLCAiXHgwMlx4MDVceGUwIn0sCisgIHs0LCAi XHhGRiIsIDMsICJceDAyXHgwNFx4ZjAifSwKKyAgezUsICJceEZGIiwgMywgIlx4MDJceDAzXHhm OCJ9LAorICB7NiwgIlx4RkYiLCAzLCAiXHgwMlx4MDJceGZjIn0sCisgIHs3LCAiXHhGRiIsIDMs ICJceDAyXHgwMVx4ZmUifSwKKyAgezgsICJceEZGXHhGRiIsIDMsICJceDAyXHgwMFx4ZmYifSwK KyAgezksICJceEZGXHhGRiIsIDQsICJceDAzXHgwN1x4ZmZceDgwIn0sCisgIHsxMCwgIlx4RkZc eEZGIiwgNCwgIlx4MDNceDA2XHhmZlx4YzAifSwKKyAgezExLCAiXHhGRlx4RkYiLCA0LCAiXHgw M1x4MDVceGZmXHhlMCJ9LAorICB7MTIsICJceEZGXHhGRiIsIDQsICJceDAzXHgwNFx4ZmZceGYw In0sCisgIHsxMywgIlx4RkZceEZGIiwgNCwgIlx4MDNceDAzXHhmZlx4ZjgifSwKKyAgezE0LCAi XHhGRlx4RkYiLCA0LCAiXHgwM1x4MDJceGZmXHhmYyJ9LAorICB7MTUsICJceEZGXHhGRiIsIDQs ICJceDAzXHgwMVx4ZmZceGZlIn0sCisgIHsxNiwgIlx4RkZceEZGIiwgNCwgIlx4MDNceDAwXHhm Zlx4ZmYifSwKKyAgezE3LCAiXHhGRlx4RkZceEZGIiwgNSwgIlx4MDRceDA3XHhmZlx4ZmZceDgw In0sCisgIHsxOCwgIlx4RkZceEZGXHhGRiIsIDUsICJceDA0XHgwNlx4ZmZceGZmXHhjMCJ9LAor ICB7MTksICJceEZGXHhGRlx4RkYiLCA1LCAiXHgwNFx4MDVceGZmXHhmZlx4ZTAifSwKK307CisK K2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgaW50IHJlc3VsdDsKKyAg dW5zaWduZWQgY2hhciBkZXJbMTAwXTsKKyAgdW5zaWduZWQgY2hhciBzdHJbMTAwXTsKKyAgaW50 IGRlcl9sZW4gPSBzaXplb2YgKGRlcik7CisgIGludCBzdHJfc2l6ZSA9IHNpemVvZiAoc3RyKTsK KyAgaW50IHJldF9sZW4sIGJpdF9sZW47CisgIHNpemVfdCBpOworCisgIHsKKyAgICB1bnNpZ25l ZCBpbnQgZXR5cGUgPSAzODsKKyAgICB1bnNpZ25lZCBpbnQgbXlfc3RyX2xlbiA9IDEwOworICAg IHVuc2lnbmVkIGNoYXIgbXlfc3RyWzEwXTsKKyAgICB1bnNpZ25lZCBpbnQgdGxfbGVuID0gMTA7 CisgICAgdW5zaWduZWQgY2hhciB0bFsxMF07CisKKyAgICAvKiBodHRwczovL2dpdGxhYi5jb20v Z251dGxzL2xpYnRhc24xLy0vaXNzdWVzLzMyICovCisgICAgcmVzdWx0ID0gYXNuMV9lbmNvZGVf c2ltcGxlX2RlciAoZXR5cGUsIG15X3N0ciwgbXlfc3RyX2xlbiwgdGwsICZ0bF9sZW4pOworICAg IGlmIChyZXN1bHQgIT0gQVNOMV9WQUxVRV9OT1RfVkFMSUQpCisgICAgICB7CisJZnByaW50ZiAo c3RkZXJyLCAiYXNuMV9lbmNvZGVfc2ltcGxlX2RlciBvdXQgb2YgcmFuZ2UgZXR5cGVcbiIpOwor CXJldHVybiAxOworICAgICAgfQorICB9CisKKyAgLyogRHVtbXkgdGVzdCAqLworCisgIGFzbjFf Yml0X2RlciAoTlVMTCwgMCwgZGVyLCAmZGVyX2xlbik7CisgIHJlc3VsdCA9IGFzbjFfZ2V0X2Jp dF9kZXIgKGRlciwgMCwgJnJldF9sZW4sIHN0ciwgc3RyX3NpemUsICZiaXRfbGVuKTsKKyAgaWYg KHJlc3VsdCAhPSBBU04xX0dFTkVSSUNfRVJST1IpCisgICAgeworICAgICAgZnByaW50ZiAoc3Rk ZXJyLCAiYXNuMV9nZXRfYml0X2RlciB6ZXJvXG4iKTsKKyAgICAgIHJldHVybiAxOworICAgIH0K KworICAvKiBFbmNvZGUgc2hvcnQgc3RyaW5ncyB3aXRoIGluY3JlYXNpbmcgYml0IGxlbmd0aHMg Ki8KKworICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mICh0dikgLyBzaXplb2YgKHR2WzBdKTsgaSsr KQorICAgIHsKKyAgICAgIC8qIEVuY29kZSAqLworCisgICAgICBhc24xX2JpdF9kZXIgKChjb25z dCB1bnNpZ25lZCBjaGFyICopIHR2W2ldLmJpdHN0ciwgdHZbaV0uYml0bGVuLAorCQkgICAgZGVy LCAmZGVyX2xlbik7CisKKyNpZiAwCisgICAgICB7CisJc2l6ZV90IGo7CisJZm9yIChqID0gMDsg aiA8IGRlcl9sZW47IGorKykKKwkgIHByaW50ZiAoIlxceCUwMngiLCBkZXJbal0pOworCXByaW50 ZiAoIlxuIik7CisgICAgICB9CisjZW5kaWYKKworICAgICAgaWYgKGRlcl9sZW4gIT0gdHZbaV0u ZGVybGVuIHx8IG1lbWNtcCAoZGVyLCB0dltpXS5kZXIsIGRlcl9sZW4pICE9IDApCisJeworCSAg ZnByaW50ZiAoc3RkZXJyLCAiYXNuMV9iaXRfZGVyIGl0ZXIgJWx1XG4iLCAodW5zaWduZWQgbG9u ZykgaSk7CisJICByZXR1cm4gMTsKKwl9CisKKyAgICAgIC8qIERlY29kZSBpdCAqLworCisgICAg ICByZXN1bHQgPSBhc24xX2dldF9iaXRfZGVyIChkZXIsIGRlcl9sZW4sICZyZXRfbGVuLCBzdHIs CisJCQkJIHN0cl9zaXplLCAmYml0X2xlbik7CisgICAgICBpZiAocmVzdWx0ICE9IEFTTjFfU1VD Q0VTUyB8fCByZXRfbGVuICE9IHR2W2ldLmRlcmxlbgorCSAgfHwgYml0X2xlbiAhPSB0dltpXS5i aXRsZW4pCisJeworCSAgZnByaW50ZiAoc3RkZXJyLCAiYXNuMV9nZXRfYml0X2RlciBpdGVyICVs dSwgZXJyOiAlZFxuIiwKKwkJICAgKHVuc2lnbmVkIGxvbmcpIGksIHJlc3VsdCk7CisJICByZXR1 cm4gMTsKKwl9CisgICAgfQorCisKKyAgLyogRGVjb2RlIHNhbXBsZSBmcm9tICJBIExheW1hbidz IEd1aWRlIHRvIGEgU3Vic2V0IG9mIEFTTi4xLCBCRVIsCisgICAgIGFuZCBERVIiIHNlY3Rpb24g NS40ICJCSVQgU1RSSU5HIjogIlRoZSBCRVIgZW5jb2Rpbmcgb2YgdGhlIEJJVAorICAgICBTVFJJ TkcgdmFsdWUgIjAxMTAxMTEwMDEwMTExMDExMSIgY2FuIGJlIGFueSBvZiB0aGUgZm9sbG93aW5n LAorICAgICBhbW9uZyBvdGhlcnMsIGRlcGVuZGluZyBvbiB0aGUgY2hvaWNlIG9mIHBhZGRpbmcg Yml0cywgdGhlIGZvcm0KKyAgICAgb2YgbGVuZ3RoIG9jdGV0cyBbLi4uXSIuCisgICAqLworCisg IC8qIDAzIDA0IDA2IDZlIDVkIGMwICBERVIgZW5jb2RpbmcgKi8KKworICBtZW1jcHkgKGRlciwg Ilx4MDRceDA2XHg2ZVx4NWRceGMwIiwgNSk7CisgIGRlcl9sZW4gPSA1OworCisgIHJlc3VsdCA9 IGFzbjFfZ2V0X2JpdF9kZXIgKGRlciwgZGVyX2xlbiwgJnJldF9sZW4sIHN0ciwgc3RyX3NpemUs ICZiaXRfbGVuKTsKKyAgaWYgKHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MgfHwgcmV0X2xlbiAhPSA1 CisgICAgICB8fCBiaXRfbGVuICE9IDE4IHx8IG1lbWNtcCAoc3RyLCAiXHg2ZVx4NWRceGMwIiwg MykgIT0gMCkKKyAgICB7CisgICAgICBmcHJpbnRmIChzdGRlcnIsICJhc24xX2dldF9iaXRfZGVy IGV4YW1wbGVcbiIpOworICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgIGRlcl9sZW4gPSBzaXpl b2YgKGRlcik7CisgIGFzbjFfYml0X2RlciAoc3RyLCBiaXRfbGVuLCBkZXIsICZkZXJfbGVuKTsK KyAgaWYgKGRlcl9sZW4gIT0gNSB8fCBtZW1jbXAgKGRlciwgIlx4MDRceDA2XHg2ZVx4NWRceGMw IiwgNSkgIT0gMCkKKyAgICB7CisgICAgICBmcHJpbnRmIChzdGRlcnIsICJhc24xX2JpdF9kZXIg ZXhhbXBsZSByb3VuZHRyaXBcbiIpOworICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgIC8qIDAz IDA0IDA2IDZlIDVkIGUwIHBhZGRlZCB3aXRoICIxMDAwMDAiICovCisKKyAgbWVtY3B5IChkZXIs ICJceDA0XHgwNlx4NmVceDVkXHhlMCIsIDUpOworICBkZXJfbGVuID0gNTsKKworICByZXN1bHQg PSBhc24xX2dldF9iaXRfZGVyIChkZXIsIGRlcl9sZW4sICZyZXRfbGVuLCBzdHIsIHN0cl9zaXpl LCAmYml0X2xlbik7CisgIGlmIChyZXN1bHQgIT0gQVNOMV9TVUNDRVNTIHx8IHJldF9sZW4gIT0g NQorICAgICAgfHwgYml0X2xlbiAhPSAxOCB8fCBtZW1jbXAgKHN0ciwgIlx4NmVceDVkXHhlMCIs IDMpICE9IDApCisgICAgeworICAgICAgZnByaW50ZiAoc3RkZXJyLCAiYXNuMV9nZXRfYml0X2Rl ciBleGFtcGxlIHBhZGRlZFxuIik7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgZGVyX2xl biA9IHNpemVvZiAoZGVyKTsKKyAgYXNuMV9iaXRfZGVyIChzdHIsIGJpdF9sZW4sIGRlciwgJmRl cl9sZW4pOworICBpZiAoZGVyX2xlbiAhPSA1IHx8IG1lbWNtcCAoZGVyLCAiXHgwNFx4MDZceDZl XHg1ZFx4YzAiLCA1KSAhPSAwKQorICAgIHsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgImFzbjFf Yml0X2RlciBleGFtcGxlIHJvdW5kdHJpcFxuIik7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisK KyAgLyogMDMgODEgMDQgMDYgNmUgNWQgYzAgbG9uZyBmb3JtIG9mIGxlbmd0aCBvY3RldHMgKi8K KworICBtZW1jcHkgKGRlciwgIlx4ODFceDA0XHgwNlx4NmVceDVkXHhjMCIsIDYpOworICBkZXJf bGVuID0gNjsKKworICByZXN1bHQgPSBhc24xX2dldF9iaXRfZGVyIChkZXIsIGRlcl9sZW4sICZy ZXRfbGVuLCBzdHIsIHN0cl9zaXplLCAmYml0X2xlbik7CisKKyAgaWYgKHJlc3VsdCAhPSBBU04x X1NVQ0NFU1MgfHwgcmV0X2xlbiAhPSA2CisgICAgICB8fCBiaXRfbGVuICE9IDE4IHx8IG1lbWNt cCAoc3RyLCAiXHg2ZVx4NWRceGMwIiwgMykgIT0gMCkKKyAgICB7CisgICAgICBmcHJpbnRmIChz dGRlcnIsICJhc24xX2dldF9iaXRfZGVyIGV4YW1wbGUgbG9uZyBmb3JtXG4iKTsKKyAgICAgIHJl dHVybiAxOworICAgIH0KKworICBkZXJfbGVuID0gc2l6ZW9mIChkZXIpOworICBhc24xX2JpdF9k ZXIgKHN0ciwgYml0X2xlbiwgZGVyLCAmZGVyX2xlbik7CisgIGlmIChkZXJfbGVuICE9IDUgfHwg bWVtY21wIChkZXIsICJceDA0XHgwNlx4NmVceDVkXHhjMCIsIDUpICE9IDApCisgICAgeworICAg ICAgZnByaW50ZiAoc3RkZXJyLCAiYXNuMV9iaXRfZGVyIGV4YW1wbGUgcm91bmR0cmlwXG4iKTsK KyAgICAgIHJldHVybiAxOworICAgIH0KKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2dy dWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvVGVzdF9zdHJpbmdzLmMgYi9ncnViLWNvcmUvbGli L2xpYnRhc24xL3Rlc3RzL1Rlc3Rfc3RyaW5ncy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uMjdmNzIxNWUxCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9s aWJ0YXNuMS90ZXN0cy9UZXN0X3N0cmluZ3MuYwpAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENv cHlyaWdodCAoQykgMjAxMi0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoK KyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRBU04xLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg KiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisgKgorICogV3JpdHRlbiBieSBTaW1vbiBKb3NlZnNzb24KKyAqCisgKi8K KworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3Rk bGliLmg+CisKKyNpbmNsdWRlICJsaWJ0YXNuMS5oIgorCitzdHJ1Y3QgdHYKK3sKKyAgdW5zaWdu ZWQgaW50IGV0eXBlOworICB1bnNpZ25lZCBpbnQgc3RyX2xlbjsKKyAgY29uc3Qgdm9pZCAqc3Ry OworICB1bnNpZ25lZCBpbnQgZGVyX2xlbjsKKyAgY29uc3Qgdm9pZCAqZGVyOworfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCB0diB0dltdID0geworICB7QVNOMV9FVFlQRV9JQTVfU1RSSU5HLCAy MCwKKyAgICJceDYzXHg3M1x4NjNceDYxXHg0MFx4NzBceDYxXHg3M1x4NzNceDcwXHg2Zlx4NzJc eDc0XHgyZVx4NjdceDZmXHg3Nlx4MmVceDY3XHg3MiIsCisgICAyMiwKKyAgICJceDE2XHgxNFx4 NjNceDczXHg2M1x4NjFceDQwXHg3MFx4NjFceDczXHg3M1x4NzBceDZmXHg3Mlx4NzRceDJlXHg2 N1x4NmZceDc2XHgyZVx4NjdceDcyIn0sCisgIHtBU04xX0VUWVBFX1BSSU5UQUJMRV9TVFJJTkcs IDUsICJceDRlXHg2OVx4NmJceDZmXHg3MyIsCisgICA3LCAiXHgxM1x4MDVceDRlXHg2OVx4NmJc eDZmXHg3MyJ9LAorICB7QVNOMV9FVFlQRV9VVEY4X1NUUklORywgMTIsICLOkc+Ez4TOuc66zq4i LAorICAgMTQsICJceDBjXHgwY1x4Y2VceDkxXHhjZlx4ODRceGNmXHg4NFx4Y2VceGI5XHhjZVx4 YmFceGNlXHhhZSJ9LAorICB7QVNOMV9FVFlQRV9URUxFVEVYX1NUUklORywgMTUsCisgICAiXHg1 M1x4NjlceDZkXHg2Zlx4NmVceDIwXHg0YVx4NmZceDczXHg2NVx4NjZceDczXHg3M1x4NmZceDZl IiwKKyAgIDE3LAorICAgIlx4MTRceDBmXHg1M1x4NjlceDZkXHg2Zlx4NmVceDIwXHg0YVx4NmZc eDczXHg2NVx4NjZceDczXHg3M1x4NmZceDZlIn0sCisgIHtBU04xX0VUWVBFX09DVEVUX1NUUklO RywgMzYsCisgICAiXHgzMFx4MjJceDgwXHgwRlx4MzJceDMwXHgzMVx4MzFceDMwXHgzOFx4MzJc eDMxXHgzMFx4MzhceDMwXHgzMFx4MzBceDM2XHg1QVx4ODFceDBGXHgzMlx4MzBceDMxXHgzMVx4 MzBceDM4XHgzMlx4MzNceDMyXHgzMFx4MzVceDM5XHgzNVx4MzlceDVBIiwKKyAgIDM4LAorICAg Ilx4MDRceDI0XHgzMFx4MjJceDgwXHgwRlx4MzJceDMwXHgzMVx4MzFceDMwXHgzOFx4MzJceDMx XHgzMFx4MzhceDMwXHgzMFx4MzBceDM2XHg1QVx4ODFceDBGXHgzMlx4MzBceDMxXHgzMVx4MzBc eDM4XHgzMlx4MzNceDMyXHgzMFx4MzVceDM5XHgzNVx4MzlceDVBIn0KK307CisKKyNkZWZpbmUg U1NUUih4KSBzaXplb2YoeCktMSx4CitzdGF0aWMgY29uc3Qgc3RydWN0IHR2IGJlcltdID0gewor ICB7QVNOMV9FVFlQRV9PQ1RFVF9TVFJJTkcsCisgICBTU1RSICgiXHhhMFx4YTAiKSwKKyAgIFNT VFIgKCJceDI0XHg4MFx4MDRceDgyXHgwMFx4MDJceGEwXHhhMFx4MDBceDAwIil9LAorICB7QVNO MV9FVFlQRV9PQ1RFVF9TVFJJTkcsCisgICBTU1RSICgiXHhhMFx4YTBceGIwXHhiMFx4YjAiKSwK KyAgIFNTVFIKKyAgICgiXHgyNFx4ODBceDA0XHg4Mlx4MDBceDAyXHhhMFx4YTBceDA0XHg4Mlx4 MDBceDAzXHhiMFx4YjBceGIwXHgwMFx4MDAiKX0sCisgIHtBU04xX0VUWVBFX09DVEVUX1NUUklO RywKKyAgIFNTVFIgKCJceGEwXHhhMFx4YjBceGIwXHhiMFx4YTFceGExIiksCisgICBTU1RSCisg ICAoIlx4MjRceDgwXHgwNFx4ODJceDAwXHgwMlx4YTBceGEwXHgwNFx4ODJceDAwXHgwM1x4YjBc eGIwXHhiMFx4MjRceDgwXHgwNFx4ODJceDAwXHgwMlx4YTFceGExXHgwMFx4MDBceDAwXHgwMCIp fSwKKyAge0FTTjFfRVRZUEVfT0NURVRfU1RSSU5HLAorICAgU1NUUiAoIlx4YTBceGEwXHhiMFx4 YjBceGIwXHhhMVx4YTFceGMxIiksCisgICBTU1RSCisgICAoIlx4MjRceDgwXHgwNFx4ODJceDAw XHgwMlx4YTBceGEwXHgwNFx4ODJceDAwXHgwM1x4YjBceGIwXHhiMFx4MjRceDgwXHgwNFx4ODJc eDAwXHgwMlx4YTFceGExXHgwNFx4ODJceDAwXHgwMVx4YzFceDAwXHgwMFx4MDBceDAwIil9LAor fTsKKworaW50CittYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICBpbnQgcmV0Owor ICB1bnNpZ25lZCBjaGFyIHRsW0FTTjFfTUFYX1RMX1NJWkVdOworICB1bnNpZ25lZCBpbnQgdGxf bGVuLCBkZXJfbGVuLCBzdHJfbGVuOworICBjb25zdCB1bnNpZ25lZCBjaGFyICpzdHI7CisgIHVu c2lnbmVkIGNoYXIgKmI7CisgIHVuc2lnbmVkIGludCBpOworCisgIC8qIER1bW15IHRlc3QgKi8K KworICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mICh0dikgLyBzaXplb2YgKHR2WzBdKTsgaSsrKQor ICAgIHsKKyAgICAgIC8qIEVuY29kZSAqLworICAgICAgdGxfbGVuID0gc2l6ZW9mICh0bCk7Cisg ICAgICByZXQgPSBhc24xX2VuY29kZV9zaW1wbGVfZGVyICh0dltpXS5ldHlwZSwgdHZbaV0uc3Ry LCB0dltpXS5zdHJfbGVuLAorCQkJCSAgICB0bCwgJnRsX2xlbik7CisgICAgICBpZiAocmV0ICE9 IEFTTjFfU1VDQ0VTUykKKwl7CisJICBmcHJpbnRmIChzdGRlcnIsICJFbmNvZGluZyBlcnJvciBp biAldTogJXNcbiIsIGksCisJCSAgIGFzbjFfc3RyZXJyb3IgKHJldCkpOworCSAgcmV0dXJuIDE7 CisJfQorICAgICAgZGVyX2xlbiA9IHRsX2xlbiArIHR2W2ldLnN0cl9sZW47CisKKyAgICAgIGlm IChkZXJfbGVuICE9IHR2W2ldLmRlcl9sZW4gfHwgbWVtY21wICh0bCwgdHZbaV0uZGVyLCB0bF9s ZW4pICE9IDApCisJeworCSAgZnByaW50ZiAoc3RkZXJyLAorCQkgICAiREVSIGVuY29kaW5nIGRp ZmZlcnMgaW4gJXUhIChzaXplOiAldSwgZXhwZWN0ZWQ6ICV1KVxuIiwKKwkJICAgaSwgZGVyX2xl biwgdHZbaV0uZGVyX2xlbik7CisJICByZXR1cm4gMTsKKwl9CisKKyAgICAgIC8qIGRlY29kaW5n ICovCisgICAgICByZXQgPQorCWFzbjFfZGVjb2RlX3NpbXBsZV9kZXIgKHR2W2ldLmV0eXBlLCB0 dltpXS5kZXIsIHR2W2ldLmRlcl9sZW4sICZzdHIsCisJCQkJJnN0cl9sZW4pOworICAgICAgaWYg KHJldCAhPSBBU04xX1NVQ0NFU1MpCisJeworCSAgZnByaW50ZiAoc3RkZXJyLCAiRGVjb2Rpbmcg ZXJyb3IgaW4gJXU6ICVzXG4iLCBpLAorCQkgICBhc24xX3N0cmVycm9yIChyZXQpKTsKKwkgIHJl dHVybiAxOworCX0KKworICAgICAgaWYgKHN0cl9sZW4gIT0gdHZbaV0uc3RyX2xlbiB8fCBtZW1j bXAgKHN0ciwgdHZbaV0uc3RyLCBzdHJfbGVuKSAhPSAwKQorCXsKKwkgIGZwcmludGYgKHN0ZGVy ciwKKwkJICAgIkRFUiBkZWNvZGVkIGRhdGEgZGlmZmVyIGluICV1ISAoc2l6ZTogJXUsIGV4cGVj dGVkOiAldSlcbiIsCisJCSAgIGksIGRlcl9sZW4sIHR2W2ldLnN0cl9sZW4pOworCSAgcmV0dXJu IDE7CisJfQorICAgIH0KKworICAvKiBCRVIgZGVjb2RpbmcgKi8KKyAgZm9yIChpID0gMDsgaSA8 IHNpemVvZiAoYmVyKSAvIHNpemVvZiAoYmVyWzBdKTsgaSsrKQorICAgIHsKKyAgICAgIC8qIGRl Y29kaW5nICovCisgICAgICByZXQgPQorCWFzbjFfZGVjb2RlX3NpbXBsZV9iZXIgKGJlcltpXS5l dHlwZSwgYmVyW2ldLmRlciwgYmVyW2ldLmRlcl9sZW4sICZiLAorCQkJCSZzdHJfbGVuLCBOVUxM KTsKKyAgICAgIGlmIChyZXQgIT0gQVNOMV9TVUNDRVNTKQorCXsKKwkgIGZwcmludGYgKHN0ZGVy ciwgIkJFUiBkZWNvZGluZyBlcnJvciBpbiAldTogJXNcbiIsIGksCisJCSAgIGFzbjFfc3RyZXJy b3IgKHJldCkpOworCSAgcmV0dXJuIDE7CisJfQorCisgICAgICBpZiAoc3RyX2xlbiAhPSBiZXJb aV0uc3RyX2xlbiB8fCBtZW1jbXAgKGIsIGJlcltpXS5zdHIsIHN0cl9sZW4pICE9IDApCisJewor CSAgZnByaW50ZiAoc3RkZXJyLAorCQkgICAiQkVSIGRlY29kZWQgZGF0YSBkaWZmZXIgaW4gJXUh IChzaXplOiAldSwgZXhwZWN0ZWQ6ICV1KVxuIiwKKwkJICAgaSwgc3RyX2xlbiwgYmVyW2ldLnN0 cl9sZW4pOworCSAgcmV0dXJuIDE7CisJfQorICAgICAgZnJlZSAoYik7CisgICAgfQorCisKKyAg cmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL29i amVjdC1pZC1kZWNvZGluZy5jIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9vYmplY3Qt aWQtZGVjb2RpbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjA2YTZj NTJhMgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvb2Jq ZWN0LWlkLWRlY29kaW5nLmMKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp IDIwMTYgUmVkIEhhdCwgSW5jLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRBU04x LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKgorICovCisKKyNpbmNsdWRl IDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisj aW5jbHVkZSAibGlidGFzbjEuaCIKKworc3RydWN0IHR2Cit7CisgIGludCBkZXJfbGVuOworICBj b25zdCB1bnNpZ25lZCBjaGFyICpkZXI7CisgIGNvbnN0IGNoYXIgKm9pZDsKKyAgaW50IGV4cGVj dGVkX2Vycm9yOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB0diB0dltdID0geworICB7LmRl cl9sZW4gPSA1LAorICAgLmRlciA9ICh2b2lkICopICJceDA2XHgwM1x4ODBceDM3XHgwMyIsCisg ICAub2lkID0gIjIuOTk5LjMiLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9ERVJfRVJST1IJ LyogbGVhZGluZyAweDgwICovCisgICB9LAorICB7LmRlcl9sZW4gPSAxMiwKKyAgIC5kZXIgPSAo dm9pZCAqKSAiXHgwNlx4MGFceDJiXHgwNlx4MDFceDgwXHgwMVx4OTJceDA4XHgwOVx4MDVceDAx IiwKKyAgIC5vaWQgPSAiMS4zLjYuMS40LjEuMjMxMi45LjUuMSIsCisgICAuZXhwZWN0ZWRfZXJy b3IgPSBBU04xX0RFUl9FUlJPUgkvKiBsZWFkaW5nIDB4ODAgKi8KKyAgIH0sCisgIHsuZGVyX2xl biA9IDYsCisgICAuZGVyID0gKHZvaWQgKikgIlx4MDZceDA0XHgwMVx4MDJceDAzXHgwNCIsCisg ICAub2lkID0gIjAuMS4yLjMuNCIsCisgICAuZXhwZWN0ZWRfZXJyb3IgPSBBU04xX1NVQ0NFU1N9 LAorICB7LmRlcl9sZW4gPSA1LAorICAgLmRlciA9ICh2b2lkICopICJceDA2XHgwM1x4NTFceDAy XHgwMyIsCisgICAub2lkID0gIjIuMS4yLjMiLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9T VUNDRVNTfSwKKyAgey5kZXJfbGVuID0gNSwKKyAgIC5kZXIgPSAodm9pZCAqKSAiXHgwNlx4MDNc eDg4XHgzN1x4MDMiLAorICAgLm9pZCA9ICIyLjk5OS4zIiwKKyAgIC5leHBlY3RlZF9lcnJvciA9 IEFTTjFfU1VDQ0VTU30sCisgIHsuZGVyX2xlbiA9IDEyLAorICAgLmRlciA9ICh2b2lkICopICJc eDA2XHgwYVx4MmJceDA2XHgwMVx4MDRceDAxXHg5Mlx4MDhceDA5XHgwNVx4MDEiLAorICAgLm9p ZCA9ICIxLjMuNi4xLjQuMS4yMzEyLjkuNS4xIiwKKyAgIC5leHBlY3RlZF9lcnJvciA9IEFTTjFf U1VDQ0VTU30sCisgIHsuZGVyX2xlbiA9IDE5LAorICAgLmRlciA9CisgICAodm9pZCAqKQorICAg Ilx4MDZceDExXHhmYVx4ODBceDAwXHgwMFx4MDBceDBlXHgwMVx4MGVceGZhXHg4MFx4MDBceDAw XHgwMFx4MGVceDYzXHg2Zlx4NmQiLAorICAgLm9pZCA9ICIyLjE5OTg3NjguMC4wLjE0LjEuMTQu MTk5ODg0OC4wLjAuMTQuOTkuMTExLjEwOSIsCisgICAuZXhwZWN0ZWRfZXJyb3IgPSBBU04xX1NV Q0NFU1N9LAorICB7LmRlcl9sZW4gPSAxOSwKKyAgIC5kZXIgPQorICAgKHZvaWQgKikKKyAgICJc eDA2XHgxMVx4MmJceDA2XHgwMVx4MDRceDAxXHg5Mlx4MDhceDA5XHgwMlx4YWFceGRhXHhiZVx4 YmVceGZhXHg3Mlx4MDFceDA3IiwKKyAgIC5vaWQgPSAiMS4zLjYuMS40LjEuMjMxMi45LjIuMTQ2 NzM5OTI1NzQ1OC4xLjciLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9TVUNDRVNTfSwKK307 CisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgY2hhciBzdHJbMTI4 XTsKKyAgaW50IHJldCwgcmV0X2xlbjsKKyAgc2l6ZV90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8 IHNpemVvZiAodHYpIC8gc2l6ZW9mICh0dlswXSk7IGkrKykKKyAgICB7CisgICAgICAvKiBkZWNv ZGUgKi8KKyAgICAgIHJldCA9CisJYXNuMV9nZXRfb2JqZWN0X2lkX2RlciAodHZbaV0uZGVyICsg MSwKKwkJCQl0dltpXS5kZXJfbGVuIC0gMSwgJnJldF9sZW4sIHN0ciwKKwkJCQlzaXplb2YgKHN0 cikpOworICAgICAgaWYgKHJldCAhPSB0dltpXS5leHBlY3RlZF9lcnJvcikKKwl7CisJICBmcHJp bnRmIChzdGRlcnIsCisJCSAgICIlZDogYXNuMV9nZXRfb2JqZWN0X2lkX2RlciBpdGVyICVsdTog Z290ICclcycgZXhwZWN0ZWQgJWRcbiIsCisJCSAgIF9fTElORV9fLCAodW5zaWduZWQgbG9uZykg aSwgYXNuMV9zdHJlcnJvciAocmV0KSwKKwkJICAgdHZbaV0uZXhwZWN0ZWRfZXJyb3IpOworCSAg cmV0dXJuIDE7CisJfQorCisgICAgICBpZiAodHZbaV0uZXhwZWN0ZWRfZXJyb3IgIT0gQVNOMV9T VUNDRVNTKQorCWNvbnRpbnVlOworCisgICAgICBpZiAocmV0X2xlbiAhPSB0dltpXS5kZXJfbGVu IC0gMSkKKwl7CisJICBmcHJpbnRmIChzdGRlcnIsCisJCSAgICIlZDogaXRlciAlbHU6IGVycm9y IGluIERFUiwgbGVuZ3RoIHJldHVybmVkIGlzICVkLCBoYWQgJWRcbiIsCisJCSAgIF9fTElORV9f LCAodW5zaWduZWQgbG9uZykgaSwgcmV0X2xlbiwgdHZbaV0uZGVyX2xlbiAtIDEpOworCSAgcmV0 dXJuIDE7CisJfQorCisgICAgICBpZiAoc3RyY21wICh0dltpXS5vaWQsIHN0cikgIT0gMCkKKwl7 CisJICBmcHJpbnRmIChzdGRlcnIsCisJCSAgICIlZDogc3RyY21wIGl0ZXIgJWx1OiBnb3QgaW52 YWxpZCBPSUQ6ICVzLCBleHBlY3RlZDogJXNcbiIsCisJCSAgIF9fTElORV9fLCAodW5zaWduZWQg bG9uZykgaSwgc3RyLCB0dltpXS5vaWQpOworCSAgcmV0dXJuIDE7CisJfQorCisgICAgfQorCisg IHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9v YmplY3QtaWQtZW5jb2RpbmcuYyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvb2JqZWN0 LWlkLWVuY29kaW5nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4xYTMz OTY5ODYKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL29i amVjdC1pZC1lbmNvZGluZy5jCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChD KSAyMDE5IE5pa29zIE1hdnJvZ2lhbm5vcG91bG9zCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgTElCVEFTTjEuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqCisgKi8K KworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3Rk bGliLmg+CisKKyNpbmNsdWRlICJsaWJ0YXNuMS5oIgorCitzdHJ1Y3QgdHYKK3sKKyAgaW50IGRl cl9sZW47CisgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRlcjsKKyAgY29uc3QgY2hhciAqb2lkOwor ICBpbnQgZXhwZWN0ZWRfZXJyb3I7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHR2IHR2W10g PSB7CisgIHsuZGVyX2xlbiA9IDAsCisgICAuZGVyID0gKHZvaWQgKikgIiIsCisgICAub2lkID0g IjUuOTk5LjMiLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9WQUxVRV9OT1RfVkFMSUQJLyog Y2Fubm90IHN0YXJ0IHdpdGggNSAqLworICAgfSwKKyAgey5kZXJfbGVuID0gMCwKKyAgIC5kZXIg PSAodm9pZCAqKSAiIiwKKyAgIC5vaWQgPSAiMC40OC45IiwKKyAgIC5leHBlY3RlZF9lcnJvciA9 IEFTTjFfVkFMVUVfTk9UX1ZBTElECS8qIHNlY29uZCBmaWVsZCBjYW5ub3QgYmUgNDggKi8KKyAg IH0sCisgIHsuZGVyX2xlbiA9IDAsCisgICAuZGVyID0gKHZvaWQgKikgIiIsCisgICAub2lkID0g IjEuNDAuOSIsCisgICAuZXhwZWN0ZWRfZXJyb3IgPSBBU04xX1ZBTFVFX05PVF9WQUxJRAkvKiBz ZWNvbmQgZmllbGQgY2Fubm90IGJlIDQwICovCisgICB9LAorICB7LmRlcl9sZW4gPSA0LAorICAg LmRlciA9ICh2b2lkICopICJceDA2XHgwMlx4NGZceDYzIiwKKyAgIC5vaWQgPSAiMS4zOS45OSIs CisgICAuZXhwZWN0ZWRfZXJyb3IgPSBBU04xX1NVQ0NFU1MsCisgICB9LAorICB7LmRlcl9sZW4g PSA2LAorICAgLmRlciA9ICh2b2lkICopICJceDA2XHgwNFx4MDFceDAyXHgwM1x4MDQiLAorICAg Lm9pZCA9ICIwLjEuMi4zLjQiLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9TVUNDRVNTfSwK KyAgey5kZXJfbGVuID0gNSwKKyAgIC5kZXIgPSAodm9pZCAqKSAiXHgwNlx4MDNceDUxXHgwMlx4 MDMiLAorICAgLm9pZCA9ICIyLjEuMi4zIiwKKyAgIC5leHBlY3RlZF9lcnJvciA9IEFTTjFfU1VD Q0VTU30sCisgIHsuZGVyX2xlbiA9IDUsCisgICAuZGVyID0gKHZvaWQgKikgIlx4MDZceDAzXHg4 OFx4MzdceDAzIiwKKyAgIC5vaWQgPSAiMi45OTkuMyIsCisgICAuZXhwZWN0ZWRfZXJyb3IgPSBB U04xX1NVQ0NFU1N9LAorICB7LmRlcl9sZW4gPSAxMiwKKyAgIC5kZXIgPSAodm9pZCAqKSAiXHgw Nlx4MGFceDJiXHgwNlx4MDFceDA0XHgwMVx4OTJceDA4XHgwOVx4MDVceDAxIiwKKyAgIC5vaWQg PSAiMS4zLjYuMS40LjEuMjMxMi45LjUuMSIsCisgICAuZXhwZWN0ZWRfZXJyb3IgPSBBU04xX1NV Q0NFU1N9LAorICB7LmRlcl9sZW4gPSAxOSwKKyAgIC5kZXIgPQorICAgKHZvaWQgKikKKyAgICJc eDA2XHgxMVx4ZmFceDgwXHgwMFx4MDBceDAwXHgwZVx4MDFceDBlXHhmYVx4ODBceDAwXHgwMFx4 MDBceDBlXHg2M1x4NmZceDZkIiwKKyAgIC5vaWQgPSAiMi4xOTk4NzY4LjAuMC4xNC4xLjE0LjE5 OTg4NDguMC4wLjE0Ljk5LjExMS4xMDkiLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9TVUND RVNTfSwKKyAgey5kZXJfbGVuID0gMTksCisgICAuZGVyID0KKyAgICh2b2lkICopCisgICAiXHgw Nlx4MTFceDJiXHgwNlx4MDFceDA0XHgwMVx4OTJceDA4XHgwOVx4MDJceGFhXHhkYVx4YmVceGJl XHhmYVx4NzJceDAxXHgwNyIsCisgICAub2lkID0gIjEuMy42LjEuNC4xLjIzMTIuOS4yLjE0Njcz OTkyNTc0NTguMS43IiwKKyAgIC5leHBlY3RlZF9lcnJvciA9IEFTTjFfU1VDQ0VTU30sCit9Owor CitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgIHVuc2lnbmVkIGNoYXIg ZGVyWzEyOF07CisgIGludCByZXQsIGRlcl9sZW4sIGksIGo7CisKKyAgZm9yIChpID0gMDsgaSA8 IChpbnQpIChzaXplb2YgKHR2KSAvIHNpemVvZiAodHZbMF0pKTsgaSsrKQorICAgIHsKKyAgICAg IGRlcl9sZW4gPSBzaXplb2YgKGRlcik7CisgICAgICByZXQgPSBhc24xX29iamVjdF9pZF9kZXIg KHR2W2ldLm9pZCwgZGVyLCAmZGVyX2xlbiwgMCk7CisgICAgICBpZiAocmV0ICE9IEFTTjFfU1VD Q0VTUykKKwl7CisJICBpZiAocmV0ID09IHR2W2ldLmV4cGVjdGVkX2Vycm9yKQorCSAgICBjb250 aW51ZTsKKwkgIGZwcmludGYgKHN0ZGVyciwKKwkJICAgIiVkOiBpdGVyICVsdSwgZW5jb2Rpbmcg b2YgT0lEIGZhaWxlZDogJXNcbiIsCisJCSAgIF9fTElORV9fLCAodW5zaWduZWQgbG9uZykgaSwg YXNuMV9zdHJlcnJvciAocmV0KSk7CisJICByZXR1cm4gMTsKKwl9CisgICAgICBlbHNlIGlmIChy ZXQgIT0gdHZbaV0uZXhwZWN0ZWRfZXJyb3IpCisJeworCSAgZnByaW50ZiAoc3RkZXJyLAorCQkg ICAiJWQ6IGl0ZXIgJWx1LCBlbmNvZGluZyBvZiBPSUQgJXMgc3VjY2VlZGVkIHdoZW4gZXhwZWN0 aW5nIGZhaWx1cmVcbiIsCisJCSAgIF9fTElORV9fLCAodW5zaWduZWQgbG9uZykgaSwgdHZbaV0u b2lkKTsKKwkgIHJldHVybiAxOworCX0KKworICAgICAgaWYgKGRlcl9sZW4gIT0gdHZbaV0uZGVy X2xlbiB8fCBtZW1jbXAgKGRlciwgdHZbaV0uZGVyLCBkZXJfbGVuKSAhPSAwKQorCXsKKwkgIGZw cmludGYgKHN0ZGVyciwKKwkJICAgIiVkOiBpdGVyICVsdSwgcmUtZW5jb2Rpbmcgb2YgT0lEICVz IHJlc3VsdGVkIHRvIGRpZmZlcmVudCBzdHJpbmcgKCVkIHZzICVkIGJ5dGVzKVxuIiwKKwkJICAg X19MSU5FX18sICh1bnNpZ25lZCBsb25nKSBpLCB0dltpXS5vaWQsIGRlcl9sZW4sCisJCSAgIHR2 W2ldLmRlcl9sZW4pOworCSAgZnByaW50ZiAoc3RkZXJyLCAiXG5Hb3Q6XHRcdCIpOworCSAgZm9y IChqID0gMDsgaiA8IGRlcl9sZW47IGorKykKKwkgICAgZnByaW50ZiAoc3RkZXJyLCAiJS4yeCIs IGRlcltqXSk7CisKKwkgIGZwcmludGYgKHN0ZGVyciwgIlxuRXhwZWN0ZWQ6XHQiKTsKKwkgIGZv ciAoaiA9IDA7IGogPCB0dltpXS5kZXJfbGVuOyBqKyspCisJICAgIGZwcmludGYgKHN0ZGVyciwg IiUuMngiLCB0dltpXS5kZXJbal0pOworCSAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKworCSAg cmV0dXJuIDE7CisJfQorICAgIH0KKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2dydWIt Y29yZS9saWIvbGlidGFzbjEvdGVzdHMvb2N0ZXQtc3RyaW5nLmMgYi9ncnViLWNvcmUvbGliL2xp YnRhc24xL3Rlc3RzL29jdGV0LXN0cmluZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uNjllYjE4YTYyCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJ0 YXNuMS90ZXN0cy9vY3RldC1zdHJpbmcuYwpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHly aWdodCAoQykgMjAxMS0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAq IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJQlRBU04xLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisgKgorICogV3JpdHRlbiBieSBTaW1vbiBKb3NlZnNzb24gYW5kIE5pa29zIE1h dnJvZ2lhbm5vcG91bG9zCisgKgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSAibGlidGFzbjEuaCIK Kworc3RydWN0IHR2Cit7CisgIGNvbnN0IGNoYXIgKm5hbWU7CisgIGludCBkZXJfbGVuOworICBj b25zdCB1bnNpZ25lZCBjaGFyICpkZXJfc3RyOworICBpbnQgbGVuOworICBjb25zdCB1bnNpZ25l ZCBjaGFyICpzdHJpbmc7CisgIGludCBleHBlY3RlZF9lcnJvcjsKKyAgaW50IGJlcjsKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHYgdHZbXSA9IHsKKyAgey5uYW1lID0gInByaW1pdGl2ZSBv Y3RldCBzdHJpbmdzIiwKKyAgIC5kZXJfbGVuID0gMTAsCisgICAuZGVyX3N0ciA9ICh2b2lkICop ICJceDA0XHgwOFx4MDFceDIzXHg0NVx4NjdceDg5XHhhYlx4Y2RceGVmIiwKKyAgIC5sZW4gPSA4 LAorICAgLnN0cmluZyA9ICh2b2lkICopICJceDAxXHgyM1x4NDVceDY3XHg4OVx4YWJceGNkXHhl ZiIsCisgICAuYmVyID0gMH0sCisgIHsuZGVyX2xlbiA9IDIyLAorICAgLmRlcl9zdHIgPQorICAg KHZvaWQgKikKKyAgICJceDA0XHgxNFx4MTNceDAwXHhkOVx4YThceDQ3XHhmN1x4ZjJceDFjXHhm NFx4YjBceGVjXHg1Zlx4YzFceDczXHhlNVx4MWJceDI1XHhjMlx4NjJceDI3IiwKKyAgIC5sZW4g PSAyMCwKKyAgIC5zdHJpbmcgPQorICAgKHZvaWQgKikKKyAgICJceDEzXHgwMFx4RDlceEE4XHg0 N1x4RjdceEYyXHgxQ1x4RjRceEIwXHhFQ1x4NUZceEMxXHg3M1x4RTVceDFCXHgyNVx4QzJceDYy XHgyNyJ9LAorCisgIHsubmFtZSA9ICJsb25nIHR5cGUgb2YgbGVuZ3RoIiwKKyAgIC5kZXJfbGVu ID0gMjMsCisgICAuZGVyX3N0ciA9CisgICAodm9pZCAqKQorICAgIlx4MDRceDgxXHgxNFx4MTNc eDAwXHhkOVx4YThceDQ3XHhmN1x4ZjJceDFjXHhmNFx4YjBceGVjXHg1Zlx4YzFceDczXHhlNVx4 MWJceDI1XHhjMlx4NjJceDI3IiwKKyAgIC5sZW4gPSAyMCwKKyAgIC5zdHJpbmcgPQorICAgKHZv aWQgKikKKyAgICJceDEzXHgwMFx4RDlceEE4XHg0N1x4RjdceEYyXHgxQ1x4RjRceEIwXHhFQ1x4 NUZceEMxXHg3M1x4RTVceDFCXHgyNVx4QzJceDYyXHgyNyIsCisgICAuYmVyID0gMX0sCisgIHsu ZGVyX2xlbiA9IDExLAorICAgLmRlcl9zdHIgPSAodm9pZCAqKSAiXHgwNFx4ODFceDA4XHgwMVx4 MjNceDQ1XHg2N1x4ODlceGFiXHhjZFx4ZWYiLAorICAgLmxlbiA9IDgsCisgICAuc3RyaW5nID0g KHZvaWQgKikgIlx4MDFceDIzXHg0NVx4NjdceDg5XHhhYlx4Y2RceGVmIiwKKyAgIC5iZXIgPSAx fSwKKworICB7Lm5hbWUgPSAiY29uc3RydWN0ZWQgLSBpbmRlZmluaXRlIiwKKyAgIC5kZXJfbGVu ID0gMTEsCisgICAuZGVyX3N0ciA9ICh2b2lkICopICJceDI0XHg4MFx4MDRceDA1XHgwMVx4MDJc eDAzXHgwNFx4MDVceDAwXHgwMCIsCisgICAubGVuID0gNSwKKyAgIC5zdHJpbmcgPSAodm9pZCAq KSAiXHgwMVx4MDJceDAzXHgwNFx4MDUiLAorICAgLmJlciA9IDEsCisgICB9LAorCisgIHsubmFt ZSA9ICJjb25zdHJ1Y3RlZCAtIGRlZmluaXRlIC0gY29uY2F0IiwKKyAgIC5kZXJfbGVuID0gMTIs CisgICAuZGVyX3N0ciA9ICh2b2lkICopICJceDI0XHgwYVx4MDRceDA0XHgwYVx4MGJceDBjXHgw ZFx4MDRceDAyXHgwZVx4MGYiLAorICAgLmxlbiA9IDYsCisgICAuc3RyaW5nID0gKHZvaWQgKikg Ilx4MGFceDBiXHgwY1x4MGRceDBlXHgwZiIsCisgICAuYmVyID0gMSwKKyAgIH0sCisgIHsubmFt ZSA9ICJjb25zdHJ1Y3RlZCAtIGRlZmluaXRlIC0gcmVjdXJzaXZlIiwKKyAgIC5kZXJfbGVuID0g MTUsCisgICAuZGVyX3N0ciA9CisgICAodm9pZCAqKSAiXHgyNFx4MGRceDA0XHgwNFx4MGFceDBi XHgwY1x4MGRceDI0XHgwNVx4MDRceDAwXHgwNFx4MDFceDBmIiwKKyAgIC5sZW4gPSA1LAorICAg LnN0cmluZyA9ICh2b2lkICopICJceDBhXHgwYlx4MGNceDBkXHgwZiIsCisgICAuYmVyID0gMSwK KyAgIH0sCisgIHsubmFtZSA9ICJjb25zdHJ1Y3RlZCAtIGRlZmluaXRlIC0gc2luZ2xlIiwKKyAg IC5kZXJfbGVuID0gNywKKyAgIC5kZXJfc3RyID0gKHZvaWQgKikgIlx4MjRceDA1XHgwNFx4MDNc eDAxXHgwMlx4MDMiLAorICAgLmxlbiA9IDMsCisgICAuc3RyaW5nID0gKHZvaWQgKikgIlx4MDFc eDAyXHgwMyIsCisgICAuYmVyID0gMSwKKyAgIH0sCisKKyAgLyogYSBsYXJnZSBhbW91bnQgb2Yg cmVjdXJzaXZlIGluZGVmaW5pdGUgZW5jb2RpbmcgKi8KKyAgey5uYW1lID0gImEgbGFyZ2UgYW1v dW50IG9mIHJlY3Vyc2l2ZSBpbmRlZmluaXRlIGVuY29kaW5nIiwKKyAgIC5kZXJfbGVuID0gMjkz MjUsCisgICAuZGVyX3N0ciA9CisgICAodm9pZCAqKQorICAgIlx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4 MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgy NFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0 XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRc eDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4 ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4 MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgw XHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MFx4MjRceDgwXHgyNFx4ODBc eDI0XHg4MFx4MjRceDgwXHgyNFx4ODBceDI0XHg4MCIsCisgICAubGVuID0gMCwKKyAgIC5iZXIg PSAxLAorICAgLmV4cGVjdGVkX2Vycm9yID0gQVNOMV9ERVJfRVJST1J9Cit9OworCitpbnQKK21h aW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgIHVuc2lnbmVkIGNoYXIgc3RyWzEwMF07 CisgIHVuc2lnbmVkIGNoYXIgZGVyWzEwMF07CisgIGludCBkZXJfbGVuID0gc2l6ZW9mIChkZXIp OworICBpbnQgc3RyX3NpemUgPSBzaXplb2YgKHN0cik7CisgIHVuc2lnbmVkIGNoYXIgKnRtcCA9 IE5VTEw7CisgIGludCByZXQsIHJldF9sZW4sIGo7CisgIHNpemVfdCBpOworCisgIGZvciAoaSA9 IDA7IGkgPCBzaXplb2YgKHR2KSAvIHNpemVvZiAodHZbMF0pOyBpKyspCisgICAgeworICAgICAg LyogRGVjb2RlICovCisKKyAgICAgIGlmICh0dltpXS5iZXIgPT0gMCkKKwl7CisJICBzdHJfc2l6 ZSA9IHNpemVvZiAoc3RyKTsKKwkgIHJldCA9CisJICAgIGFzbjFfZ2V0X29jdGV0X2RlciAodHZb aV0uZGVyX3N0ciArIDEsCisJCQkJdHZbaV0uZGVyX2xlbiAtIDEsICZyZXRfbGVuLCBzdHIsCisJ CQkJc2l6ZW9mIChzdHIpLCAmc3RyX3NpemUpOworCSAgaWYgKHJldCAhPSB0dltpXS5leHBlY3Rl ZF9lcnJvcikKKwkgICAgeworCSAgICAgIGZwcmludGYgKHN0ZGVyciwKKwkJICAgICAgICIlZDog YXNuMV9nZXRfb2N0ZXRfZGVyOiAlczogZ290ICVkIGV4cGVjdGVkICVkXG4iLAorCQkgICAgICAg X19MSU5FX18sIHR2W2ldLm5hbWUsIHJldCwgdHZbaV0uZXhwZWN0ZWRfZXJyb3IpOworCSAgICAg IHJldHVybiAxOworCSAgICB9CisJICBpZiAodHZbaV0uZXhwZWN0ZWRfZXJyb3IpCisJICAgIGNv bnRpbnVlOworCisJICBpZiAocmV0X2xlbiAhPSB0dltpXS5kZXJfbGVuIC0gMSkKKwkgICAgewor CSAgICAgIGZwcmludGYgKHN0ZGVyciwKKwkJICAgICAgICIlZDogZXJyb3IgaW4gREVSLCBsZW5n dGggcmV0dXJuZWQgaXMgJWQsIGhhZCAlZFxuIiwKKwkJICAgICAgIF9fTElORV9fLCByZXRfbGVu LCB0dltpXS5kZXJfbGVuIC0gMSk7CisJICAgICAgcmV0dXJuIDE7CisJICAgIH0KKworCSAgaWYg KHN0cl9zaXplICE9IHR2W2ldLmxlbgorCSAgICAgIHx8IG1lbWNtcCAodHZbaV0uc3RyaW5nLCBz dHIsIHR2W2ldLmxlbikgIT0gMCkKKwkgICAgeworCSAgICAgIGZwcmludGYgKHN0ZGVyciwKKwkJ ICAgICAgICIlZDogbWVtY21wOiAlczogZ290IGludmFsaWQgZGVjb2RpbmdcbiIsCisJCSAgICAg ICBfX0xJTkVfXywgdHZbaV0ubmFtZSk7CisKKwkgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbkdv dDpcdFx0Iik7CisJICAgICAgZm9yIChqID0gMDsgaiA8IHN0cl9zaXplOyBqKyspCisJCWZwcmlu dGYgKHN0ZGVyciwgIiUuMngiLCBzdHJbal0pOworCisJICAgICAgZnByaW50ZiAoc3RkZXJyLCAi XG5FeHBlY3RlZDpcdCIpOworCSAgICAgIGZvciAoaiA9IDA7IGogPCB0dltpXS5sZW47IGorKykK KwkJZnByaW50ZiAoc3RkZXJyLCAiJS4yeCIsIHR2W2ldLnN0cmluZ1tqXSk7CisJICAgICAgZnBy aW50ZiAoc3RkZXJyLCAiXG4iKTsKKwkgICAgICByZXR1cm4gMTsKKwkgICAgfQorCisJICAvKiBF bmNvZGUgKi8KKwkgIGRlcl9sZW4gPSBzaXplb2YgKGRlcik7CisJICBhc24xX29jdGV0X2RlciAo c3RyLCBzdHJfc2l6ZSwgZGVyLCAmZGVyX2xlbik7CisKKwkgIGlmIChkZXJfbGVuICE9IHR2W2ld LmRlcl9sZW4gLSAxCisJICAgICAgfHwgbWVtY21wICh0dltpXS5kZXJfc3RyICsgMSwgZGVyLCB0 dltpXS5kZXJfbGVuIC0gMSkgIT0gMCkKKwkgICAgeworCSAgICAgIGZwcmludGYgKHN0ZGVyciwK KwkJICAgICAgICJlbmNvZGluZzogJXM6IGdvdCBpbnZhbGlkIGVuY29kaW5nXG4iLCB0dltpXS5u YW1lKTsKKwkgICAgICByZXR1cm4gMTsKKwkgICAgfQorCX0KKworICAgICAgcmV0ID0KKwlhc24x X2RlY29kZV9zaW1wbGVfYmVyIChBU04xX0VUWVBFX09DVEVUX1NUUklORywKKwkJCQl0dltpXS5k ZXJfc3RyLCB0dltpXS5kZXJfbGVuLAorCQkJCSZ0bXAsICh1bnNpZ25lZCBpbnQgKikgJnN0cl9z aXplLAorCQkJCSh1bnNpZ25lZCBpbnQgKikgJmRlcl9sZW4pOworICAgICAgaWYgKHJldCAhPSB0 dltpXS5leHBlY3RlZF9lcnJvcikKKwl7CisJICBmcHJpbnRmIChzdGRlcnIsCisJCSAgICIlZDog YXNuMV9kZWNvZGVfc2ltcGxlX2JlcjogJXM6IGdvdCAlcyBleHBlY3RlZCAlc1xuIiwKKwkJICAg X19MSU5FX18sIHR2W2ldLm5hbWUsIGFzbjFfc3RyZXJyb3IgKHJldCksCisJCSAgIGFzbjFfc3Ry ZXJyb3IgKHR2W2ldLmV4cGVjdGVkX2Vycm9yKSk7CisJICByZXR1cm4gMTsKKwl9CisgICAgICBp ZiAodHZbaV0uZXhwZWN0ZWRfZXJyb3IpCisJY29udGludWU7CisKKyAgICAgIGlmIChkZXJfbGVu ICE9IHR2W2ldLmRlcl9sZW4pCisJeworCSAgZnByaW50ZiAoc3RkZXJyLAorCQkgICAiJWQ6IGVy cm9yOiAlczogREVSLCBsZW5ndGggcmV0dXJuZWQgaXMgJWQsIGhhZCAlZFxuIiwKKwkJICAgX19M SU5FX18sIHR2W2ldLm5hbWUsIGRlcl9sZW4sIHR2W2ldLmRlcl9sZW4pOworCSAgcmV0dXJuIDE7 CisJfQorCisgICAgICBpZiAoc3RyX3NpemUgIT0gdHZbaV0ubGVuIHx8IG1lbWNtcCAodHZbaV0u c3RyaW5nLCB0bXAsIHR2W2ldLmxlbikgIT0gMCkKKwl7CisJICBmcHJpbnRmIChzdGRlcnIsCisJ CSAgICIlZDogbWVtY21wOiAlczogZ290IGludmFsaWQgZGVjb2RpbmdcbiIsCisJCSAgIF9fTElO RV9fLCB0dltpXS5uYW1lKTsKKwkgIGZwcmludGYgKHN0ZGVyciwgIlxuR290Olx0XHQiKTsKKwkg IGZvciAoaiA9IDA7IGogPCBzdHJfc2l6ZTsgaisrKQorCSAgICBmcHJpbnRmIChzdGRlcnIsICIl LjJ4IiwgdG1wW2pdKTsKKworCSAgZnByaW50ZiAoc3RkZXJyLCAiXG5FeHBlY3RlZDpcdCIpOwor CSAgZm9yIChqID0gMDsgaiA8IHR2W2ldLmxlbjsgaisrKQorCSAgICBmcHJpbnRmIChzdGRlcnIs ICIlLjJ4IiwgdHZbaV0uc3RyaW5nW2pdKTsKKwkgIGZwcmludGYgKHN0ZGVyciwgIlxuIik7CisJ ICByZXR1cm4gMTsKKwl9CisgICAgICBmcmVlICh0bXApOworICAgICAgdG1wID0gTlVMTDsKKwor ICAgIH0KKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGlidGFz bjEvdGVzdHMvcmVwcm9kdWNlcnMuYyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvcmVw cm9kdWNlcnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmEwOWQ4YjAy MQotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvcmVwcm9k dWNlcnMuYwpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgTElCVEFTTjEuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqCisgKi8K KworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiBEZXNjcmlwdGlvbjogcnVuIHJlcHJvZHVjZXJzIGZvciBzZXZlcmFs IGZpeGVkIGlzc3VlcyAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8c3RkaW8uaD4K KyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2luY2x1ZGUgPGxp YnRhc24xLmg+CisKKyNpbmNsdWRlIDxpbnQuaD4KKworLyogcHJvZHVjZXMgZW5kbGVzcyBsb29w IChmaXhlZCBieSBkNGI2MjRiMik6CisgKiBUaGUgZm9sbG93aW5nIHRyYW5zbGF0ZXMgaW50byBh IHNpbmdsZSBub2RlIHdpdGggYWxsIHBvaW50ZXJzCisgKiAocmlnaHQsbGVmdCxkb3duKSBzZXQg dG8gTlVMTC4gKi8KK2NvbnN0IGFzbjFfc3RhdGljX25vZGUgZW5kbGVzc19hc24xX3RhYltdID0g eworICB7IlRFU1RfVFJFRSIsIDUzNjg3NTAyNCwgTlVMTH0sCisgIHtOVUxMLCAwLCBOVUxMfQor fTsKKworLyogcHJvZHVjZXMgbWVtb3J5IGxlYWsgKGZpeGVkIGJ5IGYxNmQxZmY5KToKKyAqIDE1 MiBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDEg b2YgMQorICogICAgYXQgMHg0ODM3QjY1OiBjYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6NzYy KQorICogICAgYnkgMHg0ODUxQzBEOiBfYXNuMV9hZGRfc3RhdGljX25vZGUgKHBhcnNlcl9hdXgu Yzo3MSkKKyAqICAgIGJ5IDB4NDg1M0FBQzogYXNuMV9hcnJheTJ0cmVlIChzdHJ1Y3R1cmUuYzoy MDApCisgKiAgICBieSAweDEwOTIzQjogbWFpbiAoc2luZ2xlX25vZGUuYzo2NykKKyAqLworY29u c3QgYXNuMV9zdGF0aWNfbm9kZSB0YWJbXSA9IHsKKyAgeyJhIiwgQ09OU1RfRE9XTiwgIiJ9LAor ICB7ImIiLCAwLCAiIn0sCisgIHsiYyIsIDAsICIifSwKKyAge05VTEwsIDAsIE5VTEx9Cit9Owor CitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgIGludCByZXN1bHQsIHZl cmJvc2UgPSAwOworICBhc24xX25vZGUgZGVmaW5pdGlvbnMgPSBOVUxMOworICBjaGFyIGVycm9y RGVzY3JpcHRpb25bQVNOMV9NQVhfRVJST1JfREVTQ1JJUFRJT05fU0laRV07CisKKyAgaWYgKGFy Z2MgPiAxKQorICAgIHZlcmJvc2UgPSAxOworCisgIHJlc3VsdCA9IGFzbjFfYXJyYXkydHJlZSAo ZW5kbGVzc19hc24xX3RhYiwgJmRlZmluaXRpb25zLCBlcnJvckRlc2NyaXB0aW9uKTsKKyAgaWYg KHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MpCisgICAgeworICAgICAgYXNuMV9wZXJyb3IgKHJlc3Vs dCk7CisgICAgICBwcmludGYgKCJFcnJvckRlc2NyaXB0aW9uID0gJXNcblxuIiwgZXJyb3JEZXNj cmlwdGlvbik7CisgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOworICAgIH0KKworICBhc24xX2Rl bGV0ZV9zdHJ1Y3R1cmUgKCZkZWZpbml0aW9ucyk7CisKKyAgZGVmaW5pdGlvbnMgPSBOVUxMOwor ICByZXN1bHQgPSBhc24xX2FycmF5MnRyZWUgKHRhYiwgJmRlZmluaXRpb25zLCBlcnJvckRlc2Ny aXB0aW9uKTsKKyAgaWYgKHJlc3VsdCAhPSBBU04xX1NVQ0NFU1MpCisgICAgeworICAgICAgYXNu MV9wZXJyb3IgKHJlc3VsdCk7CisgICAgICBwcmludGYgKCJFcnJvckRlc2NyaXB0aW9uID0gJXNc blxuIiwgZXJyb3JEZXNjcmlwdGlvbik7CisgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOworICAg IH0KKworICBhc24xX2RlbGV0ZV9zdHJ1Y3R1cmUgKCZkZWZpbml0aW9ucyk7CisKKyAgaWYgKHZl cmJvc2UpCisgICAgcHJpbnRmICgiU3VjY2Vzc1xuIik7CisKKyAgZXhpdCAoRVhJVF9TVUNDRVNT KTsKK30KLS0gCjIuNDMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRw czovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==