<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>54939</bug_id>
          
          <creation_ts>2011-02-21 23:28:55 -0800</creation_ts>
          <short_desc>[Chromium] keycode is always 0 when using non-Latin keyboard layout.</short_desc>
          <delta_ts>2011-03-04 01:05:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://unixpapa.com/js/testkey.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="James Su">suzhe</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>avi</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>355087</commentid>
    <comment_count>0</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-02-21 23:28:55 -0800</bug_when>
    <thetext>What steps will reproduce the problem?
1. Open http://unixpapa.com/js/testkey.html
2. Switch to a non-Latin keyboard layout, eg. Russian, Arabic.
3. Press some keys.

What is the expected output? What do you see instead?
keyCode value of key events should not be zero, but they are always zero when using non-Latin keyboard layout.

See: http://crbug.com/73119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355090</commentid>
    <comment_count>1</comment_count>
      <attachid>83277</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2011-02-21 23:48:43 -0800</bug_when>
    <thetext>Created attachment 83277
Patch to fix this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355303</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-02-22 08:44:55 -0800</bug_when>
    <thetext>Avi, can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355321</commentid>
    <comment_count>3</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2011-02-22 09:10:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Avi, can you take a look?

I like this. The original code was stolen from KeyEventMac, which was seriously cleaned up afterwards. We should match KeyEventMac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356831</commentid>
    <comment_count>4</comment_count>
      <attachid>83277</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-24 03:09:29 -0800</bug_when>
    <thetext>Comment on attachment 83277
Patch to fix this issue.

Yay!  How do we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357596</commentid>
    <comment_count>5</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-02-24 17:31:11 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 83277 [details])
&gt; Yay!  How do we test this?

I&apos;m wondering if we could extend DumpRenderTree&apos;s keyDown method to support generating key event with arbitrary content, so that we could write layout tests as normal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359165</commentid>
    <comment_count>6</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-02-28 10:44:07 -0800</bug_when>
    <thetext>Can anybody help commit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360540</commentid>
    <comment_count>7</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-03-01 20:37:37 -0800</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361837</commentid>
    <comment_count>8</comment_count>
      <attachid>83277</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-03 12:33:00 -0800</bug_when>
    <thetext>Comment on attachment 83277
Patch to fix this issue.

Rejecting attachment 83277 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-7&apos;, &apos;land-a...&quot; exit_code: 1

Last 500 characters of output:
ommit-queue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 57, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 42, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;

Full output: http://queues.webkit.org/results/8085324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362210</commentid>
    <comment_count>9</comment_count>
      <attachid>83277</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-03 19:40:05 -0800</bug_when>
    <thetext>Comment on attachment 83277
Patch to fix this issue.

Rejecting attachment 83277 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;land-a...&quot; exit_code: 1

Last 500 characters of output:
ommit-queue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 57, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 42, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;

Full output: http://queues.webkit.org/results/8087415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362213</commentid>
    <comment_count>10</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-03-03 19:52:32 -0800</bug_when>
    <thetext>Can anyone help me look into this problem?

