<?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>185249</bug_id>
          
          <creation_ts>2018-05-03 07:39:54 -0700</creation_ts>
          <short_desc>[LFC] Box invalidation logic should go to dedicated classes.</short_desc>
          <delta_ts>2018-05-04 07:43:57 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1420116</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-03 07:39:54 -0700</bug_when>
    <thetext>The idea here is that when certain style attribute changes, the invalidation logic depends on the type of the formatting context the box lives in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420118</commentid>
    <comment_count>1</comment_count>
      <attachid>339407</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-03 07:44:29 -0700</bug_when>
    <thetext>Created attachment 339407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420123</commentid>
    <comment_count>2</comment_count>
      <attachid>339407</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-05-03 08:20:43 -0700</bug_when>
    <thetext>Comment on attachment 339407
Patch

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

&gt; Source/WebCore/layout/FormattingState.h:60
&gt; +    enum BaseTypeFlag {
&gt; +        BlockStateFlag     = 1 &lt;&lt; 0,
&gt; +        InlineStateFlag    = 1 &lt;&lt; 1
&gt; +    };
&gt; +
&gt; +    FormattingState(Ref&lt;FloatingState&gt;&amp;&amp;, BaseTypeFlags);

These two are mutually exclusive so could be replaced with &apos;enum class Type { Block, Inline }&apos;. But maybe there is going to be a deeper hierarchy of FormattingStates and this will expand?

This could be done with virtual functions but maybe it is a good idea to avoid them entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420143</commentid>
    <comment_count>3</comment_count>
      <attachid>339411</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-03 09:04:32 -0700</bug_when>
    <thetext>Created attachment 339411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420145</commentid>
    <comment_count>4</comment_count>
      <attachid>339411</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-05-03 09:09:26 -0700</bug_when>
    <thetext>Comment on attachment 339411
Patch

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

&gt; Source/WebCore/layout/FormattingState.h:57
&gt; +    enum StateType {
&gt; +        BlockState,
&gt; +        InlineState
&gt; +    };

I would go with

enum class Type { Block, Inline }

This is all scoped to FormattingState so repeating word &apos;State&apos; is redundant.

