<?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>193496</bug_id>
          
          <creation_ts>2019-01-16 09:16:44 -0800</creation_ts>
          <short_desc>bmalloc should use JSC VM tag for gigacage</short_desc>
          <delta_ts>2019-01-16 11:53:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1495086</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-01-16 09:16:44 -0800</bug_when>
    <thetext>bmalloc should use JSC VM tag for gigacage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495088</commentid>
    <comment_count>1</comment_count>
      <attachid>359270</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-01-16 09:19:43 -0800</bug_when>
    <thetext>Created attachment 359270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495091</commentid>
    <comment_count>2</comment_count>
      <attachid>359273</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-01-16 09:47:07 -0800</bug_when>
    <thetext>Created attachment 359273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495094</commentid>
    <comment_count>3</comment_count>
      <attachid>359273</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-01-16 09:54:57 -0800</bug_when>
    <thetext>Comment on attachment 359273
Patch

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

r=me with fixes and if EWS bots are happy.

&gt; Source/bmalloc/ChangeLog:9
&gt; +        tag gigacage memory with the unused JSC memory tag. The JSC memory

I think that you should clarify that by &quot;unused&quot;, you mean JSGigacagePages i.e. VM_TAG_FOR_GIGACAGE_MEMORY, instead of UnknownUsage.

&gt; Source/bmalloc/bmalloc.xcodeproj/project.pbxproj:746
&gt; +                        developmentRegion = en;

Fix indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495096</commentid>
    <comment_count>4</comment_count>
      <attachid>359273</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-01-16 10:02:25 -0800</bug_when>
    <thetext>Comment on attachment 359273
Patch

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

&gt; Source/bmalloc/ChangeLog:14
&gt; +        * bmalloc/BVMTags.h: Copied from Source/WTF/wtf/VMTags.h.

You should just call this file &quot;VMTags.h&quot;. The purpose of the B prefix is a cheap way, in limited cases, to avoid name conflicts with something we expect other projects to declare. But we intend to be the only declaration of VMTags.h.

&gt; Source/bmalloc/bmalloc/BVMTags.h:73
&gt; +    FastMallocPages = VM_TAG_FOR_TCMALLOC_MEMORY,

FastMalloc is an abstraction built on top of, and agnostically of, bmalloc. SO, it&apos;s kind of upside-down to declare the FastMalloc name inside bmalloc. I would just call this MallocPages. Also not clear why all of these names end in Pages. Also, this enum describes a tag we&apos;ll put on a piece of memory, not any constraint on its usage. So I would call it VMTag. Also, do we ever use Unknown? Seems like we don&apos;t, so let&apos;s leave it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495106</commentid>
    <comment_count>5</comment_count>
      <attachid>359273</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-01-16 10:16:29 -0800</bug_when>
    <thetext>Comment on attachment 359273
Patch

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

&gt;&gt; Source/bmalloc/ChangeLog:9
&gt;&gt; +        tag gigacage memory with the unused JSC memory tag. The JSC memory
&gt; 
&gt; I think that you should clarify that by &quot;unused&quot;, you mean JSGigacagePages i.e. VM_TAG_FOR_GIGACAGE_MEMORY, instead of UnknownUsage.

Geoff suggested that we get rid of the UnknownUsage. So that should clarify this concern, imo.

&gt;&gt; Source/bmalloc/ChangeLog:14
&gt;&gt; +        * bmalloc/BVMTags.h: Copied from Source/WTF/wtf/VMTags.h.
&gt; 
&gt; You should just call this file &quot;VMTags.h&quot;. The purpose of the B prefix is a cheap way, in limited cases, to avoid name conflicts with something we expect other projects to declare. But we intend to be the only declaration of VMTags.h.

There&apos;s still a VMTags.h since we need to declare the macros there if not building with bmalloc. Gigacage.h being in both bmalloc and WTF already means that lldb can&apos;t debug it...

&gt;&gt; Source/bmalloc/bmalloc.xcodeproj/project.pbxproj:746
&gt;&gt; +                        developmentRegion = en;
&gt; 
&gt; Fix indentation.

Does it matter? This isn&apos;t a human readable file anyway, unless you&apos;re Mitz.

&gt;&gt; Source/bmalloc/bmalloc/BVMTags.h:73
&gt;&gt; +    FastMallocPages = VM_TAG_FOR_TCMALLOC_MEMORY,
&gt; 
&gt; FastMalloc is an abstraction built on top of, and agnostically of, bmalloc. SO, it&apos;s kind of upside-down to declare the FastMalloc name inside bmalloc. I would just call this MallocPages. Also not clear why all of these names end in Pages. Also, this enum describes a tag we&apos;ll put on a piece of memory, not any constraint on its usage. So I would call it VMTag. Also, do we ever use Unknown? Seems like we don&apos;t, so let&apos;s leave it out.

Sure. We use Unknown in OSAllocator but not here so I can get rid of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495107</commentid>
    <comment_count>6</comment_count>
      <attachid>359273</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-01-16 10:21:55 -0800</bug_when>
    <thetext>Comment on attachment 359273
Patch

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

&gt;&gt;&gt; Source/bmalloc/bmalloc.xcodeproj/project.pbxproj:746
&gt;&gt;&gt; +                        developmentRegion = en;
&gt;&gt; 
&gt;&gt; Fix indentation.
&gt; 
&gt; Does it matter? This isn&apos;t a human readable file anyway, unless you&apos;re Mitz.

It matters because it&apos;s ugly (&quot;behind the fence&quot;). :)

&gt;&gt;&gt; Source/bmalloc/bmalloc/BVMTags.h:73
&gt;&gt;&gt; +    FastMallocPages = VM_TAG_FOR_TCMALLOC_MEMORY,
&gt;&gt; 
&gt;&gt; FastMalloc is an abstraction built on top of, and agnostically of, bmalloc. SO, it&apos;s kind of upside-down to declare the FastMalloc name inside bmalloc. I would just call this MallocPages. Also not clear why all of these names end in Pages. Also, this enum describes a tag we&apos;ll put on a piece of memory, not any constraint on its usage. So I would call it VMTag. Also, do we ever use Unknown? Seems like we don&apos;t, so let&apos;s leave it out.
&gt; 
&gt; Sure. We use Unknown in OSAllocator but not here so I can get rid of it.

