<?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>143898</bug_id>
          
          <creation_ts>2015-04-17 14:30:29 -0700</creation_ts>
          <short_desc>Fix assertion failure and race condition in Options::dumpSourceAtDFGTime().</short_desc>
          <delta_ts>2015-04-22 19:30:42 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1086425</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-17 14:30:29 -0700</bug_when>
    <thetext>CodeBlock::dumpSource() will access SourceCode strings in a way that requires ref&apos;ing of the underlying StringImpls. This is unsafe to do from arbitrary compilation threads because StringImpls are not thread safe. There is an assertion in StringImpl code that checks for this.

However, Options::dumpSourceAtDFGTime() is only used for DFG debugging. For its purpose, we can live with the race condition introduced in the ref&apos;ing of the SourceCode strings. Hence, we introduce an UnsafeHideCompilationScope here to temporarily and locally suppress the StringImpl assertion in order for Options::dumpSourceAtDFGTime() to also work on debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086428</commentid>
    <comment_count>1</comment_count>
      <attachid>251049</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-17 14:35:28 -0700</bug_when>
    <thetext>Created attachment 251049
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086430</commentid>
    <comment_count>2</comment_count>
      <attachid>251049</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-04-17 14:38:16 -0700</bug_when>
    <thetext>Comment on attachment 251049
the patch.

I don&apos;t think we can live with the race condition. I, for one, would not want turning on source code dumping to add bugs to my code while I was debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086538</commentid>
    <comment_count>3</comment_count>
      <attachid>251088</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-18 03:36:31 -0700</bug_when>
    <thetext>Created attachment 251088
patch 2: a new fix with no race condition as requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086539</commentid>
    <comment_count>4</comment_count>
      <attachid>251089</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-18 03:54:14 -0700</bug_when>
    <thetext>Created attachment 251089
patch 3: no race condition + build file fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086835</commentid>
    <comment_count>5</comment_count>
      <attachid>251089</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-04-20 11:24:39 -0700</bug_when>
    <thetext>Comment on attachment 251089
patch 3: no race condition + build file fixes

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

&gt; Source/JavaScriptCore/bytecode/DeferredCompilationCallback.cpp:39
&gt; +    if (UNLIKELY(Options::dumpSourceAtDFGTime()))
&gt; +        dumpCompiledSources();

It&apos;s strange that you guard this code with an options check at the call site and a null check in the callee. The two checks are redundant.

Renamed dumpCompiledSources to dumpCompiledSourcesIfNeeded, and remove the check at the call site.

&gt; Source/JavaScriptCore/bytecode/DeferredCompilationCallback.cpp:53
&gt; +Vector&lt;SourceDumpInfo&gt;&amp; DeferredCompilationCallback::sourceDumpInfo()

This should be named &quot;ensureSourceDumpInfo&quot; since it is not a simple accessor.

