<?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>122911</bug_id>
          
          <creation_ts>2013-10-16 12:33:57 -0700</creation_ts>
          <short_desc>Implement spread</short_desc>
          <delta_ts>2013-10-16 18:01:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>122919</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>940492</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-16 12:33:57 -0700</bug_when>
    <thetext>Implement spread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940497</commentid>
    <comment_count>1</comment_count>
      <attachid>214385</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-16 12:40:42 -0700</bug_when>
    <thetext>Created attachment 214385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940498</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-16 12:43:11 -0700</bug_when>
    <thetext>Attachment 214385 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/js/basic-spread-expected.txt&apos;, u&apos;LayoutTests/js/basic-spread.html&apos;, u&apos;LayoutTests/js/parser-syntax-check-expected.txt&apos;, u&apos;LayoutTests/js/script-tests/basic-spread.js&apos;, u&apos;LayoutTests/js/script-tests/parser-syntax-check.js&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp&apos;, u&apos;Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h&apos;, u&apos;Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp&apos;, u&apos;Source/JavaScriptCore/parser/ASTBuilder.h&apos;, u&apos;Source/JavaScriptCore/parser/Lexer.cpp&apos;, u&apos;Source/JavaScriptCore/parser/NodeConstructors.h&apos;, u&apos;Source/JavaScriptCore/parser/Nodes.h&apos;, u&apos;Source/JavaScriptCore/parser/Parser.cpp&apos;, u&apos;Source/JavaScriptCore/parser/Parser.h&apos;, u&apos;Source/JavaScriptCore/parser/ParserTokens.h&apos;, u&apos;Source/JavaScriptCore/parser/SyntaxChecker.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/parser/ParserTokens.h:105:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940499</commentid>
    <comment_count>3</comment_count>
      <attachid>214385</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-16 12:43:46 -0700</bug_when>
    <thetext>Comment on attachment 214385
Patch

Attachment 214385 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3494534</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940503</commentid>
    <comment_count>4</comment_count>
      <attachid>214385</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-16 13:08:24 -0700</bug_when>
    <thetext>Comment on attachment 214385
Patch

Attachment 214385 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/4113218</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940506</commentid>
    <comment_count>5</comment_count>
      <attachid>214388</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-16 13:17:32 -0700</bug_when>
    <thetext>Created attachment 214388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940508</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-16 13:20:13 -0700</bug_when>
    <thetext>Attachment 214388 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/js/basic-spread-expected.txt&apos;, u&apos;LayoutTests/js/basic-spread.html&apos;, u&apos;LayoutTests/js/parser-syntax-check-expected.txt&apos;, u&apos;LayoutTests/js/script-tests/basic-spread.js&apos;, u&apos;LayoutTests/js/script-tests/parser-syntax-check.js&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp&apos;, u&apos;Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h&apos;, u&apos;Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp&apos;, u&apos;Source/JavaScriptCore/parser/ASTBuilder.h&apos;, u&apos;Source/JavaScriptCore/parser/Lexer.cpp&apos;, u&apos;Source/JavaScriptCore/parser/NodeConstructors.h&apos;, u&apos;Source/JavaScriptCore/parser/Nodes.h&apos;, u&apos;Source/JavaScriptCore/parser/Parser.cpp&apos;, u&apos;Source/JavaScriptCore/parser/Parser.h&apos;, u&apos;Source/JavaScriptCore/parser/ParserTokens.h&apos;, u&apos;Source/JavaScriptCore/parser/SyntaxChecker.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/parser/ParserTokens.h:105:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940509</commentid>
    <comment_count>7</comment_count>
      <attachid>214388</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-16 13:20:27 -0700</bug_when>
    <thetext>Comment on attachment 214388
Patch

Attachment 214388 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/4103338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940516</commentid>
    <comment_count>8</comment_count>
      <attachid>214388</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-16 13:48:08 -0700</bug_when>
    <thetext>Comment on attachment 214388
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=214388&amp;action=review

r+ after EFL builds and adding new test case.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:1515
&gt; +    

Eliminate new white space

&gt; LayoutTests/js/basic-spread-expected.txt:95
&gt; +

Please add a test with more than one spread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940521</commentid>
    <comment_count>9</comment_count>
      <attachid>214388</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-16 13:57:54 -0700</bug_when>
    <thetext>Comment on attachment 214388
Patch

Attachment 214388 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/4109371</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940533</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-16 14:25:56 -0700</bug_when>
    <thetext>Committed r157529: &lt;http://trac.webkit.org/changeset/157529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940549</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-16 15:27:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 122919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940556</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-16 16:02:18 -0700</bug_when>
    <thetext>Failures: http://build.webkit.org/builders/Apple%20MountainLion%20Release%20WK1%20%28Tests%29/builds/13871/steps/jscore-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940604</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-16 18:01:06 -0700</bug_when>
    <thetext>Committed r157545: &lt;http://trac.webkit.org/changeset/157545&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214385</attachid>
            <date>2013-10-16 12:40:42 -0700</date>
            <delta_ts>2013-10-16 13:17:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122911-20131016124042.patch</filename>
            <type>text/plain</type>
            <size>38062</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2JhNTg1NWRlYmQyNmQyY2M4YjBiMmFhNWRkZTE3NjAwZGRlNTMzLi5lNzMyOWQ2MmYyNzZjY2Ex
