<?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>182896</bug_id>
          
          <creation_ts>2018-02-16 16:04:43 -0800</creation_ts>
          <short_desc>[RenderTreeBuilder] Move RenderBoxModelObject::moveChild*() to RenderTreeBuilder</short_desc>
          <delta_ts>2018-02-16 18:20:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</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>1400088</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-02-16 16:04:43 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400091</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-16 16:06:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/37623051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400097</commentid>
    <comment_count>2</comment_count>
      <attachid>334087</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-02-16 16:17:34 -0800</bug_when>
    <thetext>Created attachment 334087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400115</commentid>
    <comment_count>3</comment_count>
      <attachid>334087</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-16 18:20:29 -0800</bug_when>
    <thetext>Comment on attachment 334087
Patch

Clearing flags on attachment: 334087

Committed r228593: &lt;https://trac.webkit.org/changeset/228593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400116</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-16 18:20:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334087</attachid>
            <date>2018-02-16 16:17:34 -0800</date>
            <delta_ts>2018-02-16 18:20:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182896-20180216161733.patch</filename>
            <type>text/plain</type>
            <size>34018</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM0MjQ4YTdmOGNjYjBh
MGI5ZTNjN2Y4NmJmOGVjM2Q4ODc0MDgwNy4uMWUwZDJkNTY0NGQwNzdkNWNkN2Q0Y2M0ZTA4NjM3
NTVkM2FkMDdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE4LTAyLTE2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVy
XSBNb3ZlIFJlbmRlckJveE1vZGVsT2JqZWN0Ojptb3ZlQ2hpbGQqKCkgdG8gUmVuZGVyVHJlZUJ1
aWxkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
Mjg5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2MjMwNTE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjptb3ZlQWxsQ2hpbGRyZW5JbmNsdWRpbmdGbG9hdHNUbyk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrRmxvdzo6bW92ZUFsbENoaWxkcmVuSW5jbHVkaW5nRmxvYXRzVG8pOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6Om1vdmVDaGlsZFRvKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojptb3ZlQ2hpbGRyZW5Ubyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6bW92ZUFsbENoaWxkcmVuVG9J
bnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6bW92ZUNoaWxk
VG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6Om1v
dmVBbGxDaGlsZHJlblRvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1v
ZGVsT2JqZWN0Ojptb3ZlQ2hpbGRyZW5Ubyk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5n
L3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRyZWVCdWlsZGVyOjptb3ZlQ2hpbGRUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
QnVpbGRlcjo6bW92ZUFsbENoaWxkcmVuVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJl
ZUJ1aWxkZXI6Om1vdmVDaGlsZHJlblRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVC
dWlsZGVyOjptb3ZlQWxsQ2hpbGRyZW5JbmNsdWRpbmdGbG9hdHNUbyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6bWFrZUNoaWxkcmVuTm9uSW5saW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hp
bGQpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om1vdmVBbGxDaGlsZHJlblRvSW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OkJsb2NrOjpyZW1vdmVMZWZ0b3ZlckFub255bW91
c0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpCbG9jazo6dGFr
ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpCbG9jazo6ZHJv
cEFub255bW91c0JveENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1
aWxkZXI6OkJsb2NrRmxvdzo6bW92ZUFsbENoaWxkcmVuSW5jbHVkaW5nRmxvYXRzVG8pOgorICAg
ICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6
Y3JlYXRlRnJhZ21lbnRlZEZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxk
ZXI6Ok11bHRpQ29sdW1uOjpkZXN0cm95RnJhZ21lbnRlZEZsb3cpOgorICAgICAgICAqIHJlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6Om1vdmVJbmxpbmVDaGlsZHJlbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6UnVieTo6bW92ZUJsb2NrQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6OnRha2VDaGlsZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyVGFibGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlRhYmxlOjpjb2xsYXBzZUFuZERl
c3Ryb3lBbm9ueW1vdXNTaWJsaW5nUm93cyk6CisKIDIwMTgtMDItMTYgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVuZGVyVHJlZUJ1aWxkZXJdIE1vdmUgUmVu
ZGVyRWxlbWVudDo6aW5zZXJ0Q2hpbGRJbnRlcm5hbCgpIHRvIFJlbmRlclRyZWVCdWlsZGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDdkZTFkOTk2NGI5NGNiYjg4
NWYyYjQyZWZhNmZiNmFhMGExMmQwY2YuLmQ3MDA1NzU3ZDY1OGNmMDhmNGQyYmMzOTE5NzkwNmJm
ZWQ3YjBlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zOTIs
OCArMzkyLDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50
aW5nKExheW91dFJlY3QmKSBvdmVycmlkZTsKICAgICBMYXlvdXRSZWN0IHBhaW50UmVjdFRvQ2xp
cE91dEZyb21Cb3JkZXIoY29uc3QgTGF5b3V0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNJ
bmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBpc0lubGluZSgp
ICYmIGlzUmVwbGFjZWQoKTsgfQotICAgIC8vIEZJWE1FLUJMT0NLRkxPVzogUmVtb3ZlIHZpcnR1
YWxpemFpb24gd2hlbiBhbGwgY2FsbGVycyBoYXZlIG1vdmVkIHRvIFJlbmRlckJsb2NrRmxvdwot
ICAgIHZpcnR1YWwgdm9pZCBtb3ZlQWxsQ2hpbGRyZW5JbmNsdWRpbmdGbG9hdHNUbyhSZW5kZXJU
cmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyQmxvY2smIHRvQmxvY2ssIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpOb3JtYWxpemVBZnRlckluc2VydGlvbiBub3JtYWxpemVBZnRlckluc2VydGlvbikg
eyBtb3ZlQWxsQ2hpbGRyZW5UbyhidWlsZGVyLCAmdG9CbG9jaywgbm9ybWFsaXplQWZ0ZXJJbnNl
cnRpb24pOyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9t
Q2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKaW5kZXggMjIxNDQ4MmU5NzJmMTdkNWJjMDEwYzBjZDFjM2FkNmM3OTdmZDIwYS4uMzM3ZGFj
ZGVhNGI1Y2Y5MzRjY2JlNjU5ZjkxMWVkNzNlNzhiNGNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTIwMjMsNyArMjAyMyw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sCiAgICAgLy8gRnJlc2ggZmxvYXRzIG5lZWQgdG8gYmUgcmVwYXJl
bnRlZCBpZiB0aGV5IGFjdHVhbGx5IGJlbG9uZyB0byB0aGUgcHJldmlvdXMgYW5vbnltb3VzIGJs
b2NrLgogICAgIC8vIEl0IGNvcGllcyB0aGUgbG9naWMgb2YgUmVuZGVyQmxvY2s6OmFkZENoaWxk
SWdub3JpbmdDb250aW51YXRpb24KICAgICBpZiAobm9Mb25nZXJBZmZlY3RzUGFyZW50QmxvY2so
KSAmJiBzdHlsZSgpLmlzRmxvYXRpbmcoKSAmJiBwcmV2aW91c1NpYmxpbmcoKSAmJiBwcmV2aW91
c1NpYmxpbmcoKS0+aXNBbm9ueW1vdXNCbG9jaygpKQotICAgICAgICBkb3duY2FzdDxSZW5kZXJC
b3hNb2RlbE9iamVjdD4oKnBhcmVudCgpKS5tb3ZlQ2hpbGRUbygqUmVuZGVyVHJlZUJ1aWxkZXI6
OmN1cnJlbnQoKSwgJmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PigqcHJldmlvdXNTaWJs
aW5nKCkpLCB0aGlzLCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRp
b246Ok5vKTsKKyAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKS0+bW92ZUNoaWxk
VG8oZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCpwYXJlbnQoKSksICZkb3duY2FzdDxS
ZW5kZXJCb3hNb2RlbE9iamVjdD4oKnByZXZpb3VzU2libGluZygpKSwgdGhpcywgUmVuZGVyVHJl
ZUJ1aWxkZXI6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpObyk7CiAKICAgICBpZiAoZGlmZiA+
PSBTdHlsZURpZmZlcmVuY2VSZXBhaW50KSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxk
IHVzZSBhIGNoZWFwZXIgc3R5bGUtb25seSB0ZXN0IGluc3RlYWQgb2YgU2ltcGxlTGluZUxheW91
dDo6Y2FuVXNlRm9yLgpAQCAtMjEwNSwxMyArMjEwNSw2IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93
OjphZGRGbG9hdHNUb05ld1BhcmVudChSZW5kZXJCbG9ja0Zsb3cmIHRvQmxvY2tGbG93KSBjb25z
dAogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJCbG9ja0Zsb3c6Om1vdmVBbGxDaGlsZHJlbkluY2x1
ZGluZ0Zsb2F0c1RvKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJCbG9jayYgdG9C
bG9jaywgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uIG5vcm1h
bGl6ZUFmdGVySW5zZXJ0aW9uKQotewotICAgIGF1dG8mIHRvQmxvY2tGbG93ID0gZG93bmNhc3Q8
UmVuZGVyQmxvY2tGbG93Pih0b0Jsb2NrKTsKLSAgICBtb3ZlQWxsQ2hpbGRyZW5UbyhidWlsZGVy
LCAmdG9CbG9ja0Zsb3csIG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKLSAgICBhZGRGbG9hdHNU
b05ld1BhcmVudCh0b0Jsb2NrRmxvdyk7Ci19Ci0KIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRP
dmVyZmxvd0Zyb21GbG9hdHMoKQogewogICAgIGlmICghbV9mbG9hdGluZ09iamVjdHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5kZXggNDBkZTkyODk5ODdi
MTMxZWRiOGYwNjViYTBiNWE0MTk2ZDRmMWUyMy4uZWMyOTg0ZmUyZmU0MWNiNDc4NzNlNTFhMGM3
Yjk2ODhjYzVjYWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuaApAQCAtNDYxLDcgKzQ2MSw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBDYWxsZWQgdG8gbGF5
IG91dCB0aGUgbGVnZW5kIGZvciBhIGZpZWxkc2V0IG9yIHRoZSBydWJ5IHRleHQgb2YgYSBydWJ5
IHJ1bi4gQWxzbyB1c2VkIGJ5IG11bHRpLWNvbHVtbiBsYXlvdXQgdG8gaGFuZGxlCiAgICAgLy8g
dGhlIGZsb3cgdGhyZWFkIGNoaWxkLgogICAgIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihi
b29sIHJlbGF5b3V0Q2hpbGRyZW4pIG92ZXJyaWRlOwotICAgIHZvaWQgbW92ZUFsbENoaWxkcmVu
SW5jbHVkaW5nRmxvYXRzVG8oUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJCbG9jayYgdG9CbG9j
aywgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGFkZE92ZXJmbG93RnJvbUZsb2F0cygpOwogCiBwcml2YXRlOgogICAgIGJv
b2wgcmVjb21wdXRlTG9naWNhbFdpZHRoQW5kQ29sdW1uV2lkdGgoKTsKQEAgLTUwOCw3ICs1MDgs
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgaGl0VGVzdEZsb2F0cyhjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBoaXRUZXN0SW5saW5lQ2hpbGRyZW4oY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJy
aWRlOwogCi0gICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21GbG9hdHMoKTsKICAgICB2b2lkIGFkZE92
ZXJmbG93RnJvbUlubGluZUNoaWxkcmVuKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBmaXRC
b3JkZXJUb0xpbmVzSWZOZWVkZWQoKTsgLy8gU2hyaW5rIHRoZSBib3ggaW4gd2hpY2ggdGhlIGJv
cmRlciBwYWludHMgaWYgYm9yZGVyLWZpdCBpcyBzZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA2Y2Y5NDA1ZTZiNDRhZTMy
YTEyY2ExMzJkNDdkNTRhNzBkOWE3YjZkLi44ZmY5NzdiMTE0N2E0Yjc3YTAzOGI4MTdiYWY2MGY2
ODZhMzc5Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKQEAgLTI2ODUsNjcgKzI2ODUsNCBAQCB2b2lkIFJlbmRlckJveE1vZGVs
T2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUs
IFRyYQogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbnRhaW5lck9mZnNldC53aWR0aCgp
LCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6
QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsK
IH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bW92ZUNoaWxkVG8oUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIsIFJlbmRlckJveE1vZGVsT2JqZWN0KiB0b0JveE1vZGVsT2JqZWN0LCBS
ZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBOb3JtYWxpemVB
ZnRlckluc2VydGlvbiBub3JtYWxpemVBZnRlckluc2VydGlvbikKLXsKLSAgICAvLyBXZSBhc3N1
bWUgdGhhdCBjYWxsZXJzIGhhdmUgY2xlYXJlZCB0aGVpciBwb3NpdGlvbmVkIG9iamVjdHMgbGlz
dCBmb3IgY2hpbGQgbW92ZXMgc28gdGhlCi0gICAgLy8gcG9zaXRpb25lZCByZW5kZXJlciBtYXBz
IGRvbid0IGJlY29tZSBzdGFsZS4gSXQgd291bGQgYmUgdG9vIHNsb3cgdG8gZG8gdGhlIG1hcCBs
b29rdXAgb24gZWFjaCBjYWxsLgotICAgIEFTU0VSVChub3JtYWxpemVBZnRlckluc2VydGlvbiA9
PSBOb3JtYWxpemVBZnRlckluc2VydGlvbjo6Tm8gfHwgIWlzPFJlbmRlckJsb2NrPigqdGhpcykg
fHwgIWRvd25jYXN0PFJlbmRlckJsb2NrPigqdGhpcykuaGFzUG9zaXRpb25lZE9iamVjdHMoKSk7
Ci0KLSAgICBBU1NFUlQodGhpcyA9PSBjaGlsZC0+cGFyZW50KCkpOwotICAgIEFTU0VSVCghYmVm
b3JlQ2hpbGQgfHwgdG9Cb3hNb2RlbE9iamVjdCA9PSBiZWZvcmVDaGlsZC0+cGFyZW50KCkpOwot
ICAgIGlmIChub3JtYWxpemVBZnRlckluc2VydGlvbiA9PSBOb3JtYWxpemVBZnRlckluc2VydGlv
bjo6WWVzICYmICh0b0JveE1vZGVsT2JqZWN0LT5pc1JlbmRlckJsb2NrKCkgfHwgdG9Cb3hNb2Rl
bE9iamVjdC0+aXNSZW5kZXJJbmxpbmUoKSkpIHsKLSAgICAgICAgLy8gVGFrZXMgY2FyZSBvZiBh
ZGRpbmcgdGhlIG5ldyBjaGlsZCBjb3JyZWN0bHkgaWYgdG9CbG9jayBhbmQgZnJvbUJsb2NrCi0g
ICAgICAgIC8vIGhhdmUgZGlmZmVyZW50IGtpbmQgb2YgY2hpbGRyZW4gKGJsb2NrIHZzIGlubGlu
ZSkuCi0gICAgICAgIGF1dG8gY2hpbGRUb01vdmUgPSBidWlsZGVyLnRha2VDaGlsZEZyb21SZW5k
ZXJFbGVtZW50KCp0aGlzLCAqY2hpbGQpOwotICAgICAgICBidWlsZGVyLmluc2VydENoaWxkKCp0
b0JveE1vZGVsT2JqZWN0LCBXVEZNb3ZlKGNoaWxkVG9Nb3ZlKSwgYmVmb3JlQ2hpbGQpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gY2hpbGRUb01vdmUgPSBidWlsZGVyLnRha2VDaGlsZEZy
b21SZW5kZXJFbGVtZW50KCp0aGlzLCAqY2hpbGQpOwotICAgICAgICBidWlsZGVyLmluc2VydENo
aWxkVG9SZW5kZXJFbGVtZW50SW50ZXJuYWwoKnRvQm94TW9kZWxPYmplY3QsIFdURk1vdmUoY2hp
bGRUb01vdmUpLCBiZWZvcmVDaGlsZCk7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlckJveE1vZGVs
T2JqZWN0Ojptb3ZlQ2hpbGRyZW5UbyhSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHRvQm94TW9kZWxPYmplY3QsIFJlbmRlck9iamVjdCogc3RhcnRDaGls
ZCwgUmVuZGVyT2JqZWN0KiBlbmRDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgTm9y
bWFsaXplQWZ0ZXJJbnNlcnRpb24gbm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24pCi17Ci0gICAgLy8g
VGhpcyBjb25kaXRpb24gaXMgcmFyZWx5IGhpdCBzaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIHVzdWFs
bHkgY2FsbGVkIG9uCi0gICAgLy8gYW5vbnltb3VzIGJsb2NrcyB3aGljaCBjYW4gbm8gbG9uZ2Vy
IGNhcnJ5IHBvc2l0aW9uZWQgb2JqZWN0cyAoc2VlIHIxMjA3NjEpCi0gICAgLy8gb3Igd2hlbiBm
dWxsUmVtb3ZlSW5zZXJ0IGlzIGZhbHNlLgotICAgIGlmIChub3JtYWxpemVBZnRlckluc2VydGlv
biA9PSBOb3JtYWxpemVBZnRlckluc2VydGlvbjo6WWVzICYmIGlzPFJlbmRlckJsb2NrPigqdGhp
cykpIHsKLSAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCp0aGlzKS5yZW1vdmVQb3NpdGlv
bmVkT2JqZWN0cyhudWxscHRyKTsKLSAgICAgICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4oKnRo
aXMpKQotICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGhpcykucmVtb3Zl
RmxvYXRpbmdPYmplY3RzKCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKCFiZWZvcmVDaGlsZCB8fCB0
b0JveE1vZGVsT2JqZWN0ID09IGJlZm9yZUNoaWxkLT5wYXJlbnQoKSk7Ci0gICAgZm9yIChSZW5k
ZXJPYmplY3QqIGNoaWxkID0gc3RhcnRDaGlsZDsgY2hpbGQgJiYgY2hpbGQgIT0gZW5kQ2hpbGQ7
ICkgewotICAgICAgICAvLyBTYXZlIG91ciBuZXh0IHNpYmxpbmcgYXMgbW92ZUNoaWxkVG8gd2ls
bCBjbGVhciBpdC4KLSAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZyA9IGNoaWxkLT5u
ZXh0U2libGluZygpOwotICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgaGVy
ZSBmYWlscyB0byBkZXRlY3QgdGhlIGZpcnN0IGxldHRlciBpbiBjZXJ0YWluIGNhc2VzCi0gICAg
ICAgIC8vIGFuZCBza2lwcyBhIHZhbGlkIHNpYmxpbmcgcmVuZGVyZXIgKHNlZSB3ZWJraXQub3Jn
L2IvMTYzNzM3KS4KLSAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlJ3JlIG5vdCBzYXZp
bmcgdGhlIGZpcnN0TGV0dGVyIGFzIHRoZSBuZXh0U2libGluZy4KLSAgICAgICAgLy8gV2hlbiB0
aGUgfGNoaWxkfCBvYmplY3Qgd2lsbCBiZSBtb3ZlZCwgaXRzIGZpcnN0TGV0dGVyIHdpbGwgYmUg
cmVjcmVhdGVkLAotICAgICAgICAvLyBzbyBzYXZpbmcgaXQgbm93IGluIG5leHRTaWJsaW5nIHdv
dWxkIGxlYXZlIHVzIHdpdGggYSBzdGFsZSBvYmplY3QuCi0gICAgICAgIGlmIChpczxSZW5kZXJU
ZXh0RnJhZ21lbnQ+KCpjaGlsZCkgJiYgaXM8UmVuZGVyVGV4dD4obmV4dFNpYmxpbmcpKSB7Ci0g
ICAgICAgICAgICBSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyT2JqID0gbnVsbHB0cjsKLSAgICAg
ICAgICAgIGlmIChSZW5kZXJCbG9jayogYmxvY2sgPSBkb3duY2FzdDxSZW5kZXJUZXh0RnJhZ21l
bnQ+KCpjaGlsZCkuYmxvY2tGb3JBY2NvbXBhbnlpbmdGaXJzdExldHRlcigpKSB7Ci0gICAgICAg
ICAgICAgICAgUmVuZGVyRWxlbWVudCogZmlyc3RMZXR0ZXJDb250YWluZXIgPSBudWxscHRyOwot
ICAgICAgICAgICAgICAgIGJsb2NrLT5nZXRGaXJzdExldHRlcihmaXJzdExldHRlck9iaiwgZmly
c3RMZXR0ZXJDb250YWluZXIsIGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgbGV0dGVyLCBza2lwIGl0LgotICAgICAg
ICAgICAgaWYgKGZpcnN0TGV0dGVyT2JqID09IG5leHRTaWJsaW5nKQotICAgICAgICAgICAgICAg
IG5leHRTaWJsaW5nID0gbmV4dFNpYmxpbmctPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBtb3ZlQ2hpbGRUbyhidWlsZGVyLCB0b0JveE1vZGVsT2JqZWN0LCBjaGlsZCwgYmVm
b3JlQ2hpbGQsIG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKLSAgICAgICAgY2hpbGQgPSBuZXh0
U2libGluZzsKLSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1vdmVBbGxD
aGlsZHJlblRvSW50ZXJuYWwoUmVuZGVyRWxlbWVudCYgbmV3UGFyZW50KQotewotICAgIHdoaWxl
IChmaXJzdENoaWxkKCkpCi0gICAgICAgIG5ld1BhcmVudC5hdHRhY2hSZW5kZXJlckludGVybmFs
KGRldGFjaFJlbmRlcmVySW50ZXJuYWwoKmZpcnN0Q2hpbGQoKSksIHRoaXMpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oCmluZGV4IGVlODQwY2IwNzQ0NTEwY2E2NDEwNDdiMWE1OGEwNWQ0Mjdl
MGE4NDguLjVjMWZiYjZkNWRmM2E5NTAwMDQ1ODNkYmNlZTQ1ZWJmZWViOGE4MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0yNzUs
MzAgKzI3NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZpcnN0TGV0dGVyUmVtYWluaW5nVGV4
dChSZW5kZXJUZXh0RnJhZ21lbnQmKTsKICAgICB2b2lkIGNsZWFyRmlyc3RMZXR0ZXJSZW1haW5p
bmdUZXh0KCk7CiAKLSAgICAvLyBOb3JtYWxpemVBZnRlckluc2VydGlvbjo6WWVzIGVuc3VyZXMg
dGhhdCB0aGUgZGVzdGluYXRpb24gc3VidHJlZSBpcyBjb25zaXN0ZW50IGFmdGVyIHRoZSBpbnNl
cnRpb24gKGFub255bW91cyB3cmFwcGVycyBldGMpLgotICAgIGVudW0gY2xhc3MgTm9ybWFsaXpl
QWZ0ZXJJbnNlcnRpb24geyBObywgWWVzIH07Ci0gICAgdm9pZCBtb3ZlQ2hpbGRUbyhSZW5kZXJU
cmVlQnVpbGRlciYsIFJlbmRlckJveE1vZGVsT2JqZWN0KiB0b0JveE1vZGVsT2JqZWN0LCBSZW5k
ZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBOb3JtYWxpemVBZnRl
ckluc2VydGlvbik7Ci0gICAgdm9pZCBtb3ZlQ2hpbGRUbyhSZW5kZXJUcmVlQnVpbGRlciYgYnVp
bGRlciwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHRvQm94TW9kZWxPYmplY3QsIFJlbmRlck9iamVj
dCogY2hpbGQsIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uIG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9u
KQotICAgIHsKLSAgICAgICAgbW92ZUNoaWxkVG8oYnVpbGRlciwgdG9Cb3hNb2RlbE9iamVjdCwg
Y2hpbGQsIG51bGxwdHIsIG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKLSAgICB9Ci0gICAgdm9p
ZCBtb3ZlQWxsQ2hpbGRyZW5UbyhSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyQm94
TW9kZWxPYmplY3QqIHRvQm94TW9kZWxPYmplY3QsIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uIG5v
cm1hbGl6ZUFmdGVySW5zZXJ0aW9uKQotICAgIHsKLSAgICAgICAgbW92ZUFsbENoaWxkcmVuVG8o
YnVpbGRlciwgdG9Cb3hNb2RlbE9iamVjdCwgbnVsbHB0ciwgbm9ybWFsaXplQWZ0ZXJJbnNlcnRp
b24pOwotICAgIH0KLSAgICB2b2lkIG1vdmVBbGxDaGlsZHJlblRvKFJlbmRlclRyZWVCdWlsZGVy
JiBidWlsZGVyLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdG9Cb3hNb2RlbE9iamVjdCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCwgTm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24gbm9ybWFsaXplQWZ0
ZXJJbnNlcnRpb24pCi0gICAgewotICAgICAgICBtb3ZlQ2hpbGRyZW5UbyhidWlsZGVyLCB0b0Jv
eE1vZGVsT2JqZWN0LCBmaXJzdENoaWxkKCksIG51bGxwdHIsIGJlZm9yZUNoaWxkLCBub3JtYWxp
emVBZnRlckluc2VydGlvbik7Ci0gICAgfQotICAgIHZvaWQgbW92ZUFsbENoaWxkcmVuVG9JbnRl
cm5hbChSZW5kZXJFbGVtZW50JiBuZXdQYXJlbnQpOwotICAgIC8vIE1vdmUgYWxsIG9mIHRoZSBr
aWRzIGZyb20gfHN0YXJ0Q2hpbGR8IHVwIHRvIGJ1dCBleGNsdWRpbmcgfGVuZENoaWxkfC4gMCBj
YW4gYmUgcGFzc2VkIGFzIHRoZSB8ZW5kQ2hpbGR8IHRvIGRlbm90ZQotICAgIC8vIHRoYXQgYWxs
IHRoZSBraWRzIGZyb20gfHN0YXJ0Q2hpbGR8IG9ud2FyZHMgc2hvdWxkIGJlIG1vdmVkLgotICAg
IHZvaWQgbW92ZUNoaWxkcmVuVG8oUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlckJv
eE1vZGVsT2JqZWN0KiB0b0JveE1vZGVsT2JqZWN0LCBSZW5kZXJPYmplY3QqIHN0YXJ0Q2hpbGQs
IFJlbmRlck9iamVjdCogZW5kQ2hpbGQsIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uIG5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uKQotICAgIHsKLSAgICAgICAgbW92ZUNoaWxkcmVuVG8oYnVpbGRlciwg
dG9Cb3hNb2RlbE9iamVjdCwgc3RhcnRDaGlsZCwgZW5kQ2hpbGQsIG51bGxwdHIsIG5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uKTsKLSAgICB9Ci0gICAgdm9pZCBtb3ZlQ2hpbGRyZW5UbyhSZW5kZXJU
cmVlQnVpbGRlciYsIFJlbmRlckJveE1vZGVsT2JqZWN0KiB0b0JveE1vZGVsT2JqZWN0LCBSZW5k
ZXJPYmplY3QqIHN0YXJ0Q2hpbGQsIFJlbmRlck9iamVjdCogZW5kQ2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQsIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKLQogICAgIGVudW0gU2Nh
bGVCeUVmZmVjdGl2ZVpvb21Pck5vdCB7IFNjYWxlQnlFZmZlY3RpdmVab29tLCBEb05vdFNjYWxl
QnlFZmZlY3RpdmVab29tIH07CiAgICAgTGF5b3V0U2l6ZSBjYWxjdWxhdGVJbWFnZUludHJpbnNp
Y0RpbWVuc2lvbnMoU3R5bGVJbWFnZSosIGNvbnN0IExheW91dFNpemUmIHNjYWxlZFBvc2l0aW9u
aW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
LmNwcAppbmRleCBjZmNiNDA3ZTc4MDc1MjgyNzE4NGEwZmU5ZjJhNjAzMmQ2ODRjYmFiLi40ZGU4
MzNjMTgyYzkyOThiYThlOTFlNzAzNTQ4YTdmODkwM2NjODg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAg
LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJl
bmRlclRhYmxlU2VjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJS
ZW5kZXJUZXh0RnJhZ21lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlckJsb2NrLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5k
ZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmgiCkBAIC0zNzYsNiArMzc3LDkyIEBAIHZvaWQgUmVu
ZGVyVHJlZUJ1aWxkZXI6Omluc2VydENoaWxkVG9SZW5kZXJFbGVtZW50SW50ZXJuYWwoUmVuZGVy
RWxlbWVudCYgcGFyZW50CiAgICAgbmV3Q2hpbGQtPnNldEhhc091dGxpbmVBdXRvQW5jZXN0b3Io
KTsKIH0KIAordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6bW92ZUNoaWxkVG8oUmVuZGVyQm94TW9k
ZWxPYmplY3QmIGZyb20sIFJlbmRlckJveE1vZGVsT2JqZWN0KiB0bywgUmVuZGVyT2JqZWN0KiBj
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgTm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24g
bm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24pCit7CisgICAgLy8gV2UgYXNzdW1lIHRoYXQgY2FsbGVy
cyBoYXZlIGNsZWFyZWQgdGhlaXIgcG9zaXRpb25lZCBvYmplY3RzIGxpc3QgZm9yIGNoaWxkIG1v
dmVzIHNvIHRoZQorICAgIC8vIHBvc2l0aW9uZWQgcmVuZGVyZXIgbWFwcyBkb24ndCBiZWNvbWUg
c3RhbGUuIEl0IHdvdWxkIGJlIHRvbyBzbG93IHRvIGRvIHRoZSBtYXAgbG9va3VwIG9uIGVhY2gg
Y2FsbC4KKyAgICBBU1NFUlQobm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24gPT0gTm9ybWFsaXplQWZ0
ZXJJbnNlcnRpb246Ok5vIHx8ICFpczxSZW5kZXJCbG9jaz4oZnJvbSkgfHwgIWRvd25jYXN0PFJl
bmRlckJsb2NrPihmcm9tKS5oYXNQb3NpdGlvbmVkT2JqZWN0cygpKTsKKworICAgIEFTU0VSVCgm
ZnJvbSA9PSBjaGlsZC0+cGFyZW50KCkpOworICAgIEFTU0VSVCghYmVmb3JlQ2hpbGQgfHwgdG8g
PT0gYmVmb3JlQ2hpbGQtPnBhcmVudCgpKTsKKyAgICBpZiAobm9ybWFsaXplQWZ0ZXJJbnNlcnRp
b24gPT0gTm9ybWFsaXplQWZ0ZXJJbnNlcnRpb246OlllcyAmJiAodG8tPmlzUmVuZGVyQmxvY2so
KSB8fCB0by0+aXNSZW5kZXJJbmxpbmUoKSkpIHsKKyAgICAgICAgLy8gVGFrZXMgY2FyZSBvZiBh
ZGRpbmcgdGhlIG5ldyBjaGlsZCBjb3JyZWN0bHkgaWYgdG9CbG9jayBhbmQgZnJvbUJsb2NrCisg
ICAgICAgIC8vIGhhdmUgZGlmZmVyZW50IGtpbmQgb2YgY2hpbGRyZW4gKGJsb2NrIHZzIGlubGlu
ZSkuCisgICAgICAgIGF1dG8gY2hpbGRUb01vdmUgPSB0YWtlQ2hpbGRGcm9tUmVuZGVyRWxlbWVu
dChmcm9tLCAqY2hpbGQpOworICAgICAgICBpbnNlcnRDaGlsZCgqdG8sIFdURk1vdmUoY2hpbGRU
b01vdmUpLCBiZWZvcmVDaGlsZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBjaGlsZFRv
TW92ZSA9IHRha2VDaGlsZEZyb21SZW5kZXJFbGVtZW50KGZyb20sICpjaGlsZCk7CisgICAgICAg
IGluc2VydENoaWxkVG9SZW5kZXJFbGVtZW50SW50ZXJuYWwoKnRvLCBXVEZNb3ZlKGNoaWxkVG9N
b3ZlKSwgYmVmb3JlQ2hpbGQpOworICAgIH0KK30KKwordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6
bW92ZUNoaWxkVG8oUmVuZGVyQm94TW9kZWxPYmplY3QmIGZyb20sIFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiB0bywgUmVuZGVyT2JqZWN0KiBjaGlsZCwgTm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24gbm9y
bWFsaXplQWZ0ZXJJbnNlcnRpb24pCit7CisgICAgbW92ZUNoaWxkVG8oZnJvbSwgdG8sIGNoaWxk
LCBudWxscHRyLCBub3JtYWxpemVBZnRlckluc2VydGlvbik7Cit9CisKK3ZvaWQgUmVuZGVyVHJl
ZUJ1aWxkZXI6Om1vdmVBbGxDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2JqZWN0JiBmcm9tLCBS
ZW5kZXJCb3hNb2RlbE9iamVjdCogdG8sIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uIG5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uKQoreworICAgIG1vdmVBbGxDaGlsZHJlblRvKGZyb20sIHRvLCBudWxs
cHRyLCBub3JtYWxpemVBZnRlckluc2VydGlvbik7Cit9CisKK3ZvaWQgUmVuZGVyVHJlZUJ1aWxk
ZXI6Om1vdmVBbGxDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2JqZWN0JiBmcm9tLCBSZW5kZXJC
b3hNb2RlbE9iamVjdCogdG8sIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIE5vcm1hbGl6ZUFm
dGVySW5zZXJ0aW9uIG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKQoreworICAgIG1vdmVDaGlsZHJl
blRvKGZyb20sIHRvLCBmcm9tLmZpcnN0Q2hpbGQoKSwgbnVsbHB0ciwgYmVmb3JlQ2hpbGQsIG5v
cm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKK30KKwordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6bW92
ZUNoaWxkcmVuVG8oUmVuZGVyQm94TW9kZWxPYmplY3QmIGZyb20sIFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiB0bywgUmVuZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmplY3QqIGVuZENoaWxk
LCBOb3JtYWxpemVBZnRlckluc2VydGlvbiBub3JtYWxpemVBZnRlckluc2VydGlvbikKK3sKKyAg
ICBtb3ZlQ2hpbGRyZW5Ubyhmcm9tLCB0bywgc3RhcnRDaGlsZCwgZW5kQ2hpbGQsIG51bGxwdHIs
IG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKK30KKwordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6
bW92ZUNoaWxkcmVuVG8oUmVuZGVyQm94TW9kZWxPYmplY3QmIGZyb20sIFJlbmRlckJveE1vZGVs
T2JqZWN0KiB0bywgUmVuZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmplY3QqIGVuZENo
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBOb3JtYWxpemVBZnRlckluc2VydGlvbiBu
b3JtYWxpemVBZnRlckluc2VydGlvbikKK3sKKyAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyByYXJl
bHkgaGl0IHNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXN1YWxseSBjYWxsZWQgb24KKyAgICAvLyBh
bm9ueW1vdXMgYmxvY2tzIHdoaWNoIGNhbiBubyBsb25nZXIgY2FycnkgcG9zaXRpb25lZCBvYmpl
Y3RzIChzZWUgcjEyMDc2MSkKKyAgICAvLyBvciB3aGVuIGZ1bGxSZW1vdmVJbnNlcnQgaXMgZmFs
c2UuCisgICAgaWYgKG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uID09IE5vcm1hbGl6ZUFmdGVySW5z
ZXJ0aW9uOjpZZXMgJiYgaXM8UmVuZGVyQmxvY2s+KGZyb20pKSB7CisgICAgICAgIGRvd25jYXN0
PFJlbmRlckJsb2NrPihmcm9tKS5yZW1vdmVQb3NpdGlvbmVkT2JqZWN0cyhudWxscHRyKTsKKyAg
ICAgICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4oZnJvbSkpCisgICAgICAgICAgICBkb3duY2Fz
dDxSZW5kZXJCbG9ja0Zsb3c+KGZyb20pLnJlbW92ZUZsb2F0aW5nT2JqZWN0cygpOworICAgIH0K
KworICAgIEFTU0VSVCghYmVmb3JlQ2hpbGQgfHwgdG8gPT0gYmVmb3JlQ2hpbGQtPnBhcmVudCgp
KTsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBzdGFydENoaWxkOyBjaGlsZCAmJiBj
aGlsZCAhPSBlbmRDaGlsZDsgKSB7CisgICAgICAgIC8vIFNhdmUgb3VyIG5leHQgc2libGluZyBh
cyBtb3ZlQ2hpbGRUbyB3aWxsIGNsZWFyIGl0LgorICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRT
aWJsaW5nID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7CisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMg
bG9naWMgaGVyZSBmYWlscyB0byBkZXRlY3QgdGhlIGZpcnN0IGxldHRlciBpbiBjZXJ0YWluIGNh
c2VzCisgICAgICAgIC8vIGFuZCBza2lwcyBhIHZhbGlkIHNpYmxpbmcgcmVuZGVyZXIgKHNlZSB3
ZWJraXQub3JnL2IvMTYzNzM3KS4KKyAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlJ3Jl
IG5vdCBzYXZpbmcgdGhlIGZpcnN0TGV0dGVyIGFzIHRoZSBuZXh0U2libGluZy4KKyAgICAgICAg
Ly8gV2hlbiB0aGUgfGNoaWxkfCBvYmplY3Qgd2lsbCBiZSBtb3ZlZCwgaXRzIGZpcnN0TGV0dGVy
IHdpbGwgYmUgcmVjcmVhdGVkLAorICAgICAgICAvLyBzbyBzYXZpbmcgaXQgbm93IGluIG5leHRT
aWJsaW5nIHdvdWxkIGxlYXZlIHVzIHdpdGggYSBzdGFsZSBvYmplY3QuCisgICAgICAgIGlmIChp
czxSZW5kZXJUZXh0RnJhZ21lbnQ+KCpjaGlsZCkgJiYgaXM8UmVuZGVyVGV4dD4obmV4dFNpYmxp
bmcpKSB7CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyT2JqID0gbnVsbHB0
cjsKKyAgICAgICAgICAgIGlmIChSZW5kZXJCbG9jayogYmxvY2sgPSBkb3duY2FzdDxSZW5kZXJU
ZXh0RnJhZ21lbnQ+KCpjaGlsZCkuYmxvY2tGb3JBY2NvbXBhbnlpbmdGaXJzdExldHRlcigpKSB7
CisgICAgICAgICAgICAgICAgUmVuZGVyRWxlbWVudCogZmlyc3RMZXR0ZXJDb250YWluZXIgPSBu
dWxscHRyOworICAgICAgICAgICAgICAgIGJsb2NrLT5nZXRGaXJzdExldHRlcihmaXJzdExldHRl
ck9iaiwgZmlyc3RMZXR0ZXJDb250YWluZXIsIGNoaWxkKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgbGV0dGVyLCBza2lwIGl0LgorICAgICAgICAg
ICAgaWYgKGZpcnN0TGV0dGVyT2JqID09IG5leHRTaWJsaW5nKQorICAgICAgICAgICAgbmV4dFNp
YmxpbmcgPSBuZXh0U2libGluZy0+bmV4dFNpYmxpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAg
IG1vdmVDaGlsZFRvKGZyb20sIHRvLCBjaGlsZCwgYmVmb3JlQ2hpbGQsIG5vcm1hbGl6ZUFmdGVy
SW5zZXJ0aW9uKTsKKyAgICAgICAgY2hpbGQgPSBuZXh0U2libGluZzsKKyAgICB9Cit9CisKK3Zv
aWQgUmVuZGVyVHJlZUJ1aWxkZXI6Om1vdmVBbGxDaGlsZHJlbkluY2x1ZGluZ0Zsb2F0c1RvKFJl
bmRlckJsb2NrJiBmcm9tLCBSZW5kZXJCbG9jayYgdG8sIFJlbmRlclRyZWVCdWlsZGVyOjpOb3Jt
YWxpemVBZnRlckluc2VydGlvbiBub3JtYWxpemVBZnRlckluc2VydGlvbikKK3sKKyAgICBpZiAo
aXM8UmVuZGVyQmxvY2tGbG93Pihmcm9tKSkgeworICAgICAgICBibG9ja0Zsb3dCdWlsZGVyKCku
bW92ZUFsbENoaWxkcmVuSW5jbHVkaW5nRmxvYXRzVG8oZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93
Pihmcm9tKSwgdG8sIG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBtb3ZlQWxsQ2hpbGRyZW5Ubyhmcm9tLCAmdG8sIG5vcm1hbGl6ZUFmdGVySW5z
ZXJ0aW9uKTsKK30KKwogdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6bWFrZUNoaWxkcmVuTm9uSW5s
aW5lKFJlbmRlckJsb2NrJiBwYXJlbnQsIFJlbmRlck9iamVjdCogaW5zZXJ0aW9uUG9pbnQpCiB7
CiAgICAgLy8gbWFrZUNoaWxkcmVuTm9uSW5saW5lIHRha2VzIGEgYmxvY2sgd2hvc2UgY2hpbGRy
ZW4gYXJlICphbGwqIGlubGluZSBhbmQgaXQKQEAgLTQwOSw3ICs0OTYsNyBAQCB2b2lkIFJlbmRl
clRyZWVCdWlsZGVyOjptYWtlQ2hpbGRyZW5Ob25JbmxpbmUoUmVuZGVyQmxvY2smIHBhcmVudCwg
UmVuZGVyT2JqZWN0KgogICAgICAgICBhdXRvIG5ld0Jsb2NrID0gcGFyZW50LmNyZWF0ZUFub255
bW91c0Jsb2NrKCk7CiAgICAgICAgIGF1dG8mIGJsb2NrID0gKm5ld0Jsb2NrOwogICAgICAgICBp
bnNlcnRDaGlsZFRvUmVuZGVyRWxlbWVudEludGVybmFsKHBhcmVudCwgV1RGTW92ZShuZXdCbG9j
ayksIGlubGluZVJ1blN0YXJ0KTsKLSAgICAgICAgcGFyZW50Lm1vdmVDaGlsZHJlblRvKCp0aGlz
LCAmYmxvY2ssIGlubGluZVJ1blN0YXJ0LCBjaGlsZCwgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5v
cm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpObyk7CisgICAgICAgIG1vdmVDaGlsZHJlblRvKHBhcmVu
dCwgJmJsb2NrLCBpbmxpbmVSdW5TdGFydCwgY2hpbGQsIFJlbmRlclRyZWVCdWlsZGVyOjpOb3Jt
YWxpemVBZnRlckluc2VydGlvbjo6Tm8pOwogICAgIH0KICNpZm5kZWYgTkRFQlVHCiAgICAgZm9y
IChSZW5kZXJPYmplY3QqIGMgPSBwYXJlbnQuZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNp
YmxpbmcoKSkKQEAgLTQzOCw3ICs1MjUsNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlclRyZWVCdWls
ZGVyOjpzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVuZGVyQm94JiBwYXJlbgogICAg
ICAgICAgICAgLy8gU2VlIGZvciBleGFtcGxlIFJlbmRlclRhYmxlQ2VsbDpjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludC4KICAgICAgICAgICAgIG1hcmtCb3hGb3JSZWxheW91dEFmdGVyU3Bs
aXQoKnBhcmVudEJveCk7CiAgICAgICAgICAgICBpbnNlcnRDaGlsZFRvUmVuZGVyRWxlbWVudElu
dGVybmFsKCpwYXJlbnRCb3gsIFdURk1vdmUobmV3UG9zdEJveCksIGJveFRvU3BsaXQubmV4dFNp
YmxpbmcoKSk7Ci0gICAgICAgICAgICBib3hUb1NwbGl0Lm1vdmVDaGlsZHJlblRvKCp0aGlzLCAm
cG9zdEJveCwgYmVmb3JlQ2hpbGQsIG51bGxwdHIsIFJlbmRlckJveE1vZGVsT2JqZWN0OjpOb3Jt
YWxpemVBZnRlckluc2VydGlvbjo6WWVzKTsKKyAgICAgICAgICAgIG1vdmVDaGlsZHJlblRvKGJv
eFRvU3BsaXQsICZwb3N0Qm94LCBiZWZvcmVDaGlsZCwgbnVsbHB0ciwgUmVuZGVyVHJlZUJ1aWxk
ZXI6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwogCiAgICAgICAgICAgICBtYXJrQm94
Rm9yUmVsYXlvdXRBZnRlclNwbGl0KGJveFRvU3BsaXQpOwogICAgICAgICAgICAgbWFya0JveEZv
clJlbGF5b3V0QWZ0ZXJTcGxpdChwb3N0Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmgKaW5kZXggNTcxMjAxNzg2NmZi
MmNlMGIzYWYwYWY5MWQ5MTEyNWQ4MWVjZjVlNS4uZTJjYjgxMDYyYzkzNzYwN2UyZjExN2VhYjk0
OGIyNjNjMjQzODdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmgKQEAgLTcyLDYgKzcyLDE3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95Q2xlYW5pbmdVcEFub255bW91c1dyYXBw
ZXJzKFJlbmRlck9iamVjdCYgY2hpbGQpOwogICAgIHZvaWQgbXVsdGlDb2x1bW5EZXNjZW5kYW50
SW5zZXJ0ZWQoUmVuZGVyTXVsdGlDb2x1bW5GbG93JiwgUmVuZGVyT2JqZWN0JiBuZXdEZXNjZW5k
YW50KTsKIAorICAgIC8vIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMgZW5zdXJlcyB0aGF0
IHRoZSBkZXN0aW5hdGlvbiBzdWJ0cmVlIGlzIGNvbnNpc3RlbnQgYWZ0ZXIgdGhlIGluc2VydGlv
biAoYW5vbnltb3VzIHdyYXBwZXJzIGV0YykuCisgICAgZW51bSBjbGFzcyBOb3JtYWxpemVBZnRl
ckluc2VydGlvbiB7IE5vLCBZZXMgfTsKKyAgICB2b2lkIG1vdmVDaGlsZFRvKFJlbmRlckJveE1v
ZGVsT2JqZWN0JiBmcm9tLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdG8sIFJlbmRlck9iamVjdCog
Y2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9u
KTsKKyAgICB2b2lkIG1vdmVDaGlsZFRvKFJlbmRlckJveE1vZGVsT2JqZWN0JiBmcm9tLCBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogdG8sIFJlbmRlck9iamVjdCogY2hpbGQsIE5vcm1hbGl6ZUFmdGVy
SW5zZXJ0aW9uKTsKKyAgICB2b2lkIG1vdmVBbGxDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2Jq
ZWN0JiBmcm9tLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdG8sIE5vcm1hbGl6ZUFmdGVySW5zZXJ0
aW9uKTsKKyAgICB2b2lkIG1vdmVBbGxDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2JqZWN0JiBm
cm9tLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdG8sIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQs
IE5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKKyAgICAvLyBNb3ZlIGFsbCBvZiB0aGUga2lkcyBm
cm9tIHxzdGFydENoaWxkfCB1cCB0byBidXQgZXhjbHVkaW5nIHxlbmRDaGlsZHwuIDAgY2FuIGJl
IHBhc3NlZCBhcyB0aGUgfGVuZENoaWxkfCB0byBkZW5vdGUKKyAgICAvLyB0aGF0IGFsbCB0aGUg
a2lkcyBmcm9tIHxzdGFydENoaWxkfCBvbndhcmRzIHNob3VsZCBiZSBtb3ZlZC4KKyAgICB2b2lk
IG1vdmVDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2JqZWN0JiBmcm9tLCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCogdG8sIFJlbmRlck9iamVjdCogc3RhcnRDaGlsZCwgUmVuZGVyT2JqZWN0KiBlbmRD
aGlsZCwgTm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24pOworICAgIHZvaWQgbW92ZUNoaWxkcmVuVG8o
UmVuZGVyQm94TW9kZWxPYmplY3QmIGZyb20sIFJlbmRlckJveE1vZGVsT2JqZWN0KiB0bywgUmVu
ZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmplY3QqIGVuZENoaWxkLCBSZW5kZXJPYmpl
Y3QqIGJlZm9yZUNoaWxkLCBOb3JtYWxpemVBZnRlckluc2VydGlvbik7CisKIHByaXZhdGU6CiAg
ICAgY2xhc3MgRmlyc3RMZXR0ZXI7CiAgICAgY2xhc3MgTGlzdDsKQEAgLTkyLDYgKzEwMyw4IEBA
IHByaXZhdGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkRnJvbVJlbmRl
ckJ1dHRvbihSZW5kZXJCdXR0b24mIHBhcmVudCwgUmVuZGVyT2JqZWN0JiBjaGlsZCk7CiAgICAg
UmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkRnJvbVJlbmRlckdyaWQoUmVuZGVyR3Jp
ZCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKTsKIAorICAgIHZvaWQgbW92ZUFsbENoaWxk
cmVuSW5jbHVkaW5nRmxvYXRzVG8oUmVuZGVyQmxvY2smIGZyb20sIFJlbmRlckJsb2NrJiB0b0Js
b2NrLCBSZW5kZXJUcmVlQnVpbGRlcjo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24pOworCiAgICAg
dm9pZCBpbnNlcnRDaGlsZFRvUmVuZGVyR3JpZChSZW5kZXJHcmlkJiBwYXJlbnQsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gbnVsbHB0
cik7CiAgICAgdm9pZCBpbnNlcnRDaGlsZFRvUmVuZGVyRWxlbWVudChSZW5kZXJFbGVtZW50JiBw
YXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkID0gbnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcAppbmRleCBkYTllNmZk
MDNjODhkNzk0NTM0NDgwMjBkZWFkMTI0OGQzYTdkMjRlLi4xMTFhMTUyNWQ5NjEzOWZiYThhMGZl
YzdjMGYxOWM4MzJiYThiMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2suY3BwCkBAIC0zNiw2ICsz
NiwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyB2b2lkIG1vdmVBbGxDaGls
ZHJlblRvSW50ZXJuYWwoUmVuZGVyQm94TW9kZWxPYmplY3QmIGZyb20sIFJlbmRlckVsZW1lbnQm
IG5ld1BhcmVudCkKK3sKKyAgICB3aGlsZSAoZnJvbS5maXJzdENoaWxkKCkpCisgICAgICAgIG5l
d1BhcmVudC5hdHRhY2hSZW5kZXJlckludGVybmFsKGZyb20uZGV0YWNoUmVuZGVyZXJJbnRlcm5h
bCgqZnJvbS5maXJzdENoaWxkKCkpLCAmZnJvbSk7Cit9CisKIHN0YXRpYyBib29sIGNhbkRyb3BB
bm9ueW1vdXNCbG9jayhjb25zdCBSZW5kZXJCbG9jayYgYW5vbnltb3VzQmxvY2spCiB7CiAgICAg
aWYgKGFub255bW91c0Jsb2NrLmJlaW5nRGVzdHJveWVkKCkgfHwgYW5vbnltb3VzQmxvY2suY29u
dGludWF0aW9uKCkpCkBAIC0yNjAsNyArMjY2LDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6
QmxvY2s6OnJlbW92ZUxlZnRvdmVyQW5vbnltb3VzQmxvY2soUmVuZGVyQmxvY2smIGFub255bW8K
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBqdXN0
IGJlIGEgbW92ZUFsbENoaWxyZW5UbyAoc2VlIHdlYmtpdC5vcmcvYi8xODI0OTUpCi0gICAgYW5v
bnltb3VzQmxvY2subW92ZUFsbENoaWxkcmVuVG9JbnRlcm5hbCgqcGFyZW50KTsKKyAgICBtb3Zl
QWxsQ2hpbGRyZW5Ub0ludGVybmFsKGFub255bW91c0Jsb2NrLCAqcGFyZW50KTsKICAgICBhdXRv
IHRvQmVEZXN0cm95ZWQgPSBtX2J1aWxkZXIudGFrZUNoaWxkRnJvbVJlbmRlckVsZW1lbnQoKnBh
cmVudCwgYW5vbnltb3VzQmxvY2spOwogICAgIC8vIGFub255bW91c0Jsb2NrIGlzIGRlYWQgaGVy
ZS4KIH0KQEAgLTMwOSw3ICszMTUsNyBAQCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJU
cmVlQnVpbGRlcjo6QmxvY2s6OnRha2VDaGlsZChSZW5kZXJCbG9jayYgcGFyZW50LAogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gVGFrZSBhbGwgdGhlIGNoaWxkcmVuIG91dCBvZiB0
aGUgfG5leHR8IGJsb2NrIGFuZCBwdXQgdGhlbSBpbgogICAgICAgICAgICAgLy8gdGhlIHxwcmV2
fCBibG9jay4KLSAgICAgICAgICAgIG5leHRCbG9jay5tb3ZlQWxsQ2hpbGRyZW5JbmNsdWRpbmdG
bG9hdHNUbyhtX2J1aWxkZXIsIHByZXZCbG9jaywgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1h
bGl6ZUFmdGVySW5zZXJ0aW9uOjpObyk7CisgICAgICAgICAgICBtX2J1aWxkZXIubW92ZUFsbENo
aWxkcmVuSW5jbHVkaW5nRmxvYXRzVG8obmV4dEJsb2NrLCBwcmV2QmxvY2ssIFJlbmRlclRyZWVC
dWlsZGVyOjpOb3JtYWxpemVBZnRlckluc2VydGlvbjo6Tm8pOwogCiAgICAgICAgICAgICAvLyBE
ZWxldGUgdGhlIG5vdy1lbXB0eSBibG9jaydzIGxpbmVzIGFuZCBudWtlIGl0LgogICAgICAgICAg
ICAgbmV4dEJsb2NrLmRlbGV0ZUxpbmVzKCk7CkBAIC0zNjEsNyArMzY3LDcgQEAgdm9pZCBSZW5k
ZXJUcmVlQnVpbGRlcjo6QmxvY2s6OmRyb3BBbm9ueW1vdXNCb3hDaGlsZChSZW5kZXJCbG9jayYg
cGFyZW50LCBSZW5kZXIKICAgICBhdXRvKiBuZXh0U2libGluZyA9IGNoaWxkLm5leHRTaWJsaW5n
KCk7CiAKICAgICBhdXRvIHRvQmVEZWxldGVkID0gbV9idWlsZGVyLnRha2VDaGlsZEZyb21SZW5k
ZXJFbGVtZW50KHBhcmVudCwgY2hpbGQpOwotICAgIGNoaWxkLm1vdmVBbGxDaGlsZHJlblRvKG1f
YnVpbGRlciwgJnBhcmVudCwgbmV4dFNpYmxpbmcsIFJlbmRlckJveE1vZGVsT2JqZWN0OjpOb3Jt
YWxpemVBZnRlckluc2VydGlvbjo6Tm8pOworICAgIG1fYnVpbGRlci5tb3ZlQWxsQ2hpbGRyZW5U
byhjaGlsZCwgJnBhcmVudCwgbmV4dFNpYmxpbmcsIFJlbmRlclRyZWVCdWlsZGVyOjpOb3JtYWxp
emVBZnRlckluc2VydGlvbjo6Tm8pOwogICAgIC8vIERlbGV0ZSB0aGUgbm93LWVtcHR5IGJsb2Nr
J3MgbGluZXMgYW5kIG51a2UgaXQuCiAgICAgY2hpbGQuZGVsZXRlTGluZXMoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDdkY2UwZGExYzgzMzVjODE3MTVkNzA1NTJl
YmJhZGEzMGM4OTIxYWUuLmI2NmVhOGM3ODM5OWRlYjQ2N2Y1ZjQ5NTQwYjlkZDljMTM3ZmZmMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmNwcApAQCAtNDUsNiArNDUsMTAgQEAgdm9p
ZCBSZW5kZXJUcmVlQnVpbGRlcjo6QmxvY2tGbG93OjppbnNlcnRDaGlsZChSZW5kZXJCbG9ja0Zs
b3cmIHBhcmVudCwgUmVuZGVyUHQKICAgICBtX2J1aWxkZXIuYmxvY2tCdWlsZGVyKCkuaW5zZXJ0
Q2hpbGQocGFyZW50LCBXVEZNb3ZlKGNoaWxkKSwgYmVmb3JlQ2hpbGRPclBsYWNlaG9sZGVyKTsK
IH0KIAordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6QmxvY2tGbG93Ojptb3ZlQWxsQ2hpbGRyZW5J
bmNsdWRpbmdGbG9hdHNUbyhSZW5kZXJCbG9ja0Zsb3cmIGZyb20sIFJlbmRlckJsb2NrJiB0bywg
UmVuZGVyVHJlZUJ1aWxkZXI6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uIG5vcm1hbGl6ZUFmdGVy
SW5zZXJ0aW9uKQoreworICAgIG1fYnVpbGRlci5tb3ZlQWxsQ2hpbGRyZW5Ubyhmcm9tLCAmdG8s
IG5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uKTsKKyAgICBmcm9tLmFkZEZsb2F0c1RvTmV3UGFyZW50
KGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4odG8pKTsKIH0KIAotCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zs
b3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ckJsb2NrRmxvdy5oCmluZGV4IDk3YjM2YzE5ZThhOTUzZWZiODdmYmM5YmYyYzExMGM0YzExMTZk
NGMuLmZjYzFjOWVkODJmZmY3Y2ZhMWVhZGNiODU0MDY5NjM2MzkxZmRmZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2Nr
Rmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlckJsb2NrRmxvdy5oCkBAIC0zNCw5ICszNCw5IEBAIHB1YmxpYzoKICAgICBCbG9ja0Zs
b3coUmVuZGVyVHJlZUJ1aWxkZXImKTsKIAogICAgIHZvaWQgaW5zZXJ0Q2hpbGQoUmVuZGVyQmxv
Y2tGbG93JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmpl
Y3QqIGJlZm9yZUNoaWxkKTsKKyAgICB2b2lkIG1vdmVBbGxDaGlsZHJlbkluY2x1ZGluZ0Zsb2F0
c1RvKFJlbmRlckJsb2NrRmxvdyYgZnJvbSwgUmVuZGVyQmxvY2smIHRvLCBSZW5kZXJUcmVlQnVp
bGRlcjo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb24pOwogCiBwcml2YXRlOgotCiAgICAgUmVuZGVy
VHJlZUJ1aWxkZXImIG1fYnVpbGRlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29s
dW1uLmNwcAppbmRleCAxMmUyYzkxZWJjOTZmZDc5ZWQyYzc3OGFlNDQwYTQ4YjAzNmE0N2FmLi44
MTBhMDNkNWFhNTVhMzUwODY1MmJiZTJmMDU1NmI2NTI2NjFlNmZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVt
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyTXVsdGlDb2x1bW4uY3BwCkBAIC0xNzIsMTIgKzE3MiwxMiBAQCB2b2lkIFJlbmRlclRy
ZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6Y3JlYXRlRnJhZ21lbnRlZEZsb3coUmVuZGVyQmxvY2tG
bG93JiBmbG93KQogICAgIG1fYnVpbGRlci5ibG9ja0J1aWxkZXIoKS5pbnNlcnRDaGlsZChmbG93
LCBXVEZNb3ZlKG5ld0ZyYWdtZW50ZWRGbG93KSwgbnVsbHB0cik7CiAKICAgICAvLyBSZXBhcmVu
dCBjaGlsZHJlbiBwcmVjZWRpbmcgdGhlIGZyYWdtZW50ZWQgZmxvdyBpbnRvIHRoZSBmcmFnbWVu
dGVkIGZsb3cuCi0gICAgZmxvdy5tb3ZlQ2hpbGRyZW5UbyhtX2J1aWxkZXIsICZmcmFnbWVudGVk
RmxvdywgZmxvdy5maXJzdENoaWxkKCksICZmcmFnbWVudGVkRmxvdywgUmVuZGVyQm94TW9kZWxP
YmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOworICAgIG1fYnVpbGRlci5tb3Zl
Q2hpbGRyZW5UbyhmbG93LCAmZnJhZ21lbnRlZEZsb3csIGZsb3cuZmlyc3RDaGlsZCgpLCAmZnJh
Z21lbnRlZEZsb3csIFJlbmRlclRyZWVCdWlsZGVyOjpOb3JtYWxpemVBZnRlckluc2VydGlvbjo6
WWVzKTsKICAgICBpZiAoZmxvdy5pc0ZpZWxkc2V0KCkpIHsKICAgICAgICAgLy8gS2VlcCBsZWdl
bmRzIG91dCBvZiB0aGUgZmxvdyB0aHJlYWQuCiAgICAgICAgIGZvciAoYXV0byYgYm94IDogY2hp
bGRyZW5PZlR5cGU8UmVuZGVyQm94PihmcmFnbWVudGVkRmxvdykpIHsKICAgICAgICAgICAgIGlm
IChib3guaXNMZWdlbmQoKSkKLSAgICAgICAgICAgICAgICBmcmFnbWVudGVkRmxvdy5tb3ZlQ2hp
bGRUbyhtX2J1aWxkZXIsICZmbG93LCAmYm94LCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Tm9ybWFs
aXplQWZ0ZXJJbnNlcnRpb246Olllcyk7CisgICAgICAgICAgICAgICAgbV9idWlsZGVyLm1vdmVD
aGlsZFRvKGZyYWdtZW50ZWRGbG93LCAmZmxvdywgJmJveCwgUmVuZGVyVHJlZUJ1aWxkZXI6Ok5v
cm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xODUs
NyArMTg1LDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TXVsdGlDb2x1bW46OmNyZWF0ZUZy
YWdtZW50ZWRGbG93KFJlbmRlckJsb2NrRmxvdyYgZmxvdykKICAgICAgICAgLy8gS2VlcCB0aGUg
bWlkZGxlIGJsb2NrIG91dCBvZiB0aGUgZmxvdyB0aHJlYWQuCiAgICAgICAgIGZvciAoYXV0byYg
ZWxlbWVudCA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlckVsZW1lbnQ+KGZyYWdtZW50ZWRGbG93KSkg
ewogICAgICAgICAgICAgaWYgKCFkb3duY2FzdDxSZW5kZXJMaW5lc0NsYW1wRmxvdz4oZnJhZ21l
bnRlZEZsb3cpLmlzQ2hpbGRBbGxvd2VkSW5GcmFnbWVudGVkRmxvdyhmbG93LCBlbGVtZW50KSkK
LSAgICAgICAgICAgICAgICBmcmFnbWVudGVkRmxvdy5tb3ZlQ2hpbGRUbyhtX2J1aWxkZXIsICZm
bG93LCAmZWxlbWVudCwgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0
aW9uOjpZZXMpOworICAgICAgICAgICAgICAgIG1fYnVpbGRlci5tb3ZlQ2hpbGRUbyhmcmFnbWVu
dGVkRmxvdywgJmZsb3csICZlbGVtZW50LCBSZW5kZXJUcmVlQnVpbGRlcjo6Tm9ybWFsaXplQWZ0
ZXJJbnNlcnRpb246Olllcyk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIxNSw3ICsyMTUsNyBA
QCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRG
bG93KFJlbmRlckJsb2NrRmxvdyYgZmxvdwogICAgICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KG1fYnVpbGRlcik7CiAKICAgICBmbG93LmNsZWFyTXVsdGlDb2x1bW5G
bG93KCk7Ci0gICAgbXVsdGlDb2x1bW5GbG93Lm1vdmVBbGxDaGlsZHJlblRvKG1fYnVpbGRlciwg
JmZsb3csIFJlbmRlckJveE1vZGVsT2JqZWN0OjpOb3JtYWxpemVBZnRlckluc2VydGlvbjo6WWVz
KTsKKyAgICBtX2J1aWxkZXIubW92ZUFsbENoaWxkcmVuVG8obXVsdGlDb2x1bW5GbG93LCAmZmxv
dywgUmVuZGVyVHJlZUJ1aWxkZXI6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwogICAg
IG11bHRpQ29sdW1uRmxvdy5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShtX2J1aWxkZXIpOwog
ICAgIGZvciAoYXV0byYgcGFyZW50QW5kU3Bhbm5lciA6IHBhcmVudEFuZFNwYW5uZXJMaXN0KQog
ICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKnBhcmVudEFuZFNwYW5uZXIuZmlyc3QsIFdU
Rk1vdmUocGFyZW50QW5kU3Bhbm5lci5zZWNvbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAKaW5k
ZXggNTBjZjQzZTA4MTJiMDQ0ZmZkNWZmZGRhNmE3YTZiZWIwZDZjOTA1OS4uZWUzMWNmMjFkZmY1
NjdmNmFmYzY3ZjQ3MzVjYWRiMDNmYzhlMGQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAKQEAg
LTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5Ojptb3ZlSW5saW5l
Q2hpbGRyZW4oUmVuZGVyUnVieUJhc2UmIGZyb20sIFJlbmRlclJ1YgogICAgICAgICB9CiAgICAg
fQogICAgIC8vIE1vdmUgb3VyIGlubGluZSBjaGlsZHJlbiBpbnRvIHRoZSB0YXJnZXQgYmxvY2sg
d2UgZGV0ZXJtaW5lZCBhYm92ZS4KLSAgICBmcm9tLm1vdmVDaGlsZHJlblRvKG1fYnVpbGRlciwg
dG9CbG9jaywgZnJvbS5maXJzdENoaWxkKCksIGJlZm9yZUNoaWxkLCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb246Ok5vKTsKKyAgICBtX2J1aWxkZXIubW92ZUNo
aWxkcmVuVG8oZnJvbSwgdG9CbG9jaywgZnJvbS5maXJzdENoaWxkKCksIGJlZm9yZUNoaWxkLCBS
ZW5kZXJUcmVlQnVpbGRlcjo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb246Ok5vKTsKIH0KIAogdm9p
ZCBSZW5kZXJUcmVlQnVpbGRlcjo6UnVieTo6bW92ZUJsb2NrQ2hpbGRyZW4oUmVuZGVyUnVieUJh
c2UmIGZyb20sIFJlbmRlclJ1YnlCYXNlJiB0bywgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkK
QEAgLTE2MywxMiArMTYzLDEyIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6Om1vdmVC
bG9ja0NoaWxkcmVuKFJlbmRlclJ1YnlCYXNlJiBmcm9tLCBSZW5kZXJSdWJ5CiAgICAgICAgICYm
IGxhc3RDaGlsZFRoZXJlICYmIGxhc3RDaGlsZFRoZXJlLT5pc0Fub255bW91c0Jsb2NrKCkgJiYg
bGFzdENoaWxkVGhlcmUtPmNoaWxkcmVuSW5saW5lKCkpIHsKICAgICAgICAgYXV0byogYW5vbkJs
b2NrSGVyZSA9IGRvd25jYXN0PFJlbmRlckJsb2NrPihmaXJzdENoaWxkSGVyZSk7CiAgICAgICAg
IGF1dG8qIGFub25CbG9ja1RoZXJlID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KGxhc3RDaGlsZFRo
ZXJlKTsKLSAgICAgICAgYW5vbkJsb2NrSGVyZS0+bW92ZUFsbENoaWxkcmVuVG8obV9idWlsZGVy
LCBhbm9uQmxvY2tUaGVyZSwgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5z
ZXJ0aW9uOjpZZXMpOworICAgICAgICBtX2J1aWxkZXIubW92ZUFsbENoaWxkcmVuVG8oKmFub25C
bG9ja0hlcmUsIGFub25CbG9ja1RoZXJlLCBSZW5kZXJUcmVlQnVpbGRlcjo6Tm9ybWFsaXplQWZ0
ZXJJbnNlcnRpb246Olllcyk7CiAgICAgICAgIGFub25CbG9ja0hlcmUtPmRlbGV0ZUxpbmVzKCk7
CiAgICAgICAgIGFub25CbG9ja0hlcmUtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KG1fYnVp
bGRlcik7CiAgICAgfQogICAgIC8vIE1vdmUgYWxsIHJlbWFpbmluZyBjaGlsZHJlbiBub3JtYWxs
eS4KLSAgICBmcm9tLm1vdmVDaGlsZHJlblRvKG1fYnVpbGRlciwgJnRvLCBmcm9tLmZpcnN0Q2hp
bGQoKSwgYmVmb3JlQ2hpbGQsIFJlbmRlckJveE1vZGVsT2JqZWN0OjpOb3JtYWxpemVBZnRlcklu
c2VydGlvbjo6Tm8pOworICAgIG1fYnVpbGRlci5tb3ZlQ2hpbGRyZW5Ubyhmcm9tLCAmdG8sIGZy
b20uZmlyc3RDaGlsZCgpLCBiZWZvcmVDaGlsZCwgUmVuZGVyVHJlZUJ1aWxkZXI6Ok5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uOjpObyk7CiB9CiAKIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6
Om1vdmVDaGlsZHJlbihSZW5kZXJSdWJ5QmFzZSYgZnJvbSwgUmVuZGVyUnVieUJhc2UmIHRvKQpA
QCAtNDM4LDggKzQzOCw4IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclRyZWVCdWls
ZGVyOjpSdWJ5Ojp0YWtlQ2hpbGQoUmVuZGVyUnVieVJ1biYgcGFyZW50CiAgICAgICAgICAgICAg
ICAgUmVuZGVyUnVieUJhc2UqIHJpZ2h0QmFzZSA9IHJpZ2h0UnVuLnJ1YnlCYXNlKCk7CiAgICAg
ICAgICAgICAgICAgLy8gQ29sbGVjdCBhbGwgY2hpbGRyZW4gaW4gYSBzaW5nbGUgYmFzZSwgdGhl
biBzd2FwIHRoZSBiYXNlcy4KICAgICAgICAgICAgICAgICBtb3ZlQ2hpbGRyZW4oKnJpZ2h0QmFz
ZSwgKmJhc2UpOwotICAgICAgICAgICAgICAgIHBhcmVudC5tb3ZlQ2hpbGRUbyhtX2J1aWxkZXIs
ICZyaWdodFJ1biwgYmFzZSwgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5z
ZXJ0aW9uOjpObyk7Ci0gICAgICAgICAgICAgICAgcmlnaHRSdW4ubW92ZUNoaWxkVG8obV9idWls
ZGVyLCAmcGFyZW50LCByaWdodEJhc2UsIFJlbmRlckJveE1vZGVsT2JqZWN0OjpOb3JtYWxpemVB
ZnRlckluc2VydGlvbjo6Tm8pOworICAgICAgICAgICAgICAgIG1fYnVpbGRlci5tb3ZlQ2hpbGRU
byhwYXJlbnQsICZyaWdodFJ1biwgYmFzZSwgUmVuZGVyVHJlZUJ1aWxkZXI6Ok5vcm1hbGl6ZUFm
dGVySW5zZXJ0aW9uOjpObyk7CisgICAgICAgICAgICAgICAgbV9idWlsZGVyLm1vdmVDaGlsZFRv
KHJpZ2h0UnVuLCAmcGFyZW50LCByaWdodEJhc2UsIFJlbmRlclRyZWVCdWlsZGVyOjpOb3JtYWxp
emVBZnRlckluc2VydGlvbjo6Tm8pOwogICAgICAgICAgICAgICAgIC8vIFRoZSBub3cgZW1wdHkg
cnVieSBiYXNlIHdpbGwgYmUgcmVtb3ZlZCBiZWxvdy4KICAgICAgICAgICAgICAgICBBU1NFUlQo
IXBhcmVudC5ydWJ5QmFzZSgpLT5maXJzdENoaWxkKCkpOwogICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
VGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyVGFibGUuY3BwCmluZGV4IDQ5NzVjMzA1Yzc4OTFhNjk3NjMxYTQ2MDI4Mjg2MDlkMjBh
ZDhiZDAuLmRiYzFhMjRiYzkxOTViMjFiODVjNzY5ZjgyNzg5MTlmNzE5ZTU5NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclRh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJUYWJsZS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWls
ZGVyOjpUYWJsZTo6Y29sbGFwc2VBbmREZXN0cm95QW5vbnltb3VzU2libGluZ1Jvd3MoUmVuZGVy
VGFibAogICAgICAgICAgICAgY3VycmVudFJvdyA9IGN1cnJlbnRSb3ctPm5leHRSb3coKTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGN1cnJlbnRSb3ctPm1vdmVB
bGxDaGlsZHJlblRvKG1fYnVpbGRlciwgcm93VG9JbnNlcnRJbnRvLCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb246Ok5vKTsKKyAgICAgICAgbV9idWlsZGVyLm1v
dmVBbGxDaGlsZHJlblRvKCpjdXJyZW50Um93LCByb3dUb0luc2VydEludG8sIFJlbmRlclRyZWVC
dWlsZGVyOjpOb3JtYWxpemVBZnRlckluc2VydGlvbjo6Tm8pOwogICAgICAgICBhdXRvIHRvRGVz
dHJveSA9IG1fYnVpbGRlci50YWtlQ2hpbGQoKnNlY3Rpb24sICpjdXJyZW50Um93KTsKICAgICAg
ICAgY3VycmVudFJvdyA9IGN1cnJlbnRSb3ctPm5leHRSb3coKTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>