<?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>162868</bug_id>
          
          <creation_ts>2016-10-03 09:58:34 -0700</creation_ts>
          <short_desc>[Modern Media Controls] LayoutItem and Button classes</short_desc>
          <delta_ts>2016-10-03 13:33:38 -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>Media</component>
          <version>Safari 10</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235798</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2016-10-03 09:58:34 -0700</bug_when>
    <thetext>Now that we have the basic building blocks to render content asynchronously with LayoutNode, we need to add a class to create buttons, which is the bread and butter of the UI part of media controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235799</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-10-03 09:59:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/28590166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235800</commentid>
    <comment_count>2</comment_count>
      <attachid>290490</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2016-10-03 10:02:20 -0700</bug_when>
    <thetext>Created attachment 290490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235802</commentid>
    <comment_count>3</comment_count>
      <attachid>290490</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-10-03 10:10:44 -0700</bug_when>
    <thetext>Comment on attachment 290490
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        We introduce the new Button class and its parent class LayoutItem. A Button is a class
&gt; +        that we will subclass a lot in coming patches, it provides a way to create a button

We will subclass Button a lot in coming patches, as it...

&gt; Source/WebCore/Modules/modern-media-controls/controls/button.js:32
&gt; +            element: `&lt;button&gt;`,

Why not use just a &quot;&quot; string here?

&gt; Source/WebCore/Modules/modern-media-controls/controls/button.js:36
&gt; +        this._enabled = true;

Would you ever want to call the delegate at this point?

&gt; Source/WebCore/Modules/modern-media-controls/controls/layout-item.js:36
&gt; +    constructor({ element = null, layoutDelegate = null } = {})

Nice. I&apos;d forgotten about this syntax.

&gt; LayoutTests/media/modern-media-controls/button/button.html:30
&gt; +button.uiDelegate = {
&gt; +
&gt; +    buttonWasClicked(aButton)
&gt; +    {
&gt; +        clickedButton = aButton;
&gt; +        shouldBeTrue(&quot;clickedButton === button&quot;);
&gt; +    }
&gt; +
&gt; +}

This syntax is nuts. I really wanted to see buttonWasClicked: function (aButton)...

&gt; LayoutTests/media/modern-media-controls/layout-item/layout-item.html:12
&gt; +    
&gt; +    get layoutTraits()

Nit: blank line isn&apos;t really needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235814</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2016-10-03 10:58:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 290490 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290490&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        We introduce the new Button class and its parent class LayoutItem. A Button is a class
&gt; &gt; +        that we will subclass a lot in coming patches, it provides a way to create a button
&gt; 
&gt; We will subclass Button a lot in coming patches, as it...
&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/button.js:32
&gt; &gt; +            element: `&lt;button&gt;`,
&gt; 
&gt; Why not use just a &quot;&quot; string here?

Sure.

&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/button.js:36
&gt; &gt; +        this._enabled = true;
&gt; 
&gt; Would you ever want to call the delegate at this point?

The need for that hasn&apos;t arisen yet.

&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/layout-item.js:36
&gt; &gt; +    constructor({ element = null, layoutDelegate = null } = {})
&gt; 
&gt; Nice. I&apos;d forgotten about this syntax.

Yes, default parameter values and object deconstruction is a fine pair.