ZDYwNzc3NzM0Mzg0ZDgyOGQ1MDdjZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxMy0xMC0xNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBFUzYgc3ByZWFkIG9wZXJhdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI5MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIEVTNiBzcHJlYWQg
b3BlcmF0b3IKKworICAgICAgICBUaGlzIGhhcyBhIGxpdHRsZSBiaXQgb2YgcmVmYWN0b3Jpbmcg
dG8gbW92ZSB0aGUgZW51bWVyYXRpb24gbG9naWMgb3V0IEZvck9mTm9kZQorICAgICAgICBhbmQg
aW50byBCeXRlY29kZUdlbmVyYXRvciwgYW5kIHRoZW4gYWRkcyB0aGUgbG9naWMgdG8gbWFrZSBp
dCBuaWNlbHkgY2FsbGJhY2sKKyAgICAgICAgZHJpdmVuLgorCisgICAgICAgIFRoZSByZXN0IG9m
IHRoZSBsb2dpYyBpcyBqdXN0IHRoZSBhZGRpdGlvbiBvZiB0aGUgU3ByZWFkRXhwcmVzc2lvbk5v
ZGUsIHRoZSBwYXJzaW5nLAorICAgICAgICBhbmQgYWN0dWFsbHkgaGFuZGxpbmcgdGhlIHNwcmVh
ZC4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TmV3QXJyYXkpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdEVudW1lcmF0aW9uKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoK
KyAgICAgICAgKEpTQzo6QXJyYXlOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpG
b3JPZk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OlNwcmVhZEV4cHJlc3Npb25O
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAg
ICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVNwcmVhZEV4cHJlc3Npb24pOgorICAgICAgICAq
IHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6Ojo6bGV4KToKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpTcHJlYWRFeHByZXNzaW9uTm9k
ZTo6U3ByZWFkRXhwcmVzc2lvbk5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAg
ICAgICAoSlNDOjpFeHByZXNzaW9uTm9kZTo6aXNTcHJlYWRFeHByZXNzaW9uKToKKyAgICAgICAg
KEpTQzo6U3ByZWFkRXhwcmVzc2lvbk5vZGU6OmV4cHJlc3Npb24pOgorICAgICAgICAqIHBhcnNl
ci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjo6OnBhcnNlQXJyYXlMaXRlcmFsKToKKyAgICAg
ICAgKEpTQzo6OjpwYXJzZUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6Ojo6cGFyc2VNZW1iZXJF
eHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgIChKU0M6OlBh
cnNlcjo6Z2V0VG9rZW5OYW1lKToKKyAgICAgICAgKEpTQzo6UGFyc2VyOjp1cGRhdGVFcnJvck1l
c3NhZ2VTcGVjaWFsQ2FzZSk6CisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vucy5oOgorICAg
ICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNr
ZXI6OmNyZWF0ZVNwcmVhZEV4cHJlc3Npb24pOgorCiAyMDEzLTEwLTE2ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUcmFuc2l0aW9uIHZvaWQgY3RpX29wX3RlYXJf
b2ZmKiBtZXRob2RzIHRvIEpJVCBvcGVyYXRpb25zIGZvciAzMiBiaXQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CmluZGV4IGI0YTU1ZTcyMmYwYzQ0ZTRmNjI5Mjc5OTdjNTExOWVhODlkZTVmZjYuLmQ5Y2RjYTE3
YjA4YWEwYzczZTRiYWVkNDE0MGFmMmI3MGNhNGJkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0x
NTEyLDE2ICsxNTEyLDE5IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TmV3
QXJyYXkoUmVnaXN0ZXJJRCogZHN0LCBFbGVtZW50Tm9kZSogZWxlbWVuCiAgICAgICAgICAgICBy
ZXR1cm4gZHN0OwogICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgVmVjdG9yPFJlZlB0cjxS
ZWdpc3RlcklEPiwgMTYsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBhcmd2OwogICAgIGZvciAoRWxl
bWVudE5vZGUqIG4gPSBlbGVtZW50czsgbjsgbiA9IG4tPm5leHQoKSkgewotICAgICAgICBpZiAo
bi0+ZWxpc2lvbigpKQorICAgICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBsZW5ndGgtLTsKKyAgICAgICAgQVNTRVJUKCFuLT52YWx1ZSgpLT5pc1NwcmVhZEV4
cHJlc3Npb24oKSk7CiAgICAgICAgIGFyZ3YuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKICAgICAg
ICAgLy8gb3BfbmV3X2FycmF5IHJlcXVpcmVzIHRoZSBpbml0aWFsIHZhbHVlcyB0byBiZSBhIHNl
cXVlbnRpYWwgcmFuZ2Ugb2YgcmVnaXN0ZXJzCiAgICAgICAgIEFTU0VSVChhcmd2LnNpemUoKSA9
PSAxIHx8IGFyZ3ZbYXJndi5zaXplKCkgLSAxXS0+aW5kZXgoKSA9PSBhcmd2W2FyZ3Yuc2l6ZSgp
IC0gMl0tPmluZGV4KCkgLSAxKTsKICAgICAgICAgZW1pdE5vZGUoYXJndi5sYXN0KCkuZ2V0KCks
IG4tPnZhbHVlKCkpOwogICAgIH0KKyAgICBBU1NFUlQoIWxlbmd0aCk7CiAgICAgZW1pdE9wY29k
ZShvcF9uZXdfYXJyYXkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkp
OwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd2LnNpemUoKSA/IGFyZ3ZbMF0tPmluZGV4
KCkgOiAwKTsgLy8gYXJndgpAQCAtMTY5NCw3ICsxNjk3LDE0IEBAIFJlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0
LCBSZWdpCiAgICAgLy8gR2VuZXJhdGUgY29kZSBmb3IgYXJndW1lbnRzLgogICAgIHVuc2lnbmVk
IGFyZ3VtZW50ID0gMDsKICAgICBpZiAoY2FsbEFyZ3VtZW50cy5hcmd1bWVudHNOb2RlKCkpIHsK
LSAgICAgICAgZm9yIChBcmd1bWVudExpc3ROb2RlKiBuID0gY2FsbEFyZ3VtZW50cy5hcmd1bWVu
dHNOb2RlKCktPm1fbGlzdE5vZGU7IG47IG4gPSBuLT5tX25leHQpCisgICAgICAgIEFyZ3VtZW50
TGlzdE5vZGUqIG4gPSBjYWxsQXJndW1lbnRzLmFyZ3VtZW50c05vZGUoKS0+bV9saXN0Tm9kZTsK
KyAgICAgICAgaWYgKG4gJiYgbi0+bV9leHByLT5pc1NwcmVhZEV4cHJlc3Npb24oKSkgeworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW4tPm1fbmV4dCk7CisgICAgICAgICAgICBhdXRvIGV4
cHJlc3Npb24gPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG4tPm1fZXhwcikt
PmV4cHJlc3Npb24oKTsKKyAgICAgICAgICAgIGV4cHJlc3Npb24tPmVtaXRCeXRlY29kZSgqdGhp
cywgY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApKTsKKyAgICAgICAgICAgIHJldHVy
biBlbWl0Q2FsbFZhcmFyZ3MoZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3Rlcigp
LCBjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCksIG5ld1RlbXBvcmFyeSgpLCBjYWxs
QXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKSwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90
RW5kKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDsgbjsgbiA9IG4tPm1fbmV4dCkKICAgICAg
ICAgICAgIGVtaXROb2RlKGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3Rlcihhcmd1bWVudCsr
KSwgbik7CiAgICAgfQogICAgIApAQCAtMjM3MSw1ICsyMzgxLDM2IEBAIHZvaWQgQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKCkKICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoYWRkQ29uc3RhbnRWYWx1ZShhZGRTdHJpbmdDb25zdGFudChJZGVudGlmaWVy
KG1fdm0sIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikpKS0+aW5kZXgoKSk7
CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGZhbHNlKTsKIH0KKyAgICAKK3ZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRFbnVtZXJhdGlvbihUaHJvd2FibGVFeHByZXNzaW9uRGF0YSogbm9k
ZSwgRXhwcmVzc2lvbk5vZGUqIHN1YmplY3ROb2RlLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKik+JiBjYWxsQmFjaykKK3sKKyAgICBMYWJl
bFNjb3BlUHRyIHNjb3BlID0gbmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKKyAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gc3ViamVjdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIGVtaXROb2Rl
KHN1YmplY3QuZ2V0KCksIHN1YmplY3ROb2RlKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXRl
cmF0b3IgPSBlbWl0R2V0QnlJZChuZXdUZW1wb3JhcnkoKSwgc3ViamVjdC5nZXQoKSwgcHJvcGVy
dHlOYW1lcygpLml0ZXJhdG9yUHJpdmF0ZU5hbWUpOworICAgIHsKKyAgICAgICAgQ2FsbEFyZ3Vt
ZW50cyBhcmdzKCp0aGlzLCAwKTsKKyAgICAgICAgZW1pdE1vdmUoYXJncy50aGlzUmVnaXN0ZXIo
KSwgc3ViamVjdC5nZXQoKSk7CisgICAgICAgIGVtaXRDYWxsKGl0ZXJhdG9yLmdldCgpLCBpdGVy
YXRvci5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9uLCBhcmdzLCBub2RlLT5kaXZvdCgpLCBub2Rl
LT5kaXZvdFN0YXJ0KCksIG5vZGUtPmRpdm90RW5kKCkpOworICAgIH0KKyAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gaXRlcmF0b3JOZXh0ID0gZW1pdEdldEJ5SWQobmV3VGVtcG9yYXJ5KCksIGl0ZXJh
dG9yLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkuaXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUpOworICAg
IFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IG5ld1RlbXBvcmFyeSgpOworICAgIGVtaXRMb2Fk
KHZhbHVlLmdldCgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAKKyAgICBlbWl0SnVtcChzY29wZS0+
Y29udGludWVUYXJnZXQoKSk7CisgICAgCisgICAgUmVmUHRyPExhYmVsPiBsb29wU3RhcnQgPSBu
ZXdMYWJlbCgpOworICAgIGVtaXRMYWJlbChsb29wU3RhcnQuZ2V0KCkpOworICAgIGVtaXRMb29w
SGludCgpOworICAgIGNhbGxCYWNrKCp0aGlzLCB2YWx1ZS5nZXQoKSk7CisgICAgZW1pdExhYmVs
KHNjb3BlLT5jb250aW51ZVRhcmdldCgpKTsKKyAgICBDYWxsQXJndW1lbnRzIG5leHRBcmd1bWVu
dHMoKnRoaXMsIDAsIDEpOworICAgIGVtaXRNb3ZlKG5leHRBcmd1bWVudHMudGhpc1JlZ2lzdGVy
KCksIGl0ZXJhdG9yLmdldCgpKTsKKyAgICBlbWl0TW92ZShuZXh0QXJndW1lbnRzLmFyZ3VtZW50
UmVnaXN0ZXIoMCksIHZhbHVlLmdldCgpKTsKKyAgICBlbWl0Q2FsbCh2YWx1ZS5nZXQoKSwgaXRl
cmF0b3JOZXh0LmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIG5leHRBcmd1bWVudHMsIG5vZGUt
PmRpdm90KCksIG5vZGUtPmRpdm90U3RhcnQoKSwgbm9kZS0+ZGl2b3RFbmQoKSk7CisgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIGVtaXRKdW1wSWZG
YWxzZShlbWl0RXF1YWxpdHlPcChvcF9zdHJpY3RlcSwgcmVzdWx0LmdldCgpLCB2YWx1ZS5nZXQo
KSwgZW1pdExvYWQoMCwgSlNWYWx1ZSh2bSgpLT5pdGVyYXRpb25UZXJtaW5hdG9yLmdldCgpKSkp
LCBsb29wU3RhcnQuZ2V0KCkpOworICAgIGVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7
Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDM4YjkyOTRhNjM0OGRk
OTAxNjZlZWU4NzUxZDlhMTM3ZjdjZmVlOTIuLmIwZTliZDRmMzU5NzBkZTY0YTYxMzFhOWUyMWJj
ODkxYmEzMjA4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ1LDEwICs0NSwxNCBAQAogI2luY2x1ZGUg
IlN0YXRpY1Byb3BlcnR5QW5hbHl6ZXIuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5o
IgogI2luY2x1ZGUgIlZNU3RhY2tCb3VuZHMuaCIKKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisK
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50ZWRWZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKwogbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBjbGFzcyBJZGVudGlmaWVyOwpAQCAtMzYyLDggKzM2Niw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IGZ1bmMsIEV4cGVjdGVkRnVuY3Rpb24sIENhbGxBcmd1bWVudHMmLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbEV2YWwo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBDYWxsQXJndW1lbnRzJiwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJ
RCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0
RnJlZVJlZ2lzdGVyLCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0TG9h
ZFZhcmFyZ3MoUmVnaXN0ZXJJRCogYXJnQ291bnREc3QsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rl
ciwgUmVnaXN0ZXJJRCogYXJncyk7CiAKKyAgICAgICAgdm9pZCBlbWl0RW51bWVyYXRpb24oVGhy
b3dhYmxlRXhwcmVzc2lvbkRhdGEqIGVudW1lcmF0aW9uTm9kZSwgRXhwcmVzc2lvbk5vZGUqIHN1
YmplY3ROb2RlLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKik+JiBjYWxsQmFjayk7CisgICAgICAgIAogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0UmV0dXJuKFJlZ2lzdGVySUQqIHNyYyk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRFbmQo
UmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlOb0RzdE9wKG9wX2VuZCwgc3JjKTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKaW5kZXggZTgwMTBjMWE0YzY5YzlkN2M5NzAyNTI5Mzc1OWMyM2ZjMmRkMDg4ZC4u
MzIzNjk1MzRkMDIxZGVjMWI2NDFhNDFkZjM3ZjdjODc2MWU5MjU4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTY4
LDcgKzE2OCw3IEBAIFJlZ2lzdGVySUQqIEFycmF5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzCiAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gMDsKICAgICBFbGVtZW50Tm9kZSogZmlyc3RQdXRFbGVtZW50OwogICAgIGZvciAoZmlyc3RQ
dXRFbGVtZW50ID0gbV9lbGVtZW50OyBmaXJzdFB1dEVsZW1lbnQ7IGZpcnN0UHV0RWxlbWVudCA9
IGZpcnN0UHV0RWxlbWVudC0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChmaXJzdFB1dEVsZW1lbnQt
PmVsaXNpb24oKSkKKyAgICAgICAgaWYgKGZpcnN0UHV0RWxlbWVudC0+ZWxpc2lvbigpIHx8IGZp
cnN0UHV0RWxlbWVudC0+dmFsdWUoKS0+aXNTcHJlYWRFeHByZXNzaW9uKCkpCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgKytsZW5ndGg7CiAgICAgfQpAQCAtMTc3LDggKzE3NywxMCBAQCBS
ZWdpc3RlcklEKiBBcnJheU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2Vu
ZXJhdG9yLCBSZWdpc3RlcklEKiBkcwogICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROZXdB
cnJheShnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBtX2VsZW1lbnQsIGxlbmd0aCk7
CiAKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJyYXkgPSBnZW5lcmF0b3IuZW1pdE5ld0FycmF5
KGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgbV9lbGVtZW50LCBsZW5ndGgpOwotCi0g
ICAgZm9yIChFbGVtZW50Tm9kZSogbiA9IGZpcnN0UHV0RWxlbWVudDsgbjsgbiA9IG4tPm5leHQo
KSkgeworICAgIEVsZW1lbnROb2RlKiBuID0gZmlyc3RQdXRFbGVtZW50OworICAgIGZvciAoOyBu
OyBuID0gbi0+bmV4dCgpKSB7CisgICAgICAgIGlmIChuLT52YWx1ZSgpLT5pc1NwcmVhZEV4cHJl
c3Npb24oKSkKKyAgICAgICAgICAgIGdvdG8gaGFuZGxlU3ByZWFkOwogICAgICAgICBSZWdpc3Rl
cklEKiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShuLT52YWx1ZSgpKTsKICAgICAgICAgbGVu
Z3RoICs9IG4tPmVsaXNpb24oKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUluZGV4KGFy
cmF5LmdldCgpLCBsZW5ndGgrKywgdmFsdWUpOwpAQCAtMTkwLDYgKzE5MiwzMSBAQCBSZWdpc3Rl
cklEKiBBcnJheU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkcwogICAgIH0KIAogICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVz
dGluYXRpb25JZk5lZWRlZChkc3QsIGFycmF5LmdldCgpKTsKKyAgICAKK2hhbmRsZVNwcmVhZDoK
KyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXggPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJh
dG9yLm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcihsZW5ndGgpKTsKKyAgICBhdXRvIHNwcmVhZGVy
ID0gW3RoaXMsIGFycmF5LCBpbmRleF0oQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogdmFsdWUpCisgICAgeworICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGFy
cmF5LmdldCgpLCBpbmRleC5nZXQoKSwgdmFsdWUpOworICAgICAgICBnZW5lcmF0b3IuZW1pdElu
YyhpbmRleC5nZXQoKSk7CisgICAgfTsKKyAgICBmb3IgKDsgbjsgbiA9IG4tPm5leHQoKSkgewor
ICAgICAgICBpZiAobi0+ZWxpc2lvbigpKQorICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRCaW5h
cnlPcChvcF9hZGQsIGluZGV4LmdldCgpLCBpbmRleC5nZXQoKSwgZ2VuZXJhdG9yLmVtaXRMb2Fk
KDAsIGpzTnVtYmVyKG4tPmVsaXNpb24oKSkpLCBPcGVyYW5kVHlwZXMoUmVzdWx0VHlwZTo6bnVt
YmVyVHlwZUlzSW50MzIoKSwgUmVzdWx0VHlwZTo6bnVtYmVyVHlwZUlzSW50MzIoKSkpOworICAg
ICAgICBpZiAobi0+dmFsdWUoKS0+aXNTcHJlYWRFeHByZXNzaW9uKCkpIHsKKyAgICAgICAgICAg
IFNwcmVhZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNz
aW9uTm9kZSo+KG4tPnZhbHVlKCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFbnVtZXJh
dGlvbihzcHJlYWQsIHNwcmVhZC0+ZXhwcmVzc2lvbigpLCBzcHJlYWRlcik7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGFycmF5LmdldCgpLCBp
bmRleC5nZXQoKSwgZ2VuZXJhdG9yLmVtaXROb2RlKG4tPnZhbHVlKCkpKTsKKyAgICAgICAgICAg
IGdlbmVyYXRvci5lbWl0SW5jKGluZGV4LmdldCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBpZiAobV9lbGlzaW9uKSB7CisgICAgICAgIFJlZ2lzdGVySUQqIHZhbHVlID0gZ2VuZXJh
dG9yLmVtaXRMb2FkKDAsIGpzTnVtYmVyKG1fZWxpc2lvbiArIGxlbmd0aCkpOworICAgICAgICBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYXJyYXkuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoLCB2YWx1ZSk7CisgICAgfQorICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVz
dGluYXRpb25JZk5lZWRlZChkc3QsIGFycmF5LmdldCgpKTsKIH0KIAogYm9vbCBBcnJheU5vZGU6
OmlzU2ltcGxlQXJyYXkoKSBjb25zdApAQCAtMTc2MCw3NyArMTc4Nyw1MSBAQCB2b2lkIEZvcklu
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZvck9mTm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQogdm9pZCBGb3JPZk5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCiB7Ci0gICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRvci5uZXdMYWJlbFNjb3Bl
KExhYmVsU2NvcGU6Okxvb3ApOwotICAgIAogICAgIGlmICghbV9sZXhwci0+aXNMb2NhdGlvbigp
KSB7CiAgICAgICAgIGVtaXRUaHJvd1JlZmVyZW5jZUVycm9yKGdlbmVyYXRvciwgIkxlZnQgc2lk
ZSBvZiBmb3Itb2Ygc3RhdGVtZW50IGlzIG5vdCBhIHJlZmVyZW5jZS4iKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICAKKyAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5l
d0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9vcCk7CisgICAgCiAgICAgZ2VuZXJhdG9yLmVtaXRE
ZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNldCgp
LCBsaW5lU3RhcnRPZmZzZXQoKSk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHN1YmplY3QgPSBn
ZW5lcmF0b3IuZW1pdE5vZGUobV9leHByKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXRlcmF0
b3IgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBzdWJq
ZWN0LmdldCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLml0ZXJhdG9yUHJpdmF0ZU5hbWUp
OworICAgIGF1dG8gZXh0cmFjdG9yID0gW3RoaXMsIGRzdF0oQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvciwgUmVnaXN0ZXJJRCogdmFsdWUpCiAgICAgewotICAgICAgICBDYWxsQXJndW1lbnRz
IGFyZ3MoZ2VuZXJhdG9yLCAwKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRNb3ZlKGFyZ3MudGhp
c1JlZ2lzdGVyKCksIHN1YmplY3QuZ2V0KCkpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGwo
aXRlcmF0b3IuZ2V0KCksIGl0ZXJhdG9yLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIGFyZ3Ms
IGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgfQotICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBpdGVyYXRvck5leHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBpdGVyYXRvci5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMo
KS5pdGVyYXRvck5leHRQcml2YXRlTmFtZSk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVl
ID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwotICAgIGdlbmVyYXRvci5lbWl0TG9hZCh2YWx1
ZS5nZXQoKSwganNVbmRlZmluZWQoKSk7Ci0gICAgCi0gICAgZ2VuZXJhdG9yLmVtaXRKdW1wKHNj
b3BlLT5jb250aW51ZVRhcmdldCgpKTsKLSAgICAKLSAgICBSZWZQdHI8TGFiZWw+IGxvb3BTdGFy
dCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwotICAgIGdlbmVyYXRvci5lbWl0TGFiZWwobG9vcFN0
YXJ0LmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdExvb3BIaW50KCk7Ci0gICAgCi0gICAgaWYg
KG1fbGV4cHItPmlzUmVzb2x2ZU5vZGUoKSkgewotICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudCA9IHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4obV9sZXhwciktPmlkZW50aWZpZXIoKTsK
LSAgICAgICAgaWYgKExvY2FsIGxvY2FsID0gZ2VuZXJhdG9yLmxvY2FsKGlkZW50KSkKLSAgICAg
ICAgICAgIGdlbmVyYXRvci5lbWl0TW92ZShsb2NhbC5nZXQoKSwgdmFsdWUuZ2V0KCkpOwotICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkpCisg
ICAgICAgIGlmIChtX2xleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKKyAgICAgICAgICAgIGNvbnN0
IElkZW50aWZpZXImIGlkZW50ID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihtX2xleHByKS0+
aWRlbnRpZmllcigpOworICAgICAgICAgICAgaWYgKExvY2FsIGxvY2FsID0gZ2VuZXJhdG9yLmxv
Y2FsKGlkZW50KSkKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE1vdmUobG9jYWwuZ2V0
KCksIHZhbHVlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChnZW5l
cmF0b3IuaXNTdHJpY3RNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0
RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAg
ICAgICAgICAgICBSZWdpc3RlcklEKiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3Bl
KGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgaWRlbnQpOwogICAgICAgICAgICAgICAgIGdlbmVy
YXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgp
KTsKLSAgICAgICAgICAgIFJlZ2lzdGVySUQqIHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZl
U2NvcGUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBpZGVudCk7Ci0gICAgICAgICAgICBnZW5l
cmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQo
KSk7Ci0gICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUsIGlkZW50LCB2
YWx1ZS5nZXQoKSwgZ2VuZXJhdG9yLmlzU3RyaWN0TW9kZSgpID8gVGhyb3dJZk5vdEZvdW5kIDog
RG9Ob3RUaHJvd0lmTm90Rm91bmQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0
VG9TY29wZShzY29wZSwgaWRlbnQsIHZhbHVlLCBnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkgPyBU
aHJvd0lmTm90Rm91bmQgOiBEb05vdFRocm93SWZOb3RGb3VuZCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZSBpZiAobV9sZXhwci0+aXNEb3RBY2Nlc3Nvck5vZGUoKSkgeworICAgICAg
ICAgICAgRG90QWNjZXNzb3JOb2RlKiBhc3NpZ25Ob2RlID0gc3RhdGljX2Nhc3Q8RG90QWNjZXNz
b3JOb2RlKj4obV9sZXhwcik7CisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9
IGFzc2lnbk5vZGUtPmlkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklE
PiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGFzc2lnbk5vZGUtPmJhc2UoKSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oYXNzaWduTm9k
ZS0+ZGl2b3QoKSwgYXNzaWduTm9kZS0+ZGl2b3RTdGFydCgpLCBhc3NpZ25Ob2RlLT5kaXZvdEVu
ZCgpKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgpLCBpZGVu
dCwgdmFsdWUpOworICAgICAgICB9IGVsc2UgaWYgKG1fbGV4cHItPmlzQnJhY2tldEFjY2Vzc29y
Tm9kZSgpKSB7CisgICAgICAgICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBhc3NpZ25Ob2RlID0g
c3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KG1fbGV4cHIpOworICAgICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUoYXNzaWduTm9kZS0+
YmFzZSgpKTsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQqIHN1YnNjcmlwdCA9IGdlbmVyYXRvci5l
bWl0Tm9kZShhc3NpZ25Ob2RlLT5zdWJzY3JpcHQoKSk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oYXNzaWduTm9kZS0+ZGl2b3QoKSwgYXNz
aWduTm9kZS0+ZGl2b3RTdGFydCgpLCBhc3NpZ25Ob2RlLT5kaXZvdEVuZCgpKTsKKyAgICAgICAg
ICAgIGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgc3Vic2NyaXB0LCB2YWx1ZSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQobV9sZXhwci0+aXNEZWNvbnN0
cnVjdGlvbk5vZGUoKSk7CisgICAgICAgICAgICBEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnROb2Rl
KiBhc3NpZ25Ob2RlID0gc3RhdGljX2Nhc3Q8RGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50Tm9kZSo+
KG1fbGV4cHIpOworICAgICAgICAgICAgYXNzaWduTm9kZS0+YmluZGluZ3MoKS0+ZW1pdEJ5dGVj
b2RlKGdlbmVyYXRvciwgdmFsdWUpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChtX2xleHBy
LT5pc0RvdEFjY2Vzc29yTm9kZSgpKSB7Ci0gICAgICAgIERvdEFjY2Vzc29yTm9kZSogYXNzaWdu
Tm9kZSA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KG1fbGV4cHIpOwotICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGFzc2lnbk5vZGUtPmlkZW50aWZpZXIoKTsKLSAgICAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUoYXNzaWduTm9k
ZS0+YmFzZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbklu
Zm8oYXNzaWduTm9kZS0+ZGl2b3QoKSwgYXNzaWduTm9kZS0+ZGl2b3RTdGFydCgpLCBhc3NpZ25O
b2RlLT5kaXZvdEVuZCgpKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJhc2UuZ2V0
KCksIGlkZW50LCB2YWx1ZS5nZXQoKSk7Ci0gICAgfSBlbHNlIGlmIChtX2xleHByLT5pc0JyYWNr
ZXRBY2Nlc3Nvck5vZGUoKSkgewotICAgICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBhc3NpZ25O
b2RlID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KG1fbGV4cHIpOwotICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShhc3NpZ25Ob2Rl
LT5iYXNlKCkpOwotICAgICAgICBSZWdpc3RlcklEKiBzdWJzY3JpcHQgPSBnZW5lcmF0b3IuZW1p
dE5vZGUoYXNzaWduTm9kZS0+c3Vic2NyaXB0KCkpOwotICAgICAgICAKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhhc3NpZ25Ob2RlLT5kaXZvdCgpLCBhc3NpZ25Ob2RlLT5k
aXZvdFN0YXJ0KCksIGFzc2lnbk5vZGUtPmRpdm90RW5kKCkpOwotICAgICAgICBnZW5lcmF0b3Iu
ZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHN1YnNjcmlwdCwgdmFsdWUuZ2V0KCkpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVChtX2xleHByLT5pc0RlY29uc3RydWN0aW9uTm9kZSgpKTsK
LSAgICAgICAgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50Tm9kZSogYXNzaWduTm9kZSA9IHN0YXRp
Y19jYXN0PERlY29uc3RydWN0aW5nQXNzaWdubWVudE5vZGUqPihtX2xleHByKTsKLSAgICAgICAg
YXNzaWduTm9kZS0+YmluZGluZ3MoKS0+ZW1pdEJ5dGVjb2RlKGdlbmVyYXRvciwgdmFsdWUuZ2V0
KCkpOwotICAgIH0KLSAgICAKLSAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVu
dCk7Ci0gICAgCi0gICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+Y29udGludWVUYXJnZXQo
KSk7Ci0gICAgQ2FsbEFyZ3VtZW50cyBuZXh0QXJndW1lbnRzKGdlbmVyYXRvciwgMCwgMSk7Ci0g
ICAgZ2VuZXJhdG9yLmVtaXRNb3ZlKG5leHRBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGl0ZXJh
dG9yLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdE1vdmUobmV4dEFyZ3VtZW50cy5hcmd1bWVu
dFJlZ2lzdGVyKDApLCB2YWx1ZS5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRDYWxsKHZhbHVl
LmdldCgpLCBpdGVyYXRvck5leHQuZ2V0KCksIE5vRXhwZWN0ZWRGdW5jdGlvbiwgbmV4dEFyZ3Vt
ZW50cywgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3Jh
cnkoKSwgSlNWYWx1ZShnZW5lcmF0b3Iudm0oKS0+aXRlcmF0aW9uVGVybWluYXRvci5nZXQoKSkp
OwotICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZ2VuZXJhdG9yLmVtaXRFcXVhbGl0eU9w
KG9wX3N0cmljdGVxLCByZXN1bHQuZ2V0KCksIHZhbHVlLmdldCgpLCByZXN1bHQuZ2V0KCkpLCBs
b29wU3RhcnQuZ2V0KCkpOwotICAgIGdlbmVyYXRvci5lbWl0TG9hZCh2YWx1ZS5nZXQoKSwganNV
bmRlZmluZWQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0
ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNldCgpLCBsaW5lU3RhcnRPZmZzZXQoKSk7Ci0g
ICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7CisgICAgICAgIGdl
bmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKKyAgICB9OworICAgIGdlbmVyYXRv
ci5lbWl0RW51bWVyYXRpb24odGhpcywgbV9leHByLCBleHRyYWN0b3IpOwogfQogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29udGludWVOb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQyOCw1ICsyNDI5LDEwIEBAIHZvaWQgQmluZGluZ05vZGU6
OmNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMp
IGNvbnN0CiB7CiAgICAgaWRlbnRpZmllcnMuYXBwZW5kKG1fYm91bmRQcm9wZXJ0eSk7CiB9Cisg
ICAgCitSZWdpc3RlcklEKiBTcHJlYWRFeHByZXNzaW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopCit7CisgICAgQ1JBU0goKTsKK30KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FT
VEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmlu
ZGV4IDQ4YTgzZWMyMjg3NzE2MTVmN2ViNDY2ZTdiZmNmNDE4YzA3ZTA3ZTAuLmNmYmQ2ZDY1ODU4
NzI0M2E3NmEzM2QwYmNlMjQyOTc2NTk3OGM5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oCkBAIC0yMzAsNiArMjMwLDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG5vZGU7CiAgICAgfQogCisgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVNwcmVhZEV4
cHJlc3Npb24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUq
IGV4cHJlc3Npb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZW5kKQorICAgIHsKKyAgICAgICAg
YXV0byBub2RlID0gbmV3IChtX3ZtKSBTcHJlYWRFeHByZXNzaW9uTm9kZShsb2NhdGlvbiwgZXhw
cmVzc2lvbik7CisgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIHN0YXJ0LCBkaXZv
dCwgZW5kKTsKKyAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgfQorCiAgICAgRXhwcmVzc2lvbk5v
ZGUqIGNyZWF0ZVJlZ0V4cChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJ
ZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFncywgY29uc3QgSlNUZXh0
UG9zaXRpb24mIHN0YXJ0KQogICAgIHsKICAgICAgICAgaWYgKFlhcnI6OmNoZWNrU3ludGF4KHBh
dHRlcm4uc3RyaW5nKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRl
eCBmYjYyYjk3M2YyOGJlMzNkODY4ODg1YWQ1YjliOWY0ODQ2ZmMxZGQ0Li4yYzQzMTU5Nzg0ODBl
Yzc1NGRjMGIwNjkxMDMxMzE5MDJkYThjMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmNwcApAQCAtMTU3OCw2ICsxNTc4LDEyIEBAIHN0YXJ0OgogICAgIGNhc2UgQ2hhcmFj
dGVyRG90OgogICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAoIWlzQVNDSUlEaWdpdChtX2N1
cnJlbnQpKSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoKG1fY3VycmVudCA9PSAnLicpICYm
IChwZWVrKDEpID09ICcuJykpKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gRE9URE9URE9UOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBE
T1Q7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCA4NjNhYTlmN2MyMWQ5MGI5N2Qy
NWU5ZmU2Y2EyODhhYTNiNDc5MWY2Li42YzExNmY4NjJiNWQ4YmM2YmJkYzEwNjc3ZmQxYzVlNTI5
NTg4YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25z
dHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1
Y3RvcnMuaApAQCAtMjAyLDYgKzIwMiwxMyBAQCBpbmxpbmUgUmVzb2x2ZU5vZGU6OlJlc29sdmVO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZQogICAg
ICAgICAsIG1faWRlbnQoaWRlbnQpCiAgICAgewogICAgIH0KKyAgICAKKyAgICAKKyAgICBpbmxp
bmUgU3ByZWFkRXhwcmVzc2lvbk5vZGU6OlNwcmVhZEV4cHJlc3Npb25Ob2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uKQorICAgICAg
ICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1fZXhwcmVzc2lvbihleHBy
ZXNzaW9uKQorICAgIHsKKyAgICB9CiAKICAgICBpbmxpbmUgQXJndW1lbnRMaXN0Tm9kZTo6QXJn
dW1lbnRMaXN0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9u
Tm9kZSogZXhwcikKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA5ZmUyMjYxZmQyNDA3MDUxZjNjYWE3MmQ4MWYw
YzczMGU3YWQzMjg1Li4wODk5Y2M0NTNlNzM4YTFmNmI3Y2JhY2JlM2I4YWViNDY1MTJmZDVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xNjEsNiArMTYxLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FkZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N1YnRyYWN0KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzQm9vbGVhbigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NwcmVhZEV4cHJlc3Npb24oKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNv
ZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJlbCosIExhYmVsKiwg
RmFsbFRocm91Z2hNb2RlKTsKIApAQCAtNTUwLDYgKzU1MSwxOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICB9OwogCisgICAgY2xhc3Mg
U3ByZWFkRXhwcmVzc2lvbk5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJv
d2FibGVFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTcHJlYWRFeHByZXNz
aW9uTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOworICAgICAg
ICAKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb24oKSBjb25zdCB7IHJldHVybiBt
X2V4cHJlc3Npb247IH0KKyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IDApIE9WRVJSSURFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0g7CisgICAgICAgIAorICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByZXNzaW9uOworICAgIH07CisK
ICAgICBjbGFzcyBBcmd1bWVudExpc3ROb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIEFyZ3VtZW50TGlzdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cAppbmRleCA0YWYyYWEyZWRkOWJiNWFiOGY0MmNiYzg1OGUwMzU3NmMwNmNmNmE5Li4zMzQ3ZmYz
MmU2NGQ5N2Y0Nzk4Yzg0MWYxOTljZGY5OTY0ZGI4MDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCkBAIC0xNTc2LDcgKzE1NzYsMTcgQEAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBcnJh
eUxpdGVyYWwKICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlQXJyYXkobG9jYXRpb24sIGVs
aXNpb25zKTsKICAgICB9CiAgICAgCi0gICAgVHJlZUV4cHJlc3Npb24gZWxlbSA9IHBhcnNlQXNz
aWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CisgICAgVHJlZUV4cHJlc3Npb24gZWxlbTsKKyAg
ICBpZiAoVU5MSUtFTFkobWF0Y2goRE9URE9URE9UKSkpIHsKKyAgICAgICAgYXV0byBzcHJlYWRM
b2NhdGlvbiA9IG1fdG9rZW4ubV9sb2NhdGlvbjsKKyAgICAgICAgYXV0byBzdGFydCA9IG1fdG9r
ZW4ubV9zdGFydFBvc2l0aW9uOworICAgICAgICBhdXRvIGRpdm90ID0gbV90b2tlbi5tX2VuZFBv
c2l0aW9uOworICAgICAgICBuZXh0KCk7CisgICAgICAgIGF1dG8gc3ByZWFkRXhwciA9IHBhcnNl
QXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CisgICAgICAgIGZhaWxJZkZhbHNlKHNwcmVh
ZEV4cHIpOworICAgICAgICBlbGVtID0gY29udGV4dC5jcmVhdGVTcHJlYWRFeHByZXNzaW9uKHNw
cmVhZExvY2F0aW9uLCBzcHJlYWRFeHByLCBzdGFydCwgZGl2b3QsIG1fbGFzdFRva2VuRW5kUG9z
aXRpb24pOworICAgIH0gZWxzZQorICAgICAgICBlbGVtID0gcGFyc2VBc3NpZ25tZW50RXhwcmVz
c2lvbihjb250ZXh0KTsKICAgICBmYWlsSWZGYWxzZShlbGVtKTsKICAgICB0eXBlbmFtZSBUcmVl
QnVpbGRlcjo6RWxlbWVudExpc3QgZWxlbWVudExpc3QgPSBjb250ZXh0LmNyZWF0ZUVsZW1lbnRM
aXN0KGVsaXNpb25zLCBlbGVtKTsKICAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6RWxlbWVudExp
c3QgdGFpbCA9IGVsZW1lbnRMaXN0OwpAQCAtMTU5NSw2ICsxNjA1LDE3IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
QXJyYXlMaXRlcmFsCiAgICAgICAgICAgICBuZXh0KFRyZWVCdWlsZGVyOjpEb250QnVpbGRTdHJp
bmdzKTsKICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUFycmF5KGxvY2F0aW9uLCBl
bGlzaW9ucywgZWxlbWVudExpc3QpOwogICAgICAgICB9CisgICAgICAgIGlmIChVTkxJS0VMWSht
YXRjaChET1RET1RET1QpKSkgeworICAgICAgICAgICAgYXV0byBzcHJlYWRMb2NhdGlvbiA9IG1f
dG9rZW4ubV9sb2NhdGlvbjsKKyAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBtX3Rva2VuLm1fc3Rh
cnRQb3NpdGlvbjsKKyAgICAgICAgICAgIGF1dG8gZGl2b3QgPSBtX3Rva2VuLm1fZW5kUG9zaXRp
b247CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBlbGVt
ID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAgICAgIGZhaWxJ
ZkZhbHNlKGVsZW0pOworICAgICAgICAgICAgYXV0byBzcHJlYWQgPSBjb250ZXh0LmNyZWF0ZVNw
cmVhZEV4cHJlc3Npb24oc3ByZWFkTG9jYXRpb24sIGVsZW0sIHN0YXJ0LCBkaXZvdCwgbV9sYXN0
VG9rZW5FbmRQb3NpdGlvbik7CisgICAgICAgICAgICB0YWlsID0gY29udGV4dC5jcmVhdGVFbGVt
ZW50TGlzdCh0YWlsLCBlbGlzaW9ucywgc3ByZWFkKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CiAgICAgICAgIFRyZWVFeHByZXNzaW9uIGVsZW0gPSBwYXJzZUFzc2lnbm1lbnRF
eHByZXNzaW9uKGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShlbGVtKTsKICAgICAgICAg
dGFpbCA9IGNvbnRleHQuY3JlYXRlRWxlbWVudExpc3QodGFpbCwgZWxpc2lvbnMsIGVsZW0pOwpA
QCAtMTY5NSw3ICsxNzE2LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhw
cmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmUKIH0KIAogdGVtcGxh
dGUgPHR5cGVuYW1lIExleGVyVHlwZT4KLXRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZUFyZ3VtZW50cyBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBcmd1bWVudHMoVHJlZUJ1aWxkZXIm
IGNvbnRleHQpCit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVBcmd1bWVudHMgUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlQXJndW1lbnRzKFRyZWVCdWlsZGVyJiBjb250ZXh0LCBTcHJl
YWRNb2RlIG1vZGUpCiB7CiAgICAgY29uc3VtZU9yRmFpbFdpdGhGbGFncyhPUEVOUEFSRU4sIFRy
ZWVCdWlsZGVyOjpEb250QnVpbGRTdHJpbmdzKTsKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRp
b24odG9rZW5Mb2NhdGlvbigpKTsKQEAgLTE3MDMsNiArMTcyNCwyMCBAQCB0ZW1wbGF0ZSA8Y2xh
c3MgVHJlZUJ1aWxkZXI+IFRyZWVBcmd1bWVudHMgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXJn
dW1lbnRzKFRyZQogICAgICAgICBuZXh0KFRyZWVCdWlsZGVyOjpEb250QnVpbGRTdHJpbmdzKTsK
ICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlQXJndW1lbnRzKCk7CiAgICAgfQorICAgIGlm
IChtYXRjaChET1RET1RET1QpICYmIG1vZGUgPT0gQWxsb3dTcHJlYWQpIHsKKyAgICAgICAgSlNU
b2tlbkxvY2F0aW9uIHNwcmVhZExvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAgICAgIGF1
dG8gc3RhcnQgPSBtX3Rva2VuLm1fc3RhcnRQb3NpdGlvbjsKKyAgICAgICAgYXV0byBkaXZvdCA9
IG1fdG9rZW4ubV9lbmRQb3NpdGlvbjsKKyAgICAgICAgbmV4dCgpOworICAgICAgICBhdXRvIHNw
cmVhZEV4cHIgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOworICAgICAgICBh
dXRvIGVuZCA9IG1fbGFzdFRva2VuRW5kUG9zaXRpb247CisgICAgICAgIGlmICghc3ByZWFkRXhw
cikKKyAgICAgICAgICAgIGZhaWxXaXRoTWVzc2FnZSgiSW52YWxpZCBzcHJlYWQgZXhwcmVzc2lv
bi4iKTsKKyAgICAgICAgY29uc3VtZU9yRmFpbChDTE9TRVBBUkVOKTsKKyAgICAgICAgYXV0byBz
cHJlYWQgPSBjb250ZXh0LmNyZWF0ZVNwcmVhZEV4cHJlc3Npb24oc3ByZWFkTG9jYXRpb24sIHNw
cmVhZEV4cHIsIHN0YXJ0LCBkaXZvdCwgZW5kKTsKKyAgICAgICAgVHJlZUFyZ3VtZW50c0xpc3Qg
YXJnTGlzdCA9IGNvbnRleHQuY3JlYXRlQXJndW1lbnRzTGlzdChsb2NhdGlvbiwgc3ByZWFkKTsK
KyAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlQXJndW1lbnRzKGFyZ0xpc3QpOworICAgIH0K
ICAgICBUcmVlRXhwcmVzc2lvbiBmaXJzdEFyZyA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24o
Y29udGV4dCk7CiAgICAgZmFpbElmRmFsc2UoZmlyc3RBcmcpOwogICAgIApAQCAtMTc2OSwxMiAr
MTgwNCwxMiBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZU1lbWJlckV4cHJlcwogICAgICAgICAgICAgaWYgKG5ld0Nv
dW50KSB7CiAgICAgICAgICAgICAgICAgbmV3Q291bnQtLTsKICAgICAgICAgICAgICAgICBKU1Rl
eHRQb3NpdGlvbiBleHByZXNzaW9uRW5kID0gbGFzdFRva2VuRW5kUG9zaXRpb24oKTsKLSAgICAg
ICAgICAgICAgICBUcmVlQXJndW1lbnRzIGFyZ3VtZW50cyA9IHBhcnNlQXJndW1lbnRzKGNvbnRl
eHQpOworICAgICAgICAgICAgICAgIFRyZWVBcmd1bWVudHMgYXJndW1lbnRzID0gcGFyc2VBcmd1
bWVudHMoY29udGV4dCwgRG9udEFsbG93U3ByZWFkKTsKICAgICAgICAgICAgICAgICBmYWlsSWZG
YWxzZShhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgIGJhc2UgPSBjb250ZXh0LmNyZWF0ZU5l
d0V4cHIobG9jYXRpb24sIGJhc2UsIGFyZ3VtZW50cywgZXhwcmVzc2lvblN0YXJ0LCBleHByZXNz
aW9uRW5kLCBsYXN0VG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgSlNUZXh0UG9zaXRpb24gZXhwcmVzc2lvbkVuZCA9IGxhc3RUb2tlbkVu
ZFBvc2l0aW9uKCk7Ci0gICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50cyBhcmd1bWVudHMgPSBw
YXJzZUFyZ3VtZW50cyhjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBUcmVlQXJndW1lbnRzIGFy
Z3VtZW50cyA9IHBhcnNlQXJndW1lbnRzKGNvbnRleHQsIEFsbG93U3ByZWFkKTsKICAgICAgICAg
ICAgICAgICBmYWlsSWZGYWxzZShhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgIGJhc2UgPSBj
b250ZXh0Lm1ha2VGdW5jdGlvbkNhbGxOb2RlKGxvY2F0aW9uLCBiYXNlLCBhcmd1bWVudHMsIGV4
cHJlc3Npb25TdGFydCwgZXhwcmVzc2lvbkVuZCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCAxYWFk
MjI1MTUwZWE3NjRmZDBmZTcyYzRjZDgzNTRlOGYwZGYzNDFlLi41NmVjMmY4MTA5NzI1Mjg3MmRh
ZWQ0MmNjMTA2ODEzODRlZTMzMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmgKQEAgLTc1NCw3ICs3NTQsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuICIvIjsK
ICAgICAgICAgY2FzZSBNT0Q6IAogICAgICAgICAgICAgcmV0dXJuICIlIjsKLSAgICAgICAgY2Fz
ZSBSRVRVUk46IAorICAgICAgICBjYXNlIERPVERPVERPVDoKKyAgICAgICAgICAgIHJldHVybiAi
Li4uIjsKKyAgICAgICAgY2FzZSBSRVRVUk46CiAgICAgICAgIGNhc2UgUkVTRVJWRURfSUZfU1RS
SUNUOgogICAgICAgICBjYXNlIFJFU0VSVkVEOiAKICAgICAgICAgY2FzZSBOVU1CRVI6CkBAIC04
MzYsNiArODM4LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBSRVRVUk46CiAgICAgICAgICAg
ICBtX2Vycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiUmV0dXJuIHN0YXRlbWVudHMgYXJlIG9u
bHkgdmFsaWQgaW5zaWRlIGZ1bmN0aW9ucyIpOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBjYXNlIERPVERPVERPVDoKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gQVNDSUlMaXRl
cmFsKCJTcHJlYWQgb3BlcmF0b3IgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGNvbnRleHQiKTsK
KyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IEFT
Q0lJTGl0ZXJhbCgiaW50ZXJuYWwgZXJyb3IiKTsKQEAgLTk1NCw3ICs5NTksOCBAQCBwcml2YXRl
OgogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlRXhw
cmVzc2lvbiBwYXJzZUFycmF5TGl0ZXJhbChUcmVlQnVpbGRlciYpOwogICAgIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlRXhwcmVzc2lvbiBwYXJzZU9iamVj
dExpdGVyYWwoVHJlZUJ1aWxkZXImKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IEFMV0FZU19JTkxJTkUgVHJlZUV4cHJlc3Npb24gcGFyc2VTdHJpY3RPYmplY3RMaXRlcmFsKFRy
ZWVCdWlsZGVyJik7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5M
SU5FIFRyZWVBcmd1bWVudHMgcGFyc2VBcmd1bWVudHMoVHJlZUJ1aWxkZXImKTsKKyAgICBlbnVt
IFNwcmVhZE1vZGUgeyBBbGxvd1NwcmVhZCwgRG9udEFsbG93U3ByZWFkIH07CisgICAgdGVtcGxh
dGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5MSU5FIFRyZWVBcmd1bWVudHMgcGFyc2VB
cmd1bWVudHMoVHJlZUJ1aWxkZXImLCBTcHJlYWRNb2RlKTsKICAgICB0ZW1wbGF0ZSA8Ym9vbCBz
dHJpY3QsIGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5MSU5FIFRyZWVQcm9wZXJ0eSBwYXJz
ZVByb3BlcnR5KFRyZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBBTFdBWVNfSU5MSU5FIFRyZWVGdW5jdGlvbkJvZHkgcGFyc2VGdW5jdGlvbkJvZHkoVHJlZUJ1
aWxkZXImKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUg
VHJlZUZvcm1hbFBhcmFtZXRlckxpc3QgcGFyc2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVCdWlsZGVy
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vu
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCA4
OThmZTYyY2JjZDgxNjVjZjk2MmRhODBlYjhhOWRlMzFjZjdjNmFhLi44MmEyNjYzOWE3OTIyMGEw
ODQ0NTZiNDhmMzI4NTJkMTQzYzczOWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBlbnVtIEpTVG9rZW5UeXBlIHsK
ICAgICBNT0RFUVVBTCwKICAgICBYT1JFUVVBTCwKICAgICBPUkVRVUFMLAorICAgIERPVERPVERP
VCwKICAgICBMYXN0VW50YWdnZWRUb2tlbiwKIAogICAgIC8vIEJlZ2luIHRhZ2dlZCB0b2tlbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKaW5kZXggMmQw
NWNlN2UzYWVlYjVjMTZlZGE2MjhkNDFmMWYyOWZkMDE0NDIzMy4uMTJiZjIxZWNkM2Q4MWEyM2M1
OWQ0YjE2OTJhNjZkZDk4N2ViNzE0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9TeW50YXhDaGVja2VyLmgKQEAgLTE1Nyw2ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRGdW5jdGlvblN0YXJ0KGludCwgaW50KSB7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzKCkg
eyByZXR1cm4gMTsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHMoaW50KSB7IHJldHVybiAxOyB9
CisgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlU3ByZWFkRXhwcmVzc2lvbihjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uVHlwZSwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gMTsgfQog
ICAgIGludCBjcmVhdGVBcmd1bWVudHNMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkg
eyByZXR1cm4gMTsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHNMaXN0KGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGludCwgaW50KSB7IHJldHVybiAxOyB9CiAgICAgdGVtcGxhdGUgPGJvb2wgY29t
cGxldGU+IFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGNvbnN0IElkZW50aWZpZXIqIG5hbWUsIGlu
dCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzAzNjJhN2FmMTgyZjkwOGI1Njcy
M2FmYzg0ODY4MzI3ZjQwYjM3OC4uMTQ1ZGVlMTgwYzE5YmViNDA2NGUyMzU2ZDViZWIzYTZhMGYz
MTJhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTE2ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNwcmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyOTExCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RjYXNlcworCisgICAg
ICAgICoganMvYmFzaWMtc3ByZWFkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
YmFzaWMtc3ByZWFkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3BhcnNlci1zeW50YXgtY2hl
Y2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9iYXNpYy1zcHJlYWQu
anM6IEFkZGVkLgorICAgICAgICAoZik6CisgICAgICAgIChvLmYuby5mLm8uZi5vLmYuaC5ldmFs
Lm8uaC5vLmguby5oLm8uaC5nKToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvcGFyc2VyLXN5
bnRheC1jaGVjay5qczoKKwogMjAxMy0xMC0xNiAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBEdXJpbmcgZWRpdGluZywgbWVyZ2UgaW5saW5lIHN0eWxlIHdp
dGggb3ZlcnJpZGluZyBvdGhlciBhdXRob3Igc3R5bGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9iYXNpYy1zcHJlYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvYmFzaWMtc3By
ZWFkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGRlMTE1NWJhMjE1OGI1MDI5NjhkMDYxNDJm
MTJiYjEwY2E2ZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYmFzaWMtc3By
ZWFkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiB0aGUgc3ByZWFkIGNvbnN0cnVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBhcmdzWzFd
IGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQ
QVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1bmRlZmlu
ZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3NbM10gaXMgNAorUEFTUyBzZWxmIGlz
IG8KK1BBU1MgYXJnc1swXSBpcyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQQVNTIGFy
Z3NbMl0gaXMgbnVsbAorUEFTUyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFy
Z3NbMF0gaXMgMQorUEFTUyBhcmdzWzFdIGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51
bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQQVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEK
K1BBU1MgYXJnc1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFy
Z3NbM10gaXMgNAorUEFTUyBzZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBpcyAxCitQQVNTIGFyZ3Nb
MV0gaXMgdW5kZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFTUyBhcmdzWzNdIGlzIDQK
K1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBhcmdzWzFdIGlzIHVuZGVm
aW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQQVNTIHNlbGYg
aXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1bmRlZmluZWQKK1BBU1Mg
YXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3NbM10gaXMgNAorUEFTUyBzZWxmIGlzIG8KK1BBU1Mg
YXJnc1swXSBpcyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMg
bnVsbAorUEFTUyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMg
MQorUEFTUyBhcmdzWzFdIGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwKK1BBU1Mg
YXJnc1szXSBpcyA0CitQQVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJn
c1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3NbM10gaXMg
NAorUEFTUyBzZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBpcyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5k
ZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFTUyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2Vs
ZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBhcmdzWzFdIGlzIHVuZGVmaW5lZAorUEFT
UyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQQVNTIHNlbGYgaXMgbworUEFT
UyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBp
cyBudWxsCitQQVNTIGFyZ3NbM10gaXMgNAorUEFTUyBzZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBp
cyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFT
UyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBh
cmdzWzFdIGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBp
cyA0CitQQVNTIGEgaXMgWzEsMiwzXQorUEFTUyBbLi4uYV0gaXMgWzEsMiwzXQorUEFTUyBbLi4u
YV0gaXMgWzEsMiwzXQorUEFTUyBbLCwsLi4uYV0gaXMgWywsLDEsMiwzXQorRkFJTCBbLi4uYSws
LF0gc2hvdWxkIGJlIDEsMiwzLCwuIFdhcyAxLDIuCitQQVNTIFssLi4uYSw0XSBpcyBbLDEsMiwz
LDRdCitQQVNTIFssLi4uYSwsNV0gaXMgWywxLDIsMywsNV0KK1BBU1MgWy4uLmEua2V5cygpXSBp
cyBbMCwxLDJdCitQQVNTIFsuLi5hLmVudHJpZXMoKV0uam9pbignfCcpIGlzIFtbMCwxXSxbMSwy
XSxbMiwzXV0uam9pbignfCcpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Jhc2ljLXNw
cmVhZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvYmFzaWMtc3ByZWFkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2I0MmNhMzY0ZGIxNmU5ODU3MjFkMTAyOTVkMGU3OGQ3YTZhMDhlMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLXNwcmVhZC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iYXNpYy1zcHJlYWQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cGFyc2VyLXN5bnRheC1jaGVjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9wYXJzZXIt
c3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dAppbmRleCA3YzFiZTU0Mjk5OGI2NGRmNWJkZDExNmEy
YTZhYjQyNThhNzJjZTAyLi4wYmNjMWVhYmMyNGM1YTBiNmM4ZjdmZjdjZTJjMGJmOTYwZGViNmQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4
dApAQCAtNjMxLDYgKzYzMSw1MyBAQCBQQVNTIEludmFsaWQ6ICJmb3IgKG9mIGluKXt9IgogUEFT
UyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgZm9yIChvZiBpbil7fSB9IgogUEFTUyBJbnZhbGlk
OiAiZm9yICh2YXIgb2YgaW4pe30iCiBQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBmb3Ig
KHZhciBvZiBpbil7fSB9Igorc3ByZWFkIG9wZXJhdG9yCitQQVNTIFZhbGlkOiAgICJmb28oLi4u
YmFyKSIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7IGZvbyguLi5iYXIpIH0iCitQQVNT
IFZhbGlkOiAgICJvLmZvbyguLi5iYXIpIgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsg
by5mb28oLi4uYmFyKSB9IgorUEFTUyBWYWxpZDogICAib1tmb29dKC4uLmJhcikiCitQQVNTIFZh
bGlkOiAgICJmdW5jdGlvbiBmKCkgeyBvW2Zvb10oLi4uYmFyKSB9IgorUEFTUyBJbnZhbGlkOiAi
bmV3IGZvbyguLi5iYXIpIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbmV3IGZvbygu
Li5iYXIpIH0iCitQQVNTIEludmFsaWQ6ICJuZXcgby5mb28oLi4uYmFyKSIKK1BBU1MgSW52YWxp
ZDogImZ1bmN0aW9uIGYoKSB7IG5ldyBvLmZvbyguLi5iYXIpIH0iCitQQVNTIEludmFsaWQ6ICJu
ZXcgb1tmb29dKC4uLmJhcikiCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBuZXcgb1tm
b29dKC4uLmJhcikgfSIKK1BBU1MgSW52YWxpZDogImZvbyguLi4pIgorUEFTUyBJbnZhbGlkOiAi
ZnVuY3Rpb24gZigpIHsgZm9vKC4uLikgfSIKK1BBU1MgSW52YWxpZDogIm8uZm9vKC4uLikiCitQ
QVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBvLmZvbyguLi4pIH0iCitQQVNTIEludmFsaWQ6
ICJvW2Zvb10oLi4uKSIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IG9bZm9vXSguLi4p
IH0iCitQQVNTIEludmFsaWQ6ICJmb28oYmFyLi4uKSIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9u
IGYoKSB7IGZvbyhiYXIuLi4pIH0iCitQQVNTIEludmFsaWQ6ICJvLmZvbyhiYXIuLi4pIgorUEFT
UyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgby5mb28oYmFyLi4uKSB9IgorUEFTUyBJbnZhbGlk
OiAib1tmb29dKGJhci4uLikiCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBvW2Zvb10o
YmFyLi4uKSB9IgorUEFTUyBJbnZhbGlkOiAiZm9vKGEsLi4uYmFyKSIKK1BBU1MgSW52YWxpZDog
ImZ1bmN0aW9uIGYoKSB7IGZvbyhhLC4uLmJhcikgfSIKK1BBU1MgSW52YWxpZDogIm8uZm9vKGEs
Li4uYmFyKSIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IG8uZm9vKGEsLi4uYmFyKSB9
IgorUEFTUyBJbnZhbGlkOiAib1tmb29dKGEsLi4uYmFyKSIKK1BBU1MgSW52YWxpZDogImZ1bmN0
aW9uIGYoKSB7IG9bZm9vXShhLC4uLmJhcikgfSIKK1BBU1MgSW52YWxpZDogImZvbyguLi5iYXIs
IGEpIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgZm9vKC4uLmJhciwgYSkgfSIKK1BB
U1MgSW52YWxpZDogIm8uZm9vKC4uLmJhciwgYSkiCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBm
KCkgeyBvLmZvbyguLi5iYXIsIGEpIH0iCitQQVNTIEludmFsaWQ6ICJvW2Zvb10oLi4uYmFyLCBh
KSIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IG9bZm9vXSguLi5iYXIsIGEpIH0iCitQ
QVNTIFZhbGlkOiAgICJbLi4uYmFyXSIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7IFsu
Li5iYXJdIH0iCitQQVNTIFZhbGlkOiAgICJbYSwgLi4uYmFyXSIKK1BBU1MgVmFsaWQ6ICAgImZ1
bmN0aW9uIGYoKSB7IFthLCAuLi5iYXJdIH0iCitQQVNTIFZhbGlkOiAgICJbLi4uYmFyLCBhXSIK
K1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7IFsuLi5iYXIsIGFdIH0iCitQQVNTIFZhbGlk
OiAgICJbLi4uYmFyLCwsLF0iCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyBbLi4uYmFy
LCwsLF0gfSIKK1BBU1MgVmFsaWQ6ICAgIlssLCwsLi4uYmFyXSIKK1BBU1MgVmFsaWQ6ICAgImZ1
bmN0aW9uIGYoKSB7IFssLCwsLi4uYmFyXSB9IgogUEFTUyBlLmxpbmUgaXMgMQogUEFTUyBmb28g
aXMgJ1BBU1MnCiBQQVNTIGJhciBpcyAnUEFTUycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy9iYXNpYy1zcHJlYWQuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvYmFzaWMtc3ByZWFkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZDdmZjlmZWY1YWZiMWI1OGQ0MzdjZDY4
NzQ2N2M3Y2ZlNmRmMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMvYmFzaWMtc3ByZWFkLmpzCkBAIC0wLDAgKzEsNjAgQEAKK2Rlc2NyaXB0aW9uKAorIlRo
aXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBzcHJlYWQgY29uc3RydWN0LiIKKyk7
CisKK2Z1bmN0aW9uIGYoYSxiLGMsZCkKK3sKKyAgICBhcmdzID0gYXJndW1lbnRzOworICAgIHNl
bGYgPSB0aGlzOworICAgIHNob3VsZEJlKCJzZWxmIiwgIm8iKQorICAgIHNob3VsZEJlKCJhcmdz
WzBdIiwgIjEiKQorICAgIHNob3VsZEJlKCJhcmdzWzFdIiwgInVuZGVmaW5lZCIpCisgICAgc2hv
dWxkQmUoImFyZ3NbMl0iLCAibnVsbCIpCisgICAgc2hvdWxkQmUoImFyZ3NbM10iLCAiNCIpCit9
CisKK3ZhciBvID0ge30KK28uZiA9IGY7Cit2YXIgdGVzdDEgPSBbMSwgdW5kZWZpbmVkLCBudWxs
LCA0XQordmFyIHRlc3QyID0gWzEsICwgbnVsbCwgNF0KK3ZhciB0ZXN0MyA9IHtsZW5ndGg6IDQs
IDA6IDEsIDI6IG51bGwsIDM6IDR9Cit2YXIgdGVzdDQgPSB7bGVuZ3RoOiA0LCAwOiAxLCAxOiB1
bmRlZmluZWQsIDI6IG51bGwsIDM6IDR9CitvLmYoLi4udGVzdDEpCitvLmYoLi4udGVzdDIpCitv
LmYoLi4udGVzdDMpCitvLmYoLi4udGVzdDQpCisKK3ZhciBoPWV2YWwoJyJmIicpCitvW2hdKC4u
LnRlc3QxKQorb1toXSguLi50ZXN0MikKK29baF0oLi4udGVzdDMpCitvW2hdKC4uLnRlc3Q0KQor
CitmdW5jdGlvbiBnKCkKK3sKKyAgICBvLmYoLi4uYXJndW1lbnRzKQorfQorCitnLmFwcGx5KG51
bGwsIHRlc3QxKQorZy5hcHBseShudWxsLCB0ZXN0MikKK2cuYXBwbHkobnVsbCwgdGVzdDMpCitn
LmFwcGx5KG51bGwsIHRlc3Q0KQorCitnKC4uLnRlc3QxKQorZyguLi50ZXN0MikKK2coLi4udGVz
dDMpCitnKC4uLnRlc3Q0KQorCit2YXIgYT1bMSwyLDNdCisKK3Nob3VsZEJlKCJhIiwgIlsxLDIs
M10iKQorc2hvdWxkQmUoIlsuLi5hXSIsICJbMSwyLDNdIikKK2E9Wy4uLmFdCitzaG91bGRCZSgi
Wy4uLmFdIiwgIlsxLDIsM10iKQorc2hvdWxkQmUoIlssLCwuLi5hXSIsICJbLCwsMSwyLDNdIikK
K3Nob3VsZEJlKCJbLi4uYSwsLF0iLCAiWzEsMiwzLCwsXSIpCitzaG91bGRCZSgiWywuLi5hLDRd
IiwgIlssMSwyLDMsNF0iKQorc2hvdWxkQmUoIlssLi4uYSwsNV0iLCAiWywxLDIsMywsNV0iKQor
c2hvdWxkQmUoIlsuLi5hLmtleXMoKV0iLCAiWzAsMSwyXSIpCitzaG91bGRCZSgiWy4uLmEuZW50
cmllcygpXS5qb2luKCd8JykiLCAiW1swLDFdLFsxLDJdLFsyLDNdXS5qb2luKCd8JykiKQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVj
ay5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3ludGF4LWNoZWNrLmpz
CmluZGV4IDM2Y2Y5ZTljZmJkMjM5NDE5MTg1MTQzOWM0NzY5ZGUzNzBhYzJmN2EuLjhkMzA5YzMx
ZDliY2NlMTIyYzM2Zjk0YTBmMzlkZjRlMmNjYTEyOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3ludGF4LWNoZWNrLmpzCisrKyBiL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3ludGF4LWNoZWNrLmpzCkBAIC0zOTgsNiArMzk4LDMy
IEBAIGludmFsaWQoImZvciAob2Ygb2YgaW4gb2Ype30iKQogaW52YWxpZCgiZm9yIChvZiBpbil7
fSIpCiBpbnZhbGlkKCJmb3IgKHZhciBvZiBpbil7fSIpCiAKK2RlYnVnKCJzcHJlYWQgb3BlcmF0
b3IiKQordmFsaWQoImZvbyguLi5iYXIpIikKK3ZhbGlkKCJvLmZvbyguLi5iYXIpIikKK3ZhbGlk
KCJvW2Zvb10oLi4uYmFyKSIpCitpbnZhbGlkKCJuZXcgZm9vKC4uLmJhcikiKQoraW52YWxpZCgi
bmV3IG8uZm9vKC4uLmJhcikiKQoraW52YWxpZCgibmV3IG9bZm9vXSguLi5iYXIpIikKK2ludmFs
aWQoImZvbyguLi4pIikKK2ludmFsaWQoIm8uZm9vKC4uLikiKQoraW52YWxpZCgib1tmb29dKC4u
LikiKQoraW52YWxpZCgiZm9vKGJhci4uLikiKQoraW52YWxpZCgiby5mb28oYmFyLi4uKSIpCitp
bnZhbGlkKCJvW2Zvb10oYmFyLi4uKSIpCitpbnZhbGlkKCJmb28oYSwuLi5iYXIpIikKK2ludmFs
aWQoIm8uZm9vKGEsLi4uYmFyKSIpCitpbnZhbGlkKCJvW2Zvb10oYSwuLi5iYXIpIikKK2ludmFs
aWQoImZvbyguLi5iYXIsIGEpIikKK2ludmFsaWQoIm8uZm9vKC4uLmJhciwgYSkiKQoraW52YWxp
ZCgib1tmb29dKC4uLmJhciwgYSkiKQordmFsaWQoIlsuLi5iYXJdIikKK3ZhbGlkKCJbYSwgLi4u
YmFyXSIpCit2YWxpZCgiWy4uLmJhciwgYV0iKQordmFsaWQoIlsuLi5iYXIsLCwsXSIpCit2YWxp
ZCgiWywsLCwuLi5iYXJdIikKKworCiAKIAogdHJ5IHsgZXZhbCgiYS5iLmMgPSB7fTsiKTsgfSBj
YXRjaChlMSkgeyBlPWUxOyBzaG91bGRCZSgiZS5saW5lIiwgIjEiKSB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214388</attachid>
            <date>2013-10-16 13:17:32 -0700</date>
            <delta_ts>2013-10-16 13:57:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122911-20131016131732.patch</filename>
            <type>text/plain</type>
            <size>38636</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2JhNTg1NWRlYmQyNmQyY2M4YjBiMmFhNWRkZTE3NjAwZGRlNTMzLi5lNzMyOWQ2MmYyNzZjY2Ex
