<?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>157374</bug_id>
          
          <creation_ts>2016-05-05 09:36:44 -0700</creation_ts>
          <short_desc>slotchange event should be fired at the end of microtask</short_desc>
          <delta_ts>2016-06-09 02:08:26 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190367</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-05 09:36:44 -0700</bug_when>
    <thetext>slotchange event as spec&apos;ed is not completely async:
https://github.com/whatwg/dom/pull/229

Match the spec&apos;ed behavior of firing at the end of a micro task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190874</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-06 19:34:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/26154024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200720</commentid>
    <comment_count>2</comment_count>
      <attachid>280880</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-08 21:03:56 -0700</bug_when>
    <thetext>Created attachment 280880
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200755</commentid>
    <comment_count>3</comment_count>
      <attachid>280891</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-09 00:34:04 -0700</bug_when>
    <thetext>Created attachment 280891
Updated per spec change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200768</commentid>
    <comment_count>4</comment_count>
      <attachid>280891</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-09 01:31:44 -0700</bug_when>
    <thetext>Comment on attachment 280891
Updated per spec change

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

&gt; Source/WebCore/dom/MutationObserver.cpp:189
&gt; +void MutationObserver::enqueueSlotChangeEvent(HTMLSlotElement&amp; slot)
&gt; +{
&gt; +    ASSERT(isMainThread());
&gt; +    ASSERT(!signalSlotList().contains(&amp;slot));
&gt; +    signalSlotList().append(&amp;slot);

I think the code would read better if signalSlotList was called something more descriptive like slotsWithEnqueuedChangeEvents()

&gt; Source/WebCore/html/HTMLSlotElement.h:56
&gt; +    bool m_inSignalSlotList { false };

Similarly m_hasEnqueuedChangeEvent maybe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200769</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-09 01:35:19 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 280891 [details]
&gt; Updated per spec change
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280891&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/MutationObserver.cpp:189
&gt; &gt; +void MutationObserver::enqueueSlotChangeEvent(HTMLSlotElement&amp; slot)
&gt; &gt; +{
&gt; &gt; +    ASSERT(isMainThread());
&gt; &gt; +    ASSERT(!signalSlotList().contains(&amp;slot));
&gt; &gt; +    signalSlotList().append(&amp;slot);
&gt; 
&gt; I think the code would read better if signalSlotList was called something
&gt; more descriptive like slotsWithEnqueuedChangeEvents()
&gt; 
&gt; &gt; Source/WebCore/html/HTMLSlotElement.h:56
&gt; &gt; +    bool m_inSignalSlotList { false };
&gt; 
&gt; Similarly m_hasEnqueuedChangeEvent maybe

signal slot list is the name spec uses: https://dom.spec.whatwg.org/#signal-slot-list
Will add the URL as comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200772</commentid>
    <comment_count>6</comment_count>
      <attachid>280898</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-09 01:36:40 -0700</bug_when>
    <thetext>Created attachment 280898
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200781</commentid>
    <comment_count>7</comment_count>
      <attachid>280898</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 02:08:21 -0700</bug_when>
    <thetext>Comment on attachment 280898
Patch for landing

Clearing flags on attachment: 280898

Committed r201858: &lt;http://trac.webkit.org/changeset/201858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200782</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 02:08:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280880</attachid>
            <date>2016-06-08 21:03:56 -0700</date>
            <delta_ts>2016-06-09 00:33:59 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-157374-20160608210536.patch</filename>
            <type>text/plain</type>
            <size>17485</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmMTRiODAwMjNkZjQ5
YTBlY2M3ZmEzNmZiZmMwOTA5YmE3YWQ3MS4uNzVjOTg1OWJjMWEyMTg4NGU5Y2FmYWI4NTZiMmQ0
ZjVkZTlmOGRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA2LTA4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHNsb3RjaGFuZ2UgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGF0IHRoZSBlbmQgb2YgbWljcm90YXNrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTczNzQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI2MTU0MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERpc3BhdGNoIHNsb3RjaGFuZ2UgZXZlbnQgYXQgdGhlIGVuZCBvZiBldmVyeSBt
aWNyb3Rhc2sgYWZ0ZXIgZGVsaXZlcmluZyByZWNvcmRzIHRvIG11dGF0aW9uIG9ic2VydmVycwor
ICAgICAgICBhcyBzcGVjaWZpZWQgaW46IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm90
aWZ5LW11dGF0aW9uLW9ic2VydmVycworCisgICAgICAgIEV4ZWN1dGUgc3RlcHMgNC01IGJlZm9y
ZSBydW5uaW5nIHN0ZXAgMyBpbiB0aGUgc3BlYyBwZXIgaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWJjb21wb25lbnRzL2lzc3Vlcy81MTgKKyAgICAgICAgT25jZSB0aGUgaXNzdWUgaXMgcmVzb2x2
ZWQgKGFuZCB0aGUgc3BlYyBpcyBmaXhlZCksIHRoZSBvcmRlcmluZyBzaG91bGQgbWF0Y2guIFRo
aXMgZGlzY3JlcGFuY3kgaXMKKyAgICAgICAgdGVzdGVkIGluIHRoZSB0ZXN0IGNhc2UgYWRkZWQg
dG8gc2xvdGNoYW5nZS1ldmVudC5odG1sLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhZG93LWRv
bS9zbG90Y2hhbmdlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZVNsb3RjaGFuZ2VFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2lnbmFsU2xvdExpc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2s6OnJ1bik6IG11dGF0aW9u
T2JzZXJ2ZXJDb21wb3VuZE1pY3JvdGFza1F1ZXVlZEZsYWcgaXMgbm93IHVuc2V0IGluCisgICAg
ICAgIG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzIHRvIGJldHRlciBtYXRjaCB0aGUgY29uY2VwdCB0
byAibm90aWZ5IG11dGF0aW9uIG9ic2VydmVycyIuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlv
bk9ic2VydmVyOjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNdXRhdGlvbk9ic2VydmVyOjpub3RpZnlNdXRhdGlvbk9ic2VydmVycyk6IFJlbmFtZWQg
ZnJvbSBkZWxpdmVyQWxsTXV0YXRpb25zLiBBZGRlZCB0aGUgY29kZQorICAgICAgICB0byBkaXNw
YXRjaCBzbG90Y2hhbmdlIGV2ZW50cyBhcyBzcGVjJ2VkLCBhbmQgYWxzbyBhZGRlZCBjb21tZW50
cyBmb3IgZWFjaCBzdGVwLgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAg
ICAgICogaHRtbC9IVE1MU2xvdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNs
b3RFbGVtZW50OjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KTogVXNlIE11dGF0aW9uT2JzZXJ2ZXI6
OmVucXVldWVTbG90Q2hhbmdlRXZlbnQuIERvbid0CisgICAgICAgIGNyZWF0ZSBhbiBldmVudCBo
ZXJlIHNpbmNlIHRoYXQgaXMgb25seSBuZWVkZWQgd2hlbiBkaXNwYXRjaGluZyB0aGUgZXZlbnQs
IGFuZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIKKyAgICAgICAgd2UndmUgYWxyZWFkeSBzY2hl
ZHVsZWQgYW4gZXZlbnQgb3Igbm90LiBVc2UgYSBib29sZWFuIGZsYWcgaW5zdGVhZCBmb3IgdGhl
IGxhdHRlci4gCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2xvdEVsZW1lbnQ6OmRpc3BhdGNoU2xv
dENoYW5nZUV2ZW50KTogQWRkZWQuIENyZWF0ZXMgYW5kIGRpc3BhdGNoZXMgYW4gZXZlbnQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2xvdEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvSFRNTFNsb3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2xvdEVsZW1lbnQ6OmRpZFJlbW92ZUZyb21TaWduYWxTbG90TGlzdCk6IEFkZGVkLgorCiAy
MDE2LTA2LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NGVlNTRhNzA5NDBkMTZjMzQyMmY2OGZiYjM3ZGFkNDJjOTlmMjEyZi4uZWQ2MjdlMTlmNzM5ZGQ2
YWZlZDkyZTE1NDBmZGNjZmY1NjQzZGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00
MTczLDExICs0MTczLDYgQEAgdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZU92ZXJmbG93RXZlbnQoUmVm
PEV2ZW50PiYmIGV2ZW50KQogICAgIG1fZXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoV1RGTW92ZShl
dmVudCkpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2xvdGNoYW5nZUV2ZW50KFJlZjxF
dmVudD4mJiBldmVudCkKLXsKLSAgICBtX2V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KFdURk1vdmUo
ZXZlbnQpKTsKLX0KLQogUmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3Qg
U3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBQbGVhc2UgZG8gKm5v
dCogYWRkIG5ldyBldmVudCBjbGFzc2VzIHRvIHRoaXMgZnVuY3Rpb24gdW5sZXNzIHRoZXkgYXJl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGVhNDE2OWY3ODkxMWFjMmFjNTJmOTEzOGUyYzZmOGNh
YjQ3Y2JjMzIuLjc5OTc4NjU2NjE5ZDg3MDUyZTNiMDRiYWVmZTBlZTUzYWFjZWZkOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMDg1LDcgKzEwODUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBl
bnF1ZXVlV2luZG93RXZlbnQoUmVmPEV2ZW50PiYmKTsKICAgICB2b2lkIGVucXVldWVEb2N1bWVu
dEV2ZW50KFJlZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8
RXZlbnQ+JiYpOwotICAgIHZvaWQgZW5xdWV1ZVNsb3RjaGFuZ2VFdmVudChSZWY8RXZlbnQ+JiYp
OwogICAgIHZvaWQgZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNl
KTsKICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkws
IGNvbnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2ZW50KFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc3RhdGVPYmplY3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDQyZDc5OGM2YzA4NGQxYzdkNjZmMzM0MGU1
YTQ1ZGZmODBjZTM4NTUuLmNmOGUwNDE5NDlhNzllYmM5OWU0NjM3NWZmMGE1NjMyMzZmNzE0MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTM1LDYgKzM1LDcg
QEAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRNTFNsb3RFbGVtZW50LmgiCiAjaW5j
bHVkZSAiTWljcm90YXNrcy5oIgogI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCkBAIC0xNDYsNiArMTQ3LDEyIEBA
IHN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBzdXNwZW5kZWRNdXRhdGlvbk9ic2VydmVycygp
CiAgICAgcmV0dXJuIHN1c3BlbmRlZE9ic2VydmVyczsKIH0KIAorc3RhdGljIFZlY3RvcjxSZWZQ
dHI8SFRNTFNsb3RFbGVtZW50Pj4mIHNpZ25hbFNsb3RMaXN0KCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VmVjdG9yPFJlZlB0cjxIVE1MU2xvdEVsZW1lbnQ+Pj4gbGlzdDsKKyAgICBy
ZXR1cm4gbGlzdDsKK30KKwogc3RhdGljIGJvb2wgbXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWlj
cm90YXNrUXVldWVkRmxhZzsKIAogY2xhc3MgTXV0YXRpb25PYnNlcnZlck1pY3JvdGFzayBmaW5h
bCA6IHB1YmxpYyBNaWNyb3Rhc2sgewpAQCAtMTUzLDggKzE2MCw3IEBAIGNsYXNzIE11dGF0aW9u
T2JzZXJ2ZXJNaWNyb3Rhc2sgZmluYWwgOiBwdWJsaWMgTWljcm90YXNrIHsKIHByaXZhdGU6CiAg
ICAgUmVzdWx0IHJ1bigpIGZpbmFsCiAgICAgewotICAgICAgICBtdXRhdGlvbk9ic2VydmVyQ29t
cG91bmRNaWNyb3Rhc2tRdWV1ZWRGbGFnID0gZmFsc2U7Ci0gICAgICAgIE11dGF0aW9uT2JzZXJ2
ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAgTXV0YXRpb25PYnNlcnZlcjo6bm90
aWZ5TXV0YXRpb25PYnNlcnZlcnMoKTsKICAgICAgICAgcmV0dXJuIFJlc3VsdDo6RG9uZTsKICAg
ICB9CiB9OwpAQCAtMTc2LDYgKzE4MiwxNSBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVl
dWVNdXRhdGlvblJlY29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYgbXV0YXRpb24pCiAgICAgcXVl
dWVNdXRhdGlvbk9ic2VydmVyQ29tcG91bmRNaWNyb3Rhc2soKTsKIH0KIAordm9pZCBNdXRhdGlv
bk9ic2VydmVyOjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KEhUTUxTbG90RWxlbWVudCYgc2xvdCkK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghc2lnbmFsU2xvdExp
c3QoKS5jb250YWlucygmc2xvdCkpOworICAgIHNpZ25hbFNsb3RMaXN0KCkuYXBwZW5kKCZzbG90
KTsKKworICAgIHF1ZXVlTXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90YXNrKCk7Cit9CisK
IHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6c2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCkKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjIwLDggKzIzNSwxMiBAQCB2b2lkIE11
dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIoKQogICAgIG1fY2FsbGJhY2stPmNhbGwocmVjb3Jkcywg
dGhpcyk7CiB9CiAKLXZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygp
Cit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzKCkKIHsKKyAg
ICAvLyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI25vdGlmeS1tdXRhdGlvbi1vYnNlcnZl
cnMKKyAgICAvLyAxLiBVbnNldCBtdXRhdGlvbiBvYnNlcnZlciBjb21wb3VuZCBtaWNyb3Rhc2sg
cXVldWVkIGZsYWcuCisgICAgbXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90YXNrUXVldWVk
RmxhZyA9IGZhbHNlOworCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICBpZiAoZGVsaXZlcnlJblByb2dy
ZXNzKQpAQCAtMjQwLDIwICsyNTksMzUgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVy
QWxsTXV0YXRpb25zKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIHdoaWxlICghYWN0aXZlTXV0
YXRpb25PYnNlcnZlcnMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxNdXRh
dGlvbk9ic2VydmVyPj4gb2JzZXJ2ZXJzOwotICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZlTXV0
YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKKyAgICB3aGlsZSAoIWFjdGl2ZU11dGF0aW9u
T2JzZXJ2ZXJzKCkuaXNFbXB0eSgpIHx8ICFzaWduYWxTbG90TGlzdCgpLmlzRW1wdHkoKSkgewor
ICAgICAgICAvLyAyLiBMZXQgbm90aWZ5IGxpc3QgYmUgYSBjb3B5IG9mIHVuaXQgb2YgcmVsYXRl
ZCBzaW1pbGFyLW9yaWdpbiBicm93c2luZyBjb250ZXh0cycgbGlzdCBvZiBNdXRhdGlvbk9ic2Vy
dmVyIG9iamVjdHMuCisgICAgICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4+IG5v
dGlmeUxpc3Q7CisgICAgICAgIGNvcHlUb1ZlY3RvcihhY3RpdmVNdXRhdGlvbk9ic2VydmVycygp
LCBub3RpZnlMaXN0KTsKICAgICAgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5jbGVhcigp
OwotICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5lbmQoKSwg
W10oYXV0byYgbGhzLCBhdXRvJiByaHMpIHsKKyAgICAgICAgc3RkOjpzb3J0KG5vdGlmeUxpc3Qu
YmVnaW4oKSwgbm90aWZ5TGlzdC5lbmQoKSwgW10oYXV0byYgbGhzLCBhdXRvJiByaHMpIHsKICAg
ICAgICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkgPCByaHMtPm1fcHJpb3JpdHk7CiAgICAg
ICAgIH0pOwogCi0gICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpIHsKKyAg
ICAgICAgLy8gNC4gTGV0IHNpZ25hbExpc3QgYmUgYSBjb3B5IG9mIHVuaXQgb2YgcmVsYXRlZCBz
aW1pbGFyLW9yaWdpbiBicm93c2luZyBjb250ZXh0cycgc2lnbmFsIHNsb3QgbGlzdC4KKyAgICAg
ICAgLy8gNS4gRW1wdHkgdW5pdCBvZiByZWxhdGVkIHNpbWlsYXItb3JpZ2luIGJyb3dzaW5nIGNv
bnRleHRzJyBzaWduYWwgc2xvdCBsaXN0LgorICAgICAgICBWZWN0b3I8UmVmUHRyPEhUTUxTbG90
RWxlbWVudD4+IHNsb3RMaXN0OworICAgICAgICBpZiAoIXNpZ25hbFNsb3RMaXN0KCkuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICBzbG90TGlzdC5zd2FwKHNpZ25hbFNsb3RMaXN0KCkpOworICAg
ICAgICAgICAgZm9yIChhdXRvJiBzbG90IDogc2xvdExpc3QpCisgICAgICAgICAgICAgICAgc2xv
dC0+ZGlkUmVtb3ZlRnJvbVNpZ25hbFNsb3RMaXN0KCk7CisgICAgICAgIH0KKworICAgICAgICAv
LyAzLiBGb3IgZWFjaCBNdXRhdGlvbk9ic2VydmVyIG9iamVjdCBtbyBpbiBub3RpZnkgbGlzdCwg
ZXhlY3V0ZSBhIGNvbXBvdW5kIG1pY3JvdGFzayBzdWJ0YXNrIHRvIHJ1biB0aGVzZSBzdGVwcwor
ICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbm90aWZ5TGlzdCkgewogICAgICAgICAgICAg
aWYgKG9ic2VydmVyLT5jYW5EZWxpdmVyKCkpCiAgICAgICAgICAgICAgICAgb2JzZXJ2ZXItPmRl
bGl2ZXIoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzdXNwZW5kZWRNdXRh
dGlvbk9ic2VydmVycygpLmFkZChvYnNlcnZlcik7CiAgICAgICAgIH0KKworICAgICAgICAvLyA2
LiBGb3IgZWFjaCBzbG90IHNsb3QgaW4gc2lnbmFsTGlzdCwgaW4gb3JkZXIsIGZpcmUgYW4gZXZl
bnQgbmFtZWQgc2xvdGNoYW5nZSwgd2l0aCBpdHMgYnViYmxlcyBhdHRyaWJ1dGUgc2V0IHRvIHRy
dWUsIGF0IHNsb3QuCisgICAgICAgIGZvciAoYXV0byYgc2xvdCA6IHNsb3RMaXN0KQorICAgICAg
ICAgICAgc2xvdC0+ZGlzcGF0Y2hTbG90Q2hhbmdlRXZlbnQoKTsKICAgICB9CiAKICAgICBkZWxp
dmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5o
CmluZGV4IDkyMzdjNTE1MjAzZTc3OTljYjY5ZmJkNjlmMzY1YTY4YTkxNjcxYmUuLjJiYzdkZDUx
MTdlNzQ4ZTlkNzM5ZGYyMDdjYTljOGRhOWIyMzRiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuaApAQCAtMzksNiArMzksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEhUTUxTbG90RWxlbWVudDsKIGNsYXNzIE11dGF0aW9uQ2FsbGJhY2s7CiBjbGFzcyBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOwogY2xhc3MgTXV0YXRpb25SZWNvcmQ7CkBAIC05
NiwxMSArOTcsMTMgQEAgcHVibGljOgogCiAgICAgSGFzaFNldDxOb2RlKj4gb2JzZXJ2ZWROb2Rl
cygpIGNvbnN0OwogCisgICAgc3RhdGljIHZvaWQgZW5xdWV1ZVNsb3RDaGFuZ2VFdmVudChIVE1M
U2xvdEVsZW1lbnQmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNdXRhdGlvbk9ic2VydmVy
KFJlZjxNdXRhdGlvbkNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGRlbGl2ZXIoKTsKIAotICAgIHN0
YXRpYyB2b2lkIGRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICBzdGF0aWMgdm9pZCBub3RpZnlN
dXRhdGlvbk9ic2VydmVycygpOwogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlT3B0aW9ucyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucyk7CiAKICAgICBSZWY8TXV0YXRpb25DYWxsYmFjaz4gbV9jYWxs
YmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNwcAppbmRleCA2MGQ4MDZk
MWNiMjI3ZGRmMTE1MjAzYjVlYmI1MjAwNDVjOGE4YWU2Li45NzFlZTU0NTE2OGNkODExOWYwNzQ3
MGYxY2Q3MzJlYzU2NmI1ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
bG90RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTXV0YXRpb25PYnNl
cnZlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTI2LDIyICsxMjcsMjEgQEAgVmVjdG9yPE5vZGUqPiBIVE1MU2xvdEVsZW1lbnQ6OmFzc2ln
bmVkTm9kZXMoY29uc3QgQXNzaWduZWROb2Rlc09wdGlvbnMmIG9wdGlvbnMKIAogdm9pZCBIVE1M
U2xvdEVsZW1lbnQ6OmVucXVldWVTbG90Q2hhbmdlRXZlbnQoKQogewotICAgIGlmIChtX2VucXVl
dWVkU2xvdENoYW5nZUV2ZW50KQorICAgIGlmIChtX2luU2lnbmFsU2xvdExpc3QpCiAgICAgICAg
IHJldHVybjsKKyAgICBtX2luU2lnbmFsU2xvdExpc3QgPSB0cnVlOworICAgIE11dGF0aW9uT2Jz
ZXJ2ZXI6OmVucXVldWVTbG90Q2hhbmdlRXZlbnQoKnRoaXMpOworfQorCit2b2lkIEhUTUxTbG90
RWxlbWVudDo6ZGlzcGF0Y2hTbG90Q2hhbmdlRXZlbnQoKQoreworICAgIG1faW5TaWduYWxTbG90
TGlzdCA9IGZhbHNlOwogCiAgICAgYm9vbCBidWJibGVzID0gZmFsc2U7CiAgICAgYm9vbCBjYW5j
ZWxhYmxlID0gZmFsc2U7Ci0gICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNsb3RjaGFuZ2VFdmVudCwgYnViYmxlcywgY2FuY2VsYWJsZSk7CisgICAgUmVmPEV2ZW50
PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNsb3RjaGFuZ2VFdmVudCwgYnVi
YmxlcywgY2FuY2VsYWJsZSk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKLSAgICBtX2Vu
cXVldWVkU2xvdENoYW5nZUV2ZW50ID0gZXZlbnQucHRyKCk7Ci0gICAgZG9jdW1lbnQoKS5lbnF1
ZXVlU2xvdGNoYW5nZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKLX0KLQotYm9vbCBIVE1MU2xvdEVs
ZW1lbnQ6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQotewotICAgIGlmICgmZXZlbnQgPT0g
bV9lbnF1ZXVlZFNsb3RDaGFuZ2VFdmVudCkKLSAgICAgICAgbV9lbnF1ZXVlZFNsb3RDaGFuZ2VF
dmVudCA9IG51bGxwdHI7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50OjpkaXNwYXRjaEV2ZW50KGV2
ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNsb3RFbGVtZW50LmgKaW5kZXggZDA3MTFhNTcxOWJlZDMwYjVjY2FlZTFmM2RmYThkYmEx
OTBkYjE2ZS4uMDczNDY2NGJmNjE4Njk5NDM1ZTQ5NWJhMDBhZDgyZTg4ODRlY2VmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5oCkBAIC00Miw2ICs0Miw5IEBAIHB1YmxpYzoK
ICAgICBWZWN0b3I8Tm9kZSo+IGFzc2lnbmVkTm9kZXMoY29uc3QgQXNzaWduZWROb2Rlc09wdGlv
bnMmKSBjb25zdDsKIAogICAgIHZvaWQgZW5xdWV1ZVNsb3RDaGFuZ2VFdmVudCgpOworICAgIHZv
aWQgZGlkUmVtb3ZlRnJvbVNpZ25hbFNsb3RMaXN0KCkgeyBtX2luU2lnbmFsU2xvdExpc3QgPSBm
YWxzZTsgfQorCisgICAgdm9pZCBkaXNwYXRjaFNsb3RDaGFuZ2VFdmVudCgpOwogCiBwcml2YXRl
OgogICAgIEhUTUxTbG90RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
QEAgLTQ5LDkgKzUyLDggQEAgcHJpdmF0ZToKICAgICBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVk
RnJvbShDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwotICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOwogCi0gICAgRXZlbnQqIG1f
ZW5xdWV1ZWRTbG90Q2hhbmdlRXZlbnQgeyBudWxscHRyIH07CisgICAgYm9vbCBtX2luU2lnbmFs
U2xvdExpc3QgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBkNDUyOTBiZjczZjJkYzViZDEx
ZGJhZTI5YThkM2JkMTA3YzE2MzYuLmQ4Y2FjZDNmZWIzMmZhZmM2MTAzOGJkYTc0NTkyOTdiZDUz
YzRjNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNi0wOCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBzbG90Y2hhbmdlIGV2ZW50IHNob3VsZCBiZSBm
aXJlZCBhdCB0aGUgZW5kIG9mIG1pY3JvdGFzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3Mzc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjE1
NDAyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhIHRlc3QgY2FzZSB0byBlbnN1cmUgc2xvdGNoYW5nZSBldmVudCBpcyBkaXNwYXRjaGVk
IGF0IHRoZSBlbmQgb2YgYSBtaWNyb3Rhc2suCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20v
c2xvdGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9zaGFkb3ctZG9t
L3Nsb3RjaGFuZ2UtZXZlbnQuaHRtbDoKKwogMjAxNi0wNi0wNyAgUnlhbiBIYWRkYWQgIDxyeWFu
aGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBTa2lwcGluZyBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3VwZ3JhZGUtc2ltcGxlLXdzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dAppbmRl
eCBmZDcwMjhmOWU5ZDVmNWEwMGE2M2Y3MGNhYTA2M2E2NWZjZDM1NGIxLi4wN2ExYWVkMjcwMGE0
Y2M2NWRjODZkYjllZGY0NGQ4NTU5YmJhNGU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0yOSw0
ICsyOSw4IEBAIFBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1l
bnQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3QgIGluCiBQQVNTIHNsb3RjaGFuZ2UgZXZlbnQg
bXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAg
aW4gYSBkb2N1bWVudCB3aGVuIG5lc3RlZCBzbG90cydzIGNvbnRlbnRzIGNoYW5nZSAKIFBBU1Mg
c2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQgaW5zaWRlIGFuIG9w
ZW4gc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gbmVzdGVkIHNsb3RzJ3MgY29u
dGVudHMgY2hhbmdlIAogUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3Qg
ZWxlbWVudCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIG5vdCBpbiBhIGRvY3VtZW50IHdo
ZW4gbmVzdGVkIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50
IG11c3QgZmlyZSBhdCB0aGUgZW5kIG9mIGN1cnJlbnQgbWljcm90YXNrIGFmdGVyIG11dGF0aW9u
IG9ic2VydmVycyBhcmUgaW52b2tlZCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgaW4gYSBk
b2N1bWVudCB3aGVuIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2
ZW50IG11c3QgZmlyZSBhdCB0aGUgZW5kIG9mIGN1cnJlbnQgbWljcm90YXNrIGFmdGVyIG11dGF0
aW9uIG9ic2VydmVycyBhcmUgaW52b2tlZCBpbnNpZGUgYSBjbG9zZWQgc2hhZG93IHJvb3QgIGlu
IGEgZG9jdW1lbnQgd2hlbiBzbG90cydzIGNvbnRlbnRzIGNoYW5nZSAKK1BBU1Mgc2xvdGNoYW5n
ZSBldmVudCBtdXN0IGZpcmUgYXQgdGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFzayBhZnRlciBt
dXRhdGlvbiBvYnNlcnZlcnMgYXJlIGludm9rZWQgaW5zaWRlIGFuIG9wZW4gc2hhZG93IHJvb3Qg
IG5vdCBpbiBhIGRvY3VtZW50IHdoZW4gc2xvdHMncyBjb250ZW50cyBjaGFuZ2UgCitQQVNTIHNs
b3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2YgY3VycmVudCBtaWNyb3Rhc2sg
YWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGluc2lkZSBhIGNsb3NlZCBzaGFk
b3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBzbG90cydzIGNvbnRlbnRzIGNoYW5nZSAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50Lmh0
bWwKaW5kZXggZDRiOGJlZmRiYjMyMTY5MWVkNzk5NDRmOTMxMDc1ZmJmMDBlNWJjOC4uNjYwMzhm
YTgyZTJjMmFlNjk5YWY1NjdjYWRmMmJhY2M1ZmUwNzNjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1sCkBAIC01MzQsNiArNTM0LDg2
IEBAIHRlc3RTbG90Y2hhbmdlRmlyZXNXaGVuTmVzdGVkU2xvdENoYW5nZSgnY2xvc2VkJywgdHJ1
ZSk7CiB0ZXN0U2xvdGNoYW5nZUZpcmVzV2hlbk5lc3RlZFNsb3RDaGFuZ2UoJ29wZW4nLCBmYWxz
ZSk7CiB0ZXN0U2xvdGNoYW5nZUZpcmVzV2hlbk5lc3RlZFNsb3RDaGFuZ2UoJ2Nsb3NlZCcsIGZh
bHNlKTsKIAorZnVuY3Rpb24gdGVzdFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2sobW9k
ZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkKK3sKKyAgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoJ3Ns
b3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2YgY3VycmVudCBtaWNyb3Rhc2sg
YWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGluc2lkZSAnCisgICAgICAgICsg
dHJlZU5hbWUobW9kZSwgY29ubmVjdGVkVG9Eb2N1bWVudCkgKyAnIHdoZW4gc2xvdHNcJ3MgY29u
dGVudHMgY2hhbmdlJyk7CisKKyAgICB2YXIgb3V0ZXJIb3N0OworICAgIHZhciBpbm5lckhvc3Q7
CisgICAgdmFyIG91dGVyU2xvdDsKKyAgICB2YXIgaW5uZXJTbG90OworICAgIHZhciBzbG90Y2hh
bmdlRXZlbnRzID0gW107CisKKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICBv
dXRlckhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgaWYgKGNv
bm5lY3RlZFRvRG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KG91dGVySG9zdCk7CisKKyAgICAgICAgdmFyIG91dGVyU2hhZG93ID0gb3V0ZXJIb3N0LmF0dGFj
aFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7CisgICAgICAgIG91dGVyU2hhZG93LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisgICAgICAgIG91dGVyU2xvdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgb3V0ZXJTbG90LmFkZEV2ZW50
TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgIGV2
ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgb3V0ZXJTbG90
LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUgc2xvdCBlbGVtZW50Jyk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNsb3RjaGFuZ2VFdmVudHMucHVzaCgnb3V0
ZXInKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaW5uZXJIb3N0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGlubmVySG9zdC5hcHBlbmRDaGlsZChvdXRlclNsb3Qp
OworICAgICAgICBvdXRlclNoYWRvdy5hcHBlbmRDaGlsZChpbm5lckhvc3QpOworCisgICAgICAg
IHZhciBpbm5lclNoYWRvdyA9IGlubmVySG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9kZX0p
OworICAgICAgICBpbm5lclNoYWRvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJykpOworICAgICAgICBpbm5lclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
bG90Jyk7CisgICAgICAgIGlubmVyU2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywg
ZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsK
KyAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhldmVudC50YXJnZXQsIGlubmVyU2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnRcJ3Mg
dGFyZ2V0IG11c3QgYmUgdGhlIHNsb3QgZWxlbWVudCcpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBzbG90Y2hhbmdlRXZlbnRzLnB1c2goJ2lubmVyJyk7CisgICAgICAgIH0pOworICAg
ICAgICBpbm5lclNoYWRvdy5hcHBlbmRDaGlsZChpbm5lclNsb3QpOworCisgICAgICAgIG91dGVy
SG9zdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworCisgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cy5sZW5ndGgsIDAsICdzbG90Y2hhbmdl
IGV2ZW50IG11c3Qgbm90IGJlIGZpcmVkIHN5bmNocm9ub3VzbHknKTsKKyAgICB9KTsKKworICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3Quc3RlcChmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNsb3RjaGFuZ2VFdmVudHMubGVuZ3Ro
LCAwLCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBiZWZvcmUgbXV0YXRpb24g
cmVjb3JkcyBhcmUgZGVsaXZlcmVkJyk7CisgICAgICAgIH0pOworICAgICAgICBlbGVtZW50LnNl
dEF0dHJpYnV0ZSgndGl0bGUnLCAnYmFyJyk7CisgICAgICAgIGlubmVySG9zdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworICAgIH0pLm9ic2VydmUoZWxlbWVu
dCwge2F0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWydpZCddfSk7CisKKyAgICBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3Quc3RlcChmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RjaGFuZ2VFdmVu
dHMsIFsnb3V0ZXInLCAnaW5uZXInXSwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBiZSBmaXJlZCBk
dXJpbmcgYSBzaW5nbGUgY29tcG91bmQgbWljcm90YXNrJyk7CisgICAgICAgIH0pOworICAgIH0p
Lm9ic2VydmUoZWxlbWVudCwge2F0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWyd0
aXRsZSddfSk7CisKKyAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAnZm9vJyk7CisKKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cywgWydv
dXRlcicsICdpbm5lcicsICdpbm5lciddLAorICAgICAgICAgICAgICAgICdhIGRpc3RpbmN0IHNs
b3RjaGFuZ2UgZXZlbnQgbXVzdCBiZSBlbnF1ZXVlZCBmb3IgY2hhbmdlcyBtYWRlIGR1cmluZyBh
IG11dGF0aW9uIG9ic2VydmVyIGRlbGl2ZXJ5Jyk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0
LmRvbmUoKTsKKyAgICB9LCAwKTsKK30KKwordGVzdFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNy
b1Rhc2soJ29wZW4nLCB0cnVlKTsKK3Rlc3RTbG90Y2hhbmdlRmlyZXNBdEVuZE9mTWljcm9UYXNr
KCdjbG9zZWQnLCB0cnVlKTsKK3Rlc3RTbG90Y2hhbmdlRmlyZXNBdEVuZE9mTWljcm9UYXNrKCdv
cGVuJywgZmFsc2UpOwordGVzdFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ2Nsb3Nl
ZCcsIGZhbHNlKTsKKwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280891</attachid>
            <date>2016-06-09 00:34:04 -0700</date>
            <delta_ts>2016-06-09 01:36:36 -0700</delta_ts>
            <desc>Updated per spec change</desc>
            <filename>bug-157374-20160609003544.patch</filename>
            <type>text/plain</type>
            <size>17178</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmMTRiODAwMjNkZjQ5
YTBlY2M3ZmEzNmZiZmMwOTA5YmE3YWQ3MS4uOGYzMTE0NGY3YjZkYmYxOWUyZDZhNjQ0YmQzMDI0
YWJlNzc5ZGNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA2LTA4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHNsb3RjaGFuZ2UgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGF0IHRoZSBlbmQgb2YgbWljcm90YXNrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTczNzQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI2MTU0MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERpc3BhdGNoIHNsb3RjaGFuZ2UgZXZlbnQgYXQgdGhlIGVuZCBvZiBldmVyeSBt
aWNyb3Rhc2sgYWZ0ZXIgZGVsaXZlcmluZyByZWNvcmRzIHRvIG11dGF0aW9uIG9ic2VydmVycwor
ICAgICAgICBhcyBzcGVjaWZpZWQgaW46IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm90
aWZ5LW11dGF0aW9uLW9ic2VydmVycworCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhZG93LWRvbS9z
bG90Y2hhbmdlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZVNsb3RjaGFuZ2VFdmVudCk6IERlbGV0ZWQu
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2lnbmFsU2xvdExpc3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2s6OnJ1bik6IG11dGF0aW9uT2Jz
ZXJ2ZXJDb21wb3VuZE1pY3JvdGFza1F1ZXVlZEZsYWcgaXMgbm93IHVuc2V0IGluCisgICAgICAg
IG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzIHRvIGJldHRlciBtYXRjaCB0aGUgY29uY2VwdCB0byAi
bm90aWZ5IG11dGF0aW9uIG9ic2VydmVycyIuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVyOjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNdXRhdGlvbk9ic2VydmVyOjpub3RpZnlNdXRhdGlvbk9ic2VydmVycyk6IFJlbmFtZWQgZnJv
bSBkZWxpdmVyQWxsTXV0YXRpb25zLiBBZGRlZCB0aGUgY29kZQorICAgICAgICB0byBkaXNwYXRj
aCBzbG90Y2hhbmdlIGV2ZW50cyBhcyBzcGVjJ2VkLCBhbmQgYWxzbyBhZGRlZCBjb21tZW50cyBm
b3IgZWFjaCBzdGVwLgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAg
ICogaHRtbC9IVE1MU2xvdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNsb3RF
bGVtZW50OjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KTogVXNlIE11dGF0aW9uT2JzZXJ2ZXI6OmVu
cXVldWVTbG90Q2hhbmdlRXZlbnQuIERvbid0CisgICAgICAgIGNyZWF0ZSBhbiBldmVudCBoZXJl
IHNpbmNlIHRoYXQgaXMgb25seSBuZWVkZWQgd2hlbiBkaXNwYXRjaGluZyB0aGUgZXZlbnQsIGFu
ZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIKKyAgICAgICAgd2UndmUgYWxyZWFkeSBzY2hlZHVs
ZWQgYW4gZXZlbnQgb3Igbm90LiBVc2UgYSBib29sZWFuIGZsYWcgaW5zdGVhZCBmb3IgdGhlIGxh
dHRlci4gCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2xvdEVsZW1lbnQ6OmRpc3BhdGNoU2xvdENo
YW5nZUV2ZW50KTogQWRkZWQuIENyZWF0ZXMgYW5kIGRpc3BhdGNoZXMgYW4gZXZlbnQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2xvdEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQpOiBEZWxldGVkLgor
ICAgICAgICAqIGh0bWwvSFRNTFNsb3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2xvdEVsZW1lbnQ6OmRpZFJlbW92ZUZyb21TaWduYWxTbG90TGlzdCk6IEFkZGVkLgorCiAyMDE2
LTA2LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNGVl
NTRhNzA5NDBkMTZjMzQyMmY2OGZiYjM3ZGFkNDJjOTlmMjEyZi4uZWQ2MjdlMTlmNzM5ZGQ2YWZl
ZDkyZTE1NDBmZGNjZmY1NjQzZGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00MTcz
LDExICs0MTczLDYgQEAgdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZU92ZXJmbG93RXZlbnQoUmVmPEV2
ZW50PiYmIGV2ZW50KQogICAgIG1fZXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVu
dCkpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2xvdGNoYW5nZUV2ZW50KFJlZjxFdmVu
dD4mJiBldmVudCkKLXsKLSAgICBtX2V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZl
bnQpKTsKLX0KLQogUmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3QgU3Ry
aW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBQbGVhc2UgZG8gKm5vdCog
YWRkIG5ldyBldmVudCBjbGFzc2VzIHRvIHRoaXMgZnVuY3Rpb24gdW5sZXNzIHRoZXkgYXJlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IGVhNDE2OWY3ODkxMWFjMmFjNTJmOTEzOGUyYzZmOGNhYjQ3
Y2JjMzIuLjc5OTc4NjU2NjE5ZDg3MDUyZTNiMDRiYWVmZTBlZTUzYWFjZWZkOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0xMDg1LDcgKzEwODUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnF1
ZXVlV2luZG93RXZlbnQoUmVmPEV2ZW50PiYmKTsKICAgICB2b2lkIGVucXVldWVEb2N1bWVudEV2
ZW50KFJlZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZl
bnQ+JiYpOwotICAgIHZvaWQgZW5xdWV1ZVNsb3RjaGFuZ2VFdmVudChSZWY8RXZlbnQ+JiYpOwog
ICAgIHZvaWQgZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsK
ICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNv
bnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2ZW50KFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc3RhdGVPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDQyZDc5OGM2YzA4NGQxYzdkNjZmMzM0MGU1YTQ1
ZGZmODBjZTM4NTUuLmE2NGVhN2YzY2ZmNDk0ODFmNWJlMWM0Yjk0NThmMjY3Mjk3NjE2ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRNTFNsb3RFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTWljcm90YXNrcy5oIgogI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRl
ICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCkBAIC0xNDYsNiArMTQ3LDEyIEBAIHN0
YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBzdXNwZW5kZWRNdXRhdGlvbk9ic2VydmVycygpCiAg
ICAgcmV0dXJuIHN1c3BlbmRlZE9ic2VydmVyczsKIH0KIAorc3RhdGljIFZlY3RvcjxSZWZQdHI8
SFRNTFNsb3RFbGVtZW50Pj4mIHNpZ25hbFNsb3RMaXN0KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFJlZlB0cjxIVE1MU2xvdEVsZW1lbnQ+Pj4gbGlzdDsKKyAgICByZXR1
cm4gbGlzdDsKK30KKwogc3RhdGljIGJvb2wgbXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90
YXNrUXVldWVkRmxhZzsKIAogY2xhc3MgTXV0YXRpb25PYnNlcnZlck1pY3JvdGFzayBmaW5hbCA6
IHB1YmxpYyBNaWNyb3Rhc2sgewpAQCAtMTUzLDggKzE2MCw3IEBAIGNsYXNzIE11dGF0aW9uT2Jz
ZXJ2ZXJNaWNyb3Rhc2sgZmluYWwgOiBwdWJsaWMgTWljcm90YXNrIHsKIHByaXZhdGU6CiAgICAg
UmVzdWx0IHJ1bigpIGZpbmFsCiAgICAgewotICAgICAgICBtdXRhdGlvbk9ic2VydmVyQ29tcG91
bmRNaWNyb3Rhc2tRdWV1ZWRGbGFnID0gZmFsc2U7Ci0gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXI6
OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAgTXV0YXRpb25PYnNlcnZlcjo6bm90aWZ5
TXV0YXRpb25PYnNlcnZlcnMoKTsKICAgICAgICAgcmV0dXJuIFJlc3VsdDo6RG9uZTsKICAgICB9
CiB9OwpAQCAtMTc2LDYgKzE4MiwxNSBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVldWVN
dXRhdGlvblJlY29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYgbXV0YXRpb24pCiAgICAgcXVldWVN
dXRhdGlvbk9ic2VydmVyQ29tcG91bmRNaWNyb3Rhc2soKTsKIH0KIAordm9pZCBNdXRhdGlvbk9i
c2VydmVyOjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KEhUTUxTbG90RWxlbWVudCYgc2xvdCkKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghc2lnbmFsU2xvdExpc3Qo
KS5jb250YWlucygmc2xvdCkpOworICAgIHNpZ25hbFNsb3RMaXN0KCkuYXBwZW5kKCZzbG90KTsK
KworICAgIHF1ZXVlTXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90YXNrKCk7Cit9CisKIHZv
aWQgTXV0YXRpb25PYnNlcnZlcjo6c2V0SGFzVHJhbnNpZW50UmVnaXN0cmF0aW9uKCkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjIwLDggKzIzNSwxMiBAQCB2b2lkIE11dGF0
aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIoKQogICAgIG1fY2FsbGJhY2stPmNhbGwocmVjb3JkcywgdGhp
cyk7CiB9CiAKLXZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCit2
b2lkIE11dGF0aW9uT2JzZXJ2ZXI6Om5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzKCkKIHsKKyAgICAv
LyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI25vdGlmeS1tdXRhdGlvbi1vYnNlcnZlcnMK
KyAgICAvLyAxLiBVbnNldCBtdXRhdGlvbiBvYnNlcnZlciBjb21wb3VuZCBtaWNyb3Rhc2sgcXVl
dWVkIGZsYWcuCisgICAgbXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90YXNrUXVldWVkRmxh
ZyA9IGZhbHNlOworCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBzdGF0aWMgYm9v
bCBkZWxpdmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICBpZiAoZGVsaXZlcnlJblByb2dyZXNz
KQpAQCAtMjQwLDIwICsyNTksMzUgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxs
TXV0YXRpb25zKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIHdoaWxlICghYWN0aXZlTXV0YXRp
b25PYnNlcnZlcnMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlv
bk9ic2VydmVyPj4gb2JzZXJ2ZXJzOwotICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZlTXV0YXRp
b25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKKyAgICB3aGlsZSAoIWFjdGl2ZU11dGF0aW9uT2Jz
ZXJ2ZXJzKCkuaXNFbXB0eSgpIHx8ICFzaWduYWxTbG90TGlzdCgpLmlzRW1wdHkoKSkgeworICAg
ICAgICAvLyAyLiBMZXQgbm90aWZ5IGxpc3QgYmUgYSBjb3B5IG9mIHVuaXQgb2YgcmVsYXRlZCBz
aW1pbGFyLW9yaWdpbiBicm93c2luZyBjb250ZXh0cycgbGlzdCBvZiBNdXRhdGlvbk9ic2VydmVy
IG9iamVjdHMuCisgICAgICAgIFZlY3RvcjxSZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4+IG5vdGlm
eUxpc3Q7CisgICAgICAgIGNvcHlUb1ZlY3RvcihhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLCBu
b3RpZnlMaXN0KTsKICAgICAgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5jbGVhcigpOwot
ICAgICAgICBzdGQ6OnNvcnQob2JzZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5lbmQoKSwgW10o
YXV0byYgbGhzLCBhdXRvJiByaHMpIHsKKyAgICAgICAgc3RkOjpzb3J0KG5vdGlmeUxpc3QuYmVn
aW4oKSwgbm90aWZ5TGlzdC5lbmQoKSwgW10oYXV0byYgbGhzLCBhdXRvJiByaHMpIHsKICAgICAg
ICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkgPCByaHMtPm1fcHJpb3JpdHk7CiAgICAgICAg
IH0pOwogCi0gICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpIHsKKyAgICAg
ICAgLy8gMy4gTGV0IHNpZ25hbExpc3QgYmUgYSBjb3B5IG9mIHVuaXQgb2YgcmVsYXRlZCBzaW1p
bGFyLW9yaWdpbiBicm93c2luZyBjb250ZXh0cycgc2lnbmFsIHNsb3QgbGlzdC4KKyAgICAgICAg
Ly8gNC4gRW1wdHkgdW5pdCBvZiByZWxhdGVkIHNpbWlsYXItb3JpZ2luIGJyb3dzaW5nIGNvbnRl
eHRzJyBzaWduYWwgc2xvdCBsaXN0LgorICAgICAgICBWZWN0b3I8UmVmUHRyPEhUTUxTbG90RWxl
bWVudD4+IHNsb3RMaXN0OworICAgICAgICBpZiAoIXNpZ25hbFNsb3RMaXN0KCkuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICBzbG90TGlzdC5zd2FwKHNpZ25hbFNsb3RMaXN0KCkpOworICAgICAg
ICAgICAgZm9yIChhdXRvJiBzbG90IDogc2xvdExpc3QpCisgICAgICAgICAgICAgICAgc2xvdC0+
ZGlkUmVtb3ZlRnJvbVNpZ25hbFNsb3RMaXN0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyA1
LiBGb3IgZWFjaCBNdXRhdGlvbk9ic2VydmVyIG9iamVjdCBtbyBpbiBub3RpZnkgbGlzdCwgZXhl
Y3V0ZSBhIGNvbXBvdW5kIG1pY3JvdGFzayBzdWJ0YXNrCisgICAgICAgIGZvciAoYXV0byYgb2Jz
ZXJ2ZXIgOiBub3RpZnlMaXN0KSB7CiAgICAgICAgICAgICBpZiAob2JzZXJ2ZXItPmNhbkRlbGl2
ZXIoKSkKICAgICAgICAgICAgICAgICBvYnNlcnZlci0+ZGVsaXZlcigpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZE11dGF0aW9uT2JzZXJ2ZXJzKCkuYWRkKG9i
c2VydmVyKTsKICAgICAgICAgfQorCisgICAgICAgIC8vIDYuIEZvciBlYWNoIHNsb3Qgc2xvdCBp
biBzaWduYWxMaXN0LCBpbiBvcmRlciwgZmlyZSBhbiBldmVudCBuYW1lZCBzbG90Y2hhbmdlLCB3
aXRoIGl0cyBidWJibGVzIGF0dHJpYnV0ZSBzZXQgdG8gdHJ1ZSwgYXQgc2xvdC4KKyAgICAgICAg
Zm9yIChhdXRvJiBzbG90IDogc2xvdExpc3QpCisgICAgICAgICAgICBzbG90LT5kaXNwYXRjaFNs
b3RDaGFuZ2VFdmVudCgpOwogICAgIH0KIAogICAgIGRlbGl2ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKaW5kZXggOTIzN2M1MTUyMDNlNzc5
OWNiNjlmYmQ2OWYzNjVhNjhhOTE2NzFiZS4uMmJjN2RkNTExN2U3NDhlOWQ3MzlkZjIwN2NhOWM4
ZGE5YjIzNGI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zOSw2
ICszOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSFRNTFNsb3RFbGVtZW50
OwogY2xhc3MgTXV0YXRpb25DYWxsYmFjazsKIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb247CiBjbGFzcyBNdXRhdGlvblJlY29yZDsKQEAgLTk2LDExICs5NywxMyBAQCBwdWJsaWM6
CiAKICAgICBIYXNoU2V0PE5vZGUqPiBvYnNlcnZlZE5vZGVzKCkgY29uc3Q7CiAKKyAgICBzdGF0
aWMgdm9pZCBlbnF1ZXVlU2xvdENoYW5nZUV2ZW50KEhUTUxTbG90RWxlbWVudCYpOworCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IE11dGF0aW9uT2JzZXJ2ZXIoUmVmPE11dGF0aW9uQ2FsbGJhY2s+
JiYpOwogICAgIHZvaWQgZGVsaXZlcigpOwogCi0gICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11
dGF0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzKCk7CiAg
ICAgc3RhdGljIGJvb2wgdmFsaWRhdGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zKTsK
IAogICAgIFJlZjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2xvdEVsZW1lbnQuY3BwCmluZGV4IDYwZDgwNmQxY2IyMjdkZGYxMTUyMDNiNWViYjUy
MDA0NWM4YThhZTYuLjk3MWVlNTQ1MTY4Y2Q4MTE5ZjA3NDcwZjFjZDczMmVjNTY2YjVlODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsMjIgKzEyNywyMSBAQCBW
ZWN0b3I8Tm9kZSo+IEhUTUxTbG90RWxlbWVudDo6YXNzaWduZWROb2Rlcyhjb25zdCBBc3NpZ25l
ZE5vZGVzT3B0aW9ucyYgb3B0aW9ucwogCiB2b2lkIEhUTUxTbG90RWxlbWVudDo6ZW5xdWV1ZVNs
b3RDaGFuZ2VFdmVudCgpCiB7Ci0gICAgaWYgKG1fZW5xdWV1ZWRTbG90Q2hhbmdlRXZlbnQpCisg
ICAgaWYgKG1faW5TaWduYWxTbG90TGlzdCkKICAgICAgICAgcmV0dXJuOworICAgIG1faW5TaWdu
YWxTbG90TGlzdCA9IHRydWU7CisgICAgTXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZVNsb3RDaGFu
Z2VFdmVudCgqdGhpcyk7Cit9CisKK3ZvaWQgSFRNTFNsb3RFbGVtZW50OjpkaXNwYXRjaFNsb3RD
aGFuZ2VFdmVudCgpCit7CisgICAgbV9pblNpZ25hbFNsb3RMaXN0ID0gZmFsc2U7CiAKICAgICBi
b29sIGJ1YmJsZXMgPSBmYWxzZTsKICAgICBib29sIGNhbmNlbGFibGUgPSBmYWxzZTsKLSAgICBh
dXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2xvdGNoYW5nZUV2ZW50LCBi
dWJibGVzLCBjYW5jZWxhYmxlKTsKKyAgICBSZWY8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuc2xvdGNoYW5nZUV2ZW50LCBidWJibGVzLCBjYW5jZWxhYmxlKTsKICAg
ICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwotICAgIG1fZW5xdWV1ZWRTbG90Q2hhbmdlRXZlbnQg
PSBldmVudC5wdHIoKTsKLSAgICBkb2N1bWVudCgpLmVucXVldWVTbG90Y2hhbmdlRXZlbnQoV1RG
TW92ZShldmVudCkpOwotfQotCi1ib29sIEhUTUxTbG90RWxlbWVudDo6ZGlzcGF0Y2hFdmVudChF
dmVudCYgZXZlbnQpCi17Ci0gICAgaWYgKCZldmVudCA9PSBtX2VucXVldWVkU2xvdENoYW5nZUV2
ZW50KQotICAgICAgICBtX2VucXVldWVkU2xvdENoYW5nZUV2ZW50ID0gbnVsbHB0cjsKLSAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIGRpc3BhdGNoRXZl
bnQoZXZlbnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
bG90RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaAppbmRl
eCBkMDcxMWE1NzE5YmVkMzBiNWNjYWVlMWYzZGZhOGRiYTE5MGRiMTZlLi4wNzM0NjY0YmY2MTg2
OTk0MzVlNDk1YmEwMGFkODJlODg4NGVjZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTbG90RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RF
bGVtZW50LmgKQEAgLTQyLDYgKzQyLDkgQEAgcHVibGljOgogICAgIFZlY3RvcjxOb2RlKj4gYXNz
aWduZWROb2Rlcyhjb25zdCBBc3NpZ25lZE5vZGVzT3B0aW9ucyYpIGNvbnN0OwogCiAgICAgdm9p
ZCBlbnF1ZXVlU2xvdENoYW5nZUV2ZW50KCk7CisgICAgdm9pZCBkaWRSZW1vdmVGcm9tU2lnbmFs
U2xvdExpc3QoKSB7IG1faW5TaWduYWxTbG90TGlzdCA9IGZhbHNlOyB9CisKKyAgICB2b2lkIGRp
c3BhdGNoU2xvdENoYW5nZUV2ZW50KCk7CiAKIHByaXZhdGU6CiAgICAgSFRNTFNsb3RFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpAQCAtNDksOSArNTIsOCBAQCBwcml2
YXRlOgogICAgIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRh
aW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7Ci0gICAgYm9vbCBkaXNwYXRjaEV2
ZW50KEV2ZW50JikgZmluYWw7CiAKLSAgICBFdmVudCogbV9lbnF1ZXVlZFNsb3RDaGFuZ2VFdmVu
dCB7IG51bGxwdHIgfTsKKyAgICBib29sIG1faW5TaWduYWxTbG90TGlzdCB7IGZhbHNlIH07CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMGQ0NTI5MGJmNzNmMmRjNWJkMTFkYmFlMjlhOGQzYmQxMDdjMTYzNi4u
ZDhjYWNkM2ZlYjMyZmFmYzYxMDM4YmRhNzQ1OTI5N2JkNTNjNGM0YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDE2LTA2LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisg
ICAgICAgIHNsb3RjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGF0IHRoZSBlbmQgb2YgbWlj
cm90YXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTczNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MTU0MDI0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCBjYXNlIHRvIGVu
c3VyZSBzbG90Y2hhbmdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXQgdGhlIGVuZCBvZiBhIG1pY3Jv
dGFzay4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1s
OgorCiAyMDE2LTA2LTA3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNraXBwaW5nIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdXBncmFkZS1z
aW1wbGUtd3MuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Ns
b3RjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L3Nsb3RjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IGZkNzAyOGY5ZTlkNWY1YTAwYTYz
ZjcwY2FhMDYzYTY1ZmNkMzU0YjEuLjA3YTFhZWQyNzAwYTRjYzY1ZGM4NmRiOWVkZjQ0ZDg1NTli
YmE0ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdl
LWV2ZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vc2xv
dGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTI5LDQgKzI5LDggQEAgUEFTUyBzbG90Y2hh
bmdlIGV2ZW50IG11c3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFk
b3cgcm9vdCAgaW4KIFBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVs
ZW1lbnQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gbmVz
dGVkIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAogUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3Qg
ZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGlu
IGEgZG9jdW1lbnQgd2hlbiBuZXN0ZWQgc2xvdHMncyBjb250ZW50cyBjaGFuZ2UgCiBQQVNTIHNs
b3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3Nl
ZCBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBuZXN0ZWQgc2xvdHMncyBjb250
ZW50cyBjaGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQg
b2YgY3VycmVudCBtaWNyb3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2Vk
IGluc2lkZSBhbiBvcGVuIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gc2xvdHMncyBj
b250ZW50cyBjaGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBl
bmQgb2YgY3VycmVudCBtaWNyb3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZv
a2VkIGluc2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAgaW4gYSBkb2N1bWVudCB3aGVuIHNsb3Rz
J3MgY29udGVudHMgY2hhbmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBhdCB0
aGUgZW5kIG9mIGN1cnJlbnQgbWljcm90YXNrIGFmdGVyIG11dGF0aW9uIG9ic2VydmVycyBhcmUg
aW52b2tlZCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hl
biBzbG90cydzIGNvbnRlbnRzIGNoYW5nZSAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZp
cmUgYXQgdGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFzayBhZnRlciBtdXRhdGlvbiBvYnNlcnZl
cnMgYXJlIGludm9rZWQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1
bWVudCB3aGVuIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQuaHRtbAppbmRleCBkNGI4YmVmZGJiMzIx
NjkxZWQ3OTk0NGY5MzEwNzVmYmYwMGU1YmM4Li42NjAzOGZhODJlMmMyYWU2OTlhZjU2N2NhZGYy
YmFjYzVmZTA3M2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vc2xv
dGNoYW5nZS1ldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90
Y2hhbmdlLWV2ZW50Lmh0bWwKQEAgLTUzNCw2ICs1MzQsODYgQEAgdGVzdFNsb3RjaGFuZ2VGaXJl
c1doZW5OZXN0ZWRTbG90Q2hhbmdlKCdjbG9zZWQnLCB0cnVlKTsKIHRlc3RTbG90Y2hhbmdlRmly
ZXNXaGVuTmVzdGVkU2xvdENoYW5nZSgnb3BlbicsIGZhbHNlKTsKIHRlc3RTbG90Y2hhbmdlRmly
ZXNXaGVuTmVzdGVkU2xvdENoYW5nZSgnY2xvc2VkJywgZmFsc2UpOwogCitmdW5jdGlvbiB0ZXN0
U2xvdGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzayhtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50
KQoreworICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnc2xvdGNoYW5nZSBldmVudCBtdXN0IGZp
cmUgYXQgdGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFzayBhZnRlciBtdXRhdGlvbiBvYnNlcnZl
cnMgYXJlIGludm9rZWQgaW5zaWRlICcKKyAgICAgICAgKyB0cmVlTmFtZShtb2RlLCBjb25uZWN0
ZWRUb0RvY3VtZW50KSArICcgd2hlbiBzbG90c1wncyBjb250ZW50cyBjaGFuZ2UnKTsKKworICAg
IHZhciBvdXRlckhvc3Q7CisgICAgdmFyIGlubmVySG9zdDsKKyAgICB2YXIgb3V0ZXJTbG90Owor
ICAgIHZhciBpbm5lclNsb3Q7CisgICAgdmFyIHNsb3RjaGFuZ2VFdmVudHMgPSBbXTsKKworICAg
IHRlc3Quc3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgIG91dGVySG9zdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBpZiAoY29ubmVjdGVkVG9Eb2N1bWVudCkKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJIb3N0KTsKKworICAgICAg
ICB2YXIgb3V0ZXJTaGFkb3cgPSBvdXRlckhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9
KTsKKyAgICAgICAgb3V0ZXJTaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc3BhbicpKTsKKyAgICAgICAgb3V0ZXJTbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2xvdCcpOworICAgICAgICBvdXRlclNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScs
IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7
CisgICAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBvdXRlclNsb3QsICdzbG90Y2hhbmdlIGV2ZW50XCdz
IHRhcmdldCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgc2xvdGNoYW5nZUV2ZW50cy5wdXNoKCdvdXRlcicpOworICAgICAgICB9KTsKKwor
ICAgICAgICBpbm5lckhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAg
ICAgaW5uZXJIb3N0LmFwcGVuZENoaWxkKG91dGVyU2xvdCk7CisgICAgICAgIG91dGVyU2hhZG93
LmFwcGVuZENoaWxkKGlubmVySG9zdCk7CisKKyAgICAgICAgdmFyIGlubmVyU2hhZG93ID0gaW5u
ZXJIb3N0LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7CisgICAgICAgIGlubmVyU2hhZG93
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisgICAgICAgIGlu
bmVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgaW5uZXJT
bG90LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgdGVzdC5zdGVw
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdl
dCwgaW5uZXJTbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUgc2xv
dCBlbGVtZW50Jyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNsb3RjaGFuZ2VFdmVu
dHMucHVzaCgnaW5uZXInKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlubmVyU2hhZG93LmFwcGVu
ZENoaWxkKGlubmVyU2xvdCk7CisKKyAgICAgICAgb3V0ZXJIb3N0LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzbG90
Y2hhbmdlRXZlbnRzLmxlbmd0aCwgMCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgYmUgZmly
ZWQgc3luY2hyb25vdXNseScpOworICAgIH0pOworCisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cy5sZW5ndGgsIDAsICdzbG90Y2hhbmdlIGV2ZW50
IG11c3Qgbm90IGJlIGZpcmVkIGJlZm9yZSBtdXRhdGlvbiByZWNvcmRzIGFyZSBkZWxpdmVyZWQn
KTsKKyAgICAgICAgfSk7CisgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsICdi
YXInKTsKKyAgICAgICAgaW5uZXJIb3N0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NwYW4nKSk7CisgICAgfSkub2JzZXJ2ZShlbGVtZW50LCB7YXR0cmlidXRlczogdHJ1ZSwg
YXR0cmlidXRlRmlsdGVyOiBbJ2lkJ119KTsKKworICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cywgWydvdXRlcicsICdpbm5lcidd
LCAnc2xvdGNoYW5nZSBldmVudCBtdXN0IGJlIGZpcmVkIGR1cmluZyBhIHNpbmdsZSBjb21wb3Vu
ZCBtaWNyb3Rhc2snKTsKKyAgICAgICAgfSk7CisgICAgfSkub2JzZXJ2ZShlbGVtZW50LCB7YXR0
cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ3RpdGxlJ119KTsKKworICAgIGVsZW1l
bnQuc2V0QXR0cmlidXRlKCdpZCcsICdmb28nKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24g
KCkgeworICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzbG90Y2hhbmdlRXZlbnRzLCBbJ291dGVyJywgJ2lubmVyJywgJ2lubmVy
J10sCisgICAgICAgICAgICAgICAgJ2EgZGlzdGluY3Qgc2xvdGNoYW5nZSBldmVudCBtdXN0IGJl
IGVucXVldWVkIGZvciBjaGFuZ2VzIG1hZGUgZHVyaW5nIGEgbXV0YXRpb24gb2JzZXJ2ZXIgZGVs
aXZlcnknKTsKKyAgICAgICAgfSk7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0sIDApOwor
fQorCit0ZXN0U2xvdGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzaygnb3BlbicsIHRydWUpOwor
dGVzdFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ2Nsb3NlZCcsIHRydWUpOwordGVz
dFNsb3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ29wZW4nLCBmYWxzZSk7Cit0ZXN0U2xv
dGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzaygnY2xvc2VkJywgZmFsc2UpOworCiA8L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280898</attachid>
            <date>2016-06-09 01:36:40 -0700</date>
            <delta_ts>2016-06-09 02:08:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157374-20160609013820.patch</filename>
            <type>text/plain</type>
            <size>17286</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmMTRiODAwMjNkZjQ5
YTBlY2M3ZmEzNmZiZmMwOTA5YmE3YWQ3MS4uZDA1OTBiYjg5MTA0ZDI3OGNlZTZhMDZhMTAyZjEw
Yjg5ZWJkZDQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA2LTA4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHNsb3RjaGFuZ2UgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGF0IHRoZSBlbmQgb2YgbWljcm90YXNrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTczNzQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI2MTU0MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgor
CisgICAgICAgIERpc3BhdGNoIHNsb3RjaGFuZ2UgZXZlbnQgYXQgdGhlIGVuZCBvZiBldmVyeSBt
aWNyb3Rhc2sgYWZ0ZXIgZGVsaXZlcmluZyByZWNvcmRzIHRvIG11dGF0aW9uIG9ic2VydmVycwor
ICAgICAgICBhcyBzcGVjaWZpZWQgaW46IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm90
aWZ5LW11dGF0aW9uLW9ic2VydmVycworCisgICAgICAgIFRlc3Q6IGZhc3Qvc2hhZG93LWRvbS9z
bG90Y2hhbmdlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZVNsb3RjaGFuZ2VFdmVudCk6IERlbGV0ZWQu
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2lnbmFsU2xvdExpc3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2s6OnJ1bik6IG11dGF0aW9uT2Jz
ZXJ2ZXJDb21wb3VuZE1pY3JvdGFza1F1ZXVlZEZsYWcgaXMgbm93IHVuc2V0IGluCisgICAgICAg
IG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzIHRvIGJldHRlciBtYXRjaCB0aGUgY29uY2VwdCB0byAi
bm90aWZ5IG11dGF0aW9uIG9ic2VydmVycyIuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVyOjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNdXRhdGlvbk9ic2VydmVyOjpub3RpZnlNdXRhdGlvbk9ic2VydmVycyk6IFJlbmFtZWQgZnJv
bSBkZWxpdmVyQWxsTXV0YXRpb25zLiBBZGRlZCB0aGUgY29kZQorICAgICAgICB0byBkaXNwYXRj
aCBzbG90Y2hhbmdlIGV2ZW50cyBhcyBzcGVjJ2VkLCBhbmQgYWxzbyBhZGRlZCBjb21tZW50cyBm
b3IgZWFjaCBzdGVwLgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAg
ICogaHRtbC9IVE1MU2xvdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNsb3RF
bGVtZW50OjplbnF1ZXVlU2xvdENoYW5nZUV2ZW50KTogVXNlIE11dGF0aW9uT2JzZXJ2ZXI6OmVu
cXVldWVTbG90Q2hhbmdlRXZlbnQuIERvbid0CisgICAgICAgIGNyZWF0ZSBhbiBldmVudCBoZXJl
IHNpbmNlIHRoYXQgaXMgb25seSBuZWVkZWQgd2hlbiBkaXNwYXRjaGluZyB0aGUgZXZlbnQsIGFu
ZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIKKyAgICAgICAgd2UndmUgYWxyZWFkeSBzY2hlZHVs
ZWQgYW4gZXZlbnQgb3Igbm90LiBVc2UgYSBib29sZWFuIGZsYWcgaW5zdGVhZCBmb3IgdGhlIGxh
dHRlci4gCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2xvdEVsZW1lbnQ6OmRpc3BhdGNoU2xvdENo
YW5nZUV2ZW50KTogQWRkZWQuIENyZWF0ZXMgYW5kIGRpc3BhdGNoZXMgYW4gZXZlbnQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2xvdEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQpOiBEZWxldGVkLgor
ICAgICAgICAqIGh0bWwvSFRNTFNsb3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2xvdEVsZW1lbnQ6OmRpZFJlbW92ZUZyb21TaWduYWxTbG90TGlzdCk6IEFkZGVkLgorCiAyMDE2
LTA2LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNGVl
NTRhNzA5NDBkMTZjMzQyMmY2OGZiYjM3ZGFkNDJjOTlmMjEyZi4uZWQ2MjdlMTlmNzM5ZGQ2YWZl
ZDkyZTE1NDBmZGNjZmY1NjQzZGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00MTcz
LDExICs0MTczLDYgQEAgdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZU92ZXJmbG93RXZlbnQoUmVmPEV2
ZW50PiYmIGV2ZW50KQogICAgIG1fZXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVu
dCkpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2xvdGNoYW5nZUV2ZW50KFJlZjxFdmVu
dD4mJiBldmVudCkKLXsKLSAgICBtX2V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZl
bnQpKTsKLX0KLQogUmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3QgU3Ry
aW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBQbGVhc2UgZG8gKm5vdCog
YWRkIG5ldyBldmVudCBjbGFzc2VzIHRvIHRoaXMgZnVuY3Rpb24gdW5sZXNzIHRoZXkgYXJlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IGVhNDE2OWY3ODkxMWFjMmFjNTJmOTEzOGUyYzZmOGNhYjQ3
Y2JjMzIuLjc5OTc4NjU2NjE5ZDg3MDUyZTNiMDRiYWVmZTBlZTUzYWFjZWZkOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0xMDg1LDcgKzEwODUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnF1
ZXVlV2luZG93RXZlbnQoUmVmPEV2ZW50PiYmKTsKICAgICB2b2lkIGVucXVldWVEb2N1bWVudEV2
ZW50KFJlZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZl
bnQ+JiYpOwotICAgIHZvaWQgZW5xdWV1ZVNsb3RjaGFuZ2VFdmVudChSZWY8RXZlbnQ+JiYpOwog
ICAgIHZvaWQgZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsK
ICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNv
bnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2ZW50KFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc3RhdGVPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDQyZDc5OGM2YzA4NGQxYzdkNjZmMzM0MGU1YTQ1
ZGZmODBjZTM4NTUuLjc1Yjg3OTgxZmJiYTQ3ZDM5MTg4OTk4ZWViZTgwZDVjMzZjZTAxYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRNTFNsb3RFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTWljcm90YXNrcy5oIgogI2luY2x1ZGUgIk11dGF0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRl
ICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCkBAIC0xNDYsNiArMTQ3LDEzIEBAIHN0
YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBzdXNwZW5kZWRNdXRhdGlvbk9ic2VydmVycygpCiAg
ICAgcmV0dXJuIHN1c3BlbmRlZE9ic2VydmVyczsKIH0KIAorLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNzaWduYWwtc2xvdC1saXN0CitzdGF0aWMgVmVjdG9yPFJlZlB0cjxIVE1MU2xv
dEVsZW1lbnQ+PiYgc2lnbmFsU2xvdExpc3QoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxWZWN0b3I8UmVmUHRyPEhUTUxTbG90RWxlbWVudD4+PiBsaXN0OworICAgIHJldHVybiBsaXN0
OworfQorCiBzdGF0aWMgYm9vbCBtdXRhdGlvbk9ic2VydmVyQ29tcG91bmRNaWNyb3Rhc2tRdWV1
ZWRGbGFnOwogCiBjbGFzcyBNdXRhdGlvbk9ic2VydmVyTWljcm90YXNrIGZpbmFsIDogcHVibGlj
IE1pY3JvdGFzayB7CkBAIC0xNTMsOCArMTYxLDcgQEAgY2xhc3MgTXV0YXRpb25PYnNlcnZlck1p
Y3JvdGFzayBmaW5hbCA6IHB1YmxpYyBNaWNyb3Rhc2sgewogcHJpdmF0ZToKICAgICBSZXN1bHQg
cnVuKCkgZmluYWwKICAgICB7Ci0gICAgICAgIG11dGF0aW9uT2JzZXJ2ZXJDb21wb3VuZE1pY3Jv
dGFza1F1ZXVlZEZsYWcgPSBmYWxzZTsKLSAgICAgICAgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZl
ckFsbE11dGF0aW9ucygpOworICAgICAgICBNdXRhdGlvbk9ic2VydmVyOjpub3RpZnlNdXRhdGlv
bk9ic2VydmVycygpOwogICAgICAgICByZXR1cm4gUmVzdWx0OjpEb25lOwogICAgIH0KIH07CkBA
IC0xNzYsNiArMTgzLDE1IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZU11dGF0aW9u
UmVjb3JkKFJlZjxNdXRhdGlvblJlY29yZD4mJiBtdXRhdGlvbikKICAgICBxdWV1ZU11dGF0aW9u
T2JzZXJ2ZXJDb21wb3VuZE1pY3JvdGFzaygpOwogfQogCit2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6
OmVucXVldWVTbG90Q2hhbmdlRXZlbnQoSFRNTFNsb3RFbGVtZW50JiBzbG90KQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFzaWduYWxTbG90TGlzdCgpLmNvbnRh
aW5zKCZzbG90KSk7CisgICAgc2lnbmFsU2xvdExpc3QoKS5hcHBlbmQoJnNsb3QpOworCisgICAg
cXVldWVNdXRhdGlvbk9ic2VydmVyQ29tcG91bmRNaWNyb3Rhc2soKTsKK30KKwogdm9pZCBNdXRh
dGlvbk9ic2VydmVyOjpzZXRIYXNUcmFuc2llbnRSZWdpc3RyYXRpb24oKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CkBAIC0yMjAsOCArMjM2LDEyIEBAIHZvaWQgTXV0YXRpb25PYnNl
cnZlcjo6ZGVsaXZlcigpCiAgICAgbV9jYWxsYmFjay0+Y2FsbChyZWNvcmRzLCB0aGlzKTsKIH0K
IAotdm9pZCBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCkKK3ZvaWQgTXV0
YXRpb25PYnNlcnZlcjo6bm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoKQogeworICAgIC8vIGh0dHBz
Oi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm90aWZ5LW11dGF0aW9uLW9ic2VydmVycworICAgIC8v
IDEuIFVuc2V0IG11dGF0aW9uIG9ic2VydmVyIGNvbXBvdW5kIG1pY3JvdGFzayBxdWV1ZWQgZmxh
Zy4KKyAgICBtdXRhdGlvbk9ic2VydmVyQ29tcG91bmRNaWNyb3Rhc2tRdWV1ZWRGbGFnID0gZmFs
c2U7CisKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIHN0YXRpYyBib29sIGRlbGl2
ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIGlmIChkZWxpdmVyeUluUHJvZ3Jlc3MpCkBAIC0y
NDAsMjAgKzI2MCwzNSBAQCB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlv
bnMoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgd2hpbGUgKCFhY3RpdmVNdXRhdGlvbk9ic2Vy
dmVycygpLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8UmVmUHRyPE11dGF0aW9uT2JzZXJ2
ZXI+PiBvYnNlcnZlcnM7Ci0gICAgICAgIGNvcHlUb1ZlY3RvcihhY3RpdmVNdXRhdGlvbk9ic2Vy
dmVycygpLCBvYnNlcnZlcnMpOworICAgIHdoaWxlICghYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMo
KS5pc0VtcHR5KCkgfHwgIXNpZ25hbFNsb3RMaXN0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8v
IDIuIExldCBub3RpZnkgbGlzdCBiZSBhIGNvcHkgb2YgdW5pdCBvZiByZWxhdGVkIHNpbWlsYXIt
b3JpZ2luIGJyb3dzaW5nIGNvbnRleHRzJyBsaXN0IG9mIE11dGF0aW9uT2JzZXJ2ZXIgb2JqZWN0
cy4KKyAgICAgICAgVmVjdG9yPFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPj4gbm90aWZ5TGlzdDsK
KyAgICAgICAgY29weVRvVmVjdG9yKGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCksIG5vdGlmeUxp
c3QpOwogICAgICAgICBhY3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmNsZWFyKCk7Ci0gICAgICAg
IHN0ZDo6c29ydChvYnNlcnZlcnMuYmVnaW4oKSwgb2JzZXJ2ZXJzLmVuZCgpLCBbXShhdXRvJiBs
aHMsIGF1dG8mIHJocykgeworICAgICAgICBzdGQ6OnNvcnQobm90aWZ5TGlzdC5iZWdpbigpLCBu
b3RpZnlMaXN0LmVuZCgpLCBbXShhdXRvJiBsaHMsIGF1dG8mIHJocykgewogICAgICAgICAgICAg
cmV0dXJuIGxocy0+bV9wcmlvcml0eSA8IHJocy0+bV9wcmlvcml0eTsKICAgICAgICAgfSk7CiAK
LSAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG9ic2VydmVycykgeworICAgICAgICAvLyAz
LiBMZXQgc2lnbmFsTGlzdCBiZSBhIGNvcHkgb2YgdW5pdCBvZiByZWxhdGVkIHNpbWlsYXItb3Jp
Z2luIGJyb3dzaW5nIGNvbnRleHRzJyBzaWduYWwgc2xvdCBsaXN0LgorICAgICAgICAvLyA0LiBF
bXB0eSB1bml0IG9mIHJlbGF0ZWQgc2ltaWxhci1vcmlnaW4gYnJvd3NpbmcgY29udGV4dHMnIHNp
Z25hbCBzbG90IGxpc3QuCisgICAgICAgIFZlY3RvcjxSZWZQdHI8SFRNTFNsb3RFbGVtZW50Pj4g
c2xvdExpc3Q7CisgICAgICAgIGlmICghc2lnbmFsU2xvdExpc3QoKS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIHNsb3RMaXN0LnN3YXAoc2lnbmFsU2xvdExpc3QoKSk7CisgICAgICAgICAgICBm
b3IgKGF1dG8mIHNsb3QgOiBzbG90TGlzdCkKKyAgICAgICAgICAgICAgICBzbG90LT5kaWRSZW1v
dmVGcm9tU2lnbmFsU2xvdExpc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIDUuIEZvciBl
YWNoIE11dGF0aW9uT2JzZXJ2ZXIgb2JqZWN0IG1vIGluIG5vdGlmeSBsaXN0LCBleGVjdXRlIGEg
Y29tcG91bmQgbWljcm90YXNrIHN1YnRhc2sKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6
IG5vdGlmeUxpc3QpIHsKICAgICAgICAgICAgIGlmIChvYnNlcnZlci0+Y2FuRGVsaXZlcigpKQog
ICAgICAgICAgICAgICAgIG9ic2VydmVyLT5kZWxpdmVyKCk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgc3VzcGVuZGVkTXV0YXRpb25PYnNlcnZlcnMoKS5hZGQob2JzZXJ2ZXIp
OwogICAgICAgICB9CisKKyAgICAgICAgLy8gNi4gRm9yIGVhY2ggc2xvdCBzbG90IGluIHNpZ25h
bExpc3QsIGluIG9yZGVyLCBmaXJlIGFuIGV2ZW50IG5hbWVkIHNsb3RjaGFuZ2UsIHdpdGggaXRz
IGJ1YmJsZXMgYXR0cmlidXRlIHNldCB0byB0cnVlLCBhdCBzbG90LgorICAgICAgICBmb3IgKGF1
dG8mIHNsb3QgOiBzbG90TGlzdCkKKyAgICAgICAgICAgIHNsb3QtPmRpc3BhdGNoU2xvdENoYW5n
ZUV2ZW50KCk7CiAgICAgfQogCiAgICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAppbmRleCA5MjM3YzUxNTIwM2U3Nzk5Y2I2OWZi
ZDY5ZjM2NWE2OGE5MTY3MWJlLi4yYmM3ZGQ1MTE3ZTc0OGU5ZDczOWRmMjA3Y2E5YzhkYTliMjM0
YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKQEAgLTM5LDYgKzM5LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7CiBjbGFz
cyBNdXRhdGlvbkNhbGxiYWNrOwogY2xhc3MgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjsK
IGNsYXNzIE11dGF0aW9uUmVjb3JkOwpAQCAtOTYsMTEgKzk3LDEzIEBAIHB1YmxpYzoKIAogICAg
IEhhc2hTZXQ8Tm9kZSo+IG9ic2VydmVkTm9kZXMoKSBjb25zdDsKIAorICAgIHN0YXRpYyB2b2lk
IGVucXVldWVTbG90Q2hhbmdlRXZlbnQoSFRNTFNsb3RFbGVtZW50Jik7CisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAg
ICAgdm9pZCBkZWxpdmVyKCk7CiAKLSAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRpb25z
KCk7CisgICAgc3RhdGljIHZvaWQgbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoKTsKICAgICBzdGF0
aWMgYm9vbCB2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMpOwogCiAgICAg
UmVmPE11dGF0aW9uQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
bG90RWxlbWVudC5jcHAKaW5kZXggNjBkODA2ZDFjYjIyN2RkZjExNTIwM2I1ZWJiNTIwMDQ1Yzhh
OGFlNi4uZjFjMzQ4ZDU5Mzc3YWQwMDRkYWQwNzk4ZDQ2NTIzZjBiYWI0M2Y5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNiwyMiArMTI3LDIyIEBAIFZlY3RvcjxO
b2RlKj4gSFRNTFNsb3RFbGVtZW50Ojphc3NpZ25lZE5vZGVzKGNvbnN0IEFzc2lnbmVkTm9kZXNP
cHRpb25zJiBvcHRpb25zCiAKIHZvaWQgSFRNTFNsb3RFbGVtZW50OjplbnF1ZXVlU2xvdENoYW5n
ZUV2ZW50KCkKIHsKLSAgICBpZiAobV9lbnF1ZXVlZFNsb3RDaGFuZ2VFdmVudCkKKyAgICAvLyBo
dHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3NpZ25hbC1hLXNsb3QtY2hhbmdlCisgICAgaWYg
KG1faW5TaWduYWxTbG90TGlzdCkKICAgICAgICAgcmV0dXJuOworICAgIG1faW5TaWduYWxTbG90
TGlzdCA9IHRydWU7CisgICAgTXV0YXRpb25PYnNlcnZlcjo6ZW5xdWV1ZVNsb3RDaGFuZ2VFdmVu
dCgqdGhpcyk7Cit9CisKK3ZvaWQgSFRNTFNsb3RFbGVtZW50OjpkaXNwYXRjaFNsb3RDaGFuZ2VF
dmVudCgpCit7CisgICAgbV9pblNpZ25hbFNsb3RMaXN0ID0gZmFsc2U7CiAKICAgICBib29sIGJ1
YmJsZXMgPSBmYWxzZTsKICAgICBib29sIGNhbmNlbGFibGUgPSBmYWxzZTsKLSAgICBhdXRvIGV2
ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2xvdGNoYW5nZUV2ZW50LCBidWJibGVz
LCBjYW5jZWxhYmxlKTsKKyAgICBSZWY8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuc2xvdGNoYW5nZUV2ZW50LCBidWJibGVzLCBjYW5jZWxhYmxlKTsKICAgICBldmVu
dC0+c2V0VGFyZ2V0KHRoaXMpOwotICAgIG1fZW5xdWV1ZWRTbG90Q2hhbmdlRXZlbnQgPSBldmVu
dC5wdHIoKTsKLSAgICBkb2N1bWVudCgpLmVucXVldWVTbG90Y2hhbmdlRXZlbnQoV1RGTW92ZShl
dmVudCkpOwotfQotCi1ib29sIEhUTUxTbG90RWxlbWVudDo6ZGlzcGF0Y2hFdmVudChFdmVudCYg
ZXZlbnQpCi17Ci0gICAgaWYgKCZldmVudCA9PSBtX2VucXVldWVkU2xvdENoYW5nZUV2ZW50KQot
ICAgICAgICBtX2VucXVldWVkU2xvdENoYW5nZUV2ZW50ID0gbnVsbHB0cjsKLSAgICByZXR1cm4g
SFRNTEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTbG90RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaAppbmRleCBkMDcx
MWE1NzE5YmVkMzBiNWNjYWVlMWYzZGZhOGRiYTE5MGRiMTZlLi4wNzM0NjY0YmY2MTg2OTk0MzVl
NDk1YmEwMGFkODJlODg4NGVjZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTbG90RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50
LmgKQEAgLTQyLDYgKzQyLDkgQEAgcHVibGljOgogICAgIFZlY3RvcjxOb2RlKj4gYXNzaWduZWRO
b2Rlcyhjb25zdCBBc3NpZ25lZE5vZGVzT3B0aW9ucyYpIGNvbnN0OwogCiAgICAgdm9pZCBlbnF1
ZXVlU2xvdENoYW5nZUV2ZW50KCk7CisgICAgdm9pZCBkaWRSZW1vdmVGcm9tU2lnbmFsU2xvdExp
c3QoKSB7IG1faW5TaWduYWxTbG90TGlzdCA9IGZhbHNlOyB9CisKKyAgICB2b2lkIGRpc3BhdGNo
U2xvdENoYW5nZUV2ZW50KCk7CiAKIHByaXZhdGU6CiAgICAgSFRNTFNsb3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpAQCAtNDksOSArNTIsOCBAQCBwcml2YXRlOgog
ICAgIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5v
ZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
ICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7Ci0gICAgYm9vbCBkaXNwYXRjaEV2ZW50KEV2
ZW50JikgZmluYWw7CiAKLSAgICBFdmVudCogbV9lbnF1ZXVlZFNsb3RDaGFuZ2VFdmVudCB7IG51
bGxwdHIgfTsKKyAgICBib29sIG1faW5TaWduYWxTbG90TGlzdCB7IGZhbHNlIH07CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMGQ0NTI5MGJmNzNmMmRjNWJkMTFkYmFlMjlhOGQzYmQxMDdjMTYzNi4uZGI5ZTYz
ZWRjMDUzYmI0Nzc3NmY2NWY4NzhiZGNkODhkZjdiYmJiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE2LTA2LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IHNsb3RjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGF0IHRoZSBlbmQgb2YgbWljcm90YXNr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTczNzQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MTU0MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCBjYXNlIHRvIGVuc3VyZSBz
bG90Y2hhbmdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXQgdGhlIGVuZCBvZiBhIG1pY3JvdGFzay4K
KworICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1sOgorCiAy
MDE2LTA2LTA3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFNraXBwaW5nIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdXBncmFkZS1zaW1wbGUt
d3MuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFu
Z2UtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3Rj
aGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IGZkNzAyOGY5ZTlkNWY1YTAwYTYzZjcwY2Fh
MDYzYTY1ZmNkMzU0YjEuLjA3YTFhZWQyNzAwYTRjYzY1ZGM4NmRiOWVkZjQ0ZDg1NTliYmE0ZTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vc2xvdGNoYW5n
ZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTI5LDQgKzI5LDggQEAgUEFTUyBzbG90Y2hhbmdlIGV2
ZW50IG11c3QgZmlyZSBvbiBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9v
dCAgaW4KIFBBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgb24gYSBzbG90IGVsZW1lbnQg
aW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gbmVzdGVkIHNs
b3RzJ3MgY29udGVudHMgY2hhbmdlIAogUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBv
biBhIHNsb3QgZWxlbWVudCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9j
dW1lbnQgd2hlbiBuZXN0ZWQgc2xvdHMncyBjb250ZW50cyBjaGFuZ2UgCiBQQVNTIHNsb3RjaGFu
Z2UgZXZlbnQgbXVzdCBmaXJlIG9uIGEgc2xvdCBlbGVtZW50IGluc2lkZSBhIGNsb3NlZCBzaGFk
b3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBuZXN0ZWQgc2xvdHMncyBjb250ZW50cyBj
aGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2YgY3Vy
cmVudCBtaWNyb3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGluc2lk
ZSBhbiBvcGVuIHNoYWRvdyByb290ICBpbiBhIGRvY3VtZW50IHdoZW4gc2xvdHMncyBjb250ZW50
cyBjaGFuZ2UgCitQQVNTIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBmaXJlIGF0IHRoZSBlbmQgb2Yg
Y3VycmVudCBtaWNyb3Rhc2sgYWZ0ZXIgbXV0YXRpb24gb2JzZXJ2ZXJzIGFyZSBpbnZva2VkIGlu
c2lkZSBhIGNsb3NlZCBzaGFkb3cgcm9vdCAgaW4gYSBkb2N1bWVudCB3aGVuIHNsb3RzJ3MgY29u
dGVudHMgY2hhbmdlIAorUEFTUyBzbG90Y2hhbmdlIGV2ZW50IG11c3QgZmlyZSBhdCB0aGUgZW5k
IG9mIGN1cnJlbnQgbWljcm90YXNrIGFmdGVyIG11dGF0aW9uIG9ic2VydmVycyBhcmUgaW52b2tl
ZCBpbnNpZGUgYW4gb3BlbiBzaGFkb3cgcm9vdCAgbm90IGluIGEgZG9jdW1lbnQgd2hlbiBzbG90
cydzIGNvbnRlbnRzIGNoYW5nZSAKK1BBU1Mgc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgYXQg
dGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFzayBhZnRlciBtdXRhdGlvbiBvYnNlcnZlcnMgYXJl
IGludm9rZWQgaW5zaWRlIGEgY2xvc2VkIHNoYWRvdyByb290ICBub3QgaW4gYSBkb2N1bWVudCB3
aGVuIHNsb3RzJ3MgY29udGVudHMgY2hhbmdlIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vc2xvdGNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQuaHRtbAppbmRleCBkNGI4YmVmZGJiMzIxNjkxZWQ3
OTk0NGY5MzEwNzVmYmYwMGU1YmM4Li42NjAzOGZhODJlMmMyYWU2OTlhZjU2N2NhZGYyYmFjYzVm
ZTA3M2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vc2xvdGNoYW5n
ZS1ldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdl
LWV2ZW50Lmh0bWwKQEAgLTUzNCw2ICs1MzQsODYgQEAgdGVzdFNsb3RjaGFuZ2VGaXJlc1doZW5O
ZXN0ZWRTbG90Q2hhbmdlKCdjbG9zZWQnLCB0cnVlKTsKIHRlc3RTbG90Y2hhbmdlRmlyZXNXaGVu
TmVzdGVkU2xvdENoYW5nZSgnb3BlbicsIGZhbHNlKTsKIHRlc3RTbG90Y2hhbmdlRmlyZXNXaGVu
TmVzdGVkU2xvdENoYW5nZSgnY2xvc2VkJywgZmFsc2UpOwogCitmdW5jdGlvbiB0ZXN0U2xvdGNo
YW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzayhtb2RlLCBjb25uZWN0ZWRUb0RvY3VtZW50KQorewor
ICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnc2xvdGNoYW5nZSBldmVudCBtdXN0IGZpcmUgYXQg
dGhlIGVuZCBvZiBjdXJyZW50IG1pY3JvdGFzayBhZnRlciBtdXRhdGlvbiBvYnNlcnZlcnMgYXJl
IGludm9rZWQgaW5zaWRlICcKKyAgICAgICAgKyB0cmVlTmFtZShtb2RlLCBjb25uZWN0ZWRUb0Rv
Y3VtZW50KSArICcgd2hlbiBzbG90c1wncyBjb250ZW50cyBjaGFuZ2UnKTsKKworICAgIHZhciBv
dXRlckhvc3Q7CisgICAgdmFyIGlubmVySG9zdDsKKyAgICB2YXIgb3V0ZXJTbG90OworICAgIHZh
ciBpbm5lclNsb3Q7CisgICAgdmFyIHNsb3RjaGFuZ2VFdmVudHMgPSBbXTsKKworICAgIHRlc3Qu
c3RlcChmdW5jdGlvbiAoKSB7CisgICAgICAgIG91dGVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgICAgICBpZiAoY29ubmVjdGVkVG9Eb2N1bWVudCkKKyAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJIb3N0KTsKKworICAgICAgICB2YXIg
b3V0ZXJTaGFkb3cgPSBvdXRlckhvc3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKKyAg
ICAgICAgb3V0ZXJTaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpKTsKKyAgICAgICAgb3V0ZXJTbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcp
OworICAgICAgICBvdXRlclNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIGZ1bmN0
aW9uIChldmVudCkgeworICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAg
ICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZXZlbnQudGFyZ2V0LCBvdXRlclNsb3QsICdzbG90Y2hhbmdlIGV2ZW50XCdzIHRhcmdl
dCBtdXN0IGJlIHRoZSBzbG90IGVsZW1lbnQnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgc2xvdGNoYW5nZUV2ZW50cy5wdXNoKCdvdXRlcicpOworICAgICAgICB9KTsKKworICAgICAg
ICBpbm5lckhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgaW5u
ZXJIb3N0LmFwcGVuZENoaWxkKG91dGVyU2xvdCk7CisgICAgICAgIG91dGVyU2hhZG93LmFwcGVu
ZENoaWxkKGlubmVySG9zdCk7CisKKyAgICAgICAgdmFyIGlubmVyU2hhZG93ID0gaW5uZXJIb3N0
LmF0dGFjaFNoYWRvdyh7J21vZGUnOiBtb2RlfSk7CisgICAgICAgIGlubmVyU2hhZG93LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisgICAgICAgIGlubmVyU2xv
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgaW5uZXJTbG90LmFk
ZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgaW5u
ZXJTbG90LCAnc2xvdGNoYW5nZSBldmVudFwncyB0YXJnZXQgbXVzdCBiZSB0aGUgc2xvdCBlbGVt
ZW50Jyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNsb3RjaGFuZ2VFdmVudHMucHVz
aCgnaW5uZXInKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlubmVyU2hhZG93LmFwcGVuZENoaWxk
KGlubmVyU2xvdCk7CisKKyAgICAgICAgb3V0ZXJIb3N0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzbG90Y2hhbmdl
RXZlbnRzLmxlbmd0aCwgMCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgc3lu
Y2hyb25vdXNseScpOworICAgIH0pOworCisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKworICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoc2xvdGNoYW5nZUV2ZW50cy5sZW5ndGgsIDAsICdzbG90Y2hhbmdlIGV2ZW50IG11c3Qg
bm90IGJlIGZpcmVkIGJlZm9yZSBtdXRhdGlvbiByZWNvcmRzIGFyZSBkZWxpdmVyZWQnKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsICdiYXInKTsK
KyAgICAgICAgaW5uZXJIb3N0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKSk7CisgICAgfSkub2JzZXJ2ZShlbGVtZW50LCB7YXR0cmlidXRlczogdHJ1ZSwgYXR0cmli
dXRlRmlsdGVyOiBbJ2lkJ119KTsKKworICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoc2xvdGNoYW5nZUV2ZW50cywgWydvdXRlcicsICdpbm5lciddLCAnc2xv
dGNoYW5nZSBldmVudCBtdXN0IGJlIGZpcmVkIGR1cmluZyBhIHNpbmdsZSBjb21wb3VuZCBtaWNy
b3Rhc2snKTsKKyAgICAgICAgfSk7CisgICAgfSkub2JzZXJ2ZShlbGVtZW50LCB7YXR0cmlidXRl
czogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ3RpdGxlJ119KTsKKworICAgIGVsZW1lbnQuc2V0
QXR0cmlidXRlKCdpZCcsICdmb28nKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewor
ICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhzbG90Y2hhbmdlRXZlbnRzLCBbJ291dGVyJywgJ2lubmVyJywgJ2lubmVyJ10sCisg
ICAgICAgICAgICAgICAgJ2EgZGlzdGluY3Qgc2xvdGNoYW5nZSBldmVudCBtdXN0IGJlIGVucXVl
dWVkIGZvciBjaGFuZ2VzIG1hZGUgZHVyaW5nIGEgbXV0YXRpb24gb2JzZXJ2ZXIgZGVsaXZlcnkn
KTsKKyAgICAgICAgfSk7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0sIDApOworfQorCit0
ZXN0U2xvdGNoYW5nZUZpcmVzQXRFbmRPZk1pY3JvVGFzaygnb3BlbicsIHRydWUpOwordGVzdFNs
b3RjaGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ2Nsb3NlZCcsIHRydWUpOwordGVzdFNsb3Rj
aGFuZ2VGaXJlc0F0RW5kT2ZNaWNyb1Rhc2soJ29wZW4nLCBmYWxzZSk7Cit0ZXN0U2xvdGNoYW5n
ZUZpcmVzQXRFbmRPZk1pY3JvVGFzaygnY2xvc2VkJywgZmFsc2UpOworCiA8L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>