<?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>180689</bug_id>
          
          <creation_ts>2017-12-11 18:19:32 -0800</creation_ts>
          <short_desc>Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace</short_desc>
          <delta_ts>2017-12-14 11:35:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380507</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-11 18:19:32 -0800</bug_when>
    <thetext>Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380511</commentid>
    <comment_count>1</comment_count>
      <attachid>329072</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-11 18:32:43 -0800</bug_when>
    <thetext>Created attachment 329072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380656</commentid>
    <comment_count>2</comment_count>
      <attachid>329113</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-12 08:09:37 -0800</bug_when>
    <thetext>Created attachment 329113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380701</commentid>
    <comment_count>3</comment_count>
      <attachid>329121</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-12 10:10:44 -0800</bug_when>
    <thetext>Created attachment 329121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380703</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-12 10:14:56 -0800</bug_when>
    <thetext>Attachment 329121 did not pass style-queue:


ERROR: Source/WebCore/platform/win/DragImageCGWin.cpp:61:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/win/DragImageCGWin.cpp:77:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp:61:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp:113:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380783</commentid>
    <comment_count>5</comment_count>
      <attachid>329121</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 13:00:42 -0800</bug_when>
    <thetext>Comment on attachment 329121
Patch

Clearing flags on attachment: 329121

Committed r225797: &lt;https://trac.webkit.org/changeset/225797&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380784</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 13:00:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380786</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-12 13:01:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/36002058&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381505</commentid>
    <comment_count>8</comment_count>
      <attachid>329121</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-13 21:34:36 -0800</bug_when>
    <thetext>Comment on attachment 329121
Patch

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:94
&gt; +    return CGColorSpaceCreateDeviceRGB();

This isn’t quite right. These functions are not supposed to create a new CGColorSpace every time the function is called. Instead they are supposed to cache one only the first time the function is called and keep returning it. Please do that.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:98
&gt; +    static CGColorSpaceRef linearRGBSpace;
&gt; +    linearRGBSpace = CGColorSpaceCreateWithName(kCGColorSpaceLinearSRGB);
&gt; +    return linearRGBSpace;

This is incorrect; we are now calling CGColorSpaceCreateWithName every time this function is called instead of caching its result the first time this function is called!

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:112
&gt;      // If there is no support for exteneded sRGB, fall back to sRGB.
&gt;      if (!extendedSRGBSpace)
&gt; -        extendedSRGBSpace = sRGBColorSpaceRef();
&gt; +        extendedSRGBSpace = CGColorSpaceCreateDeviceRGB();
&gt;      return extendedSRGBSpace;

I don’t understand the rationale behind this change. Why would we use device RGB here? Also, why leave the comment saying we fall back to sRGB when changing the code to no longer do that?

Also, I see another mistake above in the earlier part of the function that we did not modify. We call CGColorSpaceCreateWithName every time this function is called instead of caching its result the first time this function is called. That’s the same bug we introduced in other functions, but I guess it was already present in this function.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:122
&gt; +    static CGColorSpaceRef displayP3Space;
&gt;  #if PLATFORM(IOS) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt; 101100)
&gt; -    static CGColorSpaceRef displayP3Space = CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3);
&gt; +    displayP3Space = CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3);
&gt;  #else
&gt; -    static CGColorSpaceRef displayP3Space = sRGBColorSpaceRef();
&gt; +    displayP3Space = sRGBColorSpaceRef();
&gt;  #endif

This is incorrect; we are now calling CGColorSpaceCreateWithName every time this function is called instead of caching its result the first time this function is called!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381619</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-14 08:15:46 -0800</bug_when>
    <thetext>Looks like I shouldn&apos;t do patches while under the influence of a cold!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381621</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-14 08:31:06 -0800</bug_when>
    <thetext>Doing to use dispatch_once to fix this mess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381629</commentid>
    <comment_count>11</comment_count>
      <attachid>329354</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-14 09:01:52 -0800</bug_when>
    <thetext>Created attachment 329354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381643</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-12-14 09:13:10 -0800</bug_when>
    <thetext>Your reviewer didn’t have a cold :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381646</commentid>
    <comment_count>13</comment_count>
      <attachid>329356</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-14 09:27:52 -0800</bug_when>
    <thetext>Created attachment 329356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381648</commentid>
    <comment_count>14</comment_count>
      <attachid>329356</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-14 09:35:28 -0800</bug_when>
    <thetext>Comment on attachment 329356
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Existing and new code mistakenly allocated colorspaces on every call, because
&gt; +        they didn&apos;t initialize the static variable on the first call. Avoid this mistake
&gt; +        by using dispatch_once() in these functions.

Seems like overkill to me, but I guess this does make them thread-safe whereas before they could only be safely called on the main thread.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:102
&gt; +        linearRGBColorSpace sRGBColorSpaceRef();

Looks like this is missing an &quot;=&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381650</commentid>
    <comment_count>15</comment_count>
      <attachid>329356</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-14 09:37:23 -0800</bug_when>
    <thetext>Comment on attachment 329356
Patch

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:120
&gt; +        // If there is no support for exteneded sRGB, fall back to sRGB.

Oops, forgot to point this out when I spotted it earlier, there was a typo in this old comment: &quot;exteneded&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381709</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-14 11:35:29 -0800</bug_when>
    <thetext>https://trac.webkit.org/r225915</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329072</attachid>
            <date>2017-12-11 18:32:43 -0800</date>
            <delta_ts>2017-12-12 08:09:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180689-20171211183242.patch</filename>
            <type>text/plain</type>
            <size>16827</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMyOWEzZDVjYWQxZDgz
NmZlNmI1Y2UyODRlNDM4ZDQ3MTQ4OTA2Mi4uOTJmZGYzNmMxOGQyMTk1N2JmZjlhODczMDUwNDhm
MWRlYzI1MWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTEyLTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBDb2xv
clNwYWNlRGV2aWNlUkdCIGFuZCBtb3N0IHVzZXJzIG9mIHRoZSBvYnNvbGV0ZSBkZXZpY2VSR0Ig
Y29sb3JzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBDb2xvclNwYWNlRGV2aWNlUkdCIGVudW0gYW5kIHVzZXJzLgorCisgICAg
ICAgIEltYWdlQnVmZmVyIG5vdyB1c2VzIHNSR0IgaW5zdGVhZCBvZiBkZXZpY2VSR0IgaW4gdGhl
IGZldyBjYXNlcyB0aGF0IHVzZWQgdGhlIGxhdHRlci4KKworICAgICAgICBIYXZlIGxpbmVhclJH
QkNvbG9yU3BhY2VSZWYoKSB1c2Uga0NHQ29sb3JTcGFjZUxpbmVhclNSR0IsIHdoaWNoIGlzIHBy
ZXNlbnQgaW4gaU9TIDkgYW5kIDEwLjExIGFuZCBsYXRlci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6dHJhbnNmb3JtQ29sb3JTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
Q29sb3JDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZWFrQ0dDb2xvcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bGluZWFyUkdCQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChXZWJDb3JlOjpleHRlbmRl
ZFNSR0JDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlQM0NvbG9yU3Bh
Y2VSZWYpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlUkdCQ29sb3JTcGFjZVJlZik6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OnBpeGVsQnVmZmVyRnJvbUNH
SW1hZ2UgY29uc3QpOiBVc2Ugc1JHQkNvbG9yU3BhY2VSZWYoKS4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZSk6IFRyYW5zZm9ybSByZXN1
bHQgdG8gQ29sb3JTcGFjZVNSR0IuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1h
c2tlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKTogRGl0dG8uCisKIDIwMTctMTItMTEgIEJh
c3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWly
b10gRHVtcFJlbmRlclRyZWUgdGltZXMgb3V0IGZvciBhbGwgbm9uLWh0dHAgdGVzdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMGQ5ZDliMWM5MWY0ODA3MTY2NTYwNjM5YWVhN2M3MjgzMDA1MTU3NS4uZTQyY2JiZTQ5
YWJhZmY0ZDNiYmM5ZGE3YzIzZWNkNDYwOTUwMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxNy0xMi0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgQ29sb3JTcGFjZURldmljZVJHQiBhbmQgbW9zdCB1c2VycyBvZiB0aGUg
b2Jzb2xldGUgZGV2aWNlUkdCIGNvbG9yc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBlbmNvZGluZyBvZiBDb2xvclNwYWNlRGV2aWNl
UkdCLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAyMDE3
LTEyLTEwICBTdGVwaGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAg
ICBBUElDbGllbnQuaCB1c2VzIHRoaW5ncyBmcm9tIDx0dXBsZT4gd2l0aG91dCBpbmNsdWRpbmcg
aXQgZXhwbGljaXRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGU4YjY3NjQ3YjUx
OTY0NmI5ZmFiNzMzYzBkMzg0NmNjMWM2MzM2NjUuLjJkMGVlMjg4ZDFkOWQ1MDVmOWMyNjUzMDMz
MDM5ZDRhYjE1MmIyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNy0xMi0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgQ29sb3JTcGFjZURldmljZVJHQiBhbmQgbW9zdCB1c2VycyBvZiB0
aGUgb2Jzb2xldGUgZGV2aWNlUkdCIGNvbG9yc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzUkdCQ29sb3JTcGFjZVJlZigpIGZyb20gV2Vi
Q29yZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIChpbWFn
ZUZyb21SZWN0KToKKwogMjAxNy0xMi0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZW1vdmUgcHRocmVhZF9vbmNlIGluIGZhdm9yIG9mIGRpc3Bh
dGNoX29uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRl
eCBjMmViYWI1NjBhMmM0MWQ1NjYwYzllOTdmMGM4NDNiYjk4NzVhOWI1Li44MmNhZTg4OTM4NzBi
NWRhNmRkMTIyNzFlOWYxNzgyOWJlODY3ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCkBAIC02NjgsOSArNjY4LDYgQEAgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ29sb3ImIGNvbG9yKQogVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIHN3
aXRjaCAoY29sb3JTcGFjZSkgewotICAgIGNhc2UgQ29sb3JTcGFjZURldmljZVJHQjoKLSAgICAg
ICAgdHMgPDwgIkRldmljZVJHQiI7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29sb3JTcGFj
ZVNSR0I6CiAgICAgICAgIHRzIDw8ICJzUkdCIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKaW5kZXggZTEyYzQwYWRjYTFl
MjQ3ZTk2N2ZmNjIxMzM2MGUzMDlmNTcwMTJmMi4uMTFkMDE3ZmFhOGYyY2Y0NGNkYmUyOWNmNThk
NzU3NTA1ZGVlMTU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yU3BhY2UuaApAQCAtMjMsMTMgKzIzLDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0j
aWZuZGVmIENvbG9yU3BhY2VfaAotI2RlZmluZSBDb2xvclNwYWNlX2gKKyNwcmFnbWEgb25jZQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gQ29sb3JTcGFjZSB7Ci0gICAgQ29sb3JTcGFj
ZURldmljZVJHQiwKICAgICBDb2xvclNwYWNlU1JHQiwKICAgICBDb2xvclNwYWNlTGluZWFyUkdC
LAogICAgIENvbG9yU3BhY2VEaXNwbGF5UDMKQEAgLTM3LDQgKzM1LDMgQEAgZW51bSBDb2xvclNw
YWNlIHsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIENvbG9yU3Bh
Y2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
Y3BwCmluZGV4IDU3ZjQ2MDFkOGYzOWI3MjAwNzgzN2UwNGNiNjBiYTIyYTQwNjM1ZTIuLmE1NmZk
ODI4MjJjYzkwMGI0MjAzZDNjY2RiMDUzMDA0ZDhmODI3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKQEAgLTEyNiw4ICsxMjYsOCBA
QCB2b2lkIEltYWdlQnVmZmVyOjp0cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3BhY2Ugc3JjQ29s
b3JTcGFjZSwgQ29sb3JTcGFjZSBkc3RDbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBvbmx5
IHNSR0IgPC0+IGxpbmVhclJHQiBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQKLSAgICBpZiAo
KHNyY0NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZUxpbmVhclJHQiAmJiBzcmNDb2xvclNwYWNlICE9
IENvbG9yU3BhY2VEZXZpY2VSR0IpCi0gICAgICAgIHx8IChkc3RDb2xvclNwYWNlICE9IENvbG9y
U3BhY2VMaW5lYXJSR0IgJiYgZHN0Q29sb3JTcGFjZSAhPSBDb2xvclNwYWNlRGV2aWNlUkdCKSkK
KyAgICBpZiAoKHNyY0NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZUxpbmVhclJHQiAmJiBzcmNDb2xv
clNwYWNlICE9IENvbG9yU3BhY2VTUkdCKQorICAgICAgICB8fCAoZHN0Q29sb3JTcGFjZSAhPSBD
b2xvclNwYWNlTGluZWFyUkdCICYmIGRzdENvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZVNSR0IpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZHN0Q29sb3JTcGFjZSA9PSBDb2xvclNwYWNlTGlu
ZWFyUkdCKSB7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3Jt
Q29sb3JTcGFjZShDb2xvclNwYWNlIHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZHN0Q28KICAg
ICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfSgpOwogICAgICAgICBwbGF0Zm9ybVRy
YW5zZm9ybUNvbG9yU3BhY2UobGluZWFyUmdiTFVUKTsKLSAgICB9IGVsc2UgaWYgKGRzdENvbG9y
U3BhY2UgPT0gQ29sb3JTcGFjZURldmljZVJHQikgeworICAgIH0gZWxzZSBpZiAoZHN0Q29sb3JT
cGFjZSA9PSBDb2xvclNwYWNlU1JHQikgewogICAgICAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJh
eTx1aW50OF90LCAyNTY+IGRldmljZVJnYkxVVD0gW10gewogICAgICAgICAgICAgc3RkOjphcnJh
eTx1aW50OF90LCAyNTY+IGFycmF5OwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IDI1NjsgaSsrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9Db2xvckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yQ0cuY3BwCmluZGV4IDYxN2EzMmZlNTQ1ZWJhZmExM2RlNGNhYmYxMWRiYmYwNjlkZWI2
YmIuLjA4NTc5ZTZlNTA2OWQ1YzQ0OWQyY2Y1MTUxZWZlOGViNjg2ZjVhMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCkBAIC0xMjgsNyAr
MTI4LDYgQEAgc3RhdGljIENHQ29sb3JSZWYgbGVha0NHQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9y
KQogICAgICAgICBjYXNlIENvbG9yU3BhY2VEaXNwbGF5UDM6CiAgICAgICAgICAgICByZXR1cm4g
Q0dDb2xvckNyZWF0ZShkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCksIGNvbXBvbmVudHMpOwogICAg
ICAgICBjYXNlIENvbG9yU3BhY2VMaW5lYXJSR0I6Ci0gICAgICAgIGNhc2UgQ29sb3JTcGFjZURl
dmljZVJHQjoKICAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBldmVyIGNyZWF0ZSBDR0NvbG9y
UmVmcyBpbiB0aGVzZSBzcGFjZXM/IEl0IG1heSBvbmx5IGJlIEltYWdlQnVmZmVycy4KICAgICAg
ICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNwYWNlUmVmKCksIGNvbXBvbmVu
dHMpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZDhmMGUxOTRmNGIzYjBhMzcy
NWM1NjUwNGJlNDZiMTRlZGQ0ZGI4Mi4uNmM5NGY5MTk5ZDYzYmNkODk4OWJjNGY4NWRhM2I2NmY1
MWQ5ZWMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtNzIsMTMgKzcyLDYgQEAgc3RhdGljIHZv
aWQgc2V0Q0dTdHJva2VDb2xvcihDR0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgQ29sb3ImIGNv
bG9yKQogICAgIENHQ29udGV4dFNldFN0cm9rZUNvbG9yV2l0aENvbG9yKGNvbnRleHQsIGNhY2hl
ZENHQ29sb3IoY29sb3IpKTsKIH0KIAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQg
c29vbi4KLUNHQ29sb3JTcGFjZVJlZiBkZXZpY2VSR0JDb2xvclNwYWNlUmVmKCkKLXsKLSAgICBz
dGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRldmljZVNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2
aWNlUkdCKCk7Ci0gICAgcmV0dXJuIGRldmljZVNwYWNlOwotfQotCiBDR0NvbG9yU3BhY2VSZWYg
c1JHQkNvbG9yU3BhY2VSZWYoKQogewogICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgc1JHQlNw
YWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZVNSR0IpOwpAQCAt
OTEsNyArODQsMjEgQEAgQ0dDb2xvclNwYWNlUmVmIHNSR0JDb2xvclNwYWNlUmVmKCkKICNlbmRp
ZiAvLyBQTEFURk9STShXSU4pCiAgICAgcmV0dXJuIHNSR0JTcGFjZTsKIH0KLSAgICAKKworI2lm
IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkKKy8vIFNlZSBHcmFwaGljc0Nv
bnRleHRDb2NvYSBmb3IgdGhlIHByZS0xMC4xMiBpbXBsZW1lbnRhdGlvbi4KK0NHQ29sb3JTcGFj
ZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCkKK3sKKyNpZiBQTEFURk9STShXSU4pCisgICAg
Ly8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIGJlIGFibGUgdG8gdXNlIGxpbmVhciBzUkdCLCB0aGlz
IGlzIHRyYWNrZWQgYnkgaHR0cDovL3dlYmtpdC5vcmcvYi84MDAwMC4KKyAgICByZXR1cm4gZGV2
aWNlUkdCQ29sb3JTcGFjZVJlZigpOworI2VuZGlmCisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJl
ZiBsaW5lYXJSR0JTcGFjZTsKKyAgICBsaW5lYXJSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0
ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VMaW5lYXJTUkdCKTsKKyAgICByZXR1cm4gbGluZWFyUkdC
U3BhY2U7Cit9CisjZW5kaWYKKwogQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3Bh
Y2VSZWYoKQogewogICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCU3BhY2U7
CkBAIC0xMDAsMjggKzEwNywyMSBAQCBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JT
cGFjZVJlZigpCiAjZW5kaWYKICAgICAvLyBJZiB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHRl
bmVkZWQgc1JHQiwgZmFsbCBiYWNrIHRvIHNSR0IuCiAgICAgaWYgKCFleHRlbmRlZFNSR0JTcGFj
ZSkKLSAgICAgICAgZXh0ZW5kZWRTUkdCU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOworICAg
ICAgICBleHRlbmRlZFNSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOwog
ICAgIHJldHVybiBleHRlbmRlZFNSR0JTcGFjZTsKIH0KIAogQ0dDb2xvclNwYWNlUmVmIGRpc3Bs
YXlQM0NvbG9yU3BhY2VSZWYoKQogeworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGlzcGxh
eVAzU3BhY2U7CiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTAxMTAwKQotICAgIHN0YXRpYyBDR0NvbG9yU3Bh
Y2VSZWYgZGlzcGxheVAzU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xv
clNwYWNlRGlzcGxheVAzKTsKKyAgICBkaXNwbGF5UDNTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0
ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VEaXNwbGF5UDMpOwogI2Vsc2UKLSAgICBzdGF0aWMgQ0dD
b2xvclNwYWNlUmVmIGRpc3BsYXlQM1NwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKKyAgICBk
aXNwbGF5UDNTcGFjZSA9IHNSR0JDb2xvclNwYWNlUmVmKCk7CiAjZW5kaWYKICAgICByZXR1cm4g
ZGlzcGxheVAzU3BhY2U7CiB9CiAKLSNpZiBQTEFURk9STShXSU4pCi1DR0NvbG9yU3BhY2VSZWYg
bGluZWFyUkdCQ29sb3JTcGFjZVJlZigpCi17Ci0gICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hvdWxk
IGJlIGFibGUgdG8gdXNlIGxpbmVhciBzUkdCLCB0aGlzIGlzIHRyYWNrZWQgYnkgaHR0cDovL3dl
YmtpdC5vcmcvYi84MDAwMC4KLSAgICByZXR1cm4gZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpOwot
fQotI2VuZGlmCi0KIHN0YXRpYyBJbnRlcnBvbGF0aW9uUXVhbGl0eSBjb252ZXJ0SW50ZXJwb2xh
dGlvblF1YWxpdHkoQ0dJbnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRj
aCAocXVhbGl0eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgKaW5kZXggMDZiM2Q2ZWJmNTA0ZGI0ZWU3Y2EzMTFm
MmMzMDA0YzQwMTQ3MzZhZS4uYjZjNjRmNzg4NWY5NTQ0ODAwN2EzNzM2N2Q0YmIwODNhNjFhODQ5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5oCkBAIC0zMSwxMSArMzEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dD
b2xvclNwYWNlICpDR0NvbG9yU3BhY2VSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ0dD
b2xvclNwYWNlUmVmIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENH
Q29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xv
clNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENH
Q29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7Ci1DR0NvbG9yU3BhY2VSZWYg
bGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVm
IGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKTsKIAogaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIGdl
dFVzZXJUb0Jhc2VDVE0oQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7CkBAIC00NSw4ICs0NCw2IEBA
IGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSBnZXRVc2VyVG9CYXNlQ1RNKENHQ29udGV4dFJlZiBj
b250ZXh0KQogc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xvclNwYWNl
KENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBzd2l0Y2ggKGNvbG9yU3BhY2UpIHsKLSAg
ICBjYXNlIENvbG9yU3BhY2VEZXZpY2VSR0I6Ci0gICAgICAgIHJldHVybiBkZXZpY2VSR0JDb2xv
clNwYWNlUmVmKCk7CiAgICAgY2FzZSBDb2xvclNwYWNlU1JHQjoKICAgICAgICAgcmV0dXJuIHNS
R0JDb2xvclNwYWNlUmVmKCk7CiAgICAgY2FzZSBDb2xvclNwYWNlTGluZWFyUkdCOgpAQCAtNTUs
NyArNTIsNyBAQCBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWRDR0NvbG9yU3Bh
Y2UoQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JT
cGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
ZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpOworICAgIHJldHVybiBzUkdCQ29sb3JTcGFjZVJlZigp
OwogfQogCiBjbGFzcyBDR0NvbnRleHRTdGF0ZVNhdmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29j
b2EubW0KaW5kZXggMzNjNDgwMGM2ODYyMGQ2OTEzYTc5NGEyY2M0NWU3NTgzOGMxYzRkOC4uMzRj
NjNjZDllNTc2OTY4ZDk3YmUxZmRiN2Q2MDRhMjg0NjM3OTE1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0Q29jb2EubW0KQEAgLTM2NSw2ICszNjUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgdwog
I2VuZGlmCiB9CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPCAxMDEyMDAKIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNlUmVm
KCkKIHsKICAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclNSR0JTcGFjZSA9IG51bGxw
dHI7CkBAIC0zODcsNSArMzg4LDYgQEAgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3Bh
Y2VSZWYoKQogCiAgICAgcmV0dXJuIGxpbmVhclNSR0JTcGFjZTsKIH0KKyNlbmRpZgogCi19Cit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMubW0KaW5kZXggNGM4ODE3ZGRkNmFiOWViZTNiZGYwNzc1NDMyNDJhOTQ2MDA3YzFmMy4uZTFm
Y2VkMTEwYmZhMjIzMDA3NDRjYmUxMGQ4NTJjYmNlZGI4NzkxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtOTQsNyArOTQsNyBAQCBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpDTVNhbXBsZUJ1ZmZl
ckZyb21QaXhlbAogCiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWM6OnBpeGVsQnVmZmVyRnJvbUNHSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSkgY29u
c3QKIHsKLSAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRldmljZVJHQkNvbG9yU3BhY2UgPSBD
R0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKKyAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVm
IHNSR0JDb2xvclNwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKIAogICAgIENHU2l6ZSBpbWFn
ZVNpemUgPSBDR1NpemVNYWtlKENHSW1hZ2VHZXRXaWR0aChpbWFnZSksIENHSW1hZ2VHZXRIZWln
aHQoaW1hZ2UpKTsKICAgICBpZiAoIW1fYnVmZmVyUG9vbCkgewpAQCAtMTI5LDcgKzEyOSw3IEBA
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6
cGl4ZWxCdWZmZXJGcm9tQ0dJbWFnZShDCiAKICAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRy
ZXNzKHBpeGVsQnVmZmVyLCAwKTsKICAgICB2b2lkKiBkYXRhID0gQ1ZQaXhlbEJ1ZmZlckdldEJh
c2VBZGRyZXNzKHBpeGVsQnVmZmVyKTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQml0
bWFwQ29udGV4dENyZWF0ZShkYXRhLCBpbWFnZVNpemUud2lkdGgsIGltYWdlU2l6ZS5oZWlnaHQs
IDgsIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhwaXhlbEJ1ZmZlciksIGRldmljZVJHQkNv
bG9yU3BhY2UsIChDR0JpdG1hcEluZm8pIGtDR0ltYWdlQWxwaGFOb25lU2tpcEZpcnN0KSk7Cisg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoZGF0YSwgaW1h
Z2VTaXplLndpZHRoLCBpbWFnZVNpemUuaGVpZ2h0LCA4LCBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQ
ZXJSb3cocGl4ZWxCdWZmZXIpLCBzUkdCQ29sb3JTcGFjZSwgKENHQml0bWFwSW5mbykga0NHSW1h
Z2VBbHBoYU5vbmVTa2lwRmlyc3QpKTsKICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5n
ZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UpLCBDR0ltYWdlR2V0
SGVpZ2h0KGltYWdlKSksIGltYWdlKTsKICAgICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJl
c3MocGl4ZWxCdWZmZXIsIDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IDJjMmE0OWIwMGY3ODI3
Y2M2N2VmNzMzYzkzZDVjNjFhYTdjM2Q3N2QuLjFhMTdmNDFkMWFiNjY1MjI0MTFlN2E1NjBkOWYy
MmRmOGU3OGM0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBS
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6cG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIsIEdyYXBoaWMKICAgICAgICAgICAgIGZpbHRlckRhdGEuc3RhdGUgPSBGaWx0ZXJE
YXRhOjpBcHBseWluZzsKICAgICAgICAgICAgIGxhc3RFZmZlY3QtPmFwcGx5QWxsKCk7CiAgICAg
ICAgICAgICBsYXN0RWZmZWN0LT5jb3JyZWN0RmlsdGVyUmVzdWx0SWZOZWVkZWQoKTsKLSAgICAg
ICAgICAgIGxhc3RFZmZlY3QtPnRyYW5zZm9ybVJlc3VsdENvbG9yU3BhY2UoQ29sb3JTcGFjZURl
dmljZVJHQik7CisgICAgICAgICAgICBsYXN0RWZmZWN0LT50cmFuc2Zvcm1SZXN1bHRDb2xvclNw
YWNlKENvbG9yU3BhY2VTUkdCKTsKICAgICAgICAgfQogICAgICAgICBmaWx0ZXJEYXRhLnN0YXRl
ID0gRmlsdGVyRGF0YTo6QnVpbHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggNDcxNzg4MGEwODY4
ZmIyNWY0ZjkwMTcxMjdiZjhmNzE4MjhiNWZkZS4uNmYxNTAzMDM3OWFhYmY3MWY5MTU0YjliZTIw
YjZlZjkzY2Q3YWM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBib29s
IFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UoTWFza2Vy
RGF0YSogbWFza2VyRGF0YSwgQwogICAgIH0KIAogI2lmICFVU0UoQ0cpCi0gICAgbWFza2VyRGF0
YS0+bWFza0ltYWdlLT50cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3BhY2VEZXZpY2VSR0IsIGNv
bG9yU3BhY2UpOworICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+dHJhbnNmb3JtQ29sb3JTcGFj
ZShDb2xvclNwYWNlU1JHQiwgY29sb3JTcGFjZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShj
b2xvclNwYWNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCBhMWU3YTM5NzJiMjdmMDUxZTZmMTk4NDVkZmFhMTQ0NDdkODU3N2Uy
Li4yZDJjZTc1MzA3Y2I1ZjkyMGJkYjc4NGZhYzNlYzZkZjlkZDZjZWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjg4LDcgKzY4OCw2IEBA
IG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpD
b2xvclNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJDb3Jl
OjpDb2xvclNwYWNlLAotICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkNvbG9yU3BhY2VEZXZpY2VS
R0IsCiAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZTo6Q29sb3JTcGFjZVNSR0IsCiAgICAgV2ViQ29y
ZTo6Q29sb3JTcGFjZTo6Q29sb3JTcGFjZUxpbmVhclJHQiwKICAgICBXZWJDb3JlOjpDb2xvclNw
YWNlOjpDb2xvclNwYWNlRGlzcGxheVAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwODcyOWMwOGM5N2U2MzI3YjQxM2I2N2RmODNhNjYx
YTcxYTNlZGY1Li40NWExOTRhODYwOTI2ZDkwNDQ1YWZmZjdhNzAyMmVlNTI5NDBmMDU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE1
NCw2ICsxNTQsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiV2ViVUlLaXREZWxl
Z2F0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9LZXlFdmVudENvZGVzSU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dBS0NsaXBWaWV3Lmg+CkBAIC03MDUw
LDggKzcwNTEsNyBAQCBzdGF0aWMgQ0dJbWFnZVJlZiBpbWFnZUZyb21SZWN0KEZyYW1lKiBmcmFt
ZSwgQ0dSZWN0IHJlY3QpCiAgICAgc2l6ZV90IGJpdHNQZXJDb21wb25lbnQgPSA4OwogICAgIHNp
emVfdCBiaXRzUGVyUGl4ZWwgPSA0ICogYml0c1BlckNvbXBvbmVudDsKICAgICBzaXplX3QgYnl0
ZXNQZXJSb3cgPSAoKGJpdHNQZXJQaXhlbCArIDcpIC8gOCkgKiB3aWR0aDsKLSAgICBSZXRhaW5Q
dHI8Q0dDb2xvclNwYWNlUmVmPiBjb2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVh
dGVEZXZpY2VSR0IoKSk7Ci0gICAgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gY29udGV4dCA9IGFk
b3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKE5VTEwsIHdpZHRoLCBoZWlnaHQsIGJpdHNQZXJD
b21wb25lbnQsIGJ5dGVzUGVyUm93LCBjb2xvclNwYWNlLmdldCgpLCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZExhc3QpKTsKKyAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoTlVMTCwgd2lkdGgsIGhlaWdodCwgYml0c1Bl
ckNvbXBvbmVudCwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0ltYWdlQWxw
aGFQcmVtdWx0aXBsaWVkTGFzdCkpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329113</attachid>
            <date>2017-12-12 08:09:37 -0800</date>
            <delta_ts>2017-12-12 10:10:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180689-20171212080937.patch</filename>
            <type>text/plain</type>
            <size>18272</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMyOWEzZDVjYWQxZDgz
NmZlNmI1Y2UyODRlNDM4ZDQ3MTQ4OTA2Mi4uOTJmZGYzNmMxOGQyMTk1N2JmZjlhODczMDUwNDhm
MWRlYzI1MWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTEyLTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBDb2xv
clNwYWNlRGV2aWNlUkdCIGFuZCBtb3N0IHVzZXJzIG9mIHRoZSBvYnNvbGV0ZSBkZXZpY2VSR0Ig
Y29sb3JzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBDb2xvclNwYWNlRGV2aWNlUkdCIGVudW0gYW5kIHVzZXJzLgorCisgICAg
ICAgIEltYWdlQnVmZmVyIG5vdyB1c2VzIHNSR0IgaW5zdGVhZCBvZiBkZXZpY2VSR0IgaW4gdGhl
IGZldyBjYXNlcyB0aGF0IHVzZWQgdGhlIGxhdHRlci4KKworICAgICAgICBIYXZlIGxpbmVhclJH
QkNvbG9yU3BhY2VSZWYoKSB1c2Uga0NHQ29sb3JTcGFjZUxpbmVhclNSR0IsIHdoaWNoIGlzIHBy
ZXNlbnQgaW4gaU9TIDkgYW5kIDEwLjExIGFuZCBsYXRlci4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6dHJhbnNmb3JtQ29sb3JTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
Q29sb3JDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZWFrQ0dDb2xvcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bGluZWFyUkdCQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChXZWJDb3JlOjpleHRlbmRl
ZFNSR0JDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlQM0NvbG9yU3Bh
Y2VSZWYpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlUkdCQ29sb3JTcGFjZVJlZik6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OnBpeGVsQnVmZmVyRnJvbUNH
SW1hZ2UgY29uc3QpOiBVc2Ugc1JHQkNvbG9yU3BhY2VSZWYoKS4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNvdXJjZSk6IFRyYW5zZm9ybSByZXN1
bHQgdG8gQ29sb3JTcGFjZVNSR0IuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1h
c2tlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKTogRGl0dG8uCisKIDIwMTctMTItMTEgIEJh
c3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWly
b10gRHVtcFJlbmRlclRyZWUgdGltZXMgb3V0IGZvciBhbGwgbm9uLWh0dHAgdGVzdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMGQ5ZDliMWM5MWY0ODA3MTY2NTYwNjM5YWVhN2M3MjgzMDA1MTU3NS4uZTQyY2JiZTQ5
YWJhZmY0ZDNiYmM5ZGE3YzIzZWNkNDYwOTUwMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxNy0xMi0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgQ29sb3JTcGFjZURldmljZVJHQiBhbmQgbW9zdCB1c2VycyBvZiB0aGUg
b2Jzb2xldGUgZGV2aWNlUkdCIGNvbG9yc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBlbmNvZGluZyBvZiBDb2xvclNwYWNlRGV2aWNl
UkdCLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAyMDE3
LTEyLTEwICBTdGVwaGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAg
ICBBUElDbGllbnQuaCB1c2VzIHRoaW5ncyBmcm9tIDx0dXBsZT4gd2l0aG91dCBpbmNsdWRpbmcg
aXQgZXhwbGljaXRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGU4YjY3NjQ3YjUx
OTY0NmI5ZmFiNzMzYzBkMzg0NmNjMWM2MzM2NjUuLjJkMGVlMjg4ZDFkOWQ1MDVmOWMyNjUzMDMz
MDM5ZDRhYjE1MmIyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNy0xMi0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgQ29sb3JTcGFjZURldmljZVJHQiBhbmQgbW9zdCB1c2VycyBvZiB0
aGUgb2Jzb2xldGUgZGV2aWNlUkdCIGNvbG9yc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzUkdCQ29sb3JTcGFjZVJlZigpIGZyb20gV2Vi
Q29yZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIChpbWFn
ZUZyb21SZWN0KToKKwogMjAxNy0xMi0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZW1vdmUgcHRocmVhZF9vbmNlIGluIGZhdm9yIG9mIGRpc3Bh
dGNoX29uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRl
eCBjMmViYWI1NjBhMmM0MWQ1NjYwYzllOTdmMGM4NDNiYjk4NzVhOWI1Li44MmNhZTg4OTM4NzBi
NWRhNmRkMTIyNzFlOWYxNzgyOWJlODY3ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCkBAIC02NjgsOSArNjY4LDYgQEAgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ29sb3ImIGNvbG9yKQogVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIHN3
aXRjaCAoY29sb3JTcGFjZSkgewotICAgIGNhc2UgQ29sb3JTcGFjZURldmljZVJHQjoKLSAgICAg
ICAgdHMgPDwgIkRldmljZVJHQiI7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29sb3JTcGFj
ZVNSR0I6CiAgICAgICAgIHRzIDw8ICJzUkdCIjsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKaW5kZXggZTEyYzQwYWRjYTFl
MjQ3ZTk2N2ZmNjIxMzM2MGUzMDlmNTcwMTJmMi4uMTFkMDE3ZmFhOGYyY2Y0NGNkYmUyOWNmNThk
NzU3NTA1ZGVlMTU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yU3BhY2UuaApAQCAtMjMsMTMgKzIzLDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0j
aWZuZGVmIENvbG9yU3BhY2VfaAotI2RlZmluZSBDb2xvclNwYWNlX2gKKyNwcmFnbWEgb25jZQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gQ29sb3JTcGFjZSB7Ci0gICAgQ29sb3JTcGFj
ZURldmljZVJHQiwKICAgICBDb2xvclNwYWNlU1JHQiwKICAgICBDb2xvclNwYWNlTGluZWFyUkdC
LAogICAgIENvbG9yU3BhY2VEaXNwbGF5UDMKQEAgLTM3LDQgKzM1LDMgQEAgZW51bSBDb2xvclNw
YWNlIHsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIENvbG9yU3Bh
Y2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
Y3BwCmluZGV4IDU3ZjQ2MDFkOGYzOWI3MjAwNzgzN2UwNGNiNjBiYTIyYTQwNjM1ZTIuLmE1NmZk
ODI4MjJjYzkwMGI0MjAzZDNjY2RiMDUzMDA0ZDhmODI3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKQEAgLTEyNiw4ICsxMjYsOCBA
QCB2b2lkIEltYWdlQnVmZmVyOjp0cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3BhY2Ugc3JjQ29s
b3JTcGFjZSwgQ29sb3JTcGFjZSBkc3RDbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBvbmx5
IHNSR0IgPC0+IGxpbmVhclJHQiBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQKLSAgICBpZiAo
KHNyY0NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZUxpbmVhclJHQiAmJiBzcmNDb2xvclNwYWNlICE9
IENvbG9yU3BhY2VEZXZpY2VSR0IpCi0gICAgICAgIHx8IChkc3RDb2xvclNwYWNlICE9IENvbG9y
U3BhY2VMaW5lYXJSR0IgJiYgZHN0Q29sb3JTcGFjZSAhPSBDb2xvclNwYWNlRGV2aWNlUkdCKSkK
KyAgICBpZiAoKHNyY0NvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZUxpbmVhclJHQiAmJiBzcmNDb2xv
clNwYWNlICE9IENvbG9yU3BhY2VTUkdCKQorICAgICAgICB8fCAoZHN0Q29sb3JTcGFjZSAhPSBD
b2xvclNwYWNlTGluZWFyUkdCICYmIGRzdENvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZVNSR0IpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZHN0Q29sb3JTcGFjZSA9PSBDb2xvclNwYWNlTGlu
ZWFyUkdCKSB7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3Jt
Q29sb3JTcGFjZShDb2xvclNwYWNlIHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZHN0Q28KICAg
ICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfSgpOwogICAgICAgICBwbGF0Zm9ybVRy
YW5zZm9ybUNvbG9yU3BhY2UobGluZWFyUmdiTFVUKTsKLSAgICB9IGVsc2UgaWYgKGRzdENvbG9y
U3BhY2UgPT0gQ29sb3JTcGFjZURldmljZVJHQikgeworICAgIH0gZWxzZSBpZiAoZHN0Q29sb3JT
cGFjZSA9PSBDb2xvclNwYWNlU1JHQikgewogICAgICAgICBzdGF0aWMgY29uc3Qgc3RkOjphcnJh
eTx1aW50OF90LCAyNTY+IGRldmljZVJnYkxVVD0gW10gewogICAgICAgICAgICAgc3RkOjphcnJh
eTx1aW50OF90LCAyNTY+IGFycmF5OwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IDI1NjsgaSsrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9Db2xvckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0NvbG9yQ0cuY3BwCmluZGV4IDYxN2EzMmZlNTQ1ZWJhZmExM2RlNGNhYmYxMWRiYmYwNjlkZWI2
YmIuLmEzYmE0NGI5MGQ4ZjQwMTJiMjk5MjljZjA5NGFjM2YzZTQ5ODMxYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwCkBAIC01NSwyMSAr
NTUsNiBAQCBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gVGlueUxSVUNhY2hlUG9saWN5PFdlYkNvcmU6
OkNvbG9yLCBSZXRhaW5QdHI8Q0dDb2xvclJlZj4+OgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSNpZiBQTEFURk9STShJT1MpCi1zdGF0aWMgQ0dDb2xvclJlZiBjcmVhdGVDR0NvbG9yV2l0aERl
dmljZVJHQkEoQ0dDb2xvclJlZiBzb3VyY2VDb2xvcikKLXsKLSAgICBpZiAoIXNvdXJjZUNvbG9y
IHx8IENGRXF1YWwoQ0dDb2xvckdldENvbG9yU3BhY2Uoc291cmNlQ29sb3IpLCBkZXZpY2VSR0JD
b2xvclNwYWNlUmVmKCkpKQotICAgICAgICByZXR1cm4gQ0dDb2xvclJldGFpbihzb3VyY2VDb2xv
cik7Ci0KLSAgICBSZXRhaW5QdHI8Q0dDb2xvclRyYW5zZm9ybVJlZj4gY29sb3JUcmFuc2Zvcm0g
PSBhZG9wdENGKENHQ29sb3JUcmFuc2Zvcm1DcmVhdGUoZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigp
LCBudWxscHRyKSk7Ci0gICAgaWYgKCFjb2xvclRyYW5zZm9ybSkKLSAgICAgICAgcmV0dXJuIENH
Q29sb3JSZXRhaW4oc291cmNlQ29sb3IpOwotCi0gICAgLy8gQ0dDb2xvclRyYW5zZm9ybUNvbnZl
cnRDb2xvcigpIHJldHVybnMgYSArMSByZXRhaW5lZCBvYmplY3QuCi0gICAgcmV0dXJuIENHQ29s
b3JUcmFuc2Zvcm1Db252ZXJ0Q29sb3IoY29sb3JUcmFuc2Zvcm0uZ2V0KCksIHNvdXJjZUNvbG9y
LCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KTsKLX0KLSNlbmRpZiAvLyBQTEFURk9STShJT1Mp
Ci0KIENvbG9yOjpDb2xvcihDR0NvbG9yUmVmIGNvbG9yKQogewogICAgIGlmICghY29sb3IpIHsK
QEAgLTc3LDE4ICs2Miw4IEBAIENvbG9yOjpDb2xvcihDR0NvbG9yUmVmIGNvbG9yKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICBzaXplX3QgbnVtQ29t
cG9uZW50cyA9IENHQ29sb3JHZXROdW1iZXJPZkNvbXBvbmVudHMoY29sb3IpOwogICAgIGNvbnN0
IENHRmxvYXQqIGNvbXBvbmVudHMgPSBDR0NvbG9yR2V0Q29tcG9uZW50cyhjb2xvcik7Ci0jZWxz
ZQotICAgIC8vIEZJWE1FOiBjYW4gd2UgcmVtb3ZlIHRoaXM/Ci0gICAgUmV0YWluUHRyPENHQ29s
b3JSZWY+IGNvcnJlY3RlZENvbG9yID0gYWRvcHRDRihjcmVhdGVDR0NvbG9yV2l0aERldmljZVJH
QkEoY29sb3IpKTsKLSAgICBpZiAoIWNvcnJlY3RlZENvbG9yKQotICAgICAgICBjb3JyZWN0ZWRD
b2xvciA9IGNvbG9yOwotCi0gICAgc2l6ZV90IG51bUNvbXBvbmVudHMgPSBDR0NvbG9yR2V0TnVt
YmVyT2ZDb21wb25lbnRzKGNvcnJlY3RlZENvbG9yLmdldCgpKTsKLSAgICBjb25zdCBDR0Zsb2F0
KiBjb21wb25lbnRzID0gQ0dDb2xvckdldENvbXBvbmVudHMoY29ycmVjdGVkQ29sb3IuZ2V0KCkp
OwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKICAgICBmbG9hdCByID0gMDsKICAgICBmbG9h
dCBnID0gMDsKQEAgLTEyOCw3ICsxMDMsNiBAQCBzdGF0aWMgQ0dDb2xvclJlZiBsZWFrQ0dDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZURpc3BsYXlQMzoK
ICAgICAgICAgICAgIHJldHVybiBDR0NvbG9yQ3JlYXRlKGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYo
KSwgY29tcG9uZW50cyk7CiAgICAgICAgIGNhc2UgQ29sb3JTcGFjZUxpbmVhclJHQjoKLSAgICAg
ICAgY2FzZSBDb2xvclNwYWNlRGV2aWNlUkdCOgogICAgICAgICAgICAgLy8gRklYTUU6IERvIHdl
IGV2ZXIgY3JlYXRlIENHQ29sb3JSZWZzIGluIHRoZXNlIHNwYWNlcz8gSXQgbWF5IG9ubHkgYmUg
SW1hZ2VCdWZmZXJzLgogICAgICAgICAgICAgcmV0dXJuIENHQ29sb3JDcmVhdGUoc1JHQkNvbG9y
U3BhY2VSZWYoKSwgY29tcG9uZW50cyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRl
eCBkOGYwZTE5NGY0YjNiMGEzNzI1YzU2NTA0YmU0NmIxNGVkZDRkYjgyLi42Yzk0ZjkxOTlkNjNi
Y2Q4OTg5YmM0Zjg1ZGEzYjY2ZjUxZDllYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC03Miwx
MyArNzIsNiBAQCBzdGF0aWMgdm9pZCBzZXRDR1N0cm9rZUNvbG9yKENHQ29udGV4dFJlZiBjb250
ZXh0LCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAgQ0dDb250ZXh0U2V0U3Ryb2tlQ29sb3JXaXRo
Q29sb3IoY29udGV4dCwgY2FjaGVkQ0dDb2xvcihjb2xvcikpOwogfQogCi0vLyBGSVhNRTogVGhp
cyBzaG91bGQgYmUgcmVtb3ZlZCBzb29uLgotQ0dDb2xvclNwYWNlUmVmIGRldmljZVJHQkNvbG9y
U3BhY2VSZWYoKQotewotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGV2aWNlU3BhY2UgPSBD
R0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKLSAgICByZXR1cm4gZGV2aWNlU3BhY2U7Ci19
Ci0KIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAgc3RhdGljIENH
Q29sb3JTcGFjZVJlZiBzUkdCU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dD
b2xvclNwYWNlU1JHQik7CkBAIC05MSw3ICs4NCwyMSBAQCBDR0NvbG9yU3BhY2VSZWYgc1JHQkNv
bG9yU3BhY2VSZWYoKQogI2VuZGlmIC8vIFBMQVRGT1JNKFdJTikKICAgICByZXR1cm4gc1JHQlNw
YWNlOwogfQotICAgIAorCisjaWYgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpIHx8IChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
KQorLy8gU2VlIEdyYXBoaWNzQ29udGV4dENvY29hIGZvciB0aGUgcHJlLTEwLjEyIGltcGxlbWVu
dGF0aW9uLgorQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKQoreworI2lm
IFBMQVRGT1JNKFdJTikKKyAgICAvLyBGSVhNRTogV2luZG93cyBzaG91bGQgYmUgYWJsZSB0byB1
c2UgbGluZWFyIHNSR0IsIHRoaXMgaXMgdHJhY2tlZCBieSBodHRwOi8vd2Via2l0Lm9yZy9iLzgw
MDAwLgorICAgIHJldHVybiBkZXZpY2VSR0JDb2xvclNwYWNlUmVmKCk7CisjZW5kaWYKKyAgICBz
dGF0aWMgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQlNwYWNlOworICAgIGxpbmVhclJHQlNwYWNl
ID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZUxpbmVhclNSR0IpOwor
ICAgIHJldHVybiBsaW5lYXJSR0JTcGFjZTsKK30KKyNlbmRpZgorCiBDR0NvbG9yU3BhY2VSZWYg
ZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAgc3RhdGljIENHQ29sb3JTcGFjZVJl
ZiBleHRlbmRlZFNSR0JTcGFjZTsKQEAgLTEwMCwyOCArMTA3LDIxIEBAIENHQ29sb3JTcGFjZVJl
ZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKCkKICNlbmRpZgogICAgIC8vIElmIHRoZXJlIGlz
IG5vIHN1cHBvcnQgZm9yIGV4dGVuZWRlZCBzUkdCLCBmYWxsIGJhY2sgdG8gc1JHQi4KICAgICBp
ZiAoIWV4dGVuZGVkU1JHQlNwYWNlKQotICAgICAgICBleHRlbmRlZFNSR0JTcGFjZSA9IHNSR0JD
b2xvclNwYWNlUmVmKCk7CisgICAgICAgIGV4dGVuZGVkU1JHQlNwYWNlID0gQ0dDb2xvclNwYWNl
Q3JlYXRlRGV2aWNlUkdCKCk7CiAgICAgcmV0dXJuIGV4dGVuZGVkU1JHQlNwYWNlOwogfQogCiBD
R0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpCiB7CisgICAgc3RhdGljIENH
Q29sb3JTcGFjZVJlZiBkaXNwbGF5UDNTcGFjZTsKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPiAxMDExMDApCi0g
ICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNTcGFjZSA9IENHQ29sb3JTcGFjZUNy
ZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VEaXNwbGF5UDMpOworICAgIGRpc3BsYXlQM1NwYWNl
ID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZURpc3BsYXlQMyk7CiAj
ZWxzZQotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzU3BhY2UgPSBzUkdCQ29s
b3JTcGFjZVJlZigpOworICAgIGRpc3BsYXlQM1NwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsK
ICNlbmRpZgogICAgIHJldHVybiBkaXNwbGF5UDNTcGFjZTsKIH0KIAotI2lmIFBMQVRGT1JNKFdJ
TikKLUNHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCkKLXsKLSAgICAvLyBG
SVhNRTogV2luZG93cyBzaG91bGQgYmUgYWJsZSB0byB1c2UgbGluZWFyIHNSR0IsIHRoaXMgaXMg
dHJhY2tlZCBieSBodHRwOi8vd2Via2l0Lm9yZy9iLzgwMDAwLgotICAgIHJldHVybiBkZXZpY2VS
R0JDb2xvclNwYWNlUmVmKCk7Ci19Ci0jZW5kaWYKLQogc3RhdGljIEludGVycG9sYXRpb25RdWFs
aXR5IGNvbnZlcnRJbnRlcnBvbGF0aW9uUXVhbGl0eShDR0ludGVycG9sYXRpb25RdWFsaXR5IHF1
YWxpdHkpCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuaAppbmRleCAwNmIz
ZDZlYmY1MDRkYjRlZTdjYTMxMWYyYzMwMDRjNDAxNDczNmFlLi5iNmM2NGY3ODg1Zjk1NDQ4MDA3
YTM3MzY3ZDRiYjA4M2E2MWE4NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmgKQEAgLTMxLDExICszMSwxMCBA
QCB0eXBlZGVmIHN0cnVjdCBDR0NvbG9yU3BhY2UgKkNHQ29sb3JTcGFjZVJlZjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1DR0NvbG9yU3BhY2VSZWYgZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigp
OwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIHNSR0JDb2xvclNwYWNlUmVmKCk7CiBX
RUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigp
OwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYo
KTsKLUNHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCk7CitXRUJDT1JFX0VY
UE9SVCBDR0NvbG9yU3BhY2VSZWYgbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpOwogCiBpbmxpbmUg
Q0dBZmZpbmVUcmFuc2Zvcm0gZ2V0VXNlclRvQmFzZUNUTShDR0NvbnRleHRSZWYgY29udGV4dCkK
IHsKQEAgLTQ1LDggKzQ0LDYgQEAgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIGdldFVzZXJUb0Jh
c2VDVE0oQ0dDb250ZXh0UmVmIGNvbnRleHQpCiBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJl
ZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIHN3aXRj
aCAoY29sb3JTcGFjZSkgewotICAgIGNhc2UgQ29sb3JTcGFjZURldmljZVJHQjoKLSAgICAgICAg
cmV0dXJuIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3BhY2VTUkdC
OgogICAgICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9yU3Bh
Y2VMaW5lYXJSR0I6CkBAIC01NSw3ICs1Miw3IEBAIHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNl
UmVmIGNhY2hlZENHQ29sb3JTcGFjZShDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiAgICAgICAgIHJl
dHVybiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBkZXZpY2VSR0JDb2xvclNwYWNlUmVmKCk7CisgICAgcmV0dXJu
IHNSR0JDb2xvclNwYWNlUmVmKCk7CiB9CiAKIGNsYXNzIENHQ29udGV4dFN0YXRlU2F2ZXIgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQppbmRleCAzM2M0ODAwYzY4NjIwZDY5MTNhNzk0YTJj
YzQ1ZTc1ODM4YzFjNGQ4Li4zNGM2M2NkOWU1NzY5NjhkOTdiZTFmZGI3ZDYwNGEyODQ2Mzc5MTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQpAQCAtMzY1LDYgKzM2NSw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9p
bnQmIHBvaW50LCBmbG9hdCB3CiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTIwMAogQ0dDb2xvclNwYWNlUmVmIGxp
bmVhclJHQkNvbG9yU3BhY2VSZWYoKQogewogICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGlu
ZWFyU1JHQlNwYWNlID0gbnVsbHB0cjsKQEAgLTM4Nyw1ICszODgsNiBAQCBDR0NvbG9yU3BhY2VS
ZWYgbGluZWFyUkdCQ29sb3JTcGFjZVJlZigpCiAKICAgICByZXR1cm4gbGluZWFyU1JHQlNwYWNl
OwogfQorI2VuZGlmCiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCA0Yzg4MTdkZGQ2YWI5ZWJlM2JkZjA3NzU0
MzI0MmE5NDYwMDdjMWYzLi5lMWZjZWQxMTBiZmEyMjMwMDc0NGNiZTEwZDg1MmNiY2VkYjg3OTE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC05NCw3ICs5
NCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6OkNNU2FtcGxlQnVmZmVyRnJvbVBpeGVsCiAKIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6cGl4ZWxCdWZmZXJGcm9tQ0dJbWFnZShD
R0ltYWdlUmVmIGltYWdlKSBjb25zdAogewotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGV2
aWNlUkdCQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOworICAgIHN0
YXRpYyBDR0NvbG9yU3BhY2VSZWYgc1JHQkNvbG9yU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigp
OwogCiAgICAgQ0dTaXplIGltYWdlU2l6ZSA9IENHU2l6ZU1ha2UoQ0dJbWFnZUdldFdpZHRoKGlt
YWdlKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZSkpOwogICAgIGlmICghbV9idWZmZXJQb29sKSB7
CkBAIC0xMjksNyArMTI5LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjOjpwaXhlbEJ1ZmZlckZyb21DR0ltYWdlKEMKIAogICAgIENWUGl4
ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwogICAgIHZvaWQqIGRhdGEg
PSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOwotICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGltYWdlU2l6ZS53aWR0
aCwgaW1hZ2VTaXplLmhlaWdodCwgOCwgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KHBpeGVs
QnVmZmVyKSwgZGV2aWNlUkdCQ29sb3JTcGFjZSwgKENHQml0bWFwSW5mbykga0NHSW1hZ2VBbHBo
YU5vbmVTa2lwRmlyc3QpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29u
dGV4dENyZWF0ZShkYXRhLCBpbWFnZVNpemUud2lkdGgsIGltYWdlU2l6ZS5oZWlnaHQsIDgsIENW
UGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhwaXhlbEJ1ZmZlciksIHNSR0JDb2xvclNwYWNlLCAo
Q0dCaXRtYXBJbmZvKSBrQ0dJbWFnZUFscGhhTm9uZVNraXBGaXJzdCkpOwogICAgIENHQ29udGV4
dERyYXdJbWFnZShjb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKDAsIDAsIENHSW1hZ2VHZXRXaWR0
aChpbWFnZSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpKSwgaW1hZ2UpOwogICAgIENWUGl4ZWxC
dWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAK
aW5kZXggMmMyYTQ5YjAwZjc4MjdjYzY3ZWY3MzNjOTNkNWM2MWFhN2MzZDc3ZC4uMWExN2Y0MWQx
YWI2NjUyMjQxMWU3YTU2MGQ5ZjIyZGY4ZTc4YzQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKQEAgLTI3
OCw3ICsyNzgsNyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBwbHlSZXNv
dXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgR3JhcGhpYwogICAgICAgICAgICAgZmlsdGVy
RGF0YS5zdGF0ZSA9IEZpbHRlckRhdGE6OkFwcGx5aW5nOwogICAgICAgICAgICAgbGFzdEVmZmVj
dC0+YXBwbHlBbGwoKTsKICAgICAgICAgICAgIGxhc3RFZmZlY3QtPmNvcnJlY3RGaWx0ZXJSZXN1
bHRJZk5lZWRlZCgpOwotICAgICAgICAgICAgbGFzdEVmZmVjdC0+dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgICAgIGxhc3RFZmZlY3QtPnRy
YW5zZm9ybVJlc3VsdENvbG9yU3BhY2UoQ29sb3JTcGFjZVNSR0IpOwogICAgICAgICB9CiAgICAg
ICAgIGZpbHRlckRhdGEuc3RhdGUgPSBGaWx0ZXJEYXRhOjpCdWlsdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNw
cAppbmRleCA0NzE3ODgwYTA4NjhmYjI1ZjRmOTAxNzEyN2JmOGY3MTgyOGI1ZmRlLi42ZjE1MDMw
Mzc5YWFiZjcxZjkxNTRiOWJlMjBiNmVmOTNjZDdhYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAt
MTEzLDcgKzExMyw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmRyYXdDb250ZW50
SW50b01hc2tJbWFnZShNYXNrZXJEYXRhKiBtYXNrZXJEYXRhLCBDCiAgICAgfQogCiAjaWYgIVVT
RShDRykKLSAgICBtYXNrZXJEYXRhLT5tYXNrSW1hZ2UtPnRyYW5zZm9ybUNvbG9yU3BhY2UoQ29s
b3JTcGFjZURldmljZVJHQiwgY29sb3JTcGFjZSk7CisgICAgbWFza2VyRGF0YS0+bWFza0ltYWdl
LT50cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3BhY2VTUkdCLCBjb2xvclNwYWNlKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGNvbG9yU3BhY2UpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGExZTdhMzk3MmIyN2YwNTFlNmYx
OTg0NWRmYWExNDQ0N2Q4NTc3ZTIuLjJkMmNlNzUzMDdjYjVmOTIwYmRiNzg0ZmFjM2VjNmRmOWRk
NmNlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC02ODgsNyArNjg4LDYgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAogICAgIFdlYkNvcmU6OkNvbG9yU3BhY2UsCi0gICAgV2ViQ29yZTo6Q29sb3JTcGFj
ZTo6Q29sb3JTcGFjZURldmljZVJHQiwKICAgICBXZWJDb3JlOjpDb2xvclNwYWNlOjpDb2xvclNw
YWNlU1JHQiwKICAgICBXZWJDb3JlOjpDb2xvclNwYWNlOjpDb2xvclNwYWNlTGluZWFyUkdCLAog
ICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkNvbG9yU3BhY2VEaXNwbGF5UDMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDA4NzI5YzA4Yzk3
ZTYzMjdiNDEzYjY3ZGY4M2E2NjFhNzFhM2VkZjUuLjQ1YTE5NGE4NjA5MjZkOTA0NDVhZmZmN2E3
MDIyZWU1Mjk0MGYwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQpAQCAtMTU0LDYgKzE1NCw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAj
aW1wb3J0ICJXZWJVSUtpdERlbGVnYXRlLmgiCisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29u
dGV4dENHLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleUV2ZW50Q29kZXNJT1MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FL
Q2xpcFZpZXcuaD4KQEAgLTcwNTAsOCArNzA1MSw3IEBAIHN0YXRpYyBDR0ltYWdlUmVmIGltYWdl
RnJvbVJlY3QoRnJhbWUqIGZyYW1lLCBDR1JlY3QgcmVjdCkKICAgICBzaXplX3QgYml0c1BlckNv
bXBvbmVudCA9IDg7CiAgICAgc2l6ZV90IGJpdHNQZXJQaXhlbCA9IDQgKiBiaXRzUGVyQ29tcG9u
ZW50OwogICAgIHNpemVfdCBieXRlc1BlclJvdyA9ICgoYml0c1BlclBpeGVsICsgNykgLyA4KSAq
IHdpZHRoOwotICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3BhY2UgPSBhZG9w
dENGKENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpKTsKLSAgICBSZXRhaW5QdHI8Q0dDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoTlVMTCwgd2lk
dGgsIGhlaWdodCwgYml0c1BlckNvbXBvbmVudCwgYnl0ZXNQZXJSb3csIGNvbG9yU3BhY2UuZ2V0
KCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdCkpOworICAgIFJldGFpblB0cjxDR0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZShOVUxMLCB3
aWR0aCwgaGVpZ2h0LCBiaXRzUGVyQ29tcG9uZW50LCBieXRlc1BlclJvdywgc1JHQkNvbG9yU3Bh
Y2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CiAgICAgaWYgKCFjb250
ZXh0KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329121</attachid>
            <date>2017-12-12 10:10:44 -0800</date>
            <delta_ts>2017-12-12 13:00:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180689-20171212101043.patch</filename>
            <type>text/plain</type>
            <size>26007</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMyOWEzZDVjYWQxZDgz
NmZlNmI1Y2UyODRlNDM4ZDQ3MTQ4OTA2Mi4uODIzODMyMzU3Y2ZjOGNiZGJkODlmODM2ZmRiODMw
MzI5NTM2NmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTEyLTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBDb2xv
clNwYWNlRGV2aWNlUkdCIGFuZCBtb3N0IHVzZXJzIG9mIHRoZSBvYnNvbGV0ZSBkZXZpY2VSR0Ig
Y29sb3JzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBDb2xvclNwYWNlRGV2aWNlUkdCIGVudW0gYW5kIHVzZXJzLgorCisgICAg
ICAgIEltYWdlQnVmZmVyIG5vdyB1c2VzIHNSR0IgaW5zdGVhZCBvZiBkZXZpY2VSR0IgaW4gdGhl
IGZldyBjYXNlcyB0aGF0IHVzZWQgdGhlIGxhdHRlci4KKworICAgICAgICBTd2l0Y2ggV2luZG93
cyBDRyBjb2RlIHRvIHVzZSBzUkdCQ29sb3JTcGFjZVJlZigpIGluc3RlYWQgb2YgZGV2aWNlUkdC
Q29sb3JTcGFjZVJlZigpLgorCisgICAgICAgIEhhdmUgbGluZWFyUkdCQ29sb3JTcGFjZVJlZigp
IHVzZSBrQ0dDb2xvclNwYWNlTGluZWFyU1JHQiwgd2hpY2ggaXMgcHJlc2VudCBpbiBpT1MgOSBh
bmQgMTAuMTEgYW5kIGxhdGVyLgorCisgICAgICAgICogcGFnZS93aW4vRnJhbWVDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppbWFnZUZyb21SZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6
OnRyYW5zZm9ybUNvbG9yU3BhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0Nv
bG9yQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmxlYWtDR0NvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNHQ29sb3JXaXRo
RGV2aWNlUkdCQSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYp
OgorICAgICAgICAoV2ViQ29yZTo6bGluZWFyUkdCQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChX
ZWJDb3JlOjpleHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKFdlYkNvcmU6OmRp
c3BsYXlQM0NvbG9yU3BhY2VSZWYpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlUkdCQ29sb3JT
cGFjZVJlZik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZENHQ29sb3JTcGFjZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNHQ29udGV4dFdpdGhIREMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpyZWxlYXNlV2luZG93c0NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3V2luZG93c0JpdG1hcCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwSW1hZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Z2V0SEJJ
VE1BUE9mU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWM6OnBpeGVsQnVmZmVyRnJvbUNHSW1hZ2UgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjphbGxvY0lt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNnQ29udGV4dEZyb21CaXRtYXApOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnBvc3RBcHBseVJlc291cmNlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9N
YXNrSW1hZ2UpOgorCiAyMDE3LTEyLTExICBCYXN1a2UgU3V6dWtpICA8QmFzdWtlLlN1enVraUBz
b255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIER1bXBSZW5kZXJUcmVlIHRpbWVzIG91dCBm
b3IgYWxsIG5vbi1odHRwIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkOWQ5YjFjOTFmNDgwNzE2NjU2MDYz
OWFlYTdjNzI4MzAwNTE1NzUuLmU0MmNiYmU0OWFiYWZmNGQzYmJjOWRhN2MyM2VjZDQ2MDk1MDI2
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMTItMTEgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIENvbG9yU3BhY2VEZXZp
Y2VSR0IgYW5kIG1vc3QgdXNlcnMgb2YgdGhlIG9ic29sZXRlIGRldmljZVJHQiBjb2xvcnNwYWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2ODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
ZW5jb2Rpbmcgb2YgQ29sb3JTcGFjZURldmljZVJHQi4KKworICAgICAgICAqIFNoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaDoKKwogMjAxNy0xMi0xMCAgU3RlcGhhbiBTemFibyAgPHN0ZXBo
YW4uc3phYm9Ac29ueS5jb20+CiAKICAgICAgICAgQVBJQ2xpZW50LmggdXNlcyB0aGluZ3MgZnJv
bSA8dHVwbGU+IHdpdGhvdXQgaW5jbHVkaW5nIGl0IGV4cGxpY2l0bHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCBlOGI2NzY0N2I1MTk2NDZiOWZhYjczM2MwZDM4NDZjYzFjNjMzNjY1
Li4yZDBlZTI4OGQxZDlkNTA1ZjljMjY1MzAzMzAzOWQ0YWIxNTJiMmQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTItMTEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIENvbG9yU3BhY2VE
ZXZpY2VSR0IgYW5kIG1vc3QgdXNlcnMgb2YgdGhlIG9ic29sZXRlIGRldmljZVJHQiBjb2xvcnNw
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2
ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
c1JHQkNvbG9yU3BhY2VSZWYoKSBmcm9tIFdlYkNvcmUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tOgorICAgICAgICAoaW1hZ2VGcm9tUmVjdCk6CisKIDIwMTctMTItMDggIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHB0
aHJlYWRfb25jZSBpbiBmYXZvciBvZiBkaXNwYXRjaF9vbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3dpbi9GcmFtZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2lu
L0ZyYW1lQ0dXaW4uY3BwCmluZGV4IDMzNmViNmRiNjliM2Y5ZGU0YjU1N2Y5ZDM5OGU4ODUyNTVj
N2JmZDAuLjRkMDY3YzBkOTg5YTJhNjIwYWM0NDgwMzUwYTY3MzAxNmUzNTI2ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lQ0dXaW4uY3BwCkBAIC02OSw3ICs2OSw3IEBAIEdESU9iamVj
dDxIQklUTUFQPiBpbWFnZUZyb21SZWN0KGNvbnN0IEZyYW1lKiBmcmFtZSwgSW50UmVjdCYgaXIp
CiAKICAgICBIR0RJT0JKIGhibXBPbGQgPSBTZWxlY3RPYmplY3QoaGRjLmdldCgpLCBoYm1wLmdl
dCgpKTsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IENHQml0bWFwQ29udGV4dENyZWF0ZShz
dGF0aWNfY2FzdDx2b2lkKj4oYml0cyksIHcsIGgsCi0gICAgICAgIDgsIHcgKiBzaXplb2YoUkdC
UVVBRCksIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0
bGUgfCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0KTsKKyAgICAgICAgOCwgdyAqIHNp
emVvZihSR0JRVUFEKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJM
aXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0KTsKICAgICBDR0NvbnRleHRT
YXZlR1N0YXRlKGNvbnRleHQpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0IGdjKGNvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IGMyZWJhYjU2
MGEyYzQxZDU2NjBjOWU5N2YwYzg0M2JiOTg3NWE5YjUuLjgyY2FlODg5Mzg3MGI1ZGE2ZGQxMjI3
MWU5ZjE3ODI5YmU4NjdlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5jcHAKQEAgLTY2OCw5ICs2NjgsNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBDb2xvciYgY29sb3IpCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgc3dpdGNoIChjb2xv
clNwYWNlKSB7Ci0gICAgY2FzZSBDb2xvclNwYWNlRGV2aWNlUkdCOgotICAgICAgICB0cyA8PCAi
RGV2aWNlUkdCIjsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclNwYWNlU1JHQjoKICAg
ICAgICAgdHMgPDwgInNSR0IiOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAppbmRleCBlMTJjNDBhZGNhMWUyNDdlOTY3ZmY2
MjEzMzYwZTMwOWY1NzAxMmYyLi4xMWQwMTdmYWE4ZjJjZjQ0Y2RiZTI5Y2Y1OGQ3NTc1MDVkZWUx
NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNw
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5o
CkBAIC0yMywxMyArMjMsMTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgQ29s
b3JTcGFjZV9oCi0jZGVmaW5lIENvbG9yU3BhY2VfaAorI3ByYWdtYSBvbmNlCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogZW51bSBDb2xvclNwYWNlIHsKLSAgICBDb2xvclNwYWNlRGV2aWNlUkdC
LAogICAgIENvbG9yU3BhY2VTUkdCLAogICAgIENvbG9yU3BhY2VMaW5lYXJSR0IsCiAgICAgQ29s
b3JTcGFjZURpc3BsYXlQMwpAQCAtMzcsNCArMzUsMyBAQCBlbnVtIENvbG9yU3BhY2UgewogICAg
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gQ29sb3JTcGFjZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXgg
NTdmNDYwMWQ4ZjM5YjcyMDA3ODM3ZTA0Y2I2MGJhMjJhNDA2MzVlMi4uYTU2ZmQ4MjgyMmNjOTAw
YjQyMDNkM2NjZGIwNTMwMDRkOGY4MjdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtMTI2LDggKzEyNiw4IEBAIHZvaWQgSW1h
Z2VCdWZmZXI6OnRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNlLCBD
b2xvclNwYWNlIGRzdENvCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIG9ubHkgc1JHQiA8LT4g
bGluZWFyUkdCIGFyZSBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudAotICAgIGlmICgoc3JjQ29sb3JT
cGFjZSAhPSBDb2xvclNwYWNlTGluZWFyUkdCICYmIHNyY0NvbG9yU3BhY2UgIT0gQ29sb3JTcGFj
ZURldmljZVJHQikKLSAgICAgICAgfHwgKGRzdENvbG9yU3BhY2UgIT0gQ29sb3JTcGFjZUxpbmVh
clJHQiAmJiBkc3RDb2xvclNwYWNlICE9IENvbG9yU3BhY2VEZXZpY2VSR0IpKQorICAgIGlmICgo
c3JjQ29sb3JTcGFjZSAhPSBDb2xvclNwYWNlTGluZWFyUkdCICYmIHNyY0NvbG9yU3BhY2UgIT0g
Q29sb3JTcGFjZVNSR0IpCisgICAgICAgIHx8IChkc3RDb2xvclNwYWNlICE9IENvbG9yU3BhY2VM
aW5lYXJSR0IgJiYgZHN0Q29sb3JTcGFjZSAhPSBDb2xvclNwYWNlU1JHQikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChkc3RDb2xvclNwYWNlID09IENvbG9yU3BhY2VMaW5lYXJSR0IpIHsK
QEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIEltYWdlQnVmZmVyOjp0cmFuc2Zvcm1Db2xvclNwYWNl
KENvbG9yU3BhY2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSBkc3RDbwogICAgICAgICAgICAg
cmV0dXJuIGFycmF5OwogICAgICAgICB9KCk7CiAgICAgICAgIHBsYXRmb3JtVHJhbnNmb3JtQ29s
b3JTcGFjZShsaW5lYXJSZ2JMVVQpOwotICAgIH0gZWxzZSBpZiAoZHN0Q29sb3JTcGFjZSA9PSBD
b2xvclNwYWNlRGV2aWNlUkdCKSB7CisgICAgfSBlbHNlIGlmIChkc3RDb2xvclNwYWNlID09IENv
bG9yU3BhY2VTUkdCKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3Qs
IDI1Nj4gZGV2aWNlUmdiTFVUPSBbXSB7CiAgICAgICAgICAgICBzdGQ6OmFycmF5PHVpbnQ4X3Qs
IDI1Nj4gYXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjU2OyBp
KyspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0Nv
bG9yQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5j
cHAKaW5kZXggNjE3YTMyZmU1NDVlYmFmYTEzZGU0Y2FiZjExZGJiZjA2OWRlYjZiYi4uYTNiYTQ0
YjkwZDhmNDAxMmIyOTkyOWNmMDk0YWMzZjNlNDk4MzFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKQEAgLTU1LDIxICs1NSw2IEBAIFJl
dGFpblB0cjxDR0NvbG9yUmVmPiBUaW55TFJVQ2FjaGVQb2xpY3k8V2ViQ29yZTo6Q29sb3IsIFJl
dGFpblB0cjxDR0NvbG9yUmVmPj46CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRG
T1JNKElPUykKLXN0YXRpYyBDR0NvbG9yUmVmIGNyZWF0ZUNHQ29sb3JXaXRoRGV2aWNlUkdCQShD
R0NvbG9yUmVmIHNvdXJjZUNvbG9yKQotewotICAgIGlmICghc291cmNlQ29sb3IgfHwgQ0ZFcXVh
bChDR0NvbG9yR2V0Q29sb3JTcGFjZShzb3VyY2VDb2xvciksIGRldmljZVJHQkNvbG9yU3BhY2VS
ZWYoKSkpCi0gICAgICAgIHJldHVybiBDR0NvbG9yUmV0YWluKHNvdXJjZUNvbG9yKTsKLQotICAg
IFJldGFpblB0cjxDR0NvbG9yVHJhbnNmb3JtUmVmPiBjb2xvclRyYW5zZm9ybSA9IGFkb3B0Q0Yo
Q0dDb2xvclRyYW5zZm9ybUNyZWF0ZShkZXZpY2VSR0JDb2xvclNwYWNlUmVmKCksIG51bGxwdHIp
KTsKLSAgICBpZiAoIWNvbG9yVHJhbnNmb3JtKQotICAgICAgICByZXR1cm4gQ0dDb2xvclJldGFp
bihzb3VyY2VDb2xvcik7Ci0KLSAgICAvLyBDR0NvbG9yVHJhbnNmb3JtQ29udmVydENvbG9yKCkg
cmV0dXJucyBhICsxIHJldGFpbmVkIG9iamVjdC4KLSAgICByZXR1cm4gQ0dDb2xvclRyYW5zZm9y
bUNvbnZlcnRDb2xvcihjb2xvclRyYW5zZm9ybS5nZXQoKSwgc291cmNlQ29sb3IsIGtDR1JlbmRl
cmluZ0ludGVudERlZmF1bHQpOwotfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLQogQ29sb3I6
OkNvbG9yKENHQ29sb3JSZWYgY29sb3IpCiB7CiAgICAgaWYgKCFjb2xvcikgewpAQCAtNzcsMTgg
KzYyLDggQEAgQ29sb3I6OkNvbG9yKENHQ29sb3JSZWYgY29sb3IpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIHNpemVfdCBudW1Db21wb25lbnRzID0g
Q0dDb2xvckdldE51bWJlck9mQ29tcG9uZW50cyhjb2xvcik7CiAgICAgY29uc3QgQ0dGbG9hdCog
Y29tcG9uZW50cyA9IENHQ29sb3JHZXRDb21wb25lbnRzKGNvbG9yKTsKLSNlbHNlCi0gICAgLy8g
RklYTUU6IGNhbiB3ZSByZW1vdmUgdGhpcz8KLSAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gY29y
cmVjdGVkQ29sb3IgPSBhZG9wdENGKGNyZWF0ZUNHQ29sb3JXaXRoRGV2aWNlUkdCQShjb2xvcikp
OwotICAgIGlmICghY29ycmVjdGVkQ29sb3IpCi0gICAgICAgIGNvcnJlY3RlZENvbG9yID0gY29s
b3I7Ci0KLSAgICBzaXplX3QgbnVtQ29tcG9uZW50cyA9IENHQ29sb3JHZXROdW1iZXJPZkNvbXBv
bmVudHMoY29ycmVjdGVkQ29sb3IuZ2V0KCkpOwotICAgIGNvbnN0IENHRmxvYXQqIGNvbXBvbmVu
dHMgPSBDR0NvbG9yR2V0Q29tcG9uZW50cyhjb3JyZWN0ZWRDb2xvci5nZXQoKSk7Ci0jZW5kaWYg
Ly8gIVBMQVRGT1JNKElPUykKIAogICAgIGZsb2F0IHIgPSAwOwogICAgIGZsb2F0IGcgPSAwOwpA
QCAtMTI4LDcgKzEwMyw2IEBAIHN0YXRpYyBDR0NvbG9yUmVmIGxlYWtDR0NvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKICAgICAgICAgY2FzZSBDb2xvclNwYWNlRGlzcGxheVAzOgogICAgICAgICAg
ICAgcmV0dXJuIENHQ29sb3JDcmVhdGUoZGlzcGxheVAzQ29sb3JTcGFjZVJlZigpLCBjb21wb25l
bnRzKTsKICAgICAgICAgY2FzZSBDb2xvclNwYWNlTGluZWFyUkdCOgotICAgICAgICBjYXNlIENv
bG9yU3BhY2VEZXZpY2VSR0I6CiAgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgZXZlciBjcmVh
dGUgQ0dDb2xvclJlZnMgaW4gdGhlc2Ugc3BhY2VzPyBJdCBtYXkgb25seSBiZSBJbWFnZUJ1ZmZl
cnMuCiAgICAgICAgICAgICByZXR1cm4gQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZVJlZigp
LCBjb21wb25lbnRzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGQ4ZjBlMTk0
ZjRiM2IwYTM3MjVjNTY1MDRiZTQ2YjE0ZWRkNGRiODIuLjc1YmUwM2NkMzg2OWEzOTY1MGFlN2Fm
Y2VhZTQ1NDg4YTBjZTEyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTcyLDEzICs3Miw2IEBA
IHN0YXRpYyB2b2lkIHNldENHU3Ryb2tlQ29sb3IoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0
IENvbG9yJiBjb2xvcikKICAgICBDR0NvbnRleHRTZXRTdHJva2VDb2xvcldpdGhDb2xvcihjb250
ZXh0LCBjYWNoZWRDR0NvbG9yKGNvbG9yKSk7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSByZW1vdmVkIHNvb24uCi1DR0NvbG9yU3BhY2VSZWYgZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigp
Ci17Ci0gICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBkZXZpY2VTcGFjZSA9IENHQ29sb3JTcGFj
ZUNyZWF0ZURldmljZVJHQigpOwotICAgIHJldHVybiBkZXZpY2VTcGFjZTsKLX0KLQogQ0dDb2xv
clNwYWNlUmVmIHNSR0JDb2xvclNwYWNlUmVmKCkKIHsKICAgICBzdGF0aWMgQ0dDb2xvclNwYWNl
UmVmIHNSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VT
UkdCKTsKQEAgLTg3LDExICs4MCwyNiBAQCBDR0NvbG9yU3BhY2VSZWYgc1JHQkNvbG9yU3BhY2VS
ZWYoKQogICAgIC8vIGNhdXNpbmcgYSBjcmFzaCB1bmRlciB0aG9zZSBjb25kaXRpb25zLiBTaW5j
ZSB0aGUgZGVmYXVsdCBjb2xvciBzcGFjZSBpbiBXaW5kb3dzCiAgICAgLy8gaXMgc1JHQiwgdGhp
cyBhbGwgd29ya3Mgb3V0IG5pY2VseS4KICAgICBpZiAoIXNSR0JTcGFjZSkKLSAgICAgICAgc1JH
QlNwYWNlID0gZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpOworICAgICAgICBzUkdCU3BhY2UgPSBD
R0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCiAg
ICAgcmV0dXJuIHNSR0JTcGFjZTsKIH0KLSAgICAKKworI2lmIFBMQVRGT1JNKFdJTikgfHwgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTIwMCkKKy8vIFNlZSBHcmFwaGljc0NvbnRleHRDb2NvYSBmb3IgdGhlIHBy
ZS0xMC4xMiBpbXBsZW1lbnRhdGlvbi4KK0NHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNw
YWNlUmVmKCkKK3sKKyNpZiBQTEFURk9STShXSU4pCisgICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hv
dWxkIGJlIGFibGUgdG8gdXNlIGxpbmVhciBzUkdCLCB0aGlzIGlzIHRyYWNrZWQgYnkgaHR0cDov
L3dlYmtpdC5vcmcvYi84MDAwMC4KKyAgICByZXR1cm4gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNl
UkdCKCk7CisjZWxzZQorICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGluZWFyUkdCU3BhY2U7
CisgICAgbGluZWFyUkdCU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xv
clNwYWNlTGluZWFyU1JHQik7CisgICAgcmV0dXJuIGxpbmVhclJHQlNwYWNlOworI2VuZGlmCit9
CisjZW5kaWYKKwogQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKQog
ewogICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCU3BhY2U7CkBAIC0xMDAs
MjggKzEwOCwyMSBAQCBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJlZigp
CiAjZW5kaWYKICAgICAvLyBJZiB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHRlbmVkZWQgc1JH
QiwgZmFsbCBiYWNrIHRvIHNSR0IuCiAgICAgaWYgKCFleHRlbmRlZFNSR0JTcGFjZSkKLSAgICAg
ICAgZXh0ZW5kZWRTUkdCU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOworICAgICAgICBleHRl
bmRlZFNSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOwogICAgIHJldHVy
biBleHRlbmRlZFNSR0JTcGFjZTsKIH0KIAogQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9y
U3BhY2VSZWYoKQogeworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzU3BhY2U7
CiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID4gMTAxMTAwKQotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGlz
cGxheVAzU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlRGlz
cGxheVAzKTsKKyAgICBkaXNwbGF5UDNTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1l
KGtDR0NvbG9yU3BhY2VEaXNwbGF5UDMpOwogI2Vsc2UKLSAgICBzdGF0aWMgQ0dDb2xvclNwYWNl
UmVmIGRpc3BsYXlQM1NwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKKyAgICBkaXNwbGF5UDNT
cGFjZSA9IHNSR0JDb2xvclNwYWNlUmVmKCk7CiAjZW5kaWYKICAgICByZXR1cm4gZGlzcGxheVAz
U3BhY2U7CiB9CiAKLSNpZiBQTEFURk9STShXSU4pCi1DR0NvbG9yU3BhY2VSZWYgbGluZWFyUkdC
Q29sb3JTcGFjZVJlZigpCi17Ci0gICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIGJlIGFibGUg
dG8gdXNlIGxpbmVhciBzUkdCLCB0aGlzIGlzIHRyYWNrZWQgYnkgaHR0cDovL3dlYmtpdC5vcmcv
Yi84MDAwMC4KLSAgICByZXR1cm4gZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpOwotfQotI2VuZGlm
Ci0KIHN0YXRpYyBJbnRlcnBvbGF0aW9uUXVhbGl0eSBjb252ZXJ0SW50ZXJwb2xhdGlvblF1YWxp
dHkoQ0dJbnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVhbGl0
eSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmgKaW5kZXggMDZiM2Q2ZWJmNTA0ZGI0ZWU3Y2EzMTFmMmMzMDA0YzQw
MTQ3MzZhZS4uYjZjNjRmNzg4NWY5NTQ0ODAwN2EzNzM2N2Q0YmIwODNhNjFhODQ5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5oCkBAIC0zMSwxMSArMzEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dDb2xvclNwYWNl
ICpDR0NvbG9yU3BhY2VSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ0dDb2xvclNwYWNl
UmVmIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFj
ZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOwogV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVm
IGV4dGVuZGVkU1JHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFj
ZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCk7Ci1DR0NvbG9yU3BhY2VSZWYgbGluZWFyUkdC
Q29sb3JTcGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJH
QkNvbG9yU3BhY2VSZWYoKTsKIAogaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIGdldFVzZXJUb0Jh
c2VDVE0oQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7CkBAIC00NSw4ICs0NCw2IEBAIGlubGluZSBD
R0FmZmluZVRyYW5zZm9ybSBnZXRVc2VyVG9CYXNlQ1RNKENHQ29udGV4dFJlZiBjb250ZXh0KQog
c3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xvclNwYWNlKENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSkKIHsKICAgICBzd2l0Y2ggKGNvbG9yU3BhY2UpIHsKLSAgICBjYXNlIENv
bG9yU3BhY2VEZXZpY2VSR0I6Ci0gICAgICAgIHJldHVybiBkZXZpY2VSR0JDb2xvclNwYWNlUmVm
KCk7CiAgICAgY2FzZSBDb2xvclNwYWNlU1JHQjoKICAgICAgICAgcmV0dXJuIHNSR0JDb2xvclNw
YWNlUmVmKCk7CiAgICAgY2FzZSBDb2xvclNwYWNlTGluZWFyUkdCOgpAQCAtNTUsNyArNTIsNyBA
QCBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JT
cGFjZSBjb2xvclNwYWNlKQogICAgICAgICByZXR1cm4gZGlzcGxheVAzQ29sb3JTcGFjZVJlZigp
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZGV2aWNlUkdC
Q29sb3JTcGFjZVJlZigpOworICAgIHJldHVybiBzUkdCQ29sb3JTcGFjZVJlZigpOwogfQogCiBj
bGFzcyBDR0NvbnRleHRTdGF0ZVNhdmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KaW5k
ZXggMzNjNDgwMGM2ODYyMGQ2OTEzYTc5NGEyY2M0NWU3NTgzOGMxYzRkOC4uMzRjNjNjZDllNTc2
OTY4ZDk3YmUxZmRiN2Q2MDRhMjg0NjM3OTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2Eu
bW0KQEAgLTM2NSw2ICszNjUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JE
b2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgdwogI2VuZGlmCiB9
CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PCAxMDEyMDAKIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCkKIHsKICAg
ICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclNSR0JTcGFjZSA9IG51bGxwdHI7CkBAIC0z
ODcsNSArMzg4LDYgQEAgQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYoKQog
CiAgICAgcmV0dXJuIGxpbmVhclNSR0JTcGFjZTsKIH0KKyNlbmRpZgogCi19Cit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAppbmRleCBhZmJmZWEwMDVhNGMz
OWQwNTdlODRjMTg3Y2MyZTU3ZWU1MzZhNWNkLi5lYzRmN2E5YjY3OTcxN2JmYmJkNjljZTY1YWMz
OTI0NjNhY2E3YjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKQEAgLTU4LDcgKzU4LDcg
QEAgc3RhdGljIENHQ29udGV4dFJlZiBDR0NvbnRleHRXaXRoSERDKEhEQyBoZGMsIGJvb2wgaGFz
QWxwaGEpCiAKICAgICBDR0JpdG1hcEluZm8gYml0bWFwSW5mbyA9IGtDR0JpdG1hcEJ5dGVPcmRl
cjMyTGl0dGxlIHwgKGhhc0FscGhhID8ga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCA6
IGtDR0ltYWdlQWxwaGFOb25lU2tpcEZpcnN0KTsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IENHQml0bWFwQ29udGV4dENyZWF0ZShwaXhlbERhdGEuYnVmZmVyKCksIHBpeGVsRGF0YS5zaXpl
KCkud2lkdGgoKSwgcGl4ZWxEYXRhLnNpemUoKS5oZWlnaHQoKSwgOCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbERhdGEuYnl0ZXNQZXJSb3co
KSwgZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpLCBiaXRtYXBJbmZvKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbERhdGEuYnl0ZXNQZXJSb3co
KSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgYml0bWFwSW5mbyk7CiAKICAgICAvLyBGbGlwIGNvb3Jk
cwogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAwLCBwaXhlbERhdGEuc2l6ZSgp
LmhlaWdodCgpKTsKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVs
ZWFzZVdpbmRvd3NDb250ZXh0KEhEQyBoZGMsIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIGJvbwog
ICAgIEFTU0VSVChwaXhlbERhdGEuYml0c1BlclBpeGVsKCkgPT0gMzIpOwogCiAgICAgQ0dDb250
ZXh0UmVmIGJpdG1hcENvbnRleHQgPSBDR0JpdG1hcENvbnRleHRDcmVhdGUocGl4ZWxEYXRhLmJ1
ZmZlcigpLCBwaXhlbERhdGEuc2l6ZSgpLndpZHRoKCksIHBpeGVsRGF0YS5zaXplKCkuaGVpZ2h0
KCksIDgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGl4ZWxEYXRhLmJ5dGVzUGVyUm93KCksIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKSwg
a0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsRGF0YS5ieXRlc1BlclJvdygpLCBzUkdC
Q29sb3JTcGFjZVJlZigpLCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1cHBvcnRBbHBo
YUJsZW5kID8ga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCA6IGtDR0ltYWdlQWxwaGFO
b25lU2tpcEZpcnN0KSk7CiAKICAgICBDR0ltYWdlUmVmIGltYWdlID0gQ0dCaXRtYXBDb250ZXh0
Q3JlYXRlSW1hZ2UoYml0bWFwQ29udGV4dCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdXaW5kb3dzQml0bWFwKFdpbmRvd3NCaXRtYXAqIGltYWdlLCBjb25z
dCBJbnRQb2ludCYgcG8KICAgICAvLyBtYWtlIGEgY3VzdG9tIENHRGF0YVByb3ZpZGVyIHRoYXQg
Y29udHJvbHMgdGhlIFdpbmRvd3NCaXRtYXAgbGlmZXRpbWUuICBzZWUgPHJkYXI6Ly82Mzk0NDU1
PgogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGltYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGltYWdlLT5idWZmZXIoKSwgaW1hZ2UtPmJ1ZmZlckxl
bmd0aCgpKSk7CiAgICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBkYXRhUHJvdmlkZXIg
PSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aENGRGF0YShpbWFnZURhdGEuZ2V0KCkp
KTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNy
ZWF0ZShpbWFnZS0+c2l6ZSgpLndpZHRoKCksIGltYWdlLT5zaXplKCkuaGVpZ2h0KCksIDgsIDMy
LCBpbWFnZS0+Ynl0ZXNQZXJSb3coKSwgZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpLAorICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlKGltYWdl
LT5zaXplKCkud2lkdGgoKSwgaW1hZ2UtPnNpemUoKS5oZWlnaHQoKSwgOCwgMzIsIGltYWdlLT5i
eXRlc1BlclJvdygpLCBzUkdCQ29sb3JTcGFjZVJlZigpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NHQml0bWFwQnl0ZU9yZGVyMzJM
aXR0bGUgfCBrQ0dJbWFnZUFscGhhRmlyc3QsIGRhdGFQcm92aWRlci5nZXQoKSwgMCwgdHJ1ZSwg
a0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpOwogICAgIENHQ29udGV4dERyYXdJbWFnZShtX2Rh
dGEtPm1fY2dDb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKHBvaW50LngoKSwgcG9pbnQueSgpLCBp
bWFnZS0+c2l6ZSgpLndpZHRoKCksIGltYWdlLT5zaXplKCkuaGVpZ2h0KCkpLCBjZ0ltYWdlLmdl
dCgpKTsgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbWFnZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9JbWFnZUNHV2luLmNwcAppbmRleCA3ZTRhMGIyN2UyY2M1M2QxN2I2Mzk0ZTgwNTk3MGIwNGMz
OWVjMzA1Li4zZWMyOGU5OGE2ODdiMzIyZDEzN2NhYzUyMGEyZGQwMzE3ZDViZjg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3Bw
CkBAIC01Myw3ICs1Myw3IEBAIFJlZlB0cjxCaXRtYXBJbWFnZT4gQml0bWFwSW1hZ2U6OmNyZWF0
ZShIQklUTUFQIGhCaXRtYXApCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmV0YWluUHRyPENH
Q29udGV4dFJlZj4gYml0bWFwQ29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRl
KGRpYlNlY3Rpb24uZHNCbS5ibUJpdHMsIGRpYlNlY3Rpb24uZHNCbS5ibVdpZHRoLCBkaWJTZWN0
aW9uLmRzQm0uYm1IZWlnaHQsIDgsCi0gICAgICAgIGRpYlNlY3Rpb24uZHNCbS5ibVdpZHRoQnl0
ZXMsIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUg
fCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0KSk7CisgICAgICAgIGRpYlNlY3Rpb24u
ZHNCbS5ibVdpZHRoQnl0ZXMsIHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0JpdG1hcEJ5dGVPcmRl
cjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCkpOwogCiAgICAgLy8g
VGhlIEJpdG1hcEltYWdlIHRha2VzIG93bmVyc2hpcCBvZiB0aGlzLgogICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBjZ0ltYWdlID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGVJbWFnZShi
aXRtYXBDb250ZXh0LmdldCgpKSk7CkBAIC03Miw3ICs3Miw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6
OmdldEhCSVRNQVBPZlNpemUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAg
aW50IGJ1ZmZlclNpemUgPSBibXBJbmZvLmJtV2lkdGhCeXRlcyAqIGJtcEluZm8uYm1IZWlnaHQ7
CiAgICAgCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IENHQml0bWFwQ29udGV4dENyZWF0
ZShibXBJbmZvLmJtQml0cywgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0LAotICAg
ICAgICA4LCBibXBJbmZvLmJtV2lkdGhCeXRlcywgZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpLCBr
Q0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmly
c3QpOworICAgICAgICA4LCBibXBJbmZvLmJtV2lkdGhCeXRlcywgc1JHQkNvbG9yU3BhY2VSZWYo
KSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGll
ZEZpcnN0KTsKICAgCiAgICAgR3JhcGhpY3NDb250ZXh0IGdjKGNnQ29udGV4dCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCA0Yzg4MTdkZGQ2YWI5ZWJl
M2JkZjA3NzU0MzI0MmE5NDYwMDdjMWYzLi5lMWZjZWQxMTBiZmEyMjMwMDc0NGNiZTEwZDg1MmNi
Y2VkYjg3OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBA
IC05NCw3ICs5NCw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWM6OkNNU2FtcGxlQnVmZmVyRnJvbVBpeGVsCiAKIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6cGl4ZWxCdWZmZXJGcm9t
Q0dJbWFnZShDR0ltYWdlUmVmIGltYWdlKSBjb25zdAogewotICAgIHN0YXRpYyBDR0NvbG9yU3Bh
Y2VSZWYgZGV2aWNlUkdCQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigp
OworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgc1JHQkNvbG9yU3BhY2UgPSBzUkdCQ29sb3JT
cGFjZVJlZigpOwogCiAgICAgQ0dTaXplIGltYWdlU2l6ZSA9IENHU2l6ZU1ha2UoQ0dJbWFnZUdl
dFdpZHRoKGltYWdlKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZSkpOwogICAgIGlmICghbV9idWZm
ZXJQb29sKSB7CkBAIC0xMjksNyArMTI5LDcgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpwaXhlbEJ1ZmZlckZyb21DR0ltYWdlKEMKIAog
ICAgIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwogICAgIHZv
aWQqIGRhdGEgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIpOwotICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGltYWdl
U2l6ZS53aWR0aCwgaW1hZ2VTaXplLmhlaWdodCwgOCwgQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVy
Um93KHBpeGVsQnVmZmVyKSwgZGV2aWNlUkdCQ29sb3JTcGFjZSwgKENHQml0bWFwSW5mbykga0NH
SW1hZ2VBbHBoYU5vbmVTa2lwRmlyc3QpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENH
Qml0bWFwQ29udGV4dENyZWF0ZShkYXRhLCBpbWFnZVNpemUud2lkdGgsIGltYWdlU2l6ZS5oZWln
aHQsIDgsIENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhwaXhlbEJ1ZmZlciksIHNSR0JDb2xv
clNwYWNlLCAoQ0dCaXRtYXBJbmZvKSBrQ0dJbWFnZUFscGhhTm9uZVNraXBGaXJzdCkpOwogICAg
IENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKDAsIDAsIENHSW1h
Z2VHZXRXaWR0aChpbWFnZSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpKSwgaW1hZ2UpOwogICAg
IENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCmluZGV4IDIyODli
OGYyZjNjNDU2MzlkOGI2YTcyZmNjNjNkMDQ5YmNkYmFiZDIuLmQ2Y2MzMzk5ODQ3YWQyOTAwMDdh
ODQ2Njg5MTk1YzI0YjhjYWRiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0RyYWdJbWFnZUNHV2luLmNwcApAQCAtNTgsNyArNTgsNyBAQCBHRElPYmplY3Q8SEJJVE1BUD4g
YWxsb2NJbWFnZShIREMgZGMsIEludFNpemUgc2l6ZSwgQ0dDb250ZXh0UmVmICp0YXJnZXRSZWYp
CiAgICAgICAgIHJldHVybiBoYm1wOwogCiAgICAgQ0dDb250ZXh0UmVmIGJpdG1hcENvbnRleHQg
PSBDR0JpdG1hcENvbnRleHRDcmVhdGUoYml0cywgYm1wSW5mby5ibWlIZWFkZXIuYmlXaWR0aCwg
Ym1wSW5mby5ibWlIZWFkZXIuYmlIZWlnaHQsIDgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm1wSW5mby5ibWlIZWFkZXIuYmlXaWR0aCAq
IDQsIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibXBJbmZvLmJtaUhlYWRlci5iaVdpZHRoICog
NCwgc1JHQkNvbG9yU3BhY2VSZWYoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtDR0lt
YWdlQWxwaGFOb25lU2tpcEZpcnN0KTsKICAgICBpZiAoIWJpdG1hcENvbnRleHQpCiAgICAgICAg
IHJldHVybiBHRElPYmplY3Q8SEJJVE1BUD4oKTsKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIENH
Q29udGV4dFJlZiBjcmVhdGVDZ0NvbnRleHRGcm9tQml0bWFwKEhCSVRNQVAgYml0bWFwKQogICAg
IEFTU0VSVChpbmZvLmJtQml0c1BpeGVsID09IDMyKTsKIAogICAgIENHQ29udGV4dFJlZiBiaXRt
YXBDb250ZXh0ID0gQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGluZm8uYm1CaXRzLCBpbmZvLmJtV2lk
dGgsIGluZm8uYm1IZWlnaHQsIDgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5mby5ibVdpZHRoQnl0ZXMsIGRldmljZVJHQkNvbG9yU3Bh
Y2VSZWYoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhTm9uZVNr
aXBGaXJzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5mby5ibVdpZHRoQnl0ZXMsIHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0JpdG1h
cEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1hZ2VBbHBoYU5vbmVTa2lwRmlyc3QpOwogICAgIHJl
dHVybiBiaXRtYXBDb250ZXh0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IDJjMmE0OWIwMGY3
ODI3Y2M2N2VmNzMzYzkzZDVjNjFhYTdjM2Q3N2QuLjFhMTdmNDFkMWFiNjY1MjI0MTFlN2E1NjBk
OWYyMmRmOGU3OGM0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAgdm9p
ZCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6cG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIEdyYXBoaWMKICAgICAgICAgICAgIGZpbHRlckRhdGEuc3RhdGUgPSBGaWx0
ZXJEYXRhOjpBcHBseWluZzsKICAgICAgICAgICAgIGxhc3RFZmZlY3QtPmFwcGx5QWxsKCk7CiAg
ICAgICAgICAgICBsYXN0RWZmZWN0LT5jb3JyZWN0RmlsdGVyUmVzdWx0SWZOZWVkZWQoKTsKLSAg
ICAgICAgICAgIGxhc3RFZmZlY3QtPnRyYW5zZm9ybVJlc3VsdENvbG9yU3BhY2UoQ29sb3JTcGFj
ZURldmljZVJHQik7CisgICAgICAgICAgICBsYXN0RWZmZWN0LT50cmFuc2Zvcm1SZXN1bHRDb2xv
clNwYWNlKENvbG9yU3BhY2VTUkdCKTsKICAgICAgICAgfQogICAgICAgICBmaWx0ZXJEYXRhLnN0
YXRlID0gRmlsdGVyRGF0YTo6QnVpbHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5kZXggNDcxNzg4MGEw
ODY4ZmIyNWY0ZjkwMTcxMjdiZjhmNzE4MjhiNWZkZS4uNmYxNTAzMDM3OWFhYmY3MWY5MTU0Yjli
ZTIwYjZlZjkzY2Q3YWM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBi
b29sIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UoTWFz
a2VyRGF0YSogbWFza2VyRGF0YSwgQwogICAgIH0KIAogI2lmICFVU0UoQ0cpCi0gICAgbWFza2Vy
RGF0YS0+bWFza0ltYWdlLT50cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3BhY2VEZXZpY2VSR0Is
IGNvbG9yU3BhY2UpOworICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZS0+dHJhbnNmb3JtQ29sb3JT
cGFjZShDb2xvclNwYWNlU1JHQiwgY29sb3JTcGFjZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjb2xvclNwYWNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCBhMWU3YTM5NzJiMjdmMDUxZTZmMTk4NDVkZmFhMTQ0NDdkODU3
N2UyLi4yZDJjZTc1MzA3Y2I1ZjkyMGJkYjc4NGZhYzNlYzZkZjlkZDZjZWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjg4LDcgKzY4OCw2
IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpDb2xvclNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJD
b3JlOjpDb2xvclNwYWNlLAotICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkNvbG9yU3BhY2VEZXZp
Y2VSR0IsCiAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZTo6Q29sb3JTcGFjZVNSR0IsCiAgICAgV2Vi
Q29yZTo6Q29sb3JTcGFjZTo6Q29sb3JTcGFjZUxpbmVhclJHQiwKICAgICBXZWJDb3JlOjpDb2xv
clNwYWNlOjpDb2xvclNwYWNlRGlzcGxheVAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwODcyOWMwOGM5N2U2MzI3YjQxM2I2N2RmODNh
NjYxYTcxYTNlZGY1Li40NWExOTRhODYwOTI2ZDkwNDQ1YWZmZjdhNzAyMmVlNTI5NDBmMDU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAg
LTE1NCw2ICsxNTQsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiV2ViVUlLaXRE
ZWxlZ2F0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9LZXlFdmVudENvZGVzSU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5SU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dBS0NsaXBWaWV3Lmg+CkBAIC03
MDUwLDggKzcwNTEsNyBAQCBzdGF0aWMgQ0dJbWFnZVJlZiBpbWFnZUZyb21SZWN0KEZyYW1lKiBm
cmFtZSwgQ0dSZWN0IHJlY3QpCiAgICAgc2l6ZV90IGJpdHNQZXJDb21wb25lbnQgPSA4OwogICAg
IHNpemVfdCBiaXRzUGVyUGl4ZWwgPSA0ICogYml0c1BlckNvbXBvbmVudDsKICAgICBzaXplX3Qg
Ynl0ZXNQZXJSb3cgPSAoKGJpdHNQZXJQaXhlbCArIDcpIC8gOCkgKiB3aWR0aDsKLSAgICBSZXRh
aW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBjb2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VD
cmVhdGVEZXZpY2VSR0IoKSk7Ci0gICAgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKE5VTEwsIHdpZHRoLCBoZWlnaHQsIGJpdHNQ
ZXJDb21wb25lbnQsIGJ5dGVzUGVyUm93LCBjb2xvclNwYWNlLmdldCgpLCBrQ0dJbWFnZUFscGhh
UHJlbXVsdGlwbGllZExhc3QpKTsKKyAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjb250ZXh0
ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoTlVMTCwgd2lkdGgsIGhlaWdodCwgYml0
c1BlckNvbXBvbmVudCwgYnl0ZXNQZXJSb3csIHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0ltYWdl
QWxwaGFQcmVtdWx0aXBsaWVkTGFzdCkpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329354</attachid>
            <date>2017-12-14 09:01:52 -0800</date>
            <delta_ts>2017-12-14 09:28:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180689-20171214090151.patch</filename>
            <type>text/plain</type>
            <size>7647</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxY2I0YTNlMjhhZjg4