ZDYwNzc3NzM0Mzg0ZDgyOGQ1MDdjZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxMy0xMC0xNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBFUzYgc3ByZWFkIG9wZXJhdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI5MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIEVTNiBzcHJlYWQg
b3BlcmF0b3IKKworICAgICAgICBUaGlzIGhhcyBhIGxpdHRsZSBiaXQgb2YgcmVmYWN0b3Jpbmcg
dG8gbW92ZSB0aGUgZW51bWVyYXRpb24gbG9naWMgb3V0IEZvck9mTm9kZQorICAgICAgICBhbmQg
aW50byBCeXRlY29kZUdlbmVyYXRvciwgYW5kIHRoZW4gYWRkcyB0aGUgbG9naWMgdG8gbWFrZSBp
dCBuaWNlbHkgY2FsbGJhY2sKKyAgICAgICAgZHJpdmVuLgorCisgICAgICAgIFRoZSByZXN0IG9m
IHRoZSBsb2dpYyBpcyBqdXN0IHRoZSBhZGRpdGlvbiBvZiB0aGUgU3ByZWFkRXhwcmVzc2lvbk5v
ZGUsIHRoZSBwYXJzaW5nLAorICAgICAgICBhbmQgYWN0dWFsbHkgaGFuZGxpbmcgdGhlIHNwcmVh
ZC4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TmV3QXJyYXkpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdEVudW1lcmF0aW9uKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoK
KyAgICAgICAgKEpTQzo6QXJyYXlOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpG
b3JPZk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OlNwcmVhZEV4cHJlc3Npb25O
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAg
ICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVNwcmVhZEV4cHJlc3Npb24pOgorICAgICAgICAq
IHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6Ojo6bGV4KToKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpTcHJlYWRFeHByZXNzaW9uTm9k
ZTo6U3ByZWFkRXhwcmVzc2lvbk5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAg
ICAgICAoSlNDOjpFeHByZXNzaW9uTm9kZTo6aXNTcHJlYWRFeHByZXNzaW9uKToKKyAgICAgICAg
KEpTQzo6U3ByZWFkRXhwcmVzc2lvbk5vZGU6OmV4cHJlc3Npb24pOgorICAgICAgICAqIHBhcnNl
ci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjo6OnBhcnNlQXJyYXlMaXRlcmFsKToKKyAgICAg
ICAgKEpTQzo6OjpwYXJzZUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6Ojo6cGFyc2VNZW1iZXJF
eHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgIChKU0M6OlBh
cnNlcjo6Z2V0VG9rZW5OYW1lKToKKyAgICAgICAgKEpTQzo6UGFyc2VyOjp1cGRhdGVFcnJvck1l
c3NhZ2VTcGVjaWFsQ2FzZSk6CisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vucy5oOgorICAg
ICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNr
ZXI6OmNyZWF0ZVNwcmVhZEV4cHJlc3Npb24pOgorCiAyMDEzLTEwLTE2ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUcmFuc2l0aW9uIHZvaWQgY3RpX29wX3RlYXJf
b2ZmKiBtZXRob2RzIHRvIEpJVCBvcGVyYXRpb25zIGZvciAzMiBiaXQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CmluZGV4IGI0YTU1ZTcyMmYwYzQ0ZTRmNjI5Mjc5OTdjNTExOWVhODlkZTVmZjYuLmQ5Y2RjYTE3
YjA4YWEwYzczZTRiYWVkNDE0MGFmMmI3MGNhNGJkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0x
NTEyLDE2ICsxNTEyLDE5IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TmV3
QXJyYXkoUmVnaXN0ZXJJRCogZHN0LCBFbGVtZW50Tm9kZSogZWxlbWVuCiAgICAgICAgICAgICBy
ZXR1cm4gZHN0OwogICAgICAgICB9CiAgICAgfQotCisgICAgCiAgICAgVmVjdG9yPFJlZlB0cjxS
ZWdpc3RlcklEPiwgMTYsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBhcmd2OwogICAgIGZvciAoRWxl
bWVudE5vZGUqIG4gPSBlbGVtZW50czsgbjsgbiA9IG4tPm5leHQoKSkgewotICAgICAgICBpZiAo
bi0+ZWxpc2lvbigpKQorICAgICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBsZW5ndGgtLTsKKyAgICAgICAgQVNTRVJUKCFuLT52YWx1ZSgpLT5pc1NwcmVhZEV4
cHJlc3Npb24oKSk7CiAgICAgICAgIGFyZ3YuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKICAgICAg
ICAgLy8gb3BfbmV3X2FycmF5IHJlcXVpcmVzIHRoZSBpbml0aWFsIHZhbHVlcyB0byBiZSBhIHNl
cXVlbnRpYWwgcmFuZ2Ugb2YgcmVnaXN0ZXJzCiAgICAgICAgIEFTU0VSVChhcmd2LnNpemUoKSA9
PSAxIHx8IGFyZ3ZbYXJndi5zaXplKCkgLSAxXS0+aW5kZXgoKSA9PSBhcmd2W2FyZ3Yuc2l6ZSgp
IC0gMl0tPmluZGV4KCkgLSAxKTsKICAgICAgICAgZW1pdE5vZGUoYXJndi5sYXN0KCkuZ2V0KCks
IG4tPnZhbHVlKCkpOwogICAgIH0KKyAgICBBU1NFUlQoIWxlbmd0aCk7CiAgICAgZW1pdE9wY29k
ZShvcF9uZXdfYXJyYXkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkp
OwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd2LnNpemUoKSA/IGFyZ3ZbMF0tPmluZGV4
KCkgOiAwKTsgLy8gYXJndgpAQCAtMTY5NCw3ICsxNjk3LDE0IEBAIFJlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0
LCBSZWdpCiAgICAgLy8gR2VuZXJhdGUgY29kZSBmb3IgYXJndW1lbnRzLgogICAgIHVuc2lnbmVk
IGFyZ3VtZW50ID0gMDsKICAgICBpZiAoY2FsbEFyZ3VtZW50cy5hcmd1bWVudHNOb2RlKCkpIHsK
LSAgICAgICAgZm9yIChBcmd1bWVudExpc3ROb2RlKiBuID0gY2FsbEFyZ3VtZW50cy5hcmd1bWVu
dHNOb2RlKCktPm1fbGlzdE5vZGU7IG47IG4gPSBuLT5tX25leHQpCisgICAgICAgIEFyZ3VtZW50
TGlzdE5vZGUqIG4gPSBjYWxsQXJndW1lbnRzLmFyZ3VtZW50c05vZGUoKS0+bV9saXN0Tm9kZTsK
KyAgICAgICAgaWYgKG4gJiYgbi0+bV9leHByLT5pc1NwcmVhZEV4cHJlc3Npb24oKSkgeworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW4tPm1fbmV4dCk7CisgICAgICAgICAgICBhdXRvIGV4
cHJlc3Npb24gPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG4tPm1fZXhwcikt
PmV4cHJlc3Npb24oKTsKKyAgICAgICAgICAgIGV4cHJlc3Npb24tPmVtaXRCeXRlY29kZSgqdGhp
cywgY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApKTsKKyAgICAgICAgICAgIHJldHVy
biBlbWl0Q2FsbFZhcmFyZ3MoZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3Rlcigp
LCBjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCksIG5ld1RlbXBvcmFyeSgpLCBjYWxs
QXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKSwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90
RW5kKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDsgbjsgbiA9IG4tPm1fbmV4dCkKICAgICAg
ICAgICAgIGVtaXROb2RlKGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3Rlcihhcmd1bWVudCsr
KSwgbik7CiAgICAgfQogICAgIApAQCAtMjM3MSw1ICsyMzgxLDM2IEBAIHZvaWQgQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKCkKICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoYWRkQ29uc3RhbnRWYWx1ZShhZGRTdHJpbmdDb25zdGFudChJZGVudGlmaWVy
KG1fdm0sIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikpKS0+aW5kZXgoKSk7
CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGZhbHNlKTsKIH0KKyAgICAKK3ZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRFbnVtZXJhdGlvbihUaHJvd2FibGVFeHByZXNzaW9uRGF0YSogbm9k
ZSwgRXhwcmVzc2lvbk5vZGUqIHN1YmplY3ROb2RlLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKik+JiBjYWxsQmFjaykKK3sKKyAgICBMYWJl
bFNjb3BlUHRyIHNjb3BlID0gbmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKKyAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gc3ViamVjdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIGVtaXROb2Rl
KHN1YmplY3QuZ2V0KCksIHN1YmplY3ROb2RlKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXRl
cmF0b3IgPSBlbWl0R2V0QnlJZChuZXdUZW1wb3JhcnkoKSwgc3ViamVjdC5nZXQoKSwgcHJvcGVy
dHlOYW1lcygpLml0ZXJhdG9yUHJpdmF0ZU5hbWUpOworICAgIHsKKyAgICAgICAgQ2FsbEFyZ3Vt
ZW50cyBhcmdzKCp0aGlzLCAwKTsKKyAgICAgICAgZW1pdE1vdmUoYXJncy50aGlzUmVnaXN0ZXIo
KSwgc3ViamVjdC5nZXQoKSk7CisgICAgICAgIGVtaXRDYWxsKGl0ZXJhdG9yLmdldCgpLCBpdGVy
YXRvci5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9uLCBhcmdzLCBub2RlLT5kaXZvdCgpLCBub2Rl
LT5kaXZvdFN0YXJ0KCksIG5vZGUtPmRpdm90RW5kKCkpOworICAgIH0KKyAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gaXRlcmF0b3JOZXh0ID0gZW1pdEdldEJ5SWQobmV3VGVtcG9yYXJ5KCksIGl0ZXJh
dG9yLmdldCgpLCBwcm9wZXJ0eU5hbWVzKCkuaXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUpOworICAg
IFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IG5ld1RlbXBvcmFyeSgpOworICAgIGVtaXRMb2Fk
KHZhbHVlLmdldCgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAKKyAgICBlbWl0SnVtcChzY29wZS0+
Y29udGludWVUYXJnZXQoKSk7CisgICAgCisgICAgUmVmUHRyPExhYmVsPiBsb29wU3RhcnQgPSBu
ZXdMYWJlbCgpOworICAgIGVtaXRMYWJlbChsb29wU3RhcnQuZ2V0KCkpOworICAgIGVtaXRMb29w
SGludCgpOworICAgIGNhbGxCYWNrKCp0aGlzLCB2YWx1ZS5nZXQoKSk7CisgICAgZW1pdExhYmVs
KHNjb3BlLT5jb250aW51ZVRhcmdldCgpKTsKKyAgICBDYWxsQXJndW1lbnRzIG5leHRBcmd1bWVu
dHMoKnRoaXMsIDAsIDEpOworICAgIGVtaXRNb3ZlKG5leHRBcmd1bWVudHMudGhpc1JlZ2lzdGVy
KCksIGl0ZXJhdG9yLmdldCgpKTsKKyAgICBlbWl0TW92ZShuZXh0QXJndW1lbnRzLmFyZ3VtZW50
UmVnaXN0ZXIoMCksIHZhbHVlLmdldCgpKTsKKyAgICBlbWl0Q2FsbCh2YWx1ZS5nZXQoKSwgaXRl
cmF0b3JOZXh0LmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIG5leHRBcmd1bWVudHMsIG5vZGUt
PmRpdm90KCksIG5vZGUtPmRpdm90U3RhcnQoKSwgbm9kZS0+ZGl2b3RFbmQoKSk7CisgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIGVtaXRKdW1wSWZG
YWxzZShlbWl0RXF1YWxpdHlPcChvcF9zdHJpY3RlcSwgcmVzdWx0LmdldCgpLCB2YWx1ZS5nZXQo
KSwgZW1pdExvYWQoMCwgSlNWYWx1ZSh2bSgpLT5pdGVyYXRpb25UZXJtaW5hdG9yLmdldCgpKSkp
LCBsb29wU3RhcnQuZ2V0KCkpOworICAgIGVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7
Cit9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDM4YjkyOTRhNjM0OGRk
OTAxNjZlZWU4NzUxZDlhMTM3ZjdjZmVlOTIuLmIwZTliZDRmMzU5NzBkZTY0YTYxMzFhOWUyMWJj
ODkxYmEzMjA4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ1LDEwICs0NSwxNCBAQAogI2luY2x1ZGUg
IlN0YXRpY1Byb3BlcnR5QW5hbHl6ZXIuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5o
IgogI2luY2x1ZGUgIlZNU3RhY2tCb3VuZHMuaCIKKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisK
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50ZWRWZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKwogbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBjbGFzcyBJZGVudGlmaWVyOwpAQCAtMzYyLDggKzM2Niw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IGZ1bmMsIEV4cGVjdGVkRnVuY3Rpb24sIENhbGxBcmd1bWVudHMmLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbEV2YWwo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBDYWxsQXJndW1lbnRzJiwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJ
RCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0
RnJlZVJlZ2lzdGVyLCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0TG9h
ZFZhcmFyZ3MoUmVnaXN0ZXJJRCogYXJnQ291bnREc3QsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rl
ciwgUmVnaXN0ZXJJRCogYXJncyk7CiAKKyAgICAgICAgdm9pZCBlbWl0RW51bWVyYXRpb24oVGhy
b3dhYmxlRXhwcmVzc2lvbkRhdGEqIGVudW1lcmF0aW9uTm9kZSwgRXhwcmVzc2lvbk5vZGUqIHN1
YmplY3ROb2RlLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKik+JiBjYWxsQmFjayk7CisgICAgICAgIAogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0UmV0dXJuKFJlZ2lzdGVySUQqIHNyYyk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRFbmQo
UmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlOb0RzdE9wKG9wX2VuZCwgc3JjKTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKaW5kZXggZTgwMTBjMWE0YzY5YzlkN2M5NzAyNTI5Mzc1OWMyM2ZjMmRkMDg4ZC4u
YjI0NTM2ZTM4NzhmMmNmM2RmNzgwZjcyMmYyODM4MjI0OGZiNzk5NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTY4
LDcgKzE2OCw3IEBAIFJlZ2lzdGVySUQqIEFycmF5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzCiAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gMDsKICAgICBFbGVtZW50Tm9kZSogZmlyc3RQdXRFbGVtZW50OwogICAgIGZvciAoZmlyc3RQ
dXRFbGVtZW50ID0gbV9lbGVtZW50OyBmaXJzdFB1dEVsZW1lbnQ7IGZpcnN0UHV0RWxlbWVudCA9
IGZpcnN0UHV0RWxlbWVudC0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChmaXJzdFB1dEVsZW1lbnQt
PmVsaXNpb24oKSkKKyAgICAgICAgaWYgKGZpcnN0UHV0RWxlbWVudC0+ZWxpc2lvbigpIHx8IGZp
cnN0UHV0RWxlbWVudC0+dmFsdWUoKS0+aXNTcHJlYWRFeHByZXNzaW9uKCkpCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgKytsZW5ndGg7CiAgICAgfQpAQCAtMTc3LDggKzE3NywxMCBAQCBS
ZWdpc3RlcklEKiBBcnJheU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2Vu
ZXJhdG9yLCBSZWdpc3RlcklEKiBkcwogICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROZXdB
cnJheShnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBtX2VsZW1lbnQsIGxlbmd0aCk7
CiAKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJyYXkgPSBnZW5lcmF0b3IuZW1pdE5ld0FycmF5
KGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgbV9lbGVtZW50LCBsZW5ndGgpOwotCi0g
ICAgZm9yIChFbGVtZW50Tm9kZSogbiA9IGZpcnN0UHV0RWxlbWVudDsgbjsgbiA9IG4tPm5leHQo
KSkgeworICAgIEVsZW1lbnROb2RlKiBuID0gZmlyc3RQdXRFbGVtZW50OworICAgIGZvciAoOyBu
OyBuID0gbi0+bmV4dCgpKSB7CisgICAgICAgIGlmIChuLT52YWx1ZSgpLT5pc1NwcmVhZEV4cHJl
c3Npb24oKSkKKyAgICAgICAgICAgIGdvdG8gaGFuZGxlU3ByZWFkOwogICAgICAgICBSZWdpc3Rl
cklEKiB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShuLT52YWx1ZSgpKTsKICAgICAgICAgbGVu
Z3RoICs9IG4tPmVsaXNpb24oKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUluZGV4KGFy
cmF5LmdldCgpLCBsZW5ndGgrKywgdmFsdWUpOwpAQCAtMTkwLDYgKzE5MiwzMSBAQCBSZWdpc3Rl
cklEKiBBcnJheU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkcwogICAgIH0KIAogICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVz
dGluYXRpb25JZk5lZWRlZChkc3QsIGFycmF5LmdldCgpKTsKKyAgICAKK2hhbmRsZVNwcmVhZDoK
KyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXggPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJh
dG9yLm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcihsZW5ndGgpKTsKKyAgICBhdXRvIHNwcmVhZGVy
ID0gW3RoaXMsIGFycmF5LCBpbmRleF0oQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogdmFsdWUpCisgICAgeworICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGFy
cmF5LmdldCgpLCBpbmRleC5nZXQoKSwgdmFsdWUpOworICAgICAgICBnZW5lcmF0b3IuZW1pdElu
YyhpbmRleC5nZXQoKSk7CisgICAgfTsKKyAgICBmb3IgKDsgbjsgbiA9IG4tPm5leHQoKSkgewor
ICAgICAgICBpZiAobi0+ZWxpc2lvbigpKQorICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRCaW5h
cnlPcChvcF9hZGQsIGluZGV4LmdldCgpLCBpbmRleC5nZXQoKSwgZ2VuZXJhdG9yLmVtaXRMb2Fk
KDAsIGpzTnVtYmVyKG4tPmVsaXNpb24oKSkpLCBPcGVyYW5kVHlwZXMoUmVzdWx0VHlwZTo6bnVt
YmVyVHlwZUlzSW50MzIoKSwgUmVzdWx0VHlwZTo6bnVtYmVyVHlwZUlzSW50MzIoKSkpOworICAg
ICAgICBpZiAobi0+dmFsdWUoKS0+aXNTcHJlYWRFeHByZXNzaW9uKCkpIHsKKyAgICAgICAgICAg
IFNwcmVhZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNz
aW9uTm9kZSo+KG4tPnZhbHVlKCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFbnVtZXJh
dGlvbihzcHJlYWQsIHNwcmVhZC0+ZXhwcmVzc2lvbigpLCBzcHJlYWRlcik7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGFycmF5LmdldCgpLCBp
bmRleC5nZXQoKSwgZ2VuZXJhdG9yLmVtaXROb2RlKG4tPnZhbHVlKCkpKTsKKyAgICAgICAgICAg
IGdlbmVyYXRvci5lbWl0SW5jKGluZGV4LmdldCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBpZiAobV9lbGlzaW9uKSB7CisgICAgICAgIFJlZ2lzdGVySUQqIHZhbHVlID0gZ2VuZXJh
dG9yLmVtaXRMb2FkKDAsIGpzTnVtYmVyKG1fZWxpc2lvbiArIGxlbmd0aCkpOworICAgICAgICBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYXJyYXkuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoLCB2YWx1ZSk7CisgICAgfQorICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVz
dGluYXRpb25JZk5lZWRlZChkc3QsIGFycmF5LmdldCgpKTsKIH0KIAogYm9vbCBBcnJheU5vZGU6
OmlzU2ltcGxlQXJyYXkoKSBjb25zdApAQCAtMzc5LDcgKzQwNiw3IEBAIFJlZ2lzdGVySUQqIE5l
d0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCoKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRDb25zdHJ1Y3QocmV0dXJuVmFsdWUu
Z2V0KCksIGZ1bmMuZ2V0KCksIGV4cGVjdGVkRnVuY3Rpb24sIGNhbGxBcmd1bWVudHMsIGRpdm90
KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiB9CiAKLWlubGluZSBDYWxsQXJndW1lbnRz
OjpDYWxsQXJndW1lbnRzKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIEFyZ3VtZW50c05v
ZGUqIGFyZ3VtZW50c05vZGUsIHVuc2lnbmVkIGFkZGl0aW9uYWxBcmd1bWVudHMpCitDYWxsQXJn
dW1lbnRzOjpDYWxsQXJndW1lbnRzKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIEFyZ3Vt
ZW50c05vZGUqIGFyZ3VtZW50c05vZGUsIHVuc2lnbmVkIGFkZGl0aW9uYWxBcmd1bWVudHMpCiAg
ICAgOiBtX2FyZ3VtZW50c05vZGUoYXJndW1lbnRzTm9kZSkKIHsKICAgICBpZiAoZ2VuZXJhdG9y
LnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKQEAgLTE3NjAsNzcgKzE3ODcsNTEgQEAgdm9pZCBG
b3JJbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3JP
Zk5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIHZvaWQgRm9yT2ZO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQogewotICAgIExhYmVsU2NvcGVQdHIgc2NvcGUgPSBnZW5lcmF0b3IubmV3TGFiZWxT
Y29wZShMYWJlbFNjb3BlOjpMb29wKTsKLSAgICAKICAgICBpZiAoIW1fbGV4cHItPmlzTG9jYXRp
b24oKSkgewogICAgICAgICBlbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihnZW5lcmF0b3IsICJMZWZ0
IHNpZGUgb2YgZm9yLW9mIHN0YXRlbWVudCBpcyBub3QgYSByZWZlcmVuY2UuIik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCisgICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRv
ci5uZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6Okxvb3ApOworICAgIAogICAgIGdlbmVyYXRvci5l
bWl0RGVidWdIb29rKFdpbGxFeGVjdXRlU3RhdGVtZW50LCBmaXJzdExpbmUoKSwgc3RhcnRPZmZz
ZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzdWJqZWN0
ID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcik7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGl0
ZXJhdG9yID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwg
c3ViamVjdC5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5pdGVyYXRvclByaXZhdGVO
YW1lKTsKKyAgICBhdXRvIGV4dHJhY3RvciA9IFt0aGlzLCBkc3RdKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHZhbHVlKQogICAgIHsKLSAgICAgICAgQ2FsbEFyZ3Vt
ZW50cyBhcmdzKGdlbmVyYXRvciwgMCk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0TW92ZShhcmdz
LnRoaXNSZWdpc3RlcigpLCBzdWJqZWN0LmdldCgpKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRD
YWxsKGl0ZXJhdG9yLmdldCgpLCBpdGVyYXRvci5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9uLCBh
cmdzLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwotICAgIH0KLSAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaXRlcmF0b3JOZXh0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgaXRlcmF0b3IuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5h
bWVzKCkuaXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUpOwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2
YWx1ZSA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKLSAgICBnZW5lcmF0b3IuZW1pdExvYWQo
dmFsdWUuZ2V0KCksIGpzVW5kZWZpbmVkKCkpOwotICAgIAotICAgIGdlbmVyYXRvci5lbWl0SnVt
cChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7Ci0gICAgCi0gICAgUmVmUHRyPExhYmVsPiBsb29w
U3RhcnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKLSAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGxv
b3BTdGFydC5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRMb29wSGludCgpOwotICAgIAotICAg
IGlmIChtX2xleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KG1fbGV4cHIpLT5pZGVudGlmaWVy
KCk7Ci0gICAgICAgIGlmIChMb2NhbCBsb2NhbCA9IGdlbmVyYXRvci5sb2NhbChpZGVudCkpCi0g
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE1vdmUobG9jYWwuZ2V0KCksIHZhbHVlLmdldCgpKTsK
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLmlzU3RyaWN0TW9kZSgp
KQorICAgICAgICBpZiAobV9sZXhwci0+aXNSZXNvbHZlTm9kZSgpKSB7CisgICAgICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBpZGVudCA9IHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4obV9sZXhw
ciktPmlkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGlmIChMb2NhbCBsb2NhbCA9IGdlbmVyYXRv
ci5sb2NhbChpZGVudCkpCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRNb3ZlKGxvY2Fs
LmdldCgpLCB2YWx1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAo
Z2VuZXJhdG9yLmlzU3RyaWN0TW9kZSgpKQorICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3Iu
ZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Cisg
ICAgICAgICAgICAgICAgUmVnaXN0ZXJJRCogc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVT
Y29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGlkZW50KTsKICAgICAgICAgICAgICAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7Ci0gICAgICAgICAgICBSZWdpc3RlcklEKiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVz
b2x2ZVNjb3BlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgaWRlbnQpOwotICAgICAgICAgICAg
Z2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90
RW5kKCkpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRUb1Njb3BlKHNjb3BlLCBpZGVu
dCwgdmFsdWUuZ2V0KCksIGdlbmVyYXRvci5pc1N0cmljdE1vZGUoKSA/IFRocm93SWZOb3RGb3Vu
ZCA6IERvTm90VGhyb3dJZk5vdEZvdW5kKTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1p
dFB1dFRvU2NvcGUoc2NvcGUsIGlkZW50LCB2YWx1ZSwgZ2VuZXJhdG9yLmlzU3RyaWN0TW9kZSgp
ID8gVGhyb3dJZk5vdEZvdW5kIDogRG9Ob3RUaHJvd0lmTm90Rm91bmQpOworICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UgaWYgKG1fbGV4cHItPmlzRG90QWNjZXNzb3JOb2RlKCkpIHsKKyAg
ICAgICAgICAgIERvdEFjY2Vzc29yTm9kZSogYXNzaWduTm9kZSA9IHN0YXRpY19jYXN0PERvdEFj
Y2Vzc29yTm9kZSo+KG1fbGV4cHIpOworICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRl
bnQgPSBhc3NpZ25Ob2RlLT5pZGVudGlmaWVyKCk7CisgICAgICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShhc3NpZ25Ob2RlLT5iYXNlKCkpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGFzc2ln
bk5vZGUtPmRpdm90KCksIGFzc2lnbk5vZGUtPmRpdm90U3RhcnQoKSwgYXNzaWduTm9kZS0+ZGl2
b3RFbmQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwg
aWRlbnQsIHZhbHVlKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX2xleHByLT5pc0JyYWNrZXRBY2Nl
c3Nvck5vZGUoKSkgeworICAgICAgICAgICAgQnJhY2tldEFjY2Vzc29yTm9kZSogYXNzaWduTm9k
ZSA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nvck5vZGUqPihtX2xleHByKTsKKyAgICAgICAg
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGFzc2lnbk5v
ZGUtPmJhc2UoKSk7CisgICAgICAgICAgICBSZWdpc3RlcklEKiBzdWJzY3JpcHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGUoYXNzaWduTm9kZS0+c3Vic2NyaXB0KCkpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGFzc2lnbk5vZGUtPmRpdm90KCks
IGFzc2lnbk5vZGUtPmRpdm90U3RhcnQoKSwgYXNzaWduTm9kZS0+ZGl2b3RFbmQoKSk7CisgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHN1YnNjcmlwdCwgdmFs
dWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKG1fbGV4cHItPmlzRGVj
b25zdHJ1Y3Rpb25Ob2RlKCkpOworICAgICAgICAgICAgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50
Tm9kZSogYXNzaWduTm9kZSA9IHN0YXRpY19jYXN0PERlY29uc3RydWN0aW5nQXNzaWdubWVudE5v
ZGUqPihtX2xleHByKTsKKyAgICAgICAgICAgIGFzc2lnbk5vZGUtPmJpbmRpbmdzKCktPmVtaXRC
eXRlY29kZShnZW5lcmF0b3IsIHZhbHVlKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9s
ZXhwci0+aXNEb3RBY2Nlc3Nvck5vZGUoKSkgewotICAgICAgICBEb3RBY2Nlc3Nvck5vZGUqIGFz
c2lnbk5vZGUgPSBzdGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihtX2xleHByKTsKLSAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBhc3NpZ25Ob2RlLT5pZGVudGlmaWVyKCk7Ci0g
ICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGFzc2ln
bk5vZGUtPmJhc2UoKSk7Ci0gICAgICAgIAotICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Np
b25JbmZvKGFzc2lnbk5vZGUtPmRpdm90KCksIGFzc2lnbk5vZGUtPmRpdm90U3RhcnQoKSwgYXNz
aWduTm9kZS0+ZGl2b3RFbmQoKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNl
LmdldCgpLCBpZGVudCwgdmFsdWUuZ2V0KCkpOwotICAgIH0gZWxzZSBpZiAobV9sZXhwci0+aXNC
cmFja2V0QWNjZXNzb3JOb2RlKCkpIHsKLSAgICAgICAgQnJhY2tldEFjY2Vzc29yTm9kZSogYXNz
aWduTm9kZSA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nvck5vZGUqPihtX2xleHByKTsKLSAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUoYXNzaWdu
Tm9kZS0+YmFzZSgpKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogc3Vic2NyaXB0ID0gZ2VuZXJhdG9y
LmVtaXROb2RlKGFzc2lnbk5vZGUtPnN1YnNjcmlwdCgpKTsKLSAgICAgICAgCi0gICAgICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oYXNzaWduTm9kZS0+ZGl2b3QoKSwgYXNzaWduTm9k
ZS0+ZGl2b3RTdGFydCgpLCBhc3NpZ25Ob2RlLT5kaXZvdEVuZCgpKTsKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXRQdXRCeVZhbChiYXNlLmdldCgpLCBzdWJzY3JpcHQsIHZhbHVlLmdldCgpKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlQobV9sZXhwci0+aXNEZWNvbnN0cnVjdGlvbk5vZGUo
KSk7Ci0gICAgICAgIERlY29uc3RydWN0aW5nQXNzaWdubWVudE5vZGUqIGFzc2lnbk5vZGUgPSBz
dGF0aWNfY2FzdDxEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnROb2RlKj4obV9sZXhwcik7Ci0gICAg
ICAgIGFzc2lnbk5vZGUtPmJpbmRpbmdzKCktPmVtaXRCeXRlY29kZShnZW5lcmF0b3IsIHZhbHVl
LmdldCgpKTsKLSAgICB9Ci0gICAgCi0gICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0
ZW1lbnQpOwotICAgIAotICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFy
Z2V0KCkpOwotICAgIENhbGxBcmd1bWVudHMgbmV4dEFyZ3VtZW50cyhnZW5lcmF0b3IsIDAsIDEp
OwotICAgIGdlbmVyYXRvci5lbWl0TW92ZShuZXh0QXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBp
dGVyYXRvci5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRNb3ZlKG5leHRBcmd1bWVudHMuYXJn
dW1lbnRSZWdpc3RlcigwKSwgdmFsdWUuZ2V0KCkpOwotICAgIGdlbmVyYXRvci5lbWl0Q2FsbCh2
YWx1ZS5nZXQoKSwgaXRlcmF0b3JOZXh0LmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIG5leHRB
cmd1bWVudHMsIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIEpTVmFsdWUoZ2VuZXJhdG9yLnZtKCktPml0ZXJhdGlvblRlcm1pbmF0b3IuZ2V0
KCkpKTsKLSAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKGdlbmVyYXRvci5lbWl0RXF1YWxp
dHlPcChvcF9zdHJpY3RlcSwgcmVzdWx0LmdldCgpLCB2YWx1ZS5nZXQoKSwgcmVzdWx0LmdldCgp
KSwgbG9vcFN0YXJ0LmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdExvYWQodmFsdWUuZ2V0KCks
IGpzVW5kZWZpbmVkKCkpOwotICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxFeGVjdXRl
U3RhdGVtZW50LCBmaXJzdExpbmUoKSwgc3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkp
OwotICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmJyZWFrVGFyZ2V0KCkpOworICAgICAg
ICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7CisgICAgfTsKKyAgICBnZW5l
cmF0b3IuZW1pdEVudW1lcmF0aW9uKHRoaXMsIG1fZXhwciwgZXh0cmFjdG9yKTsKIH0KIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbnRpbnVlTm9kZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0MjgsNSArMjQyOSwxMCBAQCB2b2lkIEJpbmRpbmdO
b2RlOjpjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mIGlkZW50aWZp
ZXJzKSBjb25zdAogewogICAgIGlkZW50aWZpZXJzLmFwcGVuZChtX2JvdW5kUHJvcGVydHkpOwog
fQorICAgIAorUmVnaXN0ZXJJRCogU3ByZWFkRXhwcmVzc2lvbk5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKQoreworICAgIENSQVNIKCk7Cit9CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9BU1RCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aAppbmRleCA0OGE4M2VjMjI4NzcxNjE1ZjdlYjQ2NmU3YmZjZjQxOGMwN2UwN2UwLi5jZmJkNmQ2
NTg1ODcyNDNhNzZhMzNkMGJjZTI0Mjk3NjU5NzhjOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0FTVEJ1aWxkZXIuaApAQCAtMjMwLDYgKzIzMCwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBub2RlOwogICAgIH0KIAorICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVTcHJl
YWRFeHByZXNzaW9uKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25O
b2RlKiBleHByZXNzaW9uLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCkKKyAgICB7CisgICAg
ICAgIGF1dG8gbm9kZSA9IG5ldyAobV92bSkgU3ByZWFkRXhwcmVzc2lvbk5vZGUobG9jYXRpb24s
IGV4cHJlc3Npb24pOworICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBzdGFydCwg
ZGl2b3QsIGVuZCk7CisgICAgICAgIHJldHVybiBub2RlOworICAgIH0KKwogICAgIEV4cHJlc3Np
b25Ob2RlKiBjcmVhdGVSZWdFeHAoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29u
c3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3MsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBzdGFydCkKICAgICB7CiAgICAgICAgIGlmIChZYXJyOjpjaGVja1N5bnRh
eChwYXR0ZXJuLnN0cmluZygpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAK
aW5kZXggZmI2MmI5NzNmMjhiZTMzZDg2ODg4NWFkNWI5YjlmNDg0NmZjMWRkNC4uMmM0MzE1OTc4
NDgwZWM3NTRkYzBiMDY5MTAzMTMxOTAyZGE4YzMwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAKQEAgLTE1NzgsNiArMTU3OCwxMiBAQCBzdGFydDoKICAgICBjYXNlIENo
YXJhY3RlckRvdDoKICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQo
bV9jdXJyZW50KSkgeworICAgICAgICAgICAgaWYgKFVOTElLRUxZKChtX2N1cnJlbnQgPT0gJy4n
KSAmJiAocGVlaygxKSA9PSAnLicpKSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IERPVERPVERPVDsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2Vu
ID0gRE9UOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggODYzYWE5ZjdjMjFkOTBi
OTdkMjVlOWZlNmNhMjg4YWEzYjQ3OTFmNi4uNmMxMTZmODYyYjVkOGJjNmJiZGMxMDY3N2ZkMWM1
ZTUyOTU4OGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
Q29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29u
c3RydWN0b3JzLmgKQEAgLTIwMiw2ICsyMDIsMTMgQEAgaW5saW5lIFJlc29sdmVOb2RlOjpSZXNv
bHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWUK
ICAgICAgICAgLCBtX2lkZW50KGlkZW50KQogICAgIHsKICAgICB9CisgICAgCisgICAgCisgICAg
aW5saW5lIFNwcmVhZEV4cHJlc3Npb25Ob2RlOjpTcHJlYWRFeHByZXNzaW9uTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbikKKyAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBtX2V4cHJlc3Npb24o
ZXhwcmVzc2lvbikKKyAgICB7CisgICAgfQogCiAgICAgaW5saW5lIEFyZ3VtZW50TGlzdE5vZGU6
OkFyZ3VtZW50TGlzdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVz
c2lvbk5vZGUqIGV4cHIpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggOWZlMjI2MWZkMjQwNzA1MWYzY2FhNzJk
ODFmMGM3MzBlN2FkMzI4NS4uMDg5OWNjNDUzZTczOGExZjZiN2NiYWNiZTNiOGFlYjQ2NTEyZmQ1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTYxLDYgKzE2MSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBZGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdWJ0cmFjdCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Jvb2xlYW4oKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5
dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwgTGFiZWwqLCBMYWJl
bCosIEZhbGxUaHJvdWdoTW9kZSk7CiAKQEAgLTU1MCw2ICs1NTEsMTkgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKIAorICAgIGNs
YXNzIFNwcmVhZEV4cHJlc3Npb25Ob2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgU3ByZWFkRXhw
cmVzc2lvbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKKyAg
ICAgICAgCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uKCkgY29uc3QgeyByZXR1
cm4gbV9leHByZXNzaW9uOyB9CisgICAgICAgIAorICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1
YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKSBPVkVSUklERSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIOworICAgICAgICAKKyAgICAg
ICAgdmlydHVhbCBib29sIGlzU3ByZWFkRXhwcmVzc2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcmVzc2lvbjsKKyAgICB9
OworCiAgICAgY2xhc3MgQXJndW1lbnRMaXN0Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7
CiAgICAgcHVibGljOgogICAgICAgICBBcmd1bWVudExpc3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5jcHAKaW5kZXggNGFmMmFhMmVkZDliYjVhYjhmNDJjYmM4NThlMDM1NzZjMDZjZjZhOS4uMzM0
N2ZmMzJlNjRkOTdmNDc5OGM4NDFmMTk5Y2RmOTk2NGRiODA4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTU3Niw3ICsxNTc2LDE3IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
QXJyYXlMaXRlcmFsCiAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUFycmF5KGxvY2F0aW9u
LCBlbGlzaW9ucyk7CiAgICAgfQogICAgIAotICAgIFRyZWVFeHByZXNzaW9uIGVsZW0gPSBwYXJz
ZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOworICAgIFRyZWVFeHByZXNzaW9uIGVsZW07
CisgICAgaWYgKFVOTElLRUxZKG1hdGNoKERPVERPVERPVCkpKSB7CisgICAgICAgIGF1dG8gc3By
ZWFkTG9jYXRpb24gPSBtX3Rva2VuLm1fbG9jYXRpb247CisgICAgICAgIGF1dG8gc3RhcnQgPSBt
X3Rva2VuLm1fc3RhcnRQb3NpdGlvbjsKKyAgICAgICAgYXV0byBkaXZvdCA9IG1fdG9rZW4ubV9l
bmRQb3NpdGlvbjsKKyAgICAgICAgbmV4dCgpOworICAgICAgICBhdXRvIHNwcmVhZEV4cHIgPSBw
YXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOworICAgICAgICBmYWlsSWZGYWxzZShz
cHJlYWRFeHByKTsKKyAgICAgICAgZWxlbSA9IGNvbnRleHQuY3JlYXRlU3ByZWFkRXhwcmVzc2lv
bihzcHJlYWRMb2NhdGlvbiwgc3ByZWFkRXhwciwgc3RhcnQsIGRpdm90LCBtX2xhc3RUb2tlbkVu
ZFBvc2l0aW9uKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZWxlbSA9IHBhcnNlQXNzaWdubWVudEV4
cHJlc3Npb24oY29udGV4dCk7CiAgICAgZmFpbElmRmFsc2UoZWxlbSk7CiAgICAgdHlwZW5hbWUg
VHJlZUJ1aWxkZXI6OkVsZW1lbnRMaXN0IGVsZW1lbnRMaXN0ID0gY29udGV4dC5jcmVhdGVFbGVt
ZW50TGlzdChlbGlzaW9ucywgZWxlbSk7CiAgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkVsZW1l
bnRMaXN0IHRhaWwgPSBlbGVtZW50TGlzdDsKQEAgLTE1OTUsNiArMTYwNSwxNyBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+Ojpw
YXJzZUFycmF5TGl0ZXJhbAogICAgICAgICAgICAgbmV4dChUcmVlQnVpbGRlcjo6RG9udEJ1aWxk
U3RyaW5ncyk7CiAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVBcnJheShsb2NhdGlv
biwgZWxpc2lvbnMsIGVsZW1lbnRMaXN0KTsKICAgICAgICAgfQorICAgICAgICBpZiAoVU5MSUtF
TFkobWF0Y2goRE9URE9URE9UKSkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ByZWFkTG9jYXRpb24g
PSBtX3Rva2VuLm1fbG9jYXRpb247CisgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gbV90b2tlbi5t
X3N0YXJ0UG9zaXRpb247CisgICAgICAgICAgICBhdXRvIGRpdm90ID0gbV90b2tlbi5tX2VuZFBv
c2l0aW9uOworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24g
ZWxlbSA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CisgICAgICAgICAgICBm
YWlsSWZGYWxzZShlbGVtKTsKKyAgICAgICAgICAgIGF1dG8gc3ByZWFkID0gY29udGV4dC5jcmVh
dGVTcHJlYWRFeHByZXNzaW9uKHNwcmVhZExvY2F0aW9uLCBlbGVtLCBzdGFydCwgZGl2b3QsIG1f
bGFzdFRva2VuRW5kUG9zaXRpb24pOworICAgICAgICAgICAgdGFpbCA9IGNvbnRleHQuY3JlYXRl
RWxlbWVudExpc3QodGFpbCwgZWxpc2lvbnMsIHNwcmVhZCk7CisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgfQogICAgICAgICBUcmVlRXhwcmVzc2lvbiBlbGVtID0gcGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2UoZWxlbSk7CiAgICAg
ICAgIHRhaWwgPSBjb250ZXh0LmNyZWF0ZUVsZW1lbnRMaXN0KHRhaWwsIGVsaXNpb25zLCBlbGVt
KTsKQEAgLTE2OTUsNyArMTcxNiw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJpbWFyeUV4cHJlCiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Ci10ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVBcmd1bWVudHMgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXJndW1lbnRzKFRyZWVCdWls
ZGVyJiBjb250ZXh0KQordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQXJndW1lbnRz
IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFyZ3VtZW50cyhUcmVlQnVpbGRlciYgY29udGV4dCwg
U3ByZWFkTW9kZSBtb2RlKQogewogICAgIGNvbnN1bWVPckZhaWxXaXRoRmxhZ3MoT1BFTlBBUkVO
LCBUcmVlQnVpbGRlcjo6RG9udEJ1aWxkU3RyaW5ncyk7CiAgICAgSlNUb2tlbkxvY2F0aW9uIGxv
Y2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CkBAIC0xNzAzLDYgKzE3MjQsMjAgQEAgdGVtcGxhdGUg
PGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQXJndW1lbnRzIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZUFyZ3VtZW50cyhUcmUKICAgICAgICAgbmV4dChUcmVlQnVpbGRlcjo6RG9udEJ1aWxkU3RyaW5n
cyk7CiAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUFyZ3VtZW50cygpOwogICAgIH0KKyAg
ICBpZiAobWF0Y2goRE9URE9URE9UKSAmJiBtb2RlID09IEFsbG93U3ByZWFkKSB7CisgICAgICAg
IEpTVG9rZW5Mb2NhdGlvbiBzcHJlYWRMb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgICAg
ICBhdXRvIHN0YXJ0ID0gbV90b2tlbi5tX3N0YXJ0UG9zaXRpb247CisgICAgICAgIGF1dG8gZGl2
b3QgPSBtX3Rva2VuLm1fZW5kUG9zaXRpb247CisgICAgICAgIG5leHQoKTsKKyAgICAgICAgYXV0
byBzcHJlYWRFeHByID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAg
ICAgYXV0byBlbmQgPSBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uOworICAgICAgICBpZiAoIXNwcmVh
ZEV4cHIpCisgICAgICAgICAgICBmYWlsV2l0aE1lc3NhZ2UoIkludmFsaWQgc3ByZWFkIGV4cHJl
c3Npb24uIik7CisgICAgICAgIGNvbnN1bWVPckZhaWwoQ0xPU0VQQVJFTik7CisgICAgICAgIGF1
dG8gc3ByZWFkID0gY29udGV4dC5jcmVhdGVTcHJlYWRFeHByZXNzaW9uKHNwcmVhZExvY2F0aW9u
LCBzcHJlYWRFeHByLCBzdGFydCwgZGl2b3QsIGVuZCk7CisgICAgICAgIFRyZWVBcmd1bWVudHNM
aXN0IGFyZ0xpc3QgPSBjb250ZXh0LmNyZWF0ZUFyZ3VtZW50c0xpc3QobG9jYXRpb24sIHNwcmVh
ZCk7CisgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUFyZ3VtZW50cyhhcmdMaXN0KTsKKyAg
ICB9CiAgICAgVHJlZUV4cHJlc3Npb24gZmlyc3RBcmcgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNz
aW9uKGNvbnRleHQpOwogICAgIGZhaWxJZkZhbHNlKGZpcnN0QXJnKTsKICAgICAKQEAgLTE3Njks
MTIgKzE4MDQsMTIgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lv
biBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJFeHByZXMKICAgICAgICAgICAgIGlmIChu
ZXdDb3VudCkgewogICAgICAgICAgICAgICAgIG5ld0NvdW50LS07CiAgICAgICAgICAgICAgICAg
SlNUZXh0UG9zaXRpb24gZXhwcmVzc2lvbkVuZCA9IGxhc3RUb2tlbkVuZFBvc2l0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50cyBhcmd1bWVudHMgPSBwYXJzZUFyZ3VtZW50cyhj
b250ZXh0KTsKKyAgICAgICAgICAgICAgICBUcmVlQXJndW1lbnRzIGFyZ3VtZW50cyA9IHBhcnNl
QXJndW1lbnRzKGNvbnRleHQsIERvbnRBbGxvd1NwcmVhZCk7CiAgICAgICAgICAgICAgICAgZmFp
bElmRmFsc2UoYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICBiYXNlID0gY29udGV4dC5jcmVh
dGVOZXdFeHByKGxvY2F0aW9uLCBiYXNlLCBhcmd1bWVudHMsIGV4cHJlc3Npb25TdGFydCwgZXhw
cmVzc2lvbkVuZCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7CiAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIEpTVGV4dFBvc2l0aW9uIGV4cHJlc3Npb25FbmQgPSBsYXN0VG9r
ZW5FbmRQb3NpdGlvbigpOwotICAgICAgICAgICAgICAgIFRyZWVBcmd1bWVudHMgYXJndW1lbnRz
ID0gcGFyc2VBcmd1bWVudHMoY29udGV4dCk7CisgICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50
cyBhcmd1bWVudHMgPSBwYXJzZUFyZ3VtZW50cyhjb250ZXh0LCBBbGxvd1NwcmVhZCk7CiAgICAg
ICAgICAgICAgICAgZmFpbElmRmFsc2UoYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICBiYXNl
ID0gY29udGV4dC5tYWtlRnVuY3Rpb25DYWxsTm9kZShsb2NhdGlvbiwgYmFzZSwgYXJndW1lbnRz
LCBleHByZXNzaW9uU3RhcnQsIGV4cHJlc3Npb25FbmQsIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCkp
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXgg
MWFhZDIyNTE1MGVhNzY0ZmQwZmU3MmM0Y2Q4MzU0ZThmMGRmMzQxZS4uNTZlYzJmODEwOTcyNTI4
NzJkYWVkNDJjYzEwNjgxMzg0ZWUzMzEwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5oCkBAIC03NTQsNyArNzU0LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiAi
LyI7CiAgICAgICAgIGNhc2UgTU9EOiAKICAgICAgICAgICAgIHJldHVybiAiJSI7Ci0gICAgICAg
IGNhc2UgUkVUVVJOOiAKKyAgICAgICAgY2FzZSBET1RET1RET1Q6CisgICAgICAgICAgICByZXR1
cm4gIi4uLiI7CisgICAgICAgIGNhc2UgUkVUVVJOOgogICAgICAgICBjYXNlIFJFU0VSVkVEX0lG
X1NUUklDVDoKICAgICAgICAgY2FzZSBSRVNFUlZFRDogCiAgICAgICAgIGNhc2UgTlVNQkVSOgpA
QCAtODM2LDYgKzgzOCw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgUkVUVVJOOgogICAgICAg
ICAgICAgbV9lcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlJldHVybiBzdGF0ZW1lbnRzIGFy
ZSBvbmx5IHZhbGlkIGluc2lkZSBmdW5jdGlvbnMiKTsKICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgY2FzZSBET1RET1RET1Q6CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IEFTQ0lJ
TGl0ZXJhbCgiU3ByZWFkIG9wZXJhdG9yIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBjb250ZXh0
Iik7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2Ug
PSBBU0NJSUxpdGVyYWwoImludGVybmFsIGVycm9yIik7CkBAIC05NTQsNyArOTU5LDggQEAgcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUgVHJl
ZUV4cHJlc3Npb24gcGFyc2VBcnJheUxpdGVyYWwoVHJlZUJ1aWxkZXImKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUgVHJlZUV4cHJlc3Npb24gcGFyc2VP
YmplY3RMaXRlcmFsKFRyZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBBTFdBWVNfSU5MSU5FIFRyZWVFeHByZXNzaW9uIHBhcnNlU3RyaWN0T2JqZWN0TGl0ZXJh
bChUcmVlQnVpbGRlciYpOwotICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlT
X0lOTElORSBUcmVlQXJndW1lbnRzIHBhcnNlQXJndW1lbnRzKFRyZWVCdWlsZGVyJik7CisgICAg
ZW51bSBTcHJlYWRNb2RlIHsgQWxsb3dTcHJlYWQsIERvbnRBbGxvd1NwcmVhZCB9OworICAgIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlQXJndW1lbnRzIHBh
cnNlQXJndW1lbnRzKFRyZWVCdWlsZGVyJiwgU3ByZWFkTW9kZSk7CiAgICAgdGVtcGxhdGUgPGJv
b2wgc3RyaWN0LCBjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlUHJvcGVydHkg
cGFyc2VQcm9wZXJ0eShUcmVlQnVpbGRlciYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVp
bGRlcj4gQUxXQVlTX0lOTElORSBUcmVlRnVuY3Rpb25Cb2R5IHBhcnNlRnVuY3Rpb25Cb2R5KFRy
ZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5M
SU5FIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0IHBhcnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVp
bGRlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJU
b2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5k
ZXggODk4ZmU2MmNiY2Q4MTY1Y2Y5NjJkYTgwZWI4YTlkZTMxY2Y3YzZhYS4uODJhMjY2MzlhNzky
MjBhMDg0NDU2YjQ4ZjMyODUyZDE0M2M3MzlkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0xMDIsNiArMTAyLDcgQEAgZW51bSBKU1Rva2VuVHlw
ZSB7CiAgICAgTU9ERVFVQUwsCiAgICAgWE9SRVFVQUwsCiAgICAgT1JFUVVBTCwKKyAgICBET1RE
T1RET1QsCiAgICAgTGFzdFVudGFnZ2VkVG9rZW4sCiAKICAgICAvLyBCZWdpbiB0YWdnZWQgdG9r
ZW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNr
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCmluZGV4
IDJkMDVjZTdlM2FlZWI1YzE2ZWRhNjI4ZDQxZjFmMjlmZDAxNDQyMzMuLjEyYmYyMWVjZDNkODFh
MjNjNTlkNGIxNjkyYTY2ZGQ5ODdlYjcxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU3ludGF4Q2hlY2tlci5oCkBAIC0xNTcsNiArMTU3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0RnVuY3Rpb25TdGFydChpbnQsIGludCkgeyB9CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50
cygpIHsgcmV0dXJuIDE7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzKGludCkgeyByZXR1cm4g
MTsgfQorICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZVNwcmVhZEV4cHJlc3Npb24oY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvblR5cGUsIGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDE7
IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBp
bnQpIHsgcmV0dXJuIDE7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBpbnQsIGludCkgeyByZXR1cm4gMTsgfQogICAgIHRlbXBsYXRlIDxib29s
IGNvbXBsZXRlPiBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyKiBuYW1l
LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMwMzYyYTdhZjE4MmY5MDhi
NTY3MjNhZmM4NDg2ODMyN2Y0MGIzNzguLjE0NWRlZTE4MGMxOWJlYjQwNjRlMjM1NmQ1YmViM2E2
YTBmMzEyYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0xMC0xNiAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBzcHJlYWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjkxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0Y2FzZXMKKwor
ICAgICAgICAqIGpzL2Jhc2ljLXNwcmVhZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL2Jhc2ljLXNwcmVhZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9wYXJzZXItc3ludGF4
LWNoZWNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvYmFzaWMtc3By
ZWFkLmpzOiBBZGRlZC4KKyAgICAgICAgKGYpOgorICAgICAgICAoby5mLm8uZi5vLmYuby5mLmgu
ZXZhbC5vLmguby5oLm8uaC5vLmguZyk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3BhcnNl
ci1zeW50YXgtY2hlY2suanM6CisKIDIwMTMtMTAtMTYgIEt5dW5nVGFlIEtpbSAgPGt0Zi5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgRHVyaW5nIGVkaXRpbmcsIG1lcmdlIGlubGluZSBzdHls
ZSB3aXRoIG92ZXJyaWRpbmcgb3RoZXIgYXV0aG9yIHN0eWxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvYmFzaWMtc3ByZWFkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Jhc2lj
LXNwcmVhZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThkZTExNTViYTIxNThiNTAyOTY4ZDA2
MTQyZjEyYmIxMGNhNmRmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Jhc2lj
LXNwcmVhZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5NSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0
aGUgYmVoYXZpb3Igb2YgdGhlIHNwcmVhZCBjb25zdHJ1Y3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJn
c1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3NbM10gaXMg
NAorUEFTUyBzZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBpcyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5k
ZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFTUyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2Vs
ZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBhcmdzWzFdIGlzIHVuZGVmaW5lZAorUEFT
UyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQQVNTIHNlbGYgaXMgbworUEFT
UyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBp
cyBudWxsCitQQVNTIGFyZ3NbM10gaXMgNAorUEFTUyBzZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBp
cyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFT
UyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBh
cmdzWzFdIGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBp
cyA0CitQQVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1
bmRlZmluZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3NbM10gaXMgNAorUEFTUyBz
ZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBpcyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQ
QVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFTUyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQ
QVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBhcmdzWzFdIGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJd
IGlzIG51bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQQVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBd
IGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQ
QVNTIGFyZ3NbM10gaXMgNAorUEFTUyBzZWxmIGlzIG8KK1BBU1MgYXJnc1swXSBpcyAxCitQQVNT
IGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQQVNTIGFyZ3NbMl0gaXMgbnVsbAorUEFTUyBhcmdzWzNd
IGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3NbMF0gaXMgMQorUEFTUyBhcmdzWzFdIGlz
IHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwKK1BBU1MgYXJnc1szXSBpcyA0CitQQVNT
IHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BBU1MgYXJnc1sxXSBpcyB1bmRlZmluZWQK
K1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3NbM10gaXMgNAorUEFTUyBzZWxmIGlzIG8K
K1BBU1MgYXJnc1swXSBpcyAxCitQQVNTIGFyZ3NbMV0gaXMgdW5kZWZpbmVkCitQQVNTIGFyZ3Nb
Ml0gaXMgbnVsbAorUEFTUyBhcmdzWzNdIGlzIDQKK1BBU1Mgc2VsZiBpcyBvCitQQVNTIGFyZ3Nb
MF0gaXMgMQorUEFTUyBhcmdzWzFdIGlzIHVuZGVmaW5lZAorUEFTUyBhcmdzWzJdIGlzIG51bGwK
K1BBU1MgYXJnc1szXSBpcyA0CitQQVNTIHNlbGYgaXMgbworUEFTUyBhcmdzWzBdIGlzIDEKK1BB
U1MgYXJnc1sxXSBpcyB1bmRlZmluZWQKK1BBU1MgYXJnc1syXSBpcyBudWxsCitQQVNTIGFyZ3Nb
M10gaXMgNAorUEFTUyBhIGlzIFsxLDIsM10KK1BBU1MgWy4uLmFdIGlzIFsxLDIsM10KK1BBU1Mg
Wy4uLmFdIGlzIFsxLDIsM10KK1BBU1MgWywsLC4uLmFdIGlzIFssLCwxLDIsM10KK0ZBSUwgWy4u
LmEsLCxdIHNob3VsZCBiZSAxLDIsMywsLiBXYXMgMSwyLgorUEFTUyBbLC4uLmEsNF0gaXMgWywx
LDIsMyw0XQorUEFTUyBbLC4uLmEsLDVdIGlzIFssMSwyLDMsLDVdCitQQVNTIFsuLi5hLmtleXMo
KV0gaXMgWzAsMSwyXQorUEFTUyBbLi4uYS5lbnRyaWVzKCldLmpvaW4oJ3wnKSBpcyBbWzAsMV0s
WzEsMl0sWzIsM11dLmpvaW4oJ3wnKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9iYXNp
Yy1zcHJlYWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLXNwcmVhZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNiNDJjYTM2NGRiMTZlOTg1NzIxZDEwMjk1ZDBlNzhkN2E2YTA4ZTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9iYXNpYy1zcHJlYWQuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMtc3By
ZWFkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3BhcnNlci1zeW50YXgtY2hlY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcGFy
c2VyLXN5bnRheC1jaGVjay1leHBlY3RlZC50eHQKaW5kZXggN2MxYmU1NDI5OThiNjRkZjViZGQx
MTZhMmE2YWI0MjU4YTcyY2UwMi4uMGJjYzFlYWJjMjRjNWEwYjZjOGY3ZmY3Y2UyYzBiZjk2MGRl
YjZkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBlY3Rl
ZC50eHQKQEAgLTYzMSw2ICs2MzEsNTMgQEAgUEFTUyBJbnZhbGlkOiAiZm9yIChvZiBpbil7fSIK
IFBBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGZvciAob2YgaW4pe30gfSIKIFBBU1MgSW52
YWxpZDogImZvciAodmFyIG9mIGluKXt9IgogUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsg
Zm9yICh2YXIgb2YgaW4pe30gfSIKK3NwcmVhZCBvcGVyYXRvcgorUEFTUyBWYWxpZDogICAiZm9v
KC4uLmJhcikiCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyBmb28oLi4uYmFyKSB9Igor
UEFTUyBWYWxpZDogICAiby5mb28oLi4uYmFyKSIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYo
KSB7IG8uZm9vKC4uLmJhcikgfSIKK1BBU1MgVmFsaWQ6ICAgIm9bZm9vXSguLi5iYXIpIgorUEFT
UyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsgb1tmb29dKC4uLmJhcikgfSIKK1BBU1MgSW52YWxp
ZDogIm5ldyBmb28oLi4uYmFyKSIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IG5ldyBm
b28oLi4uYmFyKSB9IgorUEFTUyBJbnZhbGlkOiAibmV3IG8uZm9vKC4uLmJhcikiCitQQVNTIElu
dmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBuZXcgby5mb28oLi4uYmFyKSB9IgorUEFTUyBJbnZhbGlk
OiAibmV3IG9bZm9vXSguLi5iYXIpIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbmV3
IG9bZm9vXSguLi5iYXIpIH0iCitQQVNTIEludmFsaWQ6ICJmb28oLi4uKSIKK1BBU1MgSW52YWxp
ZDogImZ1bmN0aW9uIGYoKSB7IGZvbyguLi4pIH0iCitQQVNTIEludmFsaWQ6ICJvLmZvbyguLi4p
IgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgby5mb28oLi4uKSB9IgorUEFTUyBJbnZh
bGlkOiAib1tmb29dKC4uLikiCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBvW2Zvb10o
Li4uKSB9IgorUEFTUyBJbnZhbGlkOiAiZm9vKGJhci4uLikiCitQQVNTIEludmFsaWQ6ICJmdW5j
dGlvbiBmKCkgeyBmb28oYmFyLi4uKSB9IgorUEFTUyBJbnZhbGlkOiAiby5mb28oYmFyLi4uKSIK
K1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IG8uZm9vKGJhci4uLikgfSIKK1BBU1MgSW52
YWxpZDogIm9bZm9vXShiYXIuLi4pIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgb1tm
b29dKGJhci4uLikgfSIKK1BBU1MgSW52YWxpZDogImZvbyhhLC4uLmJhcikiCitQQVNTIEludmFs
aWQ6ICJmdW5jdGlvbiBmKCkgeyBmb28oYSwuLi5iYXIpIH0iCitQQVNTIEludmFsaWQ6ICJvLmZv
byhhLC4uLmJhcikiCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBvLmZvbyhhLC4uLmJh
cikgfSIKK1BBU1MgSW52YWxpZDogIm9bZm9vXShhLC4uLmJhcikiCitQQVNTIEludmFsaWQ6ICJm
dW5jdGlvbiBmKCkgeyBvW2Zvb10oYSwuLi5iYXIpIH0iCitQQVNTIEludmFsaWQ6ICJmb28oLi4u
YmFyLCBhKSIKK1BBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IGZvbyguLi5iYXIsIGEpIH0i
CitQQVNTIEludmFsaWQ6ICJvLmZvbyguLi5iYXIsIGEpIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rp
b24gZigpIHsgby5mb28oLi4uYmFyLCBhKSB9IgorUEFTUyBJbnZhbGlkOiAib1tmb29dKC4uLmJh
ciwgYSkiCitQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBvW2Zvb10oLi4uYmFyLCBhKSB9
IgorUEFTUyBWYWxpZDogICAiWy4uLmJhcl0iCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkg
eyBbLi4uYmFyXSB9IgorUEFTUyBWYWxpZDogICAiW2EsIC4uLmJhcl0iCitQQVNTIFZhbGlkOiAg
ICJmdW5jdGlvbiBmKCkgeyBbYSwgLi4uYmFyXSB9IgorUEFTUyBWYWxpZDogICAiWy4uLmJhciwg
YV0iCitQQVNTIFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyBbLi4uYmFyLCBhXSB9IgorUEFTUyBW
YWxpZDogICAiWy4uLmJhciwsLCxdIgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsgWy4u
LmJhciwsLCxdIH0iCitQQVNTIFZhbGlkOiAgICJbLCwsLC4uLmJhcl0iCitQQVNTIFZhbGlkOiAg
ICJmdW5jdGlvbiBmKCkgeyBbLCwsLC4uLmJhcl0gfSIKIFBBU1MgZS5saW5lIGlzIDEKIFBBU1Mg
Zm9vIGlzICdQQVNTJwogUEFTUyBiYXIgaXMgJ1BBU1MnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvYmFzaWMtc3ByZWFkLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2Jhc2ljLXNwcmVhZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2Q3ZmY5ZmVmNWFmYjFiNThkNDM3
Y2Q2ODc0NjdjN2NmZTZkZjBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2Jhc2ljLXNwcmVhZC5qcwpAQCAtMCwwICsxLDYwIEBACitkZXNjcmlwdGlvbigK
KyJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgc3ByZWFkIGNvbnN0cnVjdC4i
CispOworCitmdW5jdGlvbiBmKGEsYixjLGQpCit7CisgICAgYXJncyA9IGFyZ3VtZW50czsKKyAg
ICBzZWxmID0gdGhpczsKKyAgICBzaG91bGRCZSgic2VsZiIsICJvIikKKyAgICBzaG91bGRCZSgi
YXJnc1swXSIsICIxIikKKyAgICBzaG91bGRCZSgiYXJnc1sxXSIsICJ1bmRlZmluZWQiKQorICAg
IHNob3VsZEJlKCJhcmdzWzJdIiwgIm51bGwiKQorICAgIHNob3VsZEJlKCJhcmdzWzNdIiwgIjQi
KQorfQorCit2YXIgbyA9IHt9CitvLmYgPSBmOwordmFyIHRlc3QxID0gWzEsIHVuZGVmaW5lZCwg
bnVsbCwgNF0KK3ZhciB0ZXN0MiA9IFsxLCAsIG51bGwsIDRdCit2YXIgdGVzdDMgPSB7bGVuZ3Ro
OiA0LCAwOiAxLCAyOiBudWxsLCAzOiA0fQordmFyIHRlc3Q0ID0ge2xlbmd0aDogNCwgMDogMSwg
MTogdW5kZWZpbmVkLCAyOiBudWxsLCAzOiA0fQorby5mKC4uLnRlc3QxKQorby5mKC4uLnRlc3Qy
KQorby5mKC4uLnRlc3QzKQorby5mKC4uLnRlc3Q0KQorCit2YXIgaD1ldmFsKCciZiInKQorb1to
XSguLi50ZXN0MSkKK29baF0oLi4udGVzdDIpCitvW2hdKC4uLnRlc3QzKQorb1toXSguLi50ZXN0
NCkKKworZnVuY3Rpb24gZygpCit7CisgICAgby5mKC4uLmFyZ3VtZW50cykKK30KKworZy5hcHBs
eShudWxsLCB0ZXN0MSkKK2cuYXBwbHkobnVsbCwgdGVzdDIpCitnLmFwcGx5KG51bGwsIHRlc3Qz
KQorZy5hcHBseShudWxsLCB0ZXN0NCkKKworZyguLi50ZXN0MSkKK2coLi4udGVzdDIpCitnKC4u
LnRlc3QzKQorZyguLi50ZXN0NCkKKwordmFyIGE9WzEsMiwzXQorCitzaG91bGRCZSgiYSIsICJb
MSwyLDNdIikKK3Nob3VsZEJlKCJbLi4uYV0iLCAiWzEsMiwzXSIpCithPVsuLi5hXQorc2hvdWxk
QmUoIlsuLi5hXSIsICJbMSwyLDNdIikKK3Nob3VsZEJlKCJbLCwsLi4uYV0iLCAiWywsLDEsMiwz
XSIpCitzaG91bGRCZSgiWy4uLmEsLCxdIiwgIlsxLDIsMywsLF0iKQorc2hvdWxkQmUoIlssLi4u
YSw0XSIsICJbLDEsMiwzLDRdIikKK3Nob3VsZEJlKCJbLC4uLmEsLDVdIiwgIlssMSwyLDMsLDVd
IikKK3Nob3VsZEJlKCJbLi4uYS5rZXlzKCldIiwgIlswLDEsMl0iKQorc2hvdWxkQmUoIlsuLi5h
LmVudHJpZXMoKV0uam9pbignfCcpIiwgIltbMCwxXSxbMSwyXSxbMiwzXV0uam9pbignfCcpIikK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgt
Y2hlY2suanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVj
ay5qcwppbmRleCAzNmNmOWU5Y2ZiZDIzOTQxOTE4NTE0MzljNDc2OWRlMzcwYWMyZjdhLi44ZDMw
OWMzMWQ5YmNjZTEyMmMzNmY5NGEwZjM5ZGY0ZTJjY2ExMjljIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVjay5qcworKysgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVjay5qcwpAQCAtMzk4LDYgKzM5
OCwzMiBAQCBpbnZhbGlkKCJmb3IgKG9mIG9mIGluIG9mKXt9IikKIGludmFsaWQoImZvciAob2Yg
aW4pe30iKQogaW52YWxpZCgiZm9yICh2YXIgb2YgaW4pe30iKQogCitkZWJ1Zygic3ByZWFkIG9w
ZXJhdG9yIikKK3ZhbGlkKCJmb28oLi4uYmFyKSIpCit2YWxpZCgiby5mb28oLi4uYmFyKSIpCit2
YWxpZCgib1tmb29dKC4uLmJhcikiKQoraW52YWxpZCgibmV3IGZvbyguLi5iYXIpIikKK2ludmFs
aWQoIm5ldyBvLmZvbyguLi5iYXIpIikKK2ludmFsaWQoIm5ldyBvW2Zvb10oLi4uYmFyKSIpCitp
bnZhbGlkKCJmb28oLi4uKSIpCitpbnZhbGlkKCJvLmZvbyguLi4pIikKK2ludmFsaWQoIm9bZm9v
XSguLi4pIikKK2ludmFsaWQoImZvbyhiYXIuLi4pIikKK2ludmFsaWQoIm8uZm9vKGJhci4uLiki
KQoraW52YWxpZCgib1tmb29dKGJhci4uLikiKQoraW52YWxpZCgiZm9vKGEsLi4uYmFyKSIpCitp
bnZhbGlkKCJvLmZvbyhhLC4uLmJhcikiKQoraW52YWxpZCgib1tmb29dKGEsLi4uYmFyKSIpCitp
bnZhbGlkKCJmb28oLi4uYmFyLCBhKSIpCitpbnZhbGlkKCJvLmZvbyguLi5iYXIsIGEpIikKK2lu
dmFsaWQoIm9bZm9vXSguLi5iYXIsIGEpIikKK3ZhbGlkKCJbLi4uYmFyXSIpCit2YWxpZCgiW2Es
IC4uLmJhcl0iKQordmFsaWQoIlsuLi5iYXIsIGFdIikKK3ZhbGlkKCJbLi4uYmFyLCwsLF0iKQor
dmFsaWQoIlssLCwsLi4uYmFyXSIpCisKKwogCiAKIHRyeSB7IGV2YWwoImEuYi5jID0ge307Iik7
IH0gY2F0Y2goZTEpIHsgZT1lMTsgc2hvdWxkQmUoImUubGluZSIsICIxIikgfQo=
</data>
<flag name="review"
          id="236921"
          type_id="1"
          status="+"
          setter="msaboff"
    />
    <flag name="commit-queue"
          id="236923"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>