<?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>161859</bug_id>
          
          <creation_ts>2016-09-12 04:25:26 -0700</creation_ts>
          <short_desc>Link loader should use FetchOptions::mode according its crossOrigin attribute</short_desc>
          <delta_ts>2016-10-25 07:35:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1228721</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-12 04:25:26 -0700</bug_when>
    <thetext>This will allow actual reuse of resources now that the cache is handling resource origin and CORS mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228723</commentid>
    <comment_count>1</comment_count>
      <attachid>288566</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-12 04:41:47 -0700</bug_when>
    <thetext>Created attachment 288566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230323</commentid>
    <comment_count>2</comment_count>
      <attachid>289039</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-16 00:11:34 -0700</bug_when>
    <thetext>Created attachment 289039
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230336</commentid>
    <comment_count>3</comment_count>
      <attachid>289039</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 00:43:59 -0700</bug_when>
    <thetext>Comment on attachment 289039
Patch for landing

Clearing flags on attachment: 289039

Committed r206010: &lt;http://trac.webkit.org/changeset/206010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230337</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 00:44:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244178</commentid>
    <comment_count>5</comment_count>
      <attachid>289039</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-10-25 06:02:30 -0700</bug_when>
    <thetext>Comment on attachment 289039
Patch for landing

View in context: https://bugs.webkit.org/attachment.cgi?id=289039&amp;action=review

&gt; Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp:99
&gt; +    m_parsedStyleSheetCache = sheet.m_parsedStyleSheetCache;

This is not correct. It is not safe to have multiple cache clients for the same StyleSheetContents instance. This should make a copy() and call addedToMemoryCache() for it.

This is a probable cause for https://bugs.webkit.org/show_bug.cgi?id=163905</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244180</commentid>
    <comment_count>6</comment_count>
      <attachid>289039</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-25 06:39:48 -0700</bug_when>
    <thetext>Comment on attachment 289039
Patch for landing

View in context: https://bugs.webkit.org/attachment.cgi?id=289039&amp;action=review

&gt;&gt; Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp:99
&gt;&gt; +    m_parsedStyleSheetCache = sheet.m_parsedStyleSheetCache;
&gt; 
&gt; This is not correct. It is not safe to have multiple cache clients for the same StyleSheetContents instance. This should make a copy() and call addedToMemoryCache() for it.
&gt; 
&gt; This is a probable cause for https://bugs.webkit.org/show_bug.cgi?id=163905

I can prepare something along the lines you mention but I would be interested in further understanding the situation.
For instance, what is the reason of this multiple cache clients limitation? Can we remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244193</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-10-25 07:35:01 -0700</bug_when>
    <thetext>&gt; I can prepare something along the lines you mention but I would be
&gt; interested in further understanding the situation.
&gt; For instance, what is the reason of this multiple cache clients limitation?
&gt; Can we remove it?

It might actually be just matter of replacing m_isInMemoryCache bit with m_isInMemoryCacheCount that gets incremented and decremented as needed.

The bit is used to figuring out if we need to make a copy of the stylesheet contents when it is mutated via API. See CSSStyleSheet::willMutateRules().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244194</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-10-25 07:35:33 -0700</bug_when>
    <thetext>m_inMemoryCacheCount</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288566</attachid>
            <date>2016-09-12 04:41:47 -0700</date>
            <delta_ts>2016-09-16 00:11:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161859-20160912133913.patch</filename>
            <type>text/plain</type>
            <size>22728</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVhMjRmMWRmNTFiZjk0
NTY1Zjk4OGMwOTAyNWU2Nzg0MGNiMTQ5Ni4uMmIwZGMwY2JhODQ1MTkxNWZlYjFjZDkwYWQxOTRi
OWNjYzY4NGRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA5LTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5rIGxvYWRlciBzaG91
bGQgdXNlIEZldGNoT3B0aW9uczo6bW9kZSBhY2NvcmRpbmcgaXRzIGNyb3NzT3JpZ2luIGF0dHJp
YnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYx
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkZWQtY3Nz
LXN0eWxlc2hlZXQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNo
ZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRpbmctY3NzLXN0eWxlc2hlZXQuaHRtbAorCisgICAgICAg
IFNldHRpbmcgZmV0Y2ggbW9kZSBhY2NvcmRpbmcgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIGZvciBs
aW5rIHByZWxvYWQgZWxlbWVudHMuCisgICAgICAgIFRoaXMgYWxsb3dzIGNhbGxpbmcgb25lcnJv
ciBjYWxsYmFjayBmb3IgQ09SUyBmYWlsdXJlcywgd2hpY2ggd2FzIG5vdCB0aGUgY2FzZSBiZWZv
cmUgdGhlIHBhdGNoLgorCisgICAgICAgIE1ha2luZyBjYWNoZWQgQ1NTIHN0eWxlc2hlZXQgcmV1
c2FibGUgYWNjcm9zcyBvcmlnaW5zIGFuZCBmZXRjaCBtb2Rlcy4KKworICAgICAgICAqIGxvYWRl
ci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OnByZWxvYWRJ
Zk5lZWRlZCk6IFVzaW5nIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0QXNQb3RlbnRpYWxseUNy
b3NzT3JpZ2luIHRvIHNldCBmZXRjaCBtb2RlLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hl
ZXQ6OnNoZWV0VGV4dCk6IGNsZWFuLXVwLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5
bGVTaGVldDo6c2V0Qm9keURhdGFGcm9tKTogSW1wbGVtZW50aW5nIGRhdGEgaW5pdCBmb3IgY2Fj
aGVkIGNzcyBzdHlsZXNoZWV0cy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5
bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6dXBkYXRlQ2FjaGVk
UmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QpOiBBY3RpdmF0aW5nIHVwZGF0ZSBzdXBwb3J0IGZv
ciBzdHlsZXNoZWV0cy4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0UmVzb3VyY2UpOiBGaXhpbmcgZm9yIG1hdGNoaW5nIGNhY2hlZCByZXNvdXJjZXMgdGhh
dCBuZWVkIGJlaW5nIHJlbG9hZGVkIGR1ZSB0byBkaWZmZXJlbnQgb3JpZ2luL2ZldGNoIG1vZGUu
CisKIDIwMTYtMDktMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBIVE1MVHJhY2tFbGVtZW50LmtpbmQncyBpbnZhbGlkIHZhbHVlIGRlZmF1bHQgc2hvdWxkIGJl
IHRoZSBtZXRhZGF0YSBzdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4
IGFlZmE3ZWJiMzg2YmIyZDFjYWQ5MjkzZTllMTQwMjc3M2FhNGVlMDUuLjNjNWNjOGI0ZWQ3YzNm
NDU2Y2Q5MjFlMDkxNTY0MTAyNjQ4N2M1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRl
ci5jcHAKQEAgLTE2MSwxMSArMTYxLDcgQEAgdm9pZCBMaW5rTG9hZGVyOjpwcmVsb2FkSWZOZWVk
ZWQoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBVUkwKICAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QocmVzb3VyY2VSZXF1ZXN0LCBDYWNoZWRS
ZXNvdXJjZTo6ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUudmFsdWUoKSkpOwog
ICAgIGxpbmtSZXF1ZXN0LnNldEluaXRpYXRvcigibGluayIpOwogCi0gICAgaWYgKCFjcm9zc09y
aWdpbk1vZGUuaXNOdWxsKCkpIHsKLSAgICAgICAgQVNTRVJUKGRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCkpOwotICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRp
YWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRp
YWxzOwotICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChsaW5rUmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksICpkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBhbGxv
d0NyZWRlbnRpYWxzKTsKLSAgICB9CisgICAgbGlua1JlcXVlc3Quc2V0QXNQb3RlbnRpYWxseUNy
b3NzT3JpZ2luKGNyb3NzT3JpZ2luTW9kZSwgZG9jdW1lbnQpOwogICAgIGxpbmtSZXF1ZXN0LnNl
dEZvclByZWxvYWQodHJ1ZSk7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IGNhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCku
cHJlbG9hZCh0eXBlLnZhbHVlKCksIGxpbmtSZXF1ZXN0LCBlbXB0eVN0cmluZygpLCBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6RXhwbGljaXRQcmVsb2FkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDRkMzdlNThiZGY0
OWUxNGVlZGNkNGYwOTBmOWZhZTY2ZjI0ZWU5MzkuLmY4ODRiZGI2MmY4OWI4ZjQ4YTQ2ZjUxYjUz
YjdlMzE1N2U3YmQ2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTc2LDE5ICs3NiwyOSBAQCBTdHJpbmcgQ2FjaGVk
Q1NTU3R5bGVTaGVldDo6ZW5jb2RpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX2RlY29kZXIt
PmVuY29kaW5nKCkubmFtZSgpOwogfQotICAgIAorCiBjb25zdCBTdHJpbmcgQ2FjaGVkQ1NTU3R5
bGVTaGVldDo6c2hlZXRUZXh0KE1JTUVUeXBlQ2hlY2sgbWltZVR5cGVDaGVjaywgYm9vbCogaGFz
VmFsaWRNSU1FVHlwZSkgY29uc3QKLXsgCit7CiAgICAgaWYgKCFtX2RhdGEgfHwgbV9kYXRhLT5p
c0VtcHR5KCkgfHwgIWNhblVzZVNoZWV0KG1pbWVUeXBlQ2hlY2ssIGhhc1ZhbGlkTUlNRVR5cGUp
KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgCisKICAgICBpZiAoIW1fZGVjb2RlZFNo
ZWV0VGV4dC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG1fZGVjb2RlZFNoZWV0VGV4dDsKLSAg
ICAKKwogICAgIC8vIERvbid0IGNhY2hlIHRoZSBkZWNvZGVkIHRleHQsIHJlZ2VuZXJhdGluZyBp
cyBjaGVhcCBhbmQgaXQgY2FuIHVzZSBxdWl0ZSBhIGJpdCBvZiBtZW1vcnkKICAgICByZXR1cm4g
bV9kZWNvZGVyLT5kZWNvZGVBbmRGbHVzaChtX2RhdGEtPmRhdGEoKSwgbV9kYXRhLT5zaXplKCkp
OwogfQogCit2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OnNldEJvZHlEYXRhRnJvbShjb25zdCBD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCit7CisgICAgQVNTRVJUKHJlc291cmNlLnR5cGUoKSA9
PSB0eXBlKCkpOworICAgIGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQmIHNoZWV0ID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCY+KHJlc291cmNlKTsKKworICAgIG1fZGVj
b2RlciA9IHNoZWV0Lm1fZGVjb2RlcjsKKyAgICBtX2RlY29kZWRTaGVldFRleHQgPSBzaGVldC5t
X2RlY29kZWRTaGVldFRleHQ7CisgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBzaGVldC5t
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZTsKK30KKwogdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0Ojpm
aW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciogZGF0YSkKIHsKICAgICBtX2RhdGEgPSBkYXRhOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgK
aW5kZXggMzQyYThmZmVlNjBiNjA5ZTE5ZThmMGEwMjY2NDEwYjY3OTFlMmNkYy4uNTQ0NGU5Yzhh
Zjc4YjRjMGFjNjAwMTI5YjczMDA4Yzc0YjI4YWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCkBAIC00OCwxOCArNDgsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBjYW5Vc2VT
aGVldChNSU1FVHlwZUNoZWNrLCBib29sKiBoYXNWYWxpZE1JTUVUeXBlKSBjb25zdDsKLSAgICAg
ICAgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisgICAgICAgIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgICAgIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hl
ZFJlc291cmNlQ2xpZW50Kikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkQWRkQ2xpZW50KENh
Y2hlZFJlc291cmNlQ2xpZW50KikgZmluYWw7CiAKLSAgICAgICAgdm9pZCBzZXRFbmNvZGluZyhj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICAgICAgU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgICAgIGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqIHRleHRSZXNvdXJj
ZURlY29kZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2RlY29kZXIuZ2V0KCk7IH0KLSAg
ICAgICAgdm9pZCBmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciopIG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIG92ZXJyaWRlOworICAgICAgICB2b2lkIHNldEVu
Y29kaW5nKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgICAgICBTdHJpbmcgZW5jb2RpbmcoKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgY29uc3QgVGV4dFJlc291cmNlRGVjb2RlciogdGV4dFJlc291
cmNlRGVjb2RlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGVjb2Rlci5nZXQoKTsgfQorICAg
ICAgICB2b2lkIGZpbmlzaExvYWRpbmcoU2hhcmVkQnVmZmVyKikgZmluYWw7CisgICAgICAgIHZv
aWQgZGVzdHJveURlY29kZWREYXRhKCkgZmluYWw7CisKKyAgICAgICAgdm9pZCBzZXRCb2R5RGF0
YUZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmKSBmaW5hbDsKIAogICAgIHByb3RlY3RlZDoKLSAg
ICAgICAgdm9pZCBjaGVja05vdGlmeSgpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGNoZWNrTm90
aWZ5KCkgZmluYWw7CiAKICAgICAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVj
b2RlcjsKICAgICAgICAgU3RyaW5nIG1fZGVjb2RlZFNoZWV0VGV4dDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDlh
N2IyZmQ3NTgxMTBiZjljMjg2YTVmZmU4OGU1OTNmZTQ5Nzc1ODcuLjQ0ZGM2NzM3NGFkMjc3Njk0
YWZhYTllN2Y0MDRiZjQwZDdjMjMzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTQyLDExICs1NDIsMTAgQEAg
Ym9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xv
YWRlZEZyb21NZW1vcnlDYWNoZShjb24KIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0
ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+JiByZXNvdXJjZUhh
bmRsZSkKIHsKICAgICBBU1NFUlQocmVzb3VyY2VIYW5kbGUpOwotCiAgICAgQ2FjaGVkUmVzb3Vy
Y2UmIHJlc291cmNlID0gKnJlc291cmNlSGFuZGxlOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBwcm9ncmVzc2l2ZWx5IGV4dGVuZCB0aGlzIHRvIG90aGVyIHJldXNhYmxlIHJlc291cmNlcwot
ICAgIGlmIChyZXNvdXJjZS50eXBlKCkgIT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkltYWdlUmVz
b3VyY2UgJiYgcmVzb3VyY2UudHlwZSgpICE9IENhY2hlZFJlc291cmNlOjpUeXBlOjpUZXh0VHJh
Y2tSZXNvdXJjZSkKKyAgICBpZiAocmVzb3VyY2UudHlwZSgpICE9IENhY2hlZFJlc291cmNlOjpU
eXBlOjpJbWFnZVJlc291cmNlICYmIHJlc291cmNlLnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6
VHlwZTo6VGV4dFRyYWNrUmVzb3VyY2UgJiYgcmVzb3VyY2UudHlwZSgpICE9IENhY2hlZFJlc291
cmNlOjpUeXBlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBi
b29sIHNob3VsZFVwZGF0ZSA9IHJlc291cmNlLm9wdGlvbnMoKS5tb2RlICE9IHJlcXVlc3Qub3B0
aW9ucygpLm1vZGUgfHwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5odHRwT3JpZ2luKCkgIT0g
cmVzb3VyY2UucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cE9yaWdpbigpOwpAQCAtNjQ3LDcgKzY0Niw3
IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAKICAgICBsb2dNZW1vcnlDYWNoZVJlc291cmNl
UmVxdWVzdChmcmFtZSgpLCByZXNvdXJjZSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1v
cnlDYWNoZUtleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub3RJbk1lbW9yeUNhY2hlS2V5
KCkpOwogCi0gICAgY29uc3QgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJl
dmFsaWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0LCByZXNvdXJjZS5nZXQoKSk7CisgICAgUmV2
YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0eXBl
LCByZXF1ZXN0LCByZXNvdXJjZS5nZXQoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBj
YXNlIFJlbG9hZDoKICAgICAgICAgbWVtb3J5Q2FjaGUucmVtb3ZlKCpyZXNvdXJjZSk7CkBAIC02
NjMsNyArNjYyLDExIEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAgIHJlc291cmNl
ID0gcmV2YWxpZGF0ZVJlc291cmNlKHJlcXVlc3QsIHJlc291cmNlLmdldCgpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBVc2U6Ci0gICAgICAgIGlmICghdXBkYXRlQ2FjaGVkUmVzb3VyY2VX
aXRoQ3VycmVudFJlcXVlc3QocmVxdWVzdCwgcmVzb3VyY2UpKSB7CisgICAgICAgIGlmICh1cGRh
dGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdChyZXF1ZXN0LCByZXNvdXJjZSkpIHsK
KyAgICAgICAgICAgIGlmIChyZXNvdXJjZS0+c3RhdHVzKCkgIT0gQ2FjaGVkUmVzb3VyY2U6OlN0
YXR1czo6Q2FjaGVkKQorICAgICAgICAgICAgICAgIHBvbGljeSA9IExvYWQ7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocG9saWN5ID09IFVzZSk7CiAgICAgICAgICAgICBp
ZiAoIXNob3VsZENvbnRpbnVlQWZ0ZXJOb3RpZnlpbmdMb2FkZWRGcm9tTWVtb3J5Q2FjaGUocmVx
dWVzdCwgcmVzb3VyY2UuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICAgICAgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoZnJhbWUoKSwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjppbk1lbW9yeUNhY2hlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6dXNlZEtleSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NGVmNzU0ZTFjNzI0MTAxYWU2ZjI5Y2M4ODZkNzlmZjQ5
NWM4OTYzLi44NmU1M2VjOWY2ZTY0ZmUzZTY2NzA4NWRkYjk3Y2NhMDFmZDAxMGRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTYtMDktMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIExpbmsgbG9hZGVyIHNob3VsZCB1c2UgRmV0Y2hPcHRpb25zOjptb2Rl
IGFjY29yZGluZyBpdHMgY3Jvc3NPcmlnaW4gYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE4NTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVk
LWNyb3NzLW9yaWdpbi1wcmVsb2FkZWQtY3NzLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1vcmlnaW4tcHJl
bG9hZGVkLWNzcy1zdHlsZXNoZWV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkaW5nLWNzcy1zdHlsZXNoZWV0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQt
Y3Jvc3Mtb3JpZ2luLXByZWxvYWRpbmctY3NzLXN0eWxlc2hlZXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocDog
QWRkaW5nIHN1cHBvcnQgZm9yIGFsbG93aW5nIGNyZWRlbnRpYWxzIGFuZCBzZXR0aW5nIGNvbnRl
bnRUeXBlLgorCiAyMDE2LTA5LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgSFRNTFRyYWNrRWxlbWVudC5raW5kJ3MgaW52YWxpZCB2YWx1ZSBkZWZhdWx0IHNo
b3VsZCBiZSB0aGUgbWV0YWRhdGEgc3RhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkZWQtY3NzLXN0eWxlc2hl
ZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQt
Y3Jvc3Mtb3JpZ2luLXByZWxvYWRlZC1jc3Mtc3R5bGVzaGVldC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmJjZmRjMzhlYmYzMzk2YWUyOThmMTNmNTMzNjAxN2I1YzBiNmYyYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9y
aWdpbi1wcmVsb2FkZWQtY3NzLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCisKK1BBU1M6IGRpZCBub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0
OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZv
cmlnaW49aHR0cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMS5jc3Mm
Y29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyAoY29ycyBtb2RlKQorUEFTUzog
bG9hZGVkIHN1Y2Nlc3NmdWx5IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGMTI3
LjAuMC4xJTNBODAwMCZuYW1lPXhvcmlnaW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZh
bGxvd0NyZWRlbnRpYWxzIChjb3JzIG1vZGUpCitQQVNTOiBsb2FkZWQgc3VjY2Vzc2Z1bHkgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhw
P2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5hbWU9eG9y
aWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMgKG5vLWNv
cnMgbW9kZSkKK1BBU1M6IGxvYWRlZCBzdWNjZXNzZnVseSBodHRwOi8vbG9jYWxob3N0OjgwODAv
c2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49
aHR0cCUzQSUyRiUyRjEyNy4wLjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVu
dFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyAoY29ycyBtb2RlKQorUEFTUzogbG9hZGVk
IHN1Y2Nlc3NmdWx5IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxs
b3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0
JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0Ny
ZWRlbnRpYWxzIChuby1jb3JzIG1vZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1vcmlnaW4tcHJlbG9hZGVkLWNzcy1zdHlsZXNoZWV0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1vcmln
aW4tcHJlbG9hZGVkLWNzcy1zdHlsZXNoZWV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNkMTBiNTg0NTZm
MjE0YzJlYjdmYWMxMzk4OTFhMTc3ODNhNjMzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkZWQtY3Nz
LXN0eWxlc2hlZXQuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0TGlua1ByZWxvYWRT
dXBwb3J0KHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorZnVuY3Rpb24g
ZXJyb3JQcmVsb2FkKGUpCit7CisgICAgY29uc29sZS5sb2coInVuZXhwZWN0ZWQgcHJlbG9hZCBy
ZXN1bHQgIiArIGUpOworICAgIHByZWxvYWRlZCgpOworfQordmFyIG51bVByZWxvYWRzID0gMDsK
K2Z1bmN0aW9uIHByZWxvYWRlZCgpCit7CisgICAgaWYgKCsrbnVtUHJlbG9hZHMgPT0gNCkKKyAg
ICAgICAgZG9UZXN0cygpOworfQorPC9zY3JpcHQ+Cis8bGluayByZWw9cHJlbG9hZCBvbmxvYWQ9
InByZWxvYWRlZCgpIiBvbmVycm9yPSJlcnJvclByZWxvYWQoMSkiIGFzPXN0eWxlIGhyZWY9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBo
cD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhv
cmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxs
aW5rIHJlbD1wcmVsb2FkIG9ubG9hZD0icHJlbG9hZGVkKCkiIG9uZXJyb3I9ImVycm9yUHJlbG9h
ZCgyKSIgYXM9c3R5bGUgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291
cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkYx
MjcuMC4wLjElM0E4MDAwJm5hbWU9eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3Nz
JmFsbG93Q3JlZGVudGlhbHMiPgorPGxpbmsgcmVsPXByZWxvYWQgb25sb2FkPSJwcmVsb2FkZWQo
KSIgb25lcnJvcj0iZXJyb3JQcmVsb2FkKDMpIiBhcz1zdHlsZSBjcm9zc29yaWdpbj11c2UtY3Jl
ZGVudGlhbHMgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9h
bGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkYxMjcuMC4w
LjElM0E4MDAwJm5hbWU9eG9yaWdpbmNzczIuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93
Q3JlZGVudGlhbHMiPgorPGxpbmsgcmVsPXByZWxvYWQgb25lcnJvcj0icHJlbG9hZGVkKCkiIG9u
bG9hZD0iZXJyb3JQcmVsb2FkKDQpIiBhcz1zdHlsZSBjcm9zc29yaWdpbj11c2UtY3JlZGVudGlh
bHMgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1p
Zi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4
MDgwJm5hbWU9eG9yaWdpbmNzczIuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVu
dGlhbHMiPgorPGRpdiBpZCA9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCit2YXIgbWF4UmVzdWx0cyA9IDU7Cit2YXIgcmVzdWx0cyA9IFtd
OworCitmdW5jdGlvbiBjaGVja0RvbmUoKQoreworICAgIGlmIChyZXN1bHRzLmxlbmd0aCAhPT0g
bWF4UmVzdWx0cykKKyAgICAgICAgcmV0dXJuOworICAgIHZhciBsb2cgPSAiIjsKKyAgICByZXN1
bHRzLnNvcnQoKTsKKyAgICBmb3IgKHZhbHVlIG9mIHJlc3VsdHMpCisgICAgICAgIGxvZyArPSAi
PGJyPiIgKyB2YWx1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykuaW5uZXJI
VE1MID0gbG9nOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZ09uTG9hZCh1cmwsIGlzQ09SUywgZXhw
ZWN0U3VjY2VzcykKK3sKKyAgICByZXN1bHRzLnB1c2goKGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzog
IiA6ICJGQUlMOiAiKSArICJsb2FkZWQgc3VjY2Vzc2Z1bHkgIiArIHVybCArIChpc0NPUlMgPyAi
IChjb3JzIG1vZGUpIiA6ICIgKG5vLWNvcnMgbW9kZSkiKSk7CisgICAgY2hlY2tEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIGxvZ09uRXJyb3IodXJsLCBpc0NPUlMsIGV4cGVjdFN1Y2Nlc3MpCit7Cisg
ICAgcmVzdWx0cy5wdXNoKCghZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsg
ImRpZCBub3QgbG9hZCAiICsgdXJsICsgKGlzQ09SUyA/ICIgKGNvcnMgbW9kZSkiIDogIiAobm8t
Y29ycyBtb2RlKSIpKTsKKyAgICBjaGVja0RvbmUoKTsKK30KKworZnVuY3Rpb24gY3JlYXRlTGlu
a0VsZW1lbnQodXJsLCBpc0NPUlMsIGV4cGVjdFN1Y2Nlc3MpCit7CisgICAgbGluayA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKKyAgICBsaW5rLmhyZWYgPSB1cmw7CisgICAgbGlu
ay5yZWwgPSAic3R5bGVzaGVldCI7CisgICAgbGluay50eXBlID0gInRleHQvY3NzIjsKKyAgICBp
ZiAoaXNDT1JTKQorICAgICAgICBsaW5rLmNyb3NzT3JpZ2luID0gInVzZS1jcmVkZW50aWFscyI7
CisgICAgbGluay5vbmxvYWQgPSAoKSA9PiB7IGxvZ09uTG9hZCh1cmwsIGlzQ09SUywgZXhwZWN0
U3VjY2Vzcyk7IH07CisgICAgbGluay5vbmVycm9yID0gKCkgPT4geyBsb2dPbkVycm9yKHVybCwg
aXNDT1JTLCBleHBlY3RTdWNjZXNzKTsgfTsKKyAgICByZXR1cm4gbGluazsKK30KKworZnVuY3Rp
b24gZG9UZXN0cygpCit7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5r
RWxlbWVudCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1p
Zi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4
MDgwJm5hbWU9eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVu
dGlhbHMiLCB0cnVlLCBmYWxzZSkpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY3Jl
YXRlTGlua0VsZW1lbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMv
YWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxo
b3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxv
d0NyZWRlbnRpYWxzIiwgZmFsc2UsIHRydWUpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGNyZWF0ZUxpbmtFbGVtZW50KCJodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVz
b3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUy
RjEyNy4wLjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVudFR5cGU9dGV4dC9j
c3MmYWxsb3dDcmVkZW50aWFscyIsIHRydWUsIHRydWUpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGNyZWF0ZUxpbmtFbGVtZW50KCJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUz
QSUyRiUyRjEyNy4wLjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5cGU9
dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyIsIHRydWUsIHRydWUpKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGNyZWF0ZUxpbmtFbGVtZW50KCJodHRwOi8vbG9jYWxob3N0OjgwODAv
c2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49
aHR0cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVu
dFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyIsIGZhbHNlLCB0cnVlKSk7Cit9Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVk
LWNyb3NzLW9yaWdpbi1wcmVsb2FkaW5nLWNzcy1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2Fk
aW5nLWNzcy1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmNmZGMzOGViZjMz
OTZhZTI5OGYxM2Y1MzM2MDE3YjVjMGI2ZjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRpbmctY3Nz
LXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdF
OiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
CisKK1BBU1M6IGRpZCBub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVz
b3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUy
RmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVudFR5cGU9dGV4dC9j
c3MmYWxsb3dDcmVkZW50aWFscyAoY29ycyBtb2RlKQorUEFTUzogbG9hZGVkIHN1Y2Nlc3NmdWx5
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2lu
LnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGMTI3LjAuMC4xJTNBODAwMCZuYW1l
PXhvcmlnaW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIChj
b3JzIG1vZGUpCitQQVNTOiBsb2FkZWQgc3VjY2Vzc2Z1bHkgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2lu
PWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5hbWU9eG9yaWdpbmNzczEuY3NzJmNvbnRl
bnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMgKG5vLWNvcnMgbW9kZSkKK1BBU1M6IGxv
YWRlZCBzdWNjZXNzZnVseSBodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRjEyNy4w
LjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxs
b3dDcmVkZW50aWFscyAoY29ycyBtb2RlKQorUEFTUzogbG9hZGVkIHN1Y2Nlc3NmdWx5IGh0dHA6
Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9h
bGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhvcmln
aW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIChuby1jb3Jz
IG1vZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hl
ZC1jcm9zcy1vcmlnaW4tcHJlbG9hZGluZy1jc3Mtc3R5bGVzaGVldC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRpbmctY3Nz
LXN0eWxlc2hlZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTRiODk2YWUwOWM3YzZhYThmZDdkZmRiNTAx
NTc5ZmU3ZTQ2OTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRpbmctY3NzLXN0eWxlc2hlZXQuaHRt
bApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldExpbmtQcmVsb2Fk
U3VwcG9ydCh0cnVlKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KK2Z1bmN0aW9u
IGVycm9yUHJlbG9hZChlKQoreworICAgIGNvbnNvbGUubG9nKCJ1bmV4cGVjdGVkIGxvYWRpbmcg
cmVzdWx0IGZvciBwcmVsb2FkICIgKyBlKTsKK30KKzwvc2NyaXB0PgorPGxpbmsgcmVsPXByZWxv
YWQgb25lcnJvcj0iZXJyb3JQcmVsb2FkKDEpIiBhcz1zdHlsZSBocmVmPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNo
ZSZvcmlnaW49aHR0cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMS5j
c3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyI+Cis8bGluayByZWw9cHJl
bG9hZCBvbmVycm9yPSJlcnJvclByZWxvYWQoMikiIGFzPXN0eWxlIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0Nh
Y2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGMTI3LjAuMC4xJTNBODAwMCZuYW1lPXhvcmlnaW5jc3Mx
LmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxsaW5rIHJlbD1w
cmVsb2FkIG9uZXJyb3I9ImVycm9yUHJlbG9hZCgzKSIgYXM9c3R5bGUgY3Jvc3NvcmlnaW49Indp
dGgtY3JlZGVudGlhbHMiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJG
MTI3LjAuMC4xJTNBODAwMCZuYW1lPXhvcmlnaW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2Nz
cyZhbGxvd0NyZWRlbnRpYWxzIj48bGluayByZWw9cHJlbG9hZCBvbmxvYWQ9ImVycm9yUHJlbG9h
ZCg0KSIgYXM9c3R5bGUgY3Jvc3NvcmlnaW49IndpdGgtY3JlZGVudGlhbHMiIGhyZWY9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9h
bGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhvcmln
aW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxsaW5r
IHJlbD1wcmVsb2FkIG9ubG9hZD0iZXJyb3JQcmVsb2FkKDQpIiBhcz1zdHlsZSBjcm9zc29yaWdp
bj0id2l0aC1jcmVkZW50aWFscyIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5
L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0El
MkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5hbWU9eG9yaWdpbmNzczIuY3NzJmNvbnRlbnRUeXBlPXRl
eHQvY3NzJmFsbG93Q3JlZGVudGlhbHMiPgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+
CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBtYXhSZXN1bHRzID0gNTsK
K3ZhciByZXN1bHRzID0gW107CisKK2Z1bmN0aW9uIGNoZWNrRG9uZSgpCit7CisgICAgaWYgKHJl
c3VsdHMubGVuZ3RoICE9PSBtYXhSZXN1bHRzKQorICAgICAgICByZXR1cm47CisgICAgdmFyIGxv
ZyA9ICIiOworICAgIHJlc3VsdHMuc29ydCgpOworICAgIGZvciAodmFsdWUgb2YgcmVzdWx0cykK
KyAgICAgICAgbG9nICs9ICI8YnI+IiArIHZhbHVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKS5pbm5lckhUTUwgPSBsb2c7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nT25Mb2Fk
KHVybCwgaXNDT1JTLCBleHBlY3RTdWNjZXNzKQoreworICAgIHJlc3VsdHMucHVzaCgoZXhwZWN0
U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgImxvYWRlZCBzdWNjZXNzZnVseSAiICsg
dXJsICsgKGlzQ09SUyA/ICIgKGNvcnMgbW9kZSkiIDogIiAobm8tY29ycyBtb2RlKSIpKTsKKyAg
ICBjaGVja0RvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nT25FcnJvcih1cmwsIGlzQ09SUywgZXhw
ZWN0U3VjY2VzcykKK3sKKyAgICByZXN1bHRzLnB1c2goKCFleHBlY3RTdWNjZXNzID8gIlBBU1M6
ICIgOiAiRkFJTDogIikgKyAiZGlkIG5vdCBsb2FkICIgKyB1cmwgKyAoaXNDT1JTID8gIiAoY29y
cyBtb2RlKSIgOiAiIChuby1jb3JzIG1vZGUpIikpOworICAgIGNoZWNrRG9uZSgpOworfQorCitm
dW5jdGlvbiBjcmVhdGVMaW5rRWxlbWVudCh1cmwsIGlzQ09SUywgZXhwZWN0U3VjY2VzcykKK3sK
KyAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOworICAgIGxpbmsuaHJl
ZiA9IHVybDsKKyAgICBsaW5rLnJlbCA9ICJzdHlsZXNoZWV0IjsKKyAgICBsaW5rLnR5cGUgPSAi
dGV4dC9jc3MiOworICAgIGlmIChpc0NPUlMpCisgICAgICAgIGxpbmsuY3Jvc3NPcmlnaW4gPSAi
d2l0aC1jcmVkZW50aWFscyI7CisgICAgbGluay5vbmxvYWQgPSAoKSA9PiB7IGxvZ09uTG9hZCh1
cmwsIGlzQ09SUywgZXhwZWN0U3VjY2Vzcyk7IH07CisgICAgbGluay5vbmVycm9yID0gKCkgPT4g
eyBsb2dPbkVycm9yKHVybCwgaXNDT1JTLCBleHBlY3RTdWNjZXNzKTsgfTsKKyAgICByZXR1cm4g
bGluazsKK30KKworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5rRWxlbWVudCgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4u
cGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5hbWU9
eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMiLCB0
cnVlLCBmYWxzZSkpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5rRWxlbWVu
dCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmln
aW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5h
bWU9eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMi
LCBmYWxzZSwgdHJ1ZSkpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5rRWxl
bWVudCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1v
cmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkYxMjcuMC4wLjElM0E4MDAw
Jm5hbWU9eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlh
bHMiLCB0cnVlLCB0cnVlKSk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNyZWF0ZUxpbmtF
bGVtZW50KCJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlm
LW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRjEyNy4wLjAuMSUzQTgw
MDAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50
aWFscyIsIHRydWUsIHRydWUpKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlTGlu
a0VsZW1lbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ct
aWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0JTNB
ODA4MCZuYW1lPXhvcmlnaW5jc3MyLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRl
bnRpYWxzIiwgZmFsc2UsIHRydWUpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ct
aWYtb3JpZ2luLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2FsbG93LWlmLW9yaWdpbi5waHAKaW5kZXggNTY1ZmNjNTY2ZWM0ZmRkN2E2MmE1ZDQzYjU2NzA1
ZmIxYjlkYjg0OC4uN2MyZDQ3ZDdjNGYyMjk3YTliM2Q2NDZmNmMxZDU2YWM0MWM4ZWY1NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ct
aWYtb3JpZ2luLnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291
cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwCkBAIC0xMiw2ICsxMiwxMCBAQCBlbHNlIGlmICgkX1NF
UlZFUlsiSFRUUF9PUklHSU4iXSkgewogICAgIGhlYWRlcigiVmFyeTogT3JpZ2luIik7CiB9CiAK
KyRhbGxvd0NyZWRlbnRpYWxzID0gJF9HRVRbJ2FsbG93Q3JlZGVudGlhbHMnXTsKK2lmIChpc3Nl
dCgkYWxsb3dDcmVkZW50aWFscykpCisgICAgaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1D
cmVkZW50aWFsczogdHJ1ZSIpOworCiAkYWxsb3dDYWNoZSA9ICRfR0VUWydhbGxvd0NhY2hlJ107
CiBpZiAoaXNzZXQoJGFsbG93Q2FjaGUpKQogICAgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbWF4
LWFnZT0xMDAiKTsKQEAgLTIyLDcgKzI2LDEyIEBAIGlmICghaXNzZXQoJG5hbWUpKQogCiAkZnAg
PSBmb3BlbigkbmFtZSwgJ3JiJyk7CiAKLWhlYWRlcigiQ29udGVudC1UeXBlOiBpbWFnZS9wbmci
KTsKKyRjb250ZW50VHlwZSA9ICRfR0VUWydjb250ZW50VHlwZSddOworaWYgKCFpc3NldCgkY29u
dGVudFR5cGUpKQorICAgICRjb250ZW50VHlwZSA9ICdpbWFnZS9wbmcnOworCitoZWFkZXIoIkNv
bnRlbnQtVHlwZTogIiAuICRjb250ZW50VHlwZSk7CisKIGhlYWRlcigiQ29udGVudC1MZW5ndGg6
ICIgLiBmaWxlc2l6ZSgkbmFtZSkpOwogCiBmcGFzc3RocnUoJGZwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289039</attachid>
            <date>2016-09-16 00:11:34 -0700</date>
            <delta_ts>2016-09-16 00:43:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161859-20160916090851.patch</filename>
            <type>text/plain</type>
            <size>21322</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QxZTJhMjc3YjJlMjYx
