<?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>189047</bug_id>
          
          <creation_ts>2018-08-28 07:42:16 -0700</creation_ts>
          <short_desc>Add nullablity attributes to JSValue</short_desc>
          <delta_ts>2018-08-29 10:12:20 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>189085</dependson>
    
    <dependson>189086</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454366</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 07:42:16 -0700</bug_when>
    <thetext>Add nullablity attributes to JSValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454367</commentid>
    <comment_count>1</comment_count>
      <attachid>348291</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 07:42:45 -0700</bug_when>
    <thetext>Created attachment 348291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454408</commentid>
    <comment_count>2</comment_count>
      <attachid>348291</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-08-28 09:58:04 -0700</bug_when>
    <thetext>Comment on attachment 348291
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454426</commentid>
    <comment_count>3</comment_count>
      <attachid>348306</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 10:28:54 -0700</bug_when>
    <thetext>Created attachment 348306
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454429</commentid>
    <comment_count>4</comment_count>
      <attachid>348306</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 10:32:35 -0700</bug_when>
    <thetext>Comment on attachment 348306
Patch for landing

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

&gt; Source/JavaScriptCore/API/JSValue.h:363
&gt; +- (void)defineProperty:(nullable JSValueProperty)property descriptor:(nullable id)descriptor;

Actually, I think this needs to be nullable only when it can be an id and non-null the rest of the time. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454431</commentid>
    <comment_count>5</comment_count>
      <attachid>348308</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 10:34:04 -0700</bug_when>
    <thetext>Created attachment 348308
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454460</commentid>
    <comment_count>6</comment_count>
      <attachid>348308</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-28 11:11:30 -0700</bug_when>
    <thetext>Comment on attachment 348308
Patch for landing

Clearing flags on attachment: 348308

