<?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>173874</bug_id>
          
          <creation_ts>2017-06-27 07:32:52 -0700</creation_ts>
          <short_desc>DocumentLoader should always notify the client if there are pending icon loads when the load is stopped</short_desc>
          <delta_ts>2017-06-28 15:40:15 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>173877</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323118</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-27 07:32:52 -0700</bug_when>
    <thetext>If DocumentLoader::stopLoading() is called before DocumentLoader::didGetLoadDecisionForIcon() or before DocumentLoader::finishedLoadingIcon(), the UI process never receives the notifications. The load icon decision callbacks in WebPageProxy are not released until it&apos;s destroyed, keeping them alive as well as anything captured in the lambdas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323119</commentid>
    <comment_count>1</comment_count>
      <attachid>313911</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-27 07:40:08 -0700</bug_when>
    <thetext>Created attachment 313911
Patch

I noticed this while working on moving the GTK+ and WPE APIs to use the new icon loading client. The unit test reported memory leaks, because we keep a reference of the web view in the icon loading decision callback, and the lambda is not destroyed as expected when a new load happens. So, this will be covered by GTK+ and WPE unit tests once I finish the migration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323125</commentid>
    <comment_count>2</comment_count>
      <attachid>313911</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-06-27 07:55:58 -0700</bug_when>
    <thetext>Comment on attachment 313911
Patch

Nice fix!

It looks right to me, but please wait until tomorrow to commit in case someone else has review feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323129</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-27 08:20:22 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Comment on attachment 313911 [details]
&gt; Patch
&gt; 
&gt; Nice fix!
&gt; 
&gt; It looks right to me, but please wait until tomorrow to commit in case
&gt; someone else has review feedback.

Sure, I&apos;ll wait for Brady&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323583</commentid>
    <comment_count>4</comment_count>
      <attachid>313911</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 10:00:55 -0700</bug_when>
    <thetext>Comment on attachment 313911
Patch

Great find, and this fixes it, but:
1 - I think we can structure it better
2 - I think it needs an explicit API test with the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323584</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 10:01:08 -0700</bug_when>
    <thetext>I&apos;m taking a look at this right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323595</commentid>
    <comment_count>6</comment_count>
      <attachid>314037</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 10:32:11 -0700</bug_when>
    <thetext>Created attachment 314037
Proposed patch while working on test

This is the patch I&apos;m working with as I develop a test.

It&apos;s very close to yours, clearly. Two changes, one stylistic and one functional:

Stylistic - Factor out the notifyFinishedLoadingIcon method for the 3 places that use it
Functional - In didGetLoadDecisionForIcon it&apos;s important to *always* do the take. We can&apos;t early return on !decision or !m_frame without first doing the take.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323596</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 10:32:35 -0700</bug_when>
    <thetext>API test to come a bit later today</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323608</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-28 11:00:45 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #6)
&gt; Created attachment 314037 [details]
&gt; Proposed patch while working on test
&gt; 
&gt; This is the patch I&apos;m working with as I develop a test.
&gt; 
&gt; It&apos;s very close to yours, clearly. Two changes, one stylistic and one
&gt; functional:
&gt; 
&gt; Stylistic - Factor out the notifyFinishedLoadingIcon method for the 3 places
&gt; that use it
&gt; Functional - In didGetLoadDecisionForIcon it&apos;s important to *always* do the
&gt; take. We can&apos;t early return on !decision or !m_frame without first doing the
&gt; take.

Good point, sounds good to me, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323635</commentid>
    <comment_count>9</comment_count>
      <attachid>314047</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 12:11:40 -0700</bug_when>
    <thetext>Created attachment 314047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323644</commentid>
    <comment_count>10</comment_count>
      <attachid>314051</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 12:24:33 -0700</bug_when>
    <thetext>Created attachment 314051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323647</commentid>
    <comment_count>11</comment_count>
      <attachid>314051</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-28 12:34:12 -0700</bug_when>
    <thetext>Comment on attachment 314051
Patch

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

r=me

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm:224
&gt; +    RetainPtr&lt;WKWebViewConfiguration&gt; configuration = adoptNS([[WKWebViewConfiguration alloc] init]);

Apparently auto is the cool new thing to do in places like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323697</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-06-28 15:12:10 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; Comment on attachment 314051 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=314051&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm:224
&gt; &gt; +    RetainPtr&lt;WKWebViewConfiguration&gt; configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
&gt; 
&gt; Apparently auto is the cool new thing to do in places like this.

Yah, I just copied from the other test in the file, I&apos;m just going to leave it internally consistent :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323699</commentid>
    <comment_count>13</comment_count>
      <attachid>314051</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-28 15:40:13 -0700</bug_when>
    <thetext>Comment on attachment 314051
Patch

Clearing flags on attachment: 314051

Committed r218896: &lt;http://trac.webkit.org/changeset/218896&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323700</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-28 15:40:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313911</attachid>
            <date>2017-06-27 07:40:08 -0700</date>
            <delta_ts>2017-06-28 12:11:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-icon-loader-notify-client.diff</filename>
            <type>text/plain</type>
            <size>2390</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MWNjNGMxNWVhZC4uYWIzNzZlM2M4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNy0wNi0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgRG9jdW1lbnRMb2FkZXIgc2hvdWxkIGFsd2F5cyBub3RpZnkg
