From owner-freebsd-gnome@FreeBSD.ORG Mon Feb 27 20:49:29 2006 Return-Path: X-Original-To: gnome@FreeBSD.org Delivered-To: freebsd-gnome@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 434DE16A422; Mon, 27 Feb 2006 20:49:29 +0000 (GMT) (envelope-from mi+mxe@aldan.algebra.com) Received: from vms048pub.verizon.net (vms048pub.verizon.net [206.46.252.48]) by mx1.FreeBSD.org (Postfix) with ESMTP id 15A3843D5E; Mon, 27 Feb 2006 20:49:22 +0000 (GMT) (envelope-from mi+mxe@aldan.algebra.com) Received: from corbulon.video-collage.com ([151.204.231.237]) by vms048.mailsrvcs.net (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) with ESMTPA id <0IVD00KRP5U5Q6M1@vms048.mailsrvcs.net>; Mon, 27 Feb 2006 14:49:19 -0600 (CST) Received: from mteterin.us.murex.com (195-11.customer.cloud9.net [168.100.195.11]) by corbulon.video-collage.com (8.13.4/8.13.1) with ESMTP id k1RKn1oD003668 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 27 Feb 2006 15:49:12 -0500 Received: from mteterin.us.murex.com (mteterin@localhost [127.0.0.1]) by mteterin.us.murex.com (8.13.4/8.13.4) with ESMTP id k1RKmsZW093895; Mon, 27 Feb 2006 15:48:54 -0500 Received: (from mteterin@localhost) by mteterin.us.murex.com (8.13.4/8.13.4/Submit) id k1RKmq9d093894; Mon, 27 Feb 2006 15:48:52 -0500 Date: Mon, 27 Feb 2006 15:48:52 -0500 From: Mikhail Teterin To: gnome@FreeBSD.org, kwm@FreeBSD.org, matthias.andree@gmx.de Message-id: <1141073332.93780.6.camel@mteterin.us.murex.com> Organization: Virtual Estates, Inc. MIME-version: 1.0 X-Mailer: Evolution 2.4.2.1 FreeBSD GNOME Team Port Content-type: multipart/mixed; boundary="=-+1+GTNFbpXwN0WXhSm6Z" X-Virus-Scanned: ClamAV devel-20050525/1305/Mon Feb 27 14:07:49 2006 on corbulon.video-collage.com X-Virus-Status: Clean X-Scanned-By: MIMEDefang 2.43 X-Authentication-warning: mteterin.us.murex.com: mteterin set sender to mi+mxe@aldan.algebra.com using -f Cc: Subject: patching databases/evolution-data-server to USE_BDB X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: mi+mxe@aldan.algebra.com List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Feb 2006 20:49:29 -0000 --=-+1+GTNFbpXwN0WXhSm6Z Content-Type: text/plain Content-Transfer-Encoding: 7bit Hello! The attached patch fixes evolution-data-server to use the already installed version of libdb instead of building its own. Frankly, I'm surprised, this was not done earlier. We even added SleepyCat's official patch instead of relying on the efforts of the databases/db4* maintainer(s)... I'm sending this e-mail using Evolution built against db43... Yours, -mi --=-+1+GTNFbpXwN0WXhSm6Z Content-Description: Content-Disposition: inline; filename=evo.diff Content-Transfer-Encoding: base64 Content-Type: text/x-patch; charset=KOI8-U SW5kZXg6IE1ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL21lb3cvbmN2cy9wb3J0cy9k YXRhYmFzZXMvZXZvbHV0aW9uLWRhdGEtc2VydmVyL01ha2VmaWxlLHYNCnJldHJpZXZpbmcgcmV2 aXNpb24gMS4yMg0KZGlmZiAtVTIgLXIxLjIyIE1ha2VmaWxlDQotLS0gTWFrZWZpbGUJMjMgRmVi IDIwMDYgMTA6MzU6MDIgLTAwMDAJMS4yMg0KKysrIE1ha2VmaWxlCTI0IEZlYiAyMDA2IDIzOjQ4 OjMxIC0wMDAwDQpAQCAtOSw1ICs5LDUgQEANCiBQT1JUTkFNRT0JZXZvbHV0aW9uLWRhdGEtc2Vy dmVyDQogUE9SVFZFUlNJT049CTEuNC4yLjENCi1QT1JUUkVWSVNJT049CTMNCitQT1JUUkVWSVNJ T049CTQNCiBDQVRFR09SSUVTPQlkYXRhYmFzZXMgZ25vbWUNCiBNQVNURVJfU0lURVM9CSR7TUFT VEVSX1NJVEVfR05PTUV9DQpAQCAtMTgsNyArMTgsNyBAQA0KIENPTU1FTlQ9CVRoZSBkYXRhIGJh Y2tlbmRzIGZvciB0aGUgRXZvbHV0aW9uIGludGVncmF0ZWQgbWFpbC9QSU0gc3VpdGUNCiANCi1M SUJfREVQRU5EUz0Jc291cC0yLjIuODoke1BPUlRTRElSfS9kZXZlbC9saWJzb3VwIFwNCi0JCW5z czMuMToke1BPUlRTRElSfS9zZWN1cml0eS9uc3MgXA0KLQkJdGFzbjEuMjoke1BPUlRTRElSfS9z ZWN1cml0eS9saWJ0YXNuMQ0KK0xJQl9ERVBFTkRTPQlzb3VwLTIuMjoke1BPUlRTRElSfS9kZXZl bC9saWJzb3VwIFwNCisJCW5zczM6JHtQT1JUU0RJUn0vc2VjdXJpdHkvbnNzIFwNCisJCXRhc24x OiR7UE9SVFNESVJ9L3NlY3VyaXR5L2xpYnRhc24xDQogDQogVVNFX0JaSVAyPQl5ZXMNCkBAIC0z MCw0ICszMCw2IEBADQogVVNFX09QRU5MREFQPQl5ZXMNCiBVU0VfUkVJTlBMQUNFPQl5ZXMNCitV U0VfQkRCPQk0MSsNCitNQUtFX0VOVis9CURCVkVSU0lPTj0ke0xJQl9ERVBFTkRTOk1kYio6Qyw6 LiosLDpSfQ0KIFVTRV9BVVRPVE9PTFM9CWxpYnRvb2w6MTUNCiBJTlNUQUxMU19TSExJQj0JeWVz DQpAQCAtNDAsOCArNDIsMTAgQEANCiAJCS0td2l0aC1uc3ByLWxpYnM9JHtMT0NBTEJBU0V9L2xp YiBcDQogCQktLXdpdGgta3JiNT0vdXNyDQotQ09ORklHVVJFX0VOVj0JQ1BQRkxBR1M9Ii1JJHtM T0NBTEJBU0V9L2luY2x1ZGUgJHtQVEhSRUFEX0NGTEFHU30iIFwNCitDT05GSUdVUkVfRU5WPQlD UFBGTEFHUz0iLUkke0xPQ0FMQkFTRX0vaW5jbHVkZS8ke0xJQl9ERVBFTkRTOk0qZGI0KjpUfSBc DQorCQktSSR7TE9DQUxCQVNFfS9pbmNsdWRlICR7UFRIUkVBRF9DRkxBR1N9IiBcDQogCQlMREZM QUdTPSItTCR7TE9DQUxCQVNFfS9saWIgJHtQVEhSRUFEX0xJQlN9Ig0KIA0KIFBMSVNUX1NVQj0J VkVSU0lPTj0iMS40IiBFVk9fVkVSU0lPTj0iMS4yIg0KK0VYVFJBQ1RfQUZURVJfQVJHUz18ICR7 VEFSfSAteHBmIC0gLS1leGNsdWRlICcqL2xpYmRiJw0KIA0KIC5pbmNsdWRlIDxic2QucG9ydC5w cmUubWs+DQpJbmRleDogZmlsZXMvcGF0Y2gtY29uZmlndXJlDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls ZTogL21lb3cvbmN2cy9wb3J0cy9kYXRhYmFzZXMvZXZvbHV0aW9uLWRhdGEtc2VydmVyL2ZpbGVz L3BhdGNoLWNvbmZpZ3VyZSx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMw0KZGlmZiAtVTIgLXIx LjMgcGF0Y2gtY29uZmlndXJlDQotLS0gZmlsZXMvcGF0Y2gtY29uZmlndXJlCTUgTm92IDIwMDUg MDQ6NTM6MTQgLTAwMDAJMS4zDQorKysgZmlsZXMvcGF0Y2gtY29uZmlndXJlCTI0IEZlYiAyMDA2 IDIzOjI0OjQ1IC0wMDAwDQpAQCAtMSw0ICsxLDEwIEBADQotLS0tIGNvbmZpZ3VyZS5vcmlnCUZy aSBKdWwgMjkgMTc6MTM6NDQgMjAwNQ0KLSsrKyBjb25maWd1cmUJRnJpIEp1bCAyOSAxNzoxNTo1 MiAyMDA1DQorLS0tIGNvbmZpZ3VyZQlGcmkgSnVsIDI5IDE3OjEzOjQ0IDIwMDUNCisrKysgY29u ZmlndXJlCUZyaSBGZWIgMjQgMTg6MjI6NTcgMjAwNg0KK0BAIC00NjUsNSArNDY1LDQgQEANCisg DQorIGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgY2FsZW5kYXIvbGliaWNhbCINCist YWNfc3ViZGlyc19hbGw9IiRhY19zdWJkaXJzX2FsbCBsaWJkYi9kaXN0Ig0KKyBhY19zdWJzdF92 YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBB Q0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZp eCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGly IGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBp bmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9h bGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIElOU1RBTExf UFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFBBQ0tBR0UgVkVS U0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8gaW5zdGFs bF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJfcCBBV0sg U0VUX01BS0UgYW1fX2xlYWRpbmdfZG90IEFNVEFSIGFtX190YXIgYW1fX3VudGFyIEJBU0VfVkVS U0lPTiBBUElfVkVSU0lPTiBMSUJFREFUQVNFUlZFUl9DVVJSRU5UIExJQkVEQVRBU0VSVkVSX1JF VklTSU9OIExJQkVEQVRBU0VSVkVSX0FHRSBMSUJFREFUQVNFUlZFUlVJX0NVUlJFTlQgTElCRURB VEFTRVJWRVJVSV9SRVZJU0lPTiBMSUJFREFUQVNFUlZFUlVJX0FHRSBMSUJFQ0FMX0NVUlJFTlQg TElCRUNBTF9SRVZJU0lPTiBMSUJFQ0FMX0FHRSBMSUJFREFUQUNBTF9DVVJSRU5UIExJQkVEQVRB Q0FMX1JFVklTSU9OIExJQkVEQVRBQ0FMX0FHRSBMSUJFQk9PS19DVVJSRU5UIExJQkVCT09LX1JF VklTSU9OIExJQkVCT09LX0FHRSBMSUJFREFUQUJPT0tfQ1VSUkVOVCBMSUJFREFUQUJPT0tfUkVW SVNJT04gTElCRURBVEFCT09LX0FHRSBMSUJFR1JPVVBXSVNFX0NVUlJFTlQgTElCRUdST1VQV0lT RV9SRVZJU0lPTiBMSUJFR1JPVVBXSVNFX0FHRSBMSUJDQU1FTF9DVVJSRU5UIExJQkNBTUVMX1JF VklTSU9OIExJQkNBTUVMX0FHRSBMSUJFWENIQU5HRV9TVE9SQUdFX0NVUlJFTlQgTElCRVhDSEFO R0VfU1RPUkFHRV9SRVZJU0lPTiBMSUJFWENIQU5HRV9TVE9SQUdFX0FHRSBNQUlOVEFJTkVSX01P REVfVFJVRSBNQUlOVEFJTkVSX01PREVfRkFMU0UgTUFJTlQgQ0MgQ0ZMQUdTIExERkxBR1MgQ1BQ RkxBR1MgYWNfY3RfQ0MgRVhFRVhUIE9CSkVYVCBERVBESVIgYW1fX2luY2x1ZGUgYW1fX3F1b3Rl IEFNREVQX1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggQ0NERVBNT0RFIGFtX19mYXN0 ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIENQUCBMRVggTEVYTElCIExFWF9PVVRQVVRf Uk9PVCBZQUNDIEVHUkVQIExOX1MgSlcgSEFWRV9KV19UUlVFIEhBVkVfSldfRkFMU0UgSEFWRV9K VyBJTlRMVE9PTF9ERVNLVE9QX1JVTEUgSU5UTFRPT0xfRElSRUNUT1JZX1JVTEUgSU5UTFRPT0xf S0VZU19SVUxFIElOVExUT09MX1BST1BfUlVMRSBJTlRMVE9PTF9PQUZfUlVMRSBJTlRMVE9PTF9Q T05HX1JVTEUgSU5UTFRPT0xfU0VSVkVSX1JVTEUgSU5UTFRPT0xfU0hFRVRfUlVMRSBJTlRMVE9P TF9TT1VORExJU1RfUlVMRSBJTlRMVE9PTF9VSV9SVUxFIElOVExUT09MX1hBTV9SVUxFIElOVExU T09MX0tCRF9SVUxFIElOVExUT09MX1hNTF9SVUxFIElOVExUT09MX1hNTF9OT01FUkdFX1JVTEUg SU5UTFRPT0xfQ0FWRVNfUlVMRSBJTlRMVE9PTF9TQ0hFTUFTX1JVTEUgSU5UTFRPT0xfVEhFTUVf UlVMRSBJTlRMVE9PTF9FWFRSQUNUIElOVExUT09MX01FUkdFIElOVExUT09MX1VQREFURSBJTlRM VE9PTF9QRVJMIElOVExUT09MX0lDT05WIElOVExUT09MX01TR0ZNVCBJTlRMVE9PTF9NU0dNRVJH RSBJTlRMVE9PTF9YR0VUVEVYVCBVU0VfTkxTIE1TR0ZNVCBHTVNHRk1UIFhHRVRURVhUIENBVEFM T0dTIENBVE9CSkVYVCBEQVRBRElSTkFNRSBHTU9GSUxFUyBJTlNUT0JKRVhUIElOVExMSUJTIFBP X0lOX0RBVEFESVJfVFJVRSBQT19JTl9EQVRBRElSX0ZBTFNFIFBPRklMRVMgUE9TVUIgTUtJTlNU QUxMRElSUyBHRVRURVhUX1BBQ0tBR0UgbG9jYWxlZGlyIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92 ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIEVDSE8gQVIg YWNfY3RfQVIgUkFOTElCIGFjX2N0X1JBTkxJQiBETExUT09MIGFjX2N0X0RMTFRPT0wgQVMgYWNf Y3RfQVMgT0JKRFVNUCBhY19jdF9PQkpEVU1QIENYWCBDWFhGTEFHUyBhY19jdF9DWFggQ1hYREVQ TU9ERSBhbV9fZmFzdGRlcENYWF9UUlVFIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFIENYWENQUCBGNzcg RkZMQUdTIGFjX2N0X0Y3NyBMSUJUT09MIE9TX1dJTjMyX1RSVUUgT1NfV0lOMzJfRkFMU0UgTk9f VU5ERUZJTkVEIFNPQ0tFVF9MSUJTIFJFR0VYX0xJQlMgSUNPTlZfQ0ZMQUdTIElDT05WX0xJQlMg UEtHX0NPTkZJRyBhY19wdF9QS0dfQ09ORklHIE5TU19DRkxBR1MgTlNTX0xJQlMgRU5BQkxFX1NN SU1FX1RSVUUgRU5BQkxFX1NNSU1FX0ZBTFNFIE1BTlVBTF9OU1BSX0NGTEFHUyBNQU5VQUxfTlNQ Ul9MSUJTIE1BTlVBTF9OU1NfQ0ZMQUdTIE1BTlVBTF9OU1NfTElCUyBTRU5ETUFJTCBDQU1FTF9M T0NLX0hFTFBFUl9VU0VSIENBTUVMX0xPQ0tfSEVMUEVSX0dST1VQIEVOQUJMRV9JUHY2X1RSVUUg RU5BQkxFX0lQdjZfRkFMU0UgRU5BQkxFX05OVFBfVFJVRSBFTkFCTEVfTk5UUF9GQUxTRSBFTkFC TEVfSU1BUFBfVFJVRSBFTkFCTEVfSU1BUFBfRkFMU0UgUFRIUkVBRF9MSUIgVEhSRUFEU19MSUJT IFRIUkVBRFNfQ0ZMQUdTIEVOQUJMRV9LUkI1X1RSVUUgRU5BQkxFX0tSQjVfRkFMU0UgS1JCNV9D RkxBR1MgS1JCNV9MREZMQUdTIEtSQjRfQ0ZMQUdTIEtSQjRfTERGTEFHUyBQVVJJRlkgRU5BQkxF X1BVUklGWV9UUlVFIEVOQUJMRV9QVVJJRllfRkFMU0UgTERBUF9DRkxBR1MgTERBUF9MSUJTIEVO QUJMRV9MREFQX1RSVUUgRU5BQkxFX0xEQVBfRkFMU0UgR0xJQl9SRVFVSVJFRCBMSUJCT05PQk9f UkVRVUlSRUQgT1JCSVRfUkVRVUlSRUQgR0xJQl9DRkxBR1MgR0xJQl9MSUJTIEdMSUJfR0VOTUFS U0hBTCBHT0JKRUNUX1FVRVJZIEdMSUJfTUtFTlVNUyBXQVJOX0NGTEFHUyBPUkJJVF9DT05GSUcg T1JCSVRfSURMIE9SQklUX0NGTEFHUyBPUkJJVF9MSUJTIElETF9JTkNMVURFUyBHTk9NRV9GVUxM X0NGTEFHUyBHTk9NRV9GVUxMX0xJQlMgRV9EQVRBX1NFUlZFUl9DRkxBR1MgRV9EQVRBX1NFUlZF Ul9MSUJTIEVfREFUQV9TRVJWRVJfVUlfQ0ZMQUdTIEVfREFUQV9TRVJWRVJfVUlfTElCUyBFVk9M VVRJT05fQUREUkVTU0JPT0tfQ0ZMQUdTIEVWT0xVVElPTl9BRERSRVNTQk9PS19MSUJTIEVWT0xV VElPTl9DQUxFTkRBUl9DRkxBR1MgRVZPTFVUSU9OX0NBTEVOREFSX0xJQlMgU09VUFRFTVBfQ0ZM QUdTIFNPVVBURU1QX0xJQlMgTElCU09VUF9SRVFVSVJFRCBMSUJTT1VQIFNPVVBfQ0ZMQUdTIFNP VVBfTElCUyBDQU1FTF9DRkxBR1MgQ0FNRUxfTElCUyBDQU1FTF9HUk9VUFdJU0VfQ0ZMQUdTIENB TUVMX0dST1VQV0lTRV9MSUJTIHByaXZkYXRhZGlyIHByaXZpbmNsdWRlZGlyIHByaXZsaWJkaXIg aWRsZGlyIGltYWdlc2RpciBzZXJ2ZXJkaXIgZXh0ZW5zaW9uZGlyIGdsYWRlZGlyIHdlYXRoZXJk YXRhZGlyIGNhbWVsX3Byb3ZpZGVyZGlyIElOVEVSRkFDRV9WRVJTSU9OIEVWT19TVUJTVF9TRVJW RVJfUlVMRSBFVk9fTkFNRV9TRVJWRVJfUlVMRSBHQ09ORlRPT0wgR0NPTkZfU0NIRU1BX0NPTkZJ R19TT1VSQ0UgR0NPTkZfU0NIRU1BX0ZJTEVfRElSIEdDT05GX1NDSEVNQVNfSU5TVEFMTF9UUlVF IEdDT05GX1NDSEVNQVNfSU5TVEFMTF9GQUxTRSBIVE1MX0RJUiBFTkFCTEVfR1RLX0RPQ19UUlVF IEVOQUJMRV9HVEtfRE9DX0ZBTFNFIEdUS19ET0NfVVNFX0xJQlRPT0xfVFJVRSBHVEtfRE9DX1VT RV9MSUJUT09MX0ZBTFNFIHN1YmRpcnMgTElCT0JKUyBMVExJQk9CSlMnDQorIGFjX3N1YnN0X2Zp bGVzPSdFVk9fTUFSU0hBTF9SVUxFJw0KIEBAIC0yMzQ2MSw2ICsyMzQ2MSwxMyBAQA0KICAgICAg RExfTElCPScnDQpAQCAtNDIsMiArNDgsMTIgQEANCiAgDQogIGV4dGVuc2lvbmRpcj0nJHtsaWJk aXJ9Jy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItJEFQSV9WRVJTSU9OL2V4dGVuc2lvbnMNCitAQCAt MzE2MzUsOCArMzE2NDEsNyBAQA0KKyANCisgDQorLXN1YmRpcnM9IiRzdWJkaXJzIGxpYmRiL2Rp c3QiDQorIA0KKyANCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVz IE1ha2VmaWxlIGV2b2x1dGlvbi1kYXRhLXNlcnZlci5wYyBhZGRyZXNzYm9vay9NYWtlZmlsZSBh ZGRyZXNzYm9vay9pZGwvTWFrZWZpbGUgYWRkcmVzc2Jvb2svbGliZWJvb2svTWFrZWZpbGUgYWRk cmVzc2Jvb2svbGliZWJvb2svbGliZWJvb2sucGMgYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay9N YWtlZmlsZSBhZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL2xpYmVkYXRhLWJvb2sucGMgYWRkcmVz c2Jvb2svYmFja2VuZHMvTWFrZWZpbGUgYWRkcmVzc2Jvb2svYmFja2VuZHMvZmlsZS9NYWtlZmls ZSBhZGRyZXNzYm9vay9iYWNrZW5kcy92Y2YvTWFrZWZpbGUgYWRkcmVzc2Jvb2svYmFja2VuZHMv bGRhcC9NYWtlZmlsZSBhZGRyZXNzYm9vay9iYWNrZW5kcy9ncm91cHdpc2UvTWFrZWZpbGUgYWRk cmVzc2Jvb2svdGVzdHMvTWFrZWZpbGUgYWRkcmVzc2Jvb2svdGVzdHMvZWJvb2svTWFrZWZpbGUg YWRkcmVzc2Jvb2svdGVzdHMvdmNhcmQvTWFrZWZpbGUgYXJ0L01ha2VmaWxlIGNhbGVuZGFyL01h a2VmaWxlIGNhbGVuZGFyL2lkbC9NYWtlZmlsZSBjYWxlbmRhci9saWJlY2FsL01ha2VmaWxlIGNh bGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYyBjYWxlbmRhci9saWJlZGF0YS1jYWwvTWFrZWZpbGUg Y2FsZW5kYXIvbGliZWRhdGEtY2FsL2xpYmVkYXRhLWNhbC5wYyBjYWxlbmRhci9iYWNrZW5kcy9N YWtlZmlsZSBjYWxlbmRhci9iYWNrZW5kcy9maWxlL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRz L2dyb3Vwd2lzZS9NYWtlZmlsZSBjYWxlbmRhci9iYWNrZW5kcy9odHRwL01ha2VmaWxlIGNhbGVu ZGFyL2JhY2tlbmRzL2NvbnRhY3RzL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRzL3dlYXRoZXIv TWFrZWZpbGUgY2FsZW5kYXIvdGVzdHMvTWFrZWZpbGUgY2FsZW5kYXIvdGVzdHMvZWNhbC9NYWtl ZmlsZSBjYW1lbC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvTWFrZWZpbGUgY2FtZWwvcHJvdmlk ZXJzL2dyb3Vwd2lzZS9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvaW1hcC9NYWtlZmlsZSBjYW1l bC9wcm92aWRlcnMvaW1hcHAvTWFrZWZpbGUgY2FtZWwvcHJvdmlkZXJzL2ltYXA0L01ha2VmaWxl IGNhbWVsL3Byb3ZpZGVycy9sb2NhbC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvbm50cC9NYWtl ZmlsZSBjYW1lbC9wcm92aWRlcnMvcG9wMy9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvc2VuZG1h aWwvTWFrZWZpbGUgY2FtZWwvcHJvdmlkZXJzL3NtdHAvTWFrZWZpbGUgY2FtZWwvdGVzdHMvTWFr ZWZpbGUgY2FtZWwvdGVzdHMvZm9sZGVyL01ha2VmaWxlIGNhbWVsL3Rlc3RzL2xpYi9NYWtlZmls ZSBjYW1lbC90ZXN0cy9tZXNzYWdlL01ha2VmaWxlIGNhbWVsL3Rlc3RzL21pbWUtZmlsdGVyL01h a2VmaWxlIGNhbWVsL3Rlc3RzL21pc2MvTWFrZWZpbGUgY2FtZWwvdGVzdHMvc21pbWUvTWFrZWZp bGUgY2FtZWwvdGVzdHMvc3RyZWFtL01ha2VmaWxlIGNhbWVsL2NhbWVsLnBjIGNhbWVsL2NhbWVs LXByb3ZpZGVyLnBjIGxpYmRiL01ha2VmaWxlIGxpYmVkYXRhc2VydmVyL01ha2VmaWxlIGxpYmVk YXRhc2VydmVyL2xpYmVkYXRhc2VydmVyLnBjIGxpYmVkYXRhc2VydmVydWkvTWFrZWZpbGUgbGli ZWRhdGFzZXJ2ZXJ1aS9saWJlZGF0YXNlcnZlcnVpLnBjIHNlcnZlcnMvTWFrZWZpbGUgc2VydmVy cy9ncm91cHdpc2UvTWFrZWZpbGUgc2VydmVycy9ncm91cHdpc2UvbGliZWdyb3Vwd2lzZS5wYyBz ZXJ2ZXJzL2V4Y2hhbmdlL01ha2VmaWxlIHNlcnZlcnMvZXhjaGFuZ2UveG50bG0vTWFrZWZpbGUg c2VydmVycy9leGNoYW5nZS9saWIvTWFrZWZpbGUgc2VydmVycy9leGNoYW5nZS9zdG9yYWdlL01h a2VmaWxlIHNlcnZlcnMvZXhjaGFuZ2Uvc3RvcmFnZS9saWJleGNoYW5nZS1zdG9yYWdlLnBjIHNy Yy9NYWtlZmlsZSBkb2NzL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL01ha2VmaWxlIGRvY3MvcmVm ZXJlbmNlL2FkZHJlc3Nib29rL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL2FkZHJlc3Nib29rL2xp YmVib29rL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL2NhbGVuZGFyL01ha2VmaWxlIGRvY3MvcmVm ZXJlbmNlL2NhbGVuZGFyL2xpYmVjYWwvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvY2FsZW5kYXIv bGliZWRhdGEtY2FsL01ha2VmaWxlIGRvY3MvcmVmZXJlbmNlL2xpYmVkYXRhc2VydmVyL01ha2Vm aWxlIHBvL01ha2VmaWxlLmluIg0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19jb25maWdfZmlsZXM9IiRhY19jb25m aWdfZmlsZXMgTWFrZWZpbGUgZXZvbHV0aW9uLWRhdGEtc2VydmVyLnBjIGFkZHJlc3Nib29rL01h a2VmaWxlIGFkZHJlc3Nib29rL2lkbC9NYWtlZmlsZSBhZGRyZXNzYm9vay9saWJlYm9vay9NYWtl ZmlsZSBhZGRyZXNzYm9vay9saWJlYm9vay9saWJlYm9vay5wYyBhZGRyZXNzYm9vay9saWJlZGF0 YS1ib29rL01ha2VmaWxlIGFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svbGliZWRhdGEtYm9vay5w YyBhZGRyZXNzYm9vay9iYWNrZW5kcy9NYWtlZmlsZSBhZGRyZXNzYm9vay9iYWNrZW5kcy9maWxl L01ha2VmaWxlIGFkZHJlc3Nib29rL2JhY2tlbmRzL3ZjZi9NYWtlZmlsZSBhZGRyZXNzYm9vay9i YWNrZW5kcy9sZGFwL01ha2VmaWxlIGFkZHJlc3Nib29rL2JhY2tlbmRzL2dyb3Vwd2lzZS9NYWtl ZmlsZSBhZGRyZXNzYm9vay90ZXN0cy9NYWtlZmlsZSBhZGRyZXNzYm9vay90ZXN0cy9lYm9vay9N YWtlZmlsZSBhZGRyZXNzYm9vay90ZXN0cy92Y2FyZC9NYWtlZmlsZSBhcnQvTWFrZWZpbGUgY2Fs ZW5kYXIvTWFrZWZpbGUgY2FsZW5kYXIvaWRsL01ha2VmaWxlIGNhbGVuZGFyL2xpYmVjYWwvTWFr ZWZpbGUgY2FsZW5kYXIvbGliZWNhbC9saWJlY2FsLnBjIGNhbGVuZGFyL2xpYmVkYXRhLWNhbC9N YWtlZmlsZSBjYWxlbmRhci9saWJlZGF0YS1jYWwvbGliZWRhdGEtY2FsLnBjIGNhbGVuZGFyL2Jh Y2tlbmRzL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUgY2FsZW5kYXIv YmFja2VuZHMvZ3JvdXB3aXNlL01ha2VmaWxlIGNhbGVuZGFyL2JhY2tlbmRzL2h0dHAvTWFrZWZp bGUgY2FsZW5kYXIvYmFja2VuZHMvY29udGFjdHMvTWFrZWZpbGUgY2FsZW5kYXIvYmFja2VuZHMv d2VhdGhlci9NYWtlZmlsZSBjYWxlbmRhci90ZXN0cy9NYWtlZmlsZSBjYWxlbmRhci90ZXN0cy9l Y2FsL01ha2VmaWxlIGNhbWVsL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9NYWtlZmlsZSBjYW1l bC9wcm92aWRlcnMvZ3JvdXB3aXNlL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9pbWFwL01ha2Vm aWxlIGNhbWVsL3Byb3ZpZGVycy9pbWFwcC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvaW1hcDQv TWFrZWZpbGUgY2FtZWwvcHJvdmlkZXJzL2xvY2FsL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9u bnRwL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVycy9wb3AzL01ha2VmaWxlIGNhbWVsL3Byb3ZpZGVy cy9zZW5kbWFpbC9NYWtlZmlsZSBjYW1lbC9wcm92aWRlcnMvc210cC9NYWtlZmlsZSBjYW1lbC90 ZXN0cy9NYWtlZmlsZSBjYW1lbC90ZXN0cy9mb2xkZXIvTWFrZWZpbGUgY2FtZWwvdGVzdHMvbGli L01ha2VmaWxlIGNhbWVsL3Rlc3RzL21lc3NhZ2UvTWFrZWZpbGUgY2FtZWwvdGVzdHMvbWltZS1m aWx0ZXIvTWFrZWZpbGUgY2FtZWwvdGVzdHMvbWlzYy9NYWtlZmlsZSBjYW1lbC90ZXN0cy9zbWlt ZS9NYWtlZmlsZSBjYW1lbC90ZXN0cy9zdHJlYW0vTWFrZWZpbGUgY2FtZWwvY2FtZWwucGMgY2Ft ZWwvY2FtZWwtcHJvdmlkZXIucGMgbGliZWRhdGFzZXJ2ZXIvTWFrZWZpbGUgbGliZWRhdGFzZXJ2 ZXIvbGliZWRhdGFzZXJ2ZXIucGMgbGliZWRhdGFzZXJ2ZXJ1aS9NYWtlZmlsZSBsaWJlZGF0YXNl cnZlcnVpL2xpYmVkYXRhc2VydmVydWkucGMgc2VydmVycy9NYWtlZmlsZSBzZXJ2ZXJzL2dyb3Vw d2lzZS9NYWtlZmlsZSBzZXJ2ZXJzL2dyb3Vwd2lzZS9saWJlZ3JvdXB3aXNlLnBjIHNlcnZlcnMv ZXhjaGFuZ2UvTWFrZWZpbGUgc2VydmVycy9leGNoYW5nZS94bnRsbS9NYWtlZmlsZSBzZXJ2ZXJz L2V4Y2hhbmdlL2xpYi9NYWtlZmlsZSBzZXJ2ZXJzL2V4Y2hhbmdlL3N0b3JhZ2UvTWFrZWZpbGUg c2VydmVycy9leGNoYW5nZS9zdG9yYWdlL2xpYmV4Y2hhbmdlLXN0b3JhZ2UucGMgc3JjL01ha2Vm aWxlIGRvY3MvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2Uv YWRkcmVzc2Jvb2svTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvYWRkcmVzc2Jvb2svbGliZWJvb2sv TWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvY2FsZW5kYXIvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2Uv Y2FsZW5kYXIvbGliZWNhbC9NYWtlZmlsZSBkb2NzL3JlZmVyZW5jZS9jYWxlbmRhci9saWJlZGF0 YS1jYWwvTWFrZWZpbGUgZG9jcy9yZWZlcmVuY2UvbGliZWRhdGFzZXJ2ZXIvTWFrZWZpbGUgcG8v TWFrZWZpbGUuaW4iDQorIGNhdCA+Y29uZmNhY2hlIDw8XF9BQ0VPRg0KKyAjIFRoaXMgZmlsZSBp cyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUNCklu ZGV4OiBmaWxlcy9wYXRjaC1vZmZpY2FsLXNsZWVweWNhdA0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6 IGZpbGVzL3BhdGNoLW9mZmljYWwtc2xlZXB5Y2F0DQpkaWZmIC1OIGZpbGVzL3BhdGNoLW9mZmlj YWwtc2xlZXB5Y2F0DQotLS0gZmlsZXMvcGF0Y2gtb2ZmaWNhbC1zbGVlcHljYXQJMjAgTWFyIDIw MDUgMTM6MTQ6MDMgLTAwMDAJMS4xDQorKysgL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAg LTAwMDANCkBAIC0xLDQ4MCArMCwwIEBADQotLS0tIGxpYmRiL2ZpbGVvcHMvZm9wX3V0aWwuYy5v cmlnCVRodSBOb3YgMjAgMjM6MTM6MzAgMjAwMw0KLSsrKyBsaWJkYi9maWxlb3BzL2ZvcF91dGls LmMJRnJpIE1hciAxOCAyMDozMToxMCAyMDA1DQotQEAgLTQwLDcgKzQwLDcgQEANCi0gCXVfaW50 MzJfdCBfX2xvY2t2YWw7CQkJCQkJXA0KLSAJCQkJCQkJCQlcDQotIAlpZiAoTE9DS0lOR19PTigo RU5WKSkpIHsJCQkJCVwNCi0tCQlfX2xvY2t2YWwgPSAwOwkJCQkJCVwNCi0rCQlfX2xvY2t2YWwg PSAxOwkJCQkJCVwNCi0gCQlfX2RidC5kYXRhID0gJl9fbG9ja3ZhbDsJCQkJXA0KLSAJCV9fZGJ0 LnNpemUgPSBzaXplb2YoX19sb2NrdmFsKTsJCQkJXA0KLSAJCWlmICgocmV0ID0gKEVOViktPmxv Y2tfZ2V0KChFTlYpLCAoSUQpLAkJCVwNCi0tLS0gbGliZGIvZGJpbmMvbXAuaC5vcmlnCVRodSBO b3YgMjAgMjM6MTM6MTcgMjAwMw0KLSsrKyBsaWJkYi9kYmluYy9tcC5oCUZyaSBNYXIgMTggMjA6 MzE6MTQgMjAwNQ0KLUBAIC0xNDksNiArMTQ5LDEzIEBADQotIAkgKiByZWdpb24gbG9jaykuDQot IAkgKi8NCi0gCURCX01QT09MX1NUQVQgc3RhdDsJCS8qIFBlci1jYWNoZSBtcG9vbCBzdGF0aXN0 aWNzLiAqLw0KLSsgDQotKwkgLyoNCi0rCSAgKiBXZSB0cmFjayBwYWdlIHB1dHMgc28gdGhhdCB3 ZSBjYW4gZGVjaWRlIHdoZW4gYWxsb2NhdGlvbiBpcyBuZXZlcg0KLSsJICAqIGdvaW5nIHRvIHN1 Y2NlZWQuICBXZSBkb24ndCBsb2NrIHRoZSBmaWVsZCwgYWxsIHdlIGNhcmUgYWJvdXQgaXMNCi0r CSAgKiBpZiBpdCBjaGFuZ2VzLg0KLSsJICAqLw0KLSsJIHVfaW50MzJfdCAgcHV0X2NvdW50ZXI7 ICAgICAgICAgICAgICAgIC8qIENvdW50IG9mIHBhZ2UgcHV0IGNhbGxzLiAqLw0KLSB9Ow0KLSAN Ci0gc3RydWN0IF9fZGJfbXBvb2xfaGFzaCB7DQotLS0tIGxpYmRiL21wL21wX2ZwdXQuYy5vcmln CVRodSBOb3YgMjAgMjM6MTM6MzYgMjAwMw0KLSsrKyBsaWJkYi9tcC9tcF9mcHV0LmMJRnJpIE1h ciAxOCAyMDozMToxNCAyMDA1DQotQEAgLTE5LDYgKzE5LDggQEANCi0gI2luY2x1ZGUgImRiaW5j L2RiX3NoYXNoLmgiDQotICNpbmNsdWRlICJkYmluYy9tcC5oIg0KLSANCi0rc3RhdGljIHZvaWQg X19tZW1wX3Jlc2V0X2xydSBfX1AoKERCX0VOViAqLCBSRUdJTkZPICopKTsNCi0rDQotIC8qDQot ICAqIF9fbWVtcF9mcHV0IC0tDQotICAqCU1wb29sIGZpbGUgcHV0IGZ1bmN0aW9uLg0KLUBAIC0x OTgsNSArMjAwLDU2IEBADQotIA0KLSAJTVVURVhfVU5MT0NLKGRiZW52LCAmaHAtPmhhc2hfbXV0 ZXgpOw0KLSANCi0rCS8qDQotKwkgKiBPbiBldmVyeSBidWZmZXIgcHV0IHdlIHVwZGF0ZSB0aGUg YnVmZmVyIGdlbmVyYXRpb24gbnVtYmVyIGFuZCBjaGVjaw0KLSsJICogZm9yIHdyYXBhcm91bmQu DQotKwkgKi8NCi0rCWlmICgrK2NfbXAtPmxydV9jb3VudCA9PSBVSU5UMzJfVF9NQVgpDQotKwkJ X19tZW1wX3Jlc2V0X2xydShkYmVudiwgZGJtcC0+cmVnaW5mbyk7DQotKw0KLSAJcmV0dXJuICgw KTsNCi0rfQ0KLSsNCi0rLyoNCi0rICogX19tZW1wX3Jlc2V0X2xydSAtLQ0KLSsgKglSZXNldCB0 aGUgY2FjaGUgTFJVIGNvdW50ZXIuDQotKyAqLw0KLStzdGF0aWMgdm9pZA0KLStfX21lbXBfcmVz ZXRfbHJ1KGRiZW52LCBtZW1yZWcpDQotKwlEQl9FTlYgKmRiZW52Ow0KLSsJUkVHSU5GTyAqbWVt cmVnOw0KLSt7DQotKwlCSCAqYmhwOw0KLSsJREJfTVBPT0xfSEFTSCAqaHA7DQotKwlNUE9PTCAq Y19tcDsNCi0rCWludCBidWNrZXQ7DQotKw0KLSsJY19tcCA9IG1lbXJlZy0+cHJpbWFyeTsNCi0r DQotKwkvKg0KLSsJICogVXBkYXRlIHRoZSBjb3VudGVyIHNvIGFsbCBmdXR1cmUgYWxsb2NhdGlv bnMgd2lsbCBzdGFydCBhdCB0aGUNCi0rCSAqIGJvdHRvbS4NCi0rCSAqLw0KLSsJY19tcC0+bHJ1 X2NvdW50IC09IE1QT09MX0JBU0VfREVDUkVNRU5UOw0KLSsNCi0rCS8qIEFkanVzdCB0aGUgcHJp b3JpdHkgb2YgZXZlcnkgYnVmZmVyIGluIHRoZSBzeXN0ZW0uICovDQotKwlmb3IgKGhwID0gUl9B RERSKG1lbXJlZywgY19tcC0+aHRhYiksDQotKwkgICAgYnVja2V0ID0gMDsgYnVja2V0IDwgY19t cC0+aHRhYl9idWNrZXRzOyArK2hwLCArK2J1Y2tldCkgew0KLSsJCS8qDQotKwkJICogU2tpcCBl bXB0eSBidWNrZXRzLg0KLSsJCSAqDQotKwkJICogV2UgY2FuIGNoZWNrIGZvciBlbXB0eSBidWNr ZXRzIGJlZm9yZSBsb2NraW5nIGFzIHdlDQotKwkJICogb25seSBjYXJlIGlmIHRoZSBwb2ludGVy IGlzIHplcm8gb3Igbm9uLXplcm8uDQotKwkJICovDQotKwkJaWYgKFNIX1RBSUxRX0ZJUlNUKCZo cC0+aGFzaF9idWNrZXQsIF9fYmgpID09IE5VTEwpDQotKwkJCWNvbnRpbnVlOw0KLSsNCi0rCQlN VVRFWF9MT0NLKGRiZW52LCAmaHAtPmhhc2hfbXV0ZXgpOw0KLSsJCWZvciAoYmhwID0gU0hfVEFJ TFFfRklSU1QoJmhwLT5oYXNoX2J1Y2tldCwgX19iaCk7DQotKwkJICAgIGJocCAhPSBOVUxMOyBi aHAgPSBTSF9UQUlMUV9ORVhUKGJocCwgaHEsIF9fYmgpKQ0KLSsJCQlpZiAoYmhwLT5wcmlvcml0 eSAhPSBVSU5UMzJfVF9NQVggJiYNCi0rCQkJICAgIGJocC0+cHJpb3JpdHkgPiBNUE9PTF9CQVNF X0RFQ1JFTUVOVCkNCi0rCQkJCWJocC0+cHJpb3JpdHkgLT0gTVBPT0xfQkFTRV9ERUNSRU1FTlQ7 DQotKwkJTVVURVhfVU5MT0NLKGRiZW52LCAmaHAtPmhhc2hfbXV0ZXgpOw0KLSsJfQ0KLSB9DQot LS0tIGxpYmRiL21wL21wX2FsbG9jLmMub3JpZwlUaHUgTm92IDIwIDIzOjEzOjM2IDIwMDMNCi0r KysgbGliZGIvbXAvbXBfYWxsb2MuYwlGcmkgTWFyIDE4IDIwOjMxOjE0IDIwMDUNCi1AQCAtMjUs NyArMjUsNiBAQA0KLSB9IEhTOw0KLSANCi0gc3RhdGljIHZvaWQgX19tZW1wX2JhZF9idWZmZXIg X19QKChEQl9NUE9PTF9IQVNIICopKTsNCi0tc3RhdGljIHZvaWQgX19tZW1wX3Jlc2V0X2xydSBf X1AoKERCX0VOViAqLCBSRUdJTkZPICosIE1QT09MICopKTsNCi0gDQotIC8qDQotICAqIF9fbWVt cF9hbGxvYyAtLQ0KLUBAIC01MCw4ICs0OSw5IEBADQotIAlNUE9PTCAqY19tcDsNCi0gCU1QT09M RklMRSAqYmhfbWZwOw0KLSAJc2l6ZV90IGZyZWVkX3NwYWNlOw0KLS0JdV9pbnQzMl90IGJ1Y2tl dHMsIGJ1ZmZlcnMsIGhpZ2hfcHJpb3JpdHksIG1heF9uYSwgcHJpb3JpdHk7DQotLQlpbnQgYWdn cmVzc2l2ZSwgcmV0Ow0KLSsJdV9pbnQzMl90IGJ1Y2tldHMsIGJ1ZmZlcnMsIGhpZ2hfcHJpb3Jp dHksIHByaW9yaXR5LCBwdXRfY291bnRlcjsNCi0rCXVfaW50MzJfdCB0b3RhbF9idWNrZXRzOw0K LSsJaW50IGFnZ3Jlc3NpdmUsIGdpdmV1cCwgcmV0Ow0KLSAJdm9pZCAqcDsNCi0gDQotIAlkYmVu diA9IGRibXAtPmRiZW52Ow0KLUBAIC01OSwxOCArNTksMTMgQEANCi0gCWRiaHQgPSBSX0FERFIo bWVtcmVnLCBjX21wLT5odGFiKTsNCi0gCWhwX2VuZCA9ICZkYmh0W2NfbXAtPmh0YWJfYnVja2V0 c107DQotIA0KLS0JYnVja2V0cyA9IGJ1ZmZlcnMgPSAwOw0KLS0JYWdncmVzc2l2ZSA9IDA7DQot KwlidWNrZXRzID0gYnVmZmVycyA9IHB1dF9jb3VudGVyID0gdG90YWxfYnVja2V0cyA9IDA7DQot KwlhZ2dyZXNzaXZlID0gZ2l2ZXVwID0gMDsNCi0rCWhwX3RtcCA9IE5VTEw7DQotIA0KLSAJY19t cC0+c3RhdC5zdF9hbGxvYysrOw0KLSANCi0gCS8qDQotLQkgKiBHZXQgYWdncmVzc2l2ZSBpZiB3 ZSd2ZSB0cmllZCB0byBmbHVzaCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGFzIGFyZQ0KLS0JICogaW4g dGhlIHN5c3RlbSB3aXRob3V0IGZpbmRpbmcgc3BhY2UuDQotLQkgKi8NCi0tCW1heF9uYSA9IDUg KiBjX21wLT5odGFiX2J1Y2tldHM7DQotLQ0KLS0JLyoNCi0gCSAqIElmIHdlJ3JlIGFsbG9jYXRp bmcgYSBidWZmZXIsIGFuZCB0aGUgb25lIHdlJ3JlIGRpc2NhcmRpbmcgaXMgdGhlDQotIAkgKiBz YW1lIHNpemUsIHdlIGRvbid0IHdhbnQgdG8gd2FzdGUgdGhlIHRpbWUgdG8gcmUtaW50ZWdyYXRl IGl0IGludG8NCi0gCSAqIHRoZSBzaGFyZWQgbWVtb3J5IGZyZWUgbGlzdC4gIElmIHRoZSBEQl9N UE9PTEZJTEUgYXJndW1lbnQgaXNuJ3QNCi1AQCAtODEsMTkgKzc2LDEwIEBADQotIAkJbGVuID0g KHNpemVvZihCSCkgLSBzaXplb2YodV9pbnQ4X3QpKSArIG1mcC0+c3RhdC5zdF9wYWdlc2l6ZTsN Ci0gDQotIAlSX0xPQ0soZGJlbnYsIG1lbXJlZyk7DQotLQ0KLS0JLyoNCi0tCSAqIE9uIGV2ZXJ5 IGJ1ZmZlciBhbGxvY2F0aW9uIHdlIHVwZGF0ZSB0aGUgYnVmZmVyIGdlbmVyYXRpb24gbnVtYmVy DQotLQkgKiBhbmQgY2hlY2sgZm9yIHdyYXBhcm91bmQuDQotLQkgKi8NCi0tCWlmICgrK2NfbXAt PmxydV9jb3VudCA9PSBVSU5UMzJfVF9NQVgpDQotLQkJX19tZW1wX3Jlc2V0X2xydShkYmVudiwg bWVtcmVnLCBjX21wKTsNCi0tDQotIAkvKg0KLSAJICogQW55dGhpbmcgbmV3ZXIgdGhhbiAxLzEw dGggb2YgdGhlIGJ1ZmZlciBwb29sIGlzIGlnbm9yZWQgZHVyaW5nDQotIAkgKiBhbGxvY2F0aW9u ICh1bmxlc3MgYWxsb2NhdGlvbiBzdGFydHMgZmFpbGluZykuDQotIAkgKi8NCi0tCURCX0FTU0VS VChjX21wLT5scnVfY291bnQgPiBjX21wLT5zdGF0LnN0X3BhZ2VzIC8gMTApOw0KLSAJaGlnaF9w cmlvcml0eSA9IGNfbXAtPmxydV9jb3VudCAtIGNfbXAtPnN0YXQuc3RfcGFnZXMgLyAxMDsNCi0g DQotIAkvKg0KLUBAIC0xMjAsMTAgKzEwNiwxMSBAQA0KLSAJCSAqIFdlJ3JlIG5vdCBob2xkaW5n IHRoZSByZWdpb24gbG9ja2VkIGhlcmUsIHRoZXNlIHN0YXRpc3RpY3MNCi0gCQkgKiBjYW4ndCBi ZSB0cnVzdGVkLg0KLSAJCSAqLw0KLS0JCWlmIChidWNrZXRzICE9IDApIHsNCi0tCQkJaWYgKGJ1 Y2tldHMgPiBjX21wLT5zdGF0LnN0X2FsbG9jX21heF9idWNrZXRzKQ0KLS0JCQkJY19tcC0+c3Rh dC5zdF9hbGxvY19tYXhfYnVja2V0cyA9IGJ1Y2tldHM7DQotLQkJCWNfbXAtPnN0YXQuc3RfYWxs b2NfYnVja2V0cyArPSBidWNrZXRzOw0KLSsJCXRvdGFsX2J1Y2tldHMgKz0gYnVja2V0czsNCi0r CQlpZiAodG90YWxfYnVja2V0cyAhPSAwKSB7DQotKwkJCWlmICh0b3RhbF9idWNrZXRzID4gY19t cC0+c3RhdC5zdF9hbGxvY19tYXhfYnVja2V0cykNCi0rCQkJCWNfbXAtPnN0YXQuc3RfYWxsb2Nf bWF4X2J1Y2tldHMgPSB0b3RhbF9idWNrZXRzOw0KLSsJCQljX21wLT5zdGF0LnN0X2FsbG9jX2J1 Y2tldHMgKz0gdG90YWxfYnVja2V0czsNCi0gCQl9DQotIAkJaWYgKGJ1ZmZlcnMgIT0gMCkgew0K LSAJCQlpZiAoYnVmZmVycyA+IGNfbXAtPnN0YXQuc3RfYWxsb2NfbWF4X3BhZ2VzKQ0KLUBAIC0x MzEsNiArMTE4LDEyIEBADQotIAkJCWNfbXAtPnN0YXQuc3RfYWxsb2NfcGFnZXMgKz0gYnVmZmVy czsNCi0gCQl9DQotIAkJcmV0dXJuICgwKTsNCi0rCX0gZWxzZSBpZiAoZ2l2ZXVwIHx8IGNfbXAt PnN0YXQuc3RfcGFnZXMgPT0gMCkgew0KLSsJCVJfVU5MT0NLKGRiZW52LCBtZW1yZWcpOw0KLSsN Ci0rCQlfX2RiX2VycihkYmVudiwNCi0rCQkgICAgInVuYWJsZSB0byBhbGxvY2F0ZSBzcGFjZSBm cm9tIHRoZSBidWZmZXIgY2FjaGUiKTsNCi0rCQlyZXR1cm4gKHJldCk7DQotIAl9DQotIA0KLSAJ LyoNCi1AQCAtMTM4LDI2ICsxMzEsMjQgQEANCi0gCSAqIHdlIG5lZWQuICBSZXNldCBvdXIgZnJl ZS1zcGFjZSBjb3VudGVyLg0KLSAJICovDQotIAlmcmVlZF9zcGFjZSA9IDA7DQotKwl0b3RhbF9i dWNrZXRzICs9IGJ1Y2tldHM7DQotKwlidWNrZXRzID0gMDsNCi0gDQotIAkvKg0KLSAJICogV2Fs ayB0aGUgaGFzaCBidWNrZXRzIGFuZCBmaW5kIHRoZSBuZXh0IHR3byB3aXRoIHBvdGVudGlhbGx5 IHVzZWZ1bA0KLSAJICogYnVmZmVycy4gIEZyZWUgdGhlIGJ1ZmZlciB3aXRoIHRoZSBsb3dlc3Qg cHJpb3JpdHkgZnJvbSB0aGUgYnVja2V0cycNCi0gCSAqIGNoYWlucy4NCi0gCSAqLw0KLS0JZm9y IChocF90bXAgPSBOVUxMOzspIHsNCi0rCWZvciAoOzspIHsNCi0rCQkvKiBBbGwgcGFnZXMgaGF2 ZSBiZWVuIGZyZWVkLCBtYWtlIG9uZSBsYXN0IHRyeSAqLw0KLSsJCWlmIChjX21wLT5zdGF0LnN0 X3BhZ2VzID09IDApDQotKwkJCWdvdG8gYWxsb2M7DQotKw0KLSAJCS8qIENoZWNrIGZvciB3cmFw IGFyb3VuZC4gKi8NCi0gCQlocCA9ICZkYmh0W2NfbXAtPmxhc3RfY2hlY2tlZCsrXTsNCi0gCQlp ZiAoaHAgPj0gaHBfZW5kKSB7DQotIAkJCWNfbXAtPmxhc3RfY2hlY2tlZCA9IDA7DQotLQ0KLS0J CQkvKg0KLS0JCQkgKiBJZiB3ZSd2ZSBnb25lIHRocm91Z2ggYWxsIG9mIHRoZSBoYXNoIGJ1Y2tl dHMsIHRyeQ0KLS0JCQkgKiBhbiBhbGxvY2F0aW9uLiAgSWYgdGhlIGNhY2hlIGlzIHNtYWxsLCB0 aGUgb2xkIHBhZ2UNCi0tCQkJICogc2l6ZSBpcyBzbWFsbCwgYW5kIHRoZSBuZXcgcGFnZSBzaXpl IGlzIGxhcmdlLCB3ZQ0KLS0JCQkgKiBtaWdodCBoYXZlIGZyZWVkIGVub3VnaCBtZW1vcnkgKGJ1 dCBub3QgMyB0aW1lcyB0aGUNCi0tCQkJICogbWVtb3J5KS4NCi0tCQkJICovDQotLQkJCWdvdG8g YWxsb2M7DQotKwkJCWhwID0gJmRiaHRbY19tcC0+bGFzdF9jaGVja2VkKytdOw0KLSAJCX0NCi0g DQotIAkJLyoNCi1AQCAtMTcyLDM5ICsxNjMsNTkgQEANCi0gCQkvKg0KLSAJCSAqIFRoZSBmYWls dXJlIG1vZGUgaXMgd2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgYnVmZmVycyB3ZSBjYW4ndA0KLSAJ CSAqIHdyaXRlIG9yIHRoZXJlJ3Mgbm90IGVub3VnaCBtZW1vcnkgaW4gdGhlIHN5c3RlbS4gIFdl IGRvbid0DQotLQkJICogaGF2ZSBhIG1ldHJpYyBmb3IgZGVjaWRpbmcgaWYgYWxsb2NhdGlvbiBo YXMgbm8gcG9zc2libGUgd2F5DQotLQkJICogdG8gc3VjY2VlZCwgc28gd2UgZG9uJ3QgZXZlciBm YWlsLCB3ZSBhc3N1bWUgbWVtb3J5IHdpbGwgYmUNCi0tCQkgKiBhdmFpbGFibGUgaWYgd2Ugd2Fp dCBsb25nIGVub3VnaC4NCi0rCQkgKiBoYXZlIGEgd2F5IHRvIGtub3cgdGhhdCBhbGxvY2F0aW9u IGhhcyBubyB3YXkgdG8gc3VjY2VlZC4NCi0rCQkgKiBXZSBmYWlsIGlmIHRoZXJlIHdlcmUgbm8g cGFnZXMgcmV0dXJuZWQgdG8gdGhlIGNhY2hlIGFmdGVyDQotKwkJICogd2UndmUgYmVlbiB0cnlp bmcgZm9yIGEgcmVsYXRpdmVseSBsb25nIHRpbWUuDQotIAkJICoNCi0tCQkgKiBHZXQgYWdncmVz c2l2ZSBpZiB3ZSd2ZSB0cmllZCB0byBmbHVzaCA1IHRpbWVzIHRoZSBudW1iZXIgb2YNCi0tCQkg KiBoYXNoIGJ1Y2tldHMgYXMgYXJlIGluIHRoZSBzeXN0ZW0gLS0gaXQncyBwb3NzaWJsZSB3ZSBo YXZlDQotLQkJICogYmVlbiByZXBlYXRlZGx5IHRyeWluZyB0byBmbHVzaCB0aGUgc2FtZSBidWZm ZXJzLCBhbHRob3VnaA0KLS0JCSAqIGl0J3MgdW5saWtlbHkuICBBZ2dyZXNzaXZlIG1lYW5zOg0K LSsJCSAqIEdldCBhZ2dyZXNzaXZlIGlmIHdlJ3ZlIHRyaWVkIHRvIGZsdXNoIHRoZSBudW1iZXIg b2YgaGFzaA0KLSsJCSAqIGJ1Y2tldHMgYXMgYXJlIGluIHRoZSBzeXN0ZW0gYW5kIGhhdmUgbm90 IGZvdW5kIGFueSBtb3JlDQotKwkJICogc3BhY2UuICBBZ2dyZXNzaXZlIG1lYW5zOg0KLSAJCSAq DQotIAkJICogYTogc2V0IGEgZmxhZyB0byBhdHRlbXB0IHRvIGZsdXNoIGhpZ2ggcHJpb3JpdHkg YnVmZmVycyBhcw0KLSAJCSAqICAgIHdlbGwgYXMgb3RoZXIgYnVmZmVycy4NCi0gCQkgKiBiOiBz eW5jIHRoZSBtcG9vbCB0byBmb3JjZSBvdXQgcXVldWUgZXh0ZW50IHBhZ2VzLiAgV2hpbGUgd2UN Ci0gCQkgKiAgICBtaWdodCBub3QgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHdoYXQgd2Ugd2FudCBh bmQgZmx1c2hpbmcNCi0gCQkgKiAgICBpcyBleHBlbnNpdmUsIHdoeSBub3Q/DQotLQkJICogYzog c2xlZXAgZm9yIGEgc2Vjb25kIC0tIGhvcGVmdWxseSBzb21lb25lIGVsc2Ugd2lsbCBydW4gYW5k DQotLQkJICogICAgZnJlZSB1cCBzb21lIG1lbW9yeS4gIFRyeSB0byBhbGxvY2F0ZSBtZW1vcnkg dG9vLCBpbiBjYXNlDQotLQkJICogICAgdGhlIG90aGVyIHRocmVhZCByZXR1cm5zIGl0cyBtZW1v cnkgdG8gdGhlIHJlZ2lvbi4NCi0tCQkgKiBkOiBsb29rIGF0IGEgYnVmZmVyIGluIGV2ZXJ5IGhh c2ggYnVja2V0IHJhdGhlciB0aGFuIGNob29zZQ0KLSsJCSAqIGM6IGxvb2sgYXQgYSBidWZmZXIg aW4gZXZlcnkgaGFzaCBidWNrZXQgcmF0aGVyIHRoYW4gY2hvb3NlDQotIAkJICogICAgdGhlIG1v cmUgcHJlZmVyYWJsZSBvZiB0d28uDQotKwkJICogZDogc3RhcnQgdG8gdGhpbmsgYWJvdXQgZ2l2 aW5nIHVwLg0KLSsJCSAqDQotKwkJICogSWYgd2UgZ2V0IGhlcmUgdHdpY2UsIHNsZWVwIGZvciBh IHNlY29uZCwgaG9wZWZ1bGx5IHNvbWVvbmUNCi0rCQkgKiBlbHNlIHdpbGwgcnVuIGFuZCBmcmVl IHVwIHNvbWUgbWVtb3J5Lg0KLSsJCSAqDQotKwkJICogQWx3YXlzIHRyeSB0byBhbGxvY2F0ZSBt ZW1vcnkgdG9vLCBpbiBjYXNlIHNvbWUgb3RoZXIgdGhyZWFkDQotKwkJICogcmV0dXJucyBpdHMg bWVtb3J5IHRvIHRoZSByZWdpb24uDQotIAkJICoNCi0gCQkgKiAhISENCi0gCQkgKiBUaGlzIHRl c3QgaWdub3JlcyBwYXRob2xvZ2ljYWwgY2FzZXMgbGlrZSBubyBidWZmZXJzIGluIHRoZQ0KLSAJ CSAqIHN5c3RlbSAtLSB0aGF0IHNob3VsZG4ndCBiZSBwb3NzaWJsZS4NCi0gCQkgKi8NCi0tCQlp ZiAoKCsrYnVja2V0cyAlIG1heF9uYSkgPT0gMCkgew0KLS0JCQlhZ2dyZXNzaXZlID0gMTsNCi0t DQotKwkJaWYgKCgrK2J1Y2tldHMgJSBjX21wLT5odGFiX2J1Y2tldHMpID09IDApIHsNCi0rCQkJ aWYgKGZyZWVkX3NwYWNlID4gMCkNCi0rCQkJCWdvdG8gYWxsb2M7DQotIAkJCVJfVU5MT0NLKGRi ZW52LCBtZW1yZWcpOw0KLSANCi0tCQkJKHZvaWQpX19tZW1wX3N5bmNfaW50KA0KLS0JCQkgICAg ZGJlbnYsIE5VTEwsIDAsIERCX1NZTkNfQUxMT0MsIE5VTEwpOw0KLS0NCi0tCQkJKHZvaWQpX19v c19zbGVlcChkYmVudiwgMSwgMCk7DQotKwkJCXN3aXRjaCAoKythZ2dyZXNzaXZlKSB7DQotKwkJ CWNhc2UgMToNCi0rCQkJCWJyZWFrOw0KLSsJCQljYXNlIDI6DQotKwkJCQlwdXRfY291bnRlciA9 IGNfbXAtPnB1dF9jb3VudGVyOw0KLSsJCQkJLyogRkFMTFRIUk9VR0ggKi8NCi0rCQkJY2FzZSAz Og0KLSsJCQljYXNlIDQ6DQotKwkJCWNhc2UgNToNCi0rCQkJY2FzZSA2Og0KLSsJCQkJKHZvaWQp X19tZW1wX3N5bmNfaW50KA0KLSsJCQkJICAgIGRiZW52LCBOVUxMLCAwLCBEQl9TWU5DX0FMTE9D LCBOVUxMKTsNCi0rDQotKwkJCQkodm9pZClfX29zX3NsZWVwKGRiZW52LCAxLCAwKTsNCi0rCQkJ CWJyZWFrOw0KLSsJCQlkZWZhdWx0Og0KLSsJCQkJYWdncmVzc2l2ZSA9IDE7DQotKwkJCQlpZiAo cHV0X2NvdW50ZXIgPT0gY19tcC0+cHV0X2NvdW50ZXIpDQotKwkJCQkJZ2l2ZXVwID0gMTsNCi0r CQkJCWJyZWFrOw0KLSsJCQl9DQotIA0KLSAJCQlSX0xPQ0soZGJlbnYsIG1lbXJlZyk7DQotIAkJ CWdvdG8gYWxsb2M7DQotQEAgLTI3Nyw3ICsyODgsOCBAQA0KLSAJCSAqIHRocmVhZCBtYXkgaGF2 ZSBhY3F1aXJlZCB0aGlzIGJ1ZmZlciBhbmQgaW5jcmVtZW50ZWQgdGhlIHJlZg0KLSAJCSAqIGNv dW50IGFmdGVyIHdlIHdyb3RlIGl0LCBpbiB3aGljaCBjYXNlIHdlIGNhbid0IGhhdmUgaXQuDQot IAkJICoNCi0tCQkgKiBJZiB0aGVyZSdzIGEgd3JpdGUgZXJyb3IsIGF2b2lkIHNlbGVjdGluZyB0 aGlzIGJ1ZmZlciBhZ2Fpbg0KLSsJCSAqIElmIHRoZXJlJ3MgYSB3cml0ZSBlcnJvciBhbmQgd2Un cmUgaGF2aW5nIHByb2JsZW1zIGZpbmRpbmcNCi0rCQkgKiBzb21ldGhpbmcgdG8gYWxsb2NhdGUs IGF2b2lkIHNlbGVjdGluZyB0aGlzIGJ1ZmZlciBhZ2Fpbg0KLSAJCSAqIGJ5IG1ha2luZyBpdCB0 aGUgYnVja2V0J3MgbGVhc3QtZGVzaXJhYmxlIGJ1ZmZlci4NCi0gCQkgKi8NCi0gCQlpZiAocmV0 ICE9IDAgfHwgYmhwLT5yZWYgIT0gMCkgew0KLUBAIC0zMDEsNiArMzEzLDggQEANCi0gDQotIAkJ ZnJlZWRfc3BhY2UgKz0gX19kYl9zaHNpemVvZihiaHApOw0KLSAJCV9fbWVtcF9iaGZyZWUoZGJt cCwgaHAsIGJocCwgMSk7DQotKwkJaWYgKGFnZ3Jlc3NpdmUgPiAxKQ0KLSsJCQlhZ2dyZXNzaXZl ID0gMTsNCi0gDQotIAkJLyoNCi0gCQkgKiBVbmxvY2sgdGhpcyBoYXNoIGJ1Y2tldCBhbmQgcmUt YWNxdWlyZSB0aGUgcmVnaW9uIGxvY2suIElmDQotQEAgLTM2MCw1NCArMzc0LDYgQEANCi0gDQot IAkvKiBSZXNldCB0aGUgaGFzaCBidWNrZXQncyBwcmlvcml0eS4gKi8NCi0gCWhwLT5oYXNoX3By aW9yaXR5ID0gU0hfVEFJTFFfRklSU1QoJmhwLT5oYXNoX2J1Y2tldCwgX19iaCktPnByaW9yaXR5 Ow0KLS19DQotLQ0KLS0vKg0KLS0gKiBfX21lbXBfcmVzZXRfbHJ1IC0tDQotLSAqCVJlc2V0IHRo ZSBjYWNoZSBMUlUgY291bnRlci4NCi0tICovDQotLXN0YXRpYyB2b2lkDQotLV9fbWVtcF9yZXNl dF9scnUoZGJlbnYsIG1lbXJlZywgY19tcCkNCi0tCURCX0VOViAqZGJlbnY7DQotLQlSRUdJTkZP ICptZW1yZWc7DQotLQlNUE9PTCAqY19tcDsNCi0tew0KLS0JQkggKmJocDsNCi0tCURCX01QT09M X0hBU0ggKmhwOw0KLS0JaW50IGJ1Y2tldDsNCi0tDQotLQkvKg0KLS0JICogVXBkYXRlIHRoZSBj b3VudGVyIHNvIGFsbCBmdXR1cmUgYWxsb2NhdGlvbnMgd2lsbCBzdGFydCBhdCB0aGUNCi0tCSAq IGJvdHRvbS4NCi0tCSAqLw0KLS0JY19tcC0+bHJ1X2NvdW50IC09IE1QT09MX0JBU0VfREVDUkVN RU5UOw0KLS0NCi0tCS8qIFJlbGVhc2UgdGhlIHJlZ2lvbiBsb2NrLiAqLw0KLS0JUl9VTkxPQ0so ZGJlbnYsIG1lbXJlZyk7DQotLQ0KLS0JLyogQWRqdXN0IHRoZSBwcmlvcml0eSBvZiBldmVyeSBi dWZmZXIgaW4gdGhlIHN5c3RlbS4gKi8NCi0tCWZvciAoaHAgPSBSX0FERFIobWVtcmVnLCBjX21w LT5odGFiKSwNCi0tCSAgICBidWNrZXQgPSAwOyBidWNrZXQgPCBjX21wLT5odGFiX2J1Y2tldHM7 ICsraHAsICsrYnVja2V0KSB7DQotLQkJLyoNCi0tCQkgKiBTa2lwIGVtcHR5IGJ1Y2tldHMuDQot LQkJICoNCi0tCQkgKiBXZSBjYW4gY2hlY2sgZm9yIGVtcHR5IGJ1Y2tldHMgYmVmb3JlIGxvY2tp bmcgYXMgd2UNCi0tCQkgKiBvbmx5IGNhcmUgaWYgdGhlIHBvaW50ZXIgaXMgemVybyBvciBub24t emVyby4NCi0tCQkgKi8NCi0tCQlpZiAoU0hfVEFJTFFfRklSU1QoJmhwLT5oYXNoX2J1Y2tldCwg X19iaCkgPT0gTlVMTCkNCi0tCQkJY29udGludWU7DQotLQ0KLS0JCU1VVEVYX0xPQ0soZGJlbnYs ICZocC0+aGFzaF9tdXRleCk7DQotLQkJZm9yIChiaHAgPSBTSF9UQUlMUV9GSVJTVCgmaHAtPmhh c2hfYnVja2V0LCBfX2JoKTsNCi0tCQkgICAgYmhwICE9IE5VTEw7IGJocCA9IFNIX1RBSUxRX05F WFQoYmhwLCBocSwgX19iaCkpDQotLQkJCWlmIChiaHAtPnByaW9yaXR5ICE9IFVJTlQzMl9UX01B WCAmJg0KLS0JCQkgICAgYmhwLT5wcmlvcml0eSA+IE1QT09MX0JBU0VfREVDUkVNRU5UKQ0KLS0J CQkJYmhwLT5wcmlvcml0eSAtPSBNUE9PTF9CQVNFX0RFQ1JFTUVOVDsNCi0tCQlNVVRFWF9VTkxP Q0soZGJlbnYsICZocC0+aGFzaF9tdXRleCk7DQotLQl9DQotLQ0KLS0JLyogUmVhY3F1aXJlIHRo ZSByZWdpb24gbG9jay4gKi8NCi0tCVJfTE9DSyhkYmVudiwgbWVtcmVnKTsNCi0gfQ0KLSANCi0g I2lmZGVmIERJQUdOT1NUSUMNCi0tLS0gbGliZGIvZGJyZWcvZGJyZWdfcmVjLmMub3JpZwlUaHUg Tm92IDIwIDIzOjEzOjE5IDIwMDMNCi0rKysgbGliZGIvZGJyZWcvZGJyZWdfcmVjLmMJRnJpIE1h ciAxOCAyMDozMToxNCAyMDA1DQotQEAgLTE3NCwxOSArMTc0LDIwIEBADQotIAkJCSAqIFR5cGlj YWxseSwgY2xvc2VzIHNob3VsZCBtYXRjaCBhbiBvcGVuIHdoaWNoIG1lYW5zDQotIAkJCSAqIHRo YXQgaWYgdGhpcyBpcyBhIGNsb3NlLCB0aGVyZSBzaG91bGQgYmUgYSB2YWxpZA0KLSAJCQkgKiBl bnRyeSBpbiB0aGUgZGJlbnRyeSB0YWJsZSB3aGVuIHdlIGdldCBoZXJlLA0KLS0JCQkgKiBob3dl dmVyIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbi4gIElmIHRoaXMgaXMgYW4NCi0rCQkJICogaG93ZXZl ciB0aGVyZSBhcmUgZXhjZXB0aW9ucy4gIDEuIElmIHRoaXMgaXMgYW4NCi0gCQkJICogT1BFTkZJ TEVTIHBhc3MsIHRoZW4gd2UgbWF5IGhhdmUgc3RhcnRlZCBmcm9tDQotIAkJCSAqIGEgbG9nIGZp bGUgb3RoZXIgdGhhbiB0aGUgZmlyc3QsIGFuZCB0aGUNCi0gCQkJICogY29ycmVzcG9uZGluZyBv cGVuIGFwcGVhcnMgaW4gYW4gZWFybGllciBmaWxlLg0KLS0JCQkgKiBXZSBjYW4gaWdub3JlIHRo YXQgY2FzZSwgYnV0IGFsbCBvdGhlcnMgYXJlIGVycm9ycy4NCi0rCQkJICogMi4gSWYgd2UgYXJl IHVuZG9pbmcgYW4gb3BlbiBvbiBhbiBhYm9ydCBvcg0KLSsJCQkgKiByZWNvdmVyeSwgaXQncyBw b3NzaWJsZSB0aGF0IHdlIGZhaWxlZCBhZnRlcg0KLSsJCQkgKiB0aGUgbG9nIHJlY29yZCwgYnV0 IGJlZm9yZSB3ZSBhY3R1YWxseSBlbnRlcmVkDQotKwkJCSAqIGEgaGFuZGxlIGhlcmUuDQotIAkJ CSAqLw0KLSAJCQlkYmUgPSAmZGJscC0+ZGJlbnRyeVthcmdwLT5maWxlaWRdOw0KLSAJCQlpZiAo ZGJlLT5kYnAgPT0gTlVMTCAmJiAhZGJlLT5kZWxldGVkKSB7DQotIAkJCQkvKiBObyB2YWxpZCBl bnRyeSBoZXJlLiAqLw0KLS0JCQkJaWYgKChhcmdwLT5vcGNvZGUgIT0gTE9HX0NMT1NFICYmDQot LQkJCQkgICAgYXJncC0+b3Bjb2RlICE9IExPR19SQ0xPU0UpIHx8DQotLQkJCQkgICAgKG9wICE9 IERCX1RYTl9PUEVORklMRVMgJiYNCi0tCQkJCSAgICBvcCAhPURCX1RYTl9QT1BFTkZJTEVTKSkg ew0KLSsJCQkJaWYgKERCX1JFRE8ob3ApIHx8DQotKwkJCQkgICAgYXJncC0+b3Bjb2RlID09IExP R19DSEVDS1BPSU5UKSB7DQotIAkJCQkJX19kYl9lcnIoZGJlbnYsDQotIAkJCQkJICAgICJJbXBy b3BlciBmaWxlIGNsb3NlIGF0ICVsdS8lbHUiLA0KLSAJCQkJCSAgICAodV9sb25nKWxzbnAtPmZp bGUsDQotLS0tIGxpYmRiL2Vudi9lbnZfcmVjb3Zlci5jLm9yaWcJVGh1IE5vdiAyMCAyMzoxMzoy MCAyMDAzDQotKysrIGxpYmRiL2Vudi9lbnZfcmVjb3Zlci5jCUZyaSBNYXIgMTggMjA6MzE6MTQg MjAwNQ0KLUBAIC0yMzIsMTIgKzIzMiw5IEBADQotIAkgKiB3ZSdsbCBzdGlsbCBuZWVkIHRvIGRv IGEgdnRydW5jYXRlIGJhc2VkIG9uIGluZm9ybWF0aW9uIHdlIGhhdmVuJ3QNCi0gCSAqIHlldCBj b2xsZWN0ZWQuDQotIAkgKi8NCi0tCWlmIChyZXQgPT0gREJfTk9URk9VTkQpIHsNCi0rCWlmIChy ZXQgPT0gREJfTk9URk9VTkQpIA0KLSAJCXJldCA9IDA7DQotLQkJaWYgKG1heF9sc24gPT0gTlVM TCkNCi0tCQkJZ290byBkb25lOw0KLS0JfQ0KLS0JaWYgKHJldCAhPSAwKQ0KLSsJZWxzZSBpZiAo cmV0ICE9IDApDQotIAkJZ290byBlcnI7DQotIA0KLSAJaGlfdHhuID0gdHhuaWQ7DQotQEAgLTMz MSw3ICszMjgsNyBAQA0KLSANCi0gCS8qIEZpbmQgYSBsb3cgdHhuaWQuICovDQotIAlyZXQgPSAw Ow0KLS0JZG8gew0KLSsJaWYgKGhpX3R4biAhPSAwKSBkbyB7DQotIAkJLyogdHhuaWQgaXMgYWZ0 ZXIgcmVjdHlwZSwgd2hpY2ggaXMgYSB1X2ludDMyLiAqLw0KLSAJCW1lbWNweSgmdHhuaWQsDQot IAkJICAgICh1X2ludDhfdCAqKWRhdGEuZGF0YSArIHNpemVvZih1X2ludDMyX3QpLCBzaXplb2Yo dHhuaWQpKTsNCi1AQCAtMzQ0LDExICszNDEsOCBAQA0KLSAJICogVGhlcmUgYXJlIG5vIHRyYW5z YWN0aW9ucyBhbmQgd2UncmUgbm90IHJlY292ZXJpbmcgdG8gYW4gTFNOIChzZWUNCi0gCSAqIGFi b3ZlKSwgc28gdGhlcmUgaXMgbm90aGluZyB0byBkby4NCi0gCSAqLw0KLS0JaWYgKHJldCA9PSBE Ql9OT1RGT1VORCkgew0KLSsJaWYgKHJldCA9PSBEQl9OT1RGT1VORCkgDQotIAkJcmV0ID0gMDsN Ci0tCQlpZiAobWF4X2xzbiA9PSBOVUxMKQ0KLS0JCQlnb3RvIGRvbmU7DQotLQl9DQotIA0KLSAJ LyogUmVzZXQgdG8gdGhlIGZpcnN0IGxzbi4gKi8NCi0gCWlmIChyZXQgIT0gMCB8fCAocmV0ID0g bG9nYy0+Z2V0KGxvZ2MsICZmaXJzdF9sc24sICZkYXRhLCBEQl9TRVQpKSAhPSAwKQ0KLUBAIC0z NjcsNiArMzYxLDEwIEBADQotIAkgICAgdHhuaW5mbywgJmRhdGEsICZmaXJzdF9sc24sICZsYXN0 X2xzbiwgbmZpbGVzLCAxKSkgIT0gMCkNCi0gCQlnb3RvIGVycjsNCi0gDQotKwkvKiBJZiB0aGVy ZSB3ZXJlIG5vIHRyYW5zYWN0aW9ucywgdGhlbiB3ZSBjYW4gYmFpbCBvdXQgZWFybHkuICovDQot KwlpZiAoaGlfdHhuID09IDAgJiYgbWF4X2xzbiA9PSBOVUxMKQ0KLSsJCWdvdG8gZG9uZTsNCi0r CQkNCi0gCS8qDQotIAkgKiBQYXNzICMyLg0KLSAJICoNCi1AQCAtNDgzLDYgKzQ4MSw3IEBADQot IAlpZiAoKHJldCA9IF9fZGJyZWdfY2xvc2VfZmlsZXMoZGJlbnYpKSAhPSAwKQ0KLSAJCWdvdG8g ZXJyOw0KLSANCi0rZG9uZToNCi0gCWlmIChtYXhfbHNuICE9IE5VTEwpIHsNCi0gCQlyZWdpb24t Pmxhc3RfY2twID0gKChEQl9UWE5IRUFEICopdHhuaW5mbyktPmNrcGxzbjsNCi0gDQotQEAgLTUz OCw3ICs1MzcsOCBAQA0KLSAJCV9fZGJfZXJyKGRiZW52LCAiUmVjb3ZlcnkgY29tcGxldGUgYXQg JS4yNHMiLCBjdGltZSgmbm93KSk7DQotIAkJX19kYl9lcnIoZGJlbnYsICIlcyAlbHggJXMgWyVs dV1bJWx1XSIsDQotIAkJICAgICJNYXhpbXVtIHRyYW5zYWN0aW9uIElEIiwNCi0tCQkgICAgKChE Ql9UWE5IRUFEICopdHhuaW5mbyktPm1heGlkLA0KLSsJCSAgICB0eG5pbmZvID09IE5VTEwgPyBU WE5fTUlOSU1VTSA6DQotKwkJCSgoREJfVFhOSEVBRCAqKXR4bmluZm8pLT5tYXhpZCwNCi0gCQkg ICAgIlJlY292ZXJ5IGNoZWNrcG9pbnQiLA0KLSAJCSAgICAodV9sb25nKXJlZ2lvbi0+bGFzdF9j a3AuZmlsZSwNCi0gCQkgICAgKHVfbG9uZylyZWdpb24tPmxhc3RfY2twLm9mZnNldCk7DQotQEAg LTU1MCw3ICs1NTAsNiBAQA0KLSAJCSAgICAodV9sb25nKWxzbi5maWxlLCAodV9sb25nKWxzbi5v ZmZzZXQsIHBhc3MpOw0KLSAJfQ0KLSANCi0tZG9uZToNCi0gZXJyOglpZiAobG9ja2lkICE9IERC X0xPQ0tfSU5WQUxJRElEKSB7DQotIAkJaWYgKCh0X3JldCA9IF9fcmVwX3VubG9ja3BhZ2VzKGRi ZW52LCBsb2NraWQpKSAhPSAwICYmIHJldCA9PSAwKQ0KLSAJCQlyZXQgPSB0X3JldDsNCkluZGV4 OiBmaWxlcy9wYXRjaC1zeXNkYjQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiBmaWxlcy9wYXRjaC1z eXNkYjQNCmRpZmYgLU4gZmlsZXMvcGF0Y2gtc3lzZGI0DQotLS0gL2Rldi9udWxsCTEgSmFuIDE5 NzAgMDA6MDA6MDAgLTAwMDANCisrKyBmaWxlcy9wYXRjaC1zeXNkYjQJMjcgRmViIDIwMDYgMTg6 NDQ6MjcgLTAwMDANCkBAIC0wLDAgKzEsNDkgQEANCistLS0gTWFrZWZpbGUuaW4JV2VkIE5vdiAz MCAwMzo1ODowNCAyMDA1DQorKysrIE1ha2VmaWxlLmluCUZyaSBGZWIgMjQgMTg6Mjc6NDYgMjAw Ng0KK0BAIC0zNzAsMyArMzcwLDMgQEANCisgRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyA9IC0t ZW5hYmxlLWd0ay1kb2MNCistU1VCRElSUyA9IGxpYmRiIGxpYmVkYXRhc2VydmVyIHNlcnZlcnMg Y2FtZWwgYWRkcmVzc2Jvb2sgY2FsZW5kYXIgbGliZWRhdGFzZXJ2ZXJ1aSBzcmMgZG9jcyBhcnQg cG8NCisrU1VCRElSUyA9IGxpYmVkYXRhc2VydmVyIHNlcnZlcnMgY2FtZWwgYWRkcmVzc2Jvb2sg Y2FsZW5kYXIgbGliZWRhdGFzZXJ2ZXJ1aSBzcmMgZG9jcyBhcnQgcG8NCisgRElTVF9TVUJESVJT ID0gbGliZWRhdGFzZXJ2ZXIgc2VydmVycyBjYW1lbCBhZGRyZXNzYm9vayBjYWxlbmRhciBsaWJl ZGF0YXNlcnZlcnVpIHNyYyBkb2NzIGFydCBwbw0KKy0tLSBsaWJlZGF0YXNlcnZlci9NYWtlZmls ZS5pbglXZWQgTm92IDMwIDAzOjU4OjAxIDIwMDUNCisrKysgbGliZWRhdGFzZXJ2ZXIvTWFrZWZp bGUuaW4JRnJpIEZlYiAyNCAxODo0NDo1OSAyMDA2DQorQEAgLTY2LDUgKzY2LDQgQEANCisgYW1f X0RFUEVOREVOQ0lFU18xID0NCisgbGliZWRhdGFzZXJ2ZXJfMV8yX2xhX0RFUEVOREVOQ0lFUyA9 ICQoYW1fX0RFUEVOREVOQ0lFU18xKSBcDQorLQkkKGFtX19ERVBFTkRFTkNJRVNfMSkgJCh0b3Bf YnVpbGRkaXIpL2xpYmRiL2Rpc3QvbGliZGItNC4xLmxhIFwNCisgCSQoYW1fX0RFUEVOREVOQ0lF U18xKQ0KKyBhbV9fb2JqZWN0c18xID0gZS1kYXRhLXNlcnZlci1tYXJzaGFsLmxvDQorQEAgLTM5 MSw1ICszOTAsNCBAQA0KKyAJLUkkKHRvcF9zcmNkaXIpCQkJCQkJCVwNCisgCS1ER19MT0dfRE9N QUlOPVwiZS1kYXRhLXNlcnZlclwiCQkJCVwNCistCS1JJCh0b3Bfc3JjZGlyKS9saWJkYi9kaXN0 CQkJCQlcDQorIAktREVfREFUQV9TRVJWRVJfRVhURU5TSU9ORElSPVwiJChleHRlbnNpb25kaXIp XCIJCVwNCisgCS1ERV9EQVRBX1NFUlZFUl9JTUFHRVNESVI9XCIkKGltYWdlc2RpcilcIgkJCVwN CitAQCAtNDMxLDUgKzQyOSw1IEBADQorIAkkKEVfREFUQV9TRVJWRVJfTElCUykJCQkJXA0KKyAJ JChJQ09OVl9MSUJTKQkJCQkJXA0KKy0JJCh0b3BfYnVpbGRkaXIpL2xpYmRiL2Rpc3QvbGliZGIt NC4xLmxhCQlcDQorKwktbCR7REJWRVJTSU9OfQkJXA0KKyAJJChTT0NLRVRfTElCUykNCisgDQor LS0tIGFkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuaW4JTW9uIEZlYiAyNyAxMzo0 Mjo0MyAyMDA2DQorKysrIGFkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuaW4JTW9u IEZlYiAyNyAxMzo0Mjo0MyAyMDA2DQorQEAgLTYzLDUgKzYzLDUgQEANCisgCSQodG9wX2J1aWxk ZGlyKS9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL2xpYmVkYXRhLWJvb2stMS4yLmxhIFwNCisg CSQodG9wX2J1aWxkZGlyKS9saWJlZGF0YXNlcnZlci9saWJlZGF0YXNlcnZlci0xLjIubGEgXA0K Ky0JJCh0b3BfYnVpbGRkaXIpL2xpYmRiL2Rpc3QvbGliZGItNC4xLmxhICQoYW1fX0RFUEVOREVO Q0lFU18xKQ0KKysJJChhbV9fREVQRU5ERU5DSUVTXzEpDQorIGFtX2xpYmVib29rYmFja2VuZGZp bGVfbGFfT0JKRUNUUyA9IGUtYm9vay1iYWNrZW5kLWZpbGUubG8gXA0KKyAJZS1ib29rLWJhY2tl bmQtZmlsZS1mYWN0b3J5LmxvDQorQEAgLTM3Myw1ICszNzMsNCBAQA0KKyAJLUkkKHRvcF9zcmNk aXIpL2FkZHJlc3Nib29rCQkJXA0KKyAJLUkkKHRvcF9idWlsZGRpcikvYWRkcmVzc2Jvb2sJCQlc DQorLQktSSQodG9wX3NyY2RpcikvbGliZGIvZGlzdAkJCVwNCisgICAgICAgICAkKEVWT0xVVElP Tl9BRERSRVNTQk9PS19DRkxBR1MpDQorIA0KK0BAIC0zODYsNSArMzg1LDQgQEANCisgCSQodG9w X2J1aWxkZGlyKS9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL2xpYmVkYXRhLWJvb2stMS4yLmxh CVwNCisgCSQodG9wX2J1aWxkZGlyKS9saWJlZGF0YXNlcnZlci9saWJlZGF0YXNlcnZlci0xLjIu bGEJCVwNCistCSQodG9wX2J1aWxkZGlyKS9saWJkYi9kaXN0L2xpYmRiLTQuMS5sYQkJCQlcDQor IAkkKEVWT0xVVElPTl9BRERSRVNTQk9PS19MSUJTKQ0KKyANCi== --=-+1+GTNFbpXwN0WXhSm6Z--