<?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>163398</bug_id>
          
          <creation_ts>2016-10-13 11:46:52 -0700</creation_ts>
          <short_desc>Get rid of the HistoryItemVector typedef</short_desc>
          <delta_ts>2016-10-13 12:29:05 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239870</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-10-13 11:46:52 -0700</bug_when>
    <thetext>Get rid of the HistoryItemVector typedef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239873</commentid>
    <comment_count>1</comment_count>
      <attachid>291501</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-10-13 11:48:15 -0700</bug_when>
    <thetext>Created attachment 291501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239893</commentid>
    <comment_count>2</comment_count>
      <attachid>291504</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-10-13 12:11:03 -0700</bug_when>
    <thetext>Created attachment 291504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239897</commentid>
    <comment_count>3</comment_count>
      <attachid>291504</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-13 12:16:32 -0700</bug_when>
    <thetext>Comment on attachment 291504
Patch

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

&gt; Source/WebCore/history/BackForwardList.h:59
&gt; +    WEBCORE_EXPORT void backListWithLimit(int, Vector&lt;Ref&lt;HistoryItem&gt;&gt;&amp;);
&gt; +    WEBCORE_EXPORT void forwardListWithLimit(int, Vector&lt;Ref&lt;HistoryItem&gt;&gt;&amp;);

Shouldn&apos;t these be return values instead of out arguments?

&gt; Source/WebCore/loader/HistoryController.cpp:789
&gt; +    const auto&amp; childItems = item-&gt;children();

I would have just used auto&amp; here.

&gt; Source/WebKit/mac/History/WebHistoryItem.mm:238
&gt; +        const auto&amp; children = coreItem-&gt;children();

Ditto.

&gt; Source/WebKit/mac/History/WebHistoryItem.mm:459
&gt; +        const auto&amp; children = coreItem-&gt;children();

Ditto.

&gt; Source/WebKit/mac/History/WebHistoryItem.mm:513
&gt; +    const auto&amp; children = core(_private)-&gt;children();

Ditto.

&gt; Source/WebKit/win/WebHistoryItem.cpp:292
&gt; +    const auto&amp; coreChildren = m_historyItem-&gt;children();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239898</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-10-13 12:18:01 -0700</bug_when>
    <thetext>Committed r207300: &lt;http://trac.webkit.org/changeset/207300&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239905</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-10-13 12:29:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 291504 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291504&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/history/BackForwardList.h:59
&gt; &gt; +    WEBCORE_EXPORT void backListWithLimit(int, Vector&lt;Ref&lt;HistoryItem&gt;&gt;&amp;);
&gt; &gt; +    WEBCORE_EXPORT void forwardListWithLimit(int, Vector&lt;Ref&lt;HistoryItem&gt;&gt;&amp;);
&gt; 
&gt; Shouldn&apos;t these be return values instead of out arguments?
&gt; 
&gt; &gt; Source/WebCore/loader/HistoryController.cpp:789
&gt; &gt; +    const auto&amp; childItems = item-&gt;children();
&gt; 
&gt; I would have just used auto&amp; here.
&gt; 
&gt; &gt; Source/WebKit/mac/History/WebHistoryItem.mm:238
&gt; &gt; +        const auto&amp; children = coreItem-&gt;children();
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/mac/History/WebHistoryItem.mm:459
&gt; &gt; +        const auto&amp; children = coreItem-&gt;children();
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/mac/History/WebHistoryItem.mm:513
&gt; &gt; +    const auto&amp; children = core(_private)-&gt;children();
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/win/WebHistoryItem.cpp:292
&gt; &gt; +    const auto&amp; coreChildren = m_historyItem-&gt;children();
&gt; 
&gt; Ditto.

I intend to change this code more, a lot of these are probably going away.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291501</attachid>
            <date>2016-10-13 11:48:15 -0700</date>
            <delta_ts>2016-10-13 12:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163398-20161013114449.patch</filename>
            <type>text/plain</type>
            <size>13659</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZjYTQyMGEwMGMxYTZk
NjRkMjUzODk5MGI1YzdhODEzMGM4ZGQzNC4uMGU2NTRlYTU1NDllM2YwM2M3YmQzZTUzNGJkYjY0
MzcwZjFiZjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTEwLTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB0
aGUgSGlzdG9yeUl0ZW1WZWN0b3IgdHlwZWRlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRXhwYW5kIHRoZSBIaXN0b3J5aXRlbVZlY3RvciB0eXBlZGVm
IGluc3RlYWQgdG8gbWFrZSBpdCBtb3JlIGNsZWFyIHdoYXQgdHlwZXMgd2UgYXJlIGRlYWxpbmcg
d2l0aC4KKworICAgICAgICAqIGhpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RXaXRoTGltaXQpOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdFdpdGhMaW1pdCk6CisgICAgICAg
IChXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3Q6OmVudHJpZXMpOgorICAgICAgICAqIGhpc3Rvcnkv
QmFja0ZvcndhcmRMaXN0Lmg6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y2hpbGRyZW4pOgorICAgICAgICAqIGhpc3Rv
cnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OmN1cnJlbnRGcmFtZXNNYXRj
aEl0ZW0pOgorCiAyMDE2LTEwLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIENSQVNIIGF0IFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlQ29kZWRGcmFt
ZXMgKyAzNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQ2YjMxNjNjNjU1NmFlN2UxYWQ4ZTlhMWZiZTMz
YzI1ZTA4ZGQyNzMuLmE2ZDJlZWNkNWVlZjliNzZhMmYxZTc4NGNlZjI2M2JjZDUxYTE3NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0xMC0xMyAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIEhpc3Rv
cnlJdGVtVmVjdG9yIHR5cGVkZWYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzM5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEV4cGFuZCB0aGUgSGlzdG9yeWl0ZW1WZWN0b3IgdHlwZWRlZiBpbnN0ZWFk
IHRvIG1ha2UgaXQgbW9yZSBjbGVhciB3aGF0IHR5cGVzIHdlIGFyZSBkZWFsaW5nIHdpdGguCisK
KyAgICAgICAgKiBIaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbToKKyAgICAgICAgKC1bV2Vi
QmFja0ZvcndhcmRMaXN0IGRpY3Rpb25hcnlSZXByZXNlbnRhdGlvbl0pOgorICAgICAgICAodmVj
dG9yVG9OU0FycmF5KToKKyAgICAgICAgKC1bV2ViQmFja0ZvcndhcmRMaXN0IGJhY2tMaXN0V2l0
aExpbWl0Ol0pOgorICAgICAgICAoLVtXZWJCYWNrRm9yd2FyZExpc3QgZm9yd2FyZExpc3RXaXRo
TGltaXQ6XSk6CisgICAgICAgICgtW1dlYkJhY2tGb3J3YXJkTGlzdCBkZXNjcmlwdGlvbl0pOgor
ICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgtW1dlYkhpc3Rv
cnlJdGVtIGRlc2NyaXB0aW9uXSk6CisKIDIwMTYtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIElETF0gRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kg
W0NvbnN0cnVjdG9yQ29uZGl0aW9uYWw9Kl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxNDNlOTA1MThi
NzZiNjNhZjI2YWNhMTU5ODhiYzBlM2ViMjk2ZTY5Li5lYTEyYzRhYWMxNmFiNWQzNGE5NjE5ODgx
YjlkYThkOTQ3ZGY4OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYt
MTAtMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBH
ZXQgcmlkIG9mIHRoZSBIaXN0b3J5SXRlbVZlY3RvciB0eXBlZGVmCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzOTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBhbmQgdGhlIEhpc3RvcnlpdGVtVmVj
dG9yIHR5cGVkZWYgaW5zdGVhZCB0byBtYWtlIGl0IG1vcmUgY2xlYXIgd2hhdCB0eXBlcyB3ZSBh
cmUgZGVhbGluZyB3aXRoLgorCisgICAgICAgICogV2ViQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RXaXRoTGltaXQpOgorICAgICAgICAo
V2ViQmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdFdpdGhMaW1pdCk6CisgICAgICAgICogV2Vi
SGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAoV2ViSGlzdG9yeUl0ZW06OmNoaWxkcmVuKToKKwog
MjAxNi0xMC0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2luXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjA3MjE4LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDVhMzc4ZDc1ZGNhZTRjNTljYzg4
YWZiZDRhMmJkNWQ2MGE5ZmZmYTkuLmJjM2IyNzAxN2I5YmY2ZTMwYWZmMTllZTcwZTgwZWNhMWU0
ZDFlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5jcHAKQEAg
LTEzNiw3ICsxMzYsNyBAQCBIaXN0b3J5SXRlbSogQmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkSXRl
bSgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgQmFja0ZvcndhcmRMaXN0OjpiYWNr
TGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIEhpc3RvcnlJdGVtVmVjdG9yJiBsaXN0KQordm9pZCBC
YWNrRm9yd2FyZExpc3Q6OmJhY2tMaXN0V2l0aExpbWl0KGludCBsaW1pdCwgVmVjdG9yPFJlZjxI
aXN0b3J5SXRlbT4+JiBsaXN0KQogewogICAgIGxpc3QuY2xlYXIoKTsKICAgICBpZiAobV9jdXJy
ZW50ICE9IE5vQ3VycmVudEl0ZW1JbmRleCkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgQmFj
a0ZvcndhcmRMaXN0OjpiYWNrTGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIEhpc3RvcnlJdGVtVmVj
dG9yJiBsaXN0KQogICAgIH0KIH0KIAotdm9pZCBCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRMaXN0
V2l0aExpbWl0KGludCBsaW1pdCwgSGlzdG9yeUl0ZW1WZWN0b3ImIGxpc3QpCit2b2lkIEJhY2tG
b3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RXaXRoTGltaXQoaW50IGxpbWl0LCBWZWN0b3I8UmVmPEhp
c3RvcnlJdGVtPj4mIGxpc3QpCiB7CiAgICAgQVNTRVJUKGxpbWl0ID4gLTEpOwogICAgIGxpc3Qu
Y2xlYXIoKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBIaXN0b3J5SXRlbSogQmFja0ZvcndhcmRMaXN0
OjppdGVtQXRJbmRleChpbnQgaW5kZXgpCiAgICAgcmV0dXJuIG1fZW50cmllc1tpbmRleCArIG1f
Y3VycmVudF0ucHRyKCk7CiB9CiAKLUhpc3RvcnlJdGVtVmVjdG9yJiBCYWNrRm9yd2FyZExpc3Q6
OmVudHJpZXMoKQorVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+JiBCYWNrRm9yd2FyZExpc3Q6OmVu
dHJpZXMoKQogewogICAgIHJldHVybiBtX2VudHJpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9CYWNrRm9yd2FyZExpc3QuaAppbmRleCAzZWNhMjA4MmYxMWJjZTBiOWNmMWVjNDg1ZjcwNDJl
YjM3Zjk2MzZkLi41N2M0NGFiZDhjODBkNTE4NDliNzI1OGY5ODhlOWVkMTk3ODAyM2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKQEAgLTM2LDcgKzM2LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYWdlOwogCi10eXBlZGVmIFZlY3RvcjxSZWY8
SGlzdG9yeUl0ZW0+PiBIaXN0b3J5SXRlbVZlY3RvcjsKIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8
SGlzdG9yeUl0ZW0+PiBIaXN0b3J5SXRlbUhhc2hTZXQ7CiAKIGNsYXNzIEJhY2tGb3J3YXJkTGlz
dCA6IHB1YmxpYyBCYWNrRm9yd2FyZENsaWVudCB7CkBAIC01Niw4ICs1NSw4IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBIaXN0b3J5SXRlbSogZm9yd2FyZEl0ZW0oKTsKICAgICBIaXN0
b3J5SXRlbSogaXRlbUF0SW5kZXgoaW50KSBvdmVycmlkZTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgYmFja0xpc3RXaXRoTGltaXQoaW50LCBIaXN0b3J5SXRlbVZlY3RvciYpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZm9yd2FyZExpc3RXaXRoTGltaXQoaW50LCBIaXN0b3J5SXRlbVZl
Y3RvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYmFja0xpc3RXaXRoTGltaXQoaW50LCBW
ZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvcndh
cmRMaXN0V2l0aExpbWl0KGludCwgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+Jik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBpbnQgY2FwYWNpdHkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dENhcGFjaXR5KGludCk7CkBAIC03MSw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGNsb3NlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVJdGVt
KEhpc3RvcnlJdGVtKik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSGlzdG9yeUl0ZW1WZWN0b3ImIGVu
dHJpZXMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4mIGVu
dHJpZXMoKTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBjdXJyZW50KCkgb3Zl
cnJpZGU7CkBAIC04NCw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgQmFja0ZvcndhcmRMaXN0KFBhZ2UqKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKLSAgICBI
aXN0b3J5SXRlbVZlY3RvciBtX2VudHJpZXM7CisgICAgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+
IG1fZW50cmllczsKICAgICBIaXN0b3J5SXRlbUhhc2hTZXQgbV9lbnRyeUhhc2g7CiAgICAgdW5z
aWduZWQgbV9jdXJyZW50OwogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmluZGV4IGM4MmYxNTk2YjBhNTI5NGEzOTA5OGY2OWU5NjY1
Y2IwYWRjYzNmOGQuLmZiZWFhOTZhYTIzMjk2YTE0OGFjNTQ4Y2Q2MDY1ZjkzNTVhODE0ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAg
SGlzdG9yeUl0ZW0qIEhpc3RvcnlJdGVtOjpjaGlsZEl0ZW1XaXRoRG9jdW1lbnRTZXF1ZW5jZU51
bWJlcihsb25nIGxvbmcgbnVtYmVyKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1jb25zdCBI
aXN0b3J5SXRlbVZlY3RvciYgSGlzdG9yeUl0ZW06OmNoaWxkcmVuKCkgY29uc3QKK2NvbnN0IFZl
Y3RvcjxSZWY8SGlzdG9yeUl0ZW0+PiYgSGlzdG9yeUl0ZW06OmNoaWxkcmVuKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9jaGlsZHJlbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0u
aAppbmRleCA4YmZiNGZjNWNkNWU0NzQ4ODg0MTM0N2MyZTM0ZTEwOGY1YTY0OGIzLi4zOWY1MTE0
YmRkMmY2ZTI5YjJmZmIzODU1N2NhZGYyODRjYWZkOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9I
aXN0b3J5SXRlbS5oCkBAIC01Niw4ICs1Niw2IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNs
YXNzIFVSTDsKIGVudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbjsKIAotdHlwZWRlZiBWZWN0b3I8UmVm
PEhpc3RvcnlJdGVtPj4gSGlzdG9yeUl0ZW1WZWN0b3I7Ci0KIFdFQkNPUkVfRVhQT1JUIGV4dGVy
biB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSopOwogCiBjbGFz
cyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7CkBAIC0xNDMs
NyArMTQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2hpbGRJdGVtKFJlZjxIaXN0b3J5SXRl
bT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGlzdG9yeUl0ZW0qIGNoaWxkSXRlbVdpdGhUYXJn
ZXQoY29uc3QgU3RyaW5nJik7CiAgICAgSGlzdG9yeUl0ZW0qIGNoaWxkSXRlbVdpdGhEb2N1bWVu
dFNlcXVlbmNlTnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IEhpc3RvcnlJdGVtVmVjdG9yJiBjaGlsZHJlbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIGNvbnN0IFZlY3RvcjxSZWY8SGlzdG9yeUl0ZW0+PiYgY2hpbGRyZW4oKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0NoaWxkcmVuKCkgY29uc3Q7CiAgICAgdm9pZCBjbGVh
ckNoaWxkcmVuKCk7CiAgICAgYm9vbCBpc0FuY2VzdG9yT2YoY29uc3QgSGlzdG9yeUl0ZW0mKSBj
b25zdDsKQEAgLTIzMyw3ICsyMzEsNyBAQCBwcml2YXRlOgogCiAgICAgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OwogICAgIAotICAgIEhpc3RvcnlJ
dGVtVmVjdG9yIG1fY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+IG1fY2hp
bGRyZW47CiAgICAgCiAgICAgYm9vbCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmU7CiAgICAgYm9vbCBt
X2lzVGFyZ2V0SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
Y3BwCmluZGV4IGNmNmUxOWNhMWViZDYxNGRjNmIwOTYwNmJkMTgyZTMzYzJmMWUzZjIuLjNlZjU4
ZmZiYTQxMTk4MDMyZDEyMzQxYzk3YWUyMmU3ODRkMTQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtNzg2LDcgKzc4Niw3IEBAIGJvb2wgSGlz
dG9yeUNvbnRyb2xsZXI6OmN1cnJlbnRGcmFtZXNNYXRjaEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0p
IGNvbnN0CiAgICAgaWYgKCghbV9mcmFtZS50cmVlKCkudW5pcXVlTmFtZSgpLmlzRW1wdHkoKSB8
fCAhaXRlbS0+dGFyZ2V0KCkuaXNFbXB0eSgpKSAmJiBtX2ZyYW1lLnRyZWUoKS51bmlxdWVOYW1l
KCkgIT0gaXRlbS0+dGFyZ2V0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0g
ICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkSXRlbXMgPSBpdGVtLT5jaGlsZHJlbigp
OworICAgIGNvbnN0IGF1dG8mIGNoaWxkSXRlbXMgPSBpdGVtLT5jaGlsZHJlbigpOwogICAgIGlm
IChjaGlsZEl0ZW1zLnNpemUoKSAhPSBtX2ZyYW1lLnRyZWUoKS5jaGlsZENvdW50KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0hp
c3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9X
ZWJCYWNrRm9yd2FyZExpc3QubW0KaW5kZXggNGY3NmRiN2QwOTc2YmY5ZGUxOTM5YWQxMDMxMmU3
MDdkYmYwNDk1Yi4uZjAyY2FlYmQxMGQzMTk5OGVjMjMzNDcwZjE3MmYxM2QzNzM3ZDNmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KQEAg
LTE2MCw3ICsxNjAsNyBAQCBXZWJCYWNrRm9yd2FyZExpc3QgKmtpdChCYWNrRm9yd2FyZExpc3Qq
IGJhY2tGb3J3YXJkTGlzdCkKIHsKICAgICBCYWNrRm9yd2FyZExpc3QgKmNvcmVCRkxpc3QgPSBj
b3JlKHNlbGYpOwogICAgIAotICAgIEhpc3RvcnlJdGVtVmVjdG9yJiBoaXN0b3J5SXRlbXMgPSBj
b3JlQkZMaXN0LT5lbnRyaWVzKCk7CisgICAgYXV0byYgaGlzdG9yeUl0ZW1zID0gY29yZUJGTGlz
dC0+ZW50cmllcygpOwogICAgIHVuc2lnbmVkIHNpemUgPSBoaXN0b3J5SXRlbXMuc2l6ZSgpOwog
ICAgIE5TTXV0YWJsZUFycmF5ICplbnRyaWVzQXJyYXkgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OnNpemVdOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aXplOyArK2kpCkBAIC0yMzIsNyArMjMyLDcgQEAgV2ViQmFja0ZvcndhcmRMaXN0ICpraXQoQmFj
a0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QpCiAgICAgcmV0dXJuIFtba2l0KGNvcmUoc2Vs
ZiktPmZvcndhcmRJdGVtKCkpIHJldGFpbl0gYXV0b3JlbGVhc2VdOwogfQogCi1zdGF0aWMgTlNB
cnJheSogdmVjdG9yVG9OU0FycmF5KEhpc3RvcnlJdGVtVmVjdG9yJiBsaXN0KQorc3RhdGljIE5T
QXJyYXkqIHZlY3RvclRvTlNBcnJheShWZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4mIGxpc3QpCiB7
CiAgICAgdW5zaWduZWQgc2l6ZSA9IGxpc3Quc2l6ZSgpOwogICAgIE5TTXV0YWJsZUFycmF5ICpy
ZXN1bHQgPSBbW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzaXplXSBh
dXRvcmVsZWFzZV07CkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGJvb2wgYnVtcGVyQ2FyQmFj
a0ZvcndhcmRIYWNrTmVlZGVkKCkKIAogLSAoTlNBcnJheSAqKWJhY2tMaXN0V2l0aExpbWl0Oihp
bnQpbGltaXQKIHsKLSAgICBIaXN0b3J5SXRlbVZlY3RvciBsaXN0OworICAgIFZlY3RvcjxSZWY8
SGlzdG9yeUl0ZW0+PiBsaXN0OwogICAgIGNvcmUoc2VsZiktPmJhY2tMaXN0V2l0aExpbWl0KGxp
bWl0LCBsaXN0KTsKICAgICBOU0FycmF5ICpyZXN1bHQgPSB2ZWN0b3JUb05TQXJyYXkobGlzdCk7
CiAgICAgCkBAIC0yNzEsNyArMjcxLDcgQEAgc3RhdGljIGJvb2wgYnVtcGVyQ2FyQmFja0Zvcndh
cmRIYWNrTmVlZGVkKCkKIAogLSAoTlNBcnJheSAqKWZvcndhcmRMaXN0V2l0aExpbWl0OihpbnQp
bGltaXQKIHsKLSAgICBIaXN0b3J5SXRlbVZlY3RvciBsaXN0OworICAgIFZlY3RvcjxSZWY8SGlz
dG9yeUl0ZW0+PiBsaXN0OwogICAgIGNvcmUoc2VsZiktPmZvcndhcmRMaXN0V2l0aExpbWl0KGxp
bWl0LCBsaXN0KTsKICAgICBOU0FycmF5ICpyZXN1bHQgPSB2ZWN0b3JUb05TQXJyYXkobGlzdCk7
CiAgICAgCkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIGJvb2wgYnVtcGVyQ2FyQmFja0Zvcndh
cmRIYWNrTmVlZGVkKCkKICAgICBbcmVzdWx0IGFwcGVuZFN0cmluZzpAIldlYkJhY2tGb3J3YXJk
TGlzdDpcbiJdOwogICAgIAogICAgIEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0ID0g
Y29yZShzZWxmKTsKLSAgICBIaXN0b3J5SXRlbVZlY3RvciYgZW50cmllcyA9IGJhY2tGb3J3YXJk
TGlzdC0+ZW50cmllcygpOworICAgIGNvbnN0IGF1dG8mIGVudHJpZXMgPSBiYWNrRm9yd2FyZExp
c3QtPmVudHJpZXMoKTsKICAgICAKICAgICB1bnNpZ25lZCBzaXplID0gZW50cmllcy5zaXplKCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggMmRiY2MxNjk0MWZkOWU2Nzhj
ZTExMTYxMDcwMDczMzUyMGQxNmY4MS4uOGFhOGZiM2M3YTYwNjc1ZjUyYmRiZTQ3ZmRhOGQ3NWU4
ZDg3MDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5
SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1t
CkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0
b3J5SXRlbSopCiAgICAgfQogICAgIAogICAgIGlmIChjb3JlSXRlbS0+Y2hpbGRyZW4oKS5zaXpl
KCkpIHsKLSAgICAgICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkcmVuID0gY29yZUl0
ZW0tPmNoaWxkcmVuKCk7CisgICAgICAgIGNvbnN0IGF1dG8mIGNoaWxkcmVuID0gY29yZUl0ZW0t
PmNoaWxkcmVuKCk7CiAgICAgICAgIGludCBjdXJyUG9zID0gW3Jlc3VsdCBsZW5ndGhdOwogICAg
ICAgICB1bnNpZ25lZCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOyAgICAgICAgCiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKQEAgLTQ1Niw3ICs0NTYsNyBAQCBX
ZWJIaXN0b3J5SXRlbSAqa2l0KEhpc3RvcnlJdGVtKiBpdGVtKQogI2Vsc2UKICAgICBpZiAoY29y
ZUl0ZW0tPmNoaWxkcmVuKCkuc2l6ZSgpKSB7CiAjZW5kaWYKLSAgICAgICAgY29uc3QgSGlzdG9y
eUl0ZW1WZWN0b3ImIGNoaWxkcmVuID0gY29yZUl0ZW0tPmNoaWxkcmVuKCk7CisgICAgICAgIGNv
bnN0IGF1dG8mIGNoaWxkcmVuID0gY29yZUl0ZW0tPmNoaWxkcmVuKCk7CiAgICAgICAgIE5TTXV0
YWJsZUFycmF5ICpjaGlsZERpY3RzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5
OmNoaWxkcmVuLnNpemUoKV07CiAgICAgICAgIAogICAgICAgICBmb3IgKGludCBpID0gY2hpbGRy
ZW4uc2l6ZSgpIC0gMTsgaSA+PSAwOyBpLS0pCkBAIC01MTAsNyArNTEwLDcgQEAgV2ViSGlzdG9y
eUl0ZW0gKmtpdChIaXN0b3J5SXRlbSogaXRlbSkKIAogLSAoTlNBcnJheSAqKWNoaWxkcmVuCiB7
Ci0gICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkcmVuID0gY29yZShfcHJpdmF0ZSkt
PmNoaWxkcmVuKCk7CisgICAgY29uc3QgYXV0byYgY2hpbGRyZW4gPSBjb3JlKF9wcml2YXRlKS0+
Y2hpbGRyZW4oKTsKICAgICBpZiAoIWNoaWxkcmVuLnNpemUoKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQmFja0ZvcndhcmRMaXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKaW5kZXggZGRkYjQ0
Y2E3YjQ2ZDU3N2Q2ZTY1MWVlNjJiZjM3YzFjZjBkNjM2Yi4uZDA4MDE3YWFkNGUxMWVmNzE3NGRm
ZTg3MzRmOTAzN2E0Mzc1ODgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJCYWNrRm9yd2FyZExp
c3QuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgSFJFU1VMVCBXZWJCYWNrRm9yd2FyZExpc3Q6OmZv
cndhcmRJdGVtKF9DT01fT3V0cHRyX29wdF8gSVdlYkhpc3RvcnlJdGVtKiogaXRlbSkKIEhSRVNV
TFQgV2ViQmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIF9PdXRf
IGludCogbGlzdENvdW50LAogICAgIF9fZGVyZWZfaW5vdXRfb3B0IElXZWJIaXN0b3J5SXRlbSoq
IGxpc3QpCiB7Ci0gICAgSGlzdG9yeUl0ZW1WZWN0b3IgaGlzdG9yeUl0ZW1WZWN0b3I7CisgICAg
VmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+IGhpc3RvcnlJdGVtVmVjdG9yOwogICAgIG1fYmFja0Zv
cndhcmRMaXN0LT5iYWNrTGlzdFdpdGhMaW1pdChsaW1pdCwgaGlzdG9yeUl0ZW1WZWN0b3IpOwog
CiAgICAgKmxpc3RDb3VudCA9IHN0YXRpY19jYXN0PGludD4oaGlzdG9yeUl0ZW1WZWN0b3Iuc2l6
ZSgpKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBIUkVTVUxUIFdlYkJhY2tGb3J3YXJkTGlzdDo6YmFj
a0xpc3RXaXRoTGltaXQoaW50IGxpbWl0LCBfT3V0XyBpbnQqIGxpc3RDb3VudCwKIEhSRVNVTFQg
V2ViQmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIF9PdXRf
IGludCogbGlzdENvdW50LAogICAgIF9fZGVyZWZfaW5vdXRfb3B0IElXZWJIaXN0b3J5SXRlbSoq
IGxpc3QpCiB7Ci0gICAgSGlzdG9yeUl0ZW1WZWN0b3IgaGlzdG9yeUl0ZW1WZWN0b3I7CisgICAg
VmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+IGhpc3RvcnlJdGVtVmVjdG9yOwogICAgIG1fYmFja0Zv
cndhcmRMaXN0LT5mb3J3YXJkTGlzdFdpdGhMaW1pdChsaW1pdCwgaGlzdG9yeUl0ZW1WZWN0b3Ip
OwogCiAgICAgKmxpc3RDb3VudCA9IHN0YXRpY19jYXN0PGludD4oaGlzdG9yeUl0ZW1WZWN0b3Iu
c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAppbmRleCBkNDhkYzI1N2Q0
ZWYzYTAwMmMyNjA2ZmRiOTk0OTgzNjgwZjljOTFhLi41ZmNkODY2YWRjYWRjYTg2MWM4NDNmMGJi
MjYxNTkxMjNhN2FjYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5
SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uY3BwCkBAIC0y
ODksNyArMjg5LDcgQEAgSFJFU1VMVCBXZWJIaXN0b3J5SXRlbTo6Y2hpbGRyZW4odW5zaWduZWQq
IG91dENoaWxkQ291bnQsIFNBRkVBUlJBWSoqIG91dENoaWxkcmUKICAgICAqb3V0Q2hpbGRDb3Vu
dCA9IDA7CiAgICAgKm91dENoaWxkcmVuID0gMDsKIAotICAgIGNvbnN0IEhpc3RvcnlJdGVtVmVj
dG9yJiBjb3JlQ2hpbGRyZW4gPSBtX2hpc3RvcnlJdGVtLT5jaGlsZHJlbigpOworICAgIGNvbnN0
IGF1dG8mIGNvcmVDaGlsZHJlbiA9IG1faGlzdG9yeUl0ZW0tPmNoaWxkcmVuKCk7CiAgICAgaWYg
KGNvcmVDaGlsZHJlbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBTX09LOwogICAgIHNpemVf
dCBjaGlsZENvdW50ID0gY29yZUNoaWxkcmVuLnNpemUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291504</attachid>
            <date>2016-10-13 12:11:03 -0700</date>
            <delta_ts>2016-10-13 12:14:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163398-20161013120737.patch</filename>
            <type>text/plain</type>
            <size>13653</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZjYTQyMGEwMGMxYTZk
NjRkMjUzODk5MGI1YzdhODEzMGM4ZGQzNC4uMGU2NTRlYTU1NDllM2YwM2M3YmQzZTUzNGJkYjY0
MzcwZjFiZjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTEwLTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB0
aGUgSGlzdG9yeUl0ZW1WZWN0b3IgdHlwZWRlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRXhwYW5kIHRoZSBIaXN0b3J5aXRlbVZlY3RvciB0eXBlZGVm
IGluc3RlYWQgdG8gbWFrZSBpdCBtb3JlIGNsZWFyIHdoYXQgdHlwZXMgd2UgYXJlIGRlYWxpbmcg
d2l0aC4KKworICAgICAgICAqIGhpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RXaXRoTGltaXQpOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdFdpdGhMaW1pdCk6CisgICAgICAg
IChXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3Q6OmVudHJpZXMpOgorICAgICAgICAqIGhpc3Rvcnkv
QmFja0ZvcndhcmRMaXN0Lmg6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y2hpbGRyZW4pOgorICAgICAgICAqIGhpc3Rv
cnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OmN1cnJlbnRGcmFtZXNNYXRj
aEl0ZW0pOgorCiAyMDE2LTEwLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIENSQVNIIGF0IFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlQ29kZWRGcmFt
ZXMgKyAzNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQ2YjMxNjNjNjU1NmFlN2UxYWQ4ZTlhMWZiZTMz
YzI1ZTA4ZGQyNzMuLmE2ZDJlZWNkNWVlZjliNzZhMmYxZTc4NGNlZjI2M2JjZDUxYTE3NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0xMC0xMyAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIEhpc3Rv
cnlJdGVtVmVjdG9yIHR5cGVkZWYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzM5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEV4cGFuZCB0aGUgSGlzdG9yeWl0ZW1WZWN0b3IgdHlwZWRlZiBpbnN0ZWFk
IHRvIG1ha2UgaXQgbW9yZSBjbGVhciB3aGF0IHR5cGVzIHdlIGFyZSBkZWFsaW5nIHdpdGguCisK
KyAgICAgICAgKiBIaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbToKKyAgICAgICAgKC1bV2Vi
QmFja0ZvcndhcmRMaXN0IGRpY3Rpb25hcnlSZXByZXNlbnRhdGlvbl0pOgorICAgICAgICAodmVj
dG9yVG9OU0FycmF5KToKKyAgICAgICAgKC1bV2ViQmFja0ZvcndhcmRMaXN0IGJhY2tMaXN0V2l0
aExpbWl0Ol0pOgorICAgICAgICAoLVtXZWJCYWNrRm9yd2FyZExpc3QgZm9yd2FyZExpc3RXaXRo
TGltaXQ6XSk6CisgICAgICAgICgtW1dlYkJhY2tGb3J3YXJkTGlzdCBkZXNjcmlwdGlvbl0pOgor
ICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgtW1dlYkhpc3Rv
cnlJdGVtIGRlc2NyaXB0aW9uXSk6CisKIDIwMTYtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIElETF0gRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kg
W0NvbnN0cnVjdG9yQ29uZGl0aW9uYWw9Kl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxNDNlOTA1MThi
NzZiNjNhZjI2YWNhMTU5ODhiYzBlM2ViMjk2ZTY5Li5lYTEyYzRhYWMxNmFiNWQzNGE5NjE5ODgx
YjlkYThkOTQ3ZGY4OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYt
MTAtMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBH
ZXQgcmlkIG9mIHRoZSBIaXN0b3J5SXRlbVZlY3RvciB0eXBlZGVmCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzOTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBhbmQgdGhlIEhpc3RvcnlpdGVtVmVj
dG9yIHR5cGVkZWYgaW5zdGVhZCB0byBtYWtlIGl0IG1vcmUgY2xlYXIgd2hhdCB0eXBlcyB3ZSBh
cmUgZGVhbGluZyB3aXRoLgorCisgICAgICAgICogV2ViQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RXaXRoTGltaXQpOgorICAgICAgICAo
V2ViQmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdFdpdGhMaW1pdCk6CisgICAgICAgICogV2Vi
SGlzdG9yeUl0ZW0uY3BwOgorICAgICAgICAoV2ViSGlzdG9yeUl0ZW06OmNoaWxkcmVuKToKKwog
MjAxNi0xMC0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2luXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjA3MjE4LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDVhMzc4ZDc1ZGNhZTRjNTljYzg4
YWZiZDRhMmJkNWQ2MGE5ZmZmYTkuLmJjM2IyNzAxN2I5YmY2ZTMwYWZmMTllZTcwZTgwZWNhMWU0
ZDFlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5jcHAKQEAg
LTEzNiw3ICsxMzYsNyBAQCBIaXN0b3J5SXRlbSogQmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkSXRl
bSgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgQmFja0ZvcndhcmRMaXN0OjpiYWNr
TGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIEhpc3RvcnlJdGVtVmVjdG9yJiBsaXN0KQordm9pZCBC
YWNrRm9yd2FyZExpc3Q6OmJhY2tMaXN0V2l0aExpbWl0KGludCBsaW1pdCwgVmVjdG9yPFJlZjxI
aXN0b3J5SXRlbT4+JiBsaXN0KQogewogICAgIGxpc3QuY2xlYXIoKTsKICAgICBpZiAobV9jdXJy
ZW50ICE9IE5vQ3VycmVudEl0ZW1JbmRleCkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgQmFj
a0ZvcndhcmRMaXN0OjpiYWNrTGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIEhpc3RvcnlJdGVtVmVj
dG9yJiBsaXN0KQogICAgIH0KIH0KIAotdm9pZCBCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRMaXN0
V2l0aExpbWl0KGludCBsaW1pdCwgSGlzdG9yeUl0ZW1WZWN0b3ImIGxpc3QpCit2b2lkIEJhY2tG
b3J3YXJkTGlzdDo6Zm9yd2FyZExpc3RXaXRoTGltaXQoaW50IGxpbWl0LCBWZWN0b3I8UmVmPEhp
c3RvcnlJdGVtPj4mIGxpc3QpCiB7CiAgICAgQVNTRVJUKGxpbWl0ID4gLTEpOwogICAgIGxpc3Qu
Y2xlYXIoKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBIaXN0b3J5SXRlbSogQmFja0ZvcndhcmRMaXN0
OjppdGVtQXRJbmRleChpbnQgaW5kZXgpCiAgICAgcmV0dXJuIG1fZW50cmllc1tpbmRleCArIG1f
Y3VycmVudF0ucHRyKCk7CiB9CiAKLUhpc3RvcnlJdGVtVmVjdG9yJiBCYWNrRm9yd2FyZExpc3Q6
OmVudHJpZXMoKQorVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+JiBCYWNrRm9yd2FyZExpc3Q6OmVu
dHJpZXMoKQogewogICAgIHJldHVybiBtX2VudHJpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9CYWNrRm9yd2FyZExpc3QuaAppbmRleCAzZWNhMjA4MmYxMWJjZTBiOWNmMWVjNDg1ZjcwNDJl
YjM3Zjk2MzZkLi41N2M0NGFiZDhjODBkNTE4NDliNzI1OGY5ODhlOWVkMTk3ODAyM2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKQEAgLTM2LDcgKzM2LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYWdlOwogCi10eXBlZGVmIFZlY3RvcjxSZWY8
SGlzdG9yeUl0ZW0+PiBIaXN0b3J5SXRlbVZlY3RvcjsKIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8
SGlzdG9yeUl0ZW0+PiBIaXN0b3J5SXRlbUhhc2hTZXQ7CiAKIGNsYXNzIEJhY2tGb3J3YXJkTGlz
dCA6IHB1YmxpYyBCYWNrRm9yd2FyZENsaWVudCB7CkBAIC01Niw4ICs1NSw4IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBIaXN0b3J5SXRlbSogZm9yd2FyZEl0ZW0oKTsKICAgICBIaXN0
b3J5SXRlbSogaXRlbUF0SW5kZXgoaW50KSBvdmVycmlkZTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgYmFja0xpc3RXaXRoTGltaXQoaW50LCBIaXN0b3J5SXRlbVZlY3RvciYpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZm9yd2FyZExpc3RXaXRoTGltaXQoaW50LCBIaXN0b3J5SXRlbVZl
Y3RvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYmFja0xpc3RXaXRoTGltaXQoaW50LCBW
ZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvcndh
cmRMaXN0V2l0aExpbWl0KGludCwgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+Jik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBpbnQgY2FwYWNpdHkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dENhcGFjaXR5KGludCk7CkBAIC03MSw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGNsb3NlZCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVJdGVt
KEhpc3RvcnlJdGVtKik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSGlzdG9yeUl0ZW1WZWN0b3ImIGVu
dHJpZXMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4mIGVu
dHJpZXMoKTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBjdXJyZW50KCkgb3Zl
cnJpZGU7CkBAIC04NCw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgQmFja0ZvcndhcmRMaXN0KFBhZ2UqKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKLSAgICBI
aXN0b3J5SXRlbVZlY3RvciBtX2VudHJpZXM7CisgICAgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+
IG1fZW50cmllczsKICAgICBIaXN0b3J5SXRlbUhhc2hTZXQgbV9lbnRyeUhhc2g7CiAgICAgdW5z
aWduZWQgbV9jdXJyZW50OwogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmluZGV4IGM4MmYxNTk2YjBhNTI5NGEzOTA5OGY2OWU5NjY1
Y2IwYWRjYzNmOGQuLmZiZWFhOTZhYTIzMjk2YTE0OGFjNTQ4Y2Q2MDY1ZjkzNTVhODE0ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAg
SGlzdG9yeUl0ZW0qIEhpc3RvcnlJdGVtOjpjaGlsZEl0ZW1XaXRoRG9jdW1lbnRTZXF1ZW5jZU51
bWJlcihsb25nIGxvbmcgbnVtYmVyKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1jb25zdCBI
aXN0b3J5SXRlbVZlY3RvciYgSGlzdG9yeUl0ZW06OmNoaWxkcmVuKCkgY29uc3QKK2NvbnN0IFZl
Y3RvcjxSZWY8SGlzdG9yeUl0ZW0+PiYgSGlzdG9yeUl0ZW06OmNoaWxkcmVuKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9jaGlsZHJlbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0u
aAppbmRleCA4YmZiNGZjNWNkNWU0NzQ4ODg0MTM0N2MyZTM0ZTEwOGY1YTY0OGIzLi4zOWY1MTE0
YmRkMmY2ZTI5YjJmZmIzODU1N2NhZGYyODRjYWZkOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9I
aXN0b3J5SXRlbS5oCkBAIC01Niw4ICs1Niw2IEBAIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNs
YXNzIFVSTDsKIGVudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbjsKIAotdHlwZWRlZiBWZWN0b3I8UmVm
PEhpc3RvcnlJdGVtPj4gSGlzdG9yeUl0ZW1WZWN0b3I7Ci0KIFdFQkNPUkVfRVhQT1JUIGV4dGVy
biB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSopOwogCiBjbGFz
cyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7CkBAIC0xNDMs
NyArMTQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2hpbGRJdGVtKFJlZjxIaXN0b3J5SXRl
bT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGlzdG9yeUl0ZW0qIGNoaWxkSXRlbVdpdGhUYXJn
ZXQoY29uc3QgU3RyaW5nJik7CiAgICAgSGlzdG9yeUl0ZW0qIGNoaWxkSXRlbVdpdGhEb2N1bWVu
dFNlcXVlbmNlTnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IEhpc3RvcnlJdGVtVmVjdG9yJiBjaGlsZHJlbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIGNvbnN0IFZlY3RvcjxSZWY8SGlzdG9yeUl0ZW0+PiYgY2hpbGRyZW4oKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0NoaWxkcmVuKCkgY29uc3Q7CiAgICAgdm9pZCBjbGVh
ckNoaWxkcmVuKCk7CiAgICAgYm9vbCBpc0FuY2VzdG9yT2YoY29uc3QgSGlzdG9yeUl0ZW0mKSBj
b25zdDsKQEAgLTIzMyw3ICsyMzEsNyBAQCBwcml2YXRlOgogCiAgICAgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OwogICAgIAotICAgIEhpc3RvcnlJ
dGVtVmVjdG9yIG1fY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxIaXN0b3J5SXRlbT4+IG1fY2hp
bGRyZW47CiAgICAgCiAgICAgYm9vbCBtX2xhc3RWaXNpdFdhc0ZhaWx1cmU7CiAgICAgYm9vbCBt
X2lzVGFyZ2V0SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
Y3BwCmluZGV4IGNmNmUxOWNhMWViZDYxNGRjNmIwOTYwNmJkMTgyZTMzYzJmMWUzZjIuLjNlZjU4
ZmZiYTQxMTk4MDMyZDEyMzQxYzk3YWUyMmU3ODRkMTQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtNzg2LDcgKzc4Niw3IEBAIGJvb2wgSGlz
dG9yeUNvbnRyb2xsZXI6OmN1cnJlbnRGcmFtZXNNYXRjaEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0p
IGNvbnN0CiAgICAgaWYgKCghbV9mcmFtZS50cmVlKCkudW5pcXVlTmFtZSgpLmlzRW1wdHkoKSB8
fCAhaXRlbS0+dGFyZ2V0KCkuaXNFbXB0eSgpKSAmJiBtX2ZyYW1lLnRyZWUoKS51bmlxdWVOYW1l
KCkgIT0gaXRlbS0+dGFyZ2V0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0g
ICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkSXRlbXMgPSBpdGVtLT5jaGlsZHJlbigp
OworICAgIGNvbnN0IGF1dG8mIGNoaWxkSXRlbXMgPSBpdGVtLT5jaGlsZHJlbigpOwogICAgIGlm
IChjaGlsZEl0ZW1zLnNpemUoKSAhPSBtX2ZyYW1lLnRyZWUoKS5jaGlsZENvdW50KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0hp
c3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9X
ZWJCYWNrRm9yd2FyZExpc3QubW0KaW5kZXggNGY3NmRiN2QwOTc2YmY5ZGUxOTM5YWQxMDMxMmU3
MDdkYmYwNDk1Yi4uMTI2YzdkOThlZTE2MGUwNmQ2YjgzNTgzOWM2NjM5NDc2Njg1NWQ5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KQEAg
LTE2MCw3ICsxNjAsNyBAQCBXZWJCYWNrRm9yd2FyZExpc3QgKmtpdChCYWNrRm9yd2FyZExpc3Qq
IGJhY2tGb3J3YXJkTGlzdCkKIHsKICAgICBCYWNrRm9yd2FyZExpc3QgKmNvcmVCRkxpc3QgPSBj
b3JlKHNlbGYpOwogICAgIAotICAgIEhpc3RvcnlJdGVtVmVjdG9yJiBoaXN0b3J5SXRlbXMgPSBj
b3JlQkZMaXN0LT5lbnRyaWVzKCk7CisgICAgYXV0byYgaGlzdG9yeUl0ZW1zID0gY29yZUJGTGlz
dC0+ZW50cmllcygpOwogICAgIHVuc2lnbmVkIHNpemUgPSBoaXN0b3J5SXRlbXMuc2l6ZSgpOwog
ICAgIE5TTXV0YWJsZUFycmF5ICplbnRyaWVzQXJyYXkgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OnNpemVdOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aXplOyArK2kpCkBAIC0yMzIsNyArMjMyLDcgQEAgV2ViQmFja0ZvcndhcmRMaXN0ICpraXQoQmFj
a0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QpCiAgICAgcmV0dXJuIFtba2l0KGNvcmUoc2Vs
ZiktPmZvcndhcmRJdGVtKCkpIHJldGFpbl0gYXV0b3JlbGVhc2VdOwogfQogCi1zdGF0aWMgTlNB
cnJheSogdmVjdG9yVG9OU0FycmF5KEhpc3RvcnlJdGVtVmVjdG9yJiBsaXN0KQorc3RhdGljIE5T
QXJyYXkqIHZlY3RvclRvTlNBcnJheShWZWN0b3I8UmVmPEhpc3RvcnlJdGVtPj4mIGxpc3QpCiB7
CiAgICAgdW5zaWduZWQgc2l6ZSA9IGxpc3Quc2l6ZSgpOwogICAgIE5TTXV0YWJsZUFycmF5ICpy
ZXN1bHQgPSBbW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzaXplXSBh
dXRvcmVsZWFzZV07CkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGJvb2wgYnVtcGVyQ2FyQmFj
a0ZvcndhcmRIYWNrTmVlZGVkKCkKIAogLSAoTlNBcnJheSAqKWJhY2tMaXN0V2l0aExpbWl0Oihp
bnQpbGltaXQKIHsKLSAgICBIaXN0b3J5SXRlbVZlY3RvciBsaXN0OworICAgIFZlY3RvcjxSZWY8
SGlzdG9yeUl0ZW0+PiBsaXN0OwogICAgIGNvcmUoc2VsZiktPmJhY2tMaXN0V2l0aExpbWl0KGxp
bWl0LCBsaXN0KTsKICAgICBOU0FycmF5ICpyZXN1bHQgPSB2ZWN0b3JUb05TQXJyYXkobGlzdCk7
CiAgICAgCkBAIC0yNzEsNyArMjcxLDcgQEAgc3RhdGljIGJvb2wgYnVtcGVyQ2FyQmFja0Zvcndh
cmRIYWNrTmVlZGVkKCkKIAogLSAoTlNBcnJheSAqKWZvcndhcmRMaXN0V2l0aExpbWl0OihpbnQp
bGltaXQKIHsKLSAgICBIaXN0b3J5SXRlbVZlY3RvciBsaXN0OworICAgIFZlY3RvcjxSZWY8SGlz
dG9yeUl0ZW0+PiBsaXN0OwogICAgIGNvcmUoc2VsZiktPmZvcndhcmRMaXN0V2l0aExpbWl0KGxp
bWl0LCBsaXN0KTsKICAgICBOU0FycmF5ICpyZXN1bHQgPSB2ZWN0b3JUb05TQXJyYXkobGlzdCk7
CiAgICAgCkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIGJvb2wgYnVtcGVyQ2FyQmFja0Zvcndh
cmRIYWNrTmVlZGVkKCkKICAgICBbcmVzdWx0IGFwcGVuZFN0cmluZzpAIldlYkJhY2tGb3J3YXJk
TGlzdDpcbiJdOwogICAgIAogICAgIEJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0ID0g
Y29yZShzZWxmKTsKLSAgICBIaXN0b3J5SXRlbVZlY3RvciYgZW50cmllcyA9IGJhY2tGb3J3YXJk
TGlzdC0+ZW50cmllcygpOworICAgIGF1dG8mIGVudHJpZXMgPSBiYWNrRm9yd2FyZExpc3QtPmVu
dHJpZXMoKTsKICAgICAKICAgICB1bnNpZ25lZCBzaXplID0gZW50cmllcy5zaXplKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggMmRiY2MxNjk0MWZkOWU2NzhjZTExMTYx
MDcwMDczMzUyMGQxNmY4MS4uOGFhOGZiM2M3YTYwNjc1ZjUyYmRiZTQ3ZmRhOGQ3NWU4ZDg3MDJj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC0y
MzUsNyArMjM1LDcgQEAgdm9pZCBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0b3J5SXRl
bSopCiAgICAgfQogICAgIAogICAgIGlmIChjb3JlSXRlbS0+Y2hpbGRyZW4oKS5zaXplKCkpIHsK
LSAgICAgICAgY29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkcmVuID0gY29yZUl0ZW0tPmNo
aWxkcmVuKCk7CisgICAgICAgIGNvbnN0IGF1dG8mIGNoaWxkcmVuID0gY29yZUl0ZW0tPmNoaWxk
cmVuKCk7CiAgICAgICAgIGludCBjdXJyUG9zID0gW3Jlc3VsdCBsZW5ndGhdOwogICAgICAgICB1
bnNpZ25lZCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOyAgICAgICAgCiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKQEAgLTQ1Niw3ICs0NTYsNyBAQCBXZWJIaXN0
b3J5SXRlbSAqa2l0KEhpc3RvcnlJdGVtKiBpdGVtKQogI2Vsc2UKICAgICBpZiAoY29yZUl0ZW0t
PmNoaWxkcmVuKCkuc2l6ZSgpKSB7CiAjZW5kaWYKLSAgICAgICAgY29uc3QgSGlzdG9yeUl0ZW1W
ZWN0b3ImIGNoaWxkcmVuID0gY29yZUl0ZW0tPmNoaWxkcmVuKCk7CisgICAgICAgIGNvbnN0IGF1
dG8mIGNoaWxkcmVuID0gY29yZUl0ZW0tPmNoaWxkcmVuKCk7CiAgICAgICAgIE5TTXV0YWJsZUFy
cmF5ICpjaGlsZERpY3RzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmNoaWxk
cmVuLnNpemUoKV07CiAgICAgICAgIAogICAgICAgICBmb3IgKGludCBpID0gY2hpbGRyZW4uc2l6
ZSgpIC0gMTsgaSA+PSAwOyBpLS0pCkBAIC01MTAsNyArNTEwLDcgQEAgV2ViSGlzdG9yeUl0ZW0g
KmtpdChIaXN0b3J5SXRlbSogaXRlbSkKIAogLSAoTlNBcnJheSAqKWNoaWxkcmVuCiB7Ci0gICAg
Y29uc3QgSGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkcmVuID0gY29yZShfcHJpdmF0ZSktPmNoaWxk
cmVuKCk7CisgICAgY29uc3QgYXV0byYgY2hpbGRyZW4gPSBjb3JlKF9wcml2YXRlKS0+Y2hpbGRy
ZW4oKTsKICAgICBpZiAoIWNoaWxkcmVuLnNpemUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKaW5kZXggZGRkYjQ0Y2E3YjQ2
ZDU3N2Q2ZTY1MWVlNjJiZjM3YzFjZjBkNjM2Yi4uZDA4MDE3YWFkNGUxMWVmNzE3NGRmZTg3MzRm
OTAzN2E0Mzc1ODgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQmFja0Zvcndh
cmRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJCYWNrRm9yd2FyZExpc3QuY3Bw
CkBAIC0xOTQsNyArMTk0LDcgQEAgSFJFU1VMVCBXZWJCYWNrRm9yd2FyZExpc3Q6OmZvcndhcmRJ
dGVtKF9DT01fT3V0cHRyX29wdF8gSVdlYkhpc3RvcnlJdGVtKiogaXRlbSkKIEhSRVNVTFQgV2Vi
QmFja0ZvcndhcmRMaXN0OjpiYWNrTGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIF9PdXRfIGludCog
bGlzdENvdW50LAogICAgIF9fZGVyZWZfaW5vdXRfb3B0IElXZWJIaXN0b3J5SXRlbSoqIGxpc3Qp
CiB7Ci0gICAgSGlzdG9yeUl0ZW1WZWN0b3IgaGlzdG9yeUl0ZW1WZWN0b3I7CisgICAgVmVjdG9y
PFJlZjxIaXN0b3J5SXRlbT4+IGhpc3RvcnlJdGVtVmVjdG9yOwogICAgIG1fYmFja0ZvcndhcmRM
aXN0LT5iYWNrTGlzdFdpdGhMaW1pdChsaW1pdCwgaGlzdG9yeUl0ZW1WZWN0b3IpOwogCiAgICAg
Kmxpc3RDb3VudCA9IHN0YXRpY19jYXN0PGludD4oaGlzdG9yeUl0ZW1WZWN0b3Iuc2l6ZSgpKTsK
QEAgLTIxMSw3ICsyMTEsNyBAQCBIUkVTVUxUIFdlYkJhY2tGb3J3YXJkTGlzdDo6YmFja0xpc3RX
aXRoTGltaXQoaW50IGxpbWl0LCBfT3V0XyBpbnQqIGxpc3RDb3VudCwKIEhSRVNVTFQgV2ViQmFj
a0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdFdpdGhMaW1pdChpbnQgbGltaXQsIF9PdXRfIGludCog
bGlzdENvdW50LAogICAgIF9fZGVyZWZfaW5vdXRfb3B0IElXZWJIaXN0b3J5SXRlbSoqIGxpc3Qp
CiB7Ci0gICAgSGlzdG9yeUl0ZW1WZWN0b3IgaGlzdG9yeUl0ZW1WZWN0b3I7CisgICAgVmVjdG9y
PFJlZjxIaXN0b3J5SXRlbT4+IGhpc3RvcnlJdGVtVmVjdG9yOwogICAgIG1fYmFja0ZvcndhcmRM
aXN0LT5mb3J3YXJkTGlzdFdpdGhMaW1pdChsaW1pdCwgaGlzdG9yeUl0ZW1WZWN0b3IpOwogCiAg
ICAgKmxpc3RDb3VudCA9IHN0YXRpY19jYXN0PGludD4oaGlzdG9yeUl0ZW1WZWN0b3Iuc2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAppbmRleCBkNDhkYzI1N2Q0ZWYzYTAw
MmMyNjA2ZmRiOTk0OTgzNjgwZjljOTFhLi41ZmNkODY2YWRjYWRjYTg2MWM4NDNmMGJiMjYxNTkx
MjNhN2FjYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeUl0ZW0uY3BwCkBAIC0yODksNyAr
Mjg5LDcgQEAgSFJFU1VMVCBXZWJIaXN0b3J5SXRlbTo6Y2hpbGRyZW4odW5zaWduZWQqIG91dENo
aWxkQ291bnQsIFNBRkVBUlJBWSoqIG91dENoaWxkcmUKICAgICAqb3V0Q2hpbGRDb3VudCA9IDA7
CiAgICAgKm91dENoaWxkcmVuID0gMDsKIAotICAgIGNvbnN0IEhpc3RvcnlJdGVtVmVjdG9yJiBj
b3JlQ2hpbGRyZW4gPSBtX2hpc3RvcnlJdGVtLT5jaGlsZHJlbigpOworICAgIGNvbnN0IGF1dG8m
IGNvcmVDaGlsZHJlbiA9IG1faGlzdG9yeUl0ZW0tPmNoaWxkcmVuKCk7CiAgICAgaWYgKGNvcmVD
aGlsZHJlbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBTX09LOwogICAgIHNpemVfdCBjaGls
ZENvdW50ID0gY29yZUNoaWxkcmVuLnNpemUoKTsK
</data>
<flag name="review"
          id="314634"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>