&gt; Source/JavaScriptCore/bytecode/SourceDumpInfo.h:36
&gt; +class SourceDumpInfo {

Let&apos;s call this DeferredSourceDump. &quot;Info&quot; is a meaningless word.

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:4043
&gt; +        Vector&lt;SourceDumpInfo&gt;&amp; dumpList = m_graph.m_plan.callback-&gt;sourceDumpInfo();

This local variable should have the same name as the accessor function that produces it. As I&apos;ve said to you many times over the years, it is bad to give two names to one thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086867</commentid>
    <comment_count>6</comment_count>
      <attachid>251181</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-20 12:01:17 -0700</bug_when>
    <thetext>Created attachment 251181
patch 4: applied Geoff&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087699</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-22 19:30:42 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r183161: &lt;http://trac.webkit.org/r183161&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251049</attachid>
            <date>2015-04-17 14:35:28 -0700</date>
            <delta_ts>2015-04-18 03:36:31 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-143898.patch</filename>
            <type>text/plain</type>
            <size>3287</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE1LTA0LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
ZW1wb3JhcmlseSBoaWRlIHRoZSBDb21waWxhdGlvblNjb3BlIHRvIGFsbG93IE9wdGlvbnM6OmR1
bXBTb3VyY2VBdERGR1RpbWUoKSB0byB3b3JrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzODk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ29kZUJsb2NrOjpkdW1wU291cmNlKCkgd2lsbCBhY2Nlc3Mg
U291cmNlQ29kZSBzdHJpbmdzIGluIGEgd2F5IHRoYXQgcmVxdWlyZXMKKyAgICAgICAgcmVmJ2lu
ZyBvZiB0aGUgdW5kZXJseWluZyBTdHJpbmdJbXBscy4gIFRoaXMgaXMgdW5zYWZlIHRvIGRvIGZy
b20gYXJiaXRyYXJ5CisgICAgICAgIGNvbXBpbGF0aW9uIHRocmVhZHMgYmVjYXVzZSBTdHJpbmdJ
bXBscyBhcmUgbm90IHRocmVhZCBzYWZlLiAgVGhlcmUgaXMgYW4KKyAgICAgICAgYXNzZXJ0aW9u
IGluIFN0cmluZ0ltcGwgY29kZSB0aGF0IGNoZWNrcyBmb3IgdGhpcy4KKworICAgICAgICBIb3dl
dmVyLCBPcHRpb25zOjpkdW1wU291cmNlQXRERkdUaW1lKCkgaXMgb25seSB1c2VkIGZvciBERkcg
ZGVidWdnaW5nLiAgRm9yIGl0cworICAgICAgICBwdXJwb3NlLCB3ZSBjYW4gbGl2ZSB3aXRoIHRo
ZSByYWNlIGNvbmRpdGlvbiBpbnRyb2R1Y2VkIGluIHRoZSByZWYnaW5nIG9mIHRoZQorICAgICAg
ICBTb3VyY2VDb2RlIHN0cmluZ3MuICBIZW5jZSwgd2UgaW50cm9kdWNlIGFuIFVuc2FmZUhpZGVD
b21waWxhdGlvblNjb3BlIGhlcmUgdG8KKyAgICAgICAgdGVtcG9yYXJpbHkgYW5kIGxvY2FsbHkg
c3VwcHJlc3MgdGhlIFN0cmluZ0ltcGwgYXNzZXJ0aW9uIGluIG9yZGVyIGZvcgorICAgICAgICBP
cHRpb25zOjpkdW1wU291cmNlQXRERkdUaW1lKCkgdG8gYWxzbyB3b3JrIG9uIGRlYnVnIGJ1aWxk
cy4KKworICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6VW5zYWZlSGlkZUNvbXBpbGF0aW9uU2NvcGU6OlVuc2FmZUhpZGVDb21waWxhdGlvblNj
b3BlKToKKyAgICAgICAgKEpTQzo6REZHOjpVbnNhZmVIaWRlQ29tcGlsYXRpb25TY29wZTo6flVu
c2FmZUhpZGVDb21waWxhdGlvblNjb3BlKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VDb2RlQmxvY2spOgorCiAyMDE1LTA0LTE3ICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIEZpeCBuYW1lIGVudW1lcmF0aW9u
IG9mIHN0YXRpYyBmdW5jdGlvbnMgZm9yIFN5bWJvbCBjb25zdHJ1Y3RvcgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9u
IDE4Mjk2NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDI4LDYgKzQwMjgsMzIgQEAgQnl0ZUNvZGVQYXJzZXI6
OklubGluZVN0YWNrRW50cnk6OklubGluZQogICAgIGJ5dGVDb2RlUGFyc2VyLT5tX2lubGluZVN0
YWNrVG9wID0gdGhpczsKIH0KIAorLy8gQ29kZUJsb2NrOjpkdW1wU291cmNlKCkgd2lsbCBhY2Nl
c3MgU291cmNlQ29kZSBzdHJpbmdzIGluIGEgd2F5IHRoYXQgcmVxdWlyZXMKKy8vIHJlZidpbmcg
b2YgdGhlIHVuZGVybHlpbmcgU3RyaW5nSW1wbHMuIFRoaXMgaXMgdW5zYWZlIHRvIGRvIGZyb20g
YXJiaXRyYXJ5CisvLyBjb21waWxhdGlvbiB0aHJlYWRzIGJlY2F1c2UgU3RyaW5nSW1wbHMgYXJl
IG5vdCB0aHJlYWQgc2FmZS4gVGhlcmUgaXMgYW4KKy8vIGFzc2VydGlvbiBpbiBTdHJpbmdJbXBs
IGNvZGUgdGhhdCBjaGVja3MgZm9yIHRoaXMuCisvLworLy8gSG93ZXZlciwgT3B0aW9uczo6ZHVt
cFNvdXJjZUF0REZHVGltZSgpIGlzIG9ubHkgdXNlZCBmb3IgREZHIGRlYnVnZ2luZy4gRm9yCisv
LyBpdHMgcHVycG9zZSwgd2UgY2FuIGxpdmUgd2l0aCB0aGUgcmFjZSBjb25kaXRpb24gaW50cm9k
dWNlZCBpbiB0aGUgcmVmJ2luZworLy8gb2YgdGhlIFNvdXJjZUNvZGUgc3RyaW5ncy4gSGVuY2Us
IHdlIHVzZSB0aGUgVW5zYWZlSGlkZUNvbXBpbGF0aW9uU2NvcGUgaGVyZQorLy8gdG8gdGVtcG9y
YXJpbHkgYW5kIGxvY2FsbHkgc3VwcHJlc3MgdGhlIFN0cmluZ0ltcGwgYXNzZXJ0aW9uIGluIG9y
ZGVyIHRvCisvLyBiZSBhYmxlIHRvIGR1bXAgdGhlIHNvdXJjZSBjb2RlIGZvciBkZWJ1Z2dpbmcg
cHVycG9zZXMgb25seS4KK2NsYXNzIFVuc2FmZUhpZGVDb21waWxhdGlvblNjb3BlIHsKK3B1Ymxp
YzoKKyAgICBVbnNhZmVIaWRlQ29tcGlsYXRpb25TY29wZSgpCisgICAgICAgIDogbV9vbGRWYWx1
ZShleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJlYWQoZmFsc2UpKQorICAgIHsKKyAgICB9CisgICAg
CisgICAgflVuc2FmZUhpZGVDb21waWxhdGlvblNjb3BlKCkKKyAgICB7CisgICAgICAgIGV4Y2hh
bmdlSXNDb21waWxhdGlvblRocmVhZChtX29sZFZhbHVlKTsKKyAgICB9CisgICAgCitwcml2YXRl
OgorICAgIGJvb2wgbV9vbGRWYWx1ZTsKK307CisKIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
Q29kZUJsb2NrKCkKIHsKICAgICBjbGVhckNhY2hlcygpOwpAQCAtNDA1NCw2ICs0MDgwLDcgQEAg
dm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VDb2RlQmxvY2soKQogICAgIH0KIAogICAgIGlmIChz
aG91bGREdW1wU291cmNlKSB7CisgICAgICAgIFVuc2FmZUhpZGVDb21waWxhdGlvblNjb3BlIHNj
b3BlOwogICAgICAgICBkYXRhTG9nKCI9PT09IGJlZ2luIHNvdXJjZSA9PT09XG4iKTsKICAgICAg
ICAgY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKS0+ZHVtcFNvdXJjZSgpOwogICAgICAgICBk
YXRhTG9nKCJcbj09PT0gZW5kIHNvdXJjZSA9PT09XG5cbiIpOwo=
</data>
<flag name="review"
          id="275851"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251088</attachid>
            <date>2015-04-18 03:36:31 -0700</date>
            <delta_ts>2015-04-18 03:44:21 -0700</delta_ts>
            <desc>patch 2: a new fix with no race condition as requested.</desc>
            <filename>bug-143898.patch</filename>
            <type>text/plain</type>
            <size>20960</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyOTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBA
CisyMDE1LTA0LTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYXNzZXJ0aW9uIGZhaWx1cmUgYW5kIHJhY2UgY29uZGl0aW9uIGluIE9wdGlvbnM6OmR1bXBT
b3VyY2VBdERGR1RpbWUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0Mzg5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvZGVCbG9jazo6ZHVtcFNvdXJjZSgpIHdpbGwgYWNjZXNzIFNvdXJjZUNvZGUg
c3RyaW5ncyBpbiBhIHdheSB0aGF0IHJlcXVpcmVzCisgICAgICAgIHJlZidpbmcgb2YgdGhlIHVu
ZGVybHlpbmcgU3RyaW5nSW1wbHMuIFRoaXMgaXMgdW5zYWZlIHRvIGRvIGZyb20gYXJiaXRyYXJ5
CisgICAgICAgIGNvbXBpbGF0aW9uIHRocmVhZHMgYmVjYXVzZSBTdHJpbmdJbXBscyBhcmUgbm90
IHRocmVhZCBzYWZlLiBBcyBhIHJlc3VsdCwgd2UgZ2V0CisgICAgICAgIGFuIGFzc2VydGlvbiBm
YWlsdXJlIHdoZW4gd2UgcnVuIHdpdGggSlNDX2R1bXBTb3VyY2VBdERGR1RpbWU9dHJ1ZSBvbiBh
IGRlYnVnCisgICAgICAgIGJ1aWxkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGlz
c3VlIGJ5IG9ubHkgY29sbGVjdGluZyB0aGUgQ29kZUJsb2NrIChhbmQgYXNzb2NpYXRlZCBpbmZv
KQorICAgICAgICBpbnRvIGEgU291cmNlRHVtcEluZm8gcmVjb3JkIHdoaWxlIGNvbXBpbGluZywg
YW5kIHN0YXNoaW5nIGl0IGF3YXkgaW4gYQorICAgICAgICBzb3VyY2VEdW1wSW5mbyBsaXN0IGlu
IHRoZSBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgb2JqZWN0IHRvIGJlIGR1bXBlZCBsYXRl
ci4KKworICAgICAgICBXaGVuIGNvbXBpbGF0aW9uIGlzIGRvbmUsIHRoZSBjYWxsYmFjayBvYmpl
Y3Qgd2lsbCBiZSBub3RpZmllZCB0aGF0CisgICAgICAgIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUo
KS4gIFdlIHdpbGwgZHVtcCB0aGUgU291cmNlQ29kZSBzdHJpbmdzIGZyb20gdGhlcmUuIAorICAg
ICAgICBTaW5jZSBjb21waWxhdGlvbkRpZENvbXBsZXRlKCkgaXMgZ3VhcmFudGVlZCB0byBvbmx5
IGJlIGNhbGxlZCBvbiB0aGUgdGhyZWFkCisgICAgICAgIGRvaW5nIEpTIGV4ZWN1dGlvbiwgaXQg
aXMgc2FmZSB0byBhY2Nlc3MgdGhlIFNvdXJjZUNvZGUgc3RyaW5ncyB0aGVyZSBhbmQgcmVmCisg
ICAgICAgIHRoZWlyIHVuZGVybHlpbmcgU3RyaW5nSW1wbHMgYXMgbmVlZGVkLiAgICAgICAgCisK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJ5dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAg
IChKU0M6OkRlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGlsYXRpb25EaWRDb21wbGV0
ZSk6CisgICAgICAgIChKU0M6OkRlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6c291cmNlRHVt
cEluZm8pOgorICAgICAgICAoSlNDOjpEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmR1bXBD
b21waWxlZFNvdXJjZXMpOgorICAgICAgICAqIGJ5dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1NvdXJjZUR1bXBJbmZvLmNwcDogQWRkZWQu
CisgICAgICAgIChKU0M6OlNvdXJjZUR1bXBJbmZvOjpTb3VyY2VEdW1wSW5mbyk6CisgICAgICAg
IChKU0M6OlNvdXJjZUR1bXBJbmZvOjpkdW1wKToKKyAgICAgICAgKiBieXRlY29kZS9Tb3VyY2VE
dW1wSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUNvZGVCbG9jayk6CisgICAg
ICAgICogZGZnL0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwp
OgorCiAyMDE1LTA0LTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB1bnVzZWQgQm91bmRzQ2hlY2tlZFBvaW50ZXIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODI5NzgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTY0MiwxMiArMTY0MiwxNCBAQAogCQlGRTBENEEwOTFBQkEyNDM3MDAyRjU0QkYg
LyogR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMEQ0QTA3MUFCQTI0MzcwMDJGNTRCRiAvKiBH
bG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwICovOyB9OwogCQlGRTIwQ0U5RDE1RjA0
QTk1MDBERjM0MzAgLyogTExJbnRDTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTIwQ0U5QjE1RjA0QTk1MDBERjM0MzAgLyogTExJbnRDTG9v
cC5jcHAgKi87IH07CiAJCUZFMjBDRTlFMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTIwQ0U5QzE1
RjA0QTk1MDBERjM0MzAgLyogTExJbnRDTG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFNEJGRjJCMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5j
dGlvbk92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRTRCRkYyOTFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuY3Bw
ICovOyB9OwotCQlGRTRCRkYyQzFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEJGRjJB
MUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5oICovOyB9OwogCQlGRTM4NEVF
NTFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM4NEVFMTFBRERCN0FEMDA1NURFMkMgLyogSlNE
b2xsYXJWTS5jcHAgKi87IH07CiAJCUZFMzg0RUU2MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxh
clZNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM4
NEVFMjFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFMzg0RUU3MUFEREI3QUQwMDU1REUyQyAv
KiBKU0RvbGxhclZNUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFMzg0RUUzMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJv
dG90eXBlLmNwcCAqLzsgfTsKIAkJRkUzODRFRTgxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFy
Vk1Qcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFMzg0RUU0MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkU0QkZGMkIx
QUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEJGRjI5MUFENDc2RTcwMDA4OEY4NyAv
KiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgKi87IH07CisJCUZFNEJGRjJDMUFENDc2RTcwMDA4OEY4
NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJp
ZGVzLmggKi87IH07CisJCUZFNTA2ODY1MUFFMjQ2MzkwMDA5REFCNyAvKiBTb3VyY2VEdW1wSW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU1MDY4
NjQxQUUyNDYzOTAwMDlEQUI3IC8qIFNvdXJjZUR1bXBJbmZvLmggKi87IH07CisJCUZFNTA2ODY3
MUFFMjVFMjgwMDA5REFCNyAvKiBTb3VyY2VEdW1wSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTUwNjg2NjFBRTI1RTI4MDAwOURBQjcgLyog
U291cmNlRHVtcEluZm8uY3BwICovOyB9OwogCQlGRTU5MzJBNzE4M0M1QTI2MDBBMUVDQ0MgLyog
Vk1FbnRyeVNjb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFNTkzMkE1MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuY3BwICovOyB9
OwogCQlGRTU5MzJBODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTU5MzJBNjE4M0M1QTI2MDBB
MUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmll
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTdC
QTYwRDFBMUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLzsgfTsKQEAgLTMxNTcs
NyArMzE1OSw3IEBACiAJCUE3QzFFOEM4MTEyRTcwMUMwMEEzN0Y5OCAvKiBKSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Mx
RUFFQTE3OTg3QUI2MDAyOTlEQjIgLyogQ2FsbEZyYW1lSW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsRnJhbWVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3QzFFQUVCMTc5ODdBQjYwMDI5OURCMiAvKiBKU1N0YWNrSW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0YWNrSW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBN0MxRUFFQzE3OTg3QUI2MDAyOTlEQjIgLyogU3Rh
Y2tWaXNpdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9
IDA7IHBhdGggPSBTdGFja1Zpc2l0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xh
bmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKKwkJQTdD
MUVBRUMxNzk4N0FCNjAwMjk5REIyIC8qIFN0YWNrVmlzaXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gU3RhY2tWaXNpdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMUVBRUQxNzk4N0FCNjAwMjk5REIyIC8q
IFN0YWNrVmlzaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja1Zp
c2l0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMjI1Q0MxMzk5ODFGMTAw
RkYxNjYyIC8qIEtleXdvcmRMb29rdXBHZW5lcmF0b3IucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlw
dC5weXRob247IHBhdGggPSBLZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBN0MyMjVDRDEzOTk4NDlDMDBGRjE2NjIgLyogS2V5d29yZExvb2t1
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXl3b3JkTG9va3VwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDIyLDEyICszNDI0LDE0IEBACiAJCUZFMEQ0
QTA4MUFCQTI0MzcwMDJGNTRCRiAvKiBHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6
ZXJUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMjBDRTlCMTVGMDRBOTUwMERGMzQz
MCAvKiBMTEludENMb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExMSW50Q0xvb3AuY3BwOyBwYXRoID0gbGxpbnQvTExJbnRDTG9vcC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUZFMjBDRTlDMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50Q0xvb3AuaDsgcGF0aCA9
IGxsaW50L0xMSW50Q0xvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkU0QkZG
MjkxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9u
T3ZlcnJpZGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZ1bmN0aW9uT3Zl
cnJpZGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzg0RUUxMUFEREI3QUQw
MDU1REUyQyAvKiBKU0RvbGxhclZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRG9sbGFyVk0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTM4
NEVFMjFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0RvbGxhclZNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFMzg0RUUzMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9sbGFyVk1Qcm90b3R5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTM4NEVFNDFBRERCN0FEMDA1NURFMkMg
LyogSlNEb2xsYXJWTVByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0RvbGxhclZNUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZF
NEJGRjI5MUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdW5jdGlvbk92ZXJyaWRlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFNEJGRjJBMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5j
dGlvbk92ZXJyaWRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGdW5jdGlv
bk92ZXJyaWRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTUwNjg2NDFBRTI0
NjM5MDAwOURBQjcgLyogU291cmNlRHVtcEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU291cmNlRHVtcEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RkU1MDY4NjYxQUUyNUUyODAwMDlEQUI3IC8qIFNvdXJjZUR1bXBJbmZvLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUR1bXBJbmZvLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU1OTMyQTUxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlT
Y29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWTUVudHJ5U2Nv
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTU5MzJBNjE4M0M1QTI2MDBB
MUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZNRW50cnlTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTdCQTYwRDFB
MUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhlYXBWZXJpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC01MjY3LDYgKzUyNzEsOCBAQAogCQkJCTBGRjYwQUMwMTY3NDBGODEwMDAyOTc3OSAv
KiBSZWR1Y2VXaGl0ZXNwYWNlLmggKi8sCiAJCQkJMTQyOUQ4ODMwRUQyMUMzRDAwQjg5NjE5IC8q
IFNhbXBsaW5nVG9vbC5jcHAgKi8sCiAJCQkJMTQyOUQ4ODQwRUQyMUMzRDAwQjg5NjE5IC8qIFNh
bXBsaW5nVG9vbC5oICovLAorCQkJCUZFNTA2ODY2MUFFMjVFMjgwMDA5REFCNyAvKiBTb3VyY2VE
dW1wSW5mby5jcHAgKi8sCisJCQkJRkU1MDY4NjQxQUUyNDYzOTAwMDlEQUI3IC8qIFNvdXJjZUR1
bXBJbmZvLmggKi8sCiAJCQkJMEY1NTQxQUYxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2lu
dGVyLmNwcCAqLywKIAkJCQkwRjU1NDFCMDE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50
ZXIuaCAqLywKIAkJCQkwRkQ4MkU4NDE0MUYzRkRBMDAxNzlDOTQgLyogU3BlY3VsYXRlZFR5cGUu
Y3BwICovLApAQCAtNjQyNyw2ICs2NDMzLDcgQEAKIAkJCQk4NjY3MzlEMzEzQkZERTcxMDAyM0Q4
N0MgLyogVWludDE2V2l0aEZyYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUY0MjE3
QURCNUYzMDA1QUIxNzQgLyogVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThB
RjNGMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50OEFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
RTUwNjg2NTFBRTI0NjM5MDAwOURBQjcgLyogU291cmNlRHVtcEluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3QThBRjQwMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50OENsYW1wZWRBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9u
YWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJB
MyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDc1LDYgKzcwODIs
NyBAQAogCQkJCUE3RDg5Q0ZEMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdPU1JBdmFpbGFiaWxpdHlB
bmFseXNpc1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTU2MTQxREFGMDgwMDE3
OUM5NCAvKiBERkdPU1JFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyNTE3RDUx
RjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRkU1MDY4NjcxQUUyNUUyODAwMDlEQUI3IC8qIFNvdXJjZUR1bXBJbmZvLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5NzkxMTQ2QTZGNzEwMENGMjQ0MiAvKiBERkdPU1JF
eGl0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkVCMTcxNzhFNzMwMDY5MEM3RiAvKiBE
RkdPU1JFeGl0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTc5MjE0NkE2RjczMDBD
RjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5jcHAJKHJldmlzaW9uIDE4Mjk3OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw5IEBAIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6
fkRlZmVycmVkQ28KIAogdm9pZCBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNvbXBpbGF0
aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9uUmVzdWx0IHJl
c3VsdCkKIHsKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6ZHVtcFNvdXJjZUF0REZHVGltZSgp
KSkKKyAgICAgICAgZHVtcENvbXBpbGVkU291cmNlcygpOworCiAgICAgc3dpdGNoIChyZXN1bHQp
IHsKICAgICBjYXNlIENvbXBpbGF0aW9uRmFpbGVkOgogICAgIGNhc2UgQ29tcGlsYXRpb25JbnZh
bGlkYXRlZDoKQEAgLTQ3LDUgKzUwLDI1IEBAIHZvaWQgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrOjpjb21waWwKICAgICB9CiB9CiAKK1ZlY3RvcjxTb3VyY2VEdW1wSW5mbz4mIERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjazo6c291cmNlRHVtcEluZm8oKQoreworICAgIGlmICghbV9zb3Vy
Y2VEdW1wSW5mbykKKyAgICAgICAgbV9zb3VyY2VEdW1wSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8
VmVjdG9yPFNvdXJjZUR1bXBJbmZvPj4oKTsKKyAgICByZXR1cm4gKm1fc291cmNlRHVtcEluZm87
Cit9CisKK3ZvaWQgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpkdW1wQ29tcGlsZWRTb3Vy
Y2VzKCkKK3sKKyAgICBpZiAoIW1fc291cmNlRHVtcEluZm8pCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8mIGR1bXBJbmZvTGlzdCA9IHNvdXJjZUR1bXBJbmZvKCk7CisgICAgdW5zaWduZWQg
aW5kZXggPSAwOworICAgIGZvciAoYXV0byYgaW5mbyA6IGR1bXBJbmZvTGlzdCkgeworICAgICAg
ICBkYXRhTG9nKCJbIiwgKytpbmRleCwgIl0gIik7CisgICAgICAgIGluZm8uZHVtcCgpOworICAg
IH0KK30KKwogfSAvLyBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAkocmV2aXNp
b24gMTgyOTc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw5IEBACiAjZGVm
aW5lIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFja19oCiAKICNpbmNsdWRlICJDb21waWxhdGlv
blJlc3VsdC5oIgorI2luY2x1ZGUgIlNvdXJjZUR1bXBJbmZvLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0Mgewog
CkBAIC00Miw2ICs0NCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRp
b25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayopID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJl
c3VsdCk7CisKKyAgICBWZWN0b3I8U291cmNlRHVtcEluZm8+JiBzb3VyY2VEdW1wSW5mbygpOwor
Citwcml2YXRlOgorICAgIHZvaWQgZHVtcENvbXBpbGVkU291cmNlcygpOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxTb3VyY2VEdW1wSW5mbz4+IG1fc291cmNlRHVtcEluZm87CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Tb3VyY2VEdW1wSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NvdXJjZUR1bXBJbmZvLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Tb3VyY2VEdW1wSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VyY2VEdW1wSW5mby5oIgorCisj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK1NvdXJjZUR1bXBJbmZvOjpTb3VyY2VEdW1wSW5mbyhDb2Rl
QmxvY2sqIGNvZGVCbG9jaykKKyAgICA6IG1fY29kZUJsb2NrKGNvZGVCbG9jaykKKyAgICAsIG1f
cm9vdENvZGVCbG9jayhudWxscHRyKQorICAgICwgbV9yb290SklUVHlwZShKSVRDb2RlOjpOb25l
KQoreworfQorCitTb3VyY2VEdW1wSW5mbzo6U291cmNlRHVtcEluZm8oQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVCbG9jayogcm9vdENvZGVCbG9jaywgSklUQ29kZTo6SklUVHlwZSByb290SklU
VHlwZSwgQ29kZU9yaWdpbiBjYWxsZXJDb2RlT3JpZ2luKQorICAgIDogbV9jb2RlQmxvY2soY29k
ZUJsb2NrKQorICAgICwgbV9yb290Q29kZUJsb2NrKHJvb3RDb2RlQmxvY2spCisgICAgLCBtX3Jv
b3RKSVRUeXBlKHJvb3RKSVRUeXBlKQorICAgICwgbV9jYWxsZXJDb2RlT3JpZ2luKGNhbGxlckNv
ZGVPcmlnaW4pCit7Cit9CisKK3ZvaWQgU291cmNlRHVtcEluZm86OmR1bXAoKQoreworICAgIGJv
b2wgaXNJbmxpbmVkRnJhbWUgPSAhIW1fcm9vdENvZGVCbG9jazsKKyAgICBpZiAoaXNJbmxpbmVk
RnJhbWUpCisgICAgICAgIGRhdGFMb2coIklubGluZWQgIik7CisgICAgZWxzZQorICAgICAgICBk
YXRhTG9nKCJDb21waWxlZCAiKTsKKyAgICBkYXRhTG9nKCptX2NvZGVCbG9jayk7CisKKyAgICBp
ZiAoaXNJbmxpbmVkRnJhbWUpCisgICAgICAgIGRhdGFMb2coIiBhdCAiLCBDb2RlQmxvY2tXaXRo
SklUVHlwZShtX3Jvb3RDb2RlQmxvY2ssIG1fcm9vdEpJVFR5cGUpLCAiICIsIG1fY2FsbGVyQ29k
ZU9yaWdpbik7CisKKyAgICBkYXRhTG9nKCJcbicnJyIpOworICAgIG1fY29kZUJsb2NrLT5kdW1w
U291cmNlKCk7CisgICAgZGF0YUxvZygiJycnXG4iKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU291cmNlRHVtcEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU291cmNlRHVtcElu
Zm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Tb3Vy
Y2VEdW1wSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNvdXJjZUR1bXBJbmZv
X2gKKyNkZWZpbmUgU291cmNlRHVtcEluZm9faAorCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgor
I2luY2x1ZGUgIkpJVENvZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENvZGVCbG9j
azsKKworY2xhc3MgU291cmNlRHVtcEluZm8geworcHVibGljOgorICAgIFNvdXJjZUR1bXBJbmZv
KENvZGVCbG9jayopOworICAgIFNvdXJjZUR1bXBJbmZvKENvZGVCbG9jayosIENvZGVCbG9jayog
cm9vdENvZGVCbG9jaywgSklUQ29kZTo6SklUVHlwZSByb290SklUVHlwZSwgQ29kZU9yaWdpbiBj
YWxsZXJDb2RlT3JpZ2luKTsKKworICAgIHZvaWQgZHVtcCgpOworCitwcml2YXRlOgorICAgIENv
ZGVCbG9jayogbV9jb2RlQmxvY2s7CisgICAgQ29kZUJsb2NrKiBtX3Jvb3RDb2RlQmxvY2s7Cisg
ICAgSklUQ29kZTo6SklUVHlwZSBtX3Jvb3RKSVRUeXBlOworICAgIENvZGVPcmlnaW4gbV9jYWxs
ZXJDb2RlT3JpZ2luOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBTb3Vy
Y2VEdW1wSW5mb19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTgyOTc4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMzksOSAr
NDAzOSwxNiBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUNvZGVCbG9jaygpCiAgICAgICAg
ICAgICAqbV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLCBtX2lubGluZVN0YWNrVG9wLT5tX3By
b2ZpbGVkQmxvY2spOwogICAgIH0KICAgICAKLSAgICBib29sIHNob3VsZER1bXBTb3VyY2UgPSBP
cHRpb25zOjpkdW1wU291cmNlQXRERkdUaW1lKCk7Ci0gICAgYm9vbCBzaG91bGREdW1wQnl0ZWNv
ZGUgPSBPcHRpb25zOjpkdW1wQnl0ZWNvZGVBdERGR1RpbWUoKTsKLSAgICBpZiAoc2hvdWxkRHVt
cFNvdXJjZSB8fCBzaG91bGREdW1wQnl0ZWNvZGUpIHsKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9u
czo6ZHVtcFNvdXJjZUF0REZHVGltZSgpKSkgeworICAgICAgICBWZWN0b3I8U291cmNlRHVtcElu
Zm8+JiBkdW1wTGlzdCA9IG1fZ3JhcGgubV9wbGFuLmNhbGxiYWNrLT5zb3VyY2VEdW1wSW5mbygp
OworICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lKCkpIHsKKyAgICAgICAgICAgIFNvdXJjZUR1
bXBJbmZvIGluZm8oY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgbV9jb2RlQmxvY2ssIEpJ
VENvZGU6OkRGR0pJVCwgaW5saW5lQ2FsbEZyYW1lKCktPmNhbGxlcik7CisgICAgICAgICAgICBk
dW1wTGlzdC5hcHBlbmQoaW5mbyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZHVtcExp
c3QuYXBwZW5kKFNvdXJjZUR1bXBJbmZvKGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCkpKTsK
KyAgICB9CisKKyAgICBpZiAoT3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkpIHsKICAg
ICAgICAgZGF0YUxvZygiUGFyc2luZyAiLCAqY29kZUJsb2NrKTsKICAgICAgICAgaWYgKGlubGlu
ZUNhbGxGcmFtZSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKApAQCAtNDA1MSwxNiArNDA1OCw4
IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQ29kZUJsb2NrKCkKICAgICAgICAgZGF0YUxv
ZygKICAgICAgICAgICAgICI6IG5lZWRzQWN0aXZhdGlvbiA9ICIsIGNvZGVCbG9jay0+bmVlZHNB
Y3RpdmF0aW9uKCksCiAgICAgICAgICAgICAiLCBpc1N0cmljdE1vZGUgPSAiLCBjb2RlQmxvY2st
Pm93bmVyRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSwgIlxuIik7Ci0gICAgfQotCi0gICAg
aWYgKHNob3VsZER1bXBTb3VyY2UpIHsKLSAgICAgICAgZGF0YUxvZygiPT09PSBiZWdpbiBzb3Vy
Y2UgPT09PVxuIik7Ci0gICAgICAgIGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCktPmR1bXBT
b3VyY2UoKTsKLSAgICAgICAgZGF0YUxvZygiXG49PT09IGVuZCBzb3VyY2UgPT09PVxuXG4iKTsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKHNob3VsZER1bXBCeXRlY29kZSkKICAgICAgICAgY29kZUJs
b2NrLT5iYXNlbGluZVZlcnNpb24oKS0+ZHVtcEJ5dGVjb2RlKCk7CisgICAgfQogICAgIAogICAg
IFZlY3Rvcjx1bnNpZ25lZCwgMzI+IGp1bXBUYXJnZXRzOwogICAgIGNvbXB1dGVQcmVjaXNlSnVt
cFRhcmdldHMoY29kZUJsb2NrLCBqdW1wVGFyZ2V0cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxODI5NzgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw5ICsxMDEs
OSBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgUmVmUHRyPFBs
YW4+IHBsYW4gPSBhZG9wdFJlZigKICAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBwcm9maWxl
ZERGR0NvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFs
dWVzKSk7CiAgICAgCisgICAgcGxhbi0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBpZiAoT3B0
aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpKSB7CiAgICAgICAgIFdvcmtsaXN0KiB3b3JrbGlz
dCA9IGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9yKG1vZGUpOwotICAgICAgICBwbGFuLT5jYWxsYmFj
ayA9IGNhbGxiYWNrOwogICAgICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFuZ2VzKG1vZGUpKQog
ICAgICAgICAgICAgZGF0YUxvZygiRGVmZXJyaW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29k
ZUJsb2NrLCAiIHdpdGggcXVldWUgbGVuZ3RoICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAi
LlxuIik7CiAgICAgICAgIHdvcmtsaXN0LT5lbnF1ZXVlKHBsYW4pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251089</attachid>
            <date>2015-04-18 03:54:14 -0700</date>
            <delta_ts>2015-04-20 12:01:17 -0700</delta_ts>
            <desc>patch 3: no race condition + build file fixes</desc>
            <filename>bug-143898.patch</filename>
            <type>text/plain</type>
            <size>23867</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyOTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE1LTA0LTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYXNzZXJ0aW9uIGZhaWx1cmUgYW5kIHJhY2UgY29uZGl0aW9uIGluIE9wdGlvbnM6OmR1bXBT
b3VyY2VBdERGR1RpbWUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0Mzg5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvZGVCbG9jazo6ZHVtcFNvdXJjZSgpIHdpbGwgYWNjZXNzIFNvdXJjZUNvZGUg
c3RyaW5ncyBpbiBhIHdheSB0aGF0IHJlcXVpcmVzCisgICAgICAgIHJlZidpbmcgb2YgdGhlIHVu
ZGVybHlpbmcgU3RyaW5nSW1wbHMuIFRoaXMgaXMgdW5zYWZlIHRvIGRvIGZyb20gYXJiaXRyYXJ5
CisgICAgICAgIGNvbXBpbGF0aW9uIHRocmVhZHMgYmVjYXVzZSBTdHJpbmdJbXBscyBhcmUgbm90
IHRocmVhZCBzYWZlLiBBcyBhIHJlc3VsdCwgd2UgZ2V0CisgICAgICAgIGFuIGFzc2VydGlvbiBm
YWlsdXJlIHdoZW4gd2UgcnVuIHdpdGggSlNDX2R1bXBTb3VyY2VBdERGR1RpbWU9dHJ1ZSBvbiBh
IGRlYnVnCisgICAgICAgIGJ1aWxkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGlz
c3VlIGJ5IG9ubHkgY29sbGVjdGluZyB0aGUgQ29kZUJsb2NrIChhbmQgYXNzb2NpYXRlZCBpbmZv
KQorICAgICAgICBpbnRvIGEgU291cmNlRHVtcEluZm8gcmVjb3JkIHdoaWxlIGNvbXBpbGluZywg
YW5kIHN0YXNoaW5nIGl0IGF3YXkgaW4gYQorICAgICAgICBzb3VyY2VEdW1wSW5mbyBsaXN0IGlu
IHRoZSBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgb2JqZWN0IHRvIGJlIGR1bXBlZCBsYXRl
ci4KKworICAgICAgICBXaGVuIGNvbXBpbGF0aW9uIGlzIGRvbmUsIHRoZSBjYWxsYmFjayBvYmpl
Y3Qgd2lsbCBiZSBub3RpZmllZCB0aGF0CisgICAgICAgIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUo
KS4gIFdlIHdpbGwgZHVtcCB0aGUgU291cmNlQ29kZSBzdHJpbmdzIGZyb20gdGhlcmUuIAorICAg
ICAgICBTaW5jZSBjb21waWxhdGlvbkRpZENvbXBsZXRlKCkgaXMgZ3VhcmFudGVlZCB0byBvbmx5
IGJlIGNhbGxlZCBvbiB0aGUgdGhyZWFkCisgICAgICAgIGRvaW5nIEpTIGV4ZWN1dGlvbiwgaXQg
aXMgc2FmZSB0byBhY2Nlc3MgdGhlIFNvdXJjZUNvZGUgc3RyaW5ncyB0aGVyZSBhbmQgcmVmCisg
ICAgICAgIHRoZWlyIHVuZGVybHlpbmcgU3RyaW5nSW1wbHMgYXMgbmVlZGVkLiAgICAgICAgCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9EZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s6OmNvbXBpbGF0aW9uRGlkQ29tcGxldGUpOgorICAgICAgICAoSlNDOjpE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OnNvdXJjZUR1bXBJbmZvKToKKyAgICAgICAgKEpT
Qzo6RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpkdW1wQ29tcGlsZWRTb3VyY2VzKToKKyAg
ICAgICAgKiBieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaDoKKyAgICAgICAg
KiBieXRlY29kZS9Tb3VyY2VEdW1wSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpTb3Vy
Y2VEdW1wSW5mbzo6U291cmNlRHVtcEluZm8pOgorICAgICAgICAoSlNDOjpTb3VyY2VEdW1wSW5m
bzo6ZHVtcCk6CisgICAgICAgICogYnl0ZWNvZGUvU291cmNlRHVtcEluZm8uaDogQWRkZWQuCisg
ICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6cGFyc2VDb2RlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdEcml2ZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGVJbXBsKToKKwogMjAxNS0wNC0xNyAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2Vk
IEJvdW5kc0NoZWNrZWRQb2ludGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAxODI5ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3Jl
X1NPVVJDRVMKICAgICBieXRlY29kZS9QdXRCeUlkVmFyaWFudC5jcHAKICAgICBieXRlY29kZS9S
ZWR1Y2VXaGl0ZXNwYWNlLmNwcAogICAgIGJ5dGVjb2RlL1NhbXBsaW5nVG9vbC5jcHAKKyAgICBi
eXRlY29kZS9Tb3VyY2VEdW1wSW5mby5jcHAKICAgICBieXRlY29kZS9TcGVjaWFsUG9pbnRlci5j
cHAKICAgICBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKICAgICBieXRlY29kZS9TdHJ1Y3R1
cmVTZXQuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJl
dmlzaW9uIDE4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM0Myw2ICsz
NDMsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcUHV0QnlJZFZhcmlh
bnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcUmVkdWNlV2hp
dGVzcGFjZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRlY29kZVxTYW1w
bGluZ1Rvb2wuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcU291
cmNlRHVtcEluZm8uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVc
U3BlY2lhbFBvaW50ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNv
ZGVcU3BlY3VsYXRlZFR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0
ZWNvZGVcU3RydWN0dXJlU2V0LmNwcCIgLz4KQEAgLTk5NCw2ICs5OTUsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcUHV0S2luZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYnl0ZWNvZGVcUmVkdWNlV2hpdGVzcGFjZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcU2FtcGxpbmdUb29sLmgiIC8+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxieXRlY29kZVxTb3VyY2VEdW1wSW5mby5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcU3BlY2lhbFBvaW50ZXIuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGJ5dGVjb2RlXFNwZWN1bGF0ZWRUeXBlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxieXRlY29kZVxTdHJ1Y3R1cmVTZXQuaCIgLz4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9u
IDE4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMTAzNSw2
ICsxMDM1LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJ5dGVjb2RlXERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5jcHAiPgogICAgICAgPEZpbHRlcj5ieXRlY29kZTwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVc
U291cmNlRHVtcEluZm8uY3BwIj4KKyAgICAgIDxGaWx0ZXI+Ynl0ZWNvZGU8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdDb21waWxh
dGlvbktleS5jcHAiPgogICAgICAgPEZpbHRlcj5kZmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KQEAgLTMzMDAsNiArMzMwMyw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxieXRl
Y29kZVxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCI+CiAgICAgICA8RmlsdGVyPmJ5dGVj
b2RlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxieXRlY29kZVxTb3VyY2VEdW1wSW5mby5oIj4KKyAgICAgIDxGaWx0ZXI+Ynl0ZWNvZGU8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xE
RkdDb21waWxhdGlvbktleS5oIj4KICAgICAgIDxGaWx0ZXI+ZGZnPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTgy
OTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2NDIsMTIgKzE2NDIsMTQgQEAKIAkJ
RkUwRDRBMDkxQUJBMjQzNzAwMkY1NEJGIC8qIEdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTBE
NEEwNzFBQkEyNDM3MDAyRjU0QkYgLyogR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNw
cCAqLzsgfTsKIAkJRkUyMENFOUQxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyMENFOUIxNUYw
NEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwICovOyB9OwogCQlGRTIwQ0U5RTE1RjA0QTk1
MDBERjM0MzAgLyogTExJbnRDTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkUyMENFOUMxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRTRCRkYy
QjFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QkZGMjkxQUQ0NzZFNzAwMDg4Rjg3
IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCAqLzsgfTsKLQkJRkU0QkZGMkMxQUQ0NzZFNzAwMDg4
Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRTRCRkYyQTFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVy
cmlkZXMuaCAqLzsgfTsKIAkJRkUzODRFRTUxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzODRF
RTExQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk0uY3BwICovOyB9OwogCQlGRTM4NEVFNjFB
RERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzODRFRTIxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFy
Vk0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
RTM4NEVFNzFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM4NEVFMzFBRERCN0FE
MDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAgKi87IH07CiAJCUZFMzg0RUU4MUFE
REI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM4NEVFNDFBRERCN0FEMDA1NURFMkMgLyog
SlNEb2xsYXJWTVByb3RvdHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUZFNEJGRjJCMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJy
aWRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RTRCRkYyOTFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuY3BwICovOyB9Owor
CQlGRTRCRkYyQzFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEJGRjJBMUFENDc2RTcw
MDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5oICovOyB9OworCQlGRTUwNjg2NTFBRTI0NjM5
MDAwOURBQjcgLyogU291cmNlRHVtcEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFNTA2ODY0MUFFMjQ2MzkwMDA5REFCNyAvKiBTb3VyY2VEdW1w
SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUZFNTA2ODY3MUFFMjVFMjgwMDA5REFCNyAvKiBTb3VyY2VEdW1wSW5mby5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTUwNjg2NjFBRTI1RTI4MDAw
OURBQjcgLyogU291cmNlRHVtcEluZm8uY3BwICovOyB9OwogCQlGRTU5MzJBNzE4M0M1QTI2MDBB
MUVDQ0MgLyogVk1FbnRyeVNjb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFNTkzMkE1MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUu
Y3BwICovOyB9OwogCQlGRTU5MzJBODE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTU5MzJBNjE4
M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhl
YXBWZXJpZmllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRTdCQTYwRDFBMUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLzsgfTsK
QEAgLTMxNTcsNyArMzE1OSw3IEBACiAJCUE3QzFFOEM4MTEyRTcwMUMwMEEzN0Y5OCAvKiBKSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0MxRUFFQTE3OTg3QUI2MDAyOTlEQjIgLyogQ2FsbEZyYW1lSW5saW5lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsRnJhbWVJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzFFQUVCMTc5ODdBQjYwMDI5OURCMiAvKiBKU1N0YWNr
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0YWNrSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBN0MxRUFFQzE3OTg3QUI2MDAyOTlE
QjIgLyogU3RhY2tWaXNpdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGlu
ZUVuZGluZyA9IDA7IHBhdGggPSBTdGFja1Zpc2l0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsg
fTsKKwkJQTdDMUVBRUMxNzk4N0FCNjAwMjk5REIyIC8qIFN0YWNrVmlzaXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gU3RhY2tWaXNp
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMUVBRUQxNzk4N0FCNjAw
Mjk5REIyIC8qIFN0YWNrVmlzaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdGFja1Zpc2l0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMjI1Q0Mx
Mzk5ODFGMTAwRkYxNjYyIC8qIEtleXdvcmRMb29rdXBHZW5lcmF0b3IucHkgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBLZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MyMjVDRDEzOTk4NDlDMDBGRjE2NjIgLyogS2V5
d29yZExvb2t1cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXl3b3JkTG9v
a3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDIyLDEyICszNDI0LDE0IEBA
CiAJCUZFMEQ0QTA4MUFCQTI0MzcwMDJGNTRCRiAvKiBHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXpl
clRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2xvYmFsQ29udGV4dFdp
dGhGaW5hbGl6ZXJUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5h
bGl6ZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMjBDRTlCMTVGMDRB
OTUwMERGMzQzMCAvKiBMTEludENMb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExMSW50Q0xvb3AuY3BwOyBwYXRoID0gbGxpbnQvTExJbnRDTG9vcC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMjBDRTlDMTVGMDRBOTUwMERGMzQzMCAvKiBM
TEludENMb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50Q0xvb3Au
aDsgcGF0aCA9IGxsaW50L0xMSW50Q0xvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRkU0QkZGMjkxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8q
IEZ1bmN0aW9uT3ZlcnJpZGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZ1
bmN0aW9uT3ZlcnJpZGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzg0RUUx
MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRG9sbGFyVk0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRTM4NEVFMjFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RvbGxhclZNLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFMzg0RUUzMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9sbGFyVk1Qcm90
b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTM4NEVFNDFBRERCN0FE
MDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0RvbGxhclZNUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUZFNEJGRjI5MUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdW5jdGlvbk92ZXJyaWRlcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFNEJGRjJBMUFENDc2RTcwMDA4OEY4
NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGdW5jdGlvbk92ZXJyaWRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRTUw
Njg2NDFBRTI0NjM5MDAwOURBQjcgLyogU291cmNlRHVtcEluZm8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU291cmNlRHVtcEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRkU1MDY4NjYxQUUyNUUyODAwMDlEQUI3IC8qIFNvdXJjZUR1bXBJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUR1bXBJbmZvLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU1OTMyQTUxODNDNUEyNjAwQTFFQ0NDIC8q
IFZNRW50cnlTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBW
TUVudHJ5U2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTU5MzJBNjE4
M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZNRW50cnlTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
RTdCQTYwRDFBMUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhlYXBWZXJpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MjY3LDYgKzUyNzEsOCBAQAogCQkJCTBGRjYwQUMwMTY3NDBGODEw
MDAyOTc3OSAvKiBSZWR1Y2VXaGl0ZXNwYWNlLmggKi8sCiAJCQkJMTQyOUQ4ODMwRUQyMUMzRDAw
Qjg5NjE5IC8qIFNhbXBsaW5nVG9vbC5jcHAgKi8sCiAJCQkJMTQyOUQ4ODQwRUQyMUMzRDAwQjg5
NjE5IC8qIFNhbXBsaW5nVG9vbC5oICovLAorCQkJCUZFNTA2ODY2MUFFMjVFMjgwMDA5REFCNyAv
KiBTb3VyY2VEdW1wSW5mby5jcHAgKi8sCisJCQkJRkU1MDY4NjQxQUUyNDYzOTAwMDlEQUI3IC8q
IFNvdXJjZUR1bXBJbmZvLmggKi8sCiAJCQkJMEY1NTQxQUYxNjEzQzFGQjAwQ0UzRTI1IC8qIFNw
ZWNpYWxQb2ludGVyLmNwcCAqLywKIAkJCQkwRjU1NDFCMDE2MTNDMUZCMDBDRTNFMjUgLyogU3Bl
Y2lhbFBvaW50ZXIuaCAqLywKIAkJCQkwRkQ4MkU4NDE0MUYzRkRBMDAxNzlDOTQgLyogU3BlY3Vs
YXRlZFR5cGUuY3BwICovLApAQCAtNTU1Miw2ICs1NTU4LDcgQEAKIAkJCQk4NkQzQjJDNDEwMTU2
QkRFMDAyODY1RTcgLyogQVJNQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAy
ODFBQTkwOTU2MDBEMzNCMzMgLyogU2NvcGVkQXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MkMwNjExRjFBQTUxRTFDMDBCNEFEQkEgLyogUnVudGltZVR5cGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCUZFNTA2ODY1MUFFMjQ2MzkwMDA5REFCNyAvKiBTb3VyY2VEdW1wSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzQ0MkNCMjUxQTZDREI4QzAwNUQzRDdDIC8qIEpTSW5wdXRzLmpzb24g
aW4gSGVhZGVycyAqLywKIAkJCQk1MjY3OEY5MTFBMDQxNzdDMDA2QTMwNkQgLyogQ29udHJvbEZs
b3dQcm9maWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2NzhGOEYxQTAzMTAwOTAwNkEzMDZE
IC8qIEJhc2ljQmxvY2tMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDc1LDYgKzcwODIs
NyBAQAogCQkJCUE3RDg5Q0ZEMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdPU1JBdmFpbGFiaWxpdHlB
bmFseXNpc1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTU2MTQxREFGMDgwMDE3
OUM5NCAvKiBERkdPU1JFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyNTE3RDUx
RjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRkU1MDY4NjcxQUUyNUUyODAwMDlEQUI3IC8qIFNvdXJjZUR1bXBJbmZvLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5NzkxMTQ2QTZGNzEwMENGMjQ0MiAvKiBERkdPU1JF
eGl0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkVCMTcxNzhFNzMwMDY5MEM3RiAvKiBE
RkdPU1JFeGl0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTc5MjE0NkE2RjczMDBD
RjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5jcHAJKHJldmlzaW9uIDE4Mjk4MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSw5IEBAIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6
fkRlZmVycmVkQ28KIAogdm9pZCBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNvbXBpbGF0
aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9uUmVzdWx0IHJl
c3VsdCkKIHsKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6ZHVtcFNvdXJjZUF0REZHVGltZSgp
KSkKKyAgICAgICAgZHVtcENvbXBpbGVkU291cmNlcygpOworCiAgICAgc3dpdGNoIChyZXN1bHQp
IHsKICAgICBjYXNlIENvbXBpbGF0aW9uRmFpbGVkOgogICAgIGNhc2UgQ29tcGlsYXRpb25JbnZh
bGlkYXRlZDoKQEAgLTQ3LDUgKzUwLDI1IEBAIHZvaWQgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrOjpjb21waWwKICAgICB9CiB9CiAKK1ZlY3RvcjxTb3VyY2VEdW1wSW5mbz4mIERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjazo6c291cmNlRHVtcEluZm8oKQoreworICAgIGlmICghbV9zb3Vy
Y2VEdW1wSW5mbykKKyAgICAgICAgbV9zb3VyY2VEdW1wSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8
VmVjdG9yPFNvdXJjZUR1bXBJbmZvPj4oKTsKKyAgICByZXR1cm4gKm1fc291cmNlRHVtcEluZm87
Cit9CisKK3ZvaWQgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpkdW1wQ29tcGlsZWRTb3Vy
Y2VzKCkKK3sKKyAgICBpZiAoIW1fc291cmNlRHVtcEluZm8pCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8mIGR1bXBJbmZvTGlzdCA9IHNvdXJjZUR1bXBJbmZvKCk7CisgICAgdW5zaWduZWQg
aW5kZXggPSAwOworICAgIGZvciAoYXV0byYgaW5mbyA6IGR1bXBJbmZvTGlzdCkgeworICAgICAg
ICBkYXRhTG9nKCJbIiwgKytpbmRleCwgIl0gIik7CisgICAgICAgIGluZm8uZHVtcCgpOworICAg
IH0KK30KKwogfSAvLyBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAkocmV2aXNp
b24gMTgyOTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw5IEBACiAjZGVm
aW5lIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFja19oCiAKICNpbmNsdWRlICJDb21waWxhdGlv
blJlc3VsdC5oIgorI2luY2x1ZGUgIlNvdXJjZUR1bXBJbmZvLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0Mgewog
CkBAIC00Miw2ICs0NCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRp
b25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayopID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJl
c3VsdCk7CisKKyAgICBWZWN0b3I8U291cmNlRHVtcEluZm8+JiBzb3VyY2VEdW1wSW5mbygpOwor
Citwcml2YXRlOgorICAgIHZvaWQgZHVtcENvbXBpbGVkU291cmNlcygpOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxTb3VyY2VEdW1wSW5mbz4+IG1fc291cmNlRHVtcEluZm87CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Tb3VyY2VEdW1wSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NvdXJjZUR1bXBJbmZvLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Tb3VyY2VEdW1wSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VyY2VEdW1wSW5mby5oIgorCisj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK1NvdXJjZUR1bXBJbmZvOjpTb3VyY2VEdW1wSW5mbyhDb2Rl
QmxvY2sqIGNvZGVCbG9jaykKKyAgICA6IG1fY29kZUJsb2NrKGNvZGVCbG9jaykKKyAgICAsIG1f
cm9vdENvZGVCbG9jayhudWxscHRyKQorICAgICwgbV9yb290SklUVHlwZShKSVRDb2RlOjpOb25l
KQoreworfQorCitTb3VyY2VEdW1wSW5mbzo6U291cmNlRHVtcEluZm8oQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVCbG9jayogcm9vdENvZGVCbG9jaywgSklUQ29kZTo6SklUVHlwZSByb290SklU
VHlwZSwgQ29kZU9yaWdpbiBjYWxsZXJDb2RlT3JpZ2luKQorICAgIDogbV9jb2RlQmxvY2soY29k
ZUJsb2NrKQorICAgICwgbV9yb290Q29kZUJsb2NrKHJvb3RDb2RlQmxvY2spCisgICAgLCBtX3Jv
b3RKSVRUeXBlKHJvb3RKSVRUeXBlKQorICAgICwgbV9jYWxsZXJDb2RlT3JpZ2luKGNhbGxlckNv
ZGVPcmlnaW4pCit7Cit9CisKK3ZvaWQgU291cmNlRHVtcEluZm86OmR1bXAoKQoreworICAgIGJv
b2wgaXNJbmxpbmVkRnJhbWUgPSAhIW1fcm9vdENvZGVCbG9jazsKKyAgICBpZiAoaXNJbmxpbmVk
RnJhbWUpCisgICAgICAgIGRhdGFMb2coIklubGluZWQgIik7CisgICAgZWxzZQorICAgICAgICBk
YXRhTG9nKCJDb21waWxlZCAiKTsKKyAgICBkYXRhTG9nKCptX2NvZGVCbG9jayk7CisKKyAgICBp
ZiAoaXNJbmxpbmVkRnJhbWUpCisgICAgICAgIGRhdGFMb2coIiBhdCAiLCBDb2RlQmxvY2tXaXRo
SklUVHlwZShtX3Jvb3RDb2RlQmxvY2ssIG1fcm9vdEpJVFR5cGUpLCAiICIsIG1fY2FsbGVyQ29k
ZU9yaWdpbik7CisKKyAgICBkYXRhTG9nKCJcbicnJyIpOworICAgIG1fY29kZUJsb2NrLT5kdW1w
U291cmNlKCk7CisgICAgZGF0YUxvZygiJycnXG4iKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU291cmNlRHVtcEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU291cmNlRHVtcElu
Zm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Tb3Vy
Y2VEdW1wSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNvdXJjZUR1bXBJbmZv
X2gKKyNkZWZpbmUgU291cmNlRHVtcEluZm9faAorCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgor
I2luY2x1ZGUgIkpJVENvZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENvZGVCbG9j
azsKKworY2xhc3MgU291cmNlRHVtcEluZm8geworcHVibGljOgorICAgIFNvdXJjZUR1bXBJbmZv
KENvZGVCbG9jayopOworICAgIFNvdXJjZUR1bXBJbmZvKENvZGVCbG9jayosIENvZGVCbG9jayog
cm9vdENvZGVCbG9jaywgSklUQ29kZTo6SklUVHlwZSByb290SklUVHlwZSwgQ29kZU9yaWdpbiBj
YWxsZXJDb2RlT3JpZ2luKTsKKworICAgIHZvaWQgZHVtcCgpOworCitwcml2YXRlOgorICAgIENv
ZGVCbG9jayogbV9jb2RlQmxvY2s7CisgICAgQ29kZUJsb2NrKiBtX3Jvb3RDb2RlQmxvY2s7Cisg
ICAgSklUQ29kZTo6SklUVHlwZSBtX3Jvb3RKSVRUeXBlOworICAgIENvZGVPcmlnaW4gbV9jYWxs
ZXJDb2RlT3JpZ2luOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBTb3Vy
Y2VEdW1wSW5mb19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTgyOTgyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMzksOSAr
NDAzOSwxNiBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUNvZGVCbG9jaygpCiAgICAgICAg
ICAgICAqbV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLCBtX2lubGluZVN0YWNrVG9wLT5tX3By
b2ZpbGVkQmxvY2spOwogICAgIH0KICAgICAKLSAgICBib29sIHNob3VsZER1bXBTb3VyY2UgPSBP
cHRpb25zOjpkdW1wU291cmNlQXRERkdUaW1lKCk7Ci0gICAgYm9vbCBzaG91bGREdW1wQnl0ZWNv
ZGUgPSBPcHRpb25zOjpkdW1wQnl0ZWNvZGVBdERGR1RpbWUoKTsKLSAgICBpZiAoc2hvdWxkRHVt
cFNvdXJjZSB8fCBzaG91bGREdW1wQnl0ZWNvZGUpIHsKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9u
czo6ZHVtcFNvdXJjZUF0REZHVGltZSgpKSkgeworICAgICAgICBWZWN0b3I8U291cmNlRHVtcElu
Zm8+JiBkdW1wTGlzdCA9IG1fZ3JhcGgubV9wbGFuLmNhbGxiYWNrLT5zb3VyY2VEdW1wSW5mbygp
OworICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lKCkpIHsKKyAgICAgICAgICAgIFNvdXJjZUR1
bXBJbmZvIGluZm8oY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgbV9jb2RlQmxvY2ssIEpJ
VENvZGU6OkRGR0pJVCwgaW5saW5lQ2FsbEZyYW1lKCktPmNhbGxlcik7CisgICAgICAgICAgICBk
dW1wTGlzdC5hcHBlbmQoaW5mbyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZHVtcExp
c3QuYXBwZW5kKFNvdXJjZUR1bXBJbmZvKGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCkpKTsK
KyAgICB9CisKKyAgICBpZiAoT3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkpIHsKICAg
ICAgICAgZGF0YUxvZygiUGFyc2luZyAiLCAqY29kZUJsb2NrKTsKICAgICAgICAgaWYgKGlubGlu
ZUNhbGxGcmFtZSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKApAQCAtNDA1MSwxNiArNDA1OCw4
IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQ29kZUJsb2NrKCkKICAgICAgICAgZGF0YUxv
ZygKICAgICAgICAgICAgICI6IG5lZWRzQWN0aXZhdGlvbiA9ICIsIGNvZGVCbG9jay0+bmVlZHNB
Y3RpdmF0aW9uKCksCiAgICAgICAgICAgICAiLCBpc1N0cmljdE1vZGUgPSAiLCBjb2RlQmxvY2st
Pm93bmVyRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSwgIlxuIik7Ci0gICAgfQotCi0gICAg
aWYgKHNob3VsZER1bXBTb3VyY2UpIHsKLSAgICAgICAgZGF0YUxvZygiPT09PSBiZWdpbiBzb3Vy
Y2UgPT09PVxuIik7Ci0gICAgICAgIGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCktPmR1bXBT
b3VyY2UoKTsKLSAgICAgICAgZGF0YUxvZygiXG49PT09IGVuZCBzb3VyY2UgPT09PVxuXG4iKTsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKHNob3VsZER1bXBCeXRlY29kZSkKICAgICAgICAgY29kZUJs
b2NrLT5iYXNlbGluZVZlcnNpb24oKS0+ZHVtcEJ5dGVjb2RlKCk7CisgICAgfQogICAgIAogICAg
IFZlY3Rvcjx1bnNpZ25lZCwgMzI+IGp1bXBUYXJnZXRzOwogICAgIGNvbXB1dGVQcmVjaXNlSnVt
cFRhcmdldHMoY29kZUJsb2NrLCBqdW1wVGFyZ2V0cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lvbiAxODI5ODIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw5ICsxMDEs
OSBAQCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgUmVmUHRyPFBs
YW4+IHBsYW4gPSBhZG9wdFJlZigKICAgICAgICAgbmV3IFBsYW4oY29kZUJsb2NrLCBwcm9maWxl
ZERGR0NvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFs
dWVzKSk7CiAgICAgCisgICAgcGxhbi0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBpZiAoT3B0
aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpKSB7CiAgICAgICAgIFdvcmtsaXN0KiB3b3JrbGlz
dCA9IGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9yKG1vZGUpOwotICAgICAgICBwbGFuLT5jYWxsYmFj
ayA9IGNhbGxiYWNrOwogICAgICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFuZ2VzKG1vZGUpKQog
ICAgICAgICAgICAgZGF0YUxvZygiRGVmZXJyaW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29k
ZUJsb2NrLCAiIHdpdGggcXVldWUgbGVuZ3RoICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAi
LlxuIik7CiAgICAgICAgIHdvcmtsaXN0LT5lbnF1ZXVlKHBsYW4pOwo=
</data>
<flag name="review"
          id="275886"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251181</attachid>
            <date>2015-04-20 12:01:17 -0700</date>
            <delta_ts>2015-04-22 19:08:32 -0700</delta_ts>
            <desc>patch 4: applied Geoff&apos;s feedback.</desc>
            <filename>bug-143898.patch</filename>
            <type>text/plain</type>
            <size>24202</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyOTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDE1LTA0LTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYXNzZXJ0aW9uIGZhaWx1cmUgYW5kIHJhY2UgY29uZGl0aW9uIGluIE9wdGlvbnM6OmR1bXBT
b3VyY2VBdERGR1RpbWUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0Mzg5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvZGVCbG9jazo6ZHVtcFNvdXJjZSgpIHdpbGwgYWNjZXNzIFNvdXJjZUNvZGUg
c3RyaW5ncyBpbiBhIHdheSB0aGF0IHJlcXVpcmVzCisgICAgICAgIHJlZidpbmcgb2YgdGhlIHVu
ZGVybHlpbmcgU3RyaW5nSW1wbHMuIFRoaXMgaXMgdW5zYWZlIHRvIGRvIGZyb20gYXJiaXRyYXJ5
CisgICAgICAgIGNvbXBpbGF0aW9uIHRocmVhZHMgYmVjYXVzZSBTdHJpbmdJbXBscyBhcmUgbm90
IHRocmVhZCBzYWZlLiBBcyBhIHJlc3VsdCwgd2UgZ2V0CisgICAgICAgIGFuIGFzc2VydGlvbiBm
YWlsdXJlIHdoZW4gd2UgcnVuIHdpdGggSlNDX2R1bXBTb3VyY2VBdERGR1RpbWU9dHJ1ZSBvbiBh
IGRlYnVnCisgICAgICAgIGJ1aWxkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGlz
c3VlIGJ5IG9ubHkgY29sbGVjdGluZyB0aGUgQ29kZUJsb2NrIChhbmQgYXNzb2NpYXRlZCBpbmZv
KQorICAgICAgICBpbnRvIGEgRGVmZXJyZWRTb3VyY2VEdW1wIHJlY29yZCB3aGlsZSBjb21waWxp
bmcsIGFuZCBzdGFzaGluZyBpdCBhd2F5IGluIGEKKyAgICAgICAgZGVmZXJyZWRTb3VyY2VEdW1w
IGxpc3QgaW4gdGhlIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayBvYmplY3QgdG8gYmUgZHVt
cGVkCisgICAgICAgIGxhdGVyLgorCisgICAgICAgIFdoZW4gY29tcGlsYXRpb24gaXMgZG9uZSwg
dGhlIGNhbGxiYWNrIG9iamVjdCB3aWxsIGJlIG5vdGlmaWVkIHRoYXQKKyAgICAgICAgY29tcGls
YXRpb25EaWRDb21wbGV0ZSgpLiAgV2Ugd2lsbCBkdW1wIHRoZSBTb3VyY2VDb2RlIHN0cmluZ3Mg
ZnJvbSB0aGVyZS4gCisgICAgICAgIFNpbmNlIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoKSBpcyBn
dWFyYW50ZWVkIHRvIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSB0aHJlYWQKKyAgICAgICAgZG9pbmcg
SlMgZXhlY3V0aW9uLCBpdCBpcyBzYWZlIHRvIGFjY2VzcyB0aGUgU291cmNlQ29kZSBzdHJpbmdz
IHRoZXJlIGFuZCByZWYKKyAgICAgICAgdGhlaXIgdW5kZXJseWluZyBTdHJpbmdJbXBscyBhcyBu
ZWVkZWQuICAgICAgICAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJ5dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChK
U0M6OkRlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGlsYXRpb25EaWRDb21wbGV0ZSk6
CisgICAgICAgIChKU0M6OkRlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6c291cmNlRHVtcElu
Zm8pOgorICAgICAgICAoSlNDOjpEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmR1bXBDb21w
aWxlZFNvdXJjZXMpOgorICAgICAgICAqIGJ5dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oOgorICAgICAgICAqIGJ5dGVjb2RlL0RlZmVycmVkU291cmNlRHVtcC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpEZWZlcnJlZFNvdXJjZUR1bXA6OkRlZmVycmVkU291cmNlRHVtcCk6
CisgICAgICAgIChKU0M6OkRlZmVycmVkU291cmNlRHVtcDo6ZHVtcCk6CisgICAgICAgICogYnl0
ZWNvZGUvRGVmZXJyZWRTb3VyY2VEdW1wLmg6IEFkZGVkLgorICAgICAgICAqIGRmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNl
Q29kZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHRHJpdmVyLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpjb21waWxlSW1wbCk6CisKIDIwMTUtMDQtMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBCb3VuZHNDaGVja2VkUG9pbnRl
cgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTgyOTgy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC03OSw2ICs3OSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYnl0ZWNv
ZGUvQ29uc3RhbnRTdHJ1Y3R1cmVDaGVjay5jcHAKICAgICBieXRlY29kZS9ERkdFeGl0UHJvZmls
ZS5jcHAKICAgICBieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisgICAg
Ynl0ZWNvZGUvRGVmZXJyZWRTb3VyY2VEdW1wLmNwcAogICAgIGJ5dGVjb2RlL0V4ZWN1dGlvbkNv
dW50ZXIuY3BwCiAgICAgYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCiAgICAgYnl0ZWNvZGUvRXhpdGlu
Z0pJVFR5cGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJ
KHJldmlzaW9uIDE4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMyNSw2
ICszMjUsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcQ29tcGxleEdl
dFN0YXR1cy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRlY29kZVxDb25z
dGFudFN0cnVjdHVyZUNoZWNrLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJ5
dGVjb2RlXERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAiIC8+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxieXRlY29kZVxEZWZlcnJlZFNvdXJjZUR1bXAuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcREZHRXhpdFByb2ZpbGUuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcRXhlY3V0aW9uQ291bnRlci5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRlY29kZVxFeGl0S2luZC5jcHAiIC8+CkBA
IC05NzAsNiArOTcxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJ5dGVjb2RlXENv
bnN0YW50U3RydWN0dXJlQ2hlY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJ5
dGVjb2RlXERhdGFGb3JtYXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJ5dGVj
b2RlXERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cYnl0ZWNvZGVcRGVmZXJyZWRTb3VyY2VEdW1wLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxieXRlY29kZVxERkdFeGl0UHJvZmlsZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcRXZhbENvZGVDYWNoZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcRXhlY3V0aW9uQ291bnRlci5oIiAvPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNp
b24gMTgyOTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0xMDM1
LDYgKzEwMzUsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnl0ZWNvZGVcRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCI+CiAgICAgICA8RmlsdGVyPmJ5dGVjb2RlPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRlY29k
ZVxEZWZlcnJlZFNvdXJjZUR1bXAuY3BwIj4KKyAgICAgIDxGaWx0ZXI+Ynl0ZWNvZGU8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdD
b21waWxhdGlvbktleS5jcHAiPgogICAgICAgPEZpbHRlcj5kZmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTMzMDAsNiArMzMwMyw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxieXRlY29kZVxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCI+CiAgICAgICA8RmlsdGVy
PmJ5dGVjb2RlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxieXRlY29kZVxEZWZlcnJlZFNvdXJjZUR1bXAuaCI+CisgICAgICA8RmlsdGVyPmJ5
dGVjb2RlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkZmdcREZHQ29tcGlsYXRpb25LZXkuaCI+CiAgICAgICA8RmlsdGVyPmRmZzwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDE4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQyLDEyICsxNjQy
LDE0IEBACiAJCUZFMEQ0QTA5MUFCQTI0MzcwMDJGNTRCRiAvKiBHbG9iYWxDb250ZXh0V2l0aEZp
bmFsaXplclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkUwRDRBMDcxQUJBMjQzNzAwMkY1NEJGIC8qIEdsb2JhbENvbnRleHRXaXRoRmluYWxp
emVyVGVzdC5jcHAgKi87IH07CiAJCUZFMjBDRTlEMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENM
b29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
MjBDRTlCMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmNwcCAqLzsgfTsKIAkJRkUyMENF
OUUxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMjBDRTlDMTVGMDRBOTUwMERGMzQzMCAvKiBMTElu
dENMb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJRkU0QkZGMkIxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEJGRjI5MUFENDc2
RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgKi87IH07Ci0JCUZFNEJGRjJDMUFE
NDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1
bmN0aW9uT3ZlcnJpZGVzLmggKi87IH07CiAJCUZFMzg0RUU1MUFEREI3QUQwMDU1REUyQyAvKiBK
U0RvbGxhclZNLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFMzg0RUUxMUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmNwcCAqLzsgfTsKIAkJ
RkUzODRFRTYxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMzg0RUUyMUFEREI3QUQwMDU1REUyQyAv
KiBKU0RvbGxhclZNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRkUzODRFRTcxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5cGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzODRF
RTMxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5cGUuY3BwICovOyB9OwogCQlG
RTM4NEVFODFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzODRFRTQxQUREQjdBRDAw
NTVERTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRTRCRkYyQjFBRDQ3NkU3MDAwODhGODcgLyogRnVu
Y3Rpb25PdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkU0QkZGMjkxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNw
cCAqLzsgfTsKKwkJRkU0QkZGMkMxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTRCRkYy
QTFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuaCAqLzsgfTsKKwkJRkU1MDY4
NjUxQUUyNDYzOTAwMDlEQUI3IC8qIERlZmVycmVkU291cmNlRHVtcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU1MDY4NjQxQUUyNDYzOTAwMDlEQUI3
IC8qIERlZmVycmVkU291cmNlRHVtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUZFNTA2ODY3MUFFMjVFMjgwMDA5REFCNyAvKiBEZWZlcnJlZFNv
dXJjZUR1bXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkU1MDY4NjYxQUUyNUUyODAwMDlEQUI3IC8qIERlZmVycmVkU291cmNlRHVtcC5jcHAgKi87
IH07CiAJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU1OTMyQTUxODNDNUEy
NjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgKi87IH07CiAJCUZFNTkzMkE4MTgzQzVBMjYw
MEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTdC
QTYwRjFBMUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFN0JBNjBEMUExQTdDRUMwMEYxRjdCNCAv
KiBIZWFwVmVyaWZpZXIuY3BwICovOyB9OwpAQCAtMzE1Nyw3ICszMTU5LDcgQEAKIAkJQTdDMUU4
QzgxMTJFNzAxQzAwQTM3Rjk4IC8qIEpJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzFFQUVBMTc5ODdBQjYwMDI5OURCMiAv
KiBDYWxsRnJhbWVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
bGxGcmFtZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMUVBRUIx
Nzk4N0FCNjAwMjk5REIyIC8qIEpTU3RhY2tJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU3RhY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE3QzFFQUVDMTc5ODdBQjYwMDI5OURCMiAvKiBTdGFja1Zpc2l0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IFN0YWNrVmlzaXRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OworCQlBN0MxRUFFQzE3OTg3QUI2MDAyOTlEQjIg
LyogU3RhY2tWaXNpdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVu
ZGluZyA9IDA7IHBhdGggPSBTdGFja1Zpc2l0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBN0MxRUFFRDE3OTg3QUI2MDAyOTlEQjIgLyogU3RhY2tWaXNpdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNrVmlzaXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBN0MyMjVDQzEzOTk4MUYxMDBGRjE2NjIgLyogS2V5d29yZExvb2t1
cEdlbmVyYXRvci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IEtleXdv
cmRMb29rdXBHZW5lcmF0b3IucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzIy
NUNEMTM5OTg0OUMwMEZGMTY2MiAvKiBLZXl3b3JkTG9va3VwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtleXdvcmRMb29rdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTM0MjIsMTIgKzM0MjQsMTQgQEAKIAkJRkUwRDRBMDgxQUJBMjQzNzAwMkY1NEJGIC8q
IEdsb2JhbENvbnRleHRXaXRoRmluYWxpemVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaDsgcGF0aCA9IEFQSS90
ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkUyMENFOUIxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTExJbnRDTG9vcC5jcHA7IHBhdGgg
PSBsbGludC9MTEludENMb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUy
MENFOUMxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTExJbnRDTG9vcC5oOyBwYXRoID0gbGxpbnQvTExJbnRDTG9vcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRTRCRkYyOTFBRDQ3NkU3MDAwODhGODcgLyog
RnVuY3Rpb25PdmVycmlkZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnVuY3Rpb25PdmVycmlkZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlG
RTRCRkYyQTFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnVuY3Rpb25PdmVycmlkZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUzODRFRTExQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk0u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEb2xsYXJWTS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzg0RUUyMUFEREI3QUQwMDU1REUyQyAv
KiBKU0RvbGxhclZNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRG9sbGFy
Vk0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzODRFRTMxQUREQjdBRDAwNTVE
RTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNEb2xsYXJWTVByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFMzg0RUU0MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRG9sbGFyVk1Qcm90b3R5cGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU0QkZGMjkxQUQ0NzZFNzAwMDg4Rjg3
IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZ1bmN0aW9uT3ZlcnJpZGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFNTA2ODY0MUFFMjQ2MzkwMDA5REFCNyAvKiBEZWZlcnJl
ZFNvdXJjZUR1bXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmZXJyZWRT
b3VyY2VEdW1wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFNTA2ODY2MUFFMjVF
MjgwMDA5REFCNyAvKiBEZWZlcnJlZFNvdXJjZUR1bXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGVmZXJyZWRTb3VyY2VEdW1wLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkU1OTMyQTUxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWTUVudHJ5U2NvcGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0Mg
LyogVk1FbnRyeVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZNRW50
cnlTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTdCQTYwRDFBMUE3Q0VD
MDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhlYXBWZXJpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01MjY3LDYgKzUyNzEsOCBAQAogCQkJCTBGRjYwQUMwMTY3NDBGODEwMDAyOTc3OSAvKiBSZWR1
Y2VXaGl0ZXNwYWNlLmggKi8sCiAJCQkJMTQyOUQ4ODMwRUQyMUMzRDAwQjg5NjE5IC8qIFNhbXBs
aW5nVG9vbC5jcHAgKi8sCiAJCQkJMTQyOUQ4ODQwRUQyMUMzRDAwQjg5NjE5IC8qIFNhbXBsaW5n
VG9vbC5oICovLAorCQkJCUZFNTA2ODY2MUFFMjVFMjgwMDA5REFCNyAvKiBEZWZlcnJlZFNvdXJj
ZUR1bXAuY3BwICovLAorCQkJCUZFNTA2ODY0MUFFMjQ2MzkwMDA5REFCNyAvKiBEZWZlcnJlZFNv
dXJjZUR1bXAuaCAqLywKIAkJCQkwRjU1NDFBRjE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBv
aW50ZXIuY3BwICovLAogCQkJCTBGNTU0MUIwMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9p
bnRlci5oICovLAogCQkJCTBGRDgyRTg0MTQxRjNGREEwMDE3OUM5NCAvKiBTcGVjdWxhdGVkVHlw
ZS5jcHAgKi8sCkBAIC01NTUyLDYgKzU1NTgsNyBAQAogCQkJCTg2RDNCMkM0MTAxNTZCREUwMDI4
NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDI4MUFBOTA5
NTYwMEQzM0IzMyAvKiBTY29wZWRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQzA2
MTFGMUFBNTFFMUMwMEI0QURCQSAvKiBSdW50aW1lVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RkU1MDY4NjUxQUUyNDYzOTAwMDlEQUI3IC8qIERlZmVycmVkU291cmNlRHVtcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzQ0MkNCMjUxQTZDREI4QzAwNUQzRDdDIC8qIEpTSW5wdXRzLmpzb24gaW4g
SGVhZGVycyAqLywKIAkJCQk1MjY3OEY5MTFBMDQxNzdDMDA2QTMwNkQgLyogQ29udHJvbEZsb3dQ
cm9maWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2NzhGOEYxQTAzMTAwOTAwNkEzMDZEIC8q
IEJhc2ljQmxvY2tMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDc1LDYgKzcwODIsNyBA
QAogCQkJCUE3RDg5Q0ZEMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdPU1JBdmFpbGFiaWxpdHlBbmFs
eXNpc1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTU2MTQxREFGMDgwMDE3OUM5
NCAvKiBERkdPU1JFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyNTE3RDUxRjU3
MDBDQTJDNDAgLyogREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRkU1MDY4NjcxQUUyNUUyODAwMDlEQUI3IC8qIERlZmVycmVkU291cmNlRHVtcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTc5MTE0NkE2RjcxMDBDRjI0NDIgLyogREZHT1NS
RXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFQjE3MTc4RTczMDA2OTBDN0YgLyog
REZHT1NSRXhpdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3OTIxNDZBNkY3MzAw
Q0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCShyZXZpc2lvbiAxODI5ODIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBAQCBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
On5EZWZlcnJlZENvCiAKIHZvaWQgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjb21waWxh
dGlvbkRpZENvbXBsZXRlKENvZGVCbG9jayogY29kZUJsb2NrLCBDb21waWxhdGlvblJlc3VsdCBy
ZXN1bHQpCiB7CisgICAgZHVtcENvbXBpbGVkU291cmNlc0lmTmVlZGVkKCk7CisKICAgICBzd2l0
Y2ggKHJlc3VsdCkgewogICAgIGNhc2UgQ29tcGlsYXRpb25GYWlsZWQ6CiAgICAgY2FzZSBDb21w
aWxhdGlvbkludmFsaWRhdGVkOgpAQCAtNDcsNSArNDksMjUgQEAgdm9pZCBEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s6OmNvbXBpbAogICAgIH0KIH0KIAorVmVjdG9yPERlZmVycmVkU291cmNl
RHVtcD4mIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6ZW5zdXJlRGVmZXJyZWRTb3VyY2VE
dW1wKCkKK3sKKyAgICBpZiAoIW1fZGVmZXJyZWRTb3VyY2VEdW1wKQorICAgICAgICBtX2RlZmVy
cmVkU291cmNlRHVtcCA9IHN0ZDo6bWFrZV91bmlxdWU8VmVjdG9yPERlZmVycmVkU291cmNlRHVt
cD4+KCk7CisgICAgcmV0dXJuICptX2RlZmVycmVkU291cmNlRHVtcDsKK30KKwordm9pZCBEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmR1bXBDb21waWxlZFNvdXJjZXNJZk5lZWRlZCgpCit7
CisgICAgaWYgKCFtX2RlZmVycmVkU291cmNlRHVtcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
QVNTRVJUKE9wdGlvbnM6OmR1bXBTb3VyY2VBdERGR1RpbWUoKSk7CisgICAgdW5zaWduZWQgaW5k
ZXggPSAwOworICAgIGZvciAoYXV0byYgaW5mbyA6ICptX2RlZmVycmVkU291cmNlRHVtcCkgewor
ICAgICAgICBkYXRhTG9nKCJbIiwgKytpbmRleCwgIl0gIik7CisgICAgICAgIGluZm8uZHVtcCgp
OworICAgIH0KK30KKwogfSAvLyBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAko
cmV2aXNpb24gMTgyOTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw5IEBA
CiAjZGVmaW5lIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFja19oCiAKICNpbmNsdWRlICJDb21w
aWxhdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgIkRlZmVycmVkU291cmNlRHVtcC5oIgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApAQCAtNDIsNiArNDQsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IGNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29t
cGlsYXRpb25SZXN1bHQpOworCisgICAgVmVjdG9yPERlZmVycmVkU291cmNlRHVtcD4mIGVuc3Vy
ZURlZmVycmVkU291cmNlRHVtcCgpOworCitwcml2YXRlOgorICAgIHZvaWQgZHVtcENvbXBpbGVk
U291cmNlc0lmTmVlZGVkKCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPERlZmVycmVk
U291cmNlRHVtcD4+IG1fZGVmZXJyZWRTb3VyY2VEdW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGVmZXJyZWRTb3VyY2VE
dW1wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGVm
ZXJyZWRTb3VyY2VEdW1wLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9EZWZlcnJlZFNvdXJjZUR1bXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVmZXJyZWRTb3VyY2VEdW1wLmgiCisKKyNp
bmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworRGVmZXJyZWRTb3VyY2VEdW1wOjpEZWZlcnJlZFNvdXJjZUR1
bXAoQ29kZUJsb2NrKiBjb2RlQmxvY2spCisgICAgOiBtX2NvZGVCbG9jayhjb2RlQmxvY2spCisg
ICAgLCBtX3Jvb3RDb2RlQmxvY2sobnVsbHB0cikKKyAgICAsIG1fcm9vdEpJVFR5cGUoSklUQ29k
ZTo6Tm9uZSkKK3sKK30KKworRGVmZXJyZWRTb3VyY2VEdW1wOjpEZWZlcnJlZFNvdXJjZUR1bXAo
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVCbG9jayogcm9vdENvZGVCbG9jaywgSklUQ29kZTo6
SklUVHlwZSByb290SklUVHlwZSwgQ29kZU9yaWdpbiBjYWxsZXJDb2RlT3JpZ2luKQorICAgIDog
bV9jb2RlQmxvY2soY29kZUJsb2NrKQorICAgICwgbV9yb290Q29kZUJsb2NrKHJvb3RDb2RlQmxv
Y2spCisgICAgLCBtX3Jvb3RKSVRUeXBlKHJvb3RKSVRUeXBlKQorICAgICwgbV9jYWxsZXJDb2Rl
T3JpZ2luKGNhbGxlckNvZGVPcmlnaW4pCit7Cit9CisKK3ZvaWQgRGVmZXJyZWRTb3VyY2VEdW1w
OjpkdW1wKCkKK3sKKyAgICBib29sIGlzSW5saW5lZEZyYW1lID0gISFtX3Jvb3RDb2RlQmxvY2s7
CisgICAgaWYgKGlzSW5saW5lZEZyYW1lKQorICAgICAgICBkYXRhTG9nKCJJbmxpbmVkICIpOwor
ICAgIGVsc2UKKyAgICAgICAgZGF0YUxvZygiQ29tcGlsZWQgIik7CisgICAgZGF0YUxvZygqbV9j
b2RlQmxvY2spOworCisgICAgaWYgKGlzSW5saW5lZEZyYW1lKQorICAgICAgICBkYXRhTG9nKCIg
YXQgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9yb290Q29kZUJsb2NrLCBtX3Jvb3RKSVRUeXBl
KSwgIiAiLCBtX2NhbGxlckNvZGVPcmlnaW4pOworCisgICAgZGF0YUxvZygiXG4nJyciKTsKKyAg
ICBtX2NvZGVCbG9jay0+ZHVtcFNvdXJjZSgpOworICAgIGRhdGFMb2coIicnJ1xuIik7Cit9CisK
K30gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RlZmVycmVkU291cmNlRHVtcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9EZWZlcnJlZFNvdXJjZUR1bXAuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EZWZlcnJlZFNvdXJjZUR1bXAuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBEZWZlcnJlZFNvdXJjZUR1bXBfaAorI2RlZmluZSBEZWZlcnJlZFNv
dXJjZUR1bXBfaAorCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgorI2luY2x1ZGUgIkpJVENvZGUu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENvZGVCbG9jazsKKworY2xhc3MgRGVmZXJy
ZWRTb3VyY2VEdW1wIHsKK3B1YmxpYzoKKyAgICBEZWZlcnJlZFNvdXJjZUR1bXAoQ29kZUJsb2Nr
Kik7CisgICAgRGVmZXJyZWRTb3VyY2VEdW1wKENvZGVCbG9jayosIENvZGVCbG9jayogcm9vdENv
ZGVCbG9jaywgSklUQ29kZTo6SklUVHlwZSByb290SklUVHlwZSwgQ29kZU9yaWdpbiBjYWxsZXJD
b2RlT3JpZ2luKTsKKworICAgIHZvaWQgZHVtcCgpOworCitwcml2YXRlOgorICAgIENvZGVCbG9j
ayogbV9jb2RlQmxvY2s7CisgICAgQ29kZUJsb2NrKiBtX3Jvb3RDb2RlQmxvY2s7CisgICAgSklU
Q29kZTo6SklUVHlwZSBtX3Jvb3RKSVRUeXBlOworICAgIENvZGVPcmlnaW4gbV9jYWxsZXJDb2Rl
T3JpZ2luOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBEZWZlcnJlZFNv
dXJjZUR1bXBfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDM5LDkgKzQw
MzksMTYgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VDb2RlQmxvY2soKQogICAgICAgICAg
ICAgKm1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciwgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrKTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBzaG91bGREdW1wU291cmNlID0gT3B0
aW9uczo6ZHVtcFNvdXJjZUF0REZHVGltZSgpOwotICAgIGJvb2wgc2hvdWxkRHVtcEJ5dGVjb2Rl
ID0gT3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCk7Ci0gICAgaWYgKHNob3VsZER1bXBT
b3VyY2UgfHwgc2hvdWxkRHVtcEJ5dGVjb2RlKSB7CisgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6
OmR1bXBTb3VyY2VBdERGR1RpbWUoKSkpIHsKKyAgICAgICAgVmVjdG9yPERlZmVycmVkU291cmNl
RHVtcD4mIGRlZmVycmVkU291cmNlRHVtcCA9IG1fZ3JhcGgubV9wbGFuLmNhbGxiYWNrLT5lbnN1
cmVEZWZlcnJlZFNvdXJjZUR1bXAoKTsKKyAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZSgpKSB7
CisgICAgICAgICAgICBEZWZlcnJlZFNvdXJjZUR1bXAgZHVtcChjb2RlQmxvY2stPmJhc2VsaW5l
VmVyc2lvbigpLCBtX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklULCBpbmxpbmVDYWxsRnJhbWUo
KS0+Y2FsbGVyKTsKKyAgICAgICAgICAgIGRlZmVycmVkU291cmNlRHVtcC5hcHBlbmQoZHVtcCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZGVmZXJyZWRTb3VyY2VEdW1wLmFwcGVuZChE
ZWZlcnJlZFNvdXJjZUR1bXAoY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSkpOworICAgIH0K
KworICAgIGlmIChPcHRpb25zOjpkdW1wQnl0ZWNvZGVBdERGR1RpbWUoKSkgewogICAgICAgICBk
YXRhTG9nKCJQYXJzaW5nICIsICpjb2RlQmxvY2spOwogICAgICAgICBpZiAoaW5saW5lQ2FsbEZy
YW1lKCkpIHsKICAgICAgICAgICAgIGRhdGFMb2coCkBAIC00MDUxLDE2ICs0MDU4LDggQEAgdm9p
ZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VDb2RlQmxvY2soKQogICAgICAgICBkYXRhTG9nKAogICAg
ICAgICAgICAgIjogbmVlZHNBY3RpdmF0aW9uID0gIiwgY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRp
b24oKSwKICAgICAgICAgICAgICIsIGlzU3RyaWN0TW9kZSA9ICIsIGNvZGVCbG9jay0+b3duZXJF
eGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpLCAiXG4iKTsKLSAgICB9Ci0KLSAgICBpZiAoc2hv
dWxkRHVtcFNvdXJjZSkgewotICAgICAgICBkYXRhTG9nKCI9PT09IGJlZ2luIHNvdXJjZSA9PT09
XG4iKTsKLSAgICAgICAgY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKS0+ZHVtcFNvdXJjZSgp
OwotICAgICAgICBkYXRhTG9nKCJcbj09PT0gZW5kIHNvdXJjZSA9PT09XG5cbiIpOwotICAgIH0K
LSAgICAKLSAgICBpZiAoc2hvdWxkRHVtcEJ5dGVjb2RlKQogICAgICAgICBjb2RlQmxvY2stPmJh
c2VsaW5lVmVyc2lvbigpLT5kdW1wQnl0ZWNvZGUoKTsKKyAgICB9CiAgICAgCiAgICAgVmVjdG9y
PHVuc2lnbmVkLCAzMj4ganVtcFRhcmdldHM7CiAgICAgY29tcHV0ZVByZWNpc2VKdW1wVGFyZ2V0
cyhjb2RlQmxvY2ssIGp1bXBUYXJnZXRzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRHJpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RyaXZlci5jcHAJKHJldmlzaW9uIDE4Mjk4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRHJpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDkgKzEwMSw5IEBAIHN0
YXRpYyBDb21waWxhdGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICBSZWZQdHI8UGxhbj4gcGxh
biA9IGFkb3B0UmVmKAogICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29k
ZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsK
ICAgICAKKyAgICBwbGFuLT5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgIGlmIChPcHRpb25zOjpl
bmFibGVDb25jdXJyZW50SklUKCkpIHsKICAgICAgICAgV29ya2xpc3QqIHdvcmtsaXN0ID0gZW5z
dXJlR2xvYmFsV29ya2xpc3RGb3IobW9kZSk7Ci0gICAgICAgIHBsYW4tPmNhbGxiYWNrID0gY2Fs
bGJhY2s7CiAgICAgICAgIGlmIChsb2dDb21waWxhdGlvbkNoYW5nZXMobW9kZSkpCiAgICAgICAg
ICAgICBkYXRhTG9nKCJEZWZlcnJpbmcgREZHIGNvbXBpbGF0aW9uIG9mICIsICpjb2RlQmxvY2ss
ICIgd2l0aCBxdWV1ZSBsZW5ndGggIiwgd29ya2xpc3QtPnF1ZXVlTGVuZ3RoKCksICIuXG4iKTsK
ICAgICAgICAgd29ya2xpc3QtPmVucXVldWUocGxhbik7Cg==
</data>
<flag name="review"
          id="275980"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>