<?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>123077</bug_id>
          
          <creation_ts>2013-10-19 20:46:29 -0700</creation_ts>
          <short_desc>Rename RegisterSet to TempRegisterSet</short_desc>
          <delta_ts>2013-10-19 21:11:44 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>123076</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>atrick</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941635</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 20:46:29 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941637</commentid>
    <comment_count>1</comment_count>
      <attachid>214685</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 20:47:15 -0700</bug_when>
    <thetext>Created attachment 214685
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941639</commentid>
    <comment_count>2</comment_count>
      <attachid>214685</attachid>
    <who name="">mitz</who>
    <bug_when>2013-10-19 20:52:04 -0700</bug_when>
    <thetext>Comment on attachment 214685
the patch

I think you need to update the Xcode project reference to this file, and maybe other build systems that reference headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941640</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 20:54:55 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 214685 [details])
&gt; I think you need to update the Xcode project reference to this file, and maybe other build systems that reference headers.

Oh yeah, good point :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941641</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-19 20:55:35 -0700</bug_when>
    <thetext>Attachment 214685 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/bytecode/StructureStubInfo.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGJITCompiler.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h&apos;, u&apos;Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITInlineCacheGenerator.h&apos;, u&apos;Source/JavaScriptCore/jit/JITPropertyAccess.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp&apos;, u&apos;Source/JavaScriptCore/jit/RegisterSet.h&apos;, u&apos;Source/JavaScriptCore/jit/ScratchRegisterAllocator.h&apos;, u&apos;Source/JavaScriptCore/jit/TempRegisterSet.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:58:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/bytecode/StructureStubInfo.h:39:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 10 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>941642</commentid>
    <comment_count>5</comment_count>
      <attachid>214686</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 20:55:54 -0700</bug_when>
    <thetext>Created attachment 214686
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941643</commentid>
    <comment_count>6</comment_count>
      <attachid>214687</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 20:56:52 -0700</bug_when>
    <thetext>Created attachment 214687
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941644</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-19 20:58:25 -0700</bug_when>
    <thetext>Attachment 214687 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/JavaScriptCore/bytecode/StructureStubInfo.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGJITCompiler.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h&apos;, u&apos;Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITInlineCacheGenerator.h&apos;, u&apos;Source/JavaScriptCore/jit/JITPropertyAccess.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp&apos;, u&apos;Source/JavaScriptCore/jit/RegisterSet.h&apos;, u&apos;Source/JavaScriptCore/jit/ScratchRegisterAllocator.h&apos;, u&apos;Source/JavaScriptCore/jit/TempRegisterSet.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:58:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 12 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>941646</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 21:11:01 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/157693</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941647</commentid>
    <comment_count>9</comment_count>
      <attachid>214687</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 21:11:44 -0700</bug_when>
    <thetext>Comment on attachment 214687
the patch

r=mitz, since this is almost an identical patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214685</attachid>
            <date>2013-10-19 20:47:15 -0700</date>
            <delta_ts>2013-10-19 20:55:54 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25047</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NjkxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDEzLTEwLTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIFJlZ2lzdGVyU2V0IHRvIFRlbXBSZWdpc3RlclNldAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5m