nit: Since we use it in OSAllocator, I would prefer that you keep it here, rather than have these values defined in 2 places (or at least lessen it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495110</commentid>
    <comment_count>7</comment_count>
      <attachid>359279</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-01-16 10:30:43 -0800</bug_when>
    <thetext>Created attachment 359279
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495124</commentid>
    <comment_count>8</comment_count>
      <attachid>359279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-16 11:08:28 -0800</bug_when>
    <thetext>Comment on attachment 359279
Patch for landing

Clearing flags on attachment: 359279

Committed r240043: &lt;https://trac.webkit.org/changeset/240043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495125</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-16 11:08:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495126</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-16 11:09:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/47322648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495143</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-01-16 11:53:32 -0800</bug_when>
    <thetext>&gt; &gt;&gt; Source/bmalloc/ChangeLog:14
&gt; &gt;&gt; +        * bmalloc/BVMTags.h: Copied from Source/WTF/wtf/VMTags.h.
&gt; &gt; 
&gt; &gt; You should just call this file &quot;VMTags.h&quot;. The purpose of the B prefix is a cheap way, in limited cases, to avoid name conflicts with something we expect other projects to declare. But we intend to be the only declaration of VMTags.h.
&gt; 
&gt; There&apos;s still a VMTags.h since we need to declare the macros there if not
&gt; building with bmalloc. Gigacage.h being in both bmalloc and WTF already
&gt; means that lldb can&apos;t debug it...

OK, I guess BVMTags.h is the way to go for now.

Seems like the list of duplicated things is now great enough that we would benefit from some kind of abstraction for &quot;stuff used by bmalloc and WTF&quot;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359270</attachid>
            <date>2019-01-16 09:19:43 -0800</date>
            <delta_ts>2019-01-16 09:47:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193496-20190116091942.patch</filename>
            <type>text/plain</type>
            <size>16370</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFjNTJjYTAwMDdhZmUyYTI5MzZkMzY3
M2FiYzRlMzRlZGNiODY1MWQuLmFiN2JiYTZkNzY0YWQ3MjFjODg3NTFiZTAyNzlhZjdmYTY1NWQx
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTYgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYyBzaG91bGQgdXNlIEpTQyBWTSB0
YWcgZm9yIGdpZ2FjYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTM0OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIG1vc3Qgb2YgdGhlIG1hY3JvcyBmb3Igdm0gdGFnZ2luZyB0byBibWFsbG9j
LgorCisgICAgICAgICogd3RmL1ZNVGFncy5oOgorCiAyMDE5LTAxLTE2ICBBbGJlcnRvIEdhcmNp
YSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gQ29tcGlsYXRpb24gZmFpbHMg
d2l0aCBzeXN0ZW0gbWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYTJjNzA2NDYxOGMyYzA4YzVhN2MxMmJk
M2U0ZGM5ZTVmNWY5ZmQzOC4uOWY4ZGI3NmQzMjFjNjY3YTU4YmNlZGVkM2I1Y2Y1MDIwZTE1M2M2
YyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9ibWFs
bG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAxLTE2ICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2Mgc2hvdWxkIHVzZSBK
U0MgVk0gdGFnIGZvciBnaWdhY2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNDk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgVk1UYWcgaW5mbyBmcm9tIFdURiB0
byBibWFsbG9jIHNvIHRoYXQgd2UgY2FuCisgICAgICAgIHRhZyBnaWdhY2FnZSBtZW1vcnkgd2l0
aCB0aGUgdW51c2VkIEpTQyBtZW1vcnkgdGFnLiBUaGUgSlNDIG1lbW9yeQorICAgICAgICB0YWcg
d2FzIHByZXZpb3VzbHkgdXNlZCBmb3Igd2FzbSBidXQgc2luY2Ugd2FzbSBpcyBub3cgYWxsb2Nh
dGVkCisgICAgICAgIG91dCBvZiB0aGUgcHJpbWl0aXZlIGNhZ2UgaXQgd2FzIHVudXNlZC4KKwor
ICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
bWFsbG9jL0JWTVRhZ3MuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvVk1UYWdzLmguCisg
ICAgICAgICogYm1hbGxvYy9HaWdhY2FnZS5jcHA6CisgICAgICAgIChHaWdhY2FnZTo6ZW5zdXJl
R2lnYWNhZ2UpOgorICAgICAgICAqIGJtYWxsb2MvVk1BbGxvY2F0ZS5oOgorICAgICAgICAoYm1h
bGxvYzo6dHJ5Vk1BbGxvY2F0ZSk6CisgICAgICAgIChibWFsbG9jOjp2bVplcm9BbmRQdXJnZSk6
CisKIDIwMTktMDEtMDkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEdpZ2FjYWdlIGRpc2FibGluZyBjaGVja3Mgc2hvdWxkIGhhbmRsZSB0aGUgR0lHQUNBR0VfQUxM
T0NBVElPTl9DQU5fRkFJTCBjYXNlIHByb3Blcmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVk1UYWdzLmggYi9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAppbmRleCA0Y2Y3ODE5NDUwODYz
NzA2NTgxNDFiZDgwNmNlN2UyNWJmODA4ZmMyLi4xNGUwMjFmZWYzNTBmYzdlMjJjMTI1Y2I3ODBk
OTU1MDJjZjU3NGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaApAQCAtMjUsNDEgKzI1LDE1IEBACiAKICNwcmFnbWEgb25j
ZQogCi0vLyBPbiBNYWMgT1MgWCwgdGhlIFZNIHN1YnN5c3RlbSBhbGxvd3MgdGFnZ2luZyBtZW1v
cnkgcmVxdWVzdGVkIGZyb20gbW1hcCBhbmQgdm1fbWFwCi0vLyBpbiBvcmRlciB0byBhaWQgdG9v
bHMgdGhhdCBpbnNwZWN0IHN5c3RlbSBtZW1vcnkgdXNlLiAKLSNpZiBPUyhEQVJXSU4pCi0KLSNp
bmNsdWRlIDxtYWNoL3ZtX3N0YXRpc3RpY3MuaD4KLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX1RD
TUFMTE9DKQotI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSBWTV9NQUtFX1RBRyhW
TV9NRU1PUllfVENNQUxMT0MpCi0jZWxzZQotI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01F
TU9SWSBWTV9NQUtFX1RBRyg1MykKLSNlbmRpZiAvLyBkZWZpbmVkKFZNX01FTU9SWV9UQ01BTExP
QykKLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX0VYRUNVVEFCTEVfQUxM
T0NBVE9SKQotI2RlZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExPQ0FUT1JfTUVNT1JZIFZN
X01BS0VfVEFHKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9FWEVDVVRBQkxFX0FMTE9DQVRPUikK
LSNlbHNlCi0jZGVmaW5lIFZNX1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9DQVRPUl9NRU1PUlkgVk1f
TUFLRV9UQUcoNjQpCi0jZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRf
RVhFQ1VUQUJMRV9BTExPQ0FUT1IpCi0KLSNpZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBU
X0pJVF9SRUdJU1RFUl9GSUxFKQotI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1P
UlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX1JFR0lTVEVSX0ZJTEUpCi0j
ZWxzZQotI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgVk1fTUFLRV9UQUco
NjUpCi0jZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJf
RklMRSkKLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfQ09SRSkKLSNkZWZpbmUg
Vk1fVEFHX0ZPUl9XRUJBU1NFTUJMWV9NRU1PUlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX0pBVkFT
Q1JJUFRfQ09SRSkKLSNlbHNlCi0jZGVmaW5lIFZNX1RBR19GT1JfV0VCQVNTRU1CTFlfTUVNT1JZ
IFZNX01BS0VfVEFHKDYzKQotI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRf
Q09SRSkKLQotI2Vsc2UgLy8gT1MoREFSV0lOKQorI2lmIGRlZmluZWQoVVNFX1NZU1RFTV9NQUxM
T0MpICYmIFVTRV9TWVNURU1fTUFMTE9DCiAKICNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19N
RU1PUlkgLTEKICNkZWZpbmUgVk1fVEFHX0ZPUl9XRUJBU1NFTUJMWV9NRU1PUlkgLTEKICNkZWZp
bmUgVk1fVEFHX0ZPUl9FWEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSAtMQogI2RlZmluZSBWTV9U
QUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgLTEKIAotI2VuZGlmIC8vIE9TKERBUldJTikKKyNl
bHNlCisKKyNpbmNsdWRlIDxibWFsbG9jL0JWTVRhZ3MuaD4KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODYwYzgz
ZWFjNGI2NDRjMmM3YmM1ZDk2MTE5NTRmZGIyZjg5NjQ2Yi4uYTc3YWEzYmIyZWYzM2M4ZTEwOTNj
ZmRlN2VlMWRlZTQ2MzlmYTBkZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQwLDYgKzE0MCw3IEBACiAJCUFEMDkzNDMzMUZD
RjQwNkQwMEU4NUVCNSAvKiBCQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFEMDkzNDMyMUZDRjQwNTAwMEU4NUVCNSAvKiBCQ29tcGlsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDE0
QUQyOTIwMjUyOUM0MDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDE0QUQyNzIwMjUyOUE2MDA4OTBFM0IgLyog
UHJvY2Vzc0NoZWNrLmggKi87IH07CiAJCUFEMTRBRDJBMjAyNTI5QzcwMDg5MEUzQiAvKiBQcm9j
ZXNzQ2hlY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDE0QUQyODIwMjUyOUIwMDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLm1tICovOyB9OworCQlE
RThCMTNCMzIxQ0M1RDlGMDBBNjNGQ0QgLyogQlZNVGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU4QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJW
TVRhZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0zMDMsNiArMzA0LDcgQEAKIAkJQUQwOTM0MzIxRkNGNDA1
MDAwRTg1RUI1IC8qIEJDb21waWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBCQ29tcGlsZXIuaDsgcGF0aCA9IGJtYWxsb2MvQkNvbXBpbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFEMTRBRDI3MjAyNTI5QTYwMDg5MEUzQiAvKiBQcm9jZXNzQ2hlY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc0NoZWNrLmg7IHBhdGgg
PSBibWFsbG9jL1Byb2Nlc3NDaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
RDE0QUQyODIwMjUyOUIwMDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUHJvY2Vzc0NoZWNrLm1tOyBwYXRoID0gYm1hbGxv
Yy9Qcm9jZXNzQ2hlY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURFOEIxM0Iy
MjFDQzVEOUYwMEE2M0ZDRCAvKiBCVk1UYWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJWTVRhZ3MuaDsg
cGF0aCA9IGJtYWxsb2MvQlZNVGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyog
RW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtz
QnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC01MjUsNiArNTI3LDcgQEAKIAkJCQkwRjdFQjg0QTFG
OTU0MUM2MDBGMUFCQ0IgLyogQml0cy5oICovLAogCQkJCTBGN0VCODRCMUY5NTQxQzYwMEYxQUJD
QiAvKiBCTWFsbG9jZWQuaCAqLywKIAkJCQkxNEM5MTlDODE4RkNDNTlGMDAyOERCNDMgLyogQlBs
YXRmb3JtLmggKi8sCisJCQkJREU4QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJWTVRhZ3MuaCAq
LywKIAkJCQkwRjc0QjkzRDFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCAqLywK
IAkJCQkwRjc0QjkzQzFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmggKi8sCiAJCQkJ
MTREOURCNDUxN0YyNDQ3MTAwRUFBQjc5IC8qIEZpeGVkVmVjdG9yLmggKi8sCkBAIC01MzksOCAr
NTQyLDggQEAKIAkJCQkwRjVCRjE0ODFGMjJBOEQ4MDAyOUQ5MUQgLyogUGVySGVhcEtpbmQuaCAq
LywKIAkJCQkwRjI2QTdBNDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5jcHAgKi8sCiAJ
CQkJMTQ0NDZBMDcxN0E2MUZBNDAwRjlFQTFEIC8qIFBlclByb2Nlc3MuaCAqLywKLQkJCQkxNDQ0
NjlGRDE3QTYxRjFGMDBGOUVBMUQgLyogUGVyVGhyZWFkLmggKi8sCiAJCQkJNjU0M0REQjMyMEVF
QUVGMzAwM0IyM0Q4IC8qIFBlclRocmVhZC5jcHAgKi8sCisJCQkJMTQ0NDY5RkQxN0E2MUYxRjAw
RjlFQTFEIC8qIFBlclRocmVhZC5oICovLAogCQkJCTE0NUY2ODc4MTc5RTNBNDQwMEQ2NTU5OCAv
KiBSYW5nZS5oICovLAogCQkJCTE0OEVGQUU2MUQ2Qjk1M0IwMDhFNzIxRSAvKiBTY29wZUV4aXQu
aCAqLywKIAkJCQkxNDE3RjY0RjE4QjcyODBDMDA3NkZBM0YgLyogU3lzY2FsbC5oICovLApAQCAt
NTUzLDggKzU1Niw4IEBACiAJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUyRjQ3MjQ4MjEw
QkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCAqLywKIAkJCQk0NDI2RTI4MjFDODM5
NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggKi8sCisJCQkJNTJGNDcyNDgyMTBCQTJGNTAw
QjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBkYXJ3aW47
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTgzLDcgKzU4Niw2IEBACiAJCQkJMEY1
QkYxNzMxRjIzQzU3MTAwMjlEOTFEIC8qIEJFeHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
REQ3OEM5MThGNDhENzUwMDk1MDcwMiAvKiBCSW5saW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjdFQjg0QzFGOTU0MUM3MDBGMUFCQ0IgLyogQml0cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTJG
NDcyNDkyMTBCQTMwMjAwQjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQ0OEMzMDExOEYzNzU0QzAwNTAyODM5IC8qIGJtYWxsb2MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGN0VCODREMUY5NTQxQzcwMEYxQUJDQiAvKiBCTWFsbG9jZWQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0QzkxOUM5MThGQ0M1OUYwMDI4REI0MyAvKiBCUGxhdGZvcm0uaCBpbiBIZWFk
ZXJzICovLApAQCAtNTkxLDYgKzU5Myw3IEBACiAJCQkJNzkzOTg4NUIyMDc2RUVCNjAwNzRBMkU3
IC8qIEJ1bGtEZWNvbW1pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAw
OTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAzMTlD
RTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCURFOEIxM0Iz
MjFDQzVEOUYwMEE2M0ZDRCAvKiBCVk1UYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5
OTE4RjQ4RDRBMDA5NTA3MDIgLyogQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0N0RDNkUz
MUNBNUI3MEIwMDcyNEU4RCAvKiBDaHVuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NEI5M0Ux
Rjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDAs
NiArNjQzLDcgQEAKIAkJCQkxNDFEOUIwMDFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDQyNkUyODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0Qzg5OTJCMUNDNDg1RTcwMDI3QTA1NyAvKiBNYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUyRjQ3MjQ5MjEwQkEzMDIwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0M0NCODFEMTkwMjJCQzkwMEIxNkE0NSAvKiBNdXRleC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0QkUxMUYxQ0EzNDY1MjAwOTlDOEMwIC8qIE9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTMxOEY0OEQwRjAwOTUwNzAyIC8qIE9iamVjdFR5
cGUuaCBpbiBIZWFkZXJzICovLApAQCAtNzM5LDcgKzc0Myw3IEBACiAJCQl9OwogCQkJYnVpbGRD
b25maWd1cmF0aW9uTGlzdCA9IDE0NUY2ODNBMTc5REM0NUYwMEQ2NTU5OCAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgImJtYWxsb2MiICovOwogCQkJY29tcGF0aWJp
bGl0eVZlcnNpb24gPSAiWGNvZGUgMy4yIjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlz
aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50UmVnaW9uID0gZW47CiAJCQlo
YXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMDsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQllbiwK
QEAgLTc5MSw3ICs3OTUsNiBAQAogCQkJCTBGNUJGMTRGMUYyMkRFQUYwMDI5RDkxRCAvKiBHaWdh
Y2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYgLyog
SGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ1NTczMzFGN0VEQjdCMDBCMUYwQTMgLyog
SGVhcEtpbmQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNjU0M0REQjQyMEVFQUVGMzAwM0IyM0Q4
IC8qIFBlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjdFQjgzQjFGOTU0MUIwMDBG
MUFCQ0IgLyogSXNvSGVhcEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTQ5RUYxRkI1
NDcwNDAwN0ZGNzVBIC8qIElzb1BhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3RUI4MzYx
Rjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMUy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgwMiw2ICs4
MDUsNyBAQAogCQkJCTE0M0NCODFDMTkwMjJCQzkwMEIxNkE0NSAvKiBNdXRleC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1MkYgLyogT2JqZWN0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjI2QTdBNTIwNTQ4MzEzMDA5MEExNDEgLyogUGVyUHJvY2Vz
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2NTQzRERCNDIwRUVBRUYzMDAzQjIzRDggLyogUGVy
VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFEMTRBRDJBMjAyNTI5QzcwMDg5MEUzQiAv
KiBQcm9jZXNzQ2hlY2subW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjVCRjE1MjFGMjJFMTU3MDAy
OUQ5MUQgLyogU2NhdmVuZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThFQTM5
OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0JWTVRhZ3MuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlZN
VGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUxZTM1ODc5MTZlZDExMmY3ZTFiMGFmYmRiZjZmMjEwZTUzYzNj
OTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JWTVRhZ3MuaApA
QCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJCUGxhdGZvcm0uaCIKKworLy8g
T24gTWFjIE9TIFgsIHRoZSBWTSBzdWJzeXN0ZW0gYWxsb3dzIHRhZ2dpbmcgbWVtb3J5IHJlcXVl
c3RlZCBmcm9tIG1tYXAgYW5kIHZtX21hcAorLy8gaW4gb3JkZXIgdG8gYWlkIHRvb2xzIHRoYXQg
aW5zcGVjdCBzeXN0ZW0gbWVtb3J5IHVzZS4KKyNpZiBCT1MoREFSV0lOKQorCisjaW5jbHVkZSA8
bWFjaC92bV9zdGF0aXN0aWNzLmg+CisKK25hbWVzcGFjZSBibWFsbG9jIHsKKworI2lmIGRlZmlu
ZWQoVk1fTUVNT1JZX1RDTUFMTE9DKQorI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9S
WSBWTV9NQUtFX1RBRyhWTV9NRU1PUllfVENNQUxMT0MpCisjZWxzZQorI2RlZmluZSBWTV9UQUdf
Rk9SX1RDTUFMTE9DX01FTU9SWSBWTV9NQUtFX1RBRyg1MykKKyNlbmRpZiAvLyBkZWZpbmVkKFZN
X01FTU9SWV9UQ01BTExPQykKKworI2lmIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklU
X0VYRUNVVEFCTEVfQUxMT0NBVE9SKQorI2RlZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExP
Q0FUT1JfTUVNT1JZIFZNX01BS0VfVEFHKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9FWEVDVVRB
QkxFX0FMTE9DQVRPUikKKyNlbHNlCisjZGVmaW5lIFZNX1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9D
QVRPUl9NRU1PUlkgVk1fTUFLRV9UQUcoNjQpCisjZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllf
SkFWQVNDUklQVF9KSVRfRVhFQ1VUQUJMRV9BTExPQ0FUT1IpCisKKyNpZiBkZWZpbmVkKFZNX01F
TU9SWV9KQVZBU0NSSVBUX0pJVF9SRUdJU1RFUl9GSUxFKQorI2RlZmluZSBWTV9UQUdfRk9SX1JF
R0lTVEVSRklMRV9NRU1PUlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX1JF
R0lTVEVSX0ZJTEUpCisjZWxzZQorI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1P
UlkgVk1fTUFLRV9UQUcoNjUpCisjZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQ
VF9KSVRfUkVHSVNURVJfRklMRSkKKworI2lmIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRf
Q09SRSkKKyNkZWZpbmUgVk1fVEFHX0ZPUl9HSUdBQ0FHRV9NRU1PUlkgVk1fTUFLRV9UQUcoVk1f
TUVNT1JZX0pBVkFTQ1JJUFRfQ09SRSkKKyNlbHNlCisjZGVmaW5lIFZNX1RBR19GT1JfR0lHQUNB
R0VfTUVNT1JZIFZNX01BS0VfVEFHKDYzKQorI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pB
VkFTQ1JJUFRfQ09SRSkKKworI2Vsc2UgLy8gQk9TKERBUldJTikKKworI2RlZmluZSBWTV9UQUdf
Rk9SX1RDTUFMTE9DX01FTU9SWSAtMQorI2RlZmluZSBWTV9UQUdfRk9SX0dJR0FDQUdFX01FTU9S
WSAtMQorI2RlZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExPQ0FUT1JfTUVNT1JZIC0xCisj
ZGVmaW5lIFZNX1RBR19GT1JfUkVHSVNURVJGSUxFX01FTU9SWSAtMQorCisjZW5kaWYgLy8gQk9T
KERBUldJTikKKworZW51bSBjbGFzcyBWTVVzYWdlIHsKKyAgICBVbmtub3duVXNhZ2UgPSAtMSwK
KyAgICBGYXN0TWFsbG9jUGFnZXMgPSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSwKKyAgICBK
U1ZNU3RhY2tQYWdlcyA9IFZNX1RBR19GT1JfUkVHSVNURVJGSUxFX01FTU9SWSwKKyAgICBKU0pJ
VENvZGVQYWdlcyA9IFZNX1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9DQVRPUl9NRU1PUlksCisgICAg
SlNHaWdhY2FnZVBhZ2VzID0gVk1fVEFHX0ZPUl9HSUdBQ0FHRV9NRU1PUlksCit9OworCit9IC8v
IG5hbWVzcGFjZSBibWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dp
Z2FjYWdlLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuY3BwCmluZGV4IDVi
OTI1YzQyNjc4NTQ5ZTY1MzE0Y2YwMzFkNmUwNGMwN2IwZTQ2OTIuLjBlYWM2MTNhMjczNTA0NmI3
ZmM2Y2U1NjNhZmUxNmUxMjMwODk1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvR2lnYWNhZ2UuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuY3Bw
CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBlbnN1cmVHaWdhY2FnZSgpCiAKICAgICAgICAgICAg
IC8vIEZJWE1FOiBSYW5kb21pemUgd2hlcmUgdGhpcyBnb2VzLgogICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTI0NQotICAgICAgICAgICAg
dm9pZCogYmFzZSA9IHRyeVZNQWxsb2NhdGUobWF4QWxpZ25tZW50LCB0b3RhbFNpemUpOworICAg
ICAgICAgICAgdm9pZCogYmFzZSA9IHRyeVZNQWxsb2NhdGUobWF4QWxpZ25tZW50LCB0b3RhbFNp
emUsIFZNVXNhZ2U6OkpTR2lnYWNhZ2VQYWdlcyk7CiAgICAgICAgICAgICBpZiAoIWJhc2UpIHsK
ICAgICAgICAgICAgICAgICBpZiAoR0lHQUNBR0VfQUxMT0NBVElPTl9DQU5fRkFJTCkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9WTUFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAppbmRl
eCA3NTdkNWNkMTk4OTAzNzI2MWU3NzM0MWRmZWVhMDc5Y2VmMzY0NWU1Li5iN2M0ZWIwYmQ4Y2U1
MTU1YmZjNGE3YzIwYjAzZThhYTFhYmM2M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1ZNQWxsb2NhdGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2Nh
dGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUg
IkJBc3NlcnQuaCIKKyNpbmNsdWRlICJCVk1UYWdzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2l6ZXMuaCIKQEAgLTM3LDE5ICszOCwxNyBA
QAogCiAjaWYgQk9TKERBUldJTikKICNpbmNsdWRlIDxtYWNoL3ZtX3BhZ2Vfc2l6ZS5oPgotI2lu
Y2x1ZGUgPG1hY2gvdm1fc3RhdGlzdGljcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBibWFsbG9j
IHsKIAotI2lmIEJPUyhEQVJXSU4pCi0jZGVmaW5lIEJNQUxMT0NfVk1fVEFHIFZNX01BS0VfVEFH
KFZNX01FTU9SWV9UQ01BTExPQykKLSNkZWZpbmUgQk1BTExPQ19OT1JFU0VSVkUgMAotI2VsaWYg
Qk9TKExJTlVYKQotI2RlZmluZSBCTUFMTE9DX1ZNX1RBRyAtMQorI2lmbmRlZiBCTUFMTE9DX1ZN
X1RBRworI2RlZmluZSBCTUFMTE9DX1ZNX1RBRyBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWQor
I2VuZGlmCisKKyNpZiBCT1MoTElOVVgpCiAjZGVmaW5lIEJNQUxMT0NfTk9SRVNFUlZFIE1BUF9O
T1JFU0VSVkUKICNlbHNlCi0jZGVmaW5lIEJNQUxMT0NfVk1fVEFHIC0xCiAjZGVmaW5lIEJNQUxM
T0NfTk9SRVNFUlZFIDAKICNlbmRpZgogCkBAIC0xMjIsMTAgKzEyMSwxMCBAQCBpbmxpbmUgdm9p
ZCB2bVZhbGlkYXRlUGh5c2ljYWwodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkKICAgICBCQVNTRVJU
KHAgPT0gbWFzayhwLCB+KHZtUGFnZVNpemVQaHlzaWNhbCgpIC0gMSkpKTsKIH0KIAotaW5saW5l
IHZvaWQqIHRyeVZNQWxsb2NhdGUoc2l6ZV90IHZtU2l6ZSkKK2lubGluZSB2b2lkKiB0cnlWTUFs
bG9jYXRlKHNpemVfdCB2bVNpemUsIFZNVXNhZ2UgdXNhZ2UgPSBWTVVzYWdlOjpGYXN0TWFsbG9j
UGFnZXMpCiB7CiAgICAgdm1WYWxpZGF0ZSh2bVNpemUpOwotICAgIHZvaWQqIHJlc3VsdCA9IG1t
YXAoMCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9B
Tk9OIHwgQk1BTExPQ19OT1JFU0VSVkUsIEJNQUxMT0NfVk1fVEFHLCAwKTsKKyAgICB2b2lkKiBy
ZXN1bHQgPSBtbWFwKDAsIHZtU2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZB
VEUgfCBNQVBfQU5PTiB8IEJNQUxMT0NfTk9SRVNFUlZFLCBzdGF0aWNfY2FzdDxpbnQ+KHVzYWdl
KSwgMCk7CiAgICAgaWYgKHJlc3VsdCA9PSBNQVBfRkFJTEVEKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTUwLDE5ICsxNDksMTkgQEAgaW5saW5lIHZv
aWQgdm1SZXZva2VQZXJtaXNzaW9ucyh2b2lkKiBwLCBzaXplX3Qgdm1TaXplKQogICAgIG1wcm90
ZWN0KHAsIHZtU2l6ZSwgUFJPVF9OT05FKTsKIH0KIAotaW5saW5lIHZvaWQgdm1aZXJvQW5kUHVy
Z2Uodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkKK2lubGluZSB2b2lkIHZtWmVyb0FuZFB1cmdlKHZv
aWQqIHAsIHNpemVfdCB2bVNpemUsIFZNVXNhZ2UgdXNhZ2UgPSBWTVVzYWdlOjpGYXN0TWFsbG9j
UGFnZXMpCiB7CiAgICAgdm1WYWxpZGF0ZShwLCB2bVNpemUpOwogICAgIC8vIE1BUF9BTk9OIGd1
YXJhbnRlZXMgdGhlIG1lbW9yeSBpcyB6ZXJvZWQuIFRoaXMgd2lsbCBhbHNvIGNhdXNlCiAgICAg
Ly8gcGFnZSBmYXVsdHMgb24gYWNjZXNzZXMgdG8gdGhpcyByYW5nZSBmb2xsb3dpbmcgdGhpcyBj
YWxsLgotICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAocCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9U
X1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OIHwgTUFQX0ZJWEVEIHwgQk1BTExPQ19OT1JF
U0VSVkUsIEJNQUxMT0NfVk1fVEFHLCAwKTsKKyAgICB2b2lkKiByZXN1bHQgPSBtbWFwKHAsIHZt
U2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiB8IE1B
UF9GSVhFRCB8IEJNQUxMT0NfTk9SRVNFUlZFLCBzdGF0aWNfY2FzdDxpbnQ+KHVzYWdlKSwgMCk7
CiAgICAgUkVMRUFTRV9CQVNTRVJUKHJlc3VsdCA9PSBwKTsKIH0KIAogLy8gQWxsb2NhdGVzIHZt
U2l6ZSBieXRlcyBhdCBhIHNwZWNpZmllZCBwb3dlci1vZi10d28gYWxpZ25tZW50LgogLy8gVXNl
IHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlIG1hc2thYmxlIG1lbW9yeSByZWdpb25zLgogCi1pbmxp
bmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qgdm1BbGlnbm1lbnQsIHNpemVfdCB2bVNpemUp
CitpbmxpbmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qgdm1BbGlnbm1lbnQsIHNpemVfdCB2
bVNpemUsIFZNVXNhZ2UgdXNhZ2UgPSBWTVVzYWdlOjpGYXN0TWFsbG9jUGFnZXMpCiB7CiAgICAg
dm1WYWxpZGF0ZSh2bVNpemUpOwogICAgIHZtVmFsaWRhdGUodm1BbGlnbm1lbnQpOwpAQCAtMTcx
LDcgKzE3MCw3IEBAIGlubGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bUFsaWdubWVu
dCwgc2l6ZV90IHZtU2l6ZSkKICAgICBpZiAobWFwcGVkU2l6ZSA8IHZtQWxpZ25tZW50IHx8IG1h
cHBlZFNpemUgPCB2bVNpemUpIC8vIENoZWNrIGZvciBvdmVyZmxvdwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGNoYXIqIG1hcHBlZCA9IHN0YXRpY19jYXN0PGNoYXIqPih0cnlWTUFs
bG9jYXRlKG1hcHBlZFNpemUpKTsKKyAgICBjaGFyKiBtYXBwZWQgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4odHJ5Vk1BbGxvY2F0ZShtYXBwZWRTaXplLCB1c2FnZSkpOwogICAgIGlmICghbWFwcGVkKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjaGFyKiBtYXBwZWRFbmQgPSBtYXBwZWQgKyBt
YXBwZWRTaXplOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359273</attachid>
            <date>2019-01-16 09:47:07 -0800</date>
            <delta_ts>2019-01-16 10:30:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193496-20190116094706.patch</filename>
            <type>text/plain</type>
            <size>16370</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFjNTJjYTAwMDdhZmUyYTI5MzZkMzY3
M2FiYzRlMzRlZGNiODY1MWQuLmFiN2JiYTZkNzY0YWQ3MjFjODg3NTFiZTAyNzlhZjdmYTY1NWQx
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTYgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYyBzaG91bGQgdXNlIEpTQyBWTSB0
YWcgZm9yIGdpZ2FjYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTM0OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIG1vc3Qgb2YgdGhlIG1hY3JvcyBmb3Igdm0gdGFnZ2luZyB0byBibWFsbG9j
LgorCisgICAgICAgICogd3RmL1ZNVGFncy5oOgorCiAyMDE5LTAxLTE2ICBBbGJlcnRvIEdhcmNp
YSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gQ29tcGlsYXRpb24gZmFpbHMg
d2l0aCBzeXN0ZW0gbWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYTJjNzA2NDYxOGMyYzA4YzVhN2MxMmJk
M2U0ZGM5ZTVmNWY5ZmQzOC4uOWY4ZGI3NmQzMjFjNjY3YTU4YmNlZGVkM2I1Y2Y1MDIwZTE1M2M2
YyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9ibWFs
bG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAxLTE2ICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2Mgc2hvdWxkIHVzZSBK
U0MgVk0gdGFnIGZvciBnaWdhY2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNDk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgVk1UYWcgaW5mbyBmcm9tIFdURiB0
byBibWFsbG9jIHNvIHRoYXQgd2UgY2FuCisgICAgICAgIHRhZyBnaWdhY2FnZSBtZW1vcnkgd2l0
aCB0aGUgdW51c2VkIEpTQyBtZW1vcnkgdGFnLiBUaGUgSlNDIG1lbW9yeQorICAgICAgICB0YWcg
d2FzIHByZXZpb3VzbHkgdXNlZCBmb3Igd2FzbSBidXQgc2luY2Ugd2FzbSBpcyBub3cgYWxsb2Nh
dGVkCisgICAgICAgIG91dCBvZiB0aGUgcHJpbWl0aXZlIGNhZ2UgaXQgd2FzIHVudXNlZC4KKwor
ICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
bWFsbG9jL0JWTVRhZ3MuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvVk1UYWdzLmguCisg
ICAgICAgICogYm1hbGxvYy9HaWdhY2FnZS5jcHA6CisgICAgICAgIChHaWdhY2FnZTo6ZW5zdXJl
R2lnYWNhZ2UpOgorICAgICAgICAqIGJtYWxsb2MvVk1BbGxvY2F0ZS5oOgorICAgICAgICAoYm1h
bGxvYzo6dHJ5Vk1BbGxvY2F0ZSk6CisgICAgICAgIChibWFsbG9jOjp2bVplcm9BbmRQdXJnZSk6
CisKIDIwMTktMDEtMDkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEdpZ2FjYWdlIGRpc2FibGluZyBjaGVja3Mgc2hvdWxkIGhhbmRsZSB0aGUgR0lHQUNBR0VfQUxM
T0NBVElPTl9DQU5fRkFJTCBjYXNlIHByb3Blcmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVk1UYWdzLmggYi9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAppbmRleCA0Y2Y3ODE5NDUwODYz
NzA2NTgxNDFiZDgwNmNlN2UyNWJmODA4ZmMyLi4xNGUwMjFmZWYzNTBmYzdlMjJjMTI1Y2I3ODBk
OTU1MDJjZjU3NGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaApAQCAtMjUsNDEgKzI1LDE1IEBACiAKICNwcmFnbWEgb25j
ZQogCi0vLyBPbiBNYWMgT1MgWCwgdGhlIFZNIHN1YnN5c3RlbSBhbGxvd3MgdGFnZ2luZyBtZW1v
cnkgcmVxdWVzdGVkIGZyb20gbW1hcCBhbmQgdm1fbWFwCi0vLyBpbiBvcmRlciB0byBhaWQgdG9v
bHMgdGhhdCBpbnNwZWN0IHN5c3RlbSBtZW1vcnkgdXNlLiAKLSNpZiBPUyhEQVJXSU4pCi0KLSNp
bmNsdWRlIDxtYWNoL3ZtX3N0YXRpc3RpY3MuaD4KLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX1RD
TUFMTE9DKQotI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSBWTV9NQUtFX1RBRyhW
TV9NRU1PUllfVENNQUxMT0MpCi0jZWxzZQotI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01F
TU9SWSBWTV9NQUtFX1RBRyg1MykKLSNlbmRpZiAvLyBkZWZpbmVkKFZNX01FTU9SWV9UQ01BTExP
QykKLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX0VYRUNVVEFCTEVfQUxM
T0NBVE9SKQotI2RlZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExPQ0FUT1JfTUVNT1JZIFZN
X01BS0VfVEFHKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9FWEVDVVRBQkxFX0FMTE9DQVRPUikK
LSNlbHNlCi0jZGVmaW5lIFZNX1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9DQVRPUl9NRU1PUlkgVk1f
TUFLRV9UQUcoNjQpCi0jZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRf
RVhFQ1VUQUJMRV9BTExPQ0FUT1IpCi0KLSNpZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBU
X0pJVF9SRUdJU1RFUl9GSUxFKQotI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1P
UlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX1JFR0lTVEVSX0ZJTEUpCi0j
ZWxzZQotI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgVk1fTUFLRV9UQUco
NjUpCi0jZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJf
RklMRSkKLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfQ09SRSkKLSNkZWZpbmUg
Vk1fVEFHX0ZPUl9XRUJBU1NFTUJMWV9NRU1PUlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX0pBVkFT
Q1JJUFRfQ09SRSkKLSNlbHNlCi0jZGVmaW5lIFZNX1RBR19GT1JfV0VCQVNTRU1CTFlfTUVNT1JZ
IFZNX01BS0VfVEFHKDYzKQotI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRf
Q09SRSkKLQotI2Vsc2UgLy8gT1MoREFSV0lOKQorI2lmIGRlZmluZWQoVVNFX1NZU1RFTV9NQUxM
T0MpICYmIFVTRV9TWVNURU1fTUFMTE9DCiAKICNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19N
RU1PUlkgLTEKICNkZWZpbmUgVk1fVEFHX0ZPUl9XRUJBU1NFTUJMWV9NRU1PUlkgLTEKICNkZWZp
bmUgVk1fVEFHX0ZPUl9FWEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSAtMQogI2RlZmluZSBWTV9U
QUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgLTEKIAotI2VuZGlmIC8vIE9TKERBUldJTikKKyNl
bHNlCisKKyNpbmNsdWRlIDxibWFsbG9jL0JWTVRhZ3MuaD4KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODYwYzgz
ZWFjNGI2NDRjMmM3YmM1ZDk2MTE5NTRmZGIyZjg5NjQ2Yi4uYTc3YWEzYmIyZWYzM2M4ZTEwOTNj
ZmRlN2VlMWRlZTQ2MzlmYTBkZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQwLDYgKzE0MCw3IEBACiAJCUFEMDkzNDMzMUZD
RjQwNkQwMEU4NUVCNSAvKiBCQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFEMDkzNDMyMUZDRjQwNTAwMEU4NUVCNSAvKiBCQ29tcGlsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDE0
QUQyOTIwMjUyOUM0MDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDE0QUQyNzIwMjUyOUE2MDA4OTBFM0IgLyog
UHJvY2Vzc0NoZWNrLmggKi87IH07CiAJCUFEMTRBRDJBMjAyNTI5QzcwMDg5MEUzQiAvKiBQcm9j
ZXNzQ2hlY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDE0QUQyODIwMjUyOUIwMDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLm1tICovOyB9OworCQlE
RThCMTNCMzIxQ0M1RDlGMDBBNjNGQ0QgLyogQlZNVGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU4QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJW
TVRhZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0zMDMsNiArMzA0LDcgQEAKIAkJQUQwOTM0MzIxRkNGNDA1
MDAwRTg1RUI1IC8qIEJDb21waWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBCQ29tcGlsZXIuaDsgcGF0aCA9IGJtYWxsb2MvQkNvbXBpbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFEMTRBRDI3MjAyNTI5QTYwMDg5MEUzQiAvKiBQcm9jZXNzQ2hlY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc0NoZWNrLmg7IHBhdGgg
PSBibWFsbG9jL1Byb2Nlc3NDaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
RDE0QUQyODIwMjUyOUIwMDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUHJvY2Vzc0NoZWNrLm1tOyBwYXRoID0gYm1hbGxv
Yy9Qcm9jZXNzQ2hlY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURFOEIxM0Iy
MjFDQzVEOUYwMEE2M0ZDRCAvKiBCVk1UYWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJWTVRhZ3MuaDsg
cGF0aCA9IGJtYWxsb2MvQlZNVGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyog
RW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtz
QnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC01MjUsNiArNTI3LDcgQEAKIAkJCQkwRjdFQjg0QTFG
OTU0MUM2MDBGMUFCQ0IgLyogQml0cy5oICovLAogCQkJCTBGN0VCODRCMUY5NTQxQzYwMEYxQUJD
QiAvKiBCTWFsbG9jZWQuaCAqLywKIAkJCQkxNEM5MTlDODE4RkNDNTlGMDAyOERCNDMgLyogQlBs
YXRmb3JtLmggKi8sCisJCQkJREU4QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJWTVRhZ3MuaCAq
LywKIAkJCQkwRjc0QjkzRDFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCAqLywK
IAkJCQkwRjc0QjkzQzFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmggKi8sCiAJCQkJ
MTREOURCNDUxN0YyNDQ3MTAwRUFBQjc5IC8qIEZpeGVkVmVjdG9yLmggKi8sCkBAIC01MzksOCAr
NTQyLDggQEAKIAkJCQkwRjVCRjE0ODFGMjJBOEQ4MDAyOUQ5MUQgLyogUGVySGVhcEtpbmQuaCAq
LywKIAkJCQkwRjI2QTdBNDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5jcHAgKi8sCiAJ
CQkJMTQ0NDZBMDcxN0E2MUZBNDAwRjlFQTFEIC8qIFBlclByb2Nlc3MuaCAqLywKLQkJCQkxNDQ0
NjlGRDE3QTYxRjFGMDBGOUVBMUQgLyogUGVyVGhyZWFkLmggKi8sCiAJCQkJNjU0M0REQjMyMEVF
QUVGMzAwM0IyM0Q4IC8qIFBlclRocmVhZC5jcHAgKi8sCisJCQkJMTQ0NDY5RkQxN0E2MUYxRjAw
RjlFQTFEIC8qIFBlclRocmVhZC5oICovLAogCQkJCTE0NUY2ODc4MTc5RTNBNDQwMEQ2NTU5OCAv
KiBSYW5nZS5oICovLAogCQkJCTE0OEVGQUU2MUQ2Qjk1M0IwMDhFNzIxRSAvKiBTY29wZUV4aXQu
aCAqLywKIAkJCQkxNDE3RjY0RjE4QjcyODBDMDA3NkZBM0YgLyogU3lzY2FsbC5oICovLApAQCAt
NTUzLDggKzU1Niw4IEBACiAJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUyRjQ3MjQ4MjEw
QkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCAqLywKIAkJCQk0NDI2RTI4MjFDODM5
NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggKi8sCisJCQkJNTJGNDcyNDgyMTBCQTJGNTAw
QjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBkYXJ3aW47
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTgzLDcgKzU4Niw2IEBACiAJCQkJMEY1
QkYxNzMxRjIzQzU3MTAwMjlEOTFEIC8qIEJFeHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
REQ3OEM5MThGNDhENzUwMDk1MDcwMiAvKiBCSW5saW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjdFQjg0QzFGOTU0MUM3MDBGMUFCQ0IgLyogQml0cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTJG
NDcyNDkyMTBCQTMwMjAwQjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQ0OEMzMDExOEYzNzU0QzAwNTAyODM5IC8qIGJtYWxsb2MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGN0VCODREMUY5NTQxQzcwMEYxQUJDQiAvKiBCTWFsbG9jZWQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0QzkxOUM5MThGQ0M1OUYwMDI4REI0MyAvKiBCUGxhdGZvcm0uaCBpbiBIZWFk
ZXJzICovLApAQCAtNTkxLDYgKzU5Myw3IEBACiAJCQkJNzkzOTg4NUIyMDc2RUVCNjAwNzRBMkU3
IC8qIEJ1bGtEZWNvbW1pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAw
OTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAzMTlD
RTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCURFOEIxM0Iz
MjFDQzVEOUYwMEE2M0ZDRCAvKiBCVk1UYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5
OTE4RjQ4RDRBMDA5NTA3MDIgLyogQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0N0RDNkUz
MUNBNUI3MEIwMDcyNEU4RCAvKiBDaHVuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NEI5M0Ux
Rjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDAs
NiArNjQzLDcgQEAKIAkJCQkxNDFEOUIwMDFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDQyNkUyODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0Qzg5OTJCMUNDNDg1RTcwMDI3QTA1NyAvKiBNYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUyRjQ3MjQ5MjEwQkEzMDIwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0M0NCODFEMTkwMjJCQzkwMEIxNkE0NSAvKiBNdXRleC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0QkUxMUYxQ0EzNDY1MjAwOTlDOEMwIC8qIE9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTMxOEY0OEQwRjAwOTUwNzAyIC8qIE9iamVjdFR5
cGUuaCBpbiBIZWFkZXJzICovLApAQCAtNzM5LDcgKzc0Myw3IEBACiAJCQl9OwogCQkJYnVpbGRD
b25maWd1cmF0aW9uTGlzdCA9IDE0NUY2ODNBMTc5REM0NUYwMEQ2NTU5OCAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgImJtYWxsb2MiICovOwogCQkJY29tcGF0aWJp
bGl0eVZlcnNpb24gPSAiWGNvZGUgMy4yIjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlz
aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50UmVnaW9uID0gZW47CiAJCQlo
YXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMDsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQllbiwK
QEAgLTc5MSw3ICs3OTUsNiBAQAogCQkJCTBGNUJGMTRGMUYyMkRFQUYwMDI5RDkxRCAvKiBHaWdh
Y2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYgLyog
SGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ1NTczMzFGN0VEQjdCMDBCMUYwQTMgLyog
SGVhcEtpbmQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNjU0M0REQjQyMEVFQUVGMzAwM0IyM0Q4
IC8qIFBlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjdFQjgzQjFGOTU0MUIwMDBG
MUFCQ0IgLyogSXNvSGVhcEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTQ5RUYxRkI1
NDcwNDAwN0ZGNzVBIC8qIElzb1BhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3RUI4MzYx
Rjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMUy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgwMiw2ICs4
MDUsNyBAQAogCQkJCTE0M0NCODFDMTkwMjJCQzkwMEIxNkE0NSAvKiBNdXRleC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1MkYgLyogT2JqZWN0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjI2QTdBNTIwNTQ4MzEzMDA5MEExNDEgLyogUGVyUHJvY2Vz
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2NTQzRERCNDIwRUVBRUYzMDAzQjIzRDggLyogUGVy
VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFEMTRBRDJBMjAyNTI5QzcwMDg5MEUzQiAv
KiBQcm9jZXNzQ2hlY2subW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjVCRjE1MjFGMjJFMTU3MDAy
OUQ5MUQgLyogU2NhdmVuZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThFQTM5
OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0JWTVRhZ3MuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlZN
VGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE1ZjM5ZDg0NTQ2NDdjMDVhYWIxMjFiMWE1YmNkNzljZDljYTk4
ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JWTVRhZ3MuaApA
QCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJCUGxhdGZvcm0uaCIKKworLy8g
T24gTWFjIE9TIFgsIHRoZSBWTSBzdWJzeXN0ZW0gYWxsb3dzIHRhZ2dpbmcgbWVtb3J5IHJlcXVl
c3RlZCBmcm9tIG1tYXAgYW5kIHZtX21hcAorLy8gaW4gb3JkZXIgdG8gYWlkIHRvb2xzIHRoYXQg
aW5zcGVjdCBzeXN0ZW0gbWVtb3J5IHVzZS4KKyNpZiBCT1MoREFSV0lOKQorCisjaW5jbHVkZSA8
bWFjaC92bV9zdGF0aXN0aWNzLmg+CisKKyNpZiBkZWZpbmVkKFZNX01FTU9SWV9UQ01BTExPQykK
KyNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19NRU1PUlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZ
X1RDTUFMTE9DKQorI2Vsc2UKKyNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19NRU1PUlkgVk1f
TUFLRV9UQUcoNTMpCisjZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfVENNQUxMT0MpCisKKyNp
ZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9FWEVDVVRBQkxFX0FMTE9DQVRPUikK
KyNkZWZpbmUgVk1fVEFHX0ZPUl9FWEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSBWTV9NQUtFX1RB
RyhWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfRVhFQ1VUQUJMRV9BTExPQ0FUT1IpCisjZWxzZQor
I2RlZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExPQ0FUT1JfTUVNT1JZIFZNX01BS0VfVEFH
KDY0KQorI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX0VYRUNVVEFC
TEVfQUxMT0NBVE9SKQorCisjaWYgZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVH
SVNURVJfRklMRSkKKyNkZWZpbmUgVk1fVEFHX0ZPUl9SRUdJU1RFUkZJTEVfTUVNT1JZIFZNX01B
S0VfVEFHKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9SRUdJU1RFUl9GSUxFKQorI2Vsc2UKKyNk
ZWZpbmUgVk1fVEFHX0ZPUl9SRUdJU1RFUkZJTEVfTUVNT1JZIFZNX01BS0VfVEFHKDY1KQorI2Vu
ZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX1JFR0lTVEVSX0ZJTEUpCisK
KyNpZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBUX0NPUkUpCisjZGVmaW5lIFZNX1RBR19G
T1JfR0lHQUNBR0VfTUVNT1JZIFZNX01BS0VfVEFHKFZNX01FTU9SWV9KQVZBU0NSSVBUX0NPUkUp
CisjZWxzZQorI2RlZmluZSBWTV9UQUdfRk9SX0dJR0FDQUdFX01FTU9SWSBWTV9NQUtFX1RBRyg2
MykKKyNlbmRpZiAvLyBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBUX0NPUkUpCisKKyNlbHNl
IC8vIEJPUyhEQVJXSU4pCisKKyNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19NRU1PUlkgLTEK
KyNkZWZpbmUgVk1fVEFHX0ZPUl9HSUdBQ0FHRV9NRU1PUlkgLTEKKyNkZWZpbmUgVk1fVEFHX0ZP
Ul9FWEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSAtMQorI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lT
VEVSRklMRV9NRU1PUlkgLTEKKworI2VuZGlmIC8vIEJPUyhEQVJXSU4pCisKK25hbWVzcGFjZSBi
bWFsbG9jIHsKKworZW51bSBjbGFzcyBWTVVzYWdlIHsKKyAgICBVbmtub3duVXNhZ2UgPSAtMSwK
KyAgICBGYXN0TWFsbG9jUGFnZXMgPSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSwKKyAgICBK
U1ZNU3RhY2tQYWdlcyA9IFZNX1RBR19GT1JfUkVHSVNURVJGSUxFX01FTU9SWSwKKyAgICBKU0pJ
VENvZGVQYWdlcyA9IFZNX1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9DQVRPUl9NRU1PUlksCisgICAg
SlNHaWdhY2FnZVBhZ2VzID0gVk1fVEFHX0ZPUl9HSUdBQ0FHRV9NRU1PUlksCit9OworCit9IC8v
IG5hbWVzcGFjZSBibWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dp
Z2FjYWdlLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuY3BwCmluZGV4IDVi
OTI1YzQyNjc4NTQ5ZTY1MzE0Y2YwMzFkNmUwNGMwN2IwZTQ2OTIuLjBlYWM2MTNhMjczNTA0NmI3
ZmM2Y2U1NjNhZmUxNmUxMjMwODk1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvR2lnYWNhZ2UuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuY3Bw
CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBlbnN1cmVHaWdhY2FnZSgpCiAKICAgICAgICAgICAg
IC8vIEZJWE1FOiBSYW5kb21pemUgd2hlcmUgdGhpcyBnb2VzLgogICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTI0NQotICAgICAgICAgICAg
dm9pZCogYmFzZSA9IHRyeVZNQWxsb2NhdGUobWF4QWxpZ25tZW50LCB0b3RhbFNpemUpOworICAg
ICAgICAgICAgdm9pZCogYmFzZSA9IHRyeVZNQWxsb2NhdGUobWF4QWxpZ25tZW50LCB0b3RhbFNp
emUsIFZNVXNhZ2U6OkpTR2lnYWNhZ2VQYWdlcyk7CiAgICAgICAgICAgICBpZiAoIWJhc2UpIHsK
ICAgICAgICAgICAgICAgICBpZiAoR0lHQUNBR0VfQUxMT0NBVElPTl9DQU5fRkFJTCkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9WTUFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAppbmRl
eCA3NTdkNWNkMTk4OTAzNzI2MWU3NzM0MWRmZWVhMDc5Y2VmMzY0NWU1Li5iN2M0ZWIwYmQ4Y2U1
MTU1YmZjNGE3YzIwYjAzZThhYTFhYmM2M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1ZNQWxsb2NhdGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2Nh
dGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUg
IkJBc3NlcnQuaCIKKyNpbmNsdWRlICJCVk1UYWdzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2l6ZXMuaCIKQEAgLTM3LDE5ICszOCwxNyBA
QAogCiAjaWYgQk9TKERBUldJTikKICNpbmNsdWRlIDxtYWNoL3ZtX3BhZ2Vfc2l6ZS5oPgotI2lu
Y2x1ZGUgPG1hY2gvdm1fc3RhdGlzdGljcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBibWFsbG9j
IHsKIAotI2lmIEJPUyhEQVJXSU4pCi0jZGVmaW5lIEJNQUxMT0NfVk1fVEFHIFZNX01BS0VfVEFH
KFZNX01FTU9SWV9UQ01BTExPQykKLSNkZWZpbmUgQk1BTExPQ19OT1JFU0VSVkUgMAotI2VsaWYg
Qk9TKExJTlVYKQotI2RlZmluZSBCTUFMTE9DX1ZNX1RBRyAtMQorI2lmbmRlZiBCTUFMTE9DX1ZN
X1RBRworI2RlZmluZSBCTUFMTE9DX1ZNX1RBRyBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWQor
I2VuZGlmCisKKyNpZiBCT1MoTElOVVgpCiAjZGVmaW5lIEJNQUxMT0NfTk9SRVNFUlZFIE1BUF9O
T1JFU0VSVkUKICNlbHNlCi0jZGVmaW5lIEJNQUxMT0NfVk1fVEFHIC0xCiAjZGVmaW5lIEJNQUxM
T0NfTk9SRVNFUlZFIDAKICNlbmRpZgogCkBAIC0xMjIsMTAgKzEyMSwxMCBAQCBpbmxpbmUgdm9p
ZCB2bVZhbGlkYXRlUGh5c2ljYWwodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkKICAgICBCQVNTRVJU
KHAgPT0gbWFzayhwLCB+KHZtUGFnZVNpemVQaHlzaWNhbCgpIC0gMSkpKTsKIH0KIAotaW5saW5l
IHZvaWQqIHRyeVZNQWxsb2NhdGUoc2l6ZV90IHZtU2l6ZSkKK2lubGluZSB2b2lkKiB0cnlWTUFs
bG9jYXRlKHNpemVfdCB2bVNpemUsIFZNVXNhZ2UgdXNhZ2UgPSBWTVVzYWdlOjpGYXN0TWFsbG9j
UGFnZXMpCiB7CiAgICAgdm1WYWxpZGF0ZSh2bVNpemUpOwotICAgIHZvaWQqIHJlc3VsdCA9IG1t
YXAoMCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9B
Tk9OIHwgQk1BTExPQ19OT1JFU0VSVkUsIEJNQUxMT0NfVk1fVEFHLCAwKTsKKyAgICB2b2lkKiBy
ZXN1bHQgPSBtbWFwKDAsIHZtU2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZB
VEUgfCBNQVBfQU5PTiB8IEJNQUxMT0NfTk9SRVNFUlZFLCBzdGF0aWNfY2FzdDxpbnQ+KHVzYWdl
KSwgMCk7CiAgICAgaWYgKHJlc3VsdCA9PSBNQVBfRkFJTEVEKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTUwLDE5ICsxNDksMTkgQEAgaW5saW5lIHZv
aWQgdm1SZXZva2VQZXJtaXNzaW9ucyh2b2lkKiBwLCBzaXplX3Qgdm1TaXplKQogICAgIG1wcm90
ZWN0KHAsIHZtU2l6ZSwgUFJPVF9OT05FKTsKIH0KIAotaW5saW5lIHZvaWQgdm1aZXJvQW5kUHVy
Z2Uodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkKK2lubGluZSB2b2lkIHZtWmVyb0FuZFB1cmdlKHZv
aWQqIHAsIHNpemVfdCB2bVNpemUsIFZNVXNhZ2UgdXNhZ2UgPSBWTVVzYWdlOjpGYXN0TWFsbG9j
UGFnZXMpCiB7CiAgICAgdm1WYWxpZGF0ZShwLCB2bVNpemUpOwogICAgIC8vIE1BUF9BTk9OIGd1
YXJhbnRlZXMgdGhlIG1lbW9yeSBpcyB6ZXJvZWQuIFRoaXMgd2lsbCBhbHNvIGNhdXNlCiAgICAg
Ly8gcGFnZSBmYXVsdHMgb24gYWNjZXNzZXMgdG8gdGhpcyByYW5nZSBmb2xsb3dpbmcgdGhpcyBj
YWxsLgotICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAocCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9U
X1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OIHwgTUFQX0ZJWEVEIHwgQk1BTExPQ19OT1JF
U0VSVkUsIEJNQUxMT0NfVk1fVEFHLCAwKTsKKyAgICB2b2lkKiByZXN1bHQgPSBtbWFwKHAsIHZt
U2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiB8IE1B
UF9GSVhFRCB8IEJNQUxMT0NfTk9SRVNFUlZFLCBzdGF0aWNfY2FzdDxpbnQ+KHVzYWdlKSwgMCk7
CiAgICAgUkVMRUFTRV9CQVNTRVJUKHJlc3VsdCA9PSBwKTsKIH0KIAogLy8gQWxsb2NhdGVzIHZt
U2l6ZSBieXRlcyBhdCBhIHNwZWNpZmllZCBwb3dlci1vZi10d28gYWxpZ25tZW50LgogLy8gVXNl
IHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlIG1hc2thYmxlIG1lbW9yeSByZWdpb25zLgogCi1pbmxp
bmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qgdm1BbGlnbm1lbnQsIHNpemVfdCB2bVNpemUp
CitpbmxpbmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qgdm1BbGlnbm1lbnQsIHNpemVfdCB2
bVNpemUsIFZNVXNhZ2UgdXNhZ2UgPSBWTVVzYWdlOjpGYXN0TWFsbG9jUGFnZXMpCiB7CiAgICAg
dm1WYWxpZGF0ZSh2bVNpemUpOwogICAgIHZtVmFsaWRhdGUodm1BbGlnbm1lbnQpOwpAQCAtMTcx
LDcgKzE3MCw3IEBAIGlubGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bUFsaWdubWVu
dCwgc2l6ZV90IHZtU2l6ZSkKICAgICBpZiAobWFwcGVkU2l6ZSA8IHZtQWxpZ25tZW50IHx8IG1h
cHBlZFNpemUgPCB2bVNpemUpIC8vIENoZWNrIGZvciBvdmVyZmxvdwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGNoYXIqIG1hcHBlZCA9IHN0YXRpY19jYXN0PGNoYXIqPih0cnlWTUFs
bG9jYXRlKG1hcHBlZFNpemUpKTsKKyAgICBjaGFyKiBtYXBwZWQgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4odHJ5Vk1BbGxvY2F0ZShtYXBwZWRTaXplLCB1c2FnZSkpOwogICAgIGlmICghbWFwcGVkKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjaGFyKiBtYXBwZWRFbmQgPSBtYXBwZWQgKyBt
YXBwZWRTaXplOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359279</attachid>
            <date>2019-01-16 10:30:43 -0800</date>
            <delta_ts>2019-01-16 11:08:28 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193496-20190116103042.patch</filename>
            <type>text/plain</type>
            <size>16260</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFjNTJjYTAwMDdhZmUyYTI5MzZkMzY3
M2FiYzRlMzRlZGNiODY1MWQuLjEyMWU2YmZlZWE5ZmI5ZDAxYmIxZmQ3ODVlYmIyY2JjZGVjMTBj
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTYgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYyBzaG91bGQgdXNlIEpTQyBWTSB0
YWcgZm9yIGdpZ2FjYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTM0OTYKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAg
ICBNb3ZlIG1vc3Qgb2YgdGhlIG1hY3JvcyBmb3Igdm0gdGFnZ2luZyB0byBibWFsbG9jLgorCisg
ICAgICAgICogd3RmL1ZNVGFncy5oOgorCiAyMDE5LTAxLTE2ICBBbGJlcnRvIEdhcmNpYSAgPGJl
cnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gQ29tcGlsYXRpb24gZmFpbHMgd2l0aCBz
eXN0ZW0gbWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYTJjNzA2NDYxOGMyYzA4YzVhN2MxMmJkM2U0ZGM5
ZTVmNWY5ZmQzOC4uYjMwZDEyNTQzMmM5ZmYwZTM2Y2MzODNkZDc4YWFkYjE2NzQyMGRiZSAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAxLTE2ICBLZWl0aCBNaWxsZXIgIDxrZWl0
aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIGJtYWxsb2Mgc2hvdWxkIHVzZSBKU0MgVk0g
dGFnIGZvciBnaWdhY2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkzNDk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgVk1UYWcgaW5mbyBmcm9tIFdURiB0byBibWFsbG9jIHNv
IHRoYXQgd2UgY2FuCisgICAgICAgIHRhZyBnaWdhY2FnZSBtZW1vcnkgd2l0aCB0aGUgdW51c2Vk
IEpTQyBtZW1vcnkgdGFnLiBUaGUgSlNDIG1lbW9yeQorICAgICAgICB0YWcgd2FzIHByZXZpb3Vz
bHkgdXNlZCBmb3Igd2FzbSBidXQgc2luY2Ugd2FzbSBpcyBub3cgYWxsb2NhdGVkCisgICAgICAg
IG91dCBvZiB0aGUgcHJpbWl0aXZlIGNhZ2UgaXQgd2FzIHVudXNlZC4KKworICAgICAgICAqIGJt
YWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBibWFsbG9jL0JWTVRh
Z3MuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvVk1UYWdzLmguCisgICAgICAgICogYm1h
bGxvYy9HaWdhY2FnZS5jcHA6CisgICAgICAgIChHaWdhY2FnZTo6ZW5zdXJlR2lnYWNhZ2UpOgor
ICAgICAgICAqIGJtYWxsb2MvVk1BbGxvY2F0ZS5oOgorICAgICAgICAoYm1hbGxvYzo6dHJ5Vk1B
bGxvY2F0ZSk6CisgICAgICAgIChibWFsbG9jOjp2bVplcm9BbmRQdXJnZSk6CisKIDIwMTktMDEt
MDkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEdpZ2FjYWdlIGRp
c2FibGluZyBjaGVja3Mgc2hvdWxkIGhhbmRsZSB0aGUgR0lHQUNBR0VfQUxMT0NBVElPTl9DQU5f
RkFJTCBjYXNlIHByb3Blcmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVk1UYWdzLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAppbmRleCA0Y2Y3ODE5NDUwODYzNzA2NTgxNDFiZDgw
NmNlN2UyNWJmODA4ZmMyLi4xNGUwMjFmZWYzNTBmYzdlMjJjMTI1Y2I3ODBkOTU1MDJjZjU3NGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9WTVRhZ3MuaApAQCAtMjUsNDEgKzI1LDE1IEBACiAKICNwcmFnbWEgb25jZQogCi0vLyBPbiBN
YWMgT1MgWCwgdGhlIFZNIHN1YnN5c3RlbSBhbGxvd3MgdGFnZ2luZyBtZW1vcnkgcmVxdWVzdGVk
IGZyb20gbW1hcCBhbmQgdm1fbWFwCi0vLyBpbiBvcmRlciB0byBhaWQgdG9vbHMgdGhhdCBpbnNw
ZWN0IHN5c3RlbSBtZW1vcnkgdXNlLiAKLSNpZiBPUyhEQVJXSU4pCi0KLSNpbmNsdWRlIDxtYWNo
L3ZtX3N0YXRpc3RpY3MuaD4KLQotI2lmIGRlZmluZWQoVk1fTUVNT1JZX1RDTUFMTE9DKQotI2Rl
ZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSBWTV9NQUtFX1RBRyhWTV9NRU1PUllfVENN
QUxMT0MpCi0jZWxzZQotI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSBWTV9NQUtF
X1RBRyg1MykKLSNlbmRpZiAvLyBkZWZpbmVkKFZNX01FTU9SWV9UQ01BTExPQykKLQotI2lmIGRl
ZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX0VYRUNVVEFCTEVfQUxMT0NBVE9SKQotI2Rl
ZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExPQ0FUT1JfTUVNT1JZIFZNX01BS0VfVEFHKFZN
X01FTU9SWV9KQVZBU0NSSVBUX0pJVF9FWEVDVVRBQkxFX0FMTE9DQVRPUikKLSNlbHNlCi0jZGVm
aW5lIFZNX1RBR19GT1JfRVhFQ1VUQUJMRUFMTE9DQVRPUl9NRU1PUlkgVk1fTUFLRV9UQUcoNjQp
Ci0jZW5kaWYgLy8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfRVhFQ1VUQUJMRV9B
TExPQ0FUT1IpCi0KLSNpZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9SRUdJU1RF
Ul9GSUxFKQotI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgVk1fTUFLRV9U
QUcoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfSklUX1JFR0lTVEVSX0ZJTEUpCi0jZWxzZQotI2RlZmlu
ZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgVk1fTUFLRV9UQUcoNjUpCi0jZW5kaWYg
Ly8gZGVmaW5lZChWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJfRklMRSkKLQotI2lm
IGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfQ09SRSkKLSNkZWZpbmUgVk1fVEFHX0ZPUl9X
RUJBU1NFTUJMWV9NRU1PUlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfQ09SRSkK
LSNlbHNlCi0jZGVmaW5lIFZNX1RBR19GT1JfV0VCQVNTRU1CTFlfTUVNT1JZIFZNX01BS0VfVEFH
KDYzKQotI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJUFRfQ09SRSkKLQotI2Vs
c2UgLy8gT1MoREFSV0lOKQorI2lmIGRlZmluZWQoVVNFX1NZU1RFTV9NQUxMT0MpICYmIFVTRV9T
WVNURU1fTUFMTE9DCiAKICNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19NRU1PUlkgLTEKICNk
ZWZpbmUgVk1fVEFHX0ZPUl9XRUJBU1NFTUJMWV9NRU1PUlkgLTEKICNkZWZpbmUgVk1fVEFHX0ZP
Ul9FWEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSAtMQogI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lT
VEVSRklMRV9NRU1PUlkgLTEKIAotI2VuZGlmIC8vIE9TKERBUldJTikKKyNlbHNlCisKKyNpbmNs
dWRlIDxibWFsbG9jL0JWTVRhZ3MuaD4KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODYwYzgzZWFjNGI2NDRjMmM3
YmM1ZDk2MTE5NTRmZGIyZjg5NjQ2Yi4uYmE0ZjBmODk0NmU2YjE5N2NmNGVhNzVlYWUzNThmZWRk
MjQ1MGQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTQwLDYgKzE0MCw3IEBACiAJCUFEMDkzNDMzMUZDRjQwNkQwMEU4NUVC
NSAvKiBCQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFEMDkzNDMyMUZDRjQwNTAwMEU4NUVCNSAvKiBCQ29tcGlsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDE0QUQyOTIwMjUyOUM0
MDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBRDE0QUQyNzIwMjUyOUE2MDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNr
LmggKi87IH07CiAJCUFEMTRBRDJBMjAyNTI5QzcwMDg5MEUzQiAvKiBQcm9jZXNzQ2hlY2subW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDE0QUQyODIw
MjUyOUIwMDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLm1tICovOyB9OworCQlERThCMTNCMzIxQ0M1
RDlGMDBBNjNGQ0QgLyogQlZNVGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREU4QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJWTVRhZ3MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogLyogRW5kIFBCWEJ1
aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0
aW9uICovCkBAIC0zMDMsNiArMzA0LDcgQEAKIAkJQUQwOTM0MzIxRkNGNDA1MDAwRTg1RUI1IC8q
IEJDb21waWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCQ29tcGlsZXIu
aDsgcGF0aCA9IGJtYWxsb2MvQkNvbXBpbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUFEMTRBRDI3MjAyNTI5QTYwMDg5MEUzQiAvKiBQcm9jZXNzQ2hlY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc0NoZWNrLmg7IHBhdGggPSBibWFsbG9jL1By
b2Nlc3NDaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDE0QUQyODIwMjUy
OUIwMDA4OTBFM0IgLyogUHJvY2Vzc0NoZWNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gUHJvY2Vzc0NoZWNrLm1tOyBwYXRoID0gYm1hbGxvYy9Qcm9jZXNzQ2hl
Y2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURFOEIxM0IyMjFDQzVEOUYwMEE2
M0ZDRCAvKiBCVk1UYWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJWTVRhZ3MuaDsgcGF0aCA9IGJtYWxs
b2MvQlZNVGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVS
ZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCkBAIC01MjUsNiArNTI3LDcgQEAKIAkJCQkwRjdFQjg0QTFGOTU0MUM2MDBGMUFC
Q0IgLyogQml0cy5oICovLAogCQkJCTBGN0VCODRCMUY5NTQxQzYwMEYxQUJDQiAvKiBCTWFsbG9j
ZWQuaCAqLywKIAkJCQkxNEM5MTlDODE4RkNDNTlGMDAyOERCNDMgLyogQlBsYXRmb3JtLmggKi8s
CisJCQkJREU4QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJWTVRhZ3MuaCAqLywKIAkJCQkwRjc0
QjkzRDFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCAqLywKIAkJCQkwRjc0Qjkz
QzFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmggKi8sCiAJCQkJMTREOURCNDUxN0Yy
NDQ3MTAwRUFBQjc5IC8qIEZpeGVkVmVjdG9yLmggKi8sCkBAIC01MzksOCArNTQyLDggQEAKIAkJ
CQkwRjVCRjE0ODFGMjJBOEQ4MDAyOUQ5MUQgLyogUGVySGVhcEtpbmQuaCAqLywKIAkJCQkwRjI2
QTdBNDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMTQ0NDZBMDcx
N0E2MUZBNDAwRjlFQTFEIC8qIFBlclByb2Nlc3MuaCAqLywKLQkJCQkxNDQ0NjlGRDE3QTYxRjFG
MDBGOUVBMUQgLyogUGVyVGhyZWFkLmggKi8sCiAJCQkJNjU0M0REQjMyMEVFQUVGMzAwM0IyM0Q4
IC8qIFBlclRocmVhZC5jcHAgKi8sCisJCQkJMTQ0NDY5RkQxN0E2MUYxRjAwRjlFQTFEIC8qIFBl
clRocmVhZC5oICovLAogCQkJCTE0NUY2ODc4MTc5RTNBNDQwMEQ2NTU5OCAvKiBSYW5nZS5oICov
LAogCQkJCTE0OEVGQUU2MUQ2Qjk1M0IwMDhFNzIxRSAvKiBTY29wZUV4aXQuaCAqLywKIAkJCQkx
NDE3RjY0RjE4QjcyODBDMDA3NkZBM0YgLyogU3lzY2FsbC5oICovLApAQCAtNTUzLDggKzU1Niw4
IEBACiAJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUyRjQ3MjQ4MjEwQkEyRjUwMEI3MzBC
QiAvKiBNZW1vcnlTdGF0dXNTUEkuaCAqLywKIAkJCQk0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIg
LyogQlNvZnRMaW5raW5nLmggKi8sCisJCQkJNTJGNDcyNDgyMTBCQTJGNTAwQjczMEJCIC8qIE1l
bW9yeVN0YXR1c1NQSS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBkYXJ3aW47CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNTgzLDcgKzU4Niw2IEBACiAJCQkJMEY1QkYxNzMxRjIzQzU3
MTAwMjlEOTFEIC8qIEJFeHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3OEM5MThGNDhE
NzUwMDk1MDcwMiAvKiBCSW5saW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0QzFGOTU0
MUM3MDBGMUFCQ0IgLyogQml0cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTJGNDcyNDkyMTBCQTMw
MjAwQjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0OEMz
MDExOEYzNzU0QzAwNTAyODM5IC8qIGJtYWxsb2MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VC
ODREMUY5NTQxQzcwMEYxQUJDQiAvKiBCTWFsbG9jZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
QzkxOUM5MThGQ0M1OUYwMDI4REI0MyAvKiBCUGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLApAQCAt
NTkxLDYgKzU5Myw3IEBACiAJCQkJNzkzOTg4NUIyMDc2RUVCNjAwNzRBMkU3IC8qIEJ1bGtEZWNv
bW1pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAwOTUwNzAyIC8qIEJ1
bXBBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAzMTlDRTQyOUMwMEZGRDND
OCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCURFOEIxM0IzMjFDQzVEOUYwMEE2
M0ZDRCAvKiBCVk1UYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5OTE4RjQ4RDRBMDA5
NTA3MDIgLyogQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0N0RDNkUzMUNBNUI3MEIwMDcy
NEU4RCAvKiBDaHVuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NEI5M0UxRjg5NzEzRTAwQjkz
NUQzIC8qIENyeXB0b1JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDAsNiArNjQzLDcgQEAK
IAkJCQkxNDFEOUIwMDFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDQyNkUyODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0Qzg5OTJCMUNDNDg1RTcwMDI3QTA1NyAvKiBNYXAuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTUyRjQ3MjQ5MjEwQkEzMDIwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0M0NCODFEMTkwMjJCQzkwMEIxNkE0NSAvKiBNdXRleC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQ0QkUxMUYxQ0EzNDY1MjAwOTlDOEMwIC8qIE9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTRERDc4OTMxOEY0OEQwRjAwOTUwNzAyIC8qIE9iamVjdFR5cGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtNzM5LDcgKzc0Myw3IEBACiAJCQl9OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDE0NUY2ODNBMTc5REM0NUYwMEQ2NTU5OCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgImJtYWxsb2MiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24g
PSAiWGNvZGUgMy4yIjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKKwkJCWRldmVs
b3BtZW50UmVnaW9uID0gZW47CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMDsKIAkJCWtu
b3duUmVnaW9ucyA9ICgKIAkJCQllbiwKQEAgLTc5MSw3ICs3OTUsNiBAQAogCQkJCTBGNUJGMTRG
MUYyMkRFQUYwMDI5RDkxRCAvKiBHaWdhY2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEYy
NzFDNzE4RUEzOTkwMDA4QzE1MkYgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ1
NTczMzFGN0VEQjdCMDBCMUYwQTMgLyogSGVhcEtpbmQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NjU0M0REQjQyMEVFQUVGMzAwM0IyM0Q4IC8qIFBlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjdFQjgzQjFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvSGVhcEltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY1NTQ5RUYxRkI1NDcwNDAwN0ZGNzVBIC8qIElzb1BhZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY3RUI4MzYxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMUy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTgwMiw2ICs4MDUsNyBAQAogCQkJCTE0M0NCODFDMTkwMjJCQzkwMEIx
NkE0NSAvKiBNdXRleC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEYyNzFDODE4RUEzOTkwMDA4
QzE1MkYgLyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI2QTdBNTIwNTQ4
MzEzMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2NTQzRERC
NDIwRUVBRUYzMDAzQjIzRDggLyogUGVyVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFE
MTRBRDJBMjAyNTI5QzcwMDg5MEUzQiAvKiBQcm9jZXNzQ2hlY2subW0gaW4gU291cmNlcyAqLywK
IAkJCQkwRjVCRjE1MjFGMjJFMTU3MDAyOUQ5MUQgLyogU2NhdmVuZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0RjI3MUM5MThFQTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JWTVRhZ3MuaCBiL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvQlZNVGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NzQ4ODkxN2YxMTky
MmNhMThmZDg1M2JkOTQwZGUyMDQ2NmNhZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0JWTVRhZ3MuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA5LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJCUGxhdGZvcm0uaCIKKworLy8gT24gTWFjIE9TIFgsIHRoZSBWTSBzdWJzeXN0ZW0gYWxs
b3dzIHRhZ2dpbmcgbWVtb3J5IHJlcXVlc3RlZCBmcm9tIG1tYXAgYW5kIHZtX21hcAorLy8gaW4g
b3JkZXIgdG8gYWlkIHRvb2xzIHRoYXQgaW5zcGVjdCBzeXN0ZW0gbWVtb3J5IHVzZS4KKyNpZiBC
T1MoREFSV0lOKQorCisjaW5jbHVkZSA8bWFjaC92bV9zdGF0aXN0aWNzLmg+CisKKyNpZiBkZWZp
bmVkKFZNX01FTU9SWV9UQ01BTExPQykKKyNkZWZpbmUgVk1fVEFHX0ZPUl9UQ01BTExPQ19NRU1P
UlkgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX1RDTUFMTE9DKQorI2Vsc2UKKyNkZWZpbmUgVk1fVEFH
X0ZPUl9UQ01BTExPQ19NRU1PUlkgVk1fTUFLRV9UQUcoNTMpCisjZW5kaWYgLy8gZGVmaW5lZChW
TV9NRU1PUllfVENNQUxMT0MpCisKKyNpZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJ
VF9FWEVDVVRBQkxFX0FMTE9DQVRPUikKKyNkZWZpbmUgVk1fVEFHX0ZPUl9FWEVDVVRBQkxFQUxM
T0NBVE9SX01FTU9SWSBWTV9NQUtFX1RBRyhWTV9NRU1PUllfSkFWQVNDUklQVF9KSVRfRVhFQ1VU
QUJMRV9BTExPQ0FUT1IpCisjZWxzZQorI2RlZmluZSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExP
Q0FUT1JfTUVNT1JZIFZNX01BS0VfVEFHKDY0KQorI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZ
X0pBVkFTQ1JJUFRfSklUX0VYRUNVVEFCTEVfQUxMT0NBVE9SKQorCisjaWYgZGVmaW5lZChWTV9N
RU1PUllfSkFWQVNDUklQVF9KSVRfUkVHSVNURVJfRklMRSkKKyNkZWZpbmUgVk1fVEFHX0ZPUl9S
RUdJU1RFUkZJTEVfTUVNT1JZIFZNX01BS0VfVEFHKFZNX01FTU9SWV9KQVZBU0NSSVBUX0pJVF9S
RUdJU1RFUl9GSUxFKQorI2Vsc2UKKyNkZWZpbmUgVk1fVEFHX0ZPUl9SRUdJU1RFUkZJTEVfTUVN
T1JZIFZNX01BS0VfVEFHKDY1KQorI2VuZGlmIC8vIGRlZmluZWQoVk1fTUVNT1JZX0pBVkFTQ1JJ
UFRfSklUX1JFR0lTVEVSX0ZJTEUpCisKKyNpZiBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBU
X0NPUkUpCisjZGVmaW5lIFZNX1RBR19GT1JfR0lHQUNBR0VfTUVNT1JZIFZNX01BS0VfVEFHKFZN
X01FTU9SWV9KQVZBU0NSSVBUX0NPUkUpCisjZWxzZQorI2RlZmluZSBWTV9UQUdfRk9SX0dJR0FD
QUdFX01FTU9SWSBWTV9NQUtFX1RBRyg2MykKKyNlbmRpZiAvLyBkZWZpbmVkKFZNX01FTU9SWV9K
QVZBU0NSSVBUX0NPUkUpCisKKyNlbHNlIC8vIEJPUyhEQVJXSU4pCisKKyNkZWZpbmUgVk1fVEFH
X0ZPUl9UQ01BTExPQ19NRU1PUlkgLTEKKyNkZWZpbmUgVk1fVEFHX0ZPUl9HSUdBQ0FHRV9NRU1P
UlkgLTEKKyNkZWZpbmUgVk1fVEFHX0ZPUl9FWEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSAtMQor
I2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVSRklMRV9NRU1PUlkgLTEKKworI2VuZGlmIC8vIEJP
UyhEQVJXSU4pCisKK25hbWVzcGFjZSBibWFsbG9jIHsKKworZW51bSBjbGFzcyBWTVRhZyB7Cisg
ICAgVW5rbm93biA9IC0xLAorICAgIE1hbGxvYyA9IFZNX1RBR19GT1JfVENNQUxMT0NfTUVNT1JZ
LAorICAgIEpTVk1TdGFjayA9IFZNX1RBR19GT1JfUkVHSVNURVJGSUxFX01FTU9SWSwKKyAgICBK
U0pJVENvZGUgPSBWTV9UQUdfRk9SX0VYRUNVVEFCTEVBTExPQ0FUT1JfTUVNT1JZLAorICAgIEpT
R2lnYWNhZ2UgPSBWTV9UQUdfRk9SX0dJR0FDQUdFX01FTU9SWSwKK307CisKK30gLy8gbmFtZXNw
YWNlIGJtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2Uu
Y3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAKaW5kZXggNWI5MjVjNDI2
Nzg1NDllNjUzMTRjZjAzMWQ2ZTA0YzA3YjBlNDY5Mi4uYTg4NjIzZDY5ZWUzNzBlZTlkZGVlMzQ1
NzE1OTEyOGYwM2YwY2IzYSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdh
Y2FnZS5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAKQEAgLTE2
Myw3ICsxNjMsNyBAQCB2b2lkIGVuc3VyZUdpZ2FjYWdlKCkKIAogICAgICAgICAgICAgLy8gRklY
TUU6IFJhbmRvbWl6ZSB3aGVyZSB0aGlzIGdvZXMuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1MjQ1Ci0gICAgICAgICAgICB2b2lkKiBi
YXNlID0gdHJ5Vk1BbGxvY2F0ZShtYXhBbGlnbm1lbnQsIHRvdGFsU2l6ZSk7CisgICAgICAgICAg
ICB2b2lkKiBiYXNlID0gdHJ5Vk1BbGxvY2F0ZShtYXhBbGlnbm1lbnQsIHRvdGFsU2l6ZSwgVk1U
YWc6OkpTR2lnYWNhZ2UpOwogICAgICAgICAgICAgaWYgKCFiYXNlKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKEdJR0FDQUdFX0FMTE9DQVRJT05fQ0FOX0ZBSUwpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1BbGxvY2F0ZS5o
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKaW5kZXggNzU3ZDVjZDE5ODkw
MzcyNjFlNzczNDFkZmVlYTA3OWNlZjM2NDVlNS4uNTM3MDIzM2I3ODQ1OTE1MDVlOGI3ZWZlNzJk
N2ExZDg4MDE4NTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgVk1BbGxvY2F0ZV9oCiAKICNpbmNsdWRlICJCQXNzZXJ0LmgiCisj
aW5jbHVkZSAiQlZNVGFncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSYW5n
ZS5oIgogI2luY2x1ZGUgIlNpemVzLmgiCkBAIC0zNywxOSArMzgsMTcgQEAKIAogI2lmIEJPUyhE
QVJXSU4pCiAjaW5jbHVkZSA8bWFjaC92bV9wYWdlX3NpemUuaD4KLSNpbmNsdWRlIDxtYWNoL3Zt
X3N0YXRpc3RpY3MuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgYm1hbGxvYyB7CiAKLSNpZiBCT1Mo
REFSV0lOKQotI2RlZmluZSBCTUFMTE9DX1ZNX1RBRyBWTV9NQUtFX1RBRyhWTV9NRU1PUllfVENN
QUxMT0MpCi0jZGVmaW5lIEJNQUxMT0NfTk9SRVNFUlZFIDAKLSNlbGlmIEJPUyhMSU5VWCkKLSNk
ZWZpbmUgQk1BTExPQ19WTV9UQUcgLTEKKyNpZm5kZWYgQk1BTExPQ19WTV9UQUcKKyNkZWZpbmUg
Qk1BTExPQ19WTV9UQUcgVk1fVEFHX0ZPUl9UQ01BTExPQ19NRU1PUlkKKyNlbmRpZgorCisjaWYg
Qk9TKExJTlVYKQogI2RlZmluZSBCTUFMTE9DX05PUkVTRVJWRSBNQVBfTk9SRVNFUlZFCiAjZWxz
ZQotI2RlZmluZSBCTUFMTE9DX1ZNX1RBRyAtMQogI2RlZmluZSBCTUFMTE9DX05PUkVTRVJWRSAw
CiAjZW5kaWYKIApAQCAtMTIyLDEwICsxMjEsMTAgQEAgaW5saW5lIHZvaWQgdm1WYWxpZGF0ZVBo
eXNpY2FsKHZvaWQqIHAsIHNpemVfdCB2bVNpemUpCiAgICAgQkFTU0VSVChwID09IG1hc2socCwg
fih2bVBhZ2VTaXplUGh5c2ljYWwoKSAtIDEpKSk7CiB9CiAKLWlubGluZSB2b2lkKiB0cnlWTUFs
bG9jYXRlKHNpemVfdCB2bVNpemUpCitpbmxpbmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qg
dm1TaXplLCBWTVRhZyB1c2FnZSA9IFZNVGFnOjpNYWxsb2MpCiB7CiAgICAgdm1WYWxpZGF0ZSh2
bVNpemUpOwotICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAoMCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQ
Uk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OIHwgQk1BTExPQ19OT1JFU0VSVkUsIEJN
QUxMT0NfVk1fVEFHLCAwKTsKKyAgICB2b2lkKiByZXN1bHQgPSBtbWFwKDAsIHZtU2l6ZSwgUFJP
VF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiB8IEJNQUxMT0NfTk9S
RVNFUlZFLCBzdGF0aWNfY2FzdDxpbnQ+KHVzYWdlKSwgMCk7CiAgICAgaWYgKHJlc3VsdCA9PSBN
QVBfRkFJTEVEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtMTUwLDE5ICsxNDksMTkgQEAgaW5saW5lIHZvaWQgdm1SZXZva2VQZXJtaXNzaW9ucyh2b2lk
KiBwLCBzaXplX3Qgdm1TaXplKQogICAgIG1wcm90ZWN0KHAsIHZtU2l6ZSwgUFJPVF9OT05FKTsK
IH0KIAotaW5saW5lIHZvaWQgdm1aZXJvQW5kUHVyZ2Uodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkK
K2lubGluZSB2b2lkIHZtWmVyb0FuZFB1cmdlKHZvaWQqIHAsIHNpemVfdCB2bVNpemUsIFZNVGFn
IHVzYWdlID0gVk1UYWc6Ok1hbGxvYykKIHsKICAgICB2bVZhbGlkYXRlKHAsIHZtU2l6ZSk7CiAg
ICAgLy8gTUFQX0FOT04gZ3VhcmFudGVlcyB0aGUgbWVtb3J5IGlzIHplcm9lZC4gVGhpcyB3aWxs
IGFsc28gY2F1c2UKICAgICAvLyBwYWdlIGZhdWx0cyBvbiBhY2Nlc3NlcyB0byB0aGlzIHJhbmdl
IGZvbGxvd2luZyB0aGlzIGNhbGwuCi0gICAgdm9pZCogcmVzdWx0ID0gbW1hcChwLCB2bVNpemUs
IFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9QUklWQVRFIHwgTUFQX0FOT04gfCBNQVBfRklY
RUQgfCBCTUFMTE9DX05PUkVTRVJWRSwgQk1BTExPQ19WTV9UQUcsIDApOworICAgIHZvaWQqIHJl
c3VsdCA9IG1tYXAocCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFU
RSB8IE1BUF9BTk9OIHwgTUFQX0ZJWEVEIHwgQk1BTExPQ19OT1JFU0VSVkUsIHN0YXRpY19jYXN0
PGludD4odXNhZ2UpLCAwKTsKICAgICBSRUxFQVNFX0JBU1NFUlQocmVzdWx0ID09IHApOwogfQog
CiAvLyBBbGxvY2F0ZXMgdm1TaXplIGJ5dGVzIGF0IGEgc3BlY2lmaWVkIHBvd2VyLW9mLXR3byBh
bGlnbm1lbnQuCiAvLyBVc2UgdGhpcyBmdW5jdGlvbiB0byBjcmVhdGUgbWFza2FibGUgbWVtb3J5
IHJlZ2lvbnMuCiAKLWlubGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bUFsaWdubWVu
dCwgc2l6ZV90IHZtU2l6ZSkKK2lubGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bUFs
aWdubWVudCwgc2l6ZV90IHZtU2l6ZSwgVk1UYWcgdXNhZ2UgPSBWTVRhZzo6TWFsbG9jKQogewog
ICAgIHZtVmFsaWRhdGUodm1TaXplKTsKICAgICB2bVZhbGlkYXRlKHZtQWxpZ25tZW50KTsKQEAg
LTE3MSw3ICsxNzAsNyBAQCBpbmxpbmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qgdm1BbGln
bm1lbnQsIHNpemVfdCB2bVNpemUpCiAgICAgaWYgKG1hcHBlZFNpemUgPCB2bUFsaWdubWVudCB8
fCBtYXBwZWRTaXplIDwgdm1TaXplKSAvLyBDaGVjayBmb3Igb3ZlcmZsb3cKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBjaGFyKiBtYXBwZWQgPSBzdGF0aWNfY2FzdDxjaGFyKj4odHJ5
Vk1BbGxvY2F0ZShtYXBwZWRTaXplKSk7CisgICAgY2hhciogbWFwcGVkID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KHRyeVZNQWxsb2NhdGUobWFwcGVkU2l6ZSwgdXNhZ2UpKTsKICAgICBpZiAoIW1hcHBl
ZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2hhciogbWFwcGVkRW5kID0gbWFwcGVk
ICsgbWFwcGVkU2l6ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>