<?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>211575</bug_id>
          
          <creation_ts>2020-05-07 08:52:05 -0700</creation_ts>
          <short_desc>Simplify several IPC sending call sites in the UIProcess</short_desc>
          <delta_ts>2020-05-07 09:52:17 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1650122</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-07 08:52:05 -0700</bug_when>
    <thetext>Simplify several IPC sending call sites in the UIProcess by leveraging the fact that WebPageProxy subclasses IPC::MessageSender.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650123</commentid>
    <comment_count>1</comment_count>
      <attachid>398739</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-07 08:53:49 -0700</bug_when>
    <thetext>Created attachment 398739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650159</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-07 09:51:04 -0700</bug_when>
    <thetext>Committed r261299: &lt;https://trac.webkit.org/changeset/261299&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398739.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650162</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-07 09:52:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/62980581&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398739</attachid>
            <date>2020-05-07 08:53:49 -0700</date>
            <delta_ts>2020-05-07 09:51:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211575-20200507085348.patch</filename>
            <type>text/plain</type>
            <size>46330</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRiZTg0MmRhM2I1YjdhOGE3
ODcxNjI5MjY5ZTQxNjM1ZTlhMDM4N2EuLjJiZjBkZmNlMzU5MDcxYTE3MTgxOGEwY2NjNTAzY2Nm
N2Y1YzRjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA3IEBACisyMDIwLTA1LTA3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgc2V2ZXJhbCBJUEMg
c2VuZGluZyBjYWxsIHNpdGVzIGluIHRoZSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTU3NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IHNldmVyYWwgSVBDIHNlbmRpbmcg
Y2FsbCBzaXRlcyBpbiB0aGUgVUlQcm9jZXNzIGJ5IGxldmVyYWdpbmcgdGhlIGZhY3QKKyAgICAg
ICAgdGhhdCBXZWJQYWdlUHJveHkgc3ViY2xhc3NlcyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNraW5nQ29udHJvbGxlci5tbToKKyAgICAg
ICAgKFdlYktpdDo6VGV4dENoZWNraW5nQ29udHJvbGxlcjo6cmVwbGFjZVJlbGF0aXZlVG9TZWxl
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyOjpyZW1vdmVB
bm5vdGF0aW9uUmVsYXRpdmVUb1NlbGVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBl
cmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBPZkN1cnJlbnRTZWxlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omluc2VydERpY3RhdGVkVGV4dEFzeW5jKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzcGVha2luZ0Vycm9yT2NjdXJyZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dm9pY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWls
YWJsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXREaWFnbm9zdGljTG9n
Z2luZ0F2YWlsYWJsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpyZW1vdGVGaWxlUmVw
bGFjZUNvbnRlbnRzQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvZ3Rr
L1dlYkluc3BlY3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZmlsZVJlcGxhY2VD
b250ZW50c0NhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZCk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1BcHBlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNy
ZWF0ZVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGVueVJlcXVl
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVQcm94eTo6Y29sbGFwc2VTZWxlY3Rpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbFNjcmVlbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNj
cmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4
aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6c2V0QW5pbWF0aW5nRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnNhdmVTY3JvbGxQb3NpdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlc3RvcmVTY3JvbGxQb3NpdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnNldEZ1bGxz
Y3JlZW5JbnNldHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpzZXRGdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbik6CisgICAg
ICAgICogVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmdldENlbnRlckZvclpvb21HZXN0dXJlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJL
aXQ6OlNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXI6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlv
bkdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRp
b25Jc1VwVG9EYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVR3b0ZpbmdlclRhcEF0
UG9pbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVN0eWx1c1Npbmds
ZVRhcEF0UG9pbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlZ2lzdGVyVUlQ
cm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnBvdGVudGlhbFRhcEF0UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y2FuY2VsUG90ZW50aWFsVGFwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY29nbml6
ZUxvbmdQcmVzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlRG91Ymxl
VGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjppbnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpibHVyRm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldElzU2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRGb2N1c2VkRWxlbWVudFZh
bHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRGb2N1c2VkRWxlbWVudFZh
bHVlQXNOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEZvY3VzZWRF
bGVtZW50U2VsZWN0ZWRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNt
YXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbmRvd0FuZFZp
ZXdGcmFtZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpmb250QXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcGxhY2VTZWxlY3Rpb25XaXRoUGFzdGVib2FyZERhdGEp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9Q
bHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwcGVyY2FzZVdvcmQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omxvd2VyY2FzZVdvcmQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmNhcGl0YWxpemVXb3JkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmlu
Z0ZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphY2NlcHRzRmlyc3RN
b3VzZSk6CisKIDIwMjAtMDUtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmRXaXRoQXN5bmNSZXBseSgp
IHNob3VsZCBwcmV2ZW50IGF1eGlsaWFyeSBwcm9jZXNzIHN1c3BlbnNpb24gd2hpbGUgcHJvY2Vz
c2luZyB0aGUgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9U
ZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VGV4dENoZWNraW5nQ29udHJvbGxlci5tbQppbmRleCAzNjJlMDU5OGEzZDg4ODMxNzdhNzQ5MGE0
YWUwZGQ3YjU0NmY2NjU5Li5kMmVkMWZiNjdjZGYxNTJjYTQyYjAwZDY3ZThiMDc3YWNjNGU4OWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9UZXh0Q2hlY2tpbmdD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1RleHRDaGVj
a2luZ0NvbnRyb2xsZXIubW0KQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBUZXh0Q2hlY2tpbmdDb250
cm9sbGVyOjpyZXBsYWNlUmVsYXRpdmVUb1NlbGVjdGlvbihOU0F0dHJpYnV0ZWRTdHJpbmcgKmFu
bm8KICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlRleHRDaGVja2luZ0NvbnRy
b2xsZXJQcm94eTo6UmVwbGFjZVJlbGF0aXZlVG9TZWxlY3Rpb24oeyBhbm5vdGF0ZWRTdHJpbmcs
IG5pbCB9LCBzZWxlY3Rpb25PZmZzZXQsIGxlbmd0aCwgcmVsYXRpdmVSZXBsYWNlbWVudExvY2F0
aW9uLCByZWxhdGl2ZVJlcGxhY2VtZW50TGVuZ3RoKSwgbV9wYWdlLndlYlBhZ2VJRCgpKTsKKyAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjpSZXBs
YWNlUmVsYXRpdmVUb1NlbGVjdGlvbih7IGFubm90YXRlZFN0cmluZywgbmlsIH0sIHNlbGVjdGlv
bk9mZnNldCwgbGVuZ3RoLCByZWxhdGl2ZVJlcGxhY2VtZW50TG9jYXRpb24sIHJlbGF0aXZlUmVw
bGFjZW1lbnRMZW5ndGgpKTsKIH0KIAogdm9pZCBUZXh0Q2hlY2tpbmdDb250cm9sbGVyOjpyZW1v
dmVBbm5vdGF0aW9uUmVsYXRpdmVUb1NlbGVjdGlvbihOU1N0cmluZyAqYW5ub3RhdGlvbk5hbWUs
IGludDY0X3Qgc2VsZWN0aW9uT2Zmc2V0LCB1aW50NjRfdCBsZW5ndGgpCkBAIC01Miw3ICs1Miw3
IEBAIHZvaWQgVGV4dENoZWNraW5nQ29udHJvbGxlcjo6cmVtb3ZlQW5ub3RhdGlvblJlbGF0aXZl
VG9TZWxlY3Rpb24oTlNTdHJpbmcgKmFubm90CiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1By
b2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6OlJlbW92ZUFubm90YXRpb25SZWxh
dGl2ZVRvU2VsZWN0aW9uKGFubm90YXRpb25OYW1lLCBzZWxlY3Rpb25PZmZzZXQsIGxlbmd0aCks
IG1fcGFnZS53ZWJQYWdlSUQoKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlRleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eTo6UmVtb3ZlQW5ub3RhdGlvblJlbGF0aXZlVG9TZWxlY3Rpb24o
YW5ub3RhdGlvbk5hbWUsIHNlbGVjdGlvbk9mZnNldCwgbGVuZ3RoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbQppbmRleCAyNWE4M2Q3ODYzZmY0YjA4YmViNmVjNjgxMWZkMTE0MGYx
OGFiZDU1Li5iMjZlZGQ5ZjBhNTAzZjY1ZTY0Y2RkY2Y3N2Q1NjU5ZWQ5YTc0MjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpA
QCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwZXJmb3JtRGljdGlvbmFyeUxv
b2t1cEF0TG9jYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYKICAgICBpZiAoIWhhc1J1
bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKHBv
aW50KSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBlcmZvcm1E
aWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihwb2ludCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBPZkN1cnJlbnRTZWxlY3Rpb24oKQpAQCAtMjM5LDcg
KzIzOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cE9mQ3Vy
cmVudFNlbGVjdGlvbigpCiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCi0gICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwT2ZDdXJyZW50U2VsZWN0aW9uKCksIG1fd2ViUGFnZUlEKTsKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpQZXJmb3JtRGljdGlvbmFyeUxvb2t1cE9mQ3VycmVu
dFNlbGVjdGlvbigpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Omluc2VydERpY3RhdGVkVGV4
dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVu
dFJhbmdlLCBjb25zdCBWZWN0b3I8VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlPiYgZGljdGF0aW9u
QWx0ZXJuYXRpdmVzV2l0aFJhbmdlLCBJbnNlcnRUZXh0T3B0aW9ucyYmIG9wdGlvbnMpCkBAIC0y
NTksNyArMjU5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omluc2VydERpY3RhdGVkVGV4dEFzeW5j
KGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmcKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNlcnREaWN0
YXRlZFRleHRBc3luYyB7IHRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0
aXZlcywgV1RGTW92ZShvcHRpb25zKSB9LCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6SW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMgeyB0ZXh0LCByZXBsYWNlbWVudFJh
bmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIFdURk1vdmUob3B0aW9ucykgfSk7CiB9CiAgICAg
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKQEAgLTMxMywxNyArMzEzLDE3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSZXN1bWVTcGVha2luZyhXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSYpCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzcGVha2luZ0Vycm9yT2NjdXJyZWQo
V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmKQogewotICAgIHByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTcGVha2luZ0Vycm9yT2NjdXJyZWQoKSwgbV93
ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNwZWFraW5nRXJyb3JPY2N1
cnJlZCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmJvdW5kYXJ5RXZlbnRPY2N1cnJlZChX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYsIFdlYkNvcmU6OlNwZWVj
aEJvdW5kYXJ5IHNwZWVjaEJvdW5kYXJ5LCB1bnNpZ25lZCBjaGFySW5kZXgpCiB7Ci0gICAgcHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkJvdW5kYXJ5RXZlbnRPY2N1cnJlZChzcGVl
Y2hCb3VuZGFyeSA9PSBXZWJDb3JlOjpTcGVlY2hCb3VuZGFyeTo6U3BlZWNoV29yZEJvdW5kYXJ5
LCBjaGFySW5kZXgpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
Qm91bmRhcnlFdmVudE9jY3VycmVkKHNwZWVjaEJvdW5kYXJ5ID09IFdlYkNvcmU6OlNwZWVjaEJv
dW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJJbmRleCkpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6dm9pY2VzRGlkQ2hhbmdlKCkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6Vm9pY2VzRGlkQ2hhbmdlKCksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpWb2ljZXNEaWRDaGFuZ2UoKSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxF
KFNQRUVDSF9TWU5USEVTSVMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggMTA3ODJjZWU1MWJlZjNiZDE4MGVmYTA3OGNmODc3Y2RiOTM0NGRkNC4uZTk2NDFm
N2JhMzlhZWY5Y2Y0ZWQ3YWIxMTYwZjhlMGRjY2UxNjg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNz
aW9uRGUKICAgICBTdHJpbmcgYXV0aG9yaXphdGlvblRva2VuID0gYWxsb3dlZCA/IGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKSA6IFN0cmluZygpOwogICAgIGlmICghYXV0aG9yaXphdGlvblRv
a2VuLmlzTnVsbCgpKQogICAgICAgICBtX3ZhbGlkQXV0aG9yaXphdGlvblRva2Vucy5hZGQoYXV0
aG9yaXphdGlvblRva2VuKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbihnZW9sb2NhdGlv
bklELCBhdXRob3JpemF0aW9uVG9rZW4pLCBtX3BhZ2Uud2ViUGFnZUlEKCkpOworICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9u
RGVjaXNpb24oZ2VvbG9jYXRpb25JRCwgYXV0aG9yaXphdGlvblRva2VuKSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5jcHAK
aW5kZXggNDBmMDNiZjY1OGJkZjQ5NWE2ZGRmYzhiNjY3NTVlZjAyZDQwN2JjMC4uZmQ3N2NmNTk4
Yjg1NGE4NzZjMTM0YjYyOGU0ZTAxNGVmYmJhODExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHku
Y3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OmludmFs
aWRhdGUoKQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6c2V0RGlhZ25vc3RpY0xvZ2dp
bmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxF
TUVUUlkpCi0gICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlV2ViSW5zcGVjdG9yVUk6OlNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGF2YWlsYWJs
ZSksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+
c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlNldERpYWdub3N0aWNMb2dnaW5n
QXZhaWxhYmxlKGF2YWlsYWJsZSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oYXZhaWxhYmxl
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggYjdlYWUxZTEwODMwNjYxMTE3YTExZGUxNzgx
MGE3YTE0Yzk3YzI4Yi4uYjRhMjRjZWUwNTQ4MGZmNTM2ZmZjZTU1MTMxMzNlYTg2NjlmOTUwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yUHJveHkuY3BwCkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJyaWRlKFdlYkNvcmU6Okluc3BlY3RvckNsaWVu
dDoKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxl
KGJvb2wgYXZhaWxhYmxlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1JfVEVMRU1FVFJZKQotICAg
IG1faW5zcGVjdG9yUGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJ
OjpTZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShhdmFpbGFibGUpLCBtX2luc3BlY3RvclBh
Z2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX2luc3BlY3RvclBhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
Ykluc3BlY3RvclVJOjpTZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShhdmFpbGFibGUpKTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGF2YWlsYWJsZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5kZXggZGNiODk2ZTZlOWEyOThiZjA1YjY0Y2Rl
M2U0MDc3MmM1NmQ2NGFlMy4uYzU2ZjdmMmM5Yzg4YzA1YWVlN2ViMDg2MjQ1OWQwMzlhOTVhNmJi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCBzdGF0aWMgdm9pZCByZW1vdGVGaWxlUmVwbGFjZUNvbnRlbnRzQ2FsbGJhY2soR09i
amVjdCogc291cmNlT2JqZWN0LCBHQXN5bmNSZXN1bAogCiAgICAgYXV0byogcGFnZSA9IHN0YXRp
Y19jYXN0PFdlYlBhZ2VQcm94eSo+KHVzZXJEYXRhKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IHBh
dGgoZ19maWxlX2dldF9wYXRoKGZpbGUpKTsKLSAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OkRpZFNhdmUocGF0aC5nZXQoKSksIHBhZ2UtPndl
YlBhZ2VJRCgpKTsKKyAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JV
STo6RGlkU2F2ZShwYXRoLmdldCgpKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZFVSTCwgY29uc3QgU3RyaW5n
JiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlRGlhbG9nKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dl
Ykluc3BlY3RvclByb3h5R3RrLmNwcAppbmRleCA4OWY4ZGQ3MGI2ZTg2YmE2OWViNDAwZjJkMmQx
MzcwMTkxOTVhOTgzLi45NWZmZDU1ODM4YTJjNjVjZWUxODZhNDE4MTRmNmNiYmNlNDE4N2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3Bl
Y3RvclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
Z3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcApAQCAtNDgwLDcgKzQ4MCw3IEBAIHN0YXRpYyB2
b2lkIGZpbGVSZXBsYWNlQ29udGVudHNDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2VPYmplY3QsIEdB
c3luY1Jlc3VsdCogcmVzCiAKICAgICBhdXRvKiBwYWdlID0gc3RhdGljX2Nhc3Q8V2ViUGFnZVBy
b3h5Kj4odXNlckRhdGEpOwogICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChnX2ZpbGVfZ2V0X3Bh
dGgoZmlsZSkpOwotICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0
b3JVSTo6RGlkU2F2ZShwYXRoLmdldCgpKSwgcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIHBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjpEaWRTYXZlKHBhdGguZ2V0KCkpKTsKIH0K
IAogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgc3Vn
Z2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9v
bCBmb3JjZVNhdmVEaWFsb2cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpp
bmRleCBmMWIyYjUxMWQ3ZWM2ODhkYmVkMTQzNDk0YTAzMzgxZWU4ZmQyZjU4Li5lYTM5ZDg5ZjA4
OGUyMTU4ZWJkMjZlYjJkZGQzYWZkYmZlMzA0ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0KQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFN0
cgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFtjb250ZW50Q29weSB3cml0ZVRvVVJMOmFj
dHVhbFVSTCBhdG9taWNhbGx5OllFUyBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJv
cjpOVUxMXTsKIAotICAgICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6RGlkU2F2ZShbYWN0dWFsVVJMIGFic29sdXRlU3Ry
aW5nXSksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCkpOworICAgICAgICBtX2luc3BlY3Rv
clBhZ2UtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpEaWRTYXZlKFthY3R1
YWxVUkwgYWJzb2x1dGVTdHJpbmddKSk7CiAgICAgfTsKIAogICAgIGlmICghZm9yY2VTYXZlRGlh
bG9nKSB7CkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFMKICAgICBb
aGFuZGxlIGNsb3NlRmlsZV07CiAKICAgICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSB3
ZWJWaWV3KCktPl9wYWdlLmdldCgpOwotICAgIGluc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6RGlkQXBwZW5kKFthY3R1YWxVUkwgYWJz
b2x1dGVTdHJpbmddKSwgaW5zcGVjdG9yUGFnZS0+d2ViUGFnZUlEKCkpOworICAgIGluc3BlY3Rv
clBhZ2UtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpEaWRBcHBlbmQoW2Fj
dHVhbFVSTCBhYnNvbHV0ZVN0cmluZ10pKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0KaW5kZXggYjM2NjM5M2E0YWIwMDQ4Njc3MzAxNWRhY2Y4YjA2MTk3
M2FmYzQwMi4uMWI3ZDMxOWY4ZDIxN2M4NjAxZTczYmNkNmE0N2Q2YmMxNDY3Y2Y1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dl
Ykluc3BlY3RvclByb3h5TWFjLm1tCkBAIC01MDIsNyArNTAyLDcgQEAgdm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBT
dHJpbmcmIGMKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBbY29udGVudENvcHkgd3JpdGVU
b1VSTDphY3R1YWxVUkwgYXRvbWljYWxseTpZRVMgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmcgZXJyb3I6TlVMTF07CiAKLSAgICAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OkRpZFNhdmUoW2FjdHVhbFVSTCBhYnNvbHV0ZVN0
cmluZ10pLCBtX2luc3BlY3RvclBhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICAgICAgbV9pbnNwZWN0
b3JQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RGlkU2F2ZShbYWN0dWFsVVJM
IGFic29sdXRlU3RyaW5nXSkpOwogICAgIH07CiAKICAgICBpZiAoIWZvcmNlU2F2ZURpYWxvZykg
ewpAQCAtNTQ3LDcgKzU0Nyw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBw
ZW5kKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmCiAgICAgW2hhbmRs
ZSB3cml0ZURhdGE6W2NvbnRlbnQgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddXTsKICAgICBbaGFuZGxlIGNsb3NlRmlsZV07CiAKLSAgICBtX2luc3BlY3RvclBhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RGlkQXBwZW5kKFthY3R1YWxV
UkwgYWJzb2x1dGVTdHJpbmddKSwgbV9pbnNwZWN0b3JQYWdlLT53ZWJQYWdlSUQoKSk7CisgICAg
bV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RGlkQXBwZW5k
KFthY3R1YWxVUkwgYWJzb2x1dGVTdHJpbmddKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OndpbmRvd0ZyYW1lRGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzQ0Mzk4ODM3ZTU4
ODU5MzMyMWMzZGQ2MzI0YmVmYWVjZTM4MzZjYi4uM2YyODczMmFiNWUyMzZmMDc1MWRlNDgxZDhk
YjY2M2NmNWIxMDM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6Y3IKIHsKICAgICBhdXRvIHJlcXVlc3QgPSBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdDo6Y3JlYXRlKFt0aGlzLCBub3RpZmljYXRpb25JRCwgcGFnZSA9IG1ha2VSZWYo
bV9wYWdlKV0oYm9vbCBhbGxvd2VkKSB7CiAgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLnRha2Uo
bm90aWZpY2F0aW9uSUQpOwotICAgICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmlj
YXRpb25JRCwgYWxsb3dlZCksIHBhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICAgICAgcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNp
c2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dlZCkpOwogICAgIH0pOwogICAgIG1fcGVuZGluZ1Jl
cXVlc3RzLmFkZChub3RpZmljYXRpb25JRCwgcmVxdWVzdC5wdHIoKSk7CiAgICAgcmV0dXJuIHJl
cXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggY2NlYjYxZjE0
YjU4NWM4NTFjMTZhZDYxZmRjZmJhN2I4MTcwOGEzNi4uN2Y4MjllNzFmOTFlYzc3YzZmMjcyMzY1
OTZlM2E0YmJkYTZkOTg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApA
QCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZChQZXJtaXNzaW9uSW5mCiAgICAgaWYgKCFtX3Bh
Z2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKSwg
bV9wYWdlLndlYlBhZ2VJRCgpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
Q2FwdHVyZURldmljZXNDaGFuZ2VkKCkpOwogfQogI2VuZGlmCiAKQEAgLTE5OCw3ICsxOTgsNyBA
QCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVz
dChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdQogICAgICAgICBtX2RlbmllZFJlcXVlc3RzLmFwcGVu
ZChEZW5pZWRSZXF1ZXN0IHsgcmVxdWVzdC5tYWluRnJhbWVJRCgpLCByZXF1ZXN0LnVzZXJNZWRp
YURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC50b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4oKSwgcmVxdWVzdC5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpLCByZXF1ZXN0LnJlcXVp
cmVzVmlkZW9DYXB0dXJlKCksIHJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpIH0pOwog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZChyZXF1ZXN0LnVzZXJNZWRp
YUlEKCksIHRvV2ViQ29yZShyZWFzb24pLCBpbnZhbGlkQ29uc3RyYWludCksIG1fcGFnZS53ZWJQ
YWdlSUQoKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVzZXJNZWRpYUFj
Y2Vzc1dhc0RlbmllZChyZXF1ZXN0LnVzZXJNZWRpYUlEKCksIHRvV2ViQ29yZShyZWFzb24pLCBp
bnZhbGlkQ29uc3RyYWludCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAg
ICBVTlVTRURfUEFSQU0oaW52YWxpZENvbnN0cmFpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBhNWUzNDYyYjdjYzljMWQ0MzJiNGI1MjFhZTM3YWY0
Yjk2N2RhMDY4Li5hNDZkYjA3YTM3OTg2ODc4NWE0OGY0ZjJkMzlhN2JmZTU3ZWU2ZGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtMjYzLDcgKzI2Myw3
IEBAIHZvaWQgV2ViRnJhbWVQcm94eTo6Y29sbGFwc2VTZWxlY3Rpb24oKQogICAgIGlmICghbV9w
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpDb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUobV9mcmFtZUlEKSwgbV9wYWdl
LT53ZWJQYWdlSUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb2xs
YXBzZVNlbGVjdGlvbkluRnJhbWUobV9mcmFtZUlEKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApp
bmRleCA3MjEyNWIwZWUzMmU4MWUwOTMyNmE5ZDY1YzI2YzUwYmJlY2NmZjE5Li40NmYwMWZlZDFk
NjBmNDk0MmQ5MTA3ODY5N2JlOWQwOTQ0ODNlOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtNTYsMTMgKzU2
LDEzIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5KCkKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVl
bigpCiB7CiAgICAgbV9wYWdlLmZ1bGxzY3JlZW5DbGllbnQoKS53aWxsRW50ZXJGdWxsc2NyZWVu
KCZtX3BhZ2UpOwotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNj
cmVlbk1hbmFnZXI6OldpbGxFbnRlckZ1bGxTY3JlZW4oKSwgbV9wYWdlLndlYlBhZ2VJRCgpKTsK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxFbnRl
ckZ1bGxTY3JlZW4oKSk7CiB9CiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlk
RW50ZXJGdWxsU2NyZWVuKCkKIHsKICAgICBtX3BhZ2UuZnVsbHNjcmVlbkNsaWVudCgpLmRpZEVu
dGVyRnVsbHNjcmVlbigmbV9wYWdlKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpEaWRFbnRlckZ1bGxTY3JlZW4oKSwgbV9wYWdlLndl
YlBhZ2VJRCgpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFn
ZXI6OkRpZEVudGVyRnVsbFNjcmVlbigpKTsKIAogICAgIGlmIChtX3BhZ2UuaXNDb250cm9sbGVk
QnlBdXRvbWF0aW9uKCkpIHsKICAgICAgICAgaWYgKFdlYkF1dG9tYXRpb25TZXNzaW9uKiBhdXRv
bWF0aW9uU2Vzc2lvbiA9IG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRvbWF0aW9u
U2Vzc2lvbigpKQpAQCAtNzMsMTMgKzczLDEzIEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkRW50ZXJGdWxsU2NyZWVuKCkKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6d2lsbEV4aXRGdWxsU2NyZWVuKCkKIHsKICAgICBtX3BhZ2UuZnVsbHNjcmVlbkNsaWVudCgp
LndpbGxFeGl0RnVsbHNjcmVlbigmbV9wYWdlKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRXhpdEZ1bGxTY3JlZW4oKSwgbV9w
YWdlLndlYlBhZ2VJRCgpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVl
bk1hbmFnZXI6OldpbGxFeGl0RnVsbFNjcmVlbigpKTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbFNjcmVlbigpCiB7CiAgICAgbV9wYWdlLmZ1bGxzY3Jl
ZW5DbGllbnQoKS5kaWRFeGl0RnVsbHNjcmVlbigmbV9wYWdlKTsKLSAgICBtX3BhZ2UucHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpEaWRFeGl0RnVsbFNjcmVl
bigpLCBtX3BhZ2Uud2ViUGFnZUlEKCkpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJG
dWxsU2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxTY3JlZW4oKSk7CiAgICAgCiAgICAgaWYgKG1f
cGFnZS5pc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oKSkgewogICAgICAgICBpZiAoV2ViQXV0b21h
dGlvblNlc3Npb24qIGF1dG9tYXRpb25TZXNzaW9uID0gbV9wYWdlLnByb2Nlc3MoKS5wcm9jZXNz
UG9vbCgpLmF1dG9tYXRpb25TZXNzaW9uKCkpCkBAIC04OSwxMiArODksMTIgQEAgdm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbFNjcmVlbigpCiAKIHZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihib29sIGFuaW1hdGlu
ZykKIHsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5N
YW5hZ2VyOjpTZXRBbmltYXRpbmdGdWxsU2NyZWVuKGFuaW1hdGluZyksIG1fcGFnZS53ZWJQYWdl
SUQoKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpT
ZXRBbmltYXRpbmdGdWxsU2NyZWVuKGFuaW1hdGluZykpOwogfQogCiB2b2lkIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiB7Ci0gICAgbV9wYWdlLnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6UmVxdWVzdEV4aXRG
dWxsU2NyZWVuKCksIG1fcGFnZS53ZWJQYWdlSUQoKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSk7CiB9CiAK
IHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wg
d2l0aEtleWJvYXJkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpAQCAtMTA4LDI3ICsxMDgsMjcgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjpzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRoS2V5Ym9hcmQsIENvbXBsZXRpb24KIAog
dm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzYXZlU2Nyb2xsUG9zaXRpb24oKQogewot
ICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6
OlNhdmVTY3JvbGxQb3NpdGlvbigpLCBtX3BhZ2Uud2ViUGFnZUlEKCkpOworICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6U2F2ZVNjcm9sbFBvc2l0aW9uKCkp
OwogfQogCiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlc3RvcmVTY3JvbGxQb3Np
dGlvbigpCiB7Ci0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2Ny
ZWVuTWFuYWdlcjo6UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCksIG1fcGFnZS53ZWJQYWdlSUQoKSk7
CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKSk7CiB9CiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0RnVsbHNjcmVlbkluc2V0cyhjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgaW5zZXRz
KQogewotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1h
bmFnZXI6OlNldEZ1bGxzY3JlZW5JbnNldHMoaW5zZXRzKSwgbV9wYWdlLndlYlBhZ2VJRCgpKTsK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OlNldEZ1bGxz
Y3JlZW5JbnNldHMoaW5zZXRzKSk7CiB9CiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6c2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oU2Vjb25kcyBkdXJhdGlvbikKIHsKLSAg
ICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpT
ZXRGdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbihkdXJhdGlvbiksIG1fcGFnZS53ZWJQYWdlSUQo
KSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpTZXRG
dWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbihkdXJhdGlvbikpOwogfQogCiB2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sIGhpZGRl
bikKIHsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5N
YW5hZ2VyOjpTZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oaGlkZGVuKSwgbV9wYWdlLndlYlBh
Z2VJRCgpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6
OlNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihoaWRkZW4pKTsKIH0KIAogdm9pZCBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5OjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJQYWdlUHJveHlHdGsuY3BwCmluZGV4IGFhYmY2MjZmMzI2YjBlZTQ5ODg4ODhlM2E2
NmE0ZWUzMWNlZjA1YzguLmY3OGNlNWNkNTQyZWE3OGQzOTk3MzJlMTE0YmVlYWU1NDRiY2Y3MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJveHlHdGsuY3Bw
CkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElucHV0TWV0aG9kU3Rh
dGUoT3B0aW9uYWw8SW5wdXRNZXRob2RTdGF0ZT4mJiBzdGF0ZSkKIAogdm9pZCBXZWJQYWdlUHJv
eHk6OmdldENlbnRlckZvclpvb21HZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjZW50
ZXJJblZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6SW50UG9pbnQmIGNlbnRlcikKIHsKLSAgICBw
cm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OkdldENlbnRlckZvclpvb21HZXN0
dXJlKGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSwgTWVzc2FnZXM6OldlYlBhZ2U6OkdldENlbnRl
ckZvclpvb21HZXN0dXJlOjpSZXBseShjZW50ZXIpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZFN5
bmMoTWVzc2FnZXM6OldlYlBhZ2U6OkdldENlbnRlckZvclpvb21HZXN0dXJlKGNlbnRlckluVmll
d0Nvb3JkaW5hdGVzKSwgTWVzc2FnZXM6OldlYlBhZ2U6OkdldENlbnRlckZvclpvb21HZXN0dXJl
OjpSZXBseShjZW50ZXIpKTsKIH0KIAogYm9vbCBXZWJQYWdlUHJveHk6Om1ha2VHTENvbnRleHRD
dXJyZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggNmU4ZDViZDk3NWJjYjA4ZmNhMDJj
ODcwYmYxMWZjYWU1YTU4NWZjNy4uNjkxNDEyNGE0NTU0MjE4MjE5NGJlYzFkYjdmY2IzYjUxMjIw
OTg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KQEAgLTYzLDcgKzYzLDcgQEAgU21hcnRNYWdu
aWZpY2F0aW9uQ29udHJvbGxlcjo6flNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIoKQogCiB2
b2lkIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXI6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlv
bkdlc3R1cmUoRmxvYXRQb2ludCBvcmlnaW4pCiB7Ci0gICAgbV93ZWJQYWdlUHJveHkucHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OkNvbGxlY3RH
ZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUob3JpZ2luKSwgbV93ZWJQYWdlUHJv
eHkud2ViUGFnZUlEKCkpOworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlZpZXdH
ZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OkNvbGxlY3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNh
dGlvbkdlc3R1cmUob3JpZ2luKSk7CiB9CiAKIHZvaWQgU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlcjo6aGFuZGxlUmVzZXRNYWduaWZpY2F0aW9uR2VzdHVyZShGbG9hdFBvaW50IG9yaWdpbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDJkNWU3NDQ5YTg5MzQwNjllZjdmMmM2NmFlZjFjYzcwZTdlYzA4
M2QuLmU2MDY3YmExYWQ5YjU5OWQxOTk3MzhhZDg0MGZmODc2Njc0NWQ2NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtMjIxNiw3ICsyMjE2LDcgQEAgLSAoQk9PTCllbnN1cmVQb3NpdGlvbkluZm9ybWF0
aW9uSXNVcFRvRGF0ZTooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWUKICAgICBp
ZiAoW3NlbGYgX2hhc1ZhbGlkT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDpy
ZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmREaXNwYXRjaElt
bWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVQb3NpdGlvbkluZm9y
bWF0aW9uPihfcGFnZS0+d2ViUGFnZUlEKCksIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRl
cnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogCi0gICAgYm9vbCByZWNlaXZlZFJl
c3BvbnNlID0gX3BhZ2UtPnByb2Nlc3MoKS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6R2V0
UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBvc2l0
aW9uSW5mb3JtYXRpb246OlJlcGx5KF9wb3NpdGlvbkluZm9ybWF0aW9uKSwgX3BhZ2UtPndlYlBh
Z2VJRCgpLCAxX3MsIElQQzo6U2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hXaGVuRGVzdGlu
YXRpb25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkpOworICAgIGJvb2wgcmVjZWl2ZWRS
ZXNwb25zZSA9IF9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6R2V0UG9zaXRpb25J
bmZvcm1hdGlvbihyZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3Jt
YXRpb246OlJlcGx5KF9wb3NpdGlvbkluZm9ybWF0aW9uKSwgMV9zLCBJUEM6OlNlbmRTeW5jT3B0
aW9uOjpGb3JjZURpc3BhdGNoV2hlbkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yVW5ib3VuZGVkU3lu
Y1JlcGx5KTsKICAgICBfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uID0gcmVjZWl2ZWRSZXNw
b25zZSAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5jYW5CZVZhbGlkOwogICAgIAogICAgIC8vIEZJ
WE1FOiBXZSBuZWVkIHRvIGNsZWFuIHVwIHRoZXNlIGhhbmRsZXJzIGluIHRoZSBldmVudCB0aGF0
IHdlIGFyZSBub3QgYWJsZSB0byBjb2xsZWN0IGRhdGEsIG9yIGlmIHRoZSBXZWJQcm9jZXNzIGNy
YXNoZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQppbmRleCA3NjYzMDRiZTE0NGZiMDI1OGI4NjY3MDQxNjhlNjRhNmFkZTEzZTdkLi40MTI3MGVi
NTIzMTk1MWJhZjhmMTQ2NTk2YWQ2OWMyNDNlNGVlMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTYyMiwxMiArNjIyLDEyIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rpb25Db250ZXh0KFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmLCBjb25zdCBTCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUd29GaW5n
ZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdl
YkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAg
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZVR3b0ZpbmdlclRhcEF0UG9p
bnQocG9pbnQsIG1vZGlmaWVycywgcmVxdWVzdElEKSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQocG9pbnQsIG1vZGlm
aWVycywgcmVxdWVzdElEKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVTdHlsdXNT
aW5nbGVUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgdWludDY0X3Qg
cmVxdWVzdElEKQogewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5k
bGVTdHlsdXNTaW5nbGVUYXBBdFBvaW50KHBvaW50LCByZXF1ZXN0SUQpLCBtX3dlYlBhZ2VJRCk7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlU3R5bHVzU2luZ2xlVGFwQXRQb2lu
dChwb2ludCwgcmVxdWVzdElEKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3RXaXRo
VHdvVG91Y2hlcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBmcm9tLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCB0bywgdWludDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwg
V1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQzMl90LCB1
aW50MzJfdCwgdWludDMyX3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rp
b24pCkBAIC04NDgsNyArODQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVyVUlQcm9j
ZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UKICAgICBpZiAo
IWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5
VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pLCBtX3dlYlBhZ2VJRCk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5z
KGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnBs
dWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QsIGJvb2wpCkBAIC04ODEsNTgg
Kzg4MSw1OCBAQCBib29sIFdlYlBhZ2VQcm94eTo6YWNjZXB0c0ZpcnN0TW91c2UoaW50LCBjb25z
dCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFN0YXJ0
VXNlclRyaWdnZXJlZFpvb21pbmcoKQogewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpXaWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpLCBtX3dlYlBhZ2VJRCk7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6V2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmco
KSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCBib29sIHNob3VsZFJlcXVlc3RNYWduaWZp
Y2F0aW9uSW5mb3JtYXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCiB7CiAgICAgaGlkZVZhbGlk
YXRpb25NZXNzYWdlKCk7Ci0gICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBv
dGVudGlhbFRhcEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiwgc2hvdWxkUmVxdWVzdE1h
Z25pZmljYXRpb25JbmZvcm1hdGlvbiksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24sIHNo
b3VsZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3JtYXRpb24pKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnMsIFRyYW5zYWN0aW9uSUQgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNo
U3RhcnQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiB7Ci0gICAgcHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbW1pdFBvdGVudGlhbFRhcChtb2RpZmllcnMsIGxheWVy
VHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0LCBwb2ludGVySWQpLCBtX3dlYlBhZ2VJ
RCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29tbWl0UG90ZW50aWFsVGFwKG1vZGlm
aWVycywgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQsIHBvaW50ZXJJZCkp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2FuY2VsUG90ZW50aWFsVGFwKCkKIHsKLSAgICBw
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2FuY2VsUG90ZW50aWFsVGFwKCksIG1f
d2ViUGFnZUlEKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDYW5jZWxQb3RlbnRpYWxU
YXAoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1aW50NjRfdCYgcmVxdWVzdElEKQog
ewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUYXBIaWdobGlnaHRBdFBv
c2l0aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24pLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihyZXF1ZXN0SUQsIHBvc2l0aW9u
KSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUYXAoY29uc3QgRmxvYXRQb2ludCYg
bG9jYXRpb24sIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgVHJhbnNh
Y3Rpb25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCkKIHsKLSAgICBw
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlVGFwKHJvdW5kZWRJbnRQb2lu
dChsb2NhdGlvbiksIG1vZGlmaWVycywgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNo
U3RhcnQpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxl
VGFwKHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbiksIG1vZGlmaWVycywgbGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
Y29nbml6ZUxvbmdQcmVzcygpCiB7Ci0gICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkRpZFJlY29nbml6ZUxvbmdQcmVzcygpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RGlkUmVjb2duaXplTG9uZ1ByZXNzKCkpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZp
ZXJzLCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0
KQogewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5kbGVEb3VibGVU
YXBGb3JEb3VibGVDbGlja0F0UG9pbnQocG9pbnQsIG1vZGlmaWVycywgbGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6SGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KHBvaW50LCBt
b2RpZmllcnMsIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KSk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uKQogewotICAgIHByb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKHBv
c2l0aW9uKSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Okluc3Bl
Y3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24ocG9zaXRpb24pKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6Omluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgcG9zaXRpb24pCiB7Ci0gICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6Okluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24ocG9zaXRpb24pLCBt
X3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zcGVjdG9yTm9kZVNl
YXJjaEVuZGVkQXRQb3NpdGlvbihwb3NpdGlvbikpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
Ymx1ckZvY3VzZWRFbGVtZW50KCkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6Qmx1ckZvY3VzZWRFbGVtZW50KCksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpCbHVyRm9jdXNlZEVsZW1lbnQoKSk7CiB9CiAKIEZsb2F0U2l6ZSBXZWJQ
YWdlUHJveHk6OnNjcmVlblNpemUoKQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgV2ViQ29yCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJc1Nob3dpbmdJbnB1dFZpZXdGb3JG
b2N1c2VkRWxlbWVudChib29sIHNob3dpbmdJbnB1dFZpZXcpCiB7Ci0gICAgcHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldElzU2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVt
ZW50KHNob3dpbmdJbnB1dFZpZXcpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0SXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQoc2hvd2luZ0lu
cHV0VmlldykpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlSW5wdXRDb250ZXh0QWZ0
ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50KCkKQEAgLTEwNjksMTcgKzEwNjksMTcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzTmV4dEZvY3VzZWRFbGVtZW50KGJvb2wgaXNGb3J3YXJk
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2kKIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzZWRF
bGVtZW50VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZSh2YWx1ZSksIG1fd2ViUGFn
ZUlEKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRGb2N1c2VkRWxlbWVudFZhbHVl
KHZhbHVlKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGb2N1c2VkRWxlbWVudFZhbHVl
QXNOdW1iZXIoZG91YmxlIHZhbHVlKQogewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpTZXRGb2N1c2VkRWxlbWVudFZhbHVlQXNOdW1iZXIodmFsdWUpLCBtX3dlYlBhZ2VJ
RCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFz
TnVtYmVyKHZhbHVlKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGb2N1c2VkRWxlbWVu
dFNlbGVjdGVkSW5kZXgodWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlv
bikKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9jdXNlZEVs
ZW1lbnRTZWxlY3RlZEluZGV4KGluZGV4LCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKSwgbV93ZWJQ
YWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50U2Vs
ZWN0ZWRJbmRleChpbmRleCwgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikpOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBv
cHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKQEAgLTExNDMsMTMgKzExNDMsMTMgQEAgdWlu
dDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihG
cmFtZUlkZW50aWZpZXIgZnJhbWUKIAogICAgIHVpbnQzMl90IHBhZ2VDb3VudCA9IDA7CiAgICAg
YXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2spLCBtX3By
b2Nlc3MtPnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5Ojpjb21w
dXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERiJfcykpOwotICAgIHByb2Nlc3MoKS5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REYoZnJhbWVJRCwgcHJpbnRJbmZvLCBjYWxsYmFja0lEKSwgTWVzc2FnZXM6OldlYlBhZ2U6OkNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpSZXBseShwYWdlQ291bnQpLCBtX3dl
YlBhZ2VJRCwgU2Vjb25kczo6aW5maW5pdHkoKSk7CisgICAgc2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKGZyYW1lSUQsIHByaW50
SW5mbywgY2FsbGJhY2tJRCksIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERjo6UmVwbHkocGFnZUNvdW50KSwgU2Vjb25kczo6aW5maW5pdHkoKSk7
CiAgICAgcmV0dXJuIHBhZ2VDb3VudDsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRT
aXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50U2l6ZUNhdGVnb3J5KQog
ewotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb250ZW50U2l6ZUNhdGVn
b3J5RGlkQ2hhbmdlKGNvbnRlbnRTaXplQ2F0ZWdvcnkpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6Q29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShjb250ZW50
U2l6ZUNhdGVnb3J5KSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlIGNvbW1h
bmQpCkBAIC0xMTU3LDcgKzExNTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYQogICAgIGlm
ICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQo
Y29tbWFuZCksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGNvbW1hbmQpKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OnVwZGF0ZUVkaXRvclN0YXRlKGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250
cm9sbGVyTWFjLm1tCmluZGV4IGQ4M2VhMTliNDA3MzdmODg5ZDczMjJmMTI5Y2ZjZGMyNjA0NDAy
MmQuLmEwNDYyZTZmYjdhOTc3ZTRlMTQ5NGEwODM3NjkzNjhlNjc4OWQyZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbQpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5k
bGVNYWduaWZpY2F0aW9uR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBGbG9hCiAKICAgICAg
ICAgLy8gRklYTUU6IFdlIGRyb3AgdGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBnZXN0dXJlIG9uIHRo
ZSBmbG9vciwgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHRoZSB2aXNpYmxlIGNvbnRlbnQgYm91bmRz
IHlldC4KICAgICAgICAgbV9tYWduaWZpY2F0aW9uID0gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxl
RmFjdG9yKCk7Ci0gICAgICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpDb2xsZWN0R2VvbWV0cnlGb3JNYWduaWZp
Y2F0aW9uR2VzdHVyZSgpLCBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSk7CisgICAgICAgIG1f
d2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6
OkNvbGxlY3RHZW9tZXRyeUZvck1hZ25pZmljYXRpb25HZXN0dXJlKCkpOwogICAgICAgICBtX2xh
c3RNYWduaWZpY2F0aW9uR2VzdHVyZVdhc1NtYXJ0TWFnbmlmaWNhdGlvbiA9IGZhbHNlOwogCiAg
ICAgICAgIHJldHVybjsKQEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShGbG9hdFBvaW50IG9yaWdpbikK
ICAgICBpZiAobV9hY3RpdmVHZXN0dXJlVHlwZSAhPSBWaWV3R2VzdHVyZVR5cGU6Ok5vbmUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpDb2xsZWN0R2VvbWV0cnlGb3JTbWFy
dE1hZ25pZmljYXRpb25HZXN0dXJlKG9yaWdpbiksIG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgp
KTsKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21ldHJ5
Q29sbGVjdG9yOjpDb2xsZWN0R2VvbWV0cnlGb3JTbWFydE1hZ25pZmljYXRpb25HZXN0dXJlKG9y
aWdpbikpOwogfQogCiBzdGF0aWMgZmxvYXQgbWF4aW11bVJlY3RhbmdsZUNvbXBvbmVudERlbHRh
KEZsb2F0UmVjdCBhLCBGbG9hdFJlY3QgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGMwNTk0MGM4Mjg3YjBjZTUxOTEwMDg4NDVkNDA4
NmU4NDE0ODJhOWUuLjc4NzJiY2M1ZWQzNDdhNWI4ZDEyZGFmNGY0YjFiNDBhZWRiNzhlY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAt
MTc0LDcgKzE3NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hh
bmdlZChjb25zdCBGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93CiAgICAgLy8gSW4gY2FzZSB0
aGUgVUkgY2xpZW50IG92ZXJyaWRlcyBnZXRXaW5kb3dGcmFtZSgpLCB3ZSBjYWxsIGl0IGhlcmUg
dG8gbWFrZSBzdXJlIHdlIHNlbmQgdGhlIGFwcHJvcHJpYXRlIHdpbmRvdyBmcmFtZS4KICAgICBt
X3VpQ2xpZW50LT53aW5kb3dGcmFtZSgqdGhpcywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0eVZp
ZXdDb29yZGluYXRlc10gKEZsb2F0UmVjdCB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMp
IHsKICAgICAgICAgRmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGlu
YXRlcyA9IHBhZ2VDbGllbnQoKS5jb252ZXJ0VG9Vc2VyU3BhY2Uod2luZG93RnJhbWVJblNjcmVl
bkNvb3JkaW5hdGVzKTsKLSAgICAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OldpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRl
cywgd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzLCB2aWV3RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKSwgbV93ZWJQYWdl
SUQpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaW5kb3dBbmRWaWV3RnJhbWVz
Q2hhbmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIHdpbmRvd0ZyYW1lSW5VbmZs
aXBwZWRTY3JlZW5Db29yZGluYXRlcywgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNj
ZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykpOwogICAgIH0pOwogfQogCkBAIC0xODMsNyArMTgz
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShib29sIGlz
U2Nyb2xsYWJsZSkKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNYWluRnJhbWVJ
c1Njcm9sbGFibGUoaXNTY3JvbGxhYmxlKSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShpc1Njcm9sbGFibGUpKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5n
ZUFzeW5jKGNvbnN0IEVkaXRpbmdSYW5nZSYgcmFuZ2UsIEZ1bmN0aW9uPHZvaWQoY29uc3QgV2Vi
Q29yZTo6QXR0cmlidXRlZFN0cmluZyYsIGNvbnN0IEVkaXRpbmdSYW5nZSYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKGNv
bnN0IEVkaXRpbmdSYW5nZSYKIAogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFj
dGVyUmFuZ2VBc3luYyJfcykpOwogCi0gICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHJhbmdlLCBjYWxs
YmFja0lEKSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHJhbmdlLCBjYWxsYmFja0lEKSk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjphdHRyaWJ1dGVkU3RyaW5nRm9yQ2hhcmFjdGVyUmFu
Z2VDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IEVkaXRpbmdSYW5nZSYgYWN0dWFsUmFuZ2UsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKQEAgLTIy
MCw3ICsyMjAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9udEF0U2VsZWN0aW9uKEZ1bmN0aW9u
PHZvaWQoY29uc3QgRm9udEluZm8mLCBkb3VibGUsIGJvb2wsCiAgICAgfQogCiAgICAgYXV0byBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2spLCBtX3Byb2Nlc3Mt
PnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5Ojpmb250QXRTZWxl
Y3Rpb24iX3MpKTsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Rm9udEF0
U2VsZWN0aW9uKGNhbGxiYWNrSUQpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6Rm9udEF0U2VsZWN0aW9uKGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OmZvbnRBdFNlbGVjdGlvbkNhbGxiYWNrKGNvbnN0IEZvbnRJbmZvJiBmb250SW5mbywg
ZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011bHRpcGxlRm9udHMsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKQEAgLTI0MSw3ICsyNDEsNyBAQCBTdHJpbmcgV2ViUGFnZVByb3h5Ojpz
dHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IAogICAgIGNvbnN0IFNlY29uZHMgbWVzc2FnZVRpbWVvdXQoMjApOwotICAgIHByb2Nlc3MoKS5z
ZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6R2V0U3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2Fy
ZCgpLCBNZXNzYWdlczo6V2ViUGFnZTo6R2V0U3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZDo6
UmVwbHkodmFsdWUpLCBtX3dlYlBhZ2VJRCwgbWVzc2FnZVRpbWVvdXQpOworICAgIHNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCksIE1l
c3NhZ2VzOjpXZWJQYWdlOjpHZXRTdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkOjpSZXBseSh2
YWx1ZSksIG1lc3NhZ2VUaW1lb3V0KTsKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKQEAgLTI1Miw4
ICsyNTIsNyBAQCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBXZWJQYWdlUHJveHk6OmRh
dGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKGNvbnN0IFN0cgogICAgIFNoYXJlZE1lbW9yeTo6SGFu
ZGxlIGhhbmRsZTsKICAgICB1aW50NjRfdCBzaXplID0gMDsKICAgICBjb25zdCBTZWNvbmRzIG1l
c3NhZ2VUaW1lb3V0KDIwKTsKLSAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2U6OkdldERhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKHBhc3RlYm9hcmRUeXBlKSwKLSAgICAg
ICAgTWVzc2FnZXM6OldlYlBhZ2U6OkdldERhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkOjpSZXBs
eShoYW5kbGUsIHNpemUpLCBtX3dlYlBhZ2VJRCwgbWVzc2FnZVRpbWVvdXQpOworICAgIHNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXREYXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZChwYXN0
ZWJvYXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXREYXRhU2VsZWN0aW9uRm9yUGFzdGVi
b2FyZDo6UmVwbHkoaGFuZGxlLCBzaXplKSwgbWVzc2FnZVRpbWVvdXQpOwogICAgIE1FU1NBR0Vf
Q0hFQ0tfV0lUSF9SRVRVUk5fVkFMVUUoIWhhbmRsZS5pc051bGwoKSwgbnVsbHB0cik7CiAgICAg
Ly8gU2hhcmVkTWVtb3J5OjpIYW5kbGU6OnNpemUoKSBpcyByb3VuZGVkIHVwIHRvIHRoZSBuZWFy
ZXN0IHBhZ2UuCiAgICAgTUVTU0FHRV9DSEVDS19XSVRIX1JFVFVSTl9WQUxVRShzaXplIDw9IGhh
bmRsZS5zaXplKCksIG51bGxwdHIpOwpAQCAtMjcxLDE0ICsyNzAsMTQgQEAgYm9vbCBXZWJQYWdl
UHJveHk6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lKQogCiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBjb25zdCBTZWNvbmRzIG1l
c3NhZ2VUaW1lb3V0KDIwKTsKLSAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2U6OlJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSksIE1lc3NhZ2Vz
OjpXZWJQYWdlOjpSZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHJlc3VsdCksIG1f
d2ViUGFnZUlELCBtZXNzYWdlVGltZW91dCk7CisgICAgc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2U6OlJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSksIE1lc3NhZ2Vz
OjpXZWJQYWdlOjpSZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHJlc3VsdCksIG1l
c3NhZ2VUaW1lb3V0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0
ZWJvYXJkRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZXMsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YSkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
UmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YSh0eXBlcywgZGF0YSksIG1fd2ViUGFn
ZUlEKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXBsYWNlU2VsZWN0aW9uV2l0aFBh
c3RlYm9hcmREYXRhKHR5cGVzLCBkYXRhKSk7CiB9CiAjZW5kaWYKIApAQCAtMzE5LDIyICszMTgs
MjIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dEkKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNz
KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbihwbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllciwgdGV4dElucHV0KSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4ocGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIsIHRleHRJbnB1dCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
dXBwZXJjYXNlV29yZCgpCiB7Ci0gICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlVwcGVyY2FzZVdvcmQoKSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlVwcGVyY2FzZVdvcmQoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpsb3dlcmNhc2VX
b3JkKCkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG93ZXJjYXNl
V29yZCgpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG93ZXJj
YXNlV29yZCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNhcGl0YWxpemVXb3JkKCkKIHsK
LSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2FwaXRhbGl6ZVdvcmQoKSwg
bV93ZWJQYWdlSUQpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcGl0YWxpemVXb3Jk
KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCkBAIC0zNDQsNyArMzQzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKQogCiAgICAgVGV4dENoZWNrZXI6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7CiAgICAgbV9pc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCA9IGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIHByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6U2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGlzU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRGljdGlv
bmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZv
KQpAQCAtMzgwLDcgKzM3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlclVJUHJvY2Vz
c0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlCiAgICAgaWYgKCFo
YXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5z
KGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pLCBtX3dlYlBhZ2VJRCk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6UmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1l
bnRUb2tlbiwgd2luZG93VG9rZW4pKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnBsdWdpbkZv
Y3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElk
ZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKQEAgLTQwOSw3
ICs0MDgsNyBAQCBib29sIFdlYlBhZ2VQcm94eTo6c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0Zv
ckV2ZW50KGNvbnN0IFdlYktpdDo6V2ViTW91c2VFdmVudAogCiAgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKICAgICBjb25zdCBTZWNvbmRzIG1lc3NhZ2VUaW1lb3V0KDMpOwotICAgIHByb2Nlc3Mo
KS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6U2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0V2
ZW50KGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlNob3VsZERlbGF5V2luZG93T3JkZXJpbmdF
dmVudDo6UmVwbHkocmVzdWx0KSwgbV93ZWJQYWdlSUQsIG1lc3NhZ2VUaW1lb3V0KTsKKyAgICBz
ZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6U2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0V2ZW50
KGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlNob3VsZERlbGF5V2luZG93T3JkZXJpbmdFdmVu
dDo6UmVwbHkocmVzdWx0KSwgbWVzc2FnZVRpbWVvdXQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKQEAgLTQyMCw3ICs0MTksNyBAQCBib29sIFdlYlBhZ2VQcm94eTo6YWNjZXB0c0ZpcnN0TW91
c2UoaW50IGV2ZW50TnVtYmVyLCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbgogCiAgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKICAgICBjb25zdCBTZWNvbmRzIG1lc3NhZ2VUaW1lb3V0KDMpOwot
ICAgIHByb2Nlc3MoKS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6QWNjZXB0c0ZpcnN0TW91
c2UoZXZlbnROdW1iZXIsIGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OkFjY2VwdHNGaXJzdE1v
dXNlOjpSZXBseShyZXN1bHQpLCBtX3dlYlBhZ2VJRCwgbWVzc2FnZVRpbWVvdXQpOworICAgIHNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpBY2NlcHRzRmlyc3RNb3VzZShldmVudE51bWJlciwg
ZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6QWNjZXB0c0ZpcnN0TW91c2U6OlJlcGx5KHJlc3Vs
dCksIG1lc3NhZ2VUaW1lb3V0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>