<?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>189636</bug_id>
          
          <creation_ts>2018-09-14 15:03:44 -0700</creation_ts>
          <short_desc>Expose XPCServiceMain on a WebProcess object rather than WKProcessPool</short_desc>
          <delta_ts>2018-09-17 11:46:54 -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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1459909</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 15:03:44 -0700</bug_when>
    <thetext>Expose XPCServiceMain on a WebProcess object rather than WKProcessPool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459917</commentid>
    <comment_count>1</comment_count>
      <attachid>349814</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 15:13:46 -0700</bug_when>
    <thetext>Created attachment 349814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459928</commentid>
    <comment_count>2</comment_count>
      <attachid>349814</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-09-14 15:53:35 -0700</bug_when>
    <thetext>Comment on attachment 349814
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        Confusingly I had to un-unify the build of NetscapePluginMac.mm because it introduced weird naming conflicts
&gt; +        because it includes Carbon.h which doesn&apos;t play nicely with other .mm files.  Specifically Rect and TextEncoding conflicted.

That means that an upstream file does &apos;using namespace WebCore&apos; or something. Judging by the sorting I&apos;d guess it&apos;s one of the ones in PluginProcess/mac. Fixing that is the right way to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459929</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-09-14 15:54:02 -0700</bug_when>
    <thetext>Like, say, PluginProcessMac.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459969</commentid>
    <comment_count>4</comment_count>
      <attachid>349832</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 17:14:20 -0700</bug_when>
    <thetext>Created attachment 349832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459982</commentid>
    <comment_count>5</comment_count>
      <attachid>349832</attachid>
    <who name="">mitz</who>
    <bug_when>2018-09-14 17:32:05 -0700</bug_when>
    <thetext>Comment on attachment 349832
Patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcess.h:30
&gt; +@interface WKWebProcess : NSObject

