<?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>202197</bug_id>
          
          <creation_ts>2019-09-25 04:43:44 -0700</creation_ts>
          <short_desc>Rename InlineBox::nextLeafChild to nextLeafOnLine</short_desc>
          <delta_ts>2019-09-25 07:24:19 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1574019</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-25 04:43:44 -0700</bug_when>
    <thetext>Plus other similar renames, for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574023</commentid>
    <comment_count>1</comment_count>
      <attachid>379538</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-25 05:29:46 -0700</bug_when>
    <thetext>Created attachment 379538
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574040</commentid>
    <comment_count>2</comment_count>
      <attachid>379538</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-25 07:23:10 -0700</bug_when>
    <thetext>Comment on attachment 379538
patch

Clearing flags on attachment: 379538

Committed r250341: &lt;https://trac.webkit.org/changeset/250341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574041</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-25 07:23:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574042</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-25 07:24:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55703492&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379538</attachid>
            <date>2019-09-25 05:29:46 -0700</date>
            <delta_ts>2019-09-25 07:23:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>nextleafchild-rename-2.patch</filename>
            <type>text/plain</type>
            <size>64346</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxOTFmZTZkNjQzZC4uYTdjYjU3MWE4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5OSBAQAorMjAxOS0wOS0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVuYW1lIElubGluZUJveDo6bmV4dExlYWZDaGlsZCB0byBuZXh0TGVhZk9u
TGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
MTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IG5hbWUgaXMgY29uZnVzaW5nIGFzIGl0IG5ldmVyIHJldHVybnMgYSBjaGlsZCBvZiB0aGUgaW5s
aW5lIGJveCBpdCBpcyBjYWxsZWQgb24uCisgICAgICAgIFJlbmFtZSBpdCBhbmQgb3RoZXIgc2lt
aWxhciBmdW5jdGlvbnMgdGhhdCB0cmF2ZXJzZSB3aXRoaW4gYSBsaW5lLgorCisgICAgICAgICog
ZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpnZXRJbmxpbmVC
b3hBbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJlZFBvc2l0aW9uOjpSZW5kZXJlZFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OnByZXZpb3VzTGVhZk9uTGlu
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJlZFBvc2l0aW9uOjpuZXh0TGVhZk9u
TGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJlZFBvc2l0aW9uOjppc0VxdWl2
YWxlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyZWRQb3NpdGlvbjo6YmlkaUxl
dmVsT25MZWZ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmJp
ZGlMZXZlbE9uUmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyZWRQb3NpdGlv
bjo6bGVmdEJvdW5kYXJ5T2ZCaWRpUnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9z
aXRpb246OnJpZ2h0Qm91bmRhcnlPZkJpZGlSdW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
ZWRQb3NpdGlvbjo6YXRMZWZ0Qm91bmRhcnlPZkJpZGlSdW4gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyZWRQb3NpdGlvbjo6YXRSaWdodEJvdW5kYXJ5T2ZCaWRpUnVuIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OnBvc2l0aW9uQXRMZWZ0Qm91bmRh
cnlPZkJpRGlSdW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyZWRQb3NpdGlvbjo6
cG9zaXRpb25BdFJpZ2h0Qm91bmRhcnlPZkJpRGlSdW4gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyZWRQb3NpdGlvbjo6cHJldkxlYWZDaGlsZCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJlZFBvc2l0aW9uOjpuZXh0TGVhZkNoaWxkIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24pOgorICAgICAgICAqIGVk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVQb3Np
dGlvbjo6bGVmdFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VmlzaWJsZVBvc2l0aW9uOjpyaWdodFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUgY29u
c3QpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnN0YXJ0UG9zaXRpb25Gb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmVuZFBvc2l0aW9u
Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c0xpbmVQb3NpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpuZXh0TGluZVBvc2l0aW9uKToKKyAgICAgICAgKiBsYXlvdXQvVmVyaWZp
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Y29sbGVjdEZsb3dCb3hTdWJ0
cmVlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleExpbmVMYXlvdXQ6OnVwZGF0ZVJ1YnlGb3JKdXN0aWZpZWRUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OmV4cGFuc2lvbkJlaGF2aW9yRm9ySW5saW5lVGV4dEJveCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6Y29tcHV0ZUlubGluZURpcmVj
dGlvblBvc2l0aW9uc0ZvclNlZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleExpbmVM
YXlvdXQ6OmxheW91dFJ1bnNBbmRGbG9hdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94OjpwcmV2aW91c09uTGluZUV4aXN0
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6Om5leHRMZWFmT25MaW5lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6cHJldmlvdXNMZWFmT25MaW5lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6bmV4dExlYWZPbkxpbmVJZ25vcmlu
Z0xpbmVCcmVhayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6OnByZXZpb3Vz
TGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUJveDo6bmV4dExlYWZDaGlsZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVCb3g6OnByZXZMZWFmQ2hpbGQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lQm94OjpuZXh0TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94OjpwcmV2TGVhZkNoaWxkSWdub3Jp
bmdMaW5lQnJlYWsgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVC
b3guaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6bmV4dE9uTGluZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6OnByZXZpb3VzT25MaW5lIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUJveDo6c2V0TmV4dE9uTGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVCb3g6OnNldFByZXZpb3VzT25MaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUJveDo6SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6cHJldk9uTGlu
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6OnNldFByZXZP
bkxpbmUpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmFkZFRvTGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVGbG93Qm94Ojpub2RlQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93
Qm94OjpmaXJzdExlYWZEZXNjZW5kYW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6Omxhc3RMZWFmRGVzY2VuZGFudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVGbG93Qm94OjpwbGFjZUVsbGlwc2lzQm94KToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6OmNvbGxlY3RMZWFmQm94ZXNJbkxvZ2ljYWxPcmRlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpjaGVja0NvbnNpc3RlbmN5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmZpcnN0TGVhZkNoaWxkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6Omxhc3RMZWFmQ2hpbGQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
VGV4dEJveDo6ZXhwYW5zaW9uQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpj
b250YWluc05vblplcm9CaWRpTGV2ZWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93Ojpwb3NpdGlvbkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJD
b3VudGVyOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRMaW5lQm94ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGluZURpcmVjdGlvblBv
aW50Rml0c0luQm94KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVZpc2libGVQb3NpdGlvbkFm
dGVyQWRqdXN0aW5nT2Zmc2V0Rm9yQmlEaSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
TGluZUJveGVzOjpwb3NpdGlvbkZvclBvaW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
Um9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94Ojppc0h5
cGhlbmF0ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6bGluZVNl
bGVjdGlvbkdhcCk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpzZWxlY3Rpb25T
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpmaXJzdFNlbGVjdGVkQm94
KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6Omxhc3RTZWxlY3RlZEJveCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpjbG9zZXN0TGVhZkNoaWxkRm9yTG9naWNh
bExlZnRQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVCb3g6OmNsb3Nlc3RMZWFmQ2hp
bGRGb3JQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSb290SW5saW5lQm94Ojpub2Rl
QXRQb2ludCk6CisKIDIwMTktMDktMjUgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtOaWNvc2lhXSBBZGQgaW1wbGVtZW50YXRpb25zIGZvciBmaXhlZCwg
cG9zaXRpb25lZCwgc3RpY2t5IFNjcm9sbGluZ1RyZWVOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggZDJjOWY3M2JjZTYuLjI0ZDM2YTkwNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHZvaWQgUG9zaXRpb246OmdldElubGluZUJveEFuZE9m
ZnNldChFQWZmaW5pdHkgYWZmaW5pdHksIFRleHREaXJlY3Rpb24gcHJpbWFyeURpCiAKICAgICAg
ICAgICAgIGlmICgoKGNhcmV0T2Zmc2V0ID09IGNhcmV0TWF4T2Zmc2V0KSBeIChhZmZpbml0eSA9
PSBET1dOU1RSRUFNKSkKICAgICAgICAgICAgICAgICB8fCAoKGNhcmV0T2Zmc2V0ID09IGNhcmV0
TWluT2Zmc2V0KSBeIChhZmZpbml0eSA9PSBVUFNUUkVBTSkpCi0gICAgICAgICAgICAgICAgfHwg
KGNhcmV0T2Zmc2V0ID09IGNhcmV0TWF4T2Zmc2V0ICYmIGJveC0+bmV4dExlYWZDaGlsZCgpICYm
IGJveC0+bmV4dExlYWZDaGlsZCgpLT5pc0xpbmVCcmVhaygpKSkKKyAgICAgICAgICAgICAgICB8
fCAoY2FyZXRPZmZzZXQgPT0gY2FyZXRNYXhPZmZzZXQgJiYgYm94LT5uZXh0TGVhZk9uTGluZSgp
ICYmIGJveC0+bmV4dExlYWZPbkxpbmUoKS0+aXNMaW5lQnJlYWsoKSkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IGJveDsKQEAgLTEyODUsNDEgKzEy
ODUsNDEgQEAgdm9pZCBQb3NpdGlvbjo6Z2V0SW5saW5lQm94QW5kT2Zmc2V0KEVBZmZpbml0eSBh
ZmZpbml0eSwgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGkKIAogICAgIGlmIChpbmxpbmVCb3gtPmRp
cmVjdGlvbigpID09IHByaW1hcnlEaXJlY3Rpb24pIHsKICAgICAgICAgaWYgKGNhcmV0T2Zmc2V0
ID09IGlubGluZUJveC0+Y2FyZXRSaWdodG1vc3RPZmZzZXQoKSkgewotICAgICAgICAgICAgSW5s
aW5lQm94KiBuZXh0Qm94ID0gaW5saW5lQm94LT5uZXh0TGVhZkNoaWxkKCk7CisgICAgICAgICAg
ICBJbmxpbmVCb3gqIG5leHRCb3ggPSBpbmxpbmVCb3gtPm5leHRMZWFmT25MaW5lKCk7CiAgICAg
ICAgICAgICBpZiAoIW5leHRCb3ggfHwgbmV4dEJveC0+YmlkaUxldmVsKCkgPj0gbGV2ZWwpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBsZXZlbCA9IG5leHRCb3gtPmJp
ZGlMZXZlbCgpOwogICAgICAgICAgICAgSW5saW5lQm94KiBwcmV2Qm94ID0gaW5saW5lQm94Owog
ICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIHByZXZCb3ggPSBwcmV2Qm94LT5wcmV2
TGVhZkNoaWxkKCk7CisgICAgICAgICAgICAgICAgcHJldkJveCA9IHByZXZCb3gtPnByZXZpb3Vz
TGVhZk9uTGluZSgpOwogICAgICAgICAgICAgfSB3aGlsZSAocHJldkJveCAmJiBwcmV2Qm94LT5i
aWRpTGV2ZWwoKSA+IGxldmVsKTsKIAogICAgICAgICAgICAgaWYgKHByZXZCb3ggJiYgcHJldkJv
eC0+YmlkaUxldmVsKCkgPT0gbGV2ZWwpICAgLy8gRm9yIGV4YW1wbGUsIGFiYyBGRUQgMTIzIF4g
Q0JBCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAvLyBGb3IgZXhhbXBs
ZSwgYWJjIDEyMyBeIENCQQotICAgICAgICAgICAgd2hpbGUgKElubGluZUJveCogbmV4dEJveCA9
IGlubGluZUJveC0+bmV4dExlYWZDaGlsZCgpKSB7CisgICAgICAgICAgICB3aGlsZSAoSW5saW5l
Qm94KiBuZXh0Qm94ID0gaW5saW5lQm94LT5uZXh0TGVhZk9uTGluZSgpKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKG5leHRCb3gtPmJpZGlMZXZlbCgpIDwgbGV2ZWwpCiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGlubGluZUJveCA9IG5leHRCb3g7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBjYXJldE9mZnNldCA9IGlubGluZUJveC0+Y2FyZXRSaWdodG1v
c3RPZmZzZXQoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIElubGluZUJveCogcHJl
dkJveCA9IGlubGluZUJveC0+cHJldkxlYWZDaGlsZCgpOworICAgICAgICAgICAgSW5saW5lQm94
KiBwcmV2Qm94ID0gaW5saW5lQm94LT5wcmV2aW91c0xlYWZPbkxpbmUoKTsKICAgICAgICAgICAg
IGlmICghcHJldkJveCB8fCBwcmV2Qm94LT5iaWRpTGV2ZWwoKSA+PSBsZXZlbCkKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIGxldmVsID0gcHJldkJveC0+YmlkaUxldmVs
KCk7CiAgICAgICAgICAgICBJbmxpbmVCb3gqIG5leHRCb3ggPSBpbmxpbmVCb3g7CiAgICAgICAg
ICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgbmV4dEJveCA9IG5leHRCb3gtPm5leHRMZWFmQ2hp
bGQoKTsKKyAgICAgICAgICAgICAgICBuZXh0Qm94ID0gbmV4dEJveC0+bmV4dExlYWZPbkxpbmUo
KTsKICAgICAgICAgICAgIH0gd2hpbGUgKG5leHRCb3ggJiYgbmV4dEJveC0+YmlkaUxldmVsKCkg
PiBsZXZlbCk7CiAKICAgICAgICAgICAgIGlmIChuZXh0Qm94ICYmIG5leHRCb3gtPmJpZGlMZXZl
bCgpID09IGxldmVsKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgd2hp
bGUgKElubGluZUJveCogcHJldkJveCA9IGlubGluZUJveC0+cHJldkxlYWZDaGlsZCgpKSB7Cisg
ICAgICAgICAgICB3aGlsZSAoSW5saW5lQm94KiBwcmV2Qm94ID0gaW5saW5lQm94LT5wcmV2aW91
c0xlYWZPbkxpbmUoKSkgewogICAgICAgICAgICAgICAgIGlmIChwcmV2Qm94LT5iaWRpTGV2ZWwo
KSA8IGxldmVsKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBp
bmxpbmVCb3ggPSBwcmV2Qm94OwpAQCAtMTMzMCwxMCArMTMzMCwxMCBAQCB2b2lkIFBvc2l0aW9u
OjpnZXRJbmxpbmVCb3hBbmRPZmZzZXQoRUFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9u
IHByaW1hcnlEaQogICAgIH0KIAogICAgIGlmIChjYXJldE9mZnNldCA9PSBpbmxpbmVCb3gtPmNh
cmV0TGVmdG1vc3RPZmZzZXQoKSkgewotICAgICAgICBJbmxpbmVCb3gqIHByZXZCb3ggPSBpbmxp
bmVCb3gtPnByZXZMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpOworICAgICAgICBJbmxpbmVC
b3gqIHByZXZCb3ggPSBpbmxpbmVCb3gtPnByZXZpb3VzTGVhZk9uTGluZUlnbm9yaW5nTGluZUJy
ZWFrKCk7CiAgICAgICAgIGlmICghcHJldkJveCB8fCBwcmV2Qm94LT5iaWRpTGV2ZWwoKSA8IGxl
dmVsKSB7CiAgICAgICAgICAgICAvLyBMZWZ0IGVkZ2Ugb2YgYSBzZWNvbmRhcnkgcnVuLiBTZXQg
dG8gdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIGVudGlyZSBydW4uCi0gICAgICAgICAgICB3aGlsZSAo
SW5saW5lQm94KiBuZXh0Qm94ID0gaW5saW5lQm94LT5uZXh0TGVhZkNoaWxkSWdub3JpbmdMaW5l
QnJlYWsoKSkgeworICAgICAgICAgICAgd2hpbGUgKElubGluZUJveCogbmV4dEJveCA9IGlubGlu
ZUJveC0+bmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKG5leHRCb3gtPmJpZGlMZXZlbCgpIDwgbGV2ZWwpCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGlubGluZUJveCA9IG5leHRCb3g7CkBAIC0xMzQxLDcg
KzEzNDEsNyBAQCB2b2lkIFBvc2l0aW9uOjpnZXRJbmxpbmVCb3hBbmRPZmZzZXQoRUFmZmluaXR5
IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uIHByaW1hcnlEaQogICAgICAgICAgICAgY2FyZXRPZmZz
ZXQgPSBpbmxpbmVCb3gtPmNhcmV0UmlnaHRtb3N0T2Zmc2V0KCk7CiAgICAgICAgIH0gZWxzZSBp
ZiAocHJldkJveC0+YmlkaUxldmVsKCkgPiBsZXZlbCkgewogICAgICAgICAgICAgLy8gUmlnaHQg
ZWRnZSBvZiBhICJ0ZXJ0aWFyeSIgcnVuLiBTZXQgdG8gdGhlIGxlZnQgZWRnZSBvZiB0aGF0IHJ1
bi4KLSAgICAgICAgICAgIHdoaWxlIChJbmxpbmVCb3gqIHRlcnRpYXJ5Qm94ID0gaW5saW5lQm94
LT5wcmV2TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsoKSkgeworICAgICAgICAgICAgd2hpbGUg
KElubGluZUJveCogdGVydGlhcnlCb3ggPSBpbmxpbmVCb3gtPnByZXZpb3VzTGVhZk9uTGluZUln
bm9yaW5nTGluZUJyZWFrKCkpIHsKICAgICAgICAgICAgICAgICBpZiAodGVydGlhcnlCb3gtPmJp
ZGlMZXZlbCgpIDw9IGxldmVsKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBpbmxpbmVCb3ggPSB0ZXJ0aWFyeUJveDsKQEAgLTEzNDksMTAgKzEzNDksMTAgQEAg
dm9pZCBQb3NpdGlvbjo6Z2V0SW5saW5lQm94QW5kT2Zmc2V0KEVBZmZpbml0eSBhZmZpbml0eSwg
VGV4dERpcmVjdGlvbiBwcmltYXJ5RGkKICAgICAgICAgICAgIGNhcmV0T2Zmc2V0ID0gaW5saW5l
Qm94LT5jYXJldExlZnRtb3N0T2Zmc2V0KCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAg
ICAgICBJbmxpbmVCb3gqIG5leHRCb3ggPSBpbmxpbmVCb3gtPm5leHRMZWFmQ2hpbGRJZ25vcmlu
Z0xpbmVCcmVhaygpOworICAgICAgICBJbmxpbmVCb3gqIG5leHRCb3ggPSBpbmxpbmVCb3gtPm5l
eHRMZWFmT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKTsKICAgICAgICAgaWYgKCFuZXh0Qm94IHx8
IG5leHRCb3gtPmJpZGlMZXZlbCgpIDwgbGV2ZWwpIHsKICAgICAgICAgICAgIC8vIFJpZ2h0IGVk
Z2Ugb2YgYSBzZWNvbmRhcnkgcnVuLiBTZXQgdG8gdGhlIGxlZnQgZWRnZSBvZiB0aGUgZW50aXJl
IHJ1bi4KLSAgICAgICAgICAgIHdoaWxlIChJbmxpbmVCb3gqIHByZXZCb3ggPSBpbmxpbmVCb3gt
PnByZXZMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpKSB7CisgICAgICAgICAgICB3aGlsZSAo
SW5saW5lQm94KiBwcmV2Qm94ID0gaW5saW5lQm94LT5wcmV2aW91c0xlYWZPbkxpbmVJZ25vcmlu
Z0xpbmVCcmVhaygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHByZXZCb3gtPmJpZGlMZXZlbCgp
IDwgbGV2ZWwpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGlu
bGluZUJveCA9IHByZXZCb3g7CkBAIC0xMzYwLDcgKzEzNjAsNyBAQCB2b2lkIFBvc2l0aW9uOjpn
ZXRJbmxpbmVCb3hBbmRPZmZzZXQoRUFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uIHBy
aW1hcnlEaQogICAgICAgICAgICAgY2FyZXRPZmZzZXQgPSBpbmxpbmVCb3gtPmNhcmV0TGVmdG1v
c3RPZmZzZXQoKTsKICAgICAgICAgfSBlbHNlIGlmIChuZXh0Qm94LT5iaWRpTGV2ZWwoKSA+IGxl
dmVsKSB7CiAgICAgICAgICAgICAvLyBMZWZ0IGVkZ2Ugb2YgYSAidGVydGlhcnkiIHJ1bi4gU2V0
IHRvIHRoZSByaWdodCBlZGdlIG9mIHRoYXQgcnVuLgotICAgICAgICAgICAgd2hpbGUgKElubGlu
ZUJveCogdGVydGlhcnlCb3ggPSBpbmxpbmVCb3gtPm5leHRMZWFmQ2hpbGRJZ25vcmluZ0xpbmVC
cmVhaygpKSB7CisgICAgICAgICAgICB3aGlsZSAoSW5saW5lQm94KiB0ZXJ0aWFyeUJveCA9IGlu
bGluZUJveC0+bmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHRlcnRpYXJ5Qm94LT5iaWRpTGV2ZWwoKSA8PSBsZXZlbCkKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgaW5saW5lQm94ID0gdGVydGlhcnlCb3g7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAppbmRleCA5OTM4
MjE4YjQ5YS4uNDNkNGE0ZjE1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJl
ZFBvc2l0aW9uLmNwcApAQCAtNjUsOCArNjUsOCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVj
dCogcmVuZGVyZXJGcm9tUG9zaXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogCiBSZW5k
ZXJlZFBvc2l0aW9uOjpSZW5kZXJlZFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCiAgICAgOiBtX29mZnNldCgwKQotICAgICwgbV9wcmV2TGVhZkNoaWxkKHVuY2FjaGVk
SW5saW5lQm94KCkpCi0gICAgLCBtX25leHRMZWFmQ2hpbGQodW5jYWNoZWRJbmxpbmVCb3goKSkK
KyAgICAsIG1fcHJldmlvdXNMZWFmT25MaW5lKHVuY2FjaGVkSW5saW5lQm94KCkpCisgICAgLCBt
X25leHRMZWFmT25MaW5lKHVuY2FjaGVkSW5saW5lQm94KCkpCiB7CiAgICAgaWYgKHBvc2l0aW9u
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CkBAIC03OSw4ICs3OSw4IEBAIFJlbmRlcmVkUG9z
aXRpb246OlJlbmRlcmVkUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
IAogUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYgcG9z
aXRpb24sIEVBZmZpbml0eSBhZmZpbml0eSkKICAgICA6IG1fb2Zmc2V0KDApCi0gICAgLCBtX3By
ZXZMZWFmQ2hpbGQodW5jYWNoZWRJbmxpbmVCb3goKSkKLSAgICAsIG1fbmV4dExlYWZDaGlsZCh1
bmNhY2hlZElubGluZUJveCgpKQorICAgICwgbV9wcmV2aW91c0xlYWZPbkxpbmUodW5jYWNoZWRJ
bmxpbmVCb3goKSkKKyAgICAsIG1fbmV4dExlYWZPbkxpbmUodW5jYWNoZWRJbmxpbmVCb3goKSkK
IHsKICAgICBpZiAocG9zaXRpb24uaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTkxLDM2
ICs5MSwzNiBAQCBSZW5kZXJlZFBvc2l0aW9uOjpSZW5kZXJlZFBvc2l0aW9uKGNvbnN0IFBvc2l0
aW9uJiBwb3NpdGlvbiwgRUFmZmluaXR5IGFmZmluaXR5KQogICAgICAgICBtX3JlbmRlcmVyID0g
cmVuZGVyZXJGcm9tUG9zaXRpb24ocG9zaXRpb24pOwogfQogCi1JbmxpbmVCb3gqIFJlbmRlcmVk
UG9zaXRpb246OnByZXZMZWFmQ2hpbGQoKSBjb25zdAorSW5saW5lQm94KiBSZW5kZXJlZFBvc2l0
aW9uOjpwcmV2aW91c0xlYWZPbkxpbmUoKSBjb25zdAogewotICAgIGlmIChtX3ByZXZMZWFmQ2hp
bGQgPT0gdW5jYWNoZWRJbmxpbmVCb3goKSkKLSAgICAgICAgbV9wcmV2TGVhZkNoaWxkID0gbV9p
bmxpbmVCb3gtPnByZXZMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpOwotICAgIHJldHVybiBt
X3ByZXZMZWFmQ2hpbGQ7CisgICAgaWYgKG1fcHJldmlvdXNMZWFmT25MaW5lID09IHVuY2FjaGVk
SW5saW5lQm94KCkpCisgICAgICAgIG1fcHJldmlvdXNMZWFmT25MaW5lID0gbV9pbmxpbmVCb3gt
PnByZXZpb3VzTGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CisgICAgcmV0dXJuIG1fcHJl
dmlvdXNMZWFmT25MaW5lOwogfQogCi1JbmxpbmVCb3gqIFJlbmRlcmVkUG9zaXRpb246Om5leHRM
ZWFmQ2hpbGQoKSBjb25zdAorSW5saW5lQm94KiBSZW5kZXJlZFBvc2l0aW9uOjpuZXh0TGVhZk9u
TGluZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbmV4dExlYWZDaGlsZCA9PSB1bmNhY2hlZElubGlu
ZUJveCgpKQotICAgICAgICBtX25leHRMZWFmQ2hpbGQgPSBtX2lubGluZUJveC0+bmV4dExlYWZD
aGlsZElnbm9yaW5nTGluZUJyZWFrKCk7Ci0gICAgcmV0dXJuIG1fbmV4dExlYWZDaGlsZDsKKyAg
ICBpZiAobV9uZXh0TGVhZk9uTGluZSA9PSB1bmNhY2hlZElubGluZUJveCgpKQorICAgICAgICBt
X25leHRMZWFmT25MaW5lID0gbV9pbmxpbmVCb3gtPm5leHRMZWFmT25MaW5lSWdub3JpbmdMaW5l
QnJlYWsoKTsKKyAgICByZXR1cm4gbV9uZXh0TGVhZk9uTGluZTsKIH0KIAogYm9vbCBSZW5kZXJl
ZFBvc2l0aW9uOjppc0VxdWl2YWxlbnQoY29uc3QgUmVuZGVyZWRQb3NpdGlvbiYgb3RoZXIpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIChtX3JlbmRlcmVyID09IG90aGVyLm1fcmVuZGVyZXIgJiYgbV9p
bmxpbmVCb3ggPT0gb3RoZXIubV9pbmxpbmVCb3ggJiYgbV9vZmZzZXQgPT0gb3RoZXIubV9vZmZz
ZXQpCi0gICAgICAgIHx8IChhdExlZnRtb3N0T2Zmc2V0SW5Cb3goKSAmJiBvdGhlci5hdFJpZ2h0
bW9zdE9mZnNldEluQm94KCkgJiYgcHJldkxlYWZDaGlsZCgpID09IG90aGVyLm1faW5saW5lQm94
KQotICAgICAgICB8fCAoYXRSaWdodG1vc3RPZmZzZXRJbkJveCgpICYmIG90aGVyLmF0TGVmdG1v
c3RPZmZzZXRJbkJveCgpICYmIG5leHRMZWFmQ2hpbGQoKSA9PSBvdGhlci5tX2lubGluZUJveCk7
CisgICAgICAgIHx8IChhdExlZnRtb3N0T2Zmc2V0SW5Cb3goKSAmJiBvdGhlci5hdFJpZ2h0bW9z
dE9mZnNldEluQm94KCkgJiYgcHJldmlvdXNMZWFmT25MaW5lKCkgPT0gb3RoZXIubV9pbmxpbmVC
b3gpCisgICAgICAgIHx8IChhdFJpZ2h0bW9zdE9mZnNldEluQm94KCkgJiYgb3RoZXIuYXRMZWZ0
bW9zdE9mZnNldEluQm94KCkgJiYgbmV4dExlYWZPbkxpbmUoKSA9PSBvdGhlci5tX2lubGluZUJv
eCk7CiB9CiAKIHVuc2lnbmVkIGNoYXIgUmVuZGVyZWRQb3NpdGlvbjo6YmlkaUxldmVsT25MZWZ0
KCkgY29uc3QKIHsKLSAgICBJbmxpbmVCb3gqIGJveCA9IGF0TGVmdG1vc3RPZmZzZXRJbkJveCgp
ID8gcHJldkxlYWZDaGlsZCgpIDogbV9pbmxpbmVCb3g7CisgICAgSW5saW5lQm94KiBib3ggPSBh
dExlZnRtb3N0T2Zmc2V0SW5Cb3goKSA/IHByZXZpb3VzTGVhZk9uTGluZSgpIDogbV9pbmxpbmVC
b3g7CiAgICAgcmV0dXJuIGJveCA/IGJveC0+YmlkaUxldmVsKCkgOiAwOwogfQogCiB1bnNpZ25l
ZCBjaGFyIFJlbmRlcmVkUG9zaXRpb246OmJpZGlMZXZlbE9uUmlnaHQoKSBjb25zdAogewotICAg
IElubGluZUJveCogYm94ID0gYXRSaWdodG1vc3RPZmZzZXRJbkJveCgpID8gbmV4dExlYWZDaGls
ZCgpIDogbV9pbmxpbmVCb3g7CisgICAgSW5saW5lQm94KiBib3ggPSBhdFJpZ2h0bW9zdE9mZnNl
dEluQm94KCkgPyBuZXh0TGVhZk9uTGluZSgpIDogbV9pbmxpbmVCb3g7CiAgICAgcmV0dXJuIGJv
eCA/IGJveC0+YmlkaUxldmVsKCkgOiAwOwogfQogCkBAIC0xMzEsNyArMTMxLDcgQEAgUmVuZGVy
ZWRQb3NpdGlvbiBSZW5kZXJlZFBvc2l0aW9uOjpsZWZ0Qm91bmRhcnlPZkJpZGlSdW4odW5zaWdu
ZWQgY2hhciBiaWRpTGV2ZWwKIAogICAgIElubGluZUJveCogYm94ID0gbV9pbmxpbmVCb3g7CiAg
ICAgZG8gewotICAgICAgICBJbmxpbmVCb3gqIHByZXYgPSBib3gtPnByZXZMZWFmQ2hpbGRJZ25v
cmluZ0xpbmVCcmVhaygpOworICAgICAgICBJbmxpbmVCb3gqIHByZXYgPSBib3gtPnByZXZpb3Vz
TGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAgICAgICAgIGlmICghcHJldiB8fCBwcmV2
LT5iaWRpTGV2ZWwoKSA8IGJpZGlMZXZlbE9mUnVuKQogICAgICAgICAgICAgcmV0dXJuIFJlbmRl
cmVkUG9zaXRpb24oJmJveC0+cmVuZGVyZXIoKSwgYm94LCBib3gtPmNhcmV0TGVmdG1vc3RPZmZz
ZXQoKSk7CiAgICAgICAgIGJveCA9IHByZXY7CkBAIC0xNDgsNyArMTQ4LDcgQEAgUmVuZGVyZWRQ
b3NpdGlvbiBSZW5kZXJlZFBvc2l0aW9uOjpyaWdodEJvdW5kYXJ5T2ZCaWRpUnVuKHVuc2lnbmVk
IGNoYXIgYmlkaUxldmUKIAogICAgIElubGluZUJveCogYm94ID0gbV9pbmxpbmVCb3g7CiAgICAg
ZG8gewotICAgICAgICBJbmxpbmVCb3gqIG5leHQgPSBib3gtPm5leHRMZWFmQ2hpbGRJZ25vcmlu
Z0xpbmVCcmVhaygpOworICAgICAgICBJbmxpbmVCb3gqIG5leHQgPSBib3gtPm5leHRMZWFmT25M
aW5lSWdub3JpbmdMaW5lQnJlYWsoKTsKICAgICAgICAgaWYgKCFuZXh0IHx8IG5leHQtPmJpZGlM
ZXZlbCgpIDwgYmlkaUxldmVsT2ZSdW4pCiAgICAgICAgICAgICByZXR1cm4gUmVuZGVyZWRQb3Np
dGlvbigmYm94LT5yZW5kZXJlcigpLCBib3gsIGJveC0+Y2FyZXRSaWdodG1vc3RPZmZzZXQoKSk7
CiAgICAgICAgIGJveCA9IG5leHQ7CkBAIC0xNjUsMTQgKzE2NSwxNCBAQCBib29sIFJlbmRlcmVk
UG9zaXRpb246OmF0TGVmdEJvdW5kYXJ5T2ZCaWRpUnVuKFNob3VsZE1hdGNoQmlkaUxldmVsIHNo
b3VsZE1hdGNoQgogCiAgICAgaWYgKGF0TGVmdG1vc3RPZmZzZXRJbkJveCgpKSB7CiAgICAgICAg
IGlmIChzaG91bGRNYXRjaEJpZGlMZXZlbCA9PSBJZ25vcmVCaWRpTGV2ZWwpCi0gICAgICAgICAg
ICByZXR1cm4gIXByZXZMZWFmQ2hpbGQoKSB8fCBwcmV2TGVhZkNoaWxkKCktPmJpZGlMZXZlbCgp
IDwgbV9pbmxpbmVCb3gtPmJpZGlMZXZlbCgpOwotICAgICAgICByZXR1cm4gbV9pbmxpbmVCb3gt
PmJpZGlMZXZlbCgpID49IGJpZGlMZXZlbE9mUnVuICYmICghcHJldkxlYWZDaGlsZCgpIHx8IHBy
ZXZMZWFmQ2hpbGQoKS0+YmlkaUxldmVsKCkgPCBiaWRpTGV2ZWxPZlJ1bik7CisgICAgICAgICAg
ICByZXR1cm4gIXByZXZpb3VzTGVhZk9uTGluZSgpIHx8IHByZXZpb3VzTGVhZk9uTGluZSgpLT5i
aWRpTGV2ZWwoKSA8IG1faW5saW5lQm94LT5iaWRpTGV2ZWwoKTsKKyAgICAgICAgcmV0dXJuIG1f
aW5saW5lQm94LT5iaWRpTGV2ZWwoKSA+PSBiaWRpTGV2ZWxPZlJ1biAmJiAoIXByZXZpb3VzTGVh
Zk9uTGluZSgpIHx8IHByZXZpb3VzTGVhZk9uTGluZSgpLT5iaWRpTGV2ZWwoKSA8IGJpZGlMZXZl
bE9mUnVuKTsKICAgICB9CiAKICAgICBpZiAoYXRSaWdodG1vc3RPZmZzZXRJbkJveCgpKSB7CiAg
ICAgICAgIGlmIChzaG91bGRNYXRjaEJpZGlMZXZlbCA9PSBJZ25vcmVCaWRpTGV2ZWwpCi0gICAg
ICAgICAgICByZXR1cm4gbmV4dExlYWZDaGlsZCgpICYmIG1faW5saW5lQm94LT5iaWRpTGV2ZWwo
KSA8IG5leHRMZWFmQ2hpbGQoKS0+YmlkaUxldmVsKCk7Ci0gICAgICAgIHJldHVybiBuZXh0TGVh
ZkNoaWxkKCkgJiYgbV9pbmxpbmVCb3gtPmJpZGlMZXZlbCgpIDwgYmlkaUxldmVsT2ZSdW4gJiYg
bmV4dExlYWZDaGlsZCgpLT5iaWRpTGV2ZWwoKSA+PSBiaWRpTGV2ZWxPZlJ1bjsKKyAgICAgICAg
ICAgIHJldHVybiBuZXh0TGVhZk9uTGluZSgpICYmIG1faW5saW5lQm94LT5iaWRpTGV2ZWwoKSA8
IG5leHRMZWFmT25MaW5lKCktPmJpZGlMZXZlbCgpOworICAgICAgICByZXR1cm4gbmV4dExlYWZP
bkxpbmUoKSAmJiBtX2lubGluZUJveC0+YmlkaUxldmVsKCkgPCBiaWRpTGV2ZWxPZlJ1biAmJiBu
ZXh0TGVhZk9uTGluZSgpLT5iaWRpTGV2ZWwoKSA+PSBiaWRpTGV2ZWxPZlJ1bjsKICAgICB9CiAK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xODUsMTQgKzE4NSwxNCBAQCBib29sIFJlbmRlcmVkUG9z
aXRpb246OmF0UmlnaHRCb3VuZGFyeU9mQmlkaVJ1bihTaG91bGRNYXRjaEJpZGlMZXZlbCBzaG91
bGRNYXRjaAogCiAgICAgaWYgKGF0UmlnaHRtb3N0T2Zmc2V0SW5Cb3goKSkgewogICAgICAgICBp
ZiAoc2hvdWxkTWF0Y2hCaWRpTGV2ZWwgPT0gSWdub3JlQmlkaUxldmVsKQotICAgICAgICAgICAg
cmV0dXJuICFuZXh0TGVhZkNoaWxkKCkgfHwgbmV4dExlYWZDaGlsZCgpLT5iaWRpTGV2ZWwoKSA8
IG1faW5saW5lQm94LT5iaWRpTGV2ZWwoKTsKLSAgICAgICAgcmV0dXJuIG1faW5saW5lQm94LT5i
aWRpTGV2ZWwoKSA+PSBiaWRpTGV2ZWxPZlJ1biAmJiAoIW5leHRMZWFmQ2hpbGQoKSB8fCBuZXh0
TGVhZkNoaWxkKCktPmJpZGlMZXZlbCgpIDwgYmlkaUxldmVsT2ZSdW4pOworICAgICAgICAgICAg
cmV0dXJuICFuZXh0TGVhZk9uTGluZSgpIHx8IG5leHRMZWFmT25MaW5lKCktPmJpZGlMZXZlbCgp
IDwgbV9pbmxpbmVCb3gtPmJpZGlMZXZlbCgpOworICAgICAgICByZXR1cm4gbV9pbmxpbmVCb3gt
PmJpZGlMZXZlbCgpID49IGJpZGlMZXZlbE9mUnVuICYmICghbmV4dExlYWZPbkxpbmUoKSB8fCBu
ZXh0TGVhZk9uTGluZSgpLT5iaWRpTGV2ZWwoKSA8IGJpZGlMZXZlbE9mUnVuKTsKICAgICB9CiAK
ICAgICBpZiAoYXRMZWZ0bW9zdE9mZnNldEluQm94KCkpIHsKICAgICAgICAgaWYgKHNob3VsZE1h
dGNoQmlkaUxldmVsID09IElnbm9yZUJpZGlMZXZlbCkKLSAgICAgICAgICAgIHJldHVybiBwcmV2
TGVhZkNoaWxkKCkgJiYgbV9pbmxpbmVCb3gtPmJpZGlMZXZlbCgpIDwgcHJldkxlYWZDaGlsZCgp
LT5iaWRpTGV2ZWwoKTsKLSAgICAgICAgcmV0dXJuIHByZXZMZWFmQ2hpbGQoKSAmJiBtX2lubGlu
ZUJveC0+YmlkaUxldmVsKCkgPCBiaWRpTGV2ZWxPZlJ1biAmJiBwcmV2TGVhZkNoaWxkKCktPmJp
ZGlMZXZlbCgpID49IGJpZGlMZXZlbE9mUnVuOworICAgICAgICAgICAgcmV0dXJuIHByZXZpb3Vz
TGVhZk9uTGluZSgpICYmIG1faW5saW5lQm94LT5iaWRpTGV2ZWwoKSA8IHByZXZpb3VzTGVhZk9u
TGluZSgpLT5iaWRpTGV2ZWwoKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzTGVhZk9uTGluZSgp
ICYmIG1faW5saW5lQm94LT5iaWRpTGV2ZWwoKSA8IGJpZGlMZXZlbE9mUnVuICYmIHByZXZpb3Vz
TGVhZk9uTGluZSgpLT5iaWRpTGV2ZWwoKSA+PSBiaWRpTGV2ZWxPZlJ1bjsKICAgICB9CiAKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yMDUsNyArMjA1LDcgQEAgUG9zaXRpb24gUmVuZGVyZWRQb3Np
dGlvbjo6cG9zaXRpb25BdExlZnRCb3VuZGFyeU9mQmlEaVJ1bigpIGNvbnN0CiAgICAgaWYgKGF0
TGVmdG1vc3RPZmZzZXRJbkJveCgpKQogICAgICAgICByZXR1cm4gY3JlYXRlTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKG1fcmVuZGVyZXItPm5vZGUoKSwgbV9vZmZzZXQpOwogCi0gICAgcmV0dXJuIGNy
ZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihuZXh0TGVhZkNoaWxkKCktPnJlbmRlcmVyKCkubm9k
ZSgpLCBuZXh0TGVhZkNoaWxkKCktPmNhcmV0TGVmdG1vc3RPZmZzZXQoKSk7CisgICAgcmV0dXJu
IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihuZXh0TGVhZk9uTGluZSgpLT5yZW5kZXJlcigp
Lm5vZGUoKSwgbmV4dExlYWZPbkxpbmUoKS0+Y2FyZXRMZWZ0bW9zdE9mZnNldCgpKTsKIH0KIAog
UG9zaXRpb24gUmVuZGVyZWRQb3NpdGlvbjo6cG9zaXRpb25BdFJpZ2h0Qm91bmRhcnlPZkJpRGlS
dW4oKSBjb25zdApAQCAtMjE1LDcgKzIxNSw3IEBAIFBvc2l0aW9uIFJlbmRlcmVkUG9zaXRpb246
OnBvc2l0aW9uQXRSaWdodEJvdW5kYXJ5T2ZCaURpUnVuKCkgY29uc3QKICAgICBpZiAoYXRSaWdo
dG1vc3RPZmZzZXRJbkJveCgpKQogICAgICAgICByZXR1cm4gY3JlYXRlTGVnYWN5RWRpdGluZ1Bv
c2l0aW9uKG1fcmVuZGVyZXItPm5vZGUoKSwgbV9vZmZzZXQpOwogCi0gICAgcmV0dXJuIGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihwcmV2TGVhZkNoaWxkKCktPnJlbmRlcmVyKCkubm9kZSgp
LCBwcmV2TGVhZkNoaWxkKCktPmNhcmV0UmlnaHRtb3N0T2Zmc2V0KCkpOworICAgIHJldHVybiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24ocHJldmlvdXNMZWFmT25MaW5lKCktPnJlbmRlcmVy
KCkubm9kZSgpLCBwcmV2aW91c0xlYWZPbkxpbmUoKS0+Y2FyZXRSaWdodG1vc3RPZmZzZXQoKSk7
CiB9CiAKIEludFJlY3QgUmVuZGVyZWRQb3NpdGlvbjo6YWJzb2x1dGVSZWN0KExheW91dFVuaXQq
IGV4dHJhV2lkdGhUb0VuZE9mTGluZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5k
ZXJlZFBvc2l0aW9uLmgKaW5kZXggNzI5YzFhYmRiZmQuLjE1NWE3ZGY1MjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaApAQCAtNzIsOCArNzIsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZW5kZXJlZFBvc2l0aW9uJikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBleHBsaWNpdCBSZW5kZXJlZFBvc2l0aW9uKFJlbmRlck9i
amVjdCosIElubGluZUJveCosIGludCBvZmZzZXQpOwogCi0gICAgSW5saW5lQm94KiBwcmV2TGVh
ZkNoaWxkKCkgY29uc3Q7Ci0gICAgSW5saW5lQm94KiBuZXh0TGVhZkNoaWxkKCkgY29uc3Q7Cisg
ICAgSW5saW5lQm94KiBwcmV2aW91c0xlYWZPbkxpbmUoKSBjb25zdDsKKyAgICBJbmxpbmVCb3gq
IG5leHRMZWFmT25MaW5lKCkgY29uc3Q7CiAgICAgYm9vbCBhdExlZnRtb3N0T2Zmc2V0SW5Cb3go
KSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveCAmJiBtX29mZnNldCA9PSBtX2lubGluZUJveC0+
Y2FyZXRMZWZ0bW9zdE9mZnNldCgpOyB9CiAgICAgYm9vbCBhdFJpZ2h0bW9zdE9mZnNldEluQm94
KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3ggJiYgbV9vZmZzZXQgPT0gbV9pbmxpbmVCb3gt
PmNhcmV0UmlnaHRtb3N0T2Zmc2V0KCk7IH0KICAgICBib29sIGF0TGVmdEJvdW5kYXJ5T2ZCaWRp
UnVuKFNob3VsZE1hdGNoQmlkaUxldmVsLCB1bnNpZ25lZCBjaGFyIGJpZGlMZXZlbE9mUnVuKSBj
b25zdDsKQEAgLTg2LDE0ICs4NiwxNCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBJbmxpbmVCb3gq
IHVuY2FjaGVkSW5saW5lQm94KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxJbmxpbmVCb3gq
PigxKTsgfQogICAgIC8vIE5lZWRzIHRvIGJlIGRpZmZlcmVudCBmb3JtIDAgc28gcGljayAxIGJl
Y2F1c2UgaXQncyBhbHNvIG9uIHRoZSBudWxsIHBhZ2UuCiAKLSAgICBtdXRhYmxlIElubGluZUJv
eCogbV9wcmV2TGVhZkNoaWxkOwotICAgIG11dGFibGUgSW5saW5lQm94KiBtX25leHRMZWFmQ2hp
bGQ7CisgICAgbXV0YWJsZSBJbmxpbmVCb3gqIG1fcHJldmlvdXNMZWFmT25MaW5lOworICAgIG11
dGFibGUgSW5saW5lQm94KiBtX25leHRMZWFmT25MaW5lOwogfTsKIAogaW5saW5lIFJlbmRlcmVk
UG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24oKQogICAgIDogbV9vZmZzZXQoMCkKLSAgICAsIG1f
cHJldkxlYWZDaGlsZCh1bmNhY2hlZElubGluZUJveCgpKQotICAgICwgbV9uZXh0TGVhZkNoaWxk
KHVuY2FjaGVkSW5saW5lQm94KCkpCisgICAgLCBtX3ByZXZpb3VzTGVhZk9uTGluZSh1bmNhY2hl
ZElubGluZUJveCgpKQorICAgICwgbV9uZXh0TGVhZk9uTGluZSh1bmNhY2hlZElubGluZUJveCgp
KQogewogfQogCkBAIC0xMDEsOCArMTAxLDggQEAgaW5saW5lIFJlbmRlcmVkUG9zaXRpb246OlJl
bmRlcmVkUG9zaXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgSW5saW5lQm94KiBib3gKICAg
ICA6IG1fcmVuZGVyZXIocmVuZGVyZXIpCiAgICAgLCBtX2lubGluZUJveChib3gpCiAgICAgLCBt
X29mZnNldChvZmZzZXQpCi0gICAgLCBtX3ByZXZMZWFmQ2hpbGQodW5jYWNoZWRJbmxpbmVCb3go
KSkKLSAgICAsIG1fbmV4dExlYWZDaGlsZCh1bmNhY2hlZElubGluZUJveCgpKQorICAgICwgbV9w
cmV2aW91c0xlYWZPbkxpbmUodW5jYWNoZWRJbmxpbmVCb3goKSkKKyAgICAsIG1fbmV4dExlYWZP
bkxpbmUodW5jYWNoZWRJbmxpbmVCb3goKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlUG9zaXRpb24uY3BwCmluZGV4IDBmNDc4NmE2M2QzLi4yZmNiNmU4YTA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcApAQCAtMTM2LDcgKzEz
Niw3IEBAIFBvc2l0aW9uIFZpc2libGVQb3NpdGlvbjo6bGVmdFZpc3VhbGx5RGlzdGluY3RDYW5k
aWRhdGUoKSBjb25zdAogICAgICAgICAgICAgICAgIHJldHVybiBib3gtPmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKSA/IHByZXZpb3VzVmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShtX2RlZXBQb3Np
dGlvbikgOiBuZXh0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShtX2RlZXBQb3NpdGlvbik7CiAK
ICAgICAgICAgICAgIGlmICghcmVuZGVyZXItPm5vZGUoKSkgewotICAgICAgICAgICAgICAgIGJv
eCA9IGJveC0+cHJldkxlYWZDaGlsZCgpOworICAgICAgICAgICAgICAgIGJveCA9IGJveC0+cHJl
dmlvdXNMZWFmT25MaW5lKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFib3gpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBwcmltYXJ5RGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUiA/
IHByZXZpb3VzVmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShtX2RlZXBQb3NpdGlvbikgOiBuZXh0
VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShtX2RlZXBQb3NpdGlvbik7CiAgICAgICAgICAgICAg
ICAgcmVuZGVyZXIgPSAmYm94LT5yZW5kZXJlcigpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIFBvc2l0
aW9uIFZpc2libGVQb3NpdGlvbjo6bGVmdFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUoKSBjb25z
dAogCiAgICAgICAgICAgICBpZiAoYm94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBvZmZz
ZXQgPCBjYXJldE1pbk9mZnNldCA6IG9mZnNldCA+IGNhcmV0TWF4T2Zmc2V0KSB7CiAgICAgICAg
ICAgICAgICAgLy8gT3ZlcnNob3QgdG8gdGhlIGxlZnQuCi0gICAgICAgICAgICAgICAgSW5saW5l
Qm94KiBwcmV2Qm94ID0gYm94LT5wcmV2TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsoKTsKKyAg
ICAgICAgICAgICAgICBJbmxpbmVCb3gqIHByZXZCb3ggPSBib3gtPnByZXZpb3VzTGVhZk9uTGlu
ZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFwcmV2Qm94KSB7CiAg
ICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uT25MZWZ0ID0gcHJpbWFyeURpcmVj
dGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpMVFIgPyBwcmV2aW91c1Zpc3VhbGx5RGlzdGluY3RDYW5k
aWRhdGUobV9kZWVwUG9zaXRpb24pIDogbmV4dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUobV9k
ZWVwUG9zaXRpb24pOwogICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25PbkxlZnQuaXNO
dWxsKCkpCkBAIC0xNzgsNyArMTc4LDcgQEAgUG9zaXRpb24gVmlzaWJsZVBvc2l0aW9uOjpsZWZ0
VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSgpIGNvbnN0CiAgICAgICAgICAgICBBU1NFUlQob2Zm
c2V0ID09IGJveC0+Y2FyZXRMZWZ0bW9zdE9mZnNldCgpKTsKIAogICAgICAgICAgICAgdW5zaWdu
ZWQgY2hhciBsZXZlbCA9IGJveC0+YmlkaUxldmVsKCk7Ci0gICAgICAgICAgICBJbmxpbmVCb3gq
IHByZXZCb3ggPSBib3gtPnByZXZMZWFmQ2hpbGQoKTsKKyAgICAgICAgICAgIElubGluZUJveCog
cHJldkJveCA9IGJveC0+cHJldmlvdXNMZWFmT25MaW5lKCk7CiAKICAgICAgICAgICAgIGlmIChi
b3gtPmRpcmVjdGlvbigpID09IHByaW1hcnlEaXJlY3Rpb24pIHsKICAgICAgICAgICAgICAgICBp
ZiAoIXByZXZCb3gpIHsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRp
b246OmxlZnRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKCkgY29uc3QKIAogICAgICAgICAgICAg
ICAgIElubGluZUJveCogbmV4dEJveCA9IGJveDsKICAgICAgICAgICAgICAgICBkbyB7Ci0gICAg
ICAgICAgICAgICAgICAgIG5leHRCb3ggPSBuZXh0Qm94LT5uZXh0TGVhZkNoaWxkKCk7CisgICAg
ICAgICAgICAgICAgICAgIG5leHRCb3ggPSBuZXh0Qm94LT5uZXh0TGVhZk9uTGluZSgpOwogICAg
ICAgICAgICAgICAgIH0gd2hpbGUgKG5leHRCb3ggJiYgbmV4dEJveC0+YmlkaUxldmVsKCkgPiBs
ZXZlbCk7CiAKICAgICAgICAgICAgICAgICBpZiAobmV4dEJveCAmJiBuZXh0Qm94LT5iaWRpTGV2
ZWwoKSA9PSBsZXZlbCkKQEAgLTIxMiw3ICsyMTIsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRp
b246OmxlZnRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKCkgY29uc3QKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgd2hpbGUgKHByZXZCb3ggJiYgIXByZXZCb3gtPnJlbmRlcmVyKCkubm9k
ZSgpKQotICAgICAgICAgICAgICAgIHByZXZCb3ggPSBwcmV2Qm94LT5wcmV2TGVhZkNoaWxkKCk7
CisgICAgICAgICAgICAgICAgcHJldkJveCA9IHByZXZCb3gtPnByZXZpb3VzTGVhZk9uTGluZSgp
OwogCiAgICAgICAgICAgICBpZiAocHJldkJveCkgewogICAgICAgICAgICAgICAgIGJveCA9IHBy
ZXZCb3g7CkBAIC0yMjAsNyArMjIwLDcgQEAgUG9zaXRpb24gVmlzaWJsZVBvc2l0aW9uOjpsZWZ0
VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSgpIGNvbnN0CiAgICAgICAgICAgICAgICAgb2Zmc2V0
ID0gYm94LT5jYXJldFJpZ2h0bW9zdE9mZnNldCgpOwogICAgICAgICAgICAgICAgIGlmIChib3gt
PmJpZGlMZXZlbCgpID4gbGV2ZWwpIHsKICAgICAgICAgICAgICAgICAgICAgZG8gewotICAgICAg
ICAgICAgICAgICAgICAgICAgcHJldkJveCA9IHByZXZCb3gtPnByZXZMZWFmQ2hpbGQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByZXZCb3ggPSBwcmV2Qm94LT5wcmV2aW91c0xlYWZPbkxp
bmUoKTsKICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAocHJldkJveCAmJiBwcmV2Qm94LT5i
aWRpTGV2ZWwoKSA+IGxldmVsKTsKIAogICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZCb3gg
fHwgcHJldkJveC0+YmlkaUxldmVsKCkgPCBsZXZlbCkKQEAgLTIyOSw3ICsyMjksNyBAQCBQb3Np
dGlvbiBWaXNpYmxlUG9zaXRpb246OmxlZnRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKCkgY29u
c3QKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVHJhaWxpbmcgZWRn
ZSBvZiBhIHNlY29uZGFyeSBydW4uIFNldCB0byB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSBlbnRp
cmUgcnVuLgogICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHdoaWxlIChJbmxpbmVCb3gqIG5leHRCb3ggPSBib3gtPm5leHRMZWFmQ2hpbGQoKSkgewor
ICAgICAgICAgICAgICAgICAgICB3aGlsZSAoSW5saW5lQm94KiBuZXh0Qm94ID0gYm94LT5uZXh0
TGVhZk9uTGluZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dEJveC0+Ymlk
aUxldmVsKCkgPCBsZXZlbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJveCA9IG5leHRCb3g7CkBAIC0yMzcsNyArMjM3LDcgQEAg
UG9zaXRpb24gVmlzaWJsZVBvc2l0aW9uOjpsZWZ0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSgp
IGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIGlmIChib3gtPmJpZGlMZXZlbCgpID09IGxldmVs
KQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGxl
dmVsID0gYm94LT5iaWRpTGV2ZWwoKTsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKElubGlu
ZUJveCogcHJldkJveCA9IGJveC0+cHJldkxlYWZDaGlsZCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIHdoaWxlIChJbmxpbmVCb3gqIHByZXZCb3ggPSBib3gtPnByZXZpb3VzTGVhZk9uTGluZSgp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldkJveC0+YmlkaUxldmVsKCkgPCBs
ZXZlbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJveCA9IHByZXZCb3g7CkBAIC0zMDYsNyArMzA2LDcgQEAgUG9zaXRpb24gVmlz
aWJsZVBvc2l0aW9uOjpyaWdodFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUoKSBjb25zdAogICAg
ICAgICAgICAgICAgIHJldHVybiBib3gtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IG5leHRW
aXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKG1fZGVlcFBvc2l0aW9uKSA6IHByZXZpb3VzVmlzdWFs
bHlEaXN0aW5jdENhbmRpZGF0ZShtX2RlZXBQb3NpdGlvbik7CiAKICAgICAgICAgICAgIGlmICgh
cmVuZGVyZXItPm5vZGUoKSkgewotICAgICAgICAgICAgICAgIGJveCA9IGJveC0+bmV4dExlYWZD
aGlsZCgpOworICAgICAgICAgICAgICAgIGJveCA9IGJveC0+bmV4dExlYWZPbkxpbmUoKTsKICAg
ICAgICAgICAgICAgICBpZiAoIWJveCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1h
cnlEaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6TFRSID8gbmV4dFZpc3VhbGx5RGlzdGluY3RD
YW5kaWRhdGUobV9kZWVwUG9zaXRpb24pIDogcHJldmlvdXNWaXN1YWxseURpc3RpbmN0Q2FuZGlk
YXRlKG1fZGVlcFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICByZW5kZXJlciA9ICZib3gtPnJl
bmRlcmVyKCk7CkBAIC0zMjQsNyArMzI0LDcgQEAgUG9zaXRpb24gVmlzaWJsZVBvc2l0aW9uOjpy
aWdodFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUoKSBjb25zdAogCiAgICAgICAgICAgICBpZiAo
Ym94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBvZmZzZXQgPiBjYXJldE1heE9mZnNldCA6
IG9mZnNldCA8IGNhcmV0TWluT2Zmc2V0KSB7CiAgICAgICAgICAgICAgICAgLy8gT3ZlcnNob3Qg
dG8gdGhlIHJpZ2h0LgotICAgICAgICAgICAgICAgIElubGluZUJveCogbmV4dEJveCA9IGJveC0+
bmV4dExlYWZDaGlsZElnbm9yaW5nTGluZUJyZWFrKCk7CisgICAgICAgICAgICAgICAgSW5saW5l
Qm94KiBuZXh0Qm94ID0gYm94LT5uZXh0TGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAg
ICAgICAgICAgICAgICAgaWYgKCFuZXh0Qm94KSB7CiAgICAgICAgICAgICAgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uT25SaWdodCA9IHByaW1hcnlEaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6
TFRSID8gbmV4dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUobV9kZWVwUG9zaXRpb24pIDogcHJl
dmlvdXNWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKG1fZGVlcFBvc2l0aW9uKTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHBvc2l0aW9uT25SaWdodC5pc051bGwoKSkKQEAgLTM0OCw3ICszNDgs
NyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OnJpZ2h0VmlzdWFsbHlEaXN0aW5jdENhbmRp
ZGF0ZSgpIGNvbnN0CiAgICAgICAgICAgICBBU1NFUlQob2Zmc2V0ID09IGJveC0+Y2FyZXRSaWdo
dG1vc3RPZmZzZXQoKSk7CiAKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbGV2ZWwgPSBib3gt
PmJpZGlMZXZlbCgpOwotICAgICAgICAgICAgSW5saW5lQm94KiBuZXh0Qm94ID0gYm94LT5uZXh0
TGVhZkNoaWxkKCk7CisgICAgICAgICAgICBJbmxpbmVCb3gqIG5leHRCb3ggPSBib3gtPm5leHRM
ZWFmT25MaW5lKCk7CiAKICAgICAgICAgICAgIGlmIChib3gtPmRpcmVjdGlvbigpID09IHByaW1h
cnlEaXJlY3Rpb24pIHsKICAgICAgICAgICAgICAgICBpZiAoIW5leHRCb3gpIHsKQEAgLTM2OCw3
ICszNjgsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OnJpZ2h0VmlzdWFsbHlEaXN0aW5j
dENhbmRpZGF0ZSgpIGNvbnN0CiAKICAgICAgICAgICAgICAgICBJbmxpbmVCb3gqIHByZXZCb3gg
PSBib3g7CiAgICAgICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgICAgICBwcmV2Qm94
ID0gcHJldkJveC0+cHJldkxlYWZDaGlsZCgpOworICAgICAgICAgICAgICAgICAgICBwcmV2Qm94
ID0gcHJldkJveC0+cHJldmlvdXNMZWFmT25MaW5lKCk7CiAgICAgICAgICAgICAgICAgfSB3aGls
ZSAocHJldkJveCAmJiBwcmV2Qm94LT5iaWRpTGV2ZWwoKSA+IGxldmVsKTsKIAogICAgICAgICAg
ICAgICAgIGlmIChwcmV2Qm94ICYmIHByZXZCb3gtPmJpZGlMZXZlbCgpID09IGxldmVsKSAgIC8v
IEZvciBleGFtcGxlLCBhYmMgRkVEIDEyMyBeIENCQQpAQCAtMzg0LDcgKzM4NCw3IEBAIFBvc2l0
aW9uIFZpc2libGVQb3NpdGlvbjo6cmlnaHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKCkgY29u
c3QKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgd2hpbGUgKG5leHRCb3ggJiYgIW5leHRC
b3gtPnJlbmRlcmVyKCkubm9kZSgpKQotICAgICAgICAgICAgICAgIG5leHRCb3ggPSBuZXh0Qm94
LT5uZXh0TGVhZkNoaWxkKCk7CisgICAgICAgICAgICAgICAgbmV4dEJveCA9IG5leHRCb3gtPm5l
eHRMZWFmT25MaW5lKCk7CiAKICAgICAgICAgICAgIGlmIChuZXh0Qm94KSB7CiAgICAgICAgICAg
ICAgICAgYm94ID0gbmV4dEJveDsKQEAgLTM5Myw3ICszOTMsNyBAQCBQb3NpdGlvbiBWaXNpYmxl
UG9zaXRpb246OnJpZ2h0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSgpIGNvbnN0CiAKICAgICAg
ICAgICAgICAgICBpZiAoYm94LT5iaWRpTGV2ZWwoKSA+IGxldmVsKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5leHRCb3ggPSBuZXh0Qm94LT5u
ZXh0TGVhZkNoaWxkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Qm94ID0gbmV4dEJv
eC0+bmV4dExlYWZPbkxpbmUoKTsKICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobmV4dEJv
eCAmJiBuZXh0Qm94LT5iaWRpTGV2ZWwoKSA+IGxldmVsKTsKIAogICAgICAgICAgICAgICAgICAg
ICBpZiAoIW5leHRCb3ggfHwgbmV4dEJveC0+YmlkaUxldmVsKCkgPCBsZXZlbCkKQEAgLTQwMiw3
ICs0MDIsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OnJpZ2h0VmlzdWFsbHlEaXN0aW5j
dENhbmRpZGF0ZSgpIGNvbnN0CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IC8vIFRyYWlsaW5nIGVkZ2Ugb2YgYSBzZWNvbmRhcnkgcnVuLiBTZXQgdG8gdGhlIGxlYWRpbmcg
ZWRnZSBvZiB0aGUgZW50aXJlIHJ1bi4KICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewot
ICAgICAgICAgICAgICAgICAgICB3aGlsZSAoSW5saW5lQm94KiBwcmV2Qm94ID0gYm94LT5wcmV2
TGVhZkNoaWxkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKElubGluZUJveCogcHJl
dkJveCA9IGJveC0+cHJldmlvdXNMZWFmT25MaW5lKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwcmV2Qm94LT5iaWRpTGV2ZWwoKSA8IGxldmVsKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgYm94ID0gcHJldkJveDsK
QEAgLTQxMCw3ICs0MTAsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OnJpZ2h0VmlzdWFs
bHlEaXN0aW5jdENhbmRpZGF0ZSgpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIGlmIChib3gt
PmJpZGlMZXZlbCgpID09IGxldmVsKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgIGxldmVsID0gYm94LT5iaWRpTGV2ZWwoKTsKLSAgICAgICAgICAg
ICAgICAgICAgd2hpbGUgKElubGluZUJveCogbmV4dEJveCA9IGJveC0+bmV4dExlYWZDaGlsZCgp
KSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChJbmxpbmVCb3gqIG5leHRCb3ggPSBib3gt
Pm5leHRMZWFmT25MaW5lKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Qm94
LT5iaWRpTGV2ZWwoKSA8IGxldmVsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgICAgICAgICAgYm94ID0gbmV4dEJveDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVVuaXRzLmNwcAppbmRleCA1Mzk5YjA4MDcyNS4uOTdjNjIyYmIyY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAKQEAgLTgyNCw3ICs4MjQsNyBA
QCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0UG9zaXRpb25Gb3JMaW5lKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgYywgTGluZUVuZHBvaQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEdlbmVy
YXRlZCBjb250ZW50IChlLmcuIGxpc3QgbWFya2VycyBhbmQgQ1NTIDpiZWZvcmUgYW5kIDphZnRl
ciBwc2V1ZG9lbGVtZW50cykgaGF2ZSBubyBjb3JyZXNwb25kaW5nIERPTSBlbGVtZW50LAogICAg
ICAgICAvLyBhbmQgc28gY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEgVmlzaWJsZVBvc2l0aW9u
LiBVc2Ugd2hhdGV2ZXIgZm9sbG93cyBpbnN0ZWFkLgotICAgICAgICBzdGFydEJveCA9IHJvb3RC
b3gtPmZpcnN0TGVhZkNoaWxkKCk7CisgICAgICAgIHN0YXJ0Qm94ID0gcm9vdEJveC0+Zmlyc3RM
ZWFmRGVzY2VuZGFudCgpOwogICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgaWYg
KCFzdGFydEJveCkKICAgICAgICAgICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CkBA
IC04MzMsNyArODMzLDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBzdGFydFBvc2l0aW9uRm9y
TGluZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIExpbmVFbmRwb2kKICAgICAgICAgICAgIGlm
IChzdGFydE5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHN0YXJ0
Qm94ID0gc3RhcnRCb3gtPm5leHRMZWFmQ2hpbGQoKTsKKyAgICAgICAgICAgIHN0YXJ0Qm94ID0g
c3RhcnRCb3gtPm5leHRMZWFmT25MaW5lKCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTg5OCw3
ICs4OTgsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGVuZFBvc2l0aW9uRm9yTGluZShjb25z
dCBWaXNpYmxlUG9zaXRpb24mIGMsIExpbmVFbmRwb2ludAogICAgIH0gZWxzZSB7CiAgICAgICAg
IC8vIEdlbmVyYXRlZCBjb250ZW50IChlLmcuIGxpc3QgbWFya2VycyBhbmQgQ1NTIDpiZWZvcmUg
YW5kIDphZnRlciBwc2V1ZG9lbGVtZW50cykgaGF2ZSBubyBjb3JyZXNwb25kaW5nIERPTSBlbGVt
ZW50LAogICAgICAgICAvLyBhbmQgc28gY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEgVmlzaWJs
ZVBvc2l0aW9uLiBVc2Ugd2hhdGV2ZXIgcHJlY2VkZXMgaW5zdGVhZC4KLSAgICAgICAgZW5kQm94
ID0gcm9vdEJveC0+bGFzdExlYWZDaGlsZCgpOworICAgICAgICBlbmRCb3ggPSByb290Qm94LT5s
YXN0TGVhZkRlc2NlbmRhbnQoKTsKICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAg
IGlmICghZW5kQm94KQogICAgICAgICAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsK
QEAgLTkwNyw3ICs5MDcsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGVuZFBvc2l0aW9uRm9y
TGluZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIExpbmVFbmRwb2ludAogICAgICAgICAgICAg
aWYgKGVuZE5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGVuZEJveCA9IGVuZEJveC0+cHJldkxlYWZDaGlsZCgpOworICAgICAgICAgICAgZW5k
Qm94ID0gZW5kQm94LT5wcmV2aW91c0xlYWZPbkxpbmUoKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtMTA0Niw3ICsxMDQ2LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzTGluZVBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uLCBpbnQKICAgICAgICAgcm9v
dCA9IGJveC0+cm9vdCgpLnByZXZSb290Qm94KCk7CiAgICAgICAgIC8vIFdlIHdhbnQgdG8gc2tp
cCB6ZXJvIGhlaWdodCBib3hlcy4KICAgICAgICAgLy8gVGhpcyBjb3VsZCBoYXBwZW4gaW4gY2Fz
ZSBpdCBpcyBhIFRyYWlsaW5nRmxvYXRzUm9vdElubGluZUJveC4KLSAgICAgICAgaWYgKCFyb290
IHx8ICFyb290LT5sb2dpY2FsSGVpZ2h0KCkgfHwgIXJvb3QtPmZpcnN0TGVhZkNoaWxkKCkpCisg
ICAgICAgIGlmICghcm9vdCB8fCAhcm9vdC0+bG9naWNhbEhlaWdodCgpIHx8ICFyb290LT5maXJz
dExlYWZEZXNjZW5kYW50KCkpCiAgICAgICAgICAgICByb290ID0gbnVsbHB0cjsKICAgICB9CiAK
QEAgLTExMDEsNyArMTEwMSw3IEBAIFZpc2libGVQb3NpdGlvbiBuZXh0TGluZVBvc2l0aW9uKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uLCBpbnQgbGluCiAgICAgICAgIHJv
b3QgPSBib3gtPnJvb3QoKS5uZXh0Um9vdEJveCgpOwogICAgICAgICAvLyBXZSB3YW50IHRvIHNr
aXAgemVybyBoZWlnaHQgYm94ZXMuCiAgICAgICAgIC8vIFRoaXMgY291bGQgaGFwcGVuIGluIGNh
c2UgaXQgaXMgYSBUcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3guCi0gICAgICAgIGlmICghcm9v
dCB8fCAhcm9vdC0+bG9naWNhbEhlaWdodCgpIHx8ICFyb290LT5maXJzdExlYWZDaGlsZCgpKQor
ICAgICAgICBpZiAoIXJvb3QgfHwgIXJvb3QtPmxvZ2ljYWxIZWlnaHQoKSB8fCAhcm9vdC0+Zmly
c3RMZWFmRGVzY2VuZGFudCgpKQogICAgICAgICAgICAgcm9vdCA9IG51bGxwdHI7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCmluZGV4IDJhMmNjNTkxYzA3Li5m
ZmEwNjMzMTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKQEAgLTEy
NywxMyArMTI3LDEzIEBAIHN0YXRpYyBib29sIGNoZWNrRm9yTWF0Y2hpbmdUZXh0UnVucyhjb25z
dCBEaXNwbGF5OjpSdW4mIGlubGluZVJ1biwgY29uc3QgSW5saW5lCiAKIHN0YXRpYyB2b2lkIGNv
bGxlY3RGbG93Qm94U3VidHJlZShjb25zdCBJbmxpbmVGbG93Qm94JiBmbG93Ym94LCBWZWN0b3I8
V2ViQ29yZTo6SW5saW5lQm94Kj4mIGlubGluZUJveGVzKQogewotICAgIGF1dG8qIGlubGluZUJv
eCA9IGZsb3dib3guZmlyc3RMZWFmQ2hpbGQoKTsKLSAgICBhdXRvKiBsYXN0TGVhZkNoaWxkID0g
Zmxvd2JveC5sYXN0TGVhZkNoaWxkKCk7CisgICAgYXV0byogaW5saW5lQm94ID0gZmxvd2JveC5m
aXJzdExlYWZEZXNjZW5kYW50KCk7CisgICAgYXV0byogbGFzdExlYWZEZXNjZW5kYW50ID0gZmxv
d2JveC5sYXN0TGVhZkRlc2NlbmRhbnQoKTsKICAgICB3aGlsZSAoaW5saW5lQm94KSB7CiAgICAg
ICAgIGlubGluZUJveGVzLmFwcGVuZChpbmxpbmVCb3gpOwotICAgICAgICBpZiAoaW5saW5lQm94
ID09IGxhc3RMZWFmQ2hpbGQpCisgICAgICAgIGlmIChpbmxpbmVCb3ggPT0gbGFzdExlYWZEZXNj
ZW5kYW50KQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGlubGluZUJveCA9IGlubGluZUJv
eC0+bmV4dExlYWZDaGlsZCgpOworICAgICAgICBpbmxpbmVCb3ggPSBpbmxpbmVCb3gtPm5leHRM
ZWFmT25MaW5lKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Nv
bXBsZXhMaW5lTGF5b3V0LmNwcAppbmRleCBiZDNjOWJlZTg3Mi4uZjRkMmQ1ZjQwZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcApAQCAtNTcw
LDcgKzU3MCw3IEBAIHZvaWQgQ29tcGxleExpbmVMYXlvdXQ6OnVwZGF0ZVJ1YnlGb3JKdXN0aWZp
ZWRUZXh0KFJlbmRlclJ1YnlSdW4mIHJ1YnlSdW4sIEJpZGlSCiAKICAgICBmbG9hdCB0b3RhbEV4
cGFuc2lvbiA9IDA7CiAgICAgdW5zaWduZWQgdG90YWxPcHBvcnR1bml0aWVzSW5SdW4gPSAwOwot
ICAgIGZvciAoYXV0byogbGVhZkNoaWxkID0gcm9vdEJveC5maXJzdExlYWZDaGlsZCgpOyBsZWFm
Q2hpbGQ7IGxlYWZDaGlsZCA9IGxlYWZDaGlsZC0+bmV4dExlYWZDaGlsZCgpKSB7CisgICAgZm9y
IChhdXRvKiBsZWFmQ2hpbGQgPSByb290Qm94LmZpcnN0TGVhZkRlc2NlbmRhbnQoKTsgbGVhZkNo
aWxkOyBsZWFmQ2hpbGQgPSBsZWFmQ2hpbGQtPm5leHRMZWFmT25MaW5lKCkpIHsKICAgICAgICAg
aWYgKCFsZWFmQ2hpbGQtPmlzSW5saW5lVGV4dEJveCgpKQogICAgICAgICAgICAgY29udGludWU7
CiAKQEAgLTczNSw3ICs3MzUsNyBAQCBzdGF0aWMgaW5saW5lIEV4cGFuc2lvbkJlaGF2aW9yIGV4
cGFuc2lvbkJlaGF2aW9yRm9ySW5saW5lVGV4dEJveChSZW5kZXJCbG9ja0ZsbwogICAgICAgICBp
ZiAobmV4dFJ1biAmJiBpczxSZW5kZXJSdWJ5UnVuPihuZXh0UnVuLT5yZW5kZXJlcigpKSAmJiBk
b3duY2FzdDxSZW5kZXJSdWJ5UnVuPihuZXh0UnVuLT5yZW5kZXJlcigpKS5ydWJ5QmFzZSgpICYm
IG5leHRSdW4tPnJlbmRlcmVyKCkuc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2UoKSkgewogICAg
ICAgICAgICAgYXV0byYgcnVieUJhc2UgPSAqZG93bmNhc3Q8UmVuZGVyUnVieVJ1bj4obmV4dFJ1
bi0+cmVuZGVyZXIoKSkucnVieUJhc2UoKTsKICAgICAgICAgICAgIGlmIChydWJ5QmFzZS5maXJz
dFJvb3RCb3goKSAmJiAhcnVieUJhc2UuZmlyc3RSb290Qm94KCktPm5leHRSb290Qm94KCkpIHsK
LSAgICAgICAgICAgICAgICBpZiAoYXV0byogbGVhZkNoaWxkID0gcnVieUJhc2UuZmlyc3RSb290
Qm94KCktPmZpcnN0TGVhZkNoaWxkKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogbGVh
ZkNoaWxkID0gcnVieUJhc2UuZmlyc3RSb290Qm94KCktPmZpcnN0TGVhZkRlc2NlbmRhbnQoKSkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEJveD4oKmxlYWZDaGlsZCkp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxlYWRpbmdFeHBhbnNp
b25PcHBvcnR1bml0eSBkb2Vzbid0IGFjdHVhbGx5IHdvcmsgYmVjYXVzZSBpdCBkb2Vzbid0IHBl
cmZvcm0gdGhlIFVCQQogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEZvbnRDYXNjYWRlOjps
ZWFkaW5nRXhwYW5zaW9uT3Bwb3J0dW5pdHkoZG93bmNhc3Q8UmVuZGVyVGV4dD4obGVhZkNoaWxk
LT5yZW5kZXJlcigpKS5zdHJpbmdWaWV3KCksIGxlYWZDaGlsZC0+ZGlyZWN0aW9uKCkpKSB7CkBA
IC03NTAsNyArNzUwLDcgQEAgc3RhdGljIGlubGluZSBFeHBhbnNpb25CZWhhdmlvciBleHBhbnNp
b25CZWhhdmlvckZvcklubGluZVRleHRCb3goUmVuZGVyQmxvY2tGbG8KICAgICAgICAgaWYgKHBy
ZXZpb3VzUnVuICYmIGlzPFJlbmRlclJ1YnlSdW4+KHByZXZpb3VzUnVuLT5yZW5kZXJlcigpKSAm
JiBkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihwcmV2aW91c1J1bi0+cmVuZGVyZXIoKSkucnVieUJh
c2UoKSAmJiBwcmV2aW91c1J1bi0+cmVuZGVyZXIoKS5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFj
ZSgpKSB7CiAgICAgICAgICAgICBhdXRvJiBydWJ5QmFzZSA9ICpkb3duY2FzdDxSZW5kZXJSdWJ5
UnVuPihwcmV2aW91c1J1bi0+cmVuZGVyZXIoKSkucnVieUJhc2UoKTsKICAgICAgICAgICAgIGlm
IChydWJ5QmFzZS5maXJzdFJvb3RCb3goKSAmJiAhcnVieUJhc2UuZmlyc3RSb290Qm94KCktPm5l
eHRSb290Qm94KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogbGVhZkNoaWxkID0gcnVi
eUJhc2UuZmlyc3RSb290Qm94KCktPmxhc3RMZWFmQ2hpbGQoKSkgeworICAgICAgICAgICAgICAg
IGlmIChhdXRvKiBsZWFmQ2hpbGQgPSBydWJ5QmFzZS5maXJzdFJvb3RCb3goKS0+bGFzdExlYWZE
ZXNjZW5kYW50KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGlzPElubGluZVRleHRCb3g+
KCpsZWFmQ2hpbGQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBs
ZWFkaW5nRXhwYW5zaW9uT3Bwb3J0dW5pdHkgZG9lc24ndCBhY3R1YWxseSB3b3JrIGJlY2F1c2Ug
aXQgZG9lc24ndCBwZXJmb3JtIHRoZSBVQkEKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChG
b250Q2FzY2FkZTo6dHJhaWxpbmdFeHBhbnNpb25PcHBvcnR1bml0eShkb3duY2FzdDxSZW5kZXJU
ZXh0PihsZWFmQ2hpbGQtPnJlbmRlcmVyKCkpLnN0cmluZ1ZpZXcoKSwgbGVhZkNoaWxkLT5kaXJl
Y3Rpb24oKSkpIHsKQEAgLTc2NCwxMCArNzY0LDEwIEBAIHN0YXRpYyBpbmxpbmUgRXhwYW5zaW9u
QmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3JGb3JJbmxpbmVUZXh0Qm94KFJlbmRlckJsb2NrRmxv
CiAgICAgICAgIC8vIElmIHdlJ3JlIHRoZSBmaXJzdCBib3ggaW5zaWRlIGEgcnVieSBiYXNlLCBm
b3JiaWQgYSBsZWFkaW5nIGV4cGFuc2lvbiwgYW5kIHZpY2UtdmVyc2EKICAgICAgICAgaWYgKGlz
PFJlbmRlclJ1YnlCYXNlPihibG9jaykpIHsKICAgICAgICAgICAgIFJlbmRlclJ1YnlCYXNlJiBy
dWJ5QmFzZSA9IGRvd25jYXN0PFJlbmRlclJ1YnlCYXNlPihibG9jayk7Ci0gICAgICAgICAgICBp
ZiAoJnRleHRCb3ggPT0gcnVieUJhc2UuZmlyc3RSb290Qm94KCktPmZpcnN0TGVhZkNoaWxkKCkp
IHsKKyAgICAgICAgICAgIGlmICgmdGV4dEJveCA9PSBydWJ5QmFzZS5maXJzdFJvb3RCb3goKS0+
Zmlyc3RMZWFmRGVzY2VuZGFudCgpKSB7CiAgICAgICAgICAgICAgICAgc2V0TGVhZGluZ0V4cGFu
c2lvbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IEZvcmJpZExlYWRpbmdFeHBh
bnNpb247Ci0gICAgICAgICAgICB9IGlmICgmdGV4dEJveCA9PSBydWJ5QmFzZS5maXJzdFJvb3RC
b3goKS0+bGFzdExlYWZDaGlsZCgpKSB7CisgICAgICAgICAgICB9IGlmICgmdGV4dEJveCA9PSBy
dWJ5QmFzZS5maXJzdFJvb3RCb3goKS0+bGFzdExlYWZEZXNjZW5kYW50KCkpIHsKICAgICAgICAg
ICAgICAgICBzZXRUcmFpbGluZ0V4cGFuc2lvbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmVz
dWx0IHw9IEZvcmJpZFRyYWlsaW5nRXhwYW5zaW9uOwogICAgICAgICAgICAgfQpAQCAtOTIwLDcg
KzkyMCw3IEBAIEJpZGlSdW4qIENvbXBsZXhMaW5lTGF5b3V0Ojpjb21wdXRlSW5saW5lRGlyZWN0
aW9uUG9zaXRpb25zRm9yU2VnbWVudChSb290SW5saW5lCiAgICAgICAgICAgICAgICAgYXV0byog
cnVieUJhc2UgPSBkb3duY2FzdDxSZW5kZXJSdWJ5UnVuPihydW4tPnJlbmRlcmVyKCkpLnJ1YnlC
YXNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHJ1YnlCYXNlLT5maXJzdFJvb3RCb3goKSAmJiAh
cnVieUJhc2UtPmZpcnN0Um9vdEJveCgpLT5uZXh0Um9vdEJveCgpICYmIHJ1bi0+cmVuZGVyZXIo
KS5zdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHJ1
YnlCYXNlLT5zZXRJc0FmdGVyRXhwYW5zaW9uKGlzQWZ0ZXJFeHBhbnNpb24pOwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKGF1dG8qIGxlYWZDaGlsZCA9IHJ1YnlCYXNlLT5maXJzdFJvb3RCb3go
KS0+Zmlyc3RMZWFmQ2hpbGQoKTsgbGVhZkNoaWxkOyBsZWFmQ2hpbGQgPSBsZWFmQ2hpbGQtPm5l
eHRMZWFmQ2hpbGQoKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIGxlYWZDaGls
ZCA9IHJ1YnlCYXNlLT5maXJzdFJvb3RCb3goKS0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpOyBsZWFm
Q2hpbGQ7IGxlYWZDaGlsZCA9IGxlYWZDaGlsZC0+bmV4dExlYWZPbkxpbmUoKSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFpczxJbmxpbmVUZXh0Qm94PigqbGVhZkNoaWxkKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGVuY291bnRlcmVkSnVzdGlmaWVkUnVieSA9IHRydWU7CkBAIC0xMzE3LDEwICsxMzE3LDEw
IEBAIHZvaWQgQ29tcGxleExpbmVMYXlvdXQ6OmxheW91dFJ1bnNBbmRGbG9hdHMoTGluZUxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgYm9vbCBoCiAgICAgICAgIC8vIElmIHRoZSBsYXN0IGxpbmUg
YmVmb3JlIHRoZSBzdGFydCBsaW5lIGVuZHMgd2l0aCBhIGxpbmUgYnJlYWsgdGhhdCBjbGVhciBm
bG9hdHMsCiAgICAgICAgIC8vIGFkanVzdCB0aGUgaGVpZ2h0IGFjY29yZGluZ2x5LgogICAgICAg
ICAvLyBBIGxpbmUgYnJlYWsgY2FuIGJlIGVpdGhlciB0aGUgZmlyc3Qgb3IgdGhlIGxhc3Qgb2Jq
ZWN0IG9uIGEgbGluZSwgZGVwZW5kaW5nIG9uIGl0cyBkaXJlY3Rpb24uCi0gICAgICAgIGlmIChJ
bmxpbmVCb3gqIGxhc3RMZWFmQ2hpbGQgPSBsYXN0Um9vdEJveCgpLT5sYXN0TGVhZkNoaWxkKCkp
IHsKLSAgICAgICAgICAgIFJlbmRlck9iamVjdCogbGFzdE9iamVjdCA9ICZsYXN0TGVhZkNoaWxk
LT5yZW5kZXJlcigpOworICAgICAgICBpZiAoSW5saW5lQm94KiBsYXN0TGVhZkRlc2NlbmRhbnQg
PSBsYXN0Um9vdEJveCgpLT5sYXN0TGVhZkRlc2NlbmRhbnQoKSkgeworICAgICAgICAgICAgUmVu
ZGVyT2JqZWN0KiBsYXN0T2JqZWN0ID0gJmxhc3RMZWFmRGVzY2VuZGFudC0+cmVuZGVyZXIoKTsK
ICAgICAgICAgICAgIGlmICghbGFzdE9iamVjdC0+aXNCUigpKQotICAgICAgICAgICAgICAgIGxh
c3RPYmplY3QgPSAmbGFzdFJvb3RCb3goKS0+Zmlyc3RMZWFmQ2hpbGQoKS0+cmVuZGVyZXIoKTsK
KyAgICAgICAgICAgICAgICBsYXN0T2JqZWN0ID0gJmxhc3RSb290Qm94KCktPmZpcnN0TGVhZkRl
c2NlbmRhbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmIChsYXN0T2JqZWN0LT5pc0JS
KCkpIHsKICAgICAgICAgICAgICAgICBDbGVhciBjbGVhciA9IGxhc3RPYmplY3QtPnN0eWxlKCku
Y2xlYXIoKTsKICAgICAgICAgICAgICAgICBpZiAoY2xlYXIgIT0gQ2xlYXI6Ok5vbmUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guY3BwCmluZGV4IGE2ZmNhMDJmNzIxLi4zMjA0Yjhk
NjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAKQEAgLTIyMCw0MiAr
MjIwLDQyIEBAIGJvb2wgSW5saW5lQm94OjpwcmV2aW91c09uTGluZUV4aXN0cygpIGNvbnN0CiB7
CiAgICAgaWYgKCFwYXJlbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChwcmV2
T25MaW5lKCkpCisgICAgaWYgKHByZXZpb3VzT25MaW5lKCkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIHJldHVybiBwYXJlbnQoKS0+cHJldmlvdXNPbkxpbmVFeGlzdHMoKTsKIH0KIAotSW5s
aW5lQm94KiBJbmxpbmVCb3g6Om5leHRMZWFmQ2hpbGQoKSBjb25zdAorSW5saW5lQm94KiBJbmxp
bmVCb3g6Om5leHRMZWFmT25MaW5lKCkgY29uc3QKIHsKICAgICBJbmxpbmVCb3gqIGxlYWYgPSBu
dWxscHRyOwogICAgIGZvciAoSW5saW5lQm94KiBib3ggPSBuZXh0T25MaW5lKCk7IGJveCAmJiAh
bGVhZjsgYm94ID0gYm94LT5uZXh0T25MaW5lKCkpCi0gICAgICAgIGxlYWYgPSBib3gtPmlzTGVh
ZigpID8gYm94IDogZG93bmNhc3Q8SW5saW5lRmxvd0JveD4oKmJveCkuZmlyc3RMZWFmQ2hpbGQo
KTsKKyAgICAgICAgbGVhZiA9IGJveC0+aXNMZWFmKCkgPyBib3ggOiBkb3duY2FzdDxJbmxpbmVG
bG93Qm94PigqYm94KS5maXJzdExlYWZEZXNjZW5kYW50KCk7CiAgICAgaWYgKCFsZWFmICYmIHBh
cmVudCgpKQotICAgICAgICBsZWFmID0gcGFyZW50KCktPm5leHRMZWFmQ2hpbGQoKTsKKyAgICAg
ICAgbGVhZiA9IHBhcmVudCgpLT5uZXh0TGVhZk9uTGluZSgpOwogICAgIHJldHVybiBsZWFmOwog
fQogICAgIAotSW5saW5lQm94KiBJbmxpbmVCb3g6OnByZXZMZWFmQ2hpbGQoKSBjb25zdAorSW5s
aW5lQm94KiBJbmxpbmVCb3g6OnByZXZpb3VzTGVhZk9uTGluZSgpIGNvbnN0CiB7CiAgICAgSW5s
aW5lQm94KiBsZWFmID0gbnVsbHB0cjsKLSAgICBmb3IgKElubGluZUJveCogYm94ID0gcHJldk9u
TGluZSgpOyBib3ggJiYgIWxlYWY7IGJveCA9IGJveC0+cHJldk9uTGluZSgpKQotICAgICAgICBs
ZWFmID0gYm94LT5pc0xlYWYoKSA/IGJveCA6IGRvd25jYXN0PElubGluZUZsb3dCb3g+KCpib3gp
Lmxhc3RMZWFmQ2hpbGQoKTsKKyAgICBmb3IgKElubGluZUJveCogYm94ID0gcHJldmlvdXNPbkxp
bmUoKTsgYm94ICYmICFsZWFmOyBib3ggPSBib3gtPnByZXZpb3VzT25MaW5lKCkpCisgICAgICAg
IGxlYWYgPSBib3gtPmlzTGVhZigpID8gYm94IDogZG93bmNhc3Q8SW5saW5lRmxvd0JveD4oKmJv
eCkubGFzdExlYWZEZXNjZW5kYW50KCk7CiAgICAgaWYgKCFsZWFmICYmIHBhcmVudCgpKQotICAg
ICAgICBsZWFmID0gcGFyZW50KCktPnByZXZMZWFmQ2hpbGQoKTsKKyAgICAgICAgbGVhZiA9IHBh
cmVudCgpLT5wcmV2aW91c0xlYWZPbkxpbmUoKTsKICAgICByZXR1cm4gbGVhZjsKIH0KIAotSW5s
aW5lQm94KiBJbmxpbmVCb3g6Om5leHRMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpIGNvbnN0
CitJbmxpbmVCb3gqIElubGluZUJveDo6bmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygp
IGNvbnN0CiB7Ci0gICAgSW5saW5lQm94KiBsZWFmID0gbmV4dExlYWZDaGlsZCgpOworICAgIElu
bGluZUJveCogbGVhZiA9IG5leHRMZWFmT25MaW5lKCk7CiAgICAgaWYgKGxlYWYgJiYgbGVhZi0+
aXNMaW5lQnJlYWsoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGxlYWY7
CiB9CiAKLUlubGluZUJveCogSW5saW5lQm94OjpwcmV2TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJl
YWsoKSBjb25zdAorSW5saW5lQm94KiBJbmxpbmVCb3g6OnByZXZpb3VzTGVhZk9uTGluZUlnbm9y
aW5nTGluZUJyZWFrKCkgY29uc3QKIHsKLSAgICBJbmxpbmVCb3gqIGxlYWYgPSBwcmV2TGVhZkNo
aWxkKCk7CisgICAgSW5saW5lQm94KiBsZWFmID0gcHJldmlvdXNMZWFmT25MaW5lKCk7CiAgICAg
aWYgKGxlYWYgJiYgbGVhZi0+aXNMaW5lQnJlYWsoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgcmV0dXJuIGxlYWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgKaW5kZXgg
NWNjZGVmZDJiMzcuLjJhYjExMjViNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJv
eC5oCkBAIC0xMjAsMzEgKzEyMCwzMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUZyb21Q
YXJlbnQoKTsKIAotICAgIElubGluZUJveCogbmV4dE9uTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmV4dDsgfQotICAgIElubGluZUJveCogcHJldk9uTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJl
djsgfQorICAgIElubGluZUJveCogbmV4dE9uTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dE9u
TGluZTsgfQorICAgIElubGluZUJveCogcHJldmlvdXNPbkxpbmUoKSBjb25zdCB7IHJldHVybiBt
X3ByZXZpb3VzT25MaW5lOyB9CiAgICAgdm9pZCBzZXROZXh0T25MaW5lKElubGluZUJveCogbmV4
dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3BhcmVudCB8fCAhbmV4dCk7Ci0gICAgICAgIG1f
bmV4dCA9IG5leHQ7CisgICAgICAgIG1fbmV4dE9uTGluZSA9IG5leHQ7CiAgICAgfQotICAgIHZv
aWQgc2V0UHJldk9uTGluZShJbmxpbmVCb3gqIHByZXYpCisgICAgdm9pZCBzZXRQcmV2aW91c09u
TGluZShJbmxpbmVCb3gqIHByZXZpb3VzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fcGFyZW50
IHx8ICFwcmV2KTsKLSAgICAgICAgbV9wcmV2ID0gcHJldjsKKyAgICAgICAgQVNTRVJUKG1fcGFy
ZW50IHx8ICFwcmV2aW91cyk7CisgICAgICAgIG1fcHJldmlvdXNPbkxpbmUgPSBwcmV2aW91czsK
ICAgICB9CiAgICAgYm9vbCBuZXh0T25MaW5lRXhpc3RzKCkgY29uc3Q7CiAgICAgYm9vbCBwcmV2
aW91c09uTGluZUV4aXN0cygpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzTGVhZigpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAKLSAgICBJbmxpbmVCb3gqIG5leHRMZWFmQ2hpbGQo
KSBjb25zdDsKLSAgICBJbmxpbmVCb3gqIHByZXZMZWFmQ2hpbGQoKSBjb25zdDsKKyAgICBJbmxp
bmVCb3gqIG5leHRMZWFmT25MaW5lKCkgY29uc3Q7CisgICAgSW5saW5lQm94KiBwcmV2aW91c0xl
YWZPbkxpbmUoKSBjb25zdDsKIAogICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGVkaXRpbmcg
YW5kIGhpdC10ZXN0aW5nIGNvZGUuCiAgICAgLy8gRklYTUU6IFRoZXNlIHR3byBmdW5jdGlvbnMg
c2hvdWxkIGJlIG1vdmVkIHRvIFJlbmRlcmVkUG9zaXRpb24gb25jZSB0aGUgY29kZSB0byBjb252
ZXJ0IGJldHdlZW4KICAgICAvLyBQb3NpdGlvbiBhbmQgaW5saW5lIGJveCwgb2Zmc2V0IHBhaXIg
aXMgbW92ZWQgdG8gUmVuZGVyZWRQb3NpdGlvbi4KLSAgICBJbmxpbmVCb3gqIG5leHRMZWFmQ2hp
bGRJZ25vcmluZ0xpbmVCcmVhaygpIGNvbnN0OwotICAgIElubGluZUJveCogcHJldkxlYWZDaGls
ZElnbm9yaW5nTGluZUJyZWFrKCkgY29uc3Q7CisgICAgSW5saW5lQm94KiBuZXh0TGVhZk9uTGlu
ZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3Q7CisgICAgSW5saW5lQm94KiBwcmV2aW91c0xlYWZP
bkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IEhpZGUgdGhp
cyBvbmNlIGFsbCBjYWxsZXJzIGFyZSB1c2luZyB0aWdodGVyIHR5cGVzLgogICAgIFJlbmRlck9i
amVjdCYgcmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmVyOyB9CkBAIC0yODcsOCAr
Mjg3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VMZWFkaW5nRXhwYW5zaW9uKCkgeyBt
X2JpdGZpZWxkcy5zZXRGb3JjZUxlYWRpbmdFeHBhbnNpb24odHJ1ZSk7IH0KIAogcHJpdmF0ZToK
LSAgICBJbmxpbmVCb3gqIG1fbmV4dCB7IG51bGxwdHIgfTsgLy8gVGhlIG5leHQgZWxlbWVudCBv
biB0aGUgc2FtZSBsaW5lIGFzIHVzLgotICAgIElubGluZUJveCogbV9wcmV2IHsgbnVsbHB0ciB9
OyAvLyBUaGUgcHJldmlvdXMgZWxlbWVudCBvbiB0aGUgc2FtZSBsaW5lIGFzIHVzLgorICAgIElu
bGluZUJveCogbV9uZXh0T25MaW5lIHsgbnVsbHB0ciB9OyAvLyBUaGUgbmV4dCBlbGVtZW50IG9u
IHRoZSBzYW1lIGxpbmUgYXMgdXMuCisgICAgSW5saW5lQm94KiBtX3ByZXZpb3VzT25MaW5lIHsg
bnVsbHB0ciB9OyAvLyBUaGUgcHJldmlvdXMgZWxlbWVudCBvbiB0aGUgc2FtZSBsaW5lIGFzIHVz
LgogCiAgICAgSW5saW5lRmxvd0JveCogbV9wYXJlbnQgeyBudWxscHRyIH07IC8vIFRoZSBib3gg
dGhhdCBjb250YWlucyB1cy4KIApAQCAtMzgzLDkgKzM4Myw5IEBAIHByb3RlY3RlZDoKICAgICB7
CiAgICAgfQogCi0gICAgSW5saW5lQm94KFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEZsb2F0UG9p
bnQgdG9wTGVmdCwgZmxvYXQgbG9naWNhbFdpZHRoLCBib29sIGZpcnN0TGluZSwgYm9vbCBjb25z
dHJ1Y3RlZCwgYm9vbCBkaXJ0eSwgYm9vbCBleHRyYWN0ZWQsIGJvb2wgaXNIb3Jpem9udGFsLCBJ
bmxpbmVCb3gqIG5leHQsIElubGluZUJveCogcHJldiwgSW5saW5lRmxvd0JveCogcGFyZW50KQot
ICAgICAgICA6IG1fbmV4dChuZXh0KQotICAgICAgICAsIG1fcHJldihwcmV2KQorICAgIElubGlu
ZUJveChSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBGbG9hdFBvaW50IHRvcExlZnQsIGZsb2F0IGxv
Z2ljYWxXaWR0aCwgYm9vbCBmaXJzdExpbmUsIGJvb2wgY29uc3RydWN0ZWQsIGJvb2wgZGlydHks
IGJvb2wgZXh0cmFjdGVkLCBib29sIGlzSG9yaXpvbnRhbCwgSW5saW5lQm94KiBuZXh0LCBJbmxp
bmVCb3gqIHByZXZpb3VzLCBJbmxpbmVGbG93Qm94KiBwYXJlbnQpCisgICAgICAgIDogbV9uZXh0
T25MaW5lKG5leHQpCisgICAgICAgICwgbV9wcmV2aW91c09uTGluZShwcmV2aW91cykKICAgICAg
ICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikKICAg
ICAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggNDlmYzhkMTMzY2YuLjk5NzFlYTE4M2VmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05Niw3ICs5
Niw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6YWRkVG9MaW5lKElubGluZUJveCogY2hpbGQpCiB7
CiAgICAgQVNTRVJUKCFjaGlsZC0+cGFyZW50KCkpOwogICAgIEFTU0VSVCghY2hpbGQtPm5leHRP
bkxpbmUoKSk7Ci0gICAgQVNTRVJUKCFjaGlsZC0+cHJldk9uTGluZSgpKTsKKyAgICBBU1NFUlQo
IWNoaWxkLT5wcmV2aW91c09uTGluZSgpKTsKICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CiAKICAg
ICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgSW5saW5l
Rmxvd0JveDo6YWRkVG9MaW5lKElubGluZUJveCogY2hpbGQpCiAgICAgICAgIG1fbGFzdENoaWxk
ID0gY2hpbGQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9sYXN0Q2hpbGQtPnNldE5leHRPbkxp
bmUoY2hpbGQpOwotICAgICAgICBjaGlsZC0+c2V0UHJldk9uTGluZShtX2xhc3RDaGlsZCk7Cisg
ICAgICAgIGNoaWxkLT5zZXRQcmV2aW91c09uTGluZShtX2xhc3RDaGlsZCk7CiAgICAgICAgIG1f
bGFzdENoaWxkID0gY2hpbGQ7CiAgICAgfQogICAgIGNoaWxkLT5zZXRJc0ZpcnN0TGluZShpc0Zp
cnN0TGluZSgpKTsKQEAgLTE5NSwxMSArMTk1LDExIEBAIHZvaWQgSW5saW5lRmxvd0JveDo6cmVt
b3ZlQ2hpbGQoSW5saW5lQm94KiBjaGlsZCkKICAgICBpZiAoY2hpbGQgPT0gbV9maXJzdENoaWxk
KQogICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBjaGlsZC0+bmV4dE9uTGluZSgpOwogICAgIGlmIChj
aGlsZCA9PSBtX2xhc3RDaGlsZCkKLSAgICAgICAgbV9sYXN0Q2hpbGQgPSBjaGlsZC0+cHJldk9u
TGluZSgpOworICAgICAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLT5wcmV2aW91c09uTGluZSgpOwog
ICAgIGlmIChjaGlsZC0+bmV4dE9uTGluZSgpKQotICAgICAgICBjaGlsZC0+bmV4dE9uTGluZSgp
LT5zZXRQcmV2T25MaW5lKGNoaWxkLT5wcmV2T25MaW5lKCkpOwotICAgIGlmIChjaGlsZC0+cHJl
dk9uTGluZSgpKQotICAgICAgICBjaGlsZC0+cHJldk9uTGluZSgpLT5zZXROZXh0T25MaW5lKGNo
aWxkLT5uZXh0T25MaW5lKCkpOworICAgICAgICBjaGlsZC0+bmV4dE9uTGluZSgpLT5zZXRQcmV2
aW91c09uTGluZShjaGlsZC0+cHJldmlvdXNPbkxpbmUoKSk7CisgICAgaWYgKGNoaWxkLT5wcmV2
aW91c09uTGluZSgpKQorICAgICAgICBjaGlsZC0+cHJldmlvdXNPbkxpbmUoKS0+c2V0TmV4dE9u
TGluZShjaGlsZC0+bmV4dE9uTGluZSgpKTsKICAgICAKICAgICBjaGlsZC0+c2V0UGFyZW50KG51
bGxwdHIpOwogCkBAIC0xMDY4LDcgKzEwNjgsNyBAQCBib29sIElubGluZUZsb3dCb3g6Om5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQog
ICAgIC8vIENoZWNrIGNoaWxkcmVuIGZpcnN0LgogICAgIC8vIFdlIG5lZWQgdG8gYWNjb3VudCBm
b3IgY3VsbGVkIGlubGluZSBwYXJlbnRzIG9mIHRoZSBoaXQtdGVzdGVkIG5vZGVzLCBzbyB0aGF0
IHRoZXkgbWF5IGFsc28gZ2V0IGluY2x1ZGVkIGluIGFyZWEtYmFzZWQgaGl0LXRlc3RzLgogICAg
IFJlbmRlckVsZW1lbnQqIGN1bGxlZFBhcmVudCA9IG51bGxwdHI7Ci0gICAgZm9yIChJbmxpbmVC
b3gqIGNoaWxkID0gbGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5wcmV2T25MaW5l
KCkpIHsKKyAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPnByZXZpb3VzT25MaW5lKCkpIHsKICAgICAgICAgaWYgKGlzPFJlbmRlclRl
eHQ+KGNoaWxkLT5yZW5kZXJlcigpKSB8fCAhY2hpbGQtPmJveE1vZGVsT2JqZWN0KCktPmhhc1Nl
bGZQYWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgIFJlbmRlckVsZW1lbnQqIG5ld1BhcmVu
dCA9IG51bGxwdHI7CiAgICAgICAgICAgICAvLyBDdWxsZWQgcGFyZW50cyBhcmUgb25seSByZWxl
dmFudCBmb3IgYXJlYS1iYXNlZCBoaXQtdGVzdHMsIHNvIGlnbm9yZSBpdCBpbiBwb2ludC1iYXNl
ZCBvbmVzLgpAQCAtMTQ4OSwxOSArMTQ4OSwxOSBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50
TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmcwog
ICAgICAgICBwYWludEluZm8uY29udGV4dCgpLmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiB9CiAK
LUlubGluZUJveCogSW5saW5lRmxvd0JveDo6Zmlyc3RMZWFmQ2hpbGQoKSBjb25zdAorSW5saW5l
Qm94KiBJbmxpbmVGbG93Qm94OjpmaXJzdExlYWZEZXNjZW5kYW50KCkgY29uc3QKIHsKICAgICBJ
bmxpbmVCb3gqIGxlYWYgPSBudWxscHRyOwogICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWxlYWY7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkK
LSAgICAgICAgbGVhZiA9IGNoaWxkLT5pc0xlYWYoKSA/IGNoaWxkIDogZG93bmNhc3Q8SW5saW5l
Rmxvd0JveD4oKmNoaWxkKS5maXJzdExlYWZDaGlsZCgpOworICAgICAgICBsZWFmID0gY2hpbGQt
PmlzTGVhZigpID8gY2hpbGQgOiBkb3duY2FzdDxJbmxpbmVGbG93Qm94PigqY2hpbGQpLmZpcnN0
TGVhZkRlc2NlbmRhbnQoKTsKICAgICByZXR1cm4gbGVhZjsKIH0KIAotSW5saW5lQm94KiBJbmxp
bmVGbG93Qm94OjpsYXN0TGVhZkNoaWxkKCkgY29uc3QKK0lubGluZUJveCogSW5saW5lRmxvd0Jv
eDo6bGFzdExlYWZEZXNjZW5kYW50KCkgY29uc3QKIHsKICAgICBJbmxpbmVCb3gqIGxlYWYgPSBu
dWxscHRyOwotICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGxhc3RDaGlsZCgpOyBjaGlsZCAm
JiAhbGVhZjsgY2hpbGQgPSBjaGlsZC0+cHJldk9uTGluZSgpKQotICAgICAgICBsZWFmID0gY2hp
bGQtPmlzTGVhZigpID8gY2hpbGQgOiBkb3duY2FzdDxJbmxpbmVGbG93Qm94PigqY2hpbGQpLmxh
c3RMZWFmQ2hpbGQoKTsKKyAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsg
Y2hpbGQgJiYgIWxlYWY7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzT25MaW5lKCkpCisgICAgICAg
IGxlYWYgPSBjaGlsZC0+aXNMZWFmKCkgPyBjaGlsZCA6IGRvd25jYXN0PElubGluZUZsb3dCb3g+
KCpjaGlsZCkubGFzdExlYWZEZXNjZW5kYW50KCk7CiAgICAgcmV0dXJuIGxlYWY7CiB9CiAKQEAg
LTE1NDMsNyArMTU0Myw3IEBAIGZsb2F0IElubGluZUZsb3dCb3g6OnBsYWNlRWxsaXBzaXNCb3go
Ym9vbCBsdHIsIGZsb2F0IGJsb2NrTGVmdEVkZ2UsIGZsb2F0IGJsb2NrCiAgICAgICAgIH0KICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICB2aXNpYmxlUmlnaHRFZGdlIC09IGJveC0+bG9naWNh
bFdpZHRoKCk7Ci0gICAgICAgICAgICBib3ggPSBib3gtPnByZXZPbkxpbmUoKTsKKyAgICAgICAg
ICAgIGJveCA9IGJveC0+cHJldmlvdXNPbkxpbmUoKTsKICAgICAgICAgfQogICAgIH0KICAgICBy
ZXR1cm4gcmVzdWx0OwpAQCAtMTY1Myw3ICsxNjUzLDcgQEAgTGF5b3V0VW5pdCBJbmxpbmVGbG93
Qm94Ojpjb21wdXRlVW5kZXJBbm5vdGF0aW9uQWRqdXN0bWVudChMYXlvdXRVbml0IGFsbG93ZWRQ
b3MKIAogdm9pZCBJbmxpbmVGbG93Qm94Ojpjb2xsZWN0TGVhZkJveGVzSW5Mb2dpY2FsT3JkZXIo
VmVjdG9yPElubGluZUJveCo+JiBsZWFmQm94ZXNJbkxvZ2ljYWxPcmRlciwgQ3VzdG9tSW5saW5l
Qm94UmFuZ2VSZXZlcnNlIGN1c3RvbVJldmVyc2VJbXBsZW1lbnRhdGlvbiwgdm9pZCogdXNlckRh
dGEpIGNvbnN0CiB7Ci0gICAgSW5saW5lQm94KiBsZWFmID0gZmlyc3RMZWFmQ2hpbGQoKTsKKyAg
ICBJbmxpbmVCb3gqIGxlYWYgPSBmaXJzdExlYWZEZXNjZW5kYW50KCk7CiAKICAgICAvLyBGSVhN
RTogVGhlIHJlb3JkZXJpbmcgY29kZSBpcyBhIGNvcHkgb2YgcGFydHMgZnJvbSBCaWRpUmVzb2x2
ZXI6OmNyZWF0ZUJpZGlSdW5zRm9yTGluZSwgb3BlcmF0aW5nIGRpcmVjdGx5IG9uIElubGluZUJv
eGVzLCBpbnN0ZWFkIG9mIEJpZGlSdW5zLgogICAgIC8vIEludmVzdGlnYXRlIG9uIGhvdyB0aGlz
IGNvZGUgY291bGQgcG9zc2libHkgYmUgc2hhcmVkLgpAQCAtMTY2MSw3ICsxNjYxLDcgQEAgdm9p
ZCBJbmxpbmVGbG93Qm94Ojpjb2xsZWN0TGVhZkJveGVzSW5Mb2dpY2FsT3JkZXIoVmVjdG9yPElu
bGluZUJveCo+JiBsZWFmQm94ZXMKICAgICB1bnNpZ25lZCBjaGFyIG1heExldmVsID0gMDsKIAog
ICAgIC8vIEZpcnN0IGZpbmQgaGlnaGVzdCBhbmQgbG93ZXN0IGxldmVscywgYW5kIGluaXRpYWxp
emUgbGVhZkJveGVzSW5Mb2dpY2FsT3JkZXIgd2l0aCB0aGUgbGVhZiBib3hlcyBpbiB2aXN1YWwg
b3JkZXIuCi0gICAgZm9yICg7IGxlYWY7IGxlYWYgPSBsZWFmLT5uZXh0TGVhZkNoaWxkKCkpIHsK
KyAgICBmb3IgKDsgbGVhZjsgbGVhZiA9IGxlYWYtPm5leHRMZWFmT25MaW5lKCkpIHsKICAgICAg
ICAgbWluTGV2ZWwgPSBzdGQ6Om1pbihtaW5MZXZlbCwgbGVhZi0+YmlkaUxldmVsKCkpOwogICAg
ICAgICBtYXhMZXZlbCA9IHN0ZDo6bWF4KG1heExldmVsLCBsZWFmLT5iaWRpTGV2ZWwoKSk7CiAg
ICAgICAgIGxlYWZCb3hlc0luTG9naWNhbE9yZGVyLmFwcGVuZChsZWFmKTsKQEAgLTE3NDQsNyAr
MTc0NCw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0CiAg
ICAgY29uc3QgSW5saW5lQm94KiBwcmV2aW91c0NoaWxkID0gbnVsbHB0cjsKICAgICBmb3IgKGNv
bnN0IElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgQVNTRVJUKGNoaWxkLT5wYXJlbnQoKSA9PSB0aGlz
KTsKLSAgICAgICAgQVNTRVJUKGNoaWxkLT5wcmV2T25MaW5lKCkgPT0gcHJldmlvdXNDaGlsZCk7
CisgICAgICAgIEFTU0VSVChjaGlsZC0+cHJldmlvdXNPbkxpbmUoKSA9PSBwcmV2aW91c0NoaWxk
KTsKICAgICAgICAgcHJldmlvdXNDaGlsZCA9IGNoaWxkOwogICAgIH0KICAgICBBU1NFUlQocHJl
dmlvdXNDaGlsZCA9PSBtX2xhc3RDaGlsZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUZsb3dCb3guaAppbmRleCBiMTYxMjE1ZmNkYS4uODA0MTVkOTRmOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaApAQCAtODgsOCArODgsOCBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzTGVhZigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0g
ICAgSW5saW5lQm94KiBmaXJzdExlYWZDaGlsZCgpIGNvbnN0OwotICAgIElubGluZUJveCogbGFz
dExlYWZDaGlsZCgpIGNvbnN0OworICAgIElubGluZUJveCogZmlyc3RMZWFmRGVzY2VuZGFudCgp
IGNvbnN0OworICAgIElubGluZUJveCogbGFzdExlYWZEZXNjZW5kYW50KCkgY29uc3Q7CiAKICAg
ICB0eXBlZGVmIHZvaWQgKCpDdXN0b21JbmxpbmVCb3hSYW5nZVJldmVyc2UpKHZvaWQqIHVzZXJE
YXRhLCBWZWN0b3I8SW5saW5lQm94Kj46Oml0ZXJhdG9yIGZpcnN0LCBWZWN0b3I8SW5saW5lQm94
Kj46Oml0ZXJhdG9yIGxhc3QpOwogICAgIHZvaWQgY29sbGVjdExlYWZCb3hlc0luTG9naWNhbE9y
ZGVyKFZlY3RvcjxJbmxpbmVCb3gqPiYsIEN1c3RvbUlubGluZUJveFJhbmdlUmV2ZXJzZSBjdXN0
b21SZXZlcnNlSW1wbGVtZW50YXRpb24gPSBudWxscHRyLCB2b2lkKiB1c2VyRGF0YSA9IG51bGxw
dHIpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmlu
ZGV4IDkwYWVhY2YyMjk3Li40MzNhMDc0ZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMTMwNCw3ICsxMzA0LDcgQEAgRXhwYW5zaW9uQmVoYXZp
b3IgSW5saW5lVGV4dEJveDo6ZXhwYW5zaW9uQmVoYXZpb3IoKSBjb25zdAogICAgIEV4cGFuc2lv
bkJlaGF2aW9yIHRyYWlsaW5nQmVoYXZpb3I7CiAgICAgaWYgKGZvcmNlVHJhaWxpbmdFeHBhbnNp
b24oKSkKICAgICAgICAgdHJhaWxpbmdCZWhhdmlvciA9IEZvcmNlVHJhaWxpbmdFeHBhbnNpb247
Ci0gICAgZWxzZSBpZiAoZXhwYW5zaW9uKCkgJiYgbmV4dExlYWZDaGlsZCgpICYmICFuZXh0TGVh
ZkNoaWxkKCktPmlzTGluZUJyZWFrKCkpCisgICAgZWxzZSBpZiAoZXhwYW5zaW9uKCkgJiYgbmV4
dExlYWZPbkxpbmUoKSAmJiAhbmV4dExlYWZPbkxpbmUoKS0+aXNMaW5lQnJlYWsoKSkKICAgICAg
ICAgdHJhaWxpbmdCZWhhdmlvciA9IEFsbG93VHJhaWxpbmdFeHBhbnNpb247CiAgICAgZWxzZQog
ICAgICAgICB0cmFpbGluZ0JlaGF2aW9yID0gRm9yYmlkVHJhaWxpbmdFeHBhbnNpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IGI4NjQyZDE3
MjAzLi43MTQ2NTExMWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKQEAgLTMzMjgsNyArMzMyOCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojpj
bGVhclRydW5jYXRpb24oKQogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OmNvbnRhaW5zTm9uWmVyb0Jp
ZGlMZXZlbCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvKiByb290ID0gZmlyc3RSb290Qm94KCk7
IHJvb3Q7IHJvb3QgPSByb290LT5uZXh0Um9vdEJveCgpKSB7Ci0gICAgICAgIGZvciAoYXV0byog
Ym94ID0gcm9vdC0+Zmlyc3RMZWFmQ2hpbGQoKTsgYm94OyBib3ggPSBib3gtPm5leHRMZWFmQ2hp
bGQoKSkgeworICAgICAgICBmb3IgKGF1dG8qIGJveCA9IHJvb3QtPmZpcnN0TGVhZkRlc2NlbmRh
bnQoKTsgYm94OyBib3ggPSBib3gtPm5leHRMZWFmT25MaW5lKCkpIHsKICAgICAgICAgICAgIGlm
IChib3gtPmJpZGlMZXZlbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CkBAIC0zNDM2LDcgKzM0MzYsNyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyQmxvY2tGbG93
Ojpwb3NpdGlvbkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuKGNvbnN0IExheW91dAogICAgICAg
ICBpZiAoZnJhZ21lbnQgJiYgcm9vdC0+Y29udGFpbmluZ0ZyYWdtZW50KCkgIT0gZnJhZ21lbnQp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIXJvb3QtPmZpcnN0TGVhZkNo
aWxkKCkpCisgICAgICAgIGlmICghcm9vdC0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghZmlyc3RSb290Qm94V2l0aENoaWxkcmVuKQog
ICAgICAgICAgICAgZmlyc3RSb290Qm94V2l0aENoaWxkcmVuID0gcm9vdDsKQEAgLTM0NTEsNyAr
MzQ1MSw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9p
bnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAgICAgICAgIGlmIChwb2ludEluTG9n
aWNhbENvbnRlbnRzLnkoKSA8IHJvb3QtPnNlbGVjdGlvbkJvdHRvbSgpIHx8IChibG9ja3NBcmVG
bGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IHJvb3QtPnNlbGVjdGlvbkJv
dHRvbSgpKSkgewogICAgICAgICAgICAgaWYgKGxpbmVzQXJlRmxpcHBlZCkgewogICAgICAgICAg
ICAgICAgIFJvb3RJbmxpbmVCb3gqIG5leHRSb290Qm94V2l0aENoaWxkcmVuID0gcm9vdC0+bmV4
dFJvb3RCb3goKTsKLSAgICAgICAgICAgICAgICB3aGlsZSAobmV4dFJvb3RCb3hXaXRoQ2hpbGRy
ZW4gJiYgIW5leHRSb290Qm94V2l0aENoaWxkcmVuLT5maXJzdExlYWZDaGlsZCgpKQorICAgICAg
ICAgICAgICAgIHdoaWxlIChuZXh0Um9vdEJveFdpdGhDaGlsZHJlbiAmJiAhbmV4dFJvb3RCb3hX
aXRoQ2hpbGRyZW4tPmZpcnN0TGVhZkRlc2NlbmRhbnQoKSkKICAgICAgICAgICAgICAgICAgICAg
bmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4gPSBuZXh0Um9vdEJveFdpdGhDaGlsZHJlbi0+bmV4dFJv
b3RCb3goKTsKIAogICAgICAgICAgICAgICAgIGlmIChuZXh0Um9vdEJveFdpdGhDaGlsZHJlbiAm
JiBuZXh0Um9vdEJveFdpdGhDaGlsZHJlbi0+aXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkgJiYgKHBv
aW50SW5Mb2dpY2FsQ29udGVudHMueSgpID4gbmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmxpbmVU
b3BXaXRoTGVhZGluZygpCkBAIC0zNDc2LDkgKzM0NzYsOSBAQCBWaXNpYmxlUG9zaXRpb24gUmVu
ZGVyQmxvY2tGbG93Ojpwb3NpdGlvbkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuKGNvbnN0IExh
eW91dAogICAgICAgICAgICAgTGF5b3V0VW5pdCBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW5Ub3Ag
PSBzdGQ6Om1pbihmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4tPnNlbGVjdGlvblRvcCgpLCBMYXlv
dXRVbml0KGZpcnN0Um9vdEJveFdpdGhDaGlsZHJlbi0+bG9naWNhbFRvcCgpKSk7CiAgICAgICAg
ICAgICBpZiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCBmaXJzdFJvb3RCb3hXaXRoQ2hp
bGRyZW5Ub3AKICAgICAgICAgICAgICAgICB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludElu
TG9naWNhbENvbnRlbnRzLnkoKSA9PSBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW5Ub3ApKSB7Ci0g
ICAgICAgICAgICAgICAgSW5saW5lQm94KiBib3ggPSBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4t
PmZpcnN0TGVhZkNoaWxkKCk7CisgICAgICAgICAgICAgICAgSW5saW5lQm94KiBib3ggPSBmaXJz
dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmZpcnN0TGVhZkRlc2NlbmRhbnQoKTsKICAgICAgICAgICAg
ICAgICBpZiAoYm94LT5pc0xpbmVCcmVhaygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChJ
bmxpbmVCb3gqIG5ld0JveCA9IGJveC0+bmV4dExlYWZDaGlsZElnbm9yaW5nTGluZUJyZWFrKCkp
CisgICAgICAgICAgICAgICAgICAgIGlmIChJbmxpbmVCb3gqIG5ld0JveCA9IGJveC0+bmV4dExl
YWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpKQogICAgICAgICAgICAgICAgICAgICAgICAgYm94
ID0gbmV3Qm94OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyB5IGNvb3Jk
aW5hdGUgaXMgYWJvdmUgZmlyc3Qgcm9vdCBsaW5lIGJveCwgc28gcmV0dXJuIHRoZSBzdGFydCBv
ZiB0aGUgZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGlu
ZUJveGVzLmNwcAppbmRleCA2NjMzNzEzNDkyZi4uMzQ4MjJiNDJjMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKQEAgLTI3NSw3ICsy
NzUsNyBAQCBzdGF0aWMgYm9vbCBsaW5lRGlyZWN0aW9uUG9pbnRGaXRzSW5Cb3goaW50IHBvaW50
TGluZURpcmVjdGlvbiwgY29uc3QgSW5saW5lVGV4dAogICAgIC8vIHRoZSBhZmZpbml0eSBtdXN0
IGJlIGRvd25zdHJlYW0gc28gdGhlIHBvc2l0aW9uIGRvZXNuJ3QganVtcCBiYWNrIHRvIHRoZSBw
cmV2aW91cyBsaW5lCiAgICAgLy8gZXhjZXB0IHdoZW4gYm94IGlzIHRoZSBmaXJzdCBib3ggaW4g
dGhlIGxpbmUKICAgICBpZiAocG9pbnRMaW5lRGlyZWN0aW9uIDw9IGJveC5sb2dpY2FsTGVmdCgp
KSB7Ci0gICAgICAgIHNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtID0gIWJveC5wcmV2TGVhZkNo
aWxkKCkgPyBVcHN0cmVhbUlmUG9zaXRpb25Jc05vdEF0U3RhcnQgOiBBbHdheXNEb3duc3RyZWFt
OworICAgICAgICBzaG91bGRBZmZpbml0eUJlRG93bnN0cmVhbSA9ICFib3gucHJldmlvdXNMZWFm
T25MaW5lKCkgPyBVcHN0cmVhbUlmUG9zaXRpb25Jc05vdEF0U3RhcnQgOiBBbHdheXNEb3duc3Ry
ZWFtOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI5MCwxMCArMjkwLDEwIEBA
IHN0YXRpYyBib29sIGxpbmVEaXJlY3Rpb25Qb2ludEZpdHNJbkJveChpbnQgcG9pbnRMaW5lRGly
ZWN0aW9uLCBjb25zdCBJbmxpbmVUZXh0CiAKICAgICAvLyBib3ggaXMgZmlyc3Qgb24gbGluZQog
ICAgIC8vIGFuZCB0aGUgeCBjb29yZGluYXRlIGlzIHRvIHRoZSBsZWZ0IG9mIHRoZSBmaXJzdCB0
ZXh0IGJveCBsZWZ0IGVkZ2UKLSAgICBpZiAoIWJveC5wcmV2TGVhZkNoaWxkSWdub3JpbmdMaW5l
QnJlYWsoKSAmJiBwb2ludExpbmVEaXJlY3Rpb24gPCBib3gubG9naWNhbExlZnQoKSkKKyAgICBp
ZiAoIWJveC5wcmV2aW91c0xlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpICYmIHBvaW50TGlu
ZURpcmVjdGlvbiA8IGJveC5sb2dpY2FsTGVmdCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIGlmICghYm94Lm5leHRMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpKSB7CisgICAgaWYg
KCFib3gubmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpKSB7CiAgICAgICAgIC8vIGJv
eCBpcyBsYXN0IG9uIGxpbmUKICAgICAgICAgLy8gYW5kIHRoZSB4IGNvb3JkaW5hdGUgaXMgdG8g
dGhlIHJpZ2h0IG9mIHRoZSBsYXN0IHRleHQgYm94IHJpZ2h0IGVkZ2UKICAgICAgICAgLy8gZ2Vu
ZXJhdGUgVmlzaWJsZVBvc2l0aW9uLCB1c2UgVVBTVFJFQU0gYWZmaW5pdHkgaWYgcG9zc2libGUK
QEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGNyZWF0ZVZpc2libGVQ
b3NpdGlvbkFmdGVyQWRqdXN0aW5nT2Zmc2V0Rm9yQmlEaShjb25zdCBJbgogICAgIGlmIChwb3Np
dGlvbklzQXRTdGFydE9mQm94ID09IGJveC5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpIHsKICAg
ICAgICAgLy8gb2Zmc2V0IGlzIG9uIHRoZSBsZWZ0IGVkZ2UKIAotICAgICAgICBjb25zdCBJbmxp
bmVCb3gqIHByZXZCb3ggPSBib3gucHJldkxlYWZDaGlsZElnbm9yaW5nTGluZUJyZWFrKCk7Cisg
ICAgICAgIGNvbnN0IElubGluZUJveCogcHJldkJveCA9IGJveC5wcmV2aW91c0xlYWZPbkxpbmVJ
Z25vcmluZ0xpbmVCcmVhaygpOwogICAgICAgICBpZiAoKHByZXZCb3ggJiYgcHJldkJveC0+Ymlk
aUxldmVsKCkgPT0gYm94LmJpZGlMZXZlbCgpKQogICAgICAgICAgICAgfHwgYm94LnJlbmRlcmVy
KCkuY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gYm94LmRpcmVjdGlv
bigpKSAvLyBGSVhNRTogbGVmdCBvbiAxMkNCQQogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVZp
c2libGVQb3NpdGlvbkZvckJveChib3gsIGJveC5jYXJldExlZnRtb3N0T2Zmc2V0KCksIHNob3Vs
ZEFmZmluaXR5QmVEb3duc3RyZWFtKTsKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgVmlzaWJs
ZVBvc2l0aW9uIGNyZWF0ZVZpc2libGVQb3NpdGlvbkFmdGVyQWRqdXN0aW5nT2Zmc2V0Rm9yQmlE
aShjb25zdCBJbgogICAgICAgICAgICAgY29uc3QgSW5saW5lQm94KiBsZWZ0bW9zdEJveDsKICAg
ICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICBsZWZ0bW9zdEJveCA9IHByZXZCb3g7Ci0g
ICAgICAgICAgICAgICAgcHJldkJveCA9IGxlZnRtb3N0Qm94LT5wcmV2TGVhZkNoaWxkSWdub3Jp
bmdMaW5lQnJlYWsoKTsKKyAgICAgICAgICAgICAgICBwcmV2Qm94ID0gbGVmdG1vc3RCb3gtPnBy
ZXZpb3VzTGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAgICAgICAgICAgICB9IHdoaWxl
IChwcmV2Qm94ICYmIHByZXZCb3gtPmJpZGlMZXZlbCgpID4gYm94LmJpZGlMZXZlbCgpKTsKICAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb25Gb3JCb3goKmxlZnRtb3N0Qm94
LCBsZWZ0bW9zdEJveC0+Y2FyZXRSaWdodG1vc3RPZmZzZXQoKSwgc2hvdWxkQWZmaW5pdHlCZURv
d25zdHJlYW0pOwogICAgICAgICB9CkBAIC0zNTMsNyArMzUzLDcgQEAgc3RhdGljIFZpc2libGVQ
b3NpdGlvbiBjcmVhdGVWaXNpYmxlUG9zaXRpb25BZnRlckFkanVzdGluZ09mZnNldEZvckJpRGko
Y29uc3QgSW4KICAgICAgICAgICAgIGNvbnN0IElubGluZUJveCogbmV4dEJveCA9ICZib3g7CiAg
ICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgcmlnaHRtb3N0Qm94ID0gbmV4dEJveDsK
LSAgICAgICAgICAgICAgICBuZXh0Qm94ID0gcmlnaHRtb3N0Qm94LT5uZXh0TGVhZkNoaWxkSWdu
b3JpbmdMaW5lQnJlYWsoKTsKKyAgICAgICAgICAgICAgICBuZXh0Qm94ID0gcmlnaHRtb3N0Qm94
LT5uZXh0TGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAgICAgICAgICAgICB9IHdoaWxl
IChuZXh0Qm94ICYmIG5leHRCb3gtPmJpZGlMZXZlbCgpID49IGJveC5iaWRpTGV2ZWwoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uRm9yQm94KCpyaWdodG1vc3RC
b3gsCiAgICAgICAgICAgICAgICAgYm94LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHJpZ2h0
bW9zdEJveC0+Y2FyZXRNYXhPZmZzZXQoKSA6IHJpZ2h0bW9zdEJveC0+Y2FyZXRNaW5PZmZzZXQo
KSwgc2hvdWxkQWZmaW5pdHlCZURvd25zdHJlYW0pOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRp
YyBWaXNpYmxlUG9zaXRpb24gY3JlYXRlVmlzaWJsZVBvc2l0aW9uQWZ0ZXJBZGp1c3RpbmdPZmZz
ZXRGb3JCaURpKGNvbnN0IEluCiAgICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb25G
b3JCb3goYm94LCBib3guY2FyZXRSaWdodG1vc3RPZmZzZXQoKSwgc2hvdWxkQWZmaW5pdHlCZURv
d25zdHJlYW0pOwogICAgIH0KIAotICAgIGNvbnN0IElubGluZUJveCogbmV4dEJveCA9IGJveC5u
ZXh0TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsoKTsKKyAgICBjb25zdCBJbmxpbmVCb3gqIG5l
eHRCb3ggPSBib3gubmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpOwogICAgIGlmICgo
bmV4dEJveCAmJiBuZXh0Qm94LT5iaWRpTGV2ZWwoKSA9PSBib3guYmlkaUxldmVsKCkpCiAgICAg
ICAgIHx8IGJveC5yZW5kZXJlcigpLmNvbnRhaW5pbmdCbG9jaygpLT5zdHlsZSgpLmRpcmVjdGlv
bigpID09IGJveC5kaXJlY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3Np
dGlvbkZvckJveChib3gsIGJveC5jYXJldFJpZ2h0bW9zdE9mZnNldCgpLCBzaG91bGRBZmZpbml0
eUJlRG93bnN0cmVhbSk7CkBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlv
biBjcmVhdGVWaXNpYmxlUG9zaXRpb25BZnRlckFkanVzdGluZ09mZnNldEZvckJpRGkoY29uc3Qg
SW4KICAgICAgICAgY29uc3QgSW5saW5lQm94KiByaWdodG1vc3RCb3g7CiAgICAgICAgIGRvIHsK
ICAgICAgICAgICAgIHJpZ2h0bW9zdEJveCA9IG5leHRCb3g7Ci0gICAgICAgICAgICBuZXh0Qm94
ID0gcmlnaHRtb3N0Qm94LT5uZXh0TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsoKTsKKyAgICAg
ICAgICAgIG5leHRCb3ggPSByaWdodG1vc3RCb3gtPm5leHRMZWFmT25MaW5lSWdub3JpbmdMaW5l
QnJlYWsoKTsKICAgICAgICAgfSB3aGlsZSAobmV4dEJveCAmJiBuZXh0Qm94LT5iaWRpTGV2ZWwo
KSA+IGJveC5iaWRpTGV2ZWwoKSk7CiAgICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRp
b25Gb3JCb3goKnJpZ2h0bW9zdEJveCwgcmlnaHRtb3N0Qm94LT5jYXJldExlZnRtb3N0T2Zmc2V0
KCksIHNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtKTsKICAgICB9CkBAIC0zODQsNyArMzg0LDcg
QEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBjcmVhdGVWaXNpYmxlUG9zaXRpb25BZnRlckFkanVz
dGluZ09mZnNldEZvckJpRGkoY29uc3QgSW4KICAgICAgICAgY29uc3QgSW5saW5lQm94KiBwcmV2
Qm94ID0gJmJveDsKICAgICAgICAgZG8gewogICAgICAgICAgICAgbGVmdG1vc3RCb3ggPSBwcmV2
Qm94OwotICAgICAgICAgICAgcHJldkJveCA9IGxlZnRtb3N0Qm94LT5wcmV2TGVhZkNoaWxkSWdu
b3JpbmdMaW5lQnJlYWsoKTsKKyAgICAgICAgICAgIHByZXZCb3ggPSBsZWZ0bW9zdEJveC0+cHJl
dmlvdXNMZWFmT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKTsKICAgICAgICAgfSB3aGlsZSAocHJl
dkJveCAmJiBwcmV2Qm94LT5iaWRpTGV2ZWwoKSA+PSBib3guYmlkaUxldmVsKCkpOwogICAgICAg
ICByZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uRm9yQm94KCpsZWZ0bW9zdEJveCwKICAgICAg
ICAgICAgIGJveC5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsZWZ0bW9zdEJveC0+Y2FyZXRN
aW5PZmZzZXQoKSA6IGxlZnRtb3N0Qm94LT5jYXJldE1heE9mZnNldCgpLCBzaG91bGRBZmZpbml0
eUJlRG93bnN0cmVhbSk7CkBAIC00MDQsNyArNDA0LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRl
clRleHRMaW5lQm94ZXM6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVy
ZXIKIAogICAgIElubGluZVRleHRCb3gqIGxhc3RCb3ggPSBudWxscHRyOwogICAgIGZvciAoYXV0
byogYm94ID0gbV9maXJzdDsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94KCkpIHsKLSAgICAg
ICAgaWYgKGJveC0+aXNMaW5lQnJlYWsoKSAmJiAhYm94LT5wcmV2TGVhZkNoaWxkKCkgJiYgYm94
LT5uZXh0TGVhZkNoaWxkKCkgJiYgIWJveC0+bmV4dExlYWZDaGlsZCgpLT5pc0xpbmVCcmVhaygp
KQorICAgICAgICBpZiAoYm94LT5pc0xpbmVCcmVhaygpICYmICFib3gtPnByZXZpb3VzTGVhZk9u
TGluZSgpICYmIGJveC0+bmV4dExlYWZPbkxpbmUoKSAmJiAhYm94LT5uZXh0TGVhZk9uTGluZSgp
LT5pc0xpbmVCcmVhaygpKQogICAgICAgICAgICAgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpOwog
CiAgICAgICAgIGF1dG8mIHJvb3RCb3ggPSBib3gtPnJvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCA0NDU1ODQxYWYzMi4uODE5NDMwOTMxNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKQEAgLTk0LDcg
Kzk0LDcgQEAgdm9pZCBSb290SW5saW5lQm94OjpjbGVhclRydW5jYXRpb24oKQogCiBib29sIFJv
b3RJbmxpbmVCb3g6OmlzSHlwaGVuYXRlZCgpIGNvbnN0CiB7Ci0gICAgZm9yIChJbmxpbmVCb3gq
IGJveCA9IGZpcnN0TGVhZkNoaWxkKCk7IGJveDsgYm94ID0gYm94LT5uZXh0TGVhZkNoaWxkKCkp
IHsKKyAgICBmb3IgKElubGluZUJveCogYm94ID0gZmlyc3RMZWFmRGVzY2VuZGFudCgpOyBib3g7
IGJveCA9IGJveC0+bmV4dExlYWZPbkxpbmUoKSkgewogICAgICAgICBpZiAoaXM8SW5saW5lVGV4
dEJveD4oKmJveCkgJiYgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4oKmJveCkuaGFzSHlwaGVuKCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC00NTIsNyArNDUyLDcgQEAgR2Fw
UmVjdHMgUm9vdElubGluZUJveDo6bGluZVNlbGVjdGlvbkdhcChSZW5kZXJCbG9jayYgcm9vdEJs
b2NrLCBjb25zdCBMYXlvdXRQb2kKICAgICAgICAgLy8gTm93IGZpbGwgaW4gYW55IGdhcHMgb24g
dGhlIGxpbmUgdGhhdCBvY2N1cnJlZCBiZXR3ZWVuIHR3byBzZWxlY3RlZCBlbGVtZW50cy4KICAg
ICAgICAgTGF5b3V0VW5pdCBsYXN0TG9naWNhbExlZnQgeyBmaXJzdEJveC0+bG9naWNhbFJpZ2h0
KCkgfTsKICAgICAgICAgYm9vbCBpc1ByZXZpb3VzQm94U2VsZWN0ZWQgPSBmaXJzdEJveC0+c2Vs
ZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbk5vbmU7Ci0gICAgICAgIGZv
ciAoSW5saW5lQm94KiBib3ggPSBmaXJzdEJveC0+bmV4dExlYWZDaGlsZCgpOyBib3g7IGJveCA9
IGJveC0+bmV4dExlYWZDaGlsZCgpKSB7CisgICAgICAgIGZvciAoSW5saW5lQm94KiBib3ggPSBm
aXJzdEJveC0+bmV4dExlYWZPbkxpbmUoKTsgYm94OyBib3ggPSBib3gtPm5leHRMZWFmT25MaW5l
KCkpIHsKICAgICAgICAgICAgIGlmIChib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2Jq
ZWN0OjpTZWxlY3Rpb25Ob25lKSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBsb2dpY2Fs
UmVjdCB7IGxhc3RMb2dpY2FsTGVmdCwgc2VsVG9wLCBMYXlvdXRVbml0KGJveC0+bG9naWNhbExl
ZnQoKSAtIGxhc3RMb2dpY2FsTGVmdCksIHNlbEhlaWdodCB9OwogICAgICAgICAgICAgICAgIGxv
Z2ljYWxSZWN0Lm1vdmUocmVuZGVyZXIoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb2Zm
c2V0RnJvbVJvb3RCbG9jayA6IExheW91dFNpemUob2Zmc2V0RnJvbVJvb3RCbG9jay5oZWlnaHQo
KSwgb2Zmc2V0RnJvbVJvb3RCbG9jay53aWR0aCgpKSk7CkBAIC01MzEsNyArNTMxLDcgQEAgUmVu
ZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBSb290SW5saW5lQm94OjpzZWxlY3Rpb25TdGF0ZSgp
CiB7CiAgICAgLy8gV2FsayBvdmVyIGFsbCBvZiB0aGUgc2VsZWN0ZWQgYm94ZXMuCiAgICAgUmVu
ZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBzdGF0ZSA9IFJlbmRlck9iamVjdDo6U2VsZWN0aW9u
Tm9uZTsKLSAgICBmb3IgKElubGluZUJveCogYm94ID0gZmlyc3RMZWFmQ2hpbGQoKTsgYm94OyBi
b3ggPSBib3gtPm5leHRMZWFmQ2hpbGQoKSkgeworICAgIGZvciAoSW5saW5lQm94KiBib3ggPSBm
aXJzdExlYWZEZXNjZW5kYW50KCk7IGJveDsgYm94ID0gYm94LT5uZXh0TGVhZk9uTGluZSgpKSB7
CiAgICAgICAgIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhdGUgYm94U3RhdGUgPSBib3gtPnNl
bGVjdGlvblN0YXRlKCk7CiAgICAgICAgIGlmICgoYm94U3RhdGUgPT0gUmVuZGVyT2JqZWN0OjpT
ZWxlY3Rpb25TdGFydCAmJiBzdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkVuZCkgfHwK
ICAgICAgICAgICAgIChib3hTdGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkVuZCAmJiBz
dGF0ZSA9PSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXJ0KSkKQEAgLTU1Myw3ICs1NTMsNyBA
QCBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIFJvb3RJbmxpbmVCb3g6OnNlbGVjdGlvblN0
YXRlKCkKIAogSW5saW5lQm94KiBSb290SW5saW5lQm94OjpmaXJzdFNlbGVjdGVkQm94KCkKIHsK
LSAgICBmb3IgKGF1dG8qIGJveCA9IGZpcnN0TGVhZkNoaWxkKCk7IGJveDsgYm94ID0gYm94LT5u
ZXh0TGVhZkNoaWxkKCkpIHsKKyAgICBmb3IgKGF1dG8qIGJveCA9IGZpcnN0TGVhZkRlc2NlbmRh
bnQoKTsgYm94OyBib3ggPSBib3gtPm5leHRMZWFmT25MaW5lKCkpIHsKICAgICAgICAgaWYgKGJv
eC0+c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbk5vbmUpCiAgICAg
ICAgICAgICByZXR1cm4gYm94OwogICAgIH0KQEAgLTU2Miw3ICs1NjIsNyBAQCBJbmxpbmVCb3gq
IFJvb3RJbmxpbmVCb3g6OmZpcnN0U2VsZWN0ZWRCb3goKQogCiBJbmxpbmVCb3gqIFJvb3RJbmxp
bmVCb3g6Omxhc3RTZWxlY3RlZEJveCgpCiB7Ci0gICAgZm9yIChhdXRvKiBib3ggPSBsYXN0TGVh
ZkNoaWxkKCk7IGJveDsgYm94ID0gYm94LT5wcmV2TGVhZkNoaWxkKCkpIHsKKyAgICBmb3IgKGF1
dG8qIGJveCA9IGxhc3RMZWFmRGVzY2VuZGFudCgpOyBib3g7IGJveCA9IGJveC0+cHJldmlvdXNM
ZWFmT25MaW5lKCkpIHsKICAgICAgICAgaWYgKGJveC0+c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5k
ZXJPYmplY3Q6OlNlbGVjdGlvbk5vbmUpCiAgICAgICAgICAgICByZXR1cm4gYm94OwogICAgIH0K
QEAgLTc2NiwxNCArNzY2LDE0IEBAIElubGluZUJveCogUm9vdElubGluZUJveDo6Y2xvc2VzdExl
YWZDaGlsZEZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGVuCiAKIElubGluZUJv
eCogUm9vdElubGluZUJveDo6Y2xvc2VzdExlYWZDaGlsZEZvckxvZ2ljYWxMZWZ0UG9zaXRpb24o
aW50IGxlZnRQb3NpdGlvbiwgYm9vbCBvbmx5RWRpdGFibGVMZWF2ZXMpCiB7Ci0gICAgSW5saW5l
Qm94KiBmaXJzdExlYWYgPSBmaXJzdExlYWZDaGlsZCgpOwotICAgIElubGluZUJveCogbGFzdExl
YWYgPSBsYXN0TGVhZkNoaWxkKCk7CisgICAgSW5saW5lQm94KiBmaXJzdExlYWYgPSBmaXJzdExl
YWZEZXNjZW5kYW50KCk7CisgICAgSW5saW5lQm94KiBsYXN0TGVhZiA9IGxhc3RMZWFmRGVzY2Vu
ZGFudCgpOwogCiAgICAgaWYgKGZpcnN0TGVhZiAhPSBsYXN0TGVhZikgewogICAgICAgICBpZiAo
Zmlyc3RMZWFmLT5pc0xpbmVCcmVhaygpKQotICAgICAgICAgICAgZmlyc3RMZWFmID0gZmlyc3RM
ZWFmLT5uZXh0TGVhZkNoaWxkSWdub3JpbmdMaW5lQnJlYWsoKTsKKyAgICAgICAgICAgIGZpcnN0
TGVhZiA9IGZpcnN0TGVhZi0+bmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpOwogICAg
ICAgICBlbHNlIGlmIChsYXN0TGVhZi0+aXNMaW5lQnJlYWsoKSkKLSAgICAgICAgICAgIGxhc3RM
ZWFmID0gbGFzdExlYWYtPnByZXZMZWFmQ2hpbGRJZ25vcmluZ0xpbmVCcmVhaygpOworICAgICAg
ICAgICAgbGFzdExlYWYgPSBsYXN0TGVhZi0+cHJldmlvdXNMZWFmT25MaW5lSWdub3JpbmdMaW5l
QnJlYWsoKTsKICAgICB9CiAKICAgICBpZiAoZmlyc3RMZWFmID09IGxhc3RMZWFmICYmICghb25s
eUVkaXRhYmxlTGVhdmVzIHx8IGlzRWRpdGFibGVMZWFmKGZpcnN0TGVhZikpKQpAQCAtNzkxLDcg
Kzc5MSw3IEBAIElubGluZUJveCogUm9vdElubGluZUJveDo6Y2xvc2VzdExlYWZDaGlsZEZvckxv
Z2ljYWxMZWZ0UG9zaXRpb24oaW50IGxlZnRQb3NpdGlvCiAgICAgICAgIHJldHVybiBsYXN0TGVh
ZjsKIAogICAgIElubGluZUJveCogY2xvc2VzdExlYWYgPSBudWxscHRyOwotICAgIGZvciAoSW5s
aW5lQm94KiBsZWFmID0gZmlyc3RMZWFmOyBsZWFmOyBsZWFmID0gbGVhZi0+bmV4dExlYWZDaGls
ZElnbm9yaW5nTGluZUJyZWFrKCkpIHsKKyAgICBmb3IgKElubGluZUJveCogbGVhZiA9IGZpcnN0
TGVhZjsgbGVhZjsgbGVhZiA9IGxlYWYtPm5leHRMZWFmT25MaW5lSWdub3JpbmdMaW5lQnJlYWso
KSkgewogICAgICAgICBpZiAoIWxlYWYtPnJlbmRlcmVyKCkuaXNMaXN0TWFya2VyKCkgJiYgKCFv
bmx5RWRpdGFibGVMZWF2ZXMgfHwgaXNFZGl0YWJsZUxlYWYobGVhZikpKSB7CiAgICAgICAgICAg
ICBjbG9zZXN0TGVhZiA9IGxlYWY7CiAgICAgICAgICAgICBpZiAobGVmdFBvc2l0aW9uIDwgbGVh
Zi0+bG9naWNhbFJpZ2h0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSb290SW5saW5lQm94LmNwcAppbmRleCA5NzE5MzQyNGRhZS4uYmY1ZjNhZGZiMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcApA
QCAtMTkwLDE0ICsxOTAsMTQgQEAgdm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlvdXRSb290Qm94
KGNvbnN0IEZsb2F0UmVjdCYgY2hpbGRSZWN0KQogCiBJbmxpbmVCb3gqIFNWR1Jvb3RJbmxpbmVC
b3g6OmNsb3Nlc3RMZWFmQ2hpbGRGb3JQb3NpdGlvbihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQp
CiB7Ci0gICAgSW5saW5lQm94KiBmaXJzdExlYWYgPSBmaXJzdExlYWZDaGlsZCgpOwotICAgIElu
bGluZUJveCogbGFzdExlYWYgPSBsYXN0TGVhZkNoaWxkKCk7CisgICAgSW5saW5lQm94KiBmaXJz
dExlYWYgPSBmaXJzdExlYWZEZXNjZW5kYW50KCk7CisgICAgSW5saW5lQm94KiBsYXN0TGVhZiA9
IGxhc3RMZWFmRGVzY2VuZGFudCgpOwogICAgIGlmIChmaXJzdExlYWYgPT0gbGFzdExlYWYpCiAg
ICAgICAgIHJldHVybiBmaXJzdExlYWY7CiAKICAgICAvLyBGSVhNRTogQ2hlY2sgZm9yIHZlcnRp
Y2FsIHRleHQhCiAgICAgSW5saW5lQm94KiBjbG9zZXN0TGVhZiA9IG51bGxwdHI7Ci0gICAgZm9y
IChJbmxpbmVCb3gqIGxlYWYgPSBmaXJzdExlYWY7IGxlYWY7IGxlYWYgPSBsZWFmLT5uZXh0TGVh
ZkNoaWxkKCkpIHsKKyAgICBmb3IgKElubGluZUJveCogbGVhZiA9IGZpcnN0TGVhZjsgbGVhZjsg
bGVhZiA9IGxlYWYtPm5leHRMZWFmT25MaW5lKCkpIHsKICAgICAgICAgaWYgKCFsZWFmLT5pc1NW
R0lubGluZVRleHRCb3goKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAocG9p
bnQueSgpIDwgbGVhZi0+eSgpKQpAQCAtMjE1LDcgKzIxNSw3IEBAIElubGluZUJveCogU1ZHUm9v
dElubGluZUJveDo6Y2xvc2VzdExlYWZDaGlsZEZvclBvc2l0aW9uKGNvbnN0IExheW91dFBvaW50
JiBwb2luCiAKIGJvb2wgU1ZHUm9vdElubGluZUJveDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVz
dFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBIaXRU
ZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCiB7Ci0gICAgZm9yIChJbmxpbmVCb3gqIGxlYWYgPSBm
aXJzdExlYWZDaGlsZCgpOyBsZWFmOyBsZWFmID0gbGVhZi0+bmV4dExlYWZDaGlsZCgpKSB7Cisg
ICAgZm9yIChJbmxpbmVCb3gqIGxlYWYgPSBmaXJzdExlYWZEZXNjZW5kYW50KCk7IGxlYWY7IGxl
YWYgPSBsZWFmLT5uZXh0TGVhZk9uTGluZSgpKSB7CiAgICAgICAgIGlmICghbGVhZi0+aXNTVkdJ
bmxpbmVUZXh0Qm94KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGxlYWYt
Pm5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11
bGF0ZWRPZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20sIGhpdFRlc3RBY3Rpb24pKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>