<?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>76358</bug_id>
          
          <creation_ts>2012-01-15 20:45:58 -0800</creation_ts>
          <short_desc>[Refactoring] ShadowRoot should be under html/shadow</short_desc>
          <delta_ts>2012-01-17 21:03:07 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76241</blocked>
    
    <blocked>76353</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536342</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-15 20:45:58 -0800</bug_when>
    <thetext>Because it is a part of HTML shadow DOM spec, this should be under html/shadow.
We have some part of its implementation under dom though, because Element attachment process depends on it.
My plan is to split dom/ShadowRoot to dom/ShadowRootBase and html/ShadowRoot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536371</commentid>
    <comment_count>1</comment_count>
      <attachid>122594</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-15 22:32:06 -0800</bug_when>
    <thetext>Created attachment 122594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536372</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-15 22:33:07 -0800</bug_when>
    <thetext>Hi Dimitri, could you take a look? I&apos;m going to add an idl against this html/shadow/ShadowRoot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537567</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-01-17 19:18:54 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Because it is a part of HTML shadow DOM spec, this should be under html/shadow.
&gt; We have some part of its implementation under dom though, because Element attachment process depends on it.
&gt; My plan is to split dom/ShadowRoot to dom/ShadowRootBase and html/ShadowRoot.

Is this really necessary? I think it&apos;s fine to have DOM objects under dom/. There are already plenty of examples. It feels like we&apos;re just splitting classes for no good reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537608</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-17 21:02:41 -0800</bug_when>
    <thetext>&gt; Is this really necessary? I think it&apos;s fine to have DOM objects under dom/. There are already plenty of examples. It feels like we&apos;re just splitting classes for no good reason.
I originally worried about layering violation. 
But yes, there are many other classes doing that.
I&apos;m closing this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122594</attachid>
            <date>2012-01-15 22:32:06 -0800</date>
            <delta_ts>2012-01-17 21:03:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76358-20120116153203.patch</filename>
            <type>text/plain</type>
            <size>44066</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQxOTkyMTNlZTUxYzE0
OGFlMjUzZDJkNGUzMzY5Mjk5MDYwZTM2NS4uYTVjYzU3OTM1ZmM3MTExMmZkZWY5MWI5MmRiY2Rl
YTgyNTVlOTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTAxLTE1ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1OAorICAgICAgICBbUmVmYWN0b3Jpbmdd
IFNoYWRvd1Jvb3Qgc2hvdWxkIGJlIHVuZGVyIGh0bWwvc2hhZG93CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBkb20vU2hhZG93Um9vdCB0
byBkb20vU2hhZG93U2NvcGUgYW5kIHB1c2hlZCBkb3duIHNvbWUKKyAgICAgICAgdHJpdmlhbCBt
ZXRob2RzIG9mIFNoYWRvd1Njb3BlIHRvIGEgbmV3IHN1YmNsYXNzIGh0bWwvc2hhZG93L1NoYWRv
d1Jvb3QuCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgb2YgYSBzZXJpZXMgb2YgcmVm
YWN0b3Jpbmcgd2hpY2ggYWltcyB0bworICAgICAgICBtb3ZlIFNoYWRvdyBET00gY29kZSBmcm9t
IGRvbS90byBodG1sLyBhcyBtdWNoIGFzIHBvc3NpYmxlLgorCisgICAgICAgIE5vIHRlc3RzLCBq
dXN0IGEgY29kZSBtb3ZlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRv
bS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGRvbS9TaGFkb3dJ
bmNsdXNpb25TZWxlY3Rvci5oOgorICAgICAgICAqIGRvbS9TaGFkb3dTY29wZS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Njb3BlOjpTaGFkb3dTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dT
Y29wZTo6flNoYWRvd1Njb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Njb3BlOjppbmNs
dWRlckZvcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dTY29wZTo6aG9zdENoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dTY29wZTo6aXNJbmNsdXNpb25TZWxlY3Rv
ckFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dTY29wZTo6aGFzQ29udGVudEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93U2NvcGU6OmFwcGx5QXV0aG9yU2hlZXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Njb3BlOjpzZXRBcHBseUF1dGhvclNoZWV0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dTY29wZTo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Njb3BlOjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Njb3Bl
OjplbnN1cmVJbmNsdXNpb25zKToKKyAgICAgICAgKiBkb20vU2hhZG93U2NvcGUuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaC4KKyAgICAgICAgKFdlYkNvcmU6
OnRvU2hhZG93U2NvcGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NoYWRvd1Jvb3QuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290Ojpub2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpub2RlVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjbG9uZU5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dSb290OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L1NoYWRvd1Jvb3QuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmguCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6dG9TaGFkb3dSb290KToKKwogMjAxMi0wMS0xNSAgTHVrZSBNYWNwaGVyc29uICAg
PG1hY3BoZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBleHRlcm5hbCByZWZl
cmVuY2VzIHRvIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgZW51bS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggZDYxNjVjZjFjM2NhMjZjYzMxYjEzYzEzOTQzYTgwYmMxOTk5NGMzYi4uNjAw
ZTA5MjlmNzA1NTcwMjFhMjRiZmMxZGUyYTYxMDU3MGEwNzFiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTU5Niw3ICs1OTYsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1NoYWRv
d0NvbnRlbnRFbGVtZW50LmNwcAogICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5j
cHAKICAgICBkb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCi0gICAgZG9tL1NoYWRvd1Jv
b3QuY3BwCisgICAgZG9tL1NoYWRvd1Njb3BlLmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05v
ZGVMaXN0LmNwcApAQCAtODY2LDYgKzg2Niw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKICAgICBodG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuY3BwCiAgICAgaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcAorICAgIGh0bWwvc2hhZG93L1NoYWRvd1Jvb3QuY3BwCiAgICAgaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcAogICAgIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDM5ZTVmNTgw
NjFhMjY5OTQ2ZTZjNTdhODI0ZjEzNGU3OWZlZTljMy4uNzc3MGJiMmMzOGNlN2ZiOTRjOWNkNDU3
YTBhYzY3ZjM0MTU0Y2QyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQ5
LDggKzE2NDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKLQlT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93U2NvcGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93U2NvcGUuaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vU3BhY2VTcGxpdFN0cmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljSGFzaFNl
dE5vZGVMaXN0LmNwcCBcCkBAIC0yMjM5LDYgKzIyMzksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBcCisJU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2hhZG93Um9vdC5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NoYWRvd1Jvb3QuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYWE2MDI3ZmJiYmNhYzI5ZTc5
M2YyMDFlZGMyNDc5NDBlZjc2NGFmYi4uNGRiMDUwMGNhNmRiMjc4NzVjOGY0MTM4YWJjMDg0NGVl
N2M2MzY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NjIsNyArNTYyLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBcCiAgICAgZG9tL1NoYWRvd0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAgZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBc
Ci0gICAgZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKyAgICBkb20vU2hhZG93U2NvcGUuY3BwIFwKICAg
ICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAg
XAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmNwcCBcCkBAIC04NDYsNiArODQ2LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwIFwKICAgICBodG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIFwKKyAgICBodG1sL3NoYWRvdy9TaGFkb3dSb290LmNw
cCBcCiAgICAgaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBcCiAgICAgaW5zcGVjdG9yL0NvbnNv
bGVNZXNzYWdlLmNwcCBcCkBAIC0xNjYzLDcgKzE2NjQsNyBAQCBIRUFERVJTICs9IFwKICAgICBk
b20vU2hhZG93Q29udGVudEVsZW1lbnQuaCBcCiAgICAgZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmggXAogICAgIGRvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIFwKLSAgICBkb20v
U2hhZG93Um9vdC5oIFwKKyAgICBkb20vU2hhZG93U2NvcGUuaCBcCiAgICAgZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAgIGRvbS9TdHlsZWRF
bGVtZW50LmggXApAQCAtMTkwMyw2ICsxOTA0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5oIFwKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5oIFwKICAgICBodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oIFwKKyAgICBodG1s
L3NoYWRvdy9TaGFkb3dSb290LmggXAogICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oIFwK
ICAgICBodG1sL3RyYWNrL1RyYWNrQmFzZS5oIFwKICAgICBodG1sL3RyYWNrL1RyYWNrRXZlbnQu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTZiODU0ZGRlOTdjMDNmMDJmODUxMzRjNmU0MmZlNDgx
YjgxNzBhNC4uOWI2ZjE5ZWM5MmZmMTY4Yzc1MWY0MTk5NTliYmQzZTAyZDA3MTFlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAKICAgICAgICAgICAgICdkb20vUmVuZGVy
ZWREb2N1bWVudE1hcmtlci5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAotICAgICAgICAgICAg
J2RvbS9TaGFkb3dSb290LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dTY29wZS5oJywKICAg
ICAgICAgICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9t
L1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNw
bGl0U3RyaW5nLmgnLApAQCAtNTQ2OSw4ICs1NDY5LDggQEAKICAgICAgICAgICAgICdkb20vU2hh
ZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd0luY2x1
c2lvblNlbGVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCi0gICAgICAgICAgICAn
ZG9tL1NoYWRvd1Jvb3QuaCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Njb3BlLmNwcCcsCisg
ICAgICAgICAgICAnZG9tL1NoYWRvd1Njb3BlLmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNw
bGl0U3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCcsCkBAIC01OTE1
LDYgKzU5MTUsOCBAQAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVu
dC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3Bw
JywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCcsCisg
ICAgICAgICAgICAnaHRtbC9zaGFkb3cvU2hhZG93Um9vdC5jcHAnLAorICAgICAgICAgICAgJ2h0
bWwvc2hhZG93L1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggMGUyOWM1M2M3MWUyYTgzNDE2MzNjMDJm
ZjE2MGNlMzQ3ZGMxZmVkOC4uMjZmYmQyMWY1OGZiM2U1NDY1Y2U2OGM0MTJjOTc4ZTk0MWVjZmEx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC02OTQ3LDEwICs2OTQ3LDEwIEBAIF9fWk5LN1dlYkNv
cmUxNFJhbmdlSW5wdXRUeXBlMTVmb3JtQ29udHJvbFR5cGVFdgogX19aTjdXZWJDb3JlMTRJbnB1
dFR5cGVOYW1lczVyYW5nZUV2CiBfX1pON1dlYkNvcmUxNFJhbmdlSW5wdXRUeXBlMTljcmVhdGVT
aGFkb3dTdWJ0cmVlRXYKIF9fWk43V2ViQ29yZTdFbGVtZW50MTZlbnN1cmVTaGFkb3dSb290RXYK
LV9fWk43V2ViQ29yZTEwU2hhZG93Um9vdEMxRVBOU184RG9jdW1lbnRFCitfX1pON1dlYkNvcmUx
MVNoYWRvd1Njb3BlQzFFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTlUcmVlU2NvcGUxOHNl
dFBhcmVudFRyZWVTY29wZUVQUzBfCi1fX1pOSzdXZWJDb3JlMTBTaGFkb3dSb290OG5vZGVUeXBl
RXYKLV9fWk5LN1dlYkNvcmUxMFNoYWRvd1Jvb3QxNmNoaWxkVHlwZUFsbG93ZWRFTlNfNE5vZGU4
Tm9kZVR5cGVFCitfX1pOSzdXZWJDb3JlMTFTaGFkb3dTY29wZThub2RlVHlwZUV2CitfX1pOSzdX
ZWJDb3JlMTFTaGFkb3dTY29wZTE2Y2hpbGRUeXBlQWxsb3dlZEVOU180Tm9kZThOb2RlVHlwZUUK
IF9fWk43V2ViQ29yZTROb2RlMTFzZXREb2N1bWVudEVQTlNfOERvY3VtZW50RQogX19aTjdXZWJD
b3JlMTRSYW5nZUlucHV0VHlwZTEzc2FuaXRpemVWYWx1ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE0UmFuZ2VJbnB1dFR5cGUxM2ZhbGxiYWNrVmFsdWVFdgpAQCAtNzA0MSw5ICs3MDQx
LDkgQEAgX19aTks3V2ViQ29yZTExUmVuZGVyVmlkZW8xOHNob3VsZERpc3BsYXlWaWRlb0V2CiBf
X1pOSzdXZWJDb3JlMTFSZW5kZXJWaWRlbzI4c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZ0V2
CiBfX1pOSzdXZWJDb3JlMTFNZWRpYVBsYXllcjI4c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
Z0V2CiBfX1pOSzdXZWJDb3JlMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UyOHN1cHBvcnRz
QWNjZWxlcmF0ZWRSZW5kZXJpbmdFdgotX19aTjdXZWJDb3JlMTBTaGFkb3dSb290NmF0dGFjaEV2
Ci1fX1pON1dlYkNvcmUyMVNoYWRvd0NvbnRlbnRTZWxlY3RvckMyRVBOU18xMFNoYWRvd1Jvb3RF
Ci1fX1pOSzdXZWJDb3JlMTBTaGFkb3dSb290MTZpc1NoYWRvd0JvdW5kYXJ5RXYKK19fWk43V2Vi
Q29yZTExU2hhZG93U2NvcGU2YXR0YWNoRXYKK19fWk43V2ViQ29yZTIxU2hhZG93Q29udGVudFNl
bGVjdG9yQzJFUE5TXzExU2hhZG93U2NvcGVFCitfX1pOSzdXZWJDb3JlMTFTaGFkb3dTY29wZTE2
aXNTaGFkb3dCb3VuZGFyeUV2CiBfX1pOSzdXZWJDb3JlMjNNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDE0c2hhZG93UHNldWRvSWRFdgogX19aTks3V2ViQ29yZTI0QXBwbHlQcm9wZXJ0eURlZmF1bHRC
YXNlSU5TXzZMZW5ndGhFRTE3YXBwbHlJbmhlcml0VmFsdWVFUE5TXzE2Q1NTU3R5bGVTZWxlY3Rv
ckUKIF9fWk5LN1dlYkNvcmUxMVJlbmRlclN0eWxlNXdpZHRoRXYKQEAgLTcwOTksOCArNzA5OSw4
IEBAIF9fWk43V2ViQ29yZTExTWVkaWFQbGF5ZXIxOXByZXBhcmVGb3JSZW5kZXJpbmdFdgogX19a
TjdXZWJDb3JlMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UxOXByZXBhcmVGb3JSZW5kZXJp
bmdFdgogX19aTks3V2ViQ29yZTExTWVkaWFQbGF5ZXIxM2NhbkxvYWRQb3N0ZXJFdgogX19aTks3
V2ViQ29yZTIyTnVsbE1lZGlhUGxheWVyUHJpdmF0ZTEzY2FuTG9hZFBvc3RlckV2Ci1fX1pON1dl
YkNvcmUxMFNoYWRvd1Jvb3QyMmFjdGl2ZUNvbnRlbnRDb250YWluZXJFdgotX19aTjdXZWJDb3Jl
MTBTaGFkb3dSb290MTlob3N0Q2hpbGRyZW5DaGFuZ2VkRXYKK19fWk43V2ViQ29yZTExU2hhZG93
U2NvcGUyMmFjdGl2ZUNvbnRlbnRDb250YWluZXJFdgorX19aTjdXZWJDb3JlMTFTaGFkb3dTY29w
ZTE5aG9zdENoaWxkcmVuQ2hhbmdlZEV2CiBfX1pON1dlYkNvcmUxNkhUTUxPTGlzdEVsZW1lbnRE
MEV2CiBfX1pON1dlYkNvcmUxNkhUTUxETGlzdEVsZW1lbnREMEV2CiBfX1pON1dlYkNvcmUxM0hU
TUxIUkVsZW1lbnREMEV2CkBAIC03MTk4LDcgKzcxOTgsNyBAQCBfX1pOSzdXZWJDb3JlMjdNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UxM2NhbkxvYWRQb3N0ZXJFdgogX19aTjdXZWJDb3JlNVRp
bWVySU5TXzlGcmFtZVZpZXdFRTVmaXJlZEV2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTZsYXlv
dXRUaW1lckZpcmVkRVBOU181VGltZXJJUzBfRUUKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDExcmVjYWxjU3R5bGVFTlNfNE5vZGUxMVN0eWxlQ2hhbmdlRQotX19aTjdXZWJDb3JlMTBT
aGFkb3dSb290MTFyZWNhbGNTdHlsZUVOU180Tm9kZTExU3R5bGVDaGFuZ2VFCitfX1pON1dlYkNv
cmUxMVNoYWRvd1Njb3BlMTFyZWNhbGNTdHlsZUVOU180Tm9kZTExU3R5bGVDaGFuZ2VFCiBfX1pO
SzdXZWJDb3JlMTJSZW5kZXJCdXR0b24zNnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdh
dGlvbkV2CiBfX1pON1dlYkNvcmUxOFNsaWRlclRodW1iRWxlbWVudDZkZXRhY2hFdgogX19aTjdX
ZWJDb3JlMjlNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDZkZXRhY2hFdgpAQCAtNzUxMiw3
ICs3NTEyLDcgQEAgX19aTjdXZWJDb3JlMzRNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDMjdkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXJFdgogX19aTjdXZWJDb3JlMzRNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDMTdkZXN0cm95VmlkZW9MYXllckV2CiAtW1dlYkNv
cmVBVkZNb3ZpZU9ic2VydmVyIGRpc2Nvbm5lY3RdCiBfX1pON1dlYkNvcmUzME1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkQyRXYKLV9fWlRobjhfTjdXZWJDb3JlMTBTaGFkb3dSb290RDBF
dgorX19aVGhuOF9ON1dlYkNvcmUxMVNoYWRvd1Njb3BlRDBFdgogX19aTjdXZWJDb3JlMjNNZWRp
YUNvbnRyb2xSb290RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTI0TWVkaWFDb250cm9sUGFuZWxF
bGVtZW50RDBFdgogX19aTjdXZWJDb3JlMzFNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50
RDBFdgpAQCAtMTk0ODAsNyArMTk0ODAsNyBAQCBfX1pOSzdXZWJDb3JlMTNGaWxlSW5wdXRUeXBl
MTJ2YWx1ZU1pc3NpbmdFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQyMWlz
T3B0aW9uYWxGb3JtQ29udHJvbEV2CiBfX1pON1dlYkNvcmUxN0hUTUxLZXlnZW5FbGVtZW50MjBw
YXJzZU1hcHBlZEF0dHJpYnV0ZUVQTlNfOUF0dHJpYnV0ZUUKIF9fWk5LN1dlYkNvcmUxN0hUTUxL
ZXlnZW5FbGVtZW50MjFpc09wdGlvbmFsRm9ybUNvbnRyb2xFdgotX19aTks3V2ViQ29yZTEwU2hh
ZG93Um9vdDE3YXBwbHlBdXRob3JTaGVldHNFdgorX19aTks3V2ViQ29yZTExU2hhZG93U2NvcGUx
N2FwcGx5QXV0aG9yU2hlZXRzRXYKIF9fWk43V2ViQ29yZUwxN291dHB1dENvbnN0cnVjdG9yRVJL
TlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RWIK
IF9fWk43V2ViQ29yZTE3SFRNTE91dHB1dEVsZW1lbnQ2Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWRO
YW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMjBE
T01TZXR0YWJsZVRva2VuTGlzdEMxRXYKQEAgLTI0Njc4LDcgKzI0Njc4LDcgQEAgX19aTjdXZWJD
b3JlMTJjYWNoZVdyYXBwZXJJTlNfMTBTVkdFbGVtZW50RUVFdlBOU18xNURPTVdyYXBwZXJXb3Js
ZEVQVF9QTlNfMTJKU0QKIF9fWk43V2ViQ29yZTEySlNTVkdFbGVtZW50RDFFdgogX19aVGhuOF9O
N1dlYkNvcmUxMFNWR0VsZW1lbnREMEV2CiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlcjIycmVs
ZWFzZVB1cmdlYWJsZUJ1ZmZlckV2Ci1fX1pOSzdXZWJDb3JlMTBTaGFkb3dSb290OG5vZGVOYW1l
RXYKK19fWk5LN1dlYkNvcmUxMVNoYWRvd1Njb3BlOG5vZGVOYW1lRXYKIF9fWk5LN1dlYkNvcmU5
SW5wdXRUeXBlMTRhcHBlbmRGb3JtRGF0YUVSTlNfMTJGb3JtRGF0YUxpc3RFYgogX19aTjdXZWJD
b3JlTDIwc2V0VGFibGVDZWxsc0NoYW5nZWRFUE5TXzROb2RlRQogX19aVGhuOF9ON1dlYkNvcmUx
OUtleWdlblNlbGVjdEVsZW1lbnREMEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDZiNWMxYjNiOWJmZGM3M2FiN2Y5MmM4ZDk1OWI2M2I3NjA5
YWIxMTMuLjU2M2M1ZmM1ZGMyZTBkOTUyOGY4OWEyNzgwMGY5YjIzZmY5OGE3OWIgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02MTE0OSw2ICs2
MTE0OSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5caHRtbFxzaGFkb3dcU2hhZG93Um9vdC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xTaGFkb3dSb290
LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxodG1sXHNoYWRvd1xTbGlkZXJUaHVtYkVsZW1lbnQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDY5ZDYxNmFiMTAxMWIzMzZhNDhlZjE4MTMyZGIzNjFmZTdlYjY0ZDUuLmUwMDFkOGNj
MzE4NTQ2YTEzMDFkMDlmYTQ1NjNiYmM3NGI5MzRhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0OTUsOCArMzQ5NSw4IEBA
CiAJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKIAkJQTYyMkE4
RkQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3
ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5n
LmggKi87IH07Ci0JCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYxMTM0
NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKLQkJQTZEMTY5NjQxMzQ2QjRD
MTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTZEMTY5
NjIxMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Njb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBT
aGFkb3dTY29wZS5jcHAgKi87IH07CisJCUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFk
b3dTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Njb3BlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcwMDVDQ0MxMzMwQzRCQTAwMEND
MEJBIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcwMDVDQ0ExMzMwQzRCQTAwMENDMEJBIC8q
IFNwZWxsaW5nQ29ycmVjdGlvbkNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlBNzAwNUNDRDEzMzBD
NEJBMDAwQ0MwQkEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcwMDVDQ0IxMzMwQzRCQTAwMEND
MEJBIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQg
LyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0z
NTQ2LDYgKzM1NDYsOCBAQAogCQlBN0I2RTY5RjBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjZFNjlE
MEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdCQkUyNjQxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5j
cHAgKi87IH07CiAJCUE3QkJFMjY3MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJF
MjY1MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLzsgfTsKKwkJQTdD
NTZFQzcxNEMzRUU2NDAwQjZDOEI3IC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDNTZFQzMxNEMzRUU2NDAwQjZDOEI3IC8q
IFNoYWRvd1Jvb3QuY3BwICovOyB9OworCQlBN0M1NkVDODE0QzNFRTY0MDBCNkM4QjcgLyogU2hh
ZG93Um9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdDNTZFQzQxNEMzRUU2NDAwQjZDOEI3IC8qIFNoYWRvd1Jvb3QuaCAqLzsgfTsKIAkJQTdDOUFC
RjgxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QzlBQkY2MTM1N0EzQkYwMEY1
NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi87IH07CiAJCUE3QzlBQkY5MTM1N0Ez
QkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERl
dGFpbHNNYXJrZXJDb250cm9sLmggKi87IH07CiAJCUE3Q0E1OTVEMEIyN0JEOUUwMEZBMDIxRCAv
KiBEcmFnQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdDQTU5NUIwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMzEzLDgg
KzEwMzE1LDggQEAKIAkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0
eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmluZGluZ1Nl
Y3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyog
QmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
aW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIz
IC8qIEdlbmVyaWNCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdl
bmVyaWNCaW5kaW5nLmg7IHBhdGggPSBnZW5lcmljL0dlbmVyaWNCaW5kaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dS
b290LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1Jvb3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3
NzAgLyogU2hhZG93Um9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFk
b3dSb290Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDE2OTYxMTM0NkI0OUIw
MDBFQjc3MCAvKiBTaGFkb3dTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFkb3dTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2
RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dTY29wZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTaGFkb3dTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzAwNUNDQTEzMzBDNEJBMDAwQ0MwQkEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVsbGluZ0Nv
cnJlY3Rpb25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcw
MDVDQ0IxMzMwQzRCQTAwMENDMEJBIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE1MUJENzEyRjE1NThGMDA1
QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMzY2LDYgKzEwMzY4LDggQEAKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdE
YXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNIVE1MTWV0ZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdC
QkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTdDNTZFQzMxNEMzRUU2NDAwQjZDOEI3IC8qIFNoYWRvd1Jvb3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QzU2RUM0MTRDM0VFNjQwMEI2QzhCNyAv
KiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jv
b3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDOUFCRjYxMzU3QTNCRjAwRjU1
MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERldGFpbHNNYXJrZXJDb250cm9sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250
cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldGFpbHNNYXJrZXJDb250
cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Q0E1OTVCMEIyN0JEOUUwMEZB
MDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEcmFnQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyMzIs
NiArMTQyMzYsOCBAQAogCQkJCUE3OEU1MjZFMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRv
d0VsZW1lbnQuaCAqLywKIAkJCQlBNzE1RTY1MDEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcCAqLywKIAkJCQlBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmggKi8sCisJCQkJQTdDNTZFQzMxNEMzRUU2NDAwQjZDOEI3IC8q
IFNoYWRvd1Jvb3QuY3BwICovLAorCQkJCUE3QzU2RUM0MTRDM0VFNjQwMEI2QzhCNyAvKiBTaGFk
b3dSb290LmggKi8sCiAJCQkJNDE1MEY5RjAxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1i
RWxlbWVudC5jcHAgKi8sCiAJCQkJNDE1MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRo
dW1iRWxlbWVudC5oICovLAogCQkJCTE0MkI5N0M3MTMxMzg5NDMwMDhCRUY0QiAvKiBUZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuY3BwICovLApAQCAtMjA1NDIsOCArMjA1NDgsOCBAQAogCQkJCTU3
MERCN0E5MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICov
LAogCQkJCUE3MUMzMEI2MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rv
ci5jcHAgKi8sCiAJCQkJQTcxQzMwQjcxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmggKi8sCi0JCQkJQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jv
b3QuY3BwICovLAotCQkJCUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290Lmgg
Ki8sCisJCQkJQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Njb3BlLmNwcCAqLywK
KwkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93U2NvcGUuaCAqLywKIAkJCQlE
MDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8sCiAJCQkJ
RDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLywKIAkJCQlD
RUEzOTQ5QTExRDQ1Q0RBMDAzMDk0Q0YgLyogU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCAqLywK
QEAgLTIzMzk5LDcgKzIzNDA1LDggQEAKIAkJCQk1NzBEQkE4MjE0QjU4MDRCMDBEQUVGQTAgLyog
U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOEM0
MEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzFD
MzBCOTEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93U2NvcGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE3QzU2RUM4MTRDM0VFNjQwMEI2QzhCNyAvKiBTaGFkb3dS
b290LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFODBBMTk4OUNBMDA3RkI4QzUgLyogU2hh
ZG93VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzk0MEQwMEE1REYwMDMwMDc0RCAv
KiBTaGFwZUFyYWJpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAwMkQ4
QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjQzOCw3ICsyNjQ0NSw4
IEBACiAJCQkJNTcwREJBODExNEI1ODA0OTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAv
KiBTaGFkb3dEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3MUMzMEI4MTM4MTI2NUUwMERC
QzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlB
NkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBNkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93U2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTdDNTZFQzcxNEMzRUU2NDAwQjZDOEI3IC8qIFNoYWRvd1Jvb3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjQwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAvKiBTaGFw
ZUFyYWJpYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTk1NEQwQjRFRENDQjAwMkQ4QzNDIC8q
IFNoYXJlZEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCmluZGV4IDU1YjYwNTI4YWFhMjkzY2Q2NjVjNGM5MjI3YmE4ODQ3ODg1ZjZhM2UuLmU5NmVj
YzU1ODk0NTRmNDMyYmRhYmRkNDY5ZWZiYTA4MTc2NDNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcApAQCAtMTE1LDcgKzExNSw3IEBACiAjaW5jbHVkZSAiU2hhZG93Q29udGVudEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKICNp
bmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAiCi0jaW5jbHVkZSAiU2hhZG93Um9v
dC5jcHAiCisjaW5jbHVkZSAiU2hhZG93U2NvcGUuY3BwIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRT
dHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAiCiAjaW5jbHVk
ZSAiU3RhdGljTm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5jcHAKaW5kZXggNTdlOWQ0MmJlNTFiNWU0NTJjNGQ0MDU0ZTIwYmE0Yzdi
ODU1NDhhMS4uYTVlZDg1NjlhYWZiNWY1MzgzZDcyNTQ0ZDQ0MGNlNDM4N2I3NmNlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCkBAIC0xNDQs
NyArMTQ0LDcgQEAgdm9pZCBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KCkKICAg
ICBtX2NhbmRpZGF0ZXMuY2xlYXIoKTsKIH0KIAotdm9pZCBTaGFkb3dJbmNsdXNpb25TZWxlY3Rv
cjo6d2lsbFNlbGVjdE92ZXIoU2hhZG93Um9vdCogc2NvcGUpCit2b2lkIFNoYWRvd0luY2x1c2lv
blNlbGVjdG9yOjp3aWxsU2VsZWN0T3ZlcihTaGFkb3dTY29wZSogc2NvcGUpCiB7CiAgICAgaWYg
KCFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oCmluZGV4IGQxYTg3MTc0NDFiMTljMmQ2
YWZhMGU4ZjM0MDc1ODQxMDIxOGI0ZTUuLjA2MGQ0NzM2MTU0MzZjZmJmYjMyZGVjNjZkNGY1ZWUx
NmVlMWI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25T
ZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rv
ci5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRWxlbWVu
dDsKIGNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dSb290OworY2xhc3MgU2hhZG93U2NvcGU7CiBj
bGFzcyBTaGFkb3dDb250ZW50RWxlbWVudDsKIAogY2xhc3MgU2hhZG93SW5jbHVzaW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8U2hhZG93SW5jbHVzaW9uPiB7CkBAIC0xMzMsNyArMTMzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgdW5zZWxlY3QoU2hhZG93SW5jbHVzaW9uTGlzdCopOwogICAgIFNoYWRv
d0luY2x1c2lvbiogZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0OwogCi0gICAgdm9pZCB3aWxsU2Vs
ZWN0T3ZlcihTaGFkb3dSb290Kik7CisgICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihTaGFkb3dTY29w
ZSopOwogICAgIHZvaWQgZGlkU2VsZWN0KCk7CiAgICAgYm9vbCBoYXNDYW5kaWRhdGVzKCkgY29u
c3QgeyByZXR1cm4gIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmNlOWIwNDNlOTQ0YjFh
YzYyMmI1NWMxMDA5MTFjNGJiODJlMDQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0KLSNpbmNsdWRlICJEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRF
bGVtZW50LmgiCi0jaW5jbHVkZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCIKLSNpbmNsdWRl
ICJUZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU2hhZG93Um9vdDo6U2hhZG93Um9v
dChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBUcmVlU2NvcGUoZG9jdW1lbnQsIENyZWF0ZVNo
YWRvd1Jvb3QpCi0gICAgLCBtX2FwcGx5QXV0aG9yU2hlZXRzKGZhbHNlKQotewotICAgIEFTU0VS
VChkb2N1bWVudCk7Ci0gICAgCi0gICAgLy8gQXNzdW1lIGRvY3VtZW50IGFzIHBhcmVudCBzY29w
ZS4KLSAgICBzZXRQYXJlbnRUcmVlU2NvcGUoZG9jdW1lbnQpOwotICAgIC8vIFNoYWRvdyB0cmVl
IHNjb3BlcyBoYXZlIHRoZSBzY29wZSBwb2ludGVyIHBvaW50IHRvIHRoZW1zZWx2ZXMuCi0gICAg
Ly8gVGhpcyB3YXksIGRpcmVjdCBjaGlsZHJlbiB3aWxsIHJlY2VpdmUgdGhlIGNvcnJlY3Qgc2Nv
cGUgcG9pbnRlci4KLSAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUodGhpcyk7Ci19
Ci0KLVNoYWRvd1Jvb3Q6On5TaGFkb3dSb290KCkKLXsKLX0KLQotU3RyaW5nIFNoYWRvd1Jvb3Q6
Om5vZGVOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIiNzaGFkb3ctcm9vdCI7Ci19Ci0KLU5v
ZGU6Ok5vZGVUeXBlIFNoYWRvd1Jvb3Q6Om5vZGVUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
U0hBRE9XX1JPT1RfTk9ERTsKLX0KLQotUGFzc1JlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9u
ZU5vZGUoYm9vbCkKLXsKLSAgICAvLyBTaGFkb3dSb290IHNob3VsZCBub3QgYmUgYXJiaXRyYXJp
bHkgY2xvbmVkLgotICAgIHJldHVybiAwOwotfQotCi1ib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlw
ZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIEVMRU1FTlRfTk9ERToKLSAgICBjYXNlIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RToKLSAgICBjYXNlIENPTU1FTlRfTk9ERToKLSAgICBjYXNlIFRFWFRfTk9ERToKLSAgICBjYXNl
IENEQVRBX1NFQ1RJT05fTk9ERToKLSAgICBjYXNlIEVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLX0KLQotdm9pZCBTaGFkb3dSb290OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVD
aGFuZ2UgY2hhbmdlKQotewotICAgIGlmIChoYXNDb250ZW50RWxlbWVudCgpKQotICAgICAgICBy
ZWF0dGFjaCgpOwotICAgIGVsc2UgewotICAgICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxk
KCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICBpZiAobi0+aXNFbGVt
ZW50Tm9kZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKS0+cmVj
YWxjU3R5bGUoY2hhbmdlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG4tPmlzVGV4dE5vZGUoKSkK
LSAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxUZXh0Kj4obiktPnJlY2FsY1RleHRTdHlsZShj
aGFuZ2UpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7
Ci0gICAgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKLX0KLQotU2hhZG93Q29udGVudEVs
ZW1lbnQqIFNoYWRvd1Jvb3Q6OmluY2x1ZGVyRm9yKE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAg
aWYgKCFtX2luY2x1c2lvbnMpCi0gICAgICAgIHJldHVybiAwOwotICAgIFNoYWRvd0luY2x1c2lv
biogZm91bmQgPSBtX2luY2x1c2lvbnMtPmZpbmRGb3Iobm9kZSk7Ci0gICAgaWYgKCFmb3VuZCkK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGZvdW5kLT5pbmNsdWRlcigpOwotfQotCi12
b2lkIFNoYWRvd1Jvb3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQoKQotewotICAgIGlmICghaGFzQ29u
dGVudEVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBm
b3JjZWQgZGV0YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUg
U2hhZG93Um9vdDo6cmVjYWxjU3R5bGUoKS4KLSAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci19
Ci0KLWJvb2wgU2hhZG93Um9vdDo6aXNJbmNsdXNpb25TZWxlY3RvckFjdGl2ZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faW5jbHVzaW9ucyAmJiBtX2luY2x1c2lvbnMtPmhhc0NhbmRpZGF0ZXMo
KTsKLX0KLQotYm9vbCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxlbWVudCgpIGNvbnN0Ci17Ci0g
ICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+dHJhdmVyc2VOZXh0Tm9k
ZSh0aGlzKSkgewotICAgICAgICBpZiAobi0+aXNDb250ZW50RWxlbWVudCgpKQotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFNo
YWRvd1Jvb3Q6OmFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hcHBs
eUF1dGhvclNoZWV0czsKLX0KLQotdm9pZCBTaGFkb3dSb290OjpzZXRBcHBseUF1dGhvclNoZWV0
cyhib29sIHZhbHVlKQotewotICAgIG1fYXBwbHlBdXRob3JTaGVldHMgPSB2YWx1ZTsKLX0KLQot
dm9pZCBTaGFkb3dSb290OjphdHRhY2goKQotewotICAgIC8vIENoaWxkcmVuIG9mIG1faW5jbHVz
aW9ucyBpcyBwb3B1bGF0ZWQgbGF6aWx5IGluCi0gICAgLy8gZW5zdXJlSW5jbHVzaW9ucygpLCBh
bmQgaGVyZSB3ZSBqdXN0IGVuc3VyZSB0aGF0Ci0gICAgLy8gaXQgaXMgaW4gY2xlYW4gc3RhdGUu
Ci0gICAgQVNTRVJUKCFtX2luY2x1c2lvbnMgfHwgIW1faW5jbHVzaW9ucy0+aGFzQ2FuZGlkYXRl
cygpKTsKLSAgICBUcmVlU2NvcGU6OmF0dGFjaCgpOwotICAgIGlmIChtX2luY2x1c2lvbnMpCi0g
ICAgICAgIG1faW5jbHVzaW9ucy0+ZGlkU2VsZWN0KCk7Ci19Ci0KLVNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKiBTaGFkb3dSb290OjppbmNsdXNpb25zKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9p
bmNsdXNpb25zLmdldCgpOwotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9v
dDo6ZW5zdXJlSW5jbHVzaW9ucygpCi17Ci0gICAgaWYgKCFtX2luY2x1c2lvbnMpCi0gICAgICAg
IG1faW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5ldyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpKTsK
LSAgICBtX2luY2x1c2lvbnMtPndpbGxTZWxlY3RPdmVyKHRoaXMpOwotICAgIHJldHVybiBtX2lu
Y2x1c2lvbnMuZ2V0KCk7Ci19Ci0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZGRmMzMwMTE1MjRkYTcyZGJkNmZhMjI0ZGI5NGJmNGFk
OTEyZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFNoYWRvd1Jvb3RfaAotI2RlZmluZSBTaGFkb3dSb290X2gKLQotI2luY2x1
ZGUgIlRyZWVTY29wZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50
OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25TZWxl
Y3RvcjsKLQotY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBUcmVlU2NvcGUgewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCopOwotCi0g
ICAgdm9pZCByZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UpOwotCi0gICAgU2hhZG93
Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqKSBjb25zdDsKLSAgICB2b2lkIGhvc3RD
aGlsZHJlbkNoYW5nZWQoKTsKLSAgICBib29sIGlzSW5jbHVzaW9uU2VsZWN0b3JBY3RpdmUoKSBj
b25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKLQotICAgIHZpcnR1YWwgYm9vbCBh
cHBseUF1dGhvclNoZWV0cygpIGNvbnN0OwotICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMo
Ym9vbCk7Ci0KLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0
OwotICAgIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBlbnN1cmVJbmNsdXNpb25zKCk7Ci0KLXBy
aXZhdGU6Ci0gICAgU2hhZG93Um9vdChEb2N1bWVudCopOwotICAgIHZpcnR1YWwgflNoYWRvd1Jv
b3QoKTsKLQotICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2Rl
PiBjbG9uZU5vZGUoYm9vbCBkZWVwKTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dl
ZChOb2RlVHlwZSkgY29uc3Q7Ci0KLSAgICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7
Ci0KLSAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHM7Ci0gICAgT3duUHRyPFNoYWRvd0luY2x1
c2lvblNlbGVjdG9yPiBtX2luY2x1c2lvbnM7Ci19OwotCi1pbmxpbmUgUGFzc1JlZlB0cjxTaGFk
b3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChkb2N1bWVudCkpOwotfQotCi1pbmxpbmUgU2hh
ZG93Um9vdCogdG9TaGFkb3dSb290KE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJUKCFub2RlIHx8
IG5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZTo6U0hBRE9XX1JPT1RfTk9ERSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFNoYWRvd1Jvb3QqPihub2RlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93U2NvcGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Njb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmM2ODU2ZDM1
MjYzZWJhOWRjZDE4M2U5MmU0MzU3N2Q1YTlkODgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Njb3BlLmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dTY29wZS5oIgorCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCisj
aW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTaGFkb3dTY29wZTo6U2hhZG93U2NvcGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogVHJl
ZVNjb3BlKGRvY3VtZW50LCBDcmVhdGVTaGFkb3dSb290KQorICAgICwgbV9hcHBseUF1dGhvclNo
ZWV0cyhmYWxzZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgLy8gQXNzdW1lIGRv
Y3VtZW50IGFzIHBhcmVudCBzY29wZS4KKyAgICBzZXRQYXJlbnRUcmVlU2NvcGUoZG9jdW1lbnQp
OworICAgIC8vIFNoYWRvdyB0cmVlIHNjb3BlcyBoYXZlIHRoZSBzY29wZSBwb2ludGVyIHBvaW50
IHRvIHRoZW1zZWx2ZXMuCisgICAgLy8gVGhpcyB3YXksIGRpcmVjdCBjaGlsZHJlbiB3aWxsIHJl
Y2VpdmUgdGhlIGNvcnJlY3Qgc2NvcGUgcG9pbnRlci4KKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5z
ZXRUcmVlU2NvcGUodGhpcyk7Cit9CisKK1NoYWRvd1Njb3BlOjp+U2hhZG93U2NvcGUoKQorewor
fQorCitTaGFkb3dDb250ZW50RWxlbWVudCogU2hhZG93U2NvcGU6OmluY2x1ZGVyRm9yKE5vZGUq
IG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2luY2x1c2lvbnMpCisgICAgICAgIHJldHVybiAw
OworICAgIFNoYWRvd0luY2x1c2lvbiogZm91bmQgPSBtX2luY2x1c2lvbnMtPmZpbmRGb3Iobm9k
ZSk7CisgICAgaWYgKCFmb3VuZCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZvdW5k
LT5pbmNsdWRlcigpOworfQorCit2b2lkIFNoYWRvd1Njb3BlOjpob3N0Q2hpbGRyZW5DaGFuZ2Vk
KCkKK3sKKyAgICBpZiAoIWhhc0NvbnRlbnRFbGVtZW50KCkpCisgICAgICAgIHJldHVybjsKKyAg
ICAvLyBUaGlzIHJlc3VsdHMgaW4gZm9yY2VkIGRldGFjaGluZy9hdHRhY2hpbmcgb2YgdGhlIHNo
YWRvdyByZW5kZXIgdHJlZS4gU2VlIFNoYWRvd1Njb3BlOjpyZWNhbGNTdHlsZSgpLgorICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKworYm9vbCBTaGFkb3dTY29wZTo6aXNJbmNsdXNpb25T
ZWxlY3RvckFjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5jbHVzaW9ucyAmJiBtX2lu
Y2x1c2lvbnMtPmhhc0NhbmRpZGF0ZXMoKTsKK30KKworYm9vbCBTaGFkb3dTY29wZTo6aGFzQ29u
dGVudEVsZW1lbnQoKSBjb25zdAoreworICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsg
bjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpIHsKKyAgICAgICAgaWYgKG4tPmlzQ29u
dGVudEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBTaGFkb3dTY29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBj
b25zdAoreworICAgIHJldHVybiBtX2FwcGx5QXV0aG9yU2hlZXRzOworfQorCit2b2lkIFNoYWRv
d1Njb3BlOjpzZXRBcHBseUF1dGhvclNoZWV0cyhib29sIHZhbHVlKQoreworICAgIG1fYXBwbHlB
dXRob3JTaGVldHMgPSB2YWx1ZTsKK30KKwordm9pZCBTaGFkb3dTY29wZTo6YXR0YWNoKCkKK3sK
KyAgICAvLyBDaGlsZHJlbiBvZiBtX2luY2x1c2lvbnMgaXMgcG9wdWxhdGVkIGxhemlseSBpbgor
ICAgIC8vIGVuc3VyZUluY2x1c2lvbnMoKSwgYW5kIGhlcmUgd2UganVzdCBlbnN1cmUgdGhhdAor
ICAgIC8vIGl0IGlzIGluIGNsZWFuIHN0YXRlLgorICAgIEFTU0VSVCghbV9pbmNsdXNpb25zIHx8
ICFtX2luY2x1c2lvbnMtPmhhc0NhbmRpZGF0ZXMoKSk7CisgICAgVHJlZVNjb3BlOjphdHRhY2go
KTsKKyAgICBpZiAobV9pbmNsdXNpb25zKQorICAgICAgICBtX2luY2x1c2lvbnMtPmRpZFNlbGVj
dCgpOworfQorCitTaGFkb3dJbmNsdXNpb25TZWxlY3RvciogU2hhZG93U2NvcGU6OmluY2x1c2lv
bnMoKSBjb25zdAoreworICAgIHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7Cit9CisKK1NoYWRv
d0luY2x1c2lvblNlbGVjdG9yKiBTaGFkb3dTY29wZTo6ZW5zdXJlSW5jbHVzaW9ucygpCit7Cisg
ICAgaWYgKCFtX2luY2x1c2lvbnMpCisgICAgICAgIG1faW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5l
dyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpKTsKKyAgICBtX2luY2x1c2lvbnMtPndpbGxTZWxl
Y3RPdmVyKHRoaXMpOworICAgIHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Njb3BlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93U2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGE3OTIyN2RiNTc2NTJlYWMwZjdj
YzY1YTBlZTY5NWUyNGViOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Njb3BlLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2hhZG93U2NvcGVfaAor
I2RlZmluZSBTaGFkb3dTY29wZV9oCisKKyNpbmNsdWRlICJUcmVlU2NvcGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNoYWRvd0NvbnRlbnRFbGVt
ZW50OworY2xhc3MgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I7CisKK2NsYXNzIFNoYWRvd1Njb3Bl
IDogcHVibGljIFRyZWVTY29wZSB7CitwdWJsaWM6CisKKyAgICBTaGFkb3dDb250ZW50RWxlbWVu
dCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OworICAgIHZvaWQgaG9zdENoaWxkcmVuQ2hhbmdl
ZCgpOworICAgIGJvb2wgaXNJbmNsdXNpb25TZWxlY3RvckFjdGl2ZSgpIGNvbnN0OworCisgICAg
dmlydHVhbCB2b2lkIGF0dGFjaCgpOworCisgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hl
ZXRzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKKworICAg
IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBpbmNsdXNpb25zKCkgY29uc3Q7CisgICAgU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3IqIGVuc3VyZUluY2x1c2lvbnMoKTsKKworcHJvdGVjdGVkOgorICAg
IGV4cGxpY2l0IFNoYWRvd1Njb3BlKERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+U2hhZG93U2Nv
cGUoKTsKKworICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBjb25zdDsKKworICAgIGJvb2wg
bV9hcHBseUF1dGhvclNoZWV0czsKKyAgICBPd25QdHI8U2hhZG93SW5jbHVzaW9uU2VsZWN0b3I+
IG1faW5jbHVzaW9uczsKK307CisKK2lubGluZSBTaGFkb3dTY29wZSogdG9TaGFkb3dTY29wZShO
b2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5ub2RlVHlwZSgpID09IE5v
ZGU6OlNIQURPV19ST09UX05PREUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dTY29w
ZSo+KG5vZGUpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2hhZG93Um9vdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNjYjdhZjRiZGI0YTBmMzY4
NDRmMDYwNGIwNjRjNzE4YzRlOTllNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NoYWRvd1Jvb3QuY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTaGFkb3dSb290OjpT
aGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IFNoYWRvd1Njb3BlKGRvY3VtZW50
KQoreworfQorCitTdHJpbmcgU2hhZG93Um9vdDo6bm9kZU5hbWUoKSBjb25zdAoreworICAgIHJl
dHVybiAiI3NoYWRvdy1yb290IjsKK30KKworTm9kZTo6Tm9kZVR5cGUgU2hhZG93Um9vdDo6bm9k
ZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBTSEFET1dfUk9PVF9OT0RFOworfQorCitQYXNz
UmVmUHRyPE5vZGU+IFNoYWRvd1Jvb3Q6OmNsb25lTm9kZShib29sKQoreworICAgIC8vIFNoYWRv
d1Jvb3Qgc2hvdWxkIG5vdCBiZSBhcmJpdHJhcmlseSBjbG9uZWQuCisgICAgcmV0dXJuIDA7Cit9
CisKK2Jvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25z
dAoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgRUxFTUVOVF9OT0RFOgorICAgIGNh
c2UgUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgIGNhc2UgQ09NTUVOVF9OT0RFOgor
ICAgIGNhc2UgVEVYVF9OT0RFOgorICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgIGNh
c2UgRU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit2b2lkIFNoYWRvd1Jvb3Q6
OnJlY2FsY1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgaWYgKGhh
c0NvbnRlbnRFbGVtZW50KCkpCisgICAgICAgIHJlYXR0YWNoKCk7CisgICAgZWxzZSB7CisgICAg
ICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkp
IHsKKyAgICAgICAgICAgIGlmIChuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pLT5yZWNhbGNTdHlsZShjaGFuZ2UpOworICAgICAgICAg
ICAgZWxzZSBpZiAobi0+aXNUZXh0Tm9kZSgpKQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0
PFRleHQqPihuKS0+cmVjYWxjVGV4dFN0eWxlKGNoYW5nZSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBjbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpOworfQorCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1Jvb3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYjZjYzJiYmQzYmFjOTNjNmNhNWNiOWE3ODNhOGJkNGRkMTNhNTAzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2hhZG93Um9vdC5oCkBA
IC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworI2lmbmRlZiBTaGFkb3dSb290X2gKKyNkZWZpbmUgU2hhZG93Um9vdF9oCisK
KyNpbmNsdWRlICJTaGFkb3dTY29wZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNoYWRvd1Jvb3QgOiBwdWJsaWMgU2hhZG93U2NvcGUgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdm9pZCByZWNh
bGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKTsKKyAgICB2aXJ0dWFsIGJv
b2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Q7Cit9OworCitpbmxpbmUgUGFzc1Jl
ZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChkb2N1bWVudCkpOworfQorCitp
bmxpbmUgU2hhZG93Um9vdCogdG9TaGFkb3dSb290KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJU
KCFub2RlIHx8IG5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZTo6U0hBRE9XX1JPT1RfTk9ERSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYWRvd1Jvb3QqPihub2RlKTsKK30KKworCit9CisKKyNl
bmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>