(In reply to comment #9)
&gt; (From update of attachment 83277 [details])
&gt; Rejecting attachment 83277 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;land-a...&quot; exit_code: 1
&gt; 
&gt; Last 500 characters of output:
&gt; ommit-queue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
&gt;     step(tool, options).run(state)
&gt;   File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 57, in run
&gt;     if self._has_valid_reviewer(changelog_entry):
&gt;   File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 42, in _has_valid_reviewer
&gt;     if changelog_entry.reviewer():
&gt; AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;
&gt; 
&gt; Full output: http://queues.webkit.org/results/8087415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362215</commentid>
    <comment_count>11</comment_count>
      <attachid>83277</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-03 20:00:39 -0800</bug_when>
    <thetext>Comment on attachment 83277
Patch to fix this issue.

The ChangeLog is malformed. Look at author&apos;s name. It should be in &quot;Bob Foobar &lt;bob@foobar.baz&gt;&quot; format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362219</commentid>
    <comment_count>12</comment_count>
      <attachid>84683</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2011-03-03 20:17:23 -0800</bug_when>
    <thetext>Created attachment 84683
Fix email address in ChangeLog files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362220</commentid>
    <comment_count>13</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-03-03 20:18:19 -0800</bug_when>
    <thetext>My fault. New patch uploaded, please have a look.

(In reply to comment #11)
&gt; (From update of attachment 83277 [details])
&gt; The ChangeLog is malformed. Look at author&apos;s name. It should be in &quot;Bob Foobar &lt;bob@foobar.baz&gt;&quot; format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362224</commentid>
    <comment_count>14</comment_count>
      <attachid>84683</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-03 20:26:51 -0800</bug_when>
    <thetext>Comment on attachment 84683
Fix email address in ChangeLog files.

all systems go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362349</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 01:02:56 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 84683:

inspector/timeline/timeline-network-resource.html bug 55751 (authors: loislo@chromium.org, pfeldman@chromium.org, and yurys@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362352</commentid>
    <comment_count>16</comment_count>
      <attachid>84683</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 01:04:58 -0800</bug_when>
    <thetext>Comment on attachment 84683
Fix email address in ChangeLog files.

Clearing flags on attachment: 84683

Committed r80336: &lt;http://trac.webkit.org/changeset/80336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362353</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 01:05:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83277</attachid>
            <date>2011-02-21 23:48:43 -0800</date>
            <delta_ts>2011-03-03 20:17:23 -0800</delta_ts>
            <desc>Patch to fix this issue.</desc>
            <filename>chromium-mac-keycode.diff</filename>
            <type>text/plain</type>
            <size>18801</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5Mjk1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjEgIFpoZSBTdSAg
PEphbWVzIFN1PHN1emhlQGNocm9taXVtLm9yZz4+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBrZXljb2RlIGlzIGFsd2F5cyAwIHdo
ZW4gdXNpbmcgbm9uLUxhdGluIGtleWJvYXJkIGxheW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTM5CisKKyAgICAgICAgQWRkIEtleUV2ZW50
Q29jb2Eue2gsbW19LCBzbyB0aGF0IHdlIGNhbiByZXVzZSB0aGVtIGluIGNocm9taXVtLgorCisg
ICAgICAgIE5vIGludGVuZGVkIGZ1bmN0aW9uYWxpdHkgY2hhbmdlLgorCisgICAgICAgICogV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorCiAyMDExLTAy
LTIxICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDc5Mjk0
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcz
LDYgKzI0NzMsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2NmL1NjaGVkdWxlUGFpci5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2NmL1NjaGVkdWxlUGFpci5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY29jb2EvS2V5
RXZlbnRDb2NvYS5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0
YU9iamVjdExlZ2FjeS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXAJKHJldmlzaW9uIDc5Mjk0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTI2Miw2ICsyNjIsNyBAQAogICAgICAgICAgICMg
cmVsYXRlZCBkaXJlY3Rvcmllcy4KICAgICAgICAgICAjIHBsYXRmb3JtL2dyYXBoaWNzL2NnIG1h
eSBuZWVkIHRvIHN0aWNrIGFyb3VuZCwgdGhvdWdoLgogICAgICAgICAgICcuLi9wbGF0Zm9ybS9h
dWRpby9tYWMnLAorICAgICAgICAgICcuLi9wbGF0Zm9ybS9jb2NvYScsCiAgICAgICAgICAgJy4u
L3BsYXRmb3JtL2dyYXBoaWNzL21hYycsCiAgICAgICAgICAgJy4uL3BsYXRmb3JtL21hYycsCiAg
ICAgICAgICAgJy4uL3BsYXRmb3JtL3RleHQvbWFjJywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCShyZXZpc2lvbiA3OTI5NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMjEgIFpoZSBTdSAg
PEphbWVzIFN1PHN1emhlQGNocm9taXVtLm9yZz4+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBrZXljb2RlIGlzIGFsd2F5cyAwIHdo
ZW4gdXNpbmcgbm9uLUxhdGluIGtleWJvYXJkIGxheW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTM5CisKKyAgICAgICAgTm8gaW50ZW5kZWQg
ZnVuY3Rpb25hbGl0eSBjaGFuZ2UuCisKKyAgICAgICAgKiBzcmMvbWFjL1dlYklucHV0RXZlbnRG
YWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0Ojp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KTog
VXNlIHRoZSBzYW1lIGltcGxlbWVudGF0aW9uCisgICAgICAgIHByb3ZpZGVkIGluIFdlYkNvcmUv
cGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tLgorCiAyMDExLTAyLTIxICBOaWNvIFdlYmVyICA8
dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNv
bi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2Vi
SW5wdXRFdmVudEZhY3RvcnkubW0JKHJldmlzaW9uIDc5Mjk0KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlv
blNlcnZpY2VzLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogCisjaW1wb3J0ICJLZXlFdmVu
dENvY29hLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJ
SUNUeXBlLmg+CiAKQEAgLTEyMiwzODQgKzEyMywzMCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2
ZW50KE5TRXZlbnQqIGV2ZW50CiAKIHN0YXRpYyBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVu
dChOU0V2ZW50KiBldmVudCkKIHsKLSAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAg
IC8vIFZLX1RBQiAoMDkpIFRBQiBrZXkKLSAgICBjYXNlIDQ4OgotICAgICAgICByZXR1cm4gMHgw
OTsKLQotICAgIC8vIFZLX0FQUFMgKDVEKSBSaWdodCB3aW5kb3dzL21ldGEga2V5Ci0gICAgY2Fz
ZSA1NDogLy8gUmlnaHQgQ29tbWFuZAotICAgICAgICByZXR1cm4gMHg1RDsKLQotICAgIC8vIFZL
X0xXSU4gKDVCKSBMZWZ0IHdpbmRvd3MvbWV0YSBrZXkKLSAgICBjYXNlIDU1OiAvLyBMZWZ0IENv
bW1hbmQKLSAgICAgICAgcmV0dXJuIDB4NUI7Ci0KLSAgICAvLyBWS19DQVBJVEFMICgxNCkgY2Fw
cyBsb2NrcyBrZXkKLSAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICByZXR1cm4gMHgx
NDsKLQotICAgIC8vIFZLX1NISUZUICgxMCkgZWl0aGVyIHNoaWZ0IGtleQotICAgIGNhc2UgNTY6
IC8vIExlZnQgU2hpZnQKLSAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAotICAgICAgICByZXR1
cm4gMHgxMDsKLQotICAgIC8vIFZLX01FTlUgKDEyKSBlaXRoZXIgYWx0IGtleQotICAgIGNhc2Ug
NTg6IC8vIExlZnQgQWx0Ci0gICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgIHJldHVy
biAweDEyOwotCi0gICAgLy8gVktfQ09OVFJPTCAoMTEpIGVpdGhlciBjdHJsIGtleQotICAgIGNh
c2UgNTk6IC8vIExlZnQgQ3RybAotICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAg
cmV0dXJuIDB4MTE7Ci0KLS8vIEJlZ2luIG5vbi1BcHBsZSBhZGRpdGlvbiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBjYXNlIDYzOiAvLyBG
dW5jdGlvbiAobm8gV2luZG93cyBrZXkgY29kZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0vLyBFbmQg
bm9uLUFwcGxlIGFkZGl0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLSAgICAvLyBWS19DTEVBUiAoMEMpIENMRUFSIGtleQotICAgIGNh
c2UgNzE6IHJldHVybiAweDBDOwotCi0gICAgLy8gVktfTlVNUEFEMCAoNjApIE51bWVyaWMga2V5
cGFkIDAga2V5Ci0gICAgY2FzZSA4MjogcmV0dXJuIDB4NjA7Ci0gICAgLy8gVktfTlVNUEFEMSAo
NjEpIE51bWVyaWMga2V5cGFkIDEga2V5Ci0gICAgY2FzZSA4MzogcmV0dXJuIDB4NjE7Ci0gICAg
Ly8gVktfTlVNUEFEMiAoNjIpIE51bWVyaWMga2V5cGFkIDIga2V5Ci0gICAgY2FzZSA4NDogcmV0
dXJuIDB4NjI7Ci0gICAgLy8gVktfTlVNUEFEMyAoNjMpIE51bWVyaWMga2V5cGFkIDMga2V5Ci0g
ICAgY2FzZSA4NTogcmV0dXJuIDB4NjM7Ci0gICAgLy8gVktfTlVNUEFENCAoNjQpIE51bWVyaWMg
a2V5cGFkIDQga2V5Ci0gICAgY2FzZSA4NjogcmV0dXJuIDB4NjQ7Ci0gICAgLy8gVktfTlVNUEFE
NSAoNjUpIE51bWVyaWMga2V5cGFkIDUga2V5Ci0gICAgY2FzZSA4NzogcmV0dXJuIDB4NjU7Ci0g
ICAgLy8gVktfTlVNUEFENiAoNjYpIE51bWVyaWMga2V5cGFkIDYga2V5Ci0gICAgY2FzZSA4ODog
cmV0dXJuIDB4NjY7Ci0gICAgLy8gVktfTlVNUEFENyAoNjcpIE51bWVyaWMga2V5cGFkIDcga2V5
Ci0gICAgY2FzZSA4OTogcmV0dXJuIDB4Njc7Ci0gICAgLy8gVktfTlVNUEFEOCAoNjgpIE51bWVy
aWMga2V5cGFkIDgga2V5Ci0gICAgY2FzZSA5MTogcmV0dXJuIDB4Njg7Ci0gICAgLy8gVktfTlVN
UEFEOSAoNjkpIE51bWVyaWMga2V5cGFkIDkga2V5Ci0gICAgY2FzZSA5MjogcmV0dXJuIDB4Njk7
Ci0gICAgLy8gVktfTVVMVElQTFkgKDZBKSBNdWx0aXBseSBrZXkKLSAgICBjYXNlIDY3OiByZXR1
cm4gMHg2QTsKLSAgICAvLyBWS19BREQgKDZCKSBBZGQga2V5Ci0gICAgY2FzZSA2OTogcmV0dXJu
IDB4NkI7Ci0KLSAgICAvLyBWS19TVUJUUkFDVCAoNkQpIFN1YnRyYWN0IGtleQotICAgIGNhc2Ug
Nzg6IHJldHVybiAweDZEOwotICAgIC8vIFZLX0RFQ0lNQUwgKDZFKSBEZWNpbWFsIGtleQotICAg
IGNhc2UgNjU6IHJldHVybiAweDZFOwotICAgIC8vIFZLX0RJVklERSAoNkYpIERpdmlkZSBrZXkK
LSAgICBjYXNlIDc1OiByZXR1cm4gMHg2RjsKLSAgICB9Ci0KLS8vIEJlZ2luIG5vbi1BcHBsZSBh
ZGRpdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICAvLyB8LVtOU0V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc118IGlzbid0
IGFsbG93ZWQgZm9yCi0gICAgLy8gTlNGbGFnc0NoYW5nZWQsIGFuZCBjb25jZWl2YWJseSB3ZSBt
YXkgbm90IGhhdmUgY2F1Z2h0IGV2ZXJ5dGhpbmcKLSAgICAvLyB3aGljaCBjYXVzZXMgYW4gTlNG
bGFnc0NoYW5nZWQgYWJvdmUuCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdl
ZCkKLSAgICAgICAgcmV0dXJuIDA7Ci0vLyBFbmQgbm9uLUFwcGxlIGFkZGl0aW9uIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBOU1N0
cmluZyogcyA9IFtldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdOwotICAgIGlmIChb
cyBsZW5ndGhdICE9IDEpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgc3dpdGNoIChbcyBjaGFy
YWN0ZXJBdEluZGV4OjBdKSB7Ci0gICAgLy8gVktfTEJVVFRPTiAoMDEpIExlZnQgbW91c2UgYnV0
dG9uCi0gICAgLy8gVktfUkJVVFRPTiAoMDIpIFJpZ2h0IG1vdXNlIGJ1dHRvbgotICAgIC8vIFZL
X0NBTkNFTCAoMDMpIENvbnRyb2wtYnJlYWsgcHJvY2Vzc2luZwotICAgIC8vIFZLX01CVVRUT04g
KDA0KSBNaWRkbGUgbW91c2UgYnV0dG9uICh0aHJlZS1idXR0b24gbW91c2UpCi0gICAgLy8gVktf
WEJVVFRPTjEgKDA1KQotICAgIC8vIFZLX1hCVVRUT04yICgwNikKLQotICAgIC8vIFZLX0JBQ0sg
KDA4KSBCQUNLU1BBQ0Uga2V5Ci0gICAgY2FzZSA4OiBjYXNlIDB4N0Y6IHJldHVybiAweDA4Owot
ICAgIC8vIFZLX1RBQiAoMDkpIFRBQiBrZXkKLSAgICBjYXNlIDk6IHJldHVybiAweDA5OwotCi0g
ICAgLy8gVktfQ0xFQVIgKDBDKSBDTEVBUiBrZXkKLSAgICAvLyBoYW5kbGVkIGJ5IGtleSBjb2Rl
IGFib3ZlCi0KLSAgICAvLyBWS19SRVRVUk4gKDBEKQotICAgIGNhc2UgMHhEOiBjYXNlIDM6IHJl
dHVybiAweDBEOwotCi0gICAgLy8gVktfU0hJRlQgKDEwKSBTSElGVCBrZXkKLSAgICAvLyBWS19D
T05UUk9MICgxMSkgQ1RSTCBrZXkKLSAgICAvLyBWS19NRU5VICgxMikgQUxUIGtleQotCi0gICAg
Ly8gVktfUEFVU0UgKDEzKSBQQVVTRSBrZXkKLSAgICBjYXNlIE5TUGF1c2VGdW5jdGlvbktleTog
cmV0dXJuIDB4MTM7Ci0KLSAgICAvLyBWS19DQVBJVEFMICgxNCkgQ0FQUyBMT0NLIGtleQotICAg
IC8vIFZLX0tBTkEgKDE1KSBJbnB1dCBNZXRob2QgRWRpdG9yIChJTUUpIEthbmEgbW9kZQotICAg
IC8vIFZLX0hBTkdVRUwgKDE1KSBJTUUgSGFuZ3VlbCBtb2RlIChtYWludGFpbmVkIGZvciBjb21w
YXRpYmlsaXR5OyB1c2UgVktfSEFOR1VMKQotICAgIC8vIFZLX0hBTkdVTCAoMTUpIElNRSBIYW5n
dWwgbW9kZQotICAgIC8vIFZLX0pVTkpBICgxNykgSU1FIEp1bmphIG1vZGUKLSAgICAvLyBWS19G
SU5BTCAoMTgpIElNRSBmaW5hbCBtb2RlCi0gICAgLy8gVktfSEFOSkEgKDE5KSBJTUUgSGFuamEg
bW9kZQotICAgIC8vIFZLX0tBTkpJICgxOSkgSU1FIEthbmppIG1vZGUKLQotICAgIC8vIFZLX0VT
Q0FQRSAoMUIpIEVTQyBrZXkKLSAgICBjYXNlIDB4MUI6IHJldHVybiAweDFCOwotCi0gICAgLy8g
VktfQ09OVkVSVCAoMUMpIElNRSBjb252ZXJ0Ci0gICAgLy8gVktfTk9OQ09OVkVSVCAoMUQpIElN
RSBub25jb252ZXJ0Ci0gICAgLy8gVktfQUNDRVBUICgxRSkgSU1FIGFjY2VwdAotICAgIC8vIFZL
X01PREVDSEFOR0UgKDFGKSBJTUUgbW9kZSBjaGFuZ2UgcmVxdWVzdAotCi0gICAgLy8gVktfU1BB
Q0UgKDIwKSBTUEFDRUJBUgotICAgIGNhc2UgJyAnOiByZXR1cm4gMHgyMDsKLSAgICAvLyBWS19Q
UklPUiAoMjEpIFBBR0UgVVAga2V5Ci0gICAgY2FzZSBOU1BhZ2VVcEZ1bmN0aW9uS2V5OiByZXR1
cm4gMHgyMTsKLSAgICAvLyBWS19ORVhUICgyMikgUEFHRSBET1dOIGtleQotICAgIGNhc2UgTlNQ
YWdlRG93bkZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyMjsKLSAgICAvLyBWS19FTkQgKDIzKSBFTkQg
a2V5Ci0gICAgY2FzZSBOU0VuZEZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyMzsKLSAgICAvLyBWS19I
T01FICgyNCkgSE9NRSBrZXkKLSAgICBjYXNlIE5TSG9tZUZ1bmN0aW9uS2V5OiByZXR1cm4gMHgy
NDsKLSAgICAvLyBWS19MRUZUICgyNSkgTEVGVCBBUlJPVyBrZXkKLSAgICBjYXNlIE5TTGVmdEFy
cm93RnVuY3Rpb25LZXk6IHJldHVybiAweDI1OwotICAgIC8vIFZLX1VQICgyNikgVVAgQVJST1cg
a2V5Ci0gICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlvbktleTogcmV0dXJuIDB4MjY7Ci0gICAgLy8g
VktfUklHSFQgKDI3KSBSSUdIVCBBUlJPVyBrZXkKLSAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0
aW9uS2V5OiByZXR1cm4gMHgyNzsKLSAgICAvLyBWS19ET1dOICgyOCkgRE9XTiBBUlJPVyBrZXkK
LSAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6IHJldHVybiAweDI4OwotICAgIC8vIFZL
X1NFTEVDVCAoMjkpIFNFTEVDVCBrZXkKLSAgICBjYXNlIE5TU2VsZWN0RnVuY3Rpb25LZXk6IHJl
dHVybiAweDI5OwotICAgIC8vIFZLX1BSSU5UICgyQSkgUFJJTlQga2V5Ci0gICAgY2FzZSBOU1By
aW50RnVuY3Rpb25LZXk6IHJldHVybiAweDJBOwotICAgIC8vIFZLX0VYRUNVVEUgKDJCKSBFWEVD
VVRFIGtleQotICAgIGNhc2UgTlNFeGVjdXRlRnVuY3Rpb25LZXk6IHJldHVybiAweDJCOwotICAg
IC8vIFZLX1NOQVBTSE9UICgyQykgUFJJTlQgU0NSRUVOIGtleQotICAgIGNhc2UgTlNQcmludFNj
cmVlbkZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyQzsKLSAgICAvLyBWS19JTlNFUlQgKDJEKSBJTlMg
a2V5Ci0gICAgY2FzZSBOU0luc2VydEZ1bmN0aW9uS2V5OiBjYXNlIE5TSGVscEZ1bmN0aW9uS2V5
OiByZXR1cm4gMHgyRDsKLSAgICAvLyBWS19ERUxFVEUgKDJFKSBERUwga2V5Ci0gICAgY2FzZSBO
U0RlbGV0ZUZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyRTsKLQotICAgIC8vIFZLX0hFTFAgKDJGKSBI
RUxQIGtleQotCi0gICAgLy8gICgzMCkgMCBrZXkKLSAgICBjYXNlICcwJzogY2FzZSAnKSc6IHJl
dHVybiAweDMwOwotICAgIC8vICAoMzEpIDEga2V5Ci0gICAgY2FzZSAnMSc6IGNhc2UgJyEnOiBy
ZXR1cm4gMHgzMTsKLSAgICAvLyAgKDMyKSAyIGtleQotICAgIGNhc2UgJzInOiBjYXNlICdAJzog
cmV0dXJuIDB4MzI7Ci0gICAgLy8gICgzMykgMyBrZXkKLSAgICBjYXNlICczJzogY2FzZSAnIyc6
IHJldHVybiAweDMzOwotICAgIC8vICAoMzQpIDQga2V5Ci0gICAgY2FzZSAnNCc6IGNhc2UgJyQn
OiByZXR1cm4gMHgzNDsKLSAgICAvLyAgKDM1KSA1IGtleQotICAgIGNhc2UgJzUnOiBjYXNlICcl
JzogcmV0dXJuIDB4MzU7Ci0gICAgLy8gICgzNikgNiBrZXkKLSAgICBjYXNlICc2JzogY2FzZSAn
Xic6IHJldHVybiAweDM2OwotICAgIC8vICAoMzcpIDcga2V5Ci0gICAgY2FzZSAnNyc6IGNhc2Ug
JyYnOiByZXR1cm4gMHgzNzsKLSAgICAvLyAgKDM4KSA4IGtleQotICAgIGNhc2UgJzgnOiBjYXNl
ICcqJzogcmV0dXJuIDB4Mzg7Ci0gICAgLy8gICgzOSkgOSBrZXkKLSAgICBjYXNlICc5JzogY2Fz
ZSAnKCc6IHJldHVybiAweDM5OwotICAgIC8vICAoNDEpIEEga2V5Ci0gICAgY2FzZSAnYSc6IGNh
c2UgJ0EnOiByZXR1cm4gMHg0MTsKLSAgICAvLyAgKDQyKSBCIGtleQotICAgIGNhc2UgJ2InOiBj
YXNlICdCJzogcmV0dXJuIDB4NDI7Ci0gICAgLy8gICg0MykgQyBrZXkKLSAgICBjYXNlICdjJzog
Y2FzZSAnQyc6IHJldHVybiAweDQzOwotICAgIC8vICAoNDQpIEQga2V5Ci0gICAgY2FzZSAnZCc6
IGNhc2UgJ0QnOiByZXR1cm4gMHg0NDsKLSAgICAvLyAgKDQ1KSBFIGtleQotICAgIGNhc2UgJ2Un
OiBjYXNlICdFJzogcmV0dXJuIDB4NDU7Ci0gICAgLy8gICg0NikgRiBrZXkKLSAgICBjYXNlICdm
JzogY2FzZSAnRic6IHJldHVybiAweDQ2OwotICAgIC8vICAoNDcpIEcga2V5Ci0gICAgY2FzZSAn
Zyc6IGNhc2UgJ0cnOiByZXR1cm4gMHg0NzsKLSAgICAvLyAgKDQ4KSBIIGtleQotICAgIGNhc2Ug
J2gnOiBjYXNlICdIJzogcmV0dXJuIDB4NDg7Ci0gICAgLy8gICg0OSkgSSBrZXkKLSAgICBjYXNl
ICdpJzogY2FzZSAnSSc6IHJldHVybiAweDQ5OwotICAgIC8vICAoNEEpIEoga2V5Ci0gICAgY2Fz
ZSAnaic6IGNhc2UgJ0onOiByZXR1cm4gMHg0QTsKLSAgICAvLyAgKDRCKSBLIGtleQotICAgIGNh
c2UgJ2snOiBjYXNlICdLJzogcmV0dXJuIDB4NEI7Ci0gICAgLy8gICg0QykgTCBrZXkKLSAgICBj
YXNlICdsJzogY2FzZSAnTCc6IHJldHVybiAweDRDOwotICAgIC8vICAoNEQpIE0ga2V5Ci0gICAg
Y2FzZSAnbSc6IGNhc2UgJ00nOiByZXR1cm4gMHg0RDsKLSAgICAvLyAgKDRFKSBOIGtleQotICAg
IGNhc2UgJ24nOiBjYXNlICdOJzogcmV0dXJuIDB4NEU7Ci0gICAgLy8gICg0RikgTyBrZXkKLSAg
ICBjYXNlICdvJzogY2FzZSAnTyc6IHJldHVybiAweDRGOwotICAgIC8vICAoNTApIFAga2V5Ci0g
ICAgY2FzZSAncCc6IGNhc2UgJ1AnOiByZXR1cm4gMHg1MDsKLSAgICAvLyAgKDUxKSBRIGtleQot
ICAgIGNhc2UgJ3EnOiBjYXNlICdRJzogcmV0dXJuIDB4NTE7Ci0gICAgLy8gICg1MikgUiBrZXkK
LSAgICBjYXNlICdyJzogY2FzZSAnUic6IHJldHVybiAweDUyOwotICAgIC8vICAoNTMpIFMga2V5
Ci0gICAgY2FzZSAncyc6IGNhc2UgJ1MnOiByZXR1cm4gMHg1MzsKLSAgICAvLyAgKDU0KSBUIGtl
eQotICAgIGNhc2UgJ3QnOiBjYXNlICdUJzogcmV0dXJuIDB4NTQ7Ci0gICAgLy8gICg1NSkgVSBr
ZXkKLSAgICBjYXNlICd1JzogY2FzZSAnVSc6IHJldHVybiAweDU1OwotICAgIC8vICAoNTYpIFYg
a2V5Ci0gICAgY2FzZSAndic6IGNhc2UgJ1YnOiByZXR1cm4gMHg1NjsKLSAgICAvLyAgKDU3KSBX
IGtleQotICAgIGNhc2UgJ3cnOiBjYXNlICdXJzogcmV0dXJuIDB4NTc7Ci0gICAgLy8gICg1OCkg
WCBrZXkKLSAgICBjYXNlICd4JzogY2FzZSAnWCc6IHJldHVybiAweDU4OwotICAgIC8vICAoNTkp
IFkga2V5Ci0gICAgY2FzZSAneSc6IGNhc2UgJ1knOiByZXR1cm4gMHg1OTsKLSAgICAvLyAgKDVB
KSBaIGtleQotICAgIGNhc2UgJ3onOiBjYXNlICdaJzogcmV0dXJuIDB4NUE7Ci0KLSAgICAvLyBW
S19MV0lOICg1QikgTGVmdCBXaW5kb3dzIGtleSAoTWljcm9zb2Z0IE5hdHVyYWwga2V5Ym9hcmQp
Ci0gICAgLy8gVktfUldJTiAoNUMpIFJpZ2h0IFdpbmRvd3Mga2V5IChOYXR1cmFsIGtleWJvYXJk
KQotICAgIC8vIFZLX0FQUFMgKDVEKSBBcHBsaWNhdGlvbnMga2V5IChOYXR1cmFsIGtleWJvYXJk
KQotICAgIC8vIFZLX1NMRUVQICg1RikgQ29tcHV0ZXIgU2xlZXAga2V5Ci0KLSAgICAvLyBWS19O
VU1QQUQwICg2MCkgTnVtZXJpYyBrZXlwYWQgMCBrZXkKLSAgICAvLyBWS19OVU1QQUQxICg2MSkg
TnVtZXJpYyBrZXlwYWQgMSBrZXkKLSAgICAvLyBWS19OVU1QQUQyICg2MikgTnVtZXJpYyBrZXlw
YWQgMiBrZXkKLSAgICAvLyBWS19OVU1QQUQzICg2MykgTnVtZXJpYyBrZXlwYWQgMyBrZXkKLSAg
ICAvLyBWS19OVU1QQUQ0ICg2NCkgTnVtZXJpYyBrZXlwYWQgNCBrZXkKLSAgICAvLyBWS19OVU1Q
QUQ1ICg2NSkgTnVtZXJpYyBrZXlwYWQgNSBrZXkKLSAgICAvLyBWS19OVU1QQUQ2ICg2NikgTnVt
ZXJpYyBrZXlwYWQgNiBrZXkKLSAgICAvLyBWS19OVU1QQUQ3ICg2NykgTnVtZXJpYyBrZXlwYWQg
NyBrZXkKLSAgICAvLyBWS19OVU1QQUQ4ICg2OCkgTnVtZXJpYyBrZXlwYWQgOCBrZXkKLSAgICAv
LyBWS19OVU1QQUQ5ICg2OSkgTnVtZXJpYyBrZXlwYWQgOSBrZXkKLSAgICAvLyBWS19NVUxUSVBM
WSAoNkEpIE11bHRpcGx5IGtleQotICAgIC8vIFZLX0FERCAoNkIpIEFkZCBrZXkKLSAgICAvLyBo
YW5kbGVkIGJ5IGtleSBjb2RlIGFib3ZlCi0KLSAgICAvLyBWS19TRVBBUkFUT1IgKDZDKSBTZXBh
cmF0b3Iga2V5Ci0KLSAgICAvLyBWS19TVUJUUkFDVCAoNkQpIFN1YnRyYWN0IGtleQotICAgIC8v
IFZLX0RFQ0lNQUwgKDZFKSBEZWNpbWFsIGtleQotICAgIC8vIFZLX0RJVklERSAoNkYpIERpdmlk
ZSBrZXkKLSAgICAvLyBoYW5kbGVkIGJ5IGtleSBjb2RlIGFib3ZlCi0KLSAgICAvLyBWS19GMSAo
NzApIEYxIGtleQotICAgIGNhc2UgTlNGMUZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3MDsKLSAgICAv
LyBWS19GMiAoNzEpIEYyIGtleQotICAgIGNhc2UgTlNGMkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3
MTsKLSAgICAvLyBWS19GMyAoNzIpIEYzIGtleQotICAgIGNhc2UgTlNGM0Z1bmN0aW9uS2V5OiBy
ZXR1cm4gMHg3MjsKLSAgICAvLyBWS19GNCAoNzMpIEY0IGtleQotICAgIGNhc2UgTlNGNEZ1bmN0
aW9uS2V5OiByZXR1cm4gMHg3MzsKLSAgICAvLyBWS19GNSAoNzQpIEY1IGtleQotICAgIGNhc2Ug
TlNGNUZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3NDsKLSAgICAvLyBWS19GNiAoNzUpIEY2IGtleQot
ICAgIGNhc2UgTlNGNkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3NTsKLSAgICAvLyBWS19GNyAoNzYp
IEY3IGtleQotICAgIGNhc2UgTlNGN0Z1bmN0aW9uS2V5OiByZXR1cm4gMHg3NjsKLSAgICAvLyBW
S19GOCAoNzcpIEY4IGtleQotICAgIGNhc2UgTlNGOEZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3NzsK
LSAgICAvLyBWS19GOSAoNzgpIEY5IGtleQotICAgIGNhc2UgTlNGOUZ1bmN0aW9uS2V5OiByZXR1
cm4gMHg3ODsKLSAgICAvLyBWS19GMTAgKDc5KSBGMTAga2V5Ci0gICAgY2FzZSBOU0YxMEZ1bmN0
aW9uS2V5OiByZXR1cm4gMHg3OTsKLSAgICAvLyBWS19GMTEgKDdBKSBGMTEga2V5Ci0gICAgY2Fz
ZSBOU0YxMUZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3QTsKLSAgICAvLyBWS19GMTIgKDdCKSBGMTIg
a2V5Ci0gICAgY2FzZSBOU0YxMkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3QjsKLSAgICAvLyBWS19G
MTMgKDdDKSBGMTMga2V5Ci0gICAgY2FzZSBOU0YxM0Z1bmN0aW9uS2V5OiByZXR1cm4gMHg3QzsK
LSAgICAvLyBWS19GMTQgKDdEKSBGMTQga2V5Ci0gICAgY2FzZSBOU0YxNEZ1bmN0aW9uS2V5OiBy
ZXR1cm4gMHg3RDsKLSAgICAvLyBWS19GMTUgKDdFKSBGMTUga2V5Ci0gICAgY2FzZSBOU0YxNUZ1
bmN0aW9uS2V5OiByZXR1cm4gMHg3RTsKLSAgICAvLyBWS19GMTYgKDdGKSBGMTYga2V5Ci0gICAg
Y2FzZSBOU0YxNkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3RjsKLSAgICAvLyBWS19GMTcgKDgwSCkg
RjE3IGtleQotICAgIGNhc2UgTlNGMTdGdW5jdGlvbktleTogcmV0dXJuIDB4ODA7Ci0gICAgLy8g
VktfRjE4ICg4MUgpIEYxOCBrZXkKLSAgICBjYXNlIE5TRjE4RnVuY3Rpb25LZXk6IHJldHVybiAw
eDgxOwotICAgIC8vIFZLX0YxOSAoODJIKSBGMTkga2V5Ci0gICAgY2FzZSBOU0YxOUZ1bmN0aW9u
S2V5OiByZXR1cm4gMHg4MjsKLSAgICAvLyBWS19GMjAgKDgzSCkgRjIwIGtleQotICAgIGNhc2Ug
TlNGMjBGdW5jdGlvbktleTogcmV0dXJuIDB4ODM7Ci0gICAgLy8gVktfRjIxICg4NEgpIEYyMSBr
ZXkKLSAgICBjYXNlIE5TRjIxRnVuY3Rpb25LZXk6IHJldHVybiAweDg0OwotICAgIC8vIFZLX0Yy
MiAoODVIKSBGMjIga2V5Ci0gICAgY2FzZSBOU0YyMkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg4NTsK
LSAgICAvLyBWS19GMjMgKDg2SCkgRjIzIGtleQotICAgIGNhc2UgTlNGMjNGdW5jdGlvbktleTog
cmV0dXJuIDB4ODY7Ci0gICAgLy8gVktfRjI0ICg4N0gpIEYyNCBrZXkKLSAgICBjYXNlIE5TRjI0
RnVuY3Rpb25LZXk6IHJldHVybiAweDg3OwotCi0gICAgLy8gVktfTlVNTE9DSyAoOTApIE5VTSBM
T0NLIGtleQotCi0gICAgLy8gVktfU0NST0xMICg5MSkgU0NST0xMIExPQ0sga2V5Ci0gICAgY2Fz
ZSBOU1Njcm9sbExvY2tGdW5jdGlvbktleTogcmV0dXJuIDB4OTE7Ci0KLSAgICAvLyBWS19MU0hJ
RlQgKEEwKSBMZWZ0IFNISUZUIGtleQotICAgIC8vIFZLX1JTSElGVCAoQTEpIFJpZ2h0IFNISUZU
IGtleQotICAgIC8vIFZLX0xDT05UUk9MIChBMikgTGVmdCBDT05UUk9MIGtleQotICAgIC8vIFZL
X1JDT05UUk9MIChBMykgUmlnaHQgQ09OVFJPTCBrZXkKLSAgICAvLyBWS19MTUVOVSAoQTQpIExl
ZnQgTUVOVSBrZXkKLSAgICAvLyBWS19STUVOVSAoQTUpIFJpZ2h0IE1FTlUga2V5Ci0gICAgLy8g
VktfQlJPV1NFUl9CQUNLIChBNikgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIEJhY2sga2V5Ci0g
ICAgLy8gVktfQlJPV1NFUl9GT1JXQVJEIChBNykgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIEZv
cndhcmQga2V5Ci0gICAgLy8gVktfQlJPV1NFUl9SRUZSRVNIIChBOCkgV2luZG93cyAyMDAwL1hQ
OiBCcm93c2VyIFJlZnJlc2gga2V5Ci0gICAgLy8gVktfQlJPV1NFUl9TVE9QIChBOSkgV2luZG93
cyAyMDAwL1hQOiBCcm93c2VyIFN0b3Aga2V5Ci0gICAgLy8gVktfQlJPV1NFUl9TRUFSQ0ggKEFB
KSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgU2VhcmNoIGtleQotICAgIC8vIFZLX0JST1dTRVJf
RkFWT1JJVEVTIChBQikgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIEZhdm9yaXRlcyBrZXkKLSAg
ICAvLyBWS19CUk9XU0VSX0hPTUUgKEFDKSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgU3RhcnQg
YW5kIEhvbWUga2V5Ci0gICAgLy8gVktfVk9MVU1FX01VVEUgKEFEKSBXaW5kb3dzIDIwMDAvWFA6
IFZvbHVtZSBNdXRlIGtleQotICAgIC8vIFZLX1ZPTFVNRV9ET1dOIChBRSkgV2luZG93cyAyMDAw
L1hQOiBWb2x1bWUgRG93biBrZXkKLSAgICAvLyBWS19WT0xVTUVfVVAgKEFGKSBXaW5kb3dzIDIw
MDAvWFA6IFZvbHVtZSBVcCBrZXkKLSAgICAvLyBWS19NRURJQV9ORVhUX1RSQUNLIChCMCkgV2lu
ZG93cyAyMDAwL1hQOiBOZXh0IFRyYWNrIGtleQotICAgIC8vIFZLX01FRElBX1BSRVZfVFJBQ0sg
KEIxKSBXaW5kb3dzIDIwMDAvWFA6IFByZXZpb3VzIFRyYWNrIGtleQotICAgIC8vIFZLX01FRElB
X1NUT1AgKEIyKSBXaW5kb3dzIDIwMDAvWFA6IFN0b3AgTWVkaWEga2V5Ci0gICAgLy8gVktfTUVE
SUFfUExBWV9QQVVTRSAoQjMpIFdpbmRvd3MgMjAwMC9YUDogUGxheS9QYXVzZSBNZWRpYSBrZXkK
LSAgICAvLyBWS19MQVVOQ0hfTUFJTCAoQjQpIFdpbmRvd3MgMjAwMC9YUDogU3RhcnQgTWFpbCBr
ZXkKLSAgICAvLyBWS19MQVVOQ0hfTUVESUFfU0VMRUNUIChCNSkgV2luZG93cyAyMDAwL1hQOiBT
ZWxlY3QgTWVkaWEga2V5Ci0gICAgLy8gVktfTEFVTkNIX0FQUDEgKEI2KSBXaW5kb3dzIDIwMDAv
WFA6IFN0YXJ0IEFwcGxpY2F0aW9uIDEga2V5Ci0gICAgLy8gVktfTEFVTkNIX0FQUDIgKEI3KSBX
aW5kb3dzIDIwMDAvWFA6IFN0YXJ0IEFwcGxpY2F0aW9uIDIga2V5Ci0KLSAgICAvLyBWS19PRU1f
MSAoQkEpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkg
a2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwg
dGhlICc7Oicga2V5Ci0gICAgY2FzZSAnOyc6IGNhc2UgJzonOiByZXR1cm4gMHhCQTsKLSAgICAv
LyBWS19PRU1fUExVUyAoQkIpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lv
biwgdGhlICcrJyBrZXkKLSAgICBjYXNlICc9JzogY2FzZSAnKyc6IHJldHVybiAweEJCOwotICAg
IC8vIFZLX09FTV9DT01NQSAoQkMpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3Jl
Z2lvbiwgdGhlICcsJyBrZXkKLSAgICBjYXNlICcsJzogY2FzZSAnPCc6IHJldHVybiAweEJDOwot
ICAgIC8vIFZLX09FTV9NSU5VUyAoQkQpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5
L3JlZ2lvbiwgdGhlICctJyBrZXkKLSAgICBjYXNlICctJzogY2FzZSAnXyc6IHJldHVybiAweEJE
OwotICAgIC8vIFZLX09FTV9QRVJJT0QgKEJFKSBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291
bnRyeS9yZWdpb24sIHRoZSAnLicga2V5Ci0gICAgY2FzZSAnLic6IGNhc2UgJz4nOiByZXR1cm4g
MHhCRTsKLSAgICAvLyBWS19PRU1fMiAoQkYpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFj
dGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBV
UyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICcvPycga2V5Ci0gICAgY2FzZSAnLyc6IGNhc2UgJz8n
OiByZXR1cm4gMHhCRjsKLSAgICAvLyBWS19PRU1fMyAoQzApIFVzZWQgZm9yIG1pc2NlbGxhbmVv
dXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDog
Rm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdgficga2V5Ci0gICAgY2FzZSAnYCc6
IGNhc2UgJ34nOiByZXR1cm4gMHhDMDsKLSAgICAvLyBWS19PRU1fNCAoREIpIFVzZWQgZm9yIG1p
c2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3Mg
MjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdbeycga2V5Ci0gICAg
Y2FzZSAnWyc6IGNhc2UgJ3snOiByZXR1cm4gMHhEQjsKLSAgICAvLyBWS19PRU1fNSAoREMpIFVz
ZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQu
IFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdcfCcg
a2V5Ci0gICAgY2FzZSAnXFwnOiBjYXNlICd8JzogcmV0dXJuIDB4REM7Ci0gICAgLy8gVktfT0VN
XzYgKEREKSBVc2VkIGZvciBtaXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5
IGtleWJvYXJkLiBXaW5kb3dzIDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQs
IHRoZSAnXX0nIGtleQotICAgIGNhc2UgJ10nOiBjYXNlICd9JzogcmV0dXJuIDB4REQ7Ci0gICAg
Ly8gVktfT0VNXzcgKERFKSBVc2VkIGZvciBtaXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNh
biB2YXJ5IGJ5IGtleWJvYXJkLiBXaW5kb3dzIDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQg
a2V5Ym9hcmQsIHRoZSAnc2luZ2xlLXF1b3RlL2RvdWJsZS1xdW90ZScga2V5Ci0gICAgY2FzZSAn
XCcnOiBjYXNlICciJzogcmV0dXJuIDB4REU7Ci0KLSAgICAvLyBWS19PRU1fOCAoREYpIFVzZWQg
Zm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuCi0g
ICAgLy8gVktfT0VNXzEwMiAoRTIpIFdpbmRvd3MgMjAwMC9YUDogRWl0aGVyIHRoZSBhbmdsZSBi
cmFja2V0IGtleSBvciB0aGUgYmFja3NsYXNoIGtleSBvbiB0aGUgUlQgMTAyLWtleSBrZXlib2Fy
ZAotICAgIC8vIFZLX1BST0NFU1NLRVkgKEU1KSBXaW5kb3dzIDk1Lzk4L01lLCBXaW5kb3dzIE5U
IDQuMCwgV2luZG93cyAyMDAwL1hQOiBJTUUgUFJPQ0VTUyBrZXkKLSAgICAvLyBWS19QQUNLRVQg
KEU3KSBXaW5kb3dzIDIwMDAvWFA6IFVzZWQgdG8gcGFzcyBVbmljb2RlIGNoYXJhY3RlcnMgYXMg
aWYgdGhleSB3ZXJlIGtleXN0cm9rZXMuIFRoZSBWS19QQUNLRVQga2V5IGlzIHRoZSBsb3cgd29y
ZCBvZiBhIDMyLWJpdCBWaXJ0dWFsIEtleSB2YWx1ZSB1c2VkIGZvciBub24ta2V5Ym9hcmQgaW5w
dXQgbWV0aG9kcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBSZW1hcmsgaW4gS0VZQkRJTlBV
VCxTZW5kSW5wdXQsIFdNX0tFWURPV04sIGFuZCBXTV9LRVlVUAotICAgIC8vIFZLX0FUVE4gKEY2
KSBBdHRuIGtleQotICAgIC8vIFZLX0NSU0VMIChGNykgQ3JTZWwga2V5Ci0gICAgLy8gVktfRVhT
RUwgKEY4KSBFeFNlbCBrZXkKLSAgICAvLyBWS19FUkVPRiAoRjkpIEVyYXNlIEVPRiBrZXkKLSAg
ICAvLyBWS19QTEFZIChGQSkgUGxheSBrZXkKLSAgICAvLyBWS19aT09NIChGQikgWm9vbSBrZXkK
LSAgICAvLyBWS19OT05BTUUgKEZDKSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQotICAgIC8vIFZL
X1BBMSAoRkQpIFBBMSBrZXkKLSAgICAvLyBWS19PRU1fQ0xFQVIgKEZFKSBDbGVhciBrZXkKLSAg
ICB9Ci0KLSAgICByZXR1cm4gMDsKKyAgICBpbnQgY29kZSA9IDA7CisgICAgLy8gVGhlcmUgYXJl
IHNldmVyYWwga2luZHMgb2YgY2hhcmFjdGVycyBmb3Igd2hpY2ggd2UgcHJvZHVjZSBrZXkgY29k
ZSBmcm9tIGNoYXIgY29kZToKKyAgICAvLyAxLiBSb21hbiBsZXR0ZXJzLiBXaW5kb3dzIGtleWJv
YXJkIGxheW91dHMgYWZmZWN0IGJvdGggdmlydHVhbCBrZXkgY29kZXMgYW5kIGNoYXJhY3RlciBj
b2RlcyBmb3IgdGhlc2UsCisgICAgLy8gICAgc28gZS5nLiAnQScgZ2V0cyB0aGUgc2FtZSBrZXlD
b2RlIG9uIFFXRVJUWSwgQVpFUlRZIG9yIER2b3JhayBsYXlvdXRzLgorICAgIC8vIDIuIEtleXMg
Zm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3duIE1hYyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQ
cmludFNjcmVlbi4KKyAgICAvLyAzLiBDZXJ0YWluIHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRv
d3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVkIGRlcGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJk
IGxheW91dCwKKyAgICAvLyAgICBidXQgc2VlIGNvbW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JD
aGFyQ29kZSgpLgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0
eXBlXSA9PSBOU0tleVVwKSB7CisgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJz
IGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmly
c3QuCisgICAgICAgIE5TU3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOworICAgICAgICBj
b2RlID0gW3MgbGVuZ3RoXSA+IDAgPyBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2Rl
KFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKKyAgICAgICAgaWYgKGNvZGUpCisgICAgICAg
ICAgICByZXR1cm4gY29kZTsKKworICAgICAgICAvLyBDdHJsK0Egb24gYW4gQVpFUlRZIGtleWJv
YXJkIHdvdWxkIGdldCBWS19RIGtleUNvZGUgaWYgd2UgcmVsaWVkIG9uIC1bTlNFdmVudCBrZXlD
b2RlXSBiZWxvdy4KKyAgICAgICAgcyA9IFtldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmll
cnNdOworICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyBXZWJDb3JlOjp3aW5kb3dzS2V5
Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKKyAgICAgICAgaWYg
KGNvZGUpCisgICAgICAgICAgICByZXR1cm4gY29kZTsKKyAgICB9CisKKyAgICAvLyBNYXAgTWFj
IHZpcnR1YWwga2V5IGNvZGUgZGlyZWN0bHkgdG8gV2luZG93cyBvbmUgZm9yIGFueSBrZXlzIG5v
dCBoYW5kbGVkIGFib3ZlLgorICAgIC8vIEUuZy4gdGhlIGtleSBuZXh0IHRvIENhcHMgTG9jayBo
YXMgdGhlIHNhbWUgRXZlbnQua2V5Q29kZSBvbiBVLlMuIGtleWJvYXJkICgnQScpIGFuZCBvbiBS
dXNzaWFuIGtleWJvYXJkIChDWVJJTExJQyBMRVRURVIgRUYpLgorICAgIHJldHVybiBXZWJDb3Jl
Ojp3aW5kb3dzS2V5Q29kZUZvcktleUNvZGUoW2V2ZW50IGtleUNvZGVdKTsKIH0KIAogc3RhdGlj
IGlubGluZSBOU1N0cmluZyogdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkK
</data>
<flag name="review"
          id="76613"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="76614"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84683</attachid>
            <date>2011-03-03 20:17:23 -0800</date>
            <delta_ts>2011-03-04 01:04:58 -0800</delta_ts>
            <desc>Fix email address in ChangeLog files.</desc>
            <filename>patch-54939.diff</filename>
            <type>text/plain</type>
            <size>18783</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5Mjk1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjEgIEphbWVzIFN1
IDxzdXpoZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBrZXljb2RlIGlzIGFsd2F5cyAwIHdoZW4gdXNpbmcg
bm9uLUxhdGluIGtleWJvYXJkIGxheW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU0OTM5CisKKyAgICAgICAgQWRkIEtleUV2ZW50Q29jb2Eue2gs
bW19LCBzbyB0aGF0IHdlIGNhbiByZXVzZSB0aGVtIGluIGNocm9taXVtLgorCisgICAgICAgIE5v
IGludGVuZGVkIGZ1bmN0aW9uYWxpdHkgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5neXAv
V2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorCiAyMDExLTAyLTIxICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1l
cyBSb2JpbnNvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDc5Mjk0KQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNDczLDYgKzI0NzMs
OCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2NmL1NjaGVkdWxlUGFpci5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2NmL1NjaGVkdWxlUGFpci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2NvY29hL0tl
eUV2ZW50Q29jb2EuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2Nv
YS5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdExl
Z2FjeS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJl
dmlzaW9uIDc5Mjk0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2Miw2ICsyNjIsNyBAQAogICAgICAgICAgICMgcmVsYXRlZCBk
aXJlY3Rvcmllcy4KICAgICAgICAgICAjIHBsYXRmb3JtL2dyYXBoaWNzL2NnIG1heSBuZWVkIHRv
IHN0aWNrIGFyb3VuZCwgdGhvdWdoLgogICAgICAgICAgICcuLi9wbGF0Zm9ybS9hdWRpby9tYWMn
LAorICAgICAgICAgICcuLi9wbGF0Zm9ybS9jb2NvYScsCiAgICAgICAgICAgJy4uL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYycsCiAgICAgICAgICAgJy4uL3BsYXRmb3JtL21hYycsCiAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL3RleHQvbWFjJywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3OTI5NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMjEgIEphbWVzIFN1IDxzdXpoZUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0Nocm9taXVtXSBrZXljb2RlIGlzIGFsd2F5cyAwIHdoZW4gdXNpbmcgbm9uLUxhdGlu
IGtleWJvYXJkIGxheW91dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU0OTM5CisKKyAgICAgICAgTm8gaW50ZW5kZWQgZnVuY3Rpb25hbGl0eSBjaGFu
Z2UuCisKKyAgICAgICAgKiBzcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tOgorICAgICAg
ICAoV2ViS2l0Ojp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KTogVXNlIHRoZSBzYW1lIGltcGxl
bWVudGF0aW9uCisgICAgICAgIHByb3ZpZGVkIGluIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2
ZW50TWFjLm1tLgorCiAyMDExLTAyLTIxICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3Rvcnku
bW0JKHJldmlzaW9uIDc5Mjk0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dl
YklucHV0RXZlbnRGYWN0b3J5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CiAjaW1w
b3J0IDxDb2NvYS9Db2NvYS5oPgogCisjaW1wb3J0ICJLZXlFdmVudENvY29hLmgiCiAjaW5jbHVk
ZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKQEAgLTEy
MiwzODQgKzEyMywzMCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50
CiAKIHN0YXRpYyBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkK
IHsKLSAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgIC8vIFZLX1RBQiAoMDkpIFRB
QiBrZXkKLSAgICBjYXNlIDQ4OgotICAgICAgICByZXR1cm4gMHgwOTsKLQotICAgIC8vIFZLX0FQ
UFMgKDVEKSBSaWdodCB3aW5kb3dzL21ldGEga2V5Ci0gICAgY2FzZSA1NDogLy8gUmlnaHQgQ29t
bWFuZAotICAgICAgICByZXR1cm4gMHg1RDsKLQotICAgIC8vIFZLX0xXSU4gKDVCKSBMZWZ0IHdp
bmRvd3MvbWV0YSBrZXkKLSAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgcmV0
dXJuIDB4NUI7Ci0KLSAgICAvLyBWS19DQVBJVEFMICgxNCkgY2FwcyBsb2NrcyBrZXkKLSAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICByZXR1cm4gMHgxNDsKLQotICAgIC8vIFZLX1NI
SUZUICgxMCkgZWl0aGVyIHNoaWZ0IGtleQotICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAg
ICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAotICAgICAgICByZXR1cm4gMHgxMDsKLQotICAgIC8v
IFZLX01FTlUgKDEyKSBlaXRoZXIgYWx0IGtleQotICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgIHJldHVybiAweDEyOwotCi0gICAgLy8g
VktfQ09OVFJPTCAoMTEpIGVpdGhlciBjdHJsIGtleQotICAgIGNhc2UgNTk6IC8vIExlZnQgQ3Ry
bAotICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgcmV0dXJuIDB4MTE7Ci0KLS8v
IEJlZ2luIG5vbi1BcHBsZSBhZGRpdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbiAobm8gV2luZG93
cyBrZXkgY29kZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0vLyBFbmQgbm9uLUFwcGxlIGFkZGl0aW9u
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LSAgICAvLyBWS19DTEVBUiAoMEMpIENMRUFSIGtleQotICAgIGNhc2UgNzE6IHJldHVybiAweDBD
OwotCi0gICAgLy8gVktfTlVNUEFEMCAoNjApIE51bWVyaWMga2V5cGFkIDAga2V5Ci0gICAgY2Fz
ZSA4MjogcmV0dXJuIDB4NjA7Ci0gICAgLy8gVktfTlVNUEFEMSAoNjEpIE51bWVyaWMga2V5cGFk
IDEga2V5Ci0gICAgY2FzZSA4MzogcmV0dXJuIDB4NjE7Ci0gICAgLy8gVktfTlVNUEFEMiAoNjIp
IE51bWVyaWMga2V5cGFkIDIga2V5Ci0gICAgY2FzZSA4NDogcmV0dXJuIDB4NjI7Ci0gICAgLy8g
VktfTlVNUEFEMyAoNjMpIE51bWVyaWMga2V5cGFkIDMga2V5Ci0gICAgY2FzZSA4NTogcmV0dXJu
IDB4NjM7Ci0gICAgLy8gVktfTlVNUEFENCAoNjQpIE51bWVyaWMga2V5cGFkIDQga2V5Ci0gICAg
Y2FzZSA4NjogcmV0dXJuIDB4NjQ7Ci0gICAgLy8gVktfTlVNUEFENSAoNjUpIE51bWVyaWMga2V5
cGFkIDUga2V5Ci0gICAgY2FzZSA4NzogcmV0dXJuIDB4NjU7Ci0gICAgLy8gVktfTlVNUEFENiAo
NjYpIE51bWVyaWMga2V5cGFkIDYga2V5Ci0gICAgY2FzZSA4ODogcmV0dXJuIDB4NjY7Ci0gICAg
Ly8gVktfTlVNUEFENyAoNjcpIE51bWVyaWMga2V5cGFkIDcga2V5Ci0gICAgY2FzZSA4OTogcmV0
dXJuIDB4Njc7Ci0gICAgLy8gVktfTlVNUEFEOCAoNjgpIE51bWVyaWMga2V5cGFkIDgga2V5Ci0g
ICAgY2FzZSA5MTogcmV0dXJuIDB4Njg7Ci0gICAgLy8gVktfTlVNUEFEOSAoNjkpIE51bWVyaWMg
a2V5cGFkIDkga2V5Ci0gICAgY2FzZSA5MjogcmV0dXJuIDB4Njk7Ci0gICAgLy8gVktfTVVMVElQ
TFkgKDZBKSBNdWx0aXBseSBrZXkKLSAgICBjYXNlIDY3OiByZXR1cm4gMHg2QTsKLSAgICAvLyBW
S19BREQgKDZCKSBBZGQga2V5Ci0gICAgY2FzZSA2OTogcmV0dXJuIDB4NkI7Ci0KLSAgICAvLyBW
S19TVUJUUkFDVCAoNkQpIFN1YnRyYWN0IGtleQotICAgIGNhc2UgNzg6IHJldHVybiAweDZEOwot
ICAgIC8vIFZLX0RFQ0lNQUwgKDZFKSBEZWNpbWFsIGtleQotICAgIGNhc2UgNjU6IHJldHVybiAw
eDZFOwotICAgIC8vIFZLX0RJVklERSAoNkYpIERpdmlkZSBrZXkKLSAgICBjYXNlIDc1OiByZXR1
cm4gMHg2RjsKLSAgICB9Ci0KLS8vIEJlZ2luIG5vbi1BcHBsZSBhZGRpdGlvbiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAvLyB8LVtOU0V2
ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc118IGlzbid0IGFsbG93ZWQgZm9yCi0gICAg
Ly8gTlNGbGFnc0NoYW5nZWQsIGFuZCBjb25jZWl2YWJseSB3ZSBtYXkgbm90IGhhdmUgY2F1Z2h0
IGV2ZXJ5dGhpbmcKLSAgICAvLyB3aGljaCBjYXVzZXMgYW4gTlNGbGFnc0NoYW5nZWQgYWJvdmUu
Ci0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAgICAgcmV0dXJu
IDA7Ci0vLyBFbmQgbm9uLUFwcGxlIGFkZGl0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBOU1N0cmluZyogcyA9IFtldmVudCBj
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdOwotICAgIGlmIChbcyBsZW5ndGhdICE9IDEpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgc3dpdGNoIChbcyBjaGFyYWN0ZXJBdEluZGV4OjBdKSB7
Ci0gICAgLy8gVktfTEJVVFRPTiAoMDEpIExlZnQgbW91c2UgYnV0dG9uCi0gICAgLy8gVktfUkJV
VFRPTiAoMDIpIFJpZ2h0IG1vdXNlIGJ1dHRvbgotICAgIC8vIFZLX0NBTkNFTCAoMDMpIENvbnRy
b2wtYnJlYWsgcHJvY2Vzc2luZwotICAgIC8vIFZLX01CVVRUT04gKDA0KSBNaWRkbGUgbW91c2Ug
YnV0dG9uICh0aHJlZS1idXR0b24gbW91c2UpCi0gICAgLy8gVktfWEJVVFRPTjEgKDA1KQotICAg
IC8vIFZLX1hCVVRUT04yICgwNikKLQotICAgIC8vIFZLX0JBQ0sgKDA4KSBCQUNLU1BBQ0Uga2V5
Ci0gICAgY2FzZSA4OiBjYXNlIDB4N0Y6IHJldHVybiAweDA4OwotICAgIC8vIFZLX1RBQiAoMDkp
IFRBQiBrZXkKLSAgICBjYXNlIDk6IHJldHVybiAweDA5OwotCi0gICAgLy8gVktfQ0xFQVIgKDBD
KSBDTEVBUiBrZXkKLSAgICAvLyBoYW5kbGVkIGJ5IGtleSBjb2RlIGFib3ZlCi0KLSAgICAvLyBW
S19SRVRVUk4gKDBEKQotICAgIGNhc2UgMHhEOiBjYXNlIDM6IHJldHVybiAweDBEOwotCi0gICAg
Ly8gVktfU0hJRlQgKDEwKSBTSElGVCBrZXkKLSAgICAvLyBWS19DT05UUk9MICgxMSkgQ1RSTCBr
ZXkKLSAgICAvLyBWS19NRU5VICgxMikgQUxUIGtleQotCi0gICAgLy8gVktfUEFVU0UgKDEzKSBQ
QVVTRSBrZXkKLSAgICBjYXNlIE5TUGF1c2VGdW5jdGlvbktleTogcmV0dXJuIDB4MTM7Ci0KLSAg
ICAvLyBWS19DQVBJVEFMICgxNCkgQ0FQUyBMT0NLIGtleQotICAgIC8vIFZLX0tBTkEgKDE1KSBJ
bnB1dCBNZXRob2QgRWRpdG9yIChJTUUpIEthbmEgbW9kZQotICAgIC8vIFZLX0hBTkdVRUwgKDE1
KSBJTUUgSGFuZ3VlbCBtb2RlIChtYWludGFpbmVkIGZvciBjb21wYXRpYmlsaXR5OyB1c2UgVktf
SEFOR1VMKQotICAgIC8vIFZLX0hBTkdVTCAoMTUpIElNRSBIYW5ndWwgbW9kZQotICAgIC8vIFZL
X0pVTkpBICgxNykgSU1FIEp1bmphIG1vZGUKLSAgICAvLyBWS19GSU5BTCAoMTgpIElNRSBmaW5h
bCBtb2RlCi0gICAgLy8gVktfSEFOSkEgKDE5KSBJTUUgSGFuamEgbW9kZQotICAgIC8vIFZLX0tB
TkpJICgxOSkgSU1FIEthbmppIG1vZGUKLQotICAgIC8vIFZLX0VTQ0FQRSAoMUIpIEVTQyBrZXkK
LSAgICBjYXNlIDB4MUI6IHJldHVybiAweDFCOwotCi0gICAgLy8gVktfQ09OVkVSVCAoMUMpIElN
RSBjb252ZXJ0Ci0gICAgLy8gVktfTk9OQ09OVkVSVCAoMUQpIElNRSBub25jb252ZXJ0Ci0gICAg
Ly8gVktfQUNDRVBUICgxRSkgSU1FIGFjY2VwdAotICAgIC8vIFZLX01PREVDSEFOR0UgKDFGKSBJ
TUUgbW9kZSBjaGFuZ2UgcmVxdWVzdAotCi0gICAgLy8gVktfU1BBQ0UgKDIwKSBTUEFDRUJBUgot
ICAgIGNhc2UgJyAnOiByZXR1cm4gMHgyMDsKLSAgICAvLyBWS19QUklPUiAoMjEpIFBBR0UgVVAg
a2V5Ci0gICAgY2FzZSBOU1BhZ2VVcEZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyMTsKLSAgICAvLyBW
S19ORVhUICgyMikgUEFHRSBET1dOIGtleQotICAgIGNhc2UgTlNQYWdlRG93bkZ1bmN0aW9uS2V5
OiByZXR1cm4gMHgyMjsKLSAgICAvLyBWS19FTkQgKDIzKSBFTkQga2V5Ci0gICAgY2FzZSBOU0Vu
ZEZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyMzsKLSAgICAvLyBWS19IT01FICgyNCkgSE9NRSBrZXkK
LSAgICBjYXNlIE5TSG9tZUZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyNDsKLSAgICAvLyBWS19MRUZU
ICgyNSkgTEVGVCBBUlJPVyBrZXkKLSAgICBjYXNlIE5TTGVmdEFycm93RnVuY3Rpb25LZXk6IHJl
dHVybiAweDI1OwotICAgIC8vIFZLX1VQICgyNikgVVAgQVJST1cga2V5Ci0gICAgY2FzZSBOU1Vw
QXJyb3dGdW5jdGlvbktleTogcmV0dXJuIDB4MjY7Ci0gICAgLy8gVktfUklHSFQgKDI3KSBSSUdI
VCBBUlJPVyBrZXkKLSAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5OiByZXR1cm4gMHgy
NzsKLSAgICAvLyBWS19ET1dOICgyOCkgRE9XTiBBUlJPVyBrZXkKLSAgICBjYXNlIE5TRG93bkFy
cm93RnVuY3Rpb25LZXk6IHJldHVybiAweDI4OwotICAgIC8vIFZLX1NFTEVDVCAoMjkpIFNFTEVD
VCBrZXkKLSAgICBjYXNlIE5TU2VsZWN0RnVuY3Rpb25LZXk6IHJldHVybiAweDI5OwotICAgIC8v
IFZLX1BSSU5UICgyQSkgUFJJTlQga2V5Ci0gICAgY2FzZSBOU1ByaW50RnVuY3Rpb25LZXk6IHJl
dHVybiAweDJBOwotICAgIC8vIFZLX0VYRUNVVEUgKDJCKSBFWEVDVVRFIGtleQotICAgIGNhc2Ug
TlNFeGVjdXRlRnVuY3Rpb25LZXk6IHJldHVybiAweDJCOwotICAgIC8vIFZLX1NOQVBTSE9UICgy
QykgUFJJTlQgU0NSRUVOIGtleQotICAgIGNhc2UgTlNQcmludFNjcmVlbkZ1bmN0aW9uS2V5OiBy
ZXR1cm4gMHgyQzsKLSAgICAvLyBWS19JTlNFUlQgKDJEKSBJTlMga2V5Ci0gICAgY2FzZSBOU0lu
c2VydEZ1bmN0aW9uS2V5OiBjYXNlIE5TSGVscEZ1bmN0aW9uS2V5OiByZXR1cm4gMHgyRDsKLSAg
ICAvLyBWS19ERUxFVEUgKDJFKSBERUwga2V5Ci0gICAgY2FzZSBOU0RlbGV0ZUZ1bmN0aW9uS2V5
OiByZXR1cm4gMHgyRTsKLQotICAgIC8vIFZLX0hFTFAgKDJGKSBIRUxQIGtleQotCi0gICAgLy8g
ICgzMCkgMCBrZXkKLSAgICBjYXNlICcwJzogY2FzZSAnKSc6IHJldHVybiAweDMwOwotICAgIC8v
ICAoMzEpIDEga2V5Ci0gICAgY2FzZSAnMSc6IGNhc2UgJyEnOiByZXR1cm4gMHgzMTsKLSAgICAv
LyAgKDMyKSAyIGtleQotICAgIGNhc2UgJzInOiBjYXNlICdAJzogcmV0dXJuIDB4MzI7Ci0gICAg
Ly8gICgzMykgMyBrZXkKLSAgICBjYXNlICczJzogY2FzZSAnIyc6IHJldHVybiAweDMzOwotICAg
IC8vICAoMzQpIDQga2V5Ci0gICAgY2FzZSAnNCc6IGNhc2UgJyQnOiByZXR1cm4gMHgzNDsKLSAg
ICAvLyAgKDM1KSA1IGtleQotICAgIGNhc2UgJzUnOiBjYXNlICclJzogcmV0dXJuIDB4MzU7Ci0g
ICAgLy8gICgzNikgNiBrZXkKLSAgICBjYXNlICc2JzogY2FzZSAnXic6IHJldHVybiAweDM2Owot
ICAgIC8vICAoMzcpIDcga2V5Ci0gICAgY2FzZSAnNyc6IGNhc2UgJyYnOiByZXR1cm4gMHgzNzsK
LSAgICAvLyAgKDM4KSA4IGtleQotICAgIGNhc2UgJzgnOiBjYXNlICcqJzogcmV0dXJuIDB4Mzg7
Ci0gICAgLy8gICgzOSkgOSBrZXkKLSAgICBjYXNlICc5JzogY2FzZSAnKCc6IHJldHVybiAweDM5
OwotICAgIC8vICAoNDEpIEEga2V5Ci0gICAgY2FzZSAnYSc6IGNhc2UgJ0EnOiByZXR1cm4gMHg0
MTsKLSAgICAvLyAgKDQyKSBCIGtleQotICAgIGNhc2UgJ2InOiBjYXNlICdCJzogcmV0dXJuIDB4
NDI7Ci0gICAgLy8gICg0MykgQyBrZXkKLSAgICBjYXNlICdjJzogY2FzZSAnQyc6IHJldHVybiAw
eDQzOwotICAgIC8vICAoNDQpIEQga2V5Ci0gICAgY2FzZSAnZCc6IGNhc2UgJ0QnOiByZXR1cm4g
MHg0NDsKLSAgICAvLyAgKDQ1KSBFIGtleQotICAgIGNhc2UgJ2UnOiBjYXNlICdFJzogcmV0dXJu
IDB4NDU7Ci0gICAgLy8gICg0NikgRiBrZXkKLSAgICBjYXNlICdmJzogY2FzZSAnRic6IHJldHVy
biAweDQ2OwotICAgIC8vICAoNDcpIEcga2V5Ci0gICAgY2FzZSAnZyc6IGNhc2UgJ0cnOiByZXR1
cm4gMHg0NzsKLSAgICAvLyAgKDQ4KSBIIGtleQotICAgIGNhc2UgJ2gnOiBjYXNlICdIJzogcmV0
dXJuIDB4NDg7Ci0gICAgLy8gICg0OSkgSSBrZXkKLSAgICBjYXNlICdpJzogY2FzZSAnSSc6IHJl
dHVybiAweDQ5OwotICAgIC8vICAoNEEpIEoga2V5Ci0gICAgY2FzZSAnaic6IGNhc2UgJ0onOiBy
ZXR1cm4gMHg0QTsKLSAgICAvLyAgKDRCKSBLIGtleQotICAgIGNhc2UgJ2snOiBjYXNlICdLJzog
cmV0dXJuIDB4NEI7Ci0gICAgLy8gICg0QykgTCBrZXkKLSAgICBjYXNlICdsJzogY2FzZSAnTCc6
IHJldHVybiAweDRDOwotICAgIC8vICAoNEQpIE0ga2V5Ci0gICAgY2FzZSAnbSc6IGNhc2UgJ00n
OiByZXR1cm4gMHg0RDsKLSAgICAvLyAgKDRFKSBOIGtleQotICAgIGNhc2UgJ24nOiBjYXNlICdO
JzogcmV0dXJuIDB4NEU7Ci0gICAgLy8gICg0RikgTyBrZXkKLSAgICBjYXNlICdvJzogY2FzZSAn
Tyc6IHJldHVybiAweDRGOwotICAgIC8vICAoNTApIFAga2V5Ci0gICAgY2FzZSAncCc6IGNhc2Ug
J1AnOiByZXR1cm4gMHg1MDsKLSAgICAvLyAgKDUxKSBRIGtleQotICAgIGNhc2UgJ3EnOiBjYXNl
ICdRJzogcmV0dXJuIDB4NTE7Ci0gICAgLy8gICg1MikgUiBrZXkKLSAgICBjYXNlICdyJzogY2Fz
ZSAnUic6IHJldHVybiAweDUyOwotICAgIC8vICAoNTMpIFMga2V5Ci0gICAgY2FzZSAncyc6IGNh
c2UgJ1MnOiByZXR1cm4gMHg1MzsKLSAgICAvLyAgKDU0KSBUIGtleQotICAgIGNhc2UgJ3QnOiBj
YXNlICdUJzogcmV0dXJuIDB4NTQ7Ci0gICAgLy8gICg1NSkgVSBrZXkKLSAgICBjYXNlICd1Jzog
Y2FzZSAnVSc6IHJldHVybiAweDU1OwotICAgIC8vICAoNTYpIFYga2V5Ci0gICAgY2FzZSAndic6
IGNhc2UgJ1YnOiByZXR1cm4gMHg1NjsKLSAgICAvLyAgKDU3KSBXIGtleQotICAgIGNhc2UgJ3cn
OiBjYXNlICdXJzogcmV0dXJuIDB4NTc7Ci0gICAgLy8gICg1OCkgWCBrZXkKLSAgICBjYXNlICd4
JzogY2FzZSAnWCc6IHJldHVybiAweDU4OwotICAgIC8vICAoNTkpIFkga2V5Ci0gICAgY2FzZSAn
eSc6IGNhc2UgJ1knOiByZXR1cm4gMHg1OTsKLSAgICAvLyAgKDVBKSBaIGtleQotICAgIGNhc2Ug
J3onOiBjYXNlICdaJzogcmV0dXJuIDB4NUE7Ci0KLSAgICAvLyBWS19MV0lOICg1QikgTGVmdCBX
aW5kb3dzIGtleSAoTWljcm9zb2Z0IE5hdHVyYWwga2V5Ym9hcmQpCi0gICAgLy8gVktfUldJTiAo
NUMpIFJpZ2h0IFdpbmRvd3Mga2V5IChOYXR1cmFsIGtleWJvYXJkKQotICAgIC8vIFZLX0FQUFMg
KDVEKSBBcHBsaWNhdGlvbnMga2V5IChOYXR1cmFsIGtleWJvYXJkKQotICAgIC8vIFZLX1NMRUVQ
ICg1RikgQ29tcHV0ZXIgU2xlZXAga2V5Ci0KLSAgICAvLyBWS19OVU1QQUQwICg2MCkgTnVtZXJp
YyBrZXlwYWQgMCBrZXkKLSAgICAvLyBWS19OVU1QQUQxICg2MSkgTnVtZXJpYyBrZXlwYWQgMSBr
ZXkKLSAgICAvLyBWS19OVU1QQUQyICg2MikgTnVtZXJpYyBrZXlwYWQgMiBrZXkKLSAgICAvLyBW
S19OVU1QQUQzICg2MykgTnVtZXJpYyBrZXlwYWQgMyBrZXkKLSAgICAvLyBWS19OVU1QQUQ0ICg2
NCkgTnVtZXJpYyBrZXlwYWQgNCBrZXkKLSAgICAvLyBWS19OVU1QQUQ1ICg2NSkgTnVtZXJpYyBr
ZXlwYWQgNSBrZXkKLSAgICAvLyBWS19OVU1QQUQ2ICg2NikgTnVtZXJpYyBrZXlwYWQgNiBrZXkK
LSAgICAvLyBWS19OVU1QQUQ3ICg2NykgTnVtZXJpYyBrZXlwYWQgNyBrZXkKLSAgICAvLyBWS19O
VU1QQUQ4ICg2OCkgTnVtZXJpYyBrZXlwYWQgOCBrZXkKLSAgICAvLyBWS19OVU1QQUQ5ICg2OSkg
TnVtZXJpYyBrZXlwYWQgOSBrZXkKLSAgICAvLyBWS19NVUxUSVBMWSAoNkEpIE11bHRpcGx5IGtl
eQotICAgIC8vIFZLX0FERCAoNkIpIEFkZCBrZXkKLSAgICAvLyBoYW5kbGVkIGJ5IGtleSBjb2Rl
IGFib3ZlCi0KLSAgICAvLyBWS19TRVBBUkFUT1IgKDZDKSBTZXBhcmF0b3Iga2V5Ci0KLSAgICAv
LyBWS19TVUJUUkFDVCAoNkQpIFN1YnRyYWN0IGtleQotICAgIC8vIFZLX0RFQ0lNQUwgKDZFKSBE
ZWNpbWFsIGtleQotICAgIC8vIFZLX0RJVklERSAoNkYpIERpdmlkZSBrZXkKLSAgICAvLyBoYW5k
bGVkIGJ5IGtleSBjb2RlIGFib3ZlCi0KLSAgICAvLyBWS19GMSAoNzApIEYxIGtleQotICAgIGNh
c2UgTlNGMUZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3MDsKLSAgICAvLyBWS19GMiAoNzEpIEYyIGtl
eQotICAgIGNhc2UgTlNGMkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3MTsKLSAgICAvLyBWS19GMyAo
NzIpIEYzIGtleQotICAgIGNhc2UgTlNGM0Z1bmN0aW9uS2V5OiByZXR1cm4gMHg3MjsKLSAgICAv
LyBWS19GNCAoNzMpIEY0IGtleQotICAgIGNhc2UgTlNGNEZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3
MzsKLSAgICAvLyBWS19GNSAoNzQpIEY1IGtleQotICAgIGNhc2UgTlNGNUZ1bmN0aW9uS2V5OiBy
ZXR1cm4gMHg3NDsKLSAgICAvLyBWS19GNiAoNzUpIEY2IGtleQotICAgIGNhc2UgTlNGNkZ1bmN0
aW9uS2V5OiByZXR1cm4gMHg3NTsKLSAgICAvLyBWS19GNyAoNzYpIEY3IGtleQotICAgIGNhc2Ug
TlNGN0Z1bmN0aW9uS2V5OiByZXR1cm4gMHg3NjsKLSAgICAvLyBWS19GOCAoNzcpIEY4IGtleQot
ICAgIGNhc2UgTlNGOEZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3NzsKLSAgICAvLyBWS19GOSAoNzgp
IEY5IGtleQotICAgIGNhc2UgTlNGOUZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3ODsKLSAgICAvLyBW
S19GMTAgKDc5KSBGMTAga2V5Ci0gICAgY2FzZSBOU0YxMEZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3
OTsKLSAgICAvLyBWS19GMTEgKDdBKSBGMTEga2V5Ci0gICAgY2FzZSBOU0YxMUZ1bmN0aW9uS2V5
OiByZXR1cm4gMHg3QTsKLSAgICAvLyBWS19GMTIgKDdCKSBGMTIga2V5Ci0gICAgY2FzZSBOU0Yx
MkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3QjsKLSAgICAvLyBWS19GMTMgKDdDKSBGMTMga2V5Ci0g
ICAgY2FzZSBOU0YxM0Z1bmN0aW9uS2V5OiByZXR1cm4gMHg3QzsKLSAgICAvLyBWS19GMTQgKDdE
KSBGMTQga2V5Ci0gICAgY2FzZSBOU0YxNEZ1bmN0aW9uS2V5OiByZXR1cm4gMHg3RDsKLSAgICAv
LyBWS19GMTUgKDdFKSBGMTUga2V5Ci0gICAgY2FzZSBOU0YxNUZ1bmN0aW9uS2V5OiByZXR1cm4g
MHg3RTsKLSAgICAvLyBWS19GMTYgKDdGKSBGMTYga2V5Ci0gICAgY2FzZSBOU0YxNkZ1bmN0aW9u
S2V5OiByZXR1cm4gMHg3RjsKLSAgICAvLyBWS19GMTcgKDgwSCkgRjE3IGtleQotICAgIGNhc2Ug
TlNGMTdGdW5jdGlvbktleTogcmV0dXJuIDB4ODA7Ci0gICAgLy8gVktfRjE4ICg4MUgpIEYxOCBr
ZXkKLSAgICBjYXNlIE5TRjE4RnVuY3Rpb25LZXk6IHJldHVybiAweDgxOwotICAgIC8vIFZLX0Yx
OSAoODJIKSBGMTkga2V5Ci0gICAgY2FzZSBOU0YxOUZ1bmN0aW9uS2V5OiByZXR1cm4gMHg4MjsK
LSAgICAvLyBWS19GMjAgKDgzSCkgRjIwIGtleQotICAgIGNhc2UgTlNGMjBGdW5jdGlvbktleTog
cmV0dXJuIDB4ODM7Ci0gICAgLy8gVktfRjIxICg4NEgpIEYyMSBrZXkKLSAgICBjYXNlIE5TRjIx
RnVuY3Rpb25LZXk6IHJldHVybiAweDg0OwotICAgIC8vIFZLX0YyMiAoODVIKSBGMjIga2V5Ci0g
ICAgY2FzZSBOU0YyMkZ1bmN0aW9uS2V5OiByZXR1cm4gMHg4NTsKLSAgICAvLyBWS19GMjMgKDg2
SCkgRjIzIGtleQotICAgIGNhc2UgTlNGMjNGdW5jdGlvbktleTogcmV0dXJuIDB4ODY7Ci0gICAg
Ly8gVktfRjI0ICg4N0gpIEYyNCBrZXkKLSAgICBjYXNlIE5TRjI0RnVuY3Rpb25LZXk6IHJldHVy
biAweDg3OwotCi0gICAgLy8gVktfTlVNTE9DSyAoOTApIE5VTSBMT0NLIGtleQotCi0gICAgLy8g
VktfU0NST0xMICg5MSkgU0NST0xMIExPQ0sga2V5Ci0gICAgY2FzZSBOU1Njcm9sbExvY2tGdW5j
dGlvbktleTogcmV0dXJuIDB4OTE7Ci0KLSAgICAvLyBWS19MU0hJRlQgKEEwKSBMZWZ0IFNISUZU
IGtleQotICAgIC8vIFZLX1JTSElGVCAoQTEpIFJpZ2h0IFNISUZUIGtleQotICAgIC8vIFZLX0xD
T05UUk9MIChBMikgTGVmdCBDT05UUk9MIGtleQotICAgIC8vIFZLX1JDT05UUk9MIChBMykgUmln
aHQgQ09OVFJPTCBrZXkKLSAgICAvLyBWS19MTUVOVSAoQTQpIExlZnQgTUVOVSBrZXkKLSAgICAv
LyBWS19STUVOVSAoQTUpIFJpZ2h0IE1FTlUga2V5Ci0gICAgLy8gVktfQlJPV1NFUl9CQUNLIChB
NikgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIEJhY2sga2V5Ci0gICAgLy8gVktfQlJPV1NFUl9G
T1JXQVJEIChBNykgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIEZvcndhcmQga2V5Ci0gICAgLy8g
VktfQlJPV1NFUl9SRUZSRVNIIChBOCkgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIFJlZnJlc2gg
a2V5Ci0gICAgLy8gVktfQlJPV1NFUl9TVE9QIChBOSkgV2luZG93cyAyMDAwL1hQOiBCcm93c2Vy
IFN0b3Aga2V5Ci0gICAgLy8gVktfQlJPV1NFUl9TRUFSQ0ggKEFBKSBXaW5kb3dzIDIwMDAvWFA6
IEJyb3dzZXIgU2VhcmNoIGtleQotICAgIC8vIFZLX0JST1dTRVJfRkFWT1JJVEVTIChBQikgV2lu
ZG93cyAyMDAwL1hQOiBCcm93c2VyIEZhdm9yaXRlcyBrZXkKLSAgICAvLyBWS19CUk9XU0VSX0hP
TUUgKEFDKSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgU3RhcnQgYW5kIEhvbWUga2V5Ci0gICAg
Ly8gVktfVk9MVU1FX01VVEUgKEFEKSBXaW5kb3dzIDIwMDAvWFA6IFZvbHVtZSBNdXRlIGtleQot
ICAgIC8vIFZLX1ZPTFVNRV9ET1dOIChBRSkgV2luZG93cyAyMDAwL1hQOiBWb2x1bWUgRG93biBr
ZXkKLSAgICAvLyBWS19WT0xVTUVfVVAgKEFGKSBXaW5kb3dzIDIwMDAvWFA6IFZvbHVtZSBVcCBr
ZXkKLSAgICAvLyBWS19NRURJQV9ORVhUX1RSQUNLIChCMCkgV2luZG93cyAyMDAwL1hQOiBOZXh0
IFRyYWNrIGtleQotICAgIC8vIFZLX01FRElBX1BSRVZfVFJBQ0sgKEIxKSBXaW5kb3dzIDIwMDAv
WFA6IFByZXZpb3VzIFRyYWNrIGtleQotICAgIC8vIFZLX01FRElBX1NUT1AgKEIyKSBXaW5kb3dz
IDIwMDAvWFA6IFN0b3AgTWVkaWEga2V5Ci0gICAgLy8gVktfTUVESUFfUExBWV9QQVVTRSAoQjMp
IFdpbmRvd3MgMjAwMC9YUDogUGxheS9QYXVzZSBNZWRpYSBrZXkKLSAgICAvLyBWS19MQVVOQ0hf
TUFJTCAoQjQpIFdpbmRvd3MgMjAwMC9YUDogU3RhcnQgTWFpbCBrZXkKLSAgICAvLyBWS19MQVVO
Q0hfTUVESUFfU0VMRUNUIChCNSkgV2luZG93cyAyMDAwL1hQOiBTZWxlY3QgTWVkaWEga2V5Ci0g
ICAgLy8gVktfTEFVTkNIX0FQUDEgKEI2KSBXaW5kb3dzIDIwMDAvWFA6IFN0YXJ0IEFwcGxpY2F0
aW9uIDEga2V5Ci0gICAgLy8gVktfTEFVTkNIX0FQUDIgKEI3KSBXaW5kb3dzIDIwMDAvWFA6IFN0
YXJ0IEFwcGxpY2F0aW9uIDIga2V5Ci0KLSAgICAvLyBWS19PRU1fMSAoQkEpIFVzZWQgZm9yIG1p
c2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3Mg
MjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICc7Oicga2V5Ci0gICAg
Y2FzZSAnOyc6IGNhc2UgJzonOiByZXR1cm4gMHhCQTsKLSAgICAvLyBWS19PRU1fUExVUyAoQkIp
IFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICcrJyBrZXkKLSAg
ICBjYXNlICc9JzogY2FzZSAnKyc6IHJldHVybiAweEJCOwotICAgIC8vIFZLX09FTV9DT01NQSAo
QkMpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICcsJyBrZXkK
LSAgICBjYXNlICcsJzogY2FzZSAnPCc6IHJldHVybiAweEJDOwotICAgIC8vIFZLX09FTV9NSU5V
UyAoQkQpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICctJyBr
ZXkKLSAgICBjYXNlICctJzogY2FzZSAnXyc6IHJldHVybiAweEJEOwotICAgIC8vIFZLX09FTV9Q
RVJJT0QgKEJFKSBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRyeS9yZWdpb24sIHRoZSAn
Licga2V5Ci0gICAgY2FzZSAnLic6IGNhc2UgJz4nOiByZXR1cm4gMHhCRTsKLSAgICAvLyBWS19P
RU1fMiAoQkYpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkg
Ynkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2Fy
ZCwgdGhlICcvPycga2V5Ci0gICAgY2FzZSAnLyc6IGNhc2UgJz8nOiByZXR1cm4gMHhCRjsKLSAg
ICAvLyBWS19PRU1fMyAoQzApIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQg
Y2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFy
ZCBrZXlib2FyZCwgdGhlICdgficga2V5Ci0gICAgY2FzZSAnYCc6IGNhc2UgJ34nOiByZXR1cm4g
MHhDMDsKLSAgICAvLyBWS19PRU1fNCAoREIpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFj
dGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBV
UyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdbeycga2V5Ci0gICAgY2FzZSAnWyc6IGNhc2UgJ3sn
OiByZXR1cm4gMHhEQjsKLSAgICAvLyBWS19PRU1fNSAoREMpIFVzZWQgZm9yIG1pc2NlbGxhbmVv
dXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDog
Rm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdcfCcga2V5Ci0gICAgY2FzZSAnXFwn
OiBjYXNlICd8JzogcmV0dXJuIDB4REM7Ci0gICAgLy8gVktfT0VNXzYgKEREKSBVc2VkIGZvciBt
aXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5IGtleWJvYXJkLiBXaW5kb3dz
IDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQsIHRoZSAnXX0nIGtleQotICAg
IGNhc2UgJ10nOiBjYXNlICd9JzogcmV0dXJuIDB4REQ7Ci0gICAgLy8gVktfT0VNXzcgKERFKSBV
c2VkIGZvciBtaXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5IGtleWJvYXJk
LiBXaW5kb3dzIDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQsIHRoZSAnc2lu
Z2xlLXF1b3RlL2RvdWJsZS1xdW90ZScga2V5Ci0gICAgY2FzZSAnXCcnOiBjYXNlICciJzogcmV0
dXJuIDB4REU7Ci0KLSAgICAvLyBWS19PRU1fOCAoREYpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMg
Y2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuCi0gICAgLy8gVktfT0VNXzEwMiAo
RTIpIFdpbmRvd3MgMjAwMC9YUDogRWl0aGVyIHRoZSBhbmdsZSBicmFja2V0IGtleSBvciB0aGUg
YmFja3NsYXNoIGtleSBvbiB0aGUgUlQgMTAyLWtleSBrZXlib2FyZAotICAgIC8vIFZLX1BST0NF
U1NLRVkgKEU1KSBXaW5kb3dzIDk1Lzk4L01lLCBXaW5kb3dzIE5UIDQuMCwgV2luZG93cyAyMDAw
L1hQOiBJTUUgUFJPQ0VTUyBrZXkKLSAgICAvLyBWS19QQUNLRVQgKEU3KSBXaW5kb3dzIDIwMDAv
WFA6IFVzZWQgdG8gcGFzcyBVbmljb2RlIGNoYXJhY3RlcnMgYXMgaWYgdGhleSB3ZXJlIGtleXN0
cm9rZXMuIFRoZSBWS19QQUNLRVQga2V5IGlzIHRoZSBsb3cgd29yZCBvZiBhIDMyLWJpdCBWaXJ0
dWFsIEtleSB2YWx1ZSB1c2VkIGZvciBub24ta2V5Ym9hcmQgaW5wdXQgbWV0aG9kcy4gRm9yIG1v
cmUgaW5mb3JtYXRpb24sIHNlZSBSZW1hcmsgaW4gS0VZQkRJTlBVVCxTZW5kSW5wdXQsIFdNX0tF
WURPV04sIGFuZCBXTV9LRVlVUAotICAgIC8vIFZLX0FUVE4gKEY2KSBBdHRuIGtleQotICAgIC8v
IFZLX0NSU0VMIChGNykgQ3JTZWwga2V5Ci0gICAgLy8gVktfRVhTRUwgKEY4KSBFeFNlbCBrZXkK
LSAgICAvLyBWS19FUkVPRiAoRjkpIEVyYXNlIEVPRiBrZXkKLSAgICAvLyBWS19QTEFZIChGQSkg
UGxheSBrZXkKLSAgICAvLyBWS19aT09NIChGQikgWm9vbSBrZXkKLSAgICAvLyBWS19OT05BTUUg
KEZDKSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQotICAgIC8vIFZLX1BBMSAoRkQpIFBBMSBrZXkK
LSAgICAvLyBWS19PRU1fQ0xFQVIgKEZFKSBDbGVhciBrZXkKLSAgICB9Ci0KLSAgICByZXR1cm4g
MDsKKyAgICBpbnQgY29kZSA9IDA7CisgICAgLy8gVGhlcmUgYXJlIHNldmVyYWwga2luZHMgb2Yg
Y2hhcmFjdGVycyBmb3Igd2hpY2ggd2UgcHJvZHVjZSBrZXkgY29kZSBmcm9tIGNoYXIgY29kZToK
KyAgICAvLyAxLiBSb21hbiBsZXR0ZXJzLiBXaW5kb3dzIGtleWJvYXJkIGxheW91dHMgYWZmZWN0
IGJvdGggdmlydHVhbCBrZXkgY29kZXMgYW5kIGNoYXJhY3RlciBjb2RlcyBmb3IgdGhlc2UsCisg
ICAgLy8gICAgc28gZS5nLiAnQScgZ2V0cyB0aGUgc2FtZSBrZXlDb2RlIG9uIFFXRVJUWSwgQVpF
UlRZIG9yIER2b3JhayBsYXlvdXRzLgorICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlz
IG5vIGtub3duIE1hYyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4KKyAgICAv
LyAzLiBDZXJ0YWluIHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNv
IHJlbWFwcGVkIGRlcGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKKyAgICAvLyAg
ICBidXQgc2VlIGNvbW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgorICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSB7
CisgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZ
IGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCisgICAgICAgIE5TU3Ry
aW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOworICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+
IDAgPyBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5k
ZXg6MF0pIDogMDsKKyAgICAgICAgaWYgKGNvZGUpCisgICAgICAgICAgICByZXR1cm4gY29kZTsK
KworICAgICAgICAvLyBDdHJsK0Egb24gYW4gQVpFUlRZIGtleWJvYXJkIHdvdWxkIGdldCBWS19R
IGtleUNvZGUgaWYgd2UgcmVsaWVkIG9uIC1bTlNFdmVudCBrZXlDb2RlXSBiZWxvdy4KKyAgICAg
ICAgcyA9IFtldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdOworICAgICAgICBjb2Rl
ID0gW3MgbGVuZ3RoXSA+IDAgPyBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtz
IGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKKyAgICAgICAgaWYgKGNvZGUpCisgICAgICAgICAg
ICByZXR1cm4gY29kZTsKKyAgICB9CisKKyAgICAvLyBNYXAgTWFjIHZpcnR1YWwga2V5IGNvZGUg
ZGlyZWN0bHkgdG8gV2luZG93cyBvbmUgZm9yIGFueSBrZXlzIG5vdCBoYW5kbGVkIGFib3ZlLgor
ICAgIC8vIEUuZy4gdGhlIGtleSBuZXh0IHRvIENhcHMgTG9jayBoYXMgdGhlIHNhbWUgRXZlbnQu
a2V5Q29kZSBvbiBVLlMuIGtleWJvYXJkICgnQScpIGFuZCBvbiBSdXNzaWFuIGtleWJvYXJkIChD
WVJJTExJQyBMRVRURVIgRUYpLgorICAgIHJldHVybiBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZv
cktleUNvZGUoW2V2ZW50IGtleUNvZGVdKTsKIH0KIAogc3RhdGljIGlubGluZSBOU1N0cmluZyog
dGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>