From owner-freebsd-gnome@FreeBSD.ORG Tue Jan 29 18:49:09 2013 Return-Path: Delivered-To: gnome@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id D9829BAC for ; Tue, 29 Jan 2013 18:49:09 +0000 (UTC) (envelope-from sulabh.kaushal78@gmail.com) Received: from mail-vc0-f173.google.com (mail-vc0-f173.google.com [209.85.220.173]) by mx1.freebsd.org (Postfix) with ESMTP id 6321DF9A for ; Tue, 29 Jan 2013 18:49:09 +0000 (UTC) Received: by mail-vc0-f173.google.com with SMTP id fy7so486200vcb.32 for ; Tue, 29 Jan 2013 10:49:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type; bh=ng7cObowW9LuTaWAxBzsDhsQwikmfpcSAkiYKzKZ2EE=; b=K6kNPUIDQaJ0Zt/m2hX4R77G5nS+DpZPLFUXfzjo3a2orJdRwa+7M48vseEFQPKCeH GFKfPVRwGnlRMfq1yZfMl5K9Mx4MJ8eH1oaQszAGsiGoDf++OydBAvKZ2IfV15RvRPzw GXq76TgnR/FERvwYzhB3ujtqHJgLqFUeYmvf6S6nf1o7K++eU2bFSwPmFAvFGFVVL+4s GDZ2FHc01IwaN9DWzjB9ECQeRNjG8aRe4jCdhzjJGxVui6oKMHEErXGPiWYGn6p5/gvj FZdGjptUHc5inIcRkcpy25NHxOIeURqWL5FUFgSPyWgxdcWEqCHtR7BtZPCvCuM2sNSG tl5g== X-Received: by 10.220.39.69 with SMTP id f5mr2173060vce.45.1359485348636; Tue, 29 Jan 2013 10:49:08 -0800 (PST) MIME-Version: 1.0 Received: by 10.58.236.99 with HTTP; Tue, 29 Jan 2013 10:48:48 -0800 (PST) From: Sulabh Kausal Date: Wed, 30 Jan 2013 00:18:48 +0530 Message-ID: Subject: Script "configure" failed unexpectedly. To: gnome@freebsd.org Content-Type: multipart/mixed; boundary=bcaec54eebba4866b904d471d96d X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 18:49:09 -0000 --bcaec54eebba4866b904d471d96d Content-Type: text/plain; charset=ISO-8859-1 Hi Gnome, I am new to Unix. I am trying to install firefox and getting following error: Script "configure" failed unexpectedly. Please run the gnomelogalyzer, available from " http://www.freebsd.org/gnome/gnomelogalyzer.sh". which will diagnose the problem and suggest a solution. If - and only if - the gnomelogalyzer cannot solve the problem, report the build failure to the FreeBSD GNOME team at gnome@FreeBSD.org, and attach (a) "/usr/ports/devel/goobject-introspection/work/gobject-introspection-0.10.8/config.log", (b) the output of the failed make command, and (c) the gnomelogalyzer output. Also, it might be a good idea to provide an overview of all packages installed on your system (i.e. an 'ls /var/db/pkg'). Put your attachment up on any website, copy-and-paste into http://freebsd-gnome.pastebin.com, or use send-pr(1) with the attachment. Try to avoid sending any attachments to the mailing list (gnome@freebsd.org), because attachments sent to FreeBSD mailing lists are usually discarded by the mailing list software. That same issue is happening when I try to install x11. Please help me out, thanks for the help! Sending you config.log and ListOfpkage.txt files attached with this mail. -- Regards, Sulabh K. --bcaec54eebba4866b904d471d96d Content-Type: text/plain; charset=US-ASCII; name="ListOfPkag.txt" Content-Disposition: attachment; filename="ListOfPkag.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hcje9y4j0 YXV0b2NvbmYtMi4xMy4wMDAyMjdfNg0KYXV0b2NvbmYtMi42OQ0KYXV0b2NvbmYtd3JhcHBlci0y MDEwMTExOQ0KYXV0b21ha2UtMS4xMi40DQphdXRvbWFrZS13cmFwcGVyLTIwMTAxMTE5DQpiYXNo LTQuMi4zNw0KYmlncmVxc3Byb3RvLTEuMS4xDQpiaXNvbi0yLjUuMSwxDQpjYWlyby0xLjEwLjJf NCwyDQpjbWFrZS0yLjguOQ0KY21ha2UtbW9kdWxlcy0yLjguOQ0KZGFtYWdlcHJvdG8tMS4yLjEN CmRiNDEtNC4xLjI1XzQNCmRidXMtMS40LjE0XzQNCmRidXMtZ2xpYi0wLjk0DQpkZXNrdG9wLWZp bGUtdXRpbHMtMC4xOA0KZG9jYm9vay0xLjQNCmRvY2Jvb2stNC4xXzQNCmRvY2Jvb2stNC4yDQpk b2Nib29rLTQuMw0KZG9jYm9vay00LjRfMg0KZG9jYm9vay00LjVfMg0KZG9jYm9vay01LjBfMQ0K ZG9jYm9vay1zay00LjEuMl80DQpkb2Nib29rLXhtbC00LjJfMQ0KZG9jYm9vay14bWwtNC4zDQpk b2Nib29rLXhtbC00LjRfMQ0KZG9jYm9vay14bWwtNC41DQpkb2Nib29rLXhzbC0xLjc2LjENCmRy aTJwcm90by0yLjYNCmV4cGF0LTIuMC4xXzINCmZpeGVzcHJvdG8tNS4wDQpmb250Y29uZmlnLTIu OS4wLDENCmZyZWV0eXBlMi0yLjQuOV8xDQpnYW1pbi0wLjEuMTBfNA0KZ2RibS0xLjkuMQ0KZ2V0 dGV4dC0wLjE4LjEuMQ0KZ2lvLWZhbS1iYWNrZW5kLTIuMjguOF8xDQpnbGliLTIuMjguOF80DQpn bHByb3RvLTEuNC4xNQ0KZ21ha2UtMy44Ml8xDQpnbm9tZV9zdWJyLTEuMA0KZ3BlcmYtMy4wLjMN CmhlbHAybWFuLTEuNDAuMTINCmh1bnNwZWxsLTEuMy4yXzENCmljdS00LjguMS4xXzENCmlucHV0 cHJvdG8tMi4wLjINCmludGx0b29sLTAuNDEuMQ0KaXNvODg3OS0xOTg2XzMNCmpwZWctOF8zDQpr YnByb3RvLTEuMC41DQpsaWJHTC03LjYuMV8yDQpsaWJJQ0UtMS4wLjcsMQ0KbGliU00tMS4yLjAs MQ0KbGliWDExLTEuNC40LDENCmxpYlhhdS0xLjAuNg0KbGliWGRhbWFnZS0xLjEuMw0KbGliWGRt Y3AtMS4xLjANCmxpYlhleHQtMS4zLjBfMSwxDQpsaWJYZml4ZXMtNS4wDQpsaWJYaS0xLjQuNSwx DQpsaWJYaW5lcmFtYS0xLjEuMSwxDQpsaWJYcmVuZGVyLTAuOS42DQpsaWJYdC0xLjEuMSwxDQps aWJYeGY4NnZtLTEuMS4xDQpsaWJjaGVjay0wLjkuOA0KbGliZHJtLTIuNC4xN18xDQpsaWJldmVu dDItMi4wLjIwDQpsaWJmZmktMy4wLjkNCmxpYmdjcnlwdC0xLjUuMF8xDQpsaWJncGctZXJyb3It MS4xMA0KbGliaWNvbnYtMS4xNA0KbGliaW5vdGlmeS0yMDExMDgyOQ0KbGlicGNpYWNjZXNzLTAu MTIuMQ0KbGlicHRocmVhZC1zdHVicy0wLjNfMw0KbGlic2lnc2Vndi0yLjEwDQpsaWJ0b29sLTIu NC4yDQpsaWJ2cHgtMS4xLjANCmxpYnhjYi0xLjcNCmxpYnhtbDItMi43LjhfNQ0KbGlieHNsdC0x LjEuMjZfMw0KbHlueC0yLjguNy4yLDENCm00LTEuNC4xNl8xLDENCm1ha2VkZXBlbmQtMS4wLjMs MQ0KbWltZS1zdXBwb3J0LTMuNTIuMg0KbXV0dC0xLjUuMjENCm5zcHItNC45LjMNCm5zcy0zLjE0 DQpwNS1BdXRoZW4tTlRMTS0xLjA5DQpwNS1DcnlwdC1TU0xlYXktMC42NA0KcDUtRGlnZXN0LUhN QUMtMS4wMw0KcDUtRW5jb2RlLUxvY2FsZS0xLjAzDQpwNS1GaWxlLUxpc3RpbmctNi4wNA0KcDUt SFRNTC1QYXJzZXItMy42OQ0KcDUtSFRNTC1UYWdzZXQtMy4yMA0KcDUtSFRNTC1UcmVlLTQuMg0K cDUtSFRUUC1Db29raWVzLTYuMDENCnA1LUhUVFAtRGFlbW9uLTYuMDENCnA1LUhUVFAtRGF0ZS02 LjAyDQpwNS1IVFRQLU1lc3NhZ2UtNi4wNg0KcDUtSFRUUC1OZWdvdGlhdGUtNi4wMQ0KcDUtSU8t U29ja2V0LUlQLTAuMTcNCnA1LUlPLVNvY2tldC1TU0wtMS43Ng0KcDUtTFdQLU1lZGlhVHlwZXMt Ni4wMg0KcDUtTFdQLVByb3RvY29sLWh0dHBzLTYuMDMNCnA1LUxvY2FsZS1nZXR0ZXh0LTEuMDVf Mw0KcDUtTW9kdWxlLUJ1aWxkLTAuNDAwMw0KcDUtTW96aWxsYS1DQS0yMDEyMDgyM18xDQpwNS1O ZXQtREJ1cy0xLjAuMA0KcDUtTmV0LUhUVFAtNi4wM18xDQpwNS1OZXQtU1NMZWF5LTEuNDkNCnA1 LVNvY2tldC0yLjAwNg0KcDUtVGV4dC1JY29udi0xLjcNCnA1LVRpZS1JeEhhc2gtMS4yMg0KcDUt VGltZS1IaVJlcy0xLjk3MjUsMQ0KcDUtVVJJLTEuNjANCnA1LVdXVy1Sb2JvdFJ1bGVzLTYuMDIN CnA1LVhNTC1Hcm92ZS0wLjQ2LmENCnA1LVhNTC1QYXJzZXItMi40MQ0KcDUtWE1MLVR3aWctMy40 MQ0KcDUtWE1MLVhQYXRoLTEuMTMNCnA1LWxpYnd3dy02LjA0DQpwNS1saWJ4bWwtMC4wOA0KcGNp aWRzLTIwMTIwOTA2DQpwY3JlLTguMzFfMQ0KcGVybC10aHJlYWRlZC01LjE0LjJfMg0KcGl4bWFu LTAuMjQuMg0KcGtnY29uZi0wLjguOQ0KcGtnZGIuZGINCnBuZy0xLjUuMTINCnBvcnR1cGdyYWRl LTIuNC4xMC4yLDINCnByaW50cHJvdG8tMS4wLjUNCnB0aC0yLjAuNw0KcHkyNy1saWJ4bWwyLTIu Ny44XzINCnB5dGhvbjI3LTIuNy4zXzMNCnJlbmRlcnByb3RvLTAuMTEuMQ0KcnVieS0xLjguNy4z NzEsMQ0KcnVieTE4LWJkYi0wLjYuNg0Kc3FsaXRlMy0zLjcuMTQuMQ0KdW56aXAtNi4wXzENCnhj Yi1wcm90by0xLjcuMQ0KeGNiLXV0aWwtMC4zLjgsMQ0KeGNiLXV0aWwtcmVuZGVydXRpbC0wLjMu OA0KeGNtaXNjcHJvdG8tMS4yLjENCnhleHRwcm90by03LjIuMA0KeGY4NmJpZ2ZvbnRwcm90by0x LjIuMA0KeGY4NnZpZG1vZGVwcm90by0yLjMuMQ0KeGluZXJhbWFwcm90by0xLjIuMQ0KeG1sY2F0 bWdyLTIuMg0KeG1sY2hhcmVudC0wLjNfMg0KeG9yZy1tYWNyb3MtMS4xNi4xDQp4cHJvdG8tNy4w LjIyDQp4dHJhbnMtMS4yLjYNCnlhc20tMS4yLjANCnppcC0zLjANCg== --bcaec54eebba4866b904d471d96d Content-Type: application/octet-stream; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hcjebcci1 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUNCnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtl cyBhIG1pc3Rha2UuDQoNCkl0IHdhcyBjcmVhdGVkIGJ5IGdvYmplY3QtaW50cm9zcGVjdGlvbiBj b25maWd1cmUgMC4xMC44LCB3aGljaCB3YXMNCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42 My4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcw0KDQogICQgLi9jb25maWd1cmUgLS1kaXNh YmxlLXRlc3RzIC0tcHJlZml4PS91c3IvbG9jYWwgLS1tYW5kaXI9L3Vzci9sb2NhbC9tYW4gLS1p bmZvZGlyPS91c3IvbG9jYWwvaW5mby8gLS1idWlsZD1pMzg2LXBvcnRibGQtZnJlZWJzZDkuMQ0K DQojIyAtLS0tLS0tLS0gIyMNCiMjIFBsYXRmb3JtLiAjIw0KIyMgLS0tLS0tLS0tICMjDQoNCmhv c3RuYW1lID0gU2FuamVldg0KdW5hbWUgLW0gPSBpMzg2DQp1bmFtZSAtciA9IDkuMS1SRUxFQVNF DQp1bmFtZSAtcyA9IEZyZWVCU0QNCnVuYW1lIC12ID0gRnJlZUJTRCA5LjEtUkVMRUFTRSAjMCBy MjQzODI2OiBUdWUgRGVjICA0IDA2OjU1OjM5IFVUQyAyMDEyICAgICByb290QG9icmlhbi5jc2Uu YnVmZmFsby5lZHU6L3Vzci9vYmovdXNyL3NyYy9zeXMvR0VORVJJQyANCg0KL3Vzci9iaW4vdW5h bWUgLXAgPSBpMzg2DQovYmluL3VuYW1lIC1YICAgICA9IHVua25vd24NCg0KL2Jpbi9hcmNoICAg ICAgICAgICAgICA9IHVua25vd24NCi91c3IvYmluL2FyY2ggLWsgICAgICAgPSB1bmtub3duDQov dXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bg0KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9 IHVua25vd24NCi9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1bmtub3duDQovdXNyL2Jpbi9vc2xl dmVsICAgICAgID0gdW5rbm93bg0KL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24NCg0K UEFUSDogL3NiaW4NClBBVEg6IC9iaW4NClBBVEg6IC91c3Ivc2Jpbg0KUEFUSDogL3Vzci9iaW4N ClBBVEg6IC91c3IvZ2FtZXMNClBBVEg6IC91c3IvbG9jYWwvc2Jpbg0KUEFUSDogL3Vzci9sb2Nh bC9iaW4NClBBVEg6IC9yb290L2Jpbg0KDQoNCiMjIC0tLS0tLS0tLS0tICMjDQojIyBDb3JlIHRl c3RzLiAjIw0KIyMgLS0tLS0tLS0tLS0gIyMNCg0KY29uZmlndXJlOjIyMTM6IGNoZWNraW5nIGZv ciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwNCmNvbmZpZ3VyZToyMjgxOiByZXN1bHQ6IC91c3Iv YmluL2luc3RhbGwgLWMgLW8gcm9vdCAtZyB3aGVlbA0KY29uZmlndXJlOjIyOTI6IGNoZWNraW5n IHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZQ0KY29uZmlndXJlOjIzNTI6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6MjQ5MzogY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIg LXANCmNvbmZpZ3VyZToyNTMyOiByZXN1bHQ6IC4vaW5zdGFsbC1zaCAtYyAtZA0KY29uZmlndXJl OjI1NDU6IGNoZWNraW5nIGZvciBnYXdrDQpjb25maWd1cmU6MjU3NTogcmVzdWx0OiBubw0KY29u ZmlndXJlOjI1NDU6IGNoZWNraW5nIGZvciBtYXdrDQpjb25maWd1cmU6MjU3NTogcmVzdWx0OiBu bw0KY29uZmlndXJlOjI1NDU6IGNoZWNraW5nIGZvciBuYXdrDQpjb25maWd1cmU6MjU2MTogZm91 bmQgL3Vzci9iaW4vbmF3aw0KY29uZmlndXJlOjI1NzI6IHJlc3VsdDogbmF3aw0KY29uZmlndXJl OjI1ODM6IGNoZWNraW5nIHdoZXRoZXIgZ21ha2Ugc2V0cyAkKE1BS0UpDQpjb25maWd1cmU6MjYw NTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNjg4OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJs ZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcw0KY29uZmlndXJlOjI2 OTc6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzM2OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlw ZQ0KY29uZmlndXJlOjI3NTQ6IHJlc3VsdDogaTM4Ni1wb3J0YmxkLWZyZWVic2Q5LjENCmNvbmZp Z3VyZToyNzc2OiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlDQpjb25maWd1cmU6Mjc5MTogcmVz dWx0OiBpMzg2LXBvcnRibGQtZnJlZWJzZDkuMQ0KY29uZmlndXJlOjI4MTM6IGNoZWNraW5nIGZv ciBXaW4zMg0KY29uZmlndXJlOjI4MjM6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyODgzOiBjaGVj a2luZyBmb3IgZ2NjDQpjb25maWd1cmU6MjkxMDogcmVzdWx0OiBjYw0KY29uZmlndXJlOjMxNDI6 IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24NCmNvbmZpZ3VyZTozMTUwOiBjYyAtLXZl cnNpb24gPiY1DQpjYyAoR0NDKSA0LjIuMSAyMDA3MDgzMSBwYXRjaGVkIFtGcmVlQlNEXQ0KQ29w eXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KVGhpcyBpcyBm cmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhl cmUgaXMgTk8NCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLg0KDQpjb25maWd1cmU6MzE1NDogJD8gPSAwDQpj b25maWd1cmU6MzE2MTogY2MgLXYgPiY1DQpVc2luZyBidWlsdC1pbiBzcGVjcy4NClRhcmdldDog aTM4Ni11bmRlcm15ZGVzay1mcmVlYnNkDQpDb25maWd1cmVkIHdpdGg6IEZyZWVCU0QvaTM4NiBz eXN0ZW0gY29tcGlsZXINClRocmVhZCBtb2RlbDogcG9zaXgNCmdjYyB2ZXJzaW9uIDQuMi4xIDIw MDcwODMxIHBhdGNoZWQgW0ZyZWVCU0RdDQpjb25maWd1cmU6MzE2NTogJD8gPSAwDQpjb25maWd1 cmU6MzE3MjogY2MgLVYgPiY1DQpjYzogJy1WJyBvcHRpb24gbXVzdCBoYXZlIGFyZ3VtZW50DQpj b25maWd1cmU6MzE3NjogJD8gPSAxDQpjb25maWd1cmU6MzE5OTogY2hlY2tpbmcgZm9yIEMgY29t cGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lDQpjb25maWd1cmU6MzIyMTogY2MgLU8yIC1w aXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAtTC91c3IvbG9j YWwvbGliIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjMyMjU6ICQ/ID0gMA0KY29uZmlndXJl OjMyNjM6IHJlc3VsdDogYS5vdXQNCmNvbmZpZ3VyZTozMjgyOiBjaGVja2luZyB3aGV0aGVyIHRo ZSBDIGNvbXBpbGVyIHdvcmtzDQpjb25maWd1cmU6MzI5MjogLi9hLm91dA0KY29uZmlndXJlOjMy OTY6ICQ/ID0gMA0KY29uZmlndXJlOjMzMTU6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MzMyMjog Y2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nDQpjb25maWd1cmU6MzMyNDog cmVzdWx0OiBubw0KY29uZmlndXJlOjMzMjc6IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0 YWJsZXMNCmNvbmZpZ3VyZTozMzM0OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vzci9sb2NhbC9saWIgY29uZnRl c3QuYyAgPiY1DQpjb25maWd1cmU6MzMzODogJD8gPSAwDQpjb25maWd1cmU6MzM2NDogcmVzdWx0 OiANCmNvbmZpZ3VyZTozMzcwOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcw0K Y29uZmlndXJlOjMzOTY6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91 c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjM0MDA6ICQ/ID0gMA0K Y29uZmlndXJlOjM0MjU6IHJlc3VsdDogbw0KY29uZmlndXJlOjM0Mjk6IGNoZWNraW5nIHdoZXRo ZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcg0KY29uZmlndXJlOjM0NTg6IGNjIC1j IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25m dGVzdC5jID4mNQ0KY29uZmlndXJlOjM0NjU6ICQ/ID0gMA0KY29uZmlndXJlOjM0ODI6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6MzQ5MTogY2hlY2tpbmcgd2hldGhlciBjYyBhY2NlcHRzIC1nDQpj b25maWd1cmU6MzUyMTogY2MgLWMgLWcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+ JjUNCmNvbmZpZ3VyZTozNTI4OiAkPyA9IDANCmNvbmZpZ3VyZTozNjI5OiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjM2NDY6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkN CmNvbmZpZ3VyZTozNzIwOiBjYyAgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1J L3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MzcyNzogJD8gPSAw DQpjb25maWd1cmU6Mzc1MDogcmVzdWx0OiBub25lIG5lZWRlZA0KY29uZmlndXJlOjM3Nzk6IGNo ZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgZ21ha2UNCmNvbmZpZ3VyZTozODA3 OiByZXN1bHQ6IEdOVQ0KY29uZmlndXJlOjM4MzI6IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUg b2YgY2MNCmNvbmZpZ3VyZTozOTQyOiByZXN1bHQ6IGdjYzMNCmNvbmZpZ3VyZTozOTYxOiBjaGVj a2luZyB3aGV0aGVyIGNjIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlcg0KY29uZmlndXJl OjM5OTM6IGNjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1DQpjb25maWd1cmU6Mzk5 NzogJD8gPSAwDQpjb25maWd1cmU6NDAwMzogY2MgLWMgY29uZnRlc3QuYyAtbyBjb25mdGVzdDIu byA+JjUNCmNvbmZpZ3VyZTo0MDA3OiAkPyA9IDANCmNvbmZpZ3VyZTo0MDYyOiByZXN1bHQ6IHll cw0KY29uZmlndXJlOjQxMTQ6IGNoZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5j YXRlIG91dHB1dA0KY29uZmlndXJlOjQxODA6IHJlc3VsdDogL3Vzci9iaW4vc2VkDQpjb25maWd1 cmU6NDE5ODogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1l DQpjb25maWd1cmU6NDI1ODogcmVzdWx0OiAvdXNyL2Jpbi9ncmVwDQpjb25maWd1cmU6NDI2Mzog Y2hlY2tpbmcgZm9yIGVncmVwDQpjb25maWd1cmU6NDMyNzogcmVzdWx0OiAvdXNyL2Jpbi9ncmVw IC1FDQpjb25maWd1cmU6NDMzMjogY2hlY2tpbmcgZm9yIGZncmVwDQpjb25maWd1cmU6NDM5Njog cmVzdWx0OiAvdXNyL2Jpbi9ncmVwIC1GDQpjb25maWd1cmU6NDQzMTogY2hlY2tpbmcgZm9yIGxk IHVzZWQgYnkgY2MNCmNvbmZpZ3VyZTo0NDk4OiByZXN1bHQ6IC91c3IvYmluL2xkDQpjb25maWd1 cmU6NDUwNzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoL3Vzci9iaW4vbGQpIGlzIEdOVSBsZA0K Y29uZmlndXJlOjQ1MjI6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDUzNDogY2hlY2tpbmcgZm9y IEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pDQpjb25maWd1cmU6NDU4Mzog cmVzdWx0OiAvdXNyL2Jpbi9ubSAtQg0KY29uZmlndXJlOjQ3MDE6IGNoZWNraW5nIHRoZSBuYW1l IGxpc3RlciAoL3Vzci9iaW4vbm0gLUIpIGludGVyZmFjZQ0KY29uZmlndXJlOjQ3MDg6IGNjIC1j IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25m dGVzdC5jID4mNQ0KY29uZmlndXJlOjQ3MTE6IC91c3IvYmluL25tIC1CICJjb25mdGVzdC5vIg0K Y29uZmlndXJlOjQ3MTQ6IG91dHB1dA0KMDAwMDAwMDAgQiBzb21lX3ZhcmlhYmxlDQpjb25maWd1 cmU6NDcyMTogcmVzdWx0OiBCU0Qgbm0NCmNvbmZpZ3VyZTo0NzI0OiBjaGVja2luZyB3aGV0aGVy IGxuIC1zIHdvcmtzDQpjb25maWd1cmU6NDcyODogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo0NzM2 OiBjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cw0K Y29uZmlndXJlOjQ4NTY6IHJlc3VsdDogMjYyMTQ0DQpjb25maWd1cmU6NDg3MzogY2hlY2tpbmcg d2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0cw0KY29uZmln dXJlOjQ4ODM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NDg4NzogY2hlY2tpbmcgd2hldGhlciB0 aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Ig0KY29uZmlndXJlOjQ4OTM6IHJlc3VsdDogbm8NCmNv bmZpZ3VyZTo0OTI4OiBjaGVja2luZyBmb3IgL3Vzci9iaW4vbGQgb3B0aW9uIHRvIHJlbG9hZCBv YmplY3QgZmlsZXMNCmNvbmZpZ3VyZTo0OTM1OiByZXN1bHQ6IC1yDQpjb25maWd1cmU6NTAwNDog Y2hlY2tpbmcgZm9yIG9iamR1bXANCmNvbmZpZ3VyZTo1MDIwOiBmb3VuZCAvdXNyL2Jpbi9vYmpk dW1wDQpjb25maWd1cmU6NTAzMTogcmVzdWx0OiBvYmpkdW1wDQpjb25maWd1cmU6NTA2MzogY2hl Y2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzDQpjb25maWd1cmU6NTI1 OTogcmVzdWx0OiBwYXNzX2FsbA0KY29uZmlndXJlOjUzMTk6IGNoZWNraW5nIGZvciBhcg0KY29u ZmlndXJlOjUzMzU6IGZvdW5kIC91c3IvYmluL2FyDQpjb25maWd1cmU6NTM0NjogcmVzdWx0OiBh cg0KY29uZmlndXJlOjU0MjQ6IGNoZWNraW5nIGZvciBzdHJpcA0KY29uZmlndXJlOjU0NDA6IGZv dW5kIC91c3IvYmluL3N0cmlwDQpjb25maWd1cmU6NTQ1MTogcmVzdWx0OiBzdHJpcA0KY29uZmln dXJlOjU1MjM6IGNoZWNraW5nIGZvciByYW5saWINCmNvbmZpZ3VyZTo1NTM5OiBmb3VuZCAvdXNy L2Jpbi9yYW5saWINCmNvbmZpZ3VyZTo1NTUwOiByZXN1bHQ6IHJhbmxpYg0KY29uZmlndXJlOjU2 NDA6IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgL3Vzci9iaW4vbm0gLUIgb3V0cHV0IGZyb20g Y2Mgb2JqZWN0DQpjb25maWd1cmU6NTc1ODogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NTc2 MTogJD8gPSAwDQpjb25maWd1cmU6NTc2NTogL3Vzci9iaW4vbm0gLUIgY29uZnRlc3QubyBcfCBz ZWQgLW4gLWUgJ3MvXi4qWwkgXVwoW0FCQ0RHSVJTVFddW0FCQ0RHSVJTVFddKlwpWwkgXVsJIF0q XChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnIFw+IGNvbmZ0ZXN0Lm5tDQpj b25maWd1cmU6NTc2ODogJD8gPSAwDQpjb25maWd1cmU6NTgyMjogY2MgLW8gY29uZnRlc3QgLU8y IC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAtTC91c3Iv bG9jYWwvbGliIGNvbmZ0ZXN0LmMgY29uZnRzdG0ubyA+JjUNCmNvbmZpZ3VyZTo1ODI1OiAkPyA9 IDANCmNvbmZpZ3VyZTo1ODYzOiByZXN1bHQ6IG9rDQpjb25maWd1cmU6NjczMDogY2hlY2tpbmcg aG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3INCmNvbmZpZ3VyZTo2ODQ4OiByZXN1bHQ6IGNw cA0KY29uZmlndXJlOjY4Nzc6IGNwcCAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jDQpj b25maWd1cmU6Njg4NDogJD8gPSAwDQpjb25maWd1cmU6NjkxNTogY3BwIC1JL3Vzci9sb2NhbC9p bmNsdWRlIGNvbmZ0ZXN0LmMNCmNvbmZ0ZXN0LmM6MTA6Mjg6IGVycm9yOiBhY19ub25leGlzdGVu dC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5DQpjb25maWd1cmU6NjkyMjogJD8gPSAxDQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIwLjEwLjgiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImdvYmplY3QtaW50cm9z cGVjdGlvbiAwLjEwLjgiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImh0dHA6Ly9idWd6 aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PWdsaWImY29tcG9uZW50PWludHJv c3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ29iamVjdC1pbnRyb3NwZWN0aW9uIg0KfCAj ZGVmaW5lIFZFUlNJT04gIjAuMTAuOCINCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5j bHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4NCmNvbmZpZ3VyZTo2OTYyOiBjaGVja2luZyBmb3IgQU5T SSBDIGhlYWRlciBmaWxlcw0KY29uZmlndXJlOjY5OTI6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0 cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jID4mNQ0KY29uZmln dXJlOjY5OTk6ICQ/ID0gMA0KY29uZmlndXJlOjcwOTg6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlw ZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2Fs L2xpYiBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZTo3MTAyOiAkPyA9IDANCmNvbmZpZ3VyZTo3 MTA4OiAuL2NvbmZ0ZXN0DQpjb25maWd1cmU6NzExMjogJD8gPSAwDQpjb25maWd1cmU6NzEzMDog cmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo3MTU0OiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgNCmNv bmZpZ3VyZTo3MTc1OiBjYyAtYyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNy L2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTo3MTgyOiAkPyA9IDANCmNv bmZpZ3VyZTo3MTk5OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjcxNTQ6IGNoZWNraW5nIGZvciBz eXMvc3RhdC5oDQpjb25maWd1cmU6NzE3NTogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NzE4 MjogJD8gPSAwDQpjb25maWd1cmU6NzE5OTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo3MTU0OiBj aGVja2luZyBmb3Igc3RkbGliLmgNCmNvbmZpZ3VyZTo3MTc1OiBjYyAtYyAtTzIgLXBpcGUgLWZu by1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+JjUNCmNv bmZpZ3VyZTo3MTgyOiAkPyA9IDANCmNvbmZpZ3VyZTo3MTk5OiByZXN1bHQ6IHllcw0KY29uZmln dXJlOjcxNTQ6IGNoZWNraW5nIGZvciBzdHJpbmcuaA0KY29uZmlndXJlOjcxNzU6IGNjIC1jIC1P MiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVz dC5jID4mNQ0KY29uZmlndXJlOjcxODI6ICQ/ID0gMA0KY29uZmlndXJlOjcxOTk6IHJlc3VsdDog eWVzDQpjb25maWd1cmU6NzE1NDogY2hlY2tpbmcgZm9yIG1lbW9yeS5oDQpjb25maWd1cmU6NzE3 NTogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNs dWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NzE4MjogJD8gPSAwDQpjb25maWd1cmU6NzE5 OTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo3MTU0OiBjaGVja2luZyBmb3Igc3RyaW5ncy5oDQpj b25maWd1cmU6NzE3NTogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vz ci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NzE4MjogJD8gPSAwDQpj b25maWd1cmU6NzE5OTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo3MTU0OiBjaGVja2luZyBmb3Ig aW50dHlwZXMuaA0KY29uZmlndXJlOjcxNzU6IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1h bGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjcx ODI6ICQ/ID0gMA0KY29uZmlndXJlOjcxOTk6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NzE1NDog Y2hlY2tpbmcgZm9yIHN0ZGludC5oDQpjb25maWd1cmU6NzE3NTogY2MgLWMgLU8yIC1waXBlIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1DQpj b25maWd1cmU6NzE4MjogJD8gPSAwDQpjb25maWd1cmU6NzE5OTogcmVzdWx0OiB5ZXMNCmNvbmZp Z3VyZTo3MTU0OiBjaGVja2luZyBmb3IgdW5pc3RkLmgNCmNvbmZpZ3VyZTo3MTc1OiBjYyAtYyAt TzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRl c3QuYyA+JjUNCmNvbmZpZ3VyZTo3MTgyOiAkPyA9IDANCmNvbmZpZ3VyZTo3MTk5OiByZXN1bHQ6 IHllcw0KY29uZmlndXJlOjcyMTc6IGNoZWNraW5nIGZvciBkbGZjbi5oDQpjb25maWd1cmU6NzIz ODogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNs dWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NzI0NTogJD8gPSAwDQpjb25maWd1cmU6NzI2 MjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo3NDQ4OiBjaGVja2luZyBmb3Igb2JqZGlyDQpjb25m aWd1cmU6NzQ2MzogcmVzdWx0OiAubGlicw0KY29uZmlndXJlOjc3NTk6IGNoZWNraW5nIGlmIGNj IHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMNCmNvbmZpZ3VyZTo3Nzc3OiBjYyAt YyAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLWZu by1ydHRpIC1mbm8tZXhjZXB0aW9ucyBjb25mdGVzdC5jID4mNQ0KY2MxOiB3YXJuaW5nOiBjb21t YW5kIGxpbmUgb3B0aW9uICItZm5vLXJ0dGkiIGlzIHZhbGlkIGZvciBDKysvT2JqQysrIGJ1dCBu b3QgZm9yIEMNCmNvbmZpZ3VyZTo3NzgxOiAkPyA9IDANCmNvbmZpZ3VyZTo3Nzk0OiByZXN1bHQ6 IG5vDQpjb25maWd1cmU6NzgxNDogY2hlY2tpbmcgZm9yIGNjIG9wdGlvbiB0byBwcm9kdWNlIFBJ Qw0KY29uZmlndXJlOjgwODY6IHJlc3VsdDogLWZQSUMgLURQSUMNCmNvbmZpZ3VyZTo4MDk4OiBj aGVja2luZyBpZiBjYyBQSUMgZmxhZyAtZlBJQyAtRFBJQyB3b3Jrcw0KY29uZmlndXJlOjgxMTY6 IGNjIC1jIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVk ZSAtZlBJQyAtRFBJQyAtRFBJQyBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjgxMjA6ICQ/ID0g MA0KY29uZmlndXJlOjgxMzM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6ODE1NzogY2hlY2tpbmcg aWYgY2Mgc3RhdGljIGZsYWcgLXN0YXRpYyB3b3Jrcw0KY29uZmlndXJlOjgxODU6IHJlc3VsdDog eWVzDQpjb25maWd1cmU6ODIwMDogY2hlY2tpbmcgaWYgY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5v DQpjb25maWd1cmU6ODIyMTogY2MgLWMgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1J L3Vzci9sb2NhbC9pbmNsdWRlIC1vIG91dC9jb25mdGVzdDIubyBjb25mdGVzdC5jID4mNQ0KY29u ZmlndXJlOjgyMjU6ICQ/ID0gMA0KY29uZmlndXJlOjgyNDc6IHJlc3VsdDogeWVzDQpjb25maWd1 cmU6ODI1NTogY2hlY2tpbmcgaWYgY2Mgc3VwcG9ydHMgLWMgLW8gZmlsZS5vDQpjb25maWd1cmU6 ODMwMjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo4MzM1OiBjaGVja2luZyB3aGV0aGVyIHRoZSBj YyBsaW5rZXIgKC91c3IvYmluL2xkKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzDQpjb25maWd1 cmU6OTQwOTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo5NDQ2OiBjaGVja2luZyB3aGV0aGVyIC1s YyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4NCmNvbmZpZ3VyZTo5NDUxOiBjYyAtYyAt TzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRl c3QuYyA+JjUNCmNvbmZpZ3VyZTo5NDU0OiAkPyA9IDANCmNvbmZpZ3VyZTo5NDY5OiBjYyAtc2hh cmVkIGNvbmZ0ZXN0Lm8gIC12IC1XbCwtc29uYW1lIC1XbCxjb25mdGVzdCAtbyBjb25mdGVzdCAy XD5cJjEgXHwgL3Vzci9iaW4vZ3JlcCAgLWxjICBcPi9kZXYvbnVsbCAyXD5cJjENCmNvbmZpZ3Vy ZTo5NDcyOiAkPyA9IDANCmNvbmZpZ3VyZTo5NDg0OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6OTY0 ODogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzDQpjb25maWd1cmU6MTAz MzQ6IHJlc3VsdDogZnJlZWJzZDkuMSBsZC5zbw0KY29uZmlndXJlOjEwNDM2OiBjaGVja2luZyBo b3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zDQpjb25maWd1cmU6MTA0 NjE6IHJlc3VsdDogaW1tZWRpYXRlDQpjb25maWd1cmU6MTEyOTQ6IGNoZWNraW5nIHdoZXRoZXIg c3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZQ0KY29uZmlndXJlOjExMjk5OiByZXN1bHQ6 IHllcw0KY29uZmlndXJlOjExMzM0OiBjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJl ZCBsaWJyYXJpZXMNCmNvbmZpZ3VyZToxMTMzNjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxMTMz OTogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzDQpjb25maWd1cmU6 MTEzNjA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTEzNjM6IGNoZWNraW5nIHdoZXRoZXIgdG8g YnVpbGQgc3RhdGljIGxpYnJhcmllcw0KY29uZmlndXJlOjExMzY3OiByZXN1bHQ6IHllcw0KY29u ZmlndXJlOjExNDUxOiBjaGVja2luZyBmb3IgcGtnLWNvbmZpZw0KY29uZmlndXJlOjExNDY5OiBm b3VuZCAvdXNyL2xvY2FsL2Jpbi9wa2ctY29uZmlnDQpjb25maWd1cmU6MTE0ODE6IHJlc3VsdDog L3Vzci9sb2NhbC9iaW4vcGtnLWNvbmZpZw0KY29uZmlndXJlOjExNTA2OiBjaGVja2luZyBwa2ct Y29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gMC45LjANCmNvbmZpZ3VyZToxMTUwOTogcmVzdWx0 OiB5ZXMNCmNvbmZpZ3VyZToxMTUyMzogY2hlY2tpbmcgZm9yIGZsZXgNCmNvbmZpZ3VyZToxMTUz OTogZm91bmQgL3Vzci9iaW4vZmxleA0KY29uZmlndXJlOjExNTUwOiByZXN1bHQ6IGZsZXgNCmNv bmZpZ3VyZToxMTU4NzogZmxleCBjb25mdGVzdC5sDQpjb25maWd1cmU6MTE1OTE6ICQ/ID0gMA0K Y29uZmlndXJlOjExNTkzOiBjaGVja2luZyBsZXggb3V0cHV0IGZpbGUgcm9vdA0KY29uZmlndXJl OjExNjA5OiByZXN1bHQ6IGxleC55eQ0KY29uZmlndXJlOjExNjE0OiBjaGVja2luZyBsZXggbGli cmFyeQ0KY29uZmlndXJlOjExNjMzOiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vzci9sb2NhbC9saWIgY29uZnRl c3QuYyAgID4mNQ0KY29uZnRlc3QubDogSW4gZnVuY3Rpb24gJ3l5bGV4JzoNCmNvbmZ0ZXN0Lmw6 Njogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHBvaW50ZXIgYW5kIGludGVnZXINCmNvbmZ0 ZXN0Lmw6Njogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3 aXRob3V0IGEgY2FzdA0KL3RtcC8vY2M2bHk0N3kubzogSW4gZnVuY3Rpb24gYGlucHV0JzoNCmNv bmZ0ZXN0LmM6KC50ZXh0KzB4N2Y2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeXl3cmFwJw0K L3RtcC8vY2M2bHk0N3kubzogSW4gZnVuY3Rpb24gYHl5bGV4JzoNCmNvbmZ0ZXN0LmM6KC50ZXh0 KzB4YzE5KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeXl3cmFwJw0KL3RtcC8vY2M2bHk0N3ku bzogSW4gZnVuY3Rpb24gYG1haW4nOg0KY29uZnRlc3QuYzooLnRleHQrMHhkY2YpOiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGB5eXdyYXAnDQpjb25maWd1cmU6MTE2NDA6ICQ/ID0gMQ0KY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIEEgbGV4aWNhbCBzY2FubmVyIGdlbmVyYXRl ZCBieSBmbGV4ICovDQp8IA0KfCAvKiBTY2FubmVyIHNrZWxldG9uIHZlcnNpb246DQp8ICAqICRI ZWFkZXI6IC9ob21lL2RhZmZ5L3UwL3Zlcm4vZmxleC9SQ1MvZmxleC5za2wsdiAyLjkxIDk2LzA5 LzEwIDE2OjU4OjQ4IHZlcm4gRXhwICQNCnwgICogJEZyZWVCU0Q6IHJlbGVhc2UvOS4xLjAvdXNy LmJpbi9sZXgvZmxleC5za2wgMjE0MjcyIDIwMTAtMTAtMjQgMTU6MzE6NDFaIHVxcyAkDQp8ICAq Lw0KfCANCnwgI2lmIGRlZmluZWQoX19GcmVlQlNEX18pDQp8ICNpbmNsdWRlIDxzeXMvY2RlZnMu aD4NCnwgI2Vsc2UNCnwgI2RlZmluZSBfX3VudXNlZA0KfCAjZGVmaW5lIF9fZGVhZDINCnwgI2Vu ZGlmDQp8IA0KfCAjZGVmaW5lIEZMRVhfU0NBTk5FUg0KfCAjZGVmaW5lIFlZX0ZMRVhfTUFKT1Jf VkVSU0lPTiAyDQp8ICNkZWZpbmUgWVlfRkxFWF9NSU5PUl9WRVJTSU9OIDUNCnwgDQp8ICNpbmNs dWRlIDxzdGRpby5oPg0KfCANCnwgDQp8IC8qIGNmcm9udCAxLjIgZGVmaW5lcyAiY19wbHVzcGx1 cyIgaW5zdGVhZCBvZiAiX19jcGx1c3BsdXMiICovDQp8ICNpZmRlZiBjX3BsdXNwbHVzDQp8ICNp Zm5kZWYgX19jcGx1c3BsdXMNCnwgI2RlZmluZSBfX2NwbHVzcGx1cw0KfCAjZW5kaWYNCnwgI2Vu ZGlmDQp8IA0KfCANCnwgI2lmZGVmIF9fY3BsdXNwbHVzDQp8IA0KfCAjaW5jbHVkZSA8c3RkbGli Lmg+DQp8ICNpbmNsdWRlIDx1bmlzdGQuaD4NCnwgDQp8IC8qIFVzZSBwcm90b3R5cGVzIGluIGZ1 bmN0aW9uIGRlY2xhcmF0aW9ucy4gKi8NCnwgI2RlZmluZSBZWV9VU0VfUFJPVE9TDQp8IA0KfCAv KiBUaGUgImNvbnN0IiBzdG9yYWdlLWNsYXNzLW1vZGlmaWVyIGlzIHZhbGlkLiAqLw0KfCAjZGVm aW5lIFlZX1VTRV9DT05TVA0KfCANCnwgI2Vsc2UJLyogISBfX2NwbHVzcGx1cyAqLw0KfCANCnwg I2lmIF9fU1REQ19fDQp8IA0KfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MNCnwgI2RlZmluZSBZWV9V U0VfQ09OU1QNCnwgDQp8ICNlbmRpZgkvKiBfX1NURENfXyAqLw0KfCAjZW5kaWYJLyogISBfX2Nw bHVzcGx1cyAqLw0KfCANCnwgI2lmZGVmIF9fVFVSQk9DX18NCnwgICNwcmFnbWEgd2FybiAtcmNo DQp8ICAjcHJhZ21hIHdhcm4gLXVzZQ0KfCAjaW5jbHVkZSA8aW8uaD4NCnwgI2luY2x1ZGUgPHN0 ZGxpYi5oPg0KfCAjZGVmaW5lIFlZX1VTRV9DT05TVA0KfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MN CnwgI2VuZGlmDQp8IA0KfCAjaWZkZWYgWVlfVVNFX0NPTlNUDQp8ICNkZWZpbmUgeXljb25zdCBj b25zdA0KfCAjZWxzZQ0KfCAjZGVmaW5lIHl5Y29uc3QNCnwgI2VuZGlmDQp8IA0KfCANCnwgI2lm ZGVmIFlZX1VTRV9QUk9UT1MNCnwgI2RlZmluZSBZWV9QUk9UTyhwcm90bykgcHJvdG8NCnwgI2Vs c2UNCnwgI2RlZmluZSBZWV9QUk9UTyhwcm90bykgKCkNCnwgI2VuZGlmDQp8IA0KfCAvKiBSZXR1 cm5lZCB1cG9uIGVuZC1vZi1maWxlLiAqLw0KfCAjZGVmaW5lIFlZX05VTEwgMA0KfCANCnwgLyog UHJvbW90ZXMgYSBwb3NzaWJseSBuZWdhdGl2ZSwgcG9zc2libHkgc2lnbmVkIGNoYXIgdG8gYW4g dW5zaWduZWQNCnwgICogaW50ZWdlciBmb3IgdXNlIGFzIGFuIGFycmF5IGluZGV4LiAgSWYgdGhl IHNpZ25lZCBjaGFyIGlzIG5lZ2F0aXZlLA0KfCAgKiB3ZSB3YW50IHRvIGluc3RlYWQgdHJlYXQg aXQgYXMgYW4gOC1iaXQgdW5zaWduZWQgY2hhciwgaGVuY2UgdGhlDQp8ICAqIGRvdWJsZSBjYXN0 Lg0KfCAgKi8NCnwgI2RlZmluZSBZWV9TQ19UT19VSShjKSAoKHVuc2lnbmVkIGludCkgKHVuc2ln bmVkIGNoYXIpIGMpDQp8IA0KfCAvKiBFbnRlciBhIHN0YXJ0IGNvbmRpdGlvbi4gIFRoaXMgbWFj cm8gcmVhbGx5IG91Z2h0IHRvIHRha2UgYSBwYXJhbWV0ZXIsDQp8ICAqIGJ1dCB3ZSBkbyBpdCB0 aGUgZGlzZ3VzdGluZyBjcnVmdHkgd2F5IGZvcmNlZCBvbiB1cyBieSB0aGUgKCktbGVzcw0KfCAg KiBkZWZpbml0aW9uIG9mIEJFR0lOLg0KfCAgKi8NCnwgI2RlZmluZSBCRUdJTiB5eV9zdGFydCA9 IDEgKyAyICoNCnwgDQp8IC8qIFRyYW5zbGF0ZSB0aGUgY3VycmVudCBzdGFydCBzdGF0ZSBpbnRv IGEgdmFsdWUgdGhhdCBjYW4gYmUgbGF0ZXIgaGFuZGVkDQp8ICAqIHRvIEJFR0lOIHRvIHJldHVy biB0byB0aGUgc3RhdGUuICBUaGUgWVlTVEFURSBhbGlhcyBpcyBmb3IgbGV4DQp8ICAqIGNvbXBh dGliaWxpdHkuDQp8ICAqLw0KfCAjZGVmaW5lIFlZX1NUQVJUICgoeXlfc3RhcnQgLSAxKSAvIDIp DQp8ICNkZWZpbmUgWVlTVEFURSBZWV9TVEFSVA0KfCANCnwgLyogQWN0aW9uIG51bWJlciBmb3Ig RU9GIHJ1bGUgb2YgYSBnaXZlbiBzdGFydCBzdGF0ZS4gKi8NCnwgI2RlZmluZSBZWV9TVEFURV9F T0Yoc3RhdGUpIChZWV9FTkRfT0ZfQlVGRkVSICsgc3RhdGUgKyAxKQ0KfCANCnwgLyogU3BlY2lh bCBhY3Rpb24gbWVhbmluZyAic3RhcnQgcHJvY2Vzc2luZyBhIG5ldyBmaWxlIi4gKi8NCnwgI2Rl ZmluZSBZWV9ORVdfRklMRSB5eXJlc3RhcnQoIHl5aW4gKQ0KfCANCnwgI2RlZmluZSBZWV9FTkRf T0ZfQlVGRkVSX0NIQVIgMA0KfCANCnwgLyogU2l6ZSBvZiBkZWZhdWx0IGlucHV0IGJ1ZmZlci4g Ki8NCnwgI2RlZmluZSBZWV9CVUZfU0laRSAxNjM4NA0KfCANCnwgdHlwZWRlZiBzdHJ1Y3QgeXlf YnVmZmVyX3N0YXRlICpZWV9CVUZGRVJfU1RBVEU7DQp8IA0KfCBleHRlcm4gaW50IHl5bGVuZzsN CnwgZXh0ZXJuIEZJTEUgKnl5aW4sICp5eW91dDsNCnwgDQp8ICNkZWZpbmUgRU9CX0FDVF9DT05U SU5VRV9TQ0FOIDANCnwgI2RlZmluZSBFT0JfQUNUX0VORF9PRl9GSUxFIDENCnwgI2RlZmluZSBF T0JfQUNUX0xBU1RfTUFUQ0ggMg0KfCANCnwgLyogVGhlIGZ1bmt5IGRvLXdoaWxlIGluIHRoZSBm b2xsb3dpbmcgI2RlZmluZSBpcyB1c2VkIHRvIHR1cm4gdGhlIGRlZmluaXRpb24NCnwgICogaW50 IGEgc2luZ2xlIEMgc3RhdGVtZW50ICh3aGljaCBuZWVkcyBhIHNlbWktY29sb24gdGVybWluYXRv cikuICBUaGlzDQp8ICAqIGF2b2lkcyBwcm9ibGVtcyB3aXRoIGNvZGUgbGlrZToNCnwgICoNCnwg ICogCWlmICggY29uZGl0aW9uX2hvbGRzICkNCnwgICoJCXl5bGVzcyggNSApOw0KfCAgKgllbHNl DQp8ICAqCQlkb19zb21ldGhpbmdfZWxzZSgpOw0KfCAgKg0KfCAgKiBQcmlvciB0byB1c2luZyB0 aGUgZG8td2hpbGUgdGhlIGNvbXBpbGVyIHdvdWxkIGdldCB1cHNldCBhdCB0aGUNCnwgICogImVs c2UiIGJlY2F1c2UgaXQgaW50ZXJwcmV0ZWQgdGhlICJpZiIgc3RhdGVtZW50IGFzIGJlaW5nIGFs bA0KfCAgKiBkb25lIHdoZW4gaXQgcmVhY2hlZCB0aGUgJzsnIGFmdGVyIHRoZSB5eWxlc3MoKSBj YWxsLg0KfCAgKi8NCnwgDQp8IC8qIFJldHVybiBhbGwgYnV0IHRoZSBmaXJzdCAnbicgbWF0Y2hl ZCBjaGFyYWN0ZXJzIGJhY2sgdG8gdGhlIGlucHV0IHN0cmVhbS4gKi8NCnwgDQp8ICNkZWZpbmUg eXlsZXNzKG4pIFwNCnwgCWRvIFwNCnwgCQl7IFwNCnwgCQkvKiBVbmRvIGVmZmVjdHMgb2Ygc2V0 dGluZyB1cCB5eXRleHQuICovIFwNCnwgCQkqeXlfY3AgPSB5eV9ob2xkX2NoYXI7IFwNCnwgCQlZ WV9SRVNUT1JFX1lZX01PUkVfT0ZGU0VUIFwNCnwgCQl5eV9jX2J1Zl9wID0geXlfY3AgPSB5eV9i cCArIG4gLSBZWV9NT1JFX0FESjsgXA0KfCAJCVlZX0RPX0JFRk9SRV9BQ1RJT047IC8qIHNldCB1 cCB5eXRleHQgYWdhaW4gKi8gXA0KfCAJCX0gXA0KfCAJd2hpbGUgKCAwICkNCnwgDQp8ICNkZWZp bmUgdW5wdXQoYykgeXl1bnB1dCggYywgeXl0ZXh0X3B0ciApDQp8IA0KfCAvKiBUaGUgZm9sbG93 aW5nIGlzIGJlY2F1c2Ugd2UgY2Fubm90IHBvcnRhYmx5IGdldCBvdXIgaGFuZHMgb24gc2l6ZV90 DQp8ICAqICh3aXRob3V0IGF1dG9jb25mJ3MgaGVscCwgd2hpY2ggaXNuJ3QgYXZhaWxhYmxlIGJl Y2F1c2Ugd2Ugd2FudA0KfCAgKiBmbGV4LWdlbmVyYXRlZCBzY2FubmVycyB0byBjb21waWxlIG9u IHRoZWlyIG93bikuDQp8ICAqLw0KfCB0eXBlZGVmIHVuc2lnbmVkIGludCB5eV9zaXplX3Q7DQp8 IA0KfCANCnwgc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZQ0KfCAJew0KfCAJRklMRSAqeXlfaW5wdXRf ZmlsZTsNCnwgDQp8IAljaGFyICp5eV9jaF9idWY7CQkvKiBpbnB1dCBidWZmZXIgKi8NCnwgCWNo YXIgKnl5X2J1Zl9wb3M7CQkvKiBjdXJyZW50IHBvc2l0aW9uIGluIGlucHV0IGJ1ZmZlciAqLw0K fCANCnwgCS8qIFNpemUgb2YgaW5wdXQgYnVmZmVyIGluIGJ5dGVzLCBub3QgaW5jbHVkaW5nIHJv b20gZm9yIEVPQg0KfCAJICogY2hhcmFjdGVycy4NCnwgCSAqLw0KfCAJeXlfc2l6ZV90IHl5X2J1 Zl9zaXplOw0KfCANCnwgCS8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQgaW50byB5eV9jaF9i dWYsIG5vdCBpbmNsdWRpbmcgRU9CDQp8IAkgKiBjaGFyYWN0ZXJzLg0KfCAJICovDQp8IAlpbnQg eXlfbl9jaGFyczsNCnwgDQp8IAkvKiBXaGV0aGVyIHdlICJvd24iIHRoZSBidWZmZXIgLSBpLmUu LCB3ZSBrbm93IHdlIGNyZWF0ZWQgaXQsDQp8IAkgKiBhbmQgY2FuIHJlYWxsb2MoKSBpdCB0byBn cm93IGl0LCBhbmQgc2hvdWxkIGZyZWUoKSBpdCB0bw0KfCAJICogZGVsZXRlIGl0Lg0KfCAJICov DQp8IAlpbnQgeXlfaXNfb3VyX2J1ZmZlcjsNCnwgDQp8IAkvKiBXaGV0aGVyIHRoaXMgaXMgYW4g ImludGVyYWN0aXZlIiBpbnB1dCBzb3VyY2U7IGlmIHNvLCBhbmQNCnwgCSAqIGlmIHdlJ3JlIHVz aW5nIHN0ZGlvIGZvciBpbnB1dCwgdGhlbiB3ZSB3YW50IHRvIHVzZSBnZXRjKCkNCnwgCSAqIGlu c3RlYWQgb2YgZnJlYWQoKSwgdG8gbWFrZSBzdXJlIHdlIHN0b3AgZmV0Y2hpbmcgaW5wdXQgYWZ0 ZXINCnwgCSAqIGVhY2ggbmV3bGluZS4NCnwgCSAqLw0KfCAJaW50IHl5X2lzX2ludGVyYWN0aXZl Ow0KfCANCnwgCS8qIFdoZXRoZXIgd2UncmUgY29uc2lkZXJlZCB0byBiZSBhdCB0aGUgYmVnaW5u aW5nIG9mIGEgbGluZS4NCnwgCSAqIElmIHNvLCAnXicgcnVsZXMgd2lsbCBiZSBhY3RpdmUgb24g dGhlIG5leHQgbWF0Y2gsIG90aGVyd2lzZQ0KfCAJICogbm90Lg0KfCAJICovDQp8IAlpbnQgeXlf YXRfYm9sOw0KfCANCnwgCS8qIFdoZXRoZXIgdG8gdHJ5IHRvIGZpbGwgdGhlIGlucHV0IGJ1ZmZl ciB3aGVuIHdlIHJlYWNoIHRoZQ0KfCAJICogZW5kIG9mIGl0Lg0KfCAJICovDQp8IAlpbnQgeXlf ZmlsbF9idWZmZXI7DQp8IA0KfCAJaW50IHl5X2J1ZmZlcl9zdGF0dXM7DQp8ICNkZWZpbmUgWVlf QlVGRkVSX05FVyAwDQp8ICNkZWZpbmUgWVlfQlVGRkVSX05PUk1BTCAxDQp8IAkvKiBXaGVuIGFu IEVPRidzIGJlZW4gc2VlbiBidXQgdGhlcmUncyBzdGlsbCBzb21lIHRleHQgdG8gcHJvY2Vzcw0K fCAJICogdGhlbiB3ZSBtYXJrIHRoZSBidWZmZXIgYXMgWVlfRU9GX1BFTkRJTkcsIHRvIGluZGlj YXRlIHRoYXQgd2UNCnwgCSAqIHNob3VsZG4ndCB0cnkgcmVhZGluZyBmcm9tIHRoZSBpbnB1dCBz b3VyY2UgYW55IG1vcmUuICBXZSBtaWdodA0KfCAJICogc3RpbGwgaGF2ZSBhIGJ1bmNoIG9mIHRv a2VucyB0byBtYXRjaCwgdGhvdWdoLCBiZWNhdXNlIG9mDQp8IAkgKiBwb3NzaWJsZSBiYWNraW5n LXVwLg0KfCAJICoNCnwgCSAqIFdoZW4gd2UgYWN0dWFsbHkgc2VlIHRoZSBFT0YsIHdlIGNoYW5n ZSB0aGUgc3RhdHVzIHRvICJuZXciDQp8IAkgKiAodmlhIHl5cmVzdGFydCgpKSwgc28gdGhhdCB0 aGUgdXNlciBjYW4gY29udGludWUgc2Nhbm5pbmcgYnkNCnwgCSAqIGp1c3QgcG9pbnRpbmcgeXlp biBhdCBhIG5ldyBpbnB1dCBmaWxlLg0KfCAJICovDQp8ICNkZWZpbmUgWVlfQlVGRkVSX0VPRl9Q RU5ESU5HIDINCnwgCX07DQp8IA0KfCBzdGF0aWMgWVlfQlVGRkVSX1NUQVRFIHl5X2N1cnJlbnRf YnVmZmVyID0gMDsNCnwgDQp8IC8qIFdlIHByb3ZpZGUgbWFjcm9zIGZvciBhY2Nlc3NpbmcgYnVm ZmVyIHN0YXRlcyBpbiBjYXNlIGluIHRoZQ0KfCAgKiBmdXR1cmUgd2Ugd2FudCB0byBwdXQgdGhl IGJ1ZmZlciBzdGF0ZXMgaW4gYSBtb3JlIGdlbmVyYWwNCnwgICogInNjYW5uZXIgc3RhdGUiLg0K fCAgKi8NCnwgI2RlZmluZSBZWV9DVVJSRU5UX0JVRkZFUiB5eV9jdXJyZW50X2J1ZmZlcg0KfCAN CnwgDQp8IC8qIHl5X2hvbGRfY2hhciBob2xkcyB0aGUgY2hhcmFjdGVyIGxvc3Qgd2hlbiB5eXRl eHQgaXMgZm9ybWVkLiAqLw0KfCBzdGF0aWMgY2hhciB5eV9ob2xkX2NoYXI7DQp8IA0KfCBzdGF0 aWMgaW50IHl5X25fY2hhcnM7CQkvKiBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFkIGludG8geXlf Y2hfYnVmICovDQp8IA0KfCANCnwgaW50IHl5bGVuZzsNCnwgDQp8IC8qIFBvaW50cyB0byBjdXJy ZW50IGNoYXJhY3RlciBpbiBidWZmZXIuICovDQp8IHN0YXRpYyBjaGFyICp5eV9jX2J1Zl9wID0g KGNoYXIgKikgMDsNCnwgc3RhdGljIGludCB5eV9pbml0ID0gMTsJCS8qIHdoZXRoZXIgd2UgbmVl ZCB0byBpbml0aWFsaXplICovDQp8IHN0YXRpYyBpbnQgeXlfc3RhcnQgPSAwOwkvKiBzdGFydCBz dGF0ZSBudW1iZXIgKi8NCnwgDQp8IC8qIEZsYWcgd2hpY2ggaXMgdXNlZCB0byBhbGxvdyB5eXdy YXAoKSdzIHRvIGRvIGJ1ZmZlciBzd2l0Y2hlcw0KfCAgKiBpbnN0ZWFkIG9mIHNldHRpbmcgdXAg YSBmcmVzaCB5eWluLiAgQSBiaXQgb2YgYSBoYWNrIC4uLg0KfCAgKi8NCnwgc3RhdGljIGludCB5 eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2Y7DQp8IA0KfCB2b2lkIHl5cmVzdGFydCBZWV9QUk9U TygoIEZJTEUgKmlucHV0X2ZpbGUgKSk7DQp8IA0KfCB2b2lkIHl5X3N3aXRjaF90b19idWZmZXIg WVlfUFJPVE8oKCBZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlciApKTsNCnwgdm9pZCB5eV9sb2Fk X2J1ZmZlcl9zdGF0ZSBZWV9QUk9UTygoIHZvaWQgKSk7DQp8IFlZX0JVRkZFUl9TVEFURSB5eV9j cmVhdGVfYnVmZmVyIFlZX1BST1RPKCggRklMRSAqZmlsZSwgaW50IHNpemUgKSk7DQp8IHZvaWQg eXlfZGVsZXRlX2J1ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9TVEFURSBiICkpOw0KfCB2b2lk IHl5X2luaXRfYnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NUQVRFIGIsIEZJTEUgKmZpbGUg KSk7DQp8IHZvaWQgeXlfZmx1c2hfYnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NUQVRFIGIg KSk7DQp8ICNkZWZpbmUgWVlfRkxVU0hfQlVGRkVSIHl5X2ZsdXNoX2J1ZmZlciggeXlfY3VycmVu dF9idWZmZXIgKQ0KfCANCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnVmZmVyIFlZX1BST1RP KCggY2hhciAqYmFzZSwgeXlfc2l6ZV90IHNpemUgKSk7DQp8IFlZX0JVRkZFUl9TVEFURSB5eV9z Y2FuX3N0cmluZyBZWV9QUk9UTygoIHl5Y29uc3QgY2hhciAqeXlfc3RyICkpOw0KfCBZWV9CVUZG RVJfU1RBVEUgeXlfc2Nhbl9ieXRlcyBZWV9QUk9UTygoIHl5Y29uc3QgY2hhciAqYnl0ZXMsIGlu dCBsZW4gKSk7DQp8IA0KfCBzdGF0aWMgdm9pZCAqeXlfZmxleF9hbGxvYyBZWV9QUk9UTygoIHl5 X3NpemVfdCApKTsNCnwgc3RhdGljIHZvaWQgKnl5X2ZsZXhfcmVhbGxvYyBZWV9QUk9UTygoIHZv aWQgKiwgeXlfc2l6ZV90ICkpIF9fdW51c2VkOw0KfCBzdGF0aWMgdm9pZCB5eV9mbGV4X2ZyZWUg WVlfUFJPVE8oKCB2b2lkICogKSk7DQp8IA0KfCAjZGVmaW5lIHl5X25ld19idWZmZXIgeXlfY3Jl YXRlX2J1ZmZlcg0KfCANCnwgI2RlZmluZSB5eV9zZXRfaW50ZXJhY3RpdmUoaXNfaW50ZXJhY3Rp dmUpIFwNCnwgCXsgXA0KfCAJaWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVyICkgXA0KfCAJCXl5X2N1 cnJlbnRfYnVmZmVyID0geXlfY3JlYXRlX2J1ZmZlciggeXlpbiwgWVlfQlVGX1NJWkUgKTsgXA0K fCAJeXlfY3VycmVudF9idWZmZXItPnl5X2lzX2ludGVyYWN0aXZlID0gaXNfaW50ZXJhY3RpdmU7 IFwNCnwgCX0NCnwgDQp8ICNkZWZpbmUgeXlfc2V0X2JvbChhdF9ib2wpIFwNCnwgCXsgXA0KfCAJ aWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVyICkgXA0KfCAJCXl5X2N1cnJlbnRfYnVmZmVyID0geXlf Y3JlYXRlX2J1ZmZlciggeXlpbiwgWVlfQlVGX1NJWkUgKTsgXA0KfCAJeXlfY3VycmVudF9idWZm ZXItPnl5X2F0X2JvbCA9IGF0X2JvbDsgXA0KfCAJfQ0KfCANCnwgI2RlZmluZSBZWV9BVF9CT0wo KSAoeXlfY3VycmVudF9idWZmZXItPnl5X2F0X2JvbCkNCnwgDQp8IA0KfCAjZGVmaW5lIFlZX1VT RVNfUkVKRUNUDQp8IHR5cGVkZWYgdW5zaWduZWQgY2hhciBZWV9DSEFSOw0KfCBGSUxFICp5eWlu ID0gKEZJTEUgKikgMCwgKnl5b3V0ID0gKEZJTEUgKikgMDsNCnwgdHlwZWRlZiBpbnQgeXlfc3Rh dGVfdHlwZTsNCnwgZXh0ZXJuIGNoYXIgKnl5dGV4dDsNCnwgI2RlZmluZSB5eXRleHRfcHRyIHl5 dGV4dA0KfCANCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfZ2V0X3ByZXZpb3VzX3N0YXRlIFlZ X1BST1RPKCggdm9pZCApKTsNCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfdHJ5X05VTF90cmFu cyBZWV9QUk9UTygoIHl5X3N0YXRlX3R5cGUgY3VycmVudF9zdGF0ZSApKTsNCnwgc3RhdGljIGlu dCB5eV9nZXRfbmV4dF9idWZmZXIgWVlfUFJPVE8oKCB2b2lkICkpOw0KfCBzdGF0aWMgdm9pZCB5 eV9mYXRhbF9lcnJvciBZWV9QUk9UTygoIHl5Y29uc3QgY2hhciBtc2dbXSApKSBfX2RlYWQyOw0K fCANCnwgLyogRG9uZSBhZnRlciB0aGUgY3VycmVudCBwYXR0ZXJuIGhhcyBiZWVuIG1hdGNoZWQg YW5kIGJlZm9yZSB0aGUNCnwgICogY29ycmVzcG9uZGluZyBhY3Rpb24gLSBzZXRzIHVwIHl5dGV4 dC4NCnwgICovDQp8ICNkZWZpbmUgWVlfRE9fQkVGT1JFX0FDVElPTiBcDQp8IAl5eXRleHRfcHRy ID0geXlfYnA7IFwNCnwgCXl5dGV4dF9wdHIgLT0geXlfbW9yZV9sZW47IFwNCnwgCXl5bGVuZyA9 IChpbnQpICh5eV9jcCAtIHl5dGV4dF9wdHIpOyBcDQp8IAl5eV9ob2xkX2NoYXIgPSAqeXlfY3A7 IFwNCnwgCSp5eV9jcCA9ICdcMCc7IFwNCnwgCXl5X2NfYnVmX3AgPSB5eV9jcDsNCnwgDQp8ICNk ZWZpbmUgWVlfTlVNX1JVTEVTIDgNCnwgI2RlZmluZSBZWV9FTkRfT0ZfQlVGRkVSIDkNCnwgc3Rh dGljIHl5Y29uc3Qgc2hvcnQgaW50IHl5X2FjY2xpc3RbMjNdID0NCnwgICAgIHsgICAwLA0KfCAg ICAgICAgIDksICAgIDcsICAgIDgsICAgIDgsICAgIDEsICAgIDcsICAgIDgsICAgIDIsICAgIDcs ICAgIDgsDQp8ICAgICAgICAgMywgICAgNywgICAgOCwgICAgNCwgICAgNywgICAgOCwgICAgNSwg ICAgNywgICAgOCwgICAgNiwNCnwgICAgICAgICA3LCAgICA4DQp8ICAgICB9IDsNCnwgDQp8IHN0 YXRpYyB5eWNvbnN0IHNob3J0IGludCB5eV9hY2NlcHRbMTRdID0NCnwgICAgIHsgICAwLA0KfCAg ICAgICAgIDEsICAgIDEsICAgIDEsICAgIDIsICAgIDQsICAgIDUsICAgIDgsICAgMTEsICAgMTQs ICAgMTcsDQp8ICAgICAgICAyMCwgICAyMywgICAyMw0KfCAgICAgfSA7DQp8IA0KfCBzdGF0aWMg eXljb25zdCBpbnQgeXlfZWNbMjU2XSA9DQp8ICAgICB7ICAgMCwNCnwgICAgICAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAyLA0KfCAgICAg ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAgICAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAzLCAgICA0LCAgICA1LCAgICA2LA0KfCANCnwgICAgICAgICA3LCAgICA4 LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAg ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAgICAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCANCnwgICAgICAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAg ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwg ICAgMSwgICAgMSwgICAgMQ0KfCAgICAgfSA7DQp8IA0KfCBzdGF0aWMgeXljb25zdCBpbnQgeXlf bWV0YVs5XSA9DQp8ICAgICB7ICAgMCwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxDQp8ICAgICB9IDsNCnwgDQp8IHN0YXRpYyB5eWNvbnN0IHNo b3J0IGludCB5eV9iYXNlWzEzXSA9DQp8ICAgICB7ICAgMCwNCnwgICAgICAgICAwLCAgICAwLCAg ICA5LCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLA0KfCAgICAgICAg MTAsICAgMTANCnwgICAgIH0gOw0KfCANCnwgc3RhdGljIHl5Y29uc3Qgc2hvcnQgaW50IHl5X2Rl ZlsxM10gPQ0KfCAgICAgeyAgIDAsDQp8ICAgICAgICAxMiwgICAgMSwgICAxMiwgICAxMiwgICAx MiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwNCnwgICAgICAgIDEyLCAgICAwDQp8ICAg ICB9IDsNCnwgDQp8IHN0YXRpYyB5eWNvbnN0IHNob3J0IGludCB5eV9ueHRbMTldID0NCnwgICAg IHsgICAwLA0KfCAgICAgICAgIDQsICAgIDUsICAgIDYsICAgIDcsICAgIDgsICAgIDksICAgMTAs ICAgMTEsICAgMTIsICAgIDMsDQp8ICAgICAgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwg ICAxMiwgICAxMiwgICAxMg0KfCAgICAgfSA7DQp8IA0KfCBzdGF0aWMgeXljb25zdCBzaG9ydCBp bnQgeXlfY2hrWzE5XSA9DQp8ICAgICB7ICAgMCwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAzLCAgIDEyLA0KfCAgICAgICAgMTIsICAg MTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTIsICAgMTINCnwgICAgIH0gOw0KfCANCnwg c3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfc3RhdGVfYnVmW1lZX0JVRl9TSVpFICsgMl0sICp5eV9z dGF0ZV9wdHI7DQp8IHN0YXRpYyBjaGFyICp5eV9mdWxsX21hdGNoOw0KfCBzdGF0aWMgaW50IHl5 X2xwOw0KfCAjZGVmaW5lIFJFSkVDVCBcDQp8IHsgXA0KfCAqeXlfY3AgPSB5eV9ob2xkX2NoYXI7 IC8qIHVuZG8gZWZmZWN0cyBvZiBzZXR0aW5nIHVwIHl5dGV4dCAqLyBcDQp8IHl5X2NwID0geXlf ZnVsbF9tYXRjaDsgLyogcmVzdG9yZSBwb3NzLiBiYWNrZWQtb3ZlciB0ZXh0ICovIFwNCnwgKyt5 eV9scDsgXA0KfCBnb3RvIGZpbmRfcnVsZTsgXA0KfCB9DQp8IHN0YXRpYyBpbnQgeXlfbW9yZV9m bGFnID0gMDsNCnwgc3RhdGljIGludCB5eV9tb3JlX2xlbiA9IDA7DQp8ICNkZWZpbmUgeXltb3Jl KCkgKHl5X21vcmVfZmxhZyA9IDEpDQp8ICNkZWZpbmUgWVlfTU9SRV9BREogeXlfbW9yZV9sZW4N CnwgI2RlZmluZSBZWV9SRVNUT1JFX1lZX01PUkVfT0ZGU0VUDQp8IGNoYXIgKnl5dGV4dDsNCnwg I2xpbmUgMSAiY29uZnRlc3QubCINCnwgI2RlZmluZSBJTklUSUFMIDANCnwgI2xpbmUgMzkxICJs ZXgueXkuYyINCnwgDQp8IC8qIE1hY3JvcyBhZnRlciB0aGlzIHBvaW50IGNhbiBhbGwgYmUgb3Zl cnJpZGRlbiBieSB1c2VyIGRlZmluaXRpb25zIGluDQp8ICAqIHNlY3Rpb24gMS4NCnwgICovDQp8 IA0KfCAjaWZuZGVmIFlZX1NLSVBfWVlXUkFQDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRl cm4gIkMiIGludCB5eXdyYXAgWVlfUFJPVE8oKCB2b2lkICkpOw0KfCAjZWxzZQ0KfCBleHRlcm4g aW50IHl5d3JhcCBZWV9QUk9UTygoIHZvaWQgKSk7DQp8ICNlbmRpZg0KfCAjZW5kaWYNCnwgDQp8 ICNpZm5kZWYgWVlfTk9fVU5QVVQNCnwgc3RhdGljIHZvaWQgeXl1bnB1dCBZWV9QUk9UTygoIGlu dCBjLCBjaGFyICpidWZfcHRyICkpOw0KfCAjZW5kaWYNCnwgDQp8ICNpZm5kZWYgeXl0ZXh0X3B0 cg0KfCBzdGF0aWMgdm9pZCB5eV9mbGV4X3N0cm5jcHkgWVlfUFJPVE8oKCBjaGFyICosIHl5Y29u c3QgY2hhciAqLCBpbnQgKSk7DQp8ICNlbmRpZg0KfCANCnwgI2lmZGVmIFlZX05FRURfU1RSTEVO DQp8IHN0YXRpYyBpbnQgeXlfZmxleF9zdHJsZW4gWVlfUFJPVE8oKCB5eWNvbnN0IGNoYXIgKiAp KTsNCnwgI2VuZGlmDQp8IA0KfCAjaWZuZGVmIFlZX05PX0lOUFVUDQp8ICNpZmRlZiBfX2NwbHVz cGx1cw0KfCBzdGF0aWMgaW50IHl5aW5wdXQgWVlfUFJPVE8oKCB2b2lkICkpOw0KfCAjZWxzZQ0K fCBzdGF0aWMgaW50IGlucHV0IFlZX1BST1RPKCggdm9pZCApKTsNCnwgI2VuZGlmDQp8ICNlbmRp Zg0KfCANCnwgI2lmIFlZX1NUQUNLX1VTRUQNCnwgc3RhdGljIGludCB5eV9zdGFydF9zdGFja19w dHIgPSAwOw0KfCBzdGF0aWMgaW50IHl5X3N0YXJ0X3N0YWNrX2RlcHRoID0gMDsNCnwgc3RhdGlj IGludCAqeXlfc3RhcnRfc3RhY2sgPSAwOw0KfCAjaWZuZGVmIFlZX05PX1BVU0hfU1RBVEUNCnwg c3RhdGljIHZvaWQgeXlfcHVzaF9zdGF0ZSBZWV9QUk9UTygoIGludCBuZXdfc3RhdGUgKSk7DQp8 ICNlbmRpZg0KfCAjaWZuZGVmIFlZX05PX1BPUF9TVEFURQ0KfCBzdGF0aWMgdm9pZCB5eV9wb3Bf c3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOw0KfCAjZW5kaWYNCnwgI2lmbmRlZiBZWV9OT19UT1Bf U1RBVEUNCnwgc3RhdGljIGludCB5eV90b3Bfc3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOw0KfCAj ZW5kaWYNCnwgDQp8ICNlbHNlDQp8ICNkZWZpbmUgWVlfTk9fUFVTSF9TVEFURSAxDQp8ICNkZWZp bmUgWVlfTk9fUE9QX1NUQVRFIDENCnwgI2RlZmluZSBZWV9OT19UT1BfU1RBVEUgMQ0KfCAjZW5k aWYNCnwgDQp8ICNpZmRlZiBZWV9NQUxMT0NfREVDTA0KfCBZWV9NQUxMT0NfREVDTA0KfCAjZWxz ZQ0KfCAjaWYgX19TVERDX18NCnwgI2lmbmRlZiBfX2NwbHVzcGx1cw0KfCAjaW5jbHVkZSA8c3Rk bGliLmg+DQp8ICNlbmRpZg0KfCAjZWxzZQ0KfCAvKiBKdXN0IHRyeSB0byBnZXQgYnkgd2l0aG91 dCBkZWNsYXJpbmcgdGhlIHJvdXRpbmVzLiAgVGhpcyB3aWxsIGZhaWwNCnwgICogbWlzZXJhYmx5 IG9uIG5vbi1BTlNJIHN5c3RlbXMgZm9yIHdoaWNoIHNpemVvZihzaXplX3QpICE9IHNpemVvZihp bnQpDQp8ICAqIG9yIHNpemVvZih2b2lkKikgIT0gc2l6ZW9mKGludCkuDQp8ICAqLw0KfCAjZW5k aWYNCnwgI2VuZGlmDQp8IA0KfCAvKiBBbW91bnQgb2Ygc3R1ZmYgdG8gc2x1cnAgdXAgd2l0aCBl YWNoIHJlYWQuICovDQp8ICNpZm5kZWYgWVlfUkVBRF9CVUZfU0laRQ0KfCAjZGVmaW5lIFlZX1JF QURfQlVGX1NJWkUgODE5Mg0KfCAjZW5kaWYNCnwgDQp8IC8qIENvcHkgd2hhdGV2ZXIgdGhlIGxh c3QgcnVsZSBtYXRjaGVkIHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQuICovDQp8IA0KfCAjaWZuZGVm IEVDSE8NCnwgLyogVGhpcyB1c2VkIHRvIGJlIGFuIGZwdXRzKCksIGJ1dCBzaW5jZSB0aGUgc3Ry aW5nIG1pZ2h0IGNvbnRhaW4gTlVMJ3MsDQp8ICAqIHdlIG5vdyB1c2UgZndyaXRlKCkuDQp8ICAq Lw0KfCAjZGVmaW5lIEVDSE8gKHZvaWQpIGZ3cml0ZSggeXl0ZXh0LCB5eWxlbmcsIDEsIHl5b3V0 ICkNCnwgI2VuZGlmDQp8IA0KfCAvKiBHZXRzIGlucHV0IGFuZCBzdHVmZnMgaXQgaW50byAiYnVm Ii4gIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQsIG9yIFlZX05VTEwsDQp8ICAqIGlzIHJldHVy bmVkIGluICJyZXN1bHQiLg0KfCAgKi8NCnwgI2lmbmRlZiBZWV9JTlBVVA0KfCAjZGVmaW5lIFlZ X0lOUFVUKGJ1ZixyZXN1bHQsbWF4X3NpemUpIFwNCnwgCWlmICggeXlfY3VycmVudF9idWZmZXIt Pnl5X2lzX2ludGVyYWN0aXZlICkgXA0KfCAJCXsgXA0KfCAJCWludCBjID0gJyonLCBuOyBcDQp8 IAkJZm9yICggbiA9IDA7IG4gPCBtYXhfc2l6ZSAmJiBcDQp8IAkJCSAgICAgKGMgPSBnZXRjKCB5 eWluICkpICE9IEVPRiAmJiBjICE9ICdcbic7ICsrbiApIFwNCnwgCQkJYnVmW25dID0gKGNoYXIp IGM7IFwNCnwgCQlpZiAoIGMgPT0gJ1xuJyApIFwNCnwgCQkJYnVmW24rK10gPSAoY2hhcikgYzsg XA0KfCAJCWlmICggYyA9PSBFT0YgJiYgZmVycm9yKCB5eWluICkgKSBcDQp8IAkJCVlZX0ZBVEFM X0VSUk9SKCAiaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZCIgKTsgXA0KfCAJCXJlc3VsdCA9 IG47IFwNCnwgCQl9IFwNCnwgCWVsc2UgaWYgKCAoKHJlc3VsdCA9IGZyZWFkKCBidWYsIDEsIG1h eF9zaXplLCB5eWluICkpID09IDApIFwNCnwgCQkgICYmIGZlcnJvciggeXlpbiApICkgXA0KfCAJ CVlZX0ZBVEFMX0VSUk9SKCAiaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZCIgKTsNCnwgI2Vu ZGlmDQp8IA0KfCAvKiBObyBzZW1pLWNvbG9uIGFmdGVyIHJldHVybjsgY29ycmVjdCB1c2FnZSBp cyB0byB3cml0ZSAieXl0ZXJtaW5hdGUoKTsiIC0NCnwgICogd2UgZG9uJ3Qgd2FudCBhbiBleHRy YSAnOycgYWZ0ZXIgdGhlICJyZXR1cm4iIGJlY2F1c2UgdGhhdCB3aWxsIGNhdXNlDQp8ICAqIHNv bWUgY29tcGlsZXJzIHRvIGNvbXBsYWluIGFib3V0IHVucmVhY2hhYmxlIHN0YXRlbWVudHMuDQp8 ICAqLw0KfCAjaWZuZGVmIHl5dGVybWluYXRlDQp8ICNkZWZpbmUgeXl0ZXJtaW5hdGUoKSByZXR1 cm4gWVlfTlVMTA0KfCAjZW5kaWYNCnwgDQp8IC8qIE51bWJlciBvZiBlbnRyaWVzIGJ5IHdoaWNo IHN0YXJ0LWNvbmRpdGlvbiBzdGFjayBncm93cy4gKi8NCnwgI2lmbmRlZiBZWV9TVEFSVF9TVEFD S19JTkNSDQp8ICNkZWZpbmUgWVlfU1RBUlRfU1RBQ0tfSU5DUiAyNQ0KfCAjZW5kaWYNCnwgDQp8 IC8qIFJlcG9ydCBhIGZhdGFsIGVycm9yLiAqLw0KfCAjaWZuZGVmIFlZX0ZBVEFMX0VSUk9SDQp8 ICNkZWZpbmUgWVlfRkFUQUxfRVJST1IobXNnKSB5eV9mYXRhbF9lcnJvciggbXNnICkNCnwgI2Vu ZGlmDQp8IA0KfCAvKiBEZWZhdWx0IGRlY2xhcmF0aW9uIG9mIGdlbmVyYXRlZCBzY2FubmVyIC0g YSBkZWZpbmUgc28gdGhlIHVzZXIgY2FuDQp8ICAqIGVhc2lseSBhZGQgcGFyYW1ldGVycy4NCnwg ICovDQp8ICNpZm5kZWYgWVlfREVDTA0KfCAjZGVmaW5lIFlZX0RFQ0wgaW50IHl5bGV4IFlZX1BS T1RPKCggdm9pZCApKQ0KfCAjZW5kaWYNCnwgDQp8IC8qIENvZGUgZXhlY3V0ZWQgYXQgdGhlIGJl Z2lubmluZyBvZiBlYWNoIHJ1bGUsIGFmdGVyIHl5dGV4dCBhbmQgeXlsZW5nDQp8ICAqIGhhdmUg YmVlbiBzZXQgdXAuDQp8ICAqLw0KfCAjaWZuZGVmIFlZX1VTRVJfQUNUSU9ODQp8ICNkZWZpbmUg WVlfVVNFUl9BQ1RJT04NCnwgI2VuZGlmDQp8IA0KfCAvKiBDb2RlIGV4ZWN1dGVkIGF0IHRoZSBl bmQgb2YgZWFjaCBydWxlLiAqLw0KfCAjaWZuZGVmIFlZX0JSRUFLDQp8ICNkZWZpbmUgWVlfQlJF QUsgYnJlYWs7DQp8ICNlbmRpZg0KfCANCnwgI2RlZmluZSBZWV9SVUxFX1NFVFVQIFwNCnwgCVlZ X1VTRVJfQUNUSU9ODQp8IA0KfCBZWV9ERUNMDQp8IAl7DQp8IAl5eV9zdGF0ZV90eXBlIHl5X2N1 cnJlbnRfc3RhdGU7DQp8IAljaGFyICp5eV9jcCwgKnl5X2JwOw0KfCAJaW50IHl5X2FjdDsNCnwg DQp8ICNsaW5lIDEgImNvbmZ0ZXN0LmwiDQp8IA0KfCAjbGluZSA1NDQgImxleC55eS5jIg0KfCAN CnwgCWlmICggeXlfaW5pdCApDQp8IAkJew0KfCAJCXl5X2luaXQgPSAwOw0KfCANCnwgI2lmZGVm IFlZX1VTRVJfSU5JVA0KfCAJCVlZX1VTRVJfSU5JVDsNCnwgI2VuZGlmDQp8IA0KfCAJCWlmICgg ISB5eV9zdGFydCApDQp8IAkJCXl5X3N0YXJ0ID0gMTsJLyogZmlyc3Qgc3RhcnQgc3RhdGUgKi8N CnwgDQp8IAkJaWYgKCAhIHl5aW4gKQ0KfCAJCQl5eWluID0gc3RkaW47DQp8IA0KfCAJCWlmICgg ISB5eW91dCApDQp8IAkJCXl5b3V0ID0gc3Rkb3V0Ow0KfCANCnwgCQlpZiAoICEgeXlfY3VycmVu dF9idWZmZXIgKQ0KfCAJCQl5eV9jdXJyZW50X2J1ZmZlciA9DQp8IAkJCQl5eV9jcmVhdGVfYnVm ZmVyKCB5eWluLCBZWV9CVUZfU0laRSApOw0KfCANCnwgCQl5eV9sb2FkX2J1ZmZlcl9zdGF0ZSgp Ow0KfCAJCX0NCnwgDQp8IAl3aGlsZSAoIDEgKQkJLyogbG9vcHMgdW50aWwgZW5kLW9mLWZpbGUg aXMgcmVhY2hlZCAqLw0KfCAJCXsNCnwgCQl5eV9tb3JlX2xlbiA9IDA7DQp8IAkJaWYgKCB5eV9t b3JlX2ZsYWcgKQ0KfCAJCQl7DQp8IAkJCXl5X21vcmVfbGVuID0geXlfY19idWZfcCAtIHl5dGV4 dF9wdHI7DQp8IAkJCXl5X21vcmVfZmxhZyA9IDA7DQp8IAkJCX0NCnwgCQl5eV9jcCA9IHl5X2Nf YnVmX3A7DQp8IA0KfCAJCS8qIFN1cHBvcnQgb2YgeXl0ZXh0LiAqLw0KfCAJCSp5eV9jcCA9IHl5 X2hvbGRfY2hhcjsNCnwgDQp8IAkJLyogeXlfYnAgcG9pbnRzIHRvIHRoZSBwb3NpdGlvbiBpbiB5 eV9jaF9idWYgb2YgdGhlIHN0YXJ0IG9mDQp8IAkJICogdGhlIGN1cnJlbnQgcnVuLg0KfCAJCSAq Lw0KfCAJCXl5X2JwID0geXlfY3A7DQp8IA0KfCAJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9zdGFy dDsNCnwgCQl5eV9zdGF0ZV9wdHIgPSB5eV9zdGF0ZV9idWY7DQp8IAkJKnl5X3N0YXRlX3B0cisr ID0geXlfY3VycmVudF9zdGF0ZTsNCnwgeXlfbWF0Y2g6DQp8IAkJZG8NCnwgCQkJew0KfCAJCQlZ WV9DSEFSIHl5X2MgPSB5eV9lY1tZWV9TQ19UT19VSSgqeXlfY3ApXTsNCnwgCQkJd2hpbGUgKCB5 eV9jaGtbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3Rh dGUgKQ0KfCAJCQkJew0KfCAJCQkJeXlfY3VycmVudF9zdGF0ZSA9IChpbnQpIHl5X2RlZlt5eV9j dXJyZW50X3N0YXRlXTsNCnwgCQkJCWlmICggeXlfY3VycmVudF9zdGF0ZSA+PSAxMyApDQp8IAkJ CQkJeXlfYyA9IHl5X21ldGFbKHVuc2lnbmVkIGludCkgeXlfY107DQp8IAkJCQl9DQp8IAkJCXl5 X2N1cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArICh1bnNp Z25lZCBpbnQpIHl5X2NdOw0KfCAJCQkqeXlfc3RhdGVfcHRyKysgPSB5eV9jdXJyZW50X3N0YXRl Ow0KfCAJCQkrK3l5X2NwOw0KfCAJCQl9DQp8IAkJd2hpbGUgKCB5eV9iYXNlW3l5X2N1cnJlbnRf c3RhdGVdICE9IDEwICk7DQp8IA0KfCB5eV9maW5kX2FjdGlvbjoNCnwgCQl5eV9jdXJyZW50X3N0 YXRlID0gKi0teXlfc3RhdGVfcHRyOw0KfCAJCXl5X2xwID0geXlfYWNjZXB0W3l5X2N1cnJlbnRf c3RhdGVdOw0KfCBnb3RvIGZpbmRfcnVsZTsgLyogYXZvaWQgYGRlZmluZWQgYnV0IG5vdCB1c2Vk JyB3YXJuaW5nICovDQp8IGZpbmRfcnVsZTogLyogd2UgYnJhbmNoIHRvIHRoaXMgbGFiZWwgd2hl biBiYWNraW5nIHVwICovDQp8IAkJZm9yICggOyA7ICkgLyogdW50aWwgd2UgZmluZCB3aGF0IHJ1 bGUgd2UgbWF0Y2hlZCAqLw0KfCAJCQl7DQp8IAkJCWlmICggeXlfbHAgJiYgeXlfbHAgPCB5eV9h Y2NlcHRbeXlfY3VycmVudF9zdGF0ZSArIDFdICkNCnwgCQkJCXsNCnwgCQkJCXl5X2FjdCA9IHl5 X2FjY2xpc3RbeXlfbHBdOw0KfCAJCQkJCXsNCnwgCQkJCQl5eV9mdWxsX21hdGNoID0geXlfY3A7 DQp8IAkJCQkJYnJlYWs7DQp8IAkJCQkJfQ0KfCAJCQkJfQ0KfCAJCQktLXl5X2NwOw0KfCAJCQl5 eV9jdXJyZW50X3N0YXRlID0gKi0teXlfc3RhdGVfcHRyOw0KfCAJCQl5eV9scCA9IHl5X2FjY2Vw dFt5eV9jdXJyZW50X3N0YXRlXTsNCnwgCQkJfQ0KfCANCnwgCQlZWV9ET19CRUZPUkVfQUNUSU9O Ow0KfCANCnwgDQp8IGRvX2FjdGlvbjoJLyogVGhpcyBsYWJlbCBpcyB1c2VkIG9ubHkgdG8gYWNj ZXNzIEVPRiBhY3Rpb25zLiAqLw0KfCANCnwgDQp8IAkJc3dpdGNoICggeXlfYWN0ICkNCnwgCXsg LyogYmVnaW5uaW5nIG9mIGFjdGlvbiBzd2l0Y2ggKi8NCnwgY2FzZSAxOg0KfCBZWV9SVUxFX1NF VFVQDQp8ICNsaW5lIDIgImNvbmZ0ZXN0LmwiDQp8IHsgRUNITzsgfQ0KfCAJWVlfQlJFQUsNCnwg Y2FzZSAyOg0KfCBZWV9SVUxFX1NFVFVQDQp8ICNsaW5lIDMgImNvbmZ0ZXN0LmwiDQp8IHsgUkVK RUNUOyB9DQp8IAlZWV9CUkVBSw0KfCBjYXNlIDM6DQp8IFlZX1JVTEVfU0VUVVANCnwgI2xpbmUg NCAiY29uZnRlc3QubCINCnwgeyB5eW1vcmUgKCk7IH0NCnwgCVlZX0JSRUFLDQp8IGNhc2UgNDoN CnwgWVlfUlVMRV9TRVRVUA0KfCAjbGluZSA1ICJjb25mdGVzdC5sIg0KfCB7IHl5bGVzcyAoMSk7 IH0NCnwgCVlZX0JSRUFLDQp8IGNhc2UgNToNCnwgWVlfUlVMRV9TRVRVUA0KfCAjbGluZSA2ICJj b25mdGVzdC5sIg0KfCB7IHl5bGVzcyAoaW5wdXQgKCkgIT0gMCk7IH0NCnwgCVlZX0JSRUFLDQp8 IGNhc2UgNjoNCnwgWVlfUlVMRV9TRVRVUA0KfCAjbGluZSA3ICJjb25mdGVzdC5sIg0KfCB7IHVu cHV0ICh5eXRleHRbMF0pOyB9DQp8IAlZWV9CUkVBSw0KfCBjYXNlIDc6DQp8IFlZX1JVTEVfU0VU VVANCnwgI2xpbmUgOCAiY29uZnRlc3QubCINCnwgeyBCRUdJTiBJTklUSUFMOyB9DQp8IAlZWV9C UkVBSw0KfCBjYXNlIDg6DQp8IFlZX1JVTEVfU0VUVVANCnwgI2xpbmUgOSAiY29uZnRlc3QubCIN CnwgRUNITzsNCnwgCVlZX0JSRUFLDQp8ICNsaW5lIDY3NSAibGV4Lnl5LmMiDQp8IAkJCWNhc2Ug WVlfU1RBVEVfRU9GKElOSVRJQUwpOg0KfCAJCQkJeXl0ZXJtaW5hdGUoKTsNCnwgDQp8IAljYXNl IFlZX0VORF9PRl9CVUZGRVI6DQp8IAkJew0KfCAJCS8qIEFtb3VudCBvZiB0ZXh0IG1hdGNoZWQg bm90IGluY2x1ZGluZyB0aGUgRU9CIGNoYXIuICovDQp8IAkJaW50IHl5X2Ftb3VudF9vZl9tYXRj aGVkX3RleHQgPSAoaW50KSAoeXlfY3AgLSB5eXRleHRfcHRyKSAtIDE7DQp8IA0KfCAJCS8qIFVu ZG8gdGhlIGVmZmVjdHMgb2YgWVlfRE9fQkVGT1JFX0FDVElPTi4gKi8NCnwgCQkqeXlfY3AgPSB5 eV9ob2xkX2NoYXI7DQp8IAkJWVlfUkVTVE9SRV9ZWV9NT1JFX09GRlNFVA0KfCANCnwgCQlpZiAo IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZmZXJfc3RhdHVzID09IFlZX0JVRkZFUl9ORVcgKQ0K fCAJCQl7DQp8IAkJCS8qIFdlJ3JlIHNjYW5uaW5nIGEgbmV3IGZpbGUgb3IgaW5wdXQgc291cmNl LiAgSXQncw0KfCAJCQkgKiBwb3NzaWJsZSB0aGF0IHRoaXMgaGFwcGVuZWQgYmVjYXVzZSB0aGUg dXNlcg0KfCAJCQkgKiBqdXN0IHBvaW50ZWQgeXlpbiBhdCBhIG5ldyBzb3VyY2UgYW5kIGNhbGxl ZA0KfCAJCQkgKiB5eWxleCgpLiAgSWYgc28sIHRoZW4gd2UgaGF2ZSB0byBhc3N1cmUNCnwgCQkJ ICogY29uc2lzdGVuY3kgYmV0d2VlbiB5eV9jdXJyZW50X2J1ZmZlciBhbmQgb3VyDQp8IAkJCSAq IGdsb2JhbHMuICBIZXJlIGlzIHRoZSByaWdodCBwbGFjZSB0byBkbyBzbywgYmVjYXVzZQ0KfCAJ CQkgKiB0aGlzIGlzIHRoZSBmaXJzdCBhY3Rpb24gKG90aGVyIHRoYW4gcG9zc2libHkgYQ0KfCAJ CQkgKiBiYWNrLXVwKSB0aGF0IHdpbGwgbWF0Y2ggZm9yIHRoZSBuZXcgaW5wdXQgc291cmNlLg0K fCAJCQkgKi8NCnwgCQkJeXlfbl9jaGFycyA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9uX2NoYXJz Ow0KfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfaW5wdXRfZmlsZSA9IHl5aW47DQp8IAkJCXl5 X2N1cnJlbnRfYnVmZmVyLT55eV9idWZmZXJfc3RhdHVzID0gWVlfQlVGRkVSX05PUk1BTDsNCnwg CQkJfQ0KfCANCnwgCQkvKiBOb3RlIHRoYXQgaGVyZSB3ZSB0ZXN0IGZvciB5eV9jX2J1Zl9wICI8 PSIgdG8gdGhlIHBvc2l0aW9uDQp8IAkJICogb2YgdGhlIGZpcnN0IEVPQiBpbiB0aGUgYnVmZmVy LCBzaW5jZSB5eV9jX2J1Zl9wIHdpbGwNCnwgCQkgKiBhbHJlYWR5IGhhdmUgYmVlbiBpbmNyZW1l bnRlZCBwYXN0IHRoZSBOVUwgY2hhcmFjdGVyDQp8IAkJICogKHNpbmNlIGFsbCBzdGF0ZXMgbWFr ZSB0cmFuc2l0aW9ucyBvbiBFT0IgdG8gdGhlDQp8IAkJICogZW5kLW9mLWJ1ZmZlciBzdGF0ZSku ICBDb250cmFzdCB0aGlzIHdpdGggdGhlIHRlc3QNCnwgCQkgKiBpbiBpbnB1dCgpLg0KfCAJCSAq Lw0KfCAJCWlmICggeXlfY19idWZfcCA8PSAmeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1Zlt5 eV9uX2NoYXJzXSApDQp8IAkJCXsgLyogVGhpcyB3YXMgcmVhbGx5IGEgTlVMLiAqLw0KfCAJCQl5 eV9zdGF0ZV90eXBlIHl5X25leHRfc3RhdGU7DQp8IA0KfCAJCQl5eV9jX2J1Zl9wID0geXl0ZXh0 X3B0ciArIHl5X2Ftb3VudF9vZl9tYXRjaGVkX3RleHQ7DQp8IA0KfCAJCQl5eV9jdXJyZW50X3N0 YXRlID0geXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCk7DQp8IA0KfCAJCQkvKiBPa2F5LCB3ZSdyZSBu b3cgcG9zaXRpb25lZCB0byBtYWtlIHRoZSBOVUwNCnwgCQkJICogdHJhbnNpdGlvbi4gIFdlIGNv dWxkbid0IGhhdmUNCnwgCQkJICogeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkgZ28gYWhlYWQgYW5k IGRvIGl0DQp8IAkJCSAqIGZvciB1cyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gZGVh bA0KfCAJCQkgKiB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBqYW1taW5nIChhbmQgd2UgZG9uJ3QN CnwgCQkJICogd2FudCB0byBidWlsZCBqYW1taW5nIGludG8gaXQgYmVjYXVzZSB0aGVuIGl0DQp8 IAkJCSAqIHdpbGwgcnVuIG1vcmUgc2xvd2x5KS4NCnwgCQkJICovDQp8IA0KfCAJCQl5eV9uZXh0 X3N0YXRlID0geXlfdHJ5X05VTF90cmFucyggeXlfY3VycmVudF9zdGF0ZSApOw0KfCANCnwgCQkJ eXlfYnAgPSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7DQp8IA0KfCAJCQlpZiAoIHl5X25leHRf c3RhdGUgKQ0KfCAJCQkJew0KfCAJCQkJLyogQ29uc3VtZSB0aGUgTlVMLiAqLw0KfCAJCQkJeXlf Y3AgPSArK3l5X2NfYnVmX3A7DQp8IAkJCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbmV4dF9zdGF0 ZTsNCnwgCQkJCWdvdG8geXlfbWF0Y2g7DQp8IAkJCQl9DQp8IA0KfCAJCQllbHNlDQp8IAkJCQl7 DQp8IAkJCQl5eV9jcCA9IHl5X2NfYnVmX3A7DQp8IAkJCQlnb3RvIHl5X2ZpbmRfYWN0aW9uOw0K fCAJCQkJfQ0KfCAJCQl9DQp8IA0KfCAJCWVsc2Ugc3dpdGNoICggeXlfZ2V0X25leHRfYnVmZmVy KCkgKQ0KfCAJCQl7DQp8IAkJCWNhc2UgRU9CX0FDVF9FTkRfT0ZfRklMRToNCnwgCQkJCXsNCnwg CQkJCXl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZiA9IDA7DQp8IA0KfCAJCQkJaWYgKCB5eXdy YXAoKSApDQp8IAkJCQkJew0KfCAJCQkJCS8qIE5vdGU6IGJlY2F1c2Ugd2UndmUgdGFrZW4gY2Fy ZSBpbg0KfCAJCQkJCSAqIHl5X2dldF9uZXh0X2J1ZmZlcigpIHRvIGhhdmUgc2V0IHVwDQp8IAkJ CQkJICogeXl0ZXh0LCB3ZSBjYW4gbm93IHNldCB1cA0KfCAJCQkJCSAqIHl5X2NfYnVmX3Agc28g dGhhdCBpZiBzb21lIHRvdGFsDQp8IAkJCQkJICogaG9zZXIgKGxpa2UgZmxleCBpdHNlbGYpIHdh bnRzIHRvDQp8IAkJCQkJICogY2FsbCB0aGUgc2Nhbm5lciBhZnRlciB3ZSByZXR1cm4gdGhlDQp8 IAkJCQkJICogWVlfTlVMTCwgaXQnbGwgc3RpbGwgd29yayAtIGFub3RoZXINCnwgCQkJCQkgKiBZ WV9OVUxMIHdpbGwgZ2V0IHJldHVybmVkLg0KfCAJCQkJCSAqLw0KfCAJCQkJCXl5X2NfYnVmX3Ag PSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7DQp8IA0KfCAJCQkJCXl5X2FjdCA9IFlZX1NUQVRF X0VPRihZWV9TVEFSVCk7DQp8IAkJCQkJZ290byBkb19hY3Rpb247DQp8IAkJCQkJfQ0KfCANCnwg CQkJCWVsc2UNCnwgCQkJCQl7DQp8IAkJCQkJaWYgKCAhIHl5X2RpZF9idWZmZXJfc3dpdGNoX29u X2VvZiApDQp8IAkJCQkJCVlZX05FV19GSUxFOw0KfCAJCQkJCX0NCnwgCQkJCWJyZWFrOw0KfCAJ CQkJfQ0KfCANCnwgCQkJY2FzZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU46DQp8IAkJCQl5eV9jX2J1 Zl9wID0NCnwgCQkJCQl5eXRleHRfcHRyICsgeXlfYW1vdW50X29mX21hdGNoZWRfdGV4dDsNCnwg DQp8IAkJCQl5eV9jdXJyZW50X3N0YXRlID0geXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCk7DQp8IA0K fCAJCQkJeXlfY3AgPSB5eV9jX2J1Zl9wOw0KfCAJCQkJeXlfYnAgPSB5eXRleHRfcHRyICsgWVlf TU9SRV9BREo7DQp8IAkJCQlnb3RvIHl5X21hdGNoOw0KfCANCnwgCQkJY2FzZSBFT0JfQUNUX0xB U1RfTUFUQ0g6DQp8IAkJCQl5eV9jX2J1Zl9wID0NCnwgCQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+ eXlfY2hfYnVmW3l5X25fY2hhcnNdOw0KfCANCnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9n ZXRfcHJldmlvdXNfc3RhdGUoKTsNCnwgDQp8IAkJCQl5eV9jcCA9IHl5X2NfYnVmX3A7DQp8IAkJ CQl5eV9icCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsNCnwgCQkJCWdvdG8geXlfZmluZF9h Y3Rpb247DQp8IAkJCX0NCnwgCQlicmVhazsNCnwgCQl9DQp8IA0KfCAJZGVmYXVsdDoNCnwgCQlZ WV9GQVRBTF9FUlJPUigNCnwgCQkJImZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0t bm8gYWN0aW9uIGZvdW5kIiApOw0KfCAJfSAvKiBlbmQgb2YgYWN0aW9uIHN3aXRjaCAqLw0KfCAJ CX0gLyogZW5kIG9mIHNjYW5uaW5nIG9uZSB0b2tlbiAqLw0KfCAJfSAvKiBlbmQgb2YgeXlsZXgg Ki8NCnwgDQp8IA0KfCAvKiB5eV9nZXRfbmV4dF9idWZmZXIgLSB0cnkgdG8gcmVhZCBpbiBhIG5l dyBidWZmZXINCnwgICoNCnwgICogUmV0dXJucyBhIGNvZGUgcmVwcmVzZW50aW5nIGFuIGFjdGlv bjoNCnwgICoJRU9CX0FDVF9MQVNUX01BVENIIC0NCnwgICoJRU9CX0FDVF9DT05USU5VRV9TQ0FO IC0gY29udGludWUgc2Nhbm5pbmcgZnJvbSBjdXJyZW50IHBvc2l0aW9uDQp8ICAqCUVPQl9BQ1Rf RU5EX09GX0ZJTEUgLSBlbmQgb2YgZmlsZQ0KfCAgKi8NCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJP VE9TDQp8IHN0YXRpYyBpbnQgeXlfZ2V0X25leHRfYnVmZmVyKHZvaWQpDQp8ICNlbHNlDQp8IHN0 YXRpYyBpbnQgeXlfZ2V0X25leHRfYnVmZmVyKCkNCnwgI2VuZGlmDQp8IAl7DQp8IAljaGFyICpk ZXN0ID0geXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1ZjsNCnwgCWNoYXIgKnNvdXJjZSA9IHl5 dGV4dF9wdHI7DQp8IAlpbnQgbnVtYmVyX3RvX21vdmUsIGk7DQp8IAlpbnQgcmV0X3ZhbDsNCnwg DQp8IAlpZiAoIHl5X2NfYnVmX3AgPiAmeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1Zlt5eV9u X2NoYXJzICsgMV0gKQ0KfCAJCVlZX0ZBVEFMX0VSUk9SKA0KfCAJCSJmYXRhbCBmbGV4IHNjYW5u ZXIgaW50ZXJuYWwgZXJyb3ItLWVuZCBvZiBidWZmZXIgbWlzc2VkIiApOw0KfCANCnwgCWlmICgg eXlfY3VycmVudF9idWZmZXItPnl5X2ZpbGxfYnVmZmVyID09IDAgKQ0KfCAJCXsgLyogRG9uJ3Qg dHJ5IHRvIGZpbGwgdGhlIGJ1ZmZlciwgc28gdGhpcyBpcyBhbiBFT0YuICovDQp8IAkJaWYgKCB5 eV9jX2J1Zl9wIC0geXl0ZXh0X3B0ciAtIFlZX01PUkVfQURKID09IDEgKQ0KfCAJCQl7DQp8IAkJ CS8qIFdlIG1hdGNoZWQgYSBzaW5nbGUgY2hhcmFjdGVyLCB0aGUgRU9CLCBzbw0KfCAJCQkgKiB0 cmVhdCB0aGlzIGFzIGEgZmluYWwgRU9GLg0KfCAJCQkgKi8NCnwgCQkJcmV0dXJuIEVPQl9BQ1Rf RU5EX09GX0ZJTEU7DQp8IAkJCX0NCnwgDQp8IAkJZWxzZQ0KfCAJCQl7DQp8IAkJCS8qIFdlIG1h dGNoZWQgc29tZSB0ZXh0IHByaW9yIHRvIHRoZSBFT0IsIGZpcnN0DQp8IAkJCSAqIHByb2Nlc3Mg aXQuDQp8IAkJCSAqLw0KfCAJCQlyZXR1cm4gRU9CX0FDVF9MQVNUX01BVENIOw0KfCAJCQl9DQp8 IAkJfQ0KfCANCnwgCS8qIFRyeSB0byByZWFkIG1vcmUgZGF0YS4gKi8NCnwgDQp8IAkvKiBGaXJz dCBtb3ZlIGxhc3QgY2hhcnMgdG8gc3RhcnQgb2YgYnVmZmVyLiAqLw0KfCAJbnVtYmVyX3RvX21v dmUgPSAoaW50KSAoeXlfY19idWZfcCAtIHl5dGV4dF9wdHIpIC0gMTsNCnwgDQp8IAlmb3IgKCBp ID0gMDsgaSA8IG51bWJlcl90b19tb3ZlOyArK2kgKQ0KfCAJCSooZGVzdCsrKSA9ICooc291cmNl KyspOw0KfCANCnwgCWlmICggeXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9zdGF0dXMgPT0g WVlfQlVGRkVSX0VPRl9QRU5ESU5HICkNCnwgCQkvKiBkb24ndCBkbyB0aGUgcmVhZCwgaXQncyBu b3QgZ3VhcmFudGVlZCB0byByZXR1cm4gYW4gRU9GLA0KfCAJCSAqIGp1c3QgZm9yY2UgYW4gRU9G DQp8IAkJICovDQp8IAkJeXlfY3VycmVudF9idWZmZXItPnl5X25fY2hhcnMgPSB5eV9uX2NoYXJz ID0gMDsNCnwgDQp8IAllbHNlDQp8IAkJew0KfCAJCWludCBudW1fdG9fcmVhZCA9DQp8IAkJCXl5 X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZSAtIG51bWJlcl90b19tb3ZlIC0gMTsNCnwgDQp8 IAkJd2hpbGUgKCBudW1fdG9fcmVhZCA8PSAwICkNCnwgCQkJeyAvKiBOb3QgZW5vdWdoIHJvb20g aW4gdGhlIGJ1ZmZlciAtIGdyb3cgaXQuICovDQp8ICNpZmRlZiBZWV9VU0VTX1JFSkVDVA0KfCAJ CQlZWV9GQVRBTF9FUlJPUigNCnwgImlucHV0IGJ1ZmZlciBvdmVyZmxvdywgY2FuJ3QgZW5sYXJn ZSBidWZmZXIgYmVjYXVzZSBzY2FubmVyIHVzZXMgUkVKRUNUIiApOw0KfCAjZWxzZQ0KfCANCnwg CQkJLyoganVzdCBhIHNob3J0ZXIgbmFtZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyICovDQp8IAkJ CVlZX0JVRkZFUl9TVEFURSBiID0geXlfY3VycmVudF9idWZmZXI7DQp8IA0KfCAJCQlpbnQgeXlf Y19idWZfcF9vZmZzZXQgPQ0KfCAJCQkJKGludCkgKHl5X2NfYnVmX3AgLSBiLT55eV9jaF9idWYp Ow0KfCANCnwgCQkJaWYgKCBiLT55eV9pc19vdXJfYnVmZmVyICkNCnwgCQkJCXsNCnwgCQkJCWlu dCBuZXdfc2l6ZSA9IGItPnl5X2J1Zl9zaXplICogMjsNCnwgDQp8IAkJCQlpZiAoIG5ld19zaXpl IDw9IDAgKQ0KfCAJCQkJCWItPnl5X2J1Zl9zaXplICs9IGItPnl5X2J1Zl9zaXplIC8gODsNCnwg CQkJCWVsc2UNCnwgCQkJCQliLT55eV9idWZfc2l6ZSAqPSAyOw0KfCANCnwgCQkJCWItPnl5X2No X2J1ZiA9IChjaGFyICopDQp8IAkJCQkJLyogSW5jbHVkZSByb29tIGluIGZvciAyIEVPQiBjaGFy cy4gKi8NCnwgCQkJCQl5eV9mbGV4X3JlYWxsb2MoICh2b2lkICopIGItPnl5X2NoX2J1ZiwNCnwg CQkJCQkJCSBiLT55eV9idWZfc2l6ZSArIDIgKTsNCnwgCQkJCX0NCnwgCQkJZWxzZQ0KfCAJCQkJ LyogQ2FuJ3QgZ3JvdyBpdCwgd2UgZG9uJ3Qgb3duIGl0LiAqLw0KfCAJCQkJYi0+eXlfY2hfYnVm ID0gMDsNCnwgDQp8IAkJCWlmICggISBiLT55eV9jaF9idWYgKQ0KfCAJCQkJWVlfRkFUQUxfRVJS T1IoDQp8IAkJCQkiZmF0YWwgZXJyb3IgLSBzY2FubmVyIGlucHV0IGJ1ZmZlciBvdmVyZmxvdyIg KTsNCnwgDQp8IAkJCXl5X2NfYnVmX3AgPSAmYi0+eXlfY2hfYnVmW3l5X2NfYnVmX3Bfb2Zmc2V0 XTsNCnwgDQp8IAkJCW51bV90b19yZWFkID0geXlfY3VycmVudF9idWZmZXItPnl5X2J1Zl9zaXpl IC0NCnwgCQkJCQkJbnVtYmVyX3RvX21vdmUgLSAxOw0KfCAjZW5kaWYNCnwgCQkJfQ0KfCANCnwg CQlpZiAoIG51bV90b19yZWFkID4gWVlfUkVBRF9CVUZfU0laRSApDQp8IAkJCW51bV90b19yZWFk ID0gWVlfUkVBRF9CVUZfU0laRTsNCnwgDQp8IAkJLyogUmVhZCBpbiBtb3JlIGRhdGEuICovDQp8 IAkJWVlfSU5QVVQoICgmeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1ZltudW1iZXJfdG9fbW92 ZV0pLA0KfCAJCQl5eV9uX2NoYXJzLCBudW1fdG9fcmVhZCApOw0KfCANCnwgCQl5eV9jdXJyZW50 X2J1ZmZlci0+eXlfbl9jaGFycyA9IHl5X25fY2hhcnM7DQp8IAkJfQ0KfCANCnwgCWlmICggeXlf bl9jaGFycyA9PSAwICkNCnwgCQl7DQp8IAkJaWYgKCBudW1iZXJfdG9fbW92ZSA9PSBZWV9NT1JF X0FESiApDQp8IAkJCXsNCnwgCQkJcmV0X3ZhbCA9IEVPQl9BQ1RfRU5EX09GX0ZJTEU7DQp8IAkJ CXl5cmVzdGFydCggeXlpbiApOw0KfCAJCQl9DQp8IA0KfCAJCWVsc2UNCnwgCQkJew0KfCAJCQly ZXRfdmFsID0gRU9CX0FDVF9MQVNUX01BVENIOw0KfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlf YnVmZmVyX3N0YXR1cyA9DQp8IAkJCQlZWV9CVUZGRVJfRU9GX1BFTkRJTkc7DQp8IAkJCX0NCnwg CQl9DQp8IA0KfCAJZWxzZQ0KfCAJCXJldF92YWwgPSBFT0JfQUNUX0NPTlRJTlVFX1NDQU47DQp8 IA0KfCAJeXlfbl9jaGFycyArPSBudW1iZXJfdG9fbW92ZTsNCnwgCXl5X2N1cnJlbnRfYnVmZmVy LT55eV9jaF9idWZbeXlfbl9jaGFyc10gPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7DQp8IAl5eV9j dXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnMgKyAxXSA9IFlZX0VORF9PRl9CVUZG RVJfQ0hBUjsNCnwgDQp8IAl5eXRleHRfcHRyID0gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9i dWZbMF07DQp8IA0KfCAJcmV0dXJuIHJldF92YWw7DQp8IAl9DQp8IA0KfCANCnwgLyogeXlfZ2V0 X3ByZXZpb3VzX3N0YXRlIC0gZ2V0IHRoZSBzdGF0ZSBqdXN0IGJlZm9yZSB0aGUgRU9CIGNoYXIg d2FzIHJlYWNoZWQgKi8NCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHN0YXRpYyB5eV9z dGF0ZV90eXBlIHl5X2dldF9wcmV2aW91c19zdGF0ZSh2b2lkKQ0KfCAjZWxzZQ0KfCBzdGF0aWMg eXlfc3RhdGVfdHlwZSB5eV9nZXRfcHJldmlvdXNfc3RhdGUoKQ0KfCAjZW5kaWYNCnwgCXsNCnwg CXl5X3N0YXRlX3R5cGUgeXlfY3VycmVudF9zdGF0ZTsNCnwgCWNoYXIgKnl5X2NwOw0KfCANCnwg CXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9zdGFydDsNCnwgCXl5X3N0YXRlX3B0ciA9IHl5X3N0YXRl X2J1ZjsNCnwgCSp5eV9zdGF0ZV9wdHIrKyA9IHl5X2N1cnJlbnRfc3RhdGU7DQp8IA0KfCAJZm9y ICggeXlfY3AgPSB5eXRleHRfcHRyICsgWVlfTU9SRV9BREo7IHl5X2NwIDwgeXlfY19idWZfcDsg Kyt5eV9jcCApDQp8IAkJew0KfCAJCVlZX0NIQVIgeXlfYyA9ICgqeXlfY3AgPyB5eV9lY1tZWV9T Q19UT19VSSgqeXlfY3ApXSA6IDEpOw0KfCAJCXdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlfY3Vy cmVudF9zdGF0ZV0gKyB5eV9jXSAhPSB5eV9jdXJyZW50X3N0YXRlICkNCnwgCQkJew0KfCAJCQl5 eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVdOw0KfCAJCQlp ZiAoIHl5X2N1cnJlbnRfc3RhdGUgPj0gMTMgKQ0KfCAJCQkJeXlfYyA9IHl5X21ldGFbKHVuc2ln bmVkIGludCkgeXlfY107DQp8IAkJCX0NCnwgCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbnh0W3l5 X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gKyAodW5zaWduZWQgaW50KSB5eV9jXTsNCnwgCQkqeXlf c3RhdGVfcHRyKysgPSB5eV9jdXJyZW50X3N0YXRlOw0KfCAJCX0NCnwgDQp8IAlyZXR1cm4geXlf Y3VycmVudF9zdGF0ZTsNCnwgCX0NCnwgDQp8IA0KfCAvKiB5eV90cnlfTlVMX3RyYW5zIC0gdHJ5 IHRvIG1ha2UgYSB0cmFuc2l0aW9uIG9uIHRoZSBOVUwgY2hhcmFjdGVyDQp8ICAqDQp8ICAqIHN5 bm9wc2lzDQp8ICAqCW5leHRfc3RhdGUgPSB5eV90cnlfTlVMX3RyYW5zKCBjdXJyZW50X3N0YXRl ICk7DQp8ICAqLw0KfCANCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgc3RhdGljIHl5X3N0YXRl X3R5cGUgeXlfdHJ5X05VTF90cmFucyggeXlfc3RhdGVfdHlwZSB5eV9jdXJyZW50X3N0YXRlICkN CnwgI2Vsc2UNCnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfdHJ5X05VTF90cmFucyggeXlfY3Vy cmVudF9zdGF0ZSApDQp8IHl5X3N0YXRlX3R5cGUgeXlfY3VycmVudF9zdGF0ZTsNCnwgI2VuZGlm DQp8IAl7DQp8IAlpbnQgeXlfaXNfamFtOw0KfCANCnwgCVlZX0NIQVIgeXlfYyA9IDE7DQp8IAl3 aGlsZSAoIHl5X2Noa1t5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgeXlfY10gIT0geXlfY3Vy cmVudF9zdGF0ZSApDQp8IAkJew0KfCAJCXl5X2N1cnJlbnRfc3RhdGUgPSAoaW50KSB5eV9kZWZb eXlfY3VycmVudF9zdGF0ZV07DQp8IAkJaWYgKCB5eV9jdXJyZW50X3N0YXRlID49IDEzICkNCnwg CQkJeXlfYyA9IHl5X21ldGFbKHVuc2lnbmVkIGludCkgeXlfY107DQp8IAkJfQ0KfCAJeXlfY3Vy cmVudF9zdGF0ZSA9IHl5X254dFt5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgKHVuc2lnbmVk IGludCkgeXlfY107DQp8IAl5eV9pc19qYW0gPSAoeXlfY3VycmVudF9zdGF0ZSA9PSAxMik7DQp8 IAlpZiAoICEgeXlfaXNfamFtICkNCnwgCQkqeXlfc3RhdGVfcHRyKysgPSB5eV9jdXJyZW50X3N0 YXRlOw0KfCANCnwgCXJldHVybiB5eV9pc19qYW0gPyAwIDogeXlfY3VycmVudF9zdGF0ZTsNCnwg CX0NCnwgDQp8IA0KfCAjaWZuZGVmIFlZX05PX1VOUFVUDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9T DQp8IHN0YXRpYyB2b2lkIHl5dW5wdXQoIGludCBjLCBjaGFyICp5eV9icCApDQp8ICNlbHNlDQp8 IHN0YXRpYyB2b2lkIHl5dW5wdXQoIGMsIHl5X2JwICkNCnwgaW50IGM7DQp8IGNoYXIgKnl5X2Jw Ow0KfCAjZW5kaWYNCnwgCXsNCnwgCWNoYXIgKnl5X2NwID0geXlfY19idWZfcDsNCnwgDQp8IAkv KiB1bmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQgKi8NCnwgCSp5eV9jcCA9IHl5X2hv bGRfY2hhcjsNCnwgDQp8IAlpZiAoIHl5X2NwIDwgeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1 ZiArIDIgKQ0KfCAJCXsgLyogbmVlZCB0byBzaGlmdCB0aGluZ3MgdXAgdG8gbWFrZSByb29tICov DQp8IAkJLyogKzIgZm9yIEVPQiBjaGFycy4gKi8NCnwgCQlpbnQgbnVtYmVyX3RvX21vdmUgPSB5 eV9uX2NoYXJzICsgMjsNCnwgCQljaGFyICpkZXN0ID0gJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9j aF9idWZbDQp8IAkJCQkJeXlfY3VycmVudF9idWZmZXItPnl5X2J1Zl9zaXplICsgMl07DQp8IAkJ Y2hhciAqc291cmNlID0NCnwgCQkJCSZ5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW251bWJl cl90b19tb3ZlXTsNCnwgDQp8IAkJd2hpbGUgKCBzb3VyY2UgPiB5eV9jdXJyZW50X2J1ZmZlci0+ eXlfY2hfYnVmICkNCnwgCQkJKi0tZGVzdCA9ICotLXNvdXJjZTsNCnwgDQp8IAkJeXlfY3AgKz0g KGludCkgKGRlc3QgLSBzb3VyY2UpOw0KfCAJCXl5X2JwICs9IChpbnQpIChkZXN0IC0gc291cmNl KTsNCnwgCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFycyA9DQp8IAkJCXl5X25fY2hhcnMg PSB5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3NpemU7DQp8IA0KfCAJCWlmICggeXlfY3AgPCB5 eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmICsgMiApDQp8IAkJCVlZX0ZBVEFMX0VSUk9SKCAi ZmxleCBzY2FubmVyIHB1c2gtYmFjayBvdmVyZmxvdyIgKTsNCnwgCQl9DQp8IA0KfCAJKi0teXlf Y3AgPSAoY2hhcikgYzsNCnwgDQp8IA0KfCAJeXl0ZXh0X3B0ciA9IHl5X2JwOw0KfCAJeXlfaG9s ZF9jaGFyID0gKnl5X2NwOw0KfCAJeXlfY19idWZfcCA9IHl5X2NwOw0KfCAJfQ0KfCAjZW5kaWYJ LyogaWZuZGVmIFlZX05PX1VOUFVUICovDQp8IA0KfCANCnwgI2lmbmRlZiBZWV9OT19JTlBVVA0K fCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgc3RhdGljIGludCB5eWlucHV0KCkNCnwgI2Vsc2UNCnwg I2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgc3RhdGljIGludCBpbnB1dCh2b2lkKQ0KfCAjZWxzZQ0K fCBzdGF0aWMgaW50IGlucHV0KCkNCnwgI2VuZGlmDQp8ICNlbmRpZg0KfCAJew0KfCAJaW50IGM7 DQp8IA0KfCAJKnl5X2NfYnVmX3AgPSB5eV9ob2xkX2NoYXI7DQp8IA0KfCAJaWYgKCAqeXlfY19i dWZfcCA9PSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIgKQ0KfCAJCXsNCnwgCQkvKiB5eV9jX2J1Zl9w IG5vdyBwb2ludHMgdG8gdGhlIGNoYXJhY3RlciB3ZSB3YW50IHRvIHJldHVybi4NCnwgCQkgKiBJ ZiB0aGlzIG9jY3VycyAqYmVmb3JlKiB0aGUgRU9CIGNoYXJhY3RlcnMsIHRoZW4gaXQncyBhDQp8 IAkJICogdmFsaWQgTlVMOyBpZiBub3QsIHRoZW4gd2UndmUgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1 ZmZlci4NCnwgCQkgKi8NCnwgCQlpZiAoIHl5X2NfYnVmX3AgPCAmeXlfY3VycmVudF9idWZmZXIt Pnl5X2NoX2J1Zlt5eV9uX2NoYXJzXSApDQp8IAkJCS8qIFRoaXMgd2FzIHJlYWxseSBhIE5VTC4g Ki8NCnwgCQkJKnl5X2NfYnVmX3AgPSAnXDAnOw0KfCANCnwgCQllbHNlDQp8IAkJCXsgLyogbmVl ZCBtb3JlIGlucHV0ICovDQp8IAkJCWludCBvZmZzZXQgPSB5eV9jX2J1Zl9wIC0geXl0ZXh0X3B0 cjsNCnwgCQkJKyt5eV9jX2J1Zl9wOw0KfCANCnwgCQkJc3dpdGNoICggeXlfZ2V0X25leHRfYnVm ZmVyKCkgKQ0KfCAJCQkJew0KfCAJCQkJY2FzZSBFT0JfQUNUX0xBU1RfTUFUQ0g6DQp8IAkJCQkJ LyogVGhpcyBoYXBwZW5zIGJlY2F1c2UgeXlfZ19uX2IoKQ0KfCAJCQkJCSAqIHNlZXMgdGhhdCB3 ZSd2ZSBhY2N1bXVsYXRlZCBhDQp8IAkJCQkJICogdG9rZW4gYW5kIGZsYWdzIHRoYXQgd2UgbmVl ZCB0bw0KfCAJCQkJCSAqIHRyeSBtYXRjaGluZyB0aGUgdG9rZW4gYmVmb3JlDQp8IAkJCQkJICog cHJvY2VlZGluZy4gIEJ1dCBmb3IgaW5wdXQoKSwNCnwgCQkJCQkgKiB0aGVyZSdzIG5vIG1hdGNo aW5nIHRvIGNvbnNpZGVyLg0KfCAJCQkJCSAqIFNvIGNvbnZlcnQgdGhlIEVPQl9BQ1RfTEFTVF9N QVRDSA0KfCAJCQkJCSAqIHRvIEVPQl9BQ1RfRU5EX09GX0ZJTEUuDQp8IAkJCQkJICovDQp8IA0K fCAJCQkJCS8qIFJlc2V0IGJ1ZmZlciBzdGF0dXMuICovDQp8IAkJCQkJeXlyZXN0YXJ0KCB5eWlu ICk7DQp8IA0KfCAJCQkJCS8qIGZhbGwgdGhyb3VnaCAqLw0KfCANCnwgCQkJCWNhc2UgRU9CX0FD VF9FTkRfT0ZfRklMRToNCnwgCQkJCQl7DQp8IAkJCQkJaWYgKCB5eXdyYXAoKSApDQp8IAkJCQkJ CXJldHVybiBFT0Y7DQp8IA0KfCAJCQkJCWlmICggISB5eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9l b2YgKQ0KfCAJCQkJCQlZWV9ORVdfRklMRTsNCnwgI2lmZGVmIF9fY3BsdXNwbHVzDQp8IAkJCQkJ cmV0dXJuIHl5aW5wdXQoKTsNCnwgI2Vsc2UNCnwgCQkJCQlyZXR1cm4gaW5wdXQoKTsNCnwgI2Vu ZGlmDQp8IAkJCQkJfQ0KfCANCnwgCQkJCWNhc2UgRU9CX0FDVF9DT05USU5VRV9TQ0FOOg0KfCAJ CQkJCXl5X2NfYnVmX3AgPSB5eXRleHRfcHRyICsgb2Zmc2V0Ow0KfCAJCQkJCWJyZWFrOw0KfCAJ CQkJfQ0KfCAJCQl9DQp8IAkJfQ0KfCANCnwgCWMgPSAqKHVuc2lnbmVkIGNoYXIgKikgeXlfY19i dWZfcDsJLyogY2FzdCBmb3IgOC1iaXQgY2hhcidzICovDQp8IAkqeXlfY19idWZfcCA9ICdcMCc7 CS8qIHByZXNlcnZlIHl5dGV4dCAqLw0KfCAJeXlfaG9sZF9jaGFyID0gKisreXlfY19idWZfcDsN CnwgDQp8IA0KfCAJcmV0dXJuIGM7DQp8IAl9DQp8ICNlbmRpZgkvKiBpZm5kZWYgWVlfTk9fSU5Q VVQgKi8NCnwgDQp8IA0KfCAjaWZkZWYgWVlfVVNFX1BST1RPUw0KfCB2b2lkIHl5cmVzdGFydCgg RklMRSAqaW5wdXRfZmlsZSApDQp8ICNlbHNlDQp8IHZvaWQgeXlyZXN0YXJ0KCBpbnB1dF9maWxl ICkNCnwgRklMRSAqaW5wdXRfZmlsZTsNCnwgI2VuZGlmDQp8IAl7DQp8IAlpZiAoICEgeXlfY3Vy cmVudF9idWZmZXIgKQ0KfCAJCXl5X2N1cnJlbnRfYnVmZmVyID0geXlfY3JlYXRlX2J1ZmZlcigg eXlpbiwgWVlfQlVGX1NJWkUgKTsNCnwgDQp8IAl5eV9pbml0X2J1ZmZlciggeXlfY3VycmVudF9i dWZmZXIsIGlucHV0X2ZpbGUgKTsNCnwgCXl5X2xvYWRfYnVmZmVyX3N0YXRlKCk7DQp8IAl9DQp8 IA0KfCANCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgdm9pZCB5eV9zd2l0Y2hfdG9fYnVmZmVy KCBZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlciApDQp8ICNlbHNlDQp8IHZvaWQgeXlfc3dpdGNo X3RvX2J1ZmZlciggbmV3X2J1ZmZlciApDQp8IFlZX0JVRkZFUl9TVEFURSBuZXdfYnVmZmVyOw0K fCAjZW5kaWYNCnwgCXsNCnwgCWlmICggeXlfY3VycmVudF9idWZmZXIgPT0gbmV3X2J1ZmZlciAp DQp8IAkJcmV0dXJuOw0KfCANCnwgCWlmICggeXlfY3VycmVudF9idWZmZXIgKQ0KfCAJCXsNCnwg CQkvKiBGbHVzaCBvdXQgaW5mb3JtYXRpb24gZm9yIG9sZCBidWZmZXIuICovDQp8IAkJKnl5X2Nf YnVmX3AgPSB5eV9ob2xkX2NoYXI7DQp8IAkJeXlfY3VycmVudF9idWZmZXItPnl5X2J1Zl9wb3Mg PSB5eV9jX2J1Zl9wOw0KfCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9uX2NoYXJzID0geXlfbl9j aGFyczsNCnwgCQl9DQp8IA0KfCAJeXlfY3VycmVudF9idWZmZXIgPSBuZXdfYnVmZmVyOw0KfCAJ eXlfbG9hZF9idWZmZXJfc3RhdGUoKTsNCnwgDQp8IAkvKiBXZSBkb24ndCBhY3R1YWxseSBrbm93 IHdoZXRoZXIgd2UgZGlkIHRoaXMgc3dpdGNoIGR1cmluZw0KfCAJICogRU9GICh5eXdyYXAoKSkg cHJvY2Vzc2luZywgYnV0IHRoZSBvbmx5IHRpbWUgdGhpcyBmbGFnDQp8IAkgKiBpcyBsb29rZWQg YXQgaXMgYWZ0ZXIgeXl3cmFwKCkgaXMgY2FsbGVkLCBzbyBpdCdzIHNhZmUNCnwgCSAqIHRvIGdv IGFoZWFkIGFuZCBhbHdheXMgc2V0IGl0Lg0KfCAJICovDQp8IAl5eV9kaWRfYnVmZmVyX3N3aXRj aF9vbl9lb2YgPSAxOw0KfCAJfQ0KfCANCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHZv aWQgeXlfbG9hZF9idWZmZXJfc3RhdGUoIHZvaWQgKQ0KfCAjZWxzZQ0KfCB2b2lkIHl5X2xvYWRf YnVmZmVyX3N0YXRlKCkNCnwgI2VuZGlmDQp8IAl7DQp8IAl5eV9uX2NoYXJzID0geXlfY3VycmVu dF9idWZmZXItPnl5X25fY2hhcnM7DQp8IAl5eXRleHRfcHRyID0geXlfY19idWZfcCA9IHl5X2N1 cnJlbnRfYnVmZmVyLT55eV9idWZfcG9zOw0KfCAJeXlpbiA9IHl5X2N1cnJlbnRfYnVmZmVyLT55 eV9pbnB1dF9maWxlOw0KfCAJeXlfaG9sZF9jaGFyID0gKnl5X2NfYnVmX3A7DQp8IAl9DQp8IA0K fCANCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgWVlfQlVGRkVSX1NUQVRFIHl5X2NyZWF0ZV9i dWZmZXIoIEZJTEUgKmZpbGUsIGludCBzaXplICkNCnwgI2Vsc2UNCnwgWVlfQlVGRkVSX1NUQVRF IHl5X2NyZWF0ZV9idWZmZXIoIGZpbGUsIHNpemUgKQ0KfCBGSUxFICpmaWxlOw0KfCBpbnQgc2l6 ZTsNCnwgI2VuZGlmDQp8IAl7DQp8IAlZWV9CVUZGRVJfU1RBVEUgYjsNCnwgDQp8IAliID0gKFlZ X0JVRkZFUl9TVEFURSkgeXlfZmxleF9hbGxvYyggc2l6ZW9mKCBzdHJ1Y3QgeXlfYnVmZmVyX3N0 YXRlICkgKTsNCnwgCWlmICggISBiICkNCnwgCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5h bWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkiICk7DQp8IA0KfCAJYi0+eXlfYnVmX3Np emUgPSBzaXplOw0KfCANCnwgCS8qIHl5X2NoX2J1ZiBoYXMgdG8gYmUgMiBjaGFyYWN0ZXJzIGxv bmdlciB0aGFuIHRoZSBzaXplIGdpdmVuIGJlY2F1c2UNCnwgCSAqIHdlIG5lZWQgdG8gcHV0IGlu IDIgZW5kLW9mLWJ1ZmZlciBjaGFyYWN0ZXJzLg0KfCAJICovDQp8IAliLT55eV9jaF9idWYgPSAo Y2hhciAqKSB5eV9mbGV4X2FsbG9jKCBiLT55eV9idWZfc2l6ZSArIDIgKTsNCnwgCWlmICggISBi LT55eV9jaF9idWYgKQ0KfCAJCVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5 IGluIHl5X2NyZWF0ZV9idWZmZXIoKSIgKTsNCnwgDQp8IAliLT55eV9pc19vdXJfYnVmZmVyID0g MTsNCnwgDQp8IAl5eV9pbml0X2J1ZmZlciggYiwgZmlsZSApOw0KfCANCnwgCXJldHVybiBiOw0K fCAJfQ0KfCANCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHZvaWQgeXlfZGVsZXRlX2J1 ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIgKQ0KfCAjZWxzZQ0KfCB2b2lkIHl5X2RlbGV0ZV9idWZm ZXIoIGIgKQ0KfCBZWV9CVUZGRVJfU1RBVEUgYjsNCnwgI2VuZGlmDQp8IAl7DQp8IAlpZiAoICEg YiApDQp8IAkJcmV0dXJuOw0KfCANCnwgCWlmICggYiA9PSB5eV9jdXJyZW50X2J1ZmZlciApDQp8 IAkJeXlfY3VycmVudF9idWZmZXIgPSAoWVlfQlVGRkVSX1NUQVRFKSAwOw0KfCANCnwgCWlmICgg Yi0+eXlfaXNfb3VyX2J1ZmZlciApDQp8IAkJeXlfZmxleF9mcmVlKCAodm9pZCAqKSBiLT55eV9j aF9idWYgKTsNCnwgDQp8IAl5eV9mbGV4X2ZyZWUoICh2b2lkICopIGIgKTsNCnwgCX0NCnwgDQp8 IA0KfCAjaWZuZGVmIFlZX0FMV0FZU19JTlRFUkFDVElWRQ0KfCAjaWZuZGVmIFlZX05FVkVSX0lO VEVSQUNUSVZFDQp8IGV4dGVybiBpbnQgaXNhdHR5IFlZX1BST1RPKCggaW50ICkpOw0KfCAjZW5k aWYNCnwgI2VuZGlmDQp8IA0KfCAjaWZkZWYgWVlfVVNFX1BST1RPUw0KfCB2b2lkIHl5X2luaXRf YnVmZmVyKCBZWV9CVUZGRVJfU1RBVEUgYiwgRklMRSAqZmlsZSApDQp8ICNlbHNlDQp8IHZvaWQg eXlfaW5pdF9idWZmZXIoIGIsIGZpbGUgKQ0KfCBZWV9CVUZGRVJfU1RBVEUgYjsNCnwgRklMRSAq ZmlsZTsNCnwgI2VuZGlmDQp8IA0KfCANCnwgCXsNCnwgCXl5X2ZsdXNoX2J1ZmZlciggYiApOw0K fCANCnwgCWItPnl5X2lucHV0X2ZpbGUgPSBmaWxlOw0KfCAJYi0+eXlfZmlsbF9idWZmZXIgPSAx Ow0KfCANCnwgI2lmIFlZX0FMV0FZU19JTlRFUkFDVElWRQ0KfCAJYi0+eXlfaXNfaW50ZXJhY3Rp dmUgPSAxOw0KfCAjZWxzZQ0KfCAjaWYgWVlfTkVWRVJfSU5URVJBQ1RJVkUNCnwgCWItPnl5X2lz X2ludGVyYWN0aXZlID0gMDsNCnwgI2Vsc2UNCnwgCWItPnl5X2lzX2ludGVyYWN0aXZlID0gZmls ZSA/IChpc2F0dHkoIGZpbGVubyhmaWxlKSApID4gMCkgOiAwOw0KfCAjZW5kaWYNCnwgI2VuZGlm DQp8IAl9DQp8IA0KfCANCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgdm9pZCB5eV9mbHVzaF9i dWZmZXIoIFlZX0JVRkZFUl9TVEFURSBiICkNCnwgI2Vsc2UNCnwgdm9pZCB5eV9mbHVzaF9idWZm ZXIoIGIgKQ0KfCBZWV9CVUZGRVJfU1RBVEUgYjsNCnwgI2VuZGlmDQp8IA0KfCAJew0KfCAJaWYg KCAhIGIgKQ0KfCAJCXJldHVybjsNCnwgDQp8IAliLT55eV9uX2NoYXJzID0gMDsNCnwgDQp8IAkv KiBXZSBhbHdheXMgbmVlZCB0d28gZW5kLW9mLWJ1ZmZlciBjaGFyYWN0ZXJzLiAgVGhlIGZpcnN0 IGNhdXNlcw0KfCAJICogYSB0cmFuc2l0aW9uIHRvIHRoZSBlbmQtb2YtYnVmZmVyIHN0YXRlLiAg VGhlIHNlY29uZCBjYXVzZXMNCnwgCSAqIGEgamFtIGluIHRoYXQgc3RhdGUuDQp8IAkgKi8NCnwg CWItPnl5X2NoX2J1ZlswXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsNCnwgCWItPnl5X2NoX2J1 ZlsxXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsNCnwgDQp8IAliLT55eV9idWZfcG9zID0gJmIt Pnl5X2NoX2J1ZlswXTsNCnwgDQp8IAliLT55eV9hdF9ib2wgPSAxOw0KfCAJYi0+eXlfYnVmZmVy X3N0YXR1cyA9IFlZX0JVRkZFUl9ORVc7DQp8IA0KfCAJaWYgKCBiID09IHl5X2N1cnJlbnRfYnVm ZmVyICkNCnwgCQl5eV9sb2FkX2J1ZmZlcl9zdGF0ZSgpOw0KfCAJfQ0KfCANCnwgDQp8ICNpZm5k ZWYgWVlfTk9fU0NBTl9CVUZGRVINCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgWVlfQlVGRkVS X1NUQVRFIHl5X3NjYW5fYnVmZmVyKCBjaGFyICpiYXNlLCB5eV9zaXplX3Qgc2l6ZSApDQp8ICNl bHNlDQp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX2J1ZmZlciggYmFzZSwgc2l6ZSApDQp8IGNo YXIgKmJhc2U7DQp8IHl5X3NpemVfdCBzaXplOw0KfCAjZW5kaWYNCnwgCXsNCnwgCVlZX0JVRkZF Ul9TVEFURSBiOw0KfCANCnwgCWlmICggc2l6ZSA8IDIgfHwNCnwgCSAgICAgYmFzZVtzaXplLTJd ICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiB8fA0KfCAJICAgICBiYXNlW3NpemUtMV0gIT0gWVlf RU5EX09GX0JVRkZFUl9DSEFSICkNCnwgCQkvKiBUaGV5IGZvcmdvdCB0byBsZWF2ZSByb29tIGZv ciB0aGUgRU9CJ3MuICovDQp8IAkJcmV0dXJuIDA7DQp8IA0KfCAJYiA9IChZWV9CVUZGRVJfU1RB VEUpIHl5X2ZsZXhfYWxsb2MoIHNpemVvZiggc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSApICk7DQp8 IAlpZiAoICEgYiApDQp8IAkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1pYyBtZW1vcnkg aW4geXlfc2Nhbl9idWZmZXIoKSIgKTsNCnwgDQp8IAliLT55eV9idWZfc2l6ZSA9IHNpemUgLSAy OwkvKiAiLSAyIiB0byB0YWtlIGNhcmUgb2YgRU9CJ3MgKi8NCnwgCWItPnl5X2J1Zl9wb3MgPSBi LT55eV9jaF9idWYgPSBiYXNlOw0KfCAJYi0+eXlfaXNfb3VyX2J1ZmZlciA9IDA7DQp8IAliLT55 eV9pbnB1dF9maWxlID0gMDsNCnwgCWItPnl5X25fY2hhcnMgPSBiLT55eV9idWZfc2l6ZTsNCnwg CWItPnl5X2lzX2ludGVyYWN0aXZlID0gMDsNCnwgCWItPnl5X2F0X2JvbCA9IDE7DQp8IAliLT55 eV9maWxsX2J1ZmZlciA9IDA7DQp8IAliLT55eV9idWZmZXJfc3RhdHVzID0gWVlfQlVGRkVSX05F VzsNCnwgDQp8IAl5eV9zd2l0Y2hfdG9fYnVmZmVyKCBiICk7DQp8IA0KfCAJcmV0dXJuIGI7DQp8 IAl9DQp8ICNlbmRpZg0KfCANCnwgDQp8ICNpZm5kZWYgWVlfTk9fU0NBTl9TVFJJTkcNCnwgI2lm ZGVmIFlZX1VTRV9QUk9UT1MNCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fc3RyaW5nKCB5eWNv bnN0IGNoYXIgKnl5X3N0ciApDQp8ICNlbHNlDQp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0 cmluZyggeXlfc3RyICkNCnwgeXljb25zdCBjaGFyICp5eV9zdHI7DQp8ICNlbmRpZg0KfCAJew0K fCAJaW50IGxlbjsNCnwgCWZvciAoIGxlbiA9IDA7IHl5X3N0cltsZW5dOyArK2xlbiApDQp8IAkJ Ow0KfCANCnwgCXJldHVybiB5eV9zY2FuX2J5dGVzKCB5eV9zdHIsIGxlbiApOw0KfCAJfQ0KfCAj ZW5kaWYNCnwgDQp8IA0KfCAjaWZuZGVmIFlZX05PX1NDQU5fQllURVMNCnwgI2lmZGVmIFlZX1VT RV9QUk9UT1MNCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMoIHl5Y29uc3QgY2hhciAq Ynl0ZXMsIGludCBsZW4gKQ0KfCAjZWxzZQ0KfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9ieXRl cyggYnl0ZXMsIGxlbiApDQp8IHl5Y29uc3QgY2hhciAqYnl0ZXM7DQp8IGludCBsZW47DQp8ICNl bmRpZg0KfCAJew0KfCAJWVlfQlVGRkVSX1NUQVRFIGI7DQp8IAljaGFyICpidWY7DQp8IAl5eV9z aXplX3QgbjsNCnwgCWludCBpOw0KfCANCnwgCS8qIEdldCBtZW1vcnkgZm9yIGZ1bGwgYnVmZmVy LCBpbmNsdWRpbmcgc3BhY2UgZm9yIHRyYWlsaW5nIEVPQidzLiAqLw0KfCAJbiA9IGxlbiArIDI7 DQp8IAlidWYgPSAoY2hhciAqKSB5eV9mbGV4X2FsbG9jKCBuICk7DQp8IAlpZiAoICEgYnVmICkN CnwgCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9zY2FuX2J5 dGVzKCkiICk7DQp8IA0KfCAJZm9yICggaSA9IDA7IGkgPCBsZW47ICsraSApDQp8IAkJYnVmW2ld ID0gYnl0ZXNbaV07DQp8IA0KfCAJYnVmW2xlbl0gPSBidWZbbGVuKzFdID0gWVlfRU5EX09GX0JV RkZFUl9DSEFSOw0KfCANCnwgCWIgPSB5eV9zY2FuX2J1ZmZlciggYnVmLCBuICk7DQp8IAlpZiAo ICEgYiApDQp8IAkJWVlfRkFUQUxfRVJST1IoICJiYWQgYnVmZmVyIGluIHl5X3NjYW5fYnl0ZXMo KSIgKTsNCnwgDQp8IAkvKiBJdCdzIG9rYXkgdG8gZ3JvdyBldGMuIHRoaXMgYnVmZmVyLCBhbmQg d2Ugc2hvdWxkIHRocm93IGl0DQp8IAkgKiBhd2F5IHdoZW4gd2UncmUgZG9uZS4NCnwgCSAqLw0K fCAJYi0+eXlfaXNfb3VyX2J1ZmZlciA9IDE7DQp8IA0KfCAJcmV0dXJuIGI7DQp8IAl9DQp8ICNl bmRpZg0KfCANCnwgDQp8ICNpZm5kZWYgWVlfTk9fUFVTSF9TVEFURQ0KfCAjaWZkZWYgWVlfVVNF X1BST1RPUw0KfCBzdGF0aWMgdm9pZCB5eV9wdXNoX3N0YXRlKCBpbnQgbmV3X3N0YXRlICkNCnwg I2Vsc2UNCnwgc3RhdGljIHZvaWQgeXlfcHVzaF9zdGF0ZSggbmV3X3N0YXRlICkNCnwgaW50IG5l d19zdGF0ZTsNCnwgI2VuZGlmDQp8IAl7DQp8IAlpZiAoIHl5X3N0YXJ0X3N0YWNrX3B0ciA+PSB5 eV9zdGFydF9zdGFja19kZXB0aCApDQp8IAkJew0KfCAJCXl5X3NpemVfdCBuZXdfc2l6ZTsNCnwg DQp8IAkJeXlfc3RhcnRfc3RhY2tfZGVwdGggKz0gWVlfU1RBUlRfU1RBQ0tfSU5DUjsNCnwgCQlu ZXdfc2l6ZSA9IHl5X3N0YXJ0X3N0YWNrX2RlcHRoICogc2l6ZW9mKCBpbnQgKTsNCnwgDQp8IAkJ aWYgKCAhIHl5X3N0YXJ0X3N0YWNrICkNCnwgCQkJeXlfc3RhcnRfc3RhY2sgPSAoaW50ICopIHl5 X2ZsZXhfYWxsb2MoIG5ld19zaXplICk7DQp8IA0KfCAJCWVsc2UNCnwgCQkJeXlfc3RhcnRfc3Rh Y2sgPSAoaW50ICopIHl5X2ZsZXhfcmVhbGxvYygNCnwgCQkJCQkodm9pZCAqKSB5eV9zdGFydF9z dGFjaywgbmV3X3NpemUgKTsNCnwgDQp8IAkJaWYgKCAhIHl5X3N0YXJ0X3N0YWNrICkNCnwgCQkJ WVlfRkFUQUxfRVJST1IoDQp8IAkJCSJvdXQgb2YgbWVtb3J5IGV4cGFuZGluZyBzdGFydC1jb25k aXRpb24gc3RhY2siICk7DQp8IAkJfQ0KfCANCnwgCXl5X3N0YXJ0X3N0YWNrW3l5X3N0YXJ0X3N0 YWNrX3B0cisrXSA9IFlZX1NUQVJUOw0KfCANCnwgCUJFR0lOKG5ld19zdGF0ZSk7DQp8IAl9DQp8 ICNlbmRpZg0KfCANCnwgDQp8ICNpZm5kZWYgWVlfTk9fUE9QX1NUQVRFDQp8ICNpZmRlZiBZWV9V U0VfUFJPVE9TDQp8IHN0YXRpYyB2b2lkIHl5X3BvcF9zdGF0ZSh2b2lkKQ0KfCAjZWxzZQ0KfCBz dGF0aWMgdm9pZCB5eV9wb3Bfc3RhdGUoKQ0KfCAjZW5kaWYNCnwgCXsNCnwgCWlmICggLS15eV9z dGFydF9zdGFja19wdHIgPCAwICkNCnwgCQlZWV9GQVRBTF9FUlJPUiggInN0YXJ0LWNvbmRpdGlv biBzdGFjayB1bmRlcmZsb3ciICk7DQp8IA0KfCAJQkVHSU4oeXlfc3RhcnRfc3RhY2tbeXlfc3Rh cnRfc3RhY2tfcHRyXSk7DQp8IAl9DQp8ICNlbmRpZg0KfCANCnwgDQp8ICNpZm5kZWYgWVlfTk9f VE9QX1NUQVRFDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHN0YXRpYyBpbnQgeXlfdG9wX3N0 YXRlKHZvaWQpDQp8ICNlbHNlDQp8IHN0YXRpYyBpbnQgeXlfdG9wX3N0YXRlKCkNCnwgI2VuZGlm DQp8IAl7DQp8IAlyZXR1cm4geXlfc3RhcnRfc3RhY2tbeXlfc3RhcnRfc3RhY2tfcHRyIC0gMV07 DQp8IAl9DQp8ICNlbmRpZg0KfCANCnwgI2lmbmRlZiBZWV9FWElUX0ZBSUxVUkUNCnwgI2RlZmlu ZSBZWV9FWElUX0ZBSUxVUkUgMg0KfCAjZW5kaWYNCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9T DQp8IHN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vycm9yKCB5eWNvbnN0IGNoYXIgbXNnW10gKQ0KfCAj ZWxzZQ0KfCBzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciggbXNnICkNCnwgY2hhciBtc2dbXTsN CnwgI2VuZGlmDQp8IAl7DQp8IAkodm9pZCkgZnByaW50Ziggc3RkZXJyLCAiJXNcbiIsIG1zZyAp Ow0KfCAJZXhpdCggWVlfRVhJVF9GQUlMVVJFICk7DQp8IAl9DQp8IA0KfCANCnwgDQp8IC8qIFJl ZGVmaW5lIHl5bGVzcygpIHNvIGl0IHdvcmtzIGluIHNlY3Rpb24gMyBjb2RlLiAqLw0KfCANCnwg I3VuZGVmIHl5bGVzcw0KfCAjZGVmaW5lIHl5bGVzcyhuKSBcDQp8IAlkbyBcDQp8IAkJeyBcDQp8 IAkJLyogVW5kbyBlZmZlY3RzIG9mIHNldHRpbmcgdXAgeXl0ZXh0LiAqLyBcDQp8IAkJeXl0ZXh0 W3l5bGVuZ10gPSB5eV9ob2xkX2NoYXI7IFwNCnwgCQl5eV9jX2J1Zl9wID0geXl0ZXh0ICsgbjsg XA0KfCAJCXl5X2hvbGRfY2hhciA9ICp5eV9jX2J1Zl9wOyBcDQp8IAkJKnl5X2NfYnVmX3AgPSAn XDAnOyBcDQp8IAkJeXlsZW5nID0gbjsgXA0KfCAJCX0gXA0KfCAJd2hpbGUgKCAwICkNCnwgDQp8 IA0KfCAvKiBJbnRlcm5hbCB1dGlsaXR5IHJvdXRpbmVzLiAqLw0KfCANCnwgI2lmbmRlZiB5eXRl eHRfcHRyDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfc3Ry bmNweSggY2hhciAqczEsIHl5Y29uc3QgY2hhciAqczIsIGludCBuICkNCnwgI2Vsc2UNCnwgc3Rh dGljIHZvaWQgeXlfZmxleF9zdHJuY3B5KCBzMSwgczIsIG4gKQ0KfCBjaGFyICpzMTsNCnwgeXlj b25zdCBjaGFyICpzMjsNCnwgaW50IG47DQp8ICNlbmRpZg0KfCAJew0KfCAJaW50IGk7DQp8IAlm b3IgKCBpID0gMDsgaSA8IG47ICsraSApDQp8IAkJczFbaV0gPSBzMltpXTsNCnwgCX0NCnwgI2Vu ZGlmDQp8IA0KfCAjaWZkZWYgWVlfTkVFRF9TVFJMRU4NCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MN Cnwgc3RhdGljIGludCB5eV9mbGV4X3N0cmxlbiggeXljb25zdCBjaGFyICpzICkNCnwgI2Vsc2UN Cnwgc3RhdGljIGludCB5eV9mbGV4X3N0cmxlbiggcyApDQp8IHl5Y29uc3QgY2hhciAqczsNCnwg I2VuZGlmDQp8IAl7DQp8IAlpbnQgbjsNCnwgCWZvciAoIG4gPSAwOyBzW25dOyArK24gKQ0KfCAJ CTsNCnwgDQp8IAlyZXR1cm4gbjsNCnwgCX0NCnwgI2VuZGlmDQp8IA0KfCANCnwgI2lmZGVmIFlZ X1VTRV9QUk9UT1MNCnwgc3RhdGljIHZvaWQgKnl5X2ZsZXhfYWxsb2MoIHl5X3NpemVfdCBzaXpl ICkNCnwgI2Vsc2UNCnwgc3RhdGljIHZvaWQgKnl5X2ZsZXhfYWxsb2MoIHNpemUgKQ0KfCB5eV9z aXplX3Qgc2l6ZTsNCnwgI2VuZGlmDQp8IAl7DQp8IAlyZXR1cm4gKHZvaWQgKikgbWFsbG9jKCBz aXplICk7DQp8IAl9DQp8IA0KfCAjaWZkZWYgWVlfVVNFX1BST1RPUw0KfCBzdGF0aWMgdm9pZCAq eXlfZmxleF9yZWFsbG9jKCB2b2lkICpwdHIsIHl5X3NpemVfdCBzaXplICkNCnwgI2Vsc2UNCnwg c3RhdGljIHZvaWQgKnl5X2ZsZXhfcmVhbGxvYyggcHRyLCBzaXplICkNCnwgdm9pZCAqcHRyOw0K fCB5eV9zaXplX3Qgc2l6ZTsNCnwgI2VuZGlmDQp8IAl7DQp8IAkvKiBUaGUgY2FzdCB0byAoY2hh ciAqKSBpbiB0aGUgZm9sbG93aW5nIGFjY29tbW9kYXRlcyBib3RoDQp8IAkgKiBpbXBsZW1lbnRh dGlvbnMgdGhhdCB1c2UgY2hhciogZ2VuZXJpYyBwb2ludGVycywgYW5kIHRob3NlDQp8IAkgKiB0 aGF0IHVzZSB2b2lkKiBnZW5lcmljIHBvaW50ZXJzLiAgSXQgd29ya3Mgd2l0aCB0aGUgbGF0dGVy DQp8IAkgKiBiZWNhdXNlIGJvdGggQU5TSSBDIGFuZCBDKysgYWxsb3cgY2FzdGxlc3MgYXNzaWdu bWVudCBmcm9tDQp8IAkgKiBhbnkgcG9pbnRlciB0eXBlIHRvIHZvaWQqLCBhbmQgZGVhbCB3aXRo IGFyZ3VtZW50IGNvbnZlcnNpb25zDQp8IAkgKiBhcyB0aG91Z2ggZG9pbmcgYW4gYXNzaWdubWVu dC4NCnwgCSAqLw0KfCAJcmV0dXJuICh2b2lkICopIHJlYWxsb2MoIChjaGFyICopIHB0ciwgc2l6 ZSApOw0KfCAJfQ0KfCANCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgc3RhdGljIHZvaWQgeXlf ZmxleF9mcmVlKCB2b2lkICpwdHIgKQ0KfCAjZWxzZQ0KfCBzdGF0aWMgdm9pZCB5eV9mbGV4X2Zy ZWUoIHB0ciApDQp8IHZvaWQgKnB0cjsNCnwgI2VuZGlmDQp8IAl7DQp8IAlmcmVlKCBwdHIgKTsN CnwgCX0NCnwgDQp8ICNpZiBZWV9NQUlODQp8IGludCBtYWluKCkNCnwgCXsNCnwgCXl5bGV4KCk7 DQp8IAlyZXR1cm4gMDsNCnwgCX0NCnwgI2VuZGlmDQp8ICNsaW5lIDkgImNvbmZ0ZXN0LmwiDQp8 IA0KfCAjaWZkZWYgWVlURVhUX1BPSU5URVINCnwgZXh0ZXJuIGNoYXIgKnl5dGV4dDsNCnwgI2Vu ZGlmDQp8IGludA0KfCBtYWluICh2b2lkKQ0KfCB7DQp8ICAgcmV0dXJuICEgeXlsZXggKCkgKyAh IHl5d3JhcCAoKTsNCnwgfQ0KY29uZmlndXJlOjExNjMzOiBjYyAtbyBjb25mdGVzdCAtTzIgLXBp cGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vzci9sb2Nh bC9saWIgY29uZnRlc3QuYyAtbGZsICA+JjUNCmNvbmZ0ZXN0Lmw6IEluIGZ1bmN0aW9uICd5eWxl eCc6DQpjb25mdGVzdC5sOjY6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBwb2ludGVyIGFu ZCBpbnRlZ2VyDQpjb25mdGVzdC5sOjY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgcG9pbnRl ciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QNCmNvbmZpZ3VyZToxMTY0MDogJD8gPSAwDQpj b25maWd1cmU6MTE2NjQ6IHJlc3VsdDogLWxmbA0KY29uZmlndXJlOjExNjcwOiBjaGVja2luZyB3 aGV0aGVyIHl5dGV4dCBpcyBhIHBvaW50ZXINCmNvbmZpZ3VyZToxMTY5MTogY2MgLW8gY29uZnRl c3QgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAt TC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgLWxmbCAgPiY1DQpjb25mdGVzdC5sOiBJbiBmdW5j dGlvbiAneXlsZXgnOg0KY29uZnRlc3QubDo2OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4g cG9pbnRlciBhbmQgaW50ZWdlcg0KY29uZnRlc3QubDo2OiB3YXJuaW5nOiBhc3NpZ25tZW50IG1h a2VzIHBvaW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0DQpjb25maWd1cmU6MTE2OTg6 ICQ/ID0gMA0KY29uZmlndXJlOjExNzIwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjExNzQyOiBj aGVja2luZyBmb3IgYmlzb24NCmNvbmZpZ3VyZToxMTc1ODogZm91bmQgL3Vzci9sb2NhbC9iaW4v Ymlzb24NCmNvbmZpZ3VyZToxMTc2OTogcmVzdWx0OiBiaXNvbiAteQ0KY29uZmlndXJlOjExODEx OiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwNCmNvbmZpZ3VyZToxMTg0NjogY2MgLW8gY29u ZnRlc3QgLVdzaWduLWNvbXBhcmUgLVdjYXN0LWFsaWduIC1XcG9pbnRlci1hcml0aCAtV25lc3Rl ZC1leHRlcm5zIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdj aGFyLXN1YnNjcmlwdHMgLVdhbGwgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vz ci9sb2NhbC9pbmNsdWRlICAtTC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgLWxkbCAgID4mNQ0K L3Vzci9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1sZGwNCmNvbmZpZ3VyZToxMTg1MzogJD8gPSAxDQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIwLjEwLjgiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImdvYmplY3QtaW50cm9z cGVjdGlvbiAwLjEwLjgiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImh0dHA6Ly9idWd6 aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PWdsaWImY29tcG9uZW50PWludHJv c3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ29iamVjdC1pbnRyb3NwZWN0aW9uIg0KfCAj ZGVmaW5lIFZFUlNJT04gIjAuMTAuOCINCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBMVF9P QkpESVIgIi5saWJzLyINCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxDQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8NCnwgDQp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLg0KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MNCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8NCnwgI2lmZGVmIF9fY3BsdXNw bHVzDQp8IGV4dGVybiAiQyINCnwgI2VuZGlmDQp8IGNoYXIgZGxvcGVuICgpOw0KfCBpbnQNCnwg bWFpbiAoKQ0KfCB7DQp8IHJldHVybiBkbG9wZW4gKCk7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0K fCB9DQpjb25maWd1cmU6MTE4NzQ6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToxMTg4NjogY2hlY2tp bmcgZm9yIHRoZSBzdWZmaXggb2Ygc2hhcmVkIGxpYnJhcmllcw0KY29uZmlndXJlOjExODk3OiBy ZXN1bHQ6IC5zbw0KY29uZmlndXJlOjEyMTEyOiBjaGVja2luZyBmb3IgR0xJQg0KY29uZmlndXJl OjEyMTE5OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiZ2xpYi0yLjAiDQpj b25maWd1cmU6MTIxMjI6ICQ/ID0gMA0KY29uZmlndXJlOjEyMTM1OiAkUEtHX0NPTkZJRyAtLWV4 aXN0cyAtLXByaW50LWVycm9ycyAiZ2xpYi0yLjAiDQpjb25maWd1cmU6MTIxMzg6ICQ/ID0gMA0K Y29uZmlndXJlOjEyMjE1OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjEyMjIxOiBjaGVja2luZyBm b3IgR09CSkVDVA0KY29uZmlndXJlOjEyMjI4OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50 LWVycm9ycyAiZ29iamVjdC0yLjAiDQpjb25maWd1cmU6MTIyMzE6ICQ/ID0gMA0KY29uZmlndXJl OjEyMjQ0OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiZ29iamVjdC0yLjAi DQpjb25maWd1cmU6MTIyNDc6ICQ/ID0gMA0KY29uZmlndXJlOjEyMzI0OiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjEyMzMwOiBjaGVja2luZyBmb3IgR0lPDQpjb25maWd1cmU6MTIzMzc6ICRQS0df Q09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnaW8tMi4wIg0KY29uZmlndXJlOjEyMzQw OiAkPyA9IDANCmNvbmZpZ3VyZToxMjM1MzogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1l cnJvcnMgImdpby0yLjAiDQpjb25maWd1cmU6MTIzNTY6ICQ/ID0gMA0KY29uZmlndXJlOjEyNDMz OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjEyNDM5OiBjaGVja2luZyBmb3IgR0lPX1VOSVgNCmNv bmZpZ3VyZToxMjQ0NjogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImdpby11 bml4LTIuMCINCmNvbmZpZ3VyZToxMjQ0OTogJD8gPSAwDQpjb25maWd1cmU6MTI0NjI6ICRQS0df Q09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnaW8tdW5peC0yLjAiDQpjb25maWd1cmU6 MTI0NjU6ICQ/ID0gMA0KY29uZmlndXJlOjEyNTAwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjEy NTIzOiBjaGVja2luZyBmb3IgQ0FJUk8NCmNvbmZpZ3VyZToxMjUzMDogJFBLR19DT05GSUcgLS1l eGlzdHMgLS1wcmludC1lcnJvcnMgImNhaXJvIg0KY29uZmlndXJlOjEyNTMzOiAkPyA9IDANCmNv bmZpZ3VyZToxMjU0NjogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImNhaXJv Ig0KY29uZmlndXJlOjEyNTQ5OiAkPyA9IDANCmNvbmZpZ3VyZToxMjU4NDogcmVzdWx0OiB5ZXMN CmNvbmZpZ3VyZToxMjU5ODogY2hlY2tpbmcgZm9yIENBSVJPX0dPQkpFQ1QNCmNvbmZpZ3VyZTox MjYwNTogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImNhaXJvLWdvYmplY3Qi DQpjb25maWd1cmU6MTI2MDg6ICQ/ID0gMA0KY29uZmlndXJlOjEyNjIxOiAkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyAiY2Fpcm8tZ29iamVjdCINCmNvbmZpZ3VyZToxMjYyNDog JD8gPSAwDQpjb25maWd1cmU6MTI2NTk6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTI3MDI6IGNo ZWNraW5nIGZvciBTQ0FOTkVSDQpjb25maWd1cmU6MTI3MDk6ICRQS0dfQ09ORklHIC0tZXhpc3Rz IC0tcHJpbnQtZXJyb3JzICJnb2JqZWN0LTIuMCBndGhyZWFkLTIuMCBnaW8tMi4wIg0KY29uZmln dXJlOjEyNzEyOiAkPyA9IDANCmNvbmZpZ3VyZToxMjcyNTogJFBLR19DT05GSUcgLS1leGlzdHMg LS1wcmludC1lcnJvcnMgImdvYmplY3QtMi4wIGd0aHJlYWQtMi4wIGdpby0yLjAiDQpjb25maWd1 cmU6MTI3Mjg6ICQ/ID0gMA0KY29uZmlndXJlOjEyODA1OiByZXN1bHQ6IHllcw0KY29uZmlndXJl OjEyODEyOiBjaGVja2luZyBmb3IgRkZJDQpjb25maWd1cmU6MTI4MTk6ICRQS0dfQ09ORklHIC0t ZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJsaWJmZmkiDQpjb25maWd1cmU6MTI4MjI6ICQ/ID0gMA0K Y29uZmlndXJlOjEyODM1OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGli ZmZpIg0KY29uZmlndXJlOjEyODM4OiAkPyA9IDANCmNvbmZpZ3VyZToxMjg3MzogcmVzdWx0OiB5 ZXMNCmNvbmZpZ3VyZToxMzA1MDogY2hlY2tpbmcgc2l6ZSBvZiBjaGFyDQpjb25maWd1cmU6MTMz NTU6IGNjIC1vIGNvbmZ0ZXN0IC1Xc2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3BvaW50ZXIt YXJpdGggLVduZXN0ZWQtZXh0ZXJucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3NpbmctZGVj bGFyYXRpb25zIC1XY2hhci1zdWJzY3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1h bGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5j ICA+JjUNCmNvbmZpZ3VyZToxMzM1OTogJD8gPSAwDQpjb25maWd1cmU6MTMzNjU6IC4vY29uZnRl c3QNCmNvbmZpZ3VyZToxMzM2OTogJD8gPSAwDQpjb25maWd1cmU6MTMzOTU6IHJlc3VsdDogMQ0K Y29uZmlndXJlOjEzNDA5OiBjaGVja2luZyBzaXplIG9mIHNob3J0DQpjb25maWd1cmU6MTM3MTQ6 IGNjIC1vIGNvbmZ0ZXN0IC1Xc2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3BvaW50ZXItYXJp dGggLVduZXN0ZWQtZXh0ZXJucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3NpbmctZGVjbGFy YXRpb25zIC1XY2hhci1zdWJzY3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlh c2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jICA+ JjUNCmNvbmZpZ3VyZToxMzcxODogJD8gPSAwDQpjb25maWd1cmU6MTM3MjQ6IC4vY29uZnRlc3QN CmNvbmZpZ3VyZToxMzcyODogJD8gPSAwDQpjb25maWd1cmU6MTM3NTQ6IHJlc3VsdDogMg0KY29u ZmlndXJlOjEzNzY4OiBjaGVja2luZyBzaXplIG9mIGludA0KY29uZmlndXJlOjE0MDczOiBjYyAt byBjb25mdGVzdCAtV3NpZ24tY29tcGFyZSAtV2Nhc3QtYWxpZ24gLVdwb2ludGVyLWFyaXRoIC1X bmVzdGVkLWV4dGVybnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9u cyAtV2NoYXItc3Vic2NyaXB0cyAtV2FsbCAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcg LUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vzci9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1DQpj b25maWd1cmU6MTQwNzc6ICQ/ID0gMA0KY29uZmlndXJlOjE0MDgzOiAuL2NvbmZ0ZXN0DQpjb25m aWd1cmU6MTQwODc6ICQ/ID0gMA0KY29uZmlndXJlOjE0MTEzOiByZXN1bHQ6IDQNCmNvbmZpZ3Vy ZToxNDEyNzogY2hlY2tpbmcgc2l6ZSBvZiBsb25nDQpjb25maWd1cmU6MTQ0MzI6IGNjIC1vIGNv bmZ0ZXN0IC1Xc2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3BvaW50ZXItYXJpdGggLVduZXN0 ZWQtZXh0ZXJucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1X Y2hhci1zdWJzY3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91 c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jICA+JjUNCmNvbmZp Z3VyZToxNDQzNjogJD8gPSAwDQpjb25maWd1cmU6MTQ0NDI6IC4vY29uZnRlc3QNCmNvbmZpZ3Vy ZToxNDQ0NjogJD8gPSAwDQpjb25maWd1cmU6MTQ0NzI6IHJlc3VsdDogNA0KY29uZmlndXJlOjE0 NDg1OiBjaGVja2luZyBmb3IgR0lSRVBPDQpjb25maWd1cmU6MTQ0OTI6ICRQS0dfQ09ORklHIC0t ZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnbGliLTIuMCA+PSAyLjI0LjAgZ29iamVjdC0yLjAgZ21v ZHVsZS0yLjAgZ2lvLTIuMCINCmNvbmZpZ3VyZToxNDQ5NTogJD8gPSAwDQpjb25maWd1cmU6MTQ1 MDg6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnbGliLTIuMCA+PSAyLjI0 LjAgZ29iamVjdC0yLjAgZ21vZHVsZS0yLjAgZ2lvLTIuMCINCmNvbmZpZ3VyZToxNDUxMTogJD8g PSAwDQpjb25maWd1cmU6MTQ1ODg6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTQ2MDU6IGNoZWNr aW5nIGZvciBndGtkb2MtY2hlY2sNCmNvbmZpZ3VyZToxNDYzODogcmVzdWx0OiBubw0KY29uZmln dXJlOjE0NjQ3OiBjaGVja2luZyBmb3IgZ3RrZG9jLXJlYmFzZQ0KY29uZmlndXJlOjE0NjgwOiBy ZXN1bHQ6IG5vDQpjb25maWd1cmU6MTQ2OTE6IGNoZWNraW5nIGZvciBndGtkb2MtbWtwZGYNCmNv bmZpZ3VyZToxNDcyNDogcmVzdWx0OiBubw0KY29uZmlndXJlOjE0NzY0OiBjaGVja2luZyB3aGV0 aGVyIHRvIGJ1aWxkIGd0ay1kb2MgZG9jdW1lbnRhdGlvbg0KY29uZmlndXJlOjE0NzY2OiByZXN1 bHQ6IG5vDQpjb25maWd1cmU6MTQ4MzI6IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVz DQpjb25maWd1cmU6MTUwMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUwMjg6IGNoZWNraW5n IGZjbnRsLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MTUwNDU6IGNjIC1jIC1Xc2lnbi1jb21wYXJl IC1XY2FzdC1hbGlnbiAtV3BvaW50ZXItYXJpdGggLVduZXN0ZWQtZXh0ZXJucyAtV21pc3Npbmct cHJvdG90eXBlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XY2hhci1zdWJzY3JpcHRzIC1XYWxs IC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25m dGVzdC5jID4mNQ0KY29uZmlndXJlOjE1MDUyOiAkPyA9IDANCmNvbmZpZ3VyZToxNTA2NjogcmVz dWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTA3MDogY2hlY2tpbmcgZmNudGwuaCBwcmVzZW5jZQ0KY29u ZmlndXJlOjE1MDg1OiBjcHAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYw0KY29uZmln dXJlOjE1MDkyOiAkPyA9IDANCmNvbmZpZ3VyZToxNTEwNjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3Vy ZToxNTEzOTogY2hlY2tpbmcgZm9yIGZjbnRsLmgNCmNvbmZpZ3VyZToxNTE0ODogcmVzdWx0OiB5 ZXMNCmNvbmZpZ3VyZToxNTAxNzogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oDQpjb25maWd1cmU6MTUw MjQ6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUwMTc6IGNoZWNraW5nIGZvciBzdHJpbmcuaA0K Y29uZmlndXJlOjE1MDI0OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MTY1OiBjaGVja2luZyBm b3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QNCmNvbmZpZ3VyZToxNTI0MDogY2MgLWMgLVdz aWduLWNvbXBhcmUgLVdjYXN0LWFsaWduIC1XcG9pbnRlci1hcml0aCAtV25lc3RlZC1leHRlcm5z IC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdjaGFyLXN1YnNj cmlwdHMgLVdhbGwgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9p bmNsdWRlIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6DQpj b25mdGVzdC5jOjY0OiB3YXJuaW5nOiAndCcgaXMgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMg ZnVuY3Rpb24NCmNvbmZ0ZXN0LmM6ODA6IHdhcm5pbmc6ICdiJyBpcyB1c2VkIHVuaW5pdGlhbGl6 ZWQgaW4gdGhpcyBmdW5jdGlvbg0KY29uZnRlc3QuYzo4Njogd2FybmluZzogJ2NzWzBdJyBpcyB1 c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbg0KY29uZmlndXJlOjE1MjQ3OiAkPyA9 IDANCmNvbmZpZ3VyZToxNTI2MjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTI3NDogY2hlY2tp bmcgZm9yIHdvcmtpbmcgc3RydG9kDQpjb25maWd1cmU6MTUzMjU6IGNjIC1vIGNvbmZ0ZXN0IC1X c2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3BvaW50ZXItYXJpdGggLVduZXN0ZWQtZXh0ZXJu cyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XY2hhci1zdWJz Y3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwv aW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToxNTMy OTogJD8gPSAwDQpjb25maWd1cmU6MTUzMzU6IC4vY29uZnRlc3QNCmNvbmZpZ3VyZToxNTMzOTog JD8gPSAwDQpjb25maWd1cmU6MTUzNTY6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTU1Mzc6IGNo ZWNraW5nIGZvciBtZW1jaHINCmNvbmZpZ3VyZToxNTU5MzogY2MgLW8gY29uZnRlc3QgLVdzaWdu LWNvbXBhcmUgLVdjYXN0LWFsaWduIC1XcG9pbnRlci1hcml0aCAtV25lc3RlZC1leHRlcm5zIC1X bWlzc2luZy1wcm90b3R5cGVzIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdjaGFyLXN1YnNjcmlw dHMgLVdhbGwgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNs dWRlICAtTC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjE1NjAwOiAk PyA9IDANCmNvbmZpZ3VyZToxNTYyMjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTUzNzogY2hl Y2tpbmcgZm9yIHN0cmNocg0KY29uZmlndXJlOjE1NTkzOiBjYyAtbyBjb25mdGVzdCAtV3NpZ24t Y29tcGFyZSAtV2Nhc3QtYWxpZ24gLVdwb2ludGVyLWFyaXRoIC1XbmVzdGVkLWV4dGVybnMgLVdt aXNzaW5nLXByb3RvdHlwZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV2NoYXItc3Vic2NyaXB0 cyAtV2FsbCAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1 ZGUgIC1ML3Vzci9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1DQpjb25mdGVzdC5jOjU5OiB3YXJu aW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3N0cmNocicNCmNv bmZpZ3VyZToxNTYwMDogJD8gPSAwDQpjb25maWd1cmU6MTU2MjI6IHJlc3VsdDogeWVzDQpjb25m aWd1cmU6MTU1Mzc6IGNoZWNraW5nIGZvciBzdHJzcG4NCmNvbmZpZ3VyZToxNTU5MzogY2MgLW8g Y29uZnRlc3QgLVdzaWduLWNvbXBhcmUgLVdjYXN0LWFsaWduIC1XcG9pbnRlci1hcml0aCAtV25l c3RlZC1leHRlcm5zIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMg LVdjaGFyLXN1YnNjcmlwdHMgLVdhbGwgLU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1J L3Vzci9sb2NhbC9pbmNsdWRlICAtTC91c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQ0KY29u ZnRlc3QuYzo2MDogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0 aW9uICdzdHJzcG4nDQpjb25maWd1cmU6MTU2MDA6ICQ/ID0gMA0KY29uZmlndXJlOjE1NjIyOiBy ZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1NTM3OiBjaGVja2luZyBmb3Igc3Ryc3RyDQpjb25maWd1 cmU6MTU1OTM6IGNjIC1vIGNvbmZ0ZXN0IC1Xc2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3Bv aW50ZXItYXJpdGggLVduZXN0ZWQtZXh0ZXJucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3Np bmctZGVjbGFyYXRpb25zIC1XY2hhci1zdWJzY3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0 cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiBjb25m dGVzdC5jICA+JjUNCmNvbmZ0ZXN0LmM6NjE6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZv ciBidWlsdC1pbiBmdW5jdGlvbiAnc3Ryc3RyJw0KY29uZmlndXJlOjE1NjAwOiAkPyA9IDANCmNv bmZpZ3VyZToxNTYyMjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTUzNzogY2hlY2tpbmcgZm9y IHN0cnRvbA0KY29uZmlndXJlOjE1NTkzOiBjYyAtbyBjb25mdGVzdCAtV3NpZ24tY29tcGFyZSAt V2Nhc3QtYWxpZ24gLVdwb2ludGVyLWFyaXRoIC1XbmVzdGVkLWV4dGVybnMgLVdtaXNzaW5nLXBy b3RvdHlwZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV2NoYXItc3Vic2NyaXB0cyAtV2FsbCAt TzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vz ci9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1DQpjb25maWd1cmU6MTU2MDA6ICQ/ID0gMA0KY29u ZmlndXJlOjE1NjIyOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1NTM3OiBjaGVja2luZyBmb3Ig c3RydG91bGwNCmNvbmZpZ3VyZToxNTU5MzogY2MgLW8gY29uZnRlc3QgLVdzaWduLWNvbXBhcmUg LVdjYXN0LWFsaWduIC1XcG9pbnRlci1hcml0aCAtV25lc3RlZC1leHRlcm5zIC1XbWlzc2luZy1w cm90b3R5cGVzIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdjaGFyLXN1YnNjcmlwdHMgLVdhbGwg LU8yIC1waXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAtTC91 c3IvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjE1NjAwOiAkPyA9IDANCmNv bmZpZ3VyZToxNTYyMjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxNTYzOTogY2hlY2tpbmcgZm9y IGJhY2t0cmFjZQ0KY29uZmlndXJlOjE1Njk1OiBjYyAtbyBjb25mdGVzdCAtV3NpZ24tY29tcGFy ZSAtV2Nhc3QtYWxpZ24gLVdwb2ludGVyLWFyaXRoIC1XbmVzdGVkLWV4dGVybnMgLVdtaXNzaW5n LXByb3RvdHlwZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV2NoYXItc3Vic2NyaXB0cyAtV2Fs bCAtTzIgLXBpcGUgLWZuby1zdHJpY3QtYWxpYXNpbmcgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1M L3Vzci9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1DQovdG1wLy9jY1pyNHVQOS5vOiBJbiBmdW5j dGlvbiBgbWFpbic6DQpjb25mdGVzdC5jOigudGV4dCsweDEyKTogdW5kZWZpbmVkIHJlZmVyZW5j ZSB0byBgYmFja3RyYWNlJw0KY29uZmlndXJlOjE1NzAyOiAkPyA9IDENCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgImdvYmplY3QtaW50cm9zcGVjdGlvbiINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImdvYmplY3QtaW50cm9zcGVjdGlvbiINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjAuMTAu OCINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiZ29iamVjdC1pbnRyb3NwZWN0aW9uIDAuMTAu OCINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiaHR0cDovL2J1Z3ppbGxhLmdub21lLm9y Zy9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9Z2xpYiZjb21wb25lbnQ9aW50cm9zcGVjdGlvbiINCnwg I2RlZmluZSBQQUNLQUdFICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgVkVSU0lP TiAiMC4xMC44Ig0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMv Ig0KfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDENCnwgI2RlZmluZSBTSExJQl9TVUZGSVggInNv Ig0KfCAjZGVmaW5lIEdPQkpFQ1RfSU5UUk9TUEVDVElPTl9MSUJESVIgIi91c3IvbG9jYWwvbGli Ig0KfCAjZGVmaW5lIEdJUl9TVUZGSVggImdpci0xLjAiDQp8ICNkZWZpbmUgR0lSX0RJUiAiL3Vz ci9sb2NhbC9zaGFyZS9naXItMS4wIg0KfCAjZGVmaW5lIFNJWkVPRl9DSEFSIDENCnwgI2RlZmlu ZSBTSVpFT0ZfU0hPUlQgMg0KfCAjZGVmaW5lIFNJWkVPRl9JTlQgNA0KfCAjZGVmaW5lIFNJWkVP Rl9MT05HIDQNCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx DQp8ICNkZWZpbmUgSEFWRV9NRU1DSFIgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwgI2Rl ZmluZSBIQVZFX1NUUlNQTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJTVFIgMQ0KfCAjZGVmaW5lIEhB VkVfU1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUxMIDENCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLw0KfCAvKiBEZWZpbmUgYmFja3RyYWNlIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBp biBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYmFja3RyYWNlLg0KfCAgICBGb3IgZXhhbXBsZSwg SFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8NCnwgI2RlZmlu ZSBiYWNrdHJhY2UgaW5ub2N1b3VzX2JhY2t0cmFjZQ0KfCANCnwgLyogU3lzdGVtIGhlYWRlciB0 byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLA0KfCAg ICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBiYWNrdHJhY2UgKCk7IGJlbG93Lg0KfCAg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQ0KfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8NCnwgDQp8ICNpZmRlZiBfX1NURENfXw0KfCAjIGluY2x1ZGUgPGxpbWl0cy5o Pg0KfCAjZWxzZQ0KfCAjIGluY2x1ZGUgPGFzc2VydC5oPg0KfCAjZW5kaWYNCnwgDQp8ICN1bmRl ZiBiYWNrdHJhY2UNCnwgDQp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLg0KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MNCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8NCnwgI2lmZGVmIF9fY3BsdXNw bHVzDQp8IGV4dGVybiAiQyINCnwgI2VuZGlmDQp8IGNoYXIgYmFja3RyYWNlICgpOw0KfCAvKiBU aGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBs ZW1lbnRzDQp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZA0KfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovDQp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9i YWNrdHJhY2UgfHwgZGVmaW5lZCBfX3N0dWJfX19iYWNrdHJhY2UNCnwgY2hva2UgbWUNCnwgI2Vu ZGlmDQp8IA0KfCBpbnQNCnwgbWFpbiAoKQ0KfCB7DQp8IHJldHVybiBiYWNrdHJhY2UgKCk7DQp8 ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MTU3MjQ6IHJlc3VsdDogbm8NCmNv bmZpZ3VyZToxNTYzOTogY2hlY2tpbmcgZm9yIGJhY2t0cmFjZV9zeW1ib2xzDQpjb25maWd1cmU6 MTU2OTU6IGNjIC1vIGNvbmZ0ZXN0IC1Xc2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3BvaW50 ZXItYXJpdGggLVduZXN0ZWQtZXh0ZXJucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3Npbmct ZGVjbGFyYXRpb25zIC1XY2hhci1zdWJzY3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0cmlj dC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVz dC5jICA+JjUNCi90bXAvL2NjZHMxOENJLm86IEluIGZ1bmN0aW9uIGBtYWluJzoNCmNvbmZ0ZXN0 LmM6KC50ZXh0KzB4MTIpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBiYWNrdHJhY2Vfc3ltYm9s cycNCmNvbmZpZ3VyZToxNTcwMjogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJnb2JqZWN0 LWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnb2JqZWN0LWludHJv c3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIwLjEwLjgiDQp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgImdvYmplY3QtaW50cm9zcGVjdGlvbiAwLjEwLjgiDQp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNn aT9wcm9kdWN0PWdsaWImY29tcG9uZW50PWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FH RSAiZ29iamVjdC1pbnRyb3NwZWN0aW9uIg0KfCAjZGVmaW5lIFZFUlNJT04gIjAuMTAuOCINCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUg SEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyINCnwgI2RlZmluZSBZ WVRFWFRfUE9JTlRFUiAxDQp8ICNkZWZpbmUgU0hMSUJfU1VGRklYICJzbyINCnwgI2RlZmluZSBH T0JKRUNUX0lOVFJPU1BFQ1RJT05fTElCRElSICIvdXNyL2xvY2FsL2xpYiINCnwgI2RlZmluZSBH SVJfU1VGRklYICJnaXItMS4wIg0KfCAjZGVmaW5lIEdJUl9ESVIgIi91c3IvbG9jYWwvc2hhcmUv Z2lyLTEuMCINCnwgI2RlZmluZSBTSVpFT0ZfQ0hBUiAxDQp8ICNkZWZpbmUgU0laRU9GX1NIT1JU IDINCnwgI2RlZmluZSBTSVpFT0ZfSU5UIDQNCnwgI2RlZmluZSBTSVpFT0ZfTE9ORyA0DQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhB VkVfTUVNQ0hSIDENCnwgI2RlZmluZSBIQVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJT UE4gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSU1RSIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8 ICNkZWZpbmUgSEFWRV9TVFJUT1VMTCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgLyog RGVmaW5lIGJhY2t0cmFjZV9zeW1ib2xzIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgYmFja3RyYWNlX3N5bWJvbHMuDQp8ICAgIEZvciBleGFtcGxl LCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLw0KfCAjZGVm aW5lIGJhY2t0cmFjZV9zeW1ib2xzIGlubm9jdW91c19iYWNrdHJhY2Vfc3ltYm9scw0KfCANCnwg LyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl dyBwcm90b3R5cGVzLA0KfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBiYWNrdHJh Y2Vfc3ltYm9scyAoKTsgYmVsb3cuDQp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlDQp8ICAgICA8bGltaXRzLmg+IGV4aXN0 cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLw0KfCANCnwgI2lmZGVmIF9fU1RE Q19fDQp8ICMgaW5jbHVkZSA8bGltaXRzLmg+DQp8ICNlbHNlDQp8ICMgaW5jbHVkZSA8YXNzZXJ0 Lmg+DQp8ICNlbmRpZg0KfCANCnwgI3VuZGVmIGJhY2t0cmFjZV9zeW1ib2xzDQp8IA0KfCAvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4NCnwg ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDDQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8ICNl bmRpZg0KfCBjaGFyIGJhY2t0cmFjZV9zeW1ib2xzICgpOw0KfCAvKiBUaGUgR05VIEMgbGlicmFy eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQp8ICAgICB0 byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBu YW1lZA0KfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFt ZSBpcyBhbiBhbGlhcy4gICovDQp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9iYWNrdHJhY2Vfc3ltYm9s cyB8fCBkZWZpbmVkIF9fc3R1Yl9fX2JhY2t0cmFjZV9zeW1ib2xzDQp8IGNob2tlIG1lDQp8ICNl bmRpZg0KfCANCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCByZXR1cm4gYmFja3RyYWNlX3N5bWJv bHMgKCk7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MTU3MjQ6IHJlc3Vs dDogbm8NCmNvbmZpZ3VyZToxNTczOTogY2hlY2tpbmcgd2hldGhlciBQeXRob24gc3VwcG9ydCBp cyByZXF1ZXN0ZWQNCmNvbmZpZ3VyZToxNTc0ODogY2hlY2tpbmcgd2hldGhlciAvdXNyL2xvY2Fs L2Jpbi9weXRob24yLjcgdmVyc2lvbiA+PSAyLjUNCmNvbmZpZ3VyZToxNTc1OTogL3Vzci9sb2Nh bC9iaW4vcHl0aG9uMi43IC1jIGltcG9ydCBzeXMgIyBzcGxpdCBzdHJpbmdzIGJ5ICcuJyBhbmQg Y29udmVydCB0byBudW1lcmljLiBBcHBlbmQgc29tZSB6ZXJvcyAjIGJlY2F1c2Ugd2UgbmVlZCBh dCBsZWFzdCA0IGRpZ2l0cyBmb3IgdGhlIGhleCBjb252ZXJzaW9uLiAjIG1hcCByZXR1cm5zIGFu IGl0ZXJhdG9yIGluIFB5dGhvbiAzLjAgYW5kIGEgbGlzdCBpbiAyLnggbWludmVyID0gbGlzdCht YXAoaW50LCAnMi41Jy5zcGxpdCgnLicpKSkgKyBbMCwgMCwgMF0gbWludmVyaGV4ID0gMCAjIHhy YW5nZSBpcyBub3QgcHJlc2VudCBpbiBQeXRob24gMy4wIGFuZCByYW5nZSByZXR1cm5zIGFuIGl0 ZXJhdG9yIGZvciBpIGluIGxpc3QocmFuZ2UoMCwgNCkpOiBtaW52ZXJoZXggPSAobWludmVyaGV4 IDw8IDgpICsgbWludmVyW2ldIHN5cy5leGl0KHN5cy5oZXh2ZXJzaW9uIDwgbWludmVyaGV4KQ0K Y29uZmlndXJlOjE1NzYyOiAkPyA9IDANCmNvbmZpZ3VyZToxNTc2NDogcmVzdWx0OiB5ZXMNCmNv bmZpZ3VyZToxNTg2MTogY2hlY2tpbmcgZm9yIC91c3IvbG9jYWwvYmluL3B5dGhvbjIuNyB2ZXJz aW9uDQpjb25maWd1cmU6MTU4Njg6IHJlc3VsdDogMi43DQpjb25maWd1cmU6MTU4ODA6IGNoZWNr aW5nIGZvciAvdXNyL2xvY2FsL2Jpbi9weXRob24yLjcgcGxhdGZvcm0NCmNvbmZpZ3VyZToxNTg4 NzogcmVzdWx0OiBmcmVlYnNkOQ0KY29uZmlndXJlOjE1ODk0OiBjaGVja2luZyBmb3IgL3Vzci9s b2NhbC9iaW4vcHl0aG9uMi43IHNjcmlwdCBkaXJlY3RvcnkNCmNvbmZpZ3VyZToxNTkyMzogcmVz dWx0OiAke3ByZWZpeH0vbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzDQpjb25maWd1cmU6MTU5 MzI6IGNoZWNraW5nIGZvciAvdXNyL2xvY2FsL2Jpbi9weXRob24yLjcgZXh0ZW5zaW9uIG1vZHVs ZSBkaXJlY3RvcnkNCmNvbmZpZ3VyZToxNTk2MTogcmVzdWx0OiAke2V4ZWNfcHJlZml4fS9saWIv cHl0aG9uMi43L3NpdGUtcGFja2FnZXMNCmNvbmZpZ3VyZToxNTk4MjogY2hlY2tpbmcgZm9yIGhl YWRlcnMgcmVxdWlyZWQgdG8gY29tcGlsZSBweXRob24gZXh0ZW5zaW9ucw0KY29uZmlndXJlOjE2 MDA2OiBjcHAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9u Mi43IC1JL3Vzci9sb2NhbC9pbmNsdWRlL3B5dGhvbjIuNyBjb25mdGVzdC5jDQpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gY29uZnRlc3QuYzo0MToNCi91c3IvbG9jYWwvaW5jbHVkZS9weXRob24yLjcv UHl0aG9uLmg6MTY2OjE3OiBlcnJvcjogcHRoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkN CmNvbmZpZ3VyZToxNjAxMzogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoN CnwgLyogY29uZmRlZnMuaC4gICovDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJnb2JqZWN0LWlu dHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnb2JqZWN0LWludHJvc3Bl Y3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIwLjEwLjgiDQp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgImdvYmplY3QtaW50cm9zcGVjdGlvbiAwLjEwLjgiDQp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNnaT9w cm9kdWN0PWdsaWImY29tcG9uZW50PWludHJvc3BlY3Rpb24iDQp8ICNkZWZpbmUgUEFDS0FHRSAi Z29iamVjdC1pbnRyb3NwZWN0aW9uIg0KfCAjZGVmaW5lIFZFUlNJT04gIjAuMTAuOCINCnwgI2Rl ZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFW RV9ETEZDTl9IIDENCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyINCnwgI2RlZmluZSBZWVRF WFRfUE9JTlRFUiAxDQp8ICNkZWZpbmUgU0hMSUJfU1VGRklYICJzbyINCnwgI2RlZmluZSBHT0JK RUNUX0lOVFJPU1BFQ1RJT05fTElCRElSICIvdXNyL2xvY2FsL2xpYiINCnwgI2RlZmluZSBHSVJf U1VGRklYICJnaXItMS4wIg0KfCAjZGVmaW5lIEdJUl9ESVIgIi91c3IvbG9jYWwvc2hhcmUvZ2ly LTEuMCINCnwgI2RlZmluZSBTSVpFT0ZfQ0hBUiAxDQp8ICNkZWZpbmUgU0laRU9GX1NIT1JUIDIN CnwgI2RlZmluZSBTSVpFT0ZfSU5UIDQNCnwgI2RlZmluZSBTSVpFT0ZfTE9ORyA0DQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVf TUVNQ0hSIDENCnwgI2RlZmluZSBIQVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJTUE4g MQ0KfCAjZGVmaW5lIEhBVkVfU1RSU1RSIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJUT1VMTCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1 ZGUgPFB5dGhvbi5oPg0KY29uZmlndXJlOjE2MDI1OiByZXN1bHQ6IG5vdCBmb3VuZA0KY29uZmln dXJlOjE2MDI3OiBlcnJvcjogUHl0aG9uIGhlYWRlcnMgbm90IGZvdW5kDQoNCiMjIC0tLS0tLS0t LS0tLS0tLS0gIyMNCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMNCiMjIC0tLS0tLS0tLS0tLS0tLS0g IyMNCg0KYWNfY3ZfYnVpbGQ9aTM4Ni1wb3J0YmxkLWZyZWVic2Q5LjENCmFjX2N2X2NfY29tcGls ZXJfZ251PXllcw0KYWNfY3ZfY19jb25zdD15ZXMNCmFjX2N2X2Vudl9DQUlST19DRkxBR1Nfc2V0 PScnDQphY19jdl9lbnZfQ0FJUk9fQ0ZMQUdTX3ZhbHVlPScnDQphY19jdl9lbnZfQ0FJUk9fR09C SkVDVF9DRkxBR1Nfc2V0PScnDQphY19jdl9lbnZfQ0FJUk9fR09CSkVDVF9DRkxBR1NfdmFsdWU9 JycNCmFjX2N2X2Vudl9DQUlST19HT0JKRUNUX0xJQlNfc2V0PScnDQphY19jdl9lbnZfQ0FJUk9f R09CSkVDVF9MSUJTX3ZhbHVlPScnDQphY19jdl9lbnZfQ0FJUk9fTElCU19zZXQ9JycNCmFjX2N2 X2Vudl9DQUlST19MSUJTX3ZhbHVlPScnDQphY19jdl9lbnZfQ0Nfc2V0PXNldA0KYWNfY3ZfZW52 X0NDX3ZhbHVlPWNjDQphY19jdl9lbnZfQ0ZMQUdTX3NldD1zZXQNCmFjX2N2X2Vudl9DRkxBR1Nf dmFsdWU9Jy1PMiAtcGlwZSAtZm5vLXN0cmljdC1hbGlhc2luZycNCmFjX2N2X2Vudl9DUFBGTEFH U19zZXQ9c2V0DQphY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9LUkvdXNyL2xvY2FsL2luY2x1ZGUN CmFjX2N2X2Vudl9DUFBfc2V0PXNldA0KYWNfY3ZfZW52X0NQUF92YWx1ZT1jcHANCmFjX2N2X2Vu dl9GRklfQ0ZMQUdTX3NldD0nJw0KYWNfY3ZfZW52X0ZGSV9DRkxBR1NfdmFsdWU9JycNCmFjX2N2 X2Vudl9GRklfTElCU19zZXQ9JycNCmFjX2N2X2Vudl9GRklfTElCU192YWx1ZT0nJw0KYWNfY3Zf ZW52X0dJT19DRkxBR1Nfc2V0PScnDQphY19jdl9lbnZfR0lPX0NGTEFHU192YWx1ZT0nJw0KYWNf Y3ZfZW52X0dJT19MSUJTX3NldD0nJw0KYWNfY3ZfZW52X0dJT19MSUJTX3ZhbHVlPScnDQphY19j dl9lbnZfR0lPX1VOSVhfQ0ZMQUdTX3NldD0nJw0KYWNfY3ZfZW52X0dJT19VTklYX0NGTEFHU192 YWx1ZT0nJw0KYWNfY3ZfZW52X0dJT19VTklYX0xJQlNfc2V0PScnDQphY19jdl9lbnZfR0lPX1VO SVhfTElCU192YWx1ZT0nJw0KYWNfY3ZfZW52X0dJUkVQT19DRkxBR1Nfc2V0PScnDQphY19jdl9l bnZfR0lSRVBPX0NGTEFHU192YWx1ZT0nJw0KYWNfY3ZfZW52X0dJUkVQT19MSUJTX3NldD0nJw0K YWNfY3ZfZW52X0dJUkVQT19MSUJTX3ZhbHVlPScnDQphY19jdl9lbnZfR0xJQl9DRkxBR1Nfc2V0 PScnDQphY19jdl9lbnZfR0xJQl9DRkxBR1NfdmFsdWU9JycNCmFjX2N2X2Vudl9HTElCX0xJQlNf c2V0PScnDQphY19jdl9lbnZfR0xJQl9MSUJTX3ZhbHVlPScnDQphY19jdl9lbnZfR09CSkVDVF9D RkxBR1Nfc2V0PScnDQphY19jdl9lbnZfR09CSkVDVF9DRkxBR1NfdmFsdWU9JycNCmFjX2N2X2Vu dl9HT0JKRUNUX0xJQlNfc2V0PScnDQphY19jdl9lbnZfR09CSkVDVF9MSUJTX3ZhbHVlPScnDQph Y19jdl9lbnZfTERGTEFHU19zZXQ9c2V0DQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0nIC1ML3Vz ci9sb2NhbC9saWInDQphY19jdl9lbnZfTElCU19zZXQ9JycNCmFjX2N2X2Vudl9MSUJTX3ZhbHVl PScnDQphY19jdl9lbnZfUEtHX0NPTkZJR19zZXQ9JycNCmFjX2N2X2Vudl9QS0dfQ09ORklHX3Zh bHVlPScnDQphY19jdl9lbnZfU0NBTk5FUl9DRkxBR1Nfc2V0PScnDQphY19jdl9lbnZfU0NBTk5F Ul9DRkxBR1NfdmFsdWU9JycNCmFjX2N2X2Vudl9TQ0FOTkVSX0xJQlNfc2V0PScnDQphY19jdl9l bnZfU0NBTk5FUl9MSUJTX3ZhbHVlPScnDQphY19jdl9lbnZfYnVpbGRfYWxpYXNfc2V0PXNldA0K YWNfY3ZfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPWkzODYtcG9ydGJsZC1mcmVlYnNkOS4xDQphY19j dl9lbnZfaG9zdF9hbGlhc19zZXQ9JycNCmFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPScnDQph Y19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0nJw0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1 ZT0nJw0KYWNfY3ZfZnVuY19iYWNrdHJhY2U9bm8NCmFjX2N2X2Z1bmNfYmFja3RyYWNlX3N5bWJv bHM9bm8NCmFjX2N2X2Z1bmNfbWVtY2hyPXllcw0KYWNfY3ZfZnVuY19zdHJjaHI9eWVzDQphY19j dl9mdW5jX3N0cnNwbj15ZXMNCmFjX2N2X2Z1bmNfc3Ryc3RyPXllcw0KYWNfY3ZfZnVuY19zdHJ0 b2Q9eWVzDQphY19jdl9mdW5jX3N0cnRvbD15ZXMNCmFjX2N2X2Z1bmNfc3RydG91bGw9eWVzDQph Y19jdl9oZWFkZXJfZGxmY25faD15ZXMNCmFjX2N2X2hlYWRlcl9mY250bF9oPXllcw0KYWNfY3Zf aGVhZGVyX2ludHR5cGVzX2g9eWVzDQphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVzDQphY19jdl9o ZWFkZXJfc3RkYz15ZXMNCmFjX2N2X2hlYWRlcl9zdGRpbnRfaD15ZXMNCmFjX2N2X2hlYWRlcl9z dGRsaWJfaD15ZXMNCmFjX2N2X2hlYWRlcl9zdHJpbmdfaD15ZXMNCmFjX2N2X2hlYWRlcl9zdHJp bmdzX2g9eWVzDQphY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMNCmFjX2N2X2hlYWRlcl9zeXNf dHlwZXNfaD15ZXMNCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMNCmFjX2N2X2hvc3Q9aTM4Ni1w b3J0YmxkLWZyZWVic2Q5LjENCmFjX2N2X2xpYl9kbF9kbG9wZW49bm8NCmFjX2N2X2xpYl9sZXg9 LWxmbA0KYWNfY3Zfb2JqZXh0PW8NCmFjX2N2X3BhdGhfRE9MVF9CQVNIPScnDQphY19jdl9wYXRo X0VHUkVQPScvdXNyL2Jpbi9ncmVwIC1FJw0KYWNfY3ZfcGF0aF9GR1JFUD0nL3Vzci9iaW4vZ3Jl cCAtRicNCmFjX2N2X3BhdGhfR1JFUD0vdXNyL2Jpbi9ncmVwDQphY19jdl9wYXRoX1NFRD0vdXNy L2Jpbi9zZWQNCmFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0vdXNyL2xvY2FsL2Jpbi9wa2ct Y29uZmlnDQphY19jdl9wcm9nX0FXSz1uYXdrDQphY19jdl9wcm9nX0NQUD1jcHANCmFjX2N2X3By b2dfTEVYPWZsZXgNCmFjX2N2X3Byb2dfWUFDQz0nYmlzb24gLXknDQphY19jdl9wcm9nX2FjX2N0 X0FSPWFyDQphY19jdl9wcm9nX2FjX2N0X0NDPWNjDQphY19jdl9wcm9nX2FjX2N0X09CSkRVTVA9 b2JqZHVtcA0KYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9cmFubGliDQphY19jdl9wcm9nX2FjX2N0 X1NUUklQPXN0cmlwDQphY19jdl9wcm9nX2NjX2M4OT0nJw0KYWNfY3ZfcHJvZ19jY19jY19jX289 eWVzDQphY19jdl9wcm9nX2NjX2c9eWVzDQphY19jdl9wcm9nX2xleF9yb290PWxleC55eQ0KYWNf Y3ZfcHJvZ19sZXhfeXl0ZXh0X3BvaW50ZXI9eWVzDQphY19jdl9wcm9nX21ha2VfZ21ha2Vfc2V0 PXllcw0KYWNfY3Zfc2l6ZW9mX2NoYXI9MQ0KYWNfY3Zfc2l6ZW9mX2ludD00DQphY19jdl9zaXpl b2ZfbG9uZz00DQphY19jdl9zaXplb2Zfc2hvcnQ9Mg0KYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGU9Z2NjMw0KYW1fY3ZfcHl0aG9uX3BsYXRmb3JtPWZyZWVic2Q5DQphbV9jdl9w eXRob25fcHlleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWIvcHl0aG9uMi43L3NpdGUtcGFja2Fn ZXMnDQphbV9jdl9weXRob25fcHl0aG9uZGlyPScke3ByZWZpeH0vbGliL3B5dGhvbjIuNy9zaXRl LXBhY2thZ2VzJw0KYW1fY3ZfcHl0aG9uX3ZlcnNpb249Mi43DQpsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbA0KbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnDQpsdF9j dl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0nJw0KbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9LXINCmx0X2N2 X25tX2ludGVyZmFjZT0nQlNEIG5tJw0KbHRfY3Zfb2JqZGlyPS5saWJzDQpsdF9jdl9wYXRoX0xE PS91c3IvYmluL2xkDQpsdF9jdl9wYXRoX05NPScvdXNyL2Jpbi9ubSAtQicNCmx0X2N2X3Byb2df Y29tcGlsZXJfY19vPXllcw0KbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9eWVzDQpsdF9j dl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1ubw0KbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3M9eWVzDQpsdF9jdl9wcm9nX2dudV9sZD15ZXMNCmx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGU9J3NlZCAtbiAtZSAnXCcncy9eLipbCSBdXChbQUJDREdJUlNUV11bQUJDREdJ UlNUV10qXClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKSQvXDEgXDIgXDIvcCdc Jw0KbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J3NlZCAtbiAtZSAn XCcncy9eOiBcKFteIF0qXCkgJC8gIHtcIlwxXCIsICh2b2lkICopIDB9LC9wJ1wnJyAtZSAnXCcn cy9eW0FCQ0RHSVJTVFddKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHsiXDIiLCAodm9pZCAqKSBc JlwyfSwvcCdcJw0KbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGli X3ByZWZpeD0nc2VkIC1uIC1lICdcJydzL146IFwoW14gXSpcKSAkLyAge1wiXDFcIiwgKHZvaWQg KikgMH0sL3AnXCcnIC1lICdcJydzL15bQUJDREdJUlNUV10qIFwoW14gXSpcKSBcKGxpYlteIF0q XCkkLyAgeyJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnJyAtZSAnXCcncy9eW0FCQ0RHSVJTVFdd KiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHsibGliXDIiLCAodm9pZCAqKSBcJlwyfSwvcCdcJw0K bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9J3NlZCAtbiAtZSAnXCcncy9eVCAuKiBc KC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCdcJycgLWUgJ1wnJ3MvXltBQkNER0lSU1RXXSogLiog XCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCdcJw0KbHRfY3Zfc3lzX21heF9jbWRfbGVuPTI2MjE0 NA0KcGtnX2N2X0NBSVJPX0NGTEFHUz0nLUkvdXNyL2xvY2FsL2luY2x1ZGUvY2Fpcm8gLURfUkVF TlRSQU5UIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWItMi4wIC1JL3Vzci9sb2NhbC9pbmNsdWRl L3BpeG1hbi0xIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2ZyZWV0eXBlMiAtSS91c3IvbG9jYWwvaW5j bHVkZS9kcm0gLUkvdXNyL2xvY2FsL2luY2x1ZGUvbGlicG5nMTUgLURfVEhSRUFEX1NBRkUgLUkv dXNyL2xvY2FsL2luY2x1ZGUgICcNCnBrZ19jdl9DQUlST19HT0JKRUNUX0NGTEFHUz0nLUkvdXNy L2xvY2FsL2luY2x1ZGUvY2Fpcm8gLUkvdXNyL2xvY2FsL2luY2x1ZGUvcGl4bWFuLTEgLUkvdXNy L2xvY2FsL2luY2x1ZGUvZnJlZXR5cGUyIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2RybSAtSS91c3Iv bG9jYWwvaW5jbHVkZS9saWJwbmcxNSAtRF9USFJFQURfU0FGRSAtSS91c3IvbG9jYWwvaW5jbHVk ZSAtRF9SRUVOVFJBTlQgLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi0yLjAgICcNCnBrZ19jdl9D QUlST19HT0JKRUNUX0xJQlM9Jy1sY2Fpcm8tZ29iamVjdCAtbGNhaXJvIC1sZ29iamVjdC0yLjAg LWxndGhyZWFkLTIuMCAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1sZ2xpYi0yLjAgICcNCnBr Z19jdl9DQUlST19MSUJTPSctTC91c3IvbG9jYWwvbGliIC1sY2Fpcm8gLXB0aHJlYWQgICcNCnBr Z19jdl9GRklfQ0ZMQUdTPSctSS91c3IvbG9jYWwvbGliL2xpYmZmaS0zLjAuOS9pbmNsdWRlICAn DQpwa2dfY3ZfRkZJX0xJQlM9Jy1ML3Vzci9sb2NhbC9saWIgLWxmZmkgICcNCnBrZ19jdl9HSU9f Q0ZMQUdTPSctRF9SRUVOVFJBTlQgLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi0yLjAgICcNCnBr Z19jdl9HSU9fTElCUz0nLWxnaW8tMi4wIC1sZ29iamVjdC0yLjAgLWxndGhyZWFkLTIuMCAtbGdt b2R1bGUtMi4wIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxnbGliLTIuMCAgJw0KcGtnX2N2 X0dJT19VTklYX0NGTEFHUz0nLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2lvLXVuaXgtMi4wLyAtRF9S RUVOVFJBTlQgLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi0yLjAgICcNCnBrZ19jdl9HSU9fVU5J WF9MSUJTPSctbGdpby0yLjAgLWxnb2JqZWN0LTIuMCAtbGd0aHJlYWQtMi4wIC1sZ21vZHVsZS0y LjAgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGdsaWItMi4wICAnDQpwa2dfY3ZfR0lSRVBP X0NGTEFHUz0nLURfUkVFTlRSQU5UIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWItMi4wICAnDQpw a2dfY3ZfR0lSRVBPX0xJQlM9Jy1XbCwtLWV4cG9ydC1keW5hbWljIC1sZ2lvLTIuMCAtbGdvYmpl Y3QtMi4wIC1sZ3RocmVhZC0yLjAgLWxnbW9kdWxlLTIuMCAtcHRocmVhZCAtTC91c3IvbG9jYWwv bGliIC1sZ2xpYi0yLjAgICcNCnBrZ19jdl9HTElCX0NGTEFHUz0nLUkvdXNyL2xvY2FsL2luY2x1 ZGUvZ2xpYi0yLjAgICcNCnBrZ19jdl9HTElCX0xJQlM9Jy1ML3Vzci9sb2NhbC9saWIgLWxnbGli LTIuMCAgJw0KcGtnX2N2X0dPQkpFQ1RfQ0ZMQUdTPSctRF9SRUVOVFJBTlQgLUkvdXNyL2xvY2Fs L2luY2x1ZGUvZ2xpYi0yLjAgICcNCnBrZ19jdl9HT0JKRUNUX0xJQlM9Jy1sZ29iamVjdC0yLjAg LWxndGhyZWFkLTIuMCAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1sZ2xpYi0yLjAgICcNCnBr Z19jdl9TQ0FOTkVSX0NGTEFHUz0nLURfUkVFTlRSQU5UIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2ds aWItMi4wICAnDQpwa2dfY3ZfU0NBTk5FUl9MSUJTPSctbGdpby0yLjAgLWxnb2JqZWN0LTIuMCAt bGd0aHJlYWQtMi4wIC1sZ21vZHVsZS0yLjAgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGds aWItMi4wICAnDQoNCiMjIC0tLS0tLS0tLS0tLS0tLS0tICMjDQojIyBPdXRwdXQgdmFyaWFibGVz LiAjIw0KIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMNCg0KQUNMT0NBTD0nJHtTSEVMTH0gL3Vzci9w b3J0cy9kZXZlbC9nb2JqZWN0LWludHJvc3BlY3Rpb24vd29yay9nb2JqZWN0LWludHJvc3BlY3Rp b24tMC4xMC44L21pc3NpbmcgLS1ydW4gYWNsb2NhbC0xLjExJw0KQU1ERVBCQUNLU0xBU0g9J1wn DQpBTURFUF9GQUxTRT0nIycNCkFNREVQX1RSVUU9JycNCkFNVEFSPScke1NIRUxMfSAvdXNyL3Bv cnRzL2RldmVsL2dvYmplY3QtaW50cm9zcGVjdGlvbi93b3JrL2dvYmplY3QtaW50cm9zcGVjdGlv bi0wLjEwLjgvbWlzc2luZyAtLXJ1biB0YXInDQpBTV9CQUNLU0xBU0g9J1wnDQpBTV9ERUZBVUxU X1ZFUkJPU0lUWT0nMCcNCkFSPSdhcicNCkFVVE9DT05GPScke1NIRUxMfSAvdXNyL3BvcnRzL2Rl dmVsL2dvYmplY3QtaW50cm9zcGVjdGlvbi93b3JrL2dvYmplY3QtaW50cm9zcGVjdGlvbi0wLjEw LjgvbWlzc2luZyAtLXJ1biBhdXRvY29uZicNCkFVVE9IRUFERVI9JyR7U0hFTEx9IC91c3IvcG9y dHMvZGV2ZWwvZ29iamVjdC1pbnRyb3NwZWN0aW9uL3dvcmsvZ29iamVjdC1pbnRyb3NwZWN0aW9u LTAuMTAuOC9taXNzaW5nIC0tcnVuIGF1dG9oZWFkZXInDQpBVVRPTUFLRT0nJHtTSEVMTH0gL3Vz ci9wb3J0cy9kZXZlbC9nb2JqZWN0LWludHJvc3BlY3Rpb24vd29yay9nb2JqZWN0LWludHJvc3Bl Y3Rpb24tMC4xMC44L21pc3NpbmcgLS1ydW4gYXV0b21ha2UtMS4xMScNCkFXSz0nbmF3aycNCkJV SUxEX1RFU1RTX0ZBTFNFPScnDQpCVUlMRF9URVNUU19UUlVFPScjJw0KQ0FJUk9fQ0ZMQUdTPSct SS91c3IvbG9jYWwvaW5jbHVkZS9jYWlybyAtRF9SRUVOVFJBTlQgLUkvdXNyL2xvY2FsL2luY2x1 ZGUvZ2xpYi0yLjAgLUkvdXNyL2xvY2FsL2luY2x1ZGUvcGl4bWFuLTEgLUkvdXNyL2xvY2FsL2lu Y2x1ZGUvZnJlZXR5cGUyIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2RybSAtSS91c3IvbG9jYWwvaW5j bHVkZS9saWJwbmcxNSAtRF9USFJFQURfU0FGRSAtSS91c3IvbG9jYWwvaW5jbHVkZSAgJw0KQ0FJ Uk9fR0lSX1BBQ0tBR0U9J2NhaXJvLWdvYmplY3QnDQpDQUlST19HT0JKRUNUX0NGTEFHUz0nLUkv dXNyL2xvY2FsL2luY2x1ZGUvY2Fpcm8gLUkvdXNyL2xvY2FsL2luY2x1ZGUvcGl4bWFuLTEgLUkv dXNyL2xvY2FsL2luY2x1ZGUvZnJlZXR5cGUyIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2RybSAtSS91 c3IvbG9jYWwvaW5jbHVkZS9saWJwbmcxNSAtRF9USFJFQURfU0FGRSAtSS91c3IvbG9jYWwvaW5j bHVkZSAtRF9SRUVOVFJBTlQgLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi0yLjAgICcNCkNBSVJP X0dPQkpFQ1RfTElCUz0nLWxjYWlyby1nb2JqZWN0IC1sY2Fpcm8gLWxnb2JqZWN0LTIuMCAtbGd0 aHJlYWQtMi4wIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxnbGliLTIuMCAgJw0KQ0FJUk9f TElCUz0nLUwvdXNyL2xvY2FsL2xpYiAtbGNhaXJvIC1wdGhyZWFkICAnDQpDQUlST19TSEFSRURf TElCUkFSWT0nbGliY2Fpcm8tZ29iamVjdC5zby4yJw0KQ0M9J2NjJw0KQ0NERVBNT0RFPSdkZXBt b2RlPWdjYzMnDQpDRkxBR1M9Jy1Xc2lnbi1jb21wYXJlIC1XY2FzdC1hbGlnbiAtV3BvaW50ZXIt YXJpdGggLVduZXN0ZWQtZXh0ZXJucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3NpbmctZGVj bGFyYXRpb25zIC1XY2hhci1zdWJzY3JpcHRzIC1XYWxsIC1PMiAtcGlwZSAtZm5vLXN0cmljdC1h bGlhc2luZycNCkNQUD0nY3BwJw0KQ1BQRkxBR1M9Jy1JL3Vzci9sb2NhbC9pbmNsdWRlIC1JL3Vz ci9sb2NhbC9pbmNsdWRlL3B5dGhvbjIuNyAtSS91c3IvbG9jYWwvaW5jbHVkZS9weXRob24yLjcn DQpDWUdQQVRIX1c9J2VjaG8nDQpERUZTPScnDQpERVBESVI9Jy5kZXBzJw0KRFNZTVVUSUw9JycN CkRVTVBCSU49JycNCkVDSE9fQz0nJw0KRUNIT19OPSctbicNCkVDSE9fVD0nJw0KRUdSRVA9Jy91 c3IvYmluL2dyZXAgLUUnDQpFTkFCTEVfR1RLX0RPQ19GQUxTRT0nJw0KRU5BQkxFX0dUS19ET0Nf VFJVRT0nIycNCkVYRUVYVD0nJw0KRVhQQU5ERURfQklORElSPScvdXNyL2xvY2FsL2JpbicNCkVY UEFOREVEX0RBVEFESVI9Jy91c3IvbG9jYWwvc2hhcmUnDQpFWFBBTkRFRF9MSUJESVI9Jy91c3Iv bG9jYWwvbGliJw0KRVhQQU5ERURfTElCRVhFQ0RJUj0nL3Vzci9sb2NhbC9saWJleGVjJw0KRVhQ QU5ERURfTE9DQUxTVEFURURJUj0nL3Vzci9sb2NhbC92YXInDQpFWFBBTkRFRF9TWVNDT05GRElS PScvdXNyL2xvY2FsL2V0YycNCkZGSV9DRkxBR1M9Jy1JL3Vzci9sb2NhbC9saWIvbGliZmZpLTMu MC45L2luY2x1ZGUgICcNCkZGSV9MSUJTPSctTC91c3IvbG9jYWwvbGliIC1sZmZpICAnDQpGRklf UENfQ0ZMQUdTPScnDQpGRklfUENfTElCUz0nJw0KRkZJX1BDX1BBQ0tBR0VTPSdsaWJmZmknDQpG R1JFUD0nL3Vzci9iaW4vZ3JlcCAtRicNCkdJT19DRkxBR1M9Jy1EX1JFRU5UUkFOVCAtSS91c3Iv bG9jYWwvaW5jbHVkZS9nbGliLTIuMCAgJw0KR0lPX0xJQlM9Jy1sZ2lvLTIuMCAtbGdvYmplY3Qt Mi4wIC1sZ3RocmVhZC0yLjAgLWxnbW9kdWxlLTIuMCAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGli IC1sZ2xpYi0yLjAgICcNCkdJT19VTklYX0NGTEFHUz0nLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2lv LXVuaXgtMi4wLyAtRF9SRUVOVFJBTlQgLUkvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi0yLjAgICcN CkdJT19VTklYX0xJQlM9Jy1sZ2lvLTIuMCAtbGdvYmplY3QtMi4wIC1sZ3RocmVhZC0yLjAgLWxn bW9kdWxlLTIuMCAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1sZ2xpYi0yLjAgICcNCkdJUkVQ T19DRkxBR1M9Jy1EX1JFRU5UUkFOVCAtSS91c3IvbG9jYWwvaW5jbHVkZS9nbGliLTIuMCAgIC1J L3Vzci9sb2NhbC9saWIvbGliZmZpLTMuMC45L2luY2x1ZGUgICAnDQpHSVJFUE9fTElCUz0nLVds LC0tZXhwb3J0LWR5bmFtaWMgLWxnaW8tMi4wIC1sZ29iamVjdC0yLjAgLWxndGhyZWFkLTIuMCAt bGdtb2R1bGUtMi4wIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxnbGliLTIuMCAgICAtTC91 c3IvbG9jYWwvbGliIC1sZmZpICAnDQpHSVJfRElSPScvdXNyL2xvY2FsL3NoYXJlL2dpci0xLjAn DQpHSVJfU1VGRklYPSdnaXItMS4wJw0KR0xJQlNSQz0nJw0KR0xJQl9DRkxBR1M9Jy1JL3Vzci9s b2NhbC9pbmNsdWRlL2dsaWItMi4wICAnDQpHTElCX0xJQlM9Jy1ML3Vzci9sb2NhbC9saWIgLWxn bGliLTIuMCAgJw0KR09CSkVDVF9DRkxBR1M9Jy1EX1JFRU5UUkFOVCAtSS91c3IvbG9jYWwvaW5j bHVkZS9nbGliLTIuMCAgJw0KR09CSkVDVF9JTlRST1NQRUNUSU9OX0xJQkRJUj0nL3Vzci9sb2Nh bC9saWInDQpHT0JKRUNUX0xJQlM9Jy1sZ29iamVjdC0yLjAgLWxndGhyZWFkLTIuMCAtcHRocmVh ZCAtTC91c3IvbG9jYWwvbGliIC1sZ2xpYi0yLjAgICcNCkdSRVA9Jy91c3IvYmluL2dyZXAnDQpH VEtET0NfQ0hFQ0s9JycNCkdUS0RPQ19NS1BERj0nJw0KR1RLRE9DX1JFQkFTRT0ndHJ1ZScNCkdU S19ET0NfQlVJTERfSFRNTF9GQUxTRT0nIycNCkdUS19ET0NfQlVJTERfSFRNTF9UUlVFPScnDQpH VEtfRE9DX0JVSUxEX1BERl9GQUxTRT0nJw0KR1RLX0RPQ19CVUlMRF9QREZfVFJVRT0nIycNCkdU S19ET0NfVVNFX0xJQlRPT0xfRkFMU0U9JyMnDQpHVEtfRE9DX1VTRV9MSUJUT09MX1RSVUU9JycN CkdUS19ET0NfVVNFX1JFQkFTRV9GQUxTRT0nIycNCkdUS19ET0NfVVNFX1JFQkFTRV9UUlVFPScn DQpIQVZFX0NBSVJPX0ZBTFNFPScjJw0KSEFWRV9DQUlST19HT0JKRUNUX0ZBTFNFPScjJw0KSEFW RV9DQUlST19HT0JKRUNUX1RSVUU9JycNCkhBVkVfQ0FJUk9fVFJVRT0nJw0KSEFWRV9HSU9fVU5J WF9GQUxTRT0nIycNCkhBVkVfR0lPX1VOSVhfVFJVRT0nJw0KSFRNTF9ESVI9JyR7ZGF0YWRpcn0v Z3RrLWRvYy9odG1sJw0KSU5TVEFMTF9EQVRBPSdpbnN0YWxsICAtbyByb290IC1nIHdoZWVsIC1t IDQ0NCcNCklOU1RBTExfUFJPR1JBTT0naW5zdGFsbCAgLXMgLW8gcm9vdCAtZyB3aGVlbCAtbSA1 NTUnDQpJTlNUQUxMX1NDUklQVD0naW5zdGFsbCAgLW8gcm9vdCAtZyB3aGVlbCAtbSA1NTUnDQpJ TlNUQUxMX1NUUklQX1BST0dSQU09JyQoaW5zdGFsbF9zaCkgLWMgLXMnDQpMRD0nL3Vzci9iaW4v bGQnDQpMREZMQUdTPScgLUwvdXNyL2xvY2FsL2xpYicNCkxFWD0nZmxleCcNCkxFWExJQj0nLWxm bCcNCkxFWF9PVVRQVVRfUk9PVD0nbGV4Lnl5Jw0KTElCT0JKUz0nJw0KTElCUz0nJw0KTElCVE9P TD0nJChTSEVMTCkgL3Vzci9wb3J0cy9kZXZlbC9nb2JqZWN0LWludHJvc3BlY3Rpb24vd29yay9n bm9tZS1saWJ0b29sJw0KTElQTz0nJw0KTE5fUz0nbG4gLXMnDQpMVExJQk9CSlM9JycNCk1BSU5U PScjJw0KTUFJTlRBSU5FUl9NT0RFX0ZBTFNFPScnDQpNQUlOVEFJTkVSX01PREVfVFJVRT0nIycN Ck1BS0VJTkZPPScke1NIRUxMfSAvdXNyL3BvcnRzL2RldmVsL2dvYmplY3QtaW50cm9zcGVjdGlv bi93b3JrL2dvYmplY3QtaW50cm9zcGVjdGlvbi0wLjEwLjgvbWlzc2luZyAtLXJ1biBtYWtlaW5m bycNCk1LRElSX1A9Jy4vaW5zdGFsbC1zaCAtYyAtZCcNCk5NPScvdXNyL2Jpbi9ubSAtQicNCk5N RURJVD0nJw0KT0JKRFVNUD0nb2JqZHVtcCcNCk9CSkVYVD0nbycNCk9TX1dJTjMyX0ZBTFNFPScn DQpPU19XSU4zMl9UUlVFPScjJw0KT1RPT0w2ND0nJw0KT1RPT0w9JycNClBBQ0tBR0U9J2dvYmpl Y3QtaW50cm9zcGVjdGlvbicNClBBQ0tBR0VfQlVHUkVQT1JUPSdodHRwOi8vYnVnemlsbGEuZ25v bWUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1nbGliJmNvbXBvbmVudD1pbnRyb3NwZWN0aW9u Jw0KUEFDS0FHRV9OQU1FPSdnb2JqZWN0LWludHJvc3BlY3Rpb24nDQpQQUNLQUdFX1NUUklORz0n Z29iamVjdC1pbnRyb3NwZWN0aW9uIDAuMTAuOCcNClBBQ0tBR0VfVEFSTkFNRT0nZ29iamVjdC1p bnRyb3NwZWN0aW9uJw0KUEFDS0FHRV9WRVJTSU9OPScwLjEwLjgnDQpQQVRIX1NFUEFSQVRPUj0n OicNClBLR19DT05GSUc9Jy91c3IvbG9jYWwvYmluL3BrZy1jb25maWcnDQpQT1dfTElCPScnDQpQ WVRIT049Jy91c3IvbG9jYWwvYmluL3B5dGhvbjIuNycNClBZVEhPTl9FWEVDX1BSRUZJWD0nJHtl eGVjX3ByZWZpeH0nDQpQWVRIT05fSU5DTFVERVM9Jy1JL3Vzci9sb2NhbC9pbmNsdWRlL3B5dGhv bjIuNyAtSS91c3IvbG9jYWwvaW5jbHVkZS9weXRob24yLjcnDQpQWVRIT05fUExBVEZPUk09J2Zy ZWVic2Q5Jw0KUFlUSE9OX1BSRUZJWD0nJHtwcmVmaXh9Jw0KUFlUSE9OX1ZFUlNJT049JzIuNycN ClJBTkxJQj0ncmFubGliJw0KU0NBTk5FUl9DRkxBR1M9Jy1EX1JFRU5UUkFOVCAtSS91c3IvbG9j YWwvaW5jbHVkZS9nbGliLTIuMCAgJw0KU0NBTk5FUl9MSUJTPSctbGdpby0yLjAgLWxnb2JqZWN0 LTIuMCAtbGd0aHJlYWQtMi4wIC1sZ21vZHVsZS0yLjAgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xp YiAtbGdsaWItMi4wICAnDQpTRUQ9Jy91c3IvYmluL3NlZCcNClNFVF9NQUtFPScnDQpTSEVMTD0n L2Jpbi9zaCcNClNUUklQPSdzdHJpcCcNClZFUlNJT049JzAuMTAuOCcNCldJVEhfR0xJQlNSQ19G QUxTRT0nJw0KV0lUSF9HTElCU1JDX1RSVUU9JycNCllBQ0M9J2Jpc29uIC15Jw0KYWNfY3RfQ0M9 J2NjJw0KYWNfY3RfRFVNUEJJTj0nJw0KYW1fX0VYRUVYVF9GQUxTRT0nJw0KYW1fX0VYRUVYVF9U UlVFPScnDQphbV9fZmFzdGRlcENDX0ZBTFNFPScjJw0KYW1fX2Zhc3RkZXBDQ19UUlVFPScnDQph bV9faW5jbHVkZT0naW5jbHVkZScNCmFtX19pc3JjPScnDQphbV9fbGVhZGluZ19kb3Q9Jy4nDQph bV9fcXVvdGU9JycNCmFtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJw0KYW1fX3Vu dGFyPScke0FNVEFSfSB4ZiAtJw0KYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nDQpidWlsZD0n aTM4Ni1wb3J0YmxkLWZyZWVic2Q5LjEnDQpidWlsZF9hbGlhcz0naTM4Ni1wb3J0YmxkLWZyZWVi c2Q5LjEnDQpidWlsZF9jcHU9J2kzODYnDQpidWlsZF9vcz0nZnJlZWJzZDkuMScNCmJ1aWxkX3Zl bmRvcj0ncG9ydGJsZCcNCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9Jw0KZGF0YXJvb3RkaXI9JyR7 cHJlZml4fS9zaGFyZScNCmRvY2Rpcj0nJHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJO QU1FfScNCmR2aWRpcj0nJHtkb2NkaXJ9Jw0KZXhlY19wcmVmaXg9J05PTkUnDQpob3N0PSdpMzg2 LXBvcnRibGQtZnJlZWJzZDkuMScNCmhvc3RfYWxpYXM9JycNCmhvc3RfY3B1PSdpMzg2Jw0KaG9z dF9vcz0nZnJlZWJzZDkuMScNCmhvc3RfdmVuZG9yPSdwb3J0YmxkJw0KaHRtbGRpcj0nJHtkb2Nk aXJ9Jw0KaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnDQppbmZvZGlyPScvdXNyL2xvY2Fs L2luZm8nDQppbnN0YWxsX3NoPScke1NIRUxMfSAvdXNyL3BvcnRzL2RldmVsL2dvYmplY3QtaW50 cm9zcGVjdGlvbi93b3JrL2dvYmplY3QtaW50cm9zcGVjdGlvbi0wLjEwLjgvaW5zdGFsbC1zaCcN CmxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJw0KbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0v bGliZXhlYycNCmxvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9jYWxlJw0KbG9jYWxzdGF0ZWRp cj0nJHtwcmVmaXh9L3ZhcicNCmx0X0VDSE89J2VjaG8nDQptYW5kaXI9Jy91c3IvbG9jYWwvbWFu Jw0KbWtkaXJfcD0nJCh0b3BfYnVpbGRkaXIpLy4vaW5zdGFsbC1zaCAtYyAtZCcNCm9sZGluY2x1 ZGVkaXI9Jy91c3IvaW5jbHVkZScNCnBkZmRpcj0nJHtkb2NkaXJ9Jw0KcGtncHlleGVjZGlyPSck e3B5ZXhlY2Rpcn0vZ29iamVjdC1pbnRyb3NwZWN0aW9uJw0KcGtncHl0aG9uZGlyPScke3B5dGhv bmRpcn0vZ29iamVjdC1pbnRyb3NwZWN0aW9uJw0KcHJlZml4PScvdXNyL2xvY2FsJw0KcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJw0KcHNkaXI9JyR7ZG9jZGlyfScNCnB5ZXhlY2Rpcj0n JHtleGVjX3ByZWZpeH0vbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzJw0KcHl0aG9uZGlyPSck e3ByZWZpeH0vbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzJw0Kc2JpbmRpcj0nJHtleGVjX3By ZWZpeH0vc2JpbicNCnNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJw0Kc3lzY29uZmRpcj0n JHtwcmVmaXh9L2V0YycNCnRhcmdldF9hbGlhcz0nJw0KDQojIyAtLS0tLS0tLS0tLSAjIw0KIyMg Y29uZmRlZnMuaC4gIyMNCiMjIC0tLS0tLS0tLS0tICMjDQoNCiNkZWZpbmUgUEFDS0FHRV9OQU1F ICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQojZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ29iamVj dC1pbnRyb3NwZWN0aW9uIg0KI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjAuMTAuOCINCiNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgImdvYmplY3QtaW50cm9zcGVjdGlvbiAwLjEwLjgiDQojZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2VudGVyX2J1Zy5j Z2k/cHJvZHVjdD1nbGliJmNvbXBvbmVudD1pbnRyb3NwZWN0aW9uIg0KI2RlZmluZSBQQUNLQUdF ICJnb2JqZWN0LWludHJvc3BlY3Rpb24iDQojZGVmaW5lIFZFUlNJT04gIjAuMTAuOCINCiNkZWZp bmUgU1REQ19IRUFERVJTIDENCiNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQojZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxDQojZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KI2RlZmluZSBIQVZFX1NU UklOR19IIDENCiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQojZGVmaW5lIEhBVkVfU1RSSU5HU19I IDENCiNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQoj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KI2RlZmluZSBM VF9PQkpESVIgIi5saWJzLyINCiNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQ0KI2RlZmluZSBTSExJ Ql9TVUZGSVggInNvIg0KI2RlZmluZSBHT0JKRUNUX0lOVFJPU1BFQ1RJT05fTElCRElSICIvdXNy L2xvY2FsL2xpYiINCiNkZWZpbmUgR0lSX1NVRkZJWCAiZ2lyLTEuMCINCiNkZWZpbmUgR0lSX0RJ UiAiL3Vzci9sb2NhbC9zaGFyZS9naXItMS4wIg0KI2RlZmluZSBTSVpFT0ZfQ0hBUiAxDQojZGVm aW5lIFNJWkVPRl9TSE9SVCAyDQojZGVmaW5lIFNJWkVPRl9JTlQgNA0KI2RlZmluZSBTSVpFT0Zf TE9ORyA0DQojZGVmaW5lIFNURENfSEVBREVSUyAxDQojZGVmaW5lIEhBVkVfRkNOVExfSCAxDQoj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KI2RlZmluZSBIQVZFX1NUUklOR19IIDENCiNkZWZpbmUg SEFWRV9NRU1DSFIgMQ0KI2RlZmluZSBIQVZFX1NUUkNIUiAxDQojZGVmaW5lIEhBVkVfU1RSU1BO IDENCiNkZWZpbmUgSEFWRV9TVFJTVFIgMQ0KI2RlZmluZSBIQVZFX1NUUlRPTCAxDQojZGVmaW5l IEhBVkVfU1RSVE9VTEwgMQ0KDQpjb25maWd1cmU6IGV4aXQgMQ0K --bcaec54eebba4866b904d471d96d--