by5oOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjp1c2Vk
UmVnaXN0ZXJzKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0QnlJZEdlbmVyYXRvcik6CisgICAg
ICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVEdl
dEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAgKiBqaXQv
SklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAg
ICAgKiBqaXQvUmVnaXN0ZXJTZXQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0M6OlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRv
cjo6U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKToKKyAgICAgICAgKiBqaXQvVGVtcFJlZ2lzdGVy
U2V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQu
aC4KKyAgICAgICAgKEpTQzo6VGVtcFJlZ2lzdGVyU2V0OjpUZW1wUmVnaXN0ZXJTZXQpOgorICAg
ICAgICAoSlNDOjpUZW1wUmVnaXN0ZXJTZXQ6OmFzUE9EKToKKyAgICAgICAgKEpTQzo6VGVtcFJl
Z2lzdGVyU2V0Ojpjb3B5SW5mbyk6CisKIDIwMTMtMTAtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN0cnVjdHVyZSBMaW5rQnVmZmVyIHRvIGFsbG93IGZv
ciBhbHRlcm5hdGUgYWxsb2NhdGlvbiBzdHJhdGVnaWVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkocmV2aXNpb24gMTU3
Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZv
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJNYWNyb0Fzc2Vt
Ymxlci5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBvbHltb3JwaGljQWNjZXNz
U3RydWN0dXJlTGlzdC5oIgotI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCisjaW5jbHVkZSAiVGVt
cFJlZ2lzdGVyU2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAg
LTIzMCw3ICsyMzAsNyBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogICAgICAgICBpbnQ4
X3QgdmFsdWVUYWdHUFI7CiAjZW5kaWYKICAgICAgICAgaW50OF90IHZhbHVlR1BSOwotICAgICAg
ICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzOworICAgICAgICBUZW1wUmVnaXN0ZXJTZXQgdXNl
ZFJlZ2lzdGVyczsKICAgICAgICAgaW50MzJfdCBkZWx0YUNhbGxUb0RvbmU7CiAgICAgICAgIGlu
dDMyX3QgZGVsdGFDYWxsVG9TdG9yYWdlTG9hZDsKICAgICAgICAgaW50MzJfdCBkZWx0YUNhbGxU
b1N0cnVjdENoZWNrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuaAkocmV2aXNpb24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAjaW5jbHVk
ZSAiSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAj
aW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLSNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2lu
Y2x1ZGUgIlRlbXBSZWdpc3RlclNldC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24g
MTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzgsOSArMjc4LDkgQEAgcHVibGljOgogICAgICAgICB1c2Uo
bm9kZVVzZS5ub2RlKCkpOwogICAgIH0KICAgICAKLSAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0
ZXJzKCkKKyAgICBUZW1wUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycygpCiAgICAgewotICAgICAg
ICBSZWdpc3RlclNldCByZXN1bHQ7CisgICAgICAgIFRlbXBSZWdpc3RlclNldCByZXN1bHQ7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyBpLS07
KSB7CiAgICAgICAgICAgICBHUFJSZWcgZ3ByID0gR1BSSW5mbzo6dG9SZWdpc3RlcihpKTsKICAg
ICAgICAgICAgIGlmIChtX2dwcnMuaXNJblVzZShncHIpKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAJKHJldmlz
aW9uIDE1NzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIEpJVElubGluZUNh
Y2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUcKIH0KIAogSklUQnlJZEdlbmVyYXRvcjo6SklU
QnlJZEdlbmVyYXRvcigKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKKyAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBUZW1wUmVnaXN0ZXJTZXQm
IHVzZWRSZWdpc3RlcnMsCiAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNv
ZGVCbG9jaywgY29kZU9yaWdpbikKICAgICAsIG1fYmFzZShiYXNlKQpAQCAtNTIsNyArNTIsNyBA
QCBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogICAgIG1fc3R1YkluZm8tPnBh
dGNoLnVzZWRSZWdpc3RlcnMgPSB1c2VkUmVnaXN0ZXJzOwogICAgIAogICAgIC8vIFRoaXMgaXMg
YSBjb252ZW5pZW5jZSAtIGluIGNhc2VzIHdoZXJlIHRoZSBvbmx5IHJlZ2lzdGVycyB5b3UncmUg
dXNpbmcgYXJlIGJhc2UvdmFsdWUsCi0gICAgLy8gaXQgYWxsb3dzIHlvdSB0byBwYXNzIFJlZ2lz
dGVyU2V0KCkgYXMgdGhlIHVzZWRSZWdpc3RlcnMgYXJndW1lbnQuCisgICAgLy8gaXQgYWxsb3dz
IHlvdSB0byBwYXNzIFRlbXBSZWdpc3RlclNldCgpIGFzIHRoZSB1c2VkUmVnaXN0ZXJzIGFyZ3Vt
ZW50LgogICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KGJhc2UpOwogICAg
IG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KHZhbHVlKTsKICAgICAKQEAgLTEx
Nyw3ICsxMTcsNyBAQCB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhCiB9
CiAKIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0b3IoCi0gICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQm
IHVzZWRSZWdpc3RlcnMsCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgY29uc3QgVGVtcFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgIEpTVmFs
dWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdp
c3RlcnNGbHVzaGVkLAogICAgIEVDTUFNb2RlIGVjbWFNb2RlLCBQdXRLaW5kIHB1dEtpbmQpCiAg
ICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVy
cywgYmFzZSwgdmFsdWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCShyZXZpc2lvbiAx
NTc2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJh
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHJvdGVjdGVkOgogICAgIEpJ
VEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENv
ZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFz
ZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsCisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNv
bnN0IFRlbXBSZWdpc3RlclNldCYsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVl
LAogICAgICAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpOwogICAgIAogcHVibGljOgpAQCAtOTIs
NyArOTIsNyBAQCBwdWJsaWM6CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvcigpIHsgfQogCiAgICAg
SklUR2V0QnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAg
ICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFRl
bXBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwg
SlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICAgICAgOiBKSVRC
eUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwg
dmFsdWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgewpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1Ymxp
YzoKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRQdXRCeUlkR2VuZXJh
dG9yKAotICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYg
dXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwKKyAgICAgICAgQ29kZUJsb2NrKiwgQ29k
ZU9yaWdpbiwgY29uc3QgVGVtcFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVn
cyBiYXNlLAogICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJvb2wg
cmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZvaWQgZ2Vu
ZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAx
NTc2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsNyArNDgzLDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKgogICAgIH0KIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0
b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0
KSwgUmVnaXN0ZXJTZXQoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRl
Y29kZU9mZnNldCksIFRlbXBSZWdpc3RlclNldCgpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5
bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCB0cnVlKTsKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRo
SnVtcCgpKTsKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQo
SW5zdHJ1Y3Rpb24qCiAgICAgZW1pdFdyaXRlQmFycmllcihyZWdUMCwgcmVnVDEsIHJlZ1QyLCBy
ZWdUMywgU2hvdWxkRmlsdGVySW1tZWRpYXRlcywgV3JpdGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nl
c3MpOwogICAgIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVC
bG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQoKSwKKyAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFRlbXBSZWdpc3Rl
clNldCgpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVl
UmVncyhyZWdUMywgcmVnVDIpLCByZWdUMSwgdHJ1ZSwKICAgICAgICAgbV9jb2RlQmxvY2stPmVj
bWFNb2RlKCksIGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNp
b24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw3ICs1MjMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAgICAgfQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRv
ciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQp
LCBSZWdpc3RlclNldCgpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlT2Zmc2V0KSwgVGVtcFJlZ2lzdGVyU2V0KCksCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1Qw
KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCB0cnVlKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgq
dGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAgLTU2OSw3ICs1
NjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAgICAgZW1p
dFdyaXRlQmFycmllcihyZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdUMywgU2hvdWxkRmlsdGVySW1t
ZWRpYXRlcywgV3JpdGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3MpOwogCiAgICAgSklUUHV0QnlJ
ZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVPZmZzZXQpLCBSZWdpc3RlclNldCgpLCBKU1ZhbHVlUmVncyhyZWdUMCksCisgICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBUZW1wUmVnaXN0ZXJTZXQo
KSwgSlNWYWx1ZVJlZ3MocmVnVDApLAogICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMSksIHJlZ1Qy
LCB0cnVlLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90RGly
ZWN0KTsKICAgICAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCShyZXZpc2lvbiAxNTc2ODkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjI0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2lmbmRlZiBSZWdpc3RlclNldF9oCi0jZGVmaW5lIFJlZ2lzdGVyU2V0X2gKLQotI2lu
Y2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotCi0jaWYgRU5BQkxFKEpJVCkKLQotI2luY2x1ZGUgIkZQ
UkluZm8uaCIKLSNpbmNsdWRlICJHUFJJbmZvLmgiCi0jaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvdGFsTnVtYmVyT2ZS
ZWdpc3RlcnMgPQotICAgIEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6bnVt
YmVyT2ZSZWdpc3RlcnM7Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzSW5S
ZWdpc3RlclNldCA9Ci0gICAgKHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMgKyA3KSA+PiAzOwotCi10
eXBlZGVmIHVpbnQ4X3QgUmVnaXN0ZXJTZXRQT0RbbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXRd
OwotCi1jbGFzcyBSZWdpc3RlclNldCB7Ci1wdWJsaWM6Ci0gICAgUmVnaXN0ZXJTZXQoKQotICAg
IHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7
IGktLTspCi0gICAgICAgICAgICBtX3NldFtpXSA9IDA7Ci0gICAgfQotICAgIAotICAgIFJlZ2lz
dGVyU2V0KGNvbnN0IFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQotICAgICAgICAg
ICAgbV9zZXRbaV0gPSBvdGhlcltpXTsKLSAgICB9Ci0gICAgCi0gICAgY29uc3QgUmVnaXN0ZXJT
ZXRQT0QmIGFzUE9EKCkgY29uc3QgeyByZXR1cm4gbV9zZXQ7IH0KLSAgICAKLSAgICB2b2lkIGNv
cHlJbmZvKFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQotICAgICAgICAg
ICAgb3RoZXJbaV0gPSBtX3NldFtpXTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzZXQoR1BSUmVn
IHJlZykKLSAgICB7Ci0gICAgICAgIHNldEJpdChHUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAg
IH0KLSAgICAKLSAgICB2b2lkIHNldChKU1ZhbHVlUmVncyByZWdzKQotICAgIHsKLSAgICAgICAg
aWYgKHJlZ3MudGFnR1BSKCkgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIHNldChyZWdz
LnRhZ0dQUigpKTsKLSAgICAgICAgc2V0KHJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICB9Ci0gICAg
Ci0gICAgdm9pZCBzZXRHUFJCeUluZGV4KHVuc2lnbmVkIGluZGV4KQotICAgIHsKLSAgICAgICAg
QVNTRVJUKGluZGV4IDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMpOwotICAgICAgICBzZXRC
aXQoaW5kZXgpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIGNsZWFyKEdQUlJlZyByZWcpCi0gICAg
ewotICAgICAgICBjbGVhckJpdChHUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAK
LSAgICBib29sIGdldChHUFJSZWcgcmVnKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGdl
dEJpdChHUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAgICBib29sIGdldEdQ
UkJ5SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5k
ZXggPCBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAgICAgIHJldHVybiBnZXRCaXQo
aW5kZXgpOwotICAgIH0KLSAgICAKLSAgICAvLyBSZXR1cm4gdGhlIGluZGV4J3RoIGZyZWUgR1BS
LgotICAgIEdQUlJlZyBnZXRGcmVlR1BSKHVuc2lnbmVkIGluZGV4ID0gMCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyBp
LS07KSB7Ci0gICAgICAgICAgICBpZiAoIWdldEdQUkJ5SW5kZXgoaSkgJiYgIWluZGV4LS0pCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OnRvUmVnaXN0ZXIoaSk7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7Ci0gICAgfQotICAgIAotICAgIHZvaWQgc2V0
KEZQUlJlZyByZWcpCi0gICAgewotICAgICAgICBzZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdp
c3RlcnMgKyBGUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHNl
dEZQUkJ5SW5kZXgodW5zaWduZWQgaW5kZXgpCi0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXgg
PCBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAgICAgIHNldEJpdChHUFJJbmZvOjpu
dW1iZXJPZlJlZ2lzdGVycyArIGluZGV4KTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhcihG
UFJSZWcgcmVnKQotICAgIHsKLSAgICAgICAgY2xlYXJCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdp
c3RlcnMgKyBGUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAgICBib29sIGdl
dChGUFJSZWcgcmVnKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGdldEJpdChHUFJJbmZv
OjpudW1iZXJPZlJlZ2lzdGVycyArIEZQUkluZm86OnRvSW5kZXgocmVnKSk7Ci0gICAgfQotICAg
IAotICAgIGJvb2wgZ2V0RlBSQnlJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChpbmRleCA8IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzKTsKLSAgICAg
ICAgcmV0dXJuIGdldEJpdChHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIGluZGV4KTsKLSAg
ICB9Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFua0luZm8+Ci0gICAgdm9pZCBzZXRC
eUluZGV4KHVuc2lnbmVkIGluZGV4KQotICAgIHsKLSAgICAgICAgc2V0KEJhbmtJbmZvOjp0b1Jl
Z2lzdGVyKGluZGV4KSk7Ci0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhbmtJ
bmZvPgotICAgIGJvb2wgZ2V0QnlJbmRleCh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBnZXQoQmFua0luZm86OnRvUmVnaXN0ZXIoaW5kZXgpKTsKLSAgICB9Ci0gICAgCi0g
ICAgdW5zaWduZWQgbnVtYmVyT2ZTZXRHUFJzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHVuc2ln
bmVkIHJlc3VsdCA9IDA7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IEdQUkluZm86Om51bWJl
ck9mUmVnaXN0ZXJzOyBpLS07KSB7Ci0gICAgICAgICAgICBpZiAoIWdldEJpdChpKSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHVuc2lnbmVkIG51bWJlck9m
U2V0RlBScygpIGNvbnN0Ci0gICAgewotICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwotICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgaS0tOykg
ewotICAgICAgICAgICAgaWYgKCFnZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBp
KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlc3VsdCsrOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHVuc2lnbmVk
IG51bWJlck9mU2V0UmVnaXN0ZXJzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIHJl
c3VsdCA9IDA7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRvdGFsTnVtYmVyT2ZSZWdpc3Rl
cnM7IGktLTspIHsKLSAgICAgICAgICAgIGlmICghZ2V0Qml0KGkpKQotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgcmVzdWx0Kys7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi1wcml2YXRlOgotICAgIHZvaWQgc2V0Qml0KHVuc2ln
bmVkIGkpCi0gICAgewotICAgICAgICBBU1NFUlQoaSA8IHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMp
OwotICAgICAgICBtX3NldFtpID4+IDNdIHw9ICgxIDw8IChpICYgNykpOwotICAgIH0KLSAgICAK
LSAgICB2b2lkIGNsZWFyQml0KHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBBU1NFUlQoaSA8
IHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMpOwotICAgICAgICBtX3NldFtpID4+IDNdICY9IH4oMSA8
PCAoaSAmIDcpKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBnZXRCaXQodW5zaWduZWQgaSkgY29u
c3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpIDwgdG90YWxOdW1iZXJPZlJlZ2lzdGVycyk7Ci0g
ICAgICAgIHJldHVybiAhIShtX3NldFtpID4+IDNdICYgKDEgPDwgKGkgJiA3KSkpOwotICAgIH0K
LSAgICAKLSAgICBSZWdpc3RlclNldFBPRCBtX3NldDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpT
QwotCi0jZWxzZSAvLyBFTkFCTEUoSklUKSAtPiBzbyBpZiBKSVQgaXMgZGlzYWJsZWQKLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLS8vIERlZmluZSBSZWdpc3RlclNldFBPRCB0byBzb21ldGhpbmcgdGhh
dCBpcyBhIFBPRCwgYnV0IGlzIG90aGVyd2lzZSB1c2VsZXNzLAotLy8gdG8gbWFrZSBpdCBlYXNp
ZXIgdG8gcmVmZXIgdG8gdGhpcyB0eXBlIGluIGNvZGUgdGhhdCBtYXkgYmUgY29tcGlsZWQgd2hl
bgotLy8gdGhlIERGRyBpcyBkaXNhYmxlZC4KLQotc3RydWN0IFJlZ2lzdGVyU2V0UE9EIHsgfTsK
LQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBFTkFCTEUoSklUKQotCi0jZW5kaWYg
Ly8gUmVnaXN0ZXJTZXRfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAi
TWFjcm9Bc3NlbWJsZXIuaCIKLSNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2luY2x1ZGUgIlRl
bXBSZWdpc3RlclNldC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMzksNyArMzksNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIHsKIHB1Ymxp
YzoKLSAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IoY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRS
ZWdpc3RlcnMpCisgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKGNvbnN0IFRlbXBSZWdpc3Rl
clNldCYgdXNlZFJlZ2lzdGVycykKICAgICAgICAgOiBtX3VzZWRSZWdpc3RlcnModXNlZFJlZ2lz
dGVycykKICAgICAgICAgLCBtX2RpZFJldXNlUmVnaXN0ZXJzKGZhbHNlKQogICAgIHsKQEAgLTE4
NCw5ICsxODQsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBSZWdpc3Rl
clNldCBtX3VzZWRSZWdpc3RlcnM7Ci0gICAgUmVnaXN0ZXJTZXQgbV9sb2NrZWRSZWdpc3RlcnM7
Ci0gICAgUmVnaXN0ZXJTZXQgbV9zY3JhdGNoUmVnaXN0ZXJzOworICAgIFRlbXBSZWdpc3RlclNl
dCBtX3VzZWRSZWdpc3RlcnM7CisgICAgVGVtcFJlZ2lzdGVyU2V0IG1fbG9ja2VkUmVnaXN0ZXJz
OworICAgIFRlbXBSZWdpc3RlclNldCBtX3NjcmF0Y2hSZWdpc3RlcnM7CiAgICAgYm9vbCBtX2Rp
ZFJldXNlUmVnaXN0ZXJzOwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9U
ZW1wUmVnaXN0ZXJTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RlbXBSZWdpc3RlclNldC5oCShyZXZpc2lvbiAxNTc2ODkpCShmcm9tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaDoxNTc2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1RlbXBSZWdpc3RlclNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjI0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
UmVnaXN0ZXJTZXRfaAorI2RlZmluZSBSZWdpc3RlclNldF9oCisKKyNpbmNsdWRlIDx3dGYvUGxh
dGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJGUFJJbmZvLmgiCisjaW5j
bHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgPHd0Zi9CaXRtYXAuaD4KKworbmFtZXNwYWNlIEpT
QyB7CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzID0KKyAg
ICBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJz
OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQgPQor
ICAgICh0b3RhbE51bWJlck9mUmVnaXN0ZXJzICsgNykgPj4gMzsKKwordHlwZWRlZiB1aW50OF90
IFJlZ2lzdGVyU2V0UE9EW251bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0XTsKKworY2xhc3MgUmVn
aXN0ZXJTZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVyU2V0KCkKKyAgICB7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQorICAgICAg
ICAgICAgbV9zZXRbaV0gPSAwOworICAgIH0KKyAgICAKKyAgICBSZWdpc3RlclNldChjb25zdCBS
ZWdpc3RlclNldFBPRCYgb3RoZXIpCisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBu
dW1iZXJPZkJ5dGVzSW5SZWdpc3RlclNldDsgaS0tOykKKyAgICAgICAgICAgIG1fc2V0W2ldID0g
b3RoZXJbaV07CisgICAgfQorICAgIAorICAgIGNvbnN0IFJlZ2lzdGVyU2V0UE9EJiBhc1BPRCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2V0OyB9CisgICAgCisgICAgdm9pZCBjb3B5SW5mbyhSZWdpc3Rl
clNldFBPRCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBu
dW1iZXJPZkJ5dGVzSW5SZWdpc3RlclNldDsgaS0tOykKKyAgICAgICAgICAgIG90aGVyW2ldID0g
bV9zZXRbaV07CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0KEdQUlJlZyByZWcpCisgICAgewor
ICAgICAgICBzZXRCaXQoR1BSSW5mbzo6dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBzZXQoSlNWYWx1ZVJlZ3MgcmVncykKKyAgICB7CisgICAgICAgIGlmIChyZWdzLnRhZ0dQ
UigpICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICBzZXQocmVncy50YWdHUFIoKSk7Cisg
ICAgICAgIHNldChyZWdzLnBheWxvYWRHUFIoKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0
R1BSQnlJbmRleCh1bnNpZ25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRleCA8
IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzKTsKKyAgICAgICAgc2V0Qml0KGluZGV4KTsKKyAg
ICB9CisgICAgCisgICAgdm9pZCBjbGVhcihHUFJSZWcgcmVnKQorICAgIHsKKyAgICAgICAgY2xl
YXJCaXQoR1BSSW5mbzo6dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBnZXQo
R1BSUmVnIHJlZykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCaXQoR1BSSW5mbzo6
dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBnZXRHUFJCeUluZGV4KHVuc2ln
bmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgR1BSSW5mbzo6
bnVtYmVyT2ZSZWdpc3RlcnMpOworICAgICAgICByZXR1cm4gZ2V0Qml0KGluZGV4KTsKKyAgICB9
CisgICAgCisgICAgLy8gUmV0dXJuIHRoZSBpbmRleCd0aCBmcmVlIEdQUi4KKyAgICBHUFJSZWcg
Z2V0RnJlZUdQUih1bnNpZ25lZCBpbmRleCA9IDApIGNvbnN0CisgICAgeworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgaS0tOykgeworICAgICAg
ICAgICAgaWYgKCFnZXRHUFJCeUluZGV4KGkpICYmICFpbmRleC0tKQorICAgICAgICAgICAgICAg
IHJldHVybiBHUFJJbmZvOjp0b1JlZ2lzdGVyKGkpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBJbnZhbGlkR1BSUmVnOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldChGUFJSZWcgcmVnKQor
ICAgIHsKKyAgICAgICAgc2V0Qml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5m
bzo6dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzZXRGUFJCeUluZGV4KHVu
c2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgRlBSSW5mbzo6bnVt
YmVyT2ZSZWdpc3RlcnMpOworICAgICAgICBzZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnMgKyBpbmRleCk7CisgICAgfQorICAgIAorICAgIHZvaWQgY2xlYXIoRlBSUmVnIHJlZykKKyAg
ICB7CisgICAgICAgIGNsZWFyQml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5m
bzo6dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBnZXQoRlBSUmVnIHJlZykg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdp
c3RlcnMgKyBGUFJJbmZvOjp0b0luZGV4KHJlZykpOworICAgIH0KKyAgICAKKyAgICBib29sIGdl
dEZQUkJ5SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
aW5kZXggPCBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgICAgIHJldHVybiBnZXRC
aXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBpbmRleCk7CisgICAgfQorICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEJhbmtJbmZvPgorICAgIHZvaWQgc2V0QnlJbmRleCh1bnNpZ25l
ZCBpbmRleCkKKyAgICB7CisgICAgICAgIHNldChCYW5rSW5mbzo6dG9SZWdpc3RlcihpbmRleCkp
OworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYW5rSW5mbz4KKyAgICBib29s
IGdldEJ5SW5kZXgodW5zaWduZWQgaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KEJh
bmtJbmZvOjp0b1JlZ2lzdGVyKGluZGV4KSk7CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIG51
bWJlck9mU2V0R1BScygpIGNvbnN0CisgICAgeworICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAw
OworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsg
aS0tOykgeworICAgICAgICAgICAgaWYgKCFnZXRCaXQoaSkpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICByZXN1bHQrKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBudW1iZXJPZlNldEZQUnMoKSBjb25z
dAorICAgIHsKKyAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gRlBSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnM7IGktLTspIHsKKyAgICAgICAgICAg
IGlmICghZ2V0Qml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgaSkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICByZXN1bHQrKzsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBudW1iZXJPZlNldFJl
Z2lzdGVycygpIGNvbnN0CisgICAgeworICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSB0b3RhbE51bWJlck9mUmVnaXN0ZXJzOyBpLS07KSB7Cisg
ICAgICAgICAgICBpZiAoIWdldEJpdChpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIHJlc3VsdCsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorICAgIAorcHJpdmF0ZToKKyAgICB2b2lkIHNldEJpdCh1bnNpZ25lZCBpKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGkgPCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzKTsKKyAgICAgICAgbV9z
ZXRbaSA+PiAzXSB8PSAoMSA8PCAoaSAmIDcpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjbGVh
ckJpdCh1bnNpZ25lZCBpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGkgPCB0b3RhbE51bWJlck9m
UmVnaXN0ZXJzKTsKKyAgICAgICAgbV9zZXRbaSA+PiAzXSAmPSB+KDEgPDwgKGkgJiA3KSk7Cisg
ICAgfQorICAgIAorICAgIGJvb2wgZ2V0Qml0KHVuc2lnbmVkIGkpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQoaSA8IHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMpOworICAgICAgICByZXR1cm4g
ISEobV9zZXRbaSA+PiAzXSAmICgxIDw8IChpICYgNykpKTsKKyAgICB9CisgICAgCisgICAgUmVn
aXN0ZXJTZXRQT0QgbV9zZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vsc2UgLy8g
RU5BQkxFKEpJVCkgLT4gc28gaWYgSklUIGlzIGRpc2FibGVkCisKK25hbWVzcGFjZSBKU0Mgewor
CisvLyBEZWZpbmUgUmVnaXN0ZXJTZXRQT0QgdG8gc29tZXRoaW5nIHRoYXQgaXMgYSBQT0QsIGJ1
dCBpcyBvdGhlcndpc2UgdXNlbGVzcywKKy8vIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlZmVyIHRv
IHRoaXMgdHlwZSBpbiBjb2RlIHRoYXQgbWF5IGJlIGNvbXBpbGVkIHdoZW4KKy8vIHRoZSBERkcg
aXMgZGlzYWJsZWQuCisKK3N0cnVjdCBSZWdpc3RlclNldFBPRCB7IH07CisKK30gLy8gbmFtZXNw
YWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIFJlZ2lzdGVyU2V0
X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNldC5o
CSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3Rl
clNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
ICAqLwogCi0jaWZuZGVmIFJlZ2lzdGVyU2V0X2gKLSNkZWZpbmUgUmVnaXN0ZXJTZXRfaAorI2lm
bmRlZiBUZW1wUmVnaXN0ZXJTZXRfaAorI2RlZmluZSBUZW1wUmVnaXN0ZXJTZXRfaAogCiAjaW5j
bHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKQEAgLTM5LDMwICszOSwzMCBAQCBuYW1lc3BhY2UgSlND
IHsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzID0KICAgICBH
UFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOwog
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQgPQorc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldCA9CiAgICAg
KHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMgKyA3KSA+PiAzOwogCi10eXBlZGVmIHVpbnQ4X3QgUmVn
aXN0ZXJTZXRQT0RbbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXRdOwordHlwZWRlZiB1aW50OF90
IFRlbXBSZWdpc3RlclNldFBPRFtudW1iZXJPZkJ5dGVzSW5UZW1wUmVnaXN0ZXJTZXRdOwogCi1j
bGFzcyBSZWdpc3RlclNldCB7CitjbGFzcyBUZW1wUmVnaXN0ZXJTZXQgewogcHVibGljOgotICAg
IFJlZ2lzdGVyU2V0KCkKKyAgICBUZW1wUmVnaXN0ZXJTZXQoKQogICAgIHsKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldDsgaS0tOykK
ICAgICAgICAgICAgIG1fc2V0W2ldID0gMDsKICAgICB9CiAgICAgCi0gICAgUmVnaXN0ZXJTZXQo
Y29uc3QgUmVnaXN0ZXJTZXRQT0QmIG90aGVyKQorICAgIFRlbXBSZWdpc3RlclNldChjb25zdCBU
ZW1wUmVnaXN0ZXJTZXRQT0QmIG90aGVyKQogICAgIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldDsgaS0tOykKICAgICAgICAgICAg
IG1fc2V0W2ldID0gb3RoZXJbaV07CiAgICAgfQogICAgIAotICAgIGNvbnN0IFJlZ2lzdGVyU2V0
UE9EJiBhc1BPRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0OyB9CisgICAgY29uc3QgVGVtcFJlZ2lz
dGVyU2V0UE9EJiBhc1BPRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0OyB9CiAgICAgCi0gICAgdm9p
ZCBjb3B5SW5mbyhSZWdpc3RlclNldFBPRCYgb3RoZXIpIGNvbnN0CisgICAgdm9pZCBjb3B5SW5m
byhUZW1wUmVnaXN0ZXJTZXRQT0QmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldDsgaS0tOykKICAg
ICAgICAgICAgIG90aGVyW2ldID0gbV9zZXRbaV07CiAgICAgfQogICAgIApAQCAtMjAxLDcgKzIw
MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiAhIShtX3NldFtpID4+IDNdICYgKDEgPDwg
KGkgJiA3KSkpOwogICAgIH0KICAgICAKLSAgICBSZWdpc3RlclNldFBPRCBtX3NldDsKKyAgICBU
ZW1wUmVnaXN0ZXJTZXRQT0QgbV9zZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTIx
MCwxNSArMjEwLDE1IEBAIHByaXZhdGU6CiAKIG5hbWVzcGFjZSBKU0MgewogCi0vLyBEZWZpbmUg
UmVnaXN0ZXJTZXRQT0QgdG8gc29tZXRoaW5nIHRoYXQgaXMgYSBQT0QsIGJ1dCBpcyBvdGhlcndp
c2UgdXNlbGVzcywKKy8vIERlZmluZSBUZW1wUmVnaXN0ZXJTZXRQT0QgdG8gc29tZXRoaW5nIHRo
YXQgaXMgYSBQT0QsIGJ1dCBpcyBvdGhlcndpc2UgdXNlbGVzcywKIC8vIHRvIG1ha2UgaXQgZWFz
aWVyIHRvIHJlZmVyIHRvIHRoaXMgdHlwZSBpbiBjb2RlIHRoYXQgbWF5IGJlIGNvbXBpbGVkIHdo
ZW4KIC8vIHRoZSBERkcgaXMgZGlzYWJsZWQuCiAKLXN0cnVjdCBSZWdpc3RlclNldFBPRCB7IH07
CitzdHJ1Y3QgVGVtcFJlZ2lzdGVyU2V0UE9EIHsgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCi0jZW5kaWYgLy8gUmVnaXN0ZXJTZXRfaAorI2VuZGlm
IC8vIFRlbXBSZWdpc3RlclNldF9oCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214686</attachid>
            <date>2013-10-19 20:55:54 -0700</date>
            <delta_ts>2013-10-19 20:56:52 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>30402</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NjkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEzLTEwLTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIFJlZ2lzdGVyU2V0IHRvIFRlbXBSZWdpc3RlclNldAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5o
OgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjp1c2VkUmVn
aXN0ZXJzKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0QnlJZEdlbmVyYXRvcik6CisgICAgICAg
ICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVEdldEJ5
SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAg
KiBqaXQvUmVnaXN0ZXJTZXQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0M6OlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6
U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKToKKyAgICAgICAgKiBqaXQvVGVtcFJlZ2lzdGVyU2V0
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaC4K
KyAgICAgICAgKEpTQzo6VGVtcFJlZ2lzdGVyU2V0OjpUZW1wUmVnaXN0ZXJTZXQpOgorICAgICAg
ICAoSlNDOjpUZW1wUmVnaXN0ZXJTZXQ6OmFzUE9EKToKKyAgICAgICAgKEpTQzo6VGVtcFJlZ2lz
dGVyU2V0Ojpjb3B5SW5mbyk6CisKIDIwMTMtMTAtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXN0cnVjdHVyZSBMaW5rQnVmZmVyIHRvIGFsbG93IGZvciBh
bHRlcm5hdGUgYWxsb2NhdGlvbiBzdHJhdGVnaWVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTc5MCwxMCArNzkwLDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxqaXRcSklUV3JpdGVCYXJyaWVyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aml0XEpTSW50ZXJmYWNlSklULmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0
XEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCIgLz4NCi0gICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxqaXRcUmVnaXN0ZXJTZXQuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxq
aXRcUmVwYXRjaC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGppdFxTY3JhdGNo
UmVnaXN0ZXJBbGxvY2F0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRc
U3BlY2lhbGl6ZWRUaHVua0pJVC5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGpp
dFxUZW1wUmVnaXN0ZXJTZXQuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRc
VGh1bmtHZW5lcmF0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcVGh1
bmtHZW5lcmF0b3JzLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0XFVudXNl
ZFBvaW50ZXIuaCIgLz4NCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQAog
CQkwRjI0RTU0QzE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9ucy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0RTU0NTE3RUUyNzQ5MDBB
QkIyMTcgLyogSklUT3BlcmF0aW9ucy5jcHAgKi87IH07CiAJCTBGMjRFNTREMTdFRTI3NDkwMEFC
QjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjI0RTU0NjE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9ucy5o
ICovOyB9OwogCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9uV3JhcHBl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRF
NTQ3MTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oICovOyB9OwotCQkw
RjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTQ4MTdFRTI3NDkwMEFCQjIxNyAv
KiBSZWdpc3RlclNldC5oICovOyB9OworCQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVt
cFJlZ2lzdGVyU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjI0RTU0ODE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0LmggKi87IH07
CiAJCTBGMjRFNTUwMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTQ5MTdFRTI3NDkwMEFCQjIx
NyAvKiBSZXBhdGNoLmNwcCAqLzsgfTsKIAkJMEYyNEU1NTExN0VFMjc0OTAwQUJCMjE3IC8qIFJl
cGF0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MjRFNTRBMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmggKi87IH07CiAJCTBGMjRFNTUyMTdF
RTI3NDkwMEFCQjIxNyAvKiBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTRCMTdFRTI3NDkwMEFCQjIx
NyAvKiBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCAqLzsgfTsKQEAgLTEzNzMsNyArMTM3Myw3
IEBACiAJCTBGMjRFNTQ1MTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVE9wZXJhdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjI0RTU0NjE3RUUyNzQ5MDBBQkIyMTcgLyogSklU
T3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRPcGVyYXRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjRFNTQ3MTdFRTI3NDkwMEFC
QjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKSVRPcGVyYXRpb25XcmFwcGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjI0RTU0ODE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wUmVnaXN0ZXJTZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1NDkxN0VFMjc0OTAwQUJCMjE3IC8qIFJl
cGF0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwYXRjaC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjRFNTRBMTdFRTI3NDkwMEFCQjIx
NyAvKiBSZXBhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGF0Y2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1NEIxN0VFMjc0OTAwQUJCMjE3
IC8qIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI5MDgsMTIgKzI5MDgsMTIgQEAKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVC
MDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2NkQzMjE1QUUyNTM1MDA4RjM2M0Ug
LyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8sCiAJCQkJMEY3NjZEMzMxNUFFMjUz
NTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCAqLywKLQkJCQkwRjI0RTU0
ODE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQkwRjI0RTU0OTE3RUUy
NzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgKi8sCiAJCQkJMEYyNEU1NEExN0VFMjc0OTAwQUJC
MjE3IC8qIFJlcGF0Y2guaCAqLywKIAkJCQkwRjI0RTU0QjE3RUUyNzQ5MDBBQkIyMTcgLyogU2Ny
YXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmggKi8sCiAJCQkJQTcwOUYyRUYxN0EwQUMwNDAwNTEyRTk4
IC8qIFNsb3dQYXRoQ2FsbC5oICovLAogCQkJCUE3Mzg2NTUxMTE4Njk3QjQwMDU0MDI3OSAvKiBT
cGVjaWFsaXplZFRodW5rSklULmggKi8sCisJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8q
IFRlbXBSZWdpc3RlclNldC5oICovLAogCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBU
aHVua0dlbmVyYXRvci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuY3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuaCAqLywKQEAgLTQ2NzMsNyArNDY3Myw3IEBACiAJCQkJMEZGNDI3NDQxNThF
QkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9pbnB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3
NDgxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9zeW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MjRFNTUxMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMjRFNTRGMTdFRTI3NDkwMEFCQjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRjQyNzQ5MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfdHlwZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3RTVBQjM5MTc5OUU0QjIwMEQyODMzRCAvKiBVRGlzODZEaXNh
c3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjQxMTdBREI1RjMwMDVBQjE3NCAv
KiBVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkocmV2aXNpb24gMTU3Njg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBvbHltb3JwaGljQWNjZXNzU3Ry
dWN0dXJlTGlzdC5oIgotI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCisjaW5jbHVkZSAiVGVtcFJl
Z2lzdGVyU2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
U3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTIz
MCw3ICsyMzAsNyBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogICAgICAgICBpbnQ4X3Qg
dmFsdWVUYWdHUFI7CiAjZW5kaWYKICAgICAgICAgaW50OF90IHZhbHVlR1BSOwotICAgICAgICBS
ZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzOworICAgICAgICBUZW1wUmVnaXN0ZXJTZXQgdXNlZFJl
Z2lzdGVyczsKICAgICAgICAgaW50MzJfdCBkZWx0YUNhbGxUb0RvbmU7CiAgICAgICAgIGludDMy
X3QgZGVsdGFDYWxsVG9TdG9yYWdlTG9hZDsKICAgICAgICAgaW50MzJfdCBkZWx0YUNhbGxUb1N0
cnVjdENoZWNrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGls
ZXIuaAkocmV2aXNpb24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAjaW5jbHVkZSAi
SklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLSNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2luY2x1
ZGUgIlRlbXBSZWdpc3RlclNldC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTU3
Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzgsOSArMjc4LDkgQEAgcHVibGljOgogICAgICAgICB1c2Uobm9k
ZVVzZS5ub2RlKCkpOwogICAgIH0KICAgICAKLSAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJz
KCkKKyAgICBUZW1wUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycygpCiAgICAgewotICAgICAgICBS
ZWdpc3RlclNldCByZXN1bHQ7CisgICAgICAgIFRlbXBSZWdpc3RlclNldCByZXN1bHQ7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyBpLS07KSB7
CiAgICAgICAgICAgICBHUFJSZWcgZ3ByID0gR1BSSW5mbzo6dG9SZWdpc3RlcihpKTsKICAgICAg
ICAgICAgIGlmIChtX2dwcnMuaXNJblVzZShncHIpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAJKHJldmlzaW9u
IDE1NzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIEpJVElubGluZUNhY2hl
R2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUcKIH0KIAogSklUQnlJZEdlbmVyYXRvcjo6SklUQnlJ
ZEdlbmVyYXRvcigKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKKyAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBUZW1wUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnMsCiAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJv
b2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVC
bG9jaywgY29kZU9yaWdpbikKICAgICAsIG1fYmFzZShiYXNlKQpAQCAtNTIsNyArNTIsNyBAQCBK
SVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogICAgIG1fc3R1YkluZm8tPnBhdGNo
LnVzZWRSZWdpc3RlcnMgPSB1c2VkUmVnaXN0ZXJzOwogICAgIAogICAgIC8vIFRoaXMgaXMgYSBj
b252ZW5pZW5jZSAtIGluIGNhc2VzIHdoZXJlIHRoZSBvbmx5IHJlZ2lzdGVycyB5b3UncmUgdXNp
bmcgYXJlIGJhc2UvdmFsdWUsCi0gICAgLy8gaXQgYWxsb3dzIHlvdSB0byBwYXNzIFJlZ2lzdGVy
U2V0KCkgYXMgdGhlIHVzZWRSZWdpc3RlcnMgYXJndW1lbnQuCisgICAgLy8gaXQgYWxsb3dzIHlv
dSB0byBwYXNzIFRlbXBSZWdpc3RlclNldCgpIGFzIHRoZSB1c2VkUmVnaXN0ZXJzIGFyZ3VtZW50
LgogICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KGJhc2UpOwogICAgIG1f
c3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0KHZhbHVlKTsKICAgICAKQEAgLTExNyw3
ICsxMTcsNyBAQCB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhCiB9CiAK
IEpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5SWRHZW5lcmF0b3IoCi0gICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnMsCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgY29uc3QgVGVtcFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgIEpTVmFsdWVS
ZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3Rl
cnNGbHVzaGVkLAogICAgIEVDTUFNb2RlIGVjbWFNb2RlLCBQdXRLaW5kIHB1dEtpbmQpCiAgICAg
OiBKSVRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywg
YmFzZSwgdmFsdWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxNTc2
ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHJvdGVjdGVkOgogICAgIEpJVEJ5
SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVC
bG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFzZSwg
SlNWYWx1ZVJlZ3MgdmFsdWUsCisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0
IFRlbXBSZWdpc3RlclNldCYsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLAog
ICAgICAgICBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpOwogICAgIAogcHVibGljOgpAQCAtOTIsNyAr
OTIsNyBAQCBwdWJsaWM6CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvcigpIHsgfQogCiAgICAgSklU
R2V0QnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmln
aW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAgICAg
IENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFRlbXBS
ZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICAgICAgOiBKSVRCeUlk
R2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFs
dWUsIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgewpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoK
ICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9y
KAotICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNl
ZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwKKyAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9y
aWdpbiwgY29uc3QgVGVtcFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBi
YXNlLAogICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJvb2wgcmVn
aXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZvaWQgZ2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAxNTc2
ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsNyArNDgzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X2lkKEluc3RydWN0aW9uKgogICAgIH0KIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwg
UmVnaXN0ZXJTZXQoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29k
ZU9mZnNldCksIFRlbXBSZWdpc3RlclNldCgpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9h
ZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCB0cnVlKTsKICAgICBnZW4u
Z2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVt
cCgpKTsKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5z
dHJ1Y3Rpb24qCiAgICAgZW1pdFdyaXRlQmFycmllcihyZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdU
MywgU2hvdWxkRmlsdGVySW1tZWRpYXRlcywgV3JpdGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3Mp
OwogICAgIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9j
aywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQoKSwKKyAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFRlbXBSZWdpc3RlclNl
dCgpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVn
cyhyZWdUMywgcmVnVDIpLCByZWdUMSwgdHJ1ZSwKICAgICAgICAgbV9jb2RlQmxvY2stPmVjbWFN
b2RlKCksIGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24g
MTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw3ICs1MjMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAgICAgfQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBn
ZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBS
ZWdpc3RlclNldCgpLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2Rl
T2Zmc2V0KSwgVGVtcFJlZ2lzdGVyU2V0KCksCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwg
SlNWYWx1ZVJlZ3MocmVnVDApLCB0cnVlKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhp
cyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAgLTU2OSw3ICs1Njks
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaWQoSW5zdHJ1Y3Rpb24qCiAgICAgZW1pdFdy
aXRlQmFycmllcihyZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdUMywgU2hvdWxkRmlsdGVySW1tZWRp
YXRlcywgV3JpdGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3MpOwogCiAgICAgSklUUHV0QnlJZEdl
bmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVP
ZmZzZXQpLCBSZWdpc3RlclNldCgpLCBKU1ZhbHVlUmVncyhyZWdUMCksCisgICAgICAgIG1fY29k
ZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBUZW1wUmVnaXN0ZXJTZXQoKSwg
SlNWYWx1ZVJlZ3MocmVnVDApLAogICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMSksIHJlZ1QyLCB0
cnVlLCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0
KTsKICAgICAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCShyZXZpc2lvbiAxNTc2ODkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
MjI0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2lmbmRlZiBSZWdpc3RlclNldF9oCi0jZGVmaW5lIFJlZ2lzdGVyU2V0X2gKLQotI2luY2x1
ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotCi0jaWYgRU5BQkxFKEpJVCkKLQotI2luY2x1ZGUgIkZQUklu
Zm8uaCIKLSNpbmNsdWRlICJHUFJJbmZvLmgiCi0jaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgotCi1u
YW1lc3BhY2UgSlNDIHsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvdGFsTnVtYmVyT2ZSZWdp
c3RlcnMgPQotICAgIEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6bnVtYmVy
T2ZSZWdpc3RlcnM7Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzSW5SZWdp
c3RlclNldCA9Ci0gICAgKHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMgKyA3KSA+PiAzOwotCi10eXBl
ZGVmIHVpbnQ4X3QgUmVnaXN0ZXJTZXRQT0RbbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXRdOwot
Ci1jbGFzcyBSZWdpc3RlclNldCB7Ci1wdWJsaWM6Ci0gICAgUmVnaXN0ZXJTZXQoKQotICAgIHsK
LSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGkt
LTspCi0gICAgICAgICAgICBtX3NldFtpXSA9IDA7Ci0gICAgfQotICAgIAotICAgIFJlZ2lzdGVy
U2V0KGNvbnN0IFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQotICAgICAgICAgICAg
bV9zZXRbaV0gPSBvdGhlcltpXTsKLSAgICB9Ci0gICAgCi0gICAgY29uc3QgUmVnaXN0ZXJTZXRQ
T0QmIGFzUE9EKCkgY29uc3QgeyByZXR1cm4gbV9zZXQ7IH0KLSAgICAKLSAgICB2b2lkIGNvcHlJ
bmZvKFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQotICAgICAgICAgICAg
b3RoZXJbaV0gPSBtX3NldFtpXTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzZXQoR1BSUmVnIHJl
ZykKLSAgICB7Ci0gICAgICAgIHNldEJpdChHUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0K
LSAgICAKLSAgICB2b2lkIHNldChKU1ZhbHVlUmVncyByZWdzKQotICAgIHsKLSAgICAgICAgaWYg
KHJlZ3MudGFnR1BSKCkgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIHNldChyZWdzLnRh
Z0dQUigpKTsKLSAgICAgICAgc2V0KHJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICB9Ci0gICAgCi0g
ICAgdm9pZCBzZXRHUFJCeUluZGV4KHVuc2lnbmVkIGluZGV4KQotICAgIHsKLSAgICAgICAgQVNT
RVJUKGluZGV4IDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMpOwotICAgICAgICBzZXRCaXQo
aW5kZXgpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIGNsZWFyKEdQUlJlZyByZWcpCi0gICAgewot
ICAgICAgICBjbGVhckJpdChHUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAg
ICBib29sIGdldChHUFJSZWcgcmVnKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGdldEJp
dChHUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAgICBib29sIGdldEdQUkJ5
SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXgg
PCBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAgICAgIHJldHVybiBnZXRCaXQoaW5k
ZXgpOwotICAgIH0KLSAgICAKLSAgICAvLyBSZXR1cm4gdGhlIGluZGV4J3RoIGZyZWUgR1BSLgot
ICAgIEdQUlJlZyBnZXRGcmVlR1BSKHVuc2lnbmVkIGluZGV4ID0gMCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyBpLS07
KSB7Ci0gICAgICAgICAgICBpZiAoIWdldEdQUkJ5SW5kZXgoaSkgJiYgIWluZGV4LS0pCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OnRvUmVnaXN0ZXIoaSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7Ci0gICAgfQotICAgIAotICAgIHZvaWQgc2V0KEZQ
UlJlZyByZWcpCi0gICAgewotICAgICAgICBzZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnMgKyBGUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHNldEZQ
UkJ5SW5kZXgodW5zaWduZWQgaW5kZXgpCi0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBG
UFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAgICAgIHNldEJpdChHUFJJbmZvOjpudW1i
ZXJPZlJlZ2lzdGVycyArIGluZGV4KTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhcihGUFJS
ZWcgcmVnKQotICAgIHsKLSAgICAgICAgY2xlYXJCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnMgKyBGUFJJbmZvOjp0b0luZGV4KHJlZykpOwotICAgIH0KLSAgICAKLSAgICBib29sIGdldChG
UFJSZWcgcmVnKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGdldEJpdChHUFJJbmZvOjpu
dW1iZXJPZlJlZ2lzdGVycyArIEZQUkluZm86OnRvSW5kZXgocmVnKSk7Ci0gICAgfQotICAgIAot
ICAgIGJvb2wgZ2V0RlBSQnlJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChpbmRleCA8IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzKTsKLSAgICAgICAg
cmV0dXJuIGdldEJpdChHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIGluZGV4KTsKLSAgICB9
Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFua0luZm8+Ci0gICAgdm9pZCBzZXRCeUlu
ZGV4KHVuc2lnbmVkIGluZGV4KQotICAgIHsKLSAgICAgICAgc2V0KEJhbmtJbmZvOjp0b1JlZ2lz
dGVyKGluZGV4KSk7Ci0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhbmtJbmZv
PgotICAgIGJvb2wgZ2V0QnlJbmRleCh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBnZXQoQmFua0luZm86OnRvUmVnaXN0ZXIoaW5kZXgpKTsKLSAgICB9Ci0gICAgCi0gICAg
dW5zaWduZWQgbnVtYmVyT2ZTZXRHUFJzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVk
IHJlc3VsdCA9IDA7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IEdQUkluZm86Om51bWJlck9m
UmVnaXN0ZXJzOyBpLS07KSB7Ci0gICAgICAgICAgICBpZiAoIWdldEJpdChpKSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHVuc2lnbmVkIG51bWJlck9mU2V0
RlBScygpIGNvbnN0Ci0gICAgewotICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwotICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgaS0tOykgewot
ICAgICAgICAgICAgaWYgKCFnZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBpKSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHVuc2lnbmVkIG51
bWJlck9mU2V0UmVnaXN0ZXJzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIHJlc3Vs
dCA9IDA7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnM7
IGktLTspIHsKLSAgICAgICAgICAgIGlmICghZ2V0Qml0KGkpKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgcmVzdWx0Kys7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0gICAgCi1wcml2YXRlOgotICAgIHZvaWQgc2V0Qml0KHVuc2lnbmVk
IGkpCi0gICAgewotICAgICAgICBBU1NFUlQoaSA8IHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMpOwot
ICAgICAgICBtX3NldFtpID4+IDNdIHw9ICgxIDw8IChpICYgNykpOwotICAgIH0KLSAgICAKLSAg
ICB2b2lkIGNsZWFyQml0KHVuc2lnbmVkIGkpCi0gICAgewotICAgICAgICBBU1NFUlQoaSA8IHRv
dGFsTnVtYmVyT2ZSZWdpc3RlcnMpOwotICAgICAgICBtX3NldFtpID4+IDNdICY9IH4oMSA8PCAo
aSAmIDcpKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBnZXRCaXQodW5zaWduZWQgaSkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpIDwgdG90YWxOdW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAg
ICAgIHJldHVybiAhIShtX3NldFtpID4+IDNdICYgKDEgPDwgKGkgJiA3KSkpOwotICAgIH0KLSAg
ICAKLSAgICBSZWdpc3RlclNldFBPRCBtX3NldDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwot
Ci0jZWxzZSAvLyBFTkFCTEUoSklUKSAtPiBzbyBpZiBKSVQgaXMgZGlzYWJsZWQKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLS8vIERlZmluZSBSZWdpc3RlclNldFBPRCB0byBzb21ldGhpbmcgdGhhdCBp
cyBhIFBPRCwgYnV0IGlzIG90aGVyd2lzZSB1c2VsZXNzLAotLy8gdG8gbWFrZSBpdCBlYXNpZXIg
dG8gcmVmZXIgdG8gdGhpcyB0eXBlIGluIGNvZGUgdGhhdCBtYXkgYmUgY29tcGlsZWQgd2hlbgot
Ly8gdGhlIERGRyBpcyBkaXNhYmxlZC4KLQotc3RydWN0IFJlZ2lzdGVyU2V0UE9EIHsgfTsKLQot
fSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBFTkFCTEUoSklUKQotCi0jZW5kaWYgLy8g
UmVnaXN0ZXJTZXRfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NjcmF0Y2hS
ZWdpc3RlckFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiTWFj
cm9Bc3NlbWJsZXIuaCIKLSNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2luY2x1ZGUgIlRlbXBS
ZWdpc3RlclNldC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMzksNyArMzksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogY2xhc3MgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIHsKIHB1YmxpYzoK
LSAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IoY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMpCisgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKGNvbnN0IFRlbXBSZWdpc3RlclNl
dCYgdXNlZFJlZ2lzdGVycykKICAgICAgICAgOiBtX3VzZWRSZWdpc3RlcnModXNlZFJlZ2lzdGVy
cykKICAgICAgICAgLCBtX2RpZFJldXNlUmVnaXN0ZXJzKGZhbHNlKQogICAgIHsKQEAgLTE4NCw5
ICsxODQsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBSZWdpc3RlclNl
dCBtX3VzZWRSZWdpc3RlcnM7Ci0gICAgUmVnaXN0ZXJTZXQgbV9sb2NrZWRSZWdpc3RlcnM7Ci0g
ICAgUmVnaXN0ZXJTZXQgbV9zY3JhdGNoUmVnaXN0ZXJzOworICAgIFRlbXBSZWdpc3RlclNldCBt
X3VzZWRSZWdpc3RlcnM7CisgICAgVGVtcFJlZ2lzdGVyU2V0IG1fbG9ja2VkUmVnaXN0ZXJzOwor
ICAgIFRlbXBSZWdpc3RlclNldCBtX3NjcmF0Y2hSZWdpc3RlcnM7CiAgICAgYm9vbCBtX2RpZFJl
dXNlUmVnaXN0ZXJzOwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1w
UmVnaXN0ZXJTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Rl
bXBSZWdpc3RlclNldC5oCShyZXZpc2lvbiAxNTc2ODkpCShmcm9tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaDoxNTc2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1RlbXBSZWdpc3RlclNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjI0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVn
aXN0ZXJTZXRfaAorI2RlZmluZSBSZWdpc3RlclNldF9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZv
cm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJGUFJJbmZvLmgiCisjaW5jbHVk
ZSAiR1BSSW5mby5oIgorI2luY2x1ZGUgPHd0Zi9CaXRtYXAuaD4KKworbmFtZXNwYWNlIEpTQyB7
CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzID0KKyAgICBH
UFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOwor
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQgPQorICAg
ICh0b3RhbE51bWJlck9mUmVnaXN0ZXJzICsgNykgPj4gMzsKKwordHlwZWRlZiB1aW50OF90IFJl
Z2lzdGVyU2V0UE9EW251bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0XTsKKworY2xhc3MgUmVnaXN0
ZXJTZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVyU2V0KCkKKyAgICB7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQorICAgICAgICAg
ICAgbV9zZXRbaV0gPSAwOworICAgIH0KKyAgICAKKyAgICBSZWdpc3RlclNldChjb25zdCBSZWdp
c3RlclNldFBPRCYgb3RoZXIpCisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1i
ZXJPZkJ5dGVzSW5SZWdpc3RlclNldDsgaS0tOykKKyAgICAgICAgICAgIG1fc2V0W2ldID0gb3Ro
ZXJbaV07CisgICAgfQorICAgIAorICAgIGNvbnN0IFJlZ2lzdGVyU2V0UE9EJiBhc1BPRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2V0OyB9CisgICAgCisgICAgdm9pZCBjb3B5SW5mbyhSZWdpc3RlclNl
dFBPRCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1i
ZXJPZkJ5dGVzSW5SZWdpc3RlclNldDsgaS0tOykKKyAgICAgICAgICAgIG90aGVyW2ldID0gbV9z
ZXRbaV07CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0KEdQUlJlZyByZWcpCisgICAgeworICAg
ICAgICBzZXRCaXQoR1BSSW5mbzo6dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgdm9p
ZCBzZXQoSlNWYWx1ZVJlZ3MgcmVncykKKyAgICB7CisgICAgICAgIGlmIChyZWdzLnRhZ0dQUigp
ICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICBzZXQocmVncy50YWdHUFIoKSk7CisgICAg
ICAgIHNldChyZWdzLnBheWxvYWRHUFIoKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0R1BS
QnlJbmRleCh1bnNpZ25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRleCA8IEdQ
UkluZm86Om51bWJlck9mUmVnaXN0ZXJzKTsKKyAgICAgICAgc2V0Qml0KGluZGV4KTsKKyAgICB9
CisgICAgCisgICAgdm9pZCBjbGVhcihHUFJSZWcgcmVnKQorICAgIHsKKyAgICAgICAgY2xlYXJC
aXQoR1BSSW5mbzo6dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBnZXQoR1BS
UmVnIHJlZykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCaXQoR1BSSW5mbzo6dG9J
bmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBnZXRHUFJCeUluZGV4KHVuc2lnbmVk
IGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgR1BSSW5mbzo6bnVt
YmVyT2ZSZWdpc3RlcnMpOworICAgICAgICByZXR1cm4gZ2V0Qml0KGluZGV4KTsKKyAgICB9Cisg
ICAgCisgICAgLy8gUmV0dXJuIHRoZSBpbmRleCd0aCBmcmVlIEdQUi4KKyAgICBHUFJSZWcgZ2V0
RnJlZUdQUih1bnNpZ25lZCBpbmRleCA9IDApIGNvbnN0CisgICAgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgaS0tOykgeworICAgICAgICAg
ICAgaWYgKCFnZXRHUFJCeUluZGV4KGkpICYmICFpbmRleC0tKQorICAgICAgICAgICAgICAgIHJl
dHVybiBHUFJJbmZvOjp0b1JlZ2lzdGVyKGkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBJ
bnZhbGlkR1BSUmVnOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldChGUFJSZWcgcmVnKQorICAg
IHsKKyAgICAgICAgc2V0Qml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6
dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzZXRGUFJCeUluZGV4KHVuc2ln
bmVkIGluZGV4KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgRlBSSW5mbzo6bnVtYmVy
T2ZSZWdpc3RlcnMpOworICAgICAgICBzZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMg
KyBpbmRleCk7CisgICAgfQorICAgIAorICAgIHZvaWQgY2xlYXIoRlBSUmVnIHJlZykKKyAgICB7
CisgICAgICAgIGNsZWFyQml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6
dG9JbmRleChyZWcpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBnZXQoRlBSUmVnIHJlZykgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnMgKyBGUFJJbmZvOjp0b0luZGV4KHJlZykpOworICAgIH0KKyAgICAKKyAgICBib29sIGdldEZQ
UkJ5SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaW5k
ZXggPCBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgICAgIHJldHVybiBnZXRCaXQo
R1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBpbmRleCk7CisgICAgfQorICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEJhbmtJbmZvPgorICAgIHZvaWQgc2V0QnlJbmRleCh1bnNpZ25lZCBp
bmRleCkKKyAgICB7CisgICAgICAgIHNldChCYW5rSW5mbzo6dG9SZWdpc3RlcihpbmRleCkpOwor
ICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYW5rSW5mbz4KKyAgICBib29sIGdl
dEJ5SW5kZXgodW5zaWduZWQgaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KEJhbmtJ
bmZvOjp0b1JlZ2lzdGVyKGluZGV4KSk7CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIG51bWJl
ck9mU2V0R1BScygpIGNvbnN0CisgICAgeworICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgaS0t
OykgeworICAgICAgICAgICAgaWYgKCFnZXRCaXQoaSkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICByZXN1bHQrKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBudW1iZXJPZlNldEZQUnMoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gRlBSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnM7IGktLTspIHsKKyAgICAgICAgICAgIGlm
ICghZ2V0Qml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgaSkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICByZXN1bHQrKzsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBudW1iZXJPZlNldFJlZ2lz
dGVycygpIGNvbnN0CisgICAgeworICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSB0b3RhbE51bWJlck9mUmVnaXN0ZXJzOyBpLS07KSB7CisgICAg
ICAgICAgICBpZiAoIWdldEJpdChpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIHJlc3VsdCsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fQorICAgIAorcHJpdmF0ZToKKyAgICB2b2lkIHNldEJpdCh1bnNpZ25lZCBpKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKGkgPCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzKTsKKyAgICAgICAgbV9zZXRb
aSA+PiAzXSB8PSAoMSA8PCAoaSAmIDcpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjbGVhckJp
dCh1bnNpZ25lZCBpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGkgPCB0b3RhbE51bWJlck9mUmVn
aXN0ZXJzKTsKKyAgICAgICAgbV9zZXRbaSA+PiAzXSAmPSB+KDEgPDwgKGkgJiA3KSk7CisgICAg
fQorICAgIAorICAgIGJvb2wgZ2V0Qml0KHVuc2lnbmVkIGkpIGNvbnN0CisgICAgeworICAgICAg
ICBBU1NFUlQoaSA8IHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMpOworICAgICAgICByZXR1cm4gISEo
bV9zZXRbaSA+PiAzXSAmICgxIDw8IChpICYgNykpKTsKKyAgICB9CisgICAgCisgICAgUmVnaXN0
ZXJTZXRQT0QgbV9zZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vsc2UgLy8gRU5B
QkxFKEpJVCkgLT4gc28gaWYgSklUIGlzIGRpc2FibGVkCisKK25hbWVzcGFjZSBKU0MgeworCisv
LyBEZWZpbmUgUmVnaXN0ZXJTZXRQT0QgdG8gc29tZXRoaW5nIHRoYXQgaXMgYSBQT0QsIGJ1dCBp
cyBvdGhlcndpc2UgdXNlbGVzcywKKy8vIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlZmVyIHRvIHRo
aXMgdHlwZSBpbiBjb2RlIHRoYXQgbWF5IGJlIGNvbXBpbGVkIHdoZW4KKy8vIHRoZSBERkcgaXMg
ZGlzYWJsZWQuCisKK3N0cnVjdCBSZWdpc3RlclNldFBPRCB7IH07CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIFJlZ2lzdGVyU2V0X2gK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNldC5oCSh3
b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNl
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAq
LwogCi0jaWZuZGVmIFJlZ2lzdGVyU2V0X2gKLSNkZWZpbmUgUmVnaXN0ZXJTZXRfaAorI2lmbmRl
ZiBUZW1wUmVnaXN0ZXJTZXRfaAorI2RlZmluZSBUZW1wUmVnaXN0ZXJTZXRfaAogCiAjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CiAKQEAgLTM5LDMwICszOSwzMCBAQCBuYW1lc3BhY2UgSlNDIHsK
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzID0KICAgICBHUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOwogCi1z
dGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQgPQorc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldCA9CiAgICAgKHRv
dGFsTnVtYmVyT2ZSZWdpc3RlcnMgKyA3KSA+PiAzOwogCi10eXBlZGVmIHVpbnQ4X3QgUmVnaXN0
ZXJTZXRQT0RbbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXRdOwordHlwZWRlZiB1aW50OF90IFRl
bXBSZWdpc3RlclNldFBPRFtudW1iZXJPZkJ5dGVzSW5UZW1wUmVnaXN0ZXJTZXRdOwogCi1jbGFz
cyBSZWdpc3RlclNldCB7CitjbGFzcyBUZW1wUmVnaXN0ZXJTZXQgewogcHVibGljOgotICAgIFJl
Z2lzdGVyU2V0KCkKKyAgICBUZW1wUmVnaXN0ZXJTZXQoKQogICAgIHsKLSAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldDsgaS0tOykKICAg
ICAgICAgICAgIG1fc2V0W2ldID0gMDsKICAgICB9CiAgICAgCi0gICAgUmVnaXN0ZXJTZXQoY29u
c3QgUmVnaXN0ZXJTZXRQT0QmIG90aGVyKQorICAgIFRlbXBSZWdpc3RlclNldChjb25zdCBUZW1w
UmVnaXN0ZXJTZXRQT0QmIG90aGVyKQogICAgIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
bnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldDsgaS0tOykKICAgICAgICAgICAgIG1f
c2V0W2ldID0gb3RoZXJbaV07CiAgICAgfQogICAgIAotICAgIGNvbnN0IFJlZ2lzdGVyU2V0UE9E
JiBhc1BPRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0OyB9CisgICAgY29uc3QgVGVtcFJlZ2lzdGVy
U2V0UE9EJiBhc1BPRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0OyB9CiAgICAgCi0gICAgdm9pZCBj
b3B5SW5mbyhSZWdpc3RlclNldFBPRCYgb3RoZXIpIGNvbnN0CisgICAgdm9pZCBjb3B5SW5mbyhU
ZW1wUmVnaXN0ZXJTZXRQT0QmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldDsgaS0tOykKICAgICAg
ICAgICAgIG90aGVyW2ldID0gbV9zZXRbaV07CiAgICAgfQogICAgIApAQCAtMjAxLDcgKzIwMSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiAhIShtX3NldFtpID4+IDNdICYgKDEgPDwgKGkg
JiA3KSkpOwogICAgIH0KICAgICAKLSAgICBSZWdpc3RlclNldFBPRCBtX3NldDsKKyAgICBUZW1w
UmVnaXN0ZXJTZXRQT0QgbV9zZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTIxMCwx
NSArMjEwLDE1IEBAIHByaXZhdGU6CiAKIG5hbWVzcGFjZSBKU0MgewogCi0vLyBEZWZpbmUgUmVn
aXN0ZXJTZXRQT0QgdG8gc29tZXRoaW5nIHRoYXQgaXMgYSBQT0QsIGJ1dCBpcyBvdGhlcndpc2Ug
dXNlbGVzcywKKy8vIERlZmluZSBUZW1wUmVnaXN0ZXJTZXRQT0QgdG8gc29tZXRoaW5nIHRoYXQg
aXMgYSBQT0QsIGJ1dCBpcyBvdGhlcndpc2UgdXNlbGVzcywKIC8vIHRvIG1ha2UgaXQgZWFzaWVy
IHRvIHJlZmVyIHRvIHRoaXMgdHlwZSBpbiBjb2RlIHRoYXQgbWF5IGJlIGNvbXBpbGVkIHdoZW4K
IC8vIHRoZSBERkcgaXMgZGlzYWJsZWQuCiAKLXN0cnVjdCBSZWdpc3RlclNldFBPRCB7IH07Citz
dHJ1Y3QgVGVtcFJlZ2lzdGVyU2V0UE9EIHsgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNl
bmRpZiAvLyBFTkFCTEUoSklUKQogCi0jZW5kaWYgLy8gUmVnaXN0ZXJTZXRfaAorI2VuZGlmIC8v
IFRlbXBSZWdpc3RlclNldF9oCiAK
</data>
<flag name="review"
          id="237258"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214687</attachid>
            <date>2013-10-19 20:56:52 -0700</date>
            <delta_ts>2013-10-19 21:11:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>30421</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NjkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEzLTEwLTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIFJlZ2lzdGVyU2V0IHRvIFRlbXBSZWdpc3RlclNldAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5o
OgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjp1c2VkUmVn
aXN0ZXJzKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6SklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0QnlJZEdlbmVyYXRvcik6CisgICAgICAg
ICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVEdldEJ5
SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKToKKyAgICAgICAg
KiBqaXQvUmVnaXN0ZXJTZXQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0M6OlNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6
U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKToKKyAgICAgICAgKiBqaXQvVGVtcFJlZ2lzdGVyU2V0
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaC4K
KyAgICAgICAgKEpTQzo6VGVtcFJlZ2lzdGVyU2V0OjpUZW1wUmVnaXN0ZXJTZXQpOgorICAgICAg
ICAoSlNDOjpUZW1wUmVnaXN0ZXJTZXQ6OmFzUE9EKToKKyAgICAgICAgKEpTQzo6VGVtcFJlZ2lz
dGVyU2V0Ojpjb3B5SW5mbyk6CisKIDIwMTMtMTAtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXN0cnVjdHVyZSBMaW5rQnVmZmVyIHRvIGFsbG93IGZvciBh
bHRlcm5hdGUgYWxsb2NhdGlvbiBzdHJhdGVnaWVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTc5MCwxMCArNzkwLDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxqaXRcSklUV3JpdGVCYXJyaWVyLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aml0XEpTSW50ZXJmYWNlSklULmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0
XEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCIgLz4NCi0gICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxqaXRcUmVnaXN0ZXJTZXQuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxq
aXRcUmVwYXRjaC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGppdFxTY3JhdGNo
UmVnaXN0ZXJBbGxvY2F0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRc
U3BlY2lhbGl6ZWRUaHVua0pJVC5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGpp
dFxUZW1wUmVnaXN0ZXJTZXQuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRc
VGh1bmtHZW5lcmF0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcVGh1
bmtHZW5lcmF0b3JzLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0XFVudXNl
ZFBvaW50ZXIuaCIgLz4NCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQAog
CQkwRjI0RTU0QzE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9ucy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0RTU0NTE3RUUyNzQ5MDBB
QkIyMTcgLyogSklUT3BlcmF0aW9ucy5jcHAgKi87IH07CiAJCTBGMjRFNTREMTdFRTI3NDkwMEFC
QjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjI0RTU0NjE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9ucy5o
ICovOyB9OwogCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcgLyogSklUT3BlcmF0aW9uV3JhcHBl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRF
NTQ3MTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oICovOyB9OwotCQkw
RjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTQ4MTdFRTI3NDkwMEFCQjIxNyAv
KiBSZWdpc3RlclNldC5oICovOyB9OworCQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVt
cFJlZ2lzdGVyU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjI0RTU0ODE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0LmggKi87IH07
CiAJCTBGMjRFNTUwMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTQ5MTdFRTI3NDkwMEFCQjIx
NyAvKiBSZXBhdGNoLmNwcCAqLzsgfTsKIAkJMEYyNEU1NTExN0VFMjc0OTAwQUJCMjE3IC8qIFJl
cGF0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MjRFNTRBMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmggKi87IH07CiAJCTBGMjRFNTUyMTdF
RTI3NDkwMEFCQjIxNyAvKiBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjRFNTRCMTdFRTI3NDkwMEFCQjIx
NyAvKiBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCAqLzsgfTsKQEAgLTEzNzMsNyArMTM3Myw3
IEBACiAJCTBGMjRFNTQ1MTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVE9wZXJhdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjI0RTU0NjE3RUUyNzQ5MDBBQkIyMTcgLyogSklU
T3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRPcGVyYXRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjRFNTQ3MTdFRTI3NDkwMEFC
QjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKSVRPcGVyYXRpb25XcmFwcGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjI0RTU0ODE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wUmVnaXN0ZXJTZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1NDkxN0VFMjc0OTAwQUJCMjE3IC8qIFJl
cGF0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwYXRjaC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjRFNTRBMTdFRTI3NDkwMEFCQjIx
NyAvKiBSZXBhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGF0Y2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNEU1NEIxN0VFMjc0OTAwQUJCMjE3
IC8qIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI5MDgsMTIgKzI5MDgsMTIgQEAKIAkJCQlBNzZDNTE3NDExODI3NDhEMDA3MTVC
MDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKIAkJCQkwRjc2NkQzMjE1QUUyNTM1MDA4RjM2M0Ug
LyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8sCiAJCQkJMEY3NjZEMzMxNUFFMjUz
NTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCAqLywKLQkJCQkwRjI0RTU0
ODE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQkwRjI0RTU0OTE3RUUy
NzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgKi8sCiAJCQkJMEYyNEU1NEExN0VFMjc0OTAwQUJC
MjE3IC8qIFJlcGF0Y2guaCAqLywKIAkJCQkwRjI0RTU0QjE3RUUyNzQ5MDBBQkIyMTcgLyogU2Ny
YXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmggKi8sCiAJCQkJQTcwOUYyRUYxN0EwQUMwNDAwNTEyRTk4
IC8qIFNsb3dQYXRoQ2FsbC5oICovLAogCQkJCUE3Mzg2NTUxMTE4Njk3QjQwMDU0MDI3OSAvKiBT
cGVjaWFsaXplZFRodW5rSklULmggKi8sCisJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8q
IFRlbXBSZWdpc3RlclNldC5oICovLAogCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBU
aHVua0dlbmVyYXRvci5oICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuY3BwICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVu
a0dlbmVyYXRvcnMuaCAqLywKQEAgLTQ2NzMsNyArNDY3Myw3IEBACiAJCQkJMEZGNDI3NDQxNThF
QkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9pbnB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3
NDgxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9zeW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MjRFNTUxMTdFRTI3NDkwMEFCQjIxNyAvKiBSZXBhdGNoLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMjRFNTRGMTdFRTI3NDkwMEFCQjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRjQyNzQ5MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfdHlwZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3RTVBQjM5MTc5OUU0QjIwMEQyODMzRCAvKiBVRGlzODZEaXNh
c3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjQxMTdBREI1RjMwMDVBQjE3NCAv
KiBVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAkocmV2aXNpb24gMTU3Njg5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDkgQEAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBvbHltb3JwaGljQWNjZXNzU3Ry
dWN0dXJlTGlzdC5oIgotI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgorI2lu
Y2x1ZGUgIlRlbXBSZWdpc3RlclNldC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC0yMzAsNyArMjMwLDcgQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZv
IHsKICAgICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwogI2VuZGlmCiAgICAgICAgIGludDhfdCB2
YWx1ZUdQUjsKLSAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVyczsKKyAgICAgICAgVGVt
cFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnM7CiAgICAgICAgIGludDMyX3QgZGVsdGFDYWxsVG9E
b25lOwogICAgICAgICBpbnQzMl90IGRlbHRhQ2FsbFRvU3RvcmFnZUxvYWQ7CiAgICAgICAgIGlu
dDMyX3QgZGVsdGFDYWxsVG9TdHJ1Y3RDaGVjazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyAr
NDMsNyBAQAogI2luY2x1ZGUgIkpJVElubGluZUNhY2hlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
TGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCi0jaW5jbHVkZSAiUmVn
aXN0ZXJTZXQuaCIKKyNpbmNsdWRlICJUZW1wUmVnaXN0ZXJTZXQuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjc4LDkgKzI3OCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgdXNlKG5vZGVVc2Uubm9kZSgpKTsKICAgICB9CiAgICAgCi0gICAgUmVnaXN0
ZXJTZXQgdXNlZFJlZ2lzdGVycygpCisgICAgVGVtcFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMo
KQogICAgIHsKLSAgICAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OworICAgICAgICBUZW1wUmVnaXN0
ZXJTZXQgcmVzdWx0OwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBHUFJJbmZvOjpudW1iZXJP
ZlJlZ2lzdGVyczsgaS0tOykgewogICAgICAgICAgICAgR1BSUmVnIGdwciA9IEdQUkluZm86OnRv
UmVnaXN0ZXIoaSk7CiAgICAgICAgICAgICBpZiAobV9ncHJzLmlzSW5Vc2UoZ3ByKSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuY3BwCShyZXZpc2lvbiAxNTc2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIs
NyBAQCBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5lQ2FjaGVHCiB9CiAKIEpJVEJ5
SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMs
CisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3Qg
VGVtcFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpT
VmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgOiBKSVRJbmxpbmVD
YWNoZUdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4pCiAgICAgLCBtX2Jhc2UoYmFzZSkK
QEAgLTUyLDcgKzUyLDcgQEAgSklUQnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcigKICAg
ICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJzID0gdXNlZFJlZ2lzdGVyczsKICAgICAK
ICAgICAvLyBUaGlzIGlzIGEgY29udmVuaWVuY2UgLSBpbiBjYXNlcyB3aGVyZSB0aGUgb25seSBy
ZWdpc3RlcnMgeW91J3JlIHVzaW5nIGFyZSBiYXNlL3ZhbHVlLAotICAgIC8vIGl0IGFsbG93cyB5
b3UgdG8gcGFzcyBSZWdpc3RlclNldCgpIGFzIHRoZSB1c2VkUmVnaXN0ZXJzIGFyZ3VtZW50Lgor
ICAgIC8vIGl0IGFsbG93cyB5b3UgdG8gcGFzcyBUZW1wUmVnaXN0ZXJTZXQoKSBhcyB0aGUgdXNl
ZFJlZ2lzdGVycyBhcmd1bWVudC4KICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJz
LnNldChiYXNlKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJzLnNldCh2YWx1
ZSk7CiAgICAgCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYQogfQogCiBKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJh
dG9yKAotICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNv
bnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAorICAgIENvZGVCbG9jayogY29kZUJsb2Nr
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFRlbXBSZWdpc3RlclNldCYgdXNlZFJlZ2lz
dGVycywKICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNj
cmF0Y2gsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwKICAgICBFQ01BTW9kZSBlY21hTW9kZSwgUHV0
S2luZCBwdXRLaW5kKQogICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmln
aW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3IuaAkocmV2aXNpb24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVDYWNoZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHBy
b3RlY3RlZDoKICAgICBKSVRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRCeUlkR2VuZXJh
dG9yKAotICAgICAgICBDb2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYs
IEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLAorICAgICAgICBDb2RlQmxvY2sq
LCBDb2RlT3JpZ2luLCBjb25zdCBUZW1wUmVnaXN0ZXJTZXQmLCBKU1ZhbHVlUmVncyBiYXNlLCBK
U1ZhbHVlUmVncyB2YWx1ZSwKICAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKTsKICAgICAK
IHB1YmxpYzoKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIEpJVEdldEJ5SWRHZW5lcmF0
b3IoKSB7IH0KIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayog
Y29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2Vk
UmVnaXN0ZXJzLAorICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luLCBjb25zdCBUZW1wUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpT
VmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQp
CiAgICAgICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRS
ZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAgIHsKQEAgLTEwNiw3
ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvcigpIHsgfQogCiAgICAg
SklUUHV0QnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzIGJhc2UsCisgICAgICAg
IENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFRlbXBSZWdpc3RlclNldCYgdXNlZFJlZ2lz
dGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwKICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJl
ZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsIEVDTUFNb2RlLCBQdXRLaW5kKTsKICAg
ICAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcAkocmV2aXNpb24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgzLDcgKzQ4Myw3IEBA
IHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbioKICAgICB9CiAKICAgICBK
SVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4o
bV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0KCksCisgICAgICAgIG1fY29kZUJsb2NrLCBD
b2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBUZW1wUmVnaXN0ZXJTZXQoKSwKICAgICAgICAg
SlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1Qw
KSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dD
YXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC01MjksNyArNTI5LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9uKgogICAgIGVtaXRXcml0ZUJhcnJpZXIocmVnVDAs
IHJlZ1QxLCByZWdUMiwgcmVnVDMsIFNob3VsZEZpbHRlckltbWVkaWF0ZXMsIFdyaXRlQmFycmll
ckZvclByb3BlcnR5QWNjZXNzKTsKICAgICAKICAgICBKSVRQdXRCeUlkR2VuZXJhdG9yIGdlbigK
LSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lz
dGVyU2V0KCksCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZz
ZXQpLCBUZW1wUmVnaXN0ZXJTZXQoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5
KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwgcmVnVDEsIHRydWUsCiAgICAgICAg
IG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwog
ICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAJKHJldmlzaW9uIDE1NzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjMsNyArNTIzLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKgogICAgIH0KIAogICAgIEpJ
VEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbiht
X2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQoKSwKKyAgICAgICAgbV9jb2RlQmxvY2ssIENv
ZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFRlbXBSZWdpc3RlclNldCgpLAogICAgICAgICBK
U1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAo
KSk7CkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKEluc3Ry
dWN0aW9uKgogICAgIGVtaXRXcml0ZUJhcnJpZXIocmVnVDAsIHJlZ1QxLCByZWdUMiwgcmVnVDMs
IFNob3VsZEZpbHRlckltbWVkaWF0ZXMsIFdyaXRlQmFycmllckZvclByb3BlcnR5QWNjZXNzKTsK
IAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29k
ZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQoKSwgSlNWYWx1ZVJlZ3MocmVn
VDApLAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwg
VGVtcFJlZ2lzdGVyU2V0KCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwKICAgICAgICAgSlNWYWx1ZVJl
Z3MocmVnVDEpLCByZWdUMiwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/
IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRo
aXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAkocmV2aXNp
b24gMTU3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDIyNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUmVnaXN0ZXJTZXRfaAotI2RlZmluZSBSZWdp
c3RlclNldF9oCi0KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KLQotI2lmIEVOQUJMRShKSVQp
Ci0KLSNpbmNsdWRlICJGUFJJbmZvLmgiCi0jaW5jbHVkZSAiR1BSSW5mby5oIgotI2luY2x1ZGUg
PHd0Zi9CaXRtYXAuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25l
ZCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzID0KLSAgICBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVy
cyArIEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQg
bnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQgPQotICAgICh0b3RhbE51bWJlck9mUmVnaXN0ZXJz
ICsgNykgPj4gMzsKLQotdHlwZWRlZiB1aW50OF90IFJlZ2lzdGVyU2V0UE9EW251bWJlck9mQnl0
ZXNJblJlZ2lzdGVyU2V0XTsKLQotY2xhc3MgUmVnaXN0ZXJTZXQgewotcHVibGljOgotICAgIFJl
Z2lzdGVyU2V0KCkKLSAgICB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0
ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQotICAgICAgICAgICAgbV9zZXRbaV0gPSAwOwotICAgIH0K
LSAgICAKLSAgICBSZWdpc3RlclNldChjb25zdCBSZWdpc3RlclNldFBPRCYgb3RoZXIpCi0gICAg
ewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkJ5dGVzSW5SZWdpc3RlclNldDsg
aS0tOykKLSAgICAgICAgICAgIG1fc2V0W2ldID0gb3RoZXJbaV07Ci0gICAgfQotICAgIAotICAg
IGNvbnN0IFJlZ2lzdGVyU2V0UE9EJiBhc1BPRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0OyB9Ci0g
ICAgCi0gICAgdm9pZCBjb3B5SW5mbyhSZWdpc3RlclNldFBPRCYgb3RoZXIpIGNvbnN0Ci0gICAg
ewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkJ5dGVzSW5SZWdpc3RlclNldDsg
aS0tOykKLSAgICAgICAgICAgIG90aGVyW2ldID0gbV9zZXRbaV07Ci0gICAgfQotICAgIAotICAg
IHZvaWQgc2V0KEdQUlJlZyByZWcpCi0gICAgewotICAgICAgICBzZXRCaXQoR1BSSW5mbzo6dG9J
bmRleChyZWcpKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzZXQoSlNWYWx1ZVJlZ3MgcmVncykK
LSAgICB7Ci0gICAgICAgIGlmIChyZWdzLnRhZ0dQUigpICE9IEludmFsaWRHUFJSZWcpCi0gICAg
ICAgICAgICBzZXQocmVncy50YWdHUFIoKSk7Ci0gICAgICAgIHNldChyZWdzLnBheWxvYWRHUFIo
KSk7Ci0gICAgfQotICAgIAotICAgIHZvaWQgc2V0R1BSQnlJbmRleCh1bnNpZ25lZCBpbmRleCkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChpbmRleCA8IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJz
KTsKLSAgICAgICAgc2V0Qml0KGluZGV4KTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhcihH
UFJSZWcgcmVnKQotICAgIHsKLSAgICAgICAgY2xlYXJCaXQoR1BSSW5mbzo6dG9JbmRleChyZWcp
KTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBnZXQoR1BSUmVnIHJlZykgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBnZXRCaXQoR1BSSW5mbzo6dG9JbmRleChyZWcpKTsKLSAgICB9Ci0gICAg
Ci0gICAgYm9vbCBnZXRHUFJCeUluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKGluZGV4IDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMpOwotICAgICAg
ICByZXR1cm4gZ2V0Qml0KGluZGV4KTsKLSAgICB9Ci0gICAgCi0gICAgLy8gUmV0dXJuIHRoZSBp
bmRleCd0aCBmcmVlIEdQUi4KLSAgICBHUFJSZWcgZ2V0RnJlZUdQUih1bnNpZ25lZCBpbmRleCA9
IDApIGNvbnN0Ci0gICAgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBHUFJJbmZvOjpudW1i
ZXJPZlJlZ2lzdGVyczsgaS0tOykgewotICAgICAgICAgICAgaWYgKCFnZXRHUFJCeUluZGV4KGkp
ICYmICFpbmRleC0tKQotICAgICAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjp0b1JlZ2lzdGVy
KGkpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBJbnZhbGlkR1BSUmVnOwotICAgIH0KLSAg
ICAKLSAgICB2b2lkIHNldChGUFJSZWcgcmVnKQotICAgIHsKLSAgICAgICAgc2V0Qml0KEdQUklu
Zm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6dG9JbmRleChyZWcpKTsKLSAgICB9Ci0g
ICAgCi0gICAgdm9pZCBzZXRGUFJCeUluZGV4KHVuc2lnbmVkIGluZGV4KQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKGluZGV4IDwgRlBSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMpOwotICAgICAgICBz
ZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBpbmRleCk7Ci0gICAgfQotICAgIAot
ICAgIHZvaWQgY2xlYXIoRlBSUmVnIHJlZykKLSAgICB7Ci0gICAgICAgIGNsZWFyQml0KEdQUklu
Zm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6dG9JbmRleChyZWcpKTsKLSAgICB9Ci0g
ICAgCi0gICAgYm9vbCBnZXQoRlBSUmVnIHJlZykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBnZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjp0b0luZGV4KHJl
ZykpOwotICAgIH0KLSAgICAKLSAgICBib29sIGdldEZQUkJ5SW5kZXgodW5zaWduZWQgaW5kZXgp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBGUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVycyk7Ci0gICAgICAgIHJldHVybiBnZXRCaXQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnMgKyBpbmRleCk7Ci0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhbmtJbmZv
PgotICAgIHZvaWQgc2V0QnlJbmRleCh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAgIHNl
dChCYW5rSW5mbzo6dG9SZWdpc3RlcihpbmRleCkpOwotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBCYW5rSW5mbz4KLSAgICBib29sIGdldEJ5SW5kZXgodW5zaWduZWQgaW5kZXgp
Ci0gICAgewotICAgICAgICByZXR1cm4gZ2V0KEJhbmtJbmZvOjp0b1JlZ2lzdGVyKGluZGV4KSk7
Ci0gICAgfQotICAgIAotICAgIHVuc2lnbmVkIG51bWJlck9mU2V0R1BScygpIGNvbnN0Ci0gICAg
ewotICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgaS0tOykgewotICAgICAgICAgICAgaWYgKCFn
ZXRCaXQoaSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICByZXN1bHQr
KzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB1
bnNpZ25lZCBudW1iZXJPZlNldEZQUnMoKSBjb25zdAotICAgIHsKLSAgICAgICAgdW5zaWduZWQg
cmVzdWx0ID0gMDsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gRlBSSW5mbzo6bnVtYmVyT2ZS
ZWdpc3RlcnM7IGktLTspIHsKLSAgICAgICAgICAgIGlmICghZ2V0Qml0KEdQUkluZm86Om51bWJl
ck9mUmVnaXN0ZXJzICsgaSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICByZXN1bHQrKzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAg
ICAKLSAgICB1bnNpZ25lZCBudW1iZXJPZlNldFJlZ2lzdGVycygpIGNvbnN0Ci0gICAgewotICAg
ICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSB0b3Rh
bE51bWJlck9mUmVnaXN0ZXJzOyBpLS07KSB7Ci0gICAgICAgICAgICBpZiAoIWdldEJpdChpKSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotcHJpdmF0ZToKLSAgICB2
b2lkIHNldEJpdCh1bnNpZ25lZCBpKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGkgPCB0b3RhbE51
bWJlck9mUmVnaXN0ZXJzKTsKLSAgICAgICAgbV9zZXRbaSA+PiAzXSB8PSAoMSA8PCAoaSAmIDcp
KTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhckJpdCh1bnNpZ25lZCBpKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKGkgPCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzKTsKLSAgICAgICAgbV9zZXRb
aSA+PiAzXSAmPSB+KDEgPDwgKGkgJiA3KSk7Ci0gICAgfQotICAgIAotICAgIGJvb2wgZ2V0Qml0
KHVuc2lnbmVkIGkpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaSA8IHRvdGFsTnVtYmVy
T2ZSZWdpc3RlcnMpOwotICAgICAgICByZXR1cm4gISEobV9zZXRbaSA+PiAzXSAmICgxIDw8IChp
ICYgNykpKTsKLSAgICB9Ci0gICAgCi0gICAgUmVnaXN0ZXJTZXRQT0QgbV9zZXQ7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBKU0MKLQotI2Vsc2UgLy8gRU5BQkxFKEpJVCkgLT4gc28gaWYgSklUIGlz
IGRpc2FibGVkCi0KLW5hbWVzcGFjZSBKU0MgewotCi0vLyBEZWZpbmUgUmVnaXN0ZXJTZXRQT0Qg
dG8gc29tZXRoaW5nIHRoYXQgaXMgYSBQT0QsIGJ1dCBpcyBvdGhlcndpc2UgdXNlbGVzcywKLS8v
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlZmVyIHRvIHRoaXMgdHlwZSBpbiBjb2RlIHRoYXQgbWF5
IGJlIGNvbXBpbGVkIHdoZW4KLS8vIHRoZSBERkcgaXMgZGlzYWJsZWQuCi0KLXN0cnVjdCBSZWdp
c3RlclNldFBPRCB7IH07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxF
KEpJVCkKLQotI2VuZGlmIC8vIFJlZ2lzdGVyU2V0X2gKLQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9TY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1NjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oCShyZXZpc2lv
biAxNTc2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NjcmF0Y2hSZWdpc3RlckFs
bG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaWYgRU5BQkxFKEpJ
VCkKIAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCi0jaW5jbHVkZSAiUmVnaXN0ZXJTZXQu
aCIKKyNpbmNsdWRlICJUZW1wUmVnaXN0ZXJTZXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAg
LTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIFNjcmF0Y2hSZWdpc3RlckFs
bG9jYXRvciB7CiBwdWJsaWM6Ci0gICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yKGNvbnN0IFJl
Z2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzKQorICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcihj
b25zdCBUZW1wUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMpCiAgICAgICAgIDogbV91c2VkUmVn
aXN0ZXJzKHVzZWRSZWdpc3RlcnMpCiAgICAgICAgICwgbV9kaWRSZXVzZVJlZ2lzdGVycyhmYWxz
ZSkKICAgICB7CkBAIC0xODQsOSArMTg0LDkgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZh
dGU6Ci0gICAgUmVnaXN0ZXJTZXQgbV91c2VkUmVnaXN0ZXJzOwotICAgIFJlZ2lzdGVyU2V0IG1f
bG9ja2VkUmVnaXN0ZXJzOwotICAgIFJlZ2lzdGVyU2V0IG1fc2NyYXRjaFJlZ2lzdGVyczsKKyAg
ICBUZW1wUmVnaXN0ZXJTZXQgbV91c2VkUmVnaXN0ZXJzOworICAgIFRlbXBSZWdpc3RlclNldCBt
X2xvY2tlZFJlZ2lzdGVyczsKKyAgICBUZW1wUmVnaXN0ZXJTZXQgbV9zY3JhdGNoUmVnaXN0ZXJz
OwogICAgIGJvb2wgbV9kaWRSZXVzZVJlZ2lzdGVyczsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGVtcFJlZ2lzdGVyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAkocmV2aXNpb24gMTU3Njg5KQkoZnJv
bSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0Lmg6MTU3Njg5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFJlZ2lzdGVyU2V0X2gKKyNkZWZpbmUgUmVnaXN0ZXJTZXRfaAorCisj
aW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAi
RlBSSW5mby5oIgorI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlIDx3dGYvQml0bWFwLmg+
CisKK25hbWVzcGFjZSBKU0MgeworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgdG90YWxOdW1iZXJP
ZlJlZ2lzdGVycyA9CisgICAgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpu
dW1iZXJPZlJlZ2lzdGVyczsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNJ
blJlZ2lzdGVyU2V0ID0KKyAgICAodG90YWxOdW1iZXJPZlJlZ2lzdGVycyArIDcpID4+IDM7CisK
K3R5cGVkZWYgdWludDhfdCBSZWdpc3RlclNldFBPRFtudW1iZXJPZkJ5dGVzSW5SZWdpc3RlclNl
dF07CisKK2NsYXNzIFJlZ2lzdGVyU2V0IHsKK3B1YmxpYzoKKyAgICBSZWdpc3RlclNldCgpCisg
ICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkJ5dGVzSW5SZWdpc3RlclNl
dDsgaS0tOykKKyAgICAgICAgICAgIG1fc2V0W2ldID0gMDsKKyAgICB9CisgICAgCisgICAgUmVn
aXN0ZXJTZXQoY29uc3QgUmVnaXN0ZXJTZXRQT0QmIG90aGVyKQorICAgIHsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAg
ICAgICBtX3NldFtpXSA9IG90aGVyW2ldOworICAgIH0KKyAgICAKKyAgICBjb25zdCBSZWdpc3Rl
clNldFBPRCYgYXNQT0QoKSBjb25zdCB7IHJldHVybiBtX3NldDsgfQorICAgIAorICAgIHZvaWQg
Y29weUluZm8oUmVnaXN0ZXJTZXRQT0QmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZCeXRlc0luUmVnaXN0ZXJTZXQ7IGktLTspCisgICAgICAg
ICAgICBvdGhlcltpXSA9IG1fc2V0W2ldOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldChHUFJS
ZWcgcmVnKQorICAgIHsKKyAgICAgICAgc2V0Qml0KEdQUkluZm86OnRvSW5kZXgocmVnKSk7Cisg
ICAgfQorICAgIAorICAgIHZvaWQgc2V0KEpTVmFsdWVSZWdzIHJlZ3MpCisgICAgeworICAgICAg
ICBpZiAocmVncy50YWdHUFIoKSAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgc2V0KHJl
Z3MudGFnR1BSKCkpOworICAgICAgICBzZXQocmVncy5wYXlsb2FkR1BSKCkpOworICAgIH0KKyAg
ICAKKyAgICB2b2lkIHNldEdQUkJ5SW5kZXgodW5zaWduZWQgaW5kZXgpCisgICAgeworICAgICAg
ICBBU1NFUlQoaW5kZXggPCBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgICAgIHNl
dEJpdChpbmRleCk7CisgICAgfQorICAgIAorICAgIHZvaWQgY2xlYXIoR1BSUmVnIHJlZykKKyAg
ICB7CisgICAgICAgIGNsZWFyQml0KEdQUkluZm86OnRvSW5kZXgocmVnKSk7CisgICAgfQorICAg
IAorICAgIGJvb2wgZ2V0KEdQUlJlZyByZWcpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
Z2V0Qml0KEdQUkluZm86OnRvSW5kZXgocmVnKSk7CisgICAgfQorICAgIAorICAgIGJvb2wgZ2V0
R1BSQnlJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChp
bmRleCA8IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGdldEJp
dChpbmRleCk7CisgICAgfQorICAgIAorICAgIC8vIFJldHVybiB0aGUgaW5kZXgndGggZnJlZSBH
UFIuCisgICAgR1BSUmVnIGdldEZyZWVHUFIodW5zaWduZWQgaW5kZXggPSAwKSBjb25zdAorICAg
IHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnM7
IGktLTspIHsKKyAgICAgICAgICAgIGlmICghZ2V0R1BSQnlJbmRleChpKSAmJiAhaW5kZXgtLSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6dG9SZWdpc3RlcihpKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKKyAgICB9CisgICAgCisgICAgdm9pZCBz
ZXQoRlBSUmVnIHJlZykKKyAgICB7CisgICAgICAgIHNldEJpdChHUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVycyArIEZQUkluZm86OnRvSW5kZXgocmVnKSk7CisgICAgfQorICAgIAorICAgIHZvaWQg
c2V0RlBSQnlJbmRleCh1bnNpZ25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRl
eCA8IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzKTsKKyAgICAgICAgc2V0Qml0KEdQUkluZm86
Om51bWJlck9mUmVnaXN0ZXJzICsgaW5kZXgpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNsZWFy
KEZQUlJlZyByZWcpCisgICAgeworICAgICAgICBjbGVhckJpdChHUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVycyArIEZQUkluZm86OnRvSW5kZXgocmVnKSk7CisgICAgfQorICAgIAorICAgIGJvb2wg
Z2V0KEZQUlJlZyByZWcpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZ2V0Qml0KEdQUklu
Zm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6dG9JbmRleChyZWcpKTsKKyAgICB9Cisg
ICAgCisgICAgYm9vbCBnZXRGUFJCeUluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsK
KyAgICAgICAgQVNTRVJUKGluZGV4IDwgRlBSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMpOworICAg
ICAgICByZXR1cm4gZ2V0Qml0KEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgaW5kZXgpOwor
ICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYW5rSW5mbz4KKyAgICB2b2lkIHNl
dEJ5SW5kZXgodW5zaWduZWQgaW5kZXgpCisgICAgeworICAgICAgICBzZXQoQmFua0luZm86OnRv
UmVnaXN0ZXIoaW5kZXgpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFu
a0luZm8+CisgICAgYm9vbCBnZXRCeUluZGV4KHVuc2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGdldChCYW5rSW5mbzo6dG9SZWdpc3RlcihpbmRleCkpOworICAgIH0KKyAgICAK
KyAgICB1bnNpZ25lZCBudW1iZXJPZlNldEdQUnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgdW5z
aWduZWQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gR1BSSW5mbzo6bnVt
YmVyT2ZSZWdpc3RlcnM7IGktLTspIHsKKyAgICAgICAgICAgIGlmICghZ2V0Qml0KGkpKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmVzdWx0Kys7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgdW5zaWduZWQgbnVtYmVy
T2ZTZXRGUFJzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyBpLS07
KSB7CisgICAgICAgICAgICBpZiAoIWdldEJpdChHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyAr
IGkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmVzdWx0Kys7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZTZXRSZWdpc3RlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgdW5zaWduZWQg
cmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gdG90YWxOdW1iZXJPZlJlZ2lz
dGVyczsgaS0tOykgeworICAgICAgICAgICAgaWYgKCFnZXRCaXQoaSkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICByZXN1bHQrKzsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRCaXQodW5z
aWduZWQgaSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpIDwgdG90YWxOdW1iZXJPZlJlZ2lzdGVy
cyk7CisgICAgICAgIG1fc2V0W2kgPj4gM10gfD0gKDEgPDwgKGkgJiA3KSk7CisgICAgfQorICAg
IAorICAgIHZvaWQgY2xlYXJCaXQodW5zaWduZWQgaSkKKyAgICB7CisgICAgICAgIEFTU0VSVChp
IDwgdG90YWxOdW1iZXJPZlJlZ2lzdGVycyk7CisgICAgICAgIG1fc2V0W2kgPj4gM10gJj0gfigx
IDw8IChpICYgNykpOworICAgIH0KKyAgICAKKyAgICBib29sIGdldEJpdCh1bnNpZ25lZCBpKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGkgPCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzKTsK
KyAgICAgICAgcmV0dXJuICEhKG1fc2V0W2kgPj4gM10gJiAoMSA8PCAoaSAmIDcpKSk7CisgICAg
fQorICAgIAorICAgIFJlZ2lzdGVyU2V0UE9EIG1fc2V0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKKyNlbHNlIC8vIEVOQUJMRShKSVQpIC0+IHNvIGlmIEpJVCBpcyBkaXNhYmxlZAorCitu
YW1lc3BhY2UgSlNDIHsKKworLy8gRGVmaW5lIFJlZ2lzdGVyU2V0UE9EIHRvIHNvbWV0aGluZyB0
aGF0IGlzIGEgUE9ELCBidXQgaXMgb3RoZXJ3aXNlIHVzZWxlc3MsCisvLyB0byBtYWtlIGl0IGVh
c2llciB0byByZWZlciB0byB0aGlzIHR5cGUgaW4gY29kZSB0aGF0IG1heSBiZSBjb21waWxlZCB3
aGVuCisvLyB0aGUgREZHIGlzIGRpc2FibGVkLgorCitzdHJ1Y3QgUmVnaXN0ZXJTZXRQT0QgeyB9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRp
ZiAvLyBSZWdpc3RlclNldF9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGVt
cFJlZ2lzdGVyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9U
ZW1wUmVnaXN0ZXJTZXQuaAkod29ya2luZyBjb3B5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOCBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBSZWdpc3RlclNldF9oCi0jZGVmaW5lIFJl
Z2lzdGVyU2V0X2gKKyNpZm5kZWYgVGVtcFJlZ2lzdGVyU2V0X2gKKyNkZWZpbmUgVGVtcFJlZ2lz
dGVyU2V0X2gKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCkBAIC0zOSwzMCArMzksMzAg
QEAgbmFtZXNwYWNlIEpTQyB7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdG90YWxOdW1iZXJPZlJl
Z2lzdGVycyA9CiAgICAgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1i
ZXJPZlJlZ2lzdGVyczsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNJblJl
Z2lzdGVyU2V0ID0KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzSW5UZW1wUmVn
aXN0ZXJTZXQgPQogICAgICh0b3RhbE51bWJlck9mUmVnaXN0ZXJzICsgNykgPj4gMzsKIAotdHlw
ZWRlZiB1aW50OF90IFJlZ2lzdGVyU2V0UE9EW251bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0XTsK
K3R5cGVkZWYgdWludDhfdCBUZW1wUmVnaXN0ZXJTZXRQT0RbbnVtYmVyT2ZCeXRlc0luVGVtcFJl
Z2lzdGVyU2V0XTsKIAotY2xhc3MgUmVnaXN0ZXJTZXQgeworY2xhc3MgVGVtcFJlZ2lzdGVyU2V0
IHsKIHB1YmxpYzoKLSAgICBSZWdpc3RlclNldCgpCisgICAgVGVtcFJlZ2lzdGVyU2V0KCkKICAg
ICB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0
OyBpLS07KQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkJ5dGVzSW5UZW1wUmVn
aXN0ZXJTZXQ7IGktLTspCiAgICAgICAgICAgICBtX3NldFtpXSA9IDA7CiAgICAgfQogICAgIAot
ICAgIFJlZ2lzdGVyU2V0KGNvbnN0IFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikKKyAgICBUZW1wUmVn
aXN0ZXJTZXQoY29uc3QgVGVtcFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikKICAgICB7Ci0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBpLS07KQorICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkJ5dGVzSW5UZW1wUmVnaXN0ZXJTZXQ7IGkt
LTspCiAgICAgICAgICAgICBtX3NldFtpXSA9IG90aGVyW2ldOwogICAgIH0KICAgICAKLSAgICBj
b25zdCBSZWdpc3RlclNldFBPRCYgYXNQT0QoKSBjb25zdCB7IHJldHVybiBtX3NldDsgfQorICAg
IGNvbnN0IFRlbXBSZWdpc3RlclNldFBPRCYgYXNQT0QoKSBjb25zdCB7IHJldHVybiBtX3NldDsg
fQogICAgIAotICAgIHZvaWQgY29weUluZm8oUmVnaXN0ZXJTZXRQT0QmIG90aGVyKSBjb25zdAor
ICAgIHZvaWQgY29weUluZm8oVGVtcFJlZ2lzdGVyU2V0UE9EJiBvdGhlcikgY29uc3QKICAgICB7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mQnl0ZXNJblJlZ2lzdGVyU2V0OyBp
LS07KQorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZkJ5dGVzSW5UZW1wUmVnaXN0
ZXJTZXQ7IGktLTspCiAgICAgICAgICAgICBvdGhlcltpXSA9IG1fc2V0W2ldOwogICAgIH0KICAg
ICAKQEAgLTIwMSw3ICsyMDEsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gISEobV9zZXRb
aSA+PiAzXSAmICgxIDw8IChpICYgNykpKTsKICAgICB9CiAgICAgCi0gICAgUmVnaXN0ZXJTZXRQ
T0QgbV9zZXQ7CisgICAgVGVtcFJlZ2lzdGVyU2V0UE9EIG1fc2V0OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCkBAIC0yMTAsMTUgKzIxMCwxNSBAQCBwcml2YXRlOgogCiBuYW1lc3BhY2UgSlND
IHsKIAotLy8gRGVmaW5lIFJlZ2lzdGVyU2V0UE9EIHRvIHNvbWV0aGluZyB0aGF0IGlzIGEgUE9E
LCBidXQgaXMgb3RoZXJ3aXNlIHVzZWxlc3MsCisvLyBEZWZpbmUgVGVtcFJlZ2lzdGVyU2V0UE9E
IHRvIHNvbWV0aGluZyB0aGF0IGlzIGEgUE9ELCBidXQgaXMgb3RoZXJ3aXNlIHVzZWxlc3MsCiAv
LyB0byBtYWtlIGl0IGVhc2llciB0byByZWZlciB0byB0aGlzIHR5cGUgaW4gY29kZSB0aGF0IG1h
eSBiZSBjb21waWxlZCB3aGVuCiAvLyB0aGUgREZHIGlzIGRpc2FibGVkLgogCi1zdHJ1Y3QgUmVn
aXN0ZXJTZXRQT0QgeyB9Oworc3RydWN0IFRlbXBSZWdpc3RlclNldFBPRCB7IH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAotI2VuZGlmIC8vIFJlZ2lz
dGVyU2V0X2gKKyNlbmRpZiAvLyBUZW1wUmVnaXN0ZXJTZXRfaAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>