The class needs an availability annotation (and also something to take care of visibility, I think; WK_CLASS_AVAILABLE should take care of both.

We normally underscore-prefix private classes (but not public and internal classes) so I’d name this _WKWebProcess.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcess.h:34
&gt; ++ (int)main;

Why this is exposed as a method is something I don’t understand. The prevailing pattern is for “main” functions to be exposed as functions. Examples include NSApplicationMain(), UIApplicationMain() and xpc_main().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460029</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 22:43:44 -0700</bug_when>
    <thetext>(In reply to mitz from comment #5)
&gt; Comment on attachment 349832 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349832&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcess.h:30
&gt; &gt; +@interface WKWebProcess : NSObject
&gt; 
&gt; The class needs an availability annotation (and also something to take care
&gt; of visibility, I think; WK_CLASS_AVAILABLE should take care of both.

Totally forgot the availability annotations :(

&gt; Why this is exposed as a method is something I don’t understand. The
&gt; prevailing pattern is for “main” functions to be exposed as functions.
&gt; Examples include NSApplicationMain(), UIApplicationMain() and xpc_main().

NSThread has a main for something similar, though not exactly the same.  Numerous internal projects use an ObjC main call like this.  I did it in ObjC to get closer to a world where we have an ObjC bundle API and because we don&apos;t have a precedent for availability annotations in C APIs in WebKit, but we do in JSC so I&apos;ll do something similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460030</commentid>
    <comment_count>7</comment_count>
      <attachid>349852</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 22:46:06 -0700</bug_when>
    <thetext>Created attachment 349852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460063</commentid>
    <comment_count>8</comment_count>
      <attachid>349864</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-15 20:40:03 -0700</bug_when>
    <thetext>Created attachment 349864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460066</commentid>
    <comment_count>9</comment_count>
      <attachid>349864</attachid>
    <who name="">mitz</who>
    <bug_when>2018-09-15 21:02:46 -0700</bug_when>
    <thetext>Comment on attachment 349864
Patch

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

(In reply to Alex Christensen from comment #6)
&gt; I did it in
&gt; ObjC to get closer to a world where we have an ObjC bundle API

We do have Objective-C bundle API (it’s the only bundle API that Safari uses on iOS), in WebProcess/InjectedBundle/API/{Cocoa,mac}. An equivalent, modern place to put this function declaration would be WKWebProcessPlugIn.h. But since this API isn’t meant to be called from bundle code, perhaps a new separate header under API/Cocoa (that imports WKFoundation.h and uses WK_API_AVAILABLE) would be even better.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.h:81
&gt; +WK_EXPORT int WKWebProcessMain(int argc, const char** argv);

Still no availability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460166</commentid>
    <comment_count>10</comment_count>
      <attachid>349887</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-17 09:01:53 -0700</bug_when>
    <thetext>Created attachment 349887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460184</commentid>
    <comment_count>11</comment_count>
      <attachid>349894</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-17 09:47:28 -0700</bug_when>
    <thetext>Created attachment 349894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460250</commentid>
    <comment_count>12</comment_count>
      <attachid>349894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 11:45:54 -0700</bug_when>
    <thetext>Comment on attachment 349894
Patch

Clearing flags on attachment: 349894

Committed r236075: &lt;https://trac.webkit.org/changeset/236075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460251</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 11:45:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460252</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-17 11:46:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/44528499&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349814</attachid>
            <date>2018-09-14 15:13:46 -0700</date>
            <delta_ts>2018-09-14 17:14:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189636-20180914151345.patch</filename>
            <type>text/plain</type>
            <size>12523</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwMTkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIFhQQ1Nl
cnZpY2VNYWluIG9uIGEgV2ViUHJvY2VzcyBvYmplY3QgcmF0aGVyIHRoYW4gV0tQcm9jZXNzUG9v
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29uZnVz
aW5nbHkgSSBoYWQgdG8gdW4tdW5pZnkgdGhlIGJ1aWxkIG9mIE5ldHNjYXBlUGx1Z2luTWFjLm1t
IGJlY2F1c2UgaXQgaW50cm9kdWNlZCB3ZWlyZCBuYW1pbmcgY29uZmxpY3RzCisgICAgICAgIGJl
Y2F1c2UgaXQgaW5jbHVkZXMgQ2FyYm9uLmggd2hpY2ggZG9lc24ndCBwbGF5IG5pY2VseSB3aXRo
IG90aGVyIC5tbSBmaWxlcy4gIFNwZWNpZmljYWxseSBSZWN0IGFuZCBUZXh0RW5jb2RpbmcgY29u
ZmxpY3RlZC4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQb29s
IF93ZWJDb250ZW50UHJvY2Vzc1hQQ01haW5dKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5tbTogQWRkZWQuCisgICAg
ICAgICgrW1dLV2ViUHJvY2VzcyBtYWluXSk6CisKIDIwMTgtMDktMTQgIEdlb2ZmcmV5IEdhcmVu
ICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGFyaWZ5IHRoZSBjb25maWd1cmF0aW9u
IHVzZWQgYnkgV0tVSURlbGVnYXRlJ3MgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCw2ICs0NzgsNyBAQCBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlCiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL21hYy9XS0J1bmRsZU1hYy5tbQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tCiAKK1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5tbQogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5tbQogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0K
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhp
dFRlc3RSZXN1bHQubW0KQEAgLTUwMCw3ICs1MDEsNyBAQCBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL21hYy9JbmplY3RlZEJ1CiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0
b3JhZ2VNYW5hZ2VyLmNwcAogCi1XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTWFjLm1tCitXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBl
UGx1Z2luTWFjLm1tIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9Q
bHVnaW5Qcm94eU1hYy5tbQogCiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2wubW0JKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw2IEBA
CiAjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKLSNpbXBvcnQgIlhQQ1NlcnZp
Y2VFbnRyeVBvaW50LmgiCiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCIKICNpbXBv
cnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0Rvd25sb2Fk
RGVsZWdhdGUuaCIKQEAgLTE4MiwxMSArMTgxLDYgQEAgKyAoTlNVUkwgKilfd2Vic2l0ZURhdGFV
UkxGb3JDb250YWluZXJXaQogICAgIHJldHVybiBbdXJsIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAIldlYnNpdGVEYXRhIiBpc0RpcmVjdG9yeTpZRVNdOwogfQogCi0rIChpbnQpX3dlYkNv
bnRlbnRQcm9jZXNzWFBDTWFpbgotewotICAgIHJldHVybiBXZWJLaXQ6OlhQQ1NlcnZpY2VNYWlu
KCk7Ci19Ci0KIC0gKHZvaWQpX3NldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNB
cnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7CiAgICAg
X3Byb2Nlc3NQb29sLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oKF9f
YnJpZGdlIENGQXJyYXlSZWYpY2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBob3N0KTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NzksOCArNzksNiBAQAogCiAtICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9u
bHlJZkNhblJlcXVlc3Q6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKDEyLjApKTsKIAotKyAoaW50KV93ZWJDb250ZW50UHJvY2Vzc1hQQ01haW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0K
IC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50
IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZVN0b3JhZ2VQcm9jZXNz
OwogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzNjAxNykK
KysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTEwNjIsNiArMTA2Miw4IEBACiAJCTVDQjIzNzhDMURGMERFNkUwMDExN0FB
MyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDQjIzNzg5MURGMERENDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9s
aWNpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1Q0IyMzc4RTFERjBFMEQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjIzNzhE
MURGMEUwQzIwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oICovOyB9Owog
CQk1Q0JDOUI4RTFDNjUyQ0EwMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0JDOUI4OTFDNjUyNEE1MDBB
OEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggKi87IH07CisJCTVDQzIzODdBMjE0QzY2MUIwMEEy
ODcwNSAvKiBXS1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQzIzODc4MjE0QzY2MTAwMEEyODcwNSAvKiBXS1dlYlByb2Nlc3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1Q0MyMzg3
QjIxNEM2OTk2MDBBMjg3MDUgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU1QjdGOTExRTdBRUQyMDBCQTY3Njcg
LyogTmV0c2NhcGVQbHVnaW5NYWMubW0gKi87IH07CiAJCTVDRDI4NjUxMUU3MjM1OTkwMDk0RkRD
OCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0QyODY0RDFFNzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50
UnVsZUxpc3RTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsg
fTsgfTsKIAkJNUNEMjg2NTMxRTcyMzVBQTAwOTRGREM4IC8qIF9XS1VzZXJDb250ZW50RmlsdGVy
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNEMjg2NDkxRTcyMkY0NDAwOTRGREM4IC8qIF9XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDRDI4
NjU0MUU3MjM1QjEwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNEMjg2NEExRTcyMkY0NDAwOTRGREM4
IC8qIFdLQ29udGVudFJ1bGVMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVi
bGljLCApOyB9OyB9OwpAQCAtMzQ0OCw2ICszNDUwLDggQEAKIAkJNUNCMjM3OEQxREYwRTBDMjAw
MTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDQkM5Qjg5MUM2NTI0QTUwMEE4RkRDRiAvKiBOZXR3b3JrRGF0
YVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0RhdGFUYXNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQkM5QjhCMUM2NTI1NzMwMEE4RkRD
RiAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE5ldHdvcmtEYXRhVGFza0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1Q0MyMzg3ODIxNEM2NjEwMDBBMjg3MDUgLyogV0tXZWJQcm9jZXNzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1Q0MyMzg3OTIxNEM2NjEwMDBBMjg3MDUgLyogV0tXZWJQcm9j
ZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9j
ZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0M1REI5MTIxNDg4RTE2MDA2
Q0I4QTggLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDRDI4NjQ5MUU3MjJGNDQwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVu
dEZpbHRlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVXNl
ckNvbnRlbnRGaWx0ZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
RDI4NjRBMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTM4OCw2ICs1MzkyLDggQEAKIAkJMUYwMTgxNjgxODU4REMxNTAw
RjkyODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk1Q0MyMzg3ODIxNEM2NjEwMDBBMjg3MDUgLyogV0tXZWJQcm9jZXNzLmggKi8sCisJ
CQkJNUNDMjM4NzkyMTRDNjYxMDAwQTI4NzA1IC8qIFdLV2ViUHJvY2Vzcy5tbSAqLywKIAkJCQkx
QUEyRTU2NTE4RDc3NTA4MDAzODE0QkQgLyogV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5o
ICovLAogCQkJCTFBQTJFNTY0MThENzc1MDgwMDM4MTRCRCAvKiBXS1dlYlByb2Nlc3NCdW5kbGVQ
YXJhbWV0ZXJzLm1tICovLAogCQkJCTM3NzUxMjJFMURGMERDOEIwMDhBMzUxQyAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaCAqLywKQEAgLTk3NzQsNiArOTc4MCw3IEBACiAJ
CQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmVS
ZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUNDMjM4N0EyMTRDNjYxQjAwQTI4NzA1IC8q
IFdLV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBMkU1NjcxOEQ3NzUwODAwMzgx
NEJEIC8qIFdLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDOTg5RDgyMTYxQTdFNUQwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW4uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOEYyRjJCMTYyNzNBMkMwMDVGQUNCNSAvKiBXS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA2NzEsNiAr
MTA2NzgsNyBAQAogCQkJCTJEOTJBNzdBMjEyQjZBNjEwMEY0OTNGRCAvKiBNb2R1bGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDMyMTJDRjlGMDAwMTI4QUZEIC8qIE5ldHNjYXBlQnJv
d3NlckZ1bmNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ0MjEyQ0Y5RjAwMDEyOEFG
RCAvKiBOZXRzY2FwZVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1Q0MyMzg3QjIxNEM2
OTk2MDBBMjg3MDUgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDkyQTc5NjIxMkI2QURBMDBGNDkzRkQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDUyMTJDRjlGMDAwMTI4QUZEIC8qIE5ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAv
KiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxF
RAorCitAaW50ZXJmYWNlIFdLV2ViUHJvY2VzcyA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlw
ZSlpbml0IE5TX1VOQVZBSUxBQkxFOworCisrIChpbnQpbWFpbjsKKworQGVuZAorCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLm1tCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vzcy5oIgorCisjaWYgV0tfQVBJ
X0VOQUJMRUQKKworI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKKworQGltcGxlbWVu
dGF0aW9uIFdLV2ViUHJvY2VzcworCisrIChpbnQpbWFpbgoreworICAgIHJldHVybiBXZWJLaXQ6
OlhQQ1NlcnZpY2VNYWluKCk7Cit9CisKK0BlbmQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349832</attachid>
            <date>2018-09-14 17:14:20 -0700</date>
            <delta_ts>2018-09-14 22:46:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189636-20180914171419.patch</filename>
            <type>text/plain</type>
            <size>16318</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwMTkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIFhQQ1Nl
cnZpY2VNYWluIG9uIGEgV2ViUHJvY2VzcyBvYmplY3QgcmF0aGVyIHRoYW4gV0tQcm9jZXNzUG9v
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfd2ViQ29udGVudFByb2Nlc3NYUENNYWlu
XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
cy5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3MubW06IEFkZGVkLgorICAgICAgICAoK1tXS1dlYlByb2Nlc3MgbWFpbl0p
OgorCiAyMDE4LTA5LTE0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ2xhcmlmeSB0aGUgY29uZmlndXJhdGlvbiB1c2VkIGJ5IFdLVUlEZWxlZ2F0ZSdzIGNy
ZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAko
cmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzgsNiArNDc4LDcgQEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5k
bGVNYWMubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlUGFn
ZUJhbm5lck1hYy5tbQogCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3MubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc0J1bmRsZVBhcmFtZXRlcnMubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRy
b2xsZXJQcm94eU1hYy5tbQkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTM3LDggKzM3LDYgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgogCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5
OjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRX
aW5kb3dIYXNGb2N1cykKQEAgLTkwLDcgKzg4LDcgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJv
eHk6OnBsYXRmb3JtR2VvbQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKLXZvaWQg
UGx1Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBJ
bnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IEludFJlY3QmIHZp
ZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogewogICAgIG1fcGx1Z2luLT53aW5kb3dBbmRWaWV3RnJh
bWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMpOwogfQpAQCAtMTM1LDcgKzEzMyw3IEBAIHZvaWQgUGx1Z2luQ29udHJv
bGxlclByb3h5Ojp1cGRhdGVMYXllckgKICNlbmRpZgogICAgIH0KIAotICAgIG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+c2V0Q29sb3JTcGFjZShzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBtX2xh
eWVySG9zdGluZ0NvbnRleHQtPnNldENvbG9yU3BhY2UoV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VS
ZWYoKSk7CiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRDb2xvck1hdGNoVW50YWdnZWRD
b250ZW50KHRydWUpOwogCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIo
cGxhdGZvcm1MYXllcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2Uv
V2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDggKzU2LDYgQEAKICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIGNvbnN0
IENGU3RyaW5nUmVmIGtMU1BsdWdJbkJ1bmRsZUlkZW50aWZpZXJLZXkgPSBDRlNUUigiTFNQbHVn
SW5CdW5kbGVJZGVudGlmaWVyS2V5Iik7CiAKIC8vIFRoZXNlIHZhbHVlcyB3ZXJlIGNob3NlbiB0
byBtYXRjaCBkZWZhdWx0IE5TVVJMQ2FjaGUgc2l6ZXMgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0
aW5nLgpAQCAtNDAxLDcgKzM5OSw3IEBAIHN0YXRpYyBOU1J1bm5pbmdBcHBsaWNhdGlvbiAqcmVw
bGFjZWROU1cKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChQbHVnaW5Qcm9jZXNzOjpzaW5n
bGV0b24oKS5sYXVuY2hBcHBsaWNhdGlvbkF0VVJMKFVSTCh1cmwpLnN0cmluZygpLCBhcmd1bWVu
dHMpKSB7CisgICAgaWYgKFBsdWdpblByb2Nlc3M6OnNpbmdsZXRvbigpLmxhdW5jaEFwcGxpY2F0
aW9uQXRVUkwoV2ViQ29yZTo6VVJMKHVybCkuc3RyaW5nKCksIGFyZ3VtZW50cykpIHsKICAgICAg
ICAgaWYgKGVycm9yKQogICAgICAgICAgICAgKmVycm9yID0gbmlsOwogICAgICAgICByZXR1cm4g
bmlsOwpAQCAtNTM0LDcgKzUzMiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHIKICAgICBpbml0aWFsaXplQ29jb2FPdmVycmlkZXMoKTsKIAogICAgIGJvb2wgZXhw
ZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZCA9IHBhcmFtZXRlcnMuZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEuZ2V0KCJleHBlcmltZW50YWwtc2FuZGJveC1wbHVnaW4iKSA9PSAi
MSI7Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRFeHBl
cmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKGV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQpOworICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVz
RW5hYmxlZChleHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKTsKIAogICAg
IC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gcHJveHkgU2V0Q3Vyc29yIGNhbGxzIG92
ZXIgdG8gdGhlIFVJIHByb2Nlc3MgaW5zdGVhZCBvZgogICAgIC8vIGFsbG93aW5nIHBsdWctaW5z
IHRvIGNoYW5nZSB0aGUgbW91c2UgY3Vyc29yIGF0IGFueSB0aW1lLgpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0JKHJldmlz
aW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw2IEBACiAjaW1wb3J0ICJXZWJD
b29raWVNYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2lt
cG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKLSNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50Lmgi
CiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRp
b25TZXNzaW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0Rvd25sb2FkRGVsZWdhdGUuaCIKQEAg
LTE4MiwxMSArMTgxLDYgQEAgKyAoTlNVUkwgKilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJX
aQogICAgIHJldHVybiBbdXJsIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVE
YXRhIiBpc0RpcmVjdG9yeTpZRVNdOwogfQogCi0rIChpbnQpX3dlYkNvbnRlbnRQcm9jZXNzWFBD
TWFpbgotewotICAgIHJldHVybiBXZWJLaXQ6OlhQQ1NlcnZpY2VNYWluKCk7Ci19Ci0KIC0gKHZv
aWQpX3NldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmlj
YXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7CiAgICAgX3Byb2Nlc3NQb29sLT5h
bGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViS2l0OjpXZWJDZXJ0aWZpY2F0
ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oKF9fYnJpZGdlIENGQXJyYXlS
ZWYpY2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBob3N0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzksOCArNzksNiBAQAog
CiAtICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q6
KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEy
LjApKTsKIAotKyAoaW50KV93ZWJDb250ZW50UHJvY2Vzc1hQQ01haW4gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KIC8vIFRlc3Qgb25seS4g
U2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUg
cnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZVN0b3JhZ2VQcm9jZXNzOwogLSAodm9pZClfdGVy
bWluYXRlTmV0d29ya1Byb2Nlc3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEw
NjIsNiArMTA2Miw3IEBACiAJCTVDQjIzNzhDMURGMERFNkUwMDExN0FBMyAvKiBfV0tXZWJzaXRl
UG9saWNpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDQjIzNzg5MURGMERENDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0IyMzc4RTFERjBF
MEQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjIzNzhEMURGMEUwQzIwMDExN0FB
MyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oICovOyB9OwogCQk1Q0JDOUI4RTFDNjUy
Q0EwMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0d29y
a0RhdGFUYXNrLmggKi87IH07CisJCTVDQzIzODdBMjE0QzY2MUIwMEEyODcwNSAvKiBXS1dlYlBy
b2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
QzIzODc4MjE0QzY2MTAwMEEyODcwNSAvKiBXS1dlYlByb2Nlc3MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0QyODY1MTFFNzIzNTk5MDA5NEZE
QzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUNEMjg2NEQxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7
IH07IH07CiAJCTVDRDI4NjUzMUU3MjM1QUEwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRl
clByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDRDI4NjQ5MUU3MjJGNDQwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0Qy
ODY1NDFFNzIzNUIxMDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRDI4NjRBMUU3MjJGNDQwMDk0RkRD
OCAvKiBXS0NvbnRlbnRSdWxlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKQEAgLTM0NDgsNiArMzQ0OSw4IEBACiAJCTVDQjIzNzhEMURGMEUwQzIw
MDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0d29ya0Rh
dGFUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtEYXRhVGFz
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZE
Q0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNUNDMjM4NzgyMTRDNjYxMDAwQTI4NzA1IC8qIFdLV2ViUHJvY2Vzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNDMjM4NzkyMTRDNjYxMDAwQTI4NzA1IC8qIFdLV2ViUHJv
Y2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJv
Y2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNDNURCOTEyMTQ4OEUxNjAw
NkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1Q0QyODY0OTFFNzIyRjQ0MDA5NEZEQzggLyogX1dLVXNlckNvbnRl
bnRGaWx0ZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Vz
ZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Q0QyODY0QTFFNzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZW50UnVsZUxpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTUzODgsNiArNTM5MSw4IEBACiAJCTFGMDE4MTY4MTg1OERDMTUw
MEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNUNDMjM4NzgyMTRDNjYxMDAwQTI4NzA1IC8qIFdLV2ViUHJvY2Vzcy5oICovLAor
CQkJCTVDQzIzODc5MjE0QzY2MTAwMEEyODcwNSAvKiBXS1dlYlByb2Nlc3MubW0gKi8sCiAJCQkJ
MUFBMkU1NjUxOEQ3NzUwODAwMzgxNEJEIC8qIFdLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMu
aCAqLywKIAkJCQkxQUEyRTU2NDE4RDc3NTA4MDAzODE0QkQgLyogV0tXZWJQcm9jZXNzQnVuZGxl
UGFyYW1ldGVycy5tbSAqLywKIAkJCQkzNzc1MTIyRTFERjBEQzhCMDA4QTM1MUMgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlLmggKi8sCkBAIC05Nzc0LDYgKzk3NzksNyBAQAog
CQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNUUxQUZFOTE2QjIwQjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUUxQUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZl
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDQzIzODdBMjE0QzY2MUIwMEEyODcwNSAv
KiBXS1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTJFNTY3MThENzc1MDgwMDM4
MTRCRCAvKiBXS1dlYlByb2Nlc3NCdW5kbGVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzk4OUQ4MjE2MUE3RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNzUGx1Z0luLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzhGMkYyQjE2MjczQTJDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJmYWNlIFdLV2Vi
UHJvY2VzcyA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxF
OworCisrIChpbnQpbWFpbjsKKworQGVuZAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIldLV2ViUHJvY2Vzcy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAi
WFBDU2VydmljZUVudHJ5UG9pbnQuaCIKKworQGltcGxlbWVudGF0aW9uIFdLV2ViUHJvY2Vzcwor
CisrIChpbnQpbWFpbgoreworICAgIHJldHVybiBXZWJLaXQ6OlhQQ1NlcnZpY2VNYWluKCk7Cit9
CisKK0BlbmQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdE1hYy5tbQkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDkgKzQ4LDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNz
aWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAKLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQogQGltcGxlbWVu
dGF0aW9uIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QKIAogLSAodm9pZClkZWFsbG9jCkBA
IC0xMDAsNyArOTcsNyBAQCAtICh2b2lkKWFjY2Vzc2liaWxpdHlTZXRWYWx1ZTooaWQpdmFsdWUg
CiAKIC0gKE5TUG9pbnQpY29udmVydFNjcmVlblBvaW50VG9Sb290VmlldzooTlNQb2ludClwb2lu
dAogewotICAgIHJldHVybiBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoSW50UG9pbnQocG9pbnQu
eCwgcG9pbnQueSkpOworICAgIHJldHVybiBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoV2ViQ29y
ZTo6SW50UG9pbnQocG9pbnQueCwgcG9pbnQueSkpOwogfQogCiAtIChOU0FycmF5ICopYWNjZXNz
aWJpbGl0eUFjdGlvbk5hbWVzCkBAIC0xNTIsOCArMTQ5LDggQEAgLSAoaWQpYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOihOU1N0cgogICAgICAgICByZXR1cm4gW1tzZWxmIGFjY2Vzc2liaWxp
dHlSb290T2JqZWN0V3JhcHBlcl0gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0
ZV07CiAgICAgCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJp
bGl0eVNpemVBdHRyaWJ1dGVdKSB7Ci0gICAgICAgIGNvbnN0IEludFNpemUmIHMgPSBtX3BhZ2Ut
PnNpemUoKTsKLSAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6TlNNYWtlU2l6
ZShzLndpZHRoKCksIHMuaGVpZ2h0KCkpXTsKKyAgICAgICAgY29uc3QgYXV0byYgc2l6ZSA9IG1f
cGFnZS0+c2l6ZSgpOworICAgICAgICByZXR1cm4gW05TVmFsdWUgdmFsdWVXaXRoU2l6ZTpOU01h
a2VTaXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSldOwogICAgIH0KICAgICAKICAgICBp
ZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRy
aWJ1dGVdKQpAQCAtMTk4LDExICsxOTUsMTEgQEAgLSAoaWQpYWNjZXNzaWJpbGl0eUhpdFRlc3Q6
KE5TUG9pbnQpcG9pbgogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogCi0g
ICAgSW50UG9pbnQgY29udmVydGVkUG9pbnQgPSBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoSW50
UG9pbnQocG9pbnQpKTsKKyAgICBhdXRvIGNvbnZlcnRlZFBvaW50ID0gbV9wYWdlLT5zY3JlZW5U
b1Jvb3RWaWV3KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSk7CiAgICAgCiAgICAgLy8gU29tZSBw
bHVnaW5zIG1heSBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBhbmQg
aW5zZXQgb24gdGhlaXIgb3duLgogICAgIGJvb2wgYXBwbHlDb250ZW50T2Zmc2V0ID0gdHJ1ZTsK
LSAgICBpZiAoYXV0byBwbHVnaW5WaWV3ID0gV2ViUGFnZTo6cGx1Z2luVmlld0ZvckZyYW1lKG1f
cGFnZS0+bWFpbkZyYW1lKCkpKQorICAgIGlmIChhdXRvIHBsdWdpblZpZXcgPSBXZWJLaXQ6Oldl
YlBhZ2U6OnBsdWdpblZpZXdGb3JGcmFtZShtX3BhZ2UtPm1haW5GcmFtZSgpKSkKICAgICAgICAg
YXBwbHlDb250ZW50T2Zmc2V0ID0gIXBsdWdpblZpZXctPnBsdWdpbigpLT5wbHVnaW5IYW5kbGVz
Q29udGVudE9mZnNldEZvckFjY2Vzc2liaWxpdHlIaXRUZXN0KCk7CiAKICAgICBpZiAoYXBwbHlD
b250ZW50T2Zmc2V0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349852</attachid>
            <date>2018-09-14 22:46:06 -0700</date>
            <delta_ts>2018-09-15 20:40:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189636-20180914224605.patch</filename>
            <type>text/plain</type>
            <size>11585</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwMzApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIFhQQ1Nl
cnZpY2VNYWluIGluIGEgV2ViUHJvY2VzcyBoZWFkZXIgcmF0aGVyIHRoYW4gV0tQcm9jZXNzUG9v
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGEg
ZmV3IGJ1aWxkIGZhaWx1cmVzIGFsb25nIHRoZSB3YXkuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnVwZGF0ZUxheWVySG9zdGluZ0NvbnRl
eHQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OnJlcGxhY2VkTlNXb3Jrc3BhY2VfbGF1bmNoQXBwbGljYXRpb25BdFVS
TF9vcHRpb25zX2NvbmZpZ3VyYXRpb25fZXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgor
ICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFpbik6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06
CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3dlYkNvbnRlbnRQcm9jZXNzWFBDTWFpbl0pOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdLV2ViUHJvY2Vzc01haW4pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICgt
W1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgY29udmVydFNjcmVlblBvaW50VG9Sb290Vmll
dzpdKToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisKIDIwMTgtMDktMTQgIE1hdHQgTGV3aXMg
IDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM2MDIwLgpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250
cm9sbGVyUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHJldmlzaW9uIDIzNjAxNykKKysr
IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw2IEBACiAjaW1wb3J0IDxRdWFydHpDb3Jl
L1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KIAot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChib29s
IHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCkBAIC05MCw3ICs4OCw3IEBAIHZvaWQg
UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb20KICAgICBbQ0FUcmFuc2FjdGlvbiBj
b21taXRdOwogfQogCi12b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6d2luZG93QW5kVmlld0Zy
YW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCBjb25zdCBJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQordm9pZCBQbHVn
aW5Db250cm9sbGVyUHJveHk6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykKIHsKICAgICBtX3BsdWdp
bi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5h
dGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KQEAgLTEzNSw3ICsxMzMsNyBA
QCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRlTGF5ZXJICiAjZW5kaWYKICAgICB9
CiAKLSAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENvbG9yU3BhY2Uoc1JHQkNvbG9yU3Bh
Y2VSZWYoKSk7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRDb2xvclNwYWNlKFdlYkNv
cmU6OnNSR0JDb2xvclNwYWNlUmVmKCkpOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0
Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCh0cnVlKTsKIAogICAgIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+c2V0Um9vdExheWVyKHBsYXRmb3JtTGF5ZXIpOwpJbmRleDogU291cmNlL1dlYktpdC9Q
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkocmV2aXNpb24g
MjM2MDE3KQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw2IEBACiAjaW1wb3J0IDx3dGYvSGFz
aFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCiBjb25zdCBDRlN0cmluZ1JlZiBrTFNQbHVnSW5CdW5kbGVJZGVudGlmaWVy
S2V5ID0gQ0ZTVFIoIkxTUGx1Z0luQnVuZGxlSWRlbnRpZmllcktleSIpOwogCiAvLyBUaGVzZSB2
YWx1ZXMgd2VyZSBjaG9zZW4gdG8gbWF0Y2ggZGVmYXVsdCBOU1VSTENhY2hlIHNpemVzIGF0IHRo
ZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KQEAgLTQwMSw3ICszOTksNyBAQCBzdGF0aWMgTlNSdW5u
aW5nQXBwbGljYXRpb24gKnJlcGxhY2VkTlNXCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
UGx1Z2luUHJvY2Vzczo6c2luZ2xldG9uKCkubGF1bmNoQXBwbGljYXRpb25BdFVSTChVUkwodXJs
KS5zdHJpbmcoKSwgYXJndW1lbnRzKSkgeworICAgIGlmIChQbHVnaW5Qcm9jZXNzOjpzaW5nbGV0
b24oKS5sYXVuY2hBcHBsaWNhdGlvbkF0VVJMKFdlYkNvcmU6OlVSTCh1cmwpLnN0cmluZygpLCBh
cmd1bWVudHMpKSB7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICplcnJvciA9IG5p
bDsKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTUzNCw3ICs1MzIsNyBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByCiAgICAgaW5pdGlhbGl6ZUNvY29hT3ZlcnJpZGVz
KCk7CiAKICAgICBib29sIGV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQg
PSBwYXJhbWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgiZXhwZXJpbWVudGFsLXNh
bmRib3gtcGx1Z2luIikgPT0gIjEiOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZChl
eHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKTsKKyAgICBXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEV4cGVyaW1lbnRhbFBs
dWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQoZXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2Zp
bGVzRW5hYmxlZCk7CiAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIHRvIHByb3h5
IFNldEN1cnNvciBjYWxscyBvdmVyIHRvIHRoZSBVSSBwcm9jZXNzIGluc3RlYWQgb2YKICAgICAv
LyBhbGxvd2luZyBwbHVnLWlucyB0byBjaGFuZ2UgdGhlIG1vdXNlIGN1cnNvciBhdCBhbnkgdGlt
ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VF
bnRyeVBvaW50LmgJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgWFBDU2VydmljZUluaXRpYWxp
emVyKE9TT2JqZWN0UHRyPHgKICAgICBYUENTZXJ2aWNlVHlwZTo6c2luZ2xldG9uKCkuaW5pdGlh
bGl6ZShwYXJhbWV0ZXJzKTsKIH0KIAotaW50IFhQQ1NlcnZpY2VNYWluKCk7CitpbnQgWFBDU2Vy
dmljZU1haW4oaW50LCBjb25zdCBjaGFyKiopOwogCiB2b2lkIFhQQ1NlcnZpY2VFeGl0KE9TT2Jq
ZWN0UHRyPHhwY19vYmplY3RfdD4mJiBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24g
MjM2MDE3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIs
NyBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jCiAgICAgeHBjX2Nv
bm5lY3Rpb25fcmVzdW1lKHBlZXIpOwogfQogCi1pbnQgWFBDU2VydmljZU1haW4oKQoraW50IFhQ
Q1NlcnZpY2VNYWluKGludCwgY29uc3QgY2hhcioqKQogewogI2lmIGRlZmluZWQoX19pMzg2X18p
CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgZG9uZSBmb3IgdGhlIDMyLWJpdCBw
bHVnLWluIFhQQyBzZXJ2aWNlIHNvIHdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdApAQCAtMTYwLDcg
KzE2MCw3IEBAIGludCBYUENTZXJ2aWNlTWFpbigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY29u
c3QgY2hhcioqIGFyZ3YpCiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6WFBDU2VydmljZU1haW4oKTsK
KyAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNiBAQAogI2lt
cG9ydCAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50
cnlQb2ludC5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJf
V0tBdXRvbWF0aW9uU2Vzc2lvbkludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZERlbGVn
YXRlLmgiCkBAIC0xODIsMTEgKzE4MSw2IEBAICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9y
Q29udGFpbmVyV2kKICAgICByZXR1cm4gW3VybCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6
QCJXZWJzaXRlRGF0YSIgaXNEaXJlY3Rvcnk6WUVTXTsKIH0KIAotKyAoaW50KV93ZWJDb250ZW50
UHJvY2Vzc1hQQ01haW4KLXsKLSAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbigpOwot
fQotCiAtICh2b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkg
KiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewogICAgIF9wcm9j
ZXNzUG9vbC0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6V2Vi
Q2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRn
ZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hhaW4pKS5wdHIoKSwgaG9zdCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDgg
Kzc5LDYgQEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZD
YW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7CiAKLSsgKGludClfd2ViQ29udGVudFByb2Nlc3NYUENNYWluIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCiAvLyBU
ZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9j
ZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVTdG9yYWdlUHJvY2VzczsKIC0g
KHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3Bw
CShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBA
CiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZUdyb3VwUHJveHkuaCIKKyNpbmNsdWRlICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlSZWxlYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRPYnNlcnZlci5o
PgpAQCAtMjU5LDYgKzI2MCwxMSBAQCB2b2lkIFdLQnVuZGxlU2V0RGF0YWJhc2VRdW90YShXS0J1
bmRsZVJlCiAgICAgRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS5zZXRRdW90YSgqU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKCJmaWxlX18wIiksIHF1b3RhKTsK
IH0KIAoraW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQor
eworICAgIHJldHVybiBYUENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsKK30KKwogdm9pZCBXS0J1
bmRsZVJlbGVhc2VNZW1vcnkoV0tCdW5kbGVSZWYpCiB7CiAgICAgV2ViQ29yZTo6cmVsZWFzZU1l
bW9yeShXVEY6OkNyaXRpY2FsOjpZZXMsIFdURjo6U3luY2hyb25vdXM6Olllcyk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGUuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4
LDYgKzc4LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZQogCiBX
S19FWFBPUlQgV0tDb25uZWN0aW9uUmVmIFdLQnVuZGxlR2V0QXBwbGljYXRpb25Db25uZWN0aW9u
KFdLQnVuZGxlUmVmIGJ1bmRsZSk7CiAKK1dLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihp
bnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworICAgIAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVS
ZXBvcnRFeGNlcHRpb24oSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIGV4Y2VwdGlvbik7CiAKICNp
ZmRlZiBfX2NwbHVzcGx1cwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3RNYWMubW0JKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00OCw5ICs0OCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0FjY2Vzc2li
aWxpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KIEBpbXBsZW1lbnRh
dGlvbiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0CiAKIC0gKHZvaWQpZGVhbGxvYwpAQCAt
MTAwLDcgKzk3LDcgQEAgLSAodm9pZClhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6KGlkKXZhbHVlIAog
CiAtIChOU1BvaW50KWNvbnZlcnRTY3JlZW5Qb2ludFRvUm9vdFZpZXc6KE5TUG9pbnQpcG9pbnQK
IHsKLSAgICByZXR1cm4gbV9wYWdlLT5zY3JlZW5Ub1Jvb3RWaWV3KEludFBvaW50KHBvaW50Lngs
IHBvaW50LnkpKTsKKyAgICByZXR1cm4gbV9wYWdlLT5zY3JlZW5Ub1Jvb3RWaWV3KFdlYkNvcmU6
OkludFBvaW50KHBvaW50LngsIHBvaW50LnkpKTsKIH0KIAogLSAoTlNBcnJheSAqKWFjY2Vzc2li
aWxpdHlBY3Rpb25OYW1lcwpAQCAtMTUyLDggKzE0OSw4IEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTooTlNTdHIKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3NpYmlsaXR5
Um9vdE9iamVjdFdyYXBwZXJdIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVd
OwogICAgIAogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxp
dHlTaXplQXR0cmlidXRlXSkgewotICAgICAgICBjb25zdCBJbnRTaXplJiBzID0gbV9wYWdlLT5z
aXplKCk7Ci0gICAgICAgIHJldHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhTaXplOk5TTWFrZVNpemUo
cy53aWR0aCgpLCBzLmhlaWdodCgpKV07CisgICAgICAgIGNvbnN0IGF1dG8mIHNpemUgPSBtX3Bh
Z2UtPnNpemUoKTsKKyAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6TlNNYWtl
U2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpXTsKICAgICB9CiAgICAgCiAgICAgaWYg
KFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmli
dXRlXSkKQEAgLTE5OCwxMSArMTk1LDExIEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlIaXRUZXN0OihO
U1BvaW50KXBvaW4KICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IEludFBvaW50IGNvbnZlcnRlZFBvaW50ID0gbV9wYWdlLT5zY3JlZW5Ub1Jvb3RWaWV3KEludFBv
aW50KHBvaW50KSk7CisgICAgYXV0byBjb252ZXJ0ZWRQb2ludCA9IG1fcGFnZS0+c2NyZWVuVG9S
b290VmlldyhXZWJDb3JlOjpJbnRQb2ludChwb2ludCkpOwogICAgIAogICAgIC8vIFNvbWUgcGx1
Z2lucyBtYXkgYmUgYWJsZSB0byBmaWd1cmUgb3V0IHRoZSBzY3JvbGwgcG9zaXRpb24gYW5kIGlu
c2V0IG9uIHRoZWlyIG93bi4KICAgICBib29sIGFwcGx5Q29udGVudE9mZnNldCA9IHRydWU7Ci0g
ICAgaWYgKGF1dG8gcGx1Z2luVmlldyA9IFdlYlBhZ2U6OnBsdWdpblZpZXdGb3JGcmFtZShtX3Bh
Z2UtPm1haW5GcmFtZSgpKSkKKyAgICBpZiAoYXV0byBwbHVnaW5WaWV3ID0gV2ViS2l0OjpXZWJQ
YWdlOjpwbHVnaW5WaWV3Rm9yRnJhbWUobV9wYWdlLT5tYWluRnJhbWUoKSkpCiAgICAgICAgIGFw
cGx5Q29udGVudE9mZnNldCA9ICFwbHVnaW5WaWV3LT5wbHVnaW4oKS0+cGx1Z2luSGFuZGxlc0Nv
bnRlbnRPZmZzZXRGb3JBY2Nlc3NpYmlsaXR5SGl0VGVzdCgpOwogCiAgICAgaWYgKGFwcGx5Q29u
dGVudE9mZnNldCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349864</attachid>
            <date>2018-09-15 20:40:03 -0700</date>
            <delta_ts>2018-09-17 09:01:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189636-20180915204002.patch</filename>
            <type>text/plain</type>
            <size>11527</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwMzApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIFhQQ1Nl
cnZpY2VNYWluIGluIGEgV2ViUHJvY2VzcyBoZWFkZXIgcmF0aGVyIHRoYW4gV0tQcm9jZXNzUG9v
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGEg
ZmV3IGJ1aWxkIGZhaWx1cmVzIGFsb25nIHRoZSB3YXkuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnVwZGF0ZUxheWVySG9zdGluZ0NvbnRl
eHQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OnJlcGxhY2VkTlNXb3Jrc3BhY2VfbGF1bmNoQXBwbGljYXRpb25BdFVS
TF9vcHRpb25zX2NvbmZpZ3VyYXRpb25fZXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgor
ICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFpbik6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06
CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3dlYkNvbnRlbnRQcm9jZXNzWFBDTWFpbl0pOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdLV2ViUHJvY2Vzc01haW4pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICgt
W1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgY29udmVydFNjcmVlblBvaW50VG9Sb290Vmll
dzpdKToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisKIDIwMTgtMDktMTQgIE1hdHQgTGV3aXMg
IDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjM2MDIwLgpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250
cm9sbGVyUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHJldmlzaW9uIDIzNjAxNykKKysr
IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw2IEBACiAjaW1wb3J0IDxRdWFydHpDb3Jl
L1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KIAot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChib29s
IHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCkBAIC05MCw3ICs4OCw3IEBAIHZvaWQg
UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb20KICAgICBbQ0FUcmFuc2FjdGlvbiBj
b21taXRdOwogfQogCi12b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6d2luZG93QW5kVmlld0Zy
YW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCBjb25zdCBJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQordm9pZCBQbHVn
aW5Db250cm9sbGVyUHJveHk6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykKIHsKICAgICBtX3BsdWdp
bi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5h
dGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KQEAgLTEzNSw3ICsxMzMsNyBA
QCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRlTGF5ZXJICiAjZW5kaWYKICAgICB9
CiAKLSAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENvbG9yU3BhY2Uoc1JHQkNvbG9yU3Bh
Y2VSZWYoKSk7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRDb2xvclNwYWNlKFdlYkNv
cmU6OnNSR0JDb2xvclNwYWNlUmVmKCkpOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0
Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCh0cnVlKTsKIAogICAgIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+c2V0Um9vdExheWVyKHBsYXRmb3JtTGF5ZXIpOwpJbmRleDogU291cmNlL1dlYktpdC9Q
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkocmV2aXNpb24g
MjM2MDE3KQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw2IEBACiAjaW1wb3J0IDx3dGYvSGFz
aFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCiBjb25zdCBDRlN0cmluZ1JlZiBrTFNQbHVnSW5CdW5kbGVJZGVudGlmaWVy
S2V5ID0gQ0ZTVFIoIkxTUGx1Z0luQnVuZGxlSWRlbnRpZmllcktleSIpOwogCiAvLyBUaGVzZSB2
YWx1ZXMgd2VyZSBjaG9zZW4gdG8gbWF0Y2ggZGVmYXVsdCBOU1VSTENhY2hlIHNpemVzIGF0IHRo
ZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KQEAgLTQwMSw3ICszOTksNyBAQCBzdGF0aWMgTlNSdW5u
aW5nQXBwbGljYXRpb24gKnJlcGxhY2VkTlNXCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
UGx1Z2luUHJvY2Vzczo6c2luZ2xldG9uKCkubGF1bmNoQXBwbGljYXRpb25BdFVSTChVUkwodXJs
KS5zdHJpbmcoKSwgYXJndW1lbnRzKSkgeworICAgIGlmIChQbHVnaW5Qcm9jZXNzOjpzaW5nbGV0
b24oKS5sYXVuY2hBcHBsaWNhdGlvbkF0VVJMKFdlYkNvcmU6OlVSTCh1cmwpLnN0cmluZygpLCBh
cmd1bWVudHMpKSB7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICplcnJvciA9IG5p
bDsKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTUzNCw3ICs1MzIsNyBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByCiAgICAgaW5pdGlhbGl6ZUNvY29hT3ZlcnJpZGVz
KCk7CiAKICAgICBib29sIGV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQg
PSBwYXJhbWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgiZXhwZXJpbWVudGFsLXNh
bmRib3gtcGx1Z2luIikgPT0gIjEiOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZChl
eHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKTsKKyAgICBXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEV4cGVyaW1lbnRhbFBs
dWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQoZXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2Zp
bGVzRW5hYmxlZCk7CiAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIHRvIHByb3h5
IFNldEN1cnNvciBjYWxscyBvdmVyIHRvIHRoZSBVSSBwcm9jZXNzIGluc3RlYWQgb2YKICAgICAv
LyBhbGxvd2luZyBwbHVnLWlucyB0byBjaGFuZ2UgdGhlIG1vdXNlIGN1cnNvciBhdCBhbnkgdGlt
ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VF
bnRyeVBvaW50LmgJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgWFBDU2VydmljZUluaXRpYWxp
emVyKE9TT2JqZWN0UHRyPHgKICAgICBYUENTZXJ2aWNlVHlwZTo6c2luZ2xldG9uKCkuaW5pdGlh
bGl6ZShwYXJhbWV0ZXJzKTsKIH0KIAotaW50IFhQQ1NlcnZpY2VNYWluKCk7CitpbnQgWFBDU2Vy
dmljZU1haW4oaW50LCBjb25zdCBjaGFyKiopOwogCiB2b2lkIFhQQ1NlcnZpY2VFeGl0KE9TT2Jq
ZWN0UHRyPHhwY19vYmplY3RfdD4mJiBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24g
MjM2MDE3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIs
NyBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jCiAgICAgeHBjX2Nv
bm5lY3Rpb25fcmVzdW1lKHBlZXIpOwogfQogCi1pbnQgWFBDU2VydmljZU1haW4oKQoraW50IFhQ
Q1NlcnZpY2VNYWluKGludCwgY29uc3QgY2hhcioqKQogewogI2lmIGRlZmluZWQoX19pMzg2X18p
CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgZG9uZSBmb3IgdGhlIDMyLWJpdCBw
bHVnLWluIFhQQyBzZXJ2aWNlIHNvIHdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdApAQCAtMTYwLDcg
KzE2MCw3IEBAIGludCBYUENTZXJ2aWNlTWFpbigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY29u
c3QgY2hhcioqIGFyZ3YpCiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6WFBDU2VydmljZU1haW4oKTsK
KyAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNiBAQAogI2lt
cG9ydCAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50
cnlQb2ludC5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJf
V0tBdXRvbWF0aW9uU2Vzc2lvbkludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZERlbGVn
YXRlLmgiCkBAIC0xODIsMTEgKzE4MSw2IEBAICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9y
Q29udGFpbmVyV2kKICAgICByZXR1cm4gW3VybCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6
QCJXZWJzaXRlRGF0YSIgaXNEaXJlY3Rvcnk6WUVTXTsKIH0KIAotKyAoaW50KV93ZWJDb250ZW50
UHJvY2Vzc1hQQ01haW4KLXsKLSAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbigpOwot
fQotCiAtICh2b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkg
KiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewogICAgIF9wcm9j
ZXNzUG9vbC0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6V2Vi
Q2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRn
ZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hhaW4pKS5wdHIoKSwgaG9zdCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDgg
Kzc5LDYgQEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZD
YW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7CiAKLSsgKGludClfd2ViQ29udGVudFByb2Nlc3NYUENNYWluIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCiAvLyBU
ZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9j
ZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVTdG9yYWdlUHJvY2VzczsKIC0g
KHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3Bw
CShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBA
CiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZUdyb3VwUHJveHkuaCIKKyNpbmNsdWRlICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlSZWxlYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRPYnNlcnZlci5o
PgpAQCAtMjU5LDYgKzI2MCwxMSBAQCB2b2lkIFdLQnVuZGxlU2V0RGF0YWJhc2VRdW90YShXS0J1
bmRsZVJlCiAgICAgRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS5zZXRRdW90YSgqU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKCJmaWxlX18wIiksIHF1b3RhKTsK
IH0KIAoraW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQor
eworICAgIHJldHVybiBYUENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsKK30KKwogdm9pZCBXS0J1
bmRsZVJlbGVhc2VNZW1vcnkoV0tCdW5kbGVSZWYpCiB7CiAgICAgV2ViQ29yZTo6cmVsZWFzZU1l
bW9yeShXVEY6OkNyaXRpY2FsOjpZZXMsIFdURjo6U3luY2hyb25vdXM6Olllcyk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGUuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4
LDYgKzc4LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZQogCiBX
S19FWFBPUlQgV0tDb25uZWN0aW9uUmVmIFdLQnVuZGxlR2V0QXBwbGljYXRpb25Db25uZWN0aW9u
KFdLQnVuZGxlUmVmIGJ1bmRsZSk7CiAKK1dLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihp
bnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpOworCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVJl
cG9ydEV4Y2VwdGlvbihKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYgZXhjZXB0aW9uKTsKIAogI2lm
ZGVmIF9fY3BsdXNwbHVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdE1hYy5tbQkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDkgKzQ4LDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJp
bGl0eVNQSS5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQogQGltcGxlbWVudGF0
aW9uIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QKIAogLSAodm9pZClkZWFsbG9jCkBAIC0x
MDAsNyArOTcsNyBAQCAtICh2b2lkKWFjY2Vzc2liaWxpdHlTZXRWYWx1ZTooaWQpdmFsdWUgCiAK
IC0gKE5TUG9pbnQpY29udmVydFNjcmVlblBvaW50VG9Sb290VmlldzooTlNQb2ludClwb2ludAog
ewotICAgIHJldHVybiBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoSW50UG9pbnQocG9pbnQueCwg
cG9pbnQueSkpOworICAgIHJldHVybiBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoV2ViQ29yZTo6
SW50UG9pbnQocG9pbnQueCwgcG9pbnQueSkpOwogfQogCiAtIChOU0FycmF5ICopYWNjZXNzaWJp
bGl0eUFjdGlvbk5hbWVzCkBAIC0xNTIsOCArMTQ5LDggQEAgLSAoaWQpYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOihOU1N0cgogICAgICAgICByZXR1cm4gW1tzZWxmIGFjY2Vzc2liaWxpdHlS
b290T2JqZWN0V3JhcHBlcl0gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07
CiAgICAgCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0
eVNpemVBdHRyaWJ1dGVdKSB7Ci0gICAgICAgIGNvbnN0IEludFNpemUmIHMgPSBtX3BhZ2UtPnNp
emUoKTsKLSAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6TlNNYWtlU2l6ZShz
LndpZHRoKCksIHMuaGVpZ2h0KCkpXTsKKyAgICAgICAgY29uc3QgYXV0byYgc2l6ZSA9IG1fcGFn
ZS0+c2l6ZSgpOworICAgICAgICByZXR1cm4gW05TVmFsdWUgdmFsdWVXaXRoU2l6ZTpOU01ha2VT
aXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSldOwogICAgIH0KICAgICAKICAgICBpZiAo
W2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1
dGVdKQpAQCAtMTk4LDExICsxOTUsMTEgQEAgLSAoaWQpYWNjZXNzaWJpbGl0eUhpdFRlc3Q6KE5T
UG9pbnQpcG9pbgogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
SW50UG9pbnQgY29udmVydGVkUG9pbnQgPSBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoSW50UG9p
bnQocG9pbnQpKTsKKyAgICBhdXRvIGNvbnZlcnRlZFBvaW50ID0gbV9wYWdlLT5zY3JlZW5Ub1Jv
b3RWaWV3KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSk7CiAgICAgCiAgICAgLy8gU29tZSBwbHVn
aW5zIG1heSBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBhbmQgaW5z
ZXQgb24gdGhlaXIgb3duLgogICAgIGJvb2wgYXBwbHlDb250ZW50T2Zmc2V0ID0gdHJ1ZTsKLSAg
ICBpZiAoYXV0byBwbHVnaW5WaWV3ID0gV2ViUGFnZTo6cGx1Z2luVmlld0ZvckZyYW1lKG1fcGFn
ZS0+bWFpbkZyYW1lKCkpKQorICAgIGlmIChhdXRvIHBsdWdpblZpZXcgPSBXZWJLaXQ6OldlYlBh
Z2U6OnBsdWdpblZpZXdGb3JGcmFtZShtX3BhZ2UtPm1haW5GcmFtZSgpKSkKICAgICAgICAgYXBw
bHlDb250ZW50T2Zmc2V0ID0gIXBsdWdpblZpZXctPnBsdWdpbigpLT5wbHVnaW5IYW5kbGVzQ29u
dGVudE9mZnNldEZvckFjY2Vzc2liaWxpdHlIaXRUZXN0KCk7CiAKICAgICBpZiAoYXBwbHlDb250
ZW50T2Zmc2V0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349887</attachid>
            <date>2018-09-17 09:01:53 -0700</date>
            <delta_ts>2018-09-17 09:47:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189636-20180917090152.patch</filename>
            <type>text/plain</type>
            <size>24733</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwNjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA5LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIFhQQ1Nl
cnZpY2VNYWluIGluIGEgV2ViUHJvY2VzcyBoZWFkZXIgcmF0aGVyIHRoYW4gV0tQcm9jZXNzUG9v
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBGaXggYSBm
ZXcgYnVpbGQgZmFpbHVyZXMgYWxvbmcgdGhlIHdheS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4
dCk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6cmVwbGFjZWROU1dvcmtzcGFjZV9sYXVuY2hBcHBsaWNhdGlvbkF0VVJM
X29wdGlvbnNfY29uZmlndXJhdGlvbl9lcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lmg6Cisg
ICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VNYWluKToKKyAgICAgICAg
KG1haW4pOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQb29sIF93
ZWJDb250ZW50UHJvY2Vzc1hQQ01haW5dKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9BUEk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvQVBJL0NvY29hOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLV2ViUHJv
Y2Vzc01haW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QgY29udmVydFNjcmVlblBvaW50VG9Sb290VmlldzpdKToKKyAgICAgICAgKC1bV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6Cisg
ICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgYWNjZXNzaWJpbGl0eUhpdFRl
c3Q6XSk6CisKIDIwMTgtMDktMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBpbmNvcnJlY3QgV1BFIGJ1aWxkIGZp
eCBtYWRlIGluIHIyMzYwMDkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlzaW9uIDIz
NjAxNykKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNDYzLDYgKzQ2Myw4IEBAIFVJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNw
cAogCiBVSVByb2Nlc3MvV2ViU3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2Vy
SU9TLm1tCiAKK1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAKKwogV2ViUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCiAKIFdlYlByb2Nlc3MvY29j
b2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0J
KHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luQ29udHJvbGxlclByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw2IEBA
CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0Q0cuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luRm9jdXNPcldp
bmRvd0ZvY3VzQ2hhbmdlZChib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCkBA
IC05MCw3ICs4OCw3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb20K
ICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi12b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYgd2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nv
b3JkaW5hdGVzKQordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OndpbmRvd0FuZFZpZXdGcmFt
ZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcykKIHsKICAgICBtX3BsdWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsK
IH0KQEAgLTEzNSw3ICsxMzMsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRl
TGF5ZXJICiAjZW5kaWYKICAgICB9CiAKLSAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENv
bG9yU3BhY2Uoc1JHQkNvbG9yU3BhY2VSZWYoKSk7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRDb2xvclNwYWNlKFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCkpOwogICAgIG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCh0cnVlKTsKIAog
ICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHBsYXRmb3JtTGF5ZXIpOwpJ
bmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbQkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw2
IEBACiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBjb25zdCBDRlN0cmluZ1JlZiBrTFNQ
bHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5ID0gQ0ZTVFIoIkxTUGx1Z0luQnVuZGxlSWRlbnRpZmll
cktleSIpOwogCiAvLyBUaGVzZSB2YWx1ZXMgd2VyZSBjaG9zZW4gdG8gbWF0Y2ggZGVmYXVsdCBO
U1VSTENhY2hlIHNpemVzIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KQEAgLTQwMSw3ICsz
OTksNyBAQCBzdGF0aWMgTlNSdW5uaW5nQXBwbGljYXRpb24gKnJlcGxhY2VkTlNXCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBpZiAoUGx1Z2luUHJvY2Vzczo6c2luZ2xldG9uKCkubGF1bmNoQXBw
bGljYXRpb25BdFVSTChVUkwodXJsKS5zdHJpbmcoKSwgYXJndW1lbnRzKSkgeworICAgIGlmIChQ
bHVnaW5Qcm9jZXNzOjpzaW5nbGV0b24oKS5sYXVuY2hBcHBsaWNhdGlvbkF0VVJMKFdlYkNvcmU6
OlVSTCh1cmwpLnN0cmluZygpLCBhcmd1bWVudHMpKSB7CiAgICAgICAgIGlmIChlcnJvcikKICAg
ICAgICAgICAgICplcnJvciA9IG5pbDsKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTUzNCw3ICs1
MzIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByCiAgICAgaW5p
dGlhbGl6ZUNvY29hT3ZlcnJpZGVzKCk7CiAKICAgICBib29sIGV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQgPSBwYXJhbWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRh
LmdldCgiZXhwZXJpbWVudGFsLXNhbmRib3gtcGx1Z2luIikgPT0gIjEiOwotICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RXhwZXJpbWVudGFsUGx1Z0luU2Fu
ZGJveFByb2ZpbGVzRW5hYmxlZChleHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFi
bGVkKTsKKyAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnNldEV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQoZXhwZXJpbWVu
dGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZCk7CiAKICAgICAvLyBGSVhNRTogSXQgd291
bGQgYmUgYmV0dGVyIHRvIHByb3h5IFNldEN1cnNvciBjYWxscyBvdmVyIHRvIHRoZSBVSSBwcm9j
ZXNzIGluc3RlYWQgb2YKICAgICAvLyBhbGxvd2luZyBwbHVnLWlucyB0byBjaGFuZ2UgdGhlIG1v
dXNlIGN1cnNvciBhdCBhbnkgdGltZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9Y
UENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgJKHJldmlzaW9uIDIzNjAxNykKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBD
U2VydmljZUVudHJ5UG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIHZv
aWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHgKICAgICBYUENTZXJ2aWNlVHlw
ZTo6c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIH0KIAotaW50IFhQQ1NlcnZp
Y2VNYWluKCk7CitpbnQgWFBDU2VydmljZU1haW4oaW50LCBjb25zdCBjaGFyKiopOwogCiB2b2lk
IFhQQ1NlcnZpY2VFeGl0KE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4mJiBwcmlvcml0eUJvb3N0
TWVzc2FnZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2
aWNlTWFpbi5tbQkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5k
bGVyKHhwY19jCiAgICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHBlZXIpOwogfQogCi1pbnQgWFBD
U2VydmljZU1haW4oKQoraW50IFhQQ1NlcnZpY2VNYWluKGludCwgY29uc3QgY2hhcioqKQogewog
I2lmIGRlZmluZWQoX19pMzg2X18pCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG9ubHkgYmUg
ZG9uZSBmb3IgdGhlIDMyLWJpdCBwbHVnLWluIFhQQyBzZXJ2aWNlIHNvIHdlIHJlbHkgb24gdGhl
IGZhY3QgdGhhdApAQCAtMTYwLDcgKzE2MCw3IEBAIGludCBYUENTZXJ2aWNlTWFpbigpCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCitp
bnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpCiB7Ci0gICAgcmV0dXJuIFdlYktp
dDo6WFBDU2VydmljZU1haW4oKTsKKyAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihh
cmdjLCBhcmd2KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQkod29ya2luZyBjb3B5KQpA
QCAtNDAsNyArNDAsNiBAQAogI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCi0j
aW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvbkRl
bGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9uU2Vzc2lvbkludGVybmFsLmgiCiAjaW1w
b3J0ICJfV0tEb3dubG9hZERlbGVnYXRlLmgiCkBAIC0xODIsMTEgKzE4MSw2IEBAICsgKE5TVVJM
ICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2kKICAgICByZXR1cm4gW3VybCBVUkxCeUFw
cGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJzaXRlRGF0YSIgaXNEaXJlY3Rvcnk6WUVTXTsKIH0K
IAotKyAoaW50KV93ZWJDb250ZW50UHJvY2Vzc1hQQ01haW4KLXsKLSAgICByZXR1cm4gV2ViS2l0
OjpYUENTZXJ2aWNlTWFpbigpOwotfQotCiAtICh2b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5n
ICopaG9zdAogewogICAgIF9wcm9jZXNzUG9vbC0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KFdlYktpdDo6V2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvKChfX2JyaWRnZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hhaW4pKS5wdHIo
KSwgaG9zdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc5LDggKzc5LDYgQEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hl
bWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CiAKLSsgKGludClfd2ViQ29udGVu
dFByb2Nlc3NYUENNYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGls
ZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5h
dGVTdG9yYWdlUHJvY2VzczsKIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNDI4LDYgKzM0MjgsOCBAQAogCQk1QzYyRkRG
ODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDNkNFNkQwMUY1OUJDNDYwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUNsaWVudEltcGxDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2Q0U2RDMxRjU5RUEzNTAwMDdD
NkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFnZUNsaWVudEltcGxDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1Qzc0MzAwRTIxNTAwNDkyMDA0QkZBMTcgLyogV0tXZWJQcm9jZXNzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1Qzc0MzAwRjIxNTAwNDkyMDA0QkZBMTcgLyogV0tXZWJQcm9jZXNzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzcwNjczMUQxMTFEOEIwMDEyNzAwRiAvKiBX
ZWJTb2NrZXRQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJTb2NrZXRQcm92aWRlci5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3Qzg4REMxRDBGNDFBMDAwOUQy
RjZEIC8qIFdlYlNvY2tldFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYlNvY2tldFByb3ZpZGVyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDODRDRjkwMUY5NkFDNEUwMEI2NzA1
QSAvKiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgxMSw2ICs2ODEzLDIzIEBACiAJCQlwYXRoID0g
Q29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1Qzc0MzAwQzIxNTAw
NDM0MDA0QkZBMTcgLyogQVBJICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQk1Qzc0MzAwRDIxNTAwNDQyMDA0QkZBMTcgLyogQ29jb2EgKi8sCisJCQkpOwor
CQkJcGF0aCA9IEFQSTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTVDNzQz
MDBEMjE1MDA0NDIwMDRCRkExNyAvKiBDb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJNUM3NDMwMEYyMTUwMDQ5MjAwNEJGQTE3IC8qIFdLV2ViUHJv
Y2Vzcy5jcHAgKi8sCisJCQkJNUM3NDMwMEUyMTUwMDQ5MjAwNEJGQTE3IC8qIFdLV2ViUHJvY2Vz
cy5oICovLAorCQkJKTsKKwkJCXBhdGggPSBDb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTZCRTk2OUJGMUU1NEQ0NTIwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTcw
NDgsNiArNzA2Nyw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Qzc0MzAw
QzIxNTAwNDM0MDA0QkZBMTcgLyogQVBJICovLAogCQkJCTFBQjFGNzcwMUQxQjJGNUQwMDdDOUJE
MSAvKiBBcHBsZVBheSAqLywKIAkJCQkxQzBBMTk0MzFDOEZGMUE4MDBGRTBFQkIgLyogQXV0b21h
dGlvbiAqLywKIAkJCQk0MUQxMjlEODFGM0QxMDE0MDBEMTVFNDcgLyogQ2FjaGUgKi8sCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3MuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLV2ViUHJvY2Vzcy5oIgor
CisjaW5jbHVkZSAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKKworaW50IFdLV2ViUHJvY2Vzc01h
aW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBXZWJLaXQ6OlhQ
Q1NlcnZpY2VNYWluKGFyZ2MsIGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVy
biAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJn
YywgY29uc3QgY2hhcioqIGFyZ3YpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1dlYlByb2Nlc3MuaCIK
KworI2luY2x1ZGUgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisKK2ludCBXS1dlYlByb2Nlc3NN
YWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpY
UENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFy
Z2MsIGNvbnN0IGNoYXIqKiBhcmd2KSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzcy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tXZWJQcm9jZXNzLmgi
CisKKyNpbmNsdWRlICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgorCitpbnQgV0tXZWJQcm9jZXNz
TWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFdlYktpdDo6
WFBDU2VydmljZU1haW4oYXJnYywgYXJndik7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIGludCBXS1dlYlByb2Nlc3NNYWluKGludCBh
cmdjLCBjb25zdCBjaGFyKiogYXJndikgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQkocmV2aXNp
b24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4
LDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9y
dCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQogQGltcGxlbWVudGF0aW9uIFdLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QKIAogLSAodm9pZClkZWFsbG9jCkBAIC0xMDAsNyArOTcsNyBAQCAtICh2
b2lkKWFjY2Vzc2liaWxpdHlTZXRWYWx1ZTooaWQpdmFsdWUgCiAKIC0gKE5TUG9pbnQpY29udmVy
dFNjcmVlblBvaW50VG9Sb290VmlldzooTlNQb2ludClwb2ludAogewotICAgIHJldHVybiBtX3Bh
Z2UtPnNjcmVlblRvUm9vdFZpZXcoSW50UG9pbnQocG9pbnQueCwgcG9pbnQueSkpOworICAgIHJl
dHVybiBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQueCwg
cG9pbnQueSkpOwogfQogCiAtIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUFjdGlvbk5hbWVzCkBA
IC0xNTIsOCArMTQ5LDggQEAgLSAoaWQpYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0
cgogICAgICAgICByZXR1cm4gW1tzZWxmIGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcl0g
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07CiAgICAgCiAgICAgaWYgKFth
dHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNpemVBdHRyaWJ1dGVdKSB7
Ci0gICAgICAgIGNvbnN0IEludFNpemUmIHMgPSBtX3BhZ2UtPnNpemUoKTsKLSAgICAgICAgcmV0
dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6TlNNYWtlU2l6ZShzLndpZHRoKCksIHMuaGVpZ2h0
KCkpXTsKKyAgICAgICAgY29uc3QgYXV0byYgc2l6ZSA9IG1fcGFnZS0+c2l6ZSgpOworICAgICAg
ICByZXR1cm4gW05TVmFsdWUgdmFsdWVXaXRoU2l6ZTpOU01ha2VTaXplKHNpemUud2lkdGgoKSwg
c2l6ZS5oZWlnaHQoKSldOwogICAgIH0KICAgICAKICAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFs
VG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdKQpAQCAtMTk4LDExICsx
OTUsMTEgQEAgLSAoaWQpYWNjZXNzaWJpbGl0eUhpdFRlc3Q6KE5TUG9pbnQpcG9pbgogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgSW50UG9pbnQgY29udmVydGVk
UG9pbnQgPSBtX3BhZ2UtPnNjcmVlblRvUm9vdFZpZXcoSW50UG9pbnQocG9pbnQpKTsKKyAgICBh
dXRvIGNvbnZlcnRlZFBvaW50ID0gbV9wYWdlLT5zY3JlZW5Ub1Jvb3RWaWV3KFdlYkNvcmU6Oklu
dFBvaW50KHBvaW50KSk7CiAgICAgCiAgICAgLy8gU29tZSBwbHVnaW5zIG1heSBiZSBhYmxlIHRv
IGZpZ3VyZSBvdXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBhbmQgaW5zZXQgb24gdGhlaXIgb3duLgog
ICAgIGJvb2wgYXBwbHlDb250ZW50T2Zmc2V0ID0gdHJ1ZTsKLSAgICBpZiAoYXV0byBwbHVnaW5W
aWV3ID0gV2ViUGFnZTo6cGx1Z2luVmlld0ZvckZyYW1lKG1fcGFnZS0+bWFpbkZyYW1lKCkpKQor
ICAgIGlmIChhdXRvIHBsdWdpblZpZXcgPSBXZWJLaXQ6OldlYlBhZ2U6OnBsdWdpblZpZXdGb3JG
cmFtZShtX3BhZ2UtPm1haW5GcmFtZSgpKSkKICAgICAgICAgYXBwbHlDb250ZW50T2Zmc2V0ID0g
IXBsdWdpblZpZXctPnBsdWdpbigpLT5wbHVnaW5IYW5kbGVzQ29udGVudE9mZnNldEZvckFjY2Vz
c2liaWxpdHlIaXRUZXN0KCk7CiAKICAgICBpZiAoYXBwbHlDb250ZW50T2Zmc2V0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349894</attachid>
            <date>2018-09-17 09:47:28 -0700</date>
            <delta_ts>2018-09-17 11:45:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189636-20180917094727.patch</filename>
            <type>text/plain</type>
            <size>23284</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwNjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA5LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIFhQQ1Nl
cnZpY2VNYWluIGluIGEgV2ViUHJvY2VzcyBoZWFkZXIgcmF0aGVyIHRoYW4gV0tQcm9jZXNzUG9v
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBGaXggYSBm
ZXcgYnVpbGQgZmFpbHVyZXMgYWxvbmcgdGhlIHdheS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4
dCk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6cmVwbGFjZWROU1dvcmtzcGFjZV9sYXVuY2hBcHBsaWNhdGlvbkF0VVJM
X29wdGlvbnNfY29uZmlndXJhdGlvbl9lcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lmg6Cisg
ICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VNYWluKToKKyAgICAgICAg
KG1haW4pOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQb29sIF93
ZWJDb250ZW50UHJvY2Vzc1hQQ01haW5dKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9BUEk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvQVBJL0NvY29hOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLV2ViUHJv
Y2Vzc01haW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3RNYWMubW06CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QgY29udmVydFNjcmVlblBvaW50VG9Sb290VmlldzpdKToKKyAgICAgICAgKC1bV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6Cisg
ICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgYWNjZXNzaWJpbGl0eUhpdFRl
c3Q6XSk6CisKIDIwMTgtMDktMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBpbmNvcnJlY3QgV1BFIGJ1aWxkIGZp
eCBtYWRlIGluIHIyMzYwMDkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlzaW9uIDIz
NjAxNykKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNDYzLDYgKzQ2Myw4IEBAIFVJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNw
cAogCiBVSVByb2Nlc3MvV2ViU3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2Vy
SU9TLm1tCiAKK1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAKKwogV2ViUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCiAKIFdlYlByb2Nlc3MvY29j
b2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0J
KHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luQ29udHJvbGxlclByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw2IEBA
CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0Q0cuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luRm9jdXNPcldp
bmRvd0ZvY3VzQ2hhbmdlZChib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCkBA
IC05MCw3ICs4OCw3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb20K
ICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi12b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYgd2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nv
b3JkaW5hdGVzKQordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OndpbmRvd0FuZFZpZXdGcmFt
ZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcykKIHsKICAgICBtX3BsdWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsK
IH0KQEAgLTEzNSw3ICsxMzMsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRl
TGF5ZXJICiAjZW5kaWYKICAgICB9CiAKLSAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENv
bG9yU3BhY2Uoc1JHQkNvbG9yU3BhY2VSZWYoKSk7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRDb2xvclNwYWNlKFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCkpOwogICAgIG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudCh0cnVlKTsKIAog
ICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHBsYXRmb3JtTGF5ZXIpOwpJ
bmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc01hYy5tbQkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw2
IEBACiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBjb25zdCBDRlN0cmluZ1JlZiBrTFNQ
bHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5ID0gQ0ZTVFIoIkxTUGx1Z0luQnVuZGxlSWRlbnRpZmll
cktleSIpOwogCiAvLyBUaGVzZSB2YWx1ZXMgd2VyZSBjaG9zZW4gdG8gbWF0Y2ggZGVmYXVsdCBO
U1VSTENhY2hlIHNpemVzIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KQEAgLTIxNywxMSAr
MjE1LDExIEBAIHN0YXRpYyB2b2lkIGNhcmJvbldpbmRvd0hpZGRlbihXaW5kb3dSZWYKIHN0YXRp
YyBib29sIG9wZW5DRlVSTFJlZihDRlVSTFJlZiB1cmwsIGludDMyX3QmIHN0YXR1cywgQ0ZVUkxS
ZWYqIGxhdW5jaGVkVVJMKQogewogICAgIFN0cmluZyBsYXVuY2hlZFVSTFN0cmluZzsKLSAgICBp
ZiAoIVBsdWdpblByb2Nlc3M6OnNpbmdsZXRvbigpLm9wZW5VUkwoVVJMKHVybCkuc3RyaW5nKCks
IHN0YXR1cywgbGF1bmNoZWRVUkxTdHJpbmcpKQorICAgIGlmICghUGx1Z2luUHJvY2Vzczo6c2lu
Z2xldG9uKCkub3BlblVSTChXZWJDb3JlOjpVUkwodXJsKS5zdHJpbmcoKSwgc3RhdHVzLCBsYXVu
Y2hlZFVSTFN0cmluZykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbGF1bmNo
ZWRVUkxTdHJpbmcuaXNOdWxsKCkgJiYgbGF1bmNoZWRVUkwpCi0gICAgICAgICpsYXVuY2hlZFVS
TCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIGxhdW5jaGVkVVJMU3RyaW5nKS5jcmVhdGVDRlVSTCgp
LmxlYWtSZWYoKTsKKyAgICAgICAgKmxhdW5jaGVkVVJMID0gV2ViQ29yZTo6VVJMKFdlYkNvcmU6
OlVSTCgpLCBsYXVuY2hlZFVSTFN0cmluZykuY3JlYXRlQ0ZVUkwoKS5sZWFrUmVmKCk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTQwMSw3ICszOTksNyBAQCBzdGF0aWMgTlNSdW5uaW5nQXBw
bGljYXRpb24gKnJlcGxhY2VkTlNXCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoUGx1Z2lu
UHJvY2Vzczo6c2luZ2xldG9uKCkubGF1bmNoQXBwbGljYXRpb25BdFVSTChVUkwodXJsKS5zdHJp
bmcoKSwgYXJndW1lbnRzKSkgeworICAgIGlmIChQbHVnaW5Qcm9jZXNzOjpzaW5nbGV0b24oKS5s
YXVuY2hBcHBsaWNhdGlvbkF0VVJMKFdlYkNvcmU6OlVSTCh1cmwpLnN0cmluZygpLCBhcmd1bWVu
dHMpKSB7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICplcnJvciA9IG5pbDsKICAg
ICAgICAgcmV0dXJuIG5pbDsKQEAgLTUzNCw3ICs1MzIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVByCiAgICAgaW5pdGlhbGl6ZUNvY29hT3ZlcnJpZGVzKCk7CiAK
ICAgICBib29sIGV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQgPSBwYXJh
bWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgiZXhwZXJpbWVudGFsLXNhbmRib3gt
cGx1Z2luIikgPT0gIjEiOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZChleHBlcmlt
ZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKTsKKyAgICBXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQoZXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5h
YmxlZCk7CiAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYmV0dGVyIHRvIHByb3h5IFNldEN1
cnNvciBjYWxscyBvdmVyIHRvIHRoZSBVSSBwcm9jZXNzIGluc3RlYWQgb2YKICAgICAvLyBhbGxv
d2luZyBwbHVnLWlucyB0byBjaGFuZ2UgdGhlIG1vdXNlIGN1cnNvciBhdCBhbnkgdGltZS4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50LmgJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9T
T2JqZWN0UHRyPHgKICAgICBYUENTZXJ2aWNlVHlwZTo6c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShw
YXJhbWV0ZXJzKTsKIH0KIAotaW50IFhQQ1NlcnZpY2VNYWluKCk7CitpbnQgWFBDU2VydmljZU1h
aW4oaW50LCBjb25zdCBjaGFyKiopOwogCiB2b2lkIFhQQ1NlcnZpY2VFeGl0KE9TT2JqZWN0UHRy
PHhwY19vYmplY3RfdD4mJiBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMjM2MDE3
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBz
dGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jCiAgICAgeHBjX2Nvbm5lY3Rp
b25fcmVzdW1lKHBlZXIpOwogfQogCi1pbnQgWFBDU2VydmljZU1haW4oKQoraW50IFhQQ1NlcnZp
Y2VNYWluKGludCwgY29uc3QgY2hhcioqKQogewogI2lmIGRlZmluZWQoX19pMzg2X18pCiAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgZG9uZSBmb3IgdGhlIDMyLWJpdCBwbHVnLWlu
IFhQQyBzZXJ2aWNlIHNvIHdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdApAQCAtMTYwLDcgKzE2MCw3
IEBAIGludCBYUENTZXJ2aWNlTWFpbigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi1pbnQg
bWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hh
cioqIGFyZ3YpCiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6WFBDU2VydmljZU1haW4oKTsKKyAgICBy
ZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCShy
ZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNiBAQAogI2ltcG9ydCAi
V2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tBdXRv
bWF0aW9uU2Vzc2lvbkludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZERlbGVnYXRlLmgi
CkBAIC0xODIsMTEgKzE4MSw2IEBAICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFp
bmVyV2kKICAgICByZXR1cm4gW3VybCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJz
aXRlRGF0YSIgaXNEaXJlY3Rvcnk6WUVTXTsKIH0KIAotKyAoaW50KV93ZWJDb250ZW50UHJvY2Vz
c1hQQ01haW4KLXsKLSAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbigpOwotfQotCiAt
ICh2b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0
aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewogICAgIF9wcm9jZXNzUG9v
bC0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYktpdDo6V2ViQ2VydGlm
aWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRnZSBDRkFy
cmF5UmVmKWNlcnRpZmljYXRlQ2hhaW4pKS5wdHIoKSwgaG9zdCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDggKzc5LDYg
QEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlv
cygxMi4wKSk7CiAKLSsgKGludClfd2ViQ29udGVudFByb2Nlc3NYUENNYWluIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCiAvLyBUZXN0IG9u
bHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMg
YXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVTdG9yYWdlUHJvY2VzczsKIC0gKHZvaWQp
X3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0zNDI4LDYgKzM0MjgsOCBAQAogCQk1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxT
Y2hlbWVUYXNrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2tQcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNkNFNkQwMUY1OUJDNDYwMDA3QzZD
QiAvKiBQYWdlQ2xpZW50SW1wbENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGFnZUNsaWVudEltcGxDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUM2Q0U2RDMxRjU5RUEzNTAwMDdDNkNCIC8qIFBhZ2VDbGllbnRJbXBsQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNsaWVudEltcGxDb2NvYS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Qzc0MzAwRTIxNTAwNDkyMDA0QkZBMTcg
LyogV0tXZWJQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vi
UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Qzc0MzAwRjIxNTAwNDky
MDA0QkZBMTcgLyogV0tXZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDNzcwNjczMUQxMTFEOEIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRQcm92aWRlci5jcHA7IHBh
dGggPSBOZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUM3Qzg4REMxRDBGNDFBMDAwOUQyRjZEIC8qIFdlYlNvY2tldFByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldFByb3ZpZGVyLmg7IHBh
dGggPSBOZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDODRDRjkwMUY5NkFDNEUwMEI2NzA1QSAvKiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjgxMSw2ICs2ODEzLDIzIEBACiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk1Qzc0MzAwQzIxNTAwNDM0MDA0QkZBMTcgLyogQVBJICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1Qzc0MzAwRDIxNTAwNDQy
MDA0QkZBMTcgLyogQ29jb2EgKi8sCisJCQkpOworCQkJcGF0aCA9IEFQSTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTVDNzQzMDBEMjE1MDA0NDIwMDRCRkExNyAvKiBDb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNUM3NDMw
MEYyMTUwMDQ5MjAwNEJGQTE3IC8qIFdLV2ViUHJvY2Vzcy5jcHAgKi8sCisJCQkJNUM3NDMwMEUy
MTUwMDQ5MjAwNEJGQTE3IC8qIFdLV2ViUHJvY2Vzcy5oICovLAorCQkJKTsKKwkJCXBhdGggPSBD
b2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZCRTk2OUJGMUU1NEQ0
NTIwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTcwNDgsNiArNzA2Nyw3IEBACiAJCUJDMDMyRDVD
MTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Qzc0MzAwQzIxNTAwNDM0MDA0QkZBMTcgLyogQVBJICov
LAogCQkJCTFBQjFGNzcwMUQxQjJGNUQwMDdDOUJEMSAvKiBBcHBsZVBheSAqLywKIAkJCQkxQzBB
MTk0MzFDOEZGMUE4MDBGRTBFQkIgLyogQXV0b21hdGlvbiAqLywKIAkJCQk0MUQxMjlEODFGM0Qx
MDE0MDBEMTVFNDcgLyogQ2FjaGUgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldLV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSAiWFBDU2VydmljZUVudHJ5
UG9pbnQuaCIKKworaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBh
cmd2KQoreworICAgIHJldHVybiBXZWJLaXQ6OlhQQ1NlcnZpY2VNYWluKGFyZ2MsIGFyZ3YpOwor
fQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLRm91bmRhdGlvbi5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXS1dlYlByb2Nlc3MuaCIKKworI2luY2x1ZGUgIlhQQ1NlcnZpY2VFbnRy
eVBvaW50LmgiCisKK2ludCBXS1dlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiog
YXJndikKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihhcmdjLCBhcmd2KTsK
K30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3MuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBP
UlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV0tXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJYUENTZXJ2aWNlRW50
cnlQb2ludC5oIgorCitpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioq
IGFyZ3YpCit7CisgICAgcmV0dXJuIFdlYktpdDo6WFBDU2VydmljZU1haW4oYXJnYywgYXJndik7
Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tGb3VuZGF0aW9u
Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQ
T1JUIGludCBXS1dlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>