MmYxNWM2MTM0MDYwYjA3ODZjMTg0NjdjMS4uYTk4YzgzMmRjMzUwYWVmNDllMjQ5YWM3MmExYzdk
MjQyMzZkODQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA5LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBMaW5rIGxvYWRlciBzaG91
bGQgdXNlIEZldGNoT3B0aW9uczo6bW9kZSBhY2NvcmRpbmcgaXRzIGNyb3NzT3JpZ2luIGF0dHJp
YnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYx
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBUZXN0czog
aHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRlZC1jc3Mtc3R5
bGVzaGVldC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1j
cm9zcy1vcmlnaW4tcHJlbG9hZGluZy1jc3Mtc3R5bGVzaGVldC5odG1sCisKKyAgICAgICAgU2V0
dGluZyBmZXRjaCBtb2RlIGFjY29yZGluZyBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgZm9yIGxpbmsg
cHJlbG9hZCBlbGVtZW50cy4KKyAgICAgICAgVGhpcyBhbGxvd3MgY2FsbGluZyBvbmVycm9yIGNh
bGxiYWNrIGZvciBDT1JTIGZhaWx1cmVzLCB3aGljaCB3YXMgbm90IHRoZSBjYXNlIGJlZm9yZSB0
aGUgcGF0Y2guCisKKyAgICAgICAgTWFraW5nIGNhY2hlZCBDU1Mgc3R5bGVzaGVldCByZXVzYWJs
ZSBhY2Nyb3NzIG9yaWdpbnMgYW5kIGZldGNoIG1vZGVzLgorCisgICAgICAgICogbG9hZGVyL0xp
bmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6cHJlbG9hZElmTmVl
ZGVkKTogVXNpbmcgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NP
cmlnaW4gdG8gc2V0IGZldGNoIG1vZGUuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENT
U1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6
c2hlZXRUZXh0KTogY2xlYW4tdXAuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNo
ZWV0OjpzZXRCb2R5RGF0YUZyb20pOiBJbXBsZW1lbnRpbmcgZGF0YSBpbml0IGZvciBjYWNoZWQg
Y3NzIHN0eWxlc2hlZXRzLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNv
dXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6IEFjdGl2YXRpbmcgdXBkYXRlIHN1cHBvcnQgZm9yIHN0
eWxlc2hlZXRzLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSk6IEZpeGluZyBmb3IgbWF0Y2hpbmcgY2FjaGVkIHJlc291cmNlcyB0aGF0IG5l
ZWQgYmVpbmcgcmVsb2FkZWQgZHVlIHRvIGRpZmZlcmVudCBvcmlnaW4vZmV0Y2ggbW9kZS4KKwog
MjAxNi0wOS0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0ZldGNoIEFQSV0gSGVhZGVycyBzaG91bGQgYmUgY29tYmluZSB3aXRoICcsJyBhbmQgbm90ICcs
ICcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCBhZWZhN2ViYjM4NmJiMmQx
Y2FkOTI5M2U5ZTE0MDI3NzNhYTRlZTA1Li4zYzVjYzhiNGVkN2MzZjQ1NmNkOTIxZTA5MTU2NDEw
MjY0ODdjNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC0xNjEsMTEg
KzE2MSw3IEBAIHZvaWQgTGlua0xvYWRlcjo6cHJlbG9hZElmTmVlZGVkKGNvbnN0IExpbmtSZWxB
dHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJMCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IGxpbmtSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OmRlZmF1bHRQ
cmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlLnZhbHVlKCkpKTsKICAgICBsaW5rUmVxdWVzdC5z
ZXRJbml0aWF0b3IoImxpbmsiKTsKIAotICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgp
KSB7Ci0gICAgICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKLSAgICAgICAg
U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9y
ZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgdXBk
YXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobGlua1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVx
dWVzdCgpLCAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7Ci0g
ICAgfQorICAgIGxpbmtSZXF1ZXN0LnNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbihjcm9zc09y
aWdpbk1vZGUsIGRvY3VtZW50KTsKICAgICBsaW5rUmVxdWVzdC5zZXRGb3JQcmVsb2FkKHRydWUp
OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBjYWNoZWRMaW5rUmVz
b3VyY2UgPSBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnByZWxvYWQodHlwZS52YWx1
ZSgpLCBsaW5rUmVxdWVzdCwgZW1wdHlTdHJpbmcoKSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkV4
cGxpY2l0UHJlbG9hZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA0ZDM3ZTU4YmRmNDllMTRlZWRjZDRmMDkwZjlm
YWU2NmYyNGVlOTM5Li5mODg0YmRiNjJmODliOGY0OGE0NmY1MWI1M2I3ZTMxNTdlN2JkNmY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCkBAIC03NiwxOSArNzYsMjkgQEAgU3RyaW5nIENhY2hlZENTU1N0eWxlU2hlZXQ6OmVu
Y29kaW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kZWNvZGVyLT5lbmNvZGluZygpLm5hbWUo
KTsKIH0KLSAgICAKKwogY29uc3QgU3RyaW5nIENhY2hlZENTU1N0eWxlU2hlZXQ6OnNoZWV0VGV4
dChNSU1FVHlwZUNoZWNrIG1pbWVUeXBlQ2hlY2ssIGJvb2wqIGhhc1ZhbGlkTUlNRVR5cGUpIGNv
bnN0Ci17IAorewogICAgIGlmICghbV9kYXRhIHx8IG1fZGF0YS0+aXNFbXB0eSgpIHx8ICFjYW5V
c2VTaGVldChtaW1lVHlwZUNoZWNrLCBoYXNWYWxpZE1JTUVUeXBlKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwotICAgIAorCiAgICAgaWYgKCFtX2RlY29kZWRTaGVldFRleHQuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybiBtX2RlY29kZWRTaGVldFRleHQ7Ci0gICAgCisKICAgICAvLyBEb24n
dCBjYWNoZSB0aGUgZGVjb2RlZCB0ZXh0LCByZWdlbmVyYXRpbmcgaXMgY2hlYXAgYW5kIGl0IGNh
biB1c2UgcXVpdGUgYSBiaXQgb2YgbWVtb3J5CiAgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZGVjb2Rl
QW5kRmx1c2gobV9kYXRhLT5kYXRhKCksIG1fZGF0YS0+c2l6ZSgpKTsKIH0KIAordm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpzZXRCb2R5RGF0YUZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJl
c291cmNlKQoreworICAgIEFTU0VSVChyZXNvdXJjZS50eXBlKCkgPT0gdHlwZSgpKTsKKyAgICBj
b25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0JiBzaGVldCA9IHN0YXRpY19jYXN0PGNvbnN0IENhY2hl
ZENTU1N0eWxlU2hlZXQmPihyZXNvdXJjZSk7CisKKyAgICBtX2RlY29kZXIgPSBzaGVldC5tX2Rl
Y29kZXI7CisgICAgbV9kZWNvZGVkU2hlZXRUZXh0ID0gc2hlZXQubV9kZWNvZGVkU2hlZXRUZXh0
OworICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gc2hlZXQubV9wYXJzZWRTdHlsZVNoZWV0
Q2FjaGU7Cit9CisKIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZmluaXNoTG9hZGluZyhTaGFy
ZWRCdWZmZXIqIGRhdGEpCiB7CiAgICAgbV9kYXRhID0gZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmluZGV4IDM0MmE4ZmZlZTYw
YjYwOWUxOWU4ZjBhMDI2NjQxMGI2NzkxZTJjZGMuLjU0NDRlOWM4YWY3OGI0YzBhYzYwMDEyOWI3
MzAwOGM3NGIyOGFjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZENTU1N0eWxlU2hlZXQuaApAQCAtNDgsMTggKzQ4LDIwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgY2FuVXNlU2hlZXQoTUlNRVR5cGVDaGVj
aywgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgbWF5VHJ5UmVw
bGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAg
ICBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgICAgICB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCop
IG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVu
dCopIGZpbmFsOwogCi0gICAgICAgIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgICAgIFN0cmluZyBlbmNvZGluZygpIGNvbnN0IG92ZXJyaWRlOwotICAgICAg
ICBjb25zdCBUZXh0UmVzb3VyY2VEZWNvZGVyKiB0ZXh0UmVzb3VyY2VEZWNvZGVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9kZWNvZGVyLmdldCgpOyB9Ci0gICAgICAgIHZvaWQgZmluaXNo
TG9hZGluZyhTaGFyZWRCdWZmZXIqKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkZXN0cm95RGVj
b2RlZERhdGEoKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJp
bmcmKSBmaW5hbDsKKyAgICAgICAgU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgZmluYWw7CisgICAg
ICAgIGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqIHRleHRSZXNvdXJjZURlY29kZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2RlY29kZXIuZ2V0KCk7IH0KKyAgICAgICAgdm9pZCBmaW5pc2hM
b2FkaW5nKFNoYXJlZEJ1ZmZlciopIGZpbmFsOworICAgICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVk
RGF0YSgpIGZpbmFsOworCisgICAgICAgIHZvaWQgc2V0Qm9keURhdGFGcm9tKGNvbnN0IENhY2hl
ZFJlc291cmNlJikgZmluYWw7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZvaWQgY2hlY2tO
b3RpZnkoKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBjaGVja05vdGlmeSgpIGZpbmFsOwogCiAg
ICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CiAgICAgICAgIFN0
cmluZyBtX2RlY29kZWRTaGVldFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBlOTM3ZTM3YTU5ZmFmOWNhNTJj
ZGRhZjRmNzhkZDQ1Y2RiMjBmZjkyLi4yMzk2MWJmMzVhZDQzNWYxMjg1NDYxMjgyYjViMWJhM2E1
MGMxYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU0Niw3ICs1NDYsNyBAQCBib29sIENhY2hlZFJlc291cmNl
TG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdChDYWNoZWRSZXNv
dXJjZQogICAgIENhY2hlZFJlc291cmNlJiByZXNvdXJjZSA9ICpyZXNvdXJjZUhhbmRsZTsKIAog
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvZ3Jlc3NpdmVseSBleHRlbmQgdGhpcyB0byBvdGhl
ciByZXVzYWJsZSByZXNvdXJjZXMKLSAgICBpZiAocmVzb3VyY2UudHlwZSgpICE9IENhY2hlZFJl
c291cmNlOjpUeXBlOjpJbWFnZVJlc291cmNlICYmIHJlc291cmNlLnR5cGUoKSAhPSBDYWNoZWRS
ZXNvdXJjZTo6VHlwZTo6U2NyaXB0ICYmIHJlc291cmNlLnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJj
ZTo6VHlwZTo6VGV4dFRyYWNrUmVzb3VyY2UpCisgICAgaWYgKHJlc291cmNlLnR5cGUoKSAhPSBD
YWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNvdXJjZSAmJiByZXNvdXJjZS50eXBlKCkgIT0g
Q2FjaGVkUmVzb3VyY2U6OlR5cGU6OlNjcmlwdCAmJiByZXNvdXJjZS50eXBlKCkgIT0gQ2FjaGVk
UmVzb3VyY2U6OlR5cGU6OlRleHRUcmFja1Jlc291cmNlICYmIHJlc291cmNlLnR5cGUoKSAhPSBD
YWNoZWRSZXNvdXJjZTo6VHlwZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgYm9vbCBzaG91bGRVcGRhdGUgPSByZXNvdXJjZS5vcHRpb25zKCkubW9kZSAhPSBy
ZXF1ZXN0Lm9wdGlvbnMoKS5tb2RlIHx8IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cE9y
aWdpbigpICE9IHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpLmh0dHBPcmlnaW4oKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA0NWUwM2JmMzUyZWE4OGZhY2VmYTg3ZjhhYmI3NDg1ZWVlYThkYTQ3Li5kOTkxNmI0NmIwZjJi
NjU3ZDIxMjYwNmZjMzE3MDMzZWJiYzc0Nzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYt
MDktMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIExpbmsg
bG9hZGVyIHNob3VsZCB1c2UgRmV0Y2hPcHRpb25zOjptb2RlIGFjY29yZGluZyBpdHMgY3Jvc3NP
cmlnaW4gYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjE4NTkKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRlZC1j
c3Mtc3R5bGVzaGVldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkZWQtY3NzLXN0eWxlc2hlZXQuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3Jp
Z2luLXByZWxvYWRpbmctY3NzLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1vcmlnaW4tcHJlbG9hZGluZy1j
c3Mtc3R5bGVzaGVldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwOiBBZGRpbmcgc3VwcG9ydCBmb3IgYWxsb3dp
bmcgY3JlZGVudGlhbHMgYW5kIHNldHRpbmcgY29udGVudFR5cGUuCisKIDIwMTYtMDktMTUgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtGZXRjaCBBUEldIEhl
YWRlcnMgc2hvdWxkIGJlIGNvbWJpbmUgd2l0aCAnLCcgYW5kIG5vdCAnLCAnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1vcmlnaW4tcHJl
bG9hZGVkLWNzcy1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkZWQtY3NzLXN0eWxlc2hlZXQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiY2ZkYzM4ZWJmMzM5NmFlMjk4ZjEzZjUzMzYwMTdi
NWMwYjZmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NhY2hlZC1jcm9zcy1vcmlnaW4tcHJlbG9hZGVkLWNzcy1zdHlsZXNoZWV0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
CitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFs
bG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorCitQQVNTOiBkaWQgbm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmln
aW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5h
bWU9eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMg
KGNvcnMgbW9kZSkKK1BBU1M6IGxvYWRlZCBzdWNjZXNzZnVseSBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvc2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmln
aW49aHR0cCUzQSUyRiUyRjEyNy4wLjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29u
dGVudFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyAoY29ycyBtb2RlKQorUEFTUzogbG9h
ZGVkIHN1Y2Nlc3NmdWx5IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMv
YWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxo
b3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxv
d0NyZWRlbnRpYWxzIChuby1jb3JzIG1vZGUpCitQQVNTOiBsb2FkZWQgc3VjY2Vzc2Z1bHkgaHR0
cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhw
P2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkYxMjcuMC4wLjElM0E4MDAwJm5hbWU9eG9y
aWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMgKGNvcnMg
bW9kZSkKK1BBU1M6IGxvYWRlZCBzdWNjZXNzZnVseSBodHRwOi8vbG9jYWxob3N0OjgwODAvc2Vj
dXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0
cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5
cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyAobm8tY29ycyBtb2RlKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxv
YWRlZC1jc3Mtc3R5bGVzaGVldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRlZC1jc3Mtc3R5bGVzaGVldC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAzZDEwYjU4NDU2ZjIxNGMyZWI3ZmFjMTM5ODkxYTE3NzgzYTYzMzYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1v
cmlnaW4tcHJlbG9hZGVkLWNzcy1zdHlsZXNoZWV0Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldExpbmtQcmVsb2FkU3VwcG9ydCh0cnVlKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKK30KK2Z1bmN0aW9uIGVycm9yUHJlbG9hZChlKQoreworICAgIGNvbnNvbGUubG9nKCJ1
bmV4cGVjdGVkIHByZWxvYWQgcmVzdWx0ICIgKyBlKTsKKyAgICBwcmVsb2FkZWQoKTsKK30KK3Zh
ciBudW1QcmVsb2FkcyA9IDA7CitmdW5jdGlvbiBwcmVsb2FkZWQoKQoreworICAgIGlmICgrK251
bVByZWxvYWRzID09IDQpCisgICAgICAgIGRvVGVzdHMoKTsKK30KKzwvc2NyaXB0PgorPGxpbmsg
cmVsPXByZWxvYWQgb25sb2FkPSJwcmVsb2FkZWQoKSIgb25lcnJvcj0iZXJyb3JQcmVsb2FkKDEp
IiBhcz1zdHlsZSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRmxvY2Fs
aG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxs
b3dDcmVkZW50aWFscyI+Cis8bGluayByZWw9cHJlbG9hZCBvbmxvYWQ9InByZWxvYWRlZCgpIiBv
bmVycm9yPSJlcnJvclByZWxvYWQoMikiIGFzPXN0eWxlIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9y
aWdpbj1odHRwJTNBJTJGJTJGMTI3LjAuMC4xJTNBODAwMCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZj
b250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxsaW5rIHJlbD1wcmVsb2Fk
IG9ubG9hZD0icHJlbG9hZGVkKCkiIG9uZXJyb3I9ImVycm9yUHJlbG9hZCgzKSIgYXM9c3R5bGUg
Y3Jvc3NvcmlnaW49dXNlLWNyZWRlbnRpYWxzIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1o
dHRwJTNBJTJGJTJGMTI3LjAuMC4xJTNBODAwMCZuYW1lPXhvcmlnaW5jc3MyLmNzcyZjb250ZW50
VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxsaW5rIHJlbD1wcmVsb2FkIG9uZXJy
b3I9InByZWxvYWRlZCgpIiBvbmxvYWQ9ImVycm9yUHJlbG9hZCg0KSIgYXM9c3R5bGUgY3Jvc3Nv
cmlnaW49dXNlLWNyZWRlbnRpYWxzIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0
eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNB
JTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MyLmNzcyZjb250ZW50VHlwZT10
ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxkaXYgaWQgPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIG1heFJlc3VsdHMgPSA1
OwordmFyIHJlc3VsdHMgPSBbXTsKKworZnVuY3Rpb24gY2hlY2tEb25lKCkKK3sKKyAgICBpZiAo
cmVzdWx0cy5sZW5ndGggIT09IG1heFJlc3VsdHMpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIg
bG9nID0gIiI7CisgICAgcmVzdWx0cy5zb3J0KCk7CisgICAgZm9yICh2YWx1ZSBvZiByZXN1bHRz
KQorICAgICAgICBsb2cgKz0gIjxicj4iICsgdmFsdWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2xvZycpLmlubmVySFRNTCA9IGxvZzsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBsb2dPbkxv
YWQodXJsLCBpc0NPUlMsIGV4cGVjdFN1Y2Nlc3MpCit7CisgICAgcmVzdWx0cy5wdXNoKChleHBl
Y3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyAibG9hZGVkIHN1Y2Nlc3NmdWx5ICIg
KyB1cmwgKyAoaXNDT1JTID8gIiAoY29ycyBtb2RlKSIgOiAiIChuby1jb3JzIG1vZGUpIikpOwor
ICAgIGNoZWNrRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2dPbkVycm9yKHVybCwgaXNDT1JTLCBl
eHBlY3RTdWNjZXNzKQoreworICAgIHJlc3VsdHMucHVzaCgoIWV4cGVjdFN1Y2Nlc3MgPyAiUEFT
UzogIiA6ICJGQUlMOiAiKSArICJkaWQgbm90IGxvYWQgIiArIHVybCArIChpc0NPUlMgPyAiIChj
b3JzIG1vZGUpIiA6ICIgKG5vLWNvcnMgbW9kZSkiKSk7CisgICAgY2hlY2tEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIGNyZWF0ZUxpbmtFbGVtZW50KHVybCwgaXNDT1JTLCBleHBlY3RTdWNjZXNzKQor
eworICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7CisgICAgbGluay5o
cmVmID0gdXJsOworICAgIGxpbmsucmVsID0gInN0eWxlc2hlZXQiOworICAgIGxpbmsudHlwZSA9
ICJ0ZXh0L2NzcyI7CisgICAgaWYgKGlzQ09SUykKKyAgICAgICAgbGluay5jcm9zc09yaWdpbiA9
ICJ1c2UtY3JlZGVudGlhbHMiOworICAgIGxpbmsub25sb2FkID0gKCkgPT4geyBsb2dPbkxvYWQo
dXJsLCBpc0NPUlMsIGV4cGVjdFN1Y2Nlc3MpOyB9OworICAgIGxpbmsub25lcnJvciA9ICgpID0+
IHsgbG9nT25FcnJvcih1cmwsIGlzQ09SUywgZXhwZWN0U3VjY2Vzcyk7IH07CisgICAgcmV0dXJu
IGxpbms7Cit9CisKK2Z1bmN0aW9uIGRvVGVzdHMoKQoreworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoY3JlYXRlTGlua0VsZW1lbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNB
JTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10
ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIiwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGNyZWF0ZUxpbmtFbGVtZW50KCJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49
aHR0cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVu
dFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyIsIGZhbHNlLCB0cnVlKSk7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5rRWxlbWVudCgiaHR0cDovL2xvY2FsaG9z
dDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUm
b3JpZ2luPWh0dHAlM0ElMkYlMkYxMjcuMC4wLjElM0E4MDAwJm5hbWU9eG9yaWdpbmNzczEuY3Nz
JmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMiLCB0cnVlLCB0cnVlKSk7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5rRWxlbWVudCgiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93
Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkYxMjcuMC4wLjElM0E4MDAwJm5hbWU9eG9yaWdpbmNz
czIuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMiLCB0cnVlLCB0cnVl
KSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVMaW5rRWxlbWVudCgiaHR0
cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhw
P2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5hbWU9eG9y
aWdpbmNzczIuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMiLCBmYWxz
ZSwgdHJ1ZSkpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NhY2hlZC1jcm9zcy1vcmlnaW4tcHJlbG9hZGluZy1jc3Mtc3R5bGVzaGVl
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhY2hlZC1j
cm9zcy1vcmlnaW4tcHJlbG9hZGluZy1jc3Mtc3R5bGVzaGVldC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmJjZmRjMzhlYmYzMzk2YWUyOThmMTNmNTMzNjAxN2I1YzBiNmYyYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9y
aWdpbi1wcmVsb2FkaW5nLWNzcy1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgg
QEAKK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3Qg
YWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgorCitQQVNTOiBkaWQgbm90IGxvYWQgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUm
b3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJm5hbWU9eG9yaWdpbmNzczEuY3Nz
JmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMgKGNvcnMgbW9kZSkKK1BBU1M6
IGxvYWRlZCBzdWNjZXNzZnVseSBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3Vy
Y2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRjEy
Ny4wLjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5cGU9dGV4dC9jc3Mm
YWxsb3dDcmVkZW50aWFscyAoY29ycyBtb2RlKQorUEFTUzogbG9hZGVkIHN1Y2Nlc3NmdWx5IGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBo
cD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhv
cmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIChuby1j
b3JzIG1vZGUpCitQQVNTOiBsb2FkZWQgc3VjY2Vzc2Z1bHkgaHR0cDovL2xvY2FsaG9zdDo4MDgw
L3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2lu
PWh0dHAlM0ElMkYlMkYxMjcuMC4wLjElM0E4MDAwJm5hbWU9eG9yaWdpbmNzczEuY3NzJmNvbnRl
bnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlhbHMgKGNvcnMgbW9kZSkKK1BBU1M6IGxvYWRl
ZCBzdWNjZXNzZnVseSBodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2Fs
bG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRmxvY2FsaG9z
dCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dD
cmVkZW50aWFscyAobm8tY29ycyBtb2RlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jYWNoZWQtY3Jvc3Mtb3JpZ2luLXByZWxvYWRpbmctY3NzLXN0eWxlc2hl
ZXQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9y
aWdpbi1wcmVsb2FkaW5nLWNzcy1zdHlsZXNoZWV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U0Yjg5NmFl
MDljN2M2YWE4ZmQ3ZGZkYjUwMTU3OWZlN2U0Njk2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FjaGVkLWNyb3NzLW9yaWdpbi1wcmVsb2FkaW5n
LWNzcy1zdHlsZXNoZWV0Lmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXRMaW5rUHJlbG9hZFN1cHBvcnQodHJ1ZSk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit9CitmdW5jdGlvbiBlcnJvclByZWxvYWQoZSkKK3sKKyAgICBjb25zb2xlLmxvZygi
dW5leHBlY3RlZCBsb2FkaW5nIHJlc3VsdCBmb3IgcHJlbG9hZCAiICsgZSk7Cit9Cis8L3Njcmlw
dD4KKzxsaW5rIHJlbD1wcmVsb2FkIG9uZXJyb3I9ImVycm9yUHJlbG9hZCgxKSIgYXM9c3R5bGUg
aHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1v
cmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgw
Jm5hbWU9eG9yaWdpbmNzczEuY3NzJmNvbnRlbnRUeXBlPXRleHQvY3NzJmFsbG93Q3JlZGVudGlh
bHMiPgorPGxpbmsgcmVsPXByZWxvYWQgb25lcnJvcj0iZXJyb3JQcmVsb2FkKDIpIiBhcz1zdHls
ZSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlm
LW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRjEyNy4wLjAuMSUzQTgw
MDAmbmFtZT14b3JpZ2luY3NzMS5jc3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50
aWFscyI+Cis8bGluayByZWw9cHJlbG9hZCBvbmVycm9yPSJlcnJvclByZWxvYWQoMykiIGFzPXN0
eWxlIGNyb3Nzb3JpZ2luPSJ3aXRoLWNyZWRlbnRpYWxzIiBocmVmPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZv
cmlnaW49aHR0cCUzQSUyRiUyRjEyNy4wLjAuMSUzQTgwMDAmbmFtZT14b3JpZ2luY3NzMi5jc3Mm
Y29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyI+PGxpbmsgcmVsPXByZWxvYWQg
b25sb2FkPSJlcnJvclByZWxvYWQoNCkiIGFzPXN0eWxlIGNyb3Nzb3JpZ2luPSJ3aXRoLWNyZWRl
bnRpYWxzIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2Fs
bG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUzQSUyRiUyRmxvY2FsaG9z
dCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5cGU9dGV4dC9jc3MmYWxsb3dD
cmVkZW50aWFscyI+Cis8bGluayByZWw9cHJlbG9hZCBvbmxvYWQ9ImVycm9yUHJlbG9hZCg0KSIg
YXM9c3R5bGUgY3Jvc3NvcmlnaW49IndpdGgtY3JlZGVudGlhbHMiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0Nh
Y2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3My
LmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZhbGxvd0NyZWRlbnRpYWxzIj4KKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2
YXIgbWF4UmVzdWx0cyA9IDU7Cit2YXIgcmVzdWx0cyA9IFtdOworCitmdW5jdGlvbiBjaGVja0Rv
bmUoKQoreworICAgIGlmIChyZXN1bHRzLmxlbmd0aCAhPT0gbWF4UmVzdWx0cykKKyAgICAgICAg
cmV0dXJuOworICAgIHZhciBsb2cgPSAiIjsKKyAgICByZXN1bHRzLnNvcnQoKTsKKyAgICBmb3Ig
KHZhbHVlIG9mIHJlc3VsdHMpCisgICAgICAgIGxvZyArPSAiPGJyPiIgKyB2YWx1ZTsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykuaW5uZXJIVE1MID0gbG9nOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIGxvZ09uTG9hZCh1cmwsIGlzQ09SUywgZXhwZWN0U3VjY2VzcykKK3sKKyAgICBy
ZXN1bHRzLnB1c2goKGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArICJsb2Fk
ZWQgc3VjY2Vzc2Z1bHkgIiArIHVybCArIChpc0NPUlMgPyAiIChjb3JzIG1vZGUpIiA6ICIgKG5v
LWNvcnMgbW9kZSkiKSk7CisgICAgY2hlY2tEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZ09uRXJy
b3IodXJsLCBpc0NPUlMsIGV4cGVjdFN1Y2Nlc3MpCit7CisgICAgcmVzdWx0cy5wdXNoKCghZXhw
ZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgImRpZCBub3QgbG9hZCAiICsgdXJs
ICsgKGlzQ09SUyA/ICIgKGNvcnMgbW9kZSkiIDogIiAobm8tY29ycyBtb2RlKSIpKTsKKyAgICBj
aGVja0RvbmUoKTsKK30KKworZnVuY3Rpb24gY3JlYXRlTGlua0VsZW1lbnQodXJsLCBpc0NPUlMs
IGV4cGVjdFN1Y2Nlc3MpCit7CisgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xp
bmsnKTsKKyAgICBsaW5rLmhyZWYgPSB1cmw7CisgICAgbGluay5yZWwgPSAic3R5bGVzaGVldCI7
CisgICAgbGluay50eXBlID0gInRleHQvY3NzIjsKKyAgICBpZiAoaXNDT1JTKQorICAgICAgICBs
aW5rLmNyb3NzT3JpZ2luID0gIndpdGgtY3JlZGVudGlhbHMiOworICAgIGxpbmsub25sb2FkID0g
KCkgPT4geyBsb2dPbkxvYWQodXJsLCBpc0NPUlMsIGV4cGVjdFN1Y2Nlc3MpOyB9OworICAgIGxp
bmsub25lcnJvciA9ICgpID0+IHsgbG9nT25FcnJvcih1cmwsIGlzQ09SUywgZXhwZWN0U3VjY2Vz
cyk7IH07CisgICAgcmV0dXJuIGxpbms7Cit9CisKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y3JlYXRlTGlua0VsZW1lbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJGbG9j
YWxob3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0L2NzcyZh
bGxvd0NyZWRlbnRpYWxzIiwgdHJ1ZSwgZmFsc2UpKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoY3JlYXRlTGlua0VsZW1lbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJGJTJG
bG9jYWxob3N0JTNBODA4MCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0L2Nz
cyZhbGxvd0NyZWRlbnRpYWxzIiwgZmFsc2UsIHRydWUpKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoY3JlYXRlTGlua0VsZW1lbnQoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9y
ZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocD9hbGxvd0NhY2hlJm9yaWdpbj1odHRwJTNBJTJG
JTJGMTI3LjAuMC4xJTNBODAwMCZuYW1lPXhvcmlnaW5jc3MxLmNzcyZjb250ZW50VHlwZT10ZXh0
L2NzcyZhbGxvd0NyZWRlbnRpYWxzIiwgdHJ1ZSwgdHJ1ZSkpOworZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChjcmVhdGVMaW5rRWxlbWVudCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwP2FsbG93Q2FjaGUmb3JpZ2luPWh0dHAlM0El
MkYlMkYxMjcuMC4wLjElM0E4MDAwJm5hbWU9eG9yaWdpbmNzczIuY3NzJmNvbnRlbnRUeXBlPXRl
eHQvY3NzJmFsbG93Q3JlZGVudGlhbHMiLCB0cnVlLCB0cnVlKSk7Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGNyZWF0ZUxpbmtFbGVtZW50KCJodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJp
dHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHA/YWxsb3dDYWNoZSZvcmlnaW49aHR0cCUz
QSUyRiUyRmxvY2FsaG9zdCUzQTgwODAmbmFtZT14b3JpZ2luY3NzMi5jc3MmY29udGVudFR5cGU9
dGV4dC9jc3MmYWxsb3dDcmVkZW50aWFscyIsIGZhbHNlLCB0cnVlKSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9hbGxvdy1pZi1vcmlnaW4ucGhwCmluZGV4IDU2NWZjYzU2NmVj
NGZkZDdhNjJhNWQ0M2I1NjcwNWZiMWI5ZGI4NDguLjdjMmQ0N2Q3YzRmMjI5N2E5YjNkNjQ2ZjZj
MWQ1NmFjNDFjOGVmNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVzb3VyY2VzL2FsbG93LWlmLW9yaWdpbi5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvYWxsb3ctaWYtb3JpZ2luLnBocApAQCAtMTIsNiArMTIs
MTAgQEAgZWxzZSBpZiAoJF9TRVJWRVJbIkhUVFBfT1JJR0lOIl0pIHsKICAgICBoZWFkZXIoIlZh
cnk6IE9yaWdpbiIpOwogfQogCiskYWxsb3dDcmVkZW50aWFscyA9ICRfR0VUWydhbGxvd0NyZWRl
bnRpYWxzJ107CitpZiAoaXNzZXQoJGFsbG93Q3JlZGVudGlhbHMpKQorICAgIGhlYWRlcigiQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHM6IHRydWUiKTsKKwogJGFsbG93Q2FjaGUgPSAk
X0dFVFsnYWxsb3dDYWNoZSddOwogaWYgKGlzc2V0KCRhbGxvd0NhY2hlKSkKICAgICBoZWFkZXIo
IkNhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MTAwIik7CkBAIC0yMiw3ICsyNiwxMiBAQCBpZiAoIWlz
c2V0KCRuYW1lKSkKIAogJGZwID0gZm9wZW4oJG5hbWUsICdyYicpOwogCi1oZWFkZXIoIkNvbnRl
bnQtVHlwZTogaW1hZ2UvcG5nIik7CiskY29udGVudFR5cGUgPSAkX0dFVFsnY29udGVudFR5cGUn
XTsKK2lmICghaXNzZXQoJGNvbnRlbnRUeXBlKSkKKyAgICAkY29udGVudFR5cGUgPSAnaW1hZ2Uv
cG5nJzsKKworaGVhZGVyKCJDb250ZW50LVR5cGU6ICIgLiAkY29udGVudFR5cGUpOworCiBoZWFk
ZXIoIkNvbnRlbnQtTGVuZ3RoOiAiIC4gZmlsZXNpemUoJG5hbWUpKTsKIAogZnBhc3N0aHJ1KCRm
cCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>