&gt; Source/WebCore/layout/LayoutContext.h:62
&gt; +    enum UpdateType {

enum class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420158</commentid>
    <comment_count>5</comment_count>
      <attachid>339417</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-03 09:28:11 -0700</bug_when>
    <thetext>Created attachment 339417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420167</commentid>
    <comment_count>6</comment_count>
      <attachid>339419</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-03 09:34:50 -0700</bug_when>
    <thetext>Created attachment 339419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420194</commentid>
    <comment_count>7</comment_count>
      <attachid>339419</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-03 10:15:27 -0700</bug_when>
    <thetext>Comment on attachment 339419
Patch

Clearing flags on attachment: 339419

Committed r231312: &lt;https://trac.webkit.org/changeset/231312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420195</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-03 10:15:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420196</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-03 10:16:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/39944996&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420658</commentid>
    <comment_count>10</comment_count>
      <attachid>339419</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-05-04 07:29:48 -0700</bug_when>
    <thetext>Comment on attachment 339419
Patch

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

&gt; Source/WebCore/layout/LayoutContext.h:69
&gt; +    enum class UpdateType {
&gt; +        Overflow = 1 &lt;&lt; 0,
&gt; +        Position = 1 &lt;&lt; 1,
&gt; +        Size     = 1 &lt;&lt; 2,
&gt; +        All      = Overflow | Position | Size
&gt; +    };
&gt; +    void markNeedsUpdate(const Box&amp;, OptionSet&lt;UpdateType&gt;);

&apos;All&apos; value like this is awkward with OptionSet (it will assert unless used with OptionSet::fromRaw), the enum should contain single bit values only. Defining constant like 

static constexpr OptionSet&lt;UpdateType&gt; UpdateAll = { Overflow, Position, Size };

should work (after 185298).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420662</commentid>
    <comment_count>11</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-04 07:43:57 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #10)
&gt; Comment on attachment 339419 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339419&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/LayoutContext.h:69
&gt; &gt; +    enum class UpdateType {
&gt; &gt; +        Overflow = 1 &lt;&lt; 0,
&gt; &gt; +        Position = 1 &lt;&lt; 1,
&gt; &gt; +        Size     = 1 &lt;&lt; 2,
&gt; &gt; +        All      = Overflow | Position | Size
&gt; &gt; +    };
&gt; &gt; +    void markNeedsUpdate(const Box&amp;, OptionSet&lt;UpdateType&gt;);
&gt; 
&gt; &apos;All&apos; value like this is awkward with OptionSet (it will assert unless used
&gt; with OptionSet::fromRaw), the enum should contain single bit values only.
&gt; Defining constant like 
&gt; 
&gt; static constexpr OptionSet&lt;UpdateType&gt; UpdateAll = { Overflow, Position,
&gt; Size };
&gt; 
&gt; should work (after 185298).
Good point. Will fix it soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339407</attachid>
            <date>2018-05-03 07:44:29 -0700</date>
            <delta_ts>2018-05-03 09:04:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185249-20180503074428.patch</filename>
            <type>text/plain</type>
            <size>22582</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFjNTIyMDQ5MjgxYWU1
ODlhZThmYWMyZmUzMGQxYjcyYzU0N2JkOC4uYjgzNjllODNkYTc2ZDExM2YzNDkwNjM1NjU2MTZi
MDk3NTY2YmJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA1LTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQm94IGludmFsaWRh
dGlvbiBsb2dpYyBzaG91bGQgZ28gdG8gZGVkaWNhdGVkIGNsYXNzZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUyNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFYWNoIGZvcm1hdHRpbmcgY29udGV4
dCBjYW4gaW5pdGlhdGUgYSBkaWZmZXJlbnQgdHlwZSBvZiBpbnZhbGlkYXRpb24gd2hlbgorICAg
ICAgICBzdHlsZSBhdHRyaWJ1dGUgY2hhbmdlcyBpbiBhIGJveC4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9Gb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z1N0YXRlOjppc0Jsb2NrRm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjppc0lubGluZUZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjptYXJrTmVlZHNVcGRhdGUpOgorICAgICAgICAqIGxheW91
dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9y
bWF0dGluZ1N0YXRlOjpCbG9ja0Zvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUp
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmguCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlOjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdT
dGF0ZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZSk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52
YWxpZGF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaC4KKwogMjAxOC0wNS0wMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEltcGxlbWVudCBMYXlvdXRDb250
ZXh0OjpjcmVhdGVEaXNwbGF5Qm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDczYzEzNTE1ODAwODQ0NTFi
YjcwZjk0NjVkN2Y4NDU3ZWRjNzQ3NGIuLjU5OWI1NGIwZTk5Y2U0MTFkNTBhYjk2OGU4NWM1Y2M1
YjgzZmZhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjIxLDkgKzEyMjEsMTEgQEAgbGF5b3V0L0xh
eW91dENvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNw
cAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKIGxheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5Qm94LmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3Rh
dGUuY3BwCitsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5jcHAKIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzNmE0NDNmYjQ5MmUyZTk5YTA3ZDRiODVmNjZkMmMzN2MyMWM0MDgzLi5iZjY4ZDQ3ZWMy
MDY1ZTkyODFlNDUxMjZiNDRkYjZhNDNjZjNmOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzIxLDYgKzU3MjEsMTAgQEAK
IAkJMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExheW91dEFuY2VzdG9ySXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxMTEwMEZENTIwOTUxNERFMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTEwMEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0
VHJlZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUNDIC8qIEJsb2Nr
SW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrSW52YWxpZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAvKiBCbG9j
a0ludmFsaWRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0ludmFsaWRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRDMjA5QUJCQkEwMDczNkFD
QyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSW52YWxpZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkREMjA5QUJCQkEwMDcz
NkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
SW52YWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDAx
RTYwQjhBNzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDQxRTYwQjk4MzAwQkIz
MTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVp
bGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRl
ckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTY4NCw2
ICsxNTY4OCw4IEBACiAJCQkJMTE1Q0ZBNkMyMDhBRkFCNjAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQuaCAqLywKIAkJCQkxMTVDRkE3OTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tG
b3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTc4MjA4QjhEOUQwMDFFNjk5MSAvKiBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZS5oICovLAorCQkJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAv
KiBCbG9ja0ludmFsaWRhdGlvbi5jcHAgKi8sCisJCQkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUND
IC8qIEJsb2NrSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJMTE1Q0ZBODkyMDhCOTIxQTAwMUU2OTkx
IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwICovLAogCQkJCTExNUNGQTg4MjA4QjkyMUEwMDFF
Njk5MSAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggKi8sCiAJCQkpOwpAQCAtMTU2OTcsNiArMTU3
MDMsOCBAQAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oICovLAogCQkJCTExNUNGQTdEMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTdDMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUuaCAqLywKKwkJCQkxMTIzQUZERDIwOUFCQkJBMDA3MzZBQ0MgLyog
SW5saW5lSW52YWxpZGF0aW9uLmNwcCAqLywKKwkJCQkxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0Mg
LyogSW5saW5lSW52YWxpZGF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlubGluZWZvcm1h
dHRpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCBmZjY5MWE3MDM2YzYyMmZlOWIzNzI3ZjNhZjRkNDM0
ODI2MTE1OTliLi40NjVhNTU2YWNkYzc2ZDE2YmRiZmQwY2M2NmVkMjM5MjJkM2JkOTc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMzUsOCArMzUsOSBA
QCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1h
dHRpbmdTdGF0ZSk7CiAKLUZvcm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9h
dGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCitGb3JtYXR0aW5nU3RhdGU6OkZvcm1hdHRpbmdT
dGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJiBmbG9hdGluZ1N0YXRlLCBCYXNlVHlwZUZsYWdzIGJh
c2VUeXBlRmxhZ3MpCiAgICAgOiBtX2Zsb2F0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRl
KSkKKyAgICAsIG1fYmFzZVR5cGVGbGFncyhiYXNlVHlwZUZsYWdzKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggMTBjM2E0Mjc4YTk3MjQ0ZDU1ODc4
NTNjZWY4OTk1YzdlNmY2ZmNkNi4uZTM5NzY4OTU3ZGE3M2IzZGRmYmRhZDY1Y2M5NTMzNDI3NDM4
OGUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaApAQCAtMzUsMTIg
KzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFz
cyBCb3g7Ci1jbGFzcyBTdHlsZURpZmY7CitlbnVtIGNsYXNzIFN0eWxlRGlmZjsKIAogY2xhc3Mg
Rm9ybWF0dGluZ1N0YXRlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZvcm1hdHRpbmdT
dGF0ZSk7CiBwdWJsaWM6Ci0gICAgRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYm
KTsKICAgICB2aXJ0dWFsIH5Gb3JtYXR0aW5nU3RhdGUoKTsKIAogICAgIEZsb2F0aW5nU3RhdGUm
IGZsb2F0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zsb2F0aW5nU3RhdGU7IH0KQEAgLTQ4
LDEwICs0NywyOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrTmVlZHNMYXlvdXQoY29uc3QgQm94
JiwgU3R5bGVEaWZmKTsKICAgICBib29sIG5lZWRzTGF5b3V0KGNvbnN0IEJveCYpOwogCisgICAg
dHlwZWRlZiB1bnNpZ25lZCBCYXNlVHlwZUZsYWdzOworICAgIGJvb2wgaXNCbG9ja0Zvcm1hdHRp
bmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVGbGFncyAmIEJsb2NrU3RhdGVGbGFn
OyB9CisgICAgYm9vbCBpc0lubGluZUZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFzZVR5cGVGbGFncyAmIElubGluZVN0YXRlRmxhZzsgfQorCitwcm90ZWN0ZWQ6CisgICAgZW51
bSBCYXNlVHlwZUZsYWcgeworICAgICAgICBCbG9ja1N0YXRlRmxhZyAgICAgPSAxIDw8IDAsCisg
ICAgICAgIElubGluZVN0YXRlRmxhZyAgICA9IDEgPDwgMQorICAgIH07CisKKyAgICBGb3JtYXR0
aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYsIEJhc2VUeXBlRmxhZ3MpOworCiBwcml2YXRl
OgogICAgIFJlZjxGbG9hdGluZ1N0YXRlPiBtX2Zsb2F0aW5nU3RhdGU7CisgICAgdW5zaWduZWQg
bV9iYXNlVHlwZUZsYWdzIDogMjsKIH07CiAKIH0KIH0KKworI2RlZmluZSBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX1NUQVRFKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGlj
YXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkxheW91dDo6VG9W
YWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpIHsgcmV0dXJuIGZvcm1hdHRp
bmdTdGF0ZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCA5ZTk4YWU3
ZjYxYTJjM2FhYTNjZmFlMmNlODYwNTFiMDYxZGE1N2E0Li5kMWFmNmZhYmMzZjg4YWJiMjI4NjVl
OWE3MzQxM2Q0Mjk2NWZkOGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQu
Y3BwCkBAIC0zMCw5ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiQmxvY2tJ
bnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJEaXNwbGF5Qm94LmgiCiAjaW5jbHVkZSAiSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIK
KyNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJMYXlvdXRCb3guaCIK
ICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgpAQCAtNjIsNiArNjQsMjEgQEAgRGlzcGxheTo6Qm94JiBMYXlvdXRDb250ZXh0Ojpj
cmVhdGVEaXNwbGF5Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIHJldHVybiAqZGlzcGxh
eUJveFB0cjsKIH0KIAordm9pZCBMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQoY29uc3QgQm94
JiBsYXlvdXRCb3gsIFN0eWxlRGlmZiBzdHlsZURpZmYpCit7CisgICAgYXV0byYgZm9ybWF0dGlu
Z1N0YXRlID0gZm9ybWF0dGluZ1N0YXRlRm9yQm94KGxheW91dEJveCk7CisgICAgaWYgKGlzPEJs
b2NrRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUpKQorICAgICAgICBCbG9ja0ludmFs
aWRhdGlvbjo6aW52YWxpZGF0ZShsYXlvdXRCb3gsIHN0eWxlRGlmZiwgKnRoaXMsIGRvd25jYXN0
PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUpKTsKKyAgICBlbHNlIGlmIChp
czxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpCisgICAgICAgIElubGlu
ZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZShsYXlvdXRCb3gsIHN0eWxlRGlmZiwgKnRoaXMsIGRv
d25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4oZm9ybWF0dGluZ1N0YXRlKSk7CisgICAgZWxz
ZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBMYXlvdXRDb250ZXh0
OjptYXJrTmVlZHNVcGRhdGUoY29uc3QgQm94JiwgVXBkYXRlVHlwZXMpCit7Cit9CisKIEZvcm1h
dHRpbmdTdGF0ZSYgTGF5b3V0Q29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0IEJv
eCYgbGF5b3V0Qm94KSBjb25zdAogewogICAgIGF1dG8mIHJvb3QgPSBsYXlvdXRCb3guZm9ybWF0
dGluZ0NvbnRleHRSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAppbmRl
eCA3N2VmYTA2YTVkMzA4ZDg0ZjkxYmM1NmI1YTQyYTk5MTI5ZWFlZGI4Li5lNjk3YWYyZTk3NGU0
ODIzNTJjMzI5MmRjMzgwZjBmM2U2YmY5MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRD
b250ZXh0LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQm94OwogCiBuYW1lc3BhY2UgTGF5b3V0
IHsKIAotY2xhc3MgU3R5bGVEaWZmOworZW51bSBjbGFzcyBTdHlsZURpZmY7CiAKIC8vIExheW91
dENvbnRleHQgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBsYXlvdXQuIEl0IHRha2VzIGEgKGZvcm1h
dHRpbmcgcm9vdCljb250YWluZXIgd2hpY2ggYWN0cyBhcyB0aGUgcm9vdCBvZiB0aGUgbGF5b3V0
IGNvbnRleHQuCiAvLyBMYXlvdXRDb250ZXh0OjpsYXlvdXQoKSBnZW5lcmF0ZXMgdGhlIGRpc3Bs
YXkgdHJlZSBmb3IgdGhlIHJvb3QgY29udGFpbmVyJ3Mgc3VidHJlZSAoaXQgZG9lcyBub3QgcnVu
IGxheW91dCBvbiB0aGUgcm9vdCB0aG91Z2gpLgpAQCAtNTcsOCArNTcsMTcgQEAgcHVibGljOgog
ICAgIERpc3BsYXk6OkJveCYgY3JlYXRlRGlzcGxheUJveChjb25zdCBCb3gmKTsKICAgICBEaXNw
bGF5OjpCb3gqIGRpc3BsYXlCb3hGb3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5b3V0VG9EaXNwbGF5Qm94LmdldCgmbGF5b3V0Qm94KTsgfQogCi0g
ICAgdm9pZCBtYXJrTmVlZHNMYXlvdXQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKLSAgICBib29s
IG5lZWRzTGF5b3V0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZvaWQgc3R5bGVDaGFuZ2VkKGNv
bnN0IEJveCYsIFN0eWxlRGlmZik7CisKKyAgICBlbnVtIFVwZGF0ZVR5cGUgeworICAgICAgICBP
dmVyZmxvdyA9IDEgPDwgMCwKKyAgICAgICAgUG9zaXRpb24gPSAxIDw8IDEsCisgICAgICAgIFNp
emUgICAgID0gMSA8PCAyLAorICAgICAgICBBbGwgICAgICA9IE92ZXJmbG93IHwgUG9zaXRpb24g
fCBTaXplCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIFVwZGF0ZVR5cGVzOworICAgIHZv
aWQgbWFya05lZWRzVXBkYXRlKGNvbnN0IEJveCYsIFVwZGF0ZVR5cGVzKTsKKyAgICBib29sIG5l
ZWRzVXBkYXRlKGNvbnN0IEJveCYpIGNvbnN0OwogCiAgICAgRm9ybWF0dGluZ1N0YXRlJiBmb3Jt
YXR0aW5nU3RhdGVGb3JCb3goY29uc3QgQm94JikgY29uc3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRl
JiBlc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5j
cHAKaW5kZXggYzk1MWVlZTM2YzkwMWZhMGJjNjQ1MWUyNzI4MGExNWQwMTcwODI2MC4uZDJiMTU4
YmY5OTdiZjE0YWQ2OTc4YmI2NmQ2ZjdmY2ExZWQ3NjEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdT
dGF0ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoQmxvY2tGb3JtYXR0aW5nU3RhdGUpOwogCiBCbG9ja0Zvcm1hdHRp
bmdTdGF0ZTo6QmxvY2tGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYgZmxvYXRp
bmdTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdTdGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUpKQor
ICAgIDogRm9ybWF0dGluZ1N0YXRlKFdURk1vdmUoZmxvYXRpbmdTdGF0ZSksIEJsb2NrU3RhdGVG
bGFnKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNDRlNWQ4M2M1YzA1YTRm
YjJiMTdhZWEzOWU0MjViMDcwN2M3MDcxMC4uZGFlMTQ3MzZjNmY2ZGJkNzBlZmFlMWE1ZDcxYzIy
NjhiZDA5ODNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaApAQCAtNDQsNCArNDQsNyBAQCBw
dWJsaWM6CiAKIH0KIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElO
R19TVEFURShCbG9ja0Zvcm1hdHRpbmdTdGF0ZSwgaXNCbG9ja0Zvcm1hdHRpbmdTdGF0ZSgpKQor
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUyYWZhYjUxYjM0OGNh
NjgwYWY1OGNmMTQ4OWNhODVlOTJlODhlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmxv
Y2tJbnZhbGlkYXRpb24uaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQorCisjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJMYXlvdXRC
b3guaCIKKyNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisK
K1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCbG9ja0ludmFsaWRhdGlvbik7CisKK3ZvaWQg
QmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFN0eWxl
RGlmZiwgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgQmxvY2tGb3JtYXR0aW5nU3RhdGUm
KQoreworICAgIGxheW91dENvbnRleHQubWFya05lZWRzVXBkYXRlKGxheW91dEJveCwgTGF5b3V0
Q29udGV4dDo6VXBkYXRlVHlwZTo6QWxsKTsKK30KKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWVmMTQzNjEwNmRiZDU0NmU4YTA1ODg2ZWY0MjkzNTQ1NDI5ZThj
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tJbnZhbGlkYXRpb24uaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3Bh
Y2UgTGF5b3V0IHsKKworY2xhc3MgQm94OworY2xhc3MgQmxvY2tGb3JtYXR0aW5nU3RhdGU7Citj
bGFzcyBMYXlvdXRDb250ZXh0OworZW51bSBjbGFzcyBTdHlsZURpZmY7CisKKy8vIFRoaXMgY2xh
c3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9uIGZvciBibG9jayBmb3JtYXR0aW5nIGNvbnRl
eHQuCitjbGFzcyBCbG9ja0ludmFsaWRhdGlvbiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChCbG9ja0ludmFsaWRhdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0
ZShjb25zdCBCb3gmLCBTdHlsZURpZmYsIExheW91dENvbnRleHQmLCBCbG9ja0Zvcm1hdHRpbmdT
dGF0ZSYpOworfTsKKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNw
cAppbmRleCA3MjFkODI5NGZhODU2MWQwYTAzODJkNTQ5MzVhNTAyZGVkNGMxODg3Li4yZTRhOWJm
NWE0NmJhYjA4NTg4NmFkNTQ0NzkxMDJhOWJlMjZlOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdTdGF0ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoSW5saW5lRm9ybWF0dGluZ1N0YXRlKTsKIAogSW5saW5lRm9y
bWF0dGluZ1N0YXRlOjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYg
ZmxvYXRpbmdTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdTdGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3Rh
dGUpKQorICAgIDogRm9ybWF0dGluZ1N0YXRlKFdURk1vdmUoZmxvYXRpbmdTdGF0ZSksIElubGlu
ZVN0YXRlRmxhZykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaAppbmRleCA1NjIz
ZGQ5ODY0OWVjMTEzN2JkNDE0ZWJlMGRkYjdkMTA5MzY1ODRlLi42YWFmNzQ3MGFmZDIzNjc5M2Fh
MTlmZjUyZjA3Nzk0Y2NhY2FiNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaApAQCAt
NDQsNCArNDQsNyBAQCBwdWJsaWM6CiAKIH0KIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19M
QVlPVVRfRk9STUFUVElOR19TVEFURShJbmxpbmVGb3JtYXR0aW5nU3RhdGUsIGlzSW5saW5lRm9y
bWF0dGluZ1N0YXRlKCkpCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjE4ODI2ZmMyY2JkNWExOTk2MGY4ZDc5Mzc4NmUxYTA2YzllYTlmMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUlu
dmFsaWRhdGlvbi5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24uaCIKKworI2lmIEVOQUJMRShM
QVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0
YXRlLmgiCisjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5o
IgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW5s
aW5lSW52YWxpZGF0aW9uKTsKKwordm9pZCBJbmxpbmVJbnZhbGlkYXRpb246OmludmFsaWRhdGUo
Y29uc3QgQm94JiBsYXlvdXRCb3gsIFN0eWxlRGlmZiwgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgSW5saW5lRm9ybWF0dGluZ1N0YXRlJikKK3sKKyAgICBsYXlvdXRDb250ZXh0Lm1hcmtO
ZWVkc1VwZGF0ZShsYXlvdXRCb3gsIExheW91dENvbnRleHQ6OlVwZGF0ZVR5cGU6OkFsbCk7Cit9
CisKK30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTdjMzY3
YmU4Y2QzNjA1NjkxNDk5NDUwZDFkZmYyMzkxMzRkOGU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEJv
eDsKK2NsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZTsKK2NsYXNzIExheW91dENvbnRleHQ7Citl
bnVtIGNsYXNzIFN0eWxlRGlmZjsKKworLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGJveCBpbnZh
bGlkYXRpb24gZm9yIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQuCitjbGFzcyBJbmxpbmVJbnZh
bGlkYXRpb24geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW5saW5lSW52YWxpZGF0aW9u
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IEJveCYsIFN0eWxl
RGlmZiwgTGF5b3V0Q29udGV4dCYsIElubGluZUZvcm1hdHRpbmdTdGF0ZSYpOworfTsKKworfQor
fQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339411</attachid>
            <date>2018-05-03 09:04:32 -0700</date>
            <delta_ts>2018-05-03 09:28:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185249-20180503090431.patch</filename>
            <type>text/plain</type>
            <size>22460</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFjNTIyMDQ5MjgxYWU1
ODlhZThmYWMyZmUzMGQxYjcyYzU0N2JkOC4uYjgzNjllODNkYTc2ZDExM2YzNDkwNjM1NjU2MTZi
MDk3NTY2YmJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA1LTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQm94IGludmFsaWRh
dGlvbiBsb2dpYyBzaG91bGQgZ28gdG8gZGVkaWNhdGVkIGNsYXNzZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUyNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFYWNoIGZvcm1hdHRpbmcgY29udGV4
dCBjYW4gaW5pdGlhdGUgYSBkaWZmZXJlbnQgdHlwZSBvZiBpbnZhbGlkYXRpb24gd2hlbgorICAg
ICAgICBzdHlsZSBhdHRyaWJ1dGUgY2hhbmdlcyBpbiBhIGJveC4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9Gb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z1N0YXRlOjppc0Jsb2NrRm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjppc0lubGluZUZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjptYXJrTmVlZHNVcGRhdGUpOgorICAgICAgICAqIGxheW91
dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9y
bWF0dGluZ1N0YXRlOjpCbG9ja0Zvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUp
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmguCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlOjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdT
dGF0ZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZSk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52
YWxpZGF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaC4KKwogMjAxOC0wNS0wMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEltcGxlbWVudCBMYXlvdXRDb250
ZXh0OjpjcmVhdGVEaXNwbGF5Qm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDczYzEzNTE1ODAwODQ0NTFi
YjcwZjk0NjVkN2Y4NDU3ZWRjNzQ3NGIuLjU5OWI1NGIwZTk5Y2U0MTFkNTBhYjk2OGU4NWM1Y2M1
YjgzZmZhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjIxLDkgKzEyMjEsMTEgQEAgbGF5b3V0L0xh
eW91dENvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNw
cAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKIGxheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5Qm94LmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3Rh
dGUuY3BwCitsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5jcHAKIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzNmE0NDNmYjQ5MmUyZTk5YTA3ZDRiODVmNjZkMmMzN2MyMWM0MDgzLi5iZjY4ZDQ3ZWMy
MDY1ZTkyODFlNDUxMjZiNDRkYjZhNDNjZjNmOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzIxLDYgKzU3MjEsMTAgQEAK
IAkJMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExheW91dEFuY2VzdG9ySXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxMTEwMEZENTIwOTUxNERFMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTEwMEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0
VHJlZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUNDIC8qIEJsb2Nr
SW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrSW52YWxpZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAvKiBCbG9j
a0ludmFsaWRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0ludmFsaWRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRDMjA5QUJCQkEwMDczNkFD
QyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSW52YWxpZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkREMjA5QUJCQkEwMDcz
NkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
SW52YWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDAx
RTYwQjhBNzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDQxRTYwQjk4MzAwQkIz
MTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVp
bGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRl
ckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTY4NCw2
ICsxNTY4OCw4IEBACiAJCQkJMTE1Q0ZBNkMyMDhBRkFCNjAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQuaCAqLywKIAkJCQkxMTVDRkE3OTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tG
b3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTc4MjA4QjhEOUQwMDFFNjk5MSAvKiBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZS5oICovLAorCQkJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAv
KiBCbG9ja0ludmFsaWRhdGlvbi5jcHAgKi8sCisJCQkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUND
IC8qIEJsb2NrSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJMTE1Q0ZBODkyMDhCOTIxQTAwMUU2OTkx
IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwICovLAogCQkJCTExNUNGQTg4MjA4QjkyMUEwMDFF
Njk5MSAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggKi8sCiAJCQkpOwpAQCAtMTU2OTcsNiArMTU3
MDMsOCBAQAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oICovLAogCQkJCTExNUNGQTdEMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTdDMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUuaCAqLywKKwkJCQkxMTIzQUZERDIwOUFCQkJBMDA3MzZBQ0MgLyog
SW5saW5lSW52YWxpZGF0aW9uLmNwcCAqLywKKwkJCQkxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0Mg
LyogSW5saW5lSW52YWxpZGF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlubGluZWZvcm1h
dHRpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCBmZjY5MWE3MDM2YzYyMmZlOWIzNzI3ZjNhZjRkNDM0
ODI2MTE1OTliLi42NGU0YTk3NWQwMTE5ZjJmMTM5M2FmYWE4NWQ2YTNmZGYxZWFmM2UxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMzUsOCArMzUsOSBA
QCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1h
dHRpbmdTdGF0ZSk7CiAKLUZvcm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9h
dGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCitGb3JtYXR0aW5nU3RhdGU6OkZvcm1hdHRpbmdT
dGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJiBmbG9hdGluZ1N0YXRlLCBTdGF0ZVR5cGUgc3RhdGVU
eXBlKQogICAgIDogbV9mbG9hdGluZ1N0YXRlKFdURk1vdmUoZmxvYXRpbmdTdGF0ZSkpCisgICAg
LCBtX3N0YXRlVHlwZShzdGF0ZVR5cGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nU3RhdGUuaAppbmRleCAxMGMzYTQyNzhhOTcyNDRkNTU4Nzg1M2NlZjg5OTVjN2U2ZjZm
Y2Q2Li5hOGU2NDk2OThiYTZmYjQ1OTcxZGE3M2RiN2U4M2I4M2U1OGMxY2NkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCkBAIC0zNSwxMiArMzUsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIEJveDsKLWNsYXNzIFN0
eWxlRGlmZjsKK2VudW0gY2xhc3MgU3R5bGVEaWZmOwogCiBjbGFzcyBGb3JtYXR0aW5nU3RhdGUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRm9ybWF0dGluZ1N0YXRlKTsKIHB1YmxpYzoK
LSAgICBGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYpOwogICAgIHZpcnR1YWwg
fkZvcm1hdHRpbmdTdGF0ZSgpOwogCiAgICAgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZmxvYXRpbmdTdGF0ZTsgfQpAQCAtNDgsMTAgKzQ3LDI4IEBAIHB1
YmxpYzoKICAgICB2b2lkIG1hcmtOZWVkc0xheW91dChjb25zdCBCb3gmLCBTdHlsZURpZmYpOwog
ICAgIGJvb2wgbmVlZHNMYXlvdXQoY29uc3QgQm94Jik7CiAKKyAgICBib29sIGlzQmxvY2tGb3Jt
YXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlVHlwZSA9PSBCbG9ja1N0YXRlOyB9
CisgICAgYm9vbCBpc0lubGluZUZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGVUeXBlID09IElubGluZVN0YXRlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBlbnVtIFN0YXRlVHlw
ZSB7CisgICAgICAgIEJsb2NrU3RhdGUsCisgICAgICAgIElubGluZVN0YXRlCisgICAgfTsKKwor
ICAgIEZvcm1hdHRpbmdTdGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJiwgU3RhdGVUeXBlKTsKKwog
cHJpdmF0ZToKICAgICBSZWY8RmxvYXRpbmdTdGF0ZT4gbV9mbG9hdGluZ1N0YXRlOworICAgIFN0
YXRlVHlwZSBtX3N0YXRlVHlwZTsKIH07CiAKIH0KIH0KKworI2RlZmluZSBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX1NUQVRFKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGlj
YXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkxheW91dDo6VG9W
YWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpIHsgcmV0dXJuIGZvcm1hdHRp
bmdTdGF0ZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCA5ZTk4YWU3
ZjYxYTJjM2FhYTNjZmFlMmNlODYwNTFiMDYxZGE1N2E0Li5kMWFmNmZhYmMzZjg4YWJiMjI4NjVl
OWE3MzQxM2Q0Mjk2NWZkOGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQu
Y3BwCkBAIC0zMCw5ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiQmxvY2tJ
bnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJEaXNwbGF5Qm94LmgiCiAjaW5jbHVkZSAiSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIK
KyNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJMYXlvdXRCb3guaCIK
ICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgpAQCAtNjIsNiArNjQsMjEgQEAgRGlzcGxheTo6Qm94JiBMYXlvdXRDb250ZXh0Ojpj
cmVhdGVEaXNwbGF5Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIHJldHVybiAqZGlzcGxh
eUJveFB0cjsKIH0KIAordm9pZCBMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQoY29uc3QgQm94
JiBsYXlvdXRCb3gsIFN0eWxlRGlmZiBzdHlsZURpZmYpCit7CisgICAgYXV0byYgZm9ybWF0dGlu
Z1N0YXRlID0gZm9ybWF0dGluZ1N0YXRlRm9yQm94KGxheW91dEJveCk7CisgICAgaWYgKGlzPEJs
b2NrRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUpKQorICAgICAgICBCbG9ja0ludmFs
aWRhdGlvbjo6aW52YWxpZGF0ZShsYXlvdXRCb3gsIHN0eWxlRGlmZiwgKnRoaXMsIGRvd25jYXN0
PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0aW5nU3RhdGUpKTsKKyAgICBlbHNlIGlmIChp
czxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpCisgICAgICAgIElubGlu
ZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZShsYXlvdXRCb3gsIHN0eWxlRGlmZiwgKnRoaXMsIGRv
d25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4oZm9ybWF0dGluZ1N0YXRlKSk7CisgICAgZWxz
ZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBMYXlvdXRDb250ZXh0
OjptYXJrTmVlZHNVcGRhdGUoY29uc3QgQm94JiwgVXBkYXRlVHlwZXMpCit7Cit9CisKIEZvcm1h
dHRpbmdTdGF0ZSYgTGF5b3V0Q29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0IEJv
eCYgbGF5b3V0Qm94KSBjb25zdAogewogICAgIGF1dG8mIHJvb3QgPSBsYXlvdXRCb3guZm9ybWF0
dGluZ0NvbnRleHRSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAppbmRl
eCA3N2VmYTA2YTVkMzA4ZDg0ZjkxYmM1NmI1YTQyYTk5MTI5ZWFlZGI4Li5lNjk3YWYyZTk3NGU0
ODIzNTJjMzI5MmRjMzgwZjBmM2U2YmY5MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRD
b250ZXh0LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQm94OwogCiBuYW1lc3BhY2UgTGF5b3V0
IHsKIAotY2xhc3MgU3R5bGVEaWZmOworZW51bSBjbGFzcyBTdHlsZURpZmY7CiAKIC8vIExheW91
dENvbnRleHQgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBsYXlvdXQuIEl0IHRha2VzIGEgKGZvcm1h
dHRpbmcgcm9vdCljb250YWluZXIgd2hpY2ggYWN0cyBhcyB0aGUgcm9vdCBvZiB0aGUgbGF5b3V0
IGNvbnRleHQuCiAvLyBMYXlvdXRDb250ZXh0OjpsYXlvdXQoKSBnZW5lcmF0ZXMgdGhlIGRpc3Bs
YXkgdHJlZSBmb3IgdGhlIHJvb3QgY29udGFpbmVyJ3Mgc3VidHJlZSAoaXQgZG9lcyBub3QgcnVu
IGxheW91dCBvbiB0aGUgcm9vdCB0aG91Z2gpLgpAQCAtNTcsOCArNTcsMTcgQEAgcHVibGljOgog
ICAgIERpc3BsYXk6OkJveCYgY3JlYXRlRGlzcGxheUJveChjb25zdCBCb3gmKTsKICAgICBEaXNw
bGF5OjpCb3gqIGRpc3BsYXlCb3hGb3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5b3V0VG9EaXNwbGF5Qm94LmdldCgmbGF5b3V0Qm94KTsgfQogCi0g
ICAgdm9pZCBtYXJrTmVlZHNMYXlvdXQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKLSAgICBib29s
IG5lZWRzTGF5b3V0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZvaWQgc3R5bGVDaGFuZ2VkKGNv
bnN0IEJveCYsIFN0eWxlRGlmZik7CisKKyAgICBlbnVtIFVwZGF0ZVR5cGUgeworICAgICAgICBP
dmVyZmxvdyA9IDEgPDwgMCwKKyAgICAgICAgUG9zaXRpb24gPSAxIDw8IDEsCisgICAgICAgIFNp
emUgICAgID0gMSA8PCAyLAorICAgICAgICBBbGwgICAgICA9IE92ZXJmbG93IHwgUG9zaXRpb24g
fCBTaXplCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIFVwZGF0ZVR5cGVzOworICAgIHZv
aWQgbWFya05lZWRzVXBkYXRlKGNvbnN0IEJveCYsIFVwZGF0ZVR5cGVzKTsKKyAgICBib29sIG5l
ZWRzVXBkYXRlKGNvbnN0IEJveCYpIGNvbnN0OwogCiAgICAgRm9ybWF0dGluZ1N0YXRlJiBmb3Jt
YXR0aW5nU3RhdGVGb3JCb3goY29uc3QgQm94JikgY29uc3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRl
JiBlc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5j
cHAKaW5kZXggYzk1MWVlZTM2YzkwMWZhMGJjNjQ1MWUyNzI4MGExNWQwMTcwODI2MC4uN2RkN2Y2
ODg0NTBlZGZkYzAwNGJhZTMxNjNjZTRjODkxYTQzOTEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdT
dGF0ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoQmxvY2tGb3JtYXR0aW5nU3RhdGUpOwogCiBCbG9ja0Zvcm1hdHRp
bmdTdGF0ZTo6QmxvY2tGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYgZmxvYXRp
bmdTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdTdGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUpKQor
ICAgIDogRm9ybWF0dGluZ1N0YXRlKFdURk1vdmUoZmxvYXRpbmdTdGF0ZSksIEJsb2NrU3RhdGUp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAppbmRleCA0NGU1ZDgzYzVjMDVhNGZiMmIx
N2FlYTM5ZTQyNWIwNzA3YzcwNzEwLi5kYWUxNDczNmM2ZjZkYmQ3MGVmYWUxYTVkNzFjMjI2OGJk
MDk4M2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oCkBAIC00NCw0ICs0NCw3IEBAIHB1Ymxp
YzoKIAogfQogfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX1NU
QVRFKEJsb2NrRm9ybWF0dGluZ1N0YXRlLCBpc0Jsb2NrRm9ybWF0dGluZ1N0YXRlKCkpCisKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0ludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTJhZmFiNTFiMzQ4Y2E2ODBh
ZjU4Y2YxNDg5Y2E4NWU5MmU4OGU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKQEAgLTAsMCArMSw0
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCbG9ja0lu
dmFsaWRhdGlvbi5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisK
KyNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dEJveC5o
IgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJsb2NrSW52YWxpZGF0aW9uKTsKKwordm9pZCBCbG9j
a0ludmFsaWRhdGlvbjo6aW52YWxpZGF0ZShjb25zdCBCb3gmIGxheW91dEJveCwgU3R5bGVEaWZm
LCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYpCit7
CisgICAgbGF5b3V0Q29udGV4dC5tYXJrTmVlZHNVcGRhdGUobGF5b3V0Qm94LCBMYXlvdXRDb250
ZXh0OjpVcGRhdGVUeXBlOjpBbGwpOworfQorCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZWYxNDM2MTA2ZGJkNTQ2ZThhMDU4ODZlZjQyOTM1NDU0MjllOGNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0ludmFsaWRhdGlvbi5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBM
YXlvdXQgeworCitjbGFzcyBCb3g7CitjbGFzcyBCbG9ja0Zvcm1hdHRpbmdTdGF0ZTsKK2NsYXNz
IExheW91dENvbnRleHQ7CitlbnVtIGNsYXNzIFN0eWxlRGlmZjsKKworLy8gVGhpcyBjbGFzcyBp
bXBsZW1lbnRzIGJveCBpbnZhbGlkYXRpb24gZm9yIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dC4K
K2NsYXNzIEJsb2NrSW52YWxpZGF0aW9uIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEJs
b2NrSW52YWxpZGF0aW9uKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlKGNv
bnN0IEJveCYsIFN0eWxlRGlmZiwgTGF5b3V0Q29udGV4dCYsIEJsb2NrRm9ybWF0dGluZ1N0YXRl
Jik7Cit9OworCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCmlu
ZGV4IDcyMWQ4Mjk0ZmE4NTYxZDBhMDM4MmQ1NDkzNWE1MDJkZWQ0YzE4ODcuLjZmN2I5ZjU5NzI4
Y2E3MmM3MGRhNjE1NzFhNjRmMmU1MzhjMzFjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0
YXRlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOwogCiBJbmxpbmVGb3JtYXR0
aW5nU3RhdGU6OklubGluZUZvcm1hdHRpbmdTdGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJiBmbG9h
dGluZ1N0YXRlKQotICAgIDogRm9ybWF0dGluZ1N0YXRlKFdURk1vdmUoZmxvYXRpbmdTdGF0ZSkp
CisgICAgOiBGb3JtYXR0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSwgSW5saW5lU3Rh
dGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNTYyM2RkOTg2NDll
YzExMzdiZDQxNGViZTBkZGI3ZDEwOTM2NTg0ZS4uNmFhZjc0NzBhZmQyMzY3OTNhYTE5ZmY1MmYw
Nzc5NGNjYWNhYjQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTQ0LDQgKzQ0
LDcgQEAgcHVibGljOgogCiB9CiB9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0ZP
Uk1BVFRJTkdfU1RBVEUoSW5saW5lRm9ybWF0dGluZ1N0YXRlLCBpc0lubGluZUZvcm1hdHRpbmdT
dGF0ZSgpKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIx
ODgyNmZjMmNiZDVhMTk5NjBmOGQ3OTM3ODZlMWEwNmM5ZWE5ZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRp
b24uY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSW5saW5lSW52YWxpZGF0aW9uLmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgor
I2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1l
c3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElubGluZUludmFs
aWRhdGlvbik7CisKK3ZvaWQgSW5saW5lSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBTdHlsZURpZmYsIExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIElu
bGluZUZvcm1hdHRpbmdTdGF0ZSYpCit7CisgICAgbGF5b3V0Q29udGV4dC5tYXJrTmVlZHNVcGRh
dGUobGF5b3V0Qm94LCBMYXlvdXRDb250ZXh0OjpVcGRhdGVUeXBlOjpBbGwpOworfQorCit9Cit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3YzM2N2JlOGNkMzYw
NTY5MTQ5OTQ1MGQxZGZmMjM5MTM0ZDhlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5oCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBMYXlvdXQgeworCitjbGFzcyBCb3g7CitjbGFz
cyBJbmxpbmVGb3JtYXR0aW5nU3RhdGU7CitjbGFzcyBMYXlvdXRDb250ZXh0OworZW51bSBjbGFz
cyBTdHlsZURpZmY7CisKKy8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9u
IGZvciBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LgorY2xhc3MgSW5saW5lSW52YWxpZGF0aW9u
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZUludmFsaWRhdGlvbik7CitwdWJs
aWM6CisgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZShjb25zdCBCb3gmLCBTdHlsZURpZmYsIExh
eW91dENvbnRleHQmLCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmKTsKK307CisKK30KK30KKyNlbmRp
Zgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339417</attachid>
            <date>2018-05-03 09:28:11 -0700</date>
            <delta_ts>2018-05-03 09:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185249-20180503092810.patch</filename>
            <type>text/plain</type>
            <size>22385</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFjNTIyMDQ5MjgxYWU1
ODlhZThmYWMyZmUzMGQxYjcyYzU0N2JkOC4uM2QwOTA1ZGNhZWFlYzlhYWQyNmEyNmI4MzM4OTQ2
OGQ2YzU1NDdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA1LTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQm94IGludmFsaWRh
dGlvbiBsb2dpYyBzaG91bGQgZ28gdG8gZGVkaWNhdGVkIGNsYXNzZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUyNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBFYWNoIGZvcm1hdHRpbmcgY29udGV4
dCBjYW4gaW5pdGlhdGUgYSBkaWZmZXJlbnQgdHlwZSBvZiBpbnZhbGlkYXRpb24gd2hlbgorICAg
ICAgICBzdHlsZSBhdHRyaWJ1dGUgY2hhbmdlcyBpbiBhIGJveC4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9Gb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z1N0YXRlOjppc0Jsb2NrRm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjppc0lubGluZUZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjptYXJrTmVlZHNVcGRhdGUpOgorICAgICAgICAqIGxheW91
dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9y
bWF0dGluZ1N0YXRlOjpCbG9ja0Zvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUp
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmguCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlOjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdT
dGF0ZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZSk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52
YWxpZGF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaC4KKwogMjAxOC0wNS0wMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEltcGxlbWVudCBMYXlvdXRDb250
ZXh0OjpjcmVhdGVEaXNwbGF5Qm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDczYzEzNTE1ODAwODQ0NTFi
YjcwZjk0NjVkN2Y4NDU3ZWRjNzQ3NGIuLjU5OWI1NGIwZTk5Y2U0MTFkNTBhYjk2OGU4NWM1Y2M1
YjgzZmZhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjIxLDkgKzEyMjEsMTEgQEAgbGF5b3V0L0xh
eW91dENvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNw
cAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKIGxheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5Qm94LmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3Rh
dGUuY3BwCitsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5jcHAKIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzNmE0NDNmYjQ5MmUyZTk5YTA3ZDRiODVmNjZkMmMzN2MyMWM0MDgzLi5iZjY4ZDQ3ZWMy
MDY1ZTkyODFlNDUxMjZiNDRkYjZhNDNjZjNmOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzIxLDYgKzU3MjEsMTAgQEAK
IAkJMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExheW91dEFuY2VzdG9ySXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxMTEwMEZENTIwOTUxNERFMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTEwMEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0
VHJlZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUNDIC8qIEJsb2Nr
SW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrSW52YWxpZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAvKiBCbG9j
a0ludmFsaWRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0ludmFsaWRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRDMjA5QUJCQkEwMDczNkFD
QyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSW52YWxpZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkREMjA5QUJCQkEwMDcz
NkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
SW52YWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDAx
RTYwQjhBNzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDQxRTYwQjk4MzAwQkIz
MTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVp
bGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRl
ckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTY4NCw2
ICsxNTY4OCw4IEBACiAJCQkJMTE1Q0ZBNkMyMDhBRkFCNjAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQuaCAqLywKIAkJCQkxMTVDRkE3OTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tG
b3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTc4MjA4QjhEOUQwMDFFNjk5MSAvKiBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZS5oICovLAorCQkJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAv
KiBCbG9ja0ludmFsaWRhdGlvbi5jcHAgKi8sCisJCQkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUND
IC8qIEJsb2NrSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJMTE1Q0ZBODkyMDhCOTIxQTAwMUU2OTkx
IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwICovLAogCQkJCTExNUNGQTg4MjA4QjkyMUEwMDFF
Njk5MSAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggKi8sCiAJCQkpOwpAQCAtMTU2OTcsNiArMTU3
MDMsOCBAQAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oICovLAogCQkJCTExNUNGQTdEMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTdDMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUuaCAqLywKKwkJCQkxMTIzQUZERDIwOUFCQkJBMDA3MzZBQ0MgLyog
SW5saW5lSW52YWxpZGF0aW9uLmNwcCAqLywKKwkJCQkxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0Mg
LyogSW5saW5lSW52YWxpZGF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlubGluZWZvcm1h
dHRpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCBmZjY5MWE3MDM2YzYyMmZlOWIzNzI3ZjNhZjRkNDM0
ODI2MTE1OTliLi42MTgwYmQ3YmE0MWZkNTViNDBhMDdjMGJkMWZkNTA1NDFmYjJmOWY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMzUsOCArMzUsOSBA
QCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1h
dHRpbmdTdGF0ZSk7CiAKLUZvcm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9h
dGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCitGb3JtYXR0aW5nU3RhdGU6OkZvcm1hdHRpbmdT
dGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJiBmbG9hdGluZ1N0YXRlLCBUeXBlIHR5cGUpCiAgICAg
OiBtX2Zsb2F0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSkKKyAgICAsIG1fdHlwZSh0
eXBlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXgg
MTBjM2E0Mjc4YTk3MjQ0ZDU1ODc4NTNjZWY4OTk1YzdlNmY2ZmNkNi4uY2Y2MTY5M2RjNWQ5OGEy
MzNmMTg1MDhiZDI4NzZkMjVkOWJhNWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nU3RhdGUuaApAQCAtMzUsMTIgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVz
cGFjZSBMYXlvdXQgewogCiBjbGFzcyBCb3g7Ci1jbGFzcyBTdHlsZURpZmY7CitlbnVtIGNsYXNz
IFN0eWxlRGlmZjsKIAogY2xhc3MgRm9ybWF0dGluZ1N0YXRlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEZvcm1hdHRpbmdTdGF0ZSk7CiBwdWJsaWM6Ci0gICAgRm9ybWF0dGluZ1N0YXRl
KFJlZjxGbG9hdGluZ1N0YXRlPiYmKTsKICAgICB2aXJ0dWFsIH5Gb3JtYXR0aW5nU3RhdGUoKTsK
IAogICAgIEZsb2F0aW5nU3RhdGUmIGZsb2F0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zs
b2F0aW5nU3RhdGU7IH0KQEAgLTQ4LDEwICs0NywyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJr
TmVlZHNMYXlvdXQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKICAgICBib29sIG5lZWRzTGF5b3V0
KGNvbnN0IEJveCYpOwogCisgICAgYm9vbCBpc0Jsb2NrRm9ybWF0dGluZ1N0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IFR5cGU6OkJsb2NrOyB9CisgICAgYm9vbCBpc0lubGluZUZvcm1h
dHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpJbmxpbmU7IH0KKwor
cHJvdGVjdGVkOgorICAgIGVudW0gY2xhc3MgVHlwZSB7IEJsb2NrLCBJbmxpbmUgfTsKKyAgICBG
b3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYsIFR5cGUpOworCiBwcml2YXRlOgog
ICAgIFJlZjxGbG9hdGluZ1N0YXRlPiBtX2Zsb2F0aW5nU3RhdGU7CisgICAgVHlwZSBtX3R5cGU7
CiB9OwogCiB9CiB9CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9S
TUFUVElOR19TVEFURShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpMYXlvdXQ6OlRvVmFsdWVUeXBlTmFtZSkgXAorICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdTdGF0
ZSYgZm9ybWF0dGluZ1N0YXRlKSB7IHJldHVybiBmb3JtYXR0aW5nU3RhdGUucHJlZGljYXRlOyB9
IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggOWU5OGFlN2Y2MWEyYzNhYWEzY2ZhZTJjZTg2
MDUxYjA2MWRhNTdhNC4uZDFhZjZmYWJjM2Y4OGFiYjIyODY1ZTlhNzM0MTNkNDI5NjVmZDhmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMzAsOSArMzAsMTEg
QEAKIAogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJCbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkJsb2NrSW52YWxpZGF0aW9uLmgiCiAjaW5j
bHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiSW5saW5lSW52
YWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29u
dGFpbmVyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTYyLDYgKzY0
LDIxIEBAIERpc3BsYXk6OkJveCYgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRGlzcGxheUJveChjb25z
dCBCb3gmIGxheW91dEJveCkKICAgICByZXR1cm4gKmRpc3BsYXlCb3hQdHI7CiB9CiAKK3ZvaWQg
TGF5b3V0Q29udGV4dDo6c3R5bGVDaGFuZ2VkKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURp
ZmYgc3R5bGVEaWZmKQoreworICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGZvcm1hdHRpbmdT
dGF0ZUZvckJveChsYXlvdXRCb3gpOworICAgIGlmIChpczxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4o
Zm9ybWF0dGluZ1N0YXRlKSkKKyAgICAgICAgQmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUo
bGF5b3V0Qm94LCBzdHlsZURpZmYsICp0aGlzLCBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0
ZT4oZm9ybWF0dGluZ1N0YXRlKSk7CisgICAgZWxzZSBpZiAoaXM8SW5saW5lRm9ybWF0dGluZ1N0
YXRlPihmb3JtYXR0aW5nU3RhdGUpKQorICAgICAgICBJbmxpbmVJbnZhbGlkYXRpb246OmludmFs
aWRhdGUobGF5b3V0Qm94LCBzdHlsZURpZmYsICp0aGlzLCBkb3duY2FzdDxJbmxpbmVGb3JtYXR0
aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpOworICAgIGVsc2UKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgTGF5b3V0Q29udGV4dDo6bWFya05lZWRzVXBkYXRlKGNv
bnN0IEJveCYsIFVwZGF0ZVR5cGVzKQoreworfQorCiBGb3JtYXR0aW5nU3RhdGUmIExheW91dENv
bnRleHQ6OmZvcm1hdHRpbmdTdGF0ZUZvckJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QK
IHsKICAgICBhdXRvJiByb290ID0gbGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKaW5kZXggNzdlZmEwNmE1ZDMwOGQ4NGY5
MWJjNTZiNWE0MmE5OTEyOWVhZWRiOC4uZTY5N2FmMmU5NzRlNDgyMzUyYzMyOTJkYzM4MGYwZjNl
NmJmOTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBAIC00MCw3ICs0
MCw3IEBAIGNsYXNzIEJveDsKIAogbmFtZXNwYWNlIExheW91dCB7CiAKLWNsYXNzIFN0eWxlRGlm
ZjsKK2VudW0gY2xhc3MgU3R5bGVEaWZmOwogCiAvLyBMYXlvdXRDb250ZXh0IGlzIHRoZSBlbnRy
eSBwb2ludCBmb3IgbGF5b3V0LiBJdCB0YWtlcyBhIChmb3JtYXR0aW5nIHJvb3QpY29udGFpbmVy
IHdoaWNoIGFjdHMgYXMgdGhlIHJvb3Qgb2YgdGhlIGxheW91dCBjb250ZXh0LgogLy8gTGF5b3V0
Q29udGV4dDo6bGF5b3V0KCkgZ2VuZXJhdGVzIHRoZSBkaXNwbGF5IHRyZWUgZm9yIHRoZSByb290
IGNvbnRhaW5lcidzIHN1YnRyZWUgKGl0IGRvZXMgbm90IHJ1biBsYXlvdXQgb24gdGhlIHJvb3Qg
dGhvdWdoKS4KQEAgLTU3LDggKzU3LDE3IEBAIHB1YmxpYzoKICAgICBEaXNwbGF5OjpCb3gmIGNy
ZWF0ZURpc3BsYXlCb3goY29uc3QgQm94Jik7CiAgICAgRGlzcGxheTo6Qm94KiBkaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX2xheW91
dFRvRGlzcGxheUJveC5nZXQoJmxheW91dEJveCk7IH0KIAotICAgIHZvaWQgbWFya05lZWRzTGF5
b3V0KGNvbnN0IEJveCYsIFN0eWxlRGlmZik7Ci0gICAgYm9vbCBuZWVkc0xheW91dChjb25zdCBC
b3gmKSBjb25zdDsKKyAgICB2b2lkIHN0eWxlQ2hhbmdlZChjb25zdCBCb3gmLCBTdHlsZURpZmYp
OworCisgICAgZW51bSBVcGRhdGVUeXBlIHsKKyAgICAgICAgT3ZlcmZsb3cgPSAxIDw8IDAsCisg
ICAgICAgIFBvc2l0aW9uID0gMSA8PCAxLAorICAgICAgICBTaXplICAgICA9IDEgPDwgMiwKKyAg
ICAgICAgQWxsICAgICAgPSBPdmVyZmxvdyB8IFBvc2l0aW9uIHwgU2l6ZQorICAgIH07CisgICAg
dHlwZWRlZiB1bnNpZ25lZCBVcGRhdGVUeXBlczsKKyAgICB2b2lkIG1hcmtOZWVkc1VwZGF0ZShj
b25zdCBCb3gmLCBVcGRhdGVUeXBlcyk7CisgICAgYm9vbCBuZWVkc1VwZGF0ZShjb25zdCBCb3gm
KSBjb25zdDsKIAogICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yQm94KGNv
bnN0IEJveCYpIGNvbnN0OwogICAgIEZvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRGb3JtYXR0
aW5nU3RhdGUoY29uc3QgQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGNvbnN0IEZvcm1hdHRp
bmdDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3BwCmluZGV4IGM5NTFlZWUzNmM5
MDFmYTBiYzY0NTFlMjcyODBhMTVkMDE3MDgyNjAuLjdlYmJmNDZhMjY0MzFjMjU0NTc2Y2IyN2Ni
NGE0MTY5YTYyNTAwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuY3BwCkBAIC0zNiw3ICsz
Niw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJs
b2NrRm9ybWF0dGluZ1N0YXRlKTsKIAogQmxvY2tGb3JtYXR0aW5nU3RhdGU6OkJsb2NrRm9ybWF0
dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCi0gICAgOiBGb3Jt
YXR0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSkKKyAgICA6IEZvcm1hdHRpbmdTdGF0
ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUpLCBUeXBlOjpCbG9jaykKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdTdGF0ZS5oCmluZGV4IDQ0ZTVkODNjNWMwNWE0ZmIyYjE3YWVhMzllNDI1YjA3MDdjNzA3
MTAuLmRhZTE0NzM2YzZmNmRiZDcwZWZhZTFhNWQ3MWMyMjY4YmQwOTgzZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3Rh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ1N0YXRlLmgKQEAgLTQ0LDQgKzQ0LDcgQEAgcHVibGljOgogCiB9CiB9CisKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0ZPUk1BVFRJTkdfU1RBVEUoQmxvY2tGb3JtYXR0aW5n
U3RhdGUsIGlzQmxvY2tGb3JtYXR0aW5nU3RhdGUoKSkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRp
b24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1MmFmYWI1MWIzNDhjYTY4MGFmNThjZjE0ODljYTg1ZTkyZTg4
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJsb2NrSW52YWxpZGF0aW9uLmgiCisKKyNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkJsb2NrRm9y
bWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCisjaW5jbHVkZSAiTGF5b3V0
Q29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoQmxvY2tJbnZhbGlkYXRpb24pOworCit2b2lkIEJsb2NrSW52YWxpZGF0aW9uOjppbnZh
bGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmYsIExheW91dENvbnRleHQmIGxh
eW91dENvbnRleHQsIEJsb2NrRm9ybWF0dGluZ1N0YXRlJikKK3sKKyAgICBsYXlvdXRDb250ZXh0
Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRCb3gsIExheW91dENvbnRleHQ6OlVwZGF0ZVR5cGU6OkFs
bCk7Cit9CisKK30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlZjE0
MzYxMDZkYmQ1NDZlOGEwNTg4NmVmNDI5MzU0NTQyOWU4Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmgK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEJv
eDsKK2NsYXNzIEJsb2NrRm9ybWF0dGluZ1N0YXRlOworY2xhc3MgTGF5b3V0Q29udGV4dDsKK2Vu
dW0gY2xhc3MgU3R5bGVEaWZmOworCisvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgYm94IGludmFs
aWRhdGlvbiBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LgorY2xhc3MgQmxvY2tJbnZhbGlk
YXRpb24geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQmxvY2tJbnZhbGlkYXRpb24pOwor
cHVibGljOgorICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGUoY29uc3QgQm94JiwgU3R5bGVEaWZm
LCBMYXlvdXRDb250ZXh0JiwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKTsKK307CisKK30KK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggNzIxZDgyOTRmYTg1NjFk
MGEwMzgyZDU0OTM1YTUwMmRlZDRjMTg4Ny4uYTAwZDVkY2NlZjhmMDYwN2YyMzY2NmU3MzRjZTBm
YzA5YTJkYjRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCkBAIC0zNiw3ICsz
Niw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElu
bGluZUZvcm1hdHRpbmdTdGF0ZSk7CiAKIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6SW5saW5lRm9y
bWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCi0gICAgOiBG
b3JtYXR0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSkKKyAgICA6IEZvcm1hdHRpbmdT
dGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUpLCBUeXBlOjpJbmxpbmUpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNTYyM2RkOTg2NDllYzExMzdiZDQxNGViZTBkZGI3
ZDEwOTM2NTg0ZS4uNmFhZjc0NzBhZmQyMzY3OTNhYTE5ZmY1MmYwNzc5NGNjYWNhYjQ3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTQ0LDQgKzQ0LDcgQEAgcHVibGljOgogCiB9
CiB9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0ZPUk1BVFRJTkdfU1RBVEUoSW5s
aW5lRm9ybWF0dGluZ1N0YXRlLCBpc0lubGluZUZvcm1hdHRpbmdTdGF0ZSgpKQorCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxODgyNmZjMmNiZDVhMTk5NjBm
OGQ3OTM3ODZlMWEwNmM5ZWE5ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5saW5l
SW52YWxpZGF0aW9uLmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
KworI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dEJv
eC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKwor
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElubGluZUludmFsaWRhdGlvbik7CisKK3ZvaWQg
SW5saW5lSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHls
ZURpZmYsIExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIElubGluZUZvcm1hdHRpbmdTdGF0
ZSYpCit7CisgICAgbGF5b3V0Q29udGV4dC5tYXJrTmVlZHNVcGRhdGUobGF5b3V0Qm94LCBMYXlv
dXRDb250ZXh0OjpVcGRhdGVUeXBlOjpBbGwpOworfQorCit9Cit9CisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52
YWxpZGF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3YzM2N2JlOGNkMzYwNTY5MTQ5OTQ1MGQxZGZmMjM5
MTM0ZDhlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K25hbWVzcGFjZSBMYXlvdXQgeworCitjbGFzcyBCb3g7CitjbGFzcyBJbmxpbmVGb3JtYXR0aW5n
U3RhdGU7CitjbGFzcyBMYXlvdXRDb250ZXh0OworZW51bSBjbGFzcyBTdHlsZURpZmY7CisKKy8v
IFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3ggaW52YWxpZGF0aW9uIGZvciBpbmxpbmUgZm9ybWF0
dGluZyBjb250ZXh0LgorY2xhc3MgSW5saW5lSW52YWxpZGF0aW9uIHsKKyAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKElubGluZUludmFsaWRhdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIHZv
aWQgaW52YWxpZGF0ZShjb25zdCBCb3gmLCBTdHlsZURpZmYsIExheW91dENvbnRleHQmLCBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUmKTsKK307CisKK30KK30KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339419</attachid>
            <date>2018-05-03 09:34:50 -0700</date>
            <delta_ts>2018-05-03 10:15:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185249-20180503093450.patch</filename>
            <type>text/plain</type>
            <size>22529</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFjNTIyMDQ5MjgxYWU1
ODlhZThmYWMyZmUzMGQxYjcyYzU0N2JkOC4uM2QwOTA1ZGNhZWFlYzlhYWQyNmEyNmI4MzM4OTQ2
OGQ2YzU1NDdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA1LTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gQm94IGludmFsaWRh
dGlvbiBsb2dpYyBzaG91bGQgZ28gdG8gZGVkaWNhdGVkIGNsYXNzZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUyNDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBFYWNoIGZvcm1hdHRpbmcgY29udGV4
dCBjYW4gaW5pdGlhdGUgYSBkaWZmZXJlbnQgdHlwZSBvZiBpbnZhbGlkYXRpb24gd2hlbgorICAg
ICAgICBzdHlsZSBhdHRyaWJ1dGUgY2hhbmdlcyBpbiBhIGJveC4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9Gb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z1N0YXRlOjppc0Jsb2NrRm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjppc0lubGluZUZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250ZXh0OjptYXJrTmVlZHNVcGRhdGUpOgorICAgICAgICAqIGxheW91
dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9y
bWF0dGluZ1N0YXRlOjpCbG9ja0Zvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUp
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmguCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1N0YXRlOjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdT
dGF0ZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUludmFsaWRhdGlvbjo6
aW52YWxpZGF0ZSk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52
YWxpZGF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaC4KKwogMjAxOC0wNS0wMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEltcGxlbWVudCBMYXlvdXRDb250
ZXh0OjpjcmVhdGVEaXNwbGF5Qm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDczYzEzNTE1ODAwODQ0NTFi
YjcwZjk0NjVkN2Y4NDU3ZWRjNzQ3NGIuLjU5OWI1NGIwZTk5Y2U0MTFkNTBhYjk2OGU4NWM1Y2M1
YjgzZmZhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjIxLDkgKzEyMjEsMTEgQEAgbGF5b3V0L0xh
eW91dENvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNw
cAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKIGxheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5Qm94LmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3Rh
dGUuY3BwCitsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCiBs
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5jcHAKIGxheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzNmE0NDNmYjQ5MmUyZTk5YTA3ZDRiODVmNjZkMmMzN2MyMWM0MDgzLi5iZjY4ZDQ3ZWMy
MDY1ZTkyODFlNDUxMjZiNDRkYjZhNDNjZjNmOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzIxLDYgKzU3MjEsMTAgQEAK
IAkJMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8qIExheW91dEFuY2VzdG9ySXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxMTEwMEZENTIwOTUxNERFMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTEwMEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0
VHJlZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VHJlZUJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUNDIC8qIEJsb2Nr
SW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrSW52YWxpZGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAvKiBCbG9j
a0ludmFsaWRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0ludmFsaWRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkRDMjA5QUJCQkEwMDczNkFD
QyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSW52YWxpZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExMjNBRkREMjA5QUJCQkEwMDcz
NkFDQyAvKiBJbmxpbmVJbnZhbGlkYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
SW52YWxpZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDAx
RTYwQjhBNzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0RDQxRTYwQjk4MzAwQkIz
MTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVp
bGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRl
ckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTY4NCw2
ICsxNTY4OCw4IEBACiAJCQkJMTE1Q0ZBNkMyMDhBRkFCNjAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQuaCAqLywKIAkJCQkxMTVDRkE3OTIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tG
b3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTc4MjA4QjhEOUQwMDFFNjk5MSAvKiBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZS5oICovLAorCQkJCTExMjNBRkRBMjA5QUJCMjAwMDczNkFDQyAv
KiBCbG9ja0ludmFsaWRhdGlvbi5jcHAgKi8sCisJCQkJMTEyM0FGRDkyMDlBQkIyMDAwNzM2QUND
IC8qIEJsb2NrSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJMTE1Q0ZBODkyMDhCOTIxQTAwMUU2OTkx
IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwICovLAogCQkJCTExNUNGQTg4MjA4QjkyMUEwMDFF
Njk5MSAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggKi8sCiAJCQkpOwpAQCAtMTU2OTcsNiArMTU3
MDMsOCBAQAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oICovLAogCQkJCTExNUNGQTdEMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTExNUNGQTdDMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUuaCAqLywKKwkJCQkxMTIzQUZERDIwOUFCQkJBMDA3MzZBQ0MgLyog
SW5saW5lSW52YWxpZGF0aW9uLmNwcCAqLywKKwkJCQkxMTIzQUZEQzIwOUFCQkJBMDA3MzZBQ0Mg
LyogSW5saW5lSW52YWxpZGF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlubGluZWZvcm1h
dHRpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCBmZjY5MWE3MDM2YzYyMmZlOWIzNzI3ZjNhZjRkNDM0
ODI2MTE1OTliLi42MTgwYmQ3YmE0MWZkNTViNDBhMDdjMGJkMWZkNTA1NDFmYjJmOWY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMzUsOCArMzUsOSBA
QCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1h
dHRpbmdTdGF0ZSk7CiAKLUZvcm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9h
dGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCitGb3JtYXR0aW5nU3RhdGU6OkZvcm1hdHRpbmdT
dGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJiBmbG9hdGluZ1N0YXRlLCBUeXBlIHR5cGUpCiAgICAg
OiBtX2Zsb2F0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSkKKyAgICAsIG1fdHlwZSh0
eXBlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXgg
MTBjM2E0Mjc4YTk3MjQ0ZDU1ODc4NTNjZWY4OTk1YzdlNmY2ZmNkNi4uY2Y2MTY5M2RjNWQ5OGEy
MzNmMTg1MDhiZDI4NzZkMjVkOWJhNWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nU3RhdGUuaApAQCAtMzUsMTIgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVz
cGFjZSBMYXlvdXQgewogCiBjbGFzcyBCb3g7Ci1jbGFzcyBTdHlsZURpZmY7CitlbnVtIGNsYXNz
IFN0eWxlRGlmZjsKIAogY2xhc3MgRm9ybWF0dGluZ1N0YXRlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEZvcm1hdHRpbmdTdGF0ZSk7CiBwdWJsaWM6Ci0gICAgRm9ybWF0dGluZ1N0YXRl
KFJlZjxGbG9hdGluZ1N0YXRlPiYmKTsKICAgICB2aXJ0dWFsIH5Gb3JtYXR0aW5nU3RhdGUoKTsK
IAogICAgIEZsb2F0aW5nU3RhdGUmIGZsb2F0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zs
b2F0aW5nU3RhdGU7IH0KQEAgLTQ4LDEwICs0NywyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJr
TmVlZHNMYXlvdXQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKICAgICBib29sIG5lZWRzTGF5b3V0
KGNvbnN0IEJveCYpOwogCisgICAgYm9vbCBpc0Jsb2NrRm9ybWF0dGluZ1N0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IFR5cGU6OkJsb2NrOyB9CisgICAgYm9vbCBpc0lubGluZUZvcm1h
dHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpJbmxpbmU7IH0KKwor
cHJvdGVjdGVkOgorICAgIGVudW0gY2xhc3MgVHlwZSB7IEJsb2NrLCBJbmxpbmUgfTsKKyAgICBG
b3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYsIFR5cGUpOworCiBwcml2YXRlOgog
ICAgIFJlZjxGbG9hdGluZ1N0YXRlPiBtX2Zsb2F0aW5nU3RhdGU7CisgICAgVHlwZSBtX3R5cGU7
CiB9OwogCiB9CiB9CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9S
TUFUVElOR19TVEFURShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpMYXlvdXQ6OlRvVmFsdWVUeXBlTmFtZSkgXAorICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdTdGF0
ZSYgZm9ybWF0dGluZ1N0YXRlKSB7IHJldHVybiBmb3JtYXR0aW5nU3RhdGUucHJlZGljYXRlOyB9
IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggOWU5OGFlN2Y2MWEyYzNhYWEzY2ZhZTJjZTg2
MDUxYjA2MWRhNTdhNC4uZDU0NmY3OWE2ODI0ZGFlNWY1MDdjM2EzNzY0YTA3MjYwNDg2ZjdlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMzAsOSArMzAsMTEg
QEAKIAogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJCbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkJsb2NrSW52YWxpZGF0aW9uLmgiCiAjaW5j
bHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiSW5saW5lSW52
YWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29u
dGFpbmVyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTYyLDYgKzY0
LDIxIEBAIERpc3BsYXk6OkJveCYgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRGlzcGxheUJveChjb25z
dCBCb3gmIGxheW91dEJveCkKICAgICByZXR1cm4gKmRpc3BsYXlCb3hQdHI7CiB9CiAKK3ZvaWQg
TGF5b3V0Q29udGV4dDo6c3R5bGVDaGFuZ2VkKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURp
ZmYgc3R5bGVEaWZmKQoreworICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGZvcm1hdHRpbmdT
dGF0ZUZvckJveChsYXlvdXRCb3gpOworICAgIGlmIChpczxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4o
Zm9ybWF0dGluZ1N0YXRlKSkKKyAgICAgICAgQmxvY2tJbnZhbGlkYXRpb246OmludmFsaWRhdGUo
bGF5b3V0Qm94LCBzdHlsZURpZmYsICp0aGlzLCBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0
ZT4oZm9ybWF0dGluZ1N0YXRlKSk7CisgICAgZWxzZSBpZiAoaXM8SW5saW5lRm9ybWF0dGluZ1N0
YXRlPihmb3JtYXR0aW5nU3RhdGUpKQorICAgICAgICBJbmxpbmVJbnZhbGlkYXRpb246OmludmFs
aWRhdGUobGF5b3V0Qm94LCBzdHlsZURpZmYsICp0aGlzLCBkb3duY2FzdDxJbmxpbmVGb3JtYXR0
aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSkpOworICAgIGVsc2UKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgTGF5b3V0Q29udGV4dDo6bWFya05lZWRzVXBkYXRlKGNv
bnN0IEJveCYsIE9wdGlvblNldDxVcGRhdGVUeXBlPikKK3sKK30KKwogRm9ybWF0dGluZ1N0YXRl
JiBMYXlvdXRDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGVGb3JCb3goY29uc3QgQm94JiBsYXlvdXRC
b3gpIGNvbnN0CiB7CiAgICAgYXV0byYgcm9vdCA9IGxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4
dFJvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCmluZGV4IDc3ZWZhMDZh
NWQzMDhkODRmOTFiYzU2YjVhNDJhOTkxMjllYWVkYjguLjA3YzBhODg5Mzk4YTYyOGYzMWNiNzg1
YjJkZTMzY2JlOTEzNTc4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUg
IkxheW91dEJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNyArNDEsNyBAQCBj
bGFzcyBCb3g7CiAKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1jbGFzcyBTdHlsZURpZmY7CitlbnVt
IGNsYXNzIFN0eWxlRGlmZjsKIAogLy8gTGF5b3V0Q29udGV4dCBpcyB0aGUgZW50cnkgcG9pbnQg
Zm9yIGxheW91dC4gSXQgdGFrZXMgYSAoZm9ybWF0dGluZyByb290KWNvbnRhaW5lciB3aGljaCBh
Y3RzIGFzIHRoZSByb290IG9mIHRoZSBsYXlvdXQgY29udGV4dC4KIC8vIExheW91dENvbnRleHQ6
OmxheW91dCgpIGdlbmVyYXRlcyB0aGUgZGlzcGxheSB0cmVlIGZvciB0aGUgcm9vdCBjb250YWlu
ZXIncyBzdWJ0cmVlIChpdCBkb2VzIG5vdCBydW4gbGF5b3V0IG9uIHRoZSByb290IHRob3VnaCku
CkBAIC01Nyw4ICs1OCwxNiBAQCBwdWJsaWM6CiAgICAgRGlzcGxheTo6Qm94JiBjcmVhdGVEaXNw
bGF5Qm94KGNvbnN0IEJveCYpOwogICAgIERpc3BsYXk6OkJveCogZGlzcGxheUJveEZvckxheW91
dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUb0Rpc3Bs
YXlCb3guZ2V0KCZsYXlvdXRCb3gpOyB9CiAKLSAgICB2b2lkIG1hcmtOZWVkc0xheW91dChjb25z
dCBCb3gmLCBTdHlsZURpZmYpOwotICAgIGJvb2wgbmVlZHNMYXlvdXQoY29uc3QgQm94JikgY29u
c3Q7CisgICAgdm9pZCBzdHlsZUNoYW5nZWQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKKworICAg
IGVudW0gY2xhc3MgVXBkYXRlVHlwZSB7CisgICAgICAgIE92ZXJmbG93ID0gMSA8PCAwLAorICAg
ICAgICBQb3NpdGlvbiA9IDEgPDwgMSwKKyAgICAgICAgU2l6ZSAgICAgPSAxIDw8IDIsCisgICAg
ICAgIEFsbCAgICAgID0gT3ZlcmZsb3cgfCBQb3NpdGlvbiB8IFNpemUKKyAgICB9OworICAgIHZv
aWQgbWFya05lZWRzVXBkYXRlKGNvbnN0IEJveCYsIE9wdGlvblNldDxVcGRhdGVUeXBlPik7Cisg
ICAgYm9vbCBuZWVkc1VwZGF0ZShjb25zdCBCb3gmKSBjb25zdDsKIAogICAgIEZvcm1hdHRpbmdT
dGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0IEJveCYpIGNvbnN0OwogICAgIEZvcm1h
dHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3JtYXR0
aW5nQ29udGV4dFJvb3QsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nU3RhdGUuY3BwCmluZGV4IGM5NTFlZWUzNmM5MDFmYTBiYzY0NTFlMjcyODBhMTVkMDE3MDgy
NjAuLjdlYmJmNDZhMjY0MzFjMjU0NTc2Y2IyN2NiNGE0MTY5YTYyNTAwOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3Rh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nU3RhdGUuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJsb2NrRm9ybWF0dGluZ1N0YXRlKTsKIAogQmxv
Y2tGb3JtYXR0aW5nU3RhdGU6OkJsb2NrRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRl
PiYmIGZsb2F0aW5nU3RhdGUpCi0gICAgOiBGb3JtYXR0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGlu
Z1N0YXRlKSkKKyAgICA6IEZvcm1hdHRpbmdTdGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUpLCBU
eXBlOjpCbG9jaykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IDQ0ZTVkODNj
NWMwNWE0ZmIyYjE3YWVhMzllNDI1YjA3MDdjNzA3MTAuLmRhZTE0NzM2YzZmNmRiZDcwZWZhZTFh
NWQ3MWMyMjY4YmQwOTgzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTQ0LDQgKzQ0
LDcgQEAgcHVibGljOgogCiB9CiB9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0ZP
Uk1BVFRJTkdfU1RBVEUoQmxvY2tGb3JtYXR0aW5nU3RhdGUsIGlzQmxvY2tGb3JtYXR0aW5nU3Rh
dGUoKSkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tJbnZhbGlkYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MmFmYWI1
MWIzNDhjYTY4MGFmNThjZjE0ODljYTg1ZTkyZTg4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmNwcApA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkJsb2NrSW52YWxpZGF0aW9uLmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKKworI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAi
TGF5b3V0Qm94LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlv
dXQgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQmxvY2tJbnZhbGlkYXRpb24pOwor
Cit2b2lkIEJsb2NrSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBTdHlsZURpZmYsIExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIEJsb2NrRm9ybWF0dGlu
Z1N0YXRlJikKK3sKKyAgICBsYXlvdXRDb250ZXh0Lm1hcmtOZWVkc1VwZGF0ZShsYXlvdXRCb3gs
IExheW91dENvbnRleHQ6OlVwZGF0ZVR5cGU6OkFsbCk7Cit9CisKK30KK30KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0ludmFs
aWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0lu
dmFsaWRhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlZjE0MzYxMDZkYmQ1NDZlOGEwNTg4NmVmNDI5MzU0
NTQyOWU4Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrSW52YWxpZGF0aW9uLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
CisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
bmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEJveDsKK2NsYXNzIEJsb2NrRm9ybWF0dGluZ1N0
YXRlOworY2xhc3MgTGF5b3V0Q29udGV4dDsKK2VudW0gY2xhc3MgU3R5bGVEaWZmOworCisvLyBU
aGlzIGNsYXNzIGltcGxlbWVudHMgYm94IGludmFsaWRhdGlvbiBmb3IgYmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0LgorY2xhc3MgQmxvY2tJbnZhbGlkYXRpb24geworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoQmxvY2tJbnZhbGlkYXRpb24pOworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGlu
dmFsaWRhdGUoY29uc3QgQm94JiwgU3R5bGVEaWZmLCBMYXlvdXRDb250ZXh0JiwgQmxvY2tGb3Jt
YXR0aW5nU3RhdGUmKTsKK307CisKK30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdT
dGF0ZS5jcHAKaW5kZXggNzIxZDgyOTRmYTg1NjFkMGEwMzgyZDU0OTM1YTUwMmRlZDRjMTg4Ny4u
YTAwZDVkY2NlZjhmMDYwN2YyMzY2NmU3MzRjZTBmYzA5YTJkYjRjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nU3RhdGUuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElubGluZUZvcm1hdHRpbmdTdGF0ZSk7CiAKIElu
bGluZUZvcm1hdHRpbmdTdGF0ZTo6SW5saW5lRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0
YXRlPiYmIGZsb2F0aW5nU3RhdGUpCi0gICAgOiBGb3JtYXR0aW5nU3RhdGUoV1RGTW92ZShmbG9h
dGluZ1N0YXRlKSkKKyAgICA6IEZvcm1hdHRpbmdTdGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUp
LCBUeXBlOjpJbmxpbmUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXgg
NTYyM2RkOTg2NDllYzExMzdiZDQxNGViZTBkZGI3ZDEwOTM2NTg0ZS4uNmFhZjc0NzBhZmQyMzY3
OTNhYTE5ZmY1MmYwNzc5NGNjYWNhYjQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgK
QEAgLTQ0LDQgKzQ0LDcgQEAgcHVibGljOgogCiB9CiB9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfTEFZT1VUX0ZPUk1BVFRJTkdfU1RBVEUoSW5saW5lRm9ybWF0dGluZ1N0YXRlLCBpc0lubGlu
ZUZvcm1hdHRpbmdTdGF0ZSgpKQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVJbnZhbGlkYXRpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIxODgyNmZjMmNiZDVhMTk5NjBmOGQ3OTM3ODZlMWEwNmM5ZWE5ZjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVJbnZhbGlkYXRpb24uY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5saW5lSW52YWxpZGF0aW9uLmgiCisKKyNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIklubGluZUZvcm1hdHRp
bmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRl
eHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KElubGluZUludmFsaWRhdGlvbik7CisKK3ZvaWQgSW5saW5lSW52YWxpZGF0aW9uOjppbnZhbGlk
YXRlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBTdHlsZURpZmYsIExheW91dENvbnRleHQmIGxheW91
dENvbnRleHQsIElubGluZUZvcm1hdHRpbmdTdGF0ZSYpCit7CisgICAgbGF5b3V0Q29udGV4dC5t
YXJrTmVlZHNVcGRhdGUobGF5b3V0Qm94LCBMYXlvdXRDb250ZXh0OjpVcGRhdGVUeXBlOjpBbGwp
OworfQorCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lSW52YWxpZGF0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3
YzM2N2JlOGNkMzYwNTY5MTQ5OTQ1MGQxZGZmMjM5MTM0ZDhlOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlv
bi5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Yy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBMYXlvdXQgeworCitjbGFz
cyBCb3g7CitjbGFzcyBJbmxpbmVGb3JtYXR0aW5nU3RhdGU7CitjbGFzcyBMYXlvdXRDb250ZXh0
OworZW51bSBjbGFzcyBTdHlsZURpZmY7CisKKy8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3gg
aW52YWxpZGF0aW9uIGZvciBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LgorY2xhc3MgSW5saW5l
SW52YWxpZGF0aW9uIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZUludmFsaWRh
dGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZShjb25zdCBCb3gmLCBT
dHlsZURpZmYsIExheW91dENvbnRleHQmLCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmKTsKK307CisK
K30KK30KKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>