Committed r235432: &lt;https://trac.webkit.org/changeset/235432&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454461</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-28 11:11:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454463</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-28 11:12:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/43805577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454465</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-08-28 11:15:41 -0700</bug_when>
    <thetext>Normally we’d enclose an API header in NS_ASSUME_NONNULL_BEGIN-NS_ASSUME_NONNULL_END and only annotate the nullable types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454474</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 11:52:09 -0700</bug_when>
    <thetext>(In reply to mitz from comment #9)
&gt; Normally we’d enclose an API header in
&gt; NS_ASSUME_NONNULL_BEGIN-NS_ASSUME_NONNULL_END and only annotate the nullable
&gt; types.

Oh, I didn&apos;t know that existed. I&apos;ll upload a new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454483</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 12:00:16 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454484</commentid>
    <comment_count>12</comment_count>
      <attachid>348317</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 12:00:17 -0700</bug_when>
    <thetext>Created attachment 348317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454508</commentid>
    <comment_count>13</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 13:00:46 -0700</bug_when>
    <thetext>Committed r235436: &lt;https://trac.webkit.org/changeset/235436&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454676</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-28 19:53:31 -0700</bug_when>
    <thetext>Will this break compatibility for Swift programs that use these methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454677</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-28 19:53:57 -0700</bug_when>
    <thetext>Will this break source code compatibility for Swift programs that use these methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454712</commentid>
    <comment_count>16</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 21:40:42 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; Will this break source code compatibility for Swift programs that use these
&gt; methods?

No, it will just generate a warning if the users don&apos;t follow the nullability rules. At least according to https://developer.apple.com/swift/blog/?id=25.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454714</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-28 21:42:46 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #16)
&gt; (In reply to Darin Adler from comment #15)
&gt; &gt; Will this break source code compatibility for Swift programs that use these
&gt; &gt; methods?
&gt; 
&gt; No, it will just generate a warning if the users don&apos;t follow the
&gt; nullability rules. At least according to
&gt; https://developer.apple.com/swift/blog/?id=25.

I read that, and it’s not what it says. In Objective-C code it just creates warnings. In Swift code, the change is different. I think it *is* a source-incompatible Swift change. But maybe one that is worth doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454726</commentid>
    <comment_count>18</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-28 22:28:01 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #17)
&gt; (In reply to Keith Miller from comment #16)
&gt; &gt; (In reply to Darin Adler from comment #15)
&gt; &gt; &gt; Will this break source code compatibility for Swift programs that use these
&gt; &gt; &gt; methods?
&gt; &gt; 
&gt; &gt; No, it will just generate a warning if the users don&apos;t follow the
&gt; &gt; nullability rules. At least according to
&gt; &gt; https://developer.apple.com/swift/blog/?id=25.
&gt; 
&gt; I read that, and it’s not what it says. In Objective-C code it just creates
&gt; warnings. In Swift code, the change is different. I think it *is* a
&gt; source-incompatible Swift change. But maybe one that is worth doing.

Ah, I misread your comment. Yeah, I think it&apos;s a source-incompatible Swift change. It seems like it&apos;s an incompatible change that we are encouraged to make.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454812</commentid>
    <comment_count>19</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-08-29 10:09:08 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #18)
&gt; (In reply to Darin Adler from comment #17)
&gt; &gt; (In reply to Keith Miller from comment #16)
&gt; &gt; &gt; (In reply to Darin Adler from comment #15)
&gt; &gt; &gt; &gt; Will this break source code compatibility for Swift programs that use these
&gt; &gt; &gt; &gt; methods?
&gt; &gt; &gt; 
&gt; &gt; &gt; No, it will just generate a warning if the users don&apos;t follow the
&gt; &gt; &gt; nullability rules. At least according to
&gt; &gt; &gt; https://developer.apple.com/swift/blog/?id=25.
&gt; &gt; 
&gt; &gt; I read that, and it’s not what it says. In Objective-C code it just creates
&gt; &gt; warnings. In Swift code, the change is different. I think it *is* a
&gt; &gt; source-incompatible Swift change. But maybe one that is worth doing.
&gt; 
&gt; Ah, I misread your comment. Yeah, I think it&apos;s a source-incompatible Swift
&gt; change. It seems like it&apos;s an incompatible change that we are encouraged to
&gt; make.

Investigating further it looks like we are trying to avoid source-incompatible changes. I&apos;m gonna revert this for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454814</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-29 10:10:29 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 189085</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348291</attachid>
            <date>2018-08-28 07:42:45 -0700</date>
            <delta_ts>2018-08-28 10:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189047-20180828074243.patch</filename>
            <type>text/plain</type>
            <size>16834</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTg5OGNkZmFhNmFhMWUyZmFmNDM5NTU2OGJhYTRiZTE1Njc0YzI2Li5mZjc4YjA3YTRkYTM3YjJk
OGQ4MjNmNTgxYWRhOTM0MDM4NzBiZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0wOC0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgbnVsbGFibGl0eSBhdHRyaWJ1dGVzIHRvIEpTVmFsdWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA0NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTVmFs
dWUuaDoKKwogMjAxOC0wOC0yNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3Rh
cnQub3JnPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gUGFyc2Ugd2FzbSBtb2R1bGVzIGluIGEg
c3RyZWFtaW5nIGZhc2hpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgKaW5kZXggNTUy
ZDQ3MGNhZTcxMTNmOTg4NmFkODFjNTQwMWJlNTk5MWUxNmNlMC4uMjVlZDg3ZjMyNzg5MGM3Y2Jk
YzEwNmVlMTU4NWNiZjAxMTc5YjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgK
QEAgLTU3LDcgKzU3LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcHJvcGVydHkK
IEBhYnN0cmFjdCBUaGUgSlNDb250ZXh0IHRoYXQgdGhpcyB2YWx1ZSBvcmlnaW5hdGVzIGZyb20u
CiAqLwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBKU0NvbnRleHQgKmNvbnRleHQ7CitA
cHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcsIG5vbm51bGwpIEpTQ29udGV4dCAqY29udGV4dDsK
IAogLyohCiBAbWV0aG9kZ3JvdXAgQ3JlYXRpbmcgSmF2YVNjcmlwdCBWYWx1ZXMKQEAgLTY5LDcg
KzY5LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gdmFsdWUgVGhlIE9i
amVjdGl2ZS1DIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1
ZS4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoT2JqZWN0OihpZCl2YWx1ZSBpbkNvbnRleHQ6
KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhPYmpl
Y3Q6KG51bGxhYmxlIGlkKXZhbHVlIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250
ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTc3LDcgKzc3LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1
bHRpbmcgSlNWYWx1ZSB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSBy
ZXByZXNlbnRpbmcgdGhlIGVxdWl2YWxlbnQgYm9vbGVhbiB2YWx1ZS4KICovCi0rIChKU1ZhbHVl
ICopdmFsdWVXaXRoQm9vbDooQk9PTCl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRl
eHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhCb29sOihCT09MKXZhbHVlIGluQ29u
dGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTg1
LDcgKzg1LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBU
aGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSB3aWxsIGJlIGNyZWF0
ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGVxdWl2YWxlbnQg
Ym9vbGVhbiB2YWx1ZS4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoRG91YmxlOihkb3VibGUp
dmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVl
ICopdmFsdWVXaXRoRG91YmxlOihkb3VibGUpdmFsdWUgaW5Db250ZXh0Oihub25udWxsIEpTQ29u
dGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtOTMsNyArOTMsNyBAQCB0eXBlZGVm
IGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hp
Y2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5l
dyBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgZXF1aXZhbGVudCBib29sZWFuIHZhbHVlLgogKi8K
LSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhJbnQzMjooaW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KEpT
Q29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhJbnQzMjoo
aW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAog
LyohCiBAbWV0aG9kCkBAIC0xMDEsNyArMTAxLDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVy
dHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcg
SlNWYWx1ZSB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSByZXByZXNl
bnRpbmcgdGhlIGVxdWl2YWxlbnQgYm9vbGVhbiB2YWx1ZS4KICovCi0rIChKU1ZhbHVlICopdmFs
dWVXaXRoVUludDMyOih1aW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRl
eHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhVSW50MzI6KHVpbnQzMl90KXZhbHVl
IGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QK
QEAgLTEwOSw3ICsxMDksNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBj
b250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBi
ZSBjcmVhdGVkLgogQHJlc3VsdCBUaGUgbmV3IEphdmFTY3JpcHQgb2JqZWN0LgogKi8KLSsgKEpT
VmFsdWUgKil2YWx1ZVdpdGhOZXdPYmplY3RJbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7
CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdPYmplY3RJbkNvbnRleHQ6KG5vbm51
bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xMTcsNyArMTE3LDcg
QEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250
ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbCBiZSBjcmVhdGVkLgogQHJlc3Vs
dCBUaGUgbmV3IEphdmFTY3JpcHQgYXJyYXkuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5l
d0FycmF5SW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVl
ICopdmFsdWVXaXRoTmV3QXJyYXlJbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4
dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xMjcsNyArMTI3LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1
bHRpbmcgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0
IFRoZSBuZXcgSmF2YVNjcmlwdCByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0LgogKi8KLSsgKEpT
VmFsdWUgKil2YWx1ZVdpdGhOZXdSZWd1bGFyRXhwcmVzc2lvbkZyb21QYXR0ZXJuOihOU1N0cmlu
ZyAqKXBhdHRlcm4gZmxhZ3M6KE5TU3RyaW5nICopZmxhZ3MgaW5Db250ZXh0OihKU0NvbnRleHQg
Kiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoTmV3UmVndWxhckV4cHJl
c3Npb25Gcm9tUGF0dGVybjoobm9ubnVsbCBOU1N0cmluZyAqKXBhdHRlcm4gZmxhZ3M6KG5vbm51
bGwgTlNTdHJpbmcgKilmbGFncyBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4
dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xMzYsNyArMTM2LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1
bHRpbmcgZXJyb3Igb2JqZWN0IHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKYXZh
U2NyaXB0IGVycm9yIG9iamVjdC4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3RXJyb3JG
cm9tTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29u
dGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld0Vycm9yRnJvbU1lc3NhZ2U6
KG5vbm51bGwgTlNTdHJpbmcgKiltZXNzYWdlIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQg
Kiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTE0NCw3ICsxNDQsNyBAQCB0eXBlZGVmIGlk
IEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2gg
dGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCiBAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJl
c2VudGluZyB0aGUgSmF2YVNjcmlwdCB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPi4KICovCi0rIChK
U1ZhbHVlICopdmFsdWVXaXRoTnVsbEluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKysg
KG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE51bGxJbkNvbnRleHQ6KG5vbm51bGwgSlNDb250
ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xNTIsNyArMTUyLDcgQEAgdHlwZWRl
ZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRvIHdo
aWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgogQHJlc3VsdCBUaGUgSlNWYWx1ZSBy
ZXByZXNlbnRpbmcgdGhlIEphdmFTY3JpcHQgdmFsdWUgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPi4K
ICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoVW5kZWZpbmVkSW5Db250ZXh0OihKU0NvbnRleHQg
Kiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoVW5kZWZpbmVkSW5Db250
ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogIEBtZXRob2QKQEAgLTE2
MSw3ICsxNjEsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBAcGFyYW0gY29udGV4
dCBUaGUgSlNDb250ZXh0IHRvIHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgog
IEByZXN1bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50aW5nIGEgdW5pcXVlIEphdmFTY3JpcHQgdmFs
dWUgd2l0aCB0eXBlIHN5bWJvbC4KICAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1N5bWJv
bEZyb21EZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBpbkNvbnRleHQ6KEpTQ29u
dGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9z
KEpTQ19JT1NfVEJBKSk7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdTeW1ib2xG
cm9tRGVzY3JpcHRpb246KG5vbm51bGwgTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBpbkNvbnRleHQ6
KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goSlND
X01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKIAogLyohCiBAbWV0aG9kZ3JvdXAgQ29udmVy
dGluZyB0byBPYmplY3RpdmUtQyBUeXBlcwpAQCAtMjE2LDcgKzIxNiw3IEBAIHR5cGVkZWYgaWQg
SlNWYWx1ZVByb3BlcnR5OwogIHRvIHRoZSBjb252ZXJzaW9uIHJ1bGVzIHNwZWNpZmllZCBhYm92
ZS4KIEByZXN1bHQgVGhlIE9iamVjdGl2ZS1DIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSlNWYWx1
ZS4KICovCi0tIChpZCl0b09iamVjdDsKKy0gKG51bGxhYmxlIGlkKXRvT2JqZWN0OwogCiAvKiEK
IEBtZXRob2QKQEAgLTIyNSw3ICsyMjUsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsK
ICBJZiB0aGUgcmVzdWx0IGlzIG5vdCBvZiB0aGUgc3BlY2lmaWVkIENsYXNzIHRoZW4gPGNvZGU+
bmlsPC9jb2RlPiB3aWxsIGJlIHJldHVybmVkLgogQHJlc3VsdCBBbiBPYmplY3RpdmUtQyBvYmpl
Y3Qgb2YgdGhlIHNwZWNpZmllZCBDbGFzcyBvciA8Y29kZT5uaWw8L2NvZGU+LgogKi8KLS0gKGlk
KXRvT2JqZWN0T2ZDbGFzczooQ2xhc3MpZXhwZWN0ZWRDbGFzczsKKy0gKG51bGxhYmxlIGlkKXRv
T2JqZWN0T2ZDbGFzczoobm9ubnVsbCBDbGFzcylleHBlY3RlZENsYXNzOwogCiAvKiEKIEBtZXRo
b2QKQEAgLTI3MSw3ICsyNzEsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICB0byB0
aGUgcnVsZXMgc3BlY2lmaWVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlLgogQHJlc3VsdCBU
aGUgTlNOdW1iZXIgcmVzdWx0IG9mIHRoZSBjb252ZXJzaW9uLgogKi8KLS0gKE5TTnVtYmVyICop
dG9OdW1iZXI7CistIChudWxsYWJsZSBOU051bWJlciAqKXRvTnVtYmVyOwogCiAvKiEKIEBtZXRo
b2QKQEAgLTI4MCw3ICsyODAsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBieSB0
aGUgSmF2YVNjcmlwdCBsYW5ndWFnZS4KIEByZXN1bHQgVGhlIE5TU3RyaW5nIGNvbnRhaW5pbmcg
dGhlIHJlc3VsdCBvZiB0aGUgY29udmVyc2lvbi4KICovCi0tIChOU1N0cmluZyAqKXRvU3RyaW5n
OworLSAobnVsbGFibGUgTlNTdHJpbmcgKil0b1N0cmluZzsKIAogLyohCiBAbWV0aG9kCkBAIC0y
ODksNyArMjg5LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiAgc2luY2UgMTk3MCB3
aGljaCBpcyB0aGVuIHVzZWQgdG8gY3JlYXRlIGEgbmV3IE5TRGF0ZSBpbnN0YW5jZS4KIEByZXN1
bHQgVGhlIE5TRGF0ZSBjcmVhdGVkIHVzaW5nIHRoZSBjb252ZXJ0ZWQgdGltZSBpbnRlcnZhbC4K
ICovCi0tIChOU0RhdGUgKil0b0RhdGU7CistIChudWxsYWJsZSBOU0RhdGUgKil0b0RhdGU7CiAK
IC8qIQogQG1ldGhvZApAQCAtMzAzLDcgKzMwMyw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3Bl
cnR5OwogQHJlc3VsdCBUaGUgTlNBcnJheSBjb250YWluaW5nIHRoZSByZWN1cnNpdmVseSBjb252
ZXJ0ZWQgY29udGVudHMgb2YgdGhlIAogIGNvbnZlcnRlZCBKYXZhU2NyaXB0IGFycmF5LgogKi8K
LS0gKE5TQXJyYXkgKil0b0FycmF5OworLSAobnVsbGFibGUgTlNBcnJheSAqKXRvQXJyYXk7CiAK
IC8qIQogQG1ldGhvZApAQCAtMzE1LDcgKzMxNSw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3Bl
cnR5OwogQHJlc3VsdCBUaGUgTlNEaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIHJlY3Vyc2l2ZWx5
IGNvbnZlcnRlZCBjb250ZW50cyBvZgogIHRoZSBjb252ZXJ0ZWQgSmF2YVNjcmlwdCBvYmplY3Qu
CiAqLwotLSAoTlNEaWN0aW9uYXJ5ICopdG9EaWN0aW9uYXJ5OworLSAobnVsbGFibGUgTlNEaWN0
aW9uYXJ5ICopdG9EaWN0aW9uYXJ5OwogCiAvKiEKIEBtZXRob2Rncm91cCBBY2Nlc3NpbmcgUHJv
cGVydGllcwpAQCAtMzI4LDE0ICszMjgsMTQgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7
CiAgaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0LgogQGRpc2N1c3Npb24gQ29ycmVzcG9u
ZHMgdG8gdGhlIEphdmFTY3JpcHQgb3BlcmF0aW9uIDxjb2RlPm9iamVjdFtwcm9wZXJ0eV08L2Nv
ZGU+LiBBZnRlciBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAn
aWQnIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNp
b24gcnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlv
ciB0byBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJl
IGFuIE5TU3RyaW5nICouCiAqLwotLSAoSlNWYWx1ZSAqKXZhbHVlRm9yUHJvcGVydHk6KEpTVmFs
dWVQcm9wZXJ0eSlwcm9wZXJ0eTsKKy0gKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlRm9yUHJvcGVy
dHk6KG5vbm51bGwgSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OwogCiAvKiEKIEBtZXRob2QKIEBh
YnN0cmFjdCBTZXQgYSBwcm9wZXJ0eSBvbiBhIEpTVmFsdWUuCiBAZGlzY3Vzc2lvbiBDb3JyZXNw
b25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+b2JqZWN0W3Byb3BlcnR5XSA9
IHZhbHVlPC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNh
biBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRo
ZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9j
b2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBl
Y3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogKi8KLS0gKHZvaWQpc2V0VmFsdWU6KGlkKXZhbHVl
IGZvclByb3BlcnR5OihKU1ZhbHVlUHJvcGVydHkpcHJvcGVydHk7CistICh2b2lkKXNldFZhbHVl
OihudWxsYWJsZSBpZCl2YWx1ZSBmb3JQcm9wZXJ0eToobm9ubnVsbCBKU1ZhbHVlUHJvcGVydHkp
cHJvcGVydHk7CiAKIC8qIQogQG1ldGhvZApAQCAtMzQzLDcgKzM0Myw3IEBAIHR5cGVkZWYgaWQg
SlNWYWx1ZVByb3BlcnR5OwogQHJlc3VsdCBZRVMgaWYgZGVsZXRpb24gaXMgc3VjY2Vzc2Z1bCwg
Tk8gb3RoZXJ3aXNlLgogQGRpc2N1c3Npb24gQ29ycmVzcG9uZHMgdG8gdGhlIEphdmFTY3JpcHQg
b3BlcmF0aW9uIDxjb2RlPmRlbGV0ZSBvYmplY3RbcHJvcGVydHldPC9jb2RlPi4gQWZ0ZXIgbWFj
T1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBi
ZSBjb252ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxj
b2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJB
IGFuZCBpT1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAq
LgogKi8KLS0gKEJPT0wpZGVsZXRlUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsK
Ky0gKEJPT0wpZGVsZXRlUHJvcGVydHk6KG5vbm51bGwgSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5
OwogCiAvKiEKIEBtZXRob2QKQEAgLTM1Miw3ICszNTIsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQ
cm9wZXJ0eTsKIEByZXN1bHQgUmV0dXJucyBZRVMgaWYgcHJvcGVydHkgaXMgcHJlc2VudCBvbiB0
aGUgdmFsdWUuCiBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVy
YXRpb24gPGNvZGU+cHJvcGVydHkgaW4gb2JqZWN0PC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJBIGFu
ZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0
ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVl
V2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1Mg
VEJBLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogKi8KLS0g
KEJPT0wpaGFzUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKKy0gKEJPT0wpaGFz
UHJvcGVydHk6KG5vbm51bGwgSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OwogCiAvKiEKIEBtZXRo
b2QKQEAgLTM2MCw3ICszNjAsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBkaXNj
dXNzaW9uIFRoaXMgbWV0aG9kIG1heSBiZSB1c2VkIHRvIGNyZWF0ZSBhIGRhdGEgb3IgYWNjZXNz
b3IgcHJvcGVydHkgb24gYW4gb2JqZWN0LgogIFRoaXMgbWV0aG9kIG9wZXJhdGVzIGluIGFjY29y
ZGFuY2Ugd2l0aCB0aGUgT2JqZWN0LmRlZmluZVByb3BlcnR5IG1ldGhvZCBpbiB0aGUgSmF2YVNj
cmlwdCBsYW5ndWFnZS4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNh
biBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRo
ZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9j
b2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBl
Y3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogKi8KLS0gKHZvaWQpZGVmaW5lUHJvcGVydHk6KEpT
VmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eSBkZXNjcmlwdG9yOihpZClkZXNjcmlwdG9yOworLSAodm9p
ZClkZWZpbmVQcm9wZXJ0eToobm9ubnVsbCBKU1ZhbHVlUHJvcGVydHkpcHJvcGVydHkgZGVzY3Jp
cHRvcjoobnVsbGFibGUgaWQpZGVzY3JpcHRvcjsKIAogLyohCiBAbWV0aG9kCkBAIC0zNjgsNyAr
MzY4LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IFRoZSBKU1ZhbHVl
IGZvciB0aGUgcHJvcGVydHkgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4gCiAgUmV0dXJucyB0aGUg
SmF2YVNjcmlwdCB2YWx1ZSA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGlmIG5vIHByb3BlcnR5IGV4
aXN0cyBhdCB0aGF0IGluZGV4LiAKICovCi0tIChKU1ZhbHVlICopdmFsdWVBdEluZGV4OihOU1VJ
bnRlZ2VyKWluZGV4OworLSAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVBdEluZGV4OihOU1VJbnRl
Z2VyKWluZGV4OwogCiAvKiEKIEBtZXRob2QKQEAgLTM3Niw3ICszNzYsNyBAQCB0eXBlZGVmIGlk
IEpTVmFsdWVQcm9wZXJ0eTsKIEBkaXNjdXNzaW9uIEZvciBKU1ZhbHVlcyB0aGF0IGFyZSBKYXZh
U2NyaXB0IGFycmF5cywgaW5kaWNlcyBncmVhdGVyIHRoYW4gCiAgVUlOVF9NQVggLSAxIHdpbGwg
bm90IGFmZmVjdCB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheS4KICovCi0tICh2b2lkKXNldFZhbHVl
OihpZCl2YWx1ZSBhdEluZGV4OihOU1VJbnRlZ2VyKWluZGV4OworLSAodm9pZClzZXRWYWx1ZToo
bnVsbGFibGUgaWQpdmFsdWUgYXRJbmRleDooTlNVSW50ZWdlcilpbmRleDsKIAogLyohCiBAZnVu
Y3Rpb25ncm91cCBDaGVja2luZyBKYXZhU2NyaXB0IFR5cGVzCkBAIC00NDMsMTMgKzQ0MywxMyBA
QCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBtZXRob2QKIEBhYnN0cmFjdCBDb21wYXJl
IHR3byBKU1ZhbHVlcyB1c2luZyBKYXZhU2NyaXB0J3MgPGNvZGU+PT09PC9jb2RlPiBvcGVyYXRv
ci4KICovCi0tIChCT09MKWlzRXF1YWxUb09iamVjdDooaWQpdmFsdWU7CistIChCT09MKWlzRXF1
YWxUb09iamVjdDoobnVsbGFibGUgaWQpdmFsdWU7CiAKIC8qIQogQG1ldGhvZAogQGFic3RyYWN0
IENvbXBhcmUgdHdvIEpTVmFsdWVzIHVzaW5nIEphdmFTY3JpcHQncyA8Y29kZT49PTwvY29kZT4g
b3BlcmF0b3IuCiAqLwotLSAoQk9PTClpc0VxdWFsV2l0aFR5cGVDb2VyY2lvblRvT2JqZWN0Oihp
ZCl2YWx1ZTsKKy0gKEJPT0wpaXNFcXVhbFdpdGhUeXBlQ29lcmNpb25Ub09iamVjdDoobnVsbGFi
bGUgaWQpdmFsdWU7CiAKIC8qIQogQG1ldGhvZApAQCAtNDU4LDcgKzQ1OCw3IEBAIHR5cGVkZWYg
aWQgSlNWYWx1ZVByb3BlcnR5OwogIElmIGFuIG9iamVjdCBvdGhlciB0aGFuIGEgSlNWYWx1ZSBp
cyBwYXNzZWQsIGl0IHdpbGwgZmlyc3QgYmUgY29udmVydGVkIGFjY29yZGluZyB0bwogIHRoZSBh
Zm9yZW1lbnRpb25lZCBydWxlcy4KICovCi0tIChCT09MKWlzSW5zdGFuY2VPZjooaWQpdmFsdWU7
CistIChCT09MKWlzSW5zdGFuY2VPZjoobnVsbGFibGUgaWQpdmFsdWU7CiAKIC8qIQogQG1ldGhv
ZGdyb3VwIENhbGxpbmcgRnVuY3Rpb25zIGFuZCBDb25zdHJ1Y3RvcnMKQEAgLTQ3MSw3ICs0NzEs
NyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBhcmd1bWVudHMgVGhlIGFy
Z3VtZW50cyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbi4KIEByZXN1bHQgVGhlIHJldHVybiB2YWx1
ZSBvZiB0aGUgZnVuY3Rpb24gY2FsbC4gCiAqLwotLSAoSlNWYWx1ZSAqKWNhbGxXaXRoQXJndW1l
bnRzOihOU0FycmF5ICopYXJndW1lbnRzOworLSAobm9ubnVsbCBKU1ZhbHVlICopY2FsbFdpdGhB
cmd1bWVudHM6KG51bGxhYmxlIE5TQXJyYXkgKilhcmd1bWVudHM7CiAKIC8qIQogQG1ldGhvZApA
QCAtNDgwLDcgKzQ4MCw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGFy
Z3VtZW50cyBUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNvbnN0cnVjdG9yLgogQHJlc3Vs
dCBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjb25zdHJ1Y3RvciBjYWxsLgogKi8KLS0gKEpTVmFs
dWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzOworLSAobm9u
bnVsbCBKU1ZhbHVlICopY29uc3RydWN0V2l0aEFyZ3VtZW50czoobnVsbGFibGUgTlNBcnJheSAq
KWFyZ3VtZW50czsKIAogLyohCiBAbWV0aG9kCkBAIC00OTIsNyArNDkyLDcgQEAgdHlwZWRlZiBp
ZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gYXJndW1lbnRzIFRoZSBhcmd1bWVudHMgdG8gcGFz
cyB0byB0aGUgbWV0aG9kLgogQHJlc3VsdCBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBtZXRob2Qg
Y2FsbC4KICovCi0tIChKU1ZhbHVlICopaW52b2tlTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCB3
aXRoQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzOworLSAobm9ubnVsbCBKU1ZhbHVlICop
aW52b2tlTWV0aG9kOihub25udWxsIE5TU3RyaW5nICopbWV0aG9kIHdpdGhBcmd1bWVudHM6KG51
bGxhYmxlIE5TQXJyYXkgKilhcmd1bWVudHM7CiAKIEBlbmQKIApAQCAtNTE1LDcgKzUxNSw3IEBA
IHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQHJlc3VsdCBBIG5ld2x5IGFsbG9jYXRlZCBK
YXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMKICBuYW1lZCA8Y29kZT54PC9j
b2RlPiBhbmQgPGNvZGU+eTwvY29kZT4sIHdpdGggdmFsdWVzIGZyb20gdGhlIENHUG9pbnQuCiAq
LwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aFBvaW50OihDR1BvaW50KXBvaW50IGluQ29udGV4dDoo
SlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFBvaW50
OihDR1BvaW50KXBvaW50IGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0Owog
CiAvKiEKIEBtZXRob2QKQEAgLTUyMyw3ICs1MjMsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9w
ZXJ0eTsKIEByZXN1bHQgQSBuZXdseSBhbGxvY2F0ZWQgSmF2YVNjcmlwdCBvYmplY3QgY29udGFp
bmluZyBwcm9wZXJ0aWVzCiAgbmFtZWQgPGNvZGU+bG9jYXRpb248L2NvZGU+IGFuZCA8Y29kZT5s
ZW5ndGg8L2NvZGU+LCB3aXRoIHZhbHVlcyBmcm9tIHRoZSBOU1JhbmdlLgogKi8KLSsgKEpTVmFs
dWUgKil2YWx1ZVdpdGhSYW5nZTooTlNSYW5nZSlyYW5nZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAq
KWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhSYW5nZTooTlNSYW5nZSly
YW5nZSBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0
aG9kCkBAIC01MzIsNyArNTMyLDcgQEAgQ3JlYXRlIGEgSlNWYWx1ZSBmcm9tIGEgQ0dSZWN0Lgog
QHJlc3VsdCBBIG5ld2x5IGFsbG9jYXRlZCBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHBy
b3BlcnRpZXMKICBuYW1lZCA8Y29kZT54PC9jb2RlPiwgPGNvZGU+eTwvY29kZT4sIDxjb2RlPndp
ZHRoPC9jb2RlPiwgYW5kIDxjb2RlPmhlaWdodDwvY29kZT4sIHdpdGggdmFsdWVzIGZyb20gdGhl
IENHUmVjdC4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoUmVjdDooQ0dSZWN0KXJlY3QgaW5D
b250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVX
aXRoUmVjdDooQ0dSZWN0KXJlY3QgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRl
eHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtNTQwLDcgKzU0MCw3IEBAIENyZWF0ZSBhIEpTVmFsdWUg
ZnJvbSBhIENHUmVjdC4KIEByZXN1bHQgQSBuZXdseSBhbGxvY2F0ZWQgSmF2YVNjcmlwdCBvYmpl
Y3QgY29udGFpbmluZyBwcm9wZXJ0aWVzCiAgbmFtZWQgPGNvZGU+d2lkdGg8L2NvZGU+IGFuZCA8
Y29kZT5oZWlnaHQ8L2NvZGU+LCB3aXRoIHZhbHVlcyBmcm9tIHRoZSBDR1NpemUuCiAqLwotKyAo
SlNWYWx1ZSAqKXZhbHVlV2l0aFNpemU6KENHU2l6ZSlzaXplIGluQ29udGV4dDooSlNDb250ZXh0
ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFNpemU6KENHU2l6ZSlz
aXplIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRo
b2QKQEAgLTYwMSwxMCArNjAxLDEwIEBAIENyZWF0ZSBhIEpTVmFsdWUgZnJvbSBhIENHUmVjdC4K
ICovCiBAaW50ZXJmYWNlIEpTVmFsdWUgKFN1YnNjcmlwdFN1cHBvcnQpCiAKLS0gKEpTVmFsdWUg
KilvYmplY3RGb3JLZXllZFN1YnNjcmlwdDooSlNWYWx1ZVByb3BlcnR5KWtleTsKLS0gKEpTVmFs
dWUgKilvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6KE5TVUludGVnZXIpaW5kZXg7Ci0tICh2b2lk
KXNldE9iamVjdDooaWQpb2JqZWN0IGZvcktleWVkU3Vic2NyaXB0OihKU1ZhbHVlUHJvcGVydHkp
a2V5OwotLSAodm9pZClzZXRPYmplY3Q6KGlkKW9iamVjdCBhdEluZGV4ZWRTdWJzY3JpcHQ6KE5T
VUludGVnZXIpaW5kZXg7CistIChub25udWxsIEpTVmFsdWUgKilvYmplY3RGb3JLZXllZFN1YnNj
cmlwdDoobnVsbGFibGUgSlNWYWx1ZVByb3BlcnR5KWtleTsKKy0gKG5vbm51bGwgSlNWYWx1ZSAq
KW9iamVjdEF0SW5kZXhlZFN1YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsKKy0gKHZvaWQpc2V0
T2JqZWN0OihudWxsYWJsZSBpZClvYmplY3QgZm9yS2V5ZWRTdWJzY3JpcHQ6KG51bGxhYmxlIEpT
VmFsdWVQcm9wZXJ0eSlrZXk7CistICh2b2lkKXNldE9iamVjdDoobnVsbGFibGUgaWQpb2JqZWN0
IGF0SW5kZXhlZFN1YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsKIAogQGVuZAogCkBAIC02MTks
MTQgKzYxOSwxNCBAQCBDcmVhdGUgYSBKU1ZhbHVlIGZyb20gYSBDR1JlY3QuCiBAYWJzdHJhY3Qg
Q3JlYXRlcyBhIEpTVmFsdWUsIHdyYXBwaW5nIGl0cyBDIEFQSSBjb3VudGVycGFydC4KIEByZXN1
bHQgVGhlIE9iamVjdGl2ZS1DIEFQSSBlcXVpdmFsZW50IG9mIHRoZSBzcGVjaWZpZWQgSlNWYWx1
ZVJlZi4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoSlNWYWx1ZVJlZjooSlNWYWx1ZVJlZil2
YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUg
Kil2YWx1ZVdpdGhKU1ZhbHVlUmVmOihub25udWxsIEpTVmFsdWVSZWYpdmFsdWUgaW5Db250ZXh0
Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQHByb3BlcnR5CiBAYWJzdHJh
Y3QgUmV0dXJucyB0aGUgQyBBUEkgY291bnRlcnBhcnQgd3JhcHBlZCBieSBhIEpTQ29udGV4dC4K
IEByZXN1bHQgVGhlIEMgQVBJIGVxdWl2YWxlbnQgb2YgdGhpcyBKU1ZhbHVlLgogKi8KLUBwcm9w
ZXJ0eSAocmVhZG9ubHkpIEpTVmFsdWVSZWYgSlNWYWx1ZVJlZjsKK0Bwcm9wZXJ0eSAocmVhZG9u
bHksIG5vbm51bGwpIEpTVmFsdWVSZWYgSlNWYWx1ZVJlZjsKIEBlbmQKIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCkBAIC02NjUsMjcgKzY2NSwyNyBAQCBleHRlcm4gIkMiIHsKIC8qIQogQGNvbnN0IAog
Ki8KLUpTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBKU1Byb3BlcnR5RGVzY3JpcHRv
cldyaXRhYmxlS2V5OworSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9Ob25udWxs
IEpTUHJvcGVydHlEZXNjcmlwdG9yV3JpdGFibGVLZXk7CiAvKiEKIEBjb25zdCAKICovCi1KU19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JFbnVtZXJh
YmxlS2V5OworSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9Ob25udWxsIEpTUHJv
cGVydHlEZXNjcmlwdG9yRW51bWVyYWJsZUtleTsKIC8qIQogQGNvbnN0IAogKi8KLUpTX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBKU1Byb3BlcnR5RGVzY3JpcHRvckNvbmZpZ3VyYWJs
ZUtleTsKK0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVsbCBKU1Byb3Bl
cnR5RGVzY3JpcHRvckNvbmZpZ3VyYWJsZUtleTsKIC8qIQogQGNvbnN0IAogKi8KLUpTX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBKU1Byb3BlcnR5RGVzY3JpcHRvclZhbHVlS2V5Owor
SlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9Ob25udWxsIEpTUHJvcGVydHlEZXNj
cmlwdG9yVmFsdWVLZXk7CiAvKiEKIEBjb25zdCAKICovCi1KU19FWFBPUlQgZXh0ZXJuIE5TU3Ry
aW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JHZXRLZXk7CitKU19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX05vbm51bGwgSlNQcm9wZXJ0eURlc2NyaXB0b3JHZXRLZXk7CiAv
KiEKIEBjb25zdCAKICovCi1KU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9w
ZXJ0eURlc2NyaXB0b3JTZXRLZXk7CitKU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
X05vbm51bGwgSlNQcm9wZXJ0eURlc2NyaXB0b3JTZXRLZXk7CiAKICNpZmRlZiBfX2NwbHVzcGx1
cwogfSAvLyBleHRlcm4gIkMiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348306</attachid>
            <date>2018-08-28 10:28:54 -0700</date>
            <delta_ts>2018-08-28 10:33:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189047-20180828102853.patch</filename>
            <type>text/plain</type>
            <size>16839</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTg5OGNkZmFhNmFhMWUyZmFmNDM5NTU2OGJhYTRiZTE1Njc0YzI2Li40YjhlNzQ2ODhjZjg2NDg3
YTNhOGVkMTg5OTY2MjU4YWRmNmQ5OTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0wOC0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgbnVsbGFibGl0eSBhdHRyaWJ1dGVzIHRvIEpTVmFsdWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA0NworCisg
ICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogQVBJL0pTVmFs
dWUuaDoKKwogMjAxOC0wOC0yNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3Rh
cnQub3JnPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gUGFyc2Ugd2FzbSBtb2R1bGVzIGluIGEg
c3RyZWFtaW5nIGZhc2hpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgKaW5kZXggNTUy
ZDQ3MGNhZTcxMTNmOTg4NmFkODFjNTQwMWJlNTk5MWUxNmNlMC4uYmYyODU1NzYyMzg3OTlkNDlk
YjAzMjk0ZWI1ODM4ZmM2YmUyMzAzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgK
QEAgLTU3LDcgKzU3LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcHJvcGVydHkK
IEBhYnN0cmFjdCBUaGUgSlNDb250ZXh0IHRoYXQgdGhpcyB2YWx1ZSBvcmlnaW5hdGVzIGZyb20u
CiAqLwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBKU0NvbnRleHQgKmNvbnRleHQ7CitA
cHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcsIG5vbm51bGwpIEpTQ29udGV4dCAqY29udGV4dDsK
IAogLyohCiBAbWV0aG9kZ3JvdXAgQ3JlYXRpbmcgSmF2YVNjcmlwdCBWYWx1ZXMKQEAgLTY5LDcg
KzY5LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gdmFsdWUgVGhlIE9i
amVjdGl2ZS1DIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1
ZS4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoT2JqZWN0OihpZCl2YWx1ZSBpbkNvbnRleHQ6
KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhPYmpl
Y3Q6KG51bGxhYmxlIGlkKXZhbHVlIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250
ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTc3LDcgKzc3LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1
bHRpbmcgSlNWYWx1ZSB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSBy
ZXByZXNlbnRpbmcgdGhlIGVxdWl2YWxlbnQgYm9vbGVhbiB2YWx1ZS4KICovCi0rIChKU1ZhbHVl
ICopdmFsdWVXaXRoQm9vbDooQk9PTCl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRl
eHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhCb29sOihCT09MKXZhbHVlIGluQ29u
dGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTg1
LDcgKzg1LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBU
aGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSB3aWxsIGJlIGNyZWF0
ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGVxdWl2YWxlbnQg
Ym9vbGVhbiB2YWx1ZS4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoRG91YmxlOihkb3VibGUp
dmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVl
ICopdmFsdWVXaXRoRG91YmxlOihkb3VibGUpdmFsdWUgaW5Db250ZXh0Oihub25udWxsIEpTQ29u
dGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtOTMsNyArOTMsNyBAQCB0eXBlZGVm
IGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hp
Y2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5l
dyBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgZXF1aXZhbGVudCBib29sZWFuIHZhbHVlLgogKi8K
LSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhJbnQzMjooaW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KEpT
Q29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhJbnQzMjoo
aW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAog
LyohCiBAbWV0aG9kCkBAIC0xMDEsNyArMTAxLDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVy
dHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcg
SlNWYWx1ZSB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSByZXByZXNl
bnRpbmcgdGhlIGVxdWl2YWxlbnQgYm9vbGVhbiB2YWx1ZS4KICovCi0rIChKU1ZhbHVlICopdmFs
dWVXaXRoVUludDMyOih1aW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRl
eHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhVSW50MzI6KHVpbnQzMl90KXZhbHVl
IGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QK
QEAgLTEwOSw3ICsxMDksNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBj
b250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBi
ZSBjcmVhdGVkLgogQHJlc3VsdCBUaGUgbmV3IEphdmFTY3JpcHQgb2JqZWN0LgogKi8KLSsgKEpT
VmFsdWUgKil2YWx1ZVdpdGhOZXdPYmplY3RJbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7
CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdPYmplY3RJbkNvbnRleHQ6KG5vbm51
bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xMTcsNyArMTE3LDcg
QEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250
ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbCBiZSBjcmVhdGVkLgogQHJlc3Vs
dCBUaGUgbmV3IEphdmFTY3JpcHQgYXJyYXkuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5l
d0FycmF5SW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVl
ICopdmFsdWVXaXRoTmV3QXJyYXlJbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4
dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xMjcsNyArMTI3LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1
bHRpbmcgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0
IFRoZSBuZXcgSmF2YVNjcmlwdCByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0LgogKi8KLSsgKEpT
VmFsdWUgKil2YWx1ZVdpdGhOZXdSZWd1bGFyRXhwcmVzc2lvbkZyb21QYXR0ZXJuOihOU1N0cmlu
ZyAqKXBhdHRlcm4gZmxhZ3M6KE5TU3RyaW5nICopZmxhZ3MgaW5Db250ZXh0OihKU0NvbnRleHQg
Kiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoTmV3UmVndWxhckV4cHJl
c3Npb25Gcm9tUGF0dGVybjoobm9ubnVsbCBOU1N0cmluZyAqKXBhdHRlcm4gZmxhZ3M6KG5vbm51
bGwgTlNTdHJpbmcgKilmbGFncyBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4
dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xMzYsNyArMTM2LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1
bHRpbmcgZXJyb3Igb2JqZWN0IHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKYXZh
U2NyaXB0IGVycm9yIG9iamVjdC4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3RXJyb3JG
cm9tTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29u
dGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld0Vycm9yRnJvbU1lc3NhZ2U6
KG5vbm51bGwgTlNTdHJpbmcgKiltZXNzYWdlIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQg
Kiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTE0NCw3ICsxNDQsNyBAQCB0eXBlZGVmIGlk
IEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2gg
dGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCiBAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJl
c2VudGluZyB0aGUgSmF2YVNjcmlwdCB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPi4KICovCi0rIChK
U1ZhbHVlICopdmFsdWVXaXRoTnVsbEluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKysg
KG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE51bGxJbkNvbnRleHQ6KG5vbm51bGwgSlNDb250
ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC0xNTIsNyArMTUyLDcgQEAgdHlwZWRl
ZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRvIHdo
aWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgogQHJlc3VsdCBUaGUgSlNWYWx1ZSBy
ZXByZXNlbnRpbmcgdGhlIEphdmFTY3JpcHQgdmFsdWUgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPi4K
ICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoVW5kZWZpbmVkSW5Db250ZXh0OihKU0NvbnRleHQg
Kiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoVW5kZWZpbmVkSW5Db250
ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogIEBtZXRob2QKQEAgLTE2
MSw3ICsxNjEsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBAcGFyYW0gY29udGV4
dCBUaGUgSlNDb250ZXh0IHRvIHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgog
IEByZXN1bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50aW5nIGEgdW5pcXVlIEphdmFTY3JpcHQgdmFs
dWUgd2l0aCB0eXBlIHN5bWJvbC4KICAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1N5bWJv
bEZyb21EZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBpbkNvbnRleHQ6KEpTQ29u
dGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9z
KEpTQ19JT1NfVEJBKSk7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdTeW1ib2xG
cm9tRGVzY3JpcHRpb246KG5vbm51bGwgTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBpbkNvbnRleHQ6
KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goSlND
X01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKIAogLyohCiBAbWV0aG9kZ3JvdXAgQ29udmVy
dGluZyB0byBPYmplY3RpdmUtQyBUeXBlcwpAQCAtMjE2LDcgKzIxNiw3IEBAIHR5cGVkZWYgaWQg
SlNWYWx1ZVByb3BlcnR5OwogIHRvIHRoZSBjb252ZXJzaW9uIHJ1bGVzIHNwZWNpZmllZCBhYm92
ZS4KIEByZXN1bHQgVGhlIE9iamVjdGl2ZS1DIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSlNWYWx1
ZS4KICovCi0tIChpZCl0b09iamVjdDsKKy0gKG51bGxhYmxlIGlkKXRvT2JqZWN0OwogCiAvKiEK
IEBtZXRob2QKQEAgLTIyNSw3ICsyMjUsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsK
ICBJZiB0aGUgcmVzdWx0IGlzIG5vdCBvZiB0aGUgc3BlY2lmaWVkIENsYXNzIHRoZW4gPGNvZGU+
bmlsPC9jb2RlPiB3aWxsIGJlIHJldHVybmVkLgogQHJlc3VsdCBBbiBPYmplY3RpdmUtQyBvYmpl
Y3Qgb2YgdGhlIHNwZWNpZmllZCBDbGFzcyBvciA8Y29kZT5uaWw8L2NvZGU+LgogKi8KLS0gKGlk
KXRvT2JqZWN0T2ZDbGFzczooQ2xhc3MpZXhwZWN0ZWRDbGFzczsKKy0gKG51bGxhYmxlIGlkKXRv
T2JqZWN0T2ZDbGFzczoobm9ubnVsbCBDbGFzcylleHBlY3RlZENsYXNzOwogCiAvKiEKIEBtZXRo
b2QKQEAgLTI3MSw3ICsyNzEsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICB0byB0
aGUgcnVsZXMgc3BlY2lmaWVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlLgogQHJlc3VsdCBU
aGUgTlNOdW1iZXIgcmVzdWx0IG9mIHRoZSBjb252ZXJzaW9uLgogKi8KLS0gKE5TTnVtYmVyICop
dG9OdW1iZXI7CistIChudWxsYWJsZSBOU051bWJlciAqKXRvTnVtYmVyOwogCiAvKiEKIEBtZXRo
b2QKQEAgLTI4MCw3ICsyODAsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBieSB0
aGUgSmF2YVNjcmlwdCBsYW5ndWFnZS4KIEByZXN1bHQgVGhlIE5TU3RyaW5nIGNvbnRhaW5pbmcg
dGhlIHJlc3VsdCBvZiB0aGUgY29udmVyc2lvbi4KICovCi0tIChOU1N0cmluZyAqKXRvU3RyaW5n
OworLSAobnVsbGFibGUgTlNTdHJpbmcgKil0b1N0cmluZzsKIAogLyohCiBAbWV0aG9kCkBAIC0y
ODksNyArMjg5LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiAgc2luY2UgMTk3MCB3
aGljaCBpcyB0aGVuIHVzZWQgdG8gY3JlYXRlIGEgbmV3IE5TRGF0ZSBpbnN0YW5jZS4KIEByZXN1
bHQgVGhlIE5TRGF0ZSBjcmVhdGVkIHVzaW5nIHRoZSBjb252ZXJ0ZWQgdGltZSBpbnRlcnZhbC4K
ICovCi0tIChOU0RhdGUgKil0b0RhdGU7CistIChudWxsYWJsZSBOU0RhdGUgKil0b0RhdGU7CiAK
IC8qIQogQG1ldGhvZApAQCAtMzAzLDcgKzMwMyw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3Bl
cnR5OwogQHJlc3VsdCBUaGUgTlNBcnJheSBjb250YWluaW5nIHRoZSByZWN1cnNpdmVseSBjb252
ZXJ0ZWQgY29udGVudHMgb2YgdGhlIAogIGNvbnZlcnRlZCBKYXZhU2NyaXB0IGFycmF5LgogKi8K
LS0gKE5TQXJyYXkgKil0b0FycmF5OworLSAobnVsbGFibGUgTlNBcnJheSAqKXRvQXJyYXk7CiAK
IC8qIQogQG1ldGhvZApAQCAtMzE1LDcgKzMxNSw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3Bl
cnR5OwogQHJlc3VsdCBUaGUgTlNEaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIHJlY3Vyc2l2ZWx5
IGNvbnZlcnRlZCBjb250ZW50cyBvZgogIHRoZSBjb252ZXJ0ZWQgSmF2YVNjcmlwdCBvYmplY3Qu
CiAqLwotLSAoTlNEaWN0aW9uYXJ5ICopdG9EaWN0aW9uYXJ5OworLSAobnVsbGFibGUgTlNEaWN0
aW9uYXJ5ICopdG9EaWN0aW9uYXJ5OwogCiAvKiEKIEBtZXRob2Rncm91cCBBY2Nlc3NpbmcgUHJv
cGVydGllcwpAQCAtMzI4LDE0ICszMjgsMTQgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7
CiAgaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0LgogQGRpc2N1c3Npb24gQ29ycmVzcG9u
ZHMgdG8gdGhlIEphdmFTY3JpcHQgb3BlcmF0aW9uIDxjb2RlPm9iamVjdFtwcm9wZXJ0eV08L2Nv
ZGU+LiBBZnRlciBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAn
aWQnIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNp
b24gcnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlv
ciB0byBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJl
IGFuIE5TU3RyaW5nICouCiAqLwotLSAoSlNWYWx1ZSAqKXZhbHVlRm9yUHJvcGVydHk6KEpTVmFs
dWVQcm9wZXJ0eSlwcm9wZXJ0eTsKKy0gKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlRm9yUHJvcGVy
dHk6KG51bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKIAogLyohCiBAbWV0aG9kCiBA
YWJzdHJhY3QgU2V0IGEgcHJvcGVydHkgb24gYSBKU1ZhbHVlLgogQGRpc2N1c3Npb24gQ29ycmVz
cG9uZHMgdG8gdGhlIEphdmFTY3JpcHQgb3BlcmF0aW9uIDxjb2RlPm9iamVjdFtwcm9wZXJ0eV0g
PSB2YWx1ZTwvY29kZT4uIEFmdGVyIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyBj
YW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNWYWx1ZSB1c2luZyB0
aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0Ojwv
Y29kZT4uIFByaW9yIHRvIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyB3YXMgZXhw
ZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KICovCi0tICh2b2lkKXNldFZhbHVlOihpZCl2YWx1
ZSBmb3JQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OworLSAodm9pZClzZXRWYWx1
ZToobnVsbGFibGUgaWQpdmFsdWUgZm9yUHJvcGVydHk6KG51bGxhYmxlIEpTVmFsdWVQcm9wZXJ0
eSlwcm9wZXJ0eTsKIAogLyohCiBAbWV0aG9kCkBAIC0zNDMsNyArMzQzLDcgQEAgdHlwZWRlZiBp
ZCBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IFlFUyBpZiBkZWxldGlvbiBpcyBzdWNjZXNzZnVs
LCBOTyBvdGhlcndpc2UuCiBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlw
dCBvcGVyYXRpb24gPGNvZGU+ZGVsZXRlIG9iamVjdFtwcm9wZXJ0eV08L2NvZGU+LiBBZnRlciBt
YWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAnaWQnIGFuZCB3aWxs
IGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNpb24gcnVsZXMgb2Yg
PGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlvciB0byBtYWNPUyBU
QkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5n
ICouCiAqLwotLSAoQk9PTClkZWxldGVQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5
OworLSAoQk9PTClkZWxldGVQcm9wZXJ0eToobnVsbGFibGUgSlNWYWx1ZVByb3BlcnR5KXByb3Bl
cnR5OwogCiAvKiEKIEBtZXRob2QKQEAgLTM1Miw3ICszNTIsNyBAQCB0eXBlZGVmIGlkIEpTVmFs
dWVQcm9wZXJ0eTsKIEByZXN1bHQgUmV0dXJucyBZRVMgaWYgcHJvcGVydHkgaXMgcHJlc2VudCBv
biB0aGUgdmFsdWUuCiBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBv
cGVyYXRpb24gPGNvZGU+cHJvcGVydHkgaW4gb2JqZWN0PC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJB
IGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252
ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZh
bHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBp
T1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogKi8K
LS0gKEJPT0wpaGFzUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKKy0gKEJPT0wp
aGFzUHJvcGVydHk6KG51bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKIAogLyohCiBA
bWV0aG9kCkBAIC0zNjAsNyArMzYwLDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBA
ZGlzY3Vzc2lvbiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNlZCB0byBjcmVhdGUgYSBkYXRhIG9yIGFj
Y2Vzc29yIHByb3BlcnR5IG9uIGFuIG9iamVjdC4KICBUaGlzIG1ldGhvZCBvcGVyYXRlcyBpbiBh
Y2NvcmRhbmNlIHdpdGggdGhlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBtZXRob2QgaW4gdGhlIEph
dmFTY3JpcHQgbGFuZ3VhZ2UuIEFmdGVyIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5
JyBjYW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNWYWx1ZSB1c2lu
ZyB0aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0
OjwvY29kZT4uIFByaW9yIHRvIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyB3YXMg
ZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KICovCi0tICh2b2lkKWRlZmluZVByb3BlcnR5
OihKU1ZhbHVlUHJvcGVydHkpcHJvcGVydHkgZGVzY3JpcHRvcjooaWQpZGVzY3JpcHRvcjsKKy0g
KHZvaWQpZGVmaW5lUHJvcGVydHk6KG51bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eSBk
ZXNjcmlwdG9yOihudWxsYWJsZSBpZClkZXNjcmlwdG9yOwogCiAvKiEKIEBtZXRob2QKQEAgLTM2
OCw3ICszNjgsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEByZXN1bHQgVGhlIEpT
VmFsdWUgZm9yIHRoZSBwcm9wZXJ0eSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LiAKICBSZXR1cm5z
IHRoZSBKYXZhU2NyaXB0IHZhbHVlIDxjb2RlPnVuZGVmaW5lZDwvY29kZT4gaWYgbm8gcHJvcGVy
dHkgZXhpc3RzIGF0IHRoYXQgaW5kZXguIAogKi8KLS0gKEpTVmFsdWUgKil2YWx1ZUF0SW5kZXg6
KE5TVUludGVnZXIpaW5kZXg7CistIChub25udWxsIEpTVmFsdWUgKil2YWx1ZUF0SW5kZXg6KE5T
VUludGVnZXIpaW5kZXg7CiAKIC8qIQogQG1ldGhvZApAQCAtMzc2LDcgKzM3Niw3IEBAIHR5cGVk
ZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQGRpc2N1c3Npb24gRm9yIEpTVmFsdWVzIHRoYXQgYXJl
IEphdmFTY3JpcHQgYXJyYXlzLCBpbmRpY2VzIGdyZWF0ZXIgdGhhbiAKICBVSU5UX01BWCAtIDEg
d2lsbCBub3QgYWZmZWN0IHRoZSBsZW5ndGggb2YgdGhlIGFycmF5LgogKi8KLS0gKHZvaWQpc2V0
VmFsdWU6KGlkKXZhbHVlIGF0SW5kZXg6KE5TVUludGVnZXIpaW5kZXg7CistICh2b2lkKXNldFZh
bHVlOihudWxsYWJsZSBpZCl2YWx1ZSBhdEluZGV4OihOU1VJbnRlZ2VyKWluZGV4OwogCiAvKiEK
IEBmdW5jdGlvbmdyb3VwIENoZWNraW5nIEphdmFTY3JpcHQgVHlwZXMKQEAgLTQ0MywxMyArNDQz
LDEzIEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQG1ldGhvZAogQGFic3RyYWN0IENv
bXBhcmUgdHdvIEpTVmFsdWVzIHVzaW5nIEphdmFTY3JpcHQncyA8Y29kZT49PT08L2NvZGU+IG9w
ZXJhdG9yLgogKi8KLS0gKEJPT0wpaXNFcXVhbFRvT2JqZWN0OihpZCl2YWx1ZTsKKy0gKEJPT0wp
aXNFcXVhbFRvT2JqZWN0OihudWxsYWJsZSBpZCl2YWx1ZTsKIAogLyohCiBAbWV0aG9kCiBAYWJz
dHJhY3QgQ29tcGFyZSB0d28gSlNWYWx1ZXMgdXNpbmcgSmF2YVNjcmlwdCdzIDxjb2RlPj09PC9j
b2RlPiBvcGVyYXRvci4KICovCi0tIChCT09MKWlzRXF1YWxXaXRoVHlwZUNvZXJjaW9uVG9PYmpl
Y3Q6KGlkKXZhbHVlOworLSAoQk9PTClpc0VxdWFsV2l0aFR5cGVDb2VyY2lvblRvT2JqZWN0Oihu
dWxsYWJsZSBpZCl2YWx1ZTsKIAogLyohCiBAbWV0aG9kCkBAIC00NTgsNyArNDU4LDcgQEAgdHlw
ZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiAgSWYgYW4gb2JqZWN0IG90aGVyIHRoYW4gYSBKU1Zh
bHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBmaXJzdCBiZSBjb252ZXJ0ZWQgYWNjb3JkaW5nIHRvCiAg
dGhlIGFmb3JlbWVudGlvbmVkIHJ1bGVzLgogKi8KLS0gKEJPT0wpaXNJbnN0YW5jZU9mOihpZCl2
YWx1ZTsKKy0gKEJPT0wpaXNJbnN0YW5jZU9mOihudWxsYWJsZSBpZCl2YWx1ZTsKIAogLyohCiBA
bWV0aG9kZ3JvdXAgQ2FsbGluZyBGdW5jdGlvbnMgYW5kIENvbnN0cnVjdG9ycwpAQCAtNDcxLDcg
KzQ3MSw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGFyZ3VtZW50cyBU
aGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZ1bmN0aW9uLgogQHJlc3VsdCBUaGUgcmV0dXJu
IHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjYWxsLiAKICovCi0tIChKU1ZhbHVlICopY2FsbFdpdGhB
cmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudHM7CistIChub25udWxsIEpTVmFsdWUgKiljYWxs
V2l0aEFyZ3VtZW50czoobnVsbGFibGUgTlNBcnJheSAqKWFyZ3VtZW50czsKIAogLyohCiBAbWV0
aG9kCkBAIC00ODAsNyArNDgwLDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFy
YW0gYXJndW1lbnRzIFRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY29uc3RydWN0b3IuCiBA
cmVzdWx0IFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNvbnN0cnVjdG9yIGNhbGwuCiAqLwotLSAo
SlNWYWx1ZSAqKWNvbnN0cnVjdFdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudHM7Cist
IChub25udWxsIEpTVmFsdWUgKiljb25zdHJ1Y3RXaXRoQXJndW1lbnRzOihudWxsYWJsZSBOU0Fy
cmF5ICopYXJndW1lbnRzOwogCiAvKiEKIEBtZXRob2QKQEAgLTQ5Miw3ICs0OTIsNyBAQCB0eXBl
ZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBhcmd1bWVudHMgVGhlIGFyZ3VtZW50cyB0
byBwYXNzIHRvIHRoZSBtZXRob2QuCiBAcmVzdWx0IFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIG1l
dGhvZCBjYWxsLgogKi8KLS0gKEpTVmFsdWUgKilpbnZva2VNZXRob2Q6KE5TU3RyaW5nICopbWV0
aG9kIHdpdGhBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudHM7CistIChub25udWxsIEpTVmFs
dWUgKilpbnZva2VNZXRob2Q6KG5vbm51bGwgTlNTdHJpbmcgKiltZXRob2Qgd2l0aEFyZ3VtZW50
czoobnVsbGFibGUgTlNBcnJheSAqKWFyZ3VtZW50czsKIAogQGVuZAogCkBAIC01MTUsNyArNTE1
LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IEEgbmV3bHkgYWxsb2Nh
dGVkIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcwogIG5hbWVkIDxjb2Rl
Png8L2NvZGU+IGFuZCA8Y29kZT55PC9jb2RlPiwgd2l0aCB2YWx1ZXMgZnJvbSB0aGUgQ0dQb2lu
dC4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoUG9pbnQ6KENHUG9pbnQpcG9pbnQgaW5Db250
ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRo
UG9pbnQ6KENHUG9pbnQpcG9pbnQgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRl
eHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtNTIzLDcgKzUyMyw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1
ZVByb3BlcnR5OwogQHJlc3VsdCBBIG5ld2x5IGFsbG9jYXRlZCBKYXZhU2NyaXB0IG9iamVjdCBj
b250YWluaW5nIHByb3BlcnRpZXMKICBuYW1lZCA8Y29kZT5sb2NhdGlvbjwvY29kZT4gYW5kIDxj
b2RlPmxlbmd0aDwvY29kZT4sIHdpdGggdmFsdWVzIGZyb20gdGhlIE5TUmFuZ2UuCiAqLwotKyAo
SlNWYWx1ZSAqKXZhbHVlV2l0aFJhbmdlOihOU1JhbmdlKXJhbmdlIGluQ29udGV4dDooSlNDb250
ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFJhbmdlOihOU1Jh
bmdlKXJhbmdlIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEK
IEBtZXRob2QKQEAgLTUzMiw3ICs1MzIsNyBAQCBDcmVhdGUgYSBKU1ZhbHVlIGZyb20gYSBDR1Jl
Y3QuCiBAcmVzdWx0IEEgbmV3bHkgYWxsb2NhdGVkIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5p
bmcgcHJvcGVydGllcwogIG5hbWVkIDxjb2RlPng8L2NvZGU+LCA8Y29kZT55PC9jb2RlPiwgPGNv
ZGU+d2lkdGg8L2NvZGU+LCBhbmQgPGNvZGU+aGVpZ2h0PC9jb2RlPiwgd2l0aCB2YWx1ZXMgZnJv
bSB0aGUgQ0dSZWN0LgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhSZWN0OihDR1JlY3QpcmVj
dCBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2
YWx1ZVdpdGhSZWN0OihDR1JlY3QpcmVjdCBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICop
Y29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC01NDAsNyArNTQwLDcgQEAgQ3JlYXRlIGEgSlNW
YWx1ZSBmcm9tIGEgQ0dSZWN0LgogQHJlc3VsdCBBIG5ld2x5IGFsbG9jYXRlZCBKYXZhU2NyaXB0
IG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMKICBuYW1lZCA8Y29kZT53aWR0aDwvY29kZT4g
YW5kIDxjb2RlPmhlaWdodDwvY29kZT4sIHdpdGggdmFsdWVzIGZyb20gdGhlIENHU2l6ZS4KICov
Ci0rIChKU1ZhbHVlICopdmFsdWVXaXRoU2l6ZTooQ0dTaXplKXNpemUgaW5Db250ZXh0OihKU0Nv
bnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoU2l6ZTooQ0dT
aXplKXNpemUgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQog
QG1ldGhvZApAQCAtNjAxLDEwICs2MDEsMTAgQEAgQ3JlYXRlIGEgSlNWYWx1ZSBmcm9tIGEgQ0dS
ZWN0LgogKi8KIEBpbnRlcmZhY2UgSlNWYWx1ZSAoU3Vic2NyaXB0U3VwcG9ydCkKIAotLSAoSlNW
YWx1ZSAqKW9iamVjdEZvcktleWVkU3Vic2NyaXB0OihKU1ZhbHVlUHJvcGVydHkpa2V5OwotLSAo
SlNWYWx1ZSAqKW9iamVjdEF0SW5kZXhlZFN1YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsKLS0g
KHZvaWQpc2V0T2JqZWN0OihpZClvYmplY3QgZm9yS2V5ZWRTdWJzY3JpcHQ6KEpTVmFsdWVQcm9w
ZXJ0eSlrZXk7Ci0tICh2b2lkKXNldE9iamVjdDooaWQpb2JqZWN0IGF0SW5kZXhlZFN1YnNjcmlw
dDooTlNVSW50ZWdlcilpbmRleDsKKy0gKG5vbm51bGwgSlNWYWx1ZSAqKW9iamVjdEZvcktleWVk
U3Vic2NyaXB0OihudWxsYWJsZSBKU1ZhbHVlUHJvcGVydHkpa2V5OworLSAobm9ubnVsbCBKU1Zh
bHVlICopb2JqZWN0QXRJbmRleGVkU3Vic2NyaXB0OihOU1VJbnRlZ2VyKWluZGV4OworLSAodm9p
ZClzZXRPYmplY3Q6KG51bGxhYmxlIGlkKW9iamVjdCBmb3JLZXllZFN1YnNjcmlwdDoobnVsbGFi
bGUgSlNWYWx1ZVByb3BlcnR5KWtleTsKKy0gKHZvaWQpc2V0T2JqZWN0OihudWxsYWJsZSBpZClv
YmplY3QgYXRJbmRleGVkU3Vic2NyaXB0OihOU1VJbnRlZ2VyKWluZGV4OwogCiBAZW5kCiAKQEAg
LTYxOSwxNCArNjE5LDE0IEBAIENyZWF0ZSBhIEpTVmFsdWUgZnJvbSBhIENHUmVjdC4KIEBhYnN0
cmFjdCBDcmVhdGVzIGEgSlNWYWx1ZSwgd3JhcHBpbmcgaXRzIEMgQVBJIGNvdW50ZXJwYXJ0Lgog
QHJlc3VsdCBUaGUgT2JqZWN0aXZlLUMgQVBJIGVxdWl2YWxlbnQgb2YgdGhlIHNwZWNpZmllZCBK
U1ZhbHVlUmVmLgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhKU1ZhbHVlUmVmOihKU1ZhbHVl
UmVmKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNW
YWx1ZSAqKXZhbHVlV2l0aEpTVmFsdWVSZWY6KG5vbm51bGwgSlNWYWx1ZVJlZil2YWx1ZSBpbkNv
bnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBAcHJvcGVydHkKIEBh
YnN0cmFjdCBSZXR1cm5zIHRoZSBDIEFQSSBjb3VudGVycGFydCB3cmFwcGVkIGJ5IGEgSlNDb250
ZXh0LgogQHJlc3VsdCBUaGUgQyBBUEkgZXF1aXZhbGVudCBvZiB0aGlzIEpTVmFsdWUuCiAqLwot
QHByb3BlcnR5IChyZWFkb25seSkgSlNWYWx1ZVJlZiBKU1ZhbHVlUmVmOworQHByb3BlcnR5IChy
ZWFkb25seSwgbm9ubnVsbCkgSlNWYWx1ZVJlZiBKU1ZhbHVlUmVmOwogQGVuZAogCiAjaWZkZWYg
X19jcGx1c3BsdXMKQEAgLTY2NSwyNyArNjY1LDI3IEBAIGV4dGVybiAiQyIgewogLyohCiBAY29u
c3QgCiAqLwotSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEpTUHJvcGVydHlEZXNj
cmlwdG9yV3JpdGFibGVLZXk7CitKU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX05v
bm51bGwgSlNQcm9wZXJ0eURlc2NyaXB0b3JXcml0YWJsZUtleTsKIC8qIQogQGNvbnN0IAogKi8K
LUpTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBKU1Byb3BlcnR5RGVzY3JpcHRvckVu
dW1lcmFibGVLZXk7CitKU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX05vbm51bGwg
SlNQcm9wZXJ0eURlc2NyaXB0b3JFbnVtZXJhYmxlS2V5OwogLyohCiBAY29uc3QgCiAqLwotSlNf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEpTUHJvcGVydHlEZXNjcmlwdG9yQ29uZmln
dXJhYmxlS2V5OworSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9Ob25udWxsIEpT
UHJvcGVydHlEZXNjcmlwdG9yQ29uZmlndXJhYmxlS2V5OwogLyohCiBAY29uc3QgCiAqLwotSlNf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEpTUHJvcGVydHlEZXNjcmlwdG9yVmFsdWVL
ZXk7CitKU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX05vbm51bGwgSlNQcm9wZXJ0
eURlc2NyaXB0b3JWYWx1ZUtleTsKIC8qIQogQGNvbnN0IAogKi8KLUpTX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBKU1Byb3BlcnR5RGVzY3JpcHRvckdldEtleTsKK0pTX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVsbCBKU1Byb3BlcnR5RGVzY3JpcHRvckdldEtl
eTsKIC8qIQogQGNvbnN0IAogKi8KLUpTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBK
U1Byb3BlcnR5RGVzY3JpcHRvclNldEtleTsKK0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfTm9ubnVsbCBKU1Byb3BlcnR5RGVzY3JpcHRvclNldEtleTsKIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9IC8vIGV4dGVybiAiQyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348308</attachid>
            <date>2018-08-28 10:34:04 -0700</date>
            <delta_ts>2018-08-28 12:00:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189047-20180828103401.patch</filename>
            <type>text/plain</type>
            <size>16094</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTg5OGNkZmFhNmFhMWUyZmFmNDM5NTU2OGJhYTRiZTE1Njc0YzI2Li40YjhlNzQ2ODhjZjg2NDg3
YTNhOGVkMTg5OTY2MjU4YWRmNmQ5OTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0wOC0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgbnVsbGFibGl0eSBhdHRyaWJ1dGVzIHRvIEpTVmFsdWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA0NworCisg
ICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogQVBJL0pTVmFs
dWUuaDoKKwogMjAxOC0wOC0yNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3Rh
cnQub3JnPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gUGFyc2Ugd2FzbSBtb2R1bGVzIGluIGEg
c3RyZWFtaW5nIGZhc2hpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgKaW5kZXggNTUy
ZDQ3MGNhZTcxMTNmOTg4NmFkODFjNTQwMWJlNTk5MWUxNmNlMC4uZGYxNzM2YWIyMjg2NTViZWJl
OWE0YTY0NWI3MDc0MmY2YjFhMDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgK
QEAgLTQ4LDE2ICs0OCwxNiBAQCBOU19DTEFTU19BVkFJTEFCTEUoMTBfOSwgN18wKQogQGludGVy
ZmFjZSBKU1ZhbHVlIDogTlNPYmplY3QKIAogI2lmIChkZWZpbmVkKF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCBKU0Nf
TUFDX1ZFUlNJT05fVEJBKSB8fCAoZGVmaW5lZChfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCBKU0NfSU9TX1ZFUlNJ
T05fVEJBKQotdHlwZWRlZiBOU1N0cmluZyAqSlNWYWx1ZVByb3BlcnR5OwordHlwZWRlZiBOU1N0
cmluZyAqIF9Ob25udWxsIEpTVmFsdWVQcm9wZXJ0eTsKICNlbHNlCi10eXBlZGVmIGlkIEpTVmFs
dWVQcm9wZXJ0eTsKK3R5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKICNlbmRp
ZgogCiAvKiEKIEBwcm9wZXJ0eQogQGFic3RyYWN0IFRoZSBKU0NvbnRleHQgdGhhdCB0aGlzIHZh
bHVlIG9yaWdpbmF0ZXMgZnJvbS4KICovCi1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIEpT
Q29udGV4dCAqY29udGV4dDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZywgbm9ubnVsbCkg
SlNDb250ZXh0ICpjb250ZXh0OwogCiAvKiEKIEBtZXRob2Rncm91cCBDcmVhdGluZyBKYXZhU2Ny
aXB0IFZhbHVlcwpAQCAtNjksNyArNjksNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsK
IEBwYXJhbSB2YWx1ZSBUaGUgT2JqZWN0aXZlLUMgb2JqZWN0IHRvIGJlIGNvbnZlcnRlZC4KIEBy
ZXN1bHQgVGhlIG5ldyBKU1ZhbHVlLgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhPYmplY3Q6
KGlkKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNW
YWx1ZSAqKXZhbHVlV2l0aE9iamVjdDoobnVsbGFibGUgaWQpdmFsdWUgaW5Db250ZXh0Oihub25u
dWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtNzcsNyArNzcsNyBA
QCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRl
eHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1
bHQgVGhlIG5ldyBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgZXF1aXZhbGVudCBib29sZWFuIHZh
bHVlLgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhCb29sOihCT09MKXZhbHVlIGluQ29udGV4
dDooSlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aEJv
b2w6KEJPT0wpdmFsdWUgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAK
IC8qIQogQG1ldGhvZApAQCAtODUsNyArODUsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0
eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBK
U1ZhbHVlIHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKU1ZhbHVlIHJlcHJlc2Vu
dGluZyB0aGUgZXF1aXZhbGVudCBib29sZWFuIHZhbHVlLgogKi8KLSsgKEpTVmFsdWUgKil2YWx1
ZVdpdGhEb3VibGU6KGRvdWJsZSl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7
CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhEb3VibGU6KGRvdWJsZSl2YWx1ZSBpbkNv
bnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC05
Myw3ICs5Myw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGNvbnRleHQg
VGhlIEpTQ29udGV4dCBpbiB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgd2lsbCBiZSBjcmVh
dGVkLgogQHJlc3VsdCBUaGUgbmV3IEpTVmFsdWUgcmVwcmVzZW50aW5nIHRoZSBlcXVpdmFsZW50
IGJvb2xlYW4gdmFsdWUuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aEludDMyOihpbnQzMl90
KXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1
ZSAqKXZhbHVlV2l0aEludDMyOihpbnQzMl90KXZhbHVlIGluQ29udGV4dDoobm9ubnVsbCBKU0Nv
bnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTEwMSw3ICsxMDEsNyBAQCB0eXBl
ZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4g
d2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhl
IG5ldyBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgZXF1aXZhbGVudCBib29sZWFuIHZhbHVlLgog
Ki8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhVSW50MzI6KHVpbnQzMl90KXZhbHVlIGluQ29udGV4
dDooSlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFVJ
bnQzMjoodWludDMyX3QpdmFsdWUgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRl
eHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtMTA5LDcgKzEwOSw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1
ZVByb3BlcnR5OwogQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29udGV4dCBpbiB3aGljaCB0aGUgcmVz
dWx0aW5nIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSmF2YVNjcmlw
dCBvYmplY3QuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld09iamVjdEluQ29udGV4dDoo
SlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld09i
amVjdEluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRo
b2QKQEAgLTExNyw3ICsxMTcsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJh
bSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBhcnJheSB3aWxs
IGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRoZSBuZXcgSmF2YVNjcmlwdCBhcnJheS4KICovCi0rIChK
U1ZhbHVlICopdmFsdWVXaXRoTmV3QXJyYXlJbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7
CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdBcnJheUluQ29udGV4dDoobm9ubnVs
bCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTEyNyw3ICsxMjcsNyBA
QCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRl
eHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IHdpbGwg
YmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKYXZhU2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lv
biBvYmplY3QuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1JlZ3VsYXJFeHByZXNzaW9u
RnJvbVBhdHRlcm46KE5TU3RyaW5nICopcGF0dGVybiBmbGFnczooTlNTdHJpbmcgKilmbGFncyBp
bkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1
ZVdpdGhOZXdSZWd1bGFyRXhwcmVzc2lvbkZyb21QYXR0ZXJuOihub25udWxsIE5TU3RyaW5nICop
cGF0dGVybiBmbGFnczoobm9ubnVsbCBOU1N0cmluZyAqKWZsYWdzIGluQ29udGV4dDoobm9ubnVs
bCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTEzNiw3ICsxMzYsNyBA
QCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRl
eHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBlcnJvciBvYmplY3Qgd2lsbCBiZSBjcmVhdGVkLgog
QHJlc3VsdCBUaGUgbmV3IEphdmFTY3JpcHQgZXJyb3Igb2JqZWN0LgogKi8KLSsgKEpTVmFsdWUg
Kil2YWx1ZVdpdGhOZXdFcnJvckZyb21NZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5Db250
ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRo
TmV3RXJyb3JGcm9tTWVzc2FnZToobm9ubnVsbCBOU1N0cmluZyAqKW1lc3NhZ2UgaW5Db250ZXh0
Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtMTQ0LDcg
KzE0NCw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGNvbnRleHQgVGhl
IEpTQ29udGV4dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4KIEByZXN1
bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50aW5nIHRoZSBKYXZhU2NyaXB0IHZhbHVlIDxjb2RlPm51
bGw8L2NvZGU+LgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhOdWxsSW5Db250ZXh0OihKU0Nv
bnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoTnVsbEluQ29u
dGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTE1
Miw3ICsxNTIsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0
IFRoZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCiBA
cmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgSmF2YVNjcmlwdCB2YWx1ZSA8Y29k
ZT51bmRlZmluZWQ8L2NvZGU+LgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhVbmRlZmluZWRJ
bkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1
ZVdpdGhVbmRlZmluZWRJbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKIAog
LyohCiAgQG1ldGhvZApAQCAtMTYxLDcgKzE2MSw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3Bl
cnR5OwogIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhlIHJlc3VsdGlu
ZyBKU1ZhbHVlIGJlbG9uZ3MuCiAgQHJlc3VsdCBUaGUgSlNWYWx1ZSByZXByZXNlbnRpbmcgYSB1
bmlxdWUgSmF2YVNjcmlwdCB2YWx1ZSB3aXRoIHR5cGUgc3ltYm9sLgogICovCi0rIChKU1ZhbHVl
ICopdmFsdWVXaXRoTmV3U3ltYm9sRnJvbURlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0
aW9uIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNv
c3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKKysgKG5vbm51bGwgSlNWYWx1ZSAq
KXZhbHVlV2l0aE5ld1N5bWJvbEZyb21EZXNjcmlwdGlvbjoobm9ubnVsbCBOU1N0cmluZyAqKWRl
c2NyaXB0aW9uIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0IEpTQ19BUElf
QVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwogCiAvKiEK
IEBtZXRob2Rncm91cCBDb252ZXJ0aW5nIHRvIE9iamVjdGl2ZS1DIFR5cGVzCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiAgdG8gdGhlIGNvbnZlcnNpb24g
cnVsZXMgc3BlY2lmaWVkIGFib3ZlLgogQHJlc3VsdCBUaGUgT2JqZWN0aXZlLUMgcmVwcmVzZW50
YXRpb24gb2YgdGhpcyBKU1ZhbHVlLgogKi8KLS0gKGlkKXRvT2JqZWN0OworLSAobnVsbGFibGUg
aWQpdG9PYmplY3Q7CiAKIC8qIQogQG1ldGhvZApAQCAtMjI1LDcgKzIyNSw3IEBAIHR5cGVkZWYg
aWQgSlNWYWx1ZVByb3BlcnR5OwogIElmIHRoZSByZXN1bHQgaXMgbm90IG9mIHRoZSBzcGVjaWZp
ZWQgQ2xhc3MgdGhlbiA8Y29kZT5uaWw8L2NvZGU+IHdpbGwgYmUgcmV0dXJuZWQuCiBAcmVzdWx0
IEFuIE9iamVjdGl2ZS1DIG9iamVjdCBvZiB0aGUgc3BlY2lmaWVkIENsYXNzIG9yIDxjb2RlPm5p
bDwvY29kZT4uCiAqLwotLSAoaWQpdG9PYmplY3RPZkNsYXNzOihDbGFzcylleHBlY3RlZENsYXNz
OworLSAobnVsbGFibGUgaWQpdG9PYmplY3RPZkNsYXNzOihub25udWxsIENsYXNzKWV4cGVjdGVk
Q2xhc3M7CiAKIC8qIQogQG1ldGhvZApAQCAtMjcxLDcgKzI3MSw3IEBAIHR5cGVkZWYgaWQgSlNW
YWx1ZVByb3BlcnR5OwogIHRvIHRoZSBydWxlcyBzcGVjaWZpZWQgYnkgdGhlIEphdmFTY3JpcHQg
bGFuZ3VhZ2UuCiBAcmVzdWx0IFRoZSBOU051bWJlciByZXN1bHQgb2YgdGhlIGNvbnZlcnNpb24u
CiAqLwotLSAoTlNOdW1iZXIgKil0b051bWJlcjsKKy0gKG51bGxhYmxlIE5TTnVtYmVyICopdG9O
dW1iZXI7CiAKIC8qIQogQG1ldGhvZApAQCAtMjgwLDcgKzI4MCw3IEBAIHR5cGVkZWYgaWQgSlNW
YWx1ZVByb3BlcnR5OwogIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlLgogQHJlc3VsdCBUaGUg
TlNTdHJpbmcgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZSBjb252ZXJzaW9uLgogKi8KLS0g
KE5TU3RyaW5nICopdG9TdHJpbmc7CistIChudWxsYWJsZSBOU1N0cmluZyAqKXRvU3RyaW5nOwog
CiAvKiEKIEBtZXRob2QKQEAgLTI4OSw3ICsyODksNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9w
ZXJ0eTsKICBzaW5jZSAxOTcwIHdoaWNoIGlzIHRoZW4gdXNlZCB0byBjcmVhdGUgYSBuZXcgTlNE
YXRlIGluc3RhbmNlLgogQHJlc3VsdCBUaGUgTlNEYXRlIGNyZWF0ZWQgdXNpbmcgdGhlIGNvbnZl
cnRlZCB0aW1lIGludGVydmFsLgogKi8KLS0gKE5TRGF0ZSAqKXRvRGF0ZTsKKy0gKG51bGxhYmxl
IE5TRGF0ZSAqKXRvRGF0ZTsKIAogLyohCiBAbWV0aG9kCkBAIC0zMDMsNyArMzAzLDcgQEAgdHlw
ZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IFRoZSBOU0FycmF5IGNvbnRhaW5pbmcg
dGhlIHJlY3Vyc2l2ZWx5IGNvbnZlcnRlZCBjb250ZW50cyBvZiB0aGUgCiAgY29udmVydGVkIEph
dmFTY3JpcHQgYXJyYXkuCiAqLwotLSAoTlNBcnJheSAqKXRvQXJyYXk7CistIChudWxsYWJsZSBO
U0FycmF5ICopdG9BcnJheTsKIAogLyohCiBAbWV0aG9kCkBAIC0zMTUsNyArMzE1LDcgQEAgdHlw
ZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IFRoZSBOU0RpY3Rpb25hcnkgY29udGFp
bmluZyB0aGUgcmVjdXJzaXZlbHkgY29udmVydGVkIGNvbnRlbnRzIG9mCiAgdGhlIGNvbnZlcnRl
ZCBKYXZhU2NyaXB0IG9iamVjdC4KICovCi0tIChOU0RpY3Rpb25hcnkgKil0b0RpY3Rpb25hcnk7
CistIChudWxsYWJsZSBOU0RpY3Rpb25hcnkgKil0b0RpY3Rpb25hcnk7CiAKIC8qIQogQG1ldGhv
ZGdyb3VwIEFjY2Vzc2luZyBQcm9wZXJ0aWVzCkBAIC0zMjgsMTQgKzMyOCwxNCBAQCB0eXBlZGVm
IGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBpZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QuCiBA
ZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+
b2JqZWN0W3Byb3BlcnR5XTwvY29kZT4uIEFmdGVyIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3By
b3BlcnR5JyBjYW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNWYWx1
ZSB1c2luZyB0aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5D
b250ZXh0OjwvY29kZT4uIFByaW9yIHRvIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5
JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KICovCi0tIChKU1ZhbHVlICopdmFs
dWVGb3JQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OworLSAobm9ubnVsbCBKU1Zh
bHVlICopdmFsdWVGb3JQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OwogCiAvKiEK
IEBtZXRob2QKIEBhYnN0cmFjdCBTZXQgYSBwcm9wZXJ0eSBvbiBhIEpTVmFsdWUuCiBAZGlzY3Vz
c2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+b2JqZWN0
W3Byb3BlcnR5XSA9IHZhbHVlPC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAn
cHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKU1Zh
bHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVjdDpp
bkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVy
dHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogKi8KLS0gKHZvaWQpc2V0VmFs
dWU6KGlkKXZhbHVlIGZvclByb3BlcnR5OihKU1ZhbHVlUHJvcGVydHkpcHJvcGVydHk7CistICh2
b2lkKXNldFZhbHVlOihudWxsYWJsZSBpZCl2YWx1ZSBmb3JQcm9wZXJ0eTooSlNWYWx1ZVByb3Bl
cnR5KXByb3BlcnR5OwogCiAvKiEKIEBtZXRob2QKQEAgLTM2MCw3ICszNjAsNyBAQCB0eXBlZGVm
IGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIG1heSBiZSB1c2Vk
IHRvIGNyZWF0ZSBhIGRhdGEgb3IgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gb2JqZWN0LgogIFRo
aXMgbWV0aG9kIG9wZXJhdGVzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgT2JqZWN0LmRlZmluZVBy
b3BlcnR5IG1ldGhvZCBpbiB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZS4gQWZ0ZXIgbWFjT1MgVEJB
IGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252
ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZh
bHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBp
T1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogKi8K
LS0gKHZvaWQpZGVmaW5lUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eSBkZXNjcmlw
dG9yOihpZClkZXNjcmlwdG9yOworLSAodm9pZClkZWZpbmVQcm9wZXJ0eTooSlNWYWx1ZVByb3Bl
cnR5KXByb3BlcnR5IGRlc2NyaXB0b3I6KG51bGxhYmxlIGlkKWRlc2NyaXB0b3I7CiAKIC8qIQog
QG1ldGhvZApAQCAtMzY4LDcgKzM2OCw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5Owog
QHJlc3VsdCBUaGUgSlNWYWx1ZSBmb3IgdGhlIHByb3BlcnR5IGF0IHRoZSBzcGVjaWZpZWQgaW5k
ZXguIAogIFJldHVybnMgdGhlIEphdmFTY3JpcHQgdmFsdWUgPGNvZGU+dW5kZWZpbmVkPC9jb2Rl
PiBpZiBubyBwcm9wZXJ0eSBleGlzdHMgYXQgdGhhdCBpbmRleC4gCiAqLwotLSAoSlNWYWx1ZSAq
KXZhbHVlQXRJbmRleDooTlNVSW50ZWdlcilpbmRleDsKKy0gKG5vbm51bGwgSlNWYWx1ZSAqKXZh
bHVlQXRJbmRleDooTlNVSW50ZWdlcilpbmRleDsKIAogLyohCiBAbWV0aG9kCkBAIC0zNzYsNyAr
Mzc2LDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAZGlzY3Vzc2lvbiBGb3IgSlNW
YWx1ZXMgdGhhdCBhcmUgSmF2YVNjcmlwdCBhcnJheXMsIGluZGljZXMgZ3JlYXRlciB0aGFuIAog
IFVJTlRfTUFYIC0gMSB3aWxsIG5vdCBhZmZlY3QgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuCiAq
LwotLSAodm9pZClzZXRWYWx1ZTooaWQpdmFsdWUgYXRJbmRleDooTlNVSW50ZWdlcilpbmRleDsK
Ky0gKHZvaWQpc2V0VmFsdWU6KG51bGxhYmxlIGlkKXZhbHVlIGF0SW5kZXg6KE5TVUludGVnZXIp
aW5kZXg7CiAKIC8qIQogQGZ1bmN0aW9uZ3JvdXAgQ2hlY2tpbmcgSmF2YVNjcmlwdCBUeXBlcwpA
QCAtNDQzLDEzICs0NDMsMTMgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAbWV0aG9k
CiBAYWJzdHJhY3QgQ29tcGFyZSB0d28gSlNWYWx1ZXMgdXNpbmcgSmF2YVNjcmlwdCdzIDxjb2Rl
Pj09PTwvY29kZT4gb3BlcmF0b3IuCiAqLwotLSAoQk9PTClpc0VxdWFsVG9PYmplY3Q6KGlkKXZh
bHVlOworLSAoQk9PTClpc0VxdWFsVG9PYmplY3Q6KG51bGxhYmxlIGlkKXZhbHVlOwogCiAvKiEK
IEBtZXRob2QKIEBhYnN0cmFjdCBDb21wYXJlIHR3byBKU1ZhbHVlcyB1c2luZyBKYXZhU2NyaXB0
J3MgPGNvZGU+PT08L2NvZGU+IG9wZXJhdG9yLgogKi8KLS0gKEJPT0wpaXNFcXVhbFdpdGhUeXBl
Q29lcmNpb25Ub09iamVjdDooaWQpdmFsdWU7CistIChCT09MKWlzRXF1YWxXaXRoVHlwZUNvZXJj
aW9uVG9PYmplY3Q6KG51bGxhYmxlIGlkKXZhbHVlOwogCiAvKiEKIEBtZXRob2QKQEAgLTQ1OCw3
ICs0NTgsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBJZiBhbiBvYmplY3Qgb3Ro
ZXIgdGhhbiBhIEpTVmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGZpcnN0IGJlIGNvbnZlcnRlZCBh
Y2NvcmRpbmcgdG8KICB0aGUgYWZvcmVtZW50aW9uZWQgcnVsZXMuCiAqLwotLSAoQk9PTClpc0lu
c3RhbmNlT2Y6KGlkKXZhbHVlOworLSAoQk9PTClpc0luc3RhbmNlT2Y6KG51bGxhYmxlIGlkKXZh
bHVlOwogCiAvKiEKIEBtZXRob2Rncm91cCBDYWxsaW5nIEZ1bmN0aW9ucyBhbmQgQ29uc3RydWN0
b3JzCkBAIC00NzEsNyArNDcxLDcgQEAgdHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcGFy
YW0gYXJndW1lbnRzIFRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24uCiBAcmVz
dWx0IFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGNhbGwuIAogKi8KLS0gKEpTVmFs
dWUgKiljYWxsV2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50czsKKy0gKG5vbm51bGwg
SlNWYWx1ZSAqKWNhbGxXaXRoQXJndW1lbnRzOihudWxsYWJsZSBOU0FycmF5ICopYXJndW1lbnRz
OwogCiAvKiEKIEBtZXRob2QKQEAgLTQ4MCw3ICs0ODAsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQ
cm9wZXJ0eTsKIEBwYXJhbSBhcmd1bWVudHMgVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBj
b25zdHJ1Y3Rvci4KIEByZXN1bHQgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgY29uc3RydWN0b3Ig
Y2FsbC4KICovCi0tIChKU1ZhbHVlICopY29uc3RydWN0V2l0aEFyZ3VtZW50czooTlNBcnJheSAq
KWFyZ3VtZW50czsKKy0gKG5vbm51bGwgSlNWYWx1ZSAqKWNvbnN0cnVjdFdpdGhBcmd1bWVudHM6
KG51bGxhYmxlIE5TQXJyYXkgKilhcmd1bWVudHM7CiAKIC8qIQogQG1ldGhvZApAQCAtNDkyLDcg
KzQ5Miw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGFyZ3VtZW50cyBU
aGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIG1ldGhvZC4KIEByZXN1bHQgVGhlIHJldHVybiB2
YWx1ZSBvZiB0aGUgbWV0aG9kIGNhbGwuCiAqLwotLSAoSlNWYWx1ZSAqKWludm9rZU1ldGhvZDoo
TlNTdHJpbmcgKiltZXRob2Qgd2l0aEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50czsKKy0g
KG5vbm51bGwgSlNWYWx1ZSAqKWludm9rZU1ldGhvZDoobm9ubnVsbCBOU1N0cmluZyAqKW1ldGhv
ZCB3aXRoQXJndW1lbnRzOihudWxsYWJsZSBOU0FycmF5ICopYXJndW1lbnRzOwogCiBAZW5kCiAK
QEAgLTUxNSw3ICs1MTUsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKIEByZXN1bHQg
QSBuZXdseSBhbGxvY2F0ZWQgSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVz
CiAgbmFtZWQgPGNvZGU+eDwvY29kZT4gYW5kIDxjb2RlPnk8L2NvZGU+LCB3aXRoIHZhbHVlcyBm
cm9tIHRoZSBDR1BvaW50LgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhQb2ludDooQ0dQb2lu
dClwb2ludCBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFs
dWUgKil2YWx1ZVdpdGhQb2ludDooQ0dQb2ludClwb2ludCBpbkNvbnRleHQ6KG5vbm51bGwgSlND
b250ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC01MjMsNyArNTIzLDcgQEAgdHlw
ZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IEEgbmV3bHkgYWxsb2NhdGVkIEphdmFT
Y3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcwogIG5hbWVkIDxjb2RlPmxvY2F0aW9u
PC9jb2RlPiBhbmQgPGNvZGU+bGVuZ3RoPC9jb2RlPiwgd2l0aCB2YWx1ZXMgZnJvbSB0aGUgTlNS
YW5nZS4KICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UgaW5D
b250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVX
aXRoUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNv
bnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtNTMyLDcgKzUzMiw3IEBAIENyZWF0ZSBhIEpTVmFs
dWUgZnJvbSBhIENHUmVjdC4KIEByZXN1bHQgQSBuZXdseSBhbGxvY2F0ZWQgSmF2YVNjcmlwdCBv
YmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzCiAgbmFtZWQgPGNvZGU+eDwvY29kZT4sIDxjb2Rl
Pnk8L2NvZGU+LCA8Y29kZT53aWR0aDwvY29kZT4sIGFuZCA8Y29kZT5oZWlnaHQ8L2NvZGU+LCB3
aXRoIHZhbHVlcyBmcm9tIHRoZSBDR1JlY3QuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aFJl
Y3Q6KENHUmVjdClyZWN0IGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKysgKG5vbm51
bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFJlY3Q6KENHUmVjdClyZWN0IGluQ29udGV4dDoobm9ubnVs
bCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTU0MCw3ICs1NDAsNyBA
QCBDcmVhdGUgYSBKU1ZhbHVlIGZyb20gYSBDR1JlY3QuCiBAcmVzdWx0IEEgbmV3bHkgYWxsb2Nh
dGVkIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcwogIG5hbWVkIDxjb2Rl
PndpZHRoPC9jb2RlPiBhbmQgPGNvZGU+aGVpZ2h0PC9jb2RlPiwgd2l0aCB2YWx1ZXMgZnJvbSB0
aGUgQ0dTaXplLgogKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhTaXplOihDR1NpemUpc2l6ZSBp
bkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChub25udWxsIEpTVmFsdWUgKil2YWx1
ZVdpdGhTaXplOihDR1NpemUpc2l6ZSBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29u
dGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC02MDEsMTAgKzYwMSwxMCBAQCBDcmVhdGUgYSBKU1Zh
bHVlIGZyb20gYSBDR1JlY3QuCiAqLwogQGludGVyZmFjZSBKU1ZhbHVlIChTdWJzY3JpcHRTdXBw
b3J0KQogCi0tIChKU1ZhbHVlICopb2JqZWN0Rm9yS2V5ZWRTdWJzY3JpcHQ6KEpTVmFsdWVQcm9w
ZXJ0eSlrZXk7Ci0tIChKU1ZhbHVlICopb2JqZWN0QXRJbmRleGVkU3Vic2NyaXB0OihOU1VJbnRl
Z2VyKWluZGV4OwotLSAodm9pZClzZXRPYmplY3Q6KGlkKW9iamVjdCBmb3JLZXllZFN1YnNjcmlw
dDooSlNWYWx1ZVByb3BlcnR5KWtleTsKLS0gKHZvaWQpc2V0T2JqZWN0OihpZClvYmplY3QgYXRJ
bmRleGVkU3Vic2NyaXB0OihOU1VJbnRlZ2VyKWluZGV4OworLSAobm9ubnVsbCBKU1ZhbHVlICop
b2JqZWN0Rm9yS2V5ZWRTdWJzY3JpcHQ6KEpTVmFsdWVQcm9wZXJ0eSlrZXk7CistIChub25udWxs
IEpTVmFsdWUgKilvYmplY3RBdEluZGV4ZWRTdWJzY3JpcHQ6KE5TVUludGVnZXIpaW5kZXg7Cist
ICh2b2lkKXNldE9iamVjdDoobnVsbGFibGUgaWQpb2JqZWN0IGZvcktleWVkU3Vic2NyaXB0OihK
U1ZhbHVlUHJvcGVydHkpa2V5OworLSAodm9pZClzZXRPYmplY3Q6KG51bGxhYmxlIGlkKW9iamVj
dCBhdEluZGV4ZWRTdWJzY3JpcHQ6KE5TVUludGVnZXIpaW5kZXg7CiAKIEBlbmQKIApAQCAtNjE5
LDE0ICs2MTksMTQgQEAgQ3JlYXRlIGEgSlNWYWx1ZSBmcm9tIGEgQ0dSZWN0LgogQGFic3RyYWN0
IENyZWF0ZXMgYSBKU1ZhbHVlLCB3cmFwcGluZyBpdHMgQyBBUEkgY291bnRlcnBhcnQuCiBAcmVz
dWx0IFRoZSBPYmplY3RpdmUtQyBBUEkgZXF1aXZhbGVudCBvZiB0aGUgc3BlY2lmaWVkIEpTVmFs
dWVSZWYuCiAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aEpTVmFsdWVSZWY6KEpTVmFsdWVSZWYp
dmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworKyAobm9ubnVsbCBKU1ZhbHVl
ICopdmFsdWVXaXRoSlNWYWx1ZVJlZjoobm9ubnVsbCBKU1ZhbHVlUmVmKXZhbHVlIGluQ29udGV4
dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBwcm9wZXJ0eQogQGFic3Ry
YWN0IFJldHVybnMgdGhlIEMgQVBJIGNvdW50ZXJwYXJ0IHdyYXBwZWQgYnkgYSBKU0NvbnRleHQu
CiBAcmVzdWx0IFRoZSBDIEFQSSBlcXVpdmFsZW50IG9mIHRoaXMgSlNWYWx1ZS4KICovCi1AcHJv
cGVydHkgKHJlYWRvbmx5KSBKU1ZhbHVlUmVmIEpTVmFsdWVSZWY7CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBub25udWxsKSBKU1ZhbHVlUmVmIEpTVmFsdWVSZWY7CiBAZW5kCiAKICNpZmRlZiBfX2Nw
bHVzcGx1cwpAQCAtNjY1LDI3ICs2NjUsMjcgQEAgZXh0ZXJuICJDIiB7CiAvKiEKIEBjb25zdCAK
ICovCi1KU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0
b3JXcml0YWJsZUtleTsKK0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVs
bCBKU1Byb3BlcnR5RGVzY3JpcHRvcldyaXRhYmxlS2V5OwogLyohCiBAY29uc3QgCiAqLwotSlNf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEpTUHJvcGVydHlEZXNjcmlwdG9yRW51bWVy
YWJsZUtleTsKK0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVsbCBKU1By
b3BlcnR5RGVzY3JpcHRvckVudW1lcmFibGVLZXk7CiAvKiEKIEBjb25zdCAKICovCi1KU19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JDb25maWd1cmFi
bGVLZXk7CitKU19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX05vbm51bGwgSlNQcm9w
ZXJ0eURlc2NyaXB0b3JDb25maWd1cmFibGVLZXk7CiAvKiEKIEBjb25zdCAKICovCi1KU19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JWYWx1ZUtleTsK
K0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVsbCBKU1Byb3BlcnR5RGVz
Y3JpcHRvclZhbHVlS2V5OwogLyohCiBAY29uc3QgCiAqLwotSlNfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IEpTUHJvcGVydHlEZXNjcmlwdG9yR2V0S2V5OworSlNfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9Ob25udWxsIEpTUHJvcGVydHlEZXNjcmlwdG9yR2V0S2V5Owog
LyohCiBAY29uc3QgCiAqLwotSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEpTUHJv
cGVydHlEZXNjcmlwdG9yU2V0S2V5OworSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9Ob25udWxsIEpTUHJvcGVydHlEZXNjcmlwdG9yU2V0S2V5OwogCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0gLy8gZXh0ZXJuICJDIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348317</attachid>
            <date>2018-08-28 12:00:17 -0700</date>
            <delta_ts>2018-08-28 12:34:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189047-20180828120016.patch</filename>
            <type>text/plain</type>
            <size>12711</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YjhlNzQ2ODhjZjg2NDg3YTNhOGVkMTg5OTY2MjU4YWRmNmQ5OTJjLi40OTdiMTgyYzQ4NmE0YmE2
MDBkODk5M2RmYmQwNjVkMWZkMmU2OTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOC0wOC0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgbnVsbGFibGl0eSBhdHRyaWJ1dGVzIHRvIEpTVmFsdWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA0NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCB0byB1
c2luZyBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTi9FTkQuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1
ZS5oOgorCiAyMDE4LTA4LTI4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBudWxsYWJsaXR5IGF0dHJpYnV0ZXMgdG8gSlNWYWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmFsdWUuaAppbmRleCBkZjE3MzZhYjIyODY1NWJlYmU5YTRhNjQ1Yjcw
NzQyZjZiMWEwNWZhLi5kYzQ3YjdhOTgyYmU1M2Q3ZmY3OWQ4NTIyZDkyNjQ3OTE1N2Q2Yjk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1w
b3J0IDxDb3JlR3JhcGhpY3MvQ0dHZW9tZXRyeS5oPgogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgorCiBAY2xhc3MgSlNDb250ZXh0OwogCiAvKiEKQEAgLTQ4LDcgKzUwLDcgQEAgTlNfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzksIDdfMCkKIEBpbnRlcmZhY2UgSlNWYWx1ZSA6IE5TT2JqZWN0CiAKICNp
ZiAoZGVmaW5lZChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgSlNDX01BQ19WRVJTSU9OX1RCQSkgfHwgKGRlZmluZWQo
X19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDwgSlNDX0lPU19WRVJTSU9OX1RCQSkKLXR5cGVkZWYgTlNTdHJpbmcgKiBf
Tm9ubnVsbCBKU1ZhbHVlUHJvcGVydHk7Cit0eXBlZGVmIE5TU3RyaW5nICogSlNWYWx1ZVByb3Bl
cnR5OwogI2Vsc2UKIHR5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKICNlbmRp
ZgpAQCAtNTcsNyArNTksNyBAQCB0eXBlZGVmIGlkIF9OdWxsYWJsZSBKU1ZhbHVlUHJvcGVydHk7
CiBAcHJvcGVydHkKIEBhYnN0cmFjdCBUaGUgSlNDb250ZXh0IHRoYXQgdGhpcyB2YWx1ZSBvcmln
aW5hdGVzIGZyb20uCiAqLwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nLCBub25udWxsKSBK
U0NvbnRleHQgKmNvbnRleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIEpTQ29udGV4
dCAqY29udGV4dDsKIAogLyohCiBAbWV0aG9kZ3JvdXAgQ3JlYXRpbmcgSmF2YVNjcmlwdCBWYWx1
ZXMKQEAgLTY5LDcgKzcxLDcgQEAgdHlwZWRlZiBpZCBfTnVsbGFibGUgSlNWYWx1ZVByb3BlcnR5
OwogQHBhcmFtIHZhbHVlIFRoZSBPYmplY3RpdmUtQyBvYmplY3QgdG8gYmUgY29udmVydGVkLgog
QHJlc3VsdCBUaGUgbmV3IEpTVmFsdWUuCiAqLwotKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVX
aXRoT2JqZWN0OihudWxsYWJsZSBpZCl2YWx1ZSBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0
ICopY29udGV4dDsKKysgKEpTVmFsdWUgKil2YWx1ZVdpdGhPYmplY3Q6KG51bGxhYmxlIGlkKXZh
bHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC03
Nyw3ICs3OSw3IEBAIHR5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJh
bSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIHdp
bGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUg
ZXF1aXZhbGVudCBib29sZWFuIHZhbHVlLgogKi8KLSsgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVl
V2l0aEJvb2w6KEJPT0wpdmFsdWUgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRl
eHQ7CisrIChKU1ZhbHVlICopdmFsdWVXaXRoQm9vbDooQk9PTCl2YWx1ZSBpbkNvbnRleHQ6KEpT
Q29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtODUsNyArODcsNyBAQCB0eXBl
ZGVmIGlkIF9OdWxsYWJsZSBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlND
b250ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSB3aWxsIGJlIGNyZWF0ZWQuCiBA
cmVzdWx0IFRoZSBuZXcgSlNWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGVxdWl2YWxlbnQgYm9vbGVh
biB2YWx1ZS4KICovCi0rIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhEb3VibGU6KGRvdWJs
ZSl2YWx1ZSBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKKysgKEpTVmFs
dWUgKil2YWx1ZVdpdGhEb3VibGU6KGRvdWJsZSl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAq
KWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtOTMsNyArOTUsNyBAQCB0eXBlZGVmIGlkIF9O
dWxsYWJsZSBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGlu
IHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSB3aWxsIGJlIGNyZWF0ZWQuCiBAcmVzdWx0IFRo
ZSBuZXcgSlNWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGVxdWl2YWxlbnQgYm9vbGVhbiB2YWx1ZS4K
ICovCi0rIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhJbnQzMjooaW50MzJfdCl2YWx1ZSBp
bkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKKysgKEpTVmFsdWUgKil2YWx1
ZVdpdGhJbnQzMjooaW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7
CiAKIC8qIQogQG1ldGhvZApAQCAtMTAxLDcgKzEwMyw3IEBAIHR5cGVkZWYgaWQgX051bGxhYmxl
IEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2gg
dGhlIHJlc3VsdGluZyBKU1ZhbHVlIHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBK
U1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgZXF1aXZhbGVudCBib29sZWFuIHZhbHVlLgogKi8KLSsg
KG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFVJbnQzMjoodWludDMyX3QpdmFsdWUgaW5Db250
ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChKU1ZhbHVlICopdmFsdWVXaXRo
VUludDMyOih1aW50MzJfdCl2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CiAK
IC8qIQogQG1ldGhvZApAQCAtMTA5LDcgKzExMSw3IEBAIHR5cGVkZWYgaWQgX051bGxhYmxlIEpT
VmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhl
IHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSBjcmVhdGVkLgogQHJlc3VsdCBUaGUgbmV3IEphdmFT
Y3JpcHQgb2JqZWN0LgogKi8KLSsgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld09iamVj
dEluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OworKyAoSlNWYWx1ZSAqKXZh
bHVlV2l0aE5ld09iamVjdEluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIAogLyohCiBA
bWV0aG9kCkBAIC0xMTcsNyArMTE5LDcgQEAgdHlwZWRlZiBpZCBfTnVsbGFibGUgSlNWYWx1ZVBy
b3BlcnR5OwogQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29udGV4dCBpbiB3aGljaCB0aGUgcmVzdWx0
aW5nIGFycmF5IHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKYXZhU2NyaXB0IGFy
cmF5LgogKi8KLSsgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld0FycmF5SW5Db250ZXh0
Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3
QXJyYXlJbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAt
MTI3LDcgKzEyOSw3IEBAIHR5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKIEBw
YXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgaW4gd2hpY2ggdGhlIHJlc3VsdGluZyByZWd1bGFy
IGV4cHJlc3Npb24gb2JqZWN0IHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKYXZh
U2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3QuCiAqLwotKyAobm9ubnVsbCBKU1ZhbHVl
ICopdmFsdWVXaXRoTmV3UmVndWxhckV4cHJlc3Npb25Gcm9tUGF0dGVybjoobm9ubnVsbCBOU1N0
cmluZyAqKXBhdHRlcm4gZmxhZ3M6KG5vbm51bGwgTlNTdHJpbmcgKilmbGFncyBpbkNvbnRleHQ6
KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKKysgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdS
ZWd1bGFyRXhwcmVzc2lvbkZyb21QYXR0ZXJuOihOU1N0cmluZyAqKXBhdHRlcm4gZmxhZ3M6KE5T
U3RyaW5nICopZmxhZ3MgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OwogCiAvKiEKIEBt
ZXRob2QKQEAgLTEzNiw3ICsxMzgsNyBAQCB0eXBlZGVmIGlkIF9OdWxsYWJsZSBKU1ZhbHVlUHJv
cGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IGluIHdoaWNoIHRoZSByZXN1bHRp
bmcgZXJyb3Igb2JqZWN0IHdpbGwgYmUgY3JlYXRlZC4KIEByZXN1bHQgVGhlIG5ldyBKYXZhU2Ny
aXB0IGVycm9yIG9iamVjdC4KICovCi0rIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdF
cnJvckZyb21NZXNzYWdlOihub25udWxsIE5TU3RyaW5nICopbWVzc2FnZSBpbkNvbnRleHQ6KG5v
bm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKKysgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdFcnJv
ckZyb21NZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5Db250ZXh0OihKU0NvbnRleHQgKilj
b250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTE0NCw3ICsxNDYsNyBAQCB0eXBlZGVmIGlkIF9O
dWxsYWJsZSBKU1ZhbHVlUHJvcGVydHk7CiBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRv
IHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgogQHJlc3VsdCBUaGUgSlNWYWx1
ZSByZXByZXNlbnRpbmcgdGhlIEphdmFTY3JpcHQgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4uCiAq
LwotKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoTnVsbEluQ29udGV4dDoobm9ubnVsbCBK
U0NvbnRleHQgKiljb250ZXh0OworKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE51bGxJbkNvbnRleHQ6
KEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtMTUyLDcgKzE1NCw3IEBA
IHR5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKIEBwYXJhbSBjb250ZXh0IFRo
ZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCiBAcmVz
dWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyB0aGUgSmF2YVNjcmlwdCB2YWx1ZSA8Y29kZT51
bmRlZmluZWQ8L2NvZGU+LgogKi8KLSsgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFVuZGVm
aW5lZEluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OworKyAoSlNWYWx1ZSAq
KXZhbHVlV2l0aFVuZGVmaW5lZEluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIAogLyoh
CiAgQG1ldGhvZApAQCAtMTYxLDcgKzE2Myw3IEBAIHR5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFs
dWVQcm9wZXJ0eTsKICBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRvIHdoaWNoIHRoZSBy
ZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgogIEByZXN1bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50
aW5nIGEgdW5pcXVlIEphdmFTY3JpcHQgdmFsdWUgd2l0aCB0eXBlIHN5bWJvbC4KICAqLwotKyAo
bm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoTmV3U3ltYm9sRnJvbURlc2NyaXB0aW9uOihub25u
dWxsIE5TU3RyaW5nICopZGVzY3JpcHRpb24gaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAq
KWNvbnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19J
T1NfVEJBKSk7CisrIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3U3ltYm9sRnJvbURlc2NyaXB0aW9u
OihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsK
IAogLyohCiBAbWV0aG9kZ3JvdXAgQ29udmVydGluZyB0byBPYmplY3RpdmUtQyBUeXBlcwpAQCAt
MjI1LDcgKzIyNyw3IEBAIHR5cGVkZWYgaWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKICBJ
ZiB0aGUgcmVzdWx0IGlzIG5vdCBvZiB0aGUgc3BlY2lmaWVkIENsYXNzIHRoZW4gPGNvZGU+bmls
PC9jb2RlPiB3aWxsIGJlIHJldHVybmVkLgogQHJlc3VsdCBBbiBPYmplY3RpdmUtQyBvYmplY3Qg
b2YgdGhlIHNwZWNpZmllZCBDbGFzcyBvciA8Y29kZT5uaWw8L2NvZGU+LgogKi8KLS0gKG51bGxh
YmxlIGlkKXRvT2JqZWN0T2ZDbGFzczoobm9ubnVsbCBDbGFzcylleHBlY3RlZENsYXNzOworLSAo
bnVsbGFibGUgaWQpdG9PYmplY3RPZkNsYXNzOihDbGFzcylleHBlY3RlZENsYXNzOwogCiAvKiEK
IEBtZXRob2QKQEAgLTMyOCw3ICszMzAsNyBAQCB0eXBlZGVmIGlkIF9OdWxsYWJsZSBKU1ZhbHVl
UHJvcGVydHk7CiAgaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0LgogQGRpc2N1c3Npb24g
Q29ycmVzcG9uZHMgdG8gdGhlIEphdmFTY3JpcHQgb3BlcmF0aW9uIDxjb2RlPm9iamVjdFtwcm9w
ZXJ0eV08L2NvZGU+LiBBZnRlciBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgY2Fu
IGJlIGFueSAnaWQnIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhl
IGNvbnZlcnNpb24gcnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2Nv
ZGU+LiBQcmlvciB0byBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgd2FzIGV4cGVj
dGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCiAqLwotLSAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVG
b3JQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OworLSAoSlNWYWx1ZSAqKXZhbHVl
Rm9yUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKIAogLyohCiBAbWV0aG9kCkBA
IC0zNjgsNyArMzcwLDcgQEAgdHlwZWRlZiBpZCBfTnVsbGFibGUgSlNWYWx1ZVByb3BlcnR5Owog
QHJlc3VsdCBUaGUgSlNWYWx1ZSBmb3IgdGhlIHByb3BlcnR5IGF0IHRoZSBzcGVjaWZpZWQgaW5k
ZXguIAogIFJldHVybnMgdGhlIEphdmFTY3JpcHQgdmFsdWUgPGNvZGU+dW5kZWZpbmVkPC9jb2Rl
PiBpZiBubyBwcm9wZXJ0eSBleGlzdHMgYXQgdGhhdCBpbmRleC4gCiAqLwotLSAobm9ubnVsbCBK
U1ZhbHVlICopdmFsdWVBdEluZGV4OihOU1VJbnRlZ2VyKWluZGV4OworLSAoSlNWYWx1ZSAqKXZh
bHVlQXRJbmRleDooTlNVSW50ZWdlcilpbmRleDsKIAogLyohCiBAbWV0aG9kCkBAIC00NzEsNyAr
NDczLDcgQEAgdHlwZWRlZiBpZCBfTnVsbGFibGUgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGFy
Z3VtZW50cyBUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZ1bmN0aW9uLgogQHJlc3VsdCBU
aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjYWxsLiAKICovCi0tIChub25udWxsIEpT
VmFsdWUgKiljYWxsV2l0aEFyZ3VtZW50czoobnVsbGFibGUgTlNBcnJheSAqKWFyZ3VtZW50czsK
Ky0gKEpTVmFsdWUgKiljYWxsV2l0aEFyZ3VtZW50czoobnVsbGFibGUgTlNBcnJheSAqKWFyZ3Vt
ZW50czsKIAogLyohCiBAbWV0aG9kCkBAIC00ODAsNyArNDgyLDcgQEAgdHlwZWRlZiBpZCBfTnVs
bGFibGUgSlNWYWx1ZVByb3BlcnR5OwogQHBhcmFtIGFyZ3VtZW50cyBUaGUgYXJndW1lbnRzIHRv
IHBhc3MgdG8gdGhlIGNvbnN0cnVjdG9yLgogQHJlc3VsdCBUaGUgcmV0dXJuIHZhbHVlIG9mIHRo
ZSBjb25zdHJ1Y3RvciBjYWxsLgogKi8KLS0gKG5vbm51bGwgSlNWYWx1ZSAqKWNvbnN0cnVjdFdp
dGhBcmd1bWVudHM6KG51bGxhYmxlIE5TQXJyYXkgKilhcmd1bWVudHM7CistIChKU1ZhbHVlICop
Y29uc3RydWN0V2l0aEFyZ3VtZW50czoobnVsbGFibGUgTlNBcnJheSAqKWFyZ3VtZW50czsKIAog
LyohCiBAbWV0aG9kCkBAIC00OTIsNyArNDk0LDcgQEAgdHlwZWRlZiBpZCBfTnVsbGFibGUgSlNW
YWx1ZVByb3BlcnR5OwogQHBhcmFtIGFyZ3VtZW50cyBUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8g
dGhlIG1ldGhvZC4KIEByZXN1bHQgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgbWV0aG9kIGNhbGwu
CiAqLwotLSAobm9ubnVsbCBKU1ZhbHVlICopaW52b2tlTWV0aG9kOihub25udWxsIE5TU3RyaW5n
ICopbWV0aG9kIHdpdGhBcmd1bWVudHM6KG51bGxhYmxlIE5TQXJyYXkgKilhcmd1bWVudHM7Cist
IChKU1ZhbHVlICopaW52b2tlTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCB3aXRoQXJndW1lbnRz
OihudWxsYWJsZSBOU0FycmF5ICopYXJndW1lbnRzOwogCiBAZW5kCiAKQEAgLTUxNSw3ICs1MTcs
NyBAQCB0eXBlZGVmIGlkIF9OdWxsYWJsZSBKU1ZhbHVlUHJvcGVydHk7CiBAcmVzdWx0IEEgbmV3
bHkgYWxsb2NhdGVkIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcwogIG5h
bWVkIDxjb2RlPng8L2NvZGU+IGFuZCA8Y29kZT55PC9jb2RlPiwgd2l0aCB2YWx1ZXMgZnJvbSB0
aGUgQ0dQb2ludC4KICovCi0rIChub25udWxsIEpTVmFsdWUgKil2YWx1ZVdpdGhQb2ludDooQ0dQ
b2ludClwb2ludCBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKKysgKEpT
VmFsdWUgKil2YWx1ZVdpdGhQb2ludDooQ0dQb2ludClwb2ludCBpbkNvbnRleHQ6KEpTQ29udGV4
dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtNTIzLDcgKzUyNSw3IEBAIHR5cGVkZWYg
aWQgX051bGxhYmxlIEpTVmFsdWVQcm9wZXJ0eTsKIEByZXN1bHQgQSBuZXdseSBhbGxvY2F0ZWQg
SmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzCiAgbmFtZWQgPGNvZGU+bG9j
YXRpb248L2NvZGU+IGFuZCA8Y29kZT5sZW5ndGg8L2NvZGU+LCB3aXRoIHZhbHVlcyBmcm9tIHRo
ZSBOU1JhbmdlLgogKi8KLSsgKG5vbm51bGwgSlNWYWx1ZSAqKXZhbHVlV2l0aFJhbmdlOihOU1Jh
bmdlKXJhbmdlIGluQ29udGV4dDoobm9ubnVsbCBKU0NvbnRleHQgKiljb250ZXh0OworKyAoSlNW
YWx1ZSAqKXZhbHVlV2l0aFJhbmdlOihOU1JhbmdlKXJhbmdlIGluQ29udGV4dDooSlNDb250ZXh0
ICopY29udGV4dDsKIAogLyohCiBAbWV0aG9kCkBAIC01MzIsNyArNTM0LDcgQEAgQ3JlYXRlIGEg
SlNWYWx1ZSBmcm9tIGEgQ0dSZWN0LgogQHJlc3VsdCBBIG5ld2x5IGFsbG9jYXRlZCBKYXZhU2Ny
aXB0IG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMKICBuYW1lZCA8Y29kZT54PC9jb2RlPiwg
PGNvZGU+eTwvY29kZT4sIDxjb2RlPndpZHRoPC9jb2RlPiwgYW5kIDxjb2RlPmhlaWdodDwvY29k
ZT4sIHdpdGggdmFsdWVzIGZyb20gdGhlIENHUmVjdC4KICovCi0rIChub25udWxsIEpTVmFsdWUg
Kil2YWx1ZVdpdGhSZWN0OihDR1JlY3QpcmVjdCBpbkNvbnRleHQ6KG5vbm51bGwgSlNDb250ZXh0
ICopY29udGV4dDsKKysgKEpTVmFsdWUgKil2YWx1ZVdpdGhSZWN0OihDR1JlY3QpcmVjdCBpbkNv
bnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIC8qIQogQG1ldGhvZApAQCAtNTQwLDcgKzU0
Miw3IEBAIENyZWF0ZSBhIEpTVmFsdWUgZnJvbSBhIENHUmVjdC4KIEByZXN1bHQgQSBuZXdseSBh
bGxvY2F0ZWQgSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzCiAgbmFtZWQg
PGNvZGU+d2lkdGg8L2NvZGU+IGFuZCA8Y29kZT5oZWlnaHQ8L2NvZGU+LCB3aXRoIHZhbHVlcyBm
cm9tIHRoZSBDR1NpemUuCiAqLwotKyAobm9ubnVsbCBKU1ZhbHVlICopdmFsdWVXaXRoU2l6ZToo
Q0dTaXplKXNpemUgaW5Db250ZXh0Oihub25udWxsIEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChK
U1ZhbHVlICopdmFsdWVXaXRoU2l6ZTooQ0dTaXplKXNpemUgaW5Db250ZXh0OihKU0NvbnRleHQg
Kiljb250ZXh0OwogCiAvKiEKIEBtZXRob2QKQEAgLTYwMSw4ICs2MDMsOCBAQCBDcmVhdGUgYSBK
U1ZhbHVlIGZyb20gYSBDR1JlY3QuCiAqLwogQGludGVyZmFjZSBKU1ZhbHVlIChTdWJzY3JpcHRT
dXBwb3J0KQogCi0tIChub25udWxsIEpTVmFsdWUgKilvYmplY3RGb3JLZXllZFN1YnNjcmlwdDoo
SlNWYWx1ZVByb3BlcnR5KWtleTsKLS0gKG5vbm51bGwgSlNWYWx1ZSAqKW9iamVjdEF0SW5kZXhl
ZFN1YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsKKy0gKEpTVmFsdWUgKilvYmplY3RGb3JLZXll
ZFN1YnNjcmlwdDooSlNWYWx1ZVByb3BlcnR5KWtleTsKKy0gKEpTVmFsdWUgKilvYmplY3RBdElu
ZGV4ZWRTdWJzY3JpcHQ6KE5TVUludGVnZXIpaW5kZXg7CiAtICh2b2lkKXNldE9iamVjdDoobnVs
bGFibGUgaWQpb2JqZWN0IGZvcktleWVkU3Vic2NyaXB0OihKU1ZhbHVlUHJvcGVydHkpa2V5Owog
LSAodm9pZClzZXRPYmplY3Q6KG51bGxhYmxlIGlkKW9iamVjdCBhdEluZGV4ZWRTdWJzY3JpcHQ6
KE5TVUludGVnZXIpaW5kZXg7CiAKQEAgLTYxOSwxNCArNjIxLDE0IEBAIENyZWF0ZSBhIEpTVmFs
dWUgZnJvbSBhIENHUmVjdC4KIEBhYnN0cmFjdCBDcmVhdGVzIGEgSlNWYWx1ZSwgd3JhcHBpbmcg
aXRzIEMgQVBJIGNvdW50ZXJwYXJ0LgogQHJlc3VsdCBUaGUgT2JqZWN0aXZlLUMgQVBJIGVxdWl2
YWxlbnQgb2YgdGhlIHNwZWNpZmllZCBKU1ZhbHVlUmVmLgogKi8KLSsgKG5vbm51bGwgSlNWYWx1
ZSAqKXZhbHVlV2l0aEpTVmFsdWVSZWY6KG5vbm51bGwgSlNWYWx1ZVJlZil2YWx1ZSBpbkNvbnRl
eHQ6KG5vbm51bGwgSlNDb250ZXh0ICopY29udGV4dDsKKysgKEpTVmFsdWUgKil2YWx1ZVdpdGhK
U1ZhbHVlUmVmOihKU1ZhbHVlUmVmKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4
dDsKIAogLyohCiBAcHJvcGVydHkKIEBhYnN0cmFjdCBSZXR1cm5zIHRoZSBDIEFQSSBjb3VudGVy
cGFydCB3cmFwcGVkIGJ5IGEgSlNDb250ZXh0LgogQHJlc3VsdCBUaGUgQyBBUEkgZXF1aXZhbGVu
dCBvZiB0aGlzIEpTVmFsdWUuCiAqLwotQHByb3BlcnR5IChyZWFkb25seSwgbm9ubnVsbCkgSlNW
YWx1ZVJlZiBKU1ZhbHVlUmVmOworQHByb3BlcnR5IChyZWFkb25seSkgSlNWYWx1ZVJlZiBKU1Zh
bHVlUmVmOwogQGVuZAogCiAjaWZkZWYgX19jcGx1c3BsdXMKQEAgLTY2NSwzMiArNjY3LDM0IEBA
IGV4dGVybiAiQyIgewogLyohCiBAY29uc3QgCiAqLwotSlNfRVhQT1JUIGV4dGVybiBOU1N0cmlu
ZyAqIGNvbnN0IF9Ob25udWxsIEpTUHJvcGVydHlEZXNjcmlwdG9yV3JpdGFibGVLZXk7CitKU19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JXcml0YWJs
ZUtleTsKIC8qIQogQGNvbnN0IAogKi8KLUpTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfTm9ubnVsbCBKU1Byb3BlcnR5RGVzY3JpcHRvckVudW1lcmFibGVLZXk7CitKU19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JFbnVtZXJhYmxlS2V5
OwogLyohCiBAY29uc3QgCiAqLwotSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9O
b25udWxsIEpTUHJvcGVydHlEZXNjcmlwdG9yQ29uZmlndXJhYmxlS2V5OworSlNfRVhQT1JUIGV4
dGVybiBOU1N0cmluZyAqIGNvbnN0IEpTUHJvcGVydHlEZXNjcmlwdG9yQ29uZmlndXJhYmxlS2V5
OwogLyohCiBAY29uc3QgCiAqLwotSlNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9O
b25udWxsIEpTUHJvcGVydHlEZXNjcmlwdG9yVmFsdWVLZXk7CitKU19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgSlNQcm9wZXJ0eURlc2NyaXB0b3JWYWx1ZUtleTsKIC8qIQogQGNvbnN0
IAogKi8KLUpTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVsbCBKU1Byb3Bl
cnR5RGVzY3JpcHRvckdldEtleTsKK0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBK
U1Byb3BlcnR5RGVzY3JpcHRvckdldEtleTsKIC8qIQogQGNvbnN0IAogKi8KLUpTX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfTm9ubnVsbCBKU1Byb3BlcnR5RGVzY3JpcHRvclNldEtl
eTsKK0pTX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBKU1Byb3BlcnR5RGVzY3JpcHRv
clNldEtleTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9IC8vIGV4dGVybiAiQyIKICNlbmRpZgog
CitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCiAKICNlbmRpZiAvLyBKU1ZhbHVlX2gK
</data>
<flag name="review"
          id="365969"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>