MGE5NWEzNGJjZGIxMmFmNmNhNmQ1ZDk5ZC4uZTE0M2VjMjdhM2ViNzg3ZGU4NjcwYjMyM2E1NDZl
YjZlOGM4ODZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTEyLTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBDb2xv
clNwYWNlRGV2aWNlUkdCIGFuZCBtb3N0IHVzZXJzIG9mIHRoZSBvYnNvbGV0ZSBkZXZpY2VSR0Ig
Y29sb3JzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBBZGRyZXNzIGlzc3VlcyBub3RlZCBieSBEYXJpbiBpbiByMjI1Nzk3OgorICAg
ICAgICAKKyAgICAgICAgRXhpc3RpbmcgYW5kIG5ldyBjb2RlIG1pc3Rha2VubHkgYWxsb2NhdGVk
IGNvbG9yc3BhY2VzIG9uIGV2ZXJ5IGNhbGwsIGJlY2F1c2UKKyAgICAgICAgdGhleSBkaWRuJ3Qg
aW5pdGlhbGl6ZSB0aGUgc3RhdGljIHZhcmlhYmxlIG9uIHRoZSBmaXJzdCBjYWxsLiBBdm9pZCB0
aGlzIG1pc3Rha2UKKyAgICAgICAgYnkgdXNpbmcgZGlzcGF0Y2hfb25jZSgpIGluIHRoZXNlIGZ1
bmN0aW9ucy4KKworICAgICAgICBGaXggYSBjYXNlIHdoZXJlIHRoZSBleHRlbmRlZFNSR0JDb2xv
clNwYWNlUmVmKCkgZmFsbGJhY2sgd2FzIHJldHVybmluZyBkZXZpY2VSR0IKKyAgICAgICAgaW5z
dGVhZCBvZiBzUkdCLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYpOgorICAg
ICAgICAoV2ViQ29yZTo6bGluZWFyUkdCQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChXZWJDb3Jl
OjpleHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlQ
M0NvbG9yU3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6bGluZWFyUkdCQ29sb3JTcGFj
ZVJlZik6CisKIDIwMTctMTItMTQgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIE1ha2UgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgZHVtcCBtX29mZnNl
dEZyb21SZW5kZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDc1YmUwM2NkMzg2OWEzOTY1MGFl
N2FmY2VhZTQ1NDg4YTBjZTEyZTguLjA3M2JmYzBiNzJmNDBjZGRlNmYzNzE5ZGQ2YzkwYTJjY2Q4
OTk0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTc0LDUzICs3NCw2OCBAQCBzdGF0aWMgdm9p
ZCBzZXRDR1N0cm9rZUNvbG9yKENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDb2xvciYgY29s
b3IpCiAKIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpCiB7Ci0gICAgc3RhdGlj
IENHQ29sb3JTcGFjZVJlZiBzUkdCU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShr
Q0dDb2xvclNwYWNlU1JHQik7CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JT
cGFjZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRj
aF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIHNSR0JDb2xvclNwYWNlID0gQ0dDb2xvclNw
YWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZVNSR0IpOwogI2lmIFBMQVRGT1JNKFdJTikK
LSAgICAvLyBPdXQtb2YtZGF0ZSBDRyBpbnN0YWxsYXRpb25zIHdpbGwgbm90IGhvbm9yIGtDR0Nv
bG9yU3BhY2VTUkdCLiBUaGlzIGxvZ2ljIGF2b2lkcwotICAgIC8vIGNhdXNpbmcgYSBjcmFzaCB1
bmRlciB0aG9zZSBjb25kaXRpb25zLiBTaW5jZSB0aGUgZGVmYXVsdCBjb2xvciBzcGFjZSBpbiBX
aW5kb3dzCi0gICAgLy8gaXMgc1JHQiwgdGhpcyBhbGwgd29ya3Mgb3V0IG5pY2VseS4KLSAgICBp
ZiAoIXNSR0JTcGFjZSkKLSAgICAgICAgc1JHQlNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2
aWNlUkdCKCk7CisgICAgICAgIC8vIE91dC1vZi1kYXRlIENHIGluc3RhbGxhdGlvbnMgd2lsbCBu
b3QgaG9ub3Iga0NHQ29sb3JTcGFjZVNSR0IuIFRoaXMgbG9naWMgYXZvaWRzCisgICAgICAgIC8v
IGNhdXNpbmcgYSBjcmFzaCB1bmRlciB0aG9zZSBjb25kaXRpb25zLiBTaW5jZSB0aGUgZGVmYXVs
dCBjb2xvciBzcGFjZSBpbiBXaW5kb3dzCisgICAgICAgIC8vIGlzIHNSR0IsIHRoaXMgYWxsIHdv
cmtzIG91dCBuaWNlbHkuCisgICAgICAgIC8vIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lZWRlZD8g
cmRhcjovL3Byb2JsZW0vMTUyMTM1MTUgd2FzIGZpeGVkLgorICAgICAgICBpZiAoIXNSR0JDb2xv
clNwYWNlKQorICAgICAgICAgICAgc1JHQkNvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVE
ZXZpY2VSR0IoKTsKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCi0gICAgcmV0dXJuIHNSR0JTcGFj
ZTsKKyAgICB9KTsKKyAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2U7CiB9CiAKICNpZiBQTEFURk9S
TShXSU4pIHx8IFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApCiAvLyBTZWUgR3JhcGhpY3NDb250ZXh0Q29j
b2EgZm9yIHRoZSBwcmUtMTAuMTIgaW1wbGVtZW50YXRpb24uCiBDR0NvbG9yU3BhY2VSZWYgbGlu
ZWFyUkdCQ29sb3JTcGFjZVJlZigpCiB7CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsaW5l
YXJSR0JDb2xvclNwYWNlOworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwor
ICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKICNpZiBQTEFURk9STShXSU4pCi0gICAg
Ly8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIGJlIGFibGUgdG8gdXNlIGxpbmVhciBzUkdCLCB0aGlz
IGlzIHRyYWNrZWQgYnkgaHR0cDovL3dlYmtpdC5vcmcvYi84MDAwMC4KLSAgICByZXR1cm4gQ0dD
b2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7CisgICAgICAgIC8vIEZJWE1FOiBXaW5kb3dzIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBsaW5lYXIgc1JHQiwgdGhpcyBpcyB0cmFja2VkIGJ5IGh0dHA6
Ly93ZWJraXQub3JnL2IvODAwMDAuCisgICAgICAgIGxpbmVhclJHQkNvbG9yU3BhY2Ugc1JHQkNv
bG9yU3BhY2VSZWYoKTsKICNlbHNlCi0gICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJS
R0JTcGFjZTsKLSAgICBsaW5lYXJSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1l
KGtDR0NvbG9yU3BhY2VMaW5lYXJTUkdCKTsKLSAgICByZXR1cm4gbGluZWFyUkdCU3BhY2U7Cisg
ICAgICAgIGxpbmVhclJHQkNvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShr
Q0dDb2xvclNwYWNlTGluZWFyU1JHQik7CiAjZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiBs
aW5lYXJSR0JDb2xvclNwYWNlOwogfQogI2VuZGlmCiAKIENHQ29sb3JTcGFjZVJlZiBleHRlbmRl
ZFNSR0JDb2xvclNwYWNlUmVmKCkKIHsKLSAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGV4dGVu
ZGVkU1JHQlNwYWNlOworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29s
b3JTcGFjZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNw
YXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkKLSAgICBl
eHRlbmRlZFNSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3Bh
Y2VFeHRlbmRlZFNSR0IpOworICAgICAgICBleHRlbmRlZFNSR0JDb2xvclNwYWNlID0gQ0dDb2xv
clNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZUV4dGVuZGVkU1JHQik7CiAjZW5kaWYK
LSAgICAvLyBJZiB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHRlbmVkZWQgc1JHQiwgZmFsbCBi
YWNrIHRvIHNSR0IuCi0gICAgaWYgKCFleHRlbmRlZFNSR0JTcGFjZSkKLSAgICAgICAgZXh0ZW5k
ZWRTUkdCU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKLSAgICByZXR1cm4g
ZXh0ZW5kZWRTUkdCU3BhY2U7CisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHN1cHBvcnQgZm9y
IGV4dGVuZWRlZCBzUkdCLCBmYWxsIGJhY2sgdG8gc1JHQi4KKyAgICAgICAgaWYgKCFleHRlbmRl
ZFNSR0JDb2xvclNwYWNlKQorICAgICAgICAgICAgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZSA9IHNS
R0JDb2xvclNwYWNlUmVmKCk7CisgICAgfSk7CisgICAgcmV0dXJuIGV4dGVuZGVkU1JHQkNvbG9y
U3BhY2U7CiB9CiAKIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKIHsK
LSAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM1NwYWNlOworICAgIHN0YXRpYyBD
R0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JTcGFjZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hf
b25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAjaWYg
UExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID4gMTAxMTAwKQotICAgIGRpc3BsYXlQM1NwYWNlID0gQ0dDb2xvclNwYWNlQ3Jl
YXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZURpc3BsYXlQMyk7CisgICAgICAgIGRpc3BsYXlQM0Nv
bG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlRGlzcGxh
eVAzKTsKICNlbHNlCi0gICAgZGlzcGxheVAzU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOwor
ICAgICAgICBkaXNwbGF5UDNDb2xvclNwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKICNlbmRp
ZgotICAgIHJldHVybiBkaXNwbGF5UDNTcGFjZTsKKyAgICB9KTsKKyAgICByZXR1cm4gZGlzcGxh
eVAzQ29sb3JTcGFjZTsKIH0KIAogc3RhdGljIEludGVycG9sYXRpb25RdWFsaXR5IGNvbnZlcnRJ
bnRlcnBvbGF0aW9uUXVhbGl0eShDR0ludGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dENvY29hLm1tCmluZGV4IDM0YzYzY2Q5ZTU3Njk2OGQ5N2JlMWZkYjdkNjA0
YTI4NDYzNzkxNWQuLmE5NTBhMThhNDc2ODg5YzEzYjgzMjA3ZjU2YjY2YjlhYzkzNmJlN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCkBAIC0zNjgsMjUgKzM2OCwyMiBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50
JiBwb2ludCwgZmxvYXQgdwogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA8IDEwMTIwMAogQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3Bh
Y2VSZWYoKQogewotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGluZWFyU1JHQlNwYWNlID0g
bnVsbHB0cjsKLQotICAgIGlmIChsaW5lYXJTUkdCU3BhY2UpCi0gICAgICAgIHJldHVybiBsaW5l
YXJTUkdCU3BhY2U7Ci0KLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGljY1Byb2ZpbGVQYXRoID0g
W1tOU0J1bmRsZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJDb3JlIl0gcGF0
aEZvclJlc291cmNlOkAibGluZWFyU1JHQiIgb2ZUeXBlOkAiaWNjIl07Ci0gICAgUmV0YWluUHRy
PE5TRGF0YT4gaWNjUHJvZmlsZURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0
aENvbnRlbnRzT2ZGaWxlOmljY1Byb2ZpbGVQYXRoLmdldCgpXSk7Ci0KLSAgICBpZiAoaWNjUHJv
ZmlsZURhdGEpCisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJTUkdCQ29sb3JTcGFj
ZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9v
bmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gaWNjUHJvZmls
ZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYkNv
cmUiXSBwYXRoRm9yUmVzb3VyY2U6QCJsaW5lYXJTUkdCIiBvZlR5cGU6QCJpY2MiXTsKKyAgICAg
ICAgUmV0YWluUHRyPE5TRGF0YT4gaWNjUHJvZmlsZURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aENvbnRlbnRzT2ZGaWxlOmljY1Byb2ZpbGVQYXRoLmdldCgpXSk7CisgICAg
ICAgIGlmIChpY2NQcm9maWxlRGF0YSkKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgbGluZWFyU1JHQlNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1By
b2ZpbGUoKENGRGF0YVJlZilpY2NQcm9maWxlRGF0YS5nZXQoKSk7CisgICAgICAgICAgICBsaW5l
YXJTUkdCQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhJQ0NQcm9maWxlKChDRkRh
dGFSZWYpaWNjUHJvZmlsZURhdGEuZ2V0KCkpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogCi0gICAgLy8gSWYgd2UgZmFpbCB0byBsb2FkIHRoZSBsaW5lYXJpemVkIHNSR0IgSUNDIHBy
b2ZpbGUsIGZhbGwgYmFjayB0byBzUkdCLgotICAgIGlmICghbGluZWFyU1JHQlNwYWNlKQotICAg
ICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKLQotICAgIHJldHVybiBsaW5lYXJTUkdC
U3BhY2U7CisgICAgICAgIC8vIElmIHdlIGZhaWwgdG8gbG9hZCB0aGUgbGluZWFyaXplZCBzUkdC
IElDQyBwcm9maWxlLCBmYWxsIGJhY2sgdG8gc1JHQi4KKyAgICAgICAgaWYgKCFsaW5lYXJTUkdC
Q29sb3JTcGFjZSkKKyAgICAgICAgICAgIGxpbmVhclNSR0JDb2xvclNwYWNlID0gc1JHQkNvbG9y
U3BhY2VSZWYoKTsKKyAgICB9CisgICAgcmV0dXJuIGxpbmVhclNSR0JDb2xvclNwYWNlOwogfQog
I2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329356</attachid>
            <date>2017-12-14 09:27:52 -0800</date>
            <delta_ts>2017-12-14 09:35:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180689-20171214092751.patch</filename>
            <type>text/plain</type>
            <size>7649</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxY2I0YTNlMjhhZjg4