dGhlIGNsaWVudCBpZiB0aGVyZSBhcmUgcGVuZGluZyBpY29uIGxvYWRzIHdoZW4gdGhlIGxvYWQg
aXMgc3RvcHBlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSWYgRG9jdW1lbnRMb2FkZXI6OnN0b3BMb2FkaW5nKCkgaXMgY2FsbGVkIGJlZm9yZSBEb2N1
bWVudExvYWRlcjo6ZGlkR2V0TG9hZERlY2lzaW9uRm9ySWNvbigpIG9yIGJlZm9yZQorICAgICAg
ICBEb2N1bWVudExvYWRlcjo6ZmluaXNoZWRMb2FkaW5nSWNvbigpLCB0aGUgVUkgcHJvY2VzcyBu
ZXZlciByZWNlaXZlcyB0aGUgbm90aWZpY2F0aW9ucy4gVGhlIGxvYWQgaWNvbiBkZWNpc2lvbgor
ICAgICAgICBjYWxsYmFja3MgaW4gV2ViUGFnZVByb3h5IGFyZSBub3QgcmVsZWFzZWQgdW50aWwg
aXQncyBkZXN0cm95ZWQsIGtlZXBpbmcgdGhlbSBhbGl2ZSBhcyB3ZWxsIGFzIGFueXRoaW5nIGNh
cHR1cmVkCisgICAgICAgIGluIHRoZSBsYW1iZGFzLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdG9wTG9h
ZGluZyk6IE5vdGlmeSB0aGUgY2xpZW50IGJlZm9yZSBjbGVhcmluZyB0aGUgaWNvbiBsb2FkZXJz
IG1hcC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpkaWRHZXRMb2FkRGVjaXNp
b25Gb3JJY29uKTogTm90aWZ5IHRoZSBjbGllbnQgaWYgdGhlIGljb24gbG9hZGVyIGhhcyBhbHJl
YWR5IGJlZW4gcmVtb3ZlZC4KKwogMjAxNy0wNi0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUZvclRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW5zKCkgaXMgaW5lZmZpY2llbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDc1NTdlYjA5ODYxLi5jN2U0MTA2ODY2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0yODMsNiArMjgzLDgg
QEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKQogICAgIH0KIAogICAgIG1faWNv
bnNQZW5kaW5nTG9hZERlY2lzaW9uLmNsZWFyKCk7CisgICAgZm9yIChhdXRvIGNhbGxiYWNrSWRl
bnRpZmllciA6IG1faWNvbkxvYWRlcnMudmFsdWVzKCkpCisgICAgICAgIG1fZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZpbmlzaGVkTG9hZGluZ0ljb24oY2FsbGJhY2tJZGVudGlmaWVyLCBudWxs
cHRyKTsKICAgICBtX2ljb25Mb2FkZXJzLmNsZWFyKCk7CiAKICAgICAvLyBBbHdheXMgY2FuY2Vs
IG11bHRpcGFydCBsb2FkZXJzCkBAIC0xNjc5LDkgKzE2ODEsMTQgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6c3RhcnRJY29uTG9hZGluZygpCiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmRpZEdldExv
YWREZWNpc2lvbkZvckljb24oYm9vbCBkZWNpc2lvbiwgdWludDY0X3QgbG9hZElkZW50aWZpZXIs
IHVpbnQ2NF90IG5ld0NhbGxiYWNrSUQpCiB7CisgICAgaWYgKCFkZWNpc2lvbiB8fCAhbV9mcmFt
ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byBpY29uID0gbV9pY29uc1BlbmRpbmdMb2Fk
RGVjaXNpb24udGFrZShsb2FkSWRlbnRpZmllcik7Ci0gICAgaWYgKCFkZWNpc2lvbiB8fCBpY29u
LnVybC5pc0VtcHR5KCkgfHwgIW1fZnJhbWUpCisgICAgaWYgKGljb24udXJsLmlzRW1wdHkoKSkg
eworICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5maW5pc2hlZExvYWRpbmdJY29u
KG5ld0NhbGxiYWNrSUQsIG51bGxwdHIpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
YXV0byBpY29uTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxJY29uTG9hZGVyPigqdGhpcywgaWNv
bi51cmwpOwogICAgIGF1dG8qIHJhd0ljb25Mb2FkZXIgPSBpY29uTG9hZGVyLmdldCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314037</attachid>
            <date>2017-06-28 10:32:11 -0700</date>
            <delta_ts>2017-06-28 12:11:37 -0700</delta_ts>
            <desc>Proposed patch while working on test</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>2697</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDc1NTdlYjA5ODYx
Li45ODlmOTlkODdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0yODIsOCArMjgyLDEwIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0b3BMb2FkaW5nKCkK
ICAgICAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLnN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9s
aWN5Tm9uZSk7CiAgICAgfQogCi0gICAgbV9pY29uc1BlbmRpbmdMb2FkRGVjaXNpb24uY2xlYXIo
KTsKKyAgICBmb3IgKGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyIDogbV9pY29uTG9hZGVycy52YWx1
ZXMoKSkKKyAgICAgICAgbm90aWZ5RmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZp
ZXIsIG51bGxwdHIpOwogICAgIG1faWNvbkxvYWRlcnMuY2xlYXIoKTsKKyAgICBtX2ljb25zUGVu
ZGluZ0xvYWREZWNpc2lvbi5jbGVhcigpOwogCiAgICAgLy8gQWx3YXlzIGNhbmNlbCBtdWx0aXBh
cnQgbG9hZGVycwogICAgIGNhbmNlbEFsbChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycyk7
CkBAIC0xNjgwLDcgKzE2ODIsMTcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRJY29uTG9h
ZGluZygpCiB2b2lkIERvY3VtZW50TG9hZGVyOjpkaWRHZXRMb2FkRGVjaXNpb25Gb3JJY29uKGJv
b2wgZGVjaXNpb24sIHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDYWxsYmFj
a0lEKQogewogICAgIGF1dG8gaWNvbiA9IG1faWNvbnNQZW5kaW5nTG9hZERlY2lzaW9uLnRha2Uo
bG9hZElkZW50aWZpZXIpOwotICAgIGlmICghZGVjaXNpb24gfHwgaWNvbi51cmwuaXNFbXB0eSgp
IHx8ICFtX2ZyYW1lKQorCisgICAgLy8gSWYgdGhlIExpbmtJY29uIHdlIGp1c3QgdG9vayBpcyBl
bXB0eSwgdGhlbiB0aGUgRG9jdW1lbnRMb2FkZXIgaGFkIGFsbCBvZiBpdHMgbG9hZGVycyBzdG9w
cGVkCisgICAgLy8gd2hpbGUgdGhpcyBpY29uIGxvYWQgZGVjaXNpb24gd2FzIHBlbmRpbmcuCisg
ICAgLy8gSW4gdGhpcyBjYXNlIHdlIG5lZWQgdG8gbm90aWZ5IHRoZSBjbGllbnQgdGhhdCB0aGUg
aWNvbiBmaW5pc2hlZCBsb2FkaW5nIHdpdGggZW1wdHkgZGF0YS4KKyAgICBpZiAoaWNvbi51cmwu
aXNFbXB0eSgpKSB7CisgICAgICAgIG5vdGlmeUZpbmlzaGVkTG9hZGluZ0ljb24obmV3Q2FsbGJh
Y2tJRCwgbnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUg
ZGVjaXNpb24gd2FzIG5vdCB0byBsb2FkIG9yIHRoaXMgRG9jdW1lbnRMb2FkZXIgaXMgYWxyZWFk
eSBkZXRhY2hlZCwgdGhlcmUgaXMgbm8gbG9hZCB0byBwZXJmb3JtLgorICAgIGlmICghZGVjaXNp
b24gfHwgIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gaWNvbkxvYWRlciA9
IHN0ZDo6bWFrZV91bmlxdWU8SWNvbkxvYWRlcj4oKnRoaXMsIGljb24udXJsKTsKQEAgLTE2OTgs
NyArMTcxMCwxMyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpmaW5pc2hlZExvYWRpbmdJY29uKElj
b25Mb2FkZXImIGxvYWRlciwgU2hhcmVkQnVmZmVyKiBidWZmZQogICAgIGF1dG8gY2FsbGJhY2tJ
ZGVudGlmaWVyID0gbV9pY29uTG9hZGVycy50YWtlKCZsb2FkZXIpOwogICAgIFJFTEVBU0VfQVNT
RVJUKGNhbGxiYWNrSWRlbnRpZmllcik7CiAKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQo
KS5maW5pc2hlZExvYWRpbmdJY29uKGNhbGxiYWNrSWRlbnRpZmllciwgYnVmZmVyKTsKKyAgICBu
b3RpZnlGaW5pc2hlZExvYWRpbmdJY29uKGNhbGxiYWNrSWRlbnRpZmllciwgYnVmZmVyKTsKK30K
Kwordm9pZCBEb2N1bWVudExvYWRlcjo6bm90aWZ5RmluaXNoZWRMb2FkaW5nSWNvbih1aW50NjRf
dCBjYWxsYmFja0lkZW50aWZpZXIsIFNoYXJlZEJ1ZmZlciogYnVmZmVyKQoreworICAgIGlmICht
X2ZyYW1lKQorICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5maW5pc2hlZExvYWRp
bmdJY29uKGNhbGxiYWNrSWRlbnRpZmllciwgYnVmZmVyKTsKIH0KIAogdm9pZCBEb2N1bWVudExv
YWRlcjo6ZGlzcGF0Y2hPbmxvYWRFdmVudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaAppbmRleCAxZWEyMDIzN2JkNS4uNjdhNTIwMzk1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0zNjgsNiArMzY4LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrSWZOZWVkZWQoKTsKICAgICB2b2lkIGJlY29tZU1haW5SZXNv
dXJjZUNsaWVudCgpOwogCisgICAgdm9pZCBub3RpZnlGaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2
NF90IGNhbGxiYWNrSWRlbnRpZmllciwgU2hhcmVkQnVmZmVyKik7CisKICAgICBGcmFtZSogbV9m
cmFtZSB7IG51bGxwdHIgfTsKICAgICBSZWY8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IG1fY2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314047</attachid>
            <date>2017-06-28 12:11:40 -0700</date>
            <delta_ts>2017-06-28 12:24:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173874-20170628121139.patch</filename>
            <type>text/plain</type>
            <size>12292</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJiOTFlMzcyZTE0ZDEz
NzNjYTI0ZTFmMDFlYjQyMmNjYmY4YjJkYy4uMmQ5MjAwNWUyYzUxM2NhNDMyMDA1MmQ4MWYwMjk2
NTdhNGVkYmIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBEb2N1bWVudExvYWRlciBz
aG91bGQgYWx3YXlzIG5vdGlmeSB0aGUgY2xpZW50IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGljb24g
bG9hZHMgd2hlbiB0aGUgbG9hZCBpcyBzdG9wcGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAg
UGF0Y2ggc3RhcnRlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcywgZmluaXNoZWQgYnkgbWUuCisg
ICAgICAgIAorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcpOiBNYWtlIGFsbCBvZiB0aGUgY2Fs
bGJhY2tzIGZvciBjYW5jZWxsZWQgSWNvbkxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6ZGlkR2V0TG9hZERlY2lzaW9uRm9ySWNvbik6IE1ha2UgdGhlIGNhbGxiYWNr
IGV2ZW4gaWYgdGhlcmUncyBubyBJY29uTG9hZGVyLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OmZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudExvYWRlci5oOgorCiAyMDE3LTA2LTI4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGBjb25zdCBkb3VibGVgIG1l
dGhvZCBhcmd1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmlu
ZGV4IDc1NTdlYjA5ODYxZjgxMWRlYjdhNzI4NTAyMTEzYTkyMmI4YzY2NDkuLjk4OWY5OWQ4N2Qx
MzQxOTlmYTc0Y2U5MmQwMGFhNTFmMDMwZmVjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcApAQCAtMjgyLDggKzI4MiwxMCBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpzdG9wTG9hZGluZygpCiAgICAgICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5zdG9wTG9hZGlu
ZyhVbmxvYWRFdmVudFBvbGljeU5vbmUpOwogICAgIH0KIAotICAgIG1faWNvbnNQZW5kaW5nTG9h
ZERlY2lzaW9uLmNsZWFyKCk7CisgICAgZm9yIChhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA6IG1f
aWNvbkxvYWRlcnMudmFsdWVzKCkpCisgICAgICAgIG5vdGlmeUZpbmlzaGVkTG9hZGluZ0ljb24o
Y2FsbGJhY2tJZGVudGlmaWVyLCBudWxscHRyKTsKICAgICBtX2ljb25Mb2FkZXJzLmNsZWFyKCk7
CisgICAgbV9pY29uc1BlbmRpbmdMb2FkRGVjaXNpb24uY2xlYXIoKTsKIAogICAgIC8vIEFsd2F5
cyBjYW5jZWwgbXVsdGlwYXJ0IGxvYWRlcnMKICAgICBjYW5jZWxBbGwobV9tdWx0aXBhcnRTdWJy
ZXNvdXJjZUxvYWRlcnMpOwpAQCAtMTY4MCw3ICsxNjgyLDE3IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnN0YXJ0SWNvbkxvYWRpbmcoKQogdm9pZCBEb2N1bWVudExvYWRlcjo6ZGlkR2V0TG9hZERl
Y2lzaW9uRm9ySWNvbihib29sIGRlY2lzaW9uLCB1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgdWlu
dDY0X3QgbmV3Q2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGljb24gPSBtX2ljb25zUGVuZGluZ0xv
YWREZWNpc2lvbi50YWtlKGxvYWRJZGVudGlmaWVyKTsKLSAgICBpZiAoIWRlY2lzaW9uIHx8IGlj
b24udXJsLmlzRW1wdHkoKSB8fCAhbV9mcmFtZSkKKworICAgIC8vIElmIHRoZSBMaW5rSWNvbiB3
ZSBqdXN0IHRvb2sgaXMgZW1wdHksIHRoZW4gdGhlIERvY3VtZW50TG9hZGVyIGhhZCBhbGwgb2Yg
aXRzIGxvYWRlcnMgc3RvcHBlZAorICAgIC8vIHdoaWxlIHRoaXMgaWNvbiBsb2FkIGRlY2lzaW9u
IHdhcyBwZW5kaW5nLgorICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBuZWVkIHRvIG5vdGlmeSB0aGUg
Y2xpZW50IHRoYXQgdGhlIGljb24gZmluaXNoZWQgbG9hZGluZyB3aXRoIGVtcHR5IGRhdGEuCisg
ICAgaWYgKGljb24udXJsLmlzRW1wdHkoKSkgeworICAgICAgICBub3RpZnlGaW5pc2hlZExvYWRp
bmdJY29uKG5ld0NhbGxiYWNrSUQsIG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgLy8gSWYgdGhlIGRlY2lzaW9uIHdhcyBub3QgdG8gbG9hZCBvciB0aGlzIERvY3VtZW50
TG9hZGVyIGlzIGFscmVhZHkgZGV0YWNoZWQsIHRoZXJlIGlzIG5vIGxvYWQgdG8gcGVyZm9ybS4K
KyAgICBpZiAoIWRlY2lzaW9uIHx8ICFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvIGljb25Mb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEljb25Mb2FkZXI+KCp0aGlzLCBpY29u
LnVybCk7CkBAIC0xNjk4LDcgKzE3MTAsMTMgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6ZmluaXNo
ZWRMb2FkaW5nSWNvbihJY29uTG9hZGVyJiBsb2FkZXIsIFNoYXJlZEJ1ZmZlciogYnVmZmUKICAg
ICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IG1faWNvbkxvYWRlcnMudGFrZSgmbG9hZGVyKTsK
ICAgICBSRUxFQVNFX0FTU0VSVChjYWxsYmFja0lkZW50aWZpZXIpOwogCi0gICAgbV9mcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZpZXIs
IGJ1ZmZlcik7CisgICAgbm90aWZ5RmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZp
ZXIsIGJ1ZmZlcik7Cit9CisKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkTG9h
ZGluZ0ljb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBTaGFyZWRCdWZmZXIqIGJ1ZmZl
cikKK3sKKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50
KCkuZmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZpZXIsIGJ1ZmZlcik7CiB9CiAK
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmRpc3BhdGNoT25sb2FkRXZlbnRzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggMWVhMjAyMzdiZDU2Zjk3MzYxNzk5MDJhOTg1
M2MwZGZkOTAzNjRhMy4uNjdhNTIwMzk1Y2U4ZTc3YWI1ODIzYjFlODEyMjJjMDJlN2Q5Y2IyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTM2OCw2ICszNjgsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2tJZk5lZWRlZCgpOwogICAgIHZv
aWQgYmVjb21lTWFpblJlc291cmNlQ2xpZW50KCk7CiAKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
TG9hZGluZ0ljb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBTaGFyZWRCdWZmZXIqKTsK
KwogICAgIEZyYW1lKiBtX2ZyYW1lIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDYWNoZWRSZXNvdXJj
ZUxvYWRlcj4gbV9jYWNoZWRSZXNvdXJjZUxvYWRlcjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJlNGQyMmY5MTIwOGJlNWJhMjA1OWY0MTJm
NmYzMzEzYTNjMjE3OTAuLjg1YzA1YWMxY2UzNDYwMTVlNzU4YTkwODYwYjA4N2QxY2E4Mzg0Y2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNy0wNi0yOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgRG9jdW1lbnRMb2FkZXIgc2hvdWxkIGFsd2F5cyBub3RpZnkgdGhlIGNsaWVu
dCBpZiB0aGVyZSBhcmUgcGVuZGluZyBpY29uIGxvYWRzIHdoZW4gdGhlIGxvYWQgaXMgc3RvcHBl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg3
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbToKKwog
MjAxNy0wNi0yNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViQXNzZW1ibHk6IHJ1bm5pbmcgb3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5IHNob3VsZCB0aHJv
dyBPb00KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0ljb25Mb2FkaW5nRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCmluZGV4IDdjOWU2ZDczNzczODkzY2E0YWI3
YjYzYTVhYTA3NTg1OWFlNGZjM2IuLjQ2ZmNjODFlNzExMzg5M2RjNDVkNGEyM2I2NmVkZjZlZjZl
Y2Q3NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0ljb25Mb2FkaW5nRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQpAQCAtMzksMTEgKzM5LDE2IEBACiAj
aWYgV0tfQVBJX0VOQUJMRUQKIAogc3RhdGljIGJvb2wgZG9uZVdpdGhJY29uczsKLXN0YXRpYyBi
b29sIHJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjazsKIHN0YXRpYyBib29sIGFscmVhZHlQcm92
aWRlZEljb25EYXRhOwotc3RhdGljIFJldGFpblB0cjxOU0RhdGE+IHJlY2VpdmVkRmF2aWNvbkRh
dGE7CiAKLUBpbnRlcmZhY2UgSWNvbkxvYWRpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tJY29u
TG9hZGluZ0RlbGVnYXRlPgorQGludGVyZmFjZSBJY29uTG9hZGluZ0RlbGVnYXRlIDogTlNPYmpl
Y3QgPF9XS0ljb25Mb2FkaW5nRGVsZWdhdGU+IHsKKyAgICBAcHVibGljCisgICAgUmV0YWluUHRy
PE5TRGF0YT4gcmVjZWl2ZWRGYXZpY29uRGF0YTsKKyAgICBib29sIHJlY2VpdmVkRmF2aWNvbkRh
dGFDYWxsYmFjazsKKyAgICBib29sIHNob3VsZFNhdmVDYWxsYmFjazsKKyAgICBib29sIGRpZFNh
dmVDYWxsYmFjazsKKyAgICB2b2lkIChec2F2ZWRDYWxsYmFjaykodm9pZCAoXikoTlNEYXRhKikp
OworfQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gSWNvbkxvYWRpbmdEZWxlZ2F0ZSB7CkBAIC03
MCw3ICs3NSwxMyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxk
TG9hZEljb25XaXRoUGFyYW1ldGVyczooX1dLTGlua0ljb25QYQogICAgICAgICBkb25lV2l0aElj
b25zID0gdHJ1ZTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLmljb25UeXBlID09IFdLTGlua0ljb25U
eXBlRmF2aWNvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbXShOU0RhdGEgKmljb25E
YXRhKSB7CisgICAgICAgIGlmIChzaG91bGRTYXZlQ2FsbGJhY2spIHsKKyAgICAgICAgICAgIHNh
dmVkQ2FsbGJhY2sgPSBbY29tcGxldGlvbkhhbmRsZXIgcmV0YWluXTsKKyAgICAgICAgICAgIGRp
ZFNhdmVDYWxsYmFjayA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbc2VsZl0oTlNEYXRhICppY29uRGF0YSkgewogICAg
ICAgICAgICAgcmVjZWl2ZWRGYXZpY29uRGF0YSA9IGljb25EYXRhOwogICAgICAgICAgICAgcmVj
ZWl2ZWRGYXZpY29uRGF0YUNhbGxiYWNrID0gdHJ1ZTsKICAgICAgICAgfSk7CkBAIC04MCw3ICs5
MSwxMiBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkTG9hZElj
b25XaXRoUGFyYW1ldGVyczooX1dLTGlua0ljb25QYQogCiBAZW5kCiAKLUBpbnRlcmZhY2UgSWNv
bkxvYWRpbmdTY2hlbWVIYW5kbGVyIDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4KK0Bp
bnRlcmZhY2UgSWNvbkxvYWRpbmdTY2hlbWVIYW5kbGVyIDogTlNPYmplY3QgPFdLVVJMU2NoZW1l
SGFuZGxlcj4geworICAgIEBwdWJsaWMKKyAgICBib29sIHNob3VsZElnbm9yZUZhdmljb25UYXNr
OworICAgIGJvb2wgcmVjZWl2ZWRGYXZpY29uVGFzazsKKyAgICBib29sIGZhdmljb25UYXNrU3Rv
cHBlZDsKK30KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERhdGE6KE5TRGF0YSAqKWRhdGE7CiAt
ICh2b2lkKXNldEZhdmljb25EYXRhOihOU0RhdGEgKilkYXRhOwogQGVuZApAQCAtMTEzLDYgKzEy
OSwxMCBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hl
bWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogCiAgICAgaWYgKFtbdGFzay5yZXF1ZXN0
LlVSTCBhYnNvbHV0ZVN0cmluZ10gaXNFcXVhbDpAInRlc3Rpbmc6Ly8vZmF2aWNvbi5pY28iXSkg
ewogICAgICAgICBFWFBFQ1RfRkFMU0UoYWxyZWFkeVByb3ZpZGVkSWNvbkRhdGEpOworICAgICAg
ICBpZiAoc2hvdWxkSWdub3JlRmF2aWNvblRhc2spIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRmF2
aWNvblRhc2sgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAg
IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRh
c2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJpbWFnZS9wbmciIGV4cGVjdGVkQ29udGVudExlbmd0
aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CiAgICAgICAgIGRhdGEgPSBmYXZpY29uRGF0YS5n
ZXQoKTsKICAgICAgICAgYWxyZWFkeVByb3ZpZGVkSWNvbkRhdGEgPSB0cnVlOwpAQCAtMTI4LDYg
KzE0OCw4IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNj
aGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAKIC0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBzdG9wVVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4p
dGFzawogeworICAgIGlmIChbW3Rhc2sucmVxdWVzdC5VUkwgYWJzb2x1dGVTdHJpbmddIGlzRXF1
YWw6QCJ0ZXN0aW5nOi8vL2Zhdmljb24uaWNvIl0pCisgICAgICAgIGZhdmljb25UYXNrU3RvcHBl
ZCA9IHRydWU7CiB9CiAKIEBlbmQKQEAgLTE1NCw2ICsxNzYsNyBAQCBURVNUKEljb25Mb2FkaW5n
LCBEZWZhdWx0RmF2aWNvbikKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdpdGhJY29ucyk7CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRh
dGFDYWxsYmFjayk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyIG1haW5CeXRlczJbXSA9CkBAIC0x
ODAsMjAgKzIwMyw4NiBAQCBURVNUKEljb25Mb2FkaW5nLCBBbHJlYWR5Q2FjaGVkSWNvbikKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdGluZzovLy9tYWluIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOwogCi0gICAg
RVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkgaXNFcXVhbDpyZWNlaXZlZEZhdmlj
b25EYXRhLmdldCgpXSk7CisgICAgRVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkg
aXNFcXVhbDppY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGEuZ2V0KCldKTsK
IAotICAgIHJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjayA9IGZhbHNlOwotICAgIHJlY2VpdmVk
RmF2aWNvbkRhdGEgPSBuaWw7CisgICAgaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmlj
b25EYXRhQ2FsbGJhY2sgPSBmYWxzZTsKKyAgICBpY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVk
RmF2aWNvbkRhdGEgPSBuaWw7CiAKICAgICAvLyBMb2FkIGFub3RoZXIgbWFpbiByZXNvdXJjZSB0
aGF0IHJlc3VsdHMgaW4gdGhlIHNhbWUgaWNvbiBiZWluZyBsb2FkZWQgKHdoaWNoIHNob3VsZCBj
b21lIGZyb20gdGhlIG1lbW9yeSBjYWNoZSkuCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0aW5nOi8vL21haW4yIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRh
Q2FsbGJhY2spOworCisgICAgRVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkgaXNF
cXVhbDppY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGEuZ2V0KCldKTsKK30K
KworVEVTVChJY29uTG9hZGluZywgSWNvbkxvYWRDYW5jZWxsZWRDYWxsYmFjaykKK3sKKyAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBOU0RhdGEgKm1h
aW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKiltYWluQnl0ZXMgbGVu
Z3RoOnNpemVvZihtYWluQnl0ZXMpIGZyZWVXaGVuRG9uZTpOT107CisgICAgUmV0YWluUHRyPElj
b25Mb2FkaW5nU2NoZW1lSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tJY29uTG9hZGluZ1Nj
aGVtZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoRGF0YTptYWluRGF0YV0pOworICAgIGhhbmRsZXIu
Z2V0KCktPnNob3VsZElnbm9yZUZhdmljb25UYXNrID0gdHJ1ZTsKKyAgICBbY29uZmlndXJhdGlv
biBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAidGVzdGlu
ZyJdOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBSZXRhaW5QdHI8SWNvbkxv
YWRpbmdEZWxlZ2F0ZT4gaWNvbkRlbGVnYXRlID0gYWRvcHROUyhbW0ljb25Mb2FkaW5nRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJWaWV3LmdldCgpLl9pY29uTG9hZGluZ0RlbGVnYXRl
ID0gaWNvbkRlbGVnYXRlLmdldCgpOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6
Ly8vbWFpbiJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFuZGxlci5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uVGFz
ayk7CisKKyAgICAvLyBPdXIgc2NoZW1lIGhhbmRsZXIgbmV2ZXIgcmVwbGllcyB0byB0aGUgZmF2
aWNvbiB0YXNrLCBzbyBvdXIgaWNvbiBkZWxlZ2F0ZSBsb2FkIGNhbGxiYWNrIGlzIHN0aWxsIHBl
bmRpbmcuCisgICAgLy8gU3RvcCB0aGUgZG9jdW1lbnRsb2FkZXIncyBsb2FkaW5nIGFuZCB2ZXJp
ZnkgdGhlIGljb24gZGVsZWdhdGUgY2FsbGJhY2sgaXMgY2FsbGVkLgorICAgIFt3ZWJWaWV3IHN0
b3BMb2FkaW5nXTsKKworICAgIC8vIFdhaXQgdW50aWwgdGhlIGRhdGEgY2FsbGJhY2sgaXMgY2Fs
bGVkLCAqYW5kKiB0aGUgdGFzayBpcyBzdG9wcGVkCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZoYW5kbGVyLmdldCgpLT5mYXZpY29uVGFza1N0b3BwZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2Fs
bGJhY2spOworCisgICAgRVhQRUNUX0VRKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2ZWRGYXZp
Y29uRGF0YS5nZXQoKS5sZW5ndGgsIDApOworfQorCitURVNUKEljb25Mb2FkaW5nLCBJY29uTG9h
ZENhbmNlbGxlZENhbGxiYWNrMikKK3sKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJh
dGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisKKyAgICBOU0RhdGEgKm1haW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5
dGVzTm9Db3B5Oih2b2lkKiltYWluQnl0ZXMgbGVuZ3RoOnNpemVvZihtYWluQnl0ZXMpIGZyZWVX
aGVuRG9uZTpOT107CisgICAgUmV0YWluUHRyPEljb25Mb2FkaW5nU2NoZW1lSGFuZGxlcj4gaGFu
ZGxlciA9IGFkb3B0TlMoW1tJY29uTG9hZGluZ1NjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRo
RGF0YTptYWluRGF0YV0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6
aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0aW5nIl07CisKKyAgICBSZXRhaW5QdHI8
V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKKworICAgIFJldGFpblB0cjxJY29uTG9hZGluZ0RlbGVnYXRlPiBpY29uRGVs
ZWdhdGUgPSBhZG9wdE5TKFtbSWNvbkxvYWRpbmdEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IGljb25EZWxlZ2F0ZS5nZXQoKS0+c2hvdWxkU2F2ZUNhbGxiYWNrID0gdHJ1ZTsKKyAgICB3ZWJW
aWV3LmdldCgpLl9pY29uTG9hZGluZ0RlbGVnYXRlID0gaWNvbkRlbGVnYXRlLmdldCgpOworCisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6Ly8vbWFpbiJdXTsKKyAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNv
bkRlbGVnYXRlLmdldCgpLT5kaWRTYXZlQ2FsbGJhY2spOworCisgICAgLy8gT3VyIHNjaGVtZSBo
YW5kbGVyIG5ldmVyIHJlcGxpZXMgdG8gdGhlIGZhdmljb24gdGFzaywgc28gb3VyIGljb24gZGVs
ZWdhdGUgbG9hZCBjYWxsYmFjayBpcyBzdGlsbCBwZW5kaW5nLgorICAgIC8vIFN0b3AgdGhlIGRv
Y3VtZW50bG9hZGVyJ3MgbG9hZGluZyBhbmQgdmVyaWZ5IHRoZSBpY29uIGRlbGVnYXRlIGNhbGxi
YWNrIGlzIGNhbGxlZC4KKyAgICBbd2ViVmlldyBzdG9wTG9hZGluZ107CisKKworICAgIC8vIEV2
ZW4gdGhvdWdoIGxvYWRpbmcgaGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIChhbmQgdGhlcmVmb3Jl
IEljb25Mb2FkZXJzIHdlcmUgY2FuY2VsbGVkKSwKKyAgICAvLyB3ZSBzaG91bGQgc3RpbGwgZ2V0
IHRoZSBjYWxsYmFjay4KKyAgICBzdGF0aWMgYm9vbCBpY29uQ2FsbGJhY2tDYWxsZWQ7CisgICAg
aWNvbkRlbGVnYXRlLmdldCgpLT5zYXZlZENhbGxiYWNrKFtpY29uQ2FsbGJhY2tDYWxsZWQgPSAm
aWNvbkNhbGxiYWNrQ2FsbGVkXShOU0RhdGEgKmRhdGEpIHsKKyAgICAgICAgRVhQRUNUX0VRKGRh
dGEubGVuZ3RoLCAwKTsKKworICAgICAgICAqaWNvbkNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAg
ICB9KTsKIAotICAgIEVYUEVDVF9UUlVFKFtpY29uRGF0YUZyb21EaXNrLmdldCgpIGlzRXF1YWw6
cmVjZWl2ZWRGYXZpY29uRGF0YS5nZXQoKV0pOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaWNvbkNhbGxiYWNrQ2FsbGVkKTsKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314051</attachid>
            <date>2017-06-28 12:24:33 -0700</date>
            <delta_ts>2017-06-28 15:40:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173874-20170628122433.patch</filename>
            <type>text/plain</type>
            <size>12322</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4ODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJiOTFlMzcyZTE0ZDEz
NzNjYTI0ZTFmMDFlYjQyMmNjYmY4YjJkYy4uMmQ5MjAwNWUyYzUxM2NhNDMyMDA1MmQ4MWYwMjk2
NTdhNGVkYmIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTI4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBEb2N1bWVudExvYWRlciBz
aG91bGQgYWx3YXlzIG5vdGlmeSB0aGUgY2xpZW50IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGljb24g
bG9hZHMgd2hlbiB0aGUgbG9hZCBpcyBzdG9wcGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAg
UGF0Y2ggc3RhcnRlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcywgZmluaXNoZWQgYnkgbWUuCisg
ICAgICAgIAorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcpOiBNYWtlIGFsbCBvZiB0aGUgY2Fs
bGJhY2tzIGZvciBjYW5jZWxsZWQgSWNvbkxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6ZGlkR2V0TG9hZERlY2lzaW9uRm9ySWNvbik6IE1ha2UgdGhlIGNhbGxiYWNr
IGV2ZW4gaWYgdGhlcmUncyBubyBJY29uTG9hZGVyLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OmZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkTG9hZGluZ0ljb24pOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudExvYWRlci5oOgorCiAyMDE3LTA2LTI4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGBjb25zdCBkb3VibGVgIG1l
dGhvZCBhcmd1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmlu
ZGV4IDc1NTdlYjA5ODYxZjgxMWRlYjdhNzI4NTAyMTEzYTkyMmI4YzY2NDkuLjk4OWY5OWQ4N2Qx
MzQxOTlmYTc0Y2U5MmQwMGFhNTFmMDMwZmVjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcApAQCAtMjgyLDggKzI4MiwxMCBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpzdG9wTG9hZGluZygpCiAgICAgICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5zdG9wTG9hZGlu
ZyhVbmxvYWRFdmVudFBvbGljeU5vbmUpOwogICAgIH0KIAotICAgIG1faWNvbnNQZW5kaW5nTG9h
ZERlY2lzaW9uLmNsZWFyKCk7CisgICAgZm9yIChhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA6IG1f
aWNvbkxvYWRlcnMudmFsdWVzKCkpCisgICAgICAgIG5vdGlmeUZpbmlzaGVkTG9hZGluZ0ljb24o
Y2FsbGJhY2tJZGVudGlmaWVyLCBudWxscHRyKTsKICAgICBtX2ljb25Mb2FkZXJzLmNsZWFyKCk7
CisgICAgbV9pY29uc1BlbmRpbmdMb2FkRGVjaXNpb24uY2xlYXIoKTsKIAogICAgIC8vIEFsd2F5
cyBjYW5jZWwgbXVsdGlwYXJ0IGxvYWRlcnMKICAgICBjYW5jZWxBbGwobV9tdWx0aXBhcnRTdWJy
ZXNvdXJjZUxvYWRlcnMpOwpAQCAtMTY4MCw3ICsxNjgyLDE3IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnN0YXJ0SWNvbkxvYWRpbmcoKQogdm9pZCBEb2N1bWVudExvYWRlcjo6ZGlkR2V0TG9hZERl
Y2lzaW9uRm9ySWNvbihib29sIGRlY2lzaW9uLCB1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgdWlu
dDY0X3QgbmV3Q2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGljb24gPSBtX2ljb25zUGVuZGluZ0xv
YWREZWNpc2lvbi50YWtlKGxvYWRJZGVudGlmaWVyKTsKLSAgICBpZiAoIWRlY2lzaW9uIHx8IGlj
b24udXJsLmlzRW1wdHkoKSB8fCAhbV9mcmFtZSkKKworICAgIC8vIElmIHRoZSBMaW5rSWNvbiB3
ZSBqdXN0IHRvb2sgaXMgZW1wdHksIHRoZW4gdGhlIERvY3VtZW50TG9hZGVyIGhhZCBhbGwgb2Yg
aXRzIGxvYWRlcnMgc3RvcHBlZAorICAgIC8vIHdoaWxlIHRoaXMgaWNvbiBsb2FkIGRlY2lzaW9u
IHdhcyBwZW5kaW5nLgorICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBuZWVkIHRvIG5vdGlmeSB0aGUg
Y2xpZW50IHRoYXQgdGhlIGljb24gZmluaXNoZWQgbG9hZGluZyB3aXRoIGVtcHR5IGRhdGEuCisg
ICAgaWYgKGljb24udXJsLmlzRW1wdHkoKSkgeworICAgICAgICBub3RpZnlGaW5pc2hlZExvYWRp
bmdJY29uKG5ld0NhbGxiYWNrSUQsIG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgLy8gSWYgdGhlIGRlY2lzaW9uIHdhcyBub3QgdG8gbG9hZCBvciB0aGlzIERvY3VtZW50
TG9hZGVyIGlzIGFscmVhZHkgZGV0YWNoZWQsIHRoZXJlIGlzIG5vIGxvYWQgdG8gcGVyZm9ybS4K
KyAgICBpZiAoIWRlY2lzaW9uIHx8ICFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvIGljb25Mb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEljb25Mb2FkZXI+KCp0aGlzLCBpY29u
LnVybCk7CkBAIC0xNjk4LDcgKzE3MTAsMTMgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6ZmluaXNo
ZWRMb2FkaW5nSWNvbihJY29uTG9hZGVyJiBsb2FkZXIsIFNoYXJlZEJ1ZmZlciogYnVmZmUKICAg
ICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IG1faWNvbkxvYWRlcnMudGFrZSgmbG9hZGVyKTsK
ICAgICBSRUxFQVNFX0FTU0VSVChjYWxsYmFja0lkZW50aWZpZXIpOwogCi0gICAgbV9mcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZpZXIs
IGJ1ZmZlcik7CisgICAgbm90aWZ5RmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZp
ZXIsIGJ1ZmZlcik7Cit9CisKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkTG9h
ZGluZ0ljb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBTaGFyZWRCdWZmZXIqIGJ1ZmZl
cikKK3sKKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50
KCkuZmluaXNoZWRMb2FkaW5nSWNvbihjYWxsYmFja0lkZW50aWZpZXIsIGJ1ZmZlcik7CiB9CiAK
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmRpc3BhdGNoT25sb2FkRXZlbnRzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggMWVhMjAyMzdiZDU2Zjk3MzYxNzk5MDJhOTg1
M2MwZGZkOTAzNjRhMy4uNjdhNTIwMzk1Y2U4ZTc3YWI1ODIzYjFlODEyMjJjMDJlN2Q5Y2IyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTM2OCw2ICszNjgsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2tJZk5lZWRlZCgpOwogICAgIHZv
aWQgYmVjb21lTWFpblJlc291cmNlQ2xpZW50KCk7CiAKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
TG9hZGluZ0ljb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBTaGFyZWRCdWZmZXIqKTsK
KwogICAgIEZyYW1lKiBtX2ZyYW1lIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDYWNoZWRSZXNvdXJj
ZUxvYWRlcj4gbV9jYWNoZWRSZXNvdXJjZUxvYWRlcjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJlNGQyMmY5MTIwOGJlNWJhMjA1OWY0MTJm
NmYzMzEzYTNjMjE3OTAuLjg1YzA1YWMxY2UzNDYwMTVlNzU4YTkwODYwYjA4N2QxY2E4Mzg0Y2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNy0wNi0yOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgRG9jdW1lbnRMb2FkZXIgc2hvdWxkIGFsd2F5cyBub3RpZnkgdGhlIGNsaWVu
dCBpZiB0aGVyZSBhcmUgcGVuZGluZyBpY29uIGxvYWRzIHdoZW4gdGhlIGxvYWQgaXMgc3RvcHBl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg3
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbToKKwog
MjAxNy0wNi0yNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViQXNzZW1ibHk6IHJ1bm5pbmcgb3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5IHNob3VsZCB0aHJv
dyBPb00KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0ljb25Mb2FkaW5nRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JY29uTG9hZGluZ0RlbGVnYXRlLm1tCmluZGV4IDdjOWU2ZDczNzczODkzY2E0YWI3
YjYzYTVhYTA3NTg1OWFlNGZjM2IuLjBhYTI1Yjc4YWJiOTkyZDM3MjMzMjhhNTljZDM1Njk2YzFi
OTQ3YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0ljb25Mb2FkaW5nRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQpAQCAtMzksMTEgKzM5LDE2IEBACiAj
aWYgV0tfQVBJX0VOQUJMRUQKIAogc3RhdGljIGJvb2wgZG9uZVdpdGhJY29uczsKLXN0YXRpYyBi
b29sIHJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjazsKIHN0YXRpYyBib29sIGFscmVhZHlQcm92
aWRlZEljb25EYXRhOwotc3RhdGljIFJldGFpblB0cjxOU0RhdGE+IHJlY2VpdmVkRmF2aWNvbkRh
dGE7CiAKLUBpbnRlcmZhY2UgSWNvbkxvYWRpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tJY29u
TG9hZGluZ0RlbGVnYXRlPgorQGludGVyZmFjZSBJY29uTG9hZGluZ0RlbGVnYXRlIDogTlNPYmpl
Y3QgPF9XS0ljb25Mb2FkaW5nRGVsZWdhdGU+IHsKKyAgICBAcHVibGljCisgICAgUmV0YWluUHRy
PE5TRGF0YT4gcmVjZWl2ZWRGYXZpY29uRGF0YTsKKyAgICBib29sIHJlY2VpdmVkRmF2aWNvbkRh
dGFDYWxsYmFjazsKKyAgICBib29sIHNob3VsZFNhdmVDYWxsYmFjazsKKyAgICBib29sIGRpZFNh
dmVDYWxsYmFjazsKKyAgICB2b2lkIChec2F2ZWRDYWxsYmFjaykodm9pZCAoXikoTlNEYXRhKikp
OworfQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gSWNvbkxvYWRpbmdEZWxlZ2F0ZSB7CkBAIC03
MCw3ICs3NSwxMyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxk
TG9hZEljb25XaXRoUGFyYW1ldGVyczooX1dLTGlua0ljb25QYQogICAgICAgICBkb25lV2l0aElj
b25zID0gdHJ1ZTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLmljb25UeXBlID09IFdLTGlua0ljb25U
eXBlRmF2aWNvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbXShOU0RhdGEgKmljb25E
YXRhKSB7CisgICAgICAgIGlmIChzaG91bGRTYXZlQ2FsbGJhY2spIHsKKyAgICAgICAgICAgIHNh
dmVkQ2FsbGJhY2sgPSBbY29tcGxldGlvbkhhbmRsZXIgcmV0YWluXTsKKyAgICAgICAgICAgIGRp
ZFNhdmVDYWxsYmFjayA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihbc2VsZl0oTlNEYXRhICppY29uRGF0YSkgewogICAg
ICAgICAgICAgcmVjZWl2ZWRGYXZpY29uRGF0YSA9IGljb25EYXRhOwogICAgICAgICAgICAgcmVj
ZWl2ZWRGYXZpY29uRGF0YUNhbGxiYWNrID0gdHJ1ZTsKICAgICAgICAgfSk7CkBAIC04MCw3ICs5
MSwxMiBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkTG9hZElj
b25XaXRoUGFyYW1ldGVyczooX1dLTGlua0ljb25QYQogCiBAZW5kCiAKLUBpbnRlcmZhY2UgSWNv
bkxvYWRpbmdTY2hlbWVIYW5kbGVyIDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4KK0Bp
bnRlcmZhY2UgSWNvbkxvYWRpbmdTY2hlbWVIYW5kbGVyIDogTlNPYmplY3QgPFdLVVJMU2NoZW1l
SGFuZGxlcj4geworICAgIEBwdWJsaWMKKyAgICBib29sIHNob3VsZElnbm9yZUZhdmljb25UYXNr
OworICAgIGJvb2wgcmVjZWl2ZWRGYXZpY29uVGFzazsKKyAgICBib29sIGZhdmljb25UYXNrU3Rv
cHBlZDsKK30KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERhdGE6KE5TRGF0YSAqKWRhdGE7CiAt
ICh2b2lkKXNldEZhdmljb25EYXRhOihOU0RhdGEgKilkYXRhOwogQGVuZApAQCAtMTEzLDYgKzEy
OSwxMCBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hl
bWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogCiAgICAgaWYgKFtbdGFzay5yZXF1ZXN0
LlVSTCBhYnNvbHV0ZVN0cmluZ10gaXNFcXVhbDpAInRlc3Rpbmc6Ly8vZmF2aWNvbi5pY28iXSkg
ewogICAgICAgICBFWFBFQ1RfRkFMU0UoYWxyZWFkeVByb3ZpZGVkSWNvbkRhdGEpOworICAgICAg
ICBpZiAoc2hvdWxkSWdub3JlRmF2aWNvblRhc2spIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRmF2
aWNvblRhc2sgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAg
IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRh
c2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJpbWFnZS9wbmciIGV4cGVjdGVkQ29udGVudExlbmd0
aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CiAgICAgICAgIGRhdGEgPSBmYXZpY29uRGF0YS5n
ZXQoKTsKICAgICAgICAgYWxyZWFkeVByb3ZpZGVkSWNvbkRhdGEgPSB0cnVlOwpAQCAtMTI4LDYg
KzE0OCw4IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNj
aGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAKIC0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBzdG9wVVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4p
dGFzawogeworICAgIGlmIChbW3Rhc2sucmVxdWVzdC5VUkwgYWJzb2x1dGVTdHJpbmddIGlzRXF1
YWw6QCJ0ZXN0aW5nOi8vL2Zhdmljb24uaWNvIl0pCisgICAgICAgIGZhdmljb25UYXNrU3RvcHBl
ZCA9IHRydWU7CiB9CiAKIEBlbmQKQEAgLTE1NCw2ICsxNzYsNyBAQCBURVNUKEljb25Mb2FkaW5n
LCBEZWZhdWx0RmF2aWNvbikKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdpdGhJY29ucyk7CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRh
dGFDYWxsYmFjayk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyIG1haW5CeXRlczJbXSA9CkBAIC0x
ODAsMjAgKzIwMyw4NiBAQCBURVNUKEljb25Mb2FkaW5nLCBBbHJlYWR5Q2FjaGVkSWNvbikKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdGluZzovLy9tYWluIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOwogCi0gICAg
RVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkgaXNFcXVhbDpyZWNlaXZlZEZhdmlj
b25EYXRhLmdldCgpXSk7CisgICAgRVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkg
aXNFcXVhbDppY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGEuZ2V0KCldKTsK
IAotICAgIHJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjayA9IGZhbHNlOwotICAgIHJlY2VpdmVk
RmF2aWNvbkRhdGEgPSBuaWw7CisgICAgaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmlj
b25EYXRhQ2FsbGJhY2sgPSBmYWxzZTsKKyAgICBpY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVk
RmF2aWNvbkRhdGEgPSBuaWw7CiAKICAgICAvLyBMb2FkIGFub3RoZXIgbWFpbiByZXNvdXJjZSB0
aGF0IHJlc3VsdHMgaW4gdGhlIHNhbWUgaWNvbiBiZWluZyBsb2FkZWQgKHdoaWNoIHNob3VsZCBj
b21lIGZyb20gdGhlIG1lbW9yeSBjYWNoZSkuCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0aW5nOi8vL21haW4yIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRh
Q2FsbGJhY2spOworCisgICAgRVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkgaXNF
cXVhbDppY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGEuZ2V0KCldKTsKK30K
KworVEVTVChJY29uTG9hZGluZywgSWNvbkxvYWRDYW5jZWxsZWRDYWxsYmFjaykKK3sKKyAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBOU0RhdGEgKm1h
aW5EYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKiltYWluQnl0ZXMgbGVu
Z3RoOnNpemVvZihtYWluQnl0ZXMpIGZyZWVXaGVuRG9uZTpOT107CisgICAgUmV0YWluUHRyPElj
b25Mb2FkaW5nU2NoZW1lSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tJY29uTG9hZGluZ1Nj
aGVtZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoRGF0YTptYWluRGF0YV0pOworICAgIGhhbmRsZXIu
Z2V0KCktPnNob3VsZElnbm9yZUZhdmljb25UYXNrID0gdHJ1ZTsKKyAgICBbY29uZmlndXJhdGlv
biBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAidGVzdGlu
ZyJdOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBSZXRhaW5QdHI8SWNvbkxv
YWRpbmdEZWxlZ2F0ZT4gaWNvbkRlbGVnYXRlID0gYWRvcHROUyhbW0ljb25Mb2FkaW5nRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJWaWV3LmdldCgpLl9pY29uTG9hZGluZ0RlbGVnYXRl
ID0gaWNvbkRlbGVnYXRlLmdldCgpOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6
Ly8vbWFpbiJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFuZGxlci5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uVGFz
ayk7CisKKyAgICAvLyBPdXIgc2NoZW1lIGhhbmRsZXIgbmV2ZXIgcmVwbGllcyB0byB0aGUgZmF2
aWNvbiB0YXNrLCBzbyBvdXIgaWNvbiBkZWxlZ2F0ZSBsb2FkIGNhbGxiYWNrIGlzIHN0aWxsIHBl
bmRpbmcuCisgICAgLy8gU3RvcCB0aGUgZG9jdW1lbnRsb2FkZXIncyBsb2FkaW5nIGFuZCB2ZXJp
ZnkgdGhlIGljb24gZGVsZWdhdGUgY2FsbGJhY2sgaXMgY2FsbGVkLgorICAgIFt3ZWJWaWV3IHN0
b3BMb2FkaW5nXTsKKworICAgIC8vIFdhaXQgdW50aWwgdGhlIGRhdGEgY2FsbGJhY2sgaXMgY2Fs
bGVkLCAqYW5kKiB0aGUgdGFzayBpcyBzdG9wcGVkCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZoYW5kbGVyLmdldCgpLT5mYXZpY29uVGFza1N0b3BwZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2Fs
bGJhY2spOworCisgICAgRVhQRUNUX0VRKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2ZWRGYXZp
Y29uRGF0YS5nZXQoKS5sZW5ndGgsICh1bnNpZ25lZCBsb25nKTApOworfQorCitURVNUKEljb25M
b2FkaW5nLCBJY29uTG9hZENhbmNlbGxlZENhbGxiYWNrMikKK3sKKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBOU0RhdGEgKm1haW5EYXRhID0gW05T
RGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKiltYWluQnl0ZXMgbGVuZ3RoOnNpemVvZiht
YWluQnl0ZXMpIGZyZWVXaGVuRG9uZTpOT107CisgICAgUmV0YWluUHRyPEljb25Mb2FkaW5nU2No
ZW1lSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tJY29uTG9hZGluZ1NjaGVtZUhhbmRsZXIg
YWxsb2NdIGluaXRXaXRoRGF0YTptYWluRGF0YV0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0aW5nIl07CisK
KyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIFJldGFpblB0cjxJY29uTG9hZGluZ0Rl
bGVnYXRlPiBpY29uRGVsZWdhdGUgPSBhZG9wdE5TKFtbSWNvbkxvYWRpbmdEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIGljb25EZWxlZ2F0ZS5nZXQoKS0+c2hvdWxkU2F2ZUNhbGxiYWNrID0g
dHJ1ZTsKKyAgICB3ZWJWaWV3LmdldCgpLl9pY29uTG9hZGluZ0RlbGVnYXRlID0gaWNvbkRlbGVn
YXRlLmdldCgpOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6Ly8vbWFpbiJdXTsK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRlLmdldCgpLT5kaWRTYXZlQ2FsbGJhY2spOworCisgICAg
Ly8gT3VyIHNjaGVtZSBoYW5kbGVyIG5ldmVyIHJlcGxpZXMgdG8gdGhlIGZhdmljb24gdGFzaywg
c28gb3VyIGljb24gZGVsZWdhdGUgbG9hZCBjYWxsYmFjayBpcyBzdGlsbCBwZW5kaW5nLgorICAg
IC8vIFN0b3AgdGhlIGRvY3VtZW50bG9hZGVyJ3MgbG9hZGluZyBhbmQgdmVyaWZ5IHRoZSBpY29u
IGRlbGVnYXRlIGNhbGxiYWNrIGlzIGNhbGxlZC4KKyAgICBbd2ViVmlldyBzdG9wTG9hZGluZ107
CisKKworICAgIC8vIEV2ZW4gdGhvdWdoIGxvYWRpbmcgaGFzIGFscmVhZHkgYmVlbiBzdG9wcGVk
IChhbmQgdGhlcmVmb3JlIEljb25Mb2FkZXJzIHdlcmUgY2FuY2VsbGVkKSwKKyAgICAvLyB3ZSBz
aG91bGQgc3RpbGwgZ2V0IHRoZSBjYWxsYmFjay4KKyAgICBzdGF0aWMgYm9vbCBpY29uQ2FsbGJh
Y2tDYWxsZWQ7CisgICAgaWNvbkRlbGVnYXRlLmdldCgpLT5zYXZlZENhbGxiYWNrKFtpY29uQ2Fs
bGJhY2tDYWxsZWQgPSAmaWNvbkNhbGxiYWNrQ2FsbGVkXShOU0RhdGEgKmRhdGEpIHsKKyAgICAg
ICAgRVhQRUNUX0VRKGRhdGEubGVuZ3RoLCAodW5zaWduZWQgbG9uZykwKTsKKworICAgICAgICAq
aWNvbkNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICB9KTsKIAotICAgIEVYUEVDVF9UUlVFKFtp
Y29uRGF0YUZyb21EaXNrLmdldCgpIGlzRXF1YWw6cmVjZWl2ZWRGYXZpY29uRGF0YS5nZXQoKV0p
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNvbkNhbGxiYWNrQ2FsbGVkKTsKIH0K
IAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>