Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w4vEe-002hD1-08 for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 06:27:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4vEa-004bLj-0j for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 06:27:24 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w4vEZ-004bLb-1b for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 06:27:24 +0000 Received: from mail-vk1-xa2c.google.com ([2607:f8b0:4864:20::a2c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4vEX-00000000kMt-45fg for pgsql-hackers@postgresql.org; Tue, 24 Mar 2026 06:27:23 +0000 Received: by mail-vk1-xa2c.google.com with SMTP id 71dfb90a1353d-56a8fdaddebso1392990e0c.0 for ; Mon, 23 Mar 2026 23:27:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774333641; cv=none; d=google.com; s=arc-20240605; b=bY3Qcnxf2SfgHR7L/IkroCwmL5XJcH9IzkBlAXW/RA9qx315FU9punaSYICp6VtwCw sVLdwoPhdomnm6i0xdL0iM+vmhrtTNeB87JJ7poUBfqN/19j+G5I1iNLcfEoc9NaSzrY HjgWZQbmwTF/aPeEXudp5KLt67Vjv9K1zk6do7GwG0a45WS8EANALj9KnWlK2Jzsa2SK yAUd76M7birzvSLv0GfOl7U0fIm4UTfO17kA+L8mneaq3EHGdJz7uMkcx6YVdpq3TN6g ON7VPkPiY9EiiupHwHZ1x58i/tvDQDQ989loKX+IU7yYRVNv4GP+JKIszHMLyB444AxY kFIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=fKU9HU7megIFa5ZW08/8pkmefSZ14uCt2aqEXQlwWpo=; fh=waPnKahtqrjL6e5lDHONXgAYWW+1/EnTYqDmUsP0vmM=; b=GBsNb/ZFT+gbju5IwFx4LLuYJ99zB6tqFMjaYn/nwBvlMoAIGzDGdC+ttV7Le6UFJJ 1O0ioukNoz1Oi0vRfyH8paM/15bgwSMEewRKVC1FaSKqnLjLR7ntPdA7dNGgNoTyY0IZ zCgnEJvnYCf+Vi9Za92/vJPMAWOKPNdOh0Gh17AzSx1IhRz8t/3ftkf2GymaP6q7eobg kNh9sHeqphQfQ10t8ENPFXv+fLfC3IyM+HrUgA8EspG7UqA3OFl41cORYCKYjAWJaCeu Nuc5tVBfA3UyZz4+VlekcEBjW8Lc3+dJItqfXEWf2RJ1076d+nNOJO8q6mFUvpM8CQgC BLkg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774333641; x=1774938441; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=fKU9HU7megIFa5ZW08/8pkmefSZ14uCt2aqEXQlwWpo=; b=r6xU6XIUGfhR/0bI5lHcqPnX+/a55gzQgbPdqY25Iqdm0n/+U4NLOwBfB5KEIinWb7 D56XjgDEGoudw2zevr6jfOblmI+iTRI26uYSqAM+T9BZv7dm7FZ8DHgln21Lea+UWHRd J/7a1+mg7JcBc8K3ESaQv9dTSz9D8tir1Xh1iBGKtqbYGDyUDmFlGmeEFXMixxOnlLsq aIV+3Y26yXXjgTCKwxHHBHXbjUuFMeEXb56gMNR0zCrXwvX2e67U4nQaJVGkRQ4Ov8LO 4pVs+SYIf0cQv9HZXa9fbgdQ1UBo3s0qR8RW/Ld9Jq0jnV2j43/6QBrNh7yd8d2ZXYq4 T38g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774333641; x=1774938441; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fKU9HU7megIFa5ZW08/8pkmefSZ14uCt2aqEXQlwWpo=; b=X7jzE6bGSuWsix9TtkE2uzjxJIFT35X7tu59Kh4RIKuTUbAmzu2zWg8L1L1sbR0SSG kQGh3hNaWKzNcQVpir7aydoHDOqlOvDG4g4i89QWIduDLiXFdF6Y8CU4r0KXNDhe4ajW sEKdGZciONg9vTngJ+0fT+5+YDHDb+qvKfqKi3ZCCW1I4A8M/HOPmQ+rKD1WOaWa7SEN WFUk3dtEw8l0/RBkzFXqnkmxvIPA3sdKrhWAaT9sVRt0wITGfz1Rounr15K/ow/v/d2S V0apQcmRJxPm0Ohv+Tj8Li3JJbKTHNJqN9HdjBpt4foy2vka6u7GxkyzY7/ST69kbHOM baPQ== X-Gm-Message-State: AOJu0YzhccPMCotPvZtPJIj85dUd870po43++zksU4xVYn8YlmphJMcb C2SSj0E+l4opymVwoRqo6IDFC1UNWo2+v9R/H9Qt4+38IqcnvjDCY4t/8itZTOuIg8zvWlNt+BY 0SOYAAnYlfrVXGG+CsYtnoGlXBCqarae5KgM= X-Gm-Gg: ATEYQzxpv5FDGdkRGiWEeMEvmGoWRX+DIXcRgMnaexGMZ1HFba6rAR+YsaisT7L9/d4 9nWzjH+yklp3QGO1nLbt4V0NKJw9YyireBVadB9vsbelnTOuGkPO5ZYePGIiN+8us9WGfM+qZ3m 0Dp2ceXaot9MNdP0FCRdbWPz06cblcEBK+9UKuqZEBIprdUWQq0YlHhNHtnBC3jMhpwovJhm/cc XykRHm/DRCTBxN2wcS7CNpGc6sJDJYGTsWYB5LKoLQFQ20+zeHPLQ2iQQYpVdH7TrbTw9URr0bc 39f6YfM= X-Received: by 2002:a05:6122:2885:b0:56b:9083:4331 with SMTP id 71dfb90a1353d-56cde400fd8mr6854074e0c.12.1774333640836; Mon, 23 Mar 2026 23:27:20 -0700 (PDT) MIME-Version: 1.0 From: Rushabh Lathia Date: Tue, 24 Mar 2026 11:57:09 +0530 X-Gm-Features: AQROBzBXf43G2KZ3O2vsnw_XM3JeYny5vh78paEDc3XoC1XLf2f1YRmolA8jDLw Message-ID: Subject: ORDER BY ALL To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000602d7e064dbf3e94" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000602d7e064dbf3e94 Content-Type: multipart/alternative; boundary="000000000000602d7d064dbf3e92" --000000000000602d7d064dbf3e92 Content-Type: text/plain; charset="UTF-8" Hi hackers, Please find the attached patch, to implement the ORDER BY ALL clause. Commit ef38a4d97, implemented GROUP BY ALL clause, and this feature follows the same pattern. ORDER BY ALL is a form of ORDER BY that automatically adds all non-junk columns from the SELECT target list to the ORDER BY clause. This implementation supports: - ORDER BY ALL (default ascending order) - ORDER BY ALL ASC - ORDER BY ALL DESC - ORDER BY ALL NULLS FIRST/LAST - ORDER BY ALL ASC/DESC NULLS FIRST/LAST The syntax works by creating a marker SortBy node with a NULL node pointer that carries the sort direction and nulls ordering. During query transformation, this marker is detected and expanded to order by all non-junk columns in the target list with the specified direction. Implementation details: - gram.y: Added ORDER BY ALL grammar with optional ASC/DESC and NULLS in both main sort_clause and PLpgSQL_Expr rules - parse_clause.c: Implemented ORDER BY ALL expansion logic that iterates over target list columns - analyze.c: Updated to pass orderByAll flag through transformation - parsenodes.h: Added orderByAll boolean to SelectStmt and Query - ruleutils.c: Added deparsing support for ORDER BY ALL that preserves sort direction and NULLS ordering in view definitions, including proper handling of implicit vs explicit ordering Please take a look at the attached patch and let me know your thoughts. Thanks, Rushabh Lathia www.EnterpriseDB.com --000000000000602d7d064dbf3e92 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hackers,

Please find the attached patch, to= implement the ORDER BY ALL clause.
Commit ef38a4d97, implemented= GROUP BY ALL clause, and this
feature follows the same pattern.<= br>
ORDER BY ALL is a form of ORDER BY that automatically adds all
no= n-junk columns from the SELECT target list to the ORDER BY clause.

This implementation supports:
=C2=A0 - ORDER BY ALL (default ascen= ding order)
=C2=A0 - ORDER BY ALL ASC
=C2=A0 - ORDER BY ALL DESC
= =C2=A0 - ORDER BY ALL NULLS FIRST/LAST
=C2=A0 - ORDER BY ALL ASC/DESC NU= LLS FIRST/LAST

The syntax works by creating a marker SortBy node wit= h a NULL
node pointer that carries the sort direction and nulls ordering= .
During query transformation, this marker is detected and expanded
t= o order by all non-junk columns in the target list with the
specified di= rection.

Implementation details:
- gram.y: Added ORDER BY ALL gra= mmar with optional ASC/DESC and NULLS
=C2=A0 in both main sort_clause an= d PLpgSQL_Expr rules
- parse_clause.c: Implemented ORDER BY ALL expansio= n logic that iterates
=C2=A0 over target list columns
- analyze.c: Up= dated to pass orderByAll flag through transformation
- parsenodes.h: Add= ed orderByAll boolean to SelectStmt and Query
- ruleutils.c: Added depar= sing support for ORDER BY ALL that preserves
=C2=A0 sort direction and N= ULLS ordering in view definitions, including proper
=C2=A0 handling of i= mplicit vs explicit ordering

Please take a look at the attached patc= h and let me know your thoughts.

Thanks,
Rushabh Lathi= a
www.EnterpriseDB.com

--000000000000602d7d064dbf3e92-- --000000000000602d7e064dbf3e94 Content-Type: application/octet-stream; name="0001-Add-ORDER-BY-ALL-with-ASC-DESC-NULLS-support.patch" Content-Disposition: attachment; filename="0001-Add-ORDER-BY-ALL-with-ASC-DESC-NULLS-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn48b1zq0 RnJvbSAwNzcyZTRiZjdlMjI2MDVlYmQ5NGUyMWNmMjIwNDMxYTYxZWZjMzBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNoYWJoIExhdGhpYSA8cnVzaGFiaC5sYXRoaWFAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAyNCBNYXIgMjAyNiAxMTozNDozMyArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBBZGQgT1JERVIgQlkgQUxMIHdpdGggQVNDL0RFU0MvTlVMTFMgc3VwcG9y dAoKT1JERVIgQlkgQUxMIGlzIGEgZm9ybSBvZiBPUkRFUiBCWSB0aGF0IGF1dG9tYXRpY2FsbHkg YWRkcyBhbGwgbm9uLWp1bmsKY29sdW1ucyBmcm9tIHRoZSBTRUxFQ1QgdGFyZ2V0IGxpc3QgdG8g dGhlIE9SREVSIEJZIGNsYXVzZS4gVGhpcyBpcwpzaW1pbGFyIHRvIEdST1VQIEJZIEFMTCBhbmQg aXMgdXNlZnVsIGZvciBkYXRhIGV4cGxvcmF0aW9uLgoKVGhpcyBpbXBsZW1lbnRhdGlvbiBzdXBw b3J0czoKLSBPUkRFUiBCWSBBTEwgKGRlZmF1bHQgYXNjZW5kaW5nIG9yZGVyKQotIE9SREVSIEJZ IEFMTCBBU0MKLSBPUkRFUiBCWSBBTEwgREVTQwotIE9SREVSIEJZIEFMTCBOVUxMUyBGSVJTVC9M QVNUCi0gT1JERVIgQlkgQUxMIEFTQy9ERVNDIE5VTExTIEZJUlNUL0xBU1QKClRoZSBzeW50YXgg d29ya3MgYnkgY3JlYXRpbmcgYSBzcGVjaWFsIG1hcmtlciBTb3J0Qnkgbm9kZSB3aXRoIGEgTlVM TApub2RlIHBvaW50ZXIgdGhhdCBjYXJyaWVzIHRoZSBzb3J0IGRpcmVjdGlvbiBhbmQgbnVsbHMg b3JkZXJpbmcuIER1cmluZwpxdWVyeSB0cmFuc2Zvcm1hdGlvbiwgdGhpcyBtYXJrZXIgaXMgZGV0 ZWN0ZWQgYW5kIGV4cGFuZGVkIHRvIG9yZGVyIGJ5CmFsbCBub24tanVuayBjb2x1bW5zIGluIHRo ZSB0YXJnZXQgbGlzdCB3aXRoIHRoZSBzcGVjaWZpZWQgZGlyZWN0aW9uLgoKRXhhbXBsZSB1c2Fn ZToKICBTRUxFQ1QgYSwgYiwgYyBGUk9NIHRhYmxlIE9SREVSIEJZIEFMTCBERVNDOwogIC0tIEVx dWl2YWxlbnQgdG86IE9SREVSIEJZIGEgREVTQywgYiBERVNDLCBjIERFU0MKCi0tLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgIHwgMTcgKysrKysrKysKIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2NsYXVzZS5jIHwgNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgfCAgMiArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY2xhdXNlLmggfCAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDUzOWMxNmM0Zjc5 Li5iNTc3MjViNGMzNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0xNDcyLDkgKzE0NzIsMTcgQEAg dHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQs CiAJICovCiAJcXJ5LT5zb3J0Q2xhdXNlID0gdHJhbnNmb3JtU29ydENsYXVzZShwc3RhdGUsCiAJ CQkJCQkJCQkJICBzdG10LT5zb3J0Q2xhdXNlLAorCQkJCQkJCQkJCSAgc3RtdC0+b3JkZXJCeUFs bCwKIAkJCQkJCQkJCQkgICZxcnktPnRhcmdldExpc3QsCiAJCQkJCQkJCQkJICBFWFBSX0tJTkRf T1JERVJfQlksCiAJCQkJCQkJCQkJICBmYWxzZSAvKiBhbGxvdyBTUUw5MiBydWxlcyAqLyApOwor CS8qCisJICogUHJlc2VydmUgdGhlIG9yZGVyQnlBbGwgZmxhZyBmb3IgZGVwYXJzaW5nLiBFdmVu IHRob3VnaCBzb3J0Q2xhdXNlCisJICogaXMgZXhwYW5kZWQgdG8gaW5kaXZpZHVhbCBjb2x1bW5z IGR1cmluZyB0cmFuc2Zvcm1hdGlvbiwgd2UgbmVlZCB0bworCSAqIHJlbWVtYmVyIHRoYXQgdGhl IG9yaWdpbmFsIHF1ZXJ5IHVzZWQgT1JERVIgQlkgQUxMIHNvIHRoYXQKKwkgKiBwZ19nZXRfdmll d2RlZigpIGNhbiByZWNyZWF0ZSBpdCBjb3JyZWN0bHkgaW4gdmlldyBkZWZpbml0aW9ucy4KKwkg Ki8KKwlxcnktPm9yZGVyQnlBbGwgPSBzdG10LT5vcmRlckJ5QWxsOwogCiAJcXJ5LT5ncm91cENs YXVzZSA9IHRyYW5zZm9ybUdyb3VwQ2xhdXNlKHBzdGF0ZSwKIAkJCQkJCQkJCQkJc3RtdC0+Z3Jv dXBDbGF1c2UsCkBAIC0xNzM3LDkgKzE3NDUsMTcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAkgKi8KIAlxcnktPnNvcnRDbGF1 c2UgPSB0cmFuc2Zvcm1Tb3J0Q2xhdXNlKHBzdGF0ZSwKIAkJCQkJCQkJCQkgIHN0bXQtPnNvcnRD bGF1c2UsCisJCQkJCQkJCQkJICBzdG10LT5vcmRlckJ5QWxsLAogCQkJCQkJCQkJCSAgJnFyeS0+ dGFyZ2V0TGlzdCwKIAkJCQkJCQkJCQkgIEVYUFJfS0lORF9PUkRFUl9CWSwKIAkJCQkJCQkJCQkg IGZhbHNlIC8qIGFsbG93IFNRTDkyIHJ1bGVzICovICk7CisJLyoKKwkgKiBQcmVzZXJ2ZSB0aGUg b3JkZXJCeUFsbCBmbGFnIGZvciBkZXBhcnNpbmcuIEV2ZW4gdGhvdWdoIHNvcnRDbGF1c2UKKwkg KiBpcyBleHBhbmRlZCB0byBpbmRpdmlkdWFsIGNvbHVtbnMgZHVyaW5nIHRyYW5zZm9ybWF0aW9u LCB3ZSBuZWVkIHRvCisJICogcmVtZW1iZXIgdGhhdCB0aGUgb3JpZ2luYWwgcXVlcnkgdXNlZCBP UkRFUiBCWSBBTEwgc28gdGhhdAorCSAqIHBnX2dldF92aWV3ZGVmKCkgY2FuIHJlY3JlYXRlIGl0 IGNvcnJlY3RseSBpbiB2aWV3IGRlZmluaXRpb25zLgorCSAqLworCXFyeS0+b3JkZXJCeUFsbCA9 IHN0bXQtPm9yZGVyQnlBbGw7CiAKIAlxcnktPmxpbWl0T2Zmc2V0ID0gdHJhbnNmb3JtTGltaXRD bGF1c2UocHN0YXRlLCBzdG10LT5saW1pdE9mZnNldCwKIAkJCQkJCQkJCQkJRVhQUl9LSU5EX09G RlNFVCwgIk9GRlNFVCIsCkBAIC0xOTgxLDYgKzE5OTcsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRp b25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAogCXFyeS0+c29y dENsYXVzZSA9IHRyYW5zZm9ybVNvcnRDbGF1c2UocHN0YXRlLAogCQkJCQkJCQkJCSAgc29ydENs YXVzZSwKKwkJCQkJCQkJCQkgIHN0bXQtPm9yZGVyQnlBbGwsCiAJCQkJCQkJCQkJICAmcXJ5LT50 YXJnZXRMaXN0LAogCQkJCQkJCQkJCSAgRVhQUl9LSU5EX09SREVSX0JZLAogCQkJCQkJCQkJCSAg ZmFsc2UgLyogYWxsb3cgU1FMOTIgcnVsZXMgKi8gKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDljYmU4ZWFm YzQ1Li4xYTU5ZGJlNGZiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMzQ2NSw2ICsxMzQ2NSwyMSBAQCBv cHRfc29ydF9jbGF1c2U6CiAKIHNvcnRfY2xhdXNlOgogCQkJT1JERVIgQlkgc29ydGJ5X2xpc3QJ CQkJCXsgJCQgPSAkMzsgfQorCQkJfCBPUkRFUiBCWSBBTEwgb3B0X2FzY19kZXNjIG9wdF9udWxs c19vcmRlcgorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogQ3JlYXRlIGEgc3BlY2lhbCBtYXJrZXIg U29ydEJ5IG5vZGUgZm9yIE9SREVSIEJZIEFMTC4KKwkJCQkJICogV2UgdXNlIGEgU29ydEJ5IHdp dGggbm9kZT1OVUxMIGFzIHRoZSBtYXJrZXIsIGFuZCBzdG9yZQorCQkJCQkgKiB0aGUgc29ydCBk aXJlY3Rpb24gYW5kIG51bGxzIG9yZGVyaW5nIHRvIGFwcGx5IHRvIGFsbCBjb2x1bW5zLgorCQkJ CQkgKi8KKwkJCQkJU29ydEJ5ICpzb3J0YnkgPSBtYWtlTm9kZShTb3J0QnkpOworCQkJCQlzb3J0 YnktPm5vZGUgPSBOVUxMOyAgLyogTlVMTCBub2RlIGluZGljYXRlcyBPUkRFUiBCWSBBTEwgKi8K KwkJCQkJc29ydGJ5LT5zb3J0YnlfZGlyID0gJDQ7CisJCQkJCXNvcnRieS0+c29ydGJ5X251bGxz ID0gJDU7CisJCQkJCXNvcnRieS0+dXNlT3AgPSBOSUw7CisJCQkJCXNvcnRieS0+bG9jYXRpb24g PSBAMjsKKwkJCQkJJCQgPSBsaXN0X21ha2UxKHNvcnRieSk7CisJCQkJfQogCQk7CiAKIHNvcnRi eV9saXN0OgpAQCAtMTc4NTAsNyArMTc4NjUsMjUgQEAgUExwZ1NRTF9FeHByOiBvcHRfZGlzdGlu Y3RfY2xhdXNlIG9wdF90YXJnZXRfbGlzdAogCQkJCQluLT5ncm91cEJ5QWxsID0gKCQ1KS0+YWxs OwogCQkJCQluLT5oYXZpbmdDbGF1c2UgPSAkNjsKIAkJCQkJbi0+d2luZG93Q2xhdXNlID0gJDc7 Ci0JCQkJCW4tPnNvcnRDbGF1c2UgPSAkODsKKwkJCQkJLyoKKwkJCQkJICogQ2hlY2sgZm9yIE9S REVSIEJZIEFMTCBtYXJrZXIgKFNvcnRCeSB3aXRoIE5VTEwgbm9kZSkuCisJCQkJCSAqIFdlIGRl dGVjdCB0aGlzIGluIHRoZSBncmFtbWFyIGFjdGlvbiBiZWNhdXNlIFBMcGdTUUxfRXhwcgorCQkJ CQkgKiBjcmVhdGVzIFNlbGVjdFN0bXQgbm9kZXMgZGlyZWN0bHkgd2l0aG91dCBnb2luZyB0aHJv dWdoCisJCQkJCSAqIGluc2VydFNlbGVjdE9wdGlvbnMoKSwgc28gd2UgbXVzdCBzZXQgdGhlIG9y ZGVyQnlBbGwgZmxhZworCQkJCQkgKiBoZXJlIHRvIGVuc3VyZSBpdCBnZXRzIHByb3Blcmx5IHRy YW5zZm9ybWVkLgorCQkJCQkgKi8KKwkJCQkJaWYgKCQ4ICYmIGxpc3RfbGVuZ3RoKCQ4KSA9PSAx ICYmCisJCQkJCQlJc0EobGluaXRpYWwoJDgpLCBTb3J0QnkpICYmCisJCQkJCQkoKFNvcnRCeSAq KSBsaW5pdGlhbCgkOCkpLT5ub2RlID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCW4tPm9yZGVyQnlB bGwgPSB0cnVlOworCQkJCQkJLyogU3RvcmUgdGhlIFNvcnRCeSBtYXJrZXIgdG8gcHJlc2VydmUg ZGlyZWN0aW9uL251bGxzIGluZm8gKi8KKwkJCQkJCW4tPnNvcnRDbGF1c2UgPSAkODsKKwkJCQkJ fQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCW4tPnNvcnRDbGF1c2UgPSAkODsKKwkJCQkJfQog CQkJCQlpZiAoJDkpCiAJCQkJCXsKIAkJCQkJCW4tPmxpbWl0T2Zmc2V0ID0gJDktPmxpbWl0T2Zm c2V0OwpAQCAtMTkzMzAsNyArMTkzNjMsMTUgQEAgaW5zZXJ0U2VsZWN0T3B0aW9ucyhTZWxlY3RT dG10ICpzdG10LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCSBl cnJtc2coIm11bHRpcGxlIE9SREVSIEJZIGNsYXVzZXMgbm90IGFsbG93ZWQiKSwKIAkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihleHByTG9jYXRpb24oKE5vZGUgKikgc29ydENsYXVzZSkpKSk7CisK IAkJc3RtdC0+c29ydENsYXVzZSA9IHNvcnRDbGF1c2U7CisJCS8qIENoZWNrIGZvciBPUkRFUiBC WSBBTEwgbWFya2VyIChTb3J0Qnkgd2l0aCBOVUxMIG5vZGUpICovCisJCWlmIChsaXN0X2xlbmd0 aChzb3J0Q2xhdXNlKSA9PSAxICYmCisJCQlJc0EobGluaXRpYWwoc29ydENsYXVzZSksIFNvcnRC eSkgJiYKKwkJCSgoU29ydEJ5ICopIGxpbml0aWFsKHNvcnRDbGF1c2UpKS0+bm9kZSA9PSBOVUxM KQorCQl7CisJCQlzdG10LT5vcmRlckJ5QWxsID0gdHJ1ZTsKKwkJfQogCX0KIAkvKiBXZSBjYW4g aGFuZGxlIG11bHRpcGxlIGxvY2tpbmcgY2xhdXNlcywgdGhvdWdoICovCiAJc3RtdC0+bG9ja2lu Z0NsYXVzZSA9IGxpc3RfY29uY2F0KHN0bXQtPmxvY2tpbmdDbGF1c2UsIGxvY2tpbmdDbGF1c2Up OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDMzZmQyY2NjYWU1Li41M2FmMmFmZGE1NSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtMTkxLDYgKzE5MSw3IEBAIHRyYW5zZm9ybUFnZ3JlZ2F0 ZUNhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKIAogCQl0b3JkZXIgPSB0cmFu c2Zvcm1Tb3J0Q2xhdXNlKHBzdGF0ZSwKIAkJCQkJCQkJCSBhZ2dvcmRlciwKKwkJCQkJCQkJCSBm YWxzZSAvKiBPUkRFUiBCWSBBTEwgbm90IGFwcGxpY2FibGUgLSBhZ2dyZWdhdGUgT1JERVIgQlkg c29ydHMgd2l0aGluIGdyb3Vwcywgbm90IHF1ZXJ5IG91dHB1dCAqLywKIAkJCQkJCQkJCSAmdGxp c3QsCiAJCQkJCQkJCQkgRVhQUl9LSU5EX09SREVSX0JZLAogCQkJCQkJCQkJIHRydWUgLyogZm9y Y2UgU1FMOTkgcnVsZXMgKi8gKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCAwNmI2 NWQ0YTYwNS4uMTU0NGY2MjgwODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTI3 OTMsNiArMjc5Myw3IEBAIHRyYW5zZm9ybUdyb3VwQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGlzdCAqZ3JvdXBsaXN0LCBib29sIGdyb3VwQnlBbGwsCiBMaXN0ICoKIHRyYW5zZm9ybVNvcnRD bGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQlMaXN0ICpvcmRlcmxpc3QsCisJCQkJCWJv b2wgb3JkZXJCeUFsbCwKIAkJCQkJTGlzdCAqKnRhcmdldGxpc3QsCiAJCQkJCVBhcnNlRXhwcktp bmQgZXhwcktpbmQsCiAJCQkJCWJvb2wgdXNlU1FMOTkpCkBAIC0yODAwLDYgKzI4MDEsNjEgQEAg dHJhbnNmb3JtU29ydENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJTGlzdAkgICAqc29ydGxp c3QgPSBOSUw7CiAJTGlzdENlbGwgICAqb2xpdGVtOwogCisJLyoKKwkgKiBIYW5kbGUgT1JERVIg QlkgQUxMIGV4cGFuc2lvbi4KKwkgKgorCSAqIFRoZSB0YXJnZXQgbGlzdCBoYXMgYWxyZWFkeSBi ZWVuIHRyYW5zZm9ybWVkIGFuZCBjb250YWlucyB0aGUKKwkgKiBjb2x1bW5zIHdlIHNob3VsZCBz b3J0IGJ5LiBXZSBjcmVhdGUgYSBTb3J0Qnkgbm9kZSBmb3IgZWFjaAorCSAqIG5vbi1qdW5rIHRh cmdldCBlbnRyeSwgYXBwbHlpbmcgdGhlIHNhbWUgc29ydCBkaXJlY3Rpb24gYW5kCisJICogTlVM TFMgb3JkZXJpbmcgc3BlY2lmaWVkIGluIHRoZSBtYXJrZXIgdG8gYWxsIGNvbHVtbnMuCisJICov CisJaWYgKG9yZGVyQnlBbGwpCisJeworCQlTb3J0QnkJICAgKnNvcnRieTsKKwkJU29ydEJ5CSAg ICphbGxfbWFya2VyOworCQlTb3J0QnlEaXIJc29ydF9kaXI7CisJCVNvcnRCeU51bGxzCW51bGxz X29yZGVyOworCisJCS8qCisJCSAqIG9yZGVybGlzdCBzaG91bGQgY29udGFpbiBhIHNpbmdsZSBT b3J0QnkgbWFya2VyIHdpdGggbm9kZT1OVUxMCisJCSAqIHRoYXQgc3BlY2lmaWVzIHRoZSBzb3J0 IGRpcmVjdGlvbiBhbmQgbnVsbHMgb3JkZXJpbmcgdG8gYXBwbHkKKwkJICogdG8gYWxsIGNvbHVt bnMuCisJCSAqLworCQlBc3NlcnQobGlzdF9sZW5ndGgob3JkZXJsaXN0KSA9PSAxKTsKKwkJYWxs X21hcmtlciA9IChTb3J0QnkgKikgbGluaXRpYWwob3JkZXJsaXN0KTsKKwkJQXNzZXJ0KElzQShh bGxfbWFya2VyLCBTb3J0QnkpICYmIGFsbF9tYXJrZXItPm5vZGUgPT0gTlVMTCk7CisKKwkJLyog RXh0cmFjdCBzb3J0IGRpcmVjdGlvbiBhbmQgbnVsbHMgb3JkZXJpbmcgZnJvbSB0aGUgbWFya2Vy ICovCisJCXNvcnRfZGlyID0gYWxsX21hcmtlci0+c29ydGJ5X2RpcjsKKwkJbnVsbHNfb3JkZXIg PSBhbGxfbWFya2VyLT5zb3J0YnlfbnVsbHM7CisKKwkJLyogSXRlcmF0ZSBvdmVyIHRhcmdldHMs IGFkZGluZyBhbGwgbm9uLWp1bmsgY29sdW1ucyB0byBzb3J0IGNsYXVzZSAqLworCQlmb3JlYWNo X3B0cihUYXJnZXRFbnRyeSwgdGxlLCAqdGFyZ2V0bGlzdCkKKwkJeworCQkJLyoKKwkJCSAqIEln bm9yZSBqdW5rIFRMRXMuIFRoZXNlIGFyZSBzeXN0ZW0gY29sdW1ucyAobGlrZSBjdGlkLCB4bWlu KQorCQkJICogb3IgaW50ZXJuYWwgd29ya2luZyBjb2x1bW5zIHRoYXQgc2hvdWxkbid0IGJlIHBh cnQgb2YgdGhlCisJCQkgKiB1c2VyLXZpc2libGUgb3JkZXJpbmcuCisJCQkgKi8KKwkJCWlmICh0 bGUtPnJlc2p1bmspCisJCQkJY29udGludWU7CisKKwkJCS8qIENyZWF0ZSBhIFNvcnRCeSBmb3Ig dGhpcyB0YXJnZXQgZW50cnkgd2l0aCBzcGVjaWZpZWQgZGlyZWN0aW9uICovCisJCQlzb3J0Ynkg PSBtYWtlTm9kZShTb3J0QnkpOworCisJCQlzb3J0YnktPm5vZGUgPSAoTm9kZSAqKSB0bGUtPmV4 cHI7CisJCQlzb3J0YnktPnNvcnRieV9kaXIgPSBzb3J0X2RpcjsKKwkJCXNvcnRieS0+c29ydGJ5 X251bGxzID0gbnVsbHNfb3JkZXI7CisJCQlzb3J0YnktPnVzZU9wID0gTklMOworCQkJc29ydGJ5 LT5sb2NhdGlvbiA9IGV4cHJMb2NhdGlvbigoTm9kZSAqKSB0bGUtPmV4cHIpOworCisJCQlzb3J0 bGlzdCA9IGFkZFRhcmdldFRvU29ydExpc3QocHN0YXRlLCB0bGUsCisJCQkJCQkJCQkJICAgc29y dGxpc3QsICp0YXJnZXRsaXN0LCBzb3J0YnkpOworCQl9CisKKwkJcmV0dXJuIHNvcnRsaXN0Owor CX0KKwogCWZvcmVhY2gob2xpdGVtLCBvcmRlcmxpc3QpCiAJewogCQlTb3J0QnkJICAgKnNvcnRi eSA9IChTb3J0QnkgKikgbGZpcnN0KG9saXRlbSk7CkBAIC0yODc1LDYgKzI5MzEsNyBAQCB0cmFu c2Zvcm1XaW5kb3dEZWZpbml0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCSAqLwogCQlvcmRl ckNsYXVzZSA9IHRyYW5zZm9ybVNvcnRDbGF1c2UocHN0YXRlLAogCQkJCQkJCQkJCSAgd2luZGVm LT5vcmRlckNsYXVzZSwKKwkJCQkJCQkJCQkgIGZhbHNlIC8qIG5vdCBhcHBsaWNhYmxlIGZvciB3 aW5kb3cgT1JERVIgQlkgKi8gLAogCQkJCQkJCQkJCSAgdGFyZ2V0bGlzdCwKIAkJCQkJCQkJCQkg IEVYUFJfS0lORF9XSU5ET1dfT1JERVIsCiAJCQkJCQkJCQkJICB0cnVlIC8qIGZvcmNlIFNRTDk5 IHJ1bGVzICovICk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggZjE2ZjE1MzU3ODUu LjQ0YmJiZDk0MjBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC01OTQyLDggKzU5 NDIsNjggQEAgZ2V0X3NlbGVjdF9xdWVyeV9kZWYoUXVlcnkgKnF1ZXJ5LCBkZXBhcnNlX2NvbnRl eHQgKmNvbnRleHQpCiAJewogCQlhcHBlbmRDb250ZXh0S2V5d29yZChjb250ZXh0LCAiIE9SREVS IEJZICIsCiAJCQkJCQkJIC1QUkVUVFlJTkRFTlRfU1RELCBQUkVUVFlJTkRFTlRfU1RELCAxKTsK LQkJZ2V0X3J1bGVfb3JkZXJieShxdWVyeS0+c29ydENsYXVzZSwgcXVlcnktPnRhcmdldExpc3Qs Ci0JCQkJCQkgZm9yY2VfY29sbm8sIGNvbnRleHQpOworCQlpZiAocXVlcnktPm9yZGVyQnlBbGwp CisJCXsKKwkJCVNvcnRHcm91cENsYXVzZSAqc3J0OworCQkJVGFyZ2V0RW50cnkgKnRsZTsKKwkJ CU5vZGUJICAgKnNvcnRleHByOworCQkJT2lkCQkJc29ydGNvbHR5cGU7CisJCQlUeXBlQ2FjaGVF bnRyeSAqdHlwZW50cnk7CisKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiQUxMIik7 CisKKwkJCS8qCisJCQkgKiBFeHRyYWN0IHNvcnQgZGlyZWN0aW9uIGFuZCBOVUxMUyBvcmRlcmlu ZyBmcm9tIHRoZSBmaXJzdAorCQkJICogU29ydEdyb3VwQ2xhdXNlLiBBZnRlciB0cmFuc2Zvcm1h dGlvbiwgc29ydENsYXVzZSBjb250YWlucworCQkJICogU29ydEdyb3VwQ2xhdXNlIG5vZGVzIChv bmUgcGVyIGNvbHVtbikuIEFsbCBjb2x1bW5zIHNoYXJlIHRoZQorCQkJICogc2FtZSBpbnRlbmRl ZCBkaXJlY3Rpb24gKEFTQy9ERVNDKSBhbmQgTlVMTFMgb3JkZXJpbmcsIHRob3VnaAorCQkJICog dGhlIGFjdHVhbCBzb3J0IG9wZXJhdG9ycyBkaWZmZXIgYnkgY29sdW1uIHR5cGUuIFdlIGV4YW1p bmUgdGhlCisJCQkgKiBmaXJzdCBjb2x1bW4gdG8gZGV0ZXJtaW5lIHdoYXQgbW9kaWZpZXJzIHRv IG91dHB1dC4KKwkJCSAqLworCQkJQXNzZXJ0KHF1ZXJ5LT5zb3J0Q2xhdXNlICE9IE5JTCk7CisJ CQlzcnQgPSAoU29ydEdyb3VwQ2xhdXNlICopIGxpbml0aWFsKHF1ZXJ5LT5zb3J0Q2xhdXNlKTsK KworCQkJLyoKKwkJCSAqIEdldCB0aGUgc29ydCBleHByZXNzaW9uIHRvIGRldGVybWluZSBpdHMg dHlwZSB3aXRob3V0CisJCQkgKiBhcHBlbmRpbmcgYW55dGhpbmcgdG8gdGhlIG91dHB1dCBidWZm ZXIuCisJCQkgKi8KKwkJCXRsZSA9IGdldF9zb3J0Z3JvdXByZWZfdGxlKHNydC0+dGxlU29ydEdy b3VwUmVmLCBxdWVyeS0+dGFyZ2V0TGlzdCk7CisJCQlzb3J0ZXhwciA9IChOb2RlICopIHRsZS0+ ZXhwcjsKKwkJCXNvcnRjb2x0eXBlID0gZXhwclR5cGUoc29ydGV4cHIpOworCisJCQkvKiBTZWUg d2hldGhlciBvcGVyYXRvciBpcyBkZWZhdWx0IDwgb3IgPiBmb3IgZGF0YXR5cGUgKi8KKwkJCXR5 cGVudHJ5ID0gbG9va3VwX3R5cGVfY2FjaGUoc29ydGNvbHR5cGUsCisJCQkJCQkJCQkJIFRZUEVD QUNIRV9MVF9PUFIgfCBUWVBFQ0FDSEVfR1RfT1BSKTsKKworCQkJaWYgKHNydC0+c29ydG9wID09 IHR5cGVudHJ5LT5sdF9vcHIpCisJCQl7CisJCQkJLyogQVNDIGlzIGRlZmF1bHQsIHNvIGVtaXQg bm90aGluZyBmb3IgaXQgKi8KKwkJCQlpZiAoc3J0LT5udWxsc19maXJzdCkKKwkJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsICIgTlVMTFMgRklSU1QiKTsKKwkJCX0KKwkJCWVsc2UgaWYg KHNydC0+c29ydG9wID09IHR5cGVudHJ5LT5ndF9vcHIpCisJCQl7CisJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsICIgREVTQyIpOworCQkJCS8qIERFU0MgZGVmYXVsdHMgdG8gTlVMTFMg RklSU1QgKi8KKwkJCQlpZiAoIXNydC0+bnVsbHNfZmlyc3QpCisJCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCAiIE5VTExTIExBU1QiKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBVU0lORyAlcyIsCisJCQkJCQkJCSBnZW5lcmF0ZV9vcGVy YXRvcl9uYW1lKHNydC0+c29ydG9wLAorCQkJCQkJCQkJCQkJCQlzb3J0Y29sdHlwZSwKKwkJCQkJ CQkJCQkJCQkJc29ydGNvbHR5cGUpKTsKKwkJCQkvKiBiZSBzcGVjaWZpYyB0byBlbGltaW5hdGUg YW1iaWd1aXR5ICovCisJCQkJaWYgKHNydC0+bnVsbHNfZmlyc3QpCisJCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiIE5VTExTIEZJUlNUIik7CisJCQkJZWxzZQorCQkJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBOVUxMUyBMQVNUIik7CisJCQl9CisJCX0KKwkJZWxzZQor CQkJZ2V0X3J1bGVfb3JkZXJieShxdWVyeS0+c29ydENsYXVzZSwgcXVlcnktPnRhcmdldExpc3Qs CisJCQkJCQkJIGZvcmNlX2NvbG5vLCBjb250ZXh0KTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDRlZTA5MjIwNmIwLi44NjdhYWMwMTU4ZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMjI2LDYgKzIyNiw3IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJTGlzdAkgICAq ZGlzdGluY3RDbGF1c2U7IC8qIGEgbGlzdCBvZiBTb3J0R3JvdXBDbGF1c2UncyAqLwogCiAJTGlz dAkgICAqc29ydENsYXVzZTsJCS8qIGEgbGlzdCBvZiBTb3J0R3JvdXBDbGF1c2UncyAqLworCWJv b2wJCW9yZGVyQnlBbGw7CQkvKiB3YXMgT1JERVIgQlkgQUxMIHVzZWQ/ICovCiAKIAlOb2RlCSAg ICpsaW1pdE9mZnNldDsJLyogIyBvZiByZXN1bHQgdHVwbGVzIHRvIHNraXAgKGludDggZXhwcikg Ki8KIAlOb2RlCSAgICpsaW1pdENvdW50OwkJLyogIyBvZiByZXN1bHQgdHVwbGVzIHRvIHJldHVy biAoaW50OCBleHByKSAqLwpAQCAtMjI0Miw2ICsyMjQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU2Vs ZWN0U3RtdAogCSAqIFNlbGVjdFN0bXRzLgogCSAqLwogCUxpc3QJICAgKnNvcnRDbGF1c2U7CQkv KiBzb3J0IGNsYXVzZSAoYSBsaXN0IG9mIFNvcnRCeSdzKSAqLworCWJvb2wJCW9yZGVyQnlBbGw7 CQkvKiBJcyB0aGlzIE9SREVSIEJZIEFMTD8gKi8KIAlOb2RlCSAgICpsaW1pdE9mZnNldDsJLyog IyBvZiByZXN1bHQgdHVwbGVzIHRvIHNraXAgKi8KIAlOb2RlCSAgICpsaW1pdENvdW50OwkJLyog IyBvZiByZXN1bHQgdHVwbGVzIHRvIHJldHVybiAqLwogCUxpbWl0T3B0aW9uIGxpbWl0T3B0aW9u OwkvKiBsaW1pdCB0eXBlICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf Y2xhdXNlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY2xhdXNlLmgKaW5kZXggZmUyMzQ2 MTEwMDcuLjVhZGM5YWFmMzI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf Y2xhdXNlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5oCkBAIC0zMSw2 ICszMSw3IEBAIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1Hcm91cENsYXVzZShQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKmdyb3VwbGlzdCwKIAkJCQkJCQkJICBMaXN0ICoqdGFyZ2V0bGlzdCwgTGlz dCAqc29ydENsYXVzZSwKIAkJCQkJCQkJICBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kLCBib29sIHVz ZVNRTDk5KTsKIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1Tb3J0Q2xhdXNlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqb3JkZXJsaXN0LAorCQkJCQkJCQkgYm9vbCBvcmRlckJ5QWxsLAogCQkJCQkJ CQkgTGlzdCAqKnRhcmdldGxpc3QsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQsCiAJCQkJCQkJCSBi b29sIHVzZVNRTDk5KTsKIAotLSAKMi40My4wCgo= --000000000000602d7e064dbf3e94 Content-Type: application/octet-stream; name="0002-Add-documentation-and-tests-for-ORDER-BY-ALL.patch" Content-Disposition: attachment; filename="0002-Add-documentation-and-tests-for-ORDER-BY-ALL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn48b1zw1 RnJvbSAyMjgzNzJiOGQwNWVkMzIyNDBhMzJmOWNhY2FjZmZkYTc0Y2JkMzQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNoYWJoIExhdGhpYSA8cnVzaGFiaC5sYXRoaWFAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAyNCBNYXIgMjAyNiAxMTozNDo1MCArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBBZGQgZG9jdW1lbnRhdGlvbiBhbmQgdGVzdHMgZm9yIE9SREVSIEJZIEFM TAoKLSBEb2N1bWVudGF0aW9uOiBBZGRlZCBjb21wcmVoZW5zaXZlIGRvY3VtZW50YXRpb24gaW4g cXVlcmllcy5zZ21sIGFuZAogIHJlZmVyZW5jZSBwYWdlcyAoc2VsZWN0LnNnbWwsIHNlbGVjdF9p bnRvLnNnbWwpCi0gVGVzdHM6IEFkZGVkIGNvbXByZWhlbnNpdmUgcmVncmVzc2lvbiB0ZXN0cyBj b3ZlcmluZyByZWd1bGFyIFNRTCB1c2FnZSwKICBQTC9wZ1NRTCBjb250ZXh0cyAoRk9SIGxvb3Bz LCBjdXJzb3JzLCBmdW5jdGlvbnMpLCBkZXBhcnNpbmcgb2YgdmlldwogIGRlZmluaXRpb25zLCBh bmQgbmVnYXRpdmUgdGVzdCBjYXNlcwoKLS0tCiBkb2Mvc3JjL3NnbWwvcXVlcmllcy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAxNiArCiBkb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sICAg ICAgICAgICAgICAgICB8ICAxNSArLQogZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3RfaW50by5zZ21s ICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3Fs X21pc2Mub3V0IHwgMTUzICsrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfbWlz Yy5zcWwgICAgICB8IDEyMSArKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29yZGVyX2J5 X2FsbC5vdXQgICB8IDYxNCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9v cmRlcl9ieV9hbGwuc3FsICAgICAgICB8IDI0NyArKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAx MTY2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcmRlcl9ieV9hbGwub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3JkZXJfYnlfYWxsLnNxbAoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9xdWVyaWVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcXVlcmllcy5zZ21sCmluZGV4 IDRiNTIyMjEzMTcxLi43MWRmZjIxN2YwNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3F1ZXJp ZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcXVlcmllcy5zZ21sCkBAIC0xOTExLDYgKzE5MTEs MjIgQEAgU0VMRUNUIGEgKyBiIEFTIHN1bSwgYyBGUk9NIHRhYmxlMSBPUkRFUiBCWSBzdW0gKyBj OyAgICAgICAgICAtLSB3cm9uZwogICAgY29sdW1uIHRvIG1hdGNoIHNvbWUgb3RoZXIgdGFibGUg Y29sdW1uJ3MgbmFtZS4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBhbHNvIHN1cHBvcnRzIHRoZSBzeW50YXgKKyAgIDxsaXRl cmFsPk9SREVSIEJZIEFMTDwvbGl0ZXJhbD4sIHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gZXhwbGlj aXRseQorICAgd3JpdGluZyBhbGwgc2VsZWN0LWxpc3QgY29sdW1ucy4gVGhlIHNvcnQgZGlyZWN0 aW9uIChhc2NlbmRpbmcgb3IKKyAgIGRlc2NlbmRpbmcpIGFuZCBudWxsIG9yZGVyaW5nIGNhbiBv cHRpb25hbGx5IGJlIHNwZWNpZmllZDsgdGhlc2UgYXBwbHkKKyAgIHRvIGFsbCBjb2x1bW5zLiBG b3IgZXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK1NFTEVDVCBhLCBiLCBjIEZST00gdGFibGUx IE9SREVSIEJZIEFMTDsKK1NFTEVDVCBhLCBiLCBjIEZST00gdGFibGUxIE9SREVSIEJZIEFMTCBE RVNDOworU0VMRUNUIGEsIGIsIGMgRlJPTSB0YWJsZTEgT1JERVIgQlkgQUxMIERFU0MgTlVMTFMg TEFTVDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBUaGUgZmlyc3QgZXhhbXBsZSBpcyBlcXVpdmFs ZW50IHRvIDxsaXRlcmFsPk9SREVSIEJZIGEsIGIsIGM8L2xpdGVyYWw+LgorICAgVGhlIHNlY29u ZCBpcyBlcXVpdmFsZW50IHRvIDxsaXRlcmFsPk9SREVSIEJZIGEgREVTQywgYiBERVNDLCBjIERF U0M8L2xpdGVyYWw+LgorICAgVGhpcyBzeW50YXggY2FuIHNpbXBsaWZ5IGFkLWhvYyBleHBsb3Jh dGlvbiBvZiBkYXRhLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICA8bGl0ZXJhbD5PUkRFUiBC WTwvbGl0ZXJhbD4gY2FuIGJlIGFwcGxpZWQgdG8gdGhlIHJlc3VsdCBvZiBhCiAgICA8bGl0ZXJh bD5VTklPTjwvbGl0ZXJhbD4sIDxsaXRlcmFsPklOVEVSU0VDVDwvbGl0ZXJhbD4sIG9yIDxsaXRl cmFsPkVYQ0VQVDwvbGl0ZXJhbD4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0 LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCmluZGV4IGNhNWRkMTRkNjI3Li4x MzU1YmE0MmQwOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCkBAIC00MSw3ICs0MSw3IEBAIFNFTEVDVCBb IEFMTCB8IERJU1RJTkNUIFsgT04gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhw cmVzc2lvbjwvcmVwbGFjCiAgICAgWyBIQVZJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbmRpdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIFdJTkRPVyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+d2luZG93X25hbWU8L3JlcGxhY2VhYmxlPiBBUyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aW5kb3dfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+ICkg WywgLi4uXSBdCiAgICAgWyB7IFVOSU9OIHwgSU5URVJTRUNUIHwgRVhDRVBUIH0gWyBBTEwgfCBE SVNUSU5DVCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZWxlY3Q8L3JlcGxhY2Vh YmxlPiBdCi0gICAgWyBPUkRFUiBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhw cmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVNDIHwgREVTQyB8IFVTSU5HIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFibGU+IF0gWyBOVUxMUyB7IEZJUlNU IHwgTEFTVCB9IF0gWywgLi4uXSBdCisgICAgWyBPUkRFUiBCWSB7IEFMTCBbIEFTQyB8IERFU0Mg XSBbIE5VTExTIHsgRklSU1QgfCBMQVNUIH0gXSB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBU0MgfCBERVNDIHwgVVNJTkcgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yPC9yZXBsYWNlYWJsZT4gXSBbIE5VTExT IHsgRklSU1QgfCBMQVNUIH0gXSBbLCAuLi5dIH0gXQogICAgIFsgTElNSVQgeyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+Y291bnQ8L3JlcGxhY2VhYmxlPiB8IEFMTCB9IF0KICAgICBb IE9GRlNFVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnQ8L3JlcGxhY2VhYmxl PiBbIFJPVyB8IFJPV1MgXSBdCiAgICAgWyBGRVRDSCB7IEZJUlNUIHwgTkVYVCB9IFsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvdW50PC9yZXBsYWNlYWJsZT4gXSB7IFJPVyB8IFJP V1MgfSB7IE9OTFkgfCBXSVRIIFRJRVMgfSBdCkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBTRUxFQ1Qg RElTVElOQ1QgT04gKGxvY2F0aW9uKSBsb2NhdGlvbiwgdGltZSwgcmVwb3J0CiAgICA8cGFyYT4K ICAgICBUaGUgb3B0aW9uYWwgPGxpdGVyYWw+T1JERVIgQlk8L2xpdGVyYWw+IGNsYXVzZSBoYXMg dGhpcyBnZW5lcmFsIGZvcm06CiA8c3lub3BzaXM+Ci1PUkRFUiBCWSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVNDIHwgREVTQyB8IFVT SU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFibGU+ IF0gWyBOVUxMUyB7IEZJUlNUIHwgTEFTVCB9IF0gWywgLi4uXQorT1JERVIgQlkgeyBBTEwgWyBB U0MgfCBERVNDIF0gWyBOVUxMUyB7IEZJUlNUIHwgTEFTVCB9IF0gfCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVNDIHwgREVTQyB8IFVT SU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFibGU+ IF0gWyBOVUxMUyB7IEZJUlNUIHwgTEFTVCB9IF0gWywgLi4uXSB9CiA8L3N5bm9wc2lzPgogICAg IFRoZSA8bGl0ZXJhbD5PUkRFUiBCWTwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyB0aGUgcmVzdWx0 IHJvd3MgdG8KICAgICBiZSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZXhwcmVz c2lvbihzKS4gIElmIHR3byByb3dzIGFyZQpAQCAtMTQwNSw2ICsxNDA1LDE3IEBAIE9SREVSIEJZ IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4g WyBBU0MgfCBERVNDIHwKICAgICBhbiBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgb3JkZXIuCiAg ICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIFRoZSBmb3JtIDxsaXRlcmFsPk9SREVSIEJZIEFM TDwvbGl0ZXJhbD4gd2l0aCBubyBleHBsaWNpdAorICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gcHJvdmlkZWQgaXMKKyAgICBlcXVpdmFs ZW50IHRvIHdyaXRpbmcgPGxpdGVyYWw+T1JERVIgQlk8L2xpdGVyYWw+IHdpdGggYWxsIGNvbHVt bnMgb2YKKyAgICB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiBvdXRwdXQgbGlzdC4gVGhl IHNvcnQgZGlyZWN0aW9uCisgICAgKGFzY2VuZGluZyBvciBkZXNjZW5kaW5nKSBhbmQgbnVsbCBv cmRlcmluZyBjYW4gb3B0aW9uYWxseSBiZSBzcGVjaWZpZWQKKyAgICBhbmQgYXBwbHkgdG8gYWxs IGNvbHVtbnMuIEZvciBleGFtcGxlLCA8bGl0ZXJhbD5PUkRFUiBCWSBBTEwgREVTQzwvbGl0ZXJh bD4KKyAgICBpcyBlcXVpdmFsZW50IHRvIGxpc3RpbmcgYWxsIG91dHB1dCBjb2x1bW5zIHdpdGgg PGxpdGVyYWw+REVTQzwvbGl0ZXJhbD4KKyAgICBhZnRlciBlYWNoLgorICAgPC9wYXJhPgorCiAg ICA8cGFyYT4KICAgICBFYWNoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNz aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlIHRoZQogICAgIG5hbWUgb3Igb3JkaW5hbCBudW1iZXIg b2YgYW4gb3V0cHV0IGNvbHVtbgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Rf aW50by5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3RfaW50by5zZ21sCmluZGV4IGNiZjg2 NWZmODM4Li4yZTA2YjlkYTRlMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Rf aW50by5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0X2ludG8uc2dtbApAQCAtMzEs NyArMzEsNyBAQCBTRUxFQ1QgWyBBTEwgfCBESVNUSU5DVCBbIE9OICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhYwogICAgIFsgSEFWSU5HIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBX SU5ET1cgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPndpbmRvd19uYW1lPC9yZXBsYWNl YWJsZT4gQVMgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+d2luZG93X2RlZmluaXRp b248L3JlcGxhY2VhYmxlPiApIFssIC4uLl0gXQogICAgIFsgeyBVTklPTiB8IElOVEVSU0VDVCB8 IEVYQ0VQVCB9IFsgQUxMIHwgRElTVElOQ1QgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+c2VsZWN0PC9yZXBsYWNlYWJsZT4gXQotICAgIFsgT1JERVIgQlkgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBbIEFTQyB8IERFU0MgfCBV U0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3I8L3JlcGxhY2VhYmxl PiBdIFsgTlVMTFMgeyBGSVJTVCB8IExBU1QgfSBdIFssIC4uLl0gXQorICAgIFsgT1JERVIgQlkg eyBBTEwgWyBBU0MgfCBERVNDIF0gWyBOVUxMUyB7IEZJUlNUIHwgTEFTVCB9IF0gfCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVNDIHwg REVTQyB8IFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVw bGFjZWFibGU+IF0gWyBOVUxMUyB7IEZJUlNUIHwgTEFTVCB9IF0gWywgLi4uXSB9IF0KICAgICBb IExJTUlUIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvdW50PC9yZXBsYWNlYWJs ZT4gfCBBTEwgfSBdCiAgICAgWyBPRkZTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnN0YXJ0PC9yZXBsYWNlYWJsZT4gWyBST1cgfCBST1dTIF0gXQogICAgIFsgRkVUQ0ggeyBGSVJT VCB8IE5FWFQgfSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb3VudDwvcmVwbGFj ZWFibGU+IF0geyBST1cgfCBST1dTIH0geyBPTkxZIHwgV0lUSCBUSUVTIH0gXQpkaWZmIC0tZ2l0 IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfbWlzYy5vdXQgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9taXNjLm91dAppbmRleCBmZmIzNzdmNWY1NC4u Mjk3NDg4NDY0MzkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBn c3FsX21pc2Mub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX21p c2Mub3V0CkBAIC0xMDEsMyArMTAxLDE1NiBAQCBiZWdpbgogZW5kICQkOwogTk9USUNFOiAgci54 ID0gMQogTk9USUNFOiAgci4iZm9yZWFjaCIgPSAyCistLSBUZXN0IE9SREVSIEJZIEFMTCBpbiBQ TC9wZ1NRTCBjb250ZXh0cworLS0gVGhpcyB0ZXN0cyB0aGUgUExwZ1NRTF9FeHByIGdyYW1tYXIg cnVsZSBjaGFuZ2VzIGZvciBPUkRFUiBCWSBBTEwgc3VwcG9ydAorLS0gQ3JlYXRlIHRlc3QgdGFi bGUgZm9yIE9SREVSIEJZIEFMTCB0ZXN0cworY3JlYXRlIHRhYmxlIHBscGdzcWxfb3JkZXJfdGVz dCAoCisgIGEgaW50LAorICBiIHRleHQsCisgIGMgZmxvYXQKKyk7CitpbnNlcnQgaW50byBwbHBn c3FsX29yZGVyX3Rlc3QgdmFsdWVzCisgICgzLCAnZm9vJywgMS41KSwKKyAgKDEsICdiYXInLCAy LjUpLAorICAoMiwgJ2JheicsIDEuNSksCisgICgxLCAncXV4JywgMS41KTsKKy0tIFRlc3QgT1JE RVIgQlkgQUxMIGluIEZPUiBsb29wCitkbyAkJAorZGVjbGFyZQorICByIHJlY29yZDsKK2JlZ2lu CisgIHJhaXNlIG5vdGljZSAnRk9SIGxvb3Agd2l0aCBPUkRFUiBCWSBBTEw6JzsKKyAgZm9yIHIg aW4gc2VsZWN0ICogZnJvbSBwbHBnc3FsX29yZGVyX3Rlc3Qgb3JkZXIgYnkgYWxsCisgIGxvb3AK KyAgICByYWlzZSBub3RpY2UgJ2E9JSwgYj0lLCBjPSUnLCByLmEsIHIuYiwgci5jOworICBlbmQg bG9vcDsKK2VuZCAkJDsKK05PVElDRTogIEZPUiBsb29wIHdpdGggT1JERVIgQlkgQUxMOgorTk9U SUNFOiAgYT0xLCBiPWJhciwgYz0yLjUKK05PVElDRTogIGE9MSwgYj1xdXgsIGM9MS41CitOT1RJ Q0U6ICBhPTIsIGI9YmF6LCBjPTEuNQorTk9USUNFOiAgYT0zLCBiPWZvbywgYz0xLjUKKy0tIFRl c3QgT1JERVIgQlkgQUxMIERFU0MgaW4gRk9SIGxvb3AKK2RvICQkCitkZWNsYXJlCisgIHIgcmVj b3JkOworYmVnaW4KKyAgcmFpc2Ugbm90aWNlICdGT1IgbG9vcCB3aXRoIE9SREVSIEJZIEFMTCBE RVNDOic7CisgIGZvciByIGluIHNlbGVjdCAqIGZyb20gcGxwZ3NxbF9vcmRlcl90ZXN0IG9yZGVy IGJ5IGFsbCBkZXNjCisgIGxvb3AKKyAgICByYWlzZSBub3RpY2UgJ2E9JSwgYj0lLCBjPSUnLCBy LmEsIHIuYiwgci5jOworICBlbmQgbG9vcDsKK2VuZCAkJDsKK05PVElDRTogIEZPUiBsb29wIHdp dGggT1JERVIgQlkgQUxMIERFU0M6CitOT1RJQ0U6ICBhPTMsIGI9Zm9vLCBjPTEuNQorTk9USUNF OiAgYT0yLCBiPWJheiwgYz0xLjUKK05PVElDRTogIGE9MSwgYj1xdXgsIGM9MS41CitOT1RJQ0U6 ICBhPTEsIGI9YmFyLCBjPTIuNQorLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBjdXJzb3IKK2Rv ICQkCitkZWNsYXJlCisgIGN1ciBjdXJzb3IgZm9yIHNlbGVjdCAqIGZyb20gcGxwZ3NxbF9vcmRl cl90ZXN0IG9yZGVyIGJ5IGFsbDsKKyAgciByZWNvcmQ7CitiZWdpbgorICByYWlzZSBub3RpY2Ug J0N1cnNvciB3aXRoIE9SREVSIEJZIEFMTDonOworICBvcGVuIGN1cjsKKyAgbG9vcAorICAgIGZl dGNoIGN1ciBpbnRvIHI7CisgICAgZXhpdCB3aGVuIG5vdCBmb3VuZDsKKyAgICByYWlzZSBub3Rp Y2UgJ2E9JSwgYj0lLCBjPSUnLCByLmEsIHIuYiwgci5jOworICBlbmQgbG9vcDsKKyAgY2xvc2Ug Y3VyOworZW5kICQkOworTk9USUNFOiAgQ3Vyc29yIHdpdGggT1JERVIgQlkgQUxMOgorTk9USUNF OiAgYT0xLCBiPWJhciwgYz0yLjUKK05PVElDRTogIGE9MSwgYj1xdXgsIGM9MS41CitOT1RJQ0U6 ICBhPTIsIGI9YmF6LCBjPTEuNQorTk9USUNFOiAgYT0zLCBiPWZvbywgYz0xLjUKKy0tIFRlc3Qg T1JERVIgQlkgQUxMIEFTQyBOVUxMUyBGSVJTVCBpbiBjdXJzb3IKK2RvICQkCitkZWNsYXJlCisg IGN1ciBjdXJzb3IgZm9yIHNlbGVjdCAqIGZyb20gcGxwZ3NxbF9vcmRlcl90ZXN0IG9yZGVyIGJ5 IGFsbCBhc2MgbnVsbHMgZmlyc3Q7CisgIHIgcmVjb3JkOworYmVnaW4KKyAgcmFpc2Ugbm90aWNl ICdDdXJzb3Igd2l0aCBPUkRFUiBCWSBBTEwgQVNDIE5VTExTIEZJUlNUOic7CisgIG9wZW4gY3Vy OworICBsb29wCisgICAgZmV0Y2ggY3VyIGludG8gcjsKKyAgICBleGl0IHdoZW4gbm90IGZvdW5k OworICAgIHJhaXNlIG5vdGljZSAnYT0lLCBiPSUsIGM9JScsIHIuYSwgci5iLCByLmM7CisgIGVu ZCBsb29wOworICBjbG9zZSBjdXI7CitlbmQgJCQ7CitOT1RJQ0U6ICBDdXJzb3Igd2l0aCBPUkRF UiBCWSBBTEwgQVNDIE5VTExTIEZJUlNUOgorTk9USUNFOiAgYT0xLCBiPWJhciwgYz0yLjUKK05P VElDRTogIGE9MSwgYj1xdXgsIGM9MS41CitOT1RJQ0U6ICBhPTIsIGI9YmF6LCBjPTEuNQorTk9U SUNFOiAgYT0zLCBiPWZvbywgYz0xLjUKKy0tIFRlc3QgT1JERVIgQlkgQUxMIGluIGZ1bmN0aW9u IHdpdGggUkVUVVJOIFFVRVJZCitjcmVhdGUgZnVuY3Rpb24gdGVzdF9vcmRlcl9ieV9hbGxfcmV0 dXJuKCkKK3JldHVybnMgdGFibGUoYSBpbnQsIGIgdGV4dCwgYyBmbG9hdCkgYXMgJCQKK2JlZ2lu CisgIHJldHVybiBxdWVyeSBzZWxlY3QgKiBmcm9tIHBscGdzcWxfb3JkZXJfdGVzdCBvcmRlciBi eSBhbGw7CitlbmQ7CiskJCBsYW5ndWFnZSBwbHBnc3FsOworc2VsZWN0ICogZnJvbSB0ZXN0X29y ZGVyX2J5X2FsbF9yZXR1cm4oKTsKKyBhIHwgIGIgIHwgIGMKKy0tLSstLS0tLSstLS0tLQorIDEg fCBiYXIgfCAyLjUKKyAxIHwgcXV4IHwgMS41CisgMiB8IGJheiB8IDEuNQorIDMgfCBmb28gfCAx LjUKKyg0IHJvd3MpCisKKy0tIFRlc3QgT1JERVIgQlkgQUxMIERFU0MgaW4gZnVuY3Rpb24gd2l0 aCBSRVRVUk4gUVVFUlkKK2NyZWF0ZSBmdW5jdGlvbiB0ZXN0X29yZGVyX2J5X2FsbF9kZXNjX3Jl dHVybigpCityZXR1cm5zIHRhYmxlKGEgaW50LCBiIHRleHQsIGMgZmxvYXQpIGFzICQkCitiZWdp bgorICByZXR1cm4gcXVlcnkgc2VsZWN0ICogZnJvbSBwbHBnc3FsX29yZGVyX3Rlc3Qgb3JkZXIg YnkgYWxsIGRlc2M7CitlbmQ7CiskJCBsYW5ndWFnZSBwbHBnc3FsOworc2VsZWN0ICogZnJvbSB0 ZXN0X29yZGVyX2J5X2FsbF9kZXNjX3JldHVybigpOworIGEgfCAgYiAgfCAgYworLS0tKy0tLS0t Ky0tLS0tCisgMyB8IGZvbyB8IDEuNQorIDIgfCBiYXogfCAxLjUKKyAxIHwgcXV4IHwgMS41Cisg MSB8IGJhciB8IDIuNQorKDQgcm93cykKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBzdWJz ZXQgb2YgY29sdW1ucworZG8gJCQKK2RlY2xhcmUKKyAgciByZWNvcmQ7CitiZWdpbgorICByYWlz ZSBub3RpY2UgJ09SREVSIEJZIEFMTCB3aXRoIGNvbHVtbiBzdWJzZXQ6JzsKKyAgZm9yIHIgaW4g c2VsZWN0IGEsIGIgZnJvbSBwbHBnc3FsX29yZGVyX3Rlc3Qgb3JkZXIgYnkgYWxsCisgIGxvb3AK KyAgICByYWlzZSBub3RpY2UgJ2E9JSwgYj0lJywgci5hLCByLmI7CisgIGVuZCBsb29wOworZW5k ICQkOworTk9USUNFOiAgT1JERVIgQlkgQUxMIHdpdGggY29sdW1uIHN1YnNldDoKK05PVElDRTog IGE9MSwgYj1iYXIKK05PVElDRTogIGE9MSwgYj1xdXgKK05PVElDRTogIGE9MiwgYj1iYXoKK05P VElDRTogIGE9MywgYj1mb28KKy0tIFRlc3QgT1JERVIgQlkgQUxMIE5VTExTIExBU1QKK2RvICQk CitkZWNsYXJlCisgIHIgcmVjb3JkOworYmVnaW4KKyAgcmFpc2Ugbm90aWNlICdPUkRFUiBCWSBB TEwgTlVMTFMgTEFTVDonOworICBmb3IgciBpbiBzZWxlY3QgKiBmcm9tIHBscGdzcWxfb3JkZXJf dGVzdCBvcmRlciBieSBhbGwgbnVsbHMgbGFzdAorICBsb29wCisgICAgcmFpc2Ugbm90aWNlICdh PSUsIGI9JSwgYz0lJywgci5hLCByLmIsIHIuYzsKKyAgZW5kIGxvb3A7CitlbmQgJCQ7CitOT1RJ Q0U6ICBPUkRFUiBCWSBBTEwgTlVMTFMgTEFTVDoKK05PVElDRTogIGE9MSwgYj1iYXIsIGM9Mi41 CitOT1RJQ0U6ICBhPTEsIGI9cXV4LCBjPTEuNQorTk9USUNFOiAgYT0yLCBiPWJheiwgYz0xLjUK K05PVElDRTogIGE9MywgYj1mb28sIGM9MS41CistLSBDbGVhbiB1cAorZHJvcCBmdW5jdGlvbiB0 ZXN0X29yZGVyX2J5X2FsbF9yZXR1cm4oKTsKK2Ryb3AgZnVuY3Rpb24gdGVzdF9vcmRlcl9ieV9h bGxfZGVzY19yZXR1cm4oKTsKK2Ryb3AgdGFibGUgcGxwZ3NxbF9vcmRlcl90ZXN0OwpkaWZmIC0t Z2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX21pc2Muc3FsIGIvc3JjL3BsL3Bs cGdzcWwvc3JjL3NxbC9wbHBnc3FsX21pc2Muc3FsCmluZGV4IDBiYzM5ZmNmMzI1Li5iZmM3MTAz MTQ2YiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX21pc2Muc3Fs CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9taXNjLnNxbApAQCAtNjYsMyAr NjYsMTI0IEBAIGJlZ2luCiAgIHJhaXNlIG5vdGljZSAnci54ID0gJScsIHIueDsKICAgcmFpc2Ug bm90aWNlICdyLiJmb3JlYWNoIiA9ICUnLCByLiJmb3JlYWNoIjsgIC0tIG9rCiBlbmQgJCQ7CisK Ky0tIFRlc3QgT1JERVIgQlkgQUxMIGluIFBML3BnU1FMIGNvbnRleHRzCistLSBUaGlzIHRlc3Rz IHRoZSBQTHBnU1FMX0V4cHIgZ3JhbW1hciBydWxlIGNoYW5nZXMgZm9yIE9SREVSIEJZIEFMTCBz dXBwb3J0CisKKy0tIENyZWF0ZSB0ZXN0IHRhYmxlIGZvciBPUkRFUiBCWSBBTEwgdGVzdHMKK2Ny ZWF0ZSB0YWJsZSBwbHBnc3FsX29yZGVyX3Rlc3QgKAorICBhIGludCwKKyAgYiB0ZXh0LAorICBj IGZsb2F0CispOworCitpbnNlcnQgaW50byBwbHBnc3FsX29yZGVyX3Rlc3QgdmFsdWVzCisgICgz LCAnZm9vJywgMS41KSwKKyAgKDEsICdiYXInLCAyLjUpLAorICAoMiwgJ2JheicsIDEuNSksCisg ICgxLCAncXV4JywgMS41KTsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgaW4gRk9SIGxvb3AKK2Rv ICQkCitkZWNsYXJlCisgIHIgcmVjb3JkOworYmVnaW4KKyAgcmFpc2Ugbm90aWNlICdGT1IgbG9v cCB3aXRoIE9SREVSIEJZIEFMTDonOworICBmb3IgciBpbiBzZWxlY3QgKiBmcm9tIHBscGdzcWxf b3JkZXJfdGVzdCBvcmRlciBieSBhbGwKKyAgbG9vcAorICAgIHJhaXNlIG5vdGljZSAnYT0lLCBi PSUsIGM9JScsIHIuYSwgci5iLCByLmM7CisgIGVuZCBsb29wOworZW5kICQkOworCistLSBUZXN0 IE9SREVSIEJZIEFMTCBERVNDIGluIEZPUiBsb29wCitkbyAkJAorZGVjbGFyZQorICByIHJlY29y ZDsKK2JlZ2luCisgIHJhaXNlIG5vdGljZSAnRk9SIGxvb3Agd2l0aCBPUkRFUiBCWSBBTEwgREVT QzonOworICBmb3IgciBpbiBzZWxlY3QgKiBmcm9tIHBscGdzcWxfb3JkZXJfdGVzdCBvcmRlciBi eSBhbGwgZGVzYworICBsb29wCisgICAgcmFpc2Ugbm90aWNlICdhPSUsIGI9JSwgYz0lJywgci5h LCByLmIsIHIuYzsKKyAgZW5kIGxvb3A7CitlbmQgJCQ7CisKKy0tIFRlc3QgT1JERVIgQlkgQUxM IHdpdGggY3Vyc29yCitkbyAkJAorZGVjbGFyZQorICBjdXIgY3Vyc29yIGZvciBzZWxlY3QgKiBm cm9tIHBscGdzcWxfb3JkZXJfdGVzdCBvcmRlciBieSBhbGw7CisgIHIgcmVjb3JkOworYmVnaW4K KyAgcmFpc2Ugbm90aWNlICdDdXJzb3Igd2l0aCBPUkRFUiBCWSBBTEw6JzsKKyAgb3BlbiBjdXI7 CisgIGxvb3AKKyAgICBmZXRjaCBjdXIgaW50byByOworICAgIGV4aXQgd2hlbiBub3QgZm91bmQ7 CisgICAgcmFpc2Ugbm90aWNlICdhPSUsIGI9JSwgYz0lJywgci5hLCByLmIsIHIuYzsKKyAgZW5k IGxvb3A7CisgIGNsb3NlIGN1cjsKK2VuZCAkJDsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgQVND IE5VTExTIEZJUlNUIGluIGN1cnNvcgorZG8gJCQKK2RlY2xhcmUKKyAgY3VyIGN1cnNvciBmb3Ig c2VsZWN0ICogZnJvbSBwbHBnc3FsX29yZGVyX3Rlc3Qgb3JkZXIgYnkgYWxsIGFzYyBudWxscyBm aXJzdDsKKyAgciByZWNvcmQ7CitiZWdpbgorICByYWlzZSBub3RpY2UgJ0N1cnNvciB3aXRoIE9S REVSIEJZIEFMTCBBU0MgTlVMTFMgRklSU1Q6JzsKKyAgb3BlbiBjdXI7CisgIGxvb3AKKyAgICBm ZXRjaCBjdXIgaW50byByOworICAgIGV4aXQgd2hlbiBub3QgZm91bmQ7CisgICAgcmFpc2Ugbm90 aWNlICdhPSUsIGI9JSwgYz0lJywgci5hLCByLmIsIHIuYzsKKyAgZW5kIGxvb3A7CisgIGNsb3Nl IGN1cjsKK2VuZCAkJDsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgaW4gZnVuY3Rpb24gd2l0aCBS RVRVUk4gUVVFUlkKK2NyZWF0ZSBmdW5jdGlvbiB0ZXN0X29yZGVyX2J5X2FsbF9yZXR1cm4oKQor cmV0dXJucyB0YWJsZShhIGludCwgYiB0ZXh0LCBjIGZsb2F0KSBhcyAkJAorYmVnaW4KKyAgcmV0 dXJuIHF1ZXJ5IHNlbGVjdCAqIGZyb20gcGxwZ3NxbF9vcmRlcl90ZXN0IG9yZGVyIGJ5IGFsbDsK K2VuZDsKKyQkIGxhbmd1YWdlIHBscGdzcWw7CisKK3NlbGVjdCAqIGZyb20gdGVzdF9vcmRlcl9i eV9hbGxfcmV0dXJuKCk7CisKKy0tIFRlc3QgT1JERVIgQlkgQUxMIERFU0MgaW4gZnVuY3Rpb24g d2l0aCBSRVRVUk4gUVVFUlkKK2NyZWF0ZSBmdW5jdGlvbiB0ZXN0X29yZGVyX2J5X2FsbF9kZXNj X3JldHVybigpCityZXR1cm5zIHRhYmxlKGEgaW50LCBiIHRleHQsIGMgZmxvYXQpIGFzICQkCiti ZWdpbgorICByZXR1cm4gcXVlcnkgc2VsZWN0ICogZnJvbSBwbHBnc3FsX29yZGVyX3Rlc3Qgb3Jk ZXIgYnkgYWxsIGRlc2M7CitlbmQ7CiskJCBsYW5ndWFnZSBwbHBnc3FsOworCitzZWxlY3QgKiBm cm9tIHRlc3Rfb3JkZXJfYnlfYWxsX2Rlc2NfcmV0dXJuKCk7CisKKy0tIFRlc3QgT1JERVIgQlkg QUxMIHdpdGggc3Vic2V0IG9mIGNvbHVtbnMKK2RvICQkCitkZWNsYXJlCisgIHIgcmVjb3JkOwor YmVnaW4KKyAgcmFpc2Ugbm90aWNlICdPUkRFUiBCWSBBTEwgd2l0aCBjb2x1bW4gc3Vic2V0Oic7 CisgIGZvciByIGluIHNlbGVjdCBhLCBiIGZyb20gcGxwZ3NxbF9vcmRlcl90ZXN0IG9yZGVyIGJ5 IGFsbAorICBsb29wCisgICAgcmFpc2Ugbm90aWNlICdhPSUsIGI9JScsIHIuYSwgci5iOworICBl bmQgbG9vcDsKK2VuZCAkJDsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgTlVMTFMgTEFTVAorZG8g JCQKK2RlY2xhcmUKKyAgciByZWNvcmQ7CitiZWdpbgorICByYWlzZSBub3RpY2UgJ09SREVSIEJZ IEFMTCBOVUxMUyBMQVNUOic7CisgIGZvciByIGluIHNlbGVjdCAqIGZyb20gcGxwZ3NxbF9vcmRl cl90ZXN0IG9yZGVyIGJ5IGFsbCBudWxscyBsYXN0CisgIGxvb3AKKyAgICByYWlzZSBub3RpY2Ug J2E9JSwgYj0lLCBjPSUnLCByLmEsIHIuYiwgci5jOworICBlbmQgbG9vcDsKK2VuZCAkJDsKKwor LS0gQ2xlYW4gdXAKK2Ryb3AgZnVuY3Rpb24gdGVzdF9vcmRlcl9ieV9hbGxfcmV0dXJuKCk7Citk cm9wIGZ1bmN0aW9uIHRlc3Rfb3JkZXJfYnlfYWxsX2Rlc2NfcmV0dXJuKCk7Citkcm9wIHRhYmxl IHBscGdzcWxfb3JkZXJfdGVzdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb3JkZXJfYnlfYWxsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3JkZXJfYnlf YWxsLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODQwYWY4OWIx NmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29yZGVyX2J5 X2FsbC5vdXQKQEAgLTAsMCArMSw2MTQgQEAKKy0tCistLSBUZXN0IE9SREVSIEJZIEFMTAorLS0K K0NSRUFURSBURU1QIFRBQkxFIHRlc3Rfb3JkZXIgKAorICBhIGludCwKKyAgYiB0ZXh0LAorICBj IGZsb2F0CispOworSU5TRVJUIElOVE8gdGVzdF9vcmRlciBWQUxVRVMKKyAgKDMsICdmb28nLCAx LjUpLAorICAoMSwgJ2JhcicsIDIuNSksCisgICgyLCAnYmF6JywgMS41KSwKKyAgKDEsICdxdXgn LCAxLjUpOworLS0gQmFzaWMgT1JERVIgQlkgQUxMIHRlc3QgKGRlZmF1bHQgQVNDKQorU0VMRUNU ICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTDsKKyBhIHwgIGIgIHwgIGMgIAorLS0tKy0t LS0tKy0tLS0tCisgMSB8IGJhciB8IDIuNQorIDEgfCBxdXggfCAxLjUKKyAyIHwgYmF6IHwgMS41 CisgMyB8IGZvbyB8IDEuNQorKDQgcm93cykKKworLS0gT1JERVIgQlkgQUxMIEFTQyAoZXhwbGlj aXQpCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxMIEFTQzsKKyBhIHwgIGIg IHwgIGMgIAorLS0tKy0tLS0tKy0tLS0tCisgMSB8IGJhciB8IDIuNQorIDEgfCBxdXggfCAxLjUK KyAyIHwgYmF6IHwgMS41CisgMyB8IGZvbyB8IDEuNQorKDQgcm93cykKKworLS0gT1JERVIgQlkg QUxMIERFU0MKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgREVTQzsKKyBh IHwgIGIgIHwgIGMgIAorLS0tKy0tLS0tKy0tLS0tCisgMyB8IGZvbyB8IDEuNQorIDIgfCBiYXog fCAxLjUKKyAxIHwgcXV4IHwgMS41CisgMSB8IGJhciB8IDIuNQorKDQgcm93cykKKworLS0gT1JE RVIgQlkgQUxMIHdpdGggTlVMTFMgRklSU1QKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRF UiBCWSBBTEwgTlVMTFMgRklSU1Q7CisgYSB8ICBiICB8ICBjICAKKy0tLSstLS0tLSstLS0tLQor IDEgfCBiYXIgfCAyLjUKKyAxIHwgcXV4IHwgMS41CisgMiB8IGJheiB8IDEuNQorIDMgfCBmb28g fCAxLjUKKyg0IHJvd3MpCisKKy0tIE9SREVSIEJZIEFMTCBERVNDIE5VTExTIExBU1QKK1NFTEVD VCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgREVTQyBOVUxMUyBMQVNUOworIGEgfCAg YiAgfCAgYyAgCistLS0rLS0tLS0rLS0tLS0KKyAzIHwgZm9vIHwgMS41CisgMiB8IGJheiB8IDEu NQorIDEgfCBxdXggfCAxLjUKKyAxIHwgYmFyIHwgMi41CisoNCByb3dzKQorCistLSBPUkRFUiBC WSBBTEwgd2l0aCBzcGVjaWZpYyBjb2x1bW5zIGluIFNFTEVDVAorU0VMRUNUIGEsIGIgRlJPTSB0 ZXN0X29yZGVyIE9SREVSIEJZIEFMTDsKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGJhcgor IDEgfCBxdXgKKyAyIHwgYmF6CisgMyB8IGZvbworKDQgcm93cykKKworLS0gT1JERVIgQlkgQUxM IHdpdGggZXhwcmVzc2lvbnMKK1NFTEVDVCBhLCBiLCBhICsgYyBBUyBzdW0gRlJPTSB0ZXN0X29y ZGVyIE9SREVSIEJZIEFMTDsKKyBhIHwgIGIgIHwgc3VtIAorLS0tKy0tLS0tKy0tLS0tCisgMSB8 IGJhciB8IDMuNQorIDEgfCBxdXggfCAyLjUKKyAyIHwgYmF6IHwgMy41CisgMyB8IGZvbyB8IDQu NQorKDQgcm93cykKKworLS0gT1JERVIgQlkgQUxMIHdpdGggYWdncmVnYXRlcyAoc2hvdWxkIG9u bHkgb3JkZXIgYnkgbm9uLWFnZ3JlZ2F0ZWQgY29sdW1ucykKK1NFTEVDVCBhLCBDT1VOVCgqKSBG Uk9NIHRlc3Rfb3JkZXIgR1JPVVAgQlkgYSBPUkRFUiBCWSBBTEw7CisgYSB8IGNvdW50IAorLS0t Ky0tLS0tLS0KKyAxIHwgICAgIDIKKyAyIHwgICAgIDEKKyAzIHwgICAgIDEKKygzIHJvd3MpCisK Ky0tIE9SREVSIEJZIEFMTCB3aXRoIFdIRVJFIGNsYXVzZQorU0VMRUNUICogRlJPTSB0ZXN0X29y ZGVyIFdIRVJFIGEgPiAxIE9SREVSIEJZIEFMTDsKKyBhIHwgIGIgIHwgIGMgIAorLS0tKy0tLS0t Ky0tLS0tCisgMiB8IGJheiB8IDEuNQorIDMgfCBmb28gfCAxLjUKKygyIHJvd3MpCisKKy0tIFZl cmlmeSB0aGF0IE9SREVSIEJZIEFMTCBpcyBlcXVpdmFsZW50IHRvIGxpc3RpbmcgYWxsIGNvbHVt bnMKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEw7CisgYSB8ICBiICB8ICBj ICAKKy0tLSstLS0tLSstLS0tLQorIDEgfCBiYXIgfCAyLjUKKyAxIHwgcXV4IHwgMS41CisgMiB8 IGJheiB8IDEuNQorIDMgfCBmb28gfCAxLjUKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVz dF9vcmRlciBPUkRFUiBCWSBhLCBiLCBjOworIGEgfCAgYiAgfCAgYyAgCistLS0rLS0tLS0rLS0t LS0KKyAxIHwgYmFyIHwgMi41CisgMSB8IHF1eCB8IDEuNQorIDIgfCBiYXogfCAxLjUKKyAzIHwg Zm9vIHwgMS41CisoNCByb3dzKQorCistLSBPUkRFUiBCWSBBTEwgd2l0aCBMSU1JVAorU0VMRUNU ICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBMSU1JVCAyOworIGEgfCAgYiAgfCAgYyAg CistLS0rLS0tLS0rLS0tLS0KKyAxIHwgYmFyIHwgMi41CisgMSB8IHF1eCB8IDEuNQorKDIgcm93 cykKKworLS0gVGVzdCBkZXBhcnNpbmcgb2YgT1JERVIgQlkgQUxMIChydWxldXRpbHMuYykKKy0t IFZlcmlmeSB0aGF0IE9SREVSIEJZIEFMTCB3aXRoIG1vZGlmaWVycyBpcyBjb3JyZWN0bHkgcHJl c2VydmVkIGluIHZpZXcgZGVmaW5pdGlvbnMKKy0tIFZpZXcgd2l0aCBPUkRFUiBCWSBBTEwgKGRl ZmF1bHQpCitDUkVBVEUgVklFVyB2aWV3X29yZGVyX2FsbCBBUworICBTRUxFQ1QgKiBGUk9NIHRl c3Rfb3JkZXIgT1JERVIgQlkgQUxMOworTk9USUNFOiAgdmlldyAidmlld19vcmRlcl9hbGwiIHdp bGwgYmUgYSB0ZW1wb3JhcnkgdmlldworREVUQUlMOiAgSXQgZGVwZW5kcyBvbiB0ZW1wb3Jhcnkg dGFibGUgdGVzdF9vcmRlci4KK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmlld19vcmRlcl9hbGwn OjpyZWdjbGFzcywgdHJ1ZSk7CisgICBwZ19nZXRfdmlld2RlZiAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgU0VMRUNUIGEsICAgICAgICArCisgICAgIGIsICAgICAgICAgICAgKworICAgICBj ICAgICAgICAgICAgICsKKyAgICBGUk9NIHRlc3Rfb3JkZXIrCisgICBPUkRFUiBCWSBBTEw7Ciso MSByb3cpCisKKy0tIFZpZXcgd2l0aCBPUkRFUiBCWSBBTEwgQVNDCitDUkVBVEUgVklFVyB2aWV3 X29yZGVyX2FsbF9hc2MgQVMKKyAgU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFM TCBBU0M7CitOT1RJQ0U6ICB2aWV3ICJ2aWV3X29yZGVyX2FsbF9hc2MiIHdpbGwgYmUgYSB0ZW1w b3JhcnkgdmlldworREVUQUlMOiAgSXQgZGVwZW5kcyBvbiB0ZW1wb3JhcnkgdGFibGUgdGVzdF9v cmRlci4KK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmlld19vcmRlcl9hbGxfYXNjJzo6cmVnY2xh c3MsIHRydWUpOworICAgcGdfZ2V0X3ZpZXdkZWYgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisg IFNFTEVDVCBhLCAgICAgICAgKworICAgICBiLCAgICAgICAgICAgICsKKyAgICAgYyAgICAgICAg ICAgICArCisgICAgRlJPTSB0ZXN0X29yZGVyKworICAgT1JERVIgQlkgQUxMOworKDEgcm93KQor CistLSBWaWV3IHdpdGggT1JERVIgQlkgQUxMIERFU0MKK0NSRUFURSBWSUVXIHZpZXdfb3JkZXJf YWxsX2Rlc2MgQVMKKyAgU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBERVND OworTk9USUNFOiAgdmlldyAidmlld19vcmRlcl9hbGxfZGVzYyIgd2lsbCBiZSBhIHRlbXBvcmFy eSB2aWV3CitERVRBSUw6ICBJdCBkZXBlbmRzIG9uIHRlbXBvcmFyeSB0YWJsZSB0ZXN0X29yZGVy LgorU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2aWV3X29yZGVyX2FsbF9kZXNjJzo6cmVnY2xhc3Ms IHRydWUpOworICAgIHBnX2dldF92aWV3ZGVmICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICBTRUxFQ1QgYSwgICAgICAgICAgKworICAgICBiLCAgICAgICAgICAgICAgKworICAgICBjICAg ICAgICAgICAgICAgKworICAgIEZST00gdGVzdF9vcmRlciAgKworICAgT1JERVIgQlkgQUxMIERF U0M7CisoMSByb3cpCisKKy0tIFZpZXcgd2l0aCBPUkRFUiBCWSBBTEwgTlVMTFMgRklSU1QKK0NS RUFURSBWSUVXIHZpZXdfb3JkZXJfYWxsX251bGxzX2ZpcnN0IEFTCisgIFNFTEVDVCAqIEZST00g dGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgTlVMTFMgRklSU1Q7CitOT1RJQ0U6ICB2aWV3ICJ2aWV3 X29yZGVyX2FsbF9udWxsc19maXJzdCIgd2lsbCBiZSBhIHRlbXBvcmFyeSB2aWV3CitERVRBSUw6 ICBJdCBkZXBlbmRzIG9uIHRlbXBvcmFyeSB0YWJsZSB0ZXN0X29yZGVyLgorU0VMRUNUIHBnX2dl dF92aWV3ZGVmKCd2aWV3X29yZGVyX2FsbF9udWxsc19maXJzdCc6OnJlZ2NsYXNzLCB0cnVlKTsK KyAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICBTRUxFQ1QgYSwgICAgICAgICAgICAgICAgICsKKyAgICAgYiwgICAgICAgICAgICAg ICAgICAgICArCisgICAgIGMgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gdGVzdF9v cmRlciAgICAgICAgICsKKyAgIE9SREVSIEJZIEFMTCBOVUxMUyBGSVJTVDsKKygxIHJvdykKKwor LS0gVmlldyB3aXRoIE9SREVSIEJZIEFMTCBOVUxMUyBMQVNUCitDUkVBVEUgVklFVyB2aWV3X29y ZGVyX2FsbF9udWxsc19sYXN0IEFTCisgIFNFTEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBC WSBBTEwgTlVMTFMgTEFTVDsKK05PVElDRTogIHZpZXcgInZpZXdfb3JkZXJfYWxsX251bGxzX2xh c3QiIHdpbGwgYmUgYSB0ZW1wb3JhcnkgdmlldworREVUQUlMOiAgSXQgZGVwZW5kcyBvbiB0ZW1w b3JhcnkgdGFibGUgdGVzdF9vcmRlci4KK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmlld19vcmRl cl9hbGxfbnVsbHNfbGFzdCc6OnJlZ2NsYXNzLCB0cnVlKTsKKyAgIHBnX2dldF92aWV3ZGVmICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgYSwgICAgICAgICsKKyAgICAgYiwgICAg ICAgICAgICArCisgICAgIGMgICAgICAgICAgICAgKworICAgIEZST00gdGVzdF9vcmRlcisKKyAg IE9SREVSIEJZIEFMTDsKKygxIHJvdykKKworLS0gVmlldyB3aXRoIE9SREVSIEJZIEFMTCBERVND IE5VTExTIEZJUlNUCitDUkVBVEUgVklFVyB2aWV3X29yZGVyX2FsbF9kZXNjX251bGxzX2ZpcnN0 IEFTCisgIFNFTEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgREVTQyBOVUxMUyBG SVJTVDsKK05PVElDRTogIHZpZXcgInZpZXdfb3JkZXJfYWxsX2Rlc2NfbnVsbHNfZmlyc3QiIHdp bGwgYmUgYSB0ZW1wb3JhcnkgdmlldworREVUQUlMOiAgSXQgZGVwZW5kcyBvbiB0ZW1wb3Jhcnkg dGFibGUgdGVzdF9vcmRlci4KK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmlld19vcmRlcl9hbGxf ZGVzY19udWxsc19maXJzdCc6OnJlZ2NsYXNzLCB0cnVlKTsKKyAgICBwZ19nZXRfdmlld2RlZiAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGEsICAgICAgICAgICsKKyAgICAg YiwgICAgICAgICAgICAgICsKKyAgICAgYyAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHRlc3Rf b3JkZXIgICsKKyAgIE9SREVSIEJZIEFMTCBERVNDOworKDEgcm93KQorCistLSBWaWV3IHdpdGgg T1JERVIgQlkgQUxMIEFTQyBOVUxMUyBMQVNUCitDUkVBVEUgVklFVyB2aWV3X29yZGVyX2FsbF9h c2NfbnVsbHNfbGFzdCBBUworICBTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxM IEFTQyBOVUxMUyBMQVNUOworTk9USUNFOiAgdmlldyAidmlld19vcmRlcl9hbGxfYXNjX251bGxz X2xhc3QiIHdpbGwgYmUgYSB0ZW1wb3JhcnkgdmlldworREVUQUlMOiAgSXQgZGVwZW5kcyBvbiB0 ZW1wb3JhcnkgdGFibGUgdGVzdF9vcmRlci4KK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmlld19v cmRlcl9hbGxfYXNjX251bGxzX2xhc3QnOjpyZWdjbGFzcywgdHJ1ZSk7CisgICBwZ19nZXRfdmll d2RlZiAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGEsICAgICAgICArCisgICAg IGIsICAgICAgICAgICAgKworICAgICBjICAgICAgICAgICAgICsKKyAgICBGUk9NIHRlc3Rfb3Jk ZXIrCisgICBPUkRFUiBCWSBBTEw7CisoMSByb3cpCisKKy0tIFZlcmlmeSB0aGUgdmlld3MgYWN0 dWFsbHkgd29yaworU0VMRUNUICogRlJPTSB2aWV3X29yZGVyX2FsbDsKKyBhIHwgIGIgIHwgIGMg IAorLS0tKy0tLS0tKy0tLS0tCisgMSB8IGJhciB8IDIuNQorIDEgfCBxdXggfCAxLjUKKyAyIHwg YmF6IHwgMS41CisgMyB8IGZvbyB8IDEuNQorKDQgcm93cykKKworU0VMRUNUICogRlJPTSB2aWV3 X29yZGVyX2FsbF9kZXNjOworIGEgfCAgYiAgfCAgYyAgCistLS0rLS0tLS0rLS0tLS0KKyAzIHwg Zm9vIHwgMS41CisgMiB8IGJheiB8IDEuNQorIDEgfCBxdXggfCAxLjUKKyAxIHwgYmFyIHwgMi41 CisoNCByb3dzKQorCistLSBDbGVhbiB1cCB2aWV3cworRFJPUCBWSUVXIHZpZXdfb3JkZXJfYWxs OworRFJPUCBWSUVXIHZpZXdfb3JkZXJfYWxsX2FzYzsKK0RST1AgVklFVyB2aWV3X29yZGVyX2Fs bF9kZXNjOworRFJPUCBWSUVXIHZpZXdfb3JkZXJfYWxsX251bGxzX2ZpcnN0OworRFJPUCBWSUVX IHZpZXdfb3JkZXJfYWxsX251bGxzX2xhc3Q7CitEUk9QIFZJRVcgdmlld19vcmRlcl9hbGxfZGVz Y19udWxsc19maXJzdDsKK0RST1AgVklFVyB2aWV3X29yZGVyX2FsbF9hc2NfbnVsbHNfbGFzdDsK Ky0tIFRlc3Qgd2l0aCBOVUxMIHZhbHVlcworQ1JFQVRFIFRFTVAgVEFCTEUgdGVzdF9vcmRlcl9u dWxscyAoCisgIGEgaW50LAorICBiIHRleHQsCisgIGMgZmxvYXQKKyk7CitJTlNFUlQgSU5UTyB0 ZXN0X29yZGVyX251bGxzIFZBTFVFUworICAoMywgJ2ZvbycsIDEuNSksCisgICgxLCAnYmFyJywg Mi41KSwKKyAgKDIsICdiYXonLCAxLjUpLAorICAoMSwgJ3F1eCcsIDEuNSksCisgIChOVUxMLCAn bnVsbF9hJywgMy4wKSwKKyAgKDIsIE5VTEwsIDIuMCksCisgICgzLCAnZm9vJywgTlVMTCk7Cist LSBPUkRFUiBCWSBBTEwgd2l0aCBOVUxMcyAoZGVmYXVsdCBBU0MpCitTRUxFQ1QgKiBGUk9NIHRl c3Rfb3JkZXJfbnVsbHMgT1JERVIgQlkgQUxMOworIGEgfCAgIGIgICAgfCAgYyAgCistLS0rLS0t LS0tLS0rLS0tLS0KKyAxIHwgYmFyICAgIHwgMi41CisgMSB8IHF1eCAgICB8IDEuNQorIDIgfCBi YXogICAgfCAxLjUKKyAyIHwgICAgICAgIHwgICAyCisgMyB8IGZvbyAgICB8IDEuNQorIDMgfCBm b28gICAgfCAgICAKKyAgIHwgbnVsbF9hIHwgICAzCisoNyByb3dzKQorCistLSBPUkRFUiBCWSBB TEwgQVNDIChleHBsaWNpdCkgd2l0aCBOVUxMcworU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251 bGxzIE9SREVSIEJZIEFMTCBBU0M7CisgYSB8ICAgYiAgICB8ICBjICAKKy0tLSstLS0tLS0tLSst LS0tLQorIDEgfCBiYXIgICAgfCAyLjUKKyAxIHwgcXV4ICAgIHwgMS41CisgMiB8IGJheiAgICB8 IDEuNQorIDIgfCAgICAgICAgfCAgIDIKKyAzIHwgZm9vICAgIHwgMS41CisgMyB8IGZvbyAgICB8 ICAgIAorICAgfCBudWxsX2EgfCAgIDMKKyg3IHJvd3MpCisKKy0tIE9SREVSIEJZIEFMTCBERVND IHdpdGggTlVMTHMKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlcl9udWxscyBPUkRFUiBCWSBBTEwg REVTQzsKKyBhIHwgICBiICAgIHwgIGMgIAorLS0tKy0tLS0tLS0tKy0tLS0tCisgICB8IG51bGxf YSB8ICAgMworIDMgfCBmb28gICAgfCAgICAKKyAzIHwgZm9vICAgIHwgMS41CisgMiB8ICAgICAg ICB8ICAgMgorIDIgfCBiYXogICAgfCAxLjUKKyAxIHwgcXV4ICAgIHwgMS41CisgMSB8IGJhciAg ICB8IDIuNQorKDcgcm93cykKKworLS0gT1JERVIgQlkgQUxMIE5VTExTIEZJUlNUICh3aXRoIGRl ZmF1bHQgQVNDKQorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251bGxzIE9SREVSIEJZIEFMTCBO VUxMUyBGSVJTVDsKKyBhIHwgICBiICAgIHwgIGMgIAorLS0tKy0tLS0tLS0tKy0tLS0tCisgICB8 IG51bGxfYSB8ICAgMworIDEgfCBiYXIgICAgfCAyLjUKKyAxIHwgcXV4ICAgIHwgMS41CisgMiB8 ICAgICAgICB8ICAgMgorIDIgfCBiYXogICAgfCAxLjUKKyAzIHwgZm9vICAgIHwgICAgCisgMyB8 IGZvbyAgICB8IDEuNQorKDcgcm93cykKKworLS0gT1JERVIgQlkgQUxMIE5VTExTIExBU1QgKHdp dGggZGVmYXVsdCBBU0MpCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXJfbnVsbHMgT1JERVIgQlkg QUxMIE5VTExTIExBU1Q7CisgYSB8ICAgYiAgICB8ICBjICAKKy0tLSstLS0tLS0tLSstLS0tLQor IDEgfCBiYXIgICAgfCAyLjUKKyAxIHwgcXV4ICAgIHwgMS41CisgMiB8IGJheiAgICB8IDEuNQor IDIgfCAgICAgICAgfCAgIDIKKyAzIHwgZm9vICAgIHwgMS41CisgMyB8IGZvbyAgICB8ICAgIAor ICAgfCBudWxsX2EgfCAgIDMKKyg3IHJvd3MpCisKKy0tIE9SREVSIEJZIEFMTCBBU0MgTlVMTFMg RklSU1QKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlcl9udWxscyBPUkRFUiBCWSBBTEwgQVNDIE5V TExTIEZJUlNUOworIGEgfCAgIGIgICAgfCAgYyAgCistLS0rLS0tLS0tLS0rLS0tLS0KKyAgIHwg bnVsbF9hIHwgICAzCisgMSB8IGJhciAgICB8IDIuNQorIDEgfCBxdXggICAgfCAxLjUKKyAyIHwg ICAgICAgIHwgICAyCisgMiB8IGJheiAgICB8IDEuNQorIDMgfCBmb28gICAgfCAgICAKKyAzIHwg Zm9vICAgIHwgMS41CisoNyByb3dzKQorCistLSBPUkRFUiBCWSBBTEwgREVTQyBOVUxMUyBMQVNU CitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXJfbnVsbHMgT1JERVIgQlkgQUxMIERFU0MgTlVMTFMg TEFTVDsKKyBhIHwgICBiICAgIHwgIGMgIAorLS0tKy0tLS0tLS0tKy0tLS0tCisgMyB8IGZvbyAg ICB8IDEuNQorIDMgfCBmb28gICAgfCAgICAKKyAyIHwgYmF6ICAgIHwgMS41CisgMiB8ICAgICAg ICB8ICAgMgorIDEgfCBxdXggICAgfCAxLjUKKyAxIHwgYmFyICAgIHwgMi41CisgICB8IG51bGxf YSB8ICAgMworKDcgcm93cykKKworLS0gT1JERVIgQlkgQUxMIERFU0MgTlVMTFMgRklSU1QKK1NF TEVDVCAqIEZST00gdGVzdF9vcmRlcl9udWxscyBPUkRFUiBCWSBBTEwgREVTQyBOVUxMUyBGSVJT VDsKKyBhIHwgICBiICAgIHwgIGMgIAorLS0tKy0tLS0tLS0tKy0tLS0tCisgICB8IG51bGxfYSB8 ICAgMworIDMgfCBmb28gICAgfCAgICAKKyAzIHwgZm9vICAgIHwgMS41CisgMiB8ICAgICAgICB8 ICAgMgorIDIgfCBiYXogICAgfCAxLjUKKyAxIHwgcXV4ICAgIHwgMS41CisgMSB8IGJhciAgICB8 IDIuNQorKDcgcm93cykKKworLS0gVmVyaWZ5IE9SREVSIEJZIEFMTCBERVNDIGlzIGVxdWl2YWxl bnQgdG8gbGlzdGluZyBhbGwgY29sdW1ucyBERVNDCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXJf bnVsbHMgT1JERVIgQlkgQUxMIERFU0M7CisgYSB8ICAgYiAgICB8ICBjICAKKy0tLSstLS0tLS0t LSstLS0tLQorICAgfCBudWxsX2EgfCAgIDMKKyAzIHwgZm9vICAgIHwgICAgCisgMyB8IGZvbyAg ICB8IDEuNQorIDIgfCAgICAgICAgfCAgIDIKKyAyIHwgYmF6ICAgIHwgMS41CisgMSB8IHF1eCAg ICB8IDEuNQorIDEgfCBiYXIgICAgfCAyLjUKKyg3IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVz dF9vcmRlcl9udWxscyBPUkRFUiBCWSBhIERFU0MsIGIgREVTQywgYyBERVNDOworIGEgfCAgIGIg ICAgfCAgYyAgCistLS0rLS0tLS0tLS0rLS0tLS0KKyAgIHwgbnVsbF9hIHwgICAzCisgMyB8IGZv byAgICB8ICAgIAorIDMgfCBmb28gICAgfCAxLjUKKyAyIHwgICAgICAgIHwgICAyCisgMiB8IGJh eiAgICB8IDEuNQorIDEgfCBxdXggICAgfCAxLjUKKyAxIHwgYmFyICAgIHwgMi41CisoNyByb3dz KQorCistLSBUZXN0IHdpdGggV0hFUkUgY2xhdXNlIGFuZCBOVUxMcworU0VMRUNUICogRlJPTSB0 ZXN0X29yZGVyX251bGxzIFdIRVJFIGEgSVMgTk9UIE5VTEwgT1JERVIgQlkgQUxMIERFU0M7Cisg YSB8ICBiICB8ICBjICAKKy0tLSstLS0tLSstLS0tLQorIDMgfCBmb28gfCAgICAKKyAzIHwgZm9v IHwgMS41CisgMiB8ICAgICB8ICAgMgorIDIgfCBiYXogfCAxLjUKKyAxIHwgcXV4IHwgMS41Cisg MSB8IGJhciB8IDIuNQorKDYgcm93cykKKworLS0gVGVzdCB3aXRoIExJTUlUIGFuZCBOVUxMcwor U0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251bGxzIE9SREVSIEJZIEFMTCBERVNDIExJTUlUIDM7 CisgYSB8ICAgYiAgICB8ICBjICAKKy0tLSstLS0tLS0tLSstLS0tLQorICAgfCBudWxsX2EgfCAg IDMKKyAzIHwgZm9vICAgIHwgICAgCisgMyB8IGZvbyAgICB8IDEuNQorKDMgcm93cykKKworLS0g VGVzdCB3aXRoIHN1YnNldCBvZiBjb2x1bW5zIGFuZCBOVUxMcworU0VMRUNUIGEsIGIgRlJPTSB0 ZXN0X29yZGVyX251bGxzIE9SREVSIEJZIEFMTCBERVNDOworIGEgfCAgIGIgICAgCistLS0rLS0t LS0tLS0KKyAgIHwgbnVsbF9hCisgMyB8IGZvbworIDMgfCBmb28KKyAyIHwgCisgMiB8IGJhegor IDEgfCBxdXgKKyAxIHwgYmFyCisoNyByb3dzKQorCistLSBDbGVhbiB1cAorRFJPUCBUQUJMRSB0 ZXN0X29yZGVyX251bGxzOworLS0gTmVnYXRpdmUgdGVzdHM6IGludmFsaWQgT1JERVIgQlkgQUxM IHN5bnRheAorLS0gT1JERVIgQlkgQUxMIGNhbm5vdCBiZSBtaXhlZCB3aXRoIGV4cGxpY2l0IGNv bHVtbiBzcGVjaWZpY2F0aW9ucworU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFM TCwgYTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIiwiCitMSU5FIDE6IFNFTEVD VCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwsIGE7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBPUkRFUiBCWSBBTEwgY2Fubm90IHVzZSBV U0lORyBvcGVyYXRvcgorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBVU0lO RyA8OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiVVNJTkciCitMSU5FIDE6IFNF TEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgVVNJTkcgPDsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBPUkRFUiBCWSBBTEwgd2l0 aCBtdWx0aXBsZSBBTEwga2V5d29yZHMgKHNob3VsZCBmYWlsKQorU0VMRUNUICogRlJPTSB0ZXN0 X29yZGVyIE9SREVSIEJZIEFMTCwgQUxMOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVh ciAiLCIKK0xJTkUgMTogU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCwgQUxM OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gT1JE RVIgQlkgQUxMIHdpdGggc2V0IG9wZXJhdGlvbnMgKFVOSU9OKQorU0VMRUNUIGEsIGIgRlJPTSB0 ZXN0X29yZGVyIFVOSU9OIFNFTEVDVCBhLCBiIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEw7 CisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBiYXIKKyAxIHwgcXV4CisgMiB8IGJhegorIDMg fCBmb28KKyg0IHJvd3MpCisKKy0tIE9SREVSIEJZIEFMTCB3aXRoIGNvbHVtbiBudW1iZXIgcmVm ZXJlbmNlIHRocm93IGFuIGVycm9yCitTRUxFQ1QgYSwgYiBGUk9NIHRlc3Rfb3JkZXIgT1JERVIg QlkgQUxMLCAxOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLCIKK0xJTkUgMTog U0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCwgMTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEFkZGl0aW9uYWwgdGVz dCBjb3ZlcmFnZSBmb3IgZWRnZSBjYXNlcworLS0gVGVzdCBPUkRFUiBCWSBBTEwgaW4gc3VicXVl cnkKK1NFTEVDVCAqIEZST00gKFNFTEVDVCBhLCBiIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBB TEwpIHNxOworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAxIHwgYmFyCisgMSB8IHF1eAorIDIgfCBi YXoKKyAzIHwgZm9vCisoNCByb3dzKQorCistLSBUZXN0IE9SREVSIEJZIEFMTCB3aXRoIG5lc3Rl ZCBzdWJxdWVyeQorU0VMRUNUICogRlJPTSAoCisgIFNFTEVDVCBhLCBiIEZST00gKAorICAgIFNF TEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgREVTQworICApIHN1YjEgT1JERVIg QlkgQUxMCispIHN1YjI7CisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBiYXIKKyAxIHwgcXV4 CisgMiB8IGJhegorIDMgfCBmb28KKyg0IHJvd3MpCisKKy0tIFRlc3QgT1JERVIgQlkgQUxMIHdp dGggRElTVElOQ1QKK1NFTEVDVCBESVNUSU5DVCBhLCBiIEZST00gdGVzdF9vcmRlciBPUkRFUiBC WSBBTEw7CisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBiYXIKKyAxIHwgcXV4CisgMiB8IGJh egorIDMgfCBmb28KKyg0IHJvd3MpCisKKy0tIFRlc3QgT1JERVIgQlkgQUxMIHdpdGggSk9JTgor Q1JFQVRFIFRFTVAgVEFCTEUgdGVzdF9vcmRlcjIgKAorICB4IGludCwKKyAgeSB0ZXh0CispOwor SU5TRVJUIElOVE8gdGVzdF9vcmRlcjIgVkFMVUVTICgxLCAnYWxwaGEnKSwgKDIsICdiZXRhJyks ICgzLCAnZ2FtbWEnKTsKK1NFTEVDVCB0MS5hLCB0MS5iLCB0Mi54LCB0Mi55CitGUk9NIHRlc3Rf b3JkZXIgdDEKK0pPSU4gdGVzdF9vcmRlcjIgdDIgT04gdDEuYSA9IHQyLngKK09SREVSIEJZIEFM TDsKKyBhIHwgIGIgIHwgeCB8ICAgeSAgIAorLS0tKy0tLS0tKy0tLSstLS0tLS0tCisgMSB8IGJh ciB8IDEgfCBhbHBoYQorIDEgfCBxdXggfCAxIHwgYWxwaGEKKyAyIHwgYmF6IHwgMiB8IGJldGEK KyAzIHwgZm9vIHwgMyB8IGdhbW1hCisoNCByb3dzKQorCitEUk9QIFRBQkxFIHRlc3Rfb3JkZXIy OworLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBDVEUKK1dJVEggY3RlIEFTICgKKyAgU0VMRUNU IGEsIGIgRlJPTSB0ZXN0X29yZGVyIFdIRVJFIGEgPiAxCispCitTRUxFQ1QgKiBGUk9NIGN0ZSBP UkRFUiBCWSBBTEw7CisgYSB8ICBiICAKKy0tLSstLS0tLQorIDIgfCBiYXoKKyAzIHwgZm9vCiso MiByb3dzKQorCistLSBUZXN0IE9SREVSIEJZIEFMTCB3aXRoIHdpbmRvdyBmdW5jdGlvbiAoT1JE RVIgQlkgQUxMIGluIG91dGVyIHF1ZXJ5KQorU0VMRUNUIGEsIGIsIFJPV19OVU1CRVIoKSBPVkVS IChQQVJUSVRJT04gQlkgYSBPUkRFUiBCWSBiKSBhcyBybgorRlJPTSB0ZXN0X29yZGVyCitPUkRF UiBCWSBBTEw7CisgYSB8ICBiICB8IHJuIAorLS0tKy0tLS0tKy0tLS0KKyAxIHwgYmFyIHwgIDEK KyAxIHwgcXV4IHwgIDIKKyAyIHwgYmF6IHwgIDEKKyAzIHwgZm9vIHwgIDEKKyg0IHJvd3MpCisK Ky0tIFRlc3QgT1JERVIgQlkgQUxMIHdpdGggSU5URVJTRUNUIChzaG91bGQgZmFpbCBsaWtlIFVO SU9OKQorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIElOVEVSU0VDVCBTRUxFQ1QgYSwgYiBG Uk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxMOworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAxIHwg YmFyCisgMSB8IHF1eAorIDIgfCBiYXoKKyAzIHwgZm9vCisoNCByb3dzKQorCistLSBUZXN0IE9S REVSIEJZIEFMTCB3aXRoIEVYQ0VQVCAoc2hvdWxkIGZhaWwgbGlrZSBVTklPTikKK1NFTEVDVCBh LCBiIEZST00gdGVzdF9vcmRlciBFWENFUFQgU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIE9S REVSIEJZIEFMTDsKKyBhIHwgYiAKKy0tLSstLS0KKygwIHJvd3MpCisKKy0tIFRlc3QgT1JERVIg QlkgQUxMIHdpdGggVkFMVUVTCitTRUxFQ1QgKiBGUk9NIChWQUxVRVMgKDMsICdmb28nKSwgKDEs ICdiYXInKSwgKDIsICdiYXonKSkgQVMgdCh4LCB5KSBPUkRFUiBCWSBBTEw7CisgeCB8ICB5ICAK Ky0tLSstLS0tLQorIDEgfCBiYXIKKyAyIHwgYmF6CisgMyB8IGZvbworKDMgcm93cykKKworLS0g VGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBvbmx5IGNvbXB1dGVkIGNvbHVtbnMgKG5vIGp1bmspCitT RUxFQ1QgYSArIDEgQVMgY29sMSwgYiB8fCAnX3Rlc3QnIEFTIGNvbDIgRlJPTSB0ZXN0X29yZGVy IE9SREVSIEJZIEFMTDsKKyBjb2wxIHwgICBjb2wyICAgCistLS0tLS0rLS0tLS0tLS0tLQorICAg IDIgfCBiYXJfdGVzdAorICAgIDIgfCBxdXhfdGVzdAorICAgIDMgfCBiYXpfdGVzdAorICAgIDQg fCBmb29fdGVzdAorKDQgcm93cykKKworLS0gVGVzdCBiZWhhdmlvciB3aGVuIGFsbCBzZWxlY3Rl ZCBjb2x1bW5zIHdvdWxkIGJlIGp1bmsgKHVzaW5nIGN0aWQvc3lzdGVtIGNvbHVtbnMpCistLSBU aGlzIHNob3VsZCBzdGlsbCB3b3JrIGFzIHN5c3RlbSBjb2x1bW5zIGFyZW4ndCBtYXJrZWQgYXMg anVuayBpbiB0YXJnZXQgbGlzdCB3aGVuIGV4cGxpY2l0bHkgc2VsZWN0ZWQKK1NFTEVDVCBjdGlk IEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEw7CisgY3RpZCAgCistLS0tLS0tCisgKDAsMSkK KyAoMCwyKQorICgwLDMpCisgKDAsNCkKKyg0IHJvd3MpCisKKy0tIFRlc3QgT1JERVIgQlkgQUxM IHdpdGggVU5JT04gQUxMIGluIHN1YnF1ZXJ5IChPUkRFUiBCWSBvbiBvdXRlciBxdWVyeSBzaG91 bGQgd29yaykKK1NFTEVDVCAqIEZST00gKAorICBTRUxFQ1QgYSwgYiBGUk9NIHRlc3Rfb3JkZXIK KyAgVU5JT04gQUxMCisgIFNFTEVDVCBhLCBiIEZST00gdGVzdF9vcmRlcgorKSBzdWIgT1JERVIg QlkgQUxMOworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAxIHwgYmFyCisgMSB8IGJhcgorIDEgfCBx dXgKKyAxIHwgcXV4CisgMiB8IGJhegorIDIgfCBiYXoKKyAzIHwgZm9vCisgMyB8IGZvbworKDgg cm93cykKKworLS0gQ2xlYW4gdXAKK0RST1AgVEFCTEUgdGVzdF9vcmRlcjsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCmluZGV4IDU0OWU5YjJkN2JlLi41Y2FlZTFhYzg5OSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC02Miw2ICs2Miw3IEBAIHRlc3Q6IHNhbml0eV9jaGVj awogIyBqb2luIGRlcGVuZHMgb24gY3JlYXRlX21pc2MKICMgLS0tLS0tLS0tLQogdGVzdDogc2Vs ZWN0X2ludG8gc2VsZWN0X2Rpc3RpbmN0IHNlbGVjdF9kaXN0aW5jdF9vbiBzZWxlY3RfaW1wbGlj aXQgc2VsZWN0X2hhdmluZyBzdWJzZWxlY3QgdW5pb24gY2FzZSBqb2luIGFnZ3JlZ2F0ZXMgdHJh bnNhY3Rpb25zIHJhbmRvbSBwb3J0YWxzIGFycmF5cyBidHJlZV9pbmRleCBoYXNoX2luZGV4IHVw ZGF0ZSBkZWxldGUgbmFtZXNwYWNlIHByZXBhcmVkX3hhY3RzCit0ZXN0OiBvcmRlcl9ieV9hbGwK IAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29yZGVyX2J5X2FsbC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9vcmRlcl9ieV9hbGwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi45YjQwODMxYTBhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL29yZGVyX2J5X2FsbC5zcWwKQEAgLTAsMCArMSwyNDcgQEAKKy0tCistLSBUZXN0IE9S REVSIEJZIEFMTAorLS0KKworQ1JFQVRFIFRFTVAgVEFCTEUgdGVzdF9vcmRlciAoCisgIGEgaW50 LAorICBiIHRleHQsCisgIGMgZmxvYXQKKyk7CisKK0lOU0VSVCBJTlRPIHRlc3Rfb3JkZXIgVkFM VUVTCisgICgzLCAnZm9vJywgMS41KSwKKyAgKDEsICdiYXInLCAyLjUpLAorICAoMiwgJ2Jheics IDEuNSksCisgICgxLCAncXV4JywgMS41KTsKKworLS0gQmFzaWMgT1JERVIgQlkgQUxMIHRlc3Qg KGRlZmF1bHQgQVNDKQorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTDsKKwor LS0gT1JERVIgQlkgQUxMIEFTQyAoZXhwbGljaXQpCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXIg T1JERVIgQlkgQUxMIEFTQzsKKworLS0gT1JERVIgQlkgQUxMIERFU0MKK1NFTEVDVCAqIEZST00g dGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgREVTQzsKKworLS0gT1JERVIgQlkgQUxMIHdpdGggTlVM TFMgRklSU1QKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgTlVMTFMgRklS U1Q7CisKKy0tIE9SREVSIEJZIEFMTCBERVNDIE5VTExTIExBU1QKK1NFTEVDVCAqIEZST00gdGVz dF9vcmRlciBPUkRFUiBCWSBBTEwgREVTQyBOVUxMUyBMQVNUOworCistLSBPUkRFUiBCWSBBTEwg d2l0aCBzcGVjaWZpYyBjb2x1bW5zIGluIFNFTEVDVAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29y ZGVyIE9SREVSIEJZIEFMTDsKKworLS0gT1JERVIgQlkgQUxMIHdpdGggZXhwcmVzc2lvbnMKK1NF TEVDVCBhLCBiLCBhICsgYyBBUyBzdW0gRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTDsKKwor LS0gT1JERVIgQlkgQUxMIHdpdGggYWdncmVnYXRlcyAoc2hvdWxkIG9ubHkgb3JkZXIgYnkgbm9u LWFnZ3JlZ2F0ZWQgY29sdW1ucykKK1NFTEVDVCBhLCBDT1VOVCgqKSBGUk9NIHRlc3Rfb3JkZXIg R1JPVVAgQlkgYSBPUkRFUiBCWSBBTEw7CisKKy0tIE9SREVSIEJZIEFMTCB3aXRoIFdIRVJFIGNs YXVzZQorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIFdIRVJFIGEgPiAxIE9SREVSIEJZIEFMTDsK KworLS0gVmVyaWZ5IHRoYXQgT1JERVIgQlkgQUxMIGlzIGVxdWl2YWxlbnQgdG8gbGlzdGluZyBh bGwgY29sdW1ucworU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTDsKK1NFTEVD VCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBhLCBiLCBjOworCistLSBPUkRFUiBCWSBBTEwg d2l0aCBMSU1JVAorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBMSU1JVCAy OworCistLSBUZXN0IGRlcGFyc2luZyBvZiBPUkRFUiBCWSBBTEwgKHJ1bGV1dGlscy5jKQorLS0g VmVyaWZ5IHRoYXQgT1JERVIgQlkgQUxMIHdpdGggbW9kaWZpZXJzIGlzIGNvcnJlY3RseSBwcmVz ZXJ2ZWQgaW4gdmlldyBkZWZpbml0aW9ucworCistLSBWaWV3IHdpdGggT1JERVIgQlkgQUxMIChk ZWZhdWx0KQorQ1JFQVRFIFZJRVcgdmlld19vcmRlcl9hbGwgQVMKKyAgU0VMRUNUICogRlJPTSB0 ZXN0X29yZGVyIE9SREVSIEJZIEFMTDsKKworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2aWV3X29y ZGVyX2FsbCc6OnJlZ2NsYXNzLCB0cnVlKTsKKworLS0gVmlldyB3aXRoIE9SREVSIEJZIEFMTCBB U0MKK0NSRUFURSBWSUVXIHZpZXdfb3JkZXJfYWxsX2FzYyBBUworICBTRUxFQ1QgKiBGUk9NIHRl c3Rfb3JkZXIgT1JERVIgQlkgQUxMIEFTQzsKKworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2aWV3 X29yZGVyX2FsbF9hc2MnOjpyZWdjbGFzcywgdHJ1ZSk7CisKKy0tIFZpZXcgd2l0aCBPUkRFUiBC WSBBTEwgREVTQworQ1JFQVRFIFZJRVcgdmlld19vcmRlcl9hbGxfZGVzYyBBUworICBTRUxFQ1Qg KiBGUk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxMIERFU0M7CisKK1NFTEVDVCBwZ19nZXRfdmll d2RlZigndmlld19vcmRlcl9hbGxfZGVzYyc6OnJlZ2NsYXNzLCB0cnVlKTsKKworLS0gVmlldyB3 aXRoIE9SREVSIEJZIEFMTCBOVUxMUyBGSVJTVAorQ1JFQVRFIFZJRVcgdmlld19vcmRlcl9hbGxf bnVsbHNfZmlyc3QgQVMKKyAgU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBO VUxMUyBGSVJTVDsKKworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2aWV3X29yZGVyX2FsbF9udWxs c19maXJzdCc6OnJlZ2NsYXNzLCB0cnVlKTsKKworLS0gVmlldyB3aXRoIE9SREVSIEJZIEFMTCBO VUxMUyBMQVNUCitDUkVBVEUgVklFVyB2aWV3X29yZGVyX2FsbF9udWxsc19sYXN0IEFTCisgIFNF TEVDVCAqIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgTlVMTFMgTEFTVDsKKworU0VMRUNU IHBnX2dldF92aWV3ZGVmKCd2aWV3X29yZGVyX2FsbF9udWxsc19sYXN0Jzo6cmVnY2xhc3MsIHRy dWUpOworCistLSBWaWV3IHdpdGggT1JERVIgQlkgQUxMIERFU0MgTlVMTFMgRklSU1QKK0NSRUFU RSBWSUVXIHZpZXdfb3JkZXJfYWxsX2Rlc2NfbnVsbHNfZmlyc3QgQVMKKyAgU0VMRUNUICogRlJP TSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBERVNDIE5VTExTIEZJUlNUOworCitTRUxFQ1QgcGdf Z2V0X3ZpZXdkZWYoJ3ZpZXdfb3JkZXJfYWxsX2Rlc2NfbnVsbHNfZmlyc3QnOjpyZWdjbGFzcywg dHJ1ZSk7CisKKy0tIFZpZXcgd2l0aCBPUkRFUiBCWSBBTEwgQVNDIE5VTExTIExBU1QKK0NSRUFU RSBWSUVXIHZpZXdfb3JkZXJfYWxsX2FzY19udWxsc19sYXN0IEFTCisgIFNFTEVDVCAqIEZST00g dGVzdF9vcmRlciBPUkRFUiBCWSBBTEwgQVNDIE5VTExTIExBU1Q7CisKK1NFTEVDVCBwZ19nZXRf dmlld2RlZigndmlld19vcmRlcl9hbGxfYXNjX251bGxzX2xhc3QnOjpyZWdjbGFzcywgdHJ1ZSk7 CisKKy0tIFZlcmlmeSB0aGUgdmlld3MgYWN0dWFsbHkgd29yaworU0VMRUNUICogRlJPTSB2aWV3 X29yZGVyX2FsbDsKK1NFTEVDVCAqIEZST00gdmlld19vcmRlcl9hbGxfZGVzYzsKKworLS0gQ2xl YW4gdXAgdmlld3MKK0RST1AgVklFVyB2aWV3X29yZGVyX2FsbDsKK0RST1AgVklFVyB2aWV3X29y ZGVyX2FsbF9hc2M7CitEUk9QIFZJRVcgdmlld19vcmRlcl9hbGxfZGVzYzsKK0RST1AgVklFVyB2 aWV3X29yZGVyX2FsbF9udWxsc19maXJzdDsKK0RST1AgVklFVyB2aWV3X29yZGVyX2FsbF9udWxs c19sYXN0OworRFJPUCBWSUVXIHZpZXdfb3JkZXJfYWxsX2Rlc2NfbnVsbHNfZmlyc3Q7CitEUk9Q IFZJRVcgdmlld19vcmRlcl9hbGxfYXNjX251bGxzX2xhc3Q7CisKKy0tIFRlc3Qgd2l0aCBOVUxM IHZhbHVlcworQ1JFQVRFIFRFTVAgVEFCTEUgdGVzdF9vcmRlcl9udWxscyAoCisgIGEgaW50LAor ICBiIHRleHQsCisgIGMgZmxvYXQKKyk7CisKK0lOU0VSVCBJTlRPIHRlc3Rfb3JkZXJfbnVsbHMg VkFMVUVTCisgICgzLCAnZm9vJywgMS41KSwKKyAgKDEsICdiYXInLCAyLjUpLAorICAoMiwgJ2Jh eicsIDEuNSksCisgICgxLCAncXV4JywgMS41KSwKKyAgKE5VTEwsICdudWxsX2EnLCAzLjApLAor ICAoMiwgTlVMTCwgMi4wKSwKKyAgKDMsICdmb28nLCBOVUxMKTsKKworLS0gT1JERVIgQlkgQUxM IHdpdGggTlVMTHMgKGRlZmF1bHQgQVNDKQorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251bGxz IE9SREVSIEJZIEFMTDsKKworLS0gT1JERVIgQlkgQUxMIEFTQyAoZXhwbGljaXQpIHdpdGggTlVM THMKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlcl9udWxscyBPUkRFUiBCWSBBTEwgQVNDOworCist LSBPUkRFUiBCWSBBTEwgREVTQyB3aXRoIE5VTExzCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXJf bnVsbHMgT1JERVIgQlkgQUxMIERFU0M7CisKKy0tIE9SREVSIEJZIEFMTCBOVUxMUyBGSVJTVCAo d2l0aCBkZWZhdWx0IEFTQykKK1NFTEVDVCAqIEZST00gdGVzdF9vcmRlcl9udWxscyBPUkRFUiBC WSBBTEwgTlVMTFMgRklSU1Q7CisKKy0tIE9SREVSIEJZIEFMTCBOVUxMUyBMQVNUICh3aXRoIGRl ZmF1bHQgQVNDKQorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251bGxzIE9SREVSIEJZIEFMTCBO VUxMUyBMQVNUOworCistLSBPUkRFUiBCWSBBTEwgQVNDIE5VTExTIEZJUlNUCitTRUxFQ1QgKiBG Uk9NIHRlc3Rfb3JkZXJfbnVsbHMgT1JERVIgQlkgQUxMIEFTQyBOVUxMUyBGSVJTVDsKKworLS0g T1JERVIgQlkgQUxMIERFU0MgTlVMTFMgTEFTVAorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251 bGxzIE9SREVSIEJZIEFMTCBERVNDIE5VTExTIExBU1Q7CisKKy0tIE9SREVSIEJZIEFMTCBERVND IE5VTExTIEZJUlNUCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXJfbnVsbHMgT1JERVIgQlkgQUxM IERFU0MgTlVMTFMgRklSU1Q7CisKKy0tIFZlcmlmeSBPUkRFUiBCWSBBTEwgREVTQyBpcyBlcXVp dmFsZW50IHRvIGxpc3RpbmcgYWxsIGNvbHVtbnMgREVTQworU0VMRUNUICogRlJPTSB0ZXN0X29y ZGVyX251bGxzIE9SREVSIEJZIEFMTCBERVNDOworU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251 bGxzIE9SREVSIEJZIGEgREVTQywgYiBERVNDLCBjIERFU0M7CisKKy0tIFRlc3Qgd2l0aCBXSEVS RSBjbGF1c2UgYW5kIE5VTExzCitTRUxFQ1QgKiBGUk9NIHRlc3Rfb3JkZXJfbnVsbHMgV0hFUkUg YSBJUyBOT1QgTlVMTCBPUkRFUiBCWSBBTEwgREVTQzsKKworLS0gVGVzdCB3aXRoIExJTUlUIGFu ZCBOVUxMcworU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyX251bGxzIE9SREVSIEJZIEFMTCBERVND IExJTUlUIDM7CisKKy0tIFRlc3Qgd2l0aCBzdWJzZXQgb2YgY29sdW1ucyBhbmQgTlVMTHMKK1NF TEVDVCBhLCBiIEZST00gdGVzdF9vcmRlcl9udWxscyBPUkRFUiBCWSBBTEwgREVTQzsKKworLS0g Q2xlYW4gdXAKK0RST1AgVEFCTEUgdGVzdF9vcmRlcl9udWxsczsKKworLS0gTmVnYXRpdmUgdGVz dHM6IGludmFsaWQgT1JERVIgQlkgQUxMIHN5bnRheAorCistLSBPUkRFUiBCWSBBTEwgY2Fubm90 IGJlIG1peGVkIHdpdGggZXhwbGljaXQgY29sdW1uIHNwZWNpZmljYXRpb25zCitTRUxFQ1QgKiBG Uk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxMLCBhOworCistLSBPUkRFUiBCWSBBTEwgY2Fubm90 IHVzZSBVU0lORyBvcGVyYXRvcgorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFM TCBVU0lORyA8OworCistLSBPUkRFUiBCWSBBTEwgd2l0aCBtdWx0aXBsZSBBTEwga2V5d29yZHMg KHNob3VsZCBmYWlsKQorU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCwgQUxM OworCistLSBPUkRFUiBCWSBBTEwgd2l0aCBzZXQgb3BlcmF0aW9ucyAoVU5JT04pCitTRUxFQ1Qg YSwgYiBGUk9NIHRlc3Rfb3JkZXIgVU5JT04gU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIE9S REVSIEJZIEFMTDsKKworLS0gT1JERVIgQlkgQUxMIHdpdGggY29sdW1uIG51bWJlciByZWZlcmVu Y2UgdGhyb3cgYW4gZXJyb3IKK1NFTEVDVCBhLCBiIEZST00gdGVzdF9vcmRlciBPUkRFUiBCWSBB TEwsIDE7CisKKy0tIEFkZGl0aW9uYWwgdGVzdCBjb3ZlcmFnZSBmb3IgZWRnZSBjYXNlcworCist LSBUZXN0IE9SREVSIEJZIEFMTCBpbiBzdWJxdWVyeQorU0VMRUNUICogRlJPTSAoU0VMRUNUIGEs IGIgRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCkgc3E7CisKKy0tIFRlc3QgT1JERVIgQlkg QUxMIHdpdGggbmVzdGVkIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NICgKKyAgU0VMRUNUIGEsIGIg RlJPTSAoCisgICAgU0VMRUNUICogRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZIEFMTCBERVNDCisg ICkgc3ViMSBPUkRFUiBCWSBBTEwKKykgc3ViMjsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0 aCBESVNUSU5DVAorU0VMRUNUIERJU1RJTkNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIE9SREVSIEJZ IEFMTDsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBKT0lOCitDUkVBVEUgVEVNUCBUQUJM RSB0ZXN0X29yZGVyMiAoCisgIHggaW50LAorICB5IHRleHQKKyk7CisKK0lOU0VSVCBJTlRPIHRl c3Rfb3JkZXIyIFZBTFVFUyAoMSwgJ2FscGhhJyksICgyLCAnYmV0YScpLCAoMywgJ2dhbW1hJyk7 CisKK1NFTEVDVCB0MS5hLCB0MS5iLCB0Mi54LCB0Mi55CitGUk9NIHRlc3Rfb3JkZXIgdDEKK0pP SU4gdGVzdF9vcmRlcjIgdDIgT04gdDEuYSA9IHQyLngKK09SREVSIEJZIEFMTDsKKworRFJPUCBU QUJMRSB0ZXN0X29yZGVyMjsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBDVEUKK1dJVEgg Y3RlIEFTICgKKyAgU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIFdIRVJFIGEgPiAxCispCitT RUxFQ1QgKiBGUk9NIGN0ZSBPUkRFUiBCWSBBTEw7CisKKy0tIFRlc3QgT1JERVIgQlkgQUxMIHdp dGggd2luZG93IGZ1bmN0aW9uIChPUkRFUiBCWSBBTEwgaW4gb3V0ZXIgcXVlcnkpCitTRUxFQ1Qg YSwgYiwgUk9XX05VTUJFUigpIE9WRVIgKFBBUlRJVElPTiBCWSBhIE9SREVSIEJZIGIpIGFzIHJu CitGUk9NIHRlc3Rfb3JkZXIKK09SREVSIEJZIEFMTDsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwg d2l0aCBJTlRFUlNFQ1QgKHNob3VsZCBmYWlsIGxpa2UgVU5JT04pCitTRUxFQ1QgYSwgYiBGUk9N IHRlc3Rfb3JkZXIgSU5URVJTRUNUIFNFTEVDVCBhLCBiIEZST00gdGVzdF9vcmRlciBPUkRFUiBC WSBBTEw7CisKKy0tIFRlc3QgT1JERVIgQlkgQUxMIHdpdGggRVhDRVBUIChzaG91bGQgZmFpbCBs aWtlIFVOSU9OKQorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X29yZGVyIEVYQ0VQVCBTRUxFQ1QgYSwg YiBGUk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxMOworCistLSBUZXN0IE9SREVSIEJZIEFMTCB3 aXRoIFZBTFVFUworU0VMRUNUICogRlJPTSAoVkFMVUVTICgzLCAnZm9vJyksICgxLCAnYmFyJyks ICgyLCAnYmF6JykpIEFTIHQoeCwgeSkgT1JERVIgQlkgQUxMOworCistLSBUZXN0IE9SREVSIEJZ IEFMTCB3aXRoIG9ubHkgY29tcHV0ZWQgY29sdW1ucyAobm8ganVuaykKK1NFTEVDVCBhICsgMSBB UyBjb2wxLCBiIHx8ICdfdGVzdCcgQVMgY29sMiBGUk9NIHRlc3Rfb3JkZXIgT1JERVIgQlkgQUxM OworCistLSBUZXN0IGJlaGF2aW9yIHdoZW4gYWxsIHNlbGVjdGVkIGNvbHVtbnMgd291bGQgYmUg anVuayAodXNpbmcgY3RpZC9zeXN0ZW0gY29sdW1ucykKKy0tIFRoaXMgc2hvdWxkIHN0aWxsIHdv cmsgYXMgc3lzdGVtIGNvbHVtbnMgYXJlbid0IG1hcmtlZCBhcyBqdW5rIGluIHRhcmdldCBsaXN0 IHdoZW4gZXhwbGljaXRseSBzZWxlY3RlZAorU0VMRUNUIGN0aWQgRlJPTSB0ZXN0X29yZGVyIE9S REVSIEJZIEFMTDsKKworLS0gVGVzdCBPUkRFUiBCWSBBTEwgd2l0aCBVTklPTiBBTEwgaW4gc3Vi cXVlcnkgKE9SREVSIEJZIG9uIG91dGVyIHF1ZXJ5IHNob3VsZCB3b3JrKQorU0VMRUNUICogRlJP TSAoCisgIFNFTEVDVCBhLCBiIEZST00gdGVzdF9vcmRlcgorICBVTklPTiBBTEwKKyAgU0VMRUNU IGEsIGIgRlJPTSB0ZXN0X29yZGVyCispIHN1YiBPUkRFUiBCWSBBTEw7CisKKy0tIENsZWFuIHVw CitEUk9QIFRBQkxFIHRlc3Rfb3JkZXI7Ci0tIAoyLjQzLjAKCg== --000000000000602d7e064dbf3e94--