MGE5NWEzNGJjZGIxMmFmNmNhNmQ1ZDk5ZC4uZTE0M2VjMjdhM2ViNzg3ZGU4NjcwYjMyM2E1NDZl
YjZlOGM4ODZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTEyLTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBDb2xv
clNwYWNlRGV2aWNlUkdCIGFuZCBtb3N0IHVzZXJzIG9mIHRoZSBvYnNvbGV0ZSBkZXZpY2VSR0Ig
Y29sb3JzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBBZGRyZXNzIGlzc3VlcyBub3RlZCBieSBEYXJpbiBpbiByMjI1Nzk3OgorICAg
ICAgICAKKyAgICAgICAgRXhpc3RpbmcgYW5kIG5ldyBjb2RlIG1pc3Rha2VubHkgYWxsb2NhdGVk
IGNvbG9yc3BhY2VzIG9uIGV2ZXJ5IGNhbGwsIGJlY2F1c2UKKyAgICAgICAgdGhleSBkaWRuJ3Qg
aW5pdGlhbGl6ZSB0aGUgc3RhdGljIHZhcmlhYmxlIG9uIHRoZSBmaXJzdCBjYWxsLiBBdm9pZCB0
aGlzIG1pc3Rha2UKKyAgICAgICAgYnkgdXNpbmcgZGlzcGF0Y2hfb25jZSgpIGluIHRoZXNlIGZ1
bmN0aW9ucy4KKworICAgICAgICBGaXggYSBjYXNlIHdoZXJlIHRoZSBleHRlbmRlZFNSR0JDb2xv
clNwYWNlUmVmKCkgZmFsbGJhY2sgd2FzIHJldHVybmluZyBkZXZpY2VSR0IKKyAgICAgICAgaW5z
dGVhZCBvZiBzUkdCLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYpOgorICAg
ICAgICAoV2ViQ29yZTo6bGluZWFyUkdCQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChXZWJDb3Jl
OjpleHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlQ
M0NvbG9yU3BhY2VSZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6bGluZWFyUkdCQ29sb3JTcGFj
ZVJlZik6CisKIDIwMTctMTItMTQgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIE1ha2UgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgZHVtcCBtX29mZnNl
dEZyb21SZW5kZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDc1YmUwM2NkMzg2OWEzOTY1MGFl
N2FmY2VhZTQ1NDg4YTBjZTEyZTguLjA3M2JmYzBiNzJmNDBjZGRlNmYzNzE5ZGQ2YzkwYTJjY2Q4
OTk0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTc0LDUzICs3NCw2OCBAQCBzdGF0aWMgdm9p
ZCBzZXRDR1N0cm9rZUNvbG9yKENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDb2xvciYgY29s
b3IpCiAKIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpCiB7Ci0gICAgc3RhdGlj
IENHQ29sb3JTcGFjZVJlZiBzUkdCU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShr
Q0dDb2xvclNwYWNlU1JHQik7CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBzUkdCQ29sb3JT
cGFjZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRj
aF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIHNSR0JDb2xvclNwYWNlID0gQ0dDb2xvclNw
YWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZVNSR0IpOwogI2lmIFBMQVRGT1JNKFdJTikK
LSAgICAvLyBPdXQtb2YtZGF0ZSBDRyBpbnN0YWxsYXRpb25zIHdpbGwgbm90IGhvbm9yIGtDR0Nv
bG9yU3BhY2VTUkdCLiBUaGlzIGxvZ2ljIGF2b2lkcwotICAgIC8vIGNhdXNpbmcgYSBjcmFzaCB1
bmRlciB0aG9zZSBjb25kaXRpb25zLiBTaW5jZSB0aGUgZGVmYXVsdCBjb2xvciBzcGFjZSBpbiBX
aW5kb3dzCi0gICAgLy8gaXMgc1JHQiwgdGhpcyBhbGwgd29ya3Mgb3V0IG5pY2VseS4KLSAgICBp
ZiAoIXNSR0JTcGFjZSkKLSAgICAgICAgc1JHQlNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2
aWNlUkdCKCk7CisgICAgICAgIC8vIE91dC1vZi1kYXRlIENHIGluc3RhbGxhdGlvbnMgd2lsbCBu
b3QgaG9ub3Iga0NHQ29sb3JTcGFjZVNSR0IuIFRoaXMgbG9naWMgYXZvaWRzCisgICAgICAgIC8v
IGNhdXNpbmcgYSBjcmFzaCB1bmRlciB0aG9zZSBjb25kaXRpb25zLiBTaW5jZSB0aGUgZGVmYXVs
dCBjb2xvciBzcGFjZSBpbiBXaW5kb3dzCisgICAgICAgIC8vIGlzIHNSR0IsIHRoaXMgYWxsIHdv
cmtzIG91dCBuaWNlbHkuCisgICAgICAgIC8vIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lZWRlZD8g
cmRhcjovL3Byb2JsZW0vMTUyMTM1MTUgd2FzIGZpeGVkLgorICAgICAgICBpZiAoIXNSR0JDb2xv
clNwYWNlKQorICAgICAgICAgICAgc1JHQkNvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVE
ZXZpY2VSR0IoKTsKICNlbmRpZiAvLyBQTEFURk9STShXSU4pCi0gICAgcmV0dXJuIHNSR0JTcGFj
ZTsKKyAgICB9KTsKKyAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2U7CiB9CiAKICNpZiBQTEFURk9S
TShXSU4pIHx8IFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApCiAvLyBTZWUgR3JhcGhpY3NDb250ZXh0Q29j
b2EgZm9yIHRoZSBwcmUtMTAuMTIgaW1wbGVtZW50YXRpb24uCiBDR0NvbG9yU3BhY2VSZWYgbGlu
ZWFyUkdCQ29sb3JTcGFjZVJlZigpCiB7CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsaW5l
YXJSR0JDb2xvclNwYWNlOworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwor
ICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKICNpZiBQTEFURk9STShXSU4pCi0gICAg
Ly8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIGJlIGFibGUgdG8gdXNlIGxpbmVhciBzUkdCLCB0aGlz
IGlzIHRyYWNrZWQgYnkgaHR0cDovL3dlYmtpdC5vcmcvYi84MDAwMC4KLSAgICByZXR1cm4gQ0dD
b2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7CisgICAgICAgIC8vIEZJWE1FOiBXaW5kb3dzIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBsaW5lYXIgc1JHQiwgdGhpcyBpcyB0cmFja2VkIGJ5IGh0dHA6
Ly93ZWJraXQub3JnL2IvODAwMDAuCisgICAgICAgIGxpbmVhclJHQkNvbG9yU3BhY2Ugc1JHQkNv
bG9yU3BhY2VSZWYoKTsKICNlbHNlCi0gICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJS
R0JTcGFjZTsKLSAgICBsaW5lYXJSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1l
KGtDR0NvbG9yU3BhY2VMaW5lYXJTUkdCKTsKLSAgICByZXR1cm4gbGluZWFyUkdCU3BhY2U7Cisg
ICAgICAgIGxpbmVhclJHQkNvbG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShr
Q0dDb2xvclNwYWNlTGluZWFyU1JHQik7CiAjZW5kaWYKKyAgICB9KTsKKworICAgIHJldHVybiBs
aW5lYXJSR0JDb2xvclNwYWNlOwogfQogI2VuZGlmCiAKIENHQ29sb3JTcGFjZVJlZiBleHRlbmRl
ZFNSR0JDb2xvclNwYWNlUmVmKCkKIHsKLSAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGV4dGVu
ZGVkU1JHQlNwYWNlOworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRTUkdCQ29s
b3JTcGFjZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNw
YXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkKLSAgICBl
eHRlbmRlZFNSR0JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3Bh
Y2VFeHRlbmRlZFNSR0IpOworICAgICAgICBleHRlbmRlZFNSR0JDb2xvclNwYWNlID0gQ0dDb2xv
clNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZUV4dGVuZGVkU1JHQik7CiAjZW5kaWYK
LSAgICAvLyBJZiB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHRlbmVkZWQgc1JHQiwgZmFsbCBi
YWNrIHRvIHNSR0IuCi0gICAgaWYgKCFleHRlbmRlZFNSR0JTcGFjZSkKLSAgICAgICAgZXh0ZW5k
ZWRTUkdCU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKTsKLSAgICByZXR1cm4g
ZXh0ZW5kZWRTUkdCU3BhY2U7CisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHN1cHBvcnQgZm9y
IGV4dGVuZWRlZCBzUkdCLCBmYWxsIGJhY2sgdG8gc1JHQi4KKyAgICAgICAgaWYgKCFleHRlbmRl
ZFNSR0JDb2xvclNwYWNlKQorICAgICAgICAgICAgZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZSA9IHNS
R0JDb2xvclNwYWNlUmVmKCk7CisgICAgfSk7CisgICAgcmV0dXJuIGV4dGVuZGVkU1JHQkNvbG9y
U3BhY2U7CiB9CiAKIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKIHsK
LSAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM1NwYWNlOworICAgIHN0YXRpYyBD
R0NvbG9yU3BhY2VSZWYgZGlzcGxheVAzQ29sb3JTcGFjZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hf
b25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAjaWYg
UExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID4gMTAxMTAwKQotICAgIGRpc3BsYXlQM1NwYWNlID0gQ0dDb2xvclNwYWNlQ3Jl
YXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZURpc3BsYXlQMyk7CisgICAgICAgIGRpc3BsYXlQM0Nv
bG9yU3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlRGlzcGxh
eVAzKTsKICNlbHNlCi0gICAgZGlzcGxheVAzU3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOwor
ICAgICAgICBkaXNwbGF5UDNDb2xvclNwYWNlID0gc1JHQkNvbG9yU3BhY2VSZWYoKTsKICNlbmRp
ZgotICAgIHJldHVybiBkaXNwbGF5UDNTcGFjZTsKKyAgICB9KTsKKyAgICByZXR1cm4gZGlzcGxh
eVAzQ29sb3JTcGFjZTsKIH0KIAogc3RhdGljIEludGVycG9sYXRpb25RdWFsaXR5IGNvbnZlcnRJ
bnRlcnBvbGF0aW9uUXVhbGl0eShDR0ludGVycG9sYXRpb25RdWFsaXR5IHF1YWxpdHkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dENvY29hLm1tCmluZGV4IDM0YzYzY2Q5ZTU3Njk2OGQ5N2JlMWZkYjdkNjA0
YTI4NDYzNzkxNWQuLjVhZWUyZjlmZjFiMzg3Y2M2ZjE5MGE2OTg5YWFlYmIzMDc2YmQ0NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCkBAIC0zNjgsMjUgKzM2OCwyMiBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50
JiBwb2ludCwgZmxvYXQgdwogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA8IDEwMTIwMAogQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3Bh
Y2VSZWYoKQogewotICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgbGluZWFyU1JHQlNwYWNlID0g
bnVsbHB0cjsKLQotICAgIGlmIChsaW5lYXJTUkdCU3BhY2UpCi0gICAgICAgIHJldHVybiBsaW5l
YXJTUkdCU3BhY2U7Ci0KLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGljY1Byb2ZpbGVQYXRoID0g
W1tOU0J1bmRsZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJDb3JlIl0gcGF0
aEZvclJlc291cmNlOkAibGluZWFyU1JHQiIgb2ZUeXBlOkAiaWNjIl07Ci0gICAgUmV0YWluUHRy
PE5TRGF0YT4gaWNjUHJvZmlsZURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0
aENvbnRlbnRzT2ZGaWxlOmljY1Byb2ZpbGVQYXRoLmdldCgpXSk7Ci0KLSAgICBpZiAoaWNjUHJv
ZmlsZURhdGEpCisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJTUkdCQ29sb3JTcGFj
ZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9v
bmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gaWNjUHJvZmls
ZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYkNv
cmUiXSBwYXRoRm9yUmVzb3VyY2U6QCJsaW5lYXJTUkdCIiBvZlR5cGU6QCJpY2MiXTsKKyAgICAg
ICAgUmV0YWluUHRyPE5TRGF0YT4gaWNjUHJvZmlsZURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aENvbnRlbnRzT2ZGaWxlOmljY1Byb2ZpbGVQYXRoLmdldCgpXSk7CisgICAg
ICAgIGlmIChpY2NQcm9maWxlRGF0YSkKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgbGluZWFyU1JHQlNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1By
b2ZpbGUoKENGRGF0YVJlZilpY2NQcm9maWxlRGF0YS5nZXQoKSk7CisgICAgICAgICAgICBsaW5l
YXJTUkdCQ29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhJQ0NQcm9maWxlKChDRkRh
dGFSZWYpaWNjUHJvZmlsZURhdGEuZ2V0KCkpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogCi0gICAgLy8gSWYgd2UgZmFpbCB0byBsb2FkIHRoZSBsaW5lYXJpemVkIHNSR0IgSUNDIHBy
b2ZpbGUsIGZhbGwgYmFjayB0byBzUkdCLgotICAgIGlmICghbGluZWFyU1JHQlNwYWNlKQotICAg
ICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKLQotICAgIHJldHVybiBsaW5lYXJTUkdC
U3BhY2U7CisgICAgICAgIC8vIElmIHdlIGZhaWwgdG8gbG9hZCB0aGUgbGluZWFyaXplZCBzUkdC
IElDQyBwcm9maWxlLCBmYWxsIGJhY2sgdG8gc1JHQi4KKyAgICAgICAgaWYgKCFsaW5lYXJTUkdC
Q29sb3JTcGFjZSkKKyAgICAgICAgICAgIGxpbmVhclNSR0JDb2xvclNwYWNlID0gc1JHQkNvbG9y
U3BhY2VSZWYoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbGluZWFyU1JHQkNvbG9yU3BhY2U7CiB9
CiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="348456"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>