From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:1008:1e59::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id CGtjFf8ug2XqKgAAkFu2QA (envelope-from ) for ; Wed, 20 Dec 2023 19:14:23 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id AMFlEP8ug2XhbwAA62LTzQ (envelope-from ) for ; Wed, 20 Dec 2023 19:14:23 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VqZ0ljma; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1703096063; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature:autocrypt:autocrypt; bh=v935ddaz7DT4f8rTOKr04fKK5H0/kdLe2fMqi8mwa8Q=; b=hU6hA5wZJZUbh/6mfOjRVxHCnzUu0atNwP4OaqUpByOW9zU1r3DtPEUR11USiTkVlTkYGU XhMh9a6eH7pIz+0W189Bm8jS8VWK8JXO+kABB8r7YAZOgcmfIW7ZEz0unXGsf0M7/Xod9D 8iL1dWujmrJXWqiucymvi0q9qbzw3sdOksJRulUUgqauobznvcCaA4sJLIcu9brYg48sho dZtKVESXWSw0D//UFb+TJanXyXWtap9YU4qLhkpI6PaNr58xQtZXPEkUbLU00Ks8F0g93h +SaHvA01bo1tVLm0vp+V8+sA4awPOVmgLj/GRawok2Pqs4xNDOGXdMtIJ6y0eQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1703096063; a=rsa-sha256; cv=none; b=G6W5zs/hbdpDRCNqr7dqs8V0NdThL25QpzpO3DmEN54R+kKxUhk3eTLL3lOXCPmKcp6Awb bjHS8Fn/LWZu9qmf3p5Lc3zwwJtrkmncF5lig+/ilWAHp4lv6XDxKYDZYWz+mp9RGeLWqP vjSnYVQkhSmR35M+YwY0T8B10V1dZr436MMXFjNUF5DSm0jrfoKxSiur4xsY/BXK0YPAv8 luyBxDNrjWv/a6doDpWOOsH0ARgLvF8ls9ymi14aLWCCS16nXqXymUWseH39shaBL7ucGC uQxB3vIepjjb9rf+OlZzEZp1imjSsFiD3UzZtDg3webasu0Vr2i9zCs9nZCGfA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VqZ0ljma; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com 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 aspmx1.migadu.com (Postfix) with ESMTPS id BA36F11E2C for ; Wed, 20 Dec 2023 19:14:22 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rG14d-0001eA-F0; Wed, 20 Dec 2023 13:13:39 -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 1rG14b-0001di-C6 for guix-devel@gnu.org; Wed, 20 Dec 2023 13:13:37 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rG14W-0005iJ-Pg for guix-devel@gnu.org; Wed, 20 Dec 2023 13:13:35 -0500 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-33677e66243so219804f8f.1 for ; Wed, 20 Dec 2023 10:13:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703096009; x=1703700809; darn=gnu.org; h=subject:autocrypt:from:cc:content-language:to:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=v935ddaz7DT4f8rTOKr04fKK5H0/kdLe2fMqi8mwa8Q=; b=VqZ0ljmahz8HeLuD/UoIxGfFULfBvDgX9sMBIA5P5JIc0nKQWr3NX9zFVqWYj/QGXN Bh7M4itGb5ltAX+gmeM9qNt5WY6n1irsPkipQAoUQH8bfb9ileKbh2H+cDju2cvQJfS9 dk+mFt9G2bCi7lB+leHUJ1rIH+loraTWW0yMv0KgQWmZFosS3avb9VTd00F2v0ETzNLN 9ZUPx46wsk875iyF69SN/e8ZssX/drxNkEK3PWG+Ge5Fc7Sx36VVCgXuCq/14zxcRPbR zvTr3FEvLtA5G1yCtIN87vwWOrDsbeiRTS+t4DMPBoskmAXaTGe3Q7+fF1A8HwnVd55a FxYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703096009; x=1703700809; h=subject:autocrypt:from:cc:content-language:to:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=v935ddaz7DT4f8rTOKr04fKK5H0/kdLe2fMqi8mwa8Q=; b=aBLYLOmXIvc1J9iCwbIDE3nHkFrvDy5lxMePs3ZEph8fbdL6TecU6tOMIGlcvQTSG9 apP9sQcr7USy1sUtus5XC/E6bW4DfMaI888hgXWZXybB9zy1NtpDIREwco7fU/M/hq9R Cfd1V7AzvpXac8dOPtJ3ODrXaEscinV6SrpfDLbdkke2Zdas+Iu+fK8CQU01xX0GH2HV z8+/5oh6nbZyBRXLq1lU+lRo846kwHe0EyR1jQaXzIysCF/WjhD1u3cm/NjaC0ZwaEKJ St/2x1NqLKZUSbLLFJVBpifsMNeYsbmpy5PbPIWERg/GS7lNz13tS/irPK4IypEEAR1J 0xBA== X-Gm-Message-State: AOJu0YyW8RAjDc3407Jh3t+7YdLsP/Q5BWHJySEDQ9vJPWVXW8z5MPRs 0j+C8bRcbz0WGQ7cUL+XPsI= X-Google-Smtp-Source: AGHT+IFsTFBeMXODuuYaK6XK5ozERwYd2dEQV5GbNlWMWcoU7jO29BlXEjfCahodzWFso0379PIpZA== X-Received: by 2002:adf:ff91:0:b0:336:6414:4018 with SMTP id j17-20020adfff91000000b0033664144018mr6737467wrr.4.1703096009197; Wed, 20 Dec 2023 10:13:29 -0800 (PST) Received: from [192.168.0.154] ([60.51.145.234]) by smtp.gmail.com with ESMTPSA id w14-20020adfee4e000000b0033609750752sm167103wro.8.2023.12.20.10.13.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Dec 2023 10:13:28 -0800 (PST) Message-ID: Date: Thu, 21 Dec 2023 02:13:14 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 To: vvt@mail-on.us Content-Language: en-US Cc: guix-devel@gnu.org From: Adam Faiz Autocrypt: addr=adam.faiz5990@gmail.com; keydata= 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 Subject: Re: guix installation why internet connection required? Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------Huw6jxODvEezBqHlsyYygfmX" Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=adam.faiz5990@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -5.93 X-Spam-Score: -5.93 X-Migadu-Queue-Id: BA36F11E2C X-Migadu-Scanner: mx11.migadu.com X-TUID: 8glOCJAFESJ5 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------Huw6jxODvEezBqHlsyYygfmX Content-Type: multipart/mixed; boundary="------------8Dn7nCjdodwZXqQc1eyejgMv"; protected-headers="v1" From: Adam Faiz To: vvt@mail-on.us Cc: guix-devel@gnu.org Message-ID: Subject: Re: guix installation why internet connection required? --------------8Dn7nCjdodwZXqQc1eyejgMv Content-Type: multipart/mixed; boundary="------------5KGLhdBYg0twkH2fDnNv7KR9" --------------5KGLhdBYg0twkH2fDnNv7KR9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi vvt, > x86 x64 gnu guix system 1.4.0 iso requires internet connection in order= to get > installed. Same goes for i686 iso. >=20 > Why is that so? Why is there no > iso option for installing off line? Thanks. The reason why is because the GNU Guix System ISO is a netinstall ISO, it has the bare minimum needed to customise the installation options and = then downloads the packages when installing. There's no option for installing offline because Guix currently doesn't o= ffer ISO images that do that, even though it's possible. There's previous discussion about this issue: https://lists.gnu.org/archi= ve/html/guix-devel/2015-12/msg00452.html Could you try this operating system definition? I think it should work(it= adds XFCE and MATE). Make a Guix checkout, and put the attached file in the gnu/system directo= ry of the local Guix copy. Then you can do `guix system image -t iso9660 gnu/system/offline-install.= scm` to generate the offline installation ISO. --------------5KGLhdBYg0twkH2fDnNv7KR9 Content-Type: text/x-scheme; charset=UTF-8; name="offline-install.scm" Content-Disposition: attachment; filename="offline-install.scm" Content-Transfer-Encoding: base64 Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05V Cjs7OyBDb3B5cmlnaHQgwqkgMjAxNC0yMDIyIEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251 Lm9yZz4KOzs7IENvcHlyaWdodCDCqSAyMDE1IE1hcmsgSCBXZWF2ZXIgPG1od0BuZXRyaXMu b3JnPgo7OzsgQ29weXJpZ2h0IMKpIDIwMTYgQW5kcmVhcyBFbmdlIDxhbmRyZWFzQGVuZ2Uu ZnI+Cjs7OyBDb3B5cmlnaHQgwqkgMjAxNyBNYXJpdXMgQmFra2UgPG1iYWtrZUBmYXN0bWFp bC5jb20+Cjs7OyBDb3B5cmlnaHQgwqkgMjAxNywgMjAxOSBUb2JpYXMgR2VlcmluY2t4LVJp Y2UgPG1lQHRvYmlhcy5ncj4KOzs7IENvcHlyaWdodCDCqSAyMDIwIEZsb3JpYW4gUGVseiA8 cGVsemZsb3JpYW5AcGVsemZsb3JpYW4uZGU+Cjs7OyBDb3B5cmlnaHQgwqkgMjAyMCBFZnJh aW0gRmxhc2huZXIgPGVmcmFpbUBmbGFzaG5lci5jby5pbD4KOzs7IENvcHlyaWdodCDCqSAy MDIyIEpvc3NlbGluIFBvaXJldCA8ZGV2QGpwb2lyZXQueHl6Pgo7OzsKOzs7IFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgo7OzsKOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKOzs7IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Cjs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KOzs7Cjs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKOzs7IE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKOzs7IEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCjs7Owo7OzsgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgooZGVmaW5lLW1vZHVsZSAoZ251IHN5c3RlbSBp bnN0YWxsKQogICM6dXNlLW1vZHVsZSAoZ251KQogICM6dXNlLW1vZHVsZSAoZ251IHN5c3Rl bSkKICAjOnVzZS1tb2R1bGUgKGdudSBzeXN0ZW0gc2V0dWlkKQogICM6dXNlLW1vZHVsZSAo Z251IGJvb3Rsb2FkZXIgdS1ib290KQogICM6dXNlLW1vZHVsZSAoZ3VpeCBnZXhwKQogICM6 dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKICAjOnVzZS1tb2R1bGUgKGd1aXggbW9uYWRzKQog ICM6dXNlLW1vZHVsZSAoZ3VpeCBtb2R1bGVzKQogICM6dXNlLW1vZHVsZSAoKGd1aXggcGFj a2FnZXMpICM6c2VsZWN0IChwYWNrYWdlLXZlcnNpb24gc3VwcG9ydGVkLXBhY2thZ2U/KSkK ICAjOnVzZS1tb2R1bGUgKGd1aXggcGxhdGZvcm0pCiAgIzp1c2UtbW9kdWxlICgoZ3VpeCBz dG9yZSkgIzpzZWxlY3QgKCVzdG9yZS1wcmVmaXgpKQogICM6dXNlLW1vZHVsZSAoZ3VpeCB1 dGlscykKICAjOnVzZS1tb2R1bGUgKGdudSBpbnN0YWxsZXIpCiAgIzp1c2UtbW9kdWxlIChn bnUgc3lzdGVtIGxvY2FsZSkKICAjOnVzZS1tb2R1bGUgKGdudSBzZXJ2aWNlcyBhdmFoaSkK ICAjOnVzZS1tb2R1bGUgKGdudSBzZXJ2aWNlcyBkYnVzKQogICM6dXNlLW1vZHVsZSAoZ251 IHNlcnZpY2VzIG5ldHdvcmtpbmcpCiAgIzp1c2UtbW9kdWxlIChnbnUgc2VydmljZXMgc2hl cGhlcmQpCiAgIzp1c2UtbW9kdWxlIChnbnUgc2VydmljZXMgc3NoKQogICM6dXNlLW1vZHVs ZSAoZ251IHBhY2thZ2VzIGFkbWluKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGJh c2gpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgYm9vdGxvYWRlcnMpCiAgIzp1c2Ut bW9kdWxlIChnbnUgcGFja2FnZXMgY2VydHMpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2Fn ZXMgY29tcHJlc3Npb24pCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgY3J5cHRzZXR1 cCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBkaXNrKQogICM6dXNlLW1vZHVsZSAo Z251IHBhY2thZ2VzIGZpbGUtc3lzdGVtcykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyBmb250cykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBmb250dXRpbHMpCiAgIzp1 c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ3VpbGUpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFj a2FnZXMgbGludXgpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgcGFja2FnZS1tYW5h Z2VtZW50KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHRleGluZm8pCiAgIzp1c2Ut bW9kdWxlIChnbnUgcGFja2FnZXMgeG9yZykKICAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNo KQogICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQogICM6ZXhwb3J0IChpbnN0YWxsYXRp b24tb3MKICAgICAgICAgICAgYTIwLW9saW51eGluby1saW1lLWluc3RhbGxhdGlvbi1vcwog ICAgICAgICAgICBhMjAtb2xpbnV4aW5vLWxpbWUyLWVtbWMtaW5zdGFsbGF0aW9uLW9zCiAg ICAgICAgICAgIGEyMC1vbGludXhpbm8tbWljcm8taW5zdGFsbGF0aW9uLW9zCiAgICAgICAg ICAgIGJhbmFuYXBpLW0yLXVsdHJhLWluc3RhbGxhdGlvbi1vcwogICAgICAgICAgICBiZWFn bGVib25lLWJsYWNrLWluc3RhbGxhdGlvbi1vcwogICAgICAgICAgICBteDZjdWJveGktaW5z dGFsbGF0aW9uLW9zCiAgICAgICAgICAgIG5pbnRlbmRvLW5lcy1jbGFzc2ljLWVkaXRpb24t aW5zdGFsbGF0aW9uLW9zCiAgICAgICAgICAgIG5vdmVuYS1pbnN0YWxsYXRpb24tb3MKICAg ICAgICAgICAgZmlyZWZseS1yazMzOTktaW5zdGFsbGF0aW9uLW9zCiAgICAgICAgICAgIHBp bmU2NC1wbHVzLWluc3RhbGxhdGlvbi1vcwogICAgICAgICAgICBwaW5lYm9vay1pbnN0YWxs YXRpb24tb3MKICAgICAgICAgICAgcm9jazY0LWluc3RhbGxhdGlvbi1vcwogICAgICAgICAg ICByb2NrcHJvNjQtaW5zdGFsbGF0aW9uLW9zCiAgICAgICAgICAgIHJrMzM5OS1wdW1hLWlu c3RhbGxhdGlvbi1vcwogICAgICAgICAgICB3YW5kYm9hcmQtaW5zdGFsbGF0aW9uLW9zCiAg ICAgICAgICAgIG9zLXdpdGgtdS1ib290KSkKKHVzZS1zZXJ2aWNlLW1vZHVsZXMgZGVza3Rv cCBzZGRtIHhvcmcpCih1c2UtcGFja2FnZS1tb2R1bGVzIGNlcnRzIGdub21lKQoKOzs7IENv bW1lbnRhcnk6Cjs7Owo7OzsgVGhpcyBtb2R1bGUgcHJvdmlkZXMgYW4gJ29wZXJhdGluZy1z eXN0ZW0nIGRlZmluaXRpb24gZm9yIHVzZSBvbiBpbWFnZXMKOzs7IGZvciBVU0Igc3RpY2tz IGV0Yy4sIGZvciB0aGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBHTlUgc3lzdGVtLgo7OzsKOzs7 IENvZGU6CgoMCjs7Owo7OzsgRG9jdW1lbnRhdGlvbiBzZXJ2aWNlLgo7OzsKCihkZWZpbmUg JWluc3RhbGxhdGlvbi1ub2RlLW5hbWVzCiAgOzsgVHJhbnNsYXRlZCBuYW1lIG9mIHRoZSAi U3lzdGVtIEluc3RhbGxhdGlvbiIgbm9kZSBvZiB0aGUgbWFudWFsLiAgSWRlYWxseQogIDs7 IHdlJ2QgZXh0cmFjdCBpdCBmcm9tIHRoZSAnZ3VpeC1tYW51YWwnIGdldHRleHQgZG9tYWlu LCBidXQgdGhhdCBvbmUgaXMKICA7OyB1c3VhbGx5IG5vdCBhdmFpbGFibGUgYXQgcnVuIHRp bWUsIGhlbmNlIHRoaXMgaGFjay4KICAnKCgiZGUiIC4gIlN5c3RlbWluc3RhbGxhdGlvbiIp CiAgICAoImVuIiAuICJTeXN0ZW0gSW5zdGFsbGF0aW9uIikKICAgICgiZXMiIC4gIkluc3Rh bGFjacOzbiBkZWwgc2lzdGVtYSIpCiAgICAoImZyIiAuICJJbnN0YWxsYXRpb24gZHUgc3lz dMOobWUiKQogICAgKCJydSIgLiAi0KPRgdGC0LDQvdC+0LLQutCwINGB0LjRgdGC0LXQvNGL IikpKQoKKGRlZmluZSAobG9nLXRvLWluZm8gdHR5IHVzZXIpCiAgIlJldHVybiBhIHNjcmlw dCB0aGF0IHNwYXducyB0aGUgSW5mbyByZWFkZXIgb24gdGhlIHJpZ2h0IHNlY3Rpb24gb2Yg dGhlCm1hbnVhbC4iCiAgKHByb2dyYW0tZmlsZSAibG9nLXRvLWluZm8iCiAgICAgICAgICAg ICAgICAjfihsZXQqICgodHR5ICAgICAgKG9wZW4tZmlsZSAjJChzdHJpbmctYXBwZW5kICIv ZGV2LyIgdHR5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInIwKyIpKQogICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2FsZSAgIChjYWRyIChj b21tYW5kLWxpbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIChsYW5ndWFnZSAoc3Ry aW5nLXRha2UgbG9jYWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzdHJpbmctaW5kZXggbG9jYWxlICNcXykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgKGluZm9kaXIgICIvcnVuL2N1cnJlbnQtc3lzdGVtL3Byb2ZpbGUvc2hhcmUv aW5mbyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAocGVyLWxhbmcgKHN0cmluZy1hcHBl bmQgaW5mb2RpciAiL2d1aXguIiBsYW5ndWFnZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIuaW5mby5neiIpKQogICAgICAgICAgICAgICAg ICAgICAgICAgKGZpbGUgICAgIChpZiAoZmlsZS1leGlzdHM/IHBlci1sYW5nKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXItbGFuZwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBpbmZvZGlyICIvZ3Vp eC5pbmZvIikpKQogICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGUgICAgIChvciAoYXNz b2MtcmVmICcjJCVpbnN0YWxsYXRpb24tbm9kZS1uYW1lcwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiU3lzdGVtIEluc3RhbGxhdGlvbiIpKSkKICAg ICAgICAgICAgICAgICAgICAocmVkaXJlY3QtcG9ydCB0dHkgKGN1cnJlbnQtb3V0cHV0LXBv cnQpKQogICAgICAgICAgICAgICAgICAgIChyZWRpcmVjdC1wb3J0IHR0eSAoY3VycmVudC1l cnJvci1wb3J0KSkKICAgICAgICAgICAgICAgICAgICAocmVkaXJlY3QtcG9ydCB0dHkgKGN1 cnJlbnQtaW5wdXQtcG9ydCkpCgogICAgICAgICAgICAgICAgICAgIChsZXQgKChwdyAoZ2V0 cHduYW0gIyR1c2VyKSkpCiAgICAgICAgICAgICAgICAgICAgICAoc2V0Z2lkIChwYXNzd2Q6 Z2lkIHB3KSkKICAgICAgICAgICAgICAgICAgICAgIChzZXR1aWQgKHBhc3N3ZDp1aWQgcHcp KSkKCiAgICAgICAgICAgICAgICAgICAgOzsgJ2d1bnppcCcgaXMgbmVlZGVkIHRvIGRlY29t cHJlc3MgdGhlIGRvYy4KICAgICAgICAgICAgICAgICAgICAoc2V0ZW52ICJQQVRIIiAoc3Ry aW5nLWFwcGVuZCAjJGd6aXAgIi9iaW4iKSkKCiAgICAgICAgICAgICAgICAgICAgOzsgQ2hh bmdlIHRoaXMgcHJvY2VzcycgbG9jYWxlIHNvIHRoYXQgY29tbWFuZC1saW5lCiAgICAgICAg ICAgICAgICAgICAgOzsgYXJndW1lbnRzIHRvICdpbmZvJyBhcmUgcHJvcGVybHkgZW5jb2Rl ZC4KICAgICAgICAgICAgICAgICAgICAoY2F0Y2ggI3QKICAgICAgICAgICAgICAgICAgICAg IChsYW1iZGEgKCkKICAgICAgICAgICAgICAgICAgICAgICAgKHNldGxvY2FsZSBMQ19BTEwg bG9jYWxlKQogICAgICAgICAgICAgICAgICAgICAgICAoc2V0ZW52ICJMQ19BTEwiIGxvY2Fs ZSkpCiAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIF8KICAgICAgICAgICAgICAgICAg ICAgICAgOzsgU29tZXRpbWVzIExPQ0FMRSBpdHNlbGYgaXMgbm90IGF2YWlsYWJsZS4gIElu IHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgOzsgY2FzZSBwaWNrIHRoZSBvbmUgVVRG LTggbG9jYWxlIHRoYXQncyBrbm93biB0byB3b3JrCiAgICAgICAgICAgICAgICAgICAgICAg IDs7IGluc3RlYWQgb2YgZmFpbGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgKHNldGxv Y2FsZSBMQ19BTEwgImVuX1VTLnV0ZjgiKQogICAgICAgICAgICAgICAgICAgICAgICAoc2V0 ZW52ICJMQ19BTEwiICJlbl9VUy51dGY4IikpKQoKICAgICAgICAgICAgICAgICAgICAoZXhl Y2wgIyQoZmlsZS1hcHBlbmQgaW5mby1yZWFkZXIgIi9iaW4vaW5mbyIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICJpbmZvIiAiLWQiIGluZm9kaXIgIi1mIiBmaWxlICItbiIgbm9k ZSkpKSkKCihkZWZpbmUgKGRvY3VtZW50YXRpb24tc2hlcGhlcmQtc2VydmljZSB0dHkpCiAg KGxpc3QgKHNoZXBoZXJkLXNlcnZpY2UKICAgICAgICAgKHByb3Zpc2lvbiAobGlzdCAoc3lt Ym9sLWFwcGVuZCAndGVybS0gKHN0cmluZy0+c3ltYm9sIHR0eSkpKSkKICAgICAgICAgKHJl cXVpcmVtZW50ICcodXNlci1wcm9jZXNzZXMgaG9zdC1uYW1lIHVkZXYgdmlydHVhbC10ZXJt aW5hbCkpCiAgICAgICAgIChzdGFydCAjfihsYW1iZGEqICgjOm9wdGlvbmFsIChsb2NhbGUg ImVuX1VTLnV0ZjgiKSkKICAgICAgICAgICAgICAgICAgICAoZm9yaytleGVjLWNvbW1hbmQK ICAgICAgICAgICAgICAgICAgICAgKGxpc3QgIyQobG9nLXRvLWluZm8gdHR5ICJkb2N1bWVu dGF0aW9uIikgbG9jYWxlKQogICAgICAgICAgICAgICAgICAgICAjOmVudmlyb25tZW50LXZh cmlhYmxlcwogICAgICAgICAgICAgICAgICAgICBgKCJHVUlYX0xPQ1BBVEg9L3J1bi9jdXJy ZW50LXN5c3RlbS9sb2NhbGUiCiAgICAgICAgICAgICAgICAgICAgICAgIlRFUk09bGludXgi KSkpKQogICAgICAgICAoc3RvcCAjfihtYWtlLWtpbGwtZGVzdHJ1Y3RvcikpKSkpCgooZGVm aW5lICVkb2N1bWVudGF0aW9uLXVzZXJzCiAgOzsgVXNlciBhY2NvdW50IGZvciB0aGUgSW5m byB2aWV3ZXIuCiAgKGxpc3QgKHVzZXItYWNjb3VudCAobmFtZSAiZG9jdW1lbnRhdGlvbiIp CiAgICAgICAgICAgICAgICAgICAgICAoc3lzdGVtPyAjdCkKICAgICAgICAgICAgICAgICAg ICAgIChncm91cCAibm9ncm91cCIpCiAgICAgICAgICAgICAgICAgICAgICAoaG9tZS1kaXJl Y3RvcnkgIi92YXIvZW1wdHkiKSkpKQoKKGRlZmluZSBkb2N1bWVudGF0aW9uLXNlcnZpY2Ut dHlwZQogIDs7IERvY3VtZW50YXRpb24gdmlld2VyIHNlcnZpY2UuCiAgKHNlcnZpY2UtdHlw ZSAobmFtZSAnZG9jdW1lbnRhdGlvbikKICAgICAgICAgICAgICAgIChleHRlbnNpb25zCiAg ICAgICAgICAgICAgICAgKGxpc3QgKHNlcnZpY2UtZXh0ZW5zaW9uIHNoZXBoZXJkLXJvb3Qt c2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvY3VtZW50YXRpb24tc2hlcGhlcmQtc2VydmljZSkKICAgICAgICAgICAgICAgICAgICAg ICAoc2VydmljZS1leHRlbnNpb24gYWNjb3VudC1zZXJ2aWNlLXR5cGUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0ICVkb2N1bWVudGF0aW9uLXVz ZXJzKSkpKQogICAgICAgICAgICAgICAgKGRlc2NyaXB0aW9uICJSdW4gdGhlIEluZm8gcmVh ZGVyIG9uIGEgdHR5LiIpKSkKCgwKKGRlZmluZSAlYmFja2luZy1kaXJlY3RvcnkKICA7OyBT dWItZGlyZWN0b3J5IHVzZWQgYXMgdGhlIGJhY2tpbmcgc3RvcmUgZm9yIGNvcHktb24td3Jp dGUuCiAgIi90bXAvZ3VpeC1pbnN0IikKCihkZWZpbmUgY293LXN0b3JlLXNlcnZpY2UtdHlw ZQogIChzaGVwaGVyZC1zZXJ2aWNlLXR5cGUKICAgJ2Nvdy1zdG9yZQogICAobGFtYmRhIF8K ICAgICAoZGVmaW5lIChpbXBvcnQtbW9kdWxlPyBtb2R1bGUpCiAgICAgICA7OyBTaW5jZSB3 ZSBkb24ndCB1c2UgZGVkdXBsaWNhdGlvbiBzdXBwb3J0IGluICdwb3B1bGF0ZS1zdG9yZScs IGRvbid0CiAgICAgICA7OyBpbXBvcnQgKGd1aXggc3RvcmUgZGVkdXBsaWNhdGlvbikgYW5k IGl0cyBkZXBlbmRlbmNpZXMsIHdoaWNoCiAgICAgICA7OyBpbmNsdWRlcyBHdWlsZS1HY3J5 cHQuCiAgICAgICAoYW5kIChndWl4LW1vZHVsZS1uYW1lPyBtb2R1bGUpCiAgICAgICAgICAg IChub3QgKGVxdWFsPyBtb2R1bGUgJyhndWl4IHN0b3JlIGRlZHVwbGljYXRpb24pKSkpKQoK ICAgICAoc2hlcGhlcmQtc2VydmljZQogICAgICAocmVxdWlyZW1lbnQgJyhyb290LWZpbGUt c3lzdGVtIHVzZXItcHJvY2Vzc2VzKSkKICAgICAgKHByb3Zpc2lvbiAnKGNvdy1zdG9yZSkp CiAgICAgIChkb2N1bWVudGF0aW9uCiAgICAgICAiTWFrZSB0aGUgc3RvcmUgY29weS1vbi13 cml0ZSwgd2l0aCB3cml0ZXMgZ29pbmcgdG8gXAp0aGUgZ2l2ZW4gdGFyZ2V0LiIpCgogICAg ICA7OyBUaGlzIGlzIG1lYW50IHRvIGJlIGV4cGxpY2l0bHkgc3RhcnRlZCBieSB0aGUgdXNl ci4KICAgICAgKGF1dG8tc3RhcnQ/ICNmKQoKICAgICAgKG1vZHVsZXMgYCgoZ251IGJ1aWxk IGluc3RhbGwpCiAgICAgICAgICAgICAgICAgLEAlZGVmYXVsdC1tb2R1bGVzKSkKICAgICAg KHN0YXJ0CiAgICAgICAod2l0aC1pbXBvcnRlZC1tb2R1bGVzIChzb3VyY2UtbW9kdWxlLWNs b3N1cmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKGdudSBidWlsZCBpbnN0 YWxsKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6c2VsZWN0PyBpbXBvcnQt bW9kdWxlPykKICAgICAgICAgI34oY2FzZS1sYW1iZGEKICAgICAgICAgICAgICgodGFyZ2V0 KQogICAgICAgICAgICAgIChtb3VudC1jb3ctc3RvcmUgdGFyZ2V0ICMkJWJhY2tpbmctZGly ZWN0b3J5KQogICAgICAgICAgICAgIHRhcmdldCkKICAgICAgICAgICAgIChlbHNlCiAgICAg ICAgICAgICAgOzsgRG8gbm90aGluZywgYW5kIG1hcmsgdGhlIHNlcnZpY2UgYXMgc3RvcHBl ZC4KICAgICAgICAgICAgICAjZikpKSkKICAgICAgKHN0b3AgI34obGFtYmRhICh0YXJnZXQp CiAgICAgICAgICAgICAgICA7OyBEZWxldGUgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnksIGJ1 dCBsZWF2ZSBldmVyeXRoaW5nCiAgICAgICAgICAgICAgICA7OyBtb3VudGVkIGFzIHRoZXJl IG1heSBzdGlsbCBiZSBwcm9jZXNzZXMgdXNpbmcgaXQgc2luY2UKICAgICAgICAgICAgICAg IDs7ICd1c2VyLXByb2Nlc3NlcycgZG9lc24ndCBkZXBlbmQgb24gdXMuICBUaGUgJ3VzZXIt ZmlsZS1zeXN0ZW1zJwogICAgICAgICAgICAgICAgOzsgc2VydmljZSB3aWxsIHVubW91bnQg VEFSR0VUIGV2ZW50dWFsbHkuCiAgICAgICAgICAgICAgICAoZGVsZXRlLWZpbGUtcmVjdXJz aXZlbHkKICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCB0YXJnZXQgIyQlYmFja2lu Zy1kaXJlY3RvcnkpKSkpKSkKICAgKGRlc2NyaXB0aW9uICJNYWtlIHRoZSBzdG9yZSBjb3B5 LW9uLXdyaXRlLCB3aXRoIHdyaXRlcyBnb2luZyB0byBcCnRoZSBnaXZlbiB0YXJnZXQuIikp KQoKKGRlZmluZSAoY293LXN0b3JlLXNlcnZpY2UpCiAgIlJldHVybiBhIHNlcnZpY2UgdGhh dCBtYWtlcyB0aGUgc3RvcmUgY29weS1vbi13cml0ZSwgc3VjaCB0aGF0IHdyaXRlcyBnbyB0 bwp0aGUgdXNlcidzIHRhcmdldCBzdG9yYWdlIGRldmljZSByYXRoZXIgdGhhbiBvbiB0aGUg UkFNIGRpc2suIgogIDs7IFNlZSA8aHR0cDovL2J1Z3MuZ251Lm9yZy8xODA2MT4gZm9yIHRo ZSBpbml0aWFsIHJlcG9ydC4KICAoc2VydmljZSBjb3ctc3RvcmUtc2VydmljZS10eXBlICdt b29vb2ghKSkKCgooZGVmaW5lICgvZXRjL2NvbmZpZ3VyYXRpb24tZmlsZXMgXykKICAiUmV0 dXJuIGEgbGlzdCBvZiB0dXBsZXMgcmVwcmVzZW50aW5nIGNvbmZpZ3VyYXRpb24gdGVtcGxh dGVzIHRvIGFkZCB0bwovZXRjLiIKICAoZGVmaW5lIGRpcmVjdG9yeQogICAgKGNvbXB1dGVk LWZpbGUgImNvbmZpZ3VyYXRpb24tdGVtcGxhdGVzIgogICAgICAgICAgICAgICAgICAgKHdp dGgtaW1wb3J0ZWQtbW9kdWxlcyAnKChndWl4IGJ1aWxkIHV0aWxzKSkKICAgICAgICAgICAg ICAgICAgICAgI34oYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgIChta2RpciAjJG91 dHB1dCkKICAgICAgICAgICAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChmaWxl IHRhcmdldCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3B5LWZp bGUgZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyaW5nLWFwcGVuZCAjJG91dHB1dCAiLyIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0KSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygjJChsb2NhbC1maWxlICJleGFtcGxl cy9iYXJlLWJvbmVzLnRtcGwiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyQobG9jYWwtZmlsZSAiZXhhbXBsZXMvYmVhZ2xlYm9uZS1ibGFjay50bXBsIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMkKGxvY2FsLWZpbGUgImV4YW1w bGVzL2Rlc2t0b3AudG1wbCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjJChsb2NhbC1maWxlICJleGFtcGxlcy9saWdodHdlaWdodC1kZXNrdG9wLnRtcGwiKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJiYXJlLWJvbmVzLnNjbSIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZWFnbGVib25lLWJsYWNr LnNjbSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNrdG9wLnNj bSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaWdodHdlaWdodC1k ZXNrdG9wLnNjbSIpKQogICAgICAgICAgICAgICAgICAgICAgICAgI3QpKSkpCgogIGAoKCJj b25maWd1cmF0aW9uIiAsZGlyZWN0b3J5KSkpCgooZGVmaW5lIGNvbmZpZ3VyYXRpb24tdGVt cGxhdGUtc2VydmljZS10eXBlCiAgKHNlcnZpY2UtdHlwZSAobmFtZSAnY29uZmlndXJhdGlv bi10ZW1wbGF0ZSkKICAgICAgICAgICAgICAgIChleHRlbnNpb25zCiAgICAgICAgICAgICAg ICAgKGxpc3QgKHNlcnZpY2UtZXh0ZW5zaW9uIGV0Yy1zZXJ2aWNlLXR5cGUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9jb25maWd1cmF0aW9uLWZp bGVzKSkpCiAgICAgICAgICAgICAgICAoZGVzY3JpcHRpb24gIkluc3RhbGwgdGhlIG9wZXJh dGluZyBzeXN0ZW0gY29uZmlndXJhdGlvbiBmaWxlCnRlbXBsYXRlcyB1bmRlciBAZmlsZXsv ZXRjL2NvbmZpZ3VyYXRpb259LiIpKSkKCihkZWZpbmUgJWNvbmZpZ3VyYXRpb24tdGVtcGxh dGUtc2VydmljZQogIChzZXJ2aWNlIGNvbmZpZ3VyYXRpb24tdGVtcGxhdGUtc2VydmljZS10 eXBlICN0KSkKCgooZGVmaW5lICVuc2NkLW1pbmltYWwtY2FjaGVzCiAgOzsgTWluaW1hbCBp bi1tZW1vcnkgY2FjaGluZyBwb2xpY3kgZm9yIG5zY2QuCiAgKGxpc3QgKG5zY2QtY2FjaGUg KGRhdGFiYXNlICdob3N0cykKICAgICAgICAgICAgICAgICAgICAocG9zaXRpdmUtdGltZS10 by1saXZlICgqIDM2MDAgMTIpKQoKICAgICAgICAgICAgICAgICAgICA7OyBEbyBub3QgY2Fj aGUgbG9va3VwIGZhaWx1cmVzIGF0IGFsbCBzaW5jZSB0aGV5IGFyZQogICAgICAgICAgICAg ICAgICAgIDs7IHF1aXRlIGxpa2VseSAoZm9yIGluc3RhbmNlIHdoZW4gc29tZW9uZSB0cmll cyB0byBwaW5nIGEKICAgICAgICAgICAgICAgICAgICA7OyBob3N0IGJlZm9yZSBuZXR3b3Jr aW5nIGlzIGZ1bmN0aW9uYWwuKQogICAgICAgICAgICAgICAgICAgIChuZWdhdGl2ZS10aW1l LXRvLWxpdmUgMCkKCiAgICAgICAgICAgICAgICAgICAgKHBlcnNpc3RlbnQ/ICNmKQogICAg ICAgICAgICAgICAgICAgIChtYXgtZGF0YWJhc2Utc2l6ZSAoKiA1IChleHB0IDIgMjApKSkp KSkgOzUgTWlCCgoMCjs7IFRoZXNlIGRlZmluZSBhIHNlcnZpY2UgdG8gbG9hZCB0aGUgdXZl c2FmYiBrZXJuZWwgbW9kdWxlIHdpdGggdGhlCjs7IGFwcHJvcHJpYXRlIG9wdGlvbnMuICBU aGUgR1VJIGluc3RhbGxlciBuZWVkcyBpdCB3aGVuIHRoZSBtYWNoaW5lIGRvZXMgbm90Cjs7 IHN1cHBvcnQgS2VybmVsIE1vZGUgU2V0dGluZy4gIE90aGVyd2lzZSBrbXNjb24gaXMgbWlz c2luZyAvZGV2L2ZiMC4KKGRlZmluZSAodXZlc2FmYi1zaGVwaGVyZC1zZXJ2aWNlIF8pCiAg KGRlZmluZSBtb2Rwcm9iZQogICAgKHByb2dyYW0tZmlsZSAibW9kcHJvYmUtd3JhcHBlciIK ICAgICAgICAgICAgICAgICAgI34oYmVnaW4KICAgICAgICAgICAgICAgICAgICAgIDs7IFVz ZSBhIHdyYXBwZXIgYmVjYXVzZSBzaGVwaGVyZCAwLjkuMyB3b24ndCBsZXQgdXMKICAgICAg ICAgICAgICAgICAgICAgIDs7IHBhc3MgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHRoZSBj aGlsZCBwcm9jZXNzOgogICAgICAgICAgICAgICAgICAgICAgOzsgPGh0dHBzOi8vaXNzdWVz Lmd1aXguZ251Lm9yZy82MDEwNj4uCiAgICAgICAgICAgICAgICAgICAgICAoc2V0ZW52ICJM SU5VWF9NT0RVTEVfRElSRUNUT1JZIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi L3J1bi9ib290ZWQtc3lzdGVtL2tlcm5lbC9saWIvbW9kdWxlcyIpCiAgICAgICAgICAgICAg ICAgICAgICAoYXBwbHkgZXhlY2wgIyQoZmlsZS1hcHBlbmQga21vZCAiL2Jpbi9tb2Rwcm9i ZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHByb2JlIiAoY2RyIChjb21t YW5kLWxpbmUpKSkpKSkKCiAgKGxpc3QgKHNoZXBoZXJkLXNlcnZpY2UKICAgICAgICAgKGRv Y3VtZW50YXRpb24gIkxvYWQgdGhlIHV2ZXNhZmIga2VybmVsIG1vZHVsZSBpZiBuZWVkZWQu IikKICAgICAgICAgKHByb3Zpc2lvbiAnKG1heWJlLXV2ZXNhZmIpKQogICAgICAgICAocmVx dWlyZW1lbnQgJyhmaWxlLXN5c3RlbXMpKQogICAgICAgICAoc3RhcnQgI34obGFtYmRhICgp CiAgICAgICAgICAgICAgICAgICAgKG9yIChmaWxlLWV4aXN0cz8gIi9kZXYvZmIwIikKICAg ICAgICAgICAgICAgICAgICAgICAgKGludm9rZSAjK21vZHByb2JlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInV2ZXNhZmIiCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHN0cmluZy1hcHBlbmQgInY4NmQ9IiAjJHY4NmQgIi9zYmluL3Y4NmQiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlX29wdGlvbj0xMDI0eDc2OCIpKSkp CiAgICAgICAgIChyZXNwYXduPyAjZikKICAgICAgICAgKG9uZS1zaG90PyAjdCkpKSkKCihk ZWZpbmUgdXZlc2FmYi1zZXJ2aWNlLXR5cGUKICAoc2VydmljZS10eXBlCiAgIChuYW1lICd1 dmVzYWZiKQogICAoZXh0ZW5zaW9ucwogICAgKGxpc3QgKHNlcnZpY2UtZXh0ZW5zaW9uIHNo ZXBoZXJkLXJvb3Qtc2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dXZlc2FmYi1zaGVwaGVyZC1zZXJ2aWNlKSkpCiAgIChkZXNjcmlwdGlvbgogICAgIkxvYWQg dGhlIEBjb2Rle3V2ZXNhZmJ9IGtlcm5lbCBtb2R1bGUgd2l0aCB0aGUgcmlnaHQgb3B0aW9u cy4iKQogICAoZGVmYXVsdC12YWx1ZSAjdCkpKQoKKGRlZmluZSogKCVpbnN0YWxsYXRpb24t c2VydmljZXMgIzprZXkgKHN5c3RlbSAob3IgKGFuZD0+CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtdGFyZ2V0LXN5c3Rl bSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBsYXRmb3JtLXRhcmdldC0+c3lzdGVtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpKQogIDs7IExpc3Qg b2Ygc2VydmljZXMgb2YgdGhlIGluc3RhbGxhdGlvbiBzeXN0ZW0uCiAgKGxldCAoKG1vdGQg KHBsYWluLWZpbGUgIm1vdGQiICIKXHgxYlsxOzM3bVdlbGNvbWUgdG8gdGhlIGluc3RhbGxh dGlvbiBvZiBHTlUgR3VpeCFceDFiWzBtCgpceDFiWzJtXApVc2luZyB0aGlzIHNoZWxsLCB5 b3UgY2FuIGNhcnJ5IG91dCB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MgXCJtYW51YWxseS5c IgpBY2Nlc3MgZG9jdW1lbnRhdGlvbiBhdCBhbnkgdGltZSBieSBwcmVzc2luZyBBbHQtRjIu XHgxYlswbQoiKSkpCiAgICAoZGVmaW5lIChub3JtYWwtdHR5IHR0eSkKICAgICAgKHNlcnZp Y2UgbWluZ2V0dHktc2VydmljZS10eXBlCiAgICAgICAgICAgICAgIChtaW5nZXR0eS1jb25m aWd1cmF0aW9uICh0dHkgdHR5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYXV0by1sb2dpbiAicm9vdCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsb2dpbi1wYXVzZT8gI3QpKSkpCgogICAgKGRlZmluZSBiYXJlLWJvbmVz LW9zCiAgICAgIChsb2FkICJleGFtcGxlcy9iYXJlLWJvbmVzLnRtcGwiKSkKCiAgICAoYXBw ZW5kCiAgICAgOzsgR2VuZXJpYyBzZXJ2aWNlcwogICAgIChsaXN0IChzZXJ2aWNlIHZpcnR1 YWwtdGVybWluYWwtc2VydmljZS10eXBlKQoKICAgICAgICAgICAoc2VydmljZSBrbXNjb24t c2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAgKGttc2Nvbi1jb25maWd1cmF0aW9u CiAgICAgICAgICAgICAgICAgICAgICh2aXJ0dWFsLXRlcm1pbmFsICJ0dHkxIikKICAgICAg ICAgICAgICAgICAgICAgKGxvZ2luLXByb2dyYW0gKGluc3RhbGxlci1wcm9ncmFtKSkpKQoK ICAgICAgICAgICAoc2VydmljZSBsb2dpbi1zZXJ2aWNlLXR5cGUKICAgICAgICAgICAgICAg ICAgICAobG9naW4tY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgICAgICAobW90ZCBt b3RkKSkpCgogICAgICAgICAgIDs7IERvY3VtZW50YXRpb24uICBUaGUgbWFudWFsIGlzIGlu IFVURi04LCBidXQKICAgICAgICAgICA7OyAnY29uc29sZS1mb250LXNlcnZpY2UnIHNldHMg dXAgVW5pY29kZSBzdXBwb3J0IGFuZCBsb2FkcyBhIGZvbnQKICAgICAgICAgICA7OyB3aXRo IGFsbCB0aGUgdXNlZnVsIGdseXBocyBsaWtlIGVtIGRhc2ggYW5kIHF1b3RhdGlvbiBtYXJr cy4KICAgICAgICAgICAoc2VydmljZSBkb2N1bWVudGF0aW9uLXNlcnZpY2UtdHlwZSAidHR5 MiIpCgogICAgICAgICAgIDs7IERvY3VtZW50YXRpb24gYWRkLW9uLgogICAgICAgICAgICVj b25maWd1cmF0aW9uLXRlbXBsYXRlLXNlcnZpY2UKCiAgICAgICAgICAgOzsgQSBidW5jaCBv ZiAncm9vdCcgdHR5cy4KICAgICAgICAgICAobm9ybWFsLXR0eSAidHR5MyIpCiAgICAgICAg ICAgKG5vcm1hbC10dHkgInR0eTQiKQogICAgICAgICAgIChub3JtYWwtdHR5ICJ0dHk1IikK ICAgICAgICAgICAobm9ybWFsLXR0eSAidHR5NiIpCgogICAgICAgICAgIDs7IFRoZSB1c3Vh bCBzZXJ2aWNlcy4KICAgICAgICAgICAoc2VydmljZSBzeXNsb2ctc2VydmljZS10eXBlKQoK ICAgICAgICAgICA7OyBVc2UgdGhlIEF2YWhpIGRhZW1vbiB0byBkaXNjb3ZlciBzdWJzdGl0 dXRlIHNlcnZlcnMgb24gdGhlIGxvY2FsCiAgICAgICAgICAgOzsgbmV0d29yay4gIEl0IGNh biBiZSBmYXN0ZXIgdGhhbiBmZXRjaGluZyBmcm9tIHJlbW90ZSBzZXJ2ZXJzLgogICAgICAg ICAgIChzZXJ2aWNlIGF2YWhpLXNlcnZpY2UtdHlwZSkKCiAgICAgICAgICAgOzsgVGhlIGJ1 aWxkIGRhZW1vbi4KICAgICAgICAgICAoc2VydmljZSBndWl4LXNlcnZpY2UtdHlwZQogICAg ICAgICAgICAgICAgICAgIChndWl4LWNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgICAgICAg ICAgOzsgUmVnaXN0ZXIgdGhlIGRlZmF1bHQgc3Vic3RpdHV0ZSBzZXJ2ZXIga2V5KHMpIGFz CiAgICAgICAgICAgICAgICAgICAgIDs7IHRydXN0ZWQgdG8gYWxsb3cgdGhlIGluc3RhbGxh dGlvbiBwcm9jZXNzIHRvIHVzZQogICAgICAgICAgICAgICAgICAgICA7OyBzdWJzdGl0dXRl cyBieSBkZWZhdWx0LgogICAgICAgICAgICAgICAgICAgICAoYXV0aG9yaXplLWtleT8gI3Qp CgogICAgICAgICAgICAgICAgICAgICA7OyBJbnN0YWxsIGFuZCBydW4gdGhlIGN1cnJlbnQg R3VpeCByYXRoZXIgdGhhbiBhbiBvbGRlcgogICAgICAgICAgICAgICAgICAgICA7OyBzbmFw c2hvdC4KICAgICAgICAgICAgICAgICAgICAgKGd1aXggKGN1cnJlbnQtZ3VpeCkpKSkKCiAg ICAgICAgICAgOzsgU3RhcnQgdWRldiBzbyB0aGF0IHVzZWZ1bCBkZXZpY2Ugbm9kZXMgYXJl IGF2YWlsYWJsZS4KICAgICAgICAgICA7OyBVc2UgZGV2aWNlLW1hcHBlciBydWxlcyBmb3Ig Y3J5cHRzZXR1cCAmIGNvOyBlbmFibGUgdGhlIENSREEgZm9yCiAgICAgICAgICAgOzsgcmVn dWxhdGlvbnMtY29tcGxpYW50IFdpRmkgYWNjZXNzLgogICAgICAgICAgIChzZXJ2aWNlIHVk ZXYtc2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAgKHVkZXYtY29uZmlndXJhdGlv bgogICAgICAgICAgICAgICAgICAgICAocnVsZXMgKGxpc3QgbHZtMiBjcmRhKSkpKQoKICAg ICAgICAgICA7OyBBZGQgdGhlICdjb3ctc3RvcmUnIHNlcnZpY2UsIHdoaWNoIHVzZXJzIGhh dmUgdG8gc3RhcnQgbWFudWFsbHkKICAgICAgICAgICA7OyBzaW5jZSBpdCB0YWtlcyB0aGUg aW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBhcyBhbiBhcmd1bWVudC4KICAgICAgICAgICAoY293 LXN0b3JlLXNlcnZpY2UpCgogICAgICAgICAgIDs7IEluc3RhbGwgVW5pY29kZSBzdXBwb3J0 IGFuZCBhIHN1aXRhYmxlIGZvbnQuCiAgICAgICAgICAgKHNlcnZpY2UgY29uc29sZS1mb250 LXNlcnZpY2UtdHlwZQogICAgICAgICAgICAgICAgICAgIChtYXAgKG1hdGNoLWxhbWJkYQog ICAgICAgICAgICAgICAgICAgICAgICAgICAoInR0eTIiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7OyBVc2UgYSBmb250IHRoYXQgY29udGFpbnMgY2hhcmFjdGVycyBzdWNoIGFz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjdXJseSBxdW90ZXMgYXMgZm91bmQg aW4gdGhlIG1hbnVhbC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoInR0eTIiIC4g IkxhdEdya0N5ci04eDE2IikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh0dHkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFVzZSBhIGZvbnQgdGhhdCBkb2Vzbid0IGhh dmUgbW9yZSB0aGFuIDI1NgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgZ2x5cGhz IHNvIHRoYXQgd2UgY2FuIHVzZSBjb2xvcnMgd2l0aCB2YXJ5aW5nCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7OyBicmlnaHRuZXNzIGxldmVscyAoc2VlIG5vdGUgaW4gc2V0Zm9u dCg4KSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKCx0dHkgLiAibGF0OXUtMTYi KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAnKCJ0dHkxIiAidHR5MiIgInR0eTMiICJ0 dHk0IiAidHR5NSIgInR0eTYiKSkpCgogICAgICAgICAgIDs7IFRvIGZhY2lsaXRhdGUgY29w eS9wYXN0ZS4KICAgICAgICAgICAoc2VydmljZSBncG0tc2VydmljZS10eXBlKQoKICAgICAg ICAgICA7OyBBZGQgYW4gU1NIIHNlcnZlciB0byBmYWNpbGl0YXRlIHJlbW90ZSBpbnN0YWxs cy4KICAgICAgICAgICAoc2VydmljZSBvcGVuc3NoLXNlcnZpY2UtdHlwZQogICAgICAgICAg ICAgICAgICAgIChvcGVuc3NoLWNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgICAgICAgICAg KHBvcnQtbnVtYmVyIDIyKQogICAgICAgICAgICAgICAgICAgICAocGVybWl0LXJvb3QtbG9n aW4gI3QpCiAgICAgICAgICAgICAgICAgICAgIDs7IFRoZSByb290IGFjY291bnQgaXMgcGFz c3dvcmRsZXNzLCBzbyBtYWtlIHN1cmUKICAgICAgICAgICAgICAgICAgICAgOzsgYSBwYXNz d29yZCBpcyBzZXQgYmVmb3JlIGFsbG93aW5nIGxvZ2lucy4KICAgICAgICAgICAgICAgICAg ICAgKGFsbG93LWVtcHR5LXBhc3N3b3Jkcz8gI2YpCiAgICAgICAgICAgICAgICAgICAgIChw YXNzd29yZC1hdXRoZW50aWNhdGlvbj8gI3QpCgogICAgICAgICAgICAgICAgICAgICA7OyBE b24ndCBzdGFydCBpdCB1cGZyb250LgogICAgICAgICAgICAgICAgICAgICAoJWF1dG8tc3Rh cnQ/ICNmKSkpCgogICAgICAgICAgIDs7IFNpbmNlIHRoaXMgaXMgcnVubmluZyBvbiBhIFVT QiBzdGljayB3aXRoIGEgb3ZlcmxheWZzIGFzIHRoZSByb290CiAgICAgICAgICAgOzsgZmls ZSBzeXN0ZW0sIHVzZSBhbiBhcHByb3ByaWF0ZSBjYWNoZSBjb25maWd1cmF0aW9uLgogICAg ICAgICAgIChzZXJ2aWNlIG5zY2Qtc2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAg KG5zY2QtY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgICAgICAoY2FjaGVzICVuc2Nk LW1pbmltYWwtY2FjaGVzKSkpCgogICAgICAgICAgIDs7IEhhdmluZyAvYmluL3NoIGlzIGEg Z29vZCBpZGVhLiAgSW4gcGFydGljdWxhciBpdCBhbGxvd3MgVHJhbXAKICAgICAgICAgICA7 OyBjb25uZWN0aW9ucyB0byB0aGlzIHN5c3RlbSB0byB3b3JrLgogICAgICAgICAgIChzZXJ2 aWNlIHNwZWNpYWwtZmlsZXMtc2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAgYCgo Ii9iaW4vc2giICwoZmlsZS1hcHBlbmQgYmFzaCAiL2Jpbi9zaCIpKSkpCgogICAgICAgICAg IDs7IExvb3BiYWNrIGRldmljZSwgbmVlZGVkIGJ5IE9wZW5TU0ggbm90YWJseS4KICAgICAg ICAgICAoc2VydmljZSBzdGF0aWMtbmV0d29ya2luZy1zZXJ2aWNlLXR5cGUKICAgICAgICAg ICAgICAgICAgICAobGlzdCAlbG9vcGJhY2stc3RhdGljLW5ldHdvcmtpbmcpKQoKICAgICAg ICAgICAoc2VydmljZSB3cGEtc3VwcGxpY2FudC1zZXJ2aWNlLXR5cGUpCiAgICAgICAgICAg KHNlcnZpY2UgZGJ1cy1yb290LXNlcnZpY2UtdHlwZSkKICAgICAgICAgICAoc2VydmljZSBj b25ubWFuLXNlcnZpY2UtdHlwZQogICAgICAgICAgICAgICAgICAgIChjb25ubWFuLWNvbmZp Z3VyYXRpb24KICAgICAgICAgICAgICAgICAgICAgKGRpc2FibGUtdnBuPyAjdCkpKQogICAg ICAgICAgIAogICAgICAgICAgIDs7OyBBZGQgWEZDRSBhbmQgTUFURSB0byB0aGUgaW5zdGFs bGF0aW9uIElTTy4KICAgICAgICAgICAoc2VydmljZSBlbG9naW5kLXNlcnZpY2UtdHlwZSkK ICAgICAgICAgICAoc2VydmljZSBtYXRlLWRlc2t0b3Atc2VydmljZS10eXBlKQogICAgICAg ICAgIChzZXJ2aWNlIHhmY2UtZGVza3RvcC1zZXJ2aWNlLXR5cGUpCiAgICAgICAgICAgKHNl dC14b3JnLWNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgKHhvcmctY29uZmlndXJhdGlvbgog ICAgICAgICAgICAgKGtleWJvYXJkLWxheW91dCAjZikpCiAgICAgICAgICAgIHNkZG0tc2Vy dmljZS10eXBlKQoKICAgICAgICAgICA7OyBLZWVwIGEgcmVmZXJlbmNlIHRvIEJBUkUtQk9O RVMtT1MgdG8gbWFrZSBzdXJlIGl0IGNhbiBiZQogICAgICAgICAgIDs7IGluc3RhbGxlZCB3 aXRob3V0IGRvd25sb2FkaW5nL2J1aWxkaW5nIGFueXRoaW5nLiAgQWxzbyBrZWVwIHRoZQog ICAgICAgICAgIDs7IHRoaW5ncyBuZWVkZWQgYnkgJ3Byb2ZpbGUtZGVyaXZhdGlvbicgdG8g bWluaW1pemUgdGhlIGFtb3VudCBvZgogICAgICAgICAgIDs7IGRvd25sb2FkLgogICAgICAg ICAgIChzZXJ2aWNlIGdjLXJvb3Qtc2VydmljZS10eXBlCiAgICAgICAgICAgICAgICAgICAg KGFwcGVuZAogICAgICAgICAgICAgICAgICAgICAobGlzdCBiYXJlLWJvbmVzLW9zCiAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaWJjLXV0ZjgtbG9jYWxlcy1mb3ItdGFyZ2V0IHN5 c3RlbSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4aW5mbwogICAgICAgICAgICAg ICAgICAgICAgICAgICBndWlsZS0zLjApCiAgICAgICAgICAgICAgICAgICAgICVkZWZhdWx0 LWxvY2FsZS1saWJjcykpKQogICAgIAogICAgIDs7IFNwZWNpZmljIHN5c3RlbSBzZXJ2aWNl cwoKICAgICA7OyBNYWNoaW5lcyB3aXRob3V0IEtlcm5lbCBNb2RlIFNldHRpbmcgKHRob3Nl IHdpdGggbWFueSBvbGQgYW5kCiAgICAgOzsgY3VycmVudCBBTUQgR1BVcywgU2lTIEdQVXMs IC4uLikgbmVlZCB1dmVzYWZiIHRvIHNob3cgdGhlIEdVSQogICAgIDs7IGluc3RhbGxlci4g IFNvbWUgbWF5IGFsc28gbmVlZCBhIGtlcm5lbCBwYXJhbWV0ZXIgbGlrZSBub21vZGVzZXQK ICAgICA7OyBvciB2Z2E9NzkzLCBidXQgd2UgbGVhdmUgdGhhdCBmb3IgdGhlIHVzZXIgdG8g c3BlY2lmeSBpbiBHUlVCLgogICAgIGAoLEAoaWYgKHN1cHBvcnRlZC1wYWNrYWdlPyB2ODZk IHN5c3RlbSkKICAgICAgICAgICAgIChsaXN0IChzZXJ2aWNlIHV2ZXNhZmItc2VydmljZS10 eXBlKSkKICAgICAgICAgICAgICcoKSkpKSkpCgooZGVmaW5lICVpc3N1ZQogIDs7IEdyZWV0 aW5nLgogICIKXHgxYlsxOzM3bVRoaXMgaXMgYW4gaW5zdGFsbGF0aW9uIGltYWdlIG9mIHRo ZSBHTlUgc3lzdGVtLiAgV2VsY29tZS5ceDFiWzBtCgpceDFiWzE7MzNtVXNlIEFsdC1GMiBm b3IgZG9jdW1lbnRhdGlvbi5ceDFiWzBtCiIpCgooZGVmaW5lICVpbnN0YWxsZXItZGlzay11 dGlsaXRpZXMKICA7OyBBIHdlbGwtcm91bmRlZCBzZXQgb2YgcGFja2FnZXMgZm9yIGludGVy YWN0aW5nIHdpdGggZGlza3MsIHBhcnRpdGlvbnMgYW5kCiAgOzsgZmlsZSBzeXN0ZW1zLCBp bmNsdWRlZCB3aXRoIHRoZSBHdWl4IGluc3RhbGxhdGlvbiBpbWFnZS4KICAobGlzdCBwYXJ0 ZWQgZ3B0ZmRpc2sgZGRyZXNjdWUKICAgICAgICA7OyBVc2UgdGhlIHN0YXRpYyBMVk0yIGJl Y2F1c2UgaXQncyBhbHJlYWR5IHB1bGxlZCBpbiBieSB0aGUgaW5zdGFsbGVyLgogICAgICAg IGx2bTItc3RhdGljCiAgICAgICAgOzsgV2UgdXNlZCB0byBwcm92aWRlIGZkaXNrIGZyb20g R05VIGZkaXNrLCBidXQgYXMgb2YgdmVyc2lvbiAyLjAuMGEKICAgICAgICA7OyBpdCBwdWxs cyBHdWlsZSAxLjgsIHdoaWNoIHRha2VzIHVucmVhc29uYWJsZSBzcGFjZTsgZnVydGhlcm1v cmUKICAgICAgICA7OyB1dGlsLWxpbnV4J3MgZmRpc2sgaXMgYWxyZWFkeSBhdmFpbGFibGUs IGluICViYXNlLXBhY2thZ2VzLWxpbnV4LgogICAgICAgIGNyeXB0c2V0dXAgbWRhZG0KICAg ICAgICBkb3Nmc3Rvb2xzCiAgICAgICAgYnRyZnMtcHJvZ3MKICAgICAgICBlMmZzcHJvZ3MK ICAgICAgICBmMmZzLXRvb2xzCiAgICAgICAgamZzdXRpbHMKICAgICAgICB4ZnNwcm9ncykp CgooZGVmaW5lIGluc3RhbGxhdGlvbi1vcwogIDs7IFRoZSBvcGVyYXRpbmcgc3lzdGVtIHVz ZWQgb24gaW5zdGFsbGF0aW9uIGltYWdlcyBmb3IgVVNCIHN0aWNrcyBldGMuCiAgKG9wZXJh dGluZy1zeXN0ZW0KICAgIChob3N0LW5hbWUgImdudSIpCiAgICAodGltZXpvbmUgIkV1cm9w ZS9QYXJpcyIpCiAgICAobG9jYWxlICJlbl9VUy51dGY4IikKICAgIChuYW1lLXNlcnZpY2Ut c3dpdGNoICVtZG5zLWhvc3QtbG9va3VwLW5zcykKICAgIDsoa2V5Ym9hcmQtbGF5b3V0IChr ZXlib2FyZC1sYXlvdXQgInVzIiAiYWx0Z3ItaW50bCIpKQogICAgKGJvb3Rsb2FkZXIgKGJv b3Rsb2FkZXItY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgIChib290bG9hZGVyIGdy dWItYm9vdGxvYWRlcikKICAgICAgICAgICAgICAgICAodGFyZ2V0cyAnKCIvZGV2L3NkYSIp KSkpCiAgICAobGFiZWwgKHN0cmluZy1hcHBlbmQgIkdOVSBHdWl4IGluc3RhbGxhdGlvbiAi CiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChnZXRlbnYgIkdVSVhfRElTUExBWUVE X1ZFUlNJT04iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS12ZXJz aW9uIGd1aXgpKSkpCgogICAgOzsgWFhYOiBUaGUgQU1EIFJhZGVvbiBkcml2ZXIgaXMgcmVw b3J0ZWRseSBicm9rZW4sIHdoaWNoIG1ha2VzIGttc2NvbgogICAgOzsgbm9uLWZ1bmN0aW9u YWw6CiAgICA7OyA8aHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRl dmVsLzIwMTktMDMvbXNnMDA0NDEuaHRtbD4uCiAgICA7OyBUaHVzLCBibGFja2xpc3QgaXQu CiAgICAoa2VybmVsLWFyZ3VtZW50cyAnKCJxdWlldCIgIm1vZHByb2JlLmJsYWNrbGlzdD1y YWRlb24sYW1kZ3B1IikpCgogICAgKGZpbGUtc3lzdGVtcwogICAgIDs7IE5vdGU6IHRoZSBk aXNrIGltYWdlIGJ1aWxkIGNvZGUgb3ZlcnJpZGVzIHRoaXMgcm9vdCBmaWxlIHN5c3RlbSB3 aXRoCiAgICAgOzsgdGhlIGFwcHJvcHJpYXRlIG9uZS4KICAgICAoYXBwZW5kICViYXNlLWxp dmUtZmlsZS1zeXN0ZW1zCgogICAgICAgICAgICA7OyBYWFg6IFRoaXMgc2hvdWxkIGJlICVC QVNFLUZJTEUtU1lTVEVNUyBidXQgd2UgZG9uJ3QgbmVlZAogICAgICAgICAgICA7OyBlbG9n aW5kJ3MgY2dyb3VwIGZpbGUgc3lzdGVtcy4KICAgICAgICAgICAgKGxpc3QgJXBzZXVkby10 ZXJtaW5hbC1maWxlLXN5c3RlbQogICAgICAgICAgICAgICAgICAlc2hhcmVkLW1lbW9yeS1m aWxlLXN5c3RlbQogICAgICAgICAgICAgICAgICAlZWZpdmFycy1maWxlLXN5c3RlbQogICAg ICAgICAgICAgICAgICAlaW1tdXRhYmxlLXN0b3JlKSkpCgogICAgKHVzZXJzIChsaXN0ICh1 c2VyLWFjY291bnQKICAgICAgICAgICAgICAgICAgKG5hbWUgImd1ZXN0IikKICAgICAgICAg ICAgICAgICAgKGdyb3VwICJ1c2VycyIpCiAgICAgICAgICAgICAgICAgIChzdXBwbGVtZW50 YXJ5LWdyb3VwcyAnKCJ3aGVlbCIpKSA7IGFsbG93IHVzZSBvZiBzdWRvCiAgICAgICAgICAg ICAgICAgIChwYXNzd29yZCAiIikKICAgICAgICAgICAgICAgICAgKGNvbW1lbnQgIkd1ZXN0 IG9mIEdOVSIpKSkpCgogICAgKGlzc3VlICVpc3N1ZSkKICAgIChzZXJ2aWNlcyAoJWluc3Rh bGxhdGlvbi1zZXJ2aWNlcykpCgogICAgOzsgV2UgZG9uJ3QgbmVlZCBzZXR1aWQgcHJvZ3Jh bXMsIGV4Y2VwdCBmb3IgJ3Bhc3N3ZCcsIHdoaWNoIGNhbiBiZSBoYW5keQogICAgOzsgaWYg b25lIGlzIHRvIGFsbG93IHJlbW90ZSBTU0ggbG9naW4gdG8gdGhlIG1hY2hpbmUgYmVpbmcg aW5zdGFsbGVkLgogICAgKHNldHVpZC1wcm9ncmFtcyAobGlzdCAoc2V0dWlkLXByb2dyYW0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9ncmFtIChmaWxlLWFwcGVuZCBzaGFk b3cgIi9iaW4vcGFzc3dkIikpKSkpCgogICAgKHBhbS1zZXJ2aWNlcwogICAgIDs7IEV4cGxp Y2l0bHkgYWxsb3cgZm9yIGVtcHR5IHBhc3N3b3Jkcy4KICAgICAoYmFzZS1wYW0tc2Vydmlj ZXMgIzphbGxvdy1lbXB0eS1wYXNzd29yZHM/ICN0KSkKCiAgICAocGFja2FnZXMgKGFwcGVu ZAogICAgICAgICAgICAgICAgKGxpc3QgZ2xpYmMgICAgICAgICA7IGZvciAndHpzZWxlY3Qn ICYgY28uCiAgICAgICAgICAgICAgICAgICAgICBmb250Y29uZmlnCiAgICAgICAgICAgICAg ICAgICAgICBmb250LWRlamF2dSBmb250LWdudS11bmlmb250CiAgICAgICAgICAgICAgICAg ICAgICBncnViICAgICAgICAgIDsgbW9zdGx5IHNvIHhyZWZzIHRvIGl0cyBtYW51YWwgd29y awogICAgICAgICAgICAgICAgICAgICAgbnNzLWNlcnRzKSAgICA7IFRvIGFjY2VzcyBIVFRQ UywgdXNlIGdpdCwgZXRjLgogICAgICAgICAgICAgICAgJWluc3RhbGxlci1kaXNrLXV0aWxp dGllcwogICAgICAgICAgICAgICAgJWJhc2UtcGFja2FnZXMpKSkpCgooZGVmaW5lKiAob3Mt d2l0aC11LWJvb3Qgb3MgYm9hcmQgIzprZXkgKGJvb3Rsb2FkZXItdGFyZ2V0ICIvZGV2L21t Y2JsazAiKQogICAgICAgICAgICAgICAgICAgICAgICAgKHRyaXBsZXQgImFybS1saW51eC1n bnVlYWJpaGYiKSkKICAiR2l2ZW4gT1MsIGFtZW5kIGl0IHdpdGggdGhlIHUtYm9vdCBib290 bG9hZGVyIGZvciBCT0FSRCwKaW5zdGFsbGVkIHRvIEJPT1RMT0FERVItVEFSR0VUIChhIGRy aXZlKSwgY29tcGlsZWQgZm9yIFRSSVBMRVQuCgpJZiB5b3Ugd2FudCBhIHNlcmlhbCBjb25z b2xlLCBtYWtlIHN1cmUgdG8gc3BlY2lmeSBvbmUgaW4geW91cgpvcGVyYXRpbmctc3lzdGVt J3Mga2VybmVsLWFyZ3VtZW50cyAoXCJjb25zb2xlPXR0eVMwXCIgb3Igc2ltaWxhcikuIgog IChvcGVyYXRpbmctc3lzdGVtIChpbmhlcml0IG9zKQogICAgKGJvb3Rsb2FkZXIgKGJvb3Rs b2FkZXItY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgIChib290bG9hZGVyIChib290 bG9hZGVyIChpbmhlcml0IHUtYm9vdC1ib290bG9hZGVyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAocGFja2FnZSAobWFrZS11LWJvb3QtcGFja2FnZSBib2FyZCB0cmlwbGV0 KSkpKQogICAgICAgICAgICAgICAgICh0YXJnZXRzIChsaXN0IGJvb3Rsb2FkZXItdGFyZ2V0 KSkpKSkpCgooZGVmaW5lKiAoZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9zIGJvb3Rsb2FkZXIg Ym9vdGxvYWRlci10YXJnZXQgdHR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIzprZXkgKGV4dHJhLW1vZHVsZXMgJygpKSkKICAiUmV0dXJuIGFuIGluc3RhbGxhdGlv biBvcyBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KVGhlIGluaXRyZCBnZXRzIHRoZSBleHRyYSBt b2R1bGVzIEVYVFJBLU1PRFVMRVMuCkEgZ2V0dHkgaXMgcHJvdmlkZWQgb24gVFRZLgpUaGUg Ym9vdGxvYWRlciBCT09UTE9BREVSIGlzIGluc3RhbGxlZCB0byBCT09UTE9BREVSLVRBUkdF VC4iCiAgKG9wZXJhdGluZy1zeXN0ZW0KICAgIChpbmhlcml0IGluc3RhbGxhdGlvbi1vcykK ICAgIChib290bG9hZGVyIChib290bG9hZGVyLWNvbmZpZ3VyYXRpb24KICAgICAgICAgICAg ICAgICAoYm9vdGxvYWRlciBib290bG9hZGVyKQogICAgICAgICAgICAgICAgICh0YXJnZXRz IChsaXN0IGJvb3Rsb2FkZXItdGFyZ2V0KSkpKQogICAgKGtlcm5lbCBsaW51eC1saWJyZSkK ICAgIChrZXJuZWwtYXJndW1lbnRzCiAgICAgKGNvbnMgKHN0cmluZy1hcHBlbmQgImNvbnNv bGU9IiB0dHkpCiAgICAgICAgICAgKG9wZXJhdGluZy1zeXN0ZW0tdXNlci1rZXJuZWwtYXJn dW1lbnRzIGluc3RhbGxhdGlvbi1vcykpKQogICAgKGluaXRyZC1tb2R1bGVzIChhcHBlbmQg ZXh0cmEtbW9kdWxlcyAlYmFzZS1pbml0cmQtbW9kdWxlcykpKSkKCihkZWZpbmUgYmVhZ2xl Ym9uZS1ibGFjay1pbnN0YWxsYXRpb24tb3MKICAoZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9z IHUtYm9vdC1iZWFnbGVib25lLWJsYWNrLWJvb3Rsb2FkZXIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIvZGV2L3NkYSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0dHlP MCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6ZXh0cmEtbW9kdWxlcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgVGhpcyBtb2R1bGUgaXMgcmVxdWlyZWQgdG8gbW91 bnQgdGhlIHNkIGNhcmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJvbWFwX2hz bW1jIikpKQoKCihkZWZpbmUgYTIwLW9saW51eGluby1saW1lLWluc3RhbGxhdGlvbi1vcwog IChlbWJlZGRlZC1pbnN0YWxsYXRpb24tb3MgdS1ib290LWEyMC1vbGludXhpbm8tbGltZS1i b290bG9hZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL2Rldi9tbWNibGswIiA7 IFNEIGNhcmQgc3RvcmFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInR0eVMwIikp CgooZGVmaW5lIGEyMC1vbGludXhpbm8tbGltZTItZW1tYy1pbnN0YWxsYXRpb24tb3MKICAo ZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9zIHUtYm9vdC1hMjAtb2xpbnV4aW5vLWxpbWUyLWJv b3Rsb2FkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvZGV2L21tY2JsazEiIDsg ZU1NQyBzdG9yYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHR5UzAiKSkKCihk ZWZpbmUgYTIwLW9saW51eGluby1taWNyby1pbnN0YWxsYXRpb24tb3MKICAoZW1iZWRkZWQt aW5zdGFsbGF0aW9uLW9zIHUtYm9vdC1hMjAtb2xpbnV4aW5vLW1pY3JvLWJvb3Rsb2FkZXIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvZGV2L21tY2JsazAiIDsgU0QgY2FyZCBz dG9yYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHR5UzAiKSkKCihkZWZpbmUg YmFuYW5hcGktbTItdWx0cmEtaW5zdGFsbGF0aW9uLW9zCiAgKGVtYmVkZGVkLWluc3RhbGxh dGlvbi1vcyB1LWJvb3QtYmFuYW5hcGktbTItdWx0cmEtYm9vdGxvYWRlcgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIi9kZXYvbW1jYmxrMSIgOyBlTU1DIHN0b3JhZ2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ0dHlTMCIpKQoKKGRlZmluZSBmaXJlZmx5LXJrMzM5 OS1pbnN0YWxsYXRpb24tb3MKICAoZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9zIHUtYm9vdC1m aXJlZmx5LXJrMzM5OS1ib290bG9hZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi L2Rldi9tbWNibGswIiA7IFNEIGNhcmQvZU1NQyAoU0QgcHJpb3JpdHkpIHN0b3JhZ2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ0dHlTMiIpKSA7IFVBUlQyIGNvbm5lY3RlZCBv biB0aGUgUGkyIGJ1cwoKKGRlZmluZSBteDZjdWJveGktaW5zdGFsbGF0aW9uLW9zCiAgKGVt YmVkZGVkLWluc3RhbGxhdGlvbi1vcyB1LWJvb3QtbXg2Y3Vib3hpLWJvb3Rsb2FkZXIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvZGV2L21tY2JsazAiIDsgU0QgY2FyZCBzdG9y YWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHR5bXhjMCIpKQoKKGRlZmluZSBu b3ZlbmEtaW5zdGFsbGF0aW9uLW9zCiAgKGVtYmVkZGVkLWluc3RhbGxhdGlvbi1vcyB1LWJv b3Qtbm92ZW5hLWJvb3Rsb2FkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvZGV2 L21tY2JsazEiIDsgU0QgY2FyZCBzdG9yYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAidHR5bXhjMSIpKQoKKGRlZmluZSBuaW50ZW5kby1uZXMtY2xhc3NpYy1lZGl0aW9uLWlu c3RhbGxhdGlvbi1vcwogIChlbWJlZGRlZC1pbnN0YWxsYXRpb24tb3MgdS1ib290LW5pbnRl bmRvLW5lcy1jbGFzc2ljLWVkaXRpb24tYm9vdGxvYWRlcgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi9kZXYvbW1jYmxrMCIgOyBTRCBjYXJkIChzb2xkZXIgaXQgeW91cnNlbGYp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHR5UzAiKSkKCihkZWZpbmUgcGluZTY0 LXBsdXMtaW5zdGFsbGF0aW9uLW9zCiAgKGVtYmVkZGVkLWluc3RhbGxhdGlvbi1vcyB1LWJv b3QtcGluZTY0LXBsdXMtYm9vdGxvYWRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAg Ii9kZXYvbW1jYmxrMCIgOyBTRCBjYXJkIHN0b3JhZ2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJ0dHlTMCIpKQoKKGRlZmluZSBwaW5lYm9vay1pbnN0YWxsYXRpb24tb3MKICAo ZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9zIHUtYm9vdC1waW5lYm9vay1ib290bG9hZGVyCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiL2Rldi9tbWNibGswIiA7IFNEIGNhcmQgc3Rv cmFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInR0eVMwIikpCgooZGVmaW5lIHJv Y2s2NC1pbnN0YWxsYXRpb24tb3MKICAoZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9zIHUtYm9v dC1yb2NrNjQtcmszMzI4LWJvb3Rsb2FkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIvZGV2L21tY2JsazAiIDsgU0QgY2FyZC9lTU1DIChTRCBwcmlvcml0eSkgc3RvcmFnZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgInR0eVMyIikpIDsgVUFSVDIgY29ubmVjdGVk IG9uIHRoZSBQaTIgYnVzCgooZGVmaW5lIHJvY2twcm82NC1pbnN0YWxsYXRpb24tb3MKICAo ZW1iZWRkZWQtaW5zdGFsbGF0aW9uLW9zIHUtYm9vdC1yb2NrcHJvNjQtcmszMzk5LWJvb3Rs b2FkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvZGV2L21tY2JsazAiIDsgU0Qg Y2FyZC9lTU1DIChTRCBwcmlvcml0eSkgc3RvcmFnZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgInR0eVMyIikpIDsgVUFSVDIgY29ubmVjdGVkIG9uIHRoZSBQaTIgYnVzCgooZGVm aW5lIHJrMzM5OS1wdW1hLWluc3RhbGxhdGlvbi1vcwogIChlbWJlZGRlZC1pbnN0YWxsYXRp b24tb3MgdS1ib290LXB1bWEtcmszMzk5LWJvb3Rsb2FkZXIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIvZGV2L21tY2JsazAiIDsgU0QgY2FyZCBzdG9yYWdlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAidHR5UzAiKSkKCihkZWZpbmUgd2FuZGJvYXJkLWluc3RhbGxh dGlvbi1vcwogIChlbWJlZGRlZC1pbnN0YWxsYXRpb24tb3MgdS1ib290LXdhbmRib2FyZC1i b290bG9hZGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL2Rldi9tbWNibGswIiA7 IFNEIGNhcmQgc3RvcmFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgInR0eW14YzAi KSkKCjsoZGVmaW5lIG15LWluc3RhbGxhdGlvbi1vcwogOyAob3BlcmF0aW5nLXN5c3RlbQog IDsoaW5oZXJpdCBpbnN0YWxsYXRpb24tb3MpCiAgOyhrZXJuZWwgdGFpbnRlZC1saW51eC1s aWJyZS01LjE5KSkpCgo7OyBSZXR1cm4gdGhlIGRlZmF1bHQgb3MgaGVyZSBzbyAnZ3VpeCBz eXN0ZW0nIGNhbiBjb25zdW1lIGl0IGRpcmVjdGx5Lgo7bXktaW5zdGFsbGF0aW9uLW9zCmlu c3RhbGxhdGlvbi1vcwoKOzs7IGluc3RhbGwuc2NtIGVuZHMgaGVyZQo= --------------5KGLhdBYg0twkH2fDnNv7KR9 Content-Type: application/pgp-keys; name="OpenPGP_0x108961843FD83C98.asc" Content-Disposition: attachment; filename="OpenPGP_0x108961843FD83C98.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- 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 muf8SyFR =3DFtSR -----END PGP PUBLIC KEY BLOCK----- --------------5KGLhdBYg0twkH2fDnNv7KR9-- --------------8Dn7nCjdodwZXqQc1eyejgMv-- --------------Huw6jxODvEezBqHlsyYygfmX Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEE6dT/Ao02cUO0wjtKEIlhhD/YPJgFAmWDLrsFAwAAAAAACgkQEIlhhD/YPJgH Cg//ZInyX3pA1WuXJXoiY66WXSR0e1N3kTenT0X7ntvi8MYD6Ehf2uAcOPycoQrBalwyECsKYYNZ jhdJM4nG3ZZ6jo+UyAdaDVE8SOldgG2c0F6vVcNxiox3NUACJQgGO5HgVVbXGpY8bqDjIdDkKMDb ZIJPR/ugOoJUgSE7L3OLv+DZUPVyODTzGxauYsvEJxXdiKlK31ZtJ6gwcfRzar+juH1yBTX5FxTo v/n1bE+OufJBz2s5Kv6iRiE+/NKtA+LvkeW1kYDIXzOo1PAc9oRnNJCBQrDpLhIvhA7EL0FJ4bPg i7IbyZxBK3xul5QP6iUBkr6rAcbNdNmh3zj7R1DG9NL2WY1hBSTyhoeUOXVIAfTZxwBF5qDl9rUE MZSMn6B2G9QTtvKz2LCgRHL2jib5KREQcFClW9briSQmsI8MddmF2LFf7LHPERiLQPAfzq5F8cv4 I1lcnxLMPCgBwxFpZAYl4yef+zN74yOYOq1BmJssZjDOkdHJWN2QjJ8Ercy+Hm1Fz8Xfg5X7oKiy 0HhOWWFHEQPXgYWUD2mFaMjj1idZ3NlAN2EAH/UU0Z4Hp5UCYMmfiPCHLqLE4HuStIE6waYlZ7Y6 05F99jdnOfhqyc27ZaCTbPPHT+FsBERJHeRHgJRLJEtI8gMdqJk85HPgcJ6uI91uirni73AaLNYU /cA= =GTLV -----END PGP SIGNATURE----- --------------Huw6jxODvEezBqHlsyYygfmX--