<?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>190369</bug_id>
          
          <creation_ts>2018-10-08 13:10:18 -0700</creation_ts>
          <short_desc>[WebVTT] Support inline WebVTT styles</short_desc>
          <delta_ts>2018-11-02 11:04:27 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=191200</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1467163</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-10-08 13:10:18 -0700</bug_when>
    <thetext>Inline WebVTT styles are currently not supported in WebKit, see https://w3c.github.io/webvtt/#styling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467164</commentid>
    <comment_count>1</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-10-08 13:10:59 -0700</bug_when>
    <thetext>rdar://problem/29265907</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467198</commentid>
    <comment_count>2</comment_count>
      <attachid>351812</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-10-08 14:00:27 -0700</bug_when>
    <thetext>Created attachment 351812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467385</commentid>
    <comment_count>3</comment_count>
      <attachid>351812</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-09 06:27:56 -0700</bug_when>
    <thetext>Comment on attachment 351812
Patch

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

&gt; Source/WebCore/dom/ExtensionStyleSheets.cpp:151
&gt; +        for (auto styleSheet : *owningPage-&gt;webVTTStyleSheets()) {

const auto&amp;

&gt; Source/WebCore/dom/ExtensionStyleSheets.cpp:154
&gt; +            m_injectedAuthorStyleSheets.append(WTFMove(sheet));

Won&apos;t this make the style apply to *every* &lt;track&gt; in the document? Styles in a WebVTT file should only apply to the cues in one track.

&gt; Source/WebCore/html/track/LoadableTextTrack.cpp:137
&gt; +void LoadableTextTrack::newStyleSheetsAvailable(TextTrackLoader* loader)

TextTrackLoader&amp;, and please file a bug about changing all TextTrackLoader* method parameters in this class.

&gt; Source/WebCore/html/track/LoadableTextTrack.cpp:142
&gt; +    for (auto cssString : newStyleSheets)

const auto&amp; cssString

&gt; Source/WebCore/html/track/LoadableTextTrack.cpp:144
&gt; +    if (!newStyleSheets.isEmpty())

You could return immediately above if the vector is empty.

&gt; Source/WebCore/html/track/WebVTTParser.cpp:359
&gt; +    if (line.startsWith(&quot;STYLE&quot;) &amp;&amp; line.substring(regionIdentifierLength).isAllSpecialCharacters&lt;isASpace&gt;())

You need a new constant, &quot;regionIdentifierLength&quot; is wrong for STYLE

&gt; LayoutTests/media/track/track-cue-css.html:19
&gt; +            waitForEvent(&apos;seeked&apos;, seeked);

Nit: this could be simplified to &quot;waitForEvent(&apos;seeked&apos;, endTest);&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469321</commentid>
    <comment_count>4</comment_count>
      <attachid>352345</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-10-15 10:48:28 -0700</bug_when>
    <thetext>Created attachment 352345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469436</commentid>
    <comment_count>5</comment_count>
      <attachid>352345</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-15 13:56:45 -0700</bug_when>
    <thetext>Comment on attachment 352345
Patch

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

&gt; Source/WebCore/html/track/WebVTTParser.h:176
&gt; +    ParseState collectStyleSheet(const String&amp; line);

Nit: &quot;line&quot; isn&apos;t necessary.

&gt; Source/WebCore/loader/TextTrackLoader.h:75
&gt; +    void newStyleSheetsParsed() override;

Nit: override -&gt; final</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469749</commentid>
    <comment_count>6</comment_count>
      <attachid>352464</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-10-16 09:46:54 -0700</bug_when>
    <thetext>Created attachment 352464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469769</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-10-16 10:25:06 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #5)
&gt; Comment on attachment 352345 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=352345&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/track/WebVTTParser.h:176
&gt; &gt; +    ParseState collectStyleSheet(const String&amp; line);
&gt; 
&gt; Nit: &quot;line&quot; isn&apos;t necessary.
&gt; 
&gt; &gt; Source/WebCore/loader/TextTrackLoader.h:75
&gt; &gt; +    void newStyleSheetsParsed() override;
&gt; 
&gt; Nit: override -&gt; final

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469772</commentid>
    <comment_count>8</comment_count>
      <attachid>352464</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-16 10:29:41 -0700</bug_when>
    <thetext>Comment on attachment 352464
Patch

Clearing flags on attachment: 352464

Committed r237187: &lt;https://trac.webkit.org/changeset/237187&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470536</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-10-18 08:21:30 -0700</bug_when>
    <thetext>Looks like the new test media/track/track-cue-css.html

added in https://trac.webkit.org/changeset/237187/webkit

is a flakey image failure.

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=media%2Ftrack%2Ftrack-cue-css.html

Diff:
https://build.webkit.org/results/Apple%20High%20Sierra%20Release%20WK1%20(Tests)/r237255%20(8670)/media/track/track-cue-css-diffs.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351812</attachid>
            <date>2018-10-08 14:00:27 -0700</date>
            <delta_ts>2018-10-15 10:48:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190369-20181008140027.patch</filename>
            <type>text/plain</type>
            <size>20175</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjkzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTEwLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViVlRUXSBTdXBwb3J0
IGlubGluZSBXZWJWVFQgc3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgaW5saW5lIFdlYlZUVCBzdHlsZXMsIHNlZSBo
dHRwczovL3czYy5naXRodWIuaW8vd2VidnR0LyNzdHlsaW5nLiBUaGUgcGFyc2VkCisgICAgICAg
IHN0eWxlIHN0cmluZ3MgZnJvbSB0aGUgVlRUIGZpbGUgYXJlIGFkZGVkIHRvIGFuIG9wdGlvbmFs
IHZlY3RvciBvZiBzdHlsZSBzdHJpbmdzIGluIHRoZSBQYWdlCisgICAgICAgIGNsYXNzLiBUaGVz
ZSBzdHlsZXMgYXJlIHRoZW4gaW5qZWN0ZWQgYXMgYXV0aG9yIHN0eWxlIHNoZWV0cyB0aHJvdWdo
IHRoZSBkb2N1bWVudCdzIGV4dGVuc2lvbgorICAgICAgICBzdHlsZSBzaGVldHMuCisKKyAgICAg
ICAgVGVzdDogbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy5odG1sCisKKyAgICAgICAgKiBkb20v
RXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uU3R5
bGVTaGVldHM6OnVwZGF0ZUluamVjdGVkU3R5bGVTaGVldENhY2hlIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3U3R5bGVTaGVldHNQYXJzZWQpOgorICAgICAg
ICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwv
dHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFu
ZFdlYlZUVFRleHRUcmFjazo6bmV3U3R5bGVTaGVldHNQYXJzZWQpOgorICAgICAgICAqIGh0bWwv
dHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9Mb2Fk
YWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZVRleHRUcmFjazo6
bmV3U3R5bGVTaGVldHNBdmFpbGFibGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVU
ZXh0VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmdldE5ld0N1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViVlRUUGFyc2VyOjpnZXRTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJW
VFRQYXJzZXI6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29sbGVj
dFdlYlZUVEJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29sbGVjdFN0
eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjaGVja1N0eWxlU2hl
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjaGVja0FuZFN0b3JlU3R5bGVT
aGVldCk6CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xv
YWRlcjo6bmV3U3R5bGVTaGVldHNQYXJzZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
TG9hZGVyOjpnZXROZXdTdHlsZVNoZWV0cyk6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xv
YWRlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
Ojp3ZWJWVFRTdHlsZVNoZWV0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjphZGRX
ZWJWVFRTdHlsZVNoZWV0KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxOC0xMC0wOCAg
SmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGRlYWQg
Y29kZTogVmlkZW9GdWxsc2NyZWVuTW9kZWw6OmlzVmlzaWJsZSgpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAJKHJldmlzaW9uIDIzNjkxNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Niw2ICsxNDYsMTQgQEAgdm9pZCBFeHRlbnNpb25TdHlsZVNoZWV0czo6dXBkYXRl
SW5qZWN0ZQogCiAgICAgICAgIG1faW5qZWN0ZWRBdXRob3JTdHlsZVNoZWV0cy5hcHBlbmQoV1RG
TW92ZShzaGVldCkpOwogICAgIH0KKyAgICAKKyAgICBpZiAob3duaW5nUGFnZS0+d2ViVlRUU3R5
bGVTaGVldHMoKSkgeworICAgICAgICBmb3IgKGF1dG8gc3R5bGVTaGVldCA6ICpvd25pbmdQYWdl
LT53ZWJWVFRTdHlsZVNoZWV0cygpKSB7CisgICAgICAgICAgICBhdXRvIHNoZWV0ID0gY3JlYXRl
RXh0ZW5zaW9uc1N0eWxlU2hlZXQoY29uc3RfY2FzdDxEb2N1bWVudCY+KG1fZG9jdW1lbnQpLCBV
UkwoKSwgc3R5bGVTaGVldCwgVXNlclN0eWxlQXV0aG9yTGV2ZWwpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBtX2luamVjdGVkQXV0aG9yU3R5bGVTaGVldHMuYXBwZW5kKFdURk1vdmUoc2hl
ZXQpKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBFeHRlbnNpb25TdHlsZVNoZWV0czo6
aW52YWxpZGF0ZUluamVjdGVkU3R5bGVTaGVldENhY2hlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAkocmV2aXNp
b24gMjM2OTE0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4
dFRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSwxMCBAQCB2b2lkIEluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQCiAgICAgfQogfQogCit2b2lkIEluYmFuZEdl
bmVyaWNUZXh0VHJhY2s6Om5ld1N0eWxlU2hlZXRzUGFyc2VkKCkKK3sKK30KKwogdm9pZCBJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjpmaWxlRmFpbGVkVG9QYXJzZSgpCiB7CiAgICAgRVJST1JfTE9H
KExPR0lERU5USUZJRVIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRH
ZW5lcmljVGV4dFRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgJKHJldmlzaW9uIDIzNjkxNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCSh3b3JraW5nIGNvcHkp
CkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBm
aW5hbDsKICAgICB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIG5ld1N0
eWxlU2hlZXRzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIGZp
bmFsOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCShyZXZpc2lvbiAy
MzY5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFj
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDEwIEBAIHZvaWQgSW5iYW5kV2ViVlRU
VGV4dFRyYWNrOjpuZXdSZWdpb25zUGEKICAgICB9CiB9CiAKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4
dFRyYWNrOjpuZXdTdHlsZVNoZWV0c1BhcnNlZCgpCit7Cit9CisKIHZvaWQgSW5iYW5kV2ViVlRU
VGV4dFRyYWNrOjpmaWxlRmFpbGVkVG9QYXJzZSgpCiB7CiAgICAgRVJST1JfTE9HKExPR0lERU5U
SUZJRVIsICJFcnJvciBwYXJzaW5nIFdlYlZUVCBzdHJlYW0uIik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgJKHJldmlzaW9u
IDIzNjkxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRy
YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgbmV3Q3Vlc1BhcnNlZCgpIGZpbmFsOwogICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIGZp
bmFsOworICAgIHZvaWQgbmV3U3R5bGVTaGVldHNQYXJzZWQoKSBmaW5hbDsKICAgICB2b2lkIGZp
bGVGYWlsZWRUb1BhcnNlKCkgZmluYWw7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3Bw
CShyZXZpc2lvbiAyMzY5MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksMTAgQEAKIAogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKIAorI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCiAj
aW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJTdHlsZVNoZWV0Q29udGVudHMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCiAj
aW5jbHVkZSAiVlRUQ3VlLmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgpAQCAtMTMxLDYg
KzEzNCwxNyBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhCiAgICAg
fQogfQogCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdTdHlsZVNoZWV0c0F2YWlsYWJsZShU
ZXh0VHJhY2tMb2FkZXIqIGxvYWRlcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbV9s
b2FkZXIuZ2V0KCkgPT0gbG9hZGVyKTsKKyAgICAKKyAgICBhdXRvIG5ld1N0eWxlU2hlZXRzID0g
bV9sb2FkZXItPmdldE5ld1N0eWxlU2hlZXRzKCk7CisgICAgZm9yIChhdXRvIGNzc1N0cmluZyA6
IG5ld1N0eWxlU2hlZXRzKQorICAgICAgICBlbGVtZW50KCktPmRvY3VtZW50KCkucGFnZSgpLT5h
ZGRXZWJWVFRTdHlsZVNoZWV0KGNzc1N0cmluZyk7CisgICAgaWYgKCFuZXdTdHlsZVNoZWV0cy5p
c0VtcHR5KCkpCisgICAgICAgIGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5leHRlbnNpb25TdHlsZVNo
ZWV0cygpLmludmFsaWRhdGVJbmplY3RlZFN0eWxlU2hlZXRDYWNoZSgpOworfQorCiBBdG9taWNT
dHJpbmcgTG9hZGFibGVUZXh0VHJhY2s6OmlkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fdHJhY2tF
bGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFj
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0
VHJhY2suaAkocmV2aXNpb24gMjM2OTE0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9M
b2FkYWJsZVRleHRUcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBuZXdDdWVzQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciopIGZpbmFsOwog
ICAgIHZvaWQgY3VlTG9hZGluZ0NvbXBsZXRlZChUZXh0VHJhY2tMb2FkZXIqLCBib29sIGxvYWRp
bmdGYWlsZWQpIGZpbmFsOwogICAgIHZvaWQgbmV3UmVnaW9uc0F2YWlsYWJsZShUZXh0VHJhY2tM
b2FkZXIqKSBmaW5hbDsKKyAgICB2b2lkIG5ld1N0eWxlU2hlZXRzQXZhaWxhYmxlKFRleHRUcmFj
a0xvYWRlciopIGZpbmFsOwogCiAgICAgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgZmluYWw7CiAg
ICAgYm9vbCBpc0RlZmF1bHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzRGVmYXVsdDsgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAkocmV2aXNp
b24gMjM2OTE0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05Niw4ICs5Niw3IEBAIFdlYlZUVFBhcnNlcjo6V2ViVlRUUGFy
c2VyKFdlYlZUVFBhcnNlckMKIAogdm9pZCBXZWJWVFRQYXJzZXI6OmdldE5ld0N1ZXMoVmVjdG9y
PFJlZlB0cjxXZWJWVFRDdWVEYXRhPj4mIG91dHB1dEN1ZXMpCiB7Ci0gICAgb3V0cHV0Q3VlcyA9
IG1fY3VlbGlzdDsKLSAgICBtX2N1ZWxpc3QuY2xlYXIoKTsKKyAgICBvdXRwdXRDdWVzID0gV1RG
TW92ZShtX2N1ZWxpc3QpOwogfQogCiB2b2lkIFdlYlZUVFBhcnNlcjo6Z2V0TmV3UmVnaW9ucyhW
ZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+JiBvdXRwdXRSZWdpb25zKQpAQCAtMTA1LDYgKzEwNCwx
MSBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Z2V0TmV3UmVnaW9ucyhWZWN0b3I8CiAgICAgb3V0cHV0
UmVnaW9ucyA9IFdURk1vdmUobV9yZWdpb25MaXN0KTsKIH0KIAorVmVjdG9yPFN0cmluZz4gV2Vi
VlRUUGFyc2VyOjpnZXRTdHlsZVNoZWV0cygpCit7CisgICAgcmV0dXJuIFdURk1vdmUobV9zdHls
ZVNoZWV0cyk7Cit9CisKIHZvaWQgV2ViVlRUUGFyc2VyOjpwYXJzZUZpbGVIZWFkZXIoU3RyaW5n
JiYgZGF0YSkKIHsKICAgICBtX3N0YXRlID0gSW5pdGlhbDsKQEAgLTE3NCw2ICsxNzgsMTAgQEAg
dm9pZCBXZWJWVFRQYXJzZXI6OnBhcnNlKCkKICAgICAgICAgICAgIG1fc3RhdGUgPSBjb2xsZWN0
UmVnaW9uU2V0dGluZ3MoKmxpbmUpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2Fz
ZSBTdHlsZToKKyAgICAgICAgICAgIG1fc3RhdGUgPSBjb2xsZWN0U3R5bGVTaGVldCgqbGluZSk7
CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIElkOgogICAgICAgICAgICAgLy8g
U3RlcHMgMTcgLSAyMCAtIEFsbG93IGFueSBudW1iZXIgb2YgbGluZSB0ZXJtaW5hdG9ycywgdGhl
biBpbml0aWFsaXplIG5ldyBjdWUgdmFsdWVzLgogICAgICAgICAgICAgaWYgKGxpbmUtPmlzRW1w
dHkoKSkKQEAgLTI1OCwxMSArMjY2LDE4IEBAIFdlYlZUVFBhcnNlcjo6UGFyc2VTdGF0ZSBXZWJW
VFRQYXJzZXI6OmMKICAgICBpZiAoY2hlY2tBbmRDcmVhdGVSZWdpb24obGluZSkpCiAgICAgICAg
IHJldHVybiBSZWdpb247CiAgICAgCisgICAgaWYgKGNoZWNrU3R5bGVTaGVldChsaW5lKSkKKyAg
ICAgICAgcmV0dXJuIFN0eWxlOworCiAgICAgLy8gSGFuZGxlIGN1ZSBibG9jay4KICAgICBQYXJz
ZVN0YXRlIHN0YXRlID0gY2hlY2tBbmRSZWNvdmVyQ3VlKGxpbmUpOwogICAgIGlmIChzdGF0ZSAh
PSBIZWFkZXIpIHsKLSAgICAgICAgaWYgKG1fY2xpZW50ICYmICFtX3JlZ2lvbkxpc3QuaXNFbXB0
eSgpKQotICAgICAgICAgICAgbV9jbGllbnQtPm5ld1JlZ2lvbnNQYXJzZWQoKTsKKyAgICAgICAg
aWYgKG1fY2xpZW50KSB7CisgICAgICAgICAgICBpZiAoIW1fcmVnaW9uTGlzdC5pc0VtcHR5KCkp
CisgICAgICAgICAgICAgICAgbV9jbGllbnQtPm5ld1JlZ2lvbnNQYXJzZWQoKTsKKyAgICAgICAg
ICAgIGlmICghbV9zdHlsZVNoZWV0cy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9jbGll
bnQtPm5ld1N0eWxlU2hlZXRzUGFyc2VkKCk7CisgICAgICAgIH0KICAgICAgICAgaWYgKCFtX3By
ZXZpb3VzTGluZS5pc0VtcHR5KCkgJiYgIW1fcHJldmlvdXNMaW5lLmNvbnRhaW5zKCItLT4iKSkK
ICAgICAgICAgICAgIG1fY3VycmVudElkID0gbV9wcmV2aW91c0xpbmU7CiAgICAgICAgIApAQCAt
MjkwLDYgKzMwNSwxNiBAQCBXZWJWVFRQYXJzZXI6OlBhcnNlU3RhdGUgV2ViVlRUUGFyc2VyOjpj
CiAgICAgcmV0dXJuIEhlYWRlcjsKIH0KIAorV2ViVlRUUGFyc2VyOjpQYXJzZVN0YXRlIFdlYlZU
VFBhcnNlcjo6Y29sbGVjdFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBsaW5lKQoreworICAgIC8v
IEVuZCBvZiBzdHlsZSBibG9jaworICAgIGlmIChjaGVja0FuZFN0b3JlU3R5bGVTaGVldChsaW5l
KSkKKyAgICAgICAgcmV0dXJuIGNoZWNrQW5kUmVjb3ZlckN1ZShsaW5lKTsKKworICAgIG1fY3Vy
cmVudFN0eWxlU2hlZXQuYXBwZW5kKGxpbmUpOworICAgIHJldHVybiBTdHlsZTsKK30KKwogYm9v
bCBXZWJWVFRQYXJzZXI6OmNoZWNrQW5kQ3JlYXRlUmVnaW9uKGNvbnN0IFN0cmluZyYgbGluZSkK
IHsKICAgICBpZiAobV9wcmV2aW91c0xpbmUuY29udGFpbnMoIi0tPiIpKQpAQCAtMzIzLDcgKzM0
OCwyOSBAQCBib29sIFdlYlZUVFBhcnNlcjo6Y2hlY2tBbmRTdG9yZVJlZ2lvbihjCiAgICAgbV9j
dXJyZW50UmVnaW9uID0gbnVsbHB0cjsKICAgICByZXR1cm4gdHJ1ZTsKIH0KKworYm9vbCBXZWJW
VFRQYXJzZXI6OmNoZWNrU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGxpbmUpCit7CisgICAgaWYg
KG1fcHJldmlvdXNMaW5lLmNvbnRhaW5zKCItLT4iKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIC8vIGxpbmUgc3RhcnRzIHdpdGggdGhlIHN1YnN0cmluZyAiU1RZTEUiIGFuZCByZW1haW5p
bmcgY2hhcmFjdGVycworICAgIC8vIHplcm8gb3IgbW9yZSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVy
cyBvciBVKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04KKyAgICAvLyAodGFiKSBjaGFyYWN0ZXJz
IGV4cGVjdGVkIG90aGVyIHRoYW4gdGhlc2UgY2hhcmVjdGVycyBpdCBpcyBpbnZhbGlkLgorICAg
IGlmIChsaW5lLnN0YXJ0c1dpdGgoIlNUWUxFIikgJiYgbGluZS5zdWJzdHJpbmcocmVnaW9uSWRl
bnRpZmllckxlbmd0aCkuaXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc0FTcGFjZT4oKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViVlRUUGFy
c2VyOjpjaGVja0FuZFN0b3JlU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGxpbmUpCit7CisgICAg
aWYgKCFsaW5lLmlzRW1wdHkoKSAmJiAhbGluZS5jb250YWlucygiLS0+IikpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKKyAgICBtX3N0eWxlU2hlZXRzLmFwcGVuZChXVEZNb3ZlKG1fY3Vy
cmVudFN0eWxlU2hlZXQpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogV2ViVlRUUGFyc2VyOjpQ
YXJzZVN0YXRlIFdlYlZUVFBhcnNlcjo6Y29sbGVjdEN1ZUlkKGNvbnN0IFN0cmluZyYgbGluZSkK
IHsKICAgICBpZiAobGluZS5jb250YWlucygiLS0+IikpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgJKHJldmlzaW9uIDIzNjkxNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IG5ld1N0eWxlU2hlZXRzUGFyc2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaWxlRmFpbGVk
VG9QYXJzZSgpID0gMDsKIH07CiAKQEAgLTEwNCw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWluZ3NBbmRTZXR0aW5ncywKICAgICAgICAgQ3VlVGV4dCwKICAgICAgICAgUmVnaW9uLAor
ICAgICAgICBTdHlsZSwKICAgICAgICAgQmFkQ3VlLAogICAgICAgICBGaW5pc2hlZAogICAgIH07
CkBAIC0xNTAsNiArMTUyLDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0TmV3Q3VlcyhWZWN0b3I8
UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiYpOwogICAgIHZvaWQgZ2V0TmV3UmVnaW9ucyhWZWN0b3I8
UmVmUHRyPFZUVFJlZ2lvbj4+Jik7CiAKKyAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdHlsZVNoZWV0
cygpOworICAgIAogICAgIC8vIENyZWF0ZSB0aGUgRG9jdW1lbnRGcmFnbWVudCByZXByZXNlbnRh
dGlvbiBvZiB0aGUgV2ViVlRUIGN1ZSB0ZXh0LgogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnRGcmFn
bWVudD4gY3JlYXRlRG9jdW1lbnRGcmFnbWVudEZyb21DdWVUZXh0KERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJik7CiAKQEAgLTE2OSw5ICsxNzMsMTIgQEAgcHJpdmF0ZToKICAgICBQYXJzZVN0YXRl
IGNvbGxlY3RSZWdpb25TZXR0aW5ncyhjb25zdCBTdHJpbmcmKTsKICAgICBQYXJzZVN0YXRlIGNv
bGxlY3RXZWJWVFRCbG9jayhjb25zdCBTdHJpbmcmKTsKICAgICBQYXJzZVN0YXRlIGNoZWNrQW5k
UmVjb3ZlckN1ZShjb25zdCBTdHJpbmcmIGxpbmUpOworICAgIFBhcnNlU3RhdGUgY29sbGVjdFN0
eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBsaW5lKTsKICAgICBib29sIGNoZWNrQW5kQ3JlYXRlUmVn
aW9uKGNvbnN0IFN0cmluZyYgbGluZSk7CiAgICAgYm9vbCBjaGVja0FuZFN0b3JlUmVnaW9uKGNv
bnN0IFN0cmluZyYgbGluZSk7Ci0gICAgCisgICAgYm9vbCBjaGVja1N0eWxlU2hlZXQoY29uc3Qg
U3RyaW5nJiBsaW5lKTsKKyAgICBib29sIGNoZWNrQW5kU3RvcmVTdHlsZVNoZWV0KGNvbnN0IFN0
cmluZyYgbGluZSk7CisKICAgICB2b2lkIGNyZWF0ZU5ld0N1ZSgpOwogICAgIHZvaWQgcmVzZXRD
dWVWYWx1ZXMoKTsKIApAQCAtMTg2LDExICsxOTMsMTMgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9wcmV2aW91c0xpbmU7CiAgICAgU3RyaW5nIG1fY3VycmVudFNldHRpbmdzOwogICAgIFJlZlB0
cjxWVFRSZWdpb24+IG1fY3VycmVudFJlZ2lvbjsKKyAgICBTdHJpbmcgbV9jdXJyZW50U3R5bGVT
aGVldDsKICAgICAKICAgICBXZWJWVFRQYXJzZXJDbGllbnQqIG1fY2xpZW50OwogCiAgICAgVmVj
dG9yPFJlZlB0cjxXZWJWVFRDdWVEYXRhPj4gbV9jdWVsaXN0OwogICAgIFZlY3RvcjxSZWZQdHI8
VlRUUmVnaW9uPj4gbV9yZWdpb25MaXN0OworICAgIFZlY3RvcjxTdHJpbmc+IG1fc3R5bGVTaGVl
dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAkocmV2aXNpb24gMjM2OTE0KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw2
ICsxNzQsMTEgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6Om5ld1JlZ2lvbnNQYXJzZWQoKQogICAg
IG1fY2xpZW50Lm5ld1JlZ2lvbnNBdmFpbGFibGUodGhpcyk7CiB9CiAKK3ZvaWQgVGV4dFRyYWNr
TG9hZGVyOjpuZXdTdHlsZVNoZWV0c1BhcnNlZCgpCit7CisgICAgbV9jbGllbnQubmV3U3R5bGVT
aGVldHNBdmFpbGFibGUodGhpcyk7Cit9CisKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFp
bGVkVG9QYXJzZSgpCiB7CiAgICAgTE9HKE1lZGlhLCAiVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFp
bGVkVG9QYXJzZSIpOwpAQCAtMjA1LDYgKzIxMCwxNCBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6
Z2V0TmV3UmVnaW9ucyhWZWN0CiAgICAgICAgIG1fY3VlUGFyc2VyLT5nZXROZXdSZWdpb25zKG91
dHB1dFJlZ2lvbnMpOwogfQogCitWZWN0b3I8U3RyaW5nPiBUZXh0VHJhY2tMb2FkZXI6OmdldE5l
d1N0eWxlU2hlZXRzKCkKK3sKKyAgICBBU1NFUlQobV9jdWVQYXJzZXIpOworICAgIGlmIChtX2N1
ZVBhcnNlcikKKyAgICAgICAgcmV0dXJuIG1fY3VlUGFyc2VyLT5nZXRTdHlsZVNoZWV0cygpOwor
ICAgIHJldHVybiB7IH07Cit9CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RleHRUcmFja0xvYWRlci5oCShyZXZpc2lvbiAyMzY5MTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzQXZhaWxhYmxlKFRleHRUcmFja0xv
YWRlciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3VlTG9hZGluZ0NvbXBsZXRlZChUZXh0VHJh
Y2tMb2FkZXIqLCBib29sIGxvYWRpbmdGYWlsZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbmV3
UmVnaW9uc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IG5ld1N0eWxlU2hlZXRzQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciopID0gMDsKIH07CiAKIGNs
YXNzIFRleHRUcmFja0xvYWRlciA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCwgcHJpdmF0
ZSBXZWJWVFRQYXJzZXJDbGllbnQgewpAQCAtNjAsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjYW5jZWxMb2FkKCk7CiAgICAgdm9pZCBnZXROZXdDdWVzKFZlY3RvcjxSZWZQdHI8VGV4dFRy
YWNrQ3VlPj4mIG91dHB1dEN1ZXMpOwogICAgIHZvaWQgZ2V0TmV3UmVnaW9ucyhWZWN0b3I8UmVm
UHRyPFZUVFJlZ2lvbj4+JiBvdXRwdXRSZWdpb25zKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBnZXRO
ZXdTdHlsZVNoZWV0cygpOwogcHJpdmF0ZToKIAogICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50
CkBAIC02OSw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViVlRUUGFyc2VyQ2xpZW50CiAg
ICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBuZXdSZWdpb25zUGFy
c2VkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBuZXdTdHlsZVNoZWV0c1BhcnNlZCgpIG92ZXJyaWRl
OwogICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2UoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcHJv
Y2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAko
cmV2aXNpb24gMjM2OTE0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQxNSw2ICsyNDE1LDE4IEBAIHZvaWQgUGFnZTo6YWNjZXNzaWJpbGl0eVNl
dHRpbmdzRGlkQ2hhbmcKICAgICB9CiB9CiAKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiBQYWdlOjp3ZWJWVFRTdHlsZVNoZWV0cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
d2ViVlRUU3R5bGVTaGVldHM7Cit9CisgICAgCit2b2lkIFBhZ2U6OmFkZFdlYlZUVFN0eWxlU2hl
ZXQoY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0KQoreworICAgIGlmICghbV93ZWJWVFRTdHlsZVNo
ZWV0cykKKyAgICAgICAgbV93ZWJWVFRTdHlsZVNoZWV0cyA9IFZlY3RvcjxTdHJpbmc+KCk7Cisg
ICAgbV93ZWJWVFRTdHlsZVNoZWV0cy0+YXBwZW5kKHN0eWxlU2hlZXQpOworfQorCiB2b2lkIFBh
Z2U6OnNldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYgaW5z
ZXRzKQogewogICAgIGlmIChtX3Vub2JzY3VyZWRTYWZlQXJlYUluc2V0cyA9PSBpbnNldHMpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjM2OTE0KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzNyw2ICs2MzcsOSBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGNhcHRpb25Vc2VyUHJlZmVyZW5jZXNTdHlsZVNoZWV0KCk7CiAgICAgdm9pZCBzZXRD
YXB0aW9uVXNlclByZWZlcmVuY2VzU3R5bGVTaGVldChjb25zdCBTdHJpbmcmKTsKIAorICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiB3ZWJWVFRTdHlsZVNoZWV0cygpIGNv
bnN0OworICAgIHZvaWQgYWRkV2ViVlRUU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHN0eWxlU2hl
ZXQpOworICAgIAogICAgIGJvb2wgaXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgfHwgbV9yZXNvdXJjZUNhY2hpbmdEaXNh
YmxlZE92ZXJyaWRlOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29s
IGRpc2FibGVkKSB7IG1fcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgPSBkaXNhYmxlZDsgfQogCkBA
IC04MDAsNiArODAzLDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHRpbWVfdCBtX3VzZXJTdHls
ZVNoZWV0TW9kaWZpY2F0aW9uVGltZSB7IDAgfTsKIAogICAgIFN0cmluZyBtX2NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNTdHlsZVNoZWV0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+
IG1fd2ViVlRUU3R5bGVTaGVldHM7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUdyb3VwPiBt
X3NpbmdsZVBhZ2VHcm91cDsKICAgICBQYWdlR3JvdXAqIG1fZ3JvdXAgeyBudWxscHRyIH07Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzY5MTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0xMC0wOCAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlZUVF0gU3VwcG9ydCBpbmxpbmUgV2Vi
VlRUIHN0eWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkwMzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBtZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY3NzLXN0eWxpbmcudnR0OiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvbm8tY3NzLXN0eWxpbmcudnR0
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtY3NzLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1jc3MuaHRtbDogQWRk
ZWQuCisKIDIwMTgtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIGNvbnN0cnVjdG9yIG9mIFdJLlJlc291cmNl
CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtY3NzLWV4cGVjdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy1l
eHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWN1ZS1jc3MtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0PnZh
ciByZXF1aXJlUGl4ZWxEdW1wID0gdHJ1ZTs8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vdmlkZW8t
dGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtY29udHJvbHMu
anM+PC9zY3JpcHQ+CisKKyAgICAgICAgPHN0eWxlPgorICAgICAgICB2aWRlbzo6Y3VlIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIGRp
bWdyYXksIGxpZ2h0Z3JheSk7CisgICAgICAgIH0KKyAgICAgICAgdmlkZW86OmN1ZShiKSB7Cisg
ICAgICAgICAgICBjb2xvcjogcmVkOworICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OworICAg
ICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0
aW9uIHNlZWtlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiVGVzdCB0aGF0IENTUyBpbiBWVFQgZmlsZSBpcyBhcHBsaWVkIGNvcnJlY3Rs
eS4iKTsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZpZGVv
LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVzdCcpOworICAgICAg
ICAgICAgd2FpdEZvckV2ZW50KCdzZWVrZWQnLCBzZWVrZWQpOworICAgICAgICAgICAgd2FpdEZv
ckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgeyB2aWRlby5jdXJyZW50VGltZSA9
IC41OyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHNldENhcHRpb25EaXNwbGF5TW9kZSgnQXV0
b21hdGljJyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxv
YWQ9ImxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDBweDsgdG9wOiAwcHg7IiBjb250cm9scyA+CisgICAgICAgICAgICA8dHJhY2sgc3Jj
PSJjYXB0aW9ucy13ZWJ2dHQvbm8tY3NzLXN0eWxpbmcudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVm
YXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtY3NzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1jc3MuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0PnZhciByZXF1aXJlUGl4ZWxEdW1wID0gdHJ1ZTs8L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Li4vbWVkaWEtY29udHJvbHMuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
IGZ1bmN0aW9uIHNlZWtlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IENTUyBpbiBWVFQgZmlsZSBpcyBhcHBsaWVkIGNv
cnJlY3RseS4iKTsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAg
IHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVzdCcpOwor
ICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdzZWVrZWQnLCBzZWVrZWQpOworICAgICAgICAgICAg
d2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgeyB2aWRlby5jdXJyZW50
VGltZSA9IC41OyB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHNldENhcHRpb25EaXNwbGF5TW9k
ZSgnQXV0b21hdGljJyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eSBvbmxvYWQ9ImxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7IiBjb250cm9scyA+CisgICAgICAgICAgICA8dHJh
Y2sgc3JjPSJjYXB0aW9ucy13ZWJ2dHQvY3NzLXN0eWxpbmcudnR0IiBraW5kPSJjYXB0aW9ucyIg
ZGVmYXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY3NzLXN0eWxpbmcudnR0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jc3Mt
c3R5bGluZy52dHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2Fw
dGlvbnMtd2VidnR0L2Nzcy1zdHlsaW5nLnZ0dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIx
IEBACitXRUJWVFQKKworU1RZTEUKK3ZpZGVvOjpjdWUgeworYmFja2dyb3VuZC1pbWFnZTogbGlu
ZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgZGltZ3JheSwgbGlnaHRncmF5KTsKK30KKy8qIFN0eWxl
IGJsb2NrcyBjYW5ub3QgdXNlIGJsYW5rIGxpbmVzIG5vciAiZGFzaCBkYXNoIGdyZWF0ZXIgdGhh
biIgKi8KKworTk9URSBjb21tZW50IGJsb2NrcyBjYW4gYmUgdXNlZCBiZXR3ZWVuIHN0eWxlIGJs
b2Nrcy4KKworU1RZTEUKK3ZpZGVvOjpjdWUoYikgeworY29sb3I6IHJlZDsKK2ZvbnQtc2l6ZTog
MTVweDsKK30KKworaGVsbG8KKzAwOjAwOjAwLjAwMCAtLT4gMDA6MDA6MTAuMDAwIGFsaWduOmxl
ZnQKKzxiPkhlbGxvPC9iPi4KKworTk9URSBzdHlsZSBibG9ja3MgY2Fubm90IGFwcGVhciBhZnRl
ciB0aGUgZmlyc3QgY3VlLgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMt
d2VidnR0L25vLWNzcy1zdHlsaW5nLnZ0dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRp
YS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvbm8tY3NzLXN0eWxpbmcudnR0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9uby1jc3Mtc3R5bGlu
Zy52dHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitXRUJWVFQKKworaGVsbG8KKzAw
OjAwOjAwLjAwMCAtLT4gMDA6MDA6MTAuMDAwIGFsaWduOmxlZnQKKzxiPkhlbGxvPC9iPi4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352345</attachid>
            <date>2018-10-15 10:48:28 -0700</date>
            <delta_ts>2018-10-15 13:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190369-20181015104827.patch</filename>
            <type>text/plain</type>
            <size>18917</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzEyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTEwLTE1ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViVlRUXSBTdXBwb3J0
IGlubGluZSBXZWJWVFQgc3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgaW5saW5lIFdlYlZUVCBzdHlsZXMsIHNlZSBo
dHRwczovL3czYy5naXRodWIuaW8vd2VidnR0LyNzdHlsaW5nLiBUaGUgcGFyc2VkCisgICAgICAg
IHN0eWxlIHN0cmluZ3MgZnJvbSB0aGUgVlRUIGZpbGUgYXJlIGFkZGVkIHRvIGFuIG9wdGlvbmFs
IHZlY3RvciBvZiBzdHlsZSBzdHJpbmdzIGluIHRoZQorICAgICAgICBUZXh0VHJhY2sgY2xhc3Mu
IFRoZXNlIHN0eWxlcyBhcmUgdGhlbiBhZGRlZCBhcyBIVE1MU3R5bGVFbGVtZW50IGNoaWxkcmVu
IHRvIHRoZSBwYXJlbnQgb2YKKyAgICAgICAgdGhlIGN1ZSBzcGFuIGVsZW1lbnQuCisKKyAgICAg
ICAgVGVzdDogbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy5odG1sCisKKyAgICAgICAgKiBodG1s
L3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6bmV3U3R5bGVTaGVldHNQYXJzZWQpOgorICAgICAgICAqIGh0
bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2sv
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdlYlZU
VFRleHRUcmFjazo6bmV3U3R5bGVTaGVldHNQYXJzZWQpOgorICAgICAgICAqIGh0bWwvdHJhY2sv
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9Mb2FkYWJsZVRl
eHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZVRleHRUcmFjazo6bmV3U3R5
bGVTaGVldHNBdmFpbGFibGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJh
Y2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrOjpzdHlsZVNoZWV0cyBjb25zdCk6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjpnZXREaXNwbGF5VHJlZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViVlRUUGFyc2VyOjpnZXROZXdDdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNl
cjo6Z2V0U3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNvbGxlY3RXZWJWVFRCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNvbGxlY3RTdHlsZVNoZWV0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y2hlY2tTdHlsZVNoZWV0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y2hlY2tBbmRTdG9yZVN0eWxlU2hlZXQpOgorICAgICAg
ICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmg6CisgICAgICAgICogbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6Om5ld1N0eWxl
U2hlZXRzUGFyc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6Z2V0TmV3
U3R5bGVTaGVldHMpOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuaDoKKwogMjAx
OC0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDaGFuZ2luZyB2aWV3IHNjYWxlIHNob3VsZCB6b29tIHRvIGluaXRpYWwgc2NhbGUgaWYgdGhl
IHBhZ2UgaXMgYWxyZWFkeSBhdCBpbml0aWFsIHNjYWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAJKHJldmlzaW9u
IDIzNzEyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRU
cmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw2ICsyMTUsMTAgQEAgdm9pZCBJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjpuZXdSZWdpb25zUAogICAgIH0KIH0KIAordm9pZCBJbmJhbmRHZW5l
cmljVGV4dFRyYWNrOjpuZXdTdHlsZVNoZWV0c1BhcnNlZCgpCit7Cit9CisKIHZvaWQgSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6ZmlsZUZhaWxlZFRvUGFyc2UoKQogewogICAgIEVSUk9SX0xPRyhM
T0dJREVOVElGSUVSKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCShyZXZpc2lvbiAyMzcxMjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAkod29ya2luZyBjb3B5KQpA
QCAtNzIsNiArNzIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmlu
YWw7CiAgICAgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBuZXdTdHls
ZVNoZWV0c1BhcnNlZCgpIGZpbmFsOwogICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2UoKSBmaW5h
bDsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAkocmV2aXNpb24gMjM3
MTIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5MiwxMCBAQCB2b2lkIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6bmV3UmVnaW9uc1BhCiAgICAgfQogfQogCit2b2lkIEluYmFuZFdlYlZUVFRleHRU
cmFjazo6bmV3U3R5bGVTaGVldHNQYXJzZWQoKQoreworfQorCiB2b2lkIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6ZmlsZUZhaWxlZFRvUGFyc2UoKQogewogICAgIEVSUk9SX0xPRyhMT0dJREVOVElG
SUVSLCAiRXJyb3IgcGFyc2luZyBXZWJWVFQgc3RyZWFtLiIpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCShyZXZpc2lvbiAy
MzcxMjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFj
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKICAgICB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5h
bDsKKyAgICB2b2lkIG5ld1N0eWxlU2hlZXRzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBmaWxl
RmFpbGVkVG9QYXJzZSgpIGZpbmFsOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAko
cmV2aXNpb24gMjM3MTIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRl
eHRUcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsMTIgQEAgdm9pZCBMb2Fk
YWJsZVRleHRUcmFjazo6bmV3UmVnaW9uc0F2YWlsYQogICAgIH0KIH0KIAordm9pZCBMb2FkYWJs
ZVRleHRUcmFjazo6bmV3U3R5bGVTaGVldHNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyJiBsb2Fk
ZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRChsb2FkZXIsIG1fbG9hZGVyLmdldCgpID09ICZsb2Fk
ZXIpOworICAgIG1fc3R5bGVTaGVldHMgPSBtX2xvYWRlci0+Z2V0TmV3U3R5bGVTaGVldHMoKTsK
K30KKwogQXRvbWljU3RyaW5nIExvYWRhYmxlVGV4dFRyYWNrOjppZCgpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX3RyYWNrRWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9h
ZGFibGVUZXh0VHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0xvYWRhYmxlVGV4dFRyYWNrLmgJKHJldmlzaW9uIDIzNzEyMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiAr
NTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2Fk
ZXIqKSBmaW5hbDsKICAgICB2b2lkIGN1ZUxvYWRpbmdDb21wbGV0ZWQoVGV4dFRyYWNrTG9hZGVy
KiwgYm9vbCBsb2FkaW5nRmFpbGVkKSBmaW5hbDsKICAgICB2b2lkIG5ld1JlZ2lvbnNBdmFpbGFi
bGUoVGV4dFRyYWNrTG9hZGVyKikgZmluYWw7CisgICAgdm9pZCBuZXdTdHlsZVNoZWV0c0F2YWls
YWJsZShUZXh0VHJhY2tMb2FkZXImKSBmaW5hbDsKIAogICAgIEF0b21pY1N0cmluZyBpZCgpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgaXNEZWZhdWx0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9p
c0RlZmF1bHQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAkocmV2
aXNpb24gMjM3MTIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZD
b3VudGVkPFRyYWNrQmFzZT46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFRyYWNrQmFzZT46
OmRlcmVmOwogCisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIHN0eWxl
U2hlZXRzKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNoZWV0czsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBj
b25zdCBBdG9taWNTdHJpbmcmIGtpbmQsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IEF0
b21pY1N0cmluZyYgbGFiZWwsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UsIFRleHRUcmFj
a1R5cGUpOwogCkBAIC0xNTIsNiArMTU0LDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICBS
ZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gbV9jdWVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+IG1fc3R5bGVTaGVldHM7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBlbmFibGVkKCkg
Y29uc3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCShy
ZXZpc2lvbiAyMzcxMjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNwYW5FbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUmVuZGVyVlRUQ3VlLmgiCkBAIC04OTMs
NiArODk0LDE1IEBAIFZUVEN1ZUJveCYgVlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCAKICAg
ICBkaXNwbGF5VHJlZS0+c2V0Rm9udFNpemVGcm9tQ2FwdGlvblVzZXJQcmVmcyhmb250U2l6ZSk7
CiAgICAgZGlzcGxheVRyZWUtPmFwcGx5Q1NTUHJvcGVydGllcyh2aWRlb1NpemUpOwogCisgICAg
Y29uc3QgYXV0byYgc3R5bGVTaGVldHMgPSB0cmFjaygpLT5zdHlsZVNoZWV0cygpOworICAgIGlm
IChzdHlsZVNoZWV0cykgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNzc1N0cmluZyA6ICpz
dHlsZVNoZWV0cykgeworICAgICAgICAgICAgYXV0byBzdHlsZSA9IEhUTUxTdHlsZUVsZW1lbnQ6
OmNyZWF0ZShIVE1MTmFtZXM6OnN0eWxlVGFnLCBtX2N1ZUJhY2tkcm9wQm94LT5kb2N1bWVudCgp
LCBmYWxzZSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0VGV4dENvbnRlbnQoY3NzU3RyaW5nKTsK
KyAgICAgICAgICAgIG1fY3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICAg
ICAgfQorICAgIH0KKwogICAgIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2UgPSBmYWxzZTsKIAog
ICAgIC8vIDEwLjE1LiBMZXQgY3VlJ3MgdGV4dCB0cmFjayBjdWUgZGlzcGxheSBzdGF0ZSBoYXZl
IHRoZSBDU1MgYm94ZXMgaW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VFBhcnNlci5jcHAJKHJldmlzaW9uIDIzNzEyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svV2ViVlRUUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBjb25z
dCBkb3VibGUgc2Vjb25kc1Blck1pbGxpc2Vjb25kID0gMC4wCiBjb25zdCBjaGFyKiBmaWxlSWRl
bnRpZmllciA9ICJXRUJWVFQiOwogY29uc3QgdW5zaWduZWQgZmlsZUlkZW50aWZpZXJMZW5ndGgg
PSA2OwogY29uc3QgdW5zaWduZWQgcmVnaW9uSWRlbnRpZmllckxlbmd0aCA9IDY7Citjb25zdCB1
bnNpZ25lZCBzdHlsZUlkZW50aWZpZXJMZW5ndGggPSA1OwogCiBib29sIFdlYlZUVFBhcnNlcjo6
cGFyc2VGbG9hdFBlcmNlbnRhZ2VWYWx1ZShWVFRTY2FubmVyJiB2YWx1ZVNjYW5uZXIsIGZsb2F0
JiBwZXJjZW50YWdlKQogewpAQCAtOTYsOCArOTcsNyBAQCBXZWJWVFRQYXJzZXI6OldlYlZUVFBh
cnNlcihXZWJWVFRQYXJzZXJDCiAKIHZvaWQgV2ViVlRUUGFyc2VyOjpnZXROZXdDdWVzKFZlY3Rv
cjxSZWZQdHI8V2ViVlRUQ3VlRGF0YT4+JiBvdXRwdXRDdWVzKQogewotICAgIG91dHB1dEN1ZXMg
PSBtX2N1ZWxpc3Q7Ci0gICAgbV9jdWVsaXN0LmNsZWFyKCk7CisgICAgb3V0cHV0Q3VlcyA9IFdU
Rk1vdmUobV9jdWVsaXN0KTsKIH0KIAogdm9pZCBXZWJWVFRQYXJzZXI6OmdldE5ld1JlZ2lvbnMo
VmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiYgb3V0cHV0UmVnaW9ucykKQEAgLTEwNSw2ICsxMDUs
MTEgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OmdldE5ld1JlZ2lvbnMoVmVjdG9yPAogICAgIG91dHB1
dFJlZ2lvbnMgPSBXVEZNb3ZlKG1fcmVnaW9uTGlzdCk7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IFdl
YlZUVFBhcnNlcjo6Z2V0U3R5bGVTaGVldHMoKQoreworICAgIHJldHVybiBXVEZNb3ZlKG1fc3R5
bGVTaGVldHMpOworfQorCiB2b2lkIFdlYlZUVFBhcnNlcjo6cGFyc2VGaWxlSGVhZGVyKFN0cmlu
ZyYmIGRhdGEpCiB7CiAgICAgbV9zdGF0ZSA9IEluaXRpYWw7CkBAIC0xNzQsNiArMTc5LDEwIEBA
IHZvaWQgV2ViVlRUUGFyc2VyOjpwYXJzZSgpCiAgICAgICAgICAgICBtX3N0YXRlID0gY29sbGVj
dFJlZ2lvblNldHRpbmdzKCpsaW5lKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNh
c2UgU3R5bGU6CisgICAgICAgICAgICBtX3N0YXRlID0gY29sbGVjdFN0eWxlU2hlZXQoKmxpbmUp
OworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBJZDoKICAgICAgICAgICAgIC8v
IFN0ZXBzIDE3IC0gMjAgLSBBbGxvdyBhbnkgbnVtYmVyIG9mIGxpbmUgdGVybWluYXRvcnMsIHRo
ZW4gaW5pdGlhbGl6ZSBuZXcgY3VlIHZhbHVlcy4KICAgICAgICAgICAgIGlmIChsaW5lLT5pc0Vt
cHR5KCkpCkBAIC0yNTgsMTEgKzI2NywxOCBAQCBXZWJWVFRQYXJzZXI6OlBhcnNlU3RhdGUgV2Vi
VlRUUGFyc2VyOjpjCiAgICAgaWYgKGNoZWNrQW5kQ3JlYXRlUmVnaW9uKGxpbmUpKQogICAgICAg
ICByZXR1cm4gUmVnaW9uOwogICAgIAorICAgIGlmIChjaGVja1N0eWxlU2hlZXQobGluZSkpCisg
ICAgICAgIHJldHVybiBTdHlsZTsKKwogICAgIC8vIEhhbmRsZSBjdWUgYmxvY2suCiAgICAgUGFy
c2VTdGF0ZSBzdGF0ZSA9IGNoZWNrQW5kUmVjb3ZlckN1ZShsaW5lKTsKICAgICBpZiAoc3RhdGUg
IT0gSGVhZGVyKSB7Ci0gICAgICAgIGlmIChtX2NsaWVudCAmJiAhbV9yZWdpb25MaXN0LmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIG1fY2xpZW50LT5uZXdSZWdpb25zUGFyc2VkKCk7CisgICAgICAg
IGlmIChtX2NsaWVudCkgeworICAgICAgICAgICAgaWYgKCFtX3JlZ2lvbkxpc3QuaXNFbXB0eSgp
KQorICAgICAgICAgICAgICAgIG1fY2xpZW50LT5uZXdSZWdpb25zUGFyc2VkKCk7CisgICAgICAg
ICAgICBpZiAoIW1fc3R5bGVTaGVldHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIG1fY2xp
ZW50LT5uZXdTdHlsZVNoZWV0c1BhcnNlZCgpOworICAgICAgICB9CiAgICAgICAgIGlmICghbV9w
cmV2aW91c0xpbmUuaXNFbXB0eSgpICYmICFtX3ByZXZpb3VzTGluZS5jb250YWlucygiLS0+Iikp
CiAgICAgICAgICAgICBtX2N1cnJlbnRJZCA9IG1fcHJldmlvdXNMaW5lOwogICAgICAgICAKQEAg
LTI5MCw2ICszMDYsMTYgQEAgV2ViVlRUUGFyc2VyOjpQYXJzZVN0YXRlIFdlYlZUVFBhcnNlcjo6
YwogICAgIHJldHVybiBIZWFkZXI7CiB9CiAKK1dlYlZUVFBhcnNlcjo6UGFyc2VTdGF0ZSBXZWJW
VFRQYXJzZXI6OmNvbGxlY3RTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgbGluZSkKK3sKKyAgICAv
LyBFbmQgb2Ygc3R5bGUgYmxvY2sKKyAgICBpZiAoY2hlY2tBbmRTdG9yZVN0eWxlU2hlZXQobGlu
ZSkpCisgICAgICAgIHJldHVybiBjaGVja0FuZFJlY292ZXJDdWUobGluZSk7CisKKyAgICBtX2N1
cnJlbnRTdHlsZVNoZWV0LmFwcGVuZChsaW5lKTsKKyAgICByZXR1cm4gU3R5bGU7Cit9CisKIGJv
b2wgV2ViVlRUUGFyc2VyOjpjaGVja0FuZENyZWF0ZVJlZ2lvbihjb25zdCBTdHJpbmcmIGxpbmUp
CiB7CiAgICAgaWYgKG1fcHJldmlvdXNMaW5lLmNvbnRhaW5zKCItLT4iKSkKQEAgLTMyMyw3ICsz
NDksMjkgQEAgYm9vbCBXZWJWVFRQYXJzZXI6OmNoZWNrQW5kU3RvcmVSZWdpb24oYwogICAgIG1f
Y3VycmVudFJlZ2lvbiA9IG51bGxwdHI7CiAgICAgcmV0dXJuIHRydWU7CiB9CisKK2Jvb2wgV2Vi
VlRUUGFyc2VyOjpjaGVja1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBsaW5lKQoreworICAgIGlm
IChtX3ByZXZpb3VzTGluZS5jb250YWlucygiLS0+IikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAvLyBsaW5lIHN0YXJ0cyB3aXRoIHRoZSBzdWJzdHJpbmcgIlNUWUxFIiBhbmQgcmVtYWlu
aW5nIGNoYXJhY3RlcnMKKyAgICAvLyB6ZXJvIG9yIG1vcmUgVSswMDIwIFNQQUNFIGNoYXJhY3Rl
cnMgb3IgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OCisgICAgLy8gKHRhYikgY2hhcmFjdGVy
cyBleHBlY3RlZCBvdGhlciB0aGFuIHRoZXNlIGNoYXJlY3RlcnMgaXQgaXMgaW52YWxpZC4KKyAg
ICBpZiAobGluZS5zdGFydHNXaXRoKCJTVFlMRSIpICYmIGxpbmUuc3Vic3RyaW5nKHN0eWxlSWRl
bnRpZmllckxlbmd0aCkuaXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc0FTcGFjZT4oKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViVlRUUGFy
c2VyOjpjaGVja0FuZFN0b3JlU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGxpbmUpCit7CisgICAg
aWYgKCFsaW5lLmlzRW1wdHkoKSAmJiAhbGluZS5jb250YWlucygiLS0+IikpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKKyAgICBtX3N0eWxlU2hlZXRzLmFwcGVuZChXVEZNb3ZlKG1fY3Vy
cmVudFN0eWxlU2hlZXQpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogV2ViVlRUUGFyc2VyOjpQ
YXJzZVN0YXRlIFdlYlZUVFBhcnNlcjo6Y29sbGVjdEN1ZUlkKGNvbnN0IFN0cmluZyYgbGluZSkK
IHsKICAgICBpZiAobGluZS5jb250YWlucygiLS0+IikpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgJKHJldmlzaW9uIDIzNzEyMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IG5ld1N0eWxlU2hlZXRzUGFyc2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaWxlRmFpbGVk
VG9QYXJzZSgpID0gMDsKIH07CiAKQEAgLTEwNCw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWluZ3NBbmRTZXR0aW5ncywKICAgICAgICAgQ3VlVGV4dCwKICAgICAgICAgUmVnaW9uLAor
ICAgICAgICBTdHlsZSwKICAgICAgICAgQmFkQ3VlLAogICAgICAgICBGaW5pc2hlZAogICAgIH07
CkBAIC0xNTAsNiArMTUyLDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0TmV3Q3VlcyhWZWN0b3I8
UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiYpOwogICAgIHZvaWQgZ2V0TmV3UmVnaW9ucyhWZWN0b3I8
UmVmUHRyPFZUVFJlZ2lvbj4+Jik7CiAKKyAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdHlsZVNoZWV0
cygpOworICAgIAogICAgIC8vIENyZWF0ZSB0aGUgRG9jdW1lbnRGcmFnbWVudCByZXByZXNlbnRh
dGlvbiBvZiB0aGUgV2ViVlRUIGN1ZSB0ZXh0LgogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnRGcmFn
bWVudD4gY3JlYXRlRG9jdW1lbnRGcmFnbWVudEZyb21DdWVUZXh0KERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJik7CiAKQEAgLTE2OSw5ICsxNzMsMTIgQEAgcHJpdmF0ZToKICAgICBQYXJzZVN0YXRl
IGNvbGxlY3RSZWdpb25TZXR0aW5ncyhjb25zdCBTdHJpbmcmKTsKICAgICBQYXJzZVN0YXRlIGNv
bGxlY3RXZWJWVFRCbG9jayhjb25zdCBTdHJpbmcmKTsKICAgICBQYXJzZVN0YXRlIGNoZWNrQW5k
UmVjb3ZlckN1ZShjb25zdCBTdHJpbmcmIGxpbmUpOworICAgIFBhcnNlU3RhdGUgY29sbGVjdFN0
eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBsaW5lKTsKICAgICBib29sIGNoZWNrQW5kQ3JlYXRlUmVn
aW9uKGNvbnN0IFN0cmluZyYgbGluZSk7CiAgICAgYm9vbCBjaGVja0FuZFN0b3JlUmVnaW9uKGNv
bnN0IFN0cmluZyYgbGluZSk7Ci0gICAgCisgICAgYm9vbCBjaGVja1N0eWxlU2hlZXQoY29uc3Qg
U3RyaW5nJiBsaW5lKTsKKyAgICBib29sIGNoZWNrQW5kU3RvcmVTdHlsZVNoZWV0KGNvbnN0IFN0
cmluZyYgbGluZSk7CisKICAgICB2b2lkIGNyZWF0ZU5ld0N1ZSgpOwogICAgIHZvaWQgcmVzZXRD
dWVWYWx1ZXMoKTsKIApAQCAtMTg2LDExICsxOTMsMTMgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9wcmV2aW91c0xpbmU7CiAgICAgU3RyaW5nIG1fY3VycmVudFNldHRpbmdzOwogICAgIFJlZlB0
cjxWVFRSZWdpb24+IG1fY3VycmVudFJlZ2lvbjsKKyAgICBTdHJpbmcgbV9jdXJyZW50U3R5bGVT
aGVldDsKICAgICAKICAgICBXZWJWVFRQYXJzZXJDbGllbnQqIG1fY2xpZW50OwogCiAgICAgVmVj
dG9yPFJlZlB0cjxXZWJWVFRDdWVEYXRhPj4gbV9jdWVsaXN0OwogICAgIFZlY3RvcjxSZWZQdHI8
VlRUUmVnaW9uPj4gbV9yZWdpb25MaXN0OworICAgIFZlY3RvcjxTdHJpbmc+IG1fc3R5bGVTaGVl
dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAkocmV2aXNpb24gMjM3MTIwKQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw2
ICsxODEsMTEgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6Om5ld1JlZ2lvbnNQYXJzZWQoKQogICAg
IG1fY2xpZW50Lm5ld1JlZ2lvbnNBdmFpbGFibGUodGhpcyk7CiB9CiAKK3ZvaWQgVGV4dFRyYWNr
TG9hZGVyOjpuZXdTdHlsZVNoZWV0c1BhcnNlZCgpCit7CisgICAgbV9jbGllbnQubmV3U3R5bGVT
aGVldHNBdmFpbGFibGUoKnRoaXMpOworfQorCiB2b2lkIFRleHRUcmFja0xvYWRlcjo6ZmlsZUZh
aWxlZFRvUGFyc2UoKQogewogICAgIExPRyhNZWRpYSwgIlRleHRUcmFja0xvYWRlcjo6ZmlsZUZh
aWxlZFRvUGFyc2UiKTsKQEAgLTIxMiw2ICsyMTcsMTQgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6
OmdldE5ld1JlZ2lvbnMoVmVjdAogICAgICAgICBtX2N1ZVBhcnNlci0+Z2V0TmV3UmVnaW9ucyhv
dXRwdXRSZWdpb25zKTsKIH0KIAorVmVjdG9yPFN0cmluZz4gVGV4dFRyYWNrTG9hZGVyOjpnZXRO
ZXdTdHlsZVNoZWV0cygpCit7CisgICAgQVNTRVJUKG1fY3VlUGFyc2VyKTsKKyAgICBpZiAobV9j
dWVQYXJzZXIpCisgICAgICAgIHJldHVybiBtX2N1ZVBhcnNlci0+Z2V0U3R5bGVTaGVldHMoKTsK
KyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmgJKHJldmlzaW9uIDIzNzEyMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNBdmFpbGFi
bGUoVGV4dFRyYWNrTG9hZGVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjdWVMb2FkaW5nQ29t
cGxldGVkKFRleHRUcmFja0xvYWRlciosIGJvb2wgbG9hZGluZ0ZhaWxlZCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgbmV3U3R5bGVTaGVldHNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyJikg
PSAwOwogfTsKIAogY2xhc3MgVGV4dFRyYWNrTG9hZGVyIDogcHVibGljIENhY2hlZFJlc291cmNl
Q2xpZW50LCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CkBAIC02MSw2ICs2Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKICAgICB2b2lkIGdldE5ld0N1ZXMoVmVjdG9y
PFJlZlB0cjxUZXh0VHJhY2tDdWU+PiYgb3V0cHV0Q3Vlcyk7CiAgICAgdm9pZCBnZXROZXdSZWdp
b25zKFZlY3RvcjxSZWZQdHI8VlRUUmVnaW9uPj4mIG91dHB1dFJlZ2lvbnMpOworICAgIFZlY3Rv
cjxTdHJpbmc+IGdldE5ld1N0eWxlU2hlZXRzKCk7CiBwcml2YXRlOgogCiAgICAgLy8gQ2FjaGVk
UmVzb3VyY2VDbGllbnQKQEAgLTcwLDYgKzcyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJWVFRQ
YXJzZXJDbGllbnQKICAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBvdmVycmlkZTsKICAgICB2b2lk
IG5ld1JlZ2lvbnNQYXJzZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld1N0eWxlU2hlZXRzUGFy
c2VkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBwcm9jZXNzTmV3Q3VlRGF0YShDYWNoZWRSZXNvdXJjZSYpOwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjM3MTIwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTAtMTUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJWVFRdIFN1cHBvcnQgaW5saW5lIFdlYlZUVCBzdHls
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDM2
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVk
aWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L2Nzcy1zdHlsaW5nLnZ0dDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L25vLWNzcy1zdHlsaW5nLnZ0dDogQWRkZWQu
CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtY3NzLmh0bWw6IEFkZGVkLgorCiAy
MDE4LTEwLTE1ICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5j
b20+CiAKICAgICAgICAgW0NhaXJvXSBJbmNvcnJlY3QgcmVuZGVyaW5nIGZvciAxMzUtZGVnIHNr
ZXdzCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtY3NzLWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLWNz
cy1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNr
L3RyYWNrLWN1ZS1jc3MtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0
PnZhciByZXF1aXJlUGl4ZWxEdW1wID0gdHJ1ZTs8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vdmlk
ZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtY29udHJv
bHMuanM+PC9zY3JpcHQ+CisKKyAgICAgICAgPHN0eWxlPgorICAgICAgICB2aWRlbzo6Y3VlIHsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20s
IGRpbWdyYXksIGxpZ2h0Z3JheSk7CisgICAgICAgIH0KKyAgICAgICAgdmlkZW86OmN1ZShiKSB7
CisgICAgICAgICAgICBjb2xvcjogcmVkOworICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4Owor
ICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1
bmN0aW9uIGxvYWRlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVz
dCB0aGF0IENTUyBpbiBWVFQgZmlsZSBpcyBhcHBsaWVkIGNvcnJlY3RseS4iKTsKKyAgICAgICAg
ICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRp
YUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVzdCcpOworICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdzZWVrZWQnLCBlbmRUZXN0KTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxh
eXRocm91Z2gnLCBmdW5jdGlvbigpIHsgdmlkZW8uY3VycmVudFRpbWUgPSAuNTsgfSk7CisgICAg
ICAgIH0KKworICAgICAgICBzZXRDYXB0aW9uRGlzcGxheU1vZGUoJ0F1dG9tYXRpYycpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+
CisgICAgICAgIDx2aWRlbyBjb250cm9scyA+CisgICAgICAgICAgICA8dHJhY2sgc3JjPSJjYXB0
aW9ucy13ZWJ2dHQvbm8tY3NzLXN0eWxpbmcudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVmYXVsdD4K
KyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jdWUtY3NzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy5odG1sCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1jc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0PnZhciByZXF1aXJlUGl4ZWxEdW1wID0gdHJ1ZTs8L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVk
aWEtY29udHJvbHMuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0
aW9uIGxvYWRlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0
aGF0IENTUyBpbiBWVFQgZmlsZSBpcyBhcHBsaWVkIGNvcnJlY3RseS4iKTsKKyAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZp
bGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVzdCcpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50
KCdzZWVrZWQnLCBlbmRUZXN0KTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRo
cm91Z2gnLCBmdW5jdGlvbigpIHsgdmlkZW8uY3VycmVudFRpbWUgPSAuNTsgfSk7CisgICAgICAg
IH0KKworICAgICAgICBzZXRDYXB0aW9uRGlzcGxheU1vZGUoJ0F1dG9tYXRpYycpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJsb2FkZWQoKSI+Cisg
ICAgICAgIDx2aWRlbyBjb250cm9scyA+CisgICAgICAgICAgICA8dHJhY2sgc3JjPSJjYXB0aW9u
cy13ZWJ2dHQvY3NzLXN0eWxpbmcudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVmYXVsdD4KKyAgICAg
ICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY3NzLXN0eWxpbmcudnR0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jc3Mtc3R5bGluZy52dHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L2Nz
cy1zdHlsaW5nLnZ0dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitXRUJWVFQKKwor
U1RZTEUKKzo6Y3VlIHsKK2JhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0
b20sIGRpbWdyYXksIGxpZ2h0Z3JheSk7Cit9CisKK1NUWUxFCis6OmN1ZShiKSB7Citjb2xvcjog
cmVkOworZm9udC1zaXplOiAxNXB4OworfQorCitoZWxsbworMDA6MDA6MDAuMDAwIC0tPiAwMDow
MDoxMC4wMDAKKzxiPkhlbGxvPC9iPi4KSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL2Nh
cHRpb25zLXdlYnZ0dC9uby1jc3Mtc3R5bGluZy52dHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L25vLWNzcy1zdHlsaW5nLnZ0dAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvbm8tY3Nz
LXN0eWxpbmcudnR0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorV0VCVlRUCisKK2hl
bGxvCiswMDowMDowMC4wMDAgLS0+IDAwOjAwOjEwLjAwMAorPGI+SGVsbG88L2I+Lgo=
</data>
<flag name="review"
          id="369638"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352464</attachid>
            <date>2018-10-16 09:46:54 -0700</date>
            <delta_ts>2018-10-16 10:29:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190369-20181016094654.patch</filename>
            <type>text/plain</type>
            <size>18913</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzE4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTEwLTE2ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViVlRUXSBTdXBwb3J0
IGlubGluZSBXZWJWVFQgc3R5bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTAzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGlubGluZSBXZWJWVFQgc3R5bGVzLCBzZWUgaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnZ0dC8jc3R5bGluZy4gVGhlIHBhcnNlZAorICAgICAgICBz
dHlsZSBzdHJpbmdzIGZyb20gdGhlIFZUVCBmaWxlIGFyZSBhZGRlZCB0byBhbiBvcHRpb25hbCB2
ZWN0b3Igb2Ygc3R5bGUgc3RyaW5ncyBpbiB0aGUKKyAgICAgICAgVGV4dFRyYWNrIGNsYXNzLiBU
aGVzZSBzdHlsZXMgYXJlIHRoZW4gYWRkZWQgYXMgSFRNTFN0eWxlRWxlbWVudCBjaGlsZHJlbiB0
byB0aGUgcGFyZW50IG9mCisgICAgICAgIHRoZSBjdWUgc3BhbiBlbGVtZW50LgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1jc3MuaHRtbAorCisgICAgICAgICogaHRtbC90
cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6Om5ld1N0eWxlU2hlZXRzUGFyc2VkKToKKyAgICAgICAgKiBodG1s
L3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRXZWJWVFRU
ZXh0VHJhY2s6Om5ld1N0eWxlU2hlZXRzUGFyc2VkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svTG9hZGFibGVUZXh0
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVUZXh0VHJhY2s6Om5ld1N0eWxl
U2hlZXRzQXZhaWxhYmxlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNr
Lmg6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFjazo6c3R5bGVTaGVldHMgY29uc3QpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRU
Q3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZUVEN1ZTo6Z2V0RGlzcGxheVRyZWUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlZUVFBhcnNlcjo6Z2V0TmV3Q3Vlcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6
OmdldFN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb2xsZWN0V2ViVlRUQmxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb2xsZWN0U3R5bGVTaGVldCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNoZWNrU3R5bGVTaGVldCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNoZWNrQW5kU3RvcmVTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oOgorICAgICAgICAqIGxvYWRlci9UZXh0VHJhY2tM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpuZXdTdHlsZVNo
ZWV0c1BhcnNlZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmdldE5ld1N0
eWxlU2hlZXRzKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmg6CisKIDIwMTgt
MTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3aW5kb3cu
bmF2aWdhdG9yIHNob3VsZCBub3QgYmVjb21lIG51bGwgYWZ0ZXIgdGhlIHdpbmRvdyBsb3NlcyBp
dHMgYnJvd3NpbmcgY29udGV4dApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRHZW5lcmljVGV4dFRyYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCShyZXZpc2lvbiAyMzcxODUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1LDEwIEBAIHZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6bmV3UmVnaW9uc1AKICAgICB9CiB9CiAKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
bmV3U3R5bGVTaGVldHNQYXJzZWQoKQoreworfQorCiB2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJh
Y2s6OmZpbGVGYWlsZWRUb1BhcnNlKCkKIHsKICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2su
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNU
ZXh0VHJhY2suaAkocmV2aXNpb24gMjM3MTg1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIGZpbmFsOwogICAgIHZvaWQg
bmV3UmVnaW9uc1BhcnNlZCgpIGZpbmFsOworICAgIHZvaWQgbmV3U3R5bGVTaGVldHNQYXJzZWQo
KSBmaW5hbDsKICAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgZmluYWw7CiAKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
V2ViVlRUVGV4dFRyYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAJKHJldmlzaW9uIDIzNzE4NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTIsNiArOTIsMTAgQEAgdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld1Jl
Z2lvbnNQYQogICAgIH0KIH0KIAordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld1N0eWxl
U2hlZXRzUGFyc2VkKCkKK3sKK30KKwogdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZpbGVG
YWlsZWRUb1BhcnNlKCkKIHsKICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIkVycm9yIHBh
cnNpbmcgV2ViVlRUIHN0cmVhbS4iKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAkocmV2aXNpb24gMjM3MTg1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAkod29ya2luZyBj
b3B5KQpAQCAtNDcsNiArNDcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBuZXdDdWVzUGFyc2Vk
KCkgZmluYWw7CiAgICAgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBu
ZXdTdHlsZVNoZWV0c1BhcnNlZCgpIGZpbmFsOwogICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2Uo
KSBmaW5hbDsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAJKHJldmlzaW9uIDIzNzE4
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDEyIEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6
Om5ld1JlZ2lvbnNBdmFpbGEKICAgICB9CiB9CiAKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6Om5l
d1N0eWxlU2hlZXRzQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciYgbG9hZGVyKQoreworICAgIEFT
U0VSVF9VTlVTRUQobG9hZGVyLCBtX2xvYWRlci5nZXQoKSA9PSAmbG9hZGVyKTsKKyAgICBtX3N0
eWxlU2hlZXRzID0gbV9sb2FkZXItPmdldE5ld1N0eWxlU2hlZXRzKCk7Cit9CisKIEF0b21pY1N0
cmluZyBMb2FkYWJsZVRleHRUcmFjazo6aWQoKSBjb25zdAogewogICAgIGlmICghbV90cmFja0Vs
ZW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRU
cmFjay5oCShyZXZpc2lvbiAyMzcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xv
YWRhYmxlVGV4dFRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIG5ld0N1ZXNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyKikgZmluYWw7CiAg
ICAgdm9pZCBjdWVMb2FkaW5nQ29tcGxldGVkKFRleHRUcmFja0xvYWRlciosIGJvb2wgbG9hZGlu
Z0ZhaWxlZCkgZmluYWw7CiAgICAgdm9pZCBuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRUcmFja0xv
YWRlciopIGZpbmFsOworICAgIHZvaWQgbmV3U3R5bGVTaGVldHNBdmFpbGFibGUoVGV4dFRyYWNr
TG9hZGVyJikgZmluYWw7CiAKICAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIGlzRGVmYXVsdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNEZWZhdWx0OyB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgJKHJldmlzaW9uIDIzNzE4NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE0NCw2ICsxNDQsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxUcmFja0Jh
c2U+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxUcmFja0Jhc2U+OjpkZXJlZjsKIAorICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBzdHlsZVNoZWV0cygpIGNvbnN0
IHsgcmV0dXJuIG1fc3R5bGVTaGVldHM7IH0KKwogcHJvdGVjdGVkOgogICAgIFRleHRUcmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgY29uc3QgQXRvbWljU3Ry
aW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBBdG9taWNTdHJpbmcmIGxh
YmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlLCBUZXh0VHJhY2tUeXBlKTsKIApAQCAt
MTUyLDYgKzE1NCw3IEBAIHByb3RlY3RlZDoKICNlbmRpZgogCiAgICAgUmVmUHRyPFRleHRUcmFj
a0N1ZUxpc3Q+IG1fY3VlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBtX3N0
eWxlU2hlZXRzOwogCiBwcml2YXRlOgogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAkocmV2aXNpb24gMjM3MTg1
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MRGl2
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTcGFuRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxT
dHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZl
cnNhbC5oIgogI2luY2x1ZGUgIlJlbmRlclZUVEN1ZS5oIgpAQCAtODkzLDYgKzg5NCwxNSBAQCBW
VFRDdWVCb3gmIFZUVEN1ZTo6Z2V0RGlzcGxheVRyZWUoY29uc3QgCiAgICAgZGlzcGxheVRyZWUt
PnNldEZvbnRTaXplRnJvbUNhcHRpb25Vc2VyUHJlZnMoZm9udFNpemUpOwogICAgIGRpc3BsYXlU
cmVlLT5hcHBseUNTU1Byb3BlcnRpZXModmlkZW9TaXplKTsKIAorICAgIGNvbnN0IGF1dG8mIHN0
eWxlU2hlZXRzID0gdHJhY2soKS0+c3R5bGVTaGVldHMoKTsKKyAgICBpZiAoc3R5bGVTaGVldHMp
IHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjc3NTdHJpbmcgOiAqc3R5bGVTaGVldHMpIHsK
KyAgICAgICAgICAgIGF1dG8gc3R5bGUgPSBIVE1MU3R5bGVFbGVtZW50OjpjcmVhdGUoSFRNTE5h
bWVzOjpzdHlsZVRhZywgbV9jdWVCYWNrZHJvcEJveC0+ZG9jdW1lbnQoKSwgZmFsc2UpOworICAg
ICAgICAgICAgc3R5bGUtPnNldFRleHRDb250ZW50KGNzc1N0cmluZyk7CisgICAgICAgICAgICBt
X2N1ZUJhY2tkcm9wQm94LT5hcHBlbmRDaGlsZChzdHlsZSk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlID0gZmFsc2U7CiAKICAgICAvLyAxMC4xNS4g
TGV0IGN1ZSdzIHRleHQgdHJhY2sgY3VlIGRpc3BsYXkgc3RhdGUgaGF2ZSB0aGUgQ1NTIGJveGVz
IGluCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCShy
ZXZpc2lvbiAyMzcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgY29uc3QgZG91YmxlIHNlY29u
ZHNQZXJNaWxsaXNlY29uZCA9IDAuMAogY29uc3QgY2hhciogZmlsZUlkZW50aWZpZXIgPSAiV0VC
VlRUIjsKIGNvbnN0IHVuc2lnbmVkIGZpbGVJZGVudGlmaWVyTGVuZ3RoID0gNjsKIGNvbnN0IHVu
c2lnbmVkIHJlZ2lvbklkZW50aWZpZXJMZW5ndGggPSA2OworY29uc3QgdW5zaWduZWQgc3R5bGVJ
ZGVudGlmaWVyTGVuZ3RoID0gNTsKIAogYm9vbCBXZWJWVFRQYXJzZXI6OnBhcnNlRmxvYXRQZXJj
ZW50YWdlVmFsdWUoVlRUU2Nhbm5lciYgdmFsdWVTY2FubmVyLCBmbG9hdCYgcGVyY2VudGFnZSkK
IHsKQEAgLTk2LDggKzk3LDcgQEAgV2ViVlRUUGFyc2VyOjpXZWJWVFRQYXJzZXIoV2ViVlRUUGFy
c2VyQwogCiB2b2lkIFdlYlZUVFBhcnNlcjo6Z2V0TmV3Q3VlcyhWZWN0b3I8UmVmUHRyPFdlYlZU
VEN1ZURhdGE+PiYgb3V0cHV0Q3VlcykKIHsKLSAgICBvdXRwdXRDdWVzID0gbV9jdWVsaXN0Owot
ICAgIG1fY3VlbGlzdC5jbGVhcigpOworICAgIG91dHB1dEN1ZXMgPSBXVEZNb3ZlKG1fY3VlbGlz
dCk7CiB9CiAKIHZvaWQgV2ViVlRUUGFyc2VyOjpnZXROZXdSZWdpb25zKFZlY3RvcjxSZWZQdHI8
VlRUUmVnaW9uPj4mIG91dHB1dFJlZ2lvbnMpCkBAIC0xMDUsNiArMTA1LDExIEBAIHZvaWQgV2Vi
VlRUUGFyc2VyOjpnZXROZXdSZWdpb25zKFZlY3RvcjwKICAgICBvdXRwdXRSZWdpb25zID0gV1RG
TW92ZShtX3JlZ2lvbkxpc3QpOwogfQogCitWZWN0b3I8U3RyaW5nPiBXZWJWVFRQYXJzZXI6Omdl
dFN0eWxlU2hlZXRzKCkKK3sKKyAgICByZXR1cm4gV1RGTW92ZShtX3N0eWxlU2hlZXRzKTsKK30K
Kwogdm9pZCBXZWJWVFRQYXJzZXI6OnBhcnNlRmlsZUhlYWRlcihTdHJpbmcmJiBkYXRhKQogewog
ICAgIG1fc3RhdGUgPSBJbml0aWFsOwpAQCAtMTc0LDYgKzE3OSwxMCBAQCB2b2lkIFdlYlZUVFBh
cnNlcjo6cGFyc2UoKQogICAgICAgICAgICAgbV9zdGF0ZSA9IGNvbGxlY3RSZWdpb25TZXR0aW5n
cygqbGluZSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIFN0eWxlOgorICAg
ICAgICAgICAgbV9zdGF0ZSA9IGNvbGxlY3RTdHlsZVNoZWV0KCpsaW5lKTsKKyAgICAgICAgICAg
IGJyZWFrOworCiAgICAgICAgIGNhc2UgSWQ6CiAgICAgICAgICAgICAvLyBTdGVwcyAxNyAtIDIw
IC0gQWxsb3cgYW55IG51bWJlciBvZiBsaW5lIHRlcm1pbmF0b3JzLCB0aGVuIGluaXRpYWxpemUg
bmV3IGN1ZSB2YWx1ZXMuCiAgICAgICAgICAgICBpZiAobGluZS0+aXNFbXB0eSgpKQpAQCAtMjU4
LDExICsyNjcsMTggQEAgV2ViVlRUUGFyc2VyOjpQYXJzZVN0YXRlIFdlYlZUVFBhcnNlcjo6Ywog
ICAgIGlmIChjaGVja0FuZENyZWF0ZVJlZ2lvbihsaW5lKSkKICAgICAgICAgcmV0dXJuIFJlZ2lv
bjsKICAgICAKKyAgICBpZiAoY2hlY2tTdHlsZVNoZWV0KGxpbmUpKQorICAgICAgICByZXR1cm4g
U3R5bGU7CisKICAgICAvLyBIYW5kbGUgY3VlIGJsb2NrLgogICAgIFBhcnNlU3RhdGUgc3RhdGUg
PSBjaGVja0FuZFJlY292ZXJDdWUobGluZSk7CiAgICAgaWYgKHN0YXRlICE9IEhlYWRlcikgewot
ICAgICAgICBpZiAobV9jbGllbnQgJiYgIW1fcmVnaW9uTGlzdC5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBtX2NsaWVudC0+bmV3UmVnaW9uc1BhcnNlZCgpOworICAgICAgICBpZiAobV9jbGllbnQp
IHsKKyAgICAgICAgICAgIGlmICghbV9yZWdpb25MaXN0LmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICBtX2NsaWVudC0+bmV3UmVnaW9uc1BhcnNlZCgpOworICAgICAgICAgICAgaWYgKCFtX3N0
eWxlU2hlZXRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2NsaWVudC0+bmV3U3R5bGVT
aGVldHNQYXJzZWQoKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoIW1fcHJldmlvdXNMaW5lLmlz
RW1wdHkoKSAmJiAhbV9wcmV2aW91c0xpbmUuY29udGFpbnMoIi0tPiIpKQogICAgICAgICAgICAg
bV9jdXJyZW50SWQgPSBtX3ByZXZpb3VzTGluZTsKICAgICAgICAgCkBAIC0yOTAsNiArMzA2LDE2
IEBAIFdlYlZUVFBhcnNlcjo6UGFyc2VTdGF0ZSBXZWJWVFRQYXJzZXI6OmMKICAgICByZXR1cm4g
SGVhZGVyOwogfQogCitXZWJWVFRQYXJzZXI6OlBhcnNlU3RhdGUgV2ViVlRUUGFyc2VyOjpjb2xs
ZWN0U3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGxpbmUpCit7CisgICAgLy8gRW5kIG9mIHN0eWxl
IGJsb2NrCisgICAgaWYgKGNoZWNrQW5kU3RvcmVTdHlsZVNoZWV0KGxpbmUpKQorICAgICAgICBy
ZXR1cm4gY2hlY2tBbmRSZWNvdmVyQ3VlKGxpbmUpOworCisgICAgbV9jdXJyZW50U3R5bGVTaGVl
dC5hcHBlbmQobGluZSk7CisgICAgcmV0dXJuIFN0eWxlOworfQorCiBib29sIFdlYlZUVFBhcnNl
cjo6Y2hlY2tBbmRDcmVhdGVSZWdpb24oY29uc3QgU3RyaW5nJiBsaW5lKQogewogICAgIGlmICht
X3ByZXZpb3VzTGluZS5jb250YWlucygiLS0+IikpCkBAIC0zMjMsNyArMzQ5LDI5IEBAIGJvb2wg
V2ViVlRUUGFyc2VyOjpjaGVja0FuZFN0b3JlUmVnaW9uKGMKICAgICBtX2N1cnJlbnRSZWdpb24g
PSBudWxscHRyOwogICAgIHJldHVybiB0cnVlOwogfQorCitib29sIFdlYlZUVFBhcnNlcjo6Y2hl
Y2tTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgbGluZSkKK3sKKyAgICBpZiAobV9wcmV2aW91c0xp
bmUuY29udGFpbnMoIi0tPiIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gbGluZSBz
dGFydHMgd2l0aCB0aGUgc3Vic3RyaW5nICJTVFlMRSIgYW5kIHJlbWFpbmluZyBjaGFyYWN0ZXJz
CisgICAgLy8gemVybyBvciBtb3JlIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXJzIG9yIFUrMDAwOSBD
SEFSQUNURVIgVEFCVUxBVElPTgorICAgIC8vICh0YWIpIGNoYXJhY3RlcnMgZXhwZWN0ZWQgb3Ro
ZXIgdGhhbiB0aGVzZSBjaGFyZWN0ZXJzIGl0IGlzIGludmFsaWQuCisgICAgaWYgKGxpbmUuc3Rh
cnRzV2l0aCgiU1RZTEUiKSAmJiBsaW5lLnN1YnN0cmluZyhzdHlsZUlkZW50aWZpZXJMZW5ndGgp
LmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNBU3BhY2U+KCkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlZUVFBhcnNlcjo6Y2hlY2tBbmRT
dG9yZVN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBsaW5lKQoreworICAgIGlmICghbGluZS5pc0Vt
cHR5KCkgJiYgIWxpbmUuY29udGFpbnMoIi0tPiIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgCisgICAgbV9zdHlsZVNoZWV0cy5hcHBlbmQoV1RGTW92ZShtX2N1cnJlbnRTdHlsZVNoZWV0
KSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdlYlZUVFBhcnNlcjo6UGFyc2VTdGF0ZSBXZWJW
VFRQYXJzZXI6OmNvbGxlY3RDdWVJZChjb25zdCBTdHJpbmcmIGxpbmUpCiB7CiAgICAgaWYgKGxp
bmUuY29udGFpbnMoIi0tPiIpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VFBhcnNlci5oCShyZXZpc2lvbiAyMzcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBuZXdSZWdpb25zUGFyc2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBuZXdTdHlsZVNoZWV0
c1BhcnNlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2UoKSA9IDA7
CiB9OwogCkBAIC0xMDQsNiArMTA1LDcgQEAgcHVibGljOgogICAgICAgICBUaW1pbmdzQW5kU2V0
dGluZ3MsCiAgICAgICAgIEN1ZVRleHQsCiAgICAgICAgIFJlZ2lvbiwKKyAgICAgICAgU3R5bGUs
CiAgICAgICAgIEJhZEN1ZSwKICAgICAgICAgRmluaXNoZWQKICAgICB9OwpAQCAtMTUwLDYgKzE1
Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE5ld0N1ZXMoVmVjdG9yPFJlZlB0cjxXZWJWVFRD
dWVEYXRhPj4mKTsKICAgICB2b2lkIGdldE5ld1JlZ2lvbnMoVmVjdG9yPFJlZlB0cjxWVFRSZWdp
b24+PiYpOwogCisgICAgVmVjdG9yPFN0cmluZz4gZ2V0U3R5bGVTaGVldHMoKTsKKyAgICAKICAg
ICAvLyBDcmVhdGUgdGhlIERvY3VtZW50RnJhZ21lbnQgcmVwcmVzZW50YXRpb24gb2YgdGhlIFdl
YlZUVCBjdWUgdGV4dC4KICAgICBzdGF0aWMgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZURv
Y3VtZW50RnJhZ21lbnRGcm9tQ3VlVGV4dChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOwogCkBA
IC0xNjksOSArMTczLDEyIEBAIHByaXZhdGU6CiAgICAgUGFyc2VTdGF0ZSBjb2xsZWN0UmVnaW9u
U2V0dGluZ3MoY29uc3QgU3RyaW5nJik7CiAgICAgUGFyc2VTdGF0ZSBjb2xsZWN0V2ViVlRUQmxv
Y2soY29uc3QgU3RyaW5nJik7CiAgICAgUGFyc2VTdGF0ZSBjaGVja0FuZFJlY292ZXJDdWUoY29u
c3QgU3RyaW5nJiBsaW5lKTsKKyAgICBQYXJzZVN0YXRlIGNvbGxlY3RTdHlsZVNoZWV0KGNvbnN0
IFN0cmluZyYpOwogICAgIGJvb2wgY2hlY2tBbmRDcmVhdGVSZWdpb24oY29uc3QgU3RyaW5nJiBs
aW5lKTsKICAgICBib29sIGNoZWNrQW5kU3RvcmVSZWdpb24oY29uc3QgU3RyaW5nJiBsaW5lKTsK
LSAgICAKKyAgICBib29sIGNoZWNrU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGxpbmUpOworICAg
IGJvb2wgY2hlY2tBbmRTdG9yZVN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBsaW5lKTsKKwogICAg
IHZvaWQgY3JlYXRlTmV3Q3VlKCk7CiAgICAgdm9pZCByZXNldEN1ZVZhbHVlcygpOwogCkBAIC0x
ODYsMTEgKzE5MywxMyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3ByZXZpb3VzTGluZTsKICAg
ICBTdHJpbmcgbV9jdXJyZW50U2V0dGluZ3M7CiAgICAgUmVmUHRyPFZUVFJlZ2lvbj4gbV9jdXJy
ZW50UmVnaW9uOworICAgIFN0cmluZyBtX2N1cnJlbnRTdHlsZVNoZWV0OwogICAgIAogICAgIFdl
YlZUVFBhcnNlckNsaWVudCogbV9jbGllbnQ7CiAKICAgICBWZWN0b3I8UmVmUHRyPFdlYlZUVEN1
ZURhdGE+PiBtX2N1ZWxpc3Q7CiAgICAgVmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiBtX3JlZ2lv
bkxpc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gbV9zdHlsZVNoZWV0czsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAyMzcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRy
YWNrTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDYgKzE4MSwxMSBAQCB2b2lkIFRl
eHRUcmFja0xvYWRlcjo6bmV3UmVnaW9uc1BhcnNlZCgpCiAgICAgbV9jbGllbnQubmV3UmVnaW9u
c0F2YWlsYWJsZSh0aGlzKTsKIH0KIAordm9pZCBUZXh0VHJhY2tMb2FkZXI6Om5ld1N0eWxlU2hl
ZXRzUGFyc2VkKCkKK3sKKyAgICBtX2NsaWVudC5uZXdTdHlsZVNoZWV0c0F2YWlsYWJsZSgqdGhp
cyk7Cit9CisKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFpbGVkVG9QYXJzZSgpCiB7CiAg
ICAgTE9HKE1lZGlhLCAiVGV4dFRyYWNrTG9hZGVyOjpmaWxlRmFpbGVkVG9QYXJzZSIpOwpAQCAt
MjEyLDYgKzIxNywxNCBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6Z2V0TmV3UmVnaW9ucyhWZWN0
CiAgICAgICAgIG1fY3VlUGFyc2VyLT5nZXROZXdSZWdpb25zKG91dHB1dFJlZ2lvbnMpOwogfQog
CitWZWN0b3I8U3RyaW5nPiBUZXh0VHJhY2tMb2FkZXI6OmdldE5ld1N0eWxlU2hlZXRzKCkKK3sK
KyAgICBBU1NFUlQobV9jdWVQYXJzZXIpOworICAgIGlmIChtX2N1ZVBhcnNlcikKKyAgICAgICAg
cmV0dXJuIG1fY3VlUGFyc2VyLT5nZXRTdHlsZVNoZWV0cygpOworICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPigpOworfQorCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RleHRUcmFja0xvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuaAkocmV2aXNpb24gMjM3MTg1KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RleHRUcmFja0xvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIq
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGN1ZUxvYWRpbmdDb21wbGV0ZWQoVGV4dFRyYWNrTG9h
ZGVyKiwgYm9vbCBsb2FkaW5nRmFpbGVkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5ld1JlZ2lv
bnNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBuZXdT
dHlsZVNoZWV0c0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXImKSA9IDA7CiB9OwogCiBjbGFzcyBU
ZXh0VHJhY2tMb2FkZXIgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQsIHByaXZhdGUgV2Vi
VlRUUGFyc2VyQ2xpZW50IHsKQEAgLTYxLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2Fu
Y2VsTG9hZCgpOwogICAgIHZvaWQgZ2V0TmV3Q3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1
ZT4+JiBvdXRwdXRDdWVzKTsKICAgICB2b2lkIGdldE5ld1JlZ2lvbnMoVmVjdG9yPFJlZlB0cjxW
VFRSZWdpb24+PiYgb3V0cHV0UmVnaW9ucyk7CisgICAgVmVjdG9yPFN0cmluZz4gZ2V0TmV3U3R5
bGVTaGVldHMoKTsKIHByaXZhdGU6CiAKICAgICAvLyBDYWNoZWRSZXNvdXJjZUNsaWVudApAQCAt
NzAsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYlZUVFBhcnNlckNsaWVudAogICAgIHZv
aWQgbmV3Q3Vlc1BhcnNlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgp
IG92ZXJyaWRlOworICAgIHZvaWQgbmV3U3R5bGVTaGVldHNQYXJzZWQoKSBmaW5hbDsKICAgICB2
b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHByb2Nlc3NOZXdD
dWVEYXRhKENhY2hlZFJlc291cmNlJik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzcxODUpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
OC0xMC0xNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYlZUVF0gU3VwcG9ydCBpbmxpbmUgV2ViVlRUIHN0eWxlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMzY5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0
L2Nzcy1zdHlsaW5nLnZ0dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svY2FwdGlvbnMt
d2VidnR0L25vLWNzcy1zdHlsaW5nLnZ0dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2sv
dHJhY2stY3VlLWNzcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFj
ay90cmFjay1jdWUtY3NzLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEwLTE2ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgd2luZG93Lm5hdmlnYXRvciBzaG91bGQgbm90
IGJlY29tZSBudWxsIGFmdGVyIHRoZSB3aW5kb3cgbG9zZXMgaXRzIGJyb3dzaW5nIGNvbnRleHQK
SW5kZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1jc3MtZXhwZWN0ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtY3NzLWV4
cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY3VlLWNzcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+dmFy
IHJlcXVpcmVQaXhlbER1bXAgPSB0cnVlOzwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0u
Li9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10
ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1jb250cm9scy5q
cz48L3NjcmlwdD4KKworICAgICAgICA8c3R5bGU+CisgICAgICAgIHZpZGVvOjpjdWUgeworICAg
ICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgZGlt
Z3JheSwgbGlnaHRncmF5KTsKKyAgICAgICAgfQorICAgICAgICB2aWRlbzo6Y3VlKGIpIHsKKyAg
ICAgICAgICAgIGNvbG9yOiByZWQ7CisgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7CisgICAg
ICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rp
b24gbG9hZGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRo
YXQgQ1NTIGluIFZUVCBmaWxlIGlzIGFwcGxpZWQgY29ycmVjdGx5LiIpOworICAgICAgICAgICAg
ZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmls
ZSgndmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7CisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQo
J3NlZWtlZCcsIGVuZFRlc3QpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhy
b3VnaCcsIGZ1bmN0aW9uKCkgeyB2aWRlby5jdXJyZW50VGltZSA9IC41OyB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIHNldENhcHRpb25EaXNwbGF5TW9kZSgnQXV0b21hdGljJyk7CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KKyAg
ICAgICAgPHZpZGVvIGNvbnRyb2xzID4KKyAgICAgICAgICAgIDx0cmFjayBzcmM9ImNhcHRpb25z
LXdlYnZ0dC9uby1jc3Mtc3R5bGluZy52dHQiIGtpbmQ9ImNhcHRpb25zIiBkZWZhdWx0PgorICAg
ICAgICA8L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWN1ZS1jc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jdWUtY3NzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLWNzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxz
Y3JpcHQ+dmFyIHJlcXVpcmVQaXhlbER1bXAgPSB0cnVlOzwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0u
Li92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1j
b250cm9scy5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24g
bG9hZGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQg
Q1NTIGluIFZUVCBmaWxlIGlzIGFwcGxpZWQgY29ycmVjdGx5LiIpOworICAgICAgICAgICAgZmlu
ZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgn
dmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7CisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3Nl
ZWtlZCcsIGVuZFRlc3QpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3Vn
aCcsIGZ1bmN0aW9uKCkgeyB2aWRlby5jdXJyZW50VGltZSA9IC41OyB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHNldENhcHRpb25EaXNwbGF5TW9kZSgnQXV0b21hdGljJyk7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KKyAgICAg
ICAgPHZpZGVvIGNvbnRyb2xzID4KKyAgICAgICAgICAgIDx0cmFjayBzcmM9ImNhcHRpb25zLXdl
YnZ0dC9jc3Mtc3R5bGluZy52dHQiIGtpbmQ9ImNhcHRpb25zIiBkZWZhdWx0PgorICAgICAgICA8
L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3Ry
YWNrL2NhcHRpb25zLXdlYnZ0dC9jc3Mtc3R5bGluZy52dHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L2Nzcy1zdHlsaW5nLnZ0dAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY3NzLXN0
eWxpbmcudnR0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK1dFQlZUVAorCitTVFlM
RQorOjpjdWUgeworYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwg
ZGltZ3JheSwgbGlnaHRncmF5KTsKK30KKworU1RZTEUKKzo6Y3VlKGIpIHsKK2NvbG9yOiByZWQ7
Citmb250LXNpemU6IDE1cHg7Cit9CisKK2hlbGxvCiswMDowMDowMC4wMDAgLS0+IDAwOjAwOjEw
LjAwMAorPGI+SGVsbG88L2I+LgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlv
bnMtd2VidnR0L25vLWNzcy1zdHlsaW5nLnZ0dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvbm8tY3NzLXN0eWxpbmcudnR0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9uby1jc3Mtc3R5
bGluZy52dHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitXRUJWVFQKKworaGVsbG8K
KzAwOjAwOjAwLjAwMCAtLT4gMDA6MDA6MTAuMDAwCis8Yj5IZWxsbzwvYj4uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>