<?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>138018</bug_id>
          
          <creation_ts>2014-10-23 13:31:04 -0700</creation_ts>
          <short_desc>[WK2] Use C++ lambdas in IPC::Connection</short_desc>
          <delta_ts>2015-03-17 03:05:10 -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>528+ (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>
          <dependson>138666</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043820</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-23 13:31:04 -0700</bug_when>
    <thetext>[WK2] Remove uses of WTF::bind() in IPC::Connection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043823</commentid>
    <comment_count>1</comment_count>
      <attachid>240365</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-23 13:37:30 -0700</bug_when>
    <thetext>Created attachment 240365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044826</commentid>
    <comment_count>2</comment_count>
      <attachid>240621</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-29 14:13:49 -0700</bug_when>
    <thetext>Created attachment 240621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047517</commentid>
    <comment_count>3</comment_count>
      <attachid>240621</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-11-10 04:29:59 -0800</bug_when>
    <thetext>Comment on attachment 240621
Patch

Clearing flags on attachment: 240621

Committed r175806: &lt;http://trac.webkit.org/changeset/175806&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047518</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-11-10 04:30:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047536</commentid>
    <comment_count>5</comment_count>
      <attachid>240621</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-11-10 07:46:03 -0800</bug_when>
    <thetext>Comment on attachment 240621
Patch

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

&gt; Source/WebKit2/Platform/IPC/Connection.cpp:647
&gt; +        CString messageReceiverName = message-&gt;messageReceiverName().isEmpty() ? &quot;&lt;unknown message&gt;&quot; : message-&gt;messageReceiverName().toString();
&gt; +        CString messageName = message-&gt;messageName().isEmpty() ? String::format(&quot;&lt;message length: %zu bytes&gt;&quot;, message-&gt;length()).utf8() : message-&gt;messageReceiverName().toString();
&gt; +
&gt; +        RefPtr&lt;Connection&gt; protectedThis(this);
&gt; +        m_clientRunLoop.dispatch([protectedThis, messageReceiverName, messageName] {

Is m_clientRunLoop the current run loop? If not the capture of messageReceiverName and messageName does not look thread safe. You could use StringCapture instead.

&gt; Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm:516
&gt; +            CString messageReceiverNameString = decoder-&gt;messageReceiverName().toString();
&gt; +            CString messageNameString = decoder-&gt;messageName().toString();
&gt; +            m_clientRunLoop.dispatch([protectedThis, messageReceiverNameString, messageNameString] {
&gt; +                protectedThis-&gt;dispatchDidReceiveInvalidMessage(messageReceiverNameString, messageNameString);
&gt; +            });

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047828</commentid>
    <comment_count>6</comment_count>
      <attachid>240621</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-11-11 04:01:18 -0800</bug_when>
    <thetext>Comment on attachment 240621
Patch

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

&gt;&gt; Source/WebKit2/Platform/IPC/Connection.cpp:647
&gt;&gt; +        m_clientRunLoop.dispatch([protectedThis, messageReceiverName, messageName] {
&gt; 
&gt; Is m_clientRunLoop the current run loop? If not the capture of messageReceiverName and messageName does not look thread safe. You could use StringCapture instead.

Can we avoid formatting the &quot;&lt;message length ...&gt;&quot; string and use something static instead? That way we wouldn&apos;t have to handle CStrings at all, and could capture StringReference objects instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048244</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-12 13:45:55 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 138666</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048713</commentid>
    <comment_count>8</comment_count>
      <attachid>241571</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-11-14 03:07:24 -0800</bug_when>
    <thetext>Created attachment 241571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062309</commentid>
    <comment_count>9</comment_count>
      <attachid>244888</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-01-19 02:13:22 -0800</bug_when>
    <thetext>Created attachment 244888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062526</commentid>
    <comment_count>10</comment_count>
      <attachid>244888</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-19 15:32:05 -0800</bug_when>
    <thetext>Comment on attachment 244888
Patch

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

&gt; Source/WebKit2/Platform/IPC/Connection.cpp:646
&gt; +        m_clientRunLoop.dispatch([protectedThis, messageReceiverName, messageName] {
&gt; +            protectedThis-&gt;dispatchDidReceiveInvalidMessage(messageReceiverName, messageName);
&gt; +        });

messageReceiverName and messageName could point to into a MessageDecoder that has been freed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075397</commentid>
    <comment_count>11</comment_count>
      <attachid>248196</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-08 12:49:11 -0700</bug_when>
    <thetext>Created attachment 248196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075568</commentid>
    <comment_count>12</comment_count>
      <attachid>248196</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-09 03:58:52 -0700</bug_when>
    <thetext>Comment on attachment 248196
Patch

Doesn&apos;t yet build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075575</commentid>
    <comment_count>13</comment_count>
      <attachid>248241</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-09 04:29:54 -0700</bug_when>
    <thetext>Created attachment 248241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075927</commentid>
    <comment_count>14</comment_count>
      <attachid>248321</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-10 02:39:33 -0700</bug_when>
    <thetext>Created attachment 248321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075943</commentid>
    <comment_count>15</comment_count>
      <attachid>248326</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-10 04:16:04 -0700</bug_when>
    <thetext>Created attachment 248326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076035</commentid>
    <comment_count>16</comment_count>
      <attachid>248326</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-10 12:34:18 -0700</bug_when>
    <thetext>Comment on attachment 248326
Patch

This finally compiles everywhere, so I&apos;m setting the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076941</commentid>
    <comment_count>17</comment_count>
      <attachid>248326</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-03-13 08:25:23 -0700</bug_when>
    <thetext>Comment on attachment 248326
Patch

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

&gt; Source/WebKit2/Platform/IPC/Connection.cpp:348
&gt;      // Reset the client.

Can remove this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077842</commentid>
    <comment_count>18</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-03-17 03:05:10 -0700</bug_when>
    <thetext>Committed r181630: &lt;http://trac.webkit.org/changeset/181630&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240365</attachid>
            <date>2014-10-23 13:37:30 -0700</date>
            <delta_ts>2014-10-29 14:13:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20141023223736.patch</filename>
            <type>text/plain</type>
            <size>10398</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA3Y2E5ZTI0NmFiOTE0
MzQxNzdmNmE5MzgwZmI5ODM4YmU5NmRkNy4uOGExODE1NDI0Y2UzZDJkZGVmNmFjZmRiZDBmYmZh
MmM1ZjIyMmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTEwLTIzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBSZW1vdmUg
dXNlcyBvZiBXVEY6OmJpbmQoKSBpbiBJUEM6OkNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODAxOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBXVEY6OmJpbmQo
KSBpbiB0aGUgSVBDOjpDb25uZWN0aW9uIGNsYXNzIHdpdGggQysrMTEgbGFtYmRhcy4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2Fn
ZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoSVBD
OjpDb25uZWN0aW9uOjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnBy
b2Nlc3NJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjplbnF1ZXVl
SW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25N
YWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmluaXRpYWxpemVEZWFkTmFtZVNvdXJj
ZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRsZXIp
OgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoKKyAgICAg
ICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTQtMTAtMjMgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBpUGhvbmUgdW5zZWxlY3Rp
bmcgaXRlbXMgaW4gPHNlbGVjdCBtdWx0aXBsZT4gc2hvd3MgaW5jb3JyZWN0IHZhbHVlcyBzZWxl
Y3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDBj
YzU0ODNhM2IzYzMwNjk3YjRmMzI3M2NlYTFjOThmZjg2YjI3NzEuLjRjNWZiYzJlNzlhNzk5NzMz
OTg1YzdiOGEzYWRkM2IzODg4MGJhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKQEAgLTE2NCw4ICsxNjQsMTMgQEAgYm9vbCBDb25uZWN0aW9uOjpTeW5j
TWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rp
b24KICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKICAgICAgICAg
Ci0gICAgICAgIGlmIChtX2RpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc1dvcmtTZXQuYWRkKGNv
bm5lY3Rpb24pLmlzTmV3RW50cnkpCi0gICAgICAgICAgICBtX3J1bkxvb3AuZGlzcGF0Y2goYmlu
ZCgmU3luY01lc3NhZ2VTdGF0ZTo6ZGlzcGF0Y2hNZXNzYWdlQW5kUmVzZXREaWRTY2hlZHVsZURp
c3BhdGNoTWVzc2FnZXNGb3JDb25uZWN0aW9uLCB0aGlzLCBSZWZQdHI8Q29ubmVjdGlvbj4oY29u
bmVjdGlvbikpKTsKKyAgICAgICAgaWYgKG1fZGlkU2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzV29y
a1NldC5hZGQoY29ubmVjdGlvbikuaXNOZXdFbnRyeSkgeworICAgICAgICAgICAgUmVmUHRyPFN5
bmNNZXNzYWdlU3RhdGU+IHByb3RlY3Rvcih0aGlzKTsKKyAgICAgICAgICAgIFJlZlB0cjxDb25u
ZWN0aW9uPiBjb25uZWN0aW9uUHJvdGVjdG9yKGNvbm5lY3Rpb24pOworICAgICAgICAgICAgbV9y
dW5Mb29wLmRpc3BhdGNoKFtwcm90ZWN0b3IsIGNvbm5lY3Rpb25Qcm90ZWN0b3JdIHsKKyAgICAg
ICAgICAgICAgICBwcm90ZWN0b3ItPmRpc3BhdGNoTWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1bGVE
aXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihjb25uZWN0aW9uUHJvdGVjdG9yLmdldCgpKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAKICAgICAgICAgbV9tZXNzYWdlc1RvRGlzcGF0
Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBwZW5kKFdURjo6bW92ZShjb25uZWN0aW9uQW5k
SW5jb21pbmdNZXNzYWdlKSk7CiAgICAgfQpAQCAtMjk2LDEwICszMDEsOCBAQCB2b2lkIENvbm5l
Y3Rpb246OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTgogICAgIH0pOwogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgTWVzc2FnZURlY29kZXIqIGluY29taW5nTWVzc2FnZURl
Y29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
TWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
ciwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCiB7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPiBkZWNvZGVyKGluY29taW5nTWVzc2FnZURlY29kZXIpOwotCiAgICAgaWYgKCFk
ZWNvZGVyLT5pc1N5bmNNZXNzYWdlKCkpIHsKICAgICAgICAgd29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyLT5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCAqZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
QEAgLTM0MCw5ICszNDMsMTIgQEAgdm9pZCBDb25uZWN0aW9uOjppbnZhbGlkYXRlKCkKICAgICB9
CiAgICAgCiAgICAgLy8gUmVzZXQgdGhlIGNsaWVudC4KLSAgICBtX2NsaWVudCA9IDA7CisgICAg
bV9jbGllbnQgPSBudWxscHRyOwogCi0gICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdU
Rjo6YmluZCgmQ29ubmVjdGlvbjo6cGxhdGZvcm1JbnZhbGlkYXRlLCB0aGlzKSk7CisgICAgUmVm
UHRyPENvbm5lY3Rpb24+IHByb3RlY3Rvcih0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+
ZGlzcGF0Y2goW3Byb3RlY3Rvcl0geworICAgICAgICBwcm90ZWN0b3ItPnBsYXRmb3JtSW52YWxp
ZGF0ZSgpOworICAgIH0pOwogfQogCiB2b2lkIENvbm5lY3Rpb246Om1hcmtDdXJyZW50bHlEaXNw
YXRjaGVkTWVzc2FnZUFzSW52YWxpZCgpCkBAIC0zODEsNyArMzg3LDEwIEBAIGJvb2wgQ29ubmVj
dGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVy
LCB1bnNpZ25lZCBtCiAgICAgfQogICAgIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGEg
Ym9vbGVhbiBmbGFnIHNvIHdlIGRvbid0IGNhbGwgdGhpcyB3aGVuIHdvcmsgaGFzIGFscmVhZHkg
YmVlbiBzY2hlZHVsZWQuCi0gICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6Ymlu
ZCgmQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZXMsIHRoaXMpKTsKKyAgICBSZWZQdHI8
Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNw
YXRjaChbcHJvdGVjdG9yXSB7CisgICAgICAgIHByb3RlY3Rvci0+c2VuZE91dGdvaW5nTWVzc2Fn
ZXMoKTsKKyAgICB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjI5LDIzICs2MzgsMjcg
QEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gbWVzc2FnZSkKICAgICB9CiAKICAgICBpZiAoIW1fd29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVycy5pc1ZhbGlkS2V5KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkpIHsKLSAgICAgICAgaWYgKG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5pc0VtcHR5
KCkgJiYgbWVzc2FnZS0+bWVzc2FnZU5hbWUoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8v
IFNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gZGVjb2RpbmcgdGhlIG1lc3NhZ2UuIEVuY29kZSB0
aGUgbWVzc2FnZSBsZW5ndGggc28gd2UgY2FuIGZpZ3VyZSBvdXQgaWYgdGhpcwotICAgICAgICAg
ICAgLy8gaGFwcGVucyBmb3IgY2VydGFpbiBtZXNzYWdlIGxlbmd0aHMuCi0gICAgICAgICAgICBD
U3RyaW5nIG1lc3NhZ2VSZWNlaXZlck5hbWUgPSAiPHVua25vd24gbWVzc2FnZT4iOwotICAgICAg
ICAgICAgQ1N0cmluZyBtZXNzYWdlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCI8bWVzc2FnZSBsZW5n
dGg6ICV6dSBieXRlcz4iLCBtZXNzYWdlLT5sZW5ndGgoKSkudXRmOCgpOwotCi0gICAgICAgICAg
ICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UsIHRoaXMsIG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VO
YW1lKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBtX2NsaWVu
dFJ1bkxvb3AuZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UsIHRoaXMsIG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmlu
ZygpLCBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgLy8gU29t
ZXRoaW5nIG1pZ2h0IGhhdmUgZ29uZSB3cm9uZyB3aGVuIGRlY29kaW5nIHRoZSBtZXNzYWdlLiBJ
biB0aGF0IGNhc2UsIGVuY29kZSB0aGUgbWVzc2FnZSBsZW5ndGgKKyAgICAgICAgLy8gc28gd2Ug
Y2FuIGZpZ3VyZSBvdXQgaWYgdGhpcyBoYXBwZW5zIGZvciBjZXJ0YWluIG1lc3NhZ2UgbGVuZ3Ro
cy4KKyAgICAgICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lID0gbWVzc2FnZS0+bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLmlzRW1wdHkoKSA/ICI8dW5rbm93biBtZXNzYWdlPiIgOiBtZXNzYWdl
LT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKTsKKyAgICAgICAgQ1N0cmluZyBtZXNz
YWdlTmFtZSA9IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkuaXNFbXB0eSgpID8gU3RyaW5nOjpmb3Jt
YXQoIjxtZXNzYWdlIGxlbmd0aDogJXp1IGJ5dGVzPiIsIG1lc3NhZ2UtPmxlbmd0aCgpKS51dGY4
KCkgOiBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKTsKKworICAgICAg
ICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOworICAgICAgICBtX2NsaWVudFJ1
bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RvciwgbWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5h
bWVdIHsKKyAgICAgICAgICAgIHByb3RlY3Rvci0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UobWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUpOworICAgICAgICB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gaXQgPSBtX3dvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcnMuZmluZChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIGlmIChp
dCAhPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuZW5kKCkpIHsKLSAgICAgICAgaXQtPnZh
bHVlLmZpcnN0LT5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlck1lc3NhZ2UsIHRoaXMsIGl0LT52YWx1ZS5zZWNvbmQsIG1lc3NhZ2UucmVs
ZWFzZSgpKSk7CisgICAgICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0b3IodGhpcyk7Cisg
ICAgICAgIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+JiB3b3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIgPSBpdC0+dmFsdWUuc2Vjb25kOworICAgICAgICBNZXNzYWdlRGVjb2RlciogZGVj
b2RlclB0ciA9IG1lc3NhZ2UucmVsZWFzZSgpOworICAgICAgICBpdC0+dmFsdWUuZmlyc3QtPmRp
c3BhdGNoKFtwcm90ZWN0b3IsIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgZGVjb2RlclB0cl0g
eworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKGRl
Y29kZXJQdHIpOworICAgICAgICAgICAgcHJvdGVjdG9yLT5kaXNwYXRjaFdvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlck1lc3NhZ2Uod29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLmdldCgpLCBkZWNvZGVy
LmdldCgpKTsKKyAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgwMSw3
ICs4MTQsMTAgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gaW5jb21pbmcKICAgICAgICAgbV9pbmNvbWluZ01l
c3NhZ2VzLmFwcGVuZChXVEY6Om1vdmUoaW5jb21pbmdNZXNzYWdlKSk7CiAgICAgfQogCi0gICAg
bV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hP
bmVNZXNzYWdlLCB0aGlzKSk7CisgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3Rvcih0aGlz
KTsKKyAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3Rvcl0geworICAgICAgICBw
cm90ZWN0b3ItPmRpc3BhdGNoT25lTWVzc2FnZSgpOworICAgIH0pOwogfQogCiB2b2lkIENvbm5l
Y3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQppbmRleCBjMDg0
NWVjZWE5NzJmOTA5MzcwMDYzYjliMmVjZjE0NWZjM2U2OTQ5Li5hNGEyMTdkOGVkOGI5M2NkMzBl
ZTJiOWViNWZjODIyNjZiNWU0NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCkBAIC0zNjEsNyArMzYxLDExIEBAIGJvb2wgQ29ubmVj
dGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+
IGVuY29kZXIpCiB2b2lkIENvbm5lY3Rpb246OmluaXRpYWxpemVEZWFkTmFtZVNvdXJjZSgpCiB7
CiAgICAgbV9kZWFkTmFtZVNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hf
U09VUkNFX1RZUEVfTUFDSF9TRU5ELCBtX3NlbmRQb3J0LCAwLCBtX2Nvbm5lY3Rpb25RdWV1ZS0+
ZGlzcGF0Y2hRdWV1ZSgpKTsKLSAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIo
bV9kZWFkTmFtZVNvdXJjZSwgYmluZCgmQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlLCB0
aGlzKSk7CisKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOworICAgIGRp
c3BhdGNoX3NvdXJjZV9zZXRfZXZlbnRfaGFuZGxlcihtX2RlYWROYW1lU291cmNlLCBeeworICAg
ICAgICBwcm90ZWN0b3ItPmNvbm5lY3Rpb25EaWRDbG9zZSgpOworICAgIH0pOwogCiAgICAgbWFj
aF9wb3J0X3Qgc2VuZFBvcnQgPSBtX3NlbmRQb3J0OwogICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRf
Y2FuY2VsX2hhbmRsZXIobV9kZWFkTmFtZVNvdXJjZSwgXnsKQEAgLTUwNCw3ICs1MDgsMTIgQEAg
dm9pZCBDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbGVyKCkKICAgICBpZiAoZGVj
b2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09ICJJUEMiICYmIGRlY29kZXItPm1lc3NhZ2VO
YW1lKCkgPT0gIlNldEV4Y2VwdGlvblBvcnQiKSB7CiAgICAgICAgIGlmIChtX2lzU2VydmVyKSB7
CiAgICAgICAgICAgICAvLyBTZXJ2ZXIgY29ubmVjdGlvbnMgYXJlbid0IHN1cHBvc2VkIHRvIGhh
dmUgdGhlaXIgZXhjZXB0aW9uIHBvcnRzIG92ZXJyaWRlbi4gVHJlYXQgdGhpcyBhcyBhbiBpbnZh
bGlkIG1lc3NhZ2UuCi0gICAgICAgICAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goYmluZCgm
Q29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UsIHRoaXMsIGRlY29k
ZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLCBkZWNvZGVyLT5tZXNzYWdlTmFt
ZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0
b3IodGhpcyk7CisgICAgICAgICAgICBDU3RyaW5nIG1lc3NhZ2VSZWNlaXZlck5hbWVTdHJpbmcg
PSBkZWNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAg
IENTdHJpbmcgbWVzc2FnZU5hbWVTdHJpbmcgPSBkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLnRvU3Ry
aW5nKCk7CisgICAgICAgICAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3Rvciwg
bWVzc2FnZVJlY2VpdmVyTmFtZVN0cmluZywgbWVzc2FnZU5hbWVTdHJpbmddIHsKKyAgICAgICAg
ICAgICAgICBwcm90ZWN0b3ItPmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKG1lc3Nh
Z2VSZWNlaXZlck5hbWVTdHJpbmcsIG1lc3NhZ2VOYW1lU3RyaW5nKTsKKyAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIE1hY2hQb3J0IGV4Y2Vw
dGlvblBvcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25u
ZWN0aW9uVW5peC5jcHAKaW5kZXggMTZiZTAxNGU4NzM5ZmFjNGQ5NzA0NDliZmExNGQwNjE5NDk4
ZGI4Ni4uN2ZmNzUyZjBiN2QyMzVkMzA2ZmRlYWZjYjAxZWM4ODBlMzQ4MzM3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApA
QCAtMzg4LDI3ICszODgsMjcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICAgICAgfQog
ICAgIH0KIAorICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0b3IodGhpcyk7CiAgICAgbV9p
c0Nvbm5lY3RlZCA9IHRydWU7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIFJlZlB0cjxDb25uZWN0
aW9uPiBwcm90ZWN0b3IodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uUXVldWUtPnJlZ2lzdGVyU29j
a2V0RXZlbnRIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwKLSAgICAgICAgWz1dIHsKKyAgICAg
ICAgW3Byb3RlY3Rvcl0gewogICAgICAgICAgICAgcHJvdGVjdG9yLT5yZWFkeVJlYWRIYW5kbGVy
KCk7CiAgICAgICAgIH0sCi0gICAgICAgIFs9XSB7CisgICAgICAgIFtwcm90ZWN0b3JdIHsKICAg
ICAgICAgICAgIHByb3RlY3Rvci0+Y29ubmVjdGlvbkRpZENsb3NlKCk7CiAgICAgICAgIH0pOwog
I2VsaWYgUExBVEZPUk0oRUZMKQotICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0b3IodGhp
cyk7CiAgICAgbV9jb25uZWN0aW9uUXVldWUtPnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKG1f
c29ja2V0RGVzY3JpcHRvciwKICAgICAgICAgW3Byb3RlY3Rvcl0gewogICAgICAgICAgICAgcHJv
dGVjdG9yLT5yZWFkeVJlYWRIYW5kbGVyKCk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKLSAgICAv
LyBTY2hlZHVsZSBhIGNhbGwgdG8gcmVhZHlSZWFkSGFuZGxlci4gRGF0YSBtYXkgaGF2ZSBhcnJp
dmVkIGJlZm9yZSBpbnN0YWxsYXRpb24gb2YgdGhlIHNpZ25hbAotICAgIC8vIGhhbmRsZXIuCi0g
ICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6cmVh
ZHlSZWFkSGFuZGxlciwgdGhpcykpOworICAgIC8vIFNjaGVkdWxlIGEgY2FsbCB0byByZWFkeVJl
YWRIYW5kbGVyLiBEYXRhIG1heSBoYXZlIGFycml2ZWQgYmVmb3JlIGluc3RhbGxhdGlvbiBvZiB0
aGUgc2lnbmFsIGhhbmRsZXIuCisgICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90
ZWN0b3JdIHsKKyAgICAgICAgcHJvdGVjdG9yLT5yZWFkeVJlYWRIYW5kbGVyKCk7CisgICAgfSk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240621</attachid>
            <date>2014-10-29 14:13:49 -0700</date>
            <delta_ts>2014-11-14 03:07:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20141029221355.patch</filename>
            <type>text/plain</type>
            <size>10641</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDllMzYyZjMxYWUxMThl
NGVjN2I1MDlhODQ3Njg1YmU5MzYxZWZmMy4uMTM0MzkzNzBkNTE0ODZjMjdlNzYzN2VlYTMzMmUy
M2ZhNzI3NzE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTEwLTI5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysr
IGxhbWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQ
Qzo6Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKzExIGxhbWJkYXMuCisKKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNN
ZXNzYWdlU3RhdGU6OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAg
ICAoSVBDOjpDb25uZWN0aW9uOjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21p
bmdNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVz
c2FnZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjppbml0aWFsaXplRGVhZE5hbWVTb3VyY2UpOgorICAgICAg
ICAoSVBDOjpDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbGVyKToKKyAgICAgICAg
KiBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6CisgICAgICAgIChJUEM6OkNv
bm5lY3Rpb246Om9wZW4pOgorCiAyMDE0LTEwLTI5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgogCiAgICAgICAgIEhpZGUgdGhlICdBZGQgdG8gUGhvdG9zJyBpdGVtIGlm
IGl0IGlzbid0IGF2YWlsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDBjYzU0ODNhM2IzYzMwNjk3YjRmMzI3M2NlYTFjOThmZjg2YjI3NzEuLjI0
MjYwMWI3NWVjYmQ5YTViMjVhM2E3ZjdhNWVlNGE0MzYwY2U0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTE2NCw4ICsxNjQsMTMgQEAgYm9vbCBD
b25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24KICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKICAgICAgICAgCi0gICAgICAgIGlmIChtX2RpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdl
c1dvcmtTZXQuYWRkKGNvbm5lY3Rpb24pLmlzTmV3RW50cnkpCi0gICAgICAgICAgICBtX3J1bkxv
b3AuZGlzcGF0Y2goYmluZCgmU3luY01lc3NhZ2VTdGF0ZTo6ZGlzcGF0Y2hNZXNzYWdlQW5kUmVz
ZXREaWRTY2hlZHVsZURpc3BhdGNoTWVzc2FnZXNGb3JDb25uZWN0aW9uLCB0aGlzLCBSZWZQdHI8
Q29ubmVjdGlvbj4oY29ubmVjdGlvbikpKTsKKyAgICAgICAgaWYgKG1fZGlkU2NoZWR1bGVEaXNw
YXRjaE1lc3NhZ2VzV29ya1NldC5hZGQoY29ubmVjdGlvbikuaXNOZXdFbnRyeSkgeworICAgICAg
ICAgICAgUmVmUHRyPFN5bmNNZXNzYWdlU3RhdGU+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAg
ICAgICAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkQ29ubmVjdGlvbihjb25uZWN0aW9u
KTsKKyAgICAgICAgICAgIG1fcnVuTG9vcC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgcHJvdGVj
dGVkQ29ubmVjdGlvbl0geworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNo
TWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihw
cm90ZWN0ZWRDb25uZWN0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAK
ICAgICAgICAgbV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBw
ZW5kKFdURjo6bW92ZShjb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlKSk7CiAgICAgfQpAQCAt
Mjk2LDEwICszMDEsOCBAQCB2b2lkIENvbm5lY3Rpb246OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTgogICAgIH0pOwogfQogCi12
b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShX
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgTWVzc2Fn
ZURlY29kZXIqIGluY29taW5nTWVzc2FnZURlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3Bh
dGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXIqIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCiB7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKGluY29taW5nTWVz
c2FnZURlY29kZXIpOwotCiAgICAgaWYgKCFkZWNvZGVyLT5pc1N5bmNNZXNzYWdlKCkpIHsKICAg
ICAgICAgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLT5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCAq
ZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKQEAgLTM0MCw5ICszNDMsMTIgQEAgdm9pZCBDb25u
ZWN0aW9uOjppbnZhbGlkYXRlKCkKICAgICB9CiAgICAgCiAgICAgLy8gUmVzZXQgdGhlIGNsaWVu
dC4KLSAgICBtX2NsaWVudCA9IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRyOwogCi0gICAgbV9j
b25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6cGxhdGZvcm1J
bnZhbGlkYXRlLCB0aGlzKSk7CisgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXMo
dGhpcyk7CisgICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzXSB7
CisgICAgICAgIHByb3RlY3RlZFRoaXMtPnBsYXRmb3JtSW52YWxpZGF0ZSgpOworICAgIH0pOwog
fQogCiB2b2lkIENvbm5lY3Rpb246Om1hcmtDdXJyZW50bHlEaXNwYXRjaGVkTWVzc2FnZUFzSW52
YWxpZCgpCkBAIC0zODEsNyArMzg3LDEwIEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Uo
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1bnNpZ25lZCBtCiAgICAg
fQogICAgIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGEgYm9vbGVhbiBmbGFnIHNvIHdl
IGRvbid0IGNhbGwgdGhpcyB3aGVuIHdvcmsgaGFzIGFscmVhZHkgYmVlbiBzY2hlZHVsZWQuCi0g
ICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6c2Vu
ZE91dGdvaW5nTWVzc2FnZXMsIHRoaXMpKTsKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVj
dGVkVGhpcyh0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXNdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+c2VuZE91dGdvaW5nTWVzc2FnZXMoKTsK
KyAgICB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjI5LDIzICs2MzgsMjcgQEAgdm9p
ZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlRGVjb2Rlcj4gbWVzc2FnZSkKICAgICB9CiAKICAgICBpZiAoIW1fd29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVycy5pc1ZhbGlkS2V5KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkpIHsK
LSAgICAgICAgaWYgKG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5pc0VtcHR5KCkgJiYg
bWVzc2FnZS0+bWVzc2FnZU5hbWUoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8vIFNvbWV0
aGluZyB3ZW50IHdyb25nIHdoZW4gZGVjb2RpbmcgdGhlIG1lc3NhZ2UuIEVuY29kZSB0aGUgbWVz
c2FnZSBsZW5ndGggc28gd2UgY2FuIGZpZ3VyZSBvdXQgaWYgdGhpcwotICAgICAgICAgICAgLy8g
aGFwcGVucyBmb3IgY2VydGFpbiBtZXNzYWdlIGxlbmd0aHMuCi0gICAgICAgICAgICBDU3RyaW5n
IG1lc3NhZ2VSZWNlaXZlck5hbWUgPSAiPHVua25vd24gbWVzc2FnZT4iOwotICAgICAgICAgICAg
Q1N0cmluZyBtZXNzYWdlTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCI8bWVzc2FnZSBsZW5ndGg6ICV6
dSBieXRlcz4iLCBtZXNzYWdlLT5sZW5ndGgoKSkudXRmOCgpOwotCi0gICAgICAgICAgICBtX2Ns
aWVudFJ1bkxvb3AuZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UsIHRoaXMsIG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBtX2NsaWVudFJ1bkxv
b3AuZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UsIHRoaXMsIG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLCBt
ZXNzYWdlLT5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgLy8gU29tZXRoaW5n
IG1pZ2h0IGhhdmUgZ29uZSB3cm9uZyB3aGVuIGRlY29kaW5nIHRoZSBtZXNzYWdlLiBJbiB0aGF0
IGNhc2UsIGVuY29kZSB0aGUgbWVzc2FnZSBsZW5ndGgKKyAgICAgICAgLy8gc28gd2UgY2FuIGZp
Z3VyZSBvdXQgaWYgdGhpcyBoYXBwZW5zIGZvciBjZXJ0YWluIG1lc3NhZ2UgbGVuZ3Rocy4KKyAg
ICAgICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lID0gbWVzc2FnZS0+bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLmlzRW1wdHkoKSA/ICI8dW5rbm93biBtZXNzYWdlPiIgOiBtZXNzYWdlLT5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKTsKKyAgICAgICAgQ1N0cmluZyBtZXNzYWdlTmFt
ZSA9IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkuaXNFbXB0eSgpID8gU3RyaW5nOjpmb3JtYXQoIjxt
ZXNzYWdlIGxlbmd0aDogJXp1IGJ5dGVzPiIsIG1lc3NhZ2UtPmxlbmd0aCgpKS51dGY4KCkgOiBt
ZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKTsKKworICAgICAgICBSZWZQ
dHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICAgICAgbV9jbGllbnRSdW5M
b29wLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdl
TmFtZV0geworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UobWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUpOworICAgICAgICB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gaXQgPSBtX3dvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcnMuZmluZChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAg
IGlmIChpdCAhPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuZW5kKCkpIHsKLSAgICAgICAg
aXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UsIHRoaXMsIGl0LT52YWx1ZS5zZWNvbmQsIG1lc3Nh
Z2UucmVsZWFzZSgpKSk7CisgICAgICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlz
KHRoaXMpOworICAgICAgICBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyPiYgd29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyID0gaXQtPnZhbHVlLnNlY29uZDsKKyAgICAgICAgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXJQdHIgPSBtZXNzYWdlLnJlbGVhc2UoKTsKKyAgICAgICAgaXQtPnZhbHVl
LmZpcnN0LT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
LCBkZWNvZGVyUHRyXSB7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IGRlY29kZXIoZGVjb2RlclB0cik7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNw
YXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2Uod29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyLmdldCgpLCBkZWNvZGVyLmdldCgpKTsKKyAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTgwMSw3ICs4MTQsMTAgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5j
b21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gaW5jb21pbmcKICAg
ICAgICAgbV9pbmNvbWluZ01lc3NhZ2VzLmFwcGVuZChXVEY6Om1vdmUoaW5jb21pbmdNZXNzYWdl
KSk7CiAgICAgfQogCi0gICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFdURjo6YmluZCgmQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlLCB0aGlzKSk7CisgICAgUmVmUHRyPENvbm5lY3Rp
b24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzXSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoT25lTWVzc2Fn
ZSgpOworICAgIH0pOwogfQogCiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9t
YWMvQ29ubmVjdGlvbk1hYy5tbQppbmRleCBjMDg0NWVjZWE5NzJmOTA5MzcwMDYzYjliMmVjZjE0
NWZjM2U2OTQ5Li4zYjc1ZThlZjQyMGFmNzk3MTQ4OTljY2VlODkzYmM3MmFmOTQxODZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCkBA
IC0zNjEsNyArMzYxLDExIEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZShz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCiB2b2lkIENvbm5lY3Rpb246
OmluaXRpYWxpemVEZWFkTmFtZVNvdXJjZSgpCiB7CiAgICAgbV9kZWFkTmFtZVNvdXJjZSA9IGRp
c3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUFDSF9TRU5ELCBtX3Nl
bmRQb3J0LCAwLCBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2hRdWV1ZSgpKTsKLSAgICBkaXNw
YXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV9kZWFkTmFtZVNvdXJjZSwgYmluZCgmQ29u
bmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlLCB0aGlzKSk7CisKKyAgICBSZWZQdHI8Q29ubmVj
dGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50
X2hhbmRsZXIobV9kZWFkTmFtZVNvdXJjZSwgXnsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y29u
bmVjdGlvbkRpZENsb3NlKCk7CisgICAgfSk7CiAKICAgICBtYWNoX3BvcnRfdCBzZW5kUG9ydCA9
IG1fc2VuZFBvcnQ7CiAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9jYW5jZWxfaGFuZGxlcihtX2Rl
YWROYW1lU291cmNlLCBeewpAQCAtNTA0LDcgKzUwOCwxMiBAQCB2b2lkIENvbm5lY3Rpb246OnJl
Y2VpdmVTb3VyY2VFdmVudEhhbmRsZXIoKQogICAgIGlmIChkZWNvZGVyLT5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gIklQQyIgJiYgZGVjb2Rlci0+bWVzc2FnZU5hbWUoKSA9PSAiU2V0RXhjZXB0
aW9uUG9ydCIpIHsKICAgICAgICAgaWYgKG1faXNTZXJ2ZXIpIHsKICAgICAgICAgICAgIC8vIFNl
cnZlciBjb25uZWN0aW9ucyBhcmVuJ3Qgc3VwcG9zZWQgdG8gaGF2ZSB0aGVpciBleGNlcHRpb24g
cG9ydHMgb3ZlcnJpZGVuLiBUcmVhdCB0aGlzIGFzIGFuIGludmFsaWQgbWVzc2FnZS4KLSAgICAg
ICAgICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRj
aERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLnRvU3RyaW5nKCksIGRlY29kZXItPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSkpOwor
ICAgICAgICAgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAg
ICAgICAgICBDU3RyaW5nIG1lc3NhZ2VSZWNlaXZlck5hbWVTdHJpbmcgPSBkZWNvZGVyLT5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIENTdHJpbmcgbWVzc2Fn
ZU5hbWVTdHJpbmcgPSBkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCk7CisgICAgICAg
ICAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIG1lc3NhZ2VSZWNl
aXZlck5hbWVTdHJpbmcsIG1lc3NhZ2VOYW1lU3RyaW5nXSB7CisgICAgICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZVJlY2Vp
dmVyTmFtZVN0cmluZywgbWVzc2FnZU5hbWVTdHJpbmcpOworICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgTWFjaFBvcnQgZXhjZXB0aW9uUG9y
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25V
bml4LmNwcAppbmRleCAxNmJlMDE0ZTg3MzlmYWM0ZDk3MDQ0OWJmYTE0ZDA2MTk0OThkYjg2Li40
ZGQ5NWZkMGQ5MjNhNjIzODdiMGNlMzllNDYwYWVmZGMzNTE1N2Y5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCkBAIC0zODgs
MjcgKzM4OCwyNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICB9CiAgICAgfQog
CisgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgbV9pc0Nv
bm5lY3RlZCA9IHRydWU7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIFJlZlB0cjxDb25uZWN0aW9u
PiBwcm90ZWN0b3IodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uUXVldWUtPnJlZ2lzdGVyU29ja2V0
RXZlbnRIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwKLSAgICAgICAgWz1dIHsKLSAgICAgICAg
ICAgIHByb3RlY3Rvci0+cmVhZHlSZWFkSGFuZGxlcigpOworICAgICAgICBbcHJvdGVjdGVkVGhp
c10geworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOwogICAg
ICAgICB9LAotICAgICAgICBbPV0gewotICAgICAgICAgICAgcHJvdGVjdG9yLT5jb25uZWN0aW9u
RGlkQ2xvc2UoKTsKKyAgICAgICAgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmNvbm5lY3Rpb25EaWRDbG9zZSgpOwogICAgICAgICB9KTsKICNlbGlmIFBMQVRG
T1JNKEVGTCkKLSAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOwogICAgIG1f
Y29ubmVjdGlvblF1ZXVlLT5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihtX3NvY2tldERlc2Ny
aXB0b3IsCi0gICAgICAgIFtwcm90ZWN0b3JdIHsKLSAgICAgICAgICAgIHByb3RlY3Rvci0+cmVh
ZHlSZWFkSGFuZGxlcigpOworICAgICAgICBbcHJvdGVjdGVkVGhpc10geworICAgICAgICAgICAg
cHJvdGVjdGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOwogICAgICAgICB9KTsKICNlbmRpZgog
Ci0gICAgLy8gU2NoZWR1bGUgYSBjYWxsIHRvIHJlYWR5UmVhZEhhbmRsZXIuIERhdGEgbWF5IGhh
dmUgYXJyaXZlZCBiZWZvcmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBzaWduYWwKLSAgICAvLyBoYW5k
bGVyLgotICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChXVEY6OmJpbmQoJkNvbm5lY3Rp
b246OnJlYWR5UmVhZEhhbmRsZXIsIHRoaXMpKTsKKyAgICAvLyBTY2hlZHVsZSBhIGNhbGwgdG8g
cmVhZHlSZWFkSGFuZGxlci4gRGF0YSBtYXkgaGF2ZSBhcnJpdmVkIGJlZm9yZSBpbnN0YWxsYXRp
b24gb2YgdGhlIHNpZ25hbCBoYW5kbGVyLgorICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRj
aChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZWFkeVJlYWRIYW5k
bGVyKCk7CisgICAgfSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241571</attachid>
            <date>2014-11-14 03:07:24 -0800</date>
            <delta_ts>2015-01-19 02:13:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20141114030826.patch</filename>
            <type>text/plain</type>
            <size>12266</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGY4ODFlZDk5ZTU0YTNj
NWY3MjZjNmNkY2VhY2E5NDQ0YmEzNTAyNC4uOThjMjVjMGI5NWUxODljYzFkOGRjNjJmODEwYmE4
YzhmYmE2YjkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTExLTE0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysr
IGxhbWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQ
Qzo6Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKzExIGxhbWJkYXMuCisKKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNN
ZXNzYWdlU3RhdGU6OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAg
ICAoSVBDOjpDb25uZWN0aW9uOjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21p
bmdNZXNzYWdlKTogU2ltcGxpZnkgdGhlIGVycm9yIG1lc3NhZ2VzIHNvIHdlCisgICAgICAgIGRv
bid0IGhhdmUgdG8gZm9ybWF0IHN0cmluZ3Mgb24tdGhlLWZseSwgcmVtb3ZpbmcgdGhlIGlzc3Vl
cyBvZiBjcm9zcy10aHJlYWQKKyAgICAgICAgc3RyaW5nIGNvcHlpbmcgYWx0b2dldGhlci4KKyAg
ICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Up
OiBUaGUgcGFyYW1ldGVycyBhcmUgbm93CisgICAgICAgIG9mIHRoZSBTdHJpbmdSZWZlcmVuY2Ug
dHlwZS4KKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSk6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246Omlu
aXRpYWxpemVEZWFkTmFtZVNvdXJjZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2Vp
dmVTb3VyY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5l
Y3Rpb25Vbml4LmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTQt
MTEtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtTT1VQXSBFbmNvZGUvRGVjb2RlIGFsbG93Q29va2llcyBpbiBSZXNvdXJjZVJlcXVlc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCAwY2M1NDgz
YTNiM2MzMDY5N2I0ZjMyNzNjZWExYzk4ZmY4NmIyNzcxLi45OTEyMjlmZjRkMWY1MmVjOGJlODdk
NDEzMGY0YTY2MmM5OGE2NWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCkBAIC0xNjQsOCArMTY0LDEzIEBAIGJvb2wgQ29ubmVjdGlvbjo6U3luY01lc3Nh
Z2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uCiAg
ICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIAotICAg
ICAgICBpZiAobV9kaWRTY2hlZHVsZURpc3BhdGNoTWVzc2FnZXNXb3JrU2V0LmFkZChjb25uZWN0
aW9uKS5pc05ld0VudHJ5KQotICAgICAgICAgICAgbV9ydW5Mb29wLmRpc3BhdGNoKGJpbmQoJlN5
bmNNZXNzYWdlU3RhdGU6OmRpc3BhdGNoTWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1bGVEaXNwYXRj
aE1lc3NhZ2VzRm9yQ29ubmVjdGlvbiwgdGhpcywgUmVmUHRyPENvbm5lY3Rpb24+KGNvbm5lY3Rp
b24pKSk7CisgICAgICAgIGlmIChtX2RpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc1dvcmtTZXQu
YWRkKGNvbm5lY3Rpb24pLmlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTeW5jTWVz
c2FnZVN0YXRlPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgICAgICAgICAgUmVmUHRyPENvbm5l
Y3Rpb24+IHByb3RlY3RlZENvbm5lY3Rpb24oY29ubmVjdGlvbik7CisgICAgICAgICAgICBtX3J1
bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIHByb3RlY3RlZENvbm5lY3Rpb25dIHsKKyAg
ICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaE1lc3NhZ2VBbmRSZXNldERpZFNj
aGVkdWxlRGlzcGF0Y2hNZXNzYWdlc0ZvckNvbm5lY3Rpb24ocHJvdGVjdGVkQ29ubmVjdGlvbi5n
ZXQoKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogCiAgICAgICAgIG1fbWVzc2FnZXNU
b0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5LmFwcGVuZChXVEY6Om1vdmUoY29ubmVj
dGlvbkFuZEluY29taW5nTWVzc2FnZSkpOwogICAgIH0KQEAgLTI5NiwxMCArMzAxLDggQEAgdm9p
ZCBDb25uZWN0aW9uOjpyZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoU3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck4KICAgICB9KTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpkaXNw
YXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKiB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsIE1lc3NhZ2VEZWNvZGVyKiBpbmNvbWluZ01l
c3NhZ2VEZWNvZGVyKQordm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiB3b3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIsIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyKQogewotICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gZGVjb2RlcihpbmNvbWluZ01lc3NhZ2VEZWNvZGVyKTsKLQogICAg
IGlmICghZGVjb2Rlci0+aXNTeW5jTWVzc2FnZSgpKSB7CiAgICAgICAgIHdvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UodGhpcywgKmRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CkBAIC0zNDAsOSArMzQzLDEyIEBAIHZvaWQgQ29ubmVjdGlvbjo6aW52YWxpZGF0ZSgp
CiAgICAgfQogICAgIAogICAgIC8vIFJlc2V0IHRoZSBjbGllbnQuCi0gICAgbV9jbGllbnQgPSAw
OworICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKIAotICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNw
YXRjaChXVEY6OmJpbmQoJkNvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSwgdGhpcykpOwor
ICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fY29ubmVj
dGlvblF1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5wbGF0Zm9ybUludmFsaWRhdGUoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBDb25uZWN0aW9u
OjptYXJrQ3VycmVudGx5RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQoKQpAQCAtMzgxLDcgKzM4
NywxMCBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbQogICAgIH0KICAgICAKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFkZCBhIGJvb2xlYW4gZmxhZyBzbyB3ZSBkb24ndCBjYWxsIHRoaXMgd2hl
biB3b3JrIGhhcyBhbHJlYWR5IGJlZW4gc2NoZWR1bGVkLgotICAgIG1fY29ubmVjdGlvblF1ZXVl
LT5kaXNwYXRjaChXVEY6OmJpbmQoJkNvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2VzLCB0
aGlzKSk7CisgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAg
bV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAgIHBy
b3RlY3RlZFRoaXMtPnNlbmRPdXRnb2luZ01lc3NhZ2VzKCk7CisgICAgfSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTYyOSwyMyArNjM4LDI1IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vz
c0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2Up
CiAgICAgfQogCiAgICAgaWYgKCFtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuaXNWYWxpZEtl
eShtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpKSB7Ci0gICAgICAgIGlmIChtZXNzYWdl
LT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuaXNFbXB0eSgpICYmIG1lc3NhZ2UtPm1lc3NhZ2VOYW1l
KCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyB3aGVu
IGRlY29kaW5nIHRoZSBtZXNzYWdlLiBFbmNvZGUgdGhlIG1lc3NhZ2UgbGVuZ3RoIHNvIHdlIGNh
biBmaWd1cmUgb3V0IGlmIHRoaXMKLSAgICAgICAgICAgIC8vIGhhcHBlbnMgZm9yIGNlcnRhaW4g
bWVzc2FnZSBsZW5ndGhzLgotICAgICAgICAgICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1l
ID0gIjx1bmtub3duIG1lc3NhZ2U+IjsKLSAgICAgICAgICAgIENTdHJpbmcgbWVzc2FnZU5hbWUg
PSBTdHJpbmc6OmZvcm1hdCgiPG1lc3NhZ2UgbGVuZ3RoOiAlenUgYnl0ZXM+IiwgbWVzc2FnZS0+
bGVuZ3RoKCkpLnV0ZjgoKTsKKyAgICAgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRo
aXModGhpcyk7CisgICAgICAgIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lID0g
bWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLmlzRW1wdHkoKSA/ICI8dW5rbm93biBtZXNz
YWdlIHJlY2VpdmVyPiIgOiBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCk7CisgICAgICAg
IFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSA9IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkuaXNF
bXB0eSgpID8gIjx1bmtub3duIG1lc3NhZ2U+IiA6IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCk7CiAK
LSAgICAgICAgICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpk
aXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgbWVzc2FnZU5hbWUpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaERp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgbWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLnRvU3RyaW5nKCksIG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSkpOworICAg
ICAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIG1lc3NhZ2VOYW1lXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNw
YXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdl
TmFtZSk7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byBp
dCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKG1lc3NhZ2UtPm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSk7CiAgICAgaWYgKGl0ICE9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5l
bmQoKSkgewotICAgICAgICBpdC0+dmFsdWUuZmlyc3QtPmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rp
b246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZSwgdGhpcywgaXQtPnZh
bHVlLnNlY29uZCwgbWVzc2FnZS5yZWxlYXNlKCkpKTsKKyAgICAgICAgUmVmUHRyPENvbm5lY3Rp
b24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgICAgIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXI+JiB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgPSBpdC0+dmFsdWUuc2Vjb25kOwor
ICAgICAgICBNZXNzYWdlRGVjb2RlciogZGVjb2RlclB0ciA9IG1lc3NhZ2UucmVsZWFzZSgpOwor
ICAgICAgICBpdC0+dmFsdWUuZmlyc3QtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzLCB3b3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXIsIGRlY29kZXJQdHJdIHsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVjb2RlcihkZWNvZGVyUHRyKTsKKyAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZSh3b3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIuZ2V0KCksIGRlY29kZXIuZ2V0KCkpOworICAgICAgICB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzc2LDE0ICs3ODcsMTQgQEAgdm9pZCBDb25u
ZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogICAg
ICAgICBzZW5kU3luY1JlcGx5KFdURjo6bW92ZShyZXBseUVuY29kZXIpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShjb25zdCBDU3RyaW5n
JiBtZXNzYWdlUmVjZWl2ZXJOYW1lU3RyaW5nLCBjb25zdCBDU3RyaW5nJiBtZXNzYWdlTmFtZVN0
cmluZykKK3ZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkKIHsKICAgICBBU1NFUlQoJlJ1bkxvb3A6OmN1cnJlbnQoKSA9PSAmbV9jbGllbnRS
dW5Mb29wKTsKIAogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UodGhpcywgU3RyaW5nUmVmZXJlbmNlKG1l
c3NhZ2VSZWNlaXZlck5hbWVTdHJpbmcuZGF0YSgpLCBtZXNzYWdlUmVjZWl2ZXJOYW1lU3RyaW5n
Lmxlbmd0aCgpKSwgU3RyaW5nUmVmZXJlbmNlKG1lc3NhZ2VOYW1lU3RyaW5nLmRhdGEoKSwgbWVz
c2FnZU5hbWVTdHJpbmcubGVuZ3RoKCkpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKHRoaXMsIG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsKIH0KIAog
dm9pZCBDb25uZWN0aW9uOjpkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKQpAQCAtODAxLDcgKzgx
MiwxMCBAQCB2b2lkIENvbm5lY3Rpb246OmVucXVldWVJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBpbmNvbWluZwogICAgICAgICBtX2luY29taW5nTWVzc2Fn
ZXMuYXBwZW5kKFdURjo6bW92ZShpbmNvbWluZ01lc3NhZ2UpKTsKICAgICB9CiAKLSAgICBtX2Ns
aWVudFJ1bkxvb3AuZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1l
c3NhZ2UsIHRoaXMpKTsKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlz
KTsKKyAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hPbmVNZXNzYWdlKCk7CisgICAgfSk7CiB9CiAKIHZv
aWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggYjUyY2YxZWUwMGUw
Njk3ODMyZTYwYTA3ZGQ5MWE4MGRlYTMzYThhZC4uYzFiYzdiN2EzMjE4ZjljZTlmMWZkMzgzMTdj
ZDE5ZDdlNmQ0N2JmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5o
CkBAIC0yMjIsNyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+KTsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2Fn
ZShNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdl
RGVjb2RlciYpOwotICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY29u
c3QgQ1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZVN0cmluZywgY29uc3QgQ1N0cmluZyYgbWVz
c2FnZU5hbWVTdHJpbmcpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSk7CiAgICAgdm9pZCBkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKTsKIAogICAg
IC8vIENhbiBiZSBjYWxsZWQgb24gYW55IHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQppbmRleCBjMDg0NWVjZWE5NzJmOTA5Mzcw
MDYzYjliMmVjZjE0NWZjM2U2OTQ5Li5kYWJiMDdmMTY3NDUyYjQwODhlNDZjMmFhNGU2NjI4ZTMz
OWZlYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0
aW9uTWFjLm1tCkBAIC0zNjEsNyArMzYxLDExIEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdv
aW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCiB2b2lk
IENvbm5lY3Rpb246OmluaXRpYWxpemVEZWFkTmFtZVNvdXJjZSgpCiB7CiAgICAgbV9kZWFkTmFt
ZVNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUFD
SF9TRU5ELCBtX3NlbmRQb3J0LCAwLCBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2hRdWV1ZSgp
KTsKLSAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV9kZWFkTmFtZVNvdXJj
ZSwgYmluZCgmQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlLCB0aGlzKSk7CisKKyAgICBS
ZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBkaXNwYXRjaF9zb3Vy
Y2Vfc2V0X2V2ZW50X2hhbmRsZXIobV9kZWFkTmFtZVNvdXJjZSwgXnsKKyAgICAgICAgcHJvdGVj
dGVkVGhpcy0+Y29ubmVjdGlvbkRpZENsb3NlKCk7CisgICAgfSk7CiAKICAgICBtYWNoX3BvcnRf
dCBzZW5kUG9ydCA9IG1fc2VuZFBvcnQ7CiAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9jYW5jZWxf
aGFuZGxlcihtX2RlYWROYW1lU291cmNlLCBeewpAQCAtNTA0LDcgKzUwOCwxMyBAQCB2b2lkIENv
bm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRsZXIoKQogICAgIGlmIChkZWNvZGVyLT5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gIklQQyIgJiYgZGVjb2Rlci0+bWVzc2FnZU5hbWUoKSA9
PSAiU2V0RXhjZXB0aW9uUG9ydCIpIHsKICAgICAgICAgaWYgKG1faXNTZXJ2ZXIpIHsKICAgICAg
ICAgICAgIC8vIFNlcnZlciBjb25uZWN0aW9ucyBhcmVuJ3Qgc3VwcG9zZWQgdG8gaGF2ZSB0aGVp
ciBleGNlcHRpb24gcG9ydHMgb3ZlcnJpZGVuLiBUcmVhdCB0aGlzIGFzIGFuIGludmFsaWQgbWVz
c2FnZS4KLSAgICAgICAgICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0
aW9uOjpkaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgZGVjb2Rlci0+bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCksIGRlY29kZXItPm1lc3NhZ2VOYW1lKCkudG9T
dHJpbmcoKSkpOworICAgICAgICAgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXMo
dGhpcyk7CisgICAgICAgICAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSA9
IGRlY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKTsKKyAgICAgICAgICAgIFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlTmFtZSA9IGRlY29kZXItPm1lc3NhZ2VOYW1lKCk7CisKKyAgICAgICAgICAg
IG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgbWVzc2FnZU5hbWVdIHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNw
YXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdl
TmFtZSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICBNYWNoUG9ydCBleGNlcHRpb25Qb3J0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IDE2YmUwMTRlODczOWZh
YzRkOTcwNDQ5YmZhMTRkMDYxOTQ5OGRiODYuLjRkZDk1ZmQwZDkyM2E2MjM4N2IwY2UzOWU0NjBh
ZWZkYzM1MTU3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4
L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5p
eC9Db25uZWN0aW9uVW5peC5jcHAKQEAgLTM4OCwyNyArMzg4LDI3IEBAIGJvb2wgQ29ubmVjdGlv
bjo6b3BlbigpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJv
dGVjdGVkVGhpcyh0aGlzKTsKICAgICBtX2lzQ29ubmVjdGVkID0gdHJ1ZTsKICNpZiBQTEFURk9S
TShHVEspCi0gICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3Rvcih0aGlzKTsKICAgICBtX2Nv
bm5lY3Rpb25RdWV1ZS0+cmVnaXN0ZXJTb2NrZXRFdmVudEhhbmRsZXIobV9zb2NrZXREZXNjcmlw
dG9yLAotICAgICAgICBbPV0gewotICAgICAgICAgICAgcHJvdGVjdG9yLT5yZWFkeVJlYWRIYW5k
bGVyKCk7CisgICAgICAgIFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5yZWFkeVJlYWRIYW5kbGVyKCk7CiAgICAgICAgIH0sCi0gICAgICAgIFs9XSB7Ci0gICAg
ICAgICAgICBwcm90ZWN0b3ItPmNvbm5lY3Rpb25EaWRDbG9zZSgpOworICAgICAgICBbcHJvdGVj
dGVkVGhpc10geworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y29ubmVjdGlvbkRpZENsb3Nl
KCk7CiAgICAgICAgIH0pOwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgIFJlZlB0cjxDb25uZWN0
aW9uPiBwcm90ZWN0b3IodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uUXVldWUtPnJlZ2lzdGVyU29j
a2V0RXZlbnRIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwKLSAgICAgICAgW3Byb3RlY3Rvcl0g
ewotICAgICAgICAgICAgcHJvdGVjdG9yLT5yZWFkeVJlYWRIYW5kbGVyKCk7CisgICAgICAgIFtw
cm90ZWN0ZWRUaGlzXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZWFkeVJlYWRIYW5k
bGVyKCk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKLSAgICAvLyBTY2hlZHVsZSBhIGNhbGwgdG8g
cmVhZHlSZWFkSGFuZGxlci4gRGF0YSBtYXkgaGF2ZSBhcnJpdmVkIGJlZm9yZSBpbnN0YWxsYXRp
b24gb2YgdGhlIHNpZ25hbAotICAgIC8vIGhhbmRsZXIuCi0gICAgbV9jb25uZWN0aW9uUXVldWUt
PmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxlciwgdGhpcykp
OworICAgIC8vIFNjaGVkdWxlIGEgY2FsbCB0byByZWFkeVJlYWRIYW5kbGVyLiBEYXRhIG1heSBo
YXZlIGFycml2ZWQgYmVmb3JlIGluc3RhbGxhdGlvbiBvZiB0aGUgc2lnbmFsIGhhbmRsZXIuCisg
ICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAg
IHByb3RlY3RlZFRoaXMtPnJlYWR5UmVhZEhhbmRsZXIoKTsKKyAgICB9KTsKIAogICAgIHJldHVy
biB0cnVlOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244888</attachid>
            <date>2015-01-19 02:13:22 -0800</date>
            <delta_ts>2015-03-08 12:49:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20150119021534.patch</filename>
            <type>text/plain</type>
            <size>10121</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3ODY0MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAxLTE5ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysrIGxh
bWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQQzo6
Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKyBsYW1iZGFzLgorCisgICAgICAgICogUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9u
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2UpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKTogU2ltcGxp
ZnkgdGhlIGVycm9yIG1lc3NhZ2VzIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8gZm9ybWF0
IHN0cmluZ3Mgb24tdGhlLWZseSwgcmVtb3ZpbmcgdGhlIGlzc3VlcyBvZiBjcm9zcy10aHJlYWQK
KyAgICAgICAgc3RyaW5nIGNvcHlpbmcgYWx0b2dldGhlci4KKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOiBUaGUgcGFyYW1ldGVycyBh
cmUgbm93CisgICAgICAgIG9mIHRoZSBTdHJpbmdSZWZlcmVuY2UgdHlwZS4KKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rp
b25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhh
bmRsZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTUtMDEtMTggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IHRoZSBp
T1MgYnVpbGQgYWZ0ZXIgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3ODYzMT4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAJKHJldmlz
aW9uIDE3ODY0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDEwICszMDAsOCBAQCB2b2lkIENvbm5lY3Rpb246OnJl
bW92ZVdvcmtRdWV1ZU1lc3NhZ2VSCiAgICAgfSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6ZGlz
cGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlciogd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciogaW5jb21pbmdN
ZXNzYWdlRGVjb2RlcikKK3ZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciogd29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciogZGVjb2RlcikKIHsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIoaW5jb21pbmdNZXNzYWdlRGVjb2Rlcik7Ci0KICAg
ICBpZiAoIWRlY29kZXItPmlzU3luY01lc3NhZ2UoKSkgewogICAgICAgICB3b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKCp0aGlzLCAqZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKQEAgLTM0NCw5ICszNDIsMTIgQEAgdm9pZCBDb25uZWN0aW9uOjppbnZhbGlkYXRl
KCkKICAgICB9CiAgICAgCiAgICAgLy8gUmVzZXQgdGhlIGNsaWVudC4KLSAgICBtX2NsaWVudCA9
IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRyOwogCi0gICAgbV9jb25uZWN0aW9uUXVldWUtPmRp
c3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6cGxhdGZvcm1JbnZhbGlkYXRlLCB0aGlzKSk7
CisgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9jb25u
ZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPnBsYXRmb3JtSW52YWxpZGF0ZSgpOworICAgIH0pOwogfQogCiB2b2lkIENvbm5lY3Rp
b246Om1hcmtDdXJyZW50bHlEaXNwYXRjaGVkTWVzc2FnZUFzSW52YWxpZCgpCkBAIC0zODUsNyAr
Mzg2LDEwIEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWUKICAgICB9
CiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhZGQgYSBib29sZWFuIGZsYWcgc28gd2Ug
ZG9uJ3QgY2FsbCB0aGlzIHdoZW4gd29yayBoYXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZC4KLSAg
ICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpzZW5k
T3V0Z29pbmdNZXNzYWdlcywgdGhpcykpOworICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0
ZWRUaGlzKHRoaXMpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVk
VGhpc10geworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kT3V0Z29pbmdNZXNzYWdlcygpOwor
ICAgIH0pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02MzMsMjMgKzYzNywyNSBAQCB2b2lk
IENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoCiAgICAgfQogCiAgICAgaWYgKCFt
X3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuaXNWYWxpZEtleShtZXNzYWdlLT5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpKSB7Ci0gICAgICAgIGlmIChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkuaXNFbXB0eSgpICYmIG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIGRlY29kaW5nIHRoZSBtZXNzYWdl
LiBFbmNvZGUgdGhlIG1lc3NhZ2UgbGVuZ3RoIHNvIHdlIGNhbiBmaWd1cmUgb3V0IGlmIHRoaXMK
LSAgICAgICAgICAgIC8vIGhhcHBlbnMgZm9yIGNlcnRhaW4gbWVzc2FnZSBsZW5ndGhzLgotICAg
ICAgICAgICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lID0gIjx1bmtub3duIG1lc3NhZ2U+
IjsKLSAgICAgICAgICAgIENTdHJpbmcgbWVzc2FnZU5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiPG1l
c3NhZ2UgbGVuZ3RoOiAlenUgYnl0ZXM+IiwgbWVzc2FnZS0+bGVuZ3RoKCkpLnV0ZjgoKTsKLQot
ICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rpb246OmRp
c3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlLCB0aGlzLCBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBtZXNzYWdlTmFtZSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoRGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlLCB0aGlzLCBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkudG9TdHJpbmcoKSwgbWVzc2FnZS0+bWVzc2FnZU5hbWUoKS50b1N0cmluZygpKSk7CisgICAg
ICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgICAgICBTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSA9IG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS5pc0VtcHR5KCkgPyAiPHVua25vd24gbWVzc2FnZSByZWNlaXZlcj4iIDogbWVzc2Fn
ZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpOworICAgICAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZU5hbWUgPSBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLmlzRW1wdHkoKSA/ICI8dW5rbm93biBtZXNz
YWdlPiIgOiBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpOworCisgICAgICAgIG1fY2xpZW50UnVuTG9v
cC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgbWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5h
bWVdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoRGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsKKyAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIGl0ID0gbV93b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJzLmZpbmQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBp
ZiAoaXQgIT0gbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmVuZCgpKSB7Ci0gICAgICAgIGl0
LT52YWx1ZS5maXJzdC0+ZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlLCB0aGlzLCBpdC0+dmFsdWUuc2Vjb25kLCBtZXNzYWdl
LnJlbGVhc2UoKSkpOworICAgICAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0
aGlzKTsKKyAgICAgICAgUmVmUHRyPFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcj4mIHdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlciA9IGl0LT52YWx1ZS5zZWNvbmQ7CisgICAgICAgIE1lc3NhZ2VEZWNv
ZGVyKiBkZWNvZGVyUHRyID0gbWVzc2FnZS5yZWxlYXNlKCk7CisgICAgICAgIGl0LT52YWx1ZS5m
aXJzdC0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwg
ZGVjb2RlclB0cl0geworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVy
PiBkZWNvZGVyKGRlY29kZXJQdHIpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0
Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
ci5nZXQoKSwgZGVjb2Rlci5nZXQoKSk7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC03ODAsMTQgKzc4NiwxNCBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3lu
Y01lc3NhZ2UoTWVzCiAgICAgICAgIHNlbmRTeW5jUmVwbHkoV1RGOjptb3ZlKHJlcGx5RW5jb2Rl
cikpOwogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWVTdHJpbmcsIGNvbnN0IENTdHJp
bmcmIG1lc3NhZ2VOYW1lU3RyaW5nKQordm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaERpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQogewogICAgIEFTU0VSVCgmUnVuTG9vcDo6Y3VycmVu
dCgpID09ICZtX2NsaWVudFJ1bkxvb3ApOwogCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSgqdGhpcywg
U3RyaW5nUmVmZXJlbmNlKG1lc3NhZ2VSZWNlaXZlck5hbWVTdHJpbmcuZGF0YSgpLCBtZXNzYWdl
UmVjZWl2ZXJOYW1lU3RyaW5nLmxlbmd0aCgpKSwgU3RyaW5nUmVmZXJlbmNlKG1lc3NhZ2VOYW1l
U3RyaW5nLmRhdGEoKSwgbWVzc2FnZU5hbWVTdHJpbmcubGVuZ3RoKCkpKTsKKyAgICBtX2NsaWVu
dC0+ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKCp0aGlzLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBt
ZXNzYWdlTmFtZSk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6ZGlkRmFpbFRvU2VuZFN5bmNNZXNz
YWdlKCkKQEAgLTgwNSw3ICs4MTEsMTAgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21p
bmdNZXNzYWdlKAogICAgICAgICBtX2luY29taW5nTWVzc2FnZXMuYXBwZW5kKFdURjo6bW92ZShp
bmNvbWluZ01lc3NhZ2UpKTsKICAgICB9CiAKLSAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2go
V1RGOjpiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKKyAgICBS
ZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBtX2NsaWVudFJ1bkxv
b3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlz
cGF0Y2hPbmVNZXNzYWdlKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0
Y2hNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQpJbmRleDogU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAxNzg2NDEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNyAr
MjIxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZURlY29kZXI+KTsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShNZXNzYWdlRGVj
b2RlciYpOwogICAgIHZvaWQgZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdlRGVjb2RlciYpOwot
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY29uc3QgQ1N0cmluZyYg
bWVzc2FnZVJlY2VpdmVyTmFtZVN0cmluZywgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWVTdHJp
bmcpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoU3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSk7
CiAgICAgdm9pZCBkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKTsKIAogICAgIC8vIENhbiBiZSBj
YWxsZWQgb24gYW55IHRocmVhZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9t
YWMvQ29ubmVjdGlvbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0JKHJldmlzaW9uIDE3ODY0MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTA5LDcgKzUwOSwxMyBAQCB2b2lkIENvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhh
bmRsCiAgICAgaWYgKGRlY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSAiSVBDIiAmJiBk
ZWNvZGVyLT5tZXNzYWdlTmFtZSgpID09ICJTZXRFeGNlcHRpb25Qb3J0IikgewogICAgICAgICBp
ZiAobV9pc1NlcnZlcikgewogICAgICAgICAgICAgLy8gU2VydmVyIGNvbm5lY3Rpb25zIGFyZW4n
dCBzdXBwb3NlZCB0byBoYXZlIHRoZWlyIGV4Y2VwdGlvbiBwb3J0cyBvdmVycmlkZW4uIFRyZWF0
IHRoaXMgYXMgYW4gaW52YWxpZCBtZXNzYWdlLgotICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29w
LmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlLCB0aGlzLCBkZWNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKSwgZGVj
b2Rlci0+bWVzc2FnZU5hbWUoKS50b1N0cmluZygpKSk7CisgICAgICAgICAgICBSZWZQdHI8Q29u
bmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICAgICAgICAgIFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lID0gZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpOwor
ICAgICAgICAgICAgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lID0gZGVjb2Rlci0+bWVzc2Fn
ZU5hbWUoKTsKKworICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFtwcm90ZWN0
ZWRUaGlzLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZV0geworICAgICAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIE1hY2hQb3J0IGV4Y2VwdGlvblBvcnQ7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlv
blVuaXguY3BwCShyZXZpc2lvbiAxNzg2NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4OCwyNyArMzg4
LDI3IEBAIGJvb2wgQ29ubmVjdGlvbjo6b3BlbigpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBS
ZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAgICBtX2lzQ29ubmVjdGVk
ID0gdHJ1ZTsKICNpZiBQTEFURk9STShHVEspCi0gICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3Rl
Y3Rvcih0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+cmVnaXN0ZXJTb2NrZXRFdmVudEhh
bmRsZXIobV9zb2NrZXREZXNjcmlwdG9yLAotICAgICAgICBbPV0gewotICAgICAgICAgICAgcHJv
dGVjdG9yLT5yZWFkeVJlYWRIYW5kbGVyKCk7CisgICAgICAgIFtwcm90ZWN0ZWRUaGlzXSB7Cisg
ICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZWFkeVJlYWRIYW5kbGVyKCk7CiAgICAgICAgIH0s
Ci0gICAgICAgIFs9XSB7Ci0gICAgICAgICAgICBwcm90ZWN0b3ItPmNvbm5lY3Rpb25EaWRDbG9z
ZSgpOworICAgICAgICBbcHJvdGVjdGVkVGhpc10geworICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+Y29ubmVjdGlvbkRpZENsb3NlKCk7CiAgICAgICAgIH0pOwogI2VsaWYgUExBVEZPUk0oRUZM
KQotICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0b3IodGhpcyk7CiAgICAgbV9jb25uZWN0
aW9uUXVldWUtPnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwK
LSAgICAgICAgW3Byb3RlY3Rvcl0gewotICAgICAgICAgICAgcHJvdGVjdG9yLT5yZWFkeVJlYWRI
YW5kbGVyKCk7CisgICAgICAgIFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5yZWFkeVJlYWRIYW5kbGVyKCk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKLSAgICAv
LyBTY2hlZHVsZSBhIGNhbGwgdG8gcmVhZHlSZWFkSGFuZGxlci4gRGF0YSBtYXkgaGF2ZSBhcnJp
dmVkIGJlZm9yZSBpbnN0YWxsYXRpb24gb2YgdGhlIHNpZ25hbAotICAgIC8vIGhhbmRsZXIuCi0g
ICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6cmVh
ZHlSZWFkSGFuZGxlciwgdGhpcykpOworICAgIC8vIFNjaGVkdWxlIGEgY2FsbCB0byByZWFkeVJl
YWRIYW5kbGVyLiBEYXRhIG1heSBoYXZlIGFycml2ZWQgYmVmb3JlIGluc3RhbGxhdGlvbiBvZiB0
aGUgc2lnbmFsIGhhbmRsZXIuCisgICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90
ZWN0ZWRUaGlzXSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPnJlYWR5UmVhZEhhbmRsZXIoKTsK
KyAgICB9KTsKIAogICAgIHJldHVybiB0cnVlOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248196</attachid>
            <date>2015-03-08 12:49:11 -0700</date>
            <delta_ts>2015-03-09 03:58:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20150308125144.patch</filename>
            <type>text/plain</type>
            <size>10516</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2YwYTMwMTNjMjM5N2Nm
MzFkNzJkZWI0OTZkNjUzMGU4MjFiOTUxOS4uMDQyNjNiNDgwMjBlZDhiMjJmMTg5MjRkNmEzY2E5
YWYzOGQ0Mzg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTIyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysr
IGxhbWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQ
Qzo6Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKyBsYW1iZGFzLgorCisgICAgICAgICogUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRj
aFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0
aW9uOjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKTogU2lt
cGxpZnkgdGhlIGVycm9yIG1lc3NhZ2VzIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8gZm9y
bWF0IHN0cmluZ3Mgb24tdGhlLWZseSwgcmVtb3ZpbmcgdGhlIGlzc3VlcyBvZiBjcm9zcy10aHJl
YWQKKyAgICAgICAgc3RyaW5nIGNvcHlpbmcgYWx0b2dldGhlci4KKyAgICAgICAgKElQQzo6Q29u
bmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOiBUaGUgcGFyYW1ldGVy
cyBhcmUgbm93CisgICAgICAgIG9mIHRoZSBTdHJpbmdSZWZlcmVuY2UgdHlwZS4KKyAgICAgICAg
KElQQzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVu
dEhhbmRsZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNw
cDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTUtMDMtMDYgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBN
b3ZlIGNvbXBpbGluZyBvZiBjb250ZW50IGV4dGVuc2lvbnMgdG8gdGhlIFVJUHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IGUyMTBmZThiYTFj
YWFlZWE0MjlkZTcxYzMyYTI0NTc1NWJiMTg1ZDMuLjlhOGI2YjdkYzVjZmQzZmU3ODQ5NDUwZDM0
NGFhNTdmMTQ1MDIxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5jcHAKQEAgLTMwMCwyMCArMzAwLDE4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlV29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOCiAgICAg
fSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciogd29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyLCBNZXNzYWdlRGVjb2RlciogaW5jb21pbmdNZXNzYWdlRGVjb2RlcikKK3ZvaWQgQ29ubmVj
dGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlciYgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIo
aW5jb21pbmdNZXNzYWdlRGVjb2Rlcik7Ci0KLSAgICBpZiAoIWRlY29kZXItPmlzU3luY01lc3Nh
Z2UoKSkgewotICAgICAgICB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNz
YWdlKCp0aGlzLCAqZGVjb2Rlcik7CisgICAgaWYgKCFkZWNvZGVyLmlzU3luY01lc3NhZ2UoKSkg
eworICAgICAgICB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoKnRo
aXMsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgdWludDY0X3Qgc3lu
Y1JlcXVlc3RJRCA9IDA7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3luY1JlcXVlc3RJRCkg
fHwgIXN5bmNSZXF1ZXN0SUQpIHsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN5bmNSZXF1ZXN0
SUQpIHx8ICFzeW5jUmVxdWVzdElEKSB7CiAgICAgICAgIC8vIFdlIHJlY2VpdmVkIGFuIGludmFs
aWQgc3luYyBtZXNzYWdlLgogICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoaXMuCi0gICAgICAg
IGRlY29kZXItPm1hcmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzI0LDEwICszMjIsMTAgQEAgdm9pZCBDb25u
ZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmUKICNlbmRpZgogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUgZGVjb2Rl
ciBhbmQgZW5jb2RlciB0byB0aGUgd29yayBxdWV1ZSBtZXNzYWdlIHJlY2VpdmVyLgotICAgIHdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCAqZGVj
b2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIuZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogCiAgICAgLy8g
RklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2VuZCBiYWNrIGEg
U3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxpZCgpKTsKKyAg
ICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5RW5jb2RlcikK
ICAgICAgICAgc2VuZFN5bmNSZXBseShXVEY6Om1vdmUocmVwbHlFbmNvZGVyKSk7CkBAIC0zNDgs
OSArMzQ2LDEyIEBAIHZvaWQgQ29ubmVjdGlvbjo6aW52YWxpZGF0ZSgpCiAgICAgfQogICAgIAog
ICAgIC8vIFJlc2V0IHRoZSBjbGllbnQuCi0gICAgbV9jbGllbnQgPSAwOworICAgIG1fY2xpZW50
ID0gbnVsbHB0cjsKIAotICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChXVEY6OmJpbmQo
JkNvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSwgdGhpcykpOworICAgIFJlZlB0cjxDb25u
ZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNw
YXRjaChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5wbGF0Zm9ybUlu
dmFsaWRhdGUoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjptYXJrQ3VycmVudGx5
RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQoKQpAQCAtMzk3LDcgKzM5OCwxMCBAQCBib29sIENv
bm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5j
b2RlciwgdW5zaWduZWQgbQogICAgIH0KICAgICAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFk
ZCBhIGJvb2xlYW4gZmxhZyBzbyB3ZSBkb24ndCBjYWxsIHRoaXMgd2hlbiB3b3JrIGhhcyBhbHJl
YWR5IGJlZW4gc2NoZWR1bGVkLgotICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChXVEY6
OmJpbmQoJkNvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2VzLCB0aGlzKSk7CisgICAgUmVm
UHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9jb25uZWN0aW9uUXVl
dWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPnNl
bmRPdXRnb2luZ01lc3NhZ2VzKCk7CisgICAgfSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTY1MywyMyArNjU3LDI3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2Fn
ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2UpCiAgICAgfQogCiAgICAg
aWYgKCFtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuaXNWYWxpZEtleShtZXNzYWdlLT5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpKSB7Ci0gICAgICAgIGlmIChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkuaXNFbXB0eSgpICYmIG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIGRlY29kaW5nIHRoZSBt
ZXNzYWdlLiBFbmNvZGUgdGhlIG1lc3NhZ2UgbGVuZ3RoIHNvIHdlIGNhbiBmaWd1cmUgb3V0IGlm
IHRoaXMKLSAgICAgICAgICAgIC8vIGhhcHBlbnMgZm9yIGNlcnRhaW4gbWVzc2FnZSBsZW5ndGhz
LgotICAgICAgICAgICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lID0gIjx1bmtub3duIG1l
c3NhZ2U+IjsKLSAgICAgICAgICAgIENTdHJpbmcgbWVzc2FnZU5hbWUgPSBTdHJpbmc6OmZvcm1h
dCgiPG1lc3NhZ2UgbGVuZ3RoOiAlenUgYnl0ZXM+IiwgbWVzc2FnZS0+bGVuZ3RoKCkpLnV0Zjgo
KTsKLQotICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rp
b246OmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlLCB0aGlzLCBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBtZXNzYWdlTmFtZSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rpb246OmRpc3Bh
dGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlLCB0aGlzLCBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkudG9TdHJpbmcoKSwgbWVzc2FnZS0+bWVzc2FnZU5hbWUoKS50b1N0cmluZygpKSk7
CisgICAgICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgICAg
ICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSA9IG1lc3NhZ2UtPm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKTsKKyAgICAgICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJlZE1lc3NhZ2VSZWNl
aXZlck5hbWUobWVzc2FnZVJlY2VpdmVyTmFtZS5pc0VtcHR5KCkgPyAiPHVua25vd24gbWVzc2Fn
ZSByZWNlaXZlcj4iIDogU3RyaW5nKG1lc3NhZ2VSZWNlaXZlck5hbWUuZGF0YSgpLCBtZXNzYWdl
UmVjZWl2ZXJOYW1lLnNpemUoKSkpOworICAgICAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5h
bWUgPSBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpOworICAgICAgICBTdHJpbmdDYXB0dXJlIGNhcHR1
cmVkTWVzc2FnZU5hbWUobWVzc2FnZU5hbWUuaXNFbXB0eSgpID8gIjx1bmtub3duIG1lc3NhZ2U+
IiA6IFN0cmluZyhtZXNzYWdlTmFtZS5kYXRhKCksIG1lc3NhZ2VOYW1lLnNpemUoKSkpOworCisg
ICAgICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgY2FwdHVyZWRN
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBjYXB0dXJlZE1lc3NhZ2VOYW1lXSB7CisgICAgICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShjYXB0dXJlZE1l
c3NhZ2VSZWNlaXZlck5hbWUuc3RyaW5nKCkudXRmOCgpLCBjYXB0dXJlZE1lc3NhZ2VOYW1lLnN0
cmluZygpLnV0ZjgoKSk7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKG1lc3NhZ2UtPm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgaWYgKGl0ICE9IG1fd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVycy5lbmQoKSkgewotICAgICAgICBpdC0+dmFsdWUuZmlyc3QtPmRpc3BhdGNoKGJpbmQo
JkNvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZSwgdGhp
cywgaXQtPnZhbHVlLnNlY29uZCwgbWVzc2FnZS5yZWxlYXNlKCkpKTsKKyAgICAgICAgUmVmUHRy
PENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgICAgIFJlZlB0cjxXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXI+JiB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgPSBpdC0+dmFsdWUu
c2Vjb25kOworICAgICAgICBNZXNzYWdlRGVjb2RlciogZGVjb2RlclB0ciA9IG1lc3NhZ2UucmVs
ZWFzZSgpOworICAgICAgICBpdC0+dmFsdWUuZmlyc3QtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlz
LCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsIGRlY29kZXJQdHJdIHsKKyAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVjb2RlcihkZWNvZGVyUHRyKTsKKyAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVz
c2FnZSgqd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCAqZGVjb2Rlcik7CisgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MjksNyArODM3LDEwIEBAIHZvaWQgQ29ubmVj
dGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IGluY29taW5nCiAgICAgICAgIG1faW5jb21pbmdNZXNzYWdlcy5hcHBlbmQoV1RGOjptb3Zl
KGluY29taW5nTWVzc2FnZSkpOwogICAgIH0KIAotICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRj
aChXVEY6OmJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2FnZSwgdGhpcykpOworICAg
IFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fY2xpZW50UnVu
TG9vcC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5k
aXNwYXRjaE9uZU1lc3NhZ2UoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjpkaXNw
YXRjaE1lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KaW5kZXggMjVlMjgyMTU0ZTQ3OTAx
OTY5NjExYzUwYmIxZDJhMzgzNTk1MDIzOC4uOWJmMzRhOTgzYWY2YWIyMGU0ZTA3OWU1ZGM3YTk2
ZDdhODk3ODBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9D
b25uZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29u
bmVjdGlvbk1hYy5tbQpAQCAtNTEwLDcgKzUxMCwxNCBAQCB2b2lkIENvbm5lY3Rpb246OnJlY2Vp
dmVTb3VyY2VFdmVudEhhbmRsZXIoKQogICAgIGlmIChkZWNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gIklQQyIgJiYgZGVjb2Rlci0+bWVzc2FnZU5hbWUoKSA9PSAiU2V0RXhjZXB0aW9u
UG9ydCIpIHsKICAgICAgICAgaWYgKG1faXNTZXJ2ZXIpIHsKICAgICAgICAgICAgIC8vIFNlcnZl
ciBjb25uZWN0aW9ucyBhcmVuJ3Qgc3VwcG9zZWQgdG8gaGF2ZSB0aGVpciBleGNlcHRpb24gcG9y
dHMgb3ZlcnJpZGVuLiBUcmVhdCB0aGlzIGFzIGFuIGludmFsaWQgbWVzc2FnZS4KLSAgICAgICAg
ICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaERp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLnRvU3RyaW5nKCksIGRlY29kZXItPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSkpOworICAg
ICAgICAgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgICAg
ICAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSA9IGRlY29kZXItPm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKTsKKyAgICAgICAgICAgIFN0cmluZ0NhcHR1cmUgY2FwdHVyZWRNZXNz
YWdlUmVjZWl2ZXJOYW1lKFN0cmluZyhtZXNzYWdlUmVjZWl2ZXJOYW1lLmRhdGEoKSwgbWVzc2Fn
ZVJlY2VpdmVyTmFtZS5zaXplKCkpKTsKKyAgICAgICAgICAgIFN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSA9IGRlY29kZXItPm1lc3NhZ2VOYW1lKCk7CisgICAgICAgICAgICBTdHJpbmdDYXB0
dXJlIGNhcHR1cmVkTWVzc2FnZU5hbWUoU3RyaW5nKG1lc3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2Fn
ZU5hbWUuc2l6ZSgpKSk7CisgICAgICAgICAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3By
b3RlY3RlZFRoaXMsIGNhcHR1cmVkTWVzc2FnZVJlY2VpdmVyTmFtZSwgY2FwdHVyZWRNZXNzYWdl
TmFtZV0geworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoRGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKGNhcHR1cmVkTWVzc2FnZVJlY2VpdmVyTmFtZS51dGY4KCksIGNhcHR1
cmVkTWVzc2FnZU5hbWUudXRmOCgpKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIE1hY2hQb3J0IGV4Y2VwdGlvblBvcnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5k
ZXggMTZiZTAxNGU4NzM5ZmFjNGQ5NzA0NDliZmExNGQwNjE5NDk4ZGI4Ni4uNGRkOTVmZDBkOTIz
YTYyMzg3YjBjZTM5ZTQ2MGFlZmRjMzUxNTdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAtMzg4LDI3ICszODgsMjcg
QEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICAgICAgfQogICAgIH0KIAorICAgIFJlZlB0
cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOwogICAgIG1faXNDb25uZWN0ZWQgPSB0
cnVlOwogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9y
KHRoaXMpOwogICAgIG1fY29ubmVjdGlvblF1ZXVlLT5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxl
cihtX3NvY2tldERlc2NyaXB0b3IsCi0gICAgICAgIFs9XSB7Ci0gICAgICAgICAgICBwcm90ZWN0
b3ItPnJlYWR5UmVhZEhhbmRsZXIoKTsKKyAgICAgICAgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPnJlYWR5UmVhZEhhbmRsZXIoKTsKICAgICAgICAgfSwKLSAg
ICAgICAgWz1dIHsKLSAgICAgICAgICAgIHByb3RlY3Rvci0+Y29ubmVjdGlvbkRpZENsb3NlKCk7
CisgICAgICAgIFtwcm90ZWN0ZWRUaGlzXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5j
b25uZWN0aW9uRGlkQ2xvc2UoKTsKICAgICAgICAgfSk7CiAjZWxpZiBQTEFURk9STShFRkwpCi0g
ICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3Rvcih0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25R
dWV1ZS0+cmVnaXN0ZXJTb2NrZXRFdmVudEhhbmRsZXIobV9zb2NrZXREZXNjcmlwdG9yLAotICAg
ICAgICBbcHJvdGVjdG9yXSB7Ci0gICAgICAgICAgICBwcm90ZWN0b3ItPnJlYWR5UmVhZEhhbmRs
ZXIoKTsKKyAgICAgICAgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRo
aXMtPnJlYWR5UmVhZEhhbmRsZXIoKTsKICAgICAgICAgfSk7CiAjZW5kaWYKIAotICAgIC8vIFNj
aGVkdWxlIGEgY2FsbCB0byByZWFkeVJlYWRIYW5kbGVyLiBEYXRhIG1heSBoYXZlIGFycml2ZWQg
YmVmb3JlIGluc3RhbGxhdGlvbiBvZiB0aGUgc2lnbmFsCi0gICAgLy8gaGFuZGxlci4KLSAgICBt
X2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpyZWFkeVJl
YWRIYW5kbGVyLCB0aGlzKSk7CisgICAgLy8gU2NoZWR1bGUgYSBjYWxsIHRvIHJlYWR5UmVhZEhh
bmRsZXIuIERhdGEgbWF5IGhhdmUgYXJyaXZlZCBiZWZvcmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBz
aWduYWwgaGFuZGxlci4KKyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXNdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOworICAg
IH0pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248241</attachid>
            <date>2015-03-09 04:29:54 -0700</date>
            <delta_ts>2015-03-10 02:39:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20150309043226.patch</filename>
            <type>text/plain</type>
            <size>11236</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmE1MThhNDg4ZjgzMTUw
MjhhOWZmNDcyZThiN2EwODdkYmEyZjk1MS4uMDIwNGQxMjNhNzA4YWQzMzFmNWYyM2UwNzNhNmE5
MGM1MjMwZGIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTA5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysr
IGxhbWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQ
Qzo6Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKyBsYW1iZGFzLgorCisgICAgICAgICogUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRj
aFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0
aW9uOjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKTogU2lt
cGxpZnkgdGhlIGVycm9yIG1lc3NhZ2VzIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8gZm9y
bWF0IHN0cmluZ3Mgb24tdGhlLWZseSwgcmVtb3ZpbmcgdGhlIGlzc3VlcyBvZiBjcm9zcy10aHJl
YWQKKyAgICAgICAgc3RyaW5nIGNvcHlpbmcgYWx0b2dldGhlci4KKyAgICAgICAgKElQQzo6Q29u
bmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOiBUaGUgcGFyYW1ldGVy
cyBhcmUgbm93CisgICAgICAgIG9mIHRoZSBTdHJpbmdSZWZlcmVuY2UgdHlwZS4KKyAgICAgICAg
KElQQzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVu
dEhhbmRsZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNw
cDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTUtMDMtMDggIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgTWVkaWFdIFZpZGVvIGJ1
ZmZlciBwcm9ncmVzcyBtaXNzaW5nIG9uIGlQaG9uZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCBlMjEwZmU4YmExY2FhZWVhNDI5ZGU3MWMzMmEyNDU3
NTViYjE4NWQzLi45YThiNmI3ZGM1Y2ZkM2ZlNzg0OTQ1MGQzNDRhYTU3ZjE0NTAyMWFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0zMDAsMjAgKzMw
MCwxOCBAQCB2b2lkIENvbm5lY3Rpb246OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTgogICAgIH0pOwogfQogCi12b2lkIENvbm5l
Y3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgTWVzc2FnZURlY29kZXIq
IGluY29taW5nTWVzc2FnZURlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXImIHdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlciwgTWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVyKGluY29taW5nTWVzc2FnZURlY29k
ZXIpOwotCi0gICAgaWYgKCFkZWNvZGVyLT5pc1N5bmNNZXNzYWdlKCkpIHsKLSAgICAgICAgd29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyLT5kaWRSZWNlaXZlTWVzc2FnZSgqdGhpcywgKmRlY29kZXIp
OworICAgIGlmICghZGVjb2Rlci5pc1N5bmNNZXNzYWdlKCkpIHsKKyAgICAgICAgd29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyLmRpZFJlY2VpdmVNZXNzYWdlKCp0aGlzLCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQgPSAwOwotICAg
IGlmICghZGVjb2Rlci0+ZGVjb2RlKHN5bmNSZXF1ZXN0SUQpIHx8ICFzeW5jUmVxdWVzdElEKSB7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzeW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJ
RCkgewogICAgICAgICAvLyBXZSByZWNlaXZlZCBhbiBpbnZhbGlkIHN5bmMgbWVzc2FnZS4KICAg
ICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGlzLgotICAgICAgICBkZWNvZGVyLT5tYXJrSW52YWxp
ZCgpOworICAgICAgICBkZWNvZGVyLm1hcmtJbnZhbGlkKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTMyNCwxMCArMzIyLDEwIEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlCiAjZW5k
aWYKIAogICAgIC8vIEhhbmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhl
IHdvcmsgcXVldWUgbWVzc2FnZSByZWNlaXZlci4KLSAgICB3b3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZSgqdGhpcywgKmRlY29kZXIsIHJlcGx5RW5jb2Rlcik7
CisgICAgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLmRpZFJlY2VpdmVTeW5jTWVzc2FnZSgqdGhp
cywgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIAogICAgIC8vIEZJWE1FOiBJZiB0aGUgbWVzc2Fn
ZSB3YXMgaW52YWxpZCwgd2Ugc2hvdWxkIHNlbmQgYmFjayBhIFN5bmNNZXNzYWdlRXJyb3IuCi0g
ICAgQVNTRVJUKCFkZWNvZGVyLT5pc0ludmFsaWQoKSk7CisgICAgQVNTRVJUKCFkZWNvZGVyLmlz
SW52YWxpZCgpKTsKIAogICAgIGlmIChyZXBseUVuY29kZXIpCiAgICAgICAgIHNlbmRTeW5jUmVw
bHkoV1RGOjptb3ZlKHJlcGx5RW5jb2RlcikpOwpAQCAtMzQ4LDkgKzM0NiwxMiBAQCB2b2lkIENv
bm5lY3Rpb246OmludmFsaWRhdGUoKQogICAgIH0KICAgICAKICAgICAvLyBSZXNldCB0aGUgY2xp
ZW50LgotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2NsaWVudCA9IG51bGxwdHI7CiAKLSAgICBt
X2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpwbGF0Zm9y
bUludmFsaWRhdGUsIHRoaXMpKTsKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhp
cyh0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXNd
IHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+cGxhdGZvcm1JbnZhbGlkYXRlKCk7CisgICAgfSk7
CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6bWFya0N1cnJlbnRseURpc3BhdGNoZWRNZXNzYWdlQXNJ
bnZhbGlkKCkKQEAgLTM5Nyw3ICszOTgsMTAgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2Fn
ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIHVuc2lnbmVkIG0KICAg
ICB9CiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhZGQgYSBib29sZWFuIGZsYWcgc28g
d2UgZG9uJ3QgY2FsbCB0aGlzIHdoZW4gd29yayBoYXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZC4K
LSAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpz
ZW5kT3V0Z29pbmdNZXNzYWdlcywgdGhpcykpOworICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90
ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChbcHJvdGVj
dGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kT3V0Z29pbmdNZXNzYWdlcygp
OworICAgIH0pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02NTMsMjMgKzY1NywyNyBAQCB2
b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VEZWNvZGVyPiBtZXNzYWdlKQogICAgIH0KIAogICAgIGlmICghbV93b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJzLmlzVmFsaWRLZXkobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSkg
ewotICAgICAgICBpZiAobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLmlzRW1wdHkoKSAm
JiBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gU29t
ZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBkZWNvZGluZyB0aGUgbWVzc2FnZS4gRW5jb2RlIHRoZSBt
ZXNzYWdlIGxlbmd0aCBzbyB3ZSBjYW4gZmlndXJlIG91dCBpZiB0aGlzCi0gICAgICAgICAgICAv
LyBoYXBwZW5zIGZvciBjZXJ0YWluIG1lc3NhZ2UgbGVuZ3Rocy4KLSAgICAgICAgICAgIENTdHJp
bmcgbWVzc2FnZVJlY2VpdmVyTmFtZSA9ICI8dW5rbm93biBtZXNzYWdlPiI7Ci0gICAgICAgICAg
ICBDU3RyaW5nIG1lc3NhZ2VOYW1lID0gU3RyaW5nOjpmb3JtYXQoIjxtZXNzYWdlIGxlbmd0aDog
JXp1IGJ5dGVzPiIsIG1lc3NhZ2UtPmxlbmd0aCgpKS51dGY4KCk7Ci0KLSAgICAgICAgICAgIG1f
Y2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaERpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgbWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUp
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIG1fY2xpZW50UnVu
TG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZSwgdGhpcywgbWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCks
IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSkpOworICAgICAgICBSZWZQdHI8Q29u
bmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICAgICAgU3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUgPSBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCk7CisgICAg
ICAgIFN0cmluZ0NhcHR1cmUgY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJOYW1lKG1lc3NhZ2VSZWNl
aXZlck5hbWUuaXNFbXB0eSgpID8gIjx1bmtub3duIG1lc3NhZ2UgcmVjZWl2ZXI+IiA6IFN0cmlu
ZyhtZXNzYWdlUmVjZWl2ZXJOYW1lLmRhdGEoKSwgbWVzc2FnZVJlY2VpdmVyTmFtZS5zaXplKCkp
KTsKKyAgICAgICAgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lID0gbWVzc2FnZS0+bWVzc2Fn
ZU5hbWUoKTsKKyAgICAgICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJlZE1lc3NhZ2VOYW1lKG1lc3Nh
Z2VOYW1lLmlzRW1wdHkoKSA/ICI8dW5rbm93biBtZXNzYWdlPiIgOiBTdHJpbmcobWVzc2FnZU5h
bWUuZGF0YSgpLCBtZXNzYWdlTmFtZS5zaXplKCkpKTsKKworICAgICAgICBtX2NsaWVudFJ1bkxv
b3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIGNhcHR1cmVkTWVzc2FnZVJlY2VpdmVyTmFtZSwg
Y2FwdHVyZWRNZXNzYWdlTmFtZV0geworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0
Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJOYW1lLnN0
cmluZygpLnV0ZjgoKSwgY2FwdHVyZWRNZXNzYWdlTmFtZS5zdHJpbmcoKS51dGY4KCkpOworICAg
ICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gaXQgPSBtX3dvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlcnMuZmluZChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
OwogICAgIGlmIChpdCAhPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuZW5kKCkpIHsKLSAg
ICAgICAgaXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRj
aFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UsIHRoaXMsIGl0LT52YWx1ZS5zZWNvbmQs
IG1lc3NhZ2UucmVsZWFzZSgpKSk7CisgICAgICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0
ZWRUaGlzKHRoaXMpOworICAgICAgICBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyPiYg
d29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyID0gaXQtPnZhbHVlLnNlY29uZDsKKyAgICAgICAgTWVz
c2FnZURlY29kZXIqIGRlY29kZXJQdHIgPSBtZXNzYWdlLnJlbGVhc2UoKTsKKyAgICAgICAgaXQt
PnZhbHVlLmZpcnN0LT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyLCBkZWNvZGVyUHRyXSB7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2Fn
ZURlY29kZXI+IGRlY29kZXIoZGVjb2RlclB0cik7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5kaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoKndvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlciwgKmRlY29kZXIpOworICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtODI5LDcgKzgzNywxMCBAQCB2b2lkIENvbm5lY3Rpb246OmVucXVldWVJbmNvbWlu
Z01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBpbmNvbWluZwogICAgICAg
ICBtX2luY29taW5nTWVzc2FnZXMuYXBwZW5kKFdURjo6bW92ZShpbmNvbWluZ01lc3NhZ2UpKTsK
ICAgICB9CiAKLSAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0
aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4g
cHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3Rl
Y3RlZFRoaXNdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hPbmVNZXNzYWdlKCk7
CisgICAgfSk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKE1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgK
aW5kZXggMTMyMTk4YjRkNDgyNzA0YWRjOTM1ZGJjNzE5YWIyYzBiMGYzMmNhYy4uMjBiYzczOGM1
NTkxOTViYTZlZTgyYzczM2UwYzAxZTI4ZDljNDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0yMTMsNyArMjEzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPik7
CiAgICAgdm9pZCBwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPik7CiAKLSAgICB2b2lkIGRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
TWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqLCBNZXNzYWdlRGVjb2RlciopOworICAg
IHZvaWQgZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlciYsIE1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBib29sIGNhblNlbmRPdXRn
b2luZ01lc3NhZ2VzKCkgY29uc3Q7CiAgICAgYm9vbCBwbGF0Zm9ybUNhblNlbmRPdXRnb2luZ01l
c3NhZ2VzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
bWFjL0Nvbm5lY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nv
bm5lY3Rpb25NYWMubW0KaW5kZXggMjVlMjgyMTU0ZTQ3OTAxOTY5NjExYzUwYmIxZDJhMzgzNTk1
MDIzOC4uOWJmMzRhOTgzYWY2YWIyMGU0ZTA3OWU1ZGM3YTk2ZDdhODk3ODBkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQpAQCAtNTEw
LDcgKzUxMCwxNCBAQCB2b2lkIENvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRsZXIo
KQogICAgIGlmIChkZWNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gIklQQyIgJiYgZGVj
b2Rlci0+bWVzc2FnZU5hbWUoKSA9PSAiU2V0RXhjZXB0aW9uUG9ydCIpIHsKICAgICAgICAgaWYg
KG1faXNTZXJ2ZXIpIHsKICAgICAgICAgICAgIC8vIFNlcnZlciBjb25uZWN0aW9ucyBhcmVuJ3Qg
c3VwcG9zZWQgdG8gaGF2ZSB0aGVpciBleGNlcHRpb24gcG9ydHMgb3ZlcnJpZGVuLiBUcmVhdCB0
aGlzIGFzIGFuIGludmFsaWQgbWVzc2FnZS4KLSAgICAgICAgICAgIG1fY2xpZW50UnVuTG9vcC5k
aXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZSwgdGhpcywgZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCksIGRlY29k
ZXItPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgUmVmUHRyPENvbm5l
Y3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgICAgICAgICBTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSA9IGRlY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKTsKKyAg
ICAgICAgICAgIFN0cmluZ0NhcHR1cmUgY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJOYW1lKFN0cmlu
ZyhtZXNzYWdlUmVjZWl2ZXJOYW1lLmRhdGEoKSwgbWVzc2FnZVJlY2VpdmVyTmFtZS5zaXplKCkp
KTsKKyAgICAgICAgICAgIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSA9IGRlY29kZXItPm1l
c3NhZ2VOYW1lKCk7CisgICAgICAgICAgICBTdHJpbmdDYXB0dXJlIGNhcHR1cmVkTWVzc2FnZU5h
bWUoU3RyaW5nKG1lc3NhZ2VOYW1lLmRhdGEoKSwgbWVzc2FnZU5hbWUuc2l6ZSgpKSk7CisgICAg
ICAgICAgICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIGNhcHR1cmVk
TWVzc2FnZVJlY2VpdmVyTmFtZSwgY2FwdHVyZWRNZXNzYWdlTmFtZV0geworICAgICAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKGNhcHR1
cmVkTWVzc2FnZVJlY2VpdmVyTmFtZS51dGY4KCksIGNhcHR1cmVkTWVzc2FnZU5hbWUudXRmOCgp
KTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIE1hY2hQb3J0IGV4Y2VwdGlvblBvcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5kZXggMTZiZTAxNGU4NzM5ZmFjNGQ5
NzA0NDliZmExNGQwNjE5NDk4ZGI4Ni4uNGRkOTVmZDBkOTIzYTYyMzg3YjBjZTM5ZTQ2MGFlZmRj
MzUxNTdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29u
bmVjdGlvblVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcApAQCAtMzg4LDI3ICszODgsMjcgQEAgYm9vbCBDb25uZWN0aW9uOjpv
cGVuKCkKICAgICAgICAgfQogICAgIH0KIAorICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0
ZWRUaGlzKHRoaXMpOwogICAgIG1faXNDb25uZWN0ZWQgPSB0cnVlOwogI2lmIFBMQVRGT1JNKEdU
SykKLSAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOwogICAgIG1fY29ubmVj
dGlvblF1ZXVlLT5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihtX3NvY2tldERlc2NyaXB0b3Is
Ci0gICAgICAgIFs9XSB7Ci0gICAgICAgICAgICBwcm90ZWN0b3ItPnJlYWR5UmVhZEhhbmRsZXIo
KTsKKyAgICAgICAgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PnJlYWR5UmVhZEhhbmRsZXIoKTsKICAgICAgICAgfSwKLSAgICAgICAgWz1dIHsKLSAgICAgICAg
ICAgIHByb3RlY3Rvci0+Y29ubmVjdGlvbkRpZENsb3NlKCk7CisgICAgICAgIFtwcm90ZWN0ZWRU
aGlzXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jb25uZWN0aW9uRGlkQ2xvc2UoKTsK
ICAgICAgICAgfSk7CiAjZWxpZiBQTEFURk9STShFRkwpCi0gICAgUmVmUHRyPENvbm5lY3Rpb24+
IHByb3RlY3Rvcih0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+cmVnaXN0ZXJTb2NrZXRF
dmVudEhhbmRsZXIobV9zb2NrZXREZXNjcmlwdG9yLAotICAgICAgICBbcHJvdGVjdG9yXSB7Ci0g
ICAgICAgICAgICBwcm90ZWN0b3ItPnJlYWR5UmVhZEhhbmRsZXIoKTsKKyAgICAgICAgW3Byb3Rl
Y3RlZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnJlYWR5UmVhZEhhbmRsZXIo
KTsKICAgICAgICAgfSk7CiAjZW5kaWYKIAotICAgIC8vIFNjaGVkdWxlIGEgY2FsbCB0byByZWFk
eVJlYWRIYW5kbGVyLiBEYXRhIG1heSBoYXZlIGFycml2ZWQgYmVmb3JlIGluc3RhbGxhdGlvbiBv
ZiB0aGUgc2lnbmFsCi0gICAgLy8gaGFuZGxlci4KLSAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlz
cGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyLCB0aGlzKSk7Cisg
ICAgLy8gU2NoZWR1bGUgYSBjYWxsIHRvIHJlYWR5UmVhZEhhbmRsZXIuIERhdGEgbWF5IGhhdmUg
YXJyaXZlZCBiZWZvcmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBzaWduYWwgaGFuZGxlci4KKyAgICBt
X2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgcHJv
dGVjdGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOworICAgIH0pOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248321</attachid>
            <date>2015-03-10 02:39:33 -0700</date>
            <delta_ts>2015-03-10 04:15:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20150310024205.patch</filename>
            <type>text/plain</type>
            <size>10806</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTMyMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTEwICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysrIGxh
bWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQQzo6
Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKyBsYW1iZGFzLgorCisgICAgICAgICogUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9u
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2UpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKTogU2ltcGxp
ZnkgdGhlIGVycm9yIG1lc3NhZ2VzIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8gZm9ybWF0
IHN0cmluZ3Mgb24tdGhlLWZseSwgcmVtb3ZpbmcgdGhlIGlzc3VlcyBvZiBjcm9zcy10aHJlYWQK
KyAgICAgICAgc3RyaW5nIGNvcHlpbmcgYWx0b2dldGhlci4KKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOiBUaGUgcGFyYW1ldGVycyBh
cmUgbm93CisgICAgICAgIG9mIHRoZSBTdHJpbmdSZWZlcmVuY2UgdHlwZS4KKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rp
b25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhh
bmRsZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTUtMDMtMTAgIENzYWJhIE9z
enRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbY21ha2VdIEhhbmRsZSB1
bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFzIGJ1aWxkIGVycm9ycyBleGNlcHQgaW4gV2ViS2l0
MgpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAkocmV2
aXNpb24gMTgxMzIwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsMjAgKzMwMCwxOCBAQCB2b2lkIENvbm5lY3Rpb246
OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSCiAgICAgfSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlciogd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciogaW5jb21p
bmdNZXNzYWdlRGVjb2RlcikKK3ZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciYgd29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIoaW5jb21pbmdNZXNzYWdlRGVjb2Rlcik7Ci0K
LSAgICBpZiAoIWRlY29kZXItPmlzU3luY01lc3NhZ2UoKSkgewotICAgICAgICB3b3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKCp0aGlzLCAqZGVjb2Rlcik7CisgICAg
aWYgKCFkZWNvZGVyLmlzU3luY01lc3NhZ2UoKSkgeworICAgICAgICB3b3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoKnRoaXMsIGRlY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgdWludDY0X3Qgc3luY1JlcXVlc3RJRCA9IDA7Ci0gICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN5bmNSZXF1ZXN0SUQpIHx8ICFzeW5jUmVxdWVzdElEKSB7CiAg
ICAgICAgIC8vIFdlIHJlY2VpdmVkIGFuIGludmFsaWQgc3luYyBtZXNzYWdlLgogICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHRoaXMuCi0gICAgICAgIGRlY29kZXItPm1hcmtJbnZhbGlkKCk7Cisg
ICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMzI0LDEwICszMjIsMTAgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1l
c3NhZwogI2VuZGlmCiAKICAgICAvLyBIYW5kIG9mZiBib3RoIHRoZSBkZWNvZGVyIGFuZCBlbmNv
ZGVyIHRvIHRoZSB3b3JrIHF1ZXVlIG1lc3NhZ2UgcmVjZWl2ZXIuCi0gICAgd29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoKnRoaXMsICpkZWNvZGVyLCByZXBs
eUVuY29kZXIpOworICAgIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlci5kaWRSZWNlaXZlU3luY01l
c3NhZ2UoKnRoaXMsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAKICAgICAvLyBGSVhNRTogSWYg
dGhlIG1lc3NhZ2Ugd2FzIGludmFsaWQsIHdlIHNob3VsZCBzZW5kIGJhY2sgYSBTeW5jTWVzc2Fn
ZUVycm9yLgotICAgIEFTU0VSVCghZGVjb2Rlci0+aXNJbnZhbGlkKCkpOworICAgIEFTU0VSVCgh
ZGVjb2Rlci5pc0ludmFsaWQoKSk7CiAKICAgICBpZiAocmVwbHlFbmNvZGVyKQogICAgICAgICBz
ZW5kU3luY1JlcGx5KFdURjo6bW92ZShyZXBseUVuY29kZXIpKTsKQEAgLTM0OCw5ICszNDYsMTIg
QEAgdm9pZCBDb25uZWN0aW9uOjppbnZhbGlkYXRlKCkKICAgICB9CiAgICAgCiAgICAgLy8gUmVz
ZXQgdGhlIGNsaWVudC4KLSAgICBtX2NsaWVudCA9IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRy
OwogCi0gICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlv
bjo6cGxhdGZvcm1JbnZhbGlkYXRlLCB0aGlzKSk7CisgICAgUmVmUHRyPENvbm5lY3Rpb24+IHBy
b3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFtwcm90
ZWN0ZWRUaGlzXSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPnBsYXRmb3JtSW52YWxpZGF0ZSgp
OworICAgIH0pOwogfQogCiB2b2lkIENvbm5lY3Rpb246Om1hcmtDdXJyZW50bHlEaXNwYXRjaGVk
TWVzc2FnZUFzSW52YWxpZCgpCkBAIC0zOTcsNyArMzk4LDEwIEBAIGJvb2wgQ29ubmVjdGlvbjo6
c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWUKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhZGQgYSBib29sZWFuIGZsYWcgc28gd2UgZG9uJ3QgY2FsbCB0aGlzIHdoZW4gd29yayBo
YXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZC4KLSAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0
Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcywgdGhpcykpOwor
ICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fY29ubmVj
dGlvblF1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5zZW5kT3V0Z29pbmdNZXNzYWdlcygpOworICAgIH0pOwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC02NTMsMjMgKzY1NywyNyBAQCB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWlu
Z01lc3NhZ2UoCiAgICAgfQogCiAgICAgaWYgKCFtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMu
aXNWYWxpZEtleShtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpKSB7Ci0gICAgICAgIGlm
IChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuaXNFbXB0eSgpICYmIG1lc3NhZ2UtPm1l
c3NhZ2VOYW1lKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBTb21ldGhpbmcgd2VudCB3
cm9uZyB3aGVuIGRlY29kaW5nIHRoZSBtZXNzYWdlLiBFbmNvZGUgdGhlIG1lc3NhZ2UgbGVuZ3Ro
IHNvIHdlIGNhbiBmaWd1cmUgb3V0IGlmIHRoaXMKLSAgICAgICAgICAgIC8vIGhhcHBlbnMgZm9y
IGNlcnRhaW4gbWVzc2FnZSBsZW5ndGhzLgotICAgICAgICAgICAgQ1N0cmluZyBtZXNzYWdlUmVj
ZWl2ZXJOYW1lID0gIjx1bmtub3duIG1lc3NhZ2U+IjsKLSAgICAgICAgICAgIENTdHJpbmcgbWVz
c2FnZU5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiPG1lc3NhZ2UgbGVuZ3RoOiAlenUgYnl0ZXM+Iiwg
bWVzc2FnZS0+bGVuZ3RoKCkpLnV0ZjgoKTsKLQotICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29w
LmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlLCB0aGlzLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSkpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNo
KGJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlLCB0aGlz
LCBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKSwgbWVzc2FnZS0+bWVz
c2FnZU5hbWUoKS50b1N0cmluZygpKSk7CisgICAgICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90
ZWN0ZWRUaGlzKHRoaXMpOworICAgICAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSA9IG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKTsKKyAgICAgICAgU3RyaW5nQ2Fw
dHVyZSBjYXB0dXJlZE1lc3NhZ2VSZWNlaXZlck5hbWUobWVzc2FnZVJlY2VpdmVyTmFtZS5pc0Vt
cHR5KCkgPyAiPHVua25vd24gbWVzc2FnZSByZWNlaXZlcj4iIDogU3RyaW5nKG1lc3NhZ2VSZWNl
aXZlck5hbWUuZGF0YSgpLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLnNpemUoKSkpOworICAgICAgICBT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUgPSBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpOworICAg
ICAgICBTdHJpbmdDYXB0dXJlIGNhcHR1cmVkTWVzc2FnZU5hbWUobWVzc2FnZU5hbWUuaXNFbXB0
eSgpID8gIjx1bmtub3duIG1lc3NhZ2U+IiA6IFN0cmluZyhtZXNzYWdlTmFtZS5kYXRhKCksIG1l
c3NhZ2VOYW1lLnNpemUoKSkpOworCisgICAgICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChb
cHJvdGVjdGVkVGhpcywgY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJOYW1lLCBjYXB0dXJlZE1lc3Nh
Z2VOYW1lXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaERpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShjYXB0dXJlZE1lc3NhZ2VSZWNlaXZlck5hbWUuc3RyaW5nKCkudXRmOCgp
LCBjYXB0dXJlZE1lc3NhZ2VOYW1lLnN0cmluZygpLnV0ZjgoKSk7CisgICAgICAgIH0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVycy5maW5kKG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgaWYgKGl0
ICE9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5lbmQoKSkgewotICAgICAgICBpdC0+dmFs
dWUuZmlyc3QtPmRpc3BhdGNoKGJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyTWVzc2FnZSwgdGhpcywgaXQtPnZhbHVlLnNlY29uZCwgbWVzc2FnZS5yZWxl
YXNlKCkpKTsKKyAgICAgICAgUmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7
CisgICAgICAgIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+JiB3b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXIgPSBpdC0+dmFsdWUuc2Vjb25kOworICAgICAgICBNZXNzYWdlRGVjb2Rlciog
ZGVjb2RlclB0ciA9IG1lc3NhZ2UucmVsZWFzZSgpOworICAgICAgICBpdC0+dmFsdWUuZmlyc3Qt
PmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzLCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsIGRlY29k
ZXJQdHJdIHsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVj
b2RlcihkZWNvZGVyUHRyKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZSgqd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCAq
ZGVjb2Rlcik7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04Mjks
NyArODM3LDEwIEBAIHZvaWQgQ29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSgKICAg
ICAgICAgbV9pbmNvbWluZ01lc3NhZ2VzLmFwcGVuZChXVEY6Om1vdmUoaW5jb21pbmdNZXNzYWdl
KSk7CiAgICAgfQogCi0gICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFdURjo6YmluZCgmQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlLCB0aGlzKSk7CisgICAgUmVmUHRyPENvbm5lY3Rp
b24+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzXSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoT25lTWVzc2Fn
ZSgpOworICAgIH0pOwogfQogCiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAkocmV2aXNpb24gMTgxMzIwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDcgKzIxMyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlRGVjb2Rlcj4pOwogICAgIHZvaWQgcHJvY2Vzc0luY29taW5nU3luY1JlcGx5KHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4pOwogCi0gICAgdm9pZCBkaXNwYXRjaFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiwgTWVzc2FnZURl
Y29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2Fn
ZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXImLCBNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgYm9v
bCBjYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0OwogICAgIGJvb2wgcGxhdGZvcm1DYW5T
ZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQkocmV2aXNpb24gMTgxMzIwKQorKysg
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01MTAsNyArNTEwLDE0IEBAIHZvaWQgQ29ubmVjdGlvbjo6cmVjZWl2ZVNvdXJj
ZUV2ZW50SGFuZGwKICAgICBpZiAoZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09ICJJ
UEMiICYmIGRlY29kZXItPm1lc3NhZ2VOYW1lKCkgPT0gIlNldEV4Y2VwdGlvblBvcnQiKSB7CiAg
ICAgICAgIGlmIChtX2lzU2VydmVyKSB7CiAgICAgICAgICAgICAvLyBTZXJ2ZXIgY29ubmVjdGlv
bnMgYXJlbid0IHN1cHBvc2VkIHRvIGhhdmUgdGhlaXIgZXhjZXB0aW9uIHBvcnRzIG92ZXJyaWRl
bi4gVHJlYXQgdGhpcyBhcyBhbiBpbnZhbGlkIG1lc3NhZ2UuCi0gICAgICAgICAgICBtX2NsaWVu
dFJ1bkxvb3AuZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UsIHRoaXMsIGRlY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmlu
ZygpLCBkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIFJl
ZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgICAgICAgICAgU3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUgPSBkZWNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCk7CisgICAgICAgICAgICBTdHJpbmdDYXB0dXJlIGNhcHR1cmVkTWVzc2FnZVJlY2VpdmVy
TmFtZShTdHJpbmcobWVzc2FnZVJlY2VpdmVyTmFtZS5kYXRhKCksIG1lc3NhZ2VSZWNlaXZlck5h
bWUuc2l6ZSgpKSk7CisgICAgICAgICAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUgPSBk
ZWNvZGVyLT5tZXNzYWdlTmFtZSgpOworICAgICAgICAgICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJl
ZE1lc3NhZ2VOYW1lKFN0cmluZyhtZXNzYWdlTmFtZS5kYXRhKCksIG1lc3NhZ2VOYW1lLnNpemUo
KSkpOworICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlz
LCBjYXB0dXJlZE1lc3NhZ2VSZWNlaXZlck5hbWUsIGNhcHR1cmVkTWVzc2FnZU5hbWVdIHsKKyAg
ICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShjYXB0dXJlZE1lc3NhZ2VSZWNlaXZlck5hbWUuc3RyaW5nKCkudXRmOCgpLCBjYXB0dXJl
ZE1lc3NhZ2VOYW1lLnN0cmluZygpLnV0ZjgoKSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBNYWNoUG9ydCBleGNlcHRpb25Qb3J0OwpJ
bmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcAkocmV2aXNpb24gMTgxMzIwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODgsMjcgKzM4
OCwyNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICB9CiAgICAgfQogCisgICAg
UmVmUHRyPENvbm5lY3Rpb24+IHByb3RlY3RlZFRoaXModGhpcyk7CiAgICAgbV9pc0Nvbm5lY3Rl
ZCA9IHRydWU7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90
ZWN0b3IodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uUXVldWUtPnJlZ2lzdGVyU29ja2V0RXZlbnRI
YW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwKLSAgICAgICAgWz1dIHsKLSAgICAgICAgICAgIHBy
b3RlY3Rvci0+cmVhZHlSZWFkSGFuZGxlcigpOworICAgICAgICBbcHJvdGVjdGVkVGhpc10gewor
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOwogICAgICAgICB9
LAotICAgICAgICBbPV0gewotICAgICAgICAgICAgcHJvdGVjdG9yLT5jb25uZWN0aW9uRGlkQ2xv
c2UoKTsKKyAgICAgICAgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRo
aXMtPmNvbm5lY3Rpb25EaWRDbG9zZSgpOwogICAgICAgICB9KTsKICNlbGlmIFBMQVRGT1JNKEVG
TCkKLSAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOwogICAgIG1fY29ubmVj
dGlvblF1ZXVlLT5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihtX3NvY2tldERlc2NyaXB0b3Is
Ci0gICAgICAgIFtwcm90ZWN0b3JdIHsKLSAgICAgICAgICAgIHByb3RlY3Rvci0+cmVhZHlSZWFk
SGFuZGxlcigpOworICAgICAgICBbcHJvdGVjdGVkVGhpc10geworICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOwogICAgICAgICB9KTsKICNlbmRpZgogCi0gICAg
Ly8gU2NoZWR1bGUgYSBjYWxsIHRvIHJlYWR5UmVhZEhhbmRsZXIuIERhdGEgbWF5IGhhdmUgYXJy
aXZlZCBiZWZvcmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBzaWduYWwKLSAgICAvLyBoYW5kbGVyLgot
ICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChXVEY6OmJpbmQoJkNvbm5lY3Rpb246OnJl
YWR5UmVhZEhhbmRsZXIsIHRoaXMpKTsKKyAgICAvLyBTY2hlZHVsZSBhIGNhbGwgdG8gcmVhZHlS
ZWFkSGFuZGxlci4gRGF0YSBtYXkgaGF2ZSBhcnJpdmVkIGJlZm9yZSBpbnN0YWxsYXRpb24gb2Yg
dGhlIHNpZ25hbCBoYW5kbGVyLgorICAgIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaChbcHJv
dGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZWFkeVJlYWRIYW5kbGVyKCk7
CisgICAgfSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248326</attachid>
            <date>2015-03-10 04:16:04 -0700</date>
            <delta_ts>2015-03-13 08:25:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138018-20150310041836.patch</filename>
            <type>text/plain</type>
            <size>11119</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTMyMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTEwICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBVc2UgQysrIGxh
bWJkYXMgaW4gSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzgwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpiaW5kKCkgaW4gdGhlIElQQzo6
Q29ubmVjdGlvbiBjbGFzcyB3aXRoIEMrKyBsYW1iZGFzLgorCisgICAgICAgICogUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9u
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2UpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKTogU2ltcGxp
ZnkgdGhlIGVycm9yIG1lc3NhZ2VzIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8gZm9ybWF0
IHN0cmluZ3Mgb24tdGhlLWZseSwgcmVtb3ZpbmcgdGhlIGlzc3VlcyBvZiBjcm9zcy10aHJlYWQK
KyAgICAgICAgc3RyaW5nIGNvcHlpbmcgYWx0b2dldGhlci4KKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOiBUaGUgcGFyYW1ldGVycyBh
cmUgbm93CisgICAgICAgIG9mIHRoZSBTdHJpbmdSZWZlcmVuY2UgdHlwZS4KKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rp
b25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhh
bmRsZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisKIDIwMTUtMDMtMTAgIENzYWJhIE9z
enRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbY21ha2VdIEhhbmRsZSB1
bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGFzIGJ1aWxkIGVycm9ycyBleGNlcHQgaW4gV2ViS2l0
MgpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAkocmV2
aXNpb24gMTgxMzIwKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsMzQgKzMwMCwzMiBAQCB2b2lkIENvbm5lY3Rpb246
OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSCiAgICAgfSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlciogd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciogaW5jb21p
bmdNZXNzYWdlRGVjb2RlcikKK3ZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciYgd29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIoaW5jb21pbmdNZXNzYWdlRGVjb2Rlcik7Ci0K
LSAgICBpZiAoIWRlY29kZXItPmlzU3luY01lc3NhZ2UoKSkgewotICAgICAgICB3b3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKCp0aGlzLCAqZGVjb2Rlcik7CisgICAg
aWYgKCFkZWNvZGVyLmlzU3luY01lc3NhZ2UoKSkgeworICAgICAgICB3b3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoKnRoaXMsIGRlY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgdWludDY0X3Qgc3luY1JlcXVlc3RJRCA9IDA7Ci0gICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN5bmNSZXF1ZXN0SUQpIHx8ICFzeW5jUmVxdWVzdElEKSB7CiAg
ICAgICAgIC8vIFdlIHJlY2VpdmVkIGFuIGludmFsaWQgc3luYyBtZXNzYWdlLgogICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHRoaXMuCi0gICAgICAgIGRlY29kZXItPm1hcmtJbnZhbGlkKCk7Cisg
ICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
I2lmIEhBVkUoRFRSQUNFKQotICAgIGF1dG8gcmVwbHlFbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1
ZTxNZXNzYWdlRW5jb2Rlcj4oIklQQyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3luY1JlcXVlc3RJ
RCwgaW5jb21pbmdNZXNzYWdlRGVjb2Rlci0+VVVJRCgpKTsKKyAgICBhdXRvIHJlcGx5RW5jb2Rl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU3luY01lc3NhZ2VS
ZXBseSIsIHN5bmNSZXF1ZXN0SUQsIGRlY29kZXIuVVVJRCgpKTsKICNlbHNlCiAgICAgYXV0byBy
ZXBseUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5
bmNNZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKICNlbmRpZgogCiAgICAgLy8gSGFuZCBv
ZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgd29yayBxdWV1ZSBtZXNzYWdl
IHJlY2VpdmVyLgotICAgIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKCp0aGlzLCAqZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICB3b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXIuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwogCiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBz
aG91bGQgc2VuZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXIt
PmlzSW52YWxpZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAg
aWYgKHJlcGx5RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShXVEY6Om1vdmUocmVwbHlF
bmNvZGVyKSk7CkBAIC0zNDgsOSArMzQ2LDEyIEBAIHZvaWQgQ29ubmVjdGlvbjo6aW52YWxpZGF0
ZSgpCiAgICAgfQogICAgIAogICAgIC8vIFJlc2V0IHRoZSBjbGllbnQuCi0gICAgbV9jbGllbnQg
PSAwOworICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKIAotICAgIG1fY29ubmVjdGlvblF1ZXVlLT5k
aXNwYXRjaChXVEY6OmJpbmQoJkNvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSwgdGhpcykp
OworICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fY29u
bmVjdGlvblF1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5wbGF0Zm9ybUludmFsaWRhdGUoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBDb25uZWN0
aW9uOjptYXJrQ3VycmVudGx5RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQoKQpAQCAtMzk3LDcg
KzM5OCwxMCBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlCiAgICAg
fQogICAgIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGEgYm9vbGVhbiBmbGFnIHNvIHdl
IGRvbid0IGNhbGwgdGhpcyB3aGVuIHdvcmsgaGFzIGFscmVhZHkgYmVlbiBzY2hlZHVsZWQuCi0g
ICAgbV9jb25uZWN0aW9uUXVldWUtPmRpc3BhdGNoKFdURjo6YmluZCgmQ29ubmVjdGlvbjo6c2Vu
ZE91dGdvaW5nTWVzc2FnZXMsIHRoaXMpKTsKKyAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVj
dGVkVGhpcyh0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXNdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+c2VuZE91dGdvaW5nTWVzc2FnZXMoKTsK
KyAgICB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjUzLDIzICs2NTcsMjcgQEAgdm9p
ZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKAogICAgIH0KIAogICAgIGlmICgh
bV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmlzVmFsaWRLZXkobWVzc2FnZS0+bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKSkgewotICAgICAgICBpZiAobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLmlzRW1wdHkoKSAmJiBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLmlzRW1wdHkoKSkgewotICAg
ICAgICAgICAgLy8gU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBkZWNvZGluZyB0aGUgbWVzc2Fn
ZS4gRW5jb2RlIHRoZSBtZXNzYWdlIGxlbmd0aCBzbyB3ZSBjYW4gZmlndXJlIG91dCBpZiB0aGlz
Ci0gICAgICAgICAgICAvLyBoYXBwZW5zIGZvciBjZXJ0YWluIG1lc3NhZ2UgbGVuZ3Rocy4KLSAg
ICAgICAgICAgIENTdHJpbmcgbWVzc2FnZVJlY2VpdmVyTmFtZSA9ICI8dW5rbm93biBtZXNzYWdl
PiI7Ci0gICAgICAgICAgICBDU3RyaW5nIG1lc3NhZ2VOYW1lID0gU3RyaW5nOjpmb3JtYXQoIjxt
ZXNzYWdlIGxlbmd0aDogJXp1IGJ5dGVzPiIsIG1lc3NhZ2UtPmxlbmd0aCgpKS51dGY4KCk7Ci0K
LSAgICAgICAgICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpk
aXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgbWVzc2FnZU5hbWUpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaERp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSwgdGhpcywgbWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLnRvU3RyaW5nKCksIG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSkpOworICAg
ICAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICAgICAgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUgPSBtZXNzYWdlLT5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCk7CisgICAgICAgIFN0cmluZ0NhcHR1cmUgY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJO
YW1lKG1lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpID8gIjx1bmtub3duIG1lc3NhZ2UgcmVj
ZWl2ZXI+IiA6IFN0cmluZyhtZXNzYWdlUmVjZWl2ZXJOYW1lLmRhdGEoKSwgbWVzc2FnZVJlY2Vp
dmVyTmFtZS5zaXplKCkpKTsKKyAgICAgICAgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lID0g
bWVzc2FnZS0+bWVzc2FnZU5hbWUoKTsKKyAgICAgICAgU3RyaW5nQ2FwdHVyZSBjYXB0dXJlZE1l
c3NhZ2VOYW1lKG1lc3NhZ2VOYW1lLmlzRW1wdHkoKSA/ICI8dW5rbm93biBtZXNzYWdlPiIgOiBT
dHJpbmcobWVzc2FnZU5hbWUuZGF0YSgpLCBtZXNzYWdlTmFtZS5zaXplKCkpKTsKKworICAgICAg
ICBtX2NsaWVudFJ1bkxvb3AuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIGNhcHR1cmVkTWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgY2FwdHVyZWRNZXNzYWdlTmFtZV0geworICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY2FwdHVyZWRNZXNzYWdl
UmVjZWl2ZXJOYW1lLnN0cmluZygpLnV0ZjgoKSwgY2FwdHVyZWRNZXNzYWdlTmFtZS5zdHJpbmco
KS51dGY4KCkpOworICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1
dG8gaXQgPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuZmluZChtZXNzYWdlLT5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpOwogICAgIGlmIChpdCAhPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cnMuZW5kKCkpIHsKLSAgICAgICAgaXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChiaW5kKCZDb25u
ZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UsIHRoaXMsIGl0
LT52YWx1ZS5zZWNvbmQsIG1lc3NhZ2UucmVsZWFzZSgpKSk7CisgICAgICAgIFJlZlB0cjxDb25u
ZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgICAgICBSZWZQdHI8V29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyPiYgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyID0gaXQtPnZhbHVlLnNlY29u
ZDsKKyAgICAgICAgTWVzc2FnZURlY29kZXIqIGRlY29kZXJQdHIgPSBtZXNzYWdlLnJlbGVhc2Uo
KTsKKyAgICAgICAgaXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgd29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBkZWNvZGVyUHRyXSB7CisgICAgICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIoZGVjb2RlclB0cik7CisgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2Uo
KndvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgKmRlY29kZXIpOworICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtODI5LDcgKzgzNywxMCBAQCB2b2lkIENvbm5lY3Rpb246
OmVucXVldWVJbmNvbWluZ01lc3NhZ2UoCiAgICAgICAgIG1faW5jb21pbmdNZXNzYWdlcy5hcHBl
bmQoV1RGOjptb3ZlKGluY29taW5nTWVzc2FnZSkpOwogICAgIH0KIAotICAgIG1fY2xpZW50UnVu
TG9vcC5kaXNwYXRjaChXVEY6OmJpbmQoJkNvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2FnZSwg
dGhpcykpOworICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAg
IG1fY2xpZW50UnVuTG9vcC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpc10geworICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5kaXNwYXRjaE9uZU1lc3NhZ2UoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBDb25u
ZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDE4MTMyMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMyw3ICsyMTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc0luY29taW5n
TWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+KTsKICAgICB2b2lkIHByb2Nl
c3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+KTsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlciosIE1lc3NhZ2VEZWNvZGVyKik7CisgICAgdm9pZCBkaXNwYXRjaFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyJiwg
TWVzc2FnZURlY29kZXImKTsKIAogICAgIGJvb2wgY2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBj
b25zdDsKICAgICBib29sIHBsYXRmb3JtQ2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25N
YWMubW0JKHJldmlzaW9uIDE4MTMyMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9t
YWMvQ29ubmVjdGlvbk1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEwLDcgKzUxMCwxNCBAQCB2
b2lkIENvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRsCiAgICAgaWYgKGRlY29kZXIt
Pm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSAiSVBDIiAmJiBkZWNvZGVyLT5tZXNzYWdlTmFtZSgp
ID09ICJTZXRFeGNlcHRpb25Qb3J0IikgewogICAgICAgICBpZiAobV9pc1NlcnZlcikgewogICAg
ICAgICAgICAgLy8gU2VydmVyIGNvbm5lY3Rpb25zIGFyZW4ndCBzdXBwb3NlZCB0byBoYXZlIHRo
ZWlyIGV4Y2VwdGlvbiBwb3J0cyBvdmVycmlkZW4uIFRyZWF0IHRoaXMgYXMgYW4gaW52YWxpZCBt
ZXNzYWdlLgotICAgICAgICAgICAgbV9jbGllbnRSdW5Mb29wLmRpc3BhdGNoKGJpbmQoJkNvbm5l
Y3Rpb246OmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlLCB0aGlzLCBkZWNvZGVyLT5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKSwgZGVjb2Rlci0+bWVzc2FnZU5hbWUoKS50
b1N0cmluZygpKSk7CisgICAgICAgICAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdGVkVGhp
cyh0aGlzKTsKKyAgICAgICAgICAgIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
ID0gZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpOworICAgICAgICAgICAgU3RyaW5nQ2Fw
dHVyZSBjYXB0dXJlZE1lc3NhZ2VSZWNlaXZlck5hbWUoU3RyaW5nKG1lc3NhZ2VSZWNlaXZlck5h
bWUuZGF0YSgpLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLnNpemUoKSkpOworICAgICAgICAgICAgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lID0gZGVjb2Rlci0+bWVzc2FnZU5hbWUoKTsKKyAgICAg
ICAgICAgIFN0cmluZ0NhcHR1cmUgY2FwdHVyZWRNZXNzYWdlTmFtZShTdHJpbmcobWVzc2FnZU5h
bWUuZGF0YSgpLCBtZXNzYWdlTmFtZS5zaXplKCkpKTsKKyAgICAgICAgICAgIG1fY2xpZW50UnVu
TG9vcC5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJOYW1l
LCBjYXB0dXJlZE1lc3NhZ2VOYW1lXSB7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY2FwdHVyZWRNZXNzYWdlUmVjZWl2ZXJO
YW1lLnN0cmluZygpLnV0ZjgoKSwgY2FwdHVyZWRNZXNzYWdlTmFtZS5zdHJpbmcoKS51dGY4KCkp
OworICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgTWFjaFBvcnQgZXhjZXB0aW9uUG9ydDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAJKHJldmlzaW9uIDE4MTMyMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzg4LDI3ICszODgsMjcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVu
KCkKICAgICAgICAgfQogICAgIH0KIAorICAgIFJlZlB0cjxDb25uZWN0aW9uPiBwcm90ZWN0ZWRU
aGlzKHRoaXMpOwogICAgIG1faXNDb25uZWN0ZWQgPSB0cnVlOwogI2lmIFBMQVRGT1JNKEdUSykK
LSAgICBSZWZQdHI8Q29ubmVjdGlvbj4gcHJvdGVjdG9yKHRoaXMpOwogICAgIG1fY29ubmVjdGlv
blF1ZXVlLT5yZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihtX3NvY2tldERlc2NyaXB0b3IsCi0g
ICAgICAgIFs9XSB7Ci0gICAgICAgICAgICBwcm90ZWN0b3ItPnJlYWR5UmVhZEhhbmRsZXIoKTsK
KyAgICAgICAgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnJl
YWR5UmVhZEhhbmRsZXIoKTsKICAgICAgICAgfSwKLSAgICAgICAgWz1dIHsKLSAgICAgICAgICAg
IHByb3RlY3Rvci0+Y29ubmVjdGlvbkRpZENsb3NlKCk7CisgICAgICAgIFtwcm90ZWN0ZWRUaGlz
XSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jb25uZWN0aW9uRGlkQ2xvc2UoKTsKICAg
ICAgICAgfSk7CiAjZWxpZiBQTEFURk9STShFRkwpCi0gICAgUmVmUHRyPENvbm5lY3Rpb24+IHBy
b3RlY3Rvcih0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+cmVnaXN0ZXJTb2NrZXRFdmVu
dEhhbmRsZXIobV9zb2NrZXREZXNjcmlwdG9yLAotICAgICAgICBbcHJvdGVjdG9yXSB7Ci0gICAg
ICAgICAgICBwcm90ZWN0b3ItPnJlYWR5UmVhZEhhbmRsZXIoKTsKKyAgICAgICAgW3Byb3RlY3Rl
ZFRoaXNdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnJlYWR5UmVhZEhhbmRsZXIoKTsK
ICAgICAgICAgfSk7CiAjZW5kaWYKIAotICAgIC8vIFNjaGVkdWxlIGEgY2FsbCB0byByZWFkeVJl
YWRIYW5kbGVyLiBEYXRhIG1heSBoYXZlIGFycml2ZWQgYmVmb3JlIGluc3RhbGxhdGlvbiBvZiB0
aGUgc2lnbmFsCi0gICAgLy8gaGFuZGxlci4KLSAgICBtX2Nvbm5lY3Rpb25RdWV1ZS0+ZGlzcGF0
Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyLCB0aGlzKSk7CisgICAg
Ly8gU2NoZWR1bGUgYSBjYWxsIHRvIHJlYWR5UmVhZEhhbmRsZXIuIERhdGEgbWF5IGhhdmUgYXJy
aXZlZCBiZWZvcmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBzaWduYWwgaGFuZGxlci4KKyAgICBtX2Nv
bm5lY3Rpb25RdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgcHJvdGVj
dGVkVGhpcy0+cmVhZHlSZWFkSGFuZGxlcigpOworICAgIH0pOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9Cg==
</data>
<flag name="review"
          id="273243"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>