&gt; &gt; LayoutTests/media/modern-media-controls/button/button.html:30
&gt; &gt; +button.uiDelegate = {
&gt; &gt; +
&gt; &gt; +    buttonWasClicked(aButton)
&gt; &gt; +    {
&gt; &gt; +        clickedButton = aButton;
&gt; &gt; +        shouldBeTrue(&quot;clickedButton === button&quot;);
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; 
&gt; This syntax is nuts. I really wanted to see buttonWasClicked: function
&gt; (aButton)...

Sure, we can write it this way.

&gt; &gt; LayoutTests/media/modern-media-controls/layout-item/layout-item.html:12
&gt; &gt; +    
&gt; &gt; +    get layoutTraits()
&gt; 
&gt; Nit: blank line isn&apos;t really needed

Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235818</commentid>
    <comment_count>5</comment_count>
      <attachid>290492</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2016-10-03 11:00:58 -0700</bug_when>
    <thetext>Created attachment 290492
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235885</commentid>
    <comment_count>6</comment_count>
      <attachid>290492</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-03 13:33:33 -0700</bug_when>
    <thetext>Comment on attachment 290492
Patch for landing

Clearing flags on attachment: 290492

Committed r206745: &lt;http://trac.webkit.org/changeset/206745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235886</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-03 13:33:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290490</attachid>
            <date>2016-10-03 10:02:20 -0700</date>
            <delta_ts>2016-10-03 11:00:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162868-20161003185910.patch</filename>
            <type>text/plain</type>
            <size>15554</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M0MmY3MmEzMjVhNzBl
OGY3OWRhMGM2YmE2MWEwNjA3Nzc5NjAwOC4uZGE2NDlmMjllMGQzNWYwZmFjNGY5OTAyMWUxZmE2
ZGExNWZmNjE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTEwLTAzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBD
b250cm9sc10gTGF5b3V0SXRlbSBhbmQgQnV0dG9uIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg2OAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjg1OTAxNjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgaW50cm9kdWNlIHRoZSBuZXcgQnV0dG9uIGNsYXNzIGFuZCBpdHMgcGFyZW50
IGNsYXNzIExheW91dEl0ZW0uIEEgQnV0dG9uIGlzIGEgY2xhc3MKKyAgICAgICAgdGhhdCB3ZSB3
aWxsIHN1YmNsYXNzIGEgbG90IGluIGNvbWluZyBwYXRjaGVzLCBpdCBwcm92aWRlcyBhIHdheSB0
byBjcmVhdGUgYSBidXR0b24KKyAgICAgICAgYW5kIHByb3ZpZGUgYSBkZWxlZ2F0ZSB0byByZXNw
b25kIHRvIFVJIGV2ZW50cyB2aWEgdGhlIGB1aURlbGVnYXRlYCBwcm9wZXJ0eS4gQSBCdXR0b24K
KyAgICAgICAgZXh0ZW5kcyBhIExheW91dEl0ZW0sIGFub3RoZXIgY2xhc3MgdGhhdCB3ZSdsbCBz
dWJjbGFzcyBoZWF2aWx5IGluIGNvbWluZyBwYXRjaGVzLCB3aGljaAorICAgICAgICBpcyBzaW1w
bHkgYSBMYXlvdXROb2RlIHdpdGggYSBgbGF5b3V0RGVsZWdhdGVgIHdoaWNoIGFsbG93cyB0byBz
ZXQgdGhlIG5vZGUncyBgbGF5b3V0VHJhaXRzYCwKKyAgICAgICAgYSBiaXQtbWFzayBhbGxvd2lu
ZyB0byBzcGVjaWZ5IGxheW91dCBhdHRyaWJ1dGVzIHN1Y2ggYXMgdGhlIHBsYXRmb3JtIGFuZCBw
bGF5YmFjayBzdHlsZXMuIAorCisgICAgICAgIFRlc3RzOiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvYnV0dG9uL2J1dHRvbi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0uaHRtbAorCisgICAgICAgICogTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYnV0dG9uLmNzczogQWRkZWQuCisg
ICAgICAgIChidXR0b24pOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL2J1dHRvbi5qczogQWRkZWQuCisgICAgICAgIChCdXR0b24pOgorICAgICAgICAo
QnV0dG9uLnByb3RvdHlwZS5nZXQgZW5hYmxlZCk6CisgICAgICAgIChCdXR0b24ucHJvdG90eXBl
LnNldCBlbmFibGVkKToKKyAgICAgICAgKEJ1dHRvbi5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgor
ICAgICAgICAoQnV0dG9uLnByb3RvdHlwZS5faGFuZGxlVUlFdmVudCk6CisgICAgICAgICogTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LWl0ZW0uanM6IEFkZGVk
LgorICAgICAgICAoTGF5b3V0SXRlbS5wcm90b3R5cGUuZ2V0IGxheW91dFRyYWl0cyk6CisgICAg
ICAgIChMYXlvdXRJdGVtKToKKwogMjAxNi0xMC0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBLZXlib2FyZEV2ZW50LmdldE1vZGlm
aWVyU3RhdGUoKSBvcGVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2J1dHRvbi5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9idXR0b24uY3NzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFmMGYyMmM0NmFhMTkxY2Y4MmZmMmIyZjQxMzAwYTIxMjJmNmM0OWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy9idXR0b24uY3NzCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitidXR0b24geworICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICBib3JkZXI6IDA7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvYnV0dG9uLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvY29udHJvbHMvYnV0dG9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YmU3MzJhOTczNGVhMzhkNWVl
NmEzN2Q1OGM4ZDg3MzJjNmU2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9idXR0b24uanMKQEAgLTAsMCAr
MSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Ns
YXNzIEJ1dHRvbiBleHRlbmRzIExheW91dEl0ZW0KK3sKKworICAgIGNvbnN0cnVjdG9yKGxheW91
dERlbGVnYXRlKQorICAgIHsKKyAgICAgICAgc3VwZXIoeworICAgICAgICAgICAgZWxlbWVudDog
YDxidXR0b24+YCwKKyAgICAgICAgICAgIGxheW91dERlbGVnYXRlCisgICAgICAgIH0pOworCisg
ICAgICAgIHRoaXMuX2VuYWJsZWQgPSB0cnVlOworCisgICAgICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisg
ICAgZ2V0IGVuYWJsZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7Cisg
ICAgfQorCisgICAgc2V0IGVuYWJsZWQoZmxhZykKKyAgICB7CisgICAgICAgIHRoaXMuX2VuYWJs
ZWQgPSBmbGFnOworICAgICAgICBpZiAoZmxhZyAmJiB0aGlzLmxheW91dERlbGVnYXRlICYmIHR5
cGVvZiB0aGlzLmxheW91dERlbGVnYXRlLmxheW91dCA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAg
ICAgIHRoaXMubGF5b3V0RGVsZWdhdGUubGF5b3V0KCk7CisgICAgfQorCisgICAgLy8gUHJvdGVj
dGVkCisKKyAgICBoYW5kbGVFdmVudChldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5j
dXJyZW50VGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQpCisgICAgICAgICAgICB0aGlzLl9oYW5kbGVV
SUV2ZW50KGV2ZW50KTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlVUlF
dmVudChldmVudCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9lbmFibGVkICYmIGV2ZW50LnR5
cGUgPT09ICJjbGljayIgJiYgdGhpcy51aURlbGVnYXRlICYmIHR5cGVvZiB0aGlzLnVpRGVsZWdh
dGUuYnV0dG9uV2FzQ2xpY2tlZCA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRoaXMudWlE
ZWxlZ2F0ZS5idXR0b25XYXNDbGlja2VkKHRoaXMpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5
b3V0LWl0ZW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9jb250cm9scy9sYXlvdXQtaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTQwYjA5ZDA5MzQwYTlkOTJj
ZWVhOWFlNDhkZWYxN2IxYTllNzEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LWl0ZW0uanMKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK2NvbnN0IExheW91dFRyYWl0cyA9IHsKKyAgICBVbmtub3duICAgICA6IDAsCisgICAgTWFj
ICAgICAgICAgOiAxIDw8IDAsCisgICAgaU9TICAgICAgICAgOiAxIDw8IDEsCisgICAgRnVsbHNj
cmVlbiAgOiAxIDw8IDIKK307CisKK2NsYXNzIExheW91dEl0ZW0gZXh0ZW5kcyBMYXlvdXROb2Rl
Cit7CisKKyAgICBjb25zdHJ1Y3Rvcih7IGVsZW1lbnQgPSBudWxsLCBsYXlvdXREZWxlZ2F0ZSA9
IG51bGwgfSA9IHt9KQorICAgIHsKKyAgICAgICAgc3VwZXIoZWxlbWVudCk7CisKKyAgICAgICAg
dGhpcy5sYXlvdXREZWxlZ2F0ZSA9IGxheW91dERlbGVnYXRlOworICAgIH0KKworICAgIC8vIFB1
YmxpYworCisgICAgZ2V0IGxheW91dFRyYWl0cygpCisgICAgeworICAgICAgICByZXR1cm4gKHRo
aXMubGF5b3V0RGVsZWdhdGUgJiYgdGhpcy5sYXlvdXREZWxlZ2F0ZS5sYXlvdXRUcmFpdHMpIHx8
IExheW91dFRyYWl0cy5Vbmtub3duOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyODE2MTY3ZTYxMDZj
NzlkZDhlMWExZDdhNWMyOTY1MjZiYzU0NzMuLjUxMmVjOWYzNTY3Njc1MDAxZmIxNzI1YzY0MWZk
MTk0YmJhOWYwZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0xMC0wMyAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJv
bHNdIExheW91dEl0ZW0gYW5kIEJ1dHRvbiBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4NjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI4NTkwMTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RpbmcgYWxsIHB1YmxpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIHRoZSBMYXlv
dXRJdGVtIGFuZCBCdXR0b24gY2xhc3Nlcy4KKworICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9idXR0b24vYnV0dG9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1p
dGVtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLmh0bWw6IEFkZGVkLgorCiAyMDE2LTEwLTAy
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIEtleWJvYXJkRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgpIG9wZXJhdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1
dHRvbi9idXR0b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4YzcwN2MwOGMyNTJhNmZjZDFi
MWM4NTZiMzg3NzkxN2IyNmM2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMyBAQAorVGVzdGluZyB0aGUgQnV0dG9uIGNsYXNzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworRGVmYXVsdCB2YWx1ZXMKK1BBU1MgYnV0dG9uLmVuYWJsZWQgaXMgdHJ1
ZQorUEFTUyBidXR0b24udWlEZWxlZ2F0ZSBpcyB1bmRlZmluZWQuCitQQVNTIGJ1dHRvbi5lbGVt
ZW50LmxvY2FsTmFtZSBpcyAiYnV0dG9uIgorCitSZXNwb25kcyB0byBjbGljayBldmVudHMKK1BB
U1MgY2xpY2tlZEJ1dHRvbiA9PT0gYnV0dG9uIGlzIHRydWUKKworRG9lc24ndCByZXNwb25kIHRv
IGNsaWNrIGV2ZW50cyB3aGVuIGRpc2FibGVkCisKK0hhcyBhbGwgdGhlIGFwcHJvcHJpYXRlIHN0
eWxlcworUEFTUyBzdHlsZS5wb3NpdGlvbiBpcyAiYWJzb2x1dGUiCitQQVNTIHN0eWxlLmJvcmRl
cldpZHRoIGlzICIwcHgiCitQQVNTIHN0eWxlLndlYmtpdEFwcGVhcmFuY2UgaXMgIm5vbmUiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0
b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24v
YnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGYzYzA3ZmE2NmFlMDUzOWU3NDQ4Zjk1ODA0YjhhMDNj
NTc1NWU4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9idXR0b24vYnV0dG9uLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9idXR0b24uY3NzIiB0eXBlPSJ0ZXh0L2NzcyIg
bWVkaWE9InNjcmVlbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zY2hlZHVsZXIuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5
b3V0LW5vZGUuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvbGF5b3V0LWl0ZW0uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYnV0dG9uLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisK
K2Rlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5CdXR0b248L2NvZGU+IGNsYXNzLiIpOwor
CitkZWJ1ZygiRGVmYXVsdCB2YWx1ZXMiKTsKK2NvbnN0IGJ1dHRvbiA9IG5ldyBCdXR0b247Citz
aG91bGRCZVRydWUoImJ1dHRvbi5lbmFibGVkIik7CitzaG91bGRCZVVuZGVmaW5lZCgiYnV0dG9u
LnVpRGVsZWdhdGUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYnV0dG9uLmVsZW1lbnQubG9j
YWxOYW1lIiwgImJ1dHRvbiIpOworCitsZXQgY2xpY2tlZEJ1dHRvbjsKKworZGVidWcoIiIpOwor
ZGVidWcoIlJlc3BvbmRzIHRvIGNsaWNrIGV2ZW50cyIpOworYnV0dG9uLnVpRGVsZWdhdGUgPSB7
CisKKyAgICBidXR0b25XYXNDbGlja2VkKGFCdXR0b24pCisgICAgeworICAgICAgICBjbGlja2Vk
QnV0dG9uID0gYUJ1dHRvbjsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjbGlja2VkQnV0dG9uID09
PSBidXR0b24iKTsKKyAgICB9CisKK30KK2J1dHRvbi5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3
IE1vdXNlRXZlbnQoImNsaWNrIikpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiRG9lc24ndCByZXNw
b25kIHRvIGNsaWNrIGV2ZW50cyB3aGVuIGRpc2FibGVkIik7CitidXR0b24uZW5hYmxlZCA9IGZh
bHNlOworYnV0dG9uLmVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2si
KSk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJIYXMgYWxsIHRoZSBhcHByb3ByaWF0ZSBzdHlsZXMi
KQorZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChidXR0b24uZWxlbWVudCk7Citjb25zdCBzdHls
ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygic3R5bGUucG9zaXRpb24iLCAiYWJzb2x1dGUiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygic3R5bGUuYm9yZGVyV2lkdGgiLCAiMHB4Iik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInN0eWxlLndlYmtpdEFwcGVhcmFuY2UiLCAibm9uZSIpOworCis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9sYXlvdXQtaXRlbS9sYXlvdXQtaXRlbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYyNmQzM2JkMzA1NGJiZTBlMmE0M2FiMjEyNjQxOTA1OGJiMTcwZjYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1Rlc3RpbmcgdGhlIExheW91dEl0ZW0gY2xhc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitDcmVhdGluZyBhIExheW91dEl0ZW0gYW5kIHNldHRpbmcgYSBsYXlvdXQgZGVsZWdh
dGUgYWZ0ZXIgY29uc3RydWN0aW9uLgorUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRy
YWl0cyA9PT0gTGF5b3V0VHJhaXRzLlVua25vd24gaXMgdHJ1ZQorUEFTUyAhIShpdGVtV2l0aE5v
UGFyYW1ldGVyLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5NYWMpIGlzIHRydWUKK1BBU1Mg
ISEoaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMuRnVsbHNj
cmVlbikgaXMgdHJ1ZQorCitDcmVhdGluZyBhIExheW91dEl0ZW0gd2l0aCBhIGxheW91dCBkZWxl
Z2F0ZSBzZXQgYXQgY29uc3RydWN0aW9uLgorUEFTUyAhIShpdGVtV2l0aExheW91dERlbGVnYXRl
LmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5NYWMpIGlzIHRydWUKK1BBU1MgISEoaXRlbVdp
dGhMYXlvdXREZWxlZ2F0ZS5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9s
YXlvdXQtaXRlbS9sYXlvdXQtaXRlbS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdj
OGZhZDFjODA5ZTE1NzM4ZGU0NTI4ZjQ1ODgxZDRiNzU5YTE4OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlvdXQtaXRlbS9sYXlv
dXQtaXRlbS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3Nj
aGVkdWxlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9jb250cm9scy9sYXlvdXQtbm9kZS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9jb250cm9scy9sYXlvdXQtaXRlbS5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworZGVz
Y3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPkxheW91dEl0ZW08L2NvZGU+IGNsYXNzLiIpOwor
Citjb25zdCBsYXlvdXREZWxlZ2F0ZSA9IG5ldyBjbGFzcworeworICAgIAorICAgIGdldCBsYXlv
dXRUcmFpdHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIExheW91dFRyYWl0cy5NYWMgfCBMYXlv
dXRUcmFpdHMuRnVsbHNjcmVlbjsKKyAgICB9CisgICAgCit9OworCitkZWJ1ZygiQ3JlYXRpbmcg
YSBMYXlvdXRJdGVtIGFuZCBzZXR0aW5nIGEgbGF5b3V0IGRlbGVnYXRlIGFmdGVyIGNvbnN0cnVj
dGlvbi4iKTsKK2NvbnN0IGl0ZW1XaXRoTm9QYXJhbWV0ZXIgPSBuZXcgTGF5b3V0SXRlbTsKK3No
b3VsZEJlVHJ1ZSgiaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgPT09IExheW91dFRy
YWl0cy5Vbmtub3duIik7CisKK2l0ZW1XaXRoTm9QYXJhbWV0ZXIubGF5b3V0RGVsZWdhdGUgPSBs
YXlvdXREZWxlZ2F0ZTsKK3Nob3VsZEJlVHJ1ZSgiISEoaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlv
dXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMuTWFjKSIpOworc2hvdWxkQmVUcnVlKCIhIShpdGVtV2l0
aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuKSIpOwor
CitkZWJ1ZygiIik7CitkZWJ1ZygiQ3JlYXRpbmcgYSBMYXlvdXRJdGVtIHdpdGggYSBsYXlvdXQg
ZGVsZWdhdGUgc2V0IGF0IGNvbnN0cnVjdGlvbi4iKTsKK2NvbnN0IGl0ZW1XaXRoTGF5b3V0RGVs
ZWdhdGUgPSBuZXcgTGF5b3V0SXRlbSh7IGxheW91dERlbGVnYXRlIH0pOworc2hvdWxkQmVUcnVl
KCIhIShpdGVtV2l0aExheW91dERlbGVnYXRlLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5N
YWMpIik7CitzaG91bGRCZVRydWUoIiEhKGl0ZW1XaXRoTGF5b3V0RGVsZWdhdGUubGF5b3V0VHJh
aXRzIHwgTGF5b3V0VHJhaXRzLkZ1bGxzY3JlZW4pIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290492</attachid>
            <date>2016-10-03 11:00:58 -0700</date>
            <delta_ts>2016-10-03 13:33:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-162868-20161003195749.patch</filename>
            <type>text/plain</type>
            <size>15533</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M0MmY3MmEzMjVhNzBl
OGY3OWRhMGM2YmE2MWEwNjA3Nzc5NjAwOC4uNmI0Y2Y0ZmZkZGI0ODllYWFiMjdiNWU2ZTBmYzc0
ZGYwYjAzOTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTEwLTAzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBD
b250cm9sc10gTGF5b3V0SXRlbSBhbmQgQnV0dG9uIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg2OAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjg1OTAxNjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisg
ICAgICAgIFdlIGludHJvZHVjZSB0aGUgbmV3IEJ1dHRvbiBjbGFzcyBhbmQgaXRzIHBhcmVudCBj
bGFzcyBMYXlvdXRJdGVtLiBXZSB3aWxsIHN1YmNsYXNzIEJ1dHRvbgorICAgICAgICBhIGxvdCBp
biBjb21pbmcgcGF0Y2hlcywgYXMgaXQgcHJvdmlkZXMgYSB3YXkgdG8gY3JlYXRlIGEgYnV0dG9u
IGFuZCBwcm92aWRlIGEgZGVsZWdhdGUgdG8KKyAgICAgICAgcmVzcG9uZCB0byBVSSBldmVudHMg
dmlhIHRoZSBgdWlEZWxlZ2F0ZWAgcHJvcGVydHkuIEEgQnV0dG9uIGV4dGVuZHMgYSBMYXlvdXRJ
dGVtLCBhbm90aGVyCisgICAgICAgIGNsYXNzIHRoYXQgd2UnbGwgc3ViY2xhc3MgaGVhdmlseSBp
biBjb21pbmcgcGF0Y2hlcywgd2hpY2ggaXMgc2ltcGx5IGEgTGF5b3V0Tm9kZSB3aXRoIGEKKyAg
ICAgICAgYGxheW91dERlbGVnYXRlYCB3aGljaCBhbGxvd3MgdG8gc2V0IHRoZSBub2RlJ3MgYGxh
eW91dFRyYWl0c2AsIGEgYml0LW1hc2sgYWxsb3dpbmcgdG8KKyAgICAgICAgc3BlY2lmeSBsYXlv
dXQgYXR0cmlidXRlcyBzdWNoIGFzIHRoZSBwbGF0Zm9ybSBhbmQgcGxheWJhY2sgc3R5bGVzLiAK
KworICAgICAgICBUZXN0czogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0
b24uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2xheW91
dC1pdGVtL2xheW91dC1pdGVtLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL2J1dHRvbi5jc3M6IEFkZGVkLgorICAgICAgICAoYnV0dG9uKToK
KyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9idXR0b24u
anM6IEFkZGVkLgorICAgICAgICAoQnV0dG9uKToKKyAgICAgICAgKEJ1dHRvbi5wcm90b3R5cGUu
Z2V0IGVuYWJsZWQpOgorICAgICAgICAoQnV0dG9uLnByb3RvdHlwZS5zZXQgZW5hYmxlZCk6Cisg
ICAgICAgIChCdXR0b24ucHJvdG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKEJ1dHRvbi5w
cm90b3R5cGUuX2hhbmRsZVVJRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpzOiBBZGRlZC4KKyAgICAgICAgKExheW91
dEl0ZW0ucHJvdG90eXBlLmdldCBsYXlvdXRUcmFpdHMpOgorICAgICAgICAoTGF5b3V0SXRlbSk6
CisKIDIwMTYtMTAtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgS2V5Ym9hcmRFdmVudC5nZXRNb2RpZmllclN0YXRlKCkgb3BlcmF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250
cm9scy9jb250cm9scy9idXR0b24uY3NzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvYnV0dG9uLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjBmMjJjNDZh
YTE5MWNmODJmZjJiMmY0MTMwMGEyMTIyZjZjNDliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYnV0dG9uLmNz
cwpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworYnV0dG9uIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgYm9yZGVyOiAw
OworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2J1dHRvbi5qcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2J1
dHRvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjFmZDVkODRlNjg1MjhkZmQyYzE0NjAyODBiMmQ1NmY2NTk5
YjA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvYnV0dG9uLmpzCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBCdXR0b24gZXh0ZW5k
cyBMYXlvdXRJdGVtCit7CisKKyAgICBjb25zdHJ1Y3RvcihsYXlvdXREZWxlZ2F0ZSkKKyAgICB7
CisgICAgICAgIHN1cGVyKHsKKyAgICAgICAgICAgIGVsZW1lbnQ6ICI8YnV0dG9uPiIsCisgICAg
ICAgICAgICBsYXlvdXREZWxlZ2F0ZQorICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9lbmFi
bGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBlbmFibGVkKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkOworICAgIH0KKworICAgIHNldCBl
bmFibGVkKGZsYWcpCisgICAgeworICAgICAgICB0aGlzLl9lbmFibGVkID0gZmxhZzsKKyAgICAg
ICAgaWYgKGZsYWcgJiYgdGhpcy5sYXlvdXREZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5sYXlvdXRE
ZWxlZ2F0ZS5sYXlvdXQgPT09ICJmdW5jdGlvbiIpCisgICAgICAgICAgICB0aGlzLmxheW91dERl
bGVnYXRlLmxheW91dCgpOworICAgIH0KKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaGFuZGxl
RXZlbnQoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCA9PT0g
dGhpcy5lbGVtZW50KQorICAgICAgICAgICAgdGhpcy5faGFuZGxlVUlFdmVudChldmVudCk7Cisg
ICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZVVJRXZlbnQoZXZlbnQpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fZW5hYmxlZCAmJiBldmVudC50eXBlID09PSAiY2xpY2siICYm
IHRoaXMudWlEZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy51aURlbGVnYXRlLmJ1dHRvbldhc0NsaWNr
ZWQgPT09ICJmdW5jdGlvbiIpCisgICAgICAgICAgICB0aGlzLnVpRGVsZWdhdGUuYnV0dG9uV2Fz
Q2xpY2tlZCh0aGlzKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0
LWl0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0MGIwOWQwOTM0MGE5ZDkyY2VlYTlhZTQ4ZGVmMTdiMWE5
ZTcxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpzCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjb25zdCBMYXlvdXRU
cmFpdHMgPSB7CisgICAgVW5rbm93biAgICAgOiAwLAorICAgIE1hYyAgICAgICAgIDogMSA8PCAw
LAorICAgIGlPUyAgICAgICAgIDogMSA8PCAxLAorICAgIEZ1bGxzY3JlZW4gIDogMSA8PCAyCit9
OworCitjbGFzcyBMYXlvdXRJdGVtIGV4dGVuZHMgTGF5b3V0Tm9kZQoreworCisgICAgY29uc3Ry
dWN0b3IoeyBlbGVtZW50ID0gbnVsbCwgbGF5b3V0RGVsZWdhdGUgPSBudWxsIH0gPSB7fSkKKyAg
ICB7CisgICAgICAgIHN1cGVyKGVsZW1lbnQpOworCisgICAgICAgIHRoaXMubGF5b3V0RGVsZWdh
dGUgPSBsYXlvdXREZWxlZ2F0ZTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBs
YXlvdXRUcmFpdHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICh0aGlzLmxheW91dERlbGVnYXRl
ICYmIHRoaXMubGF5b3V0RGVsZWdhdGUubGF5b3V0VHJhaXRzKSB8fCBMYXlvdXRUcmFpdHMuVW5r
bm93bjsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MjgxNjE2N2U2MTA2Yzc5ZGQ4ZTFhMWQ3YTVjMjk2
NTI2YmM1NDczLi4yMjA1MzFjNDQ2MDRjZjUyMTdmMWQ0ZWVkNzJiMWVkZDg2YzhmNzU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMTAtMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBMYXlvdXRJdGVtIGFu
ZCBCdXR0b24gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYyODY4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODU5MDE2Nj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgVGVzdGluZyBhbGwgcHVi
bGljIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgdGhlIExheW91dEl0ZW0gYW5kIEJ1dHRvbiBj
bGFzc2VzLgorCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9i
dXR0b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvYnV0dG9uL2J1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0LWl0ZW0v
bGF5b3V0LWl0ZW0uaHRtbDogQWRkZWQuCisKIDIwMTYtMTAtMDIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgS2V5Ym9hcmRFdmVudC5n
ZXRNb2RpZmllclN0YXRlKCkgb3BlcmF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOThjNzA3YzA4YzI1MmE2ZmNkMWIxYzg1NmIzODc3OTE3YjI2YzY4
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9idXR0b24vYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUZXN0aW5n
IHRoZSBCdXR0b24gY2xhc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitEZWZh
dWx0IHZhbHVlcworUEFTUyBidXR0b24uZW5hYmxlZCBpcyB0cnVlCitQQVNTIGJ1dHRvbi51aURl
bGVnYXRlIGlzIHVuZGVmaW5lZC4KK1BBU1MgYnV0dG9uLmVsZW1lbnQubG9jYWxOYW1lIGlzICJi
dXR0b24iCisKK1Jlc3BvbmRzIHRvIGNsaWNrIGV2ZW50cworUEFTUyBjbGlja2VkQnV0dG9uID09
PSBidXR0b24gaXMgdHJ1ZQorCitEb2Vzbid0IHJlc3BvbmQgdG8gY2xpY2sgZXZlbnRzIHdoZW4g
ZGlzYWJsZWQKKworSGFzIGFsbCB0aGUgYXBwcm9wcmlhdGUgc3R5bGVzCitQQVNTIHN0eWxlLnBv
c2l0aW9uIGlzICJhYnNvbHV0ZSIKK1BBU1Mgc3R5bGUuYm9yZGVyV2lkdGggaXMgIjBweCIKK1BB
U1Mgc3R5bGUud2Via2l0QXBwZWFyYW5jZSBpcyAibm9uZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OTI1M2VjZDBkNjU2MTc5NjFhOTQ2Yzk2YjdmZGFhNjFiM2ZlMTE0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9i
dXR0b24uaHRtbApAQCAtMCwwICsxLDQ4IEBACis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL2J1dHRvbi5jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NjaGVkdWxlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9sYXlvdXQtbm9kZS5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9sYXlvdXQt
aXRlbS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy9idXR0b24uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworZGVzY3JpcHRpb24oIlRlc3Rp
bmcgdGhlIDxjb2RlPkJ1dHRvbjwvY29kZT4gY2xhc3MuIik7CisKK2RlYnVnKCJEZWZhdWx0IHZh
bHVlcyIpOworY29uc3QgYnV0dG9uID0gbmV3IEJ1dHRvbjsKK3Nob3VsZEJlVHJ1ZSgiYnV0dG9u
LmVuYWJsZWQiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJidXR0b24udWlEZWxlZ2F0ZSIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJidXR0b24uZWxlbWVudC5sb2NhbE5hbWUiLCAiYnV0dG9uIik7
CisKK2xldCBjbGlja2VkQnV0dG9uOworCitkZWJ1ZygiIik7CitkZWJ1ZygiUmVzcG9uZHMgdG8g
Y2xpY2sgZXZlbnRzIik7CitidXR0b24udWlEZWxlZ2F0ZSA9IHsKKworICAgIGJ1dHRvbldhc0Ns
aWNrZWQ6IGZ1bmN0aW9uKGFCdXR0b24pCisgICAgeworICAgICAgICBjbGlja2VkQnV0dG9uID0g
YUJ1dHRvbjsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjbGlja2VkQnV0dG9uID09PSBidXR0b24i
KTsKKyAgICB9CisKK30KK2J1dHRvbi5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZl
bnQoImNsaWNrIikpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiRG9lc24ndCByZXNwb25kIHRvIGNs
aWNrIGV2ZW50cyB3aGVuIGRpc2FibGVkIik7CitidXR0b24uZW5hYmxlZCA9IGZhbHNlOworYnV0
dG9uLmVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2siKSk7CisKK2Rl
YnVnKCIiKTsKK2RlYnVnKCJIYXMgYWxsIHRoZSBhcHByb3ByaWF0ZSBzdHlsZXMiKQorZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChidXR0b24uZWxlbWVudCk7Citjb25zdCBzdHlsZSA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygic3R5bGUucG9zaXRpb24iLCAiYWJzb2x1dGUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
c3R5bGUuYm9yZGVyV2lkdGgiLCAiMHB4Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxl
LndlYmtpdEFwcGVhcmFuY2UiLCAibm9uZSIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlvdXQt
aXRlbS9sYXlvdXQtaXRlbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYyNmQzM2JkMzA1NGJiZTBlMmE0M2FiMjEyNjQxOTA1OGJiMTcwZjYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0
LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Rpbmcg
dGhlIExheW91dEl0ZW0gY2xhc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
cmVhdGluZyBhIExheW91dEl0ZW0gYW5kIHNldHRpbmcgYSBsYXlvdXQgZGVsZWdhdGUgYWZ0ZXIg
Y29uc3RydWN0aW9uLgorUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyA9PT0g
TGF5b3V0VHJhaXRzLlVua25vd24gaXMgdHJ1ZQorUEFTUyAhIShpdGVtV2l0aE5vUGFyYW1ldGVy
LmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5NYWMpIGlzIHRydWUKK1BBU1MgISEoaXRlbVdp
dGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikgaXMg
dHJ1ZQorCitDcmVhdGluZyBhIExheW91dEl0ZW0gd2l0aCBhIGxheW91dCBkZWxlZ2F0ZSBzZXQg
YXQgY29uc3RydWN0aW9uLgorUEFTUyAhIShpdGVtV2l0aExheW91dERlbGVnYXRlLmxheW91dFRy
YWl0cyB8IExheW91dFRyYWl0cy5NYWMpIGlzIHRydWUKK1BBU1MgISEoaXRlbVdpdGhMYXlvdXRE
ZWxlZ2F0ZS5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlvdXQtaXRl
bS9sYXlvdXQtaXRlbS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU2NDIxZGJhNzZi
ZjNjNGIzNjEwZTVhMTg1N2VkNTc1NWExODQ1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlvdXQtaXRlbS9sYXlvdXQtaXRlbS5o
dG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NjaGVkdWxlci5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy9sYXlvdXQtbm9kZS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9sYXlvdXQtaXRlbS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworZGVzY3JpcHRpb24o
IlRlc3RpbmcgdGhlIDxjb2RlPkxheW91dEl0ZW08L2NvZGU+IGNsYXNzLiIpOworCitjb25zdCBs
YXlvdXREZWxlZ2F0ZSA9IG5ldyBjbGFzcworeworICAgIGdldCBsYXlvdXRUcmFpdHMoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIExheW91dFRyYWl0cy5NYWMgfCBMYXlvdXRUcmFpdHMuRnVsbHNj
cmVlbjsKKyAgICB9Cit9OworCitkZWJ1ZygiQ3JlYXRpbmcgYSBMYXlvdXRJdGVtIGFuZCBzZXR0
aW5nIGEgbGF5b3V0IGRlbGVnYXRlIGFmdGVyIGNvbnN0cnVjdGlvbi4iKTsKK2NvbnN0IGl0ZW1X
aXRoTm9QYXJhbWV0ZXIgPSBuZXcgTGF5b3V0SXRlbTsKK3Nob3VsZEJlVHJ1ZSgiaXRlbVdpdGhO
b1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgPT09IExheW91dFRyYWl0cy5Vbmtub3duIik7CisKK2l0
ZW1XaXRoTm9QYXJhbWV0ZXIubGF5b3V0RGVsZWdhdGUgPSBsYXlvdXREZWxlZ2F0ZTsKK3Nob3Vs
ZEJlVHJ1ZSgiISEoaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFp
dHMuTWFjKSIpOworc2hvdWxkQmVUcnVlKCIhIShpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRy
YWl0cyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuKSIpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
Q3JlYXRpbmcgYSBMYXlvdXRJdGVtIHdpdGggYSBsYXlvdXQgZGVsZWdhdGUgc2V0IGF0IGNvbnN0
cnVjdGlvbi4iKTsKK2NvbnN0IGl0ZW1XaXRoTGF5b3V0RGVsZWdhdGUgPSBuZXcgTGF5b3V0SXRl
bSh7IGxheW91dERlbGVnYXRlIH0pOworc2hvdWxkQmVUcnVlKCIhIShpdGVtV2l0aExheW91dERl
bGVnYXRlLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5NYWMpIik7CitzaG91bGRCZVRydWUo
IiEhKGl0ZW1XaXRoTGF5b3V0RGVsZWdhdGUubGF5b3V0VHJhaXRzIHwgTGF5b3V0VHJhaXRzLkZ1
bGxzY3JlZW4pIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>