<?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>74457</bug_id>
          
          <creation_ts>2011-12-13 15:33:02 -0800</creation_ts>
          <short_desc>Change adoptPtr(new ...) to ...::create in Page.cpp</short_desc>
          <delta_ts>2011-12-20 16:24:11 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Greg Billock">gbillock</reporter>
          <assigned_to name="Greg Billock">gbillock</assigned_to>
          <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>520415</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-13 15:33:02 -0800</bug_when>
    <thetext>Change adoptPtr(new ...) to ...::create in Page.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520417</commentid>
    <comment_count>1</comment_count>
      <attachid>119098</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-13 15:33:43 -0800</bug_when>
    <thetext>Created attachment 119098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520426</commentid>
    <comment_count>2</comment_count>
      <attachid>119098</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-13 15:40:03 -0800</bug_when>
    <thetext>Comment on attachment 119098
Patch

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

This looks fine, but does not go far enough. In most of these cases, the constructors of these classes should be made private at the same time.

I’d rather see a patch that does fewer classes at a time, but makes the constructors private for those classes.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

Can’t land a patch with that line in it.

&gt; Source/WebCore/loader/ProgressTracker.h:31
&gt; +#include &lt;wtf/PassOwnPtr.h&gt;

If we just have a return type of PassOwnPtr, I think we can do with just &lt;wtf/Forward.h&gt;.

&gt; Source/WebCore/notifications/NotificationController.h:32
&gt; +#include &lt;wtf/PassOwnPtr.h&gt;

Ditto.

&gt; Source/WebCore/page/SpeechInput.h:39
&gt; +#include &lt;wtf/PassOwnPtr.h&gt;

I’m surprised this include is needed. Doesn’t Forward.h forward-declare PassOwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521073</commentid>
    <comment_count>3</comment_count>
      <attachid>119098</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-14 10:53:43 -0800</bug_when>
    <thetext>Comment on attachment 119098
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; Can’t land a patch with that line in it.

Definitely. :-) My plan was to ask David about the intended fate of the constructors, but you&apos;re too quick. :-) It sounds like they should become private. I&apos;ll get some guidance about writing tests. These changes should be invisible for layout tests, right?

&gt;&gt; Source/WebCore/loader/ProgressTracker.h:31
&gt;&gt; +#include &lt;wtf/PassOwnPtr.h&gt;
&gt; 
&gt; If we just have a return type of PassOwnPtr, I think we can do with just &lt;wtf/Forward.h&gt;.

Done.

&gt;&gt; Source/WebCore/notifications/NotificationController.h:32
&gt;&gt; +#include &lt;wtf/PassOwnPtr.h&gt;
&gt; 
&gt; Ditto.

Done.

&gt; Source/WebCore/page/PageGroup.h:52
&gt; +        static PassOwnPtr&lt;PageGroup&gt; create(Page*);

Should I also make a factory for PageGroup(const String&amp;)?

&gt;&gt; Source/WebCore/page/SpeechInput.h:39
&gt;&gt; +#include &lt;wtf/PassOwnPtr.h&gt;
&gt; 
&gt; I’m surprised this include is needed. Doesn’t Forward.h forward-declare PassOwnPtr?

Moved to .cpp file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521077</commentid>
    <comment_count>4</comment_count>
      <attachid>119250</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-14 10:56:27 -0800</bug_when>
    <thetext>Created attachment 119250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521174</commentid>
    <comment_count>5</comment_count>
      <attachid>119250</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-14 12:20:51 -0800</bug_when>
    <thetext>Comment on attachment 119250
Patch

Attachment 119250 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10873339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521236</commentid>
    <comment_count>6</comment_count>
      <attachid>119283</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-14 13:23:48 -0800</bug_when>
    <thetext>Created attachment 119283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521240</commentid>
    <comment_count>7</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-14 13:26:35 -0800</bug_when>
    <thetext>Took out misfire edit of WebInspectorFrontendClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524800</commentid>
    <comment_count>8</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-12-20 13:46:06 -0800</bug_when>
    <thetext>Re-tickle cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524941</commentid>
    <comment_count>9</comment_count>
      <attachid>119283</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 16:24:07 -0800</bug_when>
    <thetext>Comment on attachment 119283
Patch

Clearing flags on attachment: 119283

Committed r103365: &lt;http://trac.webkit.org/changeset/103365&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524943</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 16:24:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119098</attachid>
            <date>2011-12-13 15:33:43 -0800</date>
            <delta_ts>2011-12-14 10:56:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74457-20111213153342.patch</filename>
            <type>text/plain</type>
            <size>25713</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IxZWZhMjM2Mjg2NjY1
OGUyOTc2MjJjYjkzZDRjYTI2MDAxYzc2Ni4uMTYzZjEzODRjYzhjNjhjYmYxMTVkYTI3YmM1NmQy
ZjdhZDY1NGZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDExLTEyLTEzICBHcmVn
IEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIENoYW5nZSBhZG9wdFB0
cihuZXcgLi4uKSB0byAuLi46OmNyZWF0ZSBpbiBQYWdlLmNwcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAg
ICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RldmljZU1v
dGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmg6Cisg
ICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ2FyZXRDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaDoKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
Lmg6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5oOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25Db250cm9sbGVyOjpjcmVhdGUp
OgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRl
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oOgorICAgICAg
ICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRy
b2xsZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAgICAg
ICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29u
dHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0
aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmluaXRHcm91cCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hJbnB1dCk6CisgICAgICAgICogcGFnZS9QYWdl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjcmVhdGUpOgorICAgICAg
ICAqIHBhZ2UvUGFnZUdyb3VwLmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdz
Lmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hJbnB1dDo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0Lmg6CisKIDIw
MTEtMTItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIEtpbGxSaW5nTm9uZS5jcHAgdG8gTWFjIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGNkZWI5ZDAyY2ExNTBl
NmU4MmUxZmRlYzZlOThhMzgwYTQ3NzYyZWQuLmQ3YWMzMDU5ZjdkMWU0OWEyZmRiMTRjMTk1NGJk
M2M3ZGE1ZGQ2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJv
bGxlci5jcHAKQEAgLTQ1LDYgKzQ1LDExIEBAIERldmljZU1vdGlvbkNvbnRyb2xsZXI6On5EZXZp
Y2VNb3Rpb25Db250cm9sbGVyKCkKICAgICBtX2NsaWVudC0+ZGV2aWNlTW90aW9uQ29udHJvbGxl
ckRlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPERldmljZU1vdGlvbkNvbnRyb2xsZXI+IERl
dmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShEZXZpY2VNb3Rpb25DbGllbnQqIGNsaWVudCkK
K3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmljZU1vdGlvbkNvbnRyb2xsZXIoY2xpZW50
KSk7Cit9CisKIHZvaWQgRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6dGltZXJGaXJlZChUaW1lcjxE
ZXZpY2VNb3Rpb25Db250cm9sbGVyPiogdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1l
ciwgdGltZXIgPT0gJm1fdGltZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25D
b250cm9sbGVyLmgKaW5kZXggZTcxNTY0YzgxNmEwY2IyMWU2ZDgzMmJiNWI4YjljNGJlNWU0MDM0
Mi4uYjJmYzI0ZGQ1N2JiYzA2MTcwYzc1NTJkOTFjZDk4YjAwY2Y5ZDIwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw4IEBAIHB1
YmxpYzoKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKERldmljZU1vdGlvbkNsaWVudCopOwog
ICAgIH5EZXZpY2VNb3Rpb25Db250cm9sbGVyKCk7CiAKKyAgICBzdGF0aWMgUGFzc093blB0cjxE
ZXZpY2VNb3Rpb25Db250cm9sbGVyPiBjcmVhdGUoRGV2aWNlTW90aW9uQ2xpZW50Kik7CisKICAg
ICB2b2lkIGFkZExpc3RlbmVyKERPTVdpbmRvdyopOwogICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIo
RE9NV2luZG93Kik7CiAgICAgdm9pZCByZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3Bw
CmluZGV4IDk1M2JlNTYxM2E1OWZlNWZiYTVhYmY3OGVkNjk1NmQxNDEyZTMwYWEuLjY4NjgzZmQw
NTA2M2ZjOGNiODU2YzNkMzBiMmUyZTRlYTkzYzQyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00Niw2ICs0NiwxMSBA
QCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIoKQogICAgIG1fY2xpZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KTsKIH0KIAorUGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZU9yaWVudGF0aW9u
Q2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIocGFnZSwgY2xpZW50KSk7Cit9CisKIHZvaWQgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjp0aW1lckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cj4qIHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aAppbmRleCBiYmVhNmQwNTA1M2ZhMzVjNmQ0Y2FlYmE0NDFhMTAzMTU1NzY5MjI3Li5jMzE5ZTI3
ODc0M2I2MjcwMWFjNmYxYjQwOGEzNWRiMWI3NzY4MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC00Miw2ICs0Miw4IEBAIHB1
YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUGFnZSosIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50Kik7CiAgICAgfkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOwogCisg
ICAgc3RhdGljIFBhc3NPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBjcmVhdGUo
UGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7CisKICAgICB2b2lkIGFkZExpc3RlbmVy
KERPTVdpbmRvdyopOwogICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoRE9NV2luZG93Kik7CiAgICAg
dm9pZCByZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGNiMWY5NTdkMWE0ZTU2N2QzY2IzMDdkOWM5OWFk
ZTYxNDYzMGM1YWEuLjc1MmY3OWY4ZWI3MTk3OTg3MDA4OTNhNGIwNDBlZmNiNjkxOTMwYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC05MCw2ICs5MCwx
MSBAQCBEcmFnQ2FyZXRDb250cm9sbGVyOjpEcmFnQ2FyZXRDb250cm9sbGVyKCkKIHsKIH0KIAor
UGFzc093blB0cjxEcmFnQ2FyZXRDb250cm9sbGVyPiBEcmFnQ2FyZXRDb250cm9sbGVyOjpjcmVh
dGUoKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRHJhZ0NhcmV0Q29udHJvbGxlcik7Cit9
CisKIGJvb2wgRHJhZ0NhcmV0Q29udHJvbGxlcjo6aXNDb250ZW50UmljaGx5RWRpdGFibGUoKSBj
b25zdAogewogICAgIHJldHVybiBpc1JpY2hseUVkaXRhYmxlUG9zaXRpb24obV9wb3NpdGlvbi5k
ZWVwRXF1aXZhbGVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApp
bmRleCA4MGRhZDJkYTFhNTUyNzRiY2NhNDVkMmE3ZWU0ZTk1MTI3MjQyNTFlLi5kZDA5ODBjMzRj
NmE5MjUwNTZlNmZkNWE0M2Y5NzNlYTM2NGY1ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCkBAIC04Niw2ICs4Niw4IEBAIGNsYXNzIERyYWdDYXJldENvbnRyb2xs
ZXIgOiBwcml2YXRlIENhcmV0QmFzZSB7CiBwdWJsaWM6CiAgICAgRHJhZ0NhcmV0Q29udHJvbGxl
cigpOwogCisgICAgc3RhdGljIFBhc3NPd25QdHI8RHJhZ0NhcmV0Q29udHJvbGxlcj4gY3JlYXRl
KCk7CisKICAgICBSZW5kZXJPYmplY3QqIGNhcmV0UmVuZGVyZXIoKSBjb25zdDsKICAgICB2b2lk
IHBhaW50RHJhZ0NhcmV0KEZyYW1lKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UG9p
bnQmLCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3Q7CiAKQEAgLTMzMSw0ICszMzMs
MyBAQCB2b2lkIHNob3dUcmVlKGNvbnN0IFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uKik7CiAjZW5k
aWYKIAogI2VuZGlmIC8vIEZyYW1lU2VsZWN0aW9uX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCmluZGV4IGE5YWJiMTA1YmUyNzFkYWI1
M2ZiOTE0MTEzZjNkZDdjNDdiOTVlMDQuLmQ4OWM5YTU1MGI3ODcwNjk4M2Y5ZDRmM2VmM2RhMmM5
ZjBhYmRjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29u
dHJvbGxlci5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6fkJh
Y2tGb3J3YXJkQ29udHJvbGxlcigpCiB7CiB9CiAKK1Bhc3NPd25QdHI8QmFja0ZvcndhcmRDb250
cm9sbGVyPiBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBQYXNzUmVm
UHRyPEJhY2tGb3J3YXJkTGlzdD4gY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
QmFja0ZvcndhcmRDb250cm9sbGVyKHBhZ2UsIGNsaWVudCkpOworfQorCiBib29sIEJhY2tGb3J3
YXJkQ29udHJvbGxlcjo6Y2FuR29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wYWdlLT5jYW5Hb0JhY2tPckZvcndhcmQoZGlzdGFuY2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmgKaW5kZXggYWM1N2Zi
OTc2MGZkYzUwZTg0MjUyNjAyNGJmMjQ0ODYzM2RhOWJlYy4uMGY2NTQ5YjcwMWMwN2U2NWM5MzJl
MDEwZDgyMDM3ZTEwY2FiNDliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9C
YWNrRm9yd2FyZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICBCYWNrRm9y
d2FyZENvbnRyb2xsZXIoUGFnZSosIFBhc3NSZWZQdHI8QmFja0ZvcndhcmRMaXN0Pik7CiAgICAg
fkJhY2tGb3J3YXJkQ29udHJvbGxlcigpOwogCisgICAgc3RhdGljIFBhc3NPd25QdHI8QmFja0Zv
cndhcmRDb250cm9sbGVyPiBjcmVhdGUoUGFnZSosIFBhc3NSZWZQdHI8QmFja0ZvcndhcmRMaXN0
Pik7CisKICAgICBCYWNrRm9yd2FyZExpc3QqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50LmdldCgpOyB9CiAKICAgICBib29sIGNhbkdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2Up
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IGYwZDhmZDVhNjhkMDYwMjRlMWE3ZDM3YWEzNjBjOTdkNTQ1ZGFmYzAuLmE5
YzcxOWVmNmQwNDYwZGY0ZWViOTVjNmY5YjZlY2U3YzMzNTU0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE2MCw2ICsxNjAs
MTEgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xsZXIoKQogICAgIEFT
U0VSVCghbV9pbnNwZWN0b3JDbGllbnQpOwogfQogCitQYXNzT3duUHRyPEluc3BlY3RvckNvbnRy
b2xsZXI+IEluc3BlY3RvckNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBJbnNwZWN0b3JD
bGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckNvbnRy
b2xsZXIocGFnZSwgY2xpZW50KSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5z
cGVjdGVkUGFnZURlc3Ryb3llZCgpCiB7CiAgICAgZGlzY29ubmVjdEZyb250ZW5kKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAwNDll
MjYwNGY5OTk4MjVmNWJlOWMxYjgyY2M5ZjI5NTAxNjA4MDE1Li5kZGEwODgyNWM4NzM2NWM5MTJl
MjRhNzk1ZDNhYjg5YjY4ZTZhNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTY1LDYgKzY1LDkgQEAgY2xhc3MgSW5zcGVjdG9yQ29u
dHJvbGxlciB7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiwgSW5zcGVj
dG9yQ2xpZW50Kik7CiAgICAgfkluc3BlY3RvckNvbnRyb2xsZXIoKTsKKworICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgSW5zcGVjdG9yQ2xp
ZW50Kik7CisKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKIAogICAgIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dy
ZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNw
cAppbmRleCA1NWI5OGU5NzEwODBiNWY2NDA1NDZiMjY2MzMxNjFkNDk4MzVmOWMwLi42YjAzZGNh
ZmQyN2FhODc4Zjk5OGUxNWY2NDZmMDBhOTVkYWFkYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtODEsNiArODEsMTEgQEAgUHJvZ3Jlc3NUcmFja2Vy
Ojp+UHJvZ3Jlc3NUcmFja2VyKCkKICAgICBkZWxldGVBbGxWYWx1ZXMobV9wcm9ncmVzc0l0ZW1z
KTsKIH0KIAorUGFzc093blB0cjxQcm9ncmVzc1RyYWNrZXI+IFByb2dyZXNzVHJhY2tlcjo6Y3Jl
YXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFByb2dyZXNzVHJhY2tlcik7Cit9CisK
IGRvdWJsZSBQcm9ncmVzc1RyYWNrZXI6OmVzdGltYXRlZFByb2dyZXNzKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9wcm9ncmVzc1ZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Byb2dyZXNzVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oCmluZGV4IGVhNWY3ZjlmOGZhOGZlNmQyZGNiZDExNDllYTk3OWE3ZGU3NTUyNWIuLmM2
ODVjMjliMDFkZjA1NTQyOGVlYmNmOGJiNjMzNDdmOTFlODVmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQxLDcgKzQyLDggQEAgY2xhc3MgUHJvZ3Jlc3NUcmFja2VyIHsKIHB1YmxpYzoK
ICAgICBQcm9ncmVzc1RyYWNrZXIoKTsKICAgICB+UHJvZ3Jlc3NUcmFja2VyKCk7Ci0gICAgCisK
KyAgICBzdGF0aWMgUGFzc093blB0cjxQcm9ncmVzc1RyYWNrZXI+IGNyZWF0ZSgpOwogICAgIHN0
YXRpYyB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKIAogICAgIGRvdWJs
ZSBlc3RpbWF0ZWRQcm9ncmVzcygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYWM4MGE1MjA5
ZDgwYTBkMTM4MTg2MmJkODBmNjIyMGNjMjc4ZDZkOC4uYzAyMDlmZDI0NzU1ZDU5MGZjNmM1OGFi
MmY5OTQ2MjVjYjdmZDJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00Miw2ICs0MiwxMSBAQCBOb3Rp
ZmljYXRpb25Db250cm9sbGVyOjp+Tm90aWZpY2F0aW9uQ29udHJvbGxlcigpCiB7CiB9CiAKK1Bh
c3NPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6
Y3JlYXRlKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlciogY2xpZW50KQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTm90aWZpY2F0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE5PVElG
SUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ29udHJvbGxlci5oCmluZGV4IDNmYWViY2YyMjJlOWRiMmZkNTk1ZGRkNTMyYmU1YmE2
ZGQ2MTE1OGIuLjkwYjFmZTUwNTM5NzgwMWUyODRmMTcyZWVkMWQ5NGM3MDdlNDBkYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJv
bGxlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDcgKzQxLDkgQEAgY2xhc3MgTm90aWZpY2F0
aW9uQ29udHJvbGxlciB7CiBwdWJsaWM6CiAgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcihQYWdl
KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAgfk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIo
KTsKLSAgICAKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+
IGNyZWF0ZShQYWdlKiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CisKICAgICBOb3RpZmljYXRp
b25QcmVzZW50ZXIqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAgICAgCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDk0Y2RkOWM1ZmFhZTNiZTk0NGJlOTE5MTZiYTY4
YWZiNjQ4MTRhOTAuLjI4MmY4NWRkZThmZWFhY2Q4NTU2OGQzOWY0NzkxZDZiODYyYTNmZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTcxLDYgKzcxLDExIEBAIENocm9tZTo6fkNocm9tZSgp
CiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPENocm9t
ZT4gQ2hyb21lOjpjcmVhdGUoUGFnZSogcGFnZSwgQ2hyb21lQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDaHJvbWUocGFnZSwgY2xpZW50KSk7Cit9CisKIHZvaWQg
Q2hyb21lOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9v
bCBpbW1lZGlhdGUpCiB7CiAgICAgbV9jbGllbnQtPmludmFsaWRhdGVSb290Vmlldyh1cGRhdGVS
ZWN0LCBpbW1lZGlhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYjNmMDg3NDBmOTQ3NDkyOTMy
MjA4ODNmZGEyZmRkYjU5YmU4NjU3OC4uMmY2NzgyYjYwMGQ3ZGRkOGNkMTllZGFjYTMyNWU1MTk2
YzQwZDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC02Miw2ICs2Miw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgQ2hyb21lKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKICAgICAgICAg
fkNocm9tZSgpOwogCisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPENocm9tZT4gY3JlYXRlKFBh
Z2UqLCBDaHJvbWVDbGllbnQqKTsKKwogICAgICAgICBDaHJvbWVDbGllbnQqIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgLy8gSG9zdFdpbmRvdyBtZXRob2RzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDMxMTM0
NDU0MGQ4ODY2NjRkM2Q1YzNmOTliMzY5YTg2Mjc3NTRhNmUuLmIyODM1NTJjYTYwY2Y5ODlhNjVi
ODFmOTk2ZTU1OTRhNzgyNDA4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKQEAgLTg3LDYgKzg3LDExIEBAIENvbnRleHRNZW51Q29udHJvbGxl
cjo6fkNvbnRleHRNZW51Q29udHJvbGxlcigpCiAgICAgbV9jbGllbnQtPmNvbnRleHRNZW51RGVz
dHJveWVkKCk7CiB9CiAKK1Bhc3NPd25QdHI8Q29udGV4dE1lbnVDb250cm9sbGVyPiBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBDb250ZXh0TWVudUNsaWVudCogY2xp
ZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29udGV4dE1lbnVDb250cm9sbGVyKHBh
Z2UsIGNsaWVudCkpOworfQorCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2xlYXJDb250
ZXh0TWVudSgpCiB7CiAgICAgbV9jb250ZXh0TWVudS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKaW5kZXggZTZhMGEwMDQxOTBhMDJjZjlkZGE2
OWViMGQxNjJjZDczODJkYmI2Ni4uM2ZkZDQxYjk1MGE1MTQ4YmRkNTMwZWEzODIzNDQxZmM4ZDNm
M2FkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCkBA
IC00Nyw2ICs0Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ29udGV4dE1lbnVD
b250cm9sbGVyKFBhZ2UqLCBDb250ZXh0TWVudUNsaWVudCopOwogICAgICAgICB+Q29udGV4dE1l
bnVDb250cm9sbGVyKCk7CiAKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8Q29udGV4dE1lbnVD
b250cm9sbGVyPiBjcmVhdGUoUGFnZSosIENvbnRleHRNZW51Q2xpZW50Kik7CisKICAgICAgICAg
Q29udGV4dE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAK
ICAgICAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRNZW51KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0TWVudS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRl
eCAzMTBmZTBhZjNhMjY5ZGQ5MzA1MzIyMjg1NjIwZmY3YmMwMzJhODZmLi43OGFiNDUyNzY4NjRk
OTc3NGFhMTQ1OWZjZTc3MmM3Mzc2YTJmMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcApAQCAtMTAyLDYgKzEwMiwxMSBAQCBEcmFnQ29udHJvbGxlcjo6fkRyYWdDb250
cm9sbGVyKCkKICAgICBtX2NsaWVudC0+ZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIH0KIAor
UGFzc093blB0cjxEcmFnQ29udHJvbGxlcj4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBw
YWdlLCBEcmFnQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEcmFn
Q29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKwogc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSogZHJhZ0Rh
dGEsIEZyYW1lKiBmcmFtZSwgUmVmUHRyPFJhbmdlPiBjb250ZXh0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hv
c2VQbGFpblRleHQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggMmUy
NWZkODViM2NiYzRhN2M3YWY4NWE0NDAwNmI5NWNmNDEyZGZlNC4uNmQ0OWQ2ZWUxYTBiNTZjZTEw
YmYzZGI4ZDk3MjhlNGY5MWI0MDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
aApAQCAtNTUsNiArNTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBEcmFnQ29udHJvbGxlcihQYWdlKiwgRHJhZ0NsaWVudCopOwogICAgICAgICB+RHJhZ0Nv
bnRyb2xsZXIoKTsKKworICAgICAgICBzdGF0aWMgUGFzc093blB0cjxEcmFnQ29udHJvbGxlcj4g
Y3JlYXRlKFBhZ2UqLCBEcmFnQ2xpZW50Kik7CisKICAgICAgICAgRHJhZ0NsaWVudCogY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgICAgICBEcmFnU2Vzc2lvbiBkcmFn
RW50ZXJlZChEcmFnRGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CmluZGV4IDhkODgxYTAxMDY2YzMzNzI0MGZkYWFhZTY3NmJhMGY3OTNmYTVjZjIuLjM5NWE5MTI4
Y2Y2MTE0NmM1Y2FlMGQ1ZGJiNWIyOTU4NjA4ZDk4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKQEAgLTkxLDYgKzkxLDExIEBAIEZvY3VzQ29udHJvbGxlcjo6Rm9j
dXNDb250cm9sbGVyKFBhZ2UqIHBhZ2UpCiB7CiB9CiAKK1Bhc3NPd25QdHI8Rm9jdXNDb250cm9s
bGVyPiBGb2N1c0NvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgRm9jdXNDb250cm9sbGVyKHBhZ2UpKTsKK30KKwogdm9pZCBGb2N1c0NvbnRy
b2xsZXI6OnNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPiBmcmFtZSkKIHsKICAgICBB
U1NFUlQoIWZyYW1lIHx8IGZyYW1lLT5wYWdlKCkgPT0gbV9wYWdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IDVmOWJkZmE5Nzg0MDZiN2NkNTNmMWY3NGEzODg3ODY1
M2JjYWViM2QuLjM2ZThhOTVkNTNmNTE5YjRmM2JlNjNkZDRjOTYzMDc4ZjJlYWVkOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBG
b2N1c0NvbnRyb2xsZXIgewogcHVibGljOgogICAgIEZvY3VzQ29udHJvbGxlcihQYWdlKik7CiAK
KyAgICBzdGF0aWMgUGFzc093blB0cjxGb2N1c0NvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKik7CisK
ICAgICB2b2lkIHNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CiAgICAgRnJhbWUq
IGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9CiAg
ICAgRnJhbWUqIGZvY3VzZWRPck1haW5GcmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGI5NTMzY2EzYjUwMzZkYzkwMmY4
MTUyN2EyYWI0NWRlNjU5M2YyZGIuLjk2OTRhOTljNDU2NjcyNjY1ZWVmMDU3ZmVlY2Q4MzJkZDNh
MjVmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTQ3LDYgKzQ3LDExIEBAIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6fkdlb2xvY2F0aW9u
Q29udHJvbGxlcigpCiAgICAgICAgIG1fY2xpZW50LT5nZW9sb2NhdGlvbkRlc3Ryb3llZCgpOwog
fQogCitQYXNzT3duUHRyPEdlb2xvY2F0aW9uQ29udHJvbGxlcj4gR2VvbG9jYXRpb25Db250cm9s
bGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEdlb2xvY2F0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQp
KTsKK30KKwogdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmFkZE9ic2VydmVyKEdlb2xvY2F0
aW9uKiBvYnNlcnZlciwgYm9vbCBlbmFibGVIaWdoQWNjdXJhY3kpCiB7CiAgICAgLy8gVGhpcyBt
YXkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgb2JzZXJ2ZXIsIHRob3Vn
aCByZW1vdmVPYnNlcnZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuaAppbmRleCA3YzU1Y2UyNGE0ZjU2MmM2Zjk5YTA3MjczMDc1Njk5MDQ3MTM1MWU1Li5j
NTQyZjI1Y2Q3ZmJhY2MzYTVjZGQ0MjBiMjBhYjYzZDE0NzdlYTU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHVibGlj
OgogICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlcihQYWdlKiwgR2VvbG9jYXRpb25DbGllbnQqKTsK
ICAgICB+R2VvbG9jYXRpb25Db250cm9sbGVyKCk7CiAKKyAgICBzdGF0aWMgUGFzc093blB0cjxH
ZW9sb2NhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgR2VvbG9jYXRpb25DbGllbnQqKTsK
KwogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoR2VvbG9jYXRpb24qLCBib29sIGVuYWJsZUhpZ2hBY2N1
cmFjeSk7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihHZW9sb2NhdGlvbiopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCA3NzIwMGZlMjI3NGM4MzI4ZTU3MGU3MDNmODVlYjAxMzU3MmQyMGI2Li5h
NjkzN2ExZDBjOTIyYmVlM2FiNGI4NTUzNDdkM2IyYzMzOTQ5ZTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTEyMCwyNyArMTIwLDI3IEBAIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKEZyYW1lKiBm
cmFtZSkKIH0KIAogUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCi0gICAgOiBt
X2Nocm9tZShhZG9wdFB0cihuZXcgQ2hyb21lKHRoaXMsIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVu
dCkpKQotICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBEcmFnQ2FyZXRD
b250cm9sbGVyKSkKKyAgICA6IG1fY2hyb21lKENocm9tZTo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGll
bnRzLmNocm9tZUNsaWVudCkpCisgICAgLCBtX2RyYWdDYXJldENvbnRyb2xsZXIoRHJhZ0NhcmV0
Q29udHJvbGxlcjo6Y3JlYXRlKCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAsIG1f
ZHJhZ0NvbnRyb2xsZXIoYWRvcHRQdHIobmV3IERyYWdDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGll
bnRzLmRyYWdDbGllbnQpKSkKKyAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoRHJhZ0NvbnRyb2xsZXI6
OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkKICNlbmRpZgotICAgICwgbV9m
b2N1c0NvbnRyb2xsZXIoYWRvcHRQdHIobmV3IEZvY3VzQ29udHJvbGxlcih0aGlzKSkpCisgICAg
LCBtX2ZvY3VzQ29udHJvbGxlcihGb2N1c0NvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzKSkKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICAsIG1fY29udGV4dE1lbnVDb250cm9sbGVyKGFkb3B0
UHRyKG5ldyBDb250ZXh0TWVudUNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuY29udGV4dE1l
bnVDbGllbnQpKSkKKyAgICAsIG1fY29udGV4dE1lbnVDb250cm9sbGVyKENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50KSkKICNl
bmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIo
YWRvcHRQdHIobmV3IEluc3BlY3RvckNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuaW5zcGVj
dG9yQ2xpZW50KSkpCisgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIoSW5zcGVjdG9yQ29udHJv
bGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpCiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgICwgbV9nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoYWRvcHRQdHIobmV3IEdlb2xvY2F0aW9uQ29udHJvbGxlcih0aGlzLCBwYWdl
Q2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkpKQorICAgICwgbV9nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoR2VvbG9jYXRpb25Db250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuZ2VvbG9j
YXRpb25DbGllbnQpKQogI2VuZGlmCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAg
ICAsIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkZXZp
Y2VNb3Rpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNlTW90aW9uQ29udHJvbGxlcihw
YWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpKSA6IG51bGxwdHIpCi0gICAgLCBtX2Rldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkZXZpY2VPcmll
bnRhdGlvbkVuYWJsZWQoKSA/IGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIodGhpcywgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQpKSA6IG51bGxwdHIp
CisgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHBh
Z2VDbGllbnRzLmRldmljZU1vdGlvbkNsaWVudCkgOiBudWxscHRyKQorICAgICwgbV9kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNlT3JpZW50
YXRpb25FbmFibGVkKCkgPyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlz
LCBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgOiBudWxscHRyKQogI2VuZGlm
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLCBtX25vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIoYWRvcHRQdHIobmV3IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMu
bm90aWZpY2F0aW9uQ2xpZW50KSkpCisgICAgLCBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXIoTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLm5vdGlmaWNhdGlv
bkNsaWVudCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICwgbV9zcGVl
Y2hJbnB1dENsaWVudChwYWdlQ2xpZW50cy5zcGVlY2hJbnB1dENsaWVudCkKQEAgLTE0OCw5ICsx
NDgsOSBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgICwgbV91c2VyTWVkaWFDbGllbnQocGFnZUNsaWVudHMudXNlck1l
ZGlhQ2xpZW50KQogI2VuZGlmCi0gICAgLCBtX3NldHRpbmdzKGFkb3B0UHRyKG5ldyBTZXR0aW5n
cyh0aGlzKSkpCi0gICAgLCBtX3Byb2dyZXNzKGFkb3B0UHRyKG5ldyBQcm9ncmVzc1RyYWNrZXIp
KQotICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoYWRvcHRQdHIobmV3IEJhY2tGb3J3YXJk
Q29udHJvbGxlcih0aGlzLCBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCkpKQorICAgICwg
bV9zZXR0aW5ncyhTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9wcm9ncmVzcyhQcm9n
cmVzc1RyYWNrZXI6OmNyZWF0ZSgpKQorICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoQmFj
a0ZvcndhcmRDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRD
bGllbnQpKQogICAgICwgbV90aGVtZShSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKHRoaXMpKQog
ICAgICwgbV9lZGl0b3JDbGllbnQocGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50KQogICAgICwgbV9m
cmFtZUNvdW50KDApCkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBQYWdlOjppbml0R3JvdXAoKQog
ewogICAgIEFTU0VSVCghbV9zaW5nbGVQYWdlR3JvdXApOwogICAgIEFTU0VSVCghbV9ncm91cCk7
Ci0gICAgbV9zaW5nbGVQYWdlR3JvdXAgPSBhZG9wdFB0cihuZXcgUGFnZUdyb3VwKHRoaXMpKTsK
KyAgICBtX3NpbmdsZVBhZ2VHcm91cCA9IFBhZ2VHcm91cDo6Y3JlYXRlKHRoaXMpOwogICAgIG1f
Z3JvdXAgPSBtX3NpbmdsZVBhZ2VHcm91cC5nZXQoKTsKIH0KIApAQCAtOTY1LDcgKzk2NSw3IEBA
IFNwZWVjaElucHV0KiBQYWdlOjpzcGVlY2hJbnB1dCgpCiB7CiAgICAgQVNTRVJUKG1fc3BlZWNo
SW5wdXRDbGllbnQpOwogICAgIGlmICghbV9zcGVlY2hJbnB1dC5nZXQoKSkKLSAgICAgICAgbV9z
cGVlY2hJbnB1dCA9IGFkb3B0UHRyKG5ldyBTcGVlY2hJbnB1dChtX3NwZWVjaElucHV0Q2xpZW50
KSk7CisgICAgICAgIG1fc3BlZWNoSW5wdXQgPSBTcGVlY2hJbnB1dDo6Y3JlYXRlKG1fc3BlZWNo
SW5wdXRDbGllbnQpOwogICAgIHJldHVybiBtX3NwZWVjaElucHV0LmdldCgpOwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKaW5kZXggMmMwMWZiMWI5OTYxMDhiZDRhYjExY2Vi
ZTYyOTkzNmRlZThiZmUwMi4uNmI0MjA5ODUxYmE2MzEyYzYyZDE5MzY2OWIwZDQ1YzMyMzliNWY3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcApAQCAtNzYsNiArNzYsMTEgQEAgUGFnZUdy
b3VwOjp+UGFnZUdyb3VwKCkKICAgICByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogfQogCitQYXNz
T3duUHRyPFBhZ2VHcm91cD4gUGFnZUdyb3VwOjpjcmVhdGUoUGFnZSogcGFnZSkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VHcm91cChwYWdlKSk7Cit9CisKIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIFBhZ2VHcm91cCo+IFBhZ2VHcm91cE1hcDsKIHN0YXRpYyBQYWdlR3JvdXBNYXAq
IHBhZ2VHcm91cHMgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VH
cm91cC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCA4YjYyMzY4YmI3
NGJmNTJjNzc4MjYyMTE1NzQyODlkZmJjZWNkZmQzLi4xY2M2NDQwYTVlMzA4OGQ0ODg2N2JjMzc5
MzJmMmU3MTA1ZTAwNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKQEAgLTQ5LDYgKzQ5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYWdlR3JvdXAoUGFnZSopOwogICAgICAg
ICB+UGFnZUdyb3VwKCk7CiAKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZUdyb3VwPiBj
cmVhdGUoUGFnZSopOwogICAgICAgICBzdGF0aWMgUGFnZUdyb3VwKiBwYWdlR3JvdXAoY29uc3Qg
U3RyaW5nJiBncm91cE5hbWUpOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIGNsb3NlTG9jYWxTdG9y
YWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDZjM2EyYTViZmY4MDZiZTQ2Mjhj
YzEyZTFhMWQwZjEzNzQyMjgzOTAuLjM5OGQ5MzQ1ODhhZjljZmU0MDllYTQ3Y2VjMTA2MDU1MWE3
YjJhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0yMzgsNiArMjM4LDExIEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIEF0b21pY1N0cmluZzo6aW5pdCgpOwog
fQogCitQYXNzT3duUHRyPFNldHRpbmdzPiBTZXR0aW5nczo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCit7
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTZXR0aW5ncyhwYWdlKSk7Cit9IAorCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNldHRpbmdzOjpzdGFuZGFyZEZvbnRGYW1pbHkoVVNjcmlwdENvZGUgc2Ny
aXB0KSBjb25zdAogewogICAgIHJldHVybiBnZXRHZW5lcmljRm9udEZhbWlseUZvclNjcmlwdCht
X3N0YW5kYXJkRm9udEZhbWlseU1hcCwgc2NyaXB0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRl
eCA4ZjQ0MjIyZmMxZTFhMGE5OWNlZmFiMTYwM2QwYmNhYzc3ZTBjMTEzLi41MGY2Y2MxMjJiMTk0
NmI1ZmM1Njg4NWU1YTFiOWMwNDU5MDc5YzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC03
MCw2ICs3MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNl
dHRpbmdzKFBhZ2UqKTsKIAorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxTZXR0aW5ncz4gY3Jl
YXRlKFBhZ2UqKTsKKwogICAgICAgICB2b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBB
dG9taWNTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKICAgICAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBzdGFuZGFyZEZvbnRGYW1pbHkoVVNjcmlwdENvZGUgPSBVU0NSSVBU
X0NPTU1PTikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKaW5kZXggOTYw
NWRkM2RkNDQ5OGY5ZWNmNzAyNTk2MjRiNGQwODg1NWI3NTkwMy4uNjliMWNlNTljZGQ4ZWU5NTkw
ZDFiNTE0MDFiN2I4NzBjYjdiNDAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hJbnB1dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAK
QEAgLTUxLDYgKzUxLDExIEBAIFNwZWVjaElucHV0Ojp+U3BlZWNoSW5wdXQoKQogICAgIG1fY2xp
ZW50LT5zZXRMaXN0ZW5lcigwKTsKIH0KIAorUGFzc093blB0cjxTcGVlY2hJbnB1dD4gU3BlZWNo
SW5wdXQ6OmNyZWF0ZShTcGVlY2hJbnB1dENsaWVudCogY2xpZW50KQoreworICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgU3BlZWNoSW5wdXQoY2xpZW50KSk7Cit9CisKIGludCBTcGVlY2hJbnB1dDo6
cmVnaXN0ZXJMaXN0ZW5lcihTcGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKIHsKICNpZiBk
ZWZpbmVkKERFQlVHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCmluZGV4IDUyZDZjMDM1NmY5
YmZkNmQzOGNjNDk5N2I5Nzg4OGM1ZDc4YjljNzMuLjU4NmY2MjQxZWRmOGFlMDcyMDVhZTNjYmU1
YjUyYjNjMzE2MjJmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5w
dXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJTcGVlY2hJbnB1dExpc3RlbmVyLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTMsNiArNTQsOCBAQCBwdWJsaWM6
CiAgICAgU3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5TcGVl
Y2hJbnB1dCgpOwogCisgICAgc3RhdGljIFBhc3NPd25QdHI8U3BlZWNoSW5wdXQ+IGNyZWF0ZShT
cGVlY2hJbnB1dENsaWVudCopOworCiAgICAgLy8gR2VuZXJhdGVzIGEgdW5pcXVlIElEIGZvciB0
aGUgZ2l2ZW4gbGlzdGVuZXIgdG8gYmUgdXNlZCBmb3Igc3BlZWNoIHJlcXVlc3RzLgogICAgIC8v
IFRoaXMgc2hvdWxkIGJlIHRoZSBmaXJzdCBjYWxsIG1hZGUgYnkgbGlzdGVuZXJzIGJlZm9yZSBh
bnl0aGluZyBlbHNlLgogICAgIGludCByZWdpc3Rlckxpc3RlbmVyKFNwZWVjaElucHV0TGlzdGVu
ZXIqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119250</attachid>
            <date>2011-12-14 10:56:27 -0800</date>
            <delta_ts>2011-12-14 13:23:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74457-20111214105625.patch</filename>
            <type>text/plain</type>
            <size>31550</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IxZWZhMjM2Mjg2NjY1
OGUyOTc2MjJjYjkzZDRjYTI2MDAxYzc2Ni4uNTAwMmMyYTkyMTUwODJkZDc5MzIzYjYxYzQ5MTg3
MzI1Y2M0MTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDExLTEyLTEzICBHcmVn
IEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIENoYW5nZSBhZG9wdFB0
cihuZXcgLi4uKSB0byAuLi46OmNyZWF0ZSBpbiBQYWdlLmNwcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSk6
CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20v
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ2FyZXRDb250cm9sbGVyOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRy
b2xsZXI6OmNyZWF0ZSk6CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oOgorICAgICAgICAqIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmlj
YXRpb25Db250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAg
ICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9E
cmFnQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdl
L0ZvY3VzQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToK
KyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OmluaXRHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hJbnB1
dCk6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZUdyb3VwOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmg6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Y3JlYXRlKToK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YWdlL1NwZWVjaElucHV0Lmg6CisKIDIwMTEtMTItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEtpbGxSaW5nTm9uZS5jcHAgdG8gTWFjIGJ1
aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IGNkZWI5ZDAyY2ExNTBlNmU4MmUxZmRlYzZlOThhMzgwYTQ3NzYyZWQuLmQ3YWMz
MDU5ZjdkMWU0OWEyZmRiMTRjMTk1NGJkM2M3ZGE1ZGQ2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKQEAgLTQ1LDYgKzQ1LDExIEBAIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXI6On5EZXZpY2VNb3Rpb25Db250cm9sbGVyKCkKICAgICBtX2NsaWVu
dC0+ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPERl
dmljZU1vdGlvbkNvbnRyb2xsZXI+IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShEZXZp
Y2VNb3Rpb25DbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoY2xpZW50KSk7Cit9CisKIHZvaWQgRGV2aWNlTW90aW9uQ29udHJv
bGxlcjo6dGltZXJGaXJlZChUaW1lcjxEZXZpY2VNb3Rpb25Db250cm9sbGVyPiogdGltZXIpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKaW5kZXggZTcxNTY0YzgxNmEwY2Iy
MWU2ZDgzMmJiNWI4YjljNGJlNWU0MDM0Mi4uYmI4Y2NhOTYxMjQ2MzVmMDdmMzBjNGU0MmVjM2Ix
OWFkNjU2MGRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxl
ci5oCkBAIC0zNyw5ICszNywxMCBAQCBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7CiAKIGNsYXNz
IERldmljZU1vdGlvbkNvbnRyb2xsZXIgewogcHVibGljOgotICAgIERldmljZU1vdGlvbkNvbnRy
b2xsZXIoRGV2aWNlTW90aW9uQ2xpZW50Kik7CiAgICAgfkRldmljZU1vdGlvbkNvbnRyb2xsZXIo
KTsKIAorICAgIHN0YXRpYyBQYXNzT3duUHRyPERldmljZU1vdGlvbkNvbnRyb2xsZXI+IGNyZWF0
ZShEZXZpY2VNb3Rpb25DbGllbnQqKTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93
Kik7CiAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKICAgICB2b2lkIHJlbW92
ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKQEAgLTUyLDYgKzUzLDggQEAgcHVibGljOgogICAg
IGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAKIHBy
aXZhdGU6CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlcihEZXZpY2VNb3Rpb25DbGllbnQqKTsK
KwogICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxEZXZpY2VNb3Rpb25Db250cm9sbGVyPiopOwog
ICAgIAogICAgIERldmljZU1vdGlvbkNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDk1M2JlNTYx
M2E1OWZlNWZiYTVhYmY3OGVkNjk1NmQxNDEyZTMwYWEuLjY4NjgzZmQwNTA2M2ZjOGNiODU2YzNk
MzBiMmUyZTRlYTkzYzQyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKQogICAgIG1fY2xp
ZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIH0KIAorUGFzc093
blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
cGFnZSwgY2xpZW50KSk7Cit9CisKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp0
aW1lckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4qIHRpbWVyKQogewog
ICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRleCBiYmVhNmQw
NTA1M2ZhMzVjNmQ0Y2FlYmE0NDFhMTAzMTU1NzY5MjI3Li5hZjQ0ZTk3Y2ZhNTJmMWE4NTRmMjlh
NmYyYmJhN2Q3MDUwODljMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0zOSw5ICszOSwxMCBAQCBjbGFzcyBQYWdlOwogCiBj
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgewogcHVibGljOgotICAgIERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKICAg
ICB+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CiAKKyAgICBzdGF0aWMgUGFzc093blB0
cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgRGV2aWNlT3JpZW50
YXRpb25DbGllbnQqKTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7CiAgICAg
dm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKICAgICB2b2lkIHJlbW92ZUFsbExpc3Rl
bmVycyhET01XaW5kb3cqKTsKQEAgLTU0LDYgKzU1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNB
Y3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAKIHByaXZhdGU6Cisg
ICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqLCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCopOworCiAgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcj4qKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggY2IxZjk1N2QxYTRlNTY3ZDNjYjMwN2Q5Yzk5YWRlNjE0
NjMwYzVhYS4uNzUyZjc5ZjhlYjcxOTc5ODcwMDg5M2E0YjA0MGVmY2I2OTE5MzBhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTkwLDYgKzkwLDExIEBA
IERyYWdDYXJldENvbnRyb2xsZXI6OkRyYWdDYXJldENvbnRyb2xsZXIoKQogewogfQogCitQYXNz
T3duUHRyPERyYWdDYXJldENvbnRyb2xsZXI+IERyYWdDYXJldENvbnRyb2xsZXI6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEcmFnQ2FyZXRDb250cm9sbGVyKTsKK30KKwog
Ym9vbCBEcmFnQ2FyZXRDb250cm9sbGVyOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGlzUmljaGx5RWRpdGFibGVQb3NpdGlvbihtX3Bvc2l0aW9uLmRlZXBF
cXVpdmFsZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IDgwZGFkMmRhMWE1NTI3NGJjY2E0NWQyYTdlZTRlOTUxMjcyNDI1MWUuLjExNGU3N2Q4MjVkMzg2
ZTQ0YWQ5MDYwNTViNTI5YWZiM2E0MzllODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgRHJhZ0NhcmV0Q29udHJvbGxlciA6
IHByaXZhdGUgQ2FyZXRCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmFnQ2FyZXRD
b250cm9sbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBE
cmFnQ2FyZXRDb250cm9sbGVyKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8RHJhZ0NhcmV0Q29u
dHJvbGxlcj4gY3JlYXRlKCk7CiAKICAgICBSZW5kZXJPYmplY3QqIGNhcmV0UmVuZGVyZXIoKSBj
b25zdDsKICAgICB2b2lkIHBhaW50RHJhZ0NhcmV0KEZyYW1lKiwgR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3Q7CkBA
IC0xMDAsNiArMTAwLDggQEAgcHVibGljOgogICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9k
ZSopOwogCiBwcml2YXRlOgorICAgIERyYWdDYXJldENvbnRyb2xsZXIoKTsKKwogICAgIFZpc2li
bGVQb3NpdGlvbiBtX3Bvc2l0aW9uOwogfTsKIApAQCAtMzMxLDQgKzMzMywzIEBAIHZvaWQgc2hv
d1RyZWUoY29uc3QgV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24qKTsKICNlbmRpZgogCiAjZW5kaWYg
Ly8gRnJhbWVTZWxlY3Rpb25faAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5jcHAKaW5kZXggYTlhYmIxMDViZTI3MWRhYjUzZmI5MTQxMTNmM2Rk
N2M0N2I5NWUwNC4uZDg5YzlhNTUwYjc4NzA2OTgzZjlkNGYzZWYzZGEyYzlmMGFiZGNiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcApA
QCAtNDQsNiArNDQsMTEgQEAgQmFja0ZvcndhcmRDb250cm9sbGVyOjp+QmFja0ZvcndhcmRDb250
cm9sbGVyKCkKIHsKIH0KIAorUGFzc093blB0cjxCYWNrRm9yd2FyZENvbnRyb2xsZXI+IEJhY2tG
b3J3YXJkQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIFBhc3NSZWZQdHI8QmFja0Zvcndh
cmRMaXN0PiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCYWNrRm9yd2FyZENv
bnRyb2xsZXIocGFnZSwgY2xpZW50KSk7Cit9CisKIGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVy
OjpjYW5Hb0JhY2tPckZvcndhcmQoaW50IGRpc3RhbmNlKSBjb25zdAogewogICAgIHJldHVybiBt
X3BhZ2UtPmNhbkdvQmFja09yRm9yd2FyZChkaXN0YW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaAppbmRleCBhYzU3ZmI5NzYwZmRjNTBlODQy
NTI2MDI0YmYyNDQ4NjMzZGE5YmVjLi4zNzk2MjhhOTBjZTBjZTAwYmMyMWQ2ZGY1MjdlNjA1Njhl
NDQxYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9s
bGVyLmgKQEAgLTM5LDkgKzM5LDEwIEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBCYWNrRm9yd2FyZENv
bnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJhY2tGb3J3YXJkQ29udHJvbGxl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEJhY2tGb3J3YXJkQ29u
dHJvbGxlcihQYWdlKiwgUGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+KTsKICAgICB+QmFja0Zv
cndhcmRDb250cm9sbGVyKCk7CiAKKyAgICBzdGF0aWMgUGFzc093blB0cjxCYWNrRm9yd2FyZENv
bnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgUGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+KTsKKwog
ICAgIEJhY2tGb3J3YXJkTGlzdCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQuZ2V0
KCk7IH0KIAogICAgIGJvb2wgY2FuR29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgY29uc3Q7
CkBAIC03MCw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtQYWdlc0ZvckZ1bGxTdHls
ZVJlY2FsYygpOwogCiBwcml2YXRlOgorICAgIEJhY2tGb3J3YXJkQ29udHJvbGxlcihQYWdlKiwg
UGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+KTsKKwogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBS
ZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBtX2NsaWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZjBkOGZkNWE2OGQwNjAy
NGUxYTdkMzdhYTM2MGM5N2Q1NDVkYWZjMC4uYTljNzE5ZWY2ZDA0NjBkZjRlZWI5NWM2ZjliNmVj
ZTdjMzM1NTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMTYwLDYgKzE2MCwxMSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+
SW5zcGVjdG9yQ29udHJvbGxlcigpCiAgICAgQVNTRVJUKCFtX2luc3BlY3RvckNsaWVudCk7CiB9
CiAKK1Bhc3NPd25QdHI8SW5zcGVjdG9yQ29udHJvbGxlcj4gSW5zcGVjdG9yQ29udHJvbGxlcjo6
Y3JlYXRlKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQoreworICAgIHJldHVy
biBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKwog
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCkKIHsKICAg
ICBkaXNjb25uZWN0RnJvbnRlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDA0OWUyNjA0Zjk5OTgyNWY1YmU5YzFiODJjYzlmMjk1
MDE2MDgwMTUuLjI1NzViMzhhNTgzMDM3NDA2ZGRlNTczOWZmMGEwZjc4ZTNjMDcxZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjMs
OCArNjMsMTAgQEAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSW5zcGVjdG9yQ29udHJvbGxlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiwgSW5zcGVjdG9yQ2xp
ZW50Kik7CiAgICAgfkluc3BlY3RvckNvbnRyb2xsZXIoKTsKKworICAgIHN0YXRpYyBQYXNzT3du
UHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgSW5zcGVjdG9yQ2xpZW50Kik7
CisKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKIAogICAgIGJvb2wgZW5hYmxl
ZCgpIGNvbnN0OwpAQCAtMTA0LDYgKzEwNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc291
cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhpbnQgbWF4aW11bVJlc291cmNlc0NvbnRl
bnRTaXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwogCiBwcml2YXRl
OgorICAgIEluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSosIEluc3BlY3RvckNsaWVudCopOworCiAg
ICAgZnJpZW5kIGNsYXNzIFBvc3RXb3JrZXJOb3RpZmljYXRpb25Ub0Zyb250ZW5kVGFzazsKICAg
ICBmcmllbmQgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGF0aW9uRm9yUGFnZShQYWdl
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKaW5kZXggNTVi
OThlOTcxMDgwYjVmNjQwNTQ2YjI2NjMzMTYxZDQ5ODM1ZjljMC4uNmIwM2RjYWZkMjdhYTg3OGY5
OThlMTVmNjQ2ZjAwYTk1ZGFhZGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHAKQEAgLTgxLDYgKzgxLDExIEBAIFByb2dyZXNzVHJhY2tlcjo6flByb2dyZXNz
VHJhY2tlcigpCiAgICAgZGVsZXRlQWxsVmFsdWVzKG1fcHJvZ3Jlc3NJdGVtcyk7CiB9CiAKK1Bh
c3NPd25QdHI8UHJvZ3Jlc3NUcmFja2VyPiBQcm9ncmVzc1RyYWNrZXI6OmNyZWF0ZSgpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQcm9ncmVzc1RyYWNrZXIpOworfQorCiBkb3VibGUgUHJv
Z3Jlc3NUcmFja2VyOjplc3RpbWF0ZWRQcm9ncmVzcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
cHJvZ3Jlc3NWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVz
c1RyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaAppbmRl
eCBlYTVmN2Y5ZjhmYThmZTZkMmRjYmQxMTQ5ZWE5NzlhN2RlNzU1MjViLi40NzQ0OTgzYTk1NWVk
OTE4NzM4ZWViZTkxOTFjNGVlM2ZiZjQ5NmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dy
ZXNzVHJhY2tlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFByb2dyZXNzVHJhY2tlcl9o
CiAjZGVmaW5lIFByb2dyZXNzVHJhY2tlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzksOSArNDAsOSBAQCBzdHJ1Y3QgUHJvZ3Jlc3NJ
dGVtOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
cm9ncmVzc1RyYWNrZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQ
cm9ncmVzc1RyYWNrZXIoKTsKICAgICB+UHJvZ3Jlc3NUcmFja2VyKCk7Ci0gICAgCisKKyAgICBz
dGF0aWMgUGFzc093blB0cjxQcm9ncmVzc1RyYWNrZXI+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyB1
bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKIAogICAgIGRvdWJsZSBlc3Rp
bWF0ZWRQcm9ncmVzcygpIGNvbnN0OwpAQCAtNTcsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgbG9u
ZyBsb25nIHRvdGFsQnl0ZXNSZWNlaXZlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxCeXRlc1Jl
Y2VpdmVkOyB9CiAKIHByaXZhdGU6CisgICAgUHJvZ3Jlc3NUcmFja2VyKCk7CisKICAgICB2b2lk
IHJlc2V0KCk7CiAgICAgdm9pZCBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IGFjODBhNTIwOWQ4MGEwZDEzODE4NjJiZDgwZjYyMjBjYzI3OGQ2ZDguLjJl
NzYzMTMwYjMyMmY4NjY3NTgyYmYwMTdhNjY5MThmMGM2NjA0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCiAjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw2ICs0MywxMSBAQCBOb3RpZmljYXRpb25Db250
cm9sbGVyOjp+Tm90aWZpY2F0aW9uQ29udHJvbGxlcigpCiB7CiB9CiAKK1Bhc3NPd25QdHI8Tm90
aWZpY2F0aW9uQ29udHJvbGxlcj4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2Uq
IHBhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlciogY2xpZW50KQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgTm90aWZpY2F0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJv
bGxlci5oCmluZGV4IDNmYWViY2YyMjJlOWRiMmZkNTk1ZGRkNTMyYmU1YmE2ZGQ2MTE1OGIuLmE5
NThhMDU3YWJhOWM0MjEyNWI4ZGMxZTZhZjEzNzQ2MjUxODc1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIAorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDEyICszOSwxNSBAQCBjbGFzcyBQYWdlOwogY2xhc3MgTm90aWZpY2F0
aW9uQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZpY2F0aW9uQ29u
dHJvbGxlcik7CiBwdWJsaWM6Ci0gICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcihQYWdlKiwgTm90
aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAgfk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKTsKLSAg
ICAKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0
ZShQYWdlKiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CisKICAgICBOb3RpZmljYXRpb25QcmVz
ZW50ZXIqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAgICAgCiBwcml2YXRlOgorICAg
IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwor
CiAgICAgUGFnZSogbV9wYWdlOwogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9jbGllbnQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDk0Y2RkOWM1ZmFhZTNiZTk0NGJlOTE5MTZi
YTY4YWZiNjQ4MTRhOTAuLjI4MmY4NWRkZThmZWFhY2Q4NTU2OGQzOWY0NzkxZDZiODYyYTNmZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTcxLDYgKzcxLDExIEBAIENocm9tZTo6fkNocm9t
ZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPENo
cm9tZT4gQ2hyb21lOjpjcmVhdGUoUGFnZSogcGFnZSwgQ2hyb21lQ2xpZW50KiBjbGllbnQpCit7
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDaHJvbWUocGFnZSwgY2xpZW50KSk7Cit9CisKIHZv
aWQgQ2hyb21lOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwg
Ym9vbCBpbW1lZGlhdGUpCiB7CiAgICAgbV9jbGllbnQtPmludmFsaWRhdGVSb290Vmlldyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYjNmMDg3NDBmOTQ3NDky
OTMyMjA4ODNmZGEyZmRkYjU5YmU4NjU3OC4uMzM3ODQ2ODljYzFmYzg0NDdmOGY5MGEwOGQ4ODdk
ZjNmMTNjMGQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC01OSw5ICs1OSwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCiAgICAgY2xhc3MgQ2hyb21lIDogcHVibGljIEhvc3RXaW5kb3cg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgQ2hyb21lKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKICAg
ICAgICAgfkNocm9tZSgpOwogCisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPENocm9tZT4gY3Jl
YXRlKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKKwogICAgICAgICBDaHJvbWVDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgLy8gSG9zdFdpbmRvdyBtZXRob2Rz
LgpAQCAtMTgyLDYgKzE4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAg
cHJpdmF0ZToKKyAgICAgICAgQ2hyb21lKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKKwogICAgICAg
ICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIENocm9tZUNsaWVudCogbV9jbGllbnQ7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCAz
MTEzNDQ1NDBkODg2NjY0ZDNkNWMzZjk5YjM2OWE4NjI3NzU0YTZlLi5iMjgzNTUyY2E2MGNmOTg5
YTY1YjgxZjk5NmU1NTk0YTc4MjQwOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC04Nyw2ICs4NywxMSBAQCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6On5Db250ZXh0TWVudUNvbnRyb2xsZXIoKQogICAgIG1fY2xpZW50LT5jb250ZXh0TWVu
dURlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPENvbnRleHRNZW51Q29udHJvbGxlcj4gQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgQ29udGV4dE1lbnVDbGllbnQq
IGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRNZW51Q29udHJvbGxl
cihwYWdlLCBjbGllbnQpKTsKK30KKwogdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNsZWFy
Q29udGV4dE1lbnUoKQogewogICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IGU2YTBhMDA0MTkwYTAyY2Y5
ZGRhNjllYjBkMTYyY2Q3MzgyZGJiNjYuLjM1ODhmMDM3MTgyOTRlMTE1YmUwZWEzNDJiY2I5ZDY4
OWEzMWY4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
aApAQCAtNDQsOSArNDQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENvbnRl
eHRNZW51Q29udHJvbGxlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRN
ZW51Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAg
ICAgICAgQ29udGV4dE1lbnVDb250cm9sbGVyKFBhZ2UqLCBDb250ZXh0TWVudUNsaWVudCopOwog
ICAgICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CiAKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8Q29udGV4dE1lbnVDb250cm9sbGVyPiBjcmVhdGUoUGFnZSosIENvbnRleHRNZW51Q2xp
ZW50Kik7CisKICAgICAgICAgQ29udGV4dE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRNZW51KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0TWVudS5nZXQoKTsgfQpAQCAtNjUsNiArNjYsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1
bHQoKSB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIAogICAgIHByaXZhdGU6CisgICAgICAg
IENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlKiwgQ29udGV4dE1lbnVDbGllbnQqKTsKKwogICAg
ICAgICBQYXNzT3duUHRyPENvbnRleHRNZW51PiBjcmVhdGVDb250ZXh0TWVudShFdmVudCopOwog
ICAgICAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCopOwogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMzEwZmUwYWYzYTI2OWRkOTMwNTMyMjI4
NTYyMGZmN2JjMDMyYTg2Zi4uNzhhYjQ1Mjc2ODY0ZDk3NzRhYTE0NTlmY2U3NzJjNzM3NmEyZjFj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEwMiw2ICsxMDIs
MTEgQEAgRHJhZ0NvbnRyb2xsZXI6On5EcmFnQ29udHJvbGxlcigpCiAgICAgbV9jbGllbnQtPmRy
YWdDb250cm9sbGVyRGVzdHJveWVkKCk7CiB9CiAKK1Bhc3NPd25QdHI8RHJhZ0NvbnRyb2xsZXI+
IERyYWdDb250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgRHJhZ0NsaWVudCogY2xpZW50KQor
eworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRHJhZ0NvbnRyb2xsZXIocGFnZSwgY2xpZW50KSk7
Cit9CisKIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21l
bnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEqIGRyYWdEYXRhLCBGcmFtZSogZnJhbWUsIFJlZlB0cjxS
YW5nZT4gY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDJlMjVmZDg1YjNjYmM0YTdjN2FmODVhNDQwMDZi
OTVjZjQxMmRmZTQuLjc0ZDYxNzgyZThmNjllNjQwMTM2OWUwOTFlNWJmYmZhNmE2NTk1YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTUzLDggKzUzLDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEcmFnQ29udHJvbGxlciB7CiAgICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKERyYWdDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgcHVibGljOgotICAgICAgICBEcmFnQ29udHJvbGxlcihQYWdlKiwgRHJhZ0NsaWVudCop
OwogICAgICAgICB+RHJhZ0NvbnRyb2xsZXIoKTsKKworICAgICAgICBzdGF0aWMgUGFzc093blB0
cjxEcmFnQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBEcmFnQ2xpZW50Kik7CisKICAgICAgICAg
RHJhZ0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgICAg
ICBEcmFnU2Vzc2lvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOwpAQCAtOTMsNiArOTUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBEcmFnSW1hZ2VB
bHBoYTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIERyYWdDb250cm9sbGVyKFBhZ2UqLCBEcmFn
Q2xpZW50Kik7CisKICAgICAgICAgYm9vbCBkaXNwYXRjaFRleHRJbnB1dEV2ZW50Rm9yKEZyYW1l
KiwgRHJhZ0RhdGEqKTsKICAgICAgICAgYm9vbCBjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSopOwog
ICAgICAgICBib29sIGNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA4ZDg4MWEwMTA2NmMzMzcyNDBmZGFhYWU2NzZi
YTBmNzkzZmE1Y2YyLi4zOTVhOTEyOGNmNjExNDZjNWNhZTBkNWRiYjViMjk1ODYwOGQ5ODA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC05MSw2ICs5MSwxMSBA
QCBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlKiBwYWdlKQogewogfQogCitQ
YXNzT3duUHRyPEZvY3VzQ29udHJvbGxlcj4gRm9jdXNDb250cm9sbGVyOjpjcmVhdGUoUGFnZSog
cGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZvY3VzQ29udHJvbGxlcihwYWdlKSk7
Cit9CisKIHZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxG
cmFtZT4gZnJhbWUpCiB7CiAgICAgQVNTRVJUKCFmcmFtZSB8fCBmcmFtZS0+cGFnZSgpID09IG1f
cGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAppbmRleCA1ZjliZGZhOTc4
NDA2YjdjZDUzZjFmNzRhMzg4Nzg2NTNiY2FlYjNkLi42ODgwYTFjNDU1ZjI2ZGFkZGNiMmNhYTRi
N2YzYTcxOWNkNWQxM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgY2xhc3MgVHJlZVNjb3BlOwogY2xhc3MgRm9jdXNDb250cm9sbGVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBGb2N1c0NvbnRyb2xsZXIoUGFnZSopOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPEZvY3VzQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqKTsKIAogICAgIHZv
aWQgc2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+KTsKICAgICBGcmFtZSogZm9jdXNl
ZEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KQEAgLTY2LDYg
KzY2LDggQEAgcHVibGljOgogICAgIGJvb2wgdHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93
Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7
CiAKIHByaXZhdGU6CisgICAgRm9jdXNDb250cm9sbGVyKFBhZ2UqKTsKKwogICAgIGJvb2wgYWR2
YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwog
ICAgIGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uLCBLZXli
b2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYjk1MzNjYTNiNTAzNmRjOTAyZjgxNTI3
YTJhYjQ1ZGU2NTkzZjJkYi4uOTY5NGE5OWM0NTY2NzI2NjVlZWYwNTdmZWVjZDgzMmRkM2EyNWZj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcApA
QCAtNDcsNiArNDcsMTEgQEAgR2VvbG9jYXRpb25Db250cm9sbGVyOjp+R2VvbG9jYXRpb25Db250
cm9sbGVyKCkKICAgICAgICAgbV9jbGllbnQtPmdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CiB9CiAK
K1Bhc3NPd25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6
OmNyZWF0ZShQYWdlKiBwYWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xpZW50KQoreworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25Db250cm9sbGVyKHBhZ2UsIGNsaWVudCkpOwor
fQorCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6YWRkT2JzZXJ2ZXIoR2VvbG9jYXRpb24q
IG9ic2VydmVyLCBib29sIGVuYWJsZUhpZ2hBY2N1cmFjeSkKIHsKICAgICAvLyBUaGlzIG1heSBi
ZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBvYnNlcnZlciwgdGhvdWdoIHJl
bW92ZU9ic2VydmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5oCmluZGV4IDdjNTVjZTI0YTRmNTYyYzZmOTlhMDcyNzMwNzU2OTkwNDcxMzUxZTUuLjA2MTFk
YzMwYmQzNDE2NTFkZmE5NWNhMDQyMzQ5MTY2ZjYyYmY0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaApAQCAtNDMsOSArNDMsMTAgQEAgY2xhc3MgUGFn
ZTsKIGNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoR2VvbG9jYXRpb25Db250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBHZW9sb2NhdGlvbkNvbnRy
b2xsZXIoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7CiAgICAgfkdlb2xvY2F0aW9uQ29udHJv
bGxlcigpOwogCisgICAgc3RhdGljIFBhc3NPd25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBj
cmVhdGUoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7CisKICAgICB2b2lkIGFkZE9ic2VydmVy
KEdlb2xvY2F0aW9uKiwgYm9vbCBlbmFibGVIaWdoQWNjdXJhY3kpOwogICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoR2VvbG9jYXRpb24qKTsKIApAQCAtNjAsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAg
R2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKIHByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKFBhZ2UqLCBHZW9sb2NhdGlvbkNsaWVudCop
OworCiAgICAgUGFnZSogbV9wYWdlOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBtX2NsaWVudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzcyMDBmZTIyNzRjODMyOGU1NzBlNzAzZjg1ZWIwMTM1
NzJkMjBiNi4uYTY5MzdhMWQwYzkyMmJlZTNhYjRiODU1MzQ3ZDNiMmMzMzk0OWU5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0xMjAsMjcgKzEyMCwyNyBAQCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cihGcmFtZSogZnJhbWUpCiB9CiAKIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRz
KQotICAgIDogbV9jaHJvbWUoYWRvcHRQdHIobmV3IENocm9tZSh0aGlzLCBwYWdlQ2xpZW50cy5j
aHJvbWVDbGllbnQpKSkKLSAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihhZG9wdFB0cihuZXcg
RHJhZ0NhcmV0Q29udHJvbGxlcikpCisgICAgOiBtX2Nocm9tZShDaHJvbWU6OmNyZWF0ZSh0aGlz
LCBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQpKQorICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVy
KERyYWdDYXJldENvbnRyb2xsZXI6OmNyZWF0ZSgpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
Ci0gICAgLCBtX2RyYWdDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBEcmFnQ29udHJvbGxlcih0aGlz
LCBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkpCisgICAgLCBtX2RyYWdDb250cm9sbGVyKERyYWdD
b250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCkpCiAjZW5kaWYK
LSAgICAsIG1fZm9jdXNDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBGb2N1c0NvbnRyb2xsZXIodGhp
cykpKQorICAgICwgbV9mb2N1c0NvbnRyb2xsZXIoRm9jdXNDb250cm9sbGVyOjpjcmVhdGUodGhp
cykpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29udHJv
bGxlcihhZG9wdFB0cihuZXcgQ29udGV4dE1lbnVDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRz
LmNvbnRleHRNZW51Q2xpZW50KSkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNs
aWVudCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9pbnNwZWN0b3JD
b250cm9sbGVyKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGll
bnRzLmluc3BlY3RvckNsaWVudCkpKQorICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQp
KQogI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICAsIG1f
Z2VvbG9jYXRpb25Db250cm9sbGVyKGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIo
dGhpcywgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQpKSkKKyAgICAsIG1fZ2VvbG9jYXRp
b25Db250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGll
bnRzLmdlb2xvY2F0aW9uQ2xpZW50KSkKICNlbmRpZgogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCi0gICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gYWRvcHRQdHIobmV3IERldmljZU1vdGlvbkNv
bnRyb2xsZXIocGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50KSkgOiBudWxscHRyKQotICAg
ICwgbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
ZGV2aWNlT3JpZW50YXRpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50KSkg
OiBudWxscHRyKQorICAgICwgbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmRldmljZU1vdGlvbkVuYWJsZWQoKSA/IERldmljZU1vdGlvbkNvbnRyb2xsZXI6
OmNyZWF0ZShwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpIDogbnVsbHB0cikKKyAgICAs
IG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRl
dmljZU9yaWVudGF0aW9uRW5hYmxlZCgpID8gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpj
cmVhdGUodGhpcywgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQpIDogbnVsbHB0
cikKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICwgbV9ub3RpZmljYXRp
b25Db250cm9sbGVyKGFkb3B0UHRyKG5ldyBOb3RpZmljYXRpb25Db250cm9sbGVyKHRoaXMsIHBh
Z2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCkpKQorICAgICwgbV9ub3RpZmljYXRpb25Db250
cm9sbGVyKE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5u
b3RpZmljYXRpb25DbGllbnQpKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAg
ICAsIG1fc3BlZWNoSW5wdXRDbGllbnQocGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQpCkBA
IC0xNDgsOSArMTQ4LDkgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAsIG1fdXNlck1lZGlhQ2xpZW50KHBhZ2VDbGll
bnRzLnVzZXJNZWRpYUNsaWVudCkKICNlbmRpZgotICAgICwgbV9zZXR0aW5ncyhhZG9wdFB0cihu
ZXcgU2V0dGluZ3ModGhpcykpKQotICAgICwgbV9wcm9ncmVzcyhhZG9wdFB0cihuZXcgUHJvZ3Jl
c3NUcmFja2VyKSkKLSAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBC
YWNrRm9yd2FyZENvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQp
KSkKKyAgICAsIG1fc2V0dGluZ3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fcHJv
Z3Jlc3MoUHJvZ3Jlc3NUcmFja2VyOjpjcmVhdGUoKSkKKyAgICAsIG1fYmFja0ZvcndhcmRDb250
cm9sbGVyKEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIG1fdGhlbWUoUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFn
ZSh0aGlzKSkKICAgICAsIG1fZWRpdG9yQ2xpZW50KHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCkK
ICAgICAsIG1fZnJhbWVDb3VudCgwKQpAQCAtMzg2LDcgKzM4Niw3IEBAIHZvaWQgUGFnZTo6aW5p
dEdyb3VwKCkKIHsKICAgICBBU1NFUlQoIW1fc2luZ2xlUGFnZUdyb3VwKTsKICAgICBBU1NFUlQo
IW1fZ3JvdXApOwotICAgIG1fc2luZ2xlUGFnZUdyb3VwID0gYWRvcHRQdHIobmV3IFBhZ2VHcm91
cCh0aGlzKSk7CisgICAgbV9zaW5nbGVQYWdlR3JvdXAgPSBQYWdlR3JvdXA6OmNyZWF0ZSh0aGlz
KTsKICAgICBtX2dyb3VwID0gbV9zaW5nbGVQYWdlR3JvdXAuZ2V0KCk7CiB9CiAKQEAgLTk2NSw3
ICs5NjUsNyBAQCBTcGVlY2hJbnB1dCogUGFnZTo6c3BlZWNoSW5wdXQoKQogewogICAgIEFTU0VS
VChtX3NwZWVjaElucHV0Q2xpZW50KTsKICAgICBpZiAoIW1fc3BlZWNoSW5wdXQuZ2V0KCkpCi0g
ICAgICAgIG1fc3BlZWNoSW5wdXQgPSBhZG9wdFB0cihuZXcgU3BlZWNoSW5wdXQobV9zcGVlY2hJ
bnB1dENsaWVudCkpOworICAgICAgICBtX3NwZWVjaElucHV0ID0gU3BlZWNoSW5wdXQ6OmNyZWF0
ZShtX3NwZWVjaElucHV0Q2xpZW50KTsKICAgICByZXR1cm4gbV9zcGVlY2hJbnB1dC5nZXQoKTsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDJjMDFmYjFiOTk2MTA4
YmQ0YWIxMWNlYmU2Mjk5MzZkZWU4YmZlMDIuLjZiNDIwOTg1MWJhNjMxMmM2MmQxOTM2NjliMGQ0
NWMzMjM5YjVmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAgLTc2LDYgKzc2LDEx
IEBAIFBhZ2VHcm91cDo6flBhZ2VHcm91cCgpCiAgICAgcmVtb3ZlQWxsVXNlckNvbnRlbnQoKTsK
IH0KIAorUGFzc093blB0cjxQYWdlR3JvdXA+IFBhZ2VHcm91cDo6Y3JlYXRlKFBhZ2UqIHBhZ2Up
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlR3JvdXAocGFnZSkpOworfQorCiB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBQYWdlR3JvdXAqPiBQYWdlR3JvdXBNYXA7CiBzdGF0aWMgUGFn
ZUdyb3VwTWFwKiBwYWdlR3JvdXBzID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKaW5kZXgg
OGI2MjM2OGJiNzRiZjUyYzc3ODI2MjExNTc0Mjg5ZGZiY2VjZGZkMy4uZDM5MTA0OWY2NWEwYzdl
ZjZiNzMyNWNhZmE3NzBkZmVkZWQ4MzRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCkBAIC00
Niw5ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUGFnZUdyb3VwKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgog
ICAgICAgICBQYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICAgICAgUGFnZUdyb3Vw
KFBhZ2UqKTsKICAgICAgICAgflBhZ2VHcm91cCgpOwogCisgICAgICAgIHN0YXRpYyBQYXNzT3du
UHRyPFBhZ2VHcm91cD4gY3JlYXRlKFBhZ2UqKTsKICAgICAgICAgc3RhdGljIFBhZ2VHcm91cCog
cGFnZUdyb3VwKGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lKTsKIAogICAgICAgICBzdGF0aWMgdm9p
ZCBjbG9zZUxvY2FsU3RvcmFnZSgpOwpAQCAtMTA4LDYgKzEwOCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIGNvbnN0IHsgcmV0
dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgUGFn
ZUdyb3VwKFBhZ2UqKTsKKwogICAgICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0
cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNlclN0eWxlQ2FjaGVJbkFsbEZyYW1lcygp
OwogICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNmMzYTJhNWJmZjgwNmJlNDYyOGNj
MTJlMWExZDBmMTM3NDIyODM5MC4uMzk4ZDkzNDU4OGFmOWNmZTQwOWVhNDdjZWMxMDYwNTUxYTdi
MmE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTIzOCw2ICsyMzgsMTEgQEAgU2V0
dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgQXRvbWljU3RyaW5nOjppbml0KCk7CiB9
CiAKK1Bhc3NPd25QdHI8U2V0dGluZ3M+IFNldHRpbmdzOjpjcmVhdGUoUGFnZSogcGFnZSkKK3sK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNldHRpbmdzKHBhZ2UpKTsKK30gCisKIGNvbnN0IEF0
b21pY1N0cmluZyYgU2V0dGluZ3M6OnN0YW5kYXJkRm9udEZhbWlseShVU2NyaXB0Q29kZSBzY3Jp
cHQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEdlbmVyaWNGb250RmFtaWx5Rm9yU2NyaXB0KG1f
c3RhbmRhcmRGb250RmFtaWx5TWFwLCBzY3JpcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4
IDhmNDQyMjJmYzFlMWEwYTk5Y2VmYWIxNjAzZDBiY2FjNzdlMGMxMTMuLjdhNGM5Zjk2YzBlOTEx
NGJkYzM1ODE3ZWY0MDQxOTBiNjgxNmQ4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTY4
LDcgKzY4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNldHRpbmdzIHsKICAg
ICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0dGluZ3MpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNldHRpbmdzKFBhZ2UqKTsKKyAgICAgICAgc3Rh
dGljIFBhc3NPd25QdHI8U2V0dGluZ3M+IGNyZWF0ZShQYWdlKik7CiAKICAgICAgICAgdm9pZCBz
ZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBV
U0NSSVBUX0NPTU1PTik7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc3RhbmRhcmRGb250
RmFtaWx5KFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pIGNvbnN0OwpAQCAtNTA0LDYgKzUw
NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwZXJUaWxlRHJhd2luZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3BlclRpbGVEcmF3aW5nRW5hYmxlZDsgfQogCiAgICAg
cHJpdmF0ZToKKyAgICAgICAgU2V0dGluZ3MoUGFnZSopOworCiAgICAgICAgIFBhZ2UqIG1fcGFn
ZTsKIAogICAgICAgICBTdHJpbmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dC5jcHAKaW5kZXggOTYwNWRkM2RkNDQ5OGY5ZWNmNzAyNTk2MjRiNGQw
ODg1NWI3NTkwMy4uNmE4NjIwYThmMmVjODJmNjY0N2ZhZjkxNDYyZGNlMzU2YzQ0N2ExOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50LmgiCiAjaW5j
bHVkZSAiU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNiArNTIsMTEgQEAgU3BlZWNoSW5wdXQ6
On5TcGVlY2hJbnB1dCgpCiAgICAgbV9jbGllbnQtPnNldExpc3RlbmVyKDApOwogfQogCitQYXNz
T3duUHRyPFNwZWVjaElucHV0PiBTcGVlY2hJbnB1dDo6Y3JlYXRlKFNwZWVjaElucHV0Q2xpZW50
KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTcGVlY2hJbnB1dChjbGllbnQp
KTsKK30KKwogaW50IFNwZWVjaElucHV0OjpyZWdpc3Rlckxpc3RlbmVyKFNwZWVjaElucHV0TGlz
dGVuZXIqIGxpc3RlbmVyKQogewogI2lmIGRlZmluZWQoREVCVUcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmgKaW5kZXggNTJkNmMwMzU2ZjliZmQ2ZDM4Y2M0OTk3Yjk3ODg4YzVkNzhiOWM3My4u
NmZlZTY1Y2ViNDE4YjYxNmQ1Y2M5ZmY2NDg0MjFhMDA4YzUyOGNmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXQuaApAQCAtNTAsOSArNTAsMTAgQEAgY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5l
cjsKIGNsYXNzIFNwZWVjaElucHV0IDogcHVibGljIFNwZWVjaElucHV0TGlzdGVuZXIgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNwZWVjaElucHV0KTsKIHB1YmxpYzoKLSAgICBTcGVlY2hJ
bnB1dChTcGVlY2hJbnB1dENsaWVudCopOwogICAgIHZpcnR1YWwgflNwZWVjaElucHV0KCk7CiAK
KyAgICBzdGF0aWMgUGFzc093blB0cjxTcGVlY2hJbnB1dD4gY3JlYXRlKFNwZWVjaElucHV0Q2xp
ZW50Kik7CisKICAgICAvLyBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQgZm9yIHRoZSBnaXZlbiBsaXN0
ZW5lciB0byBiZSB1c2VkIGZvciBzcGVlY2ggcmVxdWVzdHMuCiAgICAgLy8gVGhpcyBzaG91bGQg
YmUgdGhlIGZpcnN0IGNhbGwgbWFkZSBieSBsaXN0ZW5lcnMgYmVmb3JlIGFueXRoaW5nIGVsc2Uu
CiAgICAgaW50IHJlZ2lzdGVyTGlzdGVuZXIoU3BlZWNoSW5wdXRMaXN0ZW5lciopOwpAQCAtNzIs
NiArNzMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0
KGludCwgY29uc3QgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSYpOwogCiBwcml2YXRlOgorICAgIFNw
ZWVjaElucHV0KFNwZWVjaElucHV0Q2xpZW50Kik7CisKICAgICBTcGVlY2hJbnB1dENsaWVudCog
bV9jbGllbnQ7CiAgICAgSGFzaE1hcDxpbnQsIFNwZWVjaElucHV0TGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKICAgICBpbnQgbV9uZXh0TGlzdGVuZXJJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JGcm9udGVuZENsaWVudC5jcHAKaW5kZXggMDllMWQzN2NjOTJlMzIxYjgzNDRiYWY2OWM0Y2E0
NjljYzQyNGIzYy4uNDVjYWMxZjEyMDI2ZjE4YmRhM2RkMzcwZWM2N2Y5NTBkZGQ2MzExZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JGcm9udGVuZENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAKQEAgLTQwLDcgKzQw
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdlYlBh
Z2UqIHBhZ2UsIFdlYlBhZ2UqIGluc3BlY3RvclBhZ2UpCi0gICAgOiBJbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsKHBhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSwgaW5z
cGVjdG9yUGFnZS0+Y29yZVBhZ2UoKSwgYWRvcHRQdHIobmV3IFNldHRpbmdzKCkpKQorICAgIDog
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbChwYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCksIGluc3BlY3RvclBhZ2UtPmNvcmVQYWdlKCksIFNldHRpbmdzOjpjcmVhdGUo
KSkKICAgICAsIG1fcGFnZShwYWdlKQogewogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119283</attachid>
            <date>2011-12-14 13:23:48 -0800</date>
            <delta_ts>2011-12-20 16:24:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74457-20111214132347.patch</filename>
            <type>text/plain</type>
            <size>30699</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IxZWZhMjM2Mjg2NjY1
OGUyOTc2MjJjYjkzZDRjYTI2MDAxYzc2Ni4uNTAwMmMyYTkyMTUwODJkZDc5MzIzYjYxYzQ5MTg3
MzI1Y2M0MTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDExLTEyLTEzICBHcmVn
IEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIENoYW5nZSBhZG9wdFB0
cihuZXcgLi4uKSB0byAuLi46OmNyZWF0ZSBpbiBQYWdlLmNwcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSk6
CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20v
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ2FyZXRDb250cm9sbGVyOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRy
b2xsZXI6OmNyZWF0ZSk6CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oOgorICAgICAgICAqIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmlj
YXRpb25Db250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAg
ICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9E
cmFnQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdl
L0ZvY3VzQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToK
KyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OmluaXRHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hJbnB1
dCk6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZUdyb3VwOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmg6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6Y3JlYXRlKToK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YWdlL1NwZWVjaElucHV0Lmg6CisKIDIwMTEtMTItMTEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEtpbGxSaW5nTm9uZS5jcHAgdG8gTWFjIGJ1
aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IGNkZWI5ZDAyY2ExNTBlNmU4MmUxZmRlYzZlOThhMzgwYTQ3NzYyZWQuLmQ3YWMz
MDU5ZjdkMWU0OWEyZmRiMTRjMTk1NGJkM2M3ZGE1ZGQ2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKQEAgLTQ1LDYgKzQ1LDExIEBAIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXI6On5EZXZpY2VNb3Rpb25Db250cm9sbGVyKCkKICAgICBtX2NsaWVu
dC0+ZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPERl
dmljZU1vdGlvbkNvbnRyb2xsZXI+IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShEZXZp
Y2VNb3Rpb25DbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoY2xpZW50KSk7Cit9CisKIHZvaWQgRGV2aWNlTW90aW9uQ29udHJv
bGxlcjo6dGltZXJGaXJlZChUaW1lcjxEZXZpY2VNb3Rpb25Db250cm9sbGVyPiogdGltZXIpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKaW5kZXggZTcxNTY0YzgxNmEwY2Iy
MWU2ZDgzMmJiNWI4YjljNGJlNWU0MDM0Mi4uYmI4Y2NhOTYxMjQ2MzVmMDdmMzBjNGU0MmVjM2Ix
OWFkNjU2MGRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxl
ci5oCkBAIC0zNyw5ICszNywxMCBAQCBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7CiAKIGNsYXNz
IERldmljZU1vdGlvbkNvbnRyb2xsZXIgewogcHVibGljOgotICAgIERldmljZU1vdGlvbkNvbnRy
b2xsZXIoRGV2aWNlTW90aW9uQ2xpZW50Kik7CiAgICAgfkRldmljZU1vdGlvbkNvbnRyb2xsZXIo
KTsKIAorICAgIHN0YXRpYyBQYXNzT3duUHRyPERldmljZU1vdGlvbkNvbnRyb2xsZXI+IGNyZWF0
ZShEZXZpY2VNb3Rpb25DbGllbnQqKTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93
Kik7CiAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKICAgICB2b2lkIHJlbW92
ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKQEAgLTUyLDYgKzUzLDggQEAgcHVibGljOgogICAg
IGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAKIHBy
aXZhdGU6CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlcihEZXZpY2VNb3Rpb25DbGllbnQqKTsK
KwogICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxEZXZpY2VNb3Rpb25Db250cm9sbGVyPiopOwog
ICAgIAogICAgIERldmljZU1vdGlvbkNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDk1M2JlNTYx
M2E1OWZlNWZiYTVhYmY3OGVkNjk1NmQxNDEyZTMwYWEuLjY4NjgzZmQwNTA2M2ZjOGNiODU2YzNk
MzBiMmUyZTRlYTkzYzQyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKQogICAgIG1fY2xp
ZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIH0KIAorUGFzc093
blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
cGFnZSwgY2xpZW50KSk7Cit9CisKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp0
aW1lckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4qIHRpbWVyKQogewog
ICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRleCBiYmVhNmQw
NTA1M2ZhMzVjNmQ0Y2FlYmE0NDFhMTAzMTU1NzY5MjI3Li5hZjQ0ZTk3Y2ZhNTJmMWE4NTRmMjlh
NmYyYmJhN2Q3MDUwODljMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0zOSw5ICszOSwxMCBAQCBjbGFzcyBQYWdlOwogCiBj
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgewogcHVibGljOgotICAgIERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKICAg
ICB+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CiAKKyAgICBzdGF0aWMgUGFzc093blB0
cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgRGV2aWNlT3JpZW50
YXRpb25DbGllbnQqKTsKKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7CiAgICAg
dm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKICAgICB2b2lkIHJlbW92ZUFsbExpc3Rl
bmVycyhET01XaW5kb3cqKTsKQEAgLTU0LDYgKzU1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNB
Y3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAKIHByaXZhdGU6Cisg
ICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqLCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCopOworCiAgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcj4qKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggY2IxZjk1N2QxYTRlNTY3ZDNjYjMwN2Q5Yzk5YWRlNjE0
NjMwYzVhYS4uNzUyZjc5ZjhlYjcxOTc5ODcwMDg5M2E0YjA0MGVmY2I2OTE5MzBhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTkwLDYgKzkwLDExIEBA
IERyYWdDYXJldENvbnRyb2xsZXI6OkRyYWdDYXJldENvbnRyb2xsZXIoKQogewogfQogCitQYXNz
T3duUHRyPERyYWdDYXJldENvbnRyb2xsZXI+IERyYWdDYXJldENvbnRyb2xsZXI6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEcmFnQ2FyZXRDb250cm9sbGVyKTsKK30KKwog
Ym9vbCBEcmFnQ2FyZXRDb250cm9sbGVyOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGlzUmljaGx5RWRpdGFibGVQb3NpdGlvbihtX3Bvc2l0aW9uLmRlZXBF
cXVpdmFsZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IDgwZGFkMmRhMWE1NTI3NGJjY2E0NWQyYTdlZTRlOTUxMjcyNDI1MWUuLjExNGU3N2Q4MjVkMzg2
ZTQ0YWQ5MDYwNTViNTI5YWZiM2E0MzllODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgRHJhZ0NhcmV0Q29udHJvbGxlciA6
IHByaXZhdGUgQ2FyZXRCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmFnQ2FyZXRD
b250cm9sbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBE
cmFnQ2FyZXRDb250cm9sbGVyKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8RHJhZ0NhcmV0Q29u
dHJvbGxlcj4gY3JlYXRlKCk7CiAKICAgICBSZW5kZXJPYmplY3QqIGNhcmV0UmVuZGVyZXIoKSBj
b25zdDsKICAgICB2b2lkIHBhaW50RHJhZ0NhcmV0KEZyYW1lKiwgR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3Q7CkBA
IC0xMDAsNiArMTAwLDggQEAgcHVibGljOgogICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9k
ZSopOwogCiBwcml2YXRlOgorICAgIERyYWdDYXJldENvbnRyb2xsZXIoKTsKKwogICAgIFZpc2li
bGVQb3NpdGlvbiBtX3Bvc2l0aW9uOwogfTsKIApAQCAtMzMxLDQgKzMzMywzIEBAIHZvaWQgc2hv
d1RyZWUoY29uc3QgV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24qKTsKICNlbmRpZgogCiAjZW5kaWYg
Ly8gRnJhbWVTZWxlY3Rpb25faAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5jcHAKaW5kZXggYTlhYmIxMDViZTI3MWRhYjUzZmI5MTQxMTNmM2Rk
N2M0N2I5NWUwNC4uZDg5YzlhNTUwYjc4NzA2OTgzZjlkNGYzZWYzZGEyYzlmMGFiZGNiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcApA
QCAtNDQsNiArNDQsMTEgQEAgQmFja0ZvcndhcmRDb250cm9sbGVyOjp+QmFja0ZvcndhcmRDb250
cm9sbGVyKCkKIHsKIH0KIAorUGFzc093blB0cjxCYWNrRm9yd2FyZENvbnRyb2xsZXI+IEJhY2tG
b3J3YXJkQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIFBhc3NSZWZQdHI8QmFja0Zvcndh
cmRMaXN0PiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCYWNrRm9yd2FyZENv
bnRyb2xsZXIocGFnZSwgY2xpZW50KSk7Cit9CisKIGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVy
OjpjYW5Hb0JhY2tPckZvcndhcmQoaW50IGRpc3RhbmNlKSBjb25zdAogewogICAgIHJldHVybiBt
X3BhZ2UtPmNhbkdvQmFja09yRm9yd2FyZChkaXN0YW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaAppbmRleCBhYzU3ZmI5NzYwZmRjNTBlODQy
NTI2MDI0YmYyNDQ4NjMzZGE5YmVjLi4zNzk2MjhhOTBjZTBjZTAwYmMyMWQ2ZGY1MjdlNjA1Njhl
NDQxYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9s
bGVyLmgKQEAgLTM5LDkgKzM5LDEwIEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBCYWNrRm9yd2FyZENv
bnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJhY2tGb3J3YXJkQ29udHJvbGxl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEJhY2tGb3J3YXJkQ29u
dHJvbGxlcihQYWdlKiwgUGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+KTsKICAgICB+QmFja0Zv
cndhcmRDb250cm9sbGVyKCk7CiAKKyAgICBzdGF0aWMgUGFzc093blB0cjxCYWNrRm9yd2FyZENv
bnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgUGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+KTsKKwog
ICAgIEJhY2tGb3J3YXJkTGlzdCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQuZ2V0
KCk7IH0KIAogICAgIGJvb2wgY2FuR29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgY29uc3Q7
CkBAIC03MCw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtQYWdlc0ZvckZ1bGxTdHls
ZVJlY2FsYygpOwogCiBwcml2YXRlOgorICAgIEJhY2tGb3J3YXJkQ29udHJvbGxlcihQYWdlKiwg
UGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+KTsKKwogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBS
ZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBtX2NsaWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZjBkOGZkNWE2OGQwNjAy
NGUxYTdkMzdhYTM2MGM5N2Q1NDVkYWZjMC4uYTljNzE5ZWY2ZDA0NjBkZjRlZWI5NWM2ZjliNmVj
ZTdjMzM1NTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMTYwLDYgKzE2MCwxMSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+
SW5zcGVjdG9yQ29udHJvbGxlcigpCiAgICAgQVNTRVJUKCFtX2luc3BlY3RvckNsaWVudCk7CiB9
CiAKK1Bhc3NPd25QdHI8SW5zcGVjdG9yQ29udHJvbGxlcj4gSW5zcGVjdG9yQ29udHJvbGxlcjo6
Y3JlYXRlKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQoreworICAgIHJldHVy
biBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKwog
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCkKIHsKICAg
ICBkaXNjb25uZWN0RnJvbnRlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDA0OWUyNjA0Zjk5OTgyNWY1YmU5YzFiODJjYzlmMjk1
MDE2MDgwMTUuLjI1NzViMzhhNTgzMDM3NDA2ZGRlNTczOWZmMGEwZjc4ZTNjMDcxZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjMs
OCArNjMsMTAgQEAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSW5zcGVjdG9yQ29udHJvbGxlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiwgSW5zcGVjdG9yQ2xp
ZW50Kik7CiAgICAgfkluc3BlY3RvckNvbnRyb2xsZXIoKTsKKworICAgIHN0YXRpYyBQYXNzT3du
UHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgSW5zcGVjdG9yQ2xpZW50Kik7
CisKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKIAogICAgIGJvb2wgZW5hYmxl
ZCgpIGNvbnN0OwpAQCAtMTA0LDYgKzEwNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc291
cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhpbnQgbWF4aW11bVJlc291cmNlc0NvbnRl
bnRTaXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwogCiBwcml2YXRl
OgorICAgIEluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSosIEluc3BlY3RvckNsaWVudCopOworCiAg
ICAgZnJpZW5kIGNsYXNzIFBvc3RXb3JrZXJOb3RpZmljYXRpb25Ub0Zyb250ZW5kVGFzazsKICAg
ICBmcmllbmQgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGF0aW9uRm9yUGFnZShQYWdl
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKaW5kZXggNTVi
OThlOTcxMDgwYjVmNjQwNTQ2YjI2NjMzMTYxZDQ5ODM1ZjljMC4uNmIwM2RjYWZkMjdhYTg3OGY5
OThlMTVmNjQ2ZjAwYTk1ZGFhZGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHAKQEAgLTgxLDYgKzgxLDExIEBAIFByb2dyZXNzVHJhY2tlcjo6flByb2dyZXNz
VHJhY2tlcigpCiAgICAgZGVsZXRlQWxsVmFsdWVzKG1fcHJvZ3Jlc3NJdGVtcyk7CiB9CiAKK1Bh
c3NPd25QdHI8UHJvZ3Jlc3NUcmFja2VyPiBQcm9ncmVzc1RyYWNrZXI6OmNyZWF0ZSgpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQcm9ncmVzc1RyYWNrZXIpOworfQorCiBkb3VibGUgUHJv
Z3Jlc3NUcmFja2VyOjplc3RpbWF0ZWRQcm9ncmVzcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
cHJvZ3Jlc3NWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVz
c1RyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaAppbmRl
eCBlYTVmN2Y5ZjhmYThmZTZkMmRjYmQxMTQ5ZWE5NzlhN2RlNzU1MjViLi40NzQ0OTgzYTk1NWVk
OTE4NzM4ZWViZTkxOTFjNGVlM2ZiZjQ5NmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dy
ZXNzVHJhY2tlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFByb2dyZXNzVHJhY2tlcl9o
CiAjZGVmaW5lIFByb2dyZXNzVHJhY2tlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzksOSArNDAsOSBAQCBzdHJ1Y3QgUHJvZ3Jlc3NJ
dGVtOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
cm9ncmVzc1RyYWNrZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQ
cm9ncmVzc1RyYWNrZXIoKTsKICAgICB+UHJvZ3Jlc3NUcmFja2VyKCk7Ci0gICAgCisKKyAgICBz
dGF0aWMgUGFzc093blB0cjxQcm9ncmVzc1RyYWNrZXI+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyB1
bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKIAogICAgIGRvdWJsZSBlc3Rp
bWF0ZWRQcm9ncmVzcygpIGNvbnN0OwpAQCAtNTcsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgbG9u
ZyBsb25nIHRvdGFsQnl0ZXNSZWNlaXZlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxCeXRlc1Jl
Y2VpdmVkOyB9CiAKIHByaXZhdGU6CisgICAgUHJvZ3Jlc3NUcmFja2VyKCk7CisKICAgICB2b2lk
IHJlc2V0KCk7CiAgICAgdm9pZCBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IGFjODBhNTIwOWQ4MGEwZDEzODE4NjJiZDgwZjYyMjBjYzI3OGQ2ZDguLjJl
NzYzMTMwYjMyMmY4NjY3NTgyYmYwMTdhNjY5MThmMGM2NjA0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCiAjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw2ICs0MywxMSBAQCBOb3RpZmljYXRpb25Db250
cm9sbGVyOjp+Tm90aWZpY2F0aW9uQ29udHJvbGxlcigpCiB7CiB9CiAKK1Bhc3NPd25QdHI8Tm90
aWZpY2F0aW9uQ29udHJvbGxlcj4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2Uq
IHBhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlciogY2xpZW50KQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgTm90aWZpY2F0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJv
bGxlci5oCmluZGV4IDNmYWViY2YyMjJlOWRiMmZkNTk1ZGRkNTMyYmU1YmE2ZGQ2MTE1OGIuLmE5
NThhMDU3YWJhOWM0MjEyNWI4ZGMxZTZhZjEzNzQ2MjUxODc1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIAorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDEyICszOSwxNSBAQCBjbGFzcyBQYWdlOwogY2xhc3MgTm90aWZpY2F0
aW9uQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZpY2F0aW9uQ29u
dHJvbGxlcik7CiBwdWJsaWM6Ci0gICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcihQYWdlKiwgTm90
aWZpY2F0aW9uUHJlc2VudGVyKik7CiAgICAgfk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKTsKLSAg
ICAKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0
ZShQYWdlKiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CisKICAgICBOb3RpZmljYXRpb25QcmVz
ZW50ZXIqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAgICAgCiBwcml2YXRlOgorICAg
IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOwor
CiAgICAgUGFnZSogbV9wYWdlOwogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9jbGllbnQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDk0Y2RkOWM1ZmFhZTNiZTk0NGJlOTE5MTZi
YTY4YWZiNjQ4MTRhOTAuLjI4MmY4NWRkZThmZWFhY2Q4NTU2OGQzOWY0NzkxZDZiODYyYTNmZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTcxLDYgKzcxLDExIEBAIENocm9tZTo6fkNocm9t
ZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPENo
cm9tZT4gQ2hyb21lOjpjcmVhdGUoUGFnZSogcGFnZSwgQ2hyb21lQ2xpZW50KiBjbGllbnQpCit7
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDaHJvbWUocGFnZSwgY2xpZW50KSk7Cit9CisKIHZv
aWQgQ2hyb21lOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwg
Ym9vbCBpbW1lZGlhdGUpCiB7CiAgICAgbV9jbGllbnQtPmludmFsaWRhdGVSb290Vmlldyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYjNmMDg3NDBmOTQ3NDky
OTMyMjA4ODNmZGEyZmRkYjU5YmU4NjU3OC4uMzM3ODQ2ODljYzFmYzg0NDdmOGY5MGEwOGQ4ODdk
ZjNmMTNjMGQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC01OSw5ICs1OSwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCiAgICAgY2xhc3MgQ2hyb21lIDogcHVibGljIEhvc3RXaW5kb3cg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgQ2hyb21lKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKICAg
ICAgICAgfkNocm9tZSgpOwogCisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPENocm9tZT4gY3Jl
YXRlKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKKwogICAgICAgICBDaHJvbWVDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgLy8gSG9zdFdpbmRvdyBtZXRob2Rz
LgpAQCAtMTgyLDYgKzE4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAg
cHJpdmF0ZToKKyAgICAgICAgQ2hyb21lKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKKwogICAgICAg
ICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIENocm9tZUNsaWVudCogbV9jbGllbnQ7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCAz
MTEzNDQ1NDBkODg2NjY0ZDNkNWMzZjk5YjM2OWE4NjI3NzU0YTZlLi5iMjgzNTUyY2E2MGNmOTg5
YTY1YjgxZjk5NmU1NTk0YTc4MjQwOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC04Nyw2ICs4NywxMSBAQCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6On5Db250ZXh0TWVudUNvbnRyb2xsZXIoKQogICAgIG1fY2xpZW50LT5jb250ZXh0TWVu
dURlc3Ryb3llZCgpOwogfQogCitQYXNzT3duUHRyPENvbnRleHRNZW51Q29udHJvbGxlcj4gQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgQ29udGV4dE1lbnVDbGllbnQq
IGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRNZW51Q29udHJvbGxl
cihwYWdlLCBjbGllbnQpKTsKK30KKwogdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNsZWFy
Q29udGV4dE1lbnUoKQogewogICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IGU2YTBhMDA0MTkwYTAyY2Y5
ZGRhNjllYjBkMTYyY2Q3MzgyZGJiNjYuLjM1ODhmMDM3MTgyOTRlMTE1YmUwZWEzNDJiY2I5ZDY4
OWEzMWY4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
aApAQCAtNDQsOSArNDQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENvbnRl
eHRNZW51Q29udHJvbGxlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRN
ZW51Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAg
ICAgICAgQ29udGV4dE1lbnVDb250cm9sbGVyKFBhZ2UqLCBDb250ZXh0TWVudUNsaWVudCopOwog
ICAgICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CiAKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8Q29udGV4dE1lbnVDb250cm9sbGVyPiBjcmVhdGUoUGFnZSosIENvbnRleHRNZW51Q2xp
ZW50Kik7CisKICAgICAgICAgQ29udGV4dE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRNZW51KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0TWVudS5nZXQoKTsgfQpAQCAtNjUsNiArNjYsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1
bHQoKSB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIAogICAgIHByaXZhdGU6CisgICAgICAg
IENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlKiwgQ29udGV4dE1lbnVDbGllbnQqKTsKKwogICAg
ICAgICBQYXNzT3duUHRyPENvbnRleHRNZW51PiBjcmVhdGVDb250ZXh0TWVudShFdmVudCopOwog
ICAgICAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCopOwogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMzEwZmUwYWYzYTI2OWRkOTMwNTMyMjI4
NTYyMGZmN2JjMDMyYTg2Zi4uNzhhYjQ1Mjc2ODY0ZDk3NzRhYTE0NTlmY2U3NzJjNzM3NmEyZjFj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEwMiw2ICsxMDIs
MTEgQEAgRHJhZ0NvbnRyb2xsZXI6On5EcmFnQ29udHJvbGxlcigpCiAgICAgbV9jbGllbnQtPmRy
YWdDb250cm9sbGVyRGVzdHJveWVkKCk7CiB9CiAKK1Bhc3NPd25QdHI8RHJhZ0NvbnRyb2xsZXI+
IERyYWdDb250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgRHJhZ0NsaWVudCogY2xpZW50KQor
eworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRHJhZ0NvbnRyb2xsZXIocGFnZSwgY2xpZW50KSk7
Cit9CisKIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21l
bnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEqIGRyYWdEYXRhLCBGcmFtZSogZnJhbWUsIFJlZlB0cjxS
YW5nZT4gY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDJlMjVmZDg1YjNjYmM0YTdjN2FmODVhNDQwMDZi
OTVjZjQxMmRmZTQuLjc0ZDYxNzgyZThmNjllNjQwMTM2OWUwOTFlNWJmYmZhNmE2NTk1YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTUzLDggKzUzLDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEcmFnQ29udHJvbGxlciB7CiAgICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKERyYWdDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgcHVibGljOgotICAgICAgICBEcmFnQ29udHJvbGxlcihQYWdlKiwgRHJhZ0NsaWVudCop
OwogICAgICAgICB+RHJhZ0NvbnRyb2xsZXIoKTsKKworICAgICAgICBzdGF0aWMgUGFzc093blB0
cjxEcmFnQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBEcmFnQ2xpZW50Kik7CisKICAgICAgICAg
RHJhZ0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgICAg
ICBEcmFnU2Vzc2lvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOwpAQCAtOTMsNiArOTUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBEcmFnSW1hZ2VB
bHBoYTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIERyYWdDb250cm9sbGVyKFBhZ2UqLCBEcmFn
Q2xpZW50Kik7CisKICAgICAgICAgYm9vbCBkaXNwYXRjaFRleHRJbnB1dEV2ZW50Rm9yKEZyYW1l
KiwgRHJhZ0RhdGEqKTsKICAgICAgICAgYm9vbCBjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSopOwog
ICAgICAgICBib29sIGNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA4ZDg4MWEwMTA2NmMzMzcyNDBmZGFhYWU2NzZi
YTBmNzkzZmE1Y2YyLi4zOTVhOTEyOGNmNjExNDZjNWNhZTBkNWRiYjViMjk1ODYwOGQ5ODA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC05MSw2ICs5MSwxMSBA
QCBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlKiBwYWdlKQogewogfQogCitQ
YXNzT3duUHRyPEZvY3VzQ29udHJvbGxlcj4gRm9jdXNDb250cm9sbGVyOjpjcmVhdGUoUGFnZSog
cGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZvY3VzQ29udHJvbGxlcihwYWdlKSk7
Cit9CisKIHZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxG
cmFtZT4gZnJhbWUpCiB7CiAgICAgQVNTRVJUKCFmcmFtZSB8fCBmcmFtZS0+cGFnZSgpID09IG1f
cGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAppbmRleCA1ZjliZGZhOTc4
NDA2YjdjZDUzZjFmNzRhMzg4Nzg2NTNiY2FlYjNkLi42ODgwYTFjNDU1ZjI2ZGFkZGNiMmNhYTRi
N2YzYTcxOWNkNWQxM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgY2xhc3MgVHJlZVNjb3BlOwogY2xhc3MgRm9jdXNDb250cm9sbGVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBGb2N1c0NvbnRyb2xsZXIoUGFnZSopOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPEZvY3VzQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqKTsKIAogICAgIHZv
aWQgc2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+KTsKICAgICBGcmFtZSogZm9jdXNl
ZEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KQEAgLTY2LDYg
KzY2LDggQEAgcHVibGljOgogICAgIGJvb2wgdHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93
Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7
CiAKIHByaXZhdGU6CisgICAgRm9jdXNDb250cm9sbGVyKFBhZ2UqKTsKKwogICAgIGJvb2wgYWR2
YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwog
ICAgIGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uLCBLZXli
b2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYjk1MzNjYTNiNTAzNmRjOTAyZjgxNTI3
YTJhYjQ1ZGU2NTkzZjJkYi4uOTY5NGE5OWM0NTY2NzI2NjVlZWYwNTdmZWVjZDgzMmRkM2EyNWZj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcApA
QCAtNDcsNiArNDcsMTEgQEAgR2VvbG9jYXRpb25Db250cm9sbGVyOjp+R2VvbG9jYXRpb25Db250
cm9sbGVyKCkKICAgICAgICAgbV9jbGllbnQtPmdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CiB9CiAK
K1Bhc3NPd25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6
OmNyZWF0ZShQYWdlKiBwYWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xpZW50KQoreworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25Db250cm9sbGVyKHBhZ2UsIGNsaWVudCkpOwor
fQorCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6YWRkT2JzZXJ2ZXIoR2VvbG9jYXRpb24q
IG9ic2VydmVyLCBib29sIGVuYWJsZUhpZ2hBY2N1cmFjeSkKIHsKICAgICAvLyBUaGlzIG1heSBi
ZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBvYnNlcnZlciwgdGhvdWdoIHJl
bW92ZU9ic2VydmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5oCmluZGV4IDdjNTVjZTI0YTRmNTYyYzZmOTlhMDcyNzMwNzU2OTkwNDcxMzUxZTUuLjA2MTFk
YzMwYmQzNDE2NTFkZmE5NWNhMDQyMzQ5MTY2ZjYyYmY0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaApAQCAtNDMsOSArNDMsMTAgQEAgY2xhc3MgUGFn
ZTsKIGNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoR2VvbG9jYXRpb25Db250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBHZW9sb2NhdGlvbkNvbnRy
b2xsZXIoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7CiAgICAgfkdlb2xvY2F0aW9uQ29udHJv
bGxlcigpOwogCisgICAgc3RhdGljIFBhc3NPd25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBj
cmVhdGUoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7CisKICAgICB2b2lkIGFkZE9ic2VydmVy
KEdlb2xvY2F0aW9uKiwgYm9vbCBlbmFibGVIaWdoQWNjdXJhY3kpOwogICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoR2VvbG9jYXRpb24qKTsKIApAQCAtNjAsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAg
R2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKIHByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKFBhZ2UqLCBHZW9sb2NhdGlvbkNsaWVudCop
OworCiAgICAgUGFnZSogbV9wYWdlOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBtX2NsaWVudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzcyMDBmZTIyNzRjODMyOGU1NzBlNzAzZjg1ZWIwMTM1
NzJkMjBiNi4uYTY5MzdhMWQwYzkyMmJlZTNhYjRiODU1MzQ3ZDNiMmMzMzk0OWU5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0xMjAsMjcgKzEyMCwyNyBAQCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cihGcmFtZSogZnJhbWUpCiB9CiAKIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRz
KQotICAgIDogbV9jaHJvbWUoYWRvcHRQdHIobmV3IENocm9tZSh0aGlzLCBwYWdlQ2xpZW50cy5j
aHJvbWVDbGllbnQpKSkKLSAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihhZG9wdFB0cihuZXcg
RHJhZ0NhcmV0Q29udHJvbGxlcikpCisgICAgOiBtX2Nocm9tZShDaHJvbWU6OmNyZWF0ZSh0aGlz
LCBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQpKQorICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVy
KERyYWdDYXJldENvbnRyb2xsZXI6OmNyZWF0ZSgpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
Ci0gICAgLCBtX2RyYWdDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBEcmFnQ29udHJvbGxlcih0aGlz
LCBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkpCisgICAgLCBtX2RyYWdDb250cm9sbGVyKERyYWdD
b250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCkpCiAjZW5kaWYK
LSAgICAsIG1fZm9jdXNDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBGb2N1c0NvbnRyb2xsZXIodGhp
cykpKQorICAgICwgbV9mb2N1c0NvbnRyb2xsZXIoRm9jdXNDb250cm9sbGVyOjpjcmVhdGUodGhp
cykpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgLCBtX2NvbnRleHRNZW51Q29udHJv
bGxlcihhZG9wdFB0cihuZXcgQ29udGV4dE1lbnVDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRz
LmNvbnRleHRNZW51Q2xpZW50KSkpCisgICAgLCBtX2NvbnRleHRNZW51Q29udHJvbGxlcihDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5jb250ZXh0TWVudUNs
aWVudCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICwgbV9pbnNwZWN0b3JD
b250cm9sbGVyKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGll
bnRzLmluc3BlY3RvckNsaWVudCkpKQorICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQp
KQogI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICAsIG1f
Z2VvbG9jYXRpb25Db250cm9sbGVyKGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIo
dGhpcywgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQpKSkKKyAgICAsIG1fZ2VvbG9jYXRp
b25Db250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGll
bnRzLmdlb2xvY2F0aW9uQ2xpZW50KSkKICNlbmRpZgogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCi0gICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gYWRvcHRQdHIobmV3IERldmljZU1vdGlvbkNv
bnRyb2xsZXIocGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50KSkgOiBudWxscHRyKQotICAg
ICwgbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
ZGV2aWNlT3JpZW50YXRpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50KSkg
OiBudWxscHRyKQorICAgICwgbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmRldmljZU1vdGlvbkVuYWJsZWQoKSA/IERldmljZU1vdGlvbkNvbnRyb2xsZXI6
OmNyZWF0ZShwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpIDogbnVsbHB0cikKKyAgICAs
IG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRl
dmljZU9yaWVudGF0aW9uRW5hYmxlZCgpID8gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpj
cmVhdGUodGhpcywgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQpIDogbnVsbHB0
cikKICNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICwgbV9ub3RpZmljYXRp
b25Db250cm9sbGVyKGFkb3B0UHRyKG5ldyBOb3RpZmljYXRpb25Db250cm9sbGVyKHRoaXMsIHBh
Z2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCkpKQorICAgICwgbV9ub3RpZmljYXRpb25Db250
cm9sbGVyKE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5u
b3RpZmljYXRpb25DbGllbnQpKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAg
ICAsIG1fc3BlZWNoSW5wdXRDbGllbnQocGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQpCkBA
IC0xNDgsOSArMTQ4LDkgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAsIG1fdXNlck1lZGlhQ2xpZW50KHBhZ2VDbGll
bnRzLnVzZXJNZWRpYUNsaWVudCkKICNlbmRpZgotICAgICwgbV9zZXR0aW5ncyhhZG9wdFB0cihu
ZXcgU2V0dGluZ3ModGhpcykpKQotICAgICwgbV9wcm9ncmVzcyhhZG9wdFB0cihuZXcgUHJvZ3Jl
c3NUcmFja2VyKSkKLSAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBC
YWNrRm9yd2FyZENvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQp
KSkKKyAgICAsIG1fc2V0dGluZ3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fcHJv
Z3Jlc3MoUHJvZ3Jlc3NUcmFja2VyOjpjcmVhdGUoKSkKKyAgICAsIG1fYmFja0ZvcndhcmRDb250
cm9sbGVyKEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIG1fdGhlbWUoUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFn
ZSh0aGlzKSkKICAgICAsIG1fZWRpdG9yQ2xpZW50KHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCkK
ICAgICAsIG1fZnJhbWVDb3VudCgwKQpAQCAtMzg2LDcgKzM4Niw3IEBAIHZvaWQgUGFnZTo6aW5p
dEdyb3VwKCkKIHsKICAgICBBU1NFUlQoIW1fc2luZ2xlUGFnZUdyb3VwKTsKICAgICBBU1NFUlQo
IW1fZ3JvdXApOwotICAgIG1fc2luZ2xlUGFnZUdyb3VwID0gYWRvcHRQdHIobmV3IFBhZ2VHcm91
cCh0aGlzKSk7CisgICAgbV9zaW5nbGVQYWdlR3JvdXAgPSBQYWdlR3JvdXA6OmNyZWF0ZSh0aGlz
KTsKICAgICBtX2dyb3VwID0gbV9zaW5nbGVQYWdlR3JvdXAuZ2V0KCk7CiB9CiAKQEAgLTk2NSw3
ICs5NjUsNyBAQCBTcGVlY2hJbnB1dCogUGFnZTo6c3BlZWNoSW5wdXQoKQogewogICAgIEFTU0VS
VChtX3NwZWVjaElucHV0Q2xpZW50KTsKICAgICBpZiAoIW1fc3BlZWNoSW5wdXQuZ2V0KCkpCi0g
ICAgICAgIG1fc3BlZWNoSW5wdXQgPSBhZG9wdFB0cihuZXcgU3BlZWNoSW5wdXQobV9zcGVlY2hJ
bnB1dENsaWVudCkpOworICAgICAgICBtX3NwZWVjaElucHV0ID0gU3BlZWNoSW5wdXQ6OmNyZWF0
ZShtX3NwZWVjaElucHV0Q2xpZW50KTsKICAgICByZXR1cm4gbV9zcGVlY2hJbnB1dC5nZXQoKTsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDJjMDFmYjFiOTk2MTA4
YmQ0YWIxMWNlYmU2Mjk5MzZkZWU4YmZlMDIuLjZiNDIwOTg1MWJhNjMxMmM2MmQxOTM2NjliMGQ0
NWMzMjM5YjVmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAgLTc2LDYgKzc2LDEx
IEBAIFBhZ2VHcm91cDo6flBhZ2VHcm91cCgpCiAgICAgcmVtb3ZlQWxsVXNlckNvbnRlbnQoKTsK
IH0KIAorUGFzc093blB0cjxQYWdlR3JvdXA+IFBhZ2VHcm91cDo6Y3JlYXRlKFBhZ2UqIHBhZ2Up
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlR3JvdXAocGFnZSkpOworfQorCiB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBQYWdlR3JvdXAqPiBQYWdlR3JvdXBNYXA7CiBzdGF0aWMgUGFn
ZUdyb3VwTWFwKiBwYWdlR3JvdXBzID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKaW5kZXgg
OGI2MjM2OGJiNzRiZjUyYzc3ODI2MjExNTc0Mjg5ZGZiY2VjZGZkMy4uZDM5MTA0OWY2NWEwYzdl
ZjZiNzMyNWNhZmE3NzBkZmVkZWQ4MzRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCkBAIC00
Niw5ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUGFnZUdyb3VwKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgog
ICAgICAgICBQYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICAgICAgUGFnZUdyb3Vw
KFBhZ2UqKTsKICAgICAgICAgflBhZ2VHcm91cCgpOwogCisgICAgICAgIHN0YXRpYyBQYXNzT3du
UHRyPFBhZ2VHcm91cD4gY3JlYXRlKFBhZ2UqKTsKICAgICAgICAgc3RhdGljIFBhZ2VHcm91cCog
cGFnZUdyb3VwKGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lKTsKIAogICAgICAgICBzdGF0aWMgdm9p
ZCBjbG9zZUxvY2FsU3RvcmFnZSgpOwpAQCAtMTA4LDYgKzEwOCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIGNvbnN0IHsgcmV0
dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgUGFn
ZUdyb3VwKFBhZ2UqKTsKKwogICAgICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0
cmluZ0hhc2gpOwogICAgICAgICB2b2lkIHJlc2V0VXNlclN0eWxlQ2FjaGVJbkFsbEZyYW1lcygp
OwogICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNmMzYTJhNWJmZjgwNmJlNDYyOGNj
MTJlMWExZDBmMTM3NDIyODM5MC4uMzk4ZDkzNDU4OGFmOWNmZTQwOWVhNDdjZWMxMDYwNTUxYTdi
MmE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTIzOCw2ICsyMzgsMTEgQEAgU2V0
dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgQXRvbWljU3RyaW5nOjppbml0KCk7CiB9
CiAKK1Bhc3NPd25QdHI8U2V0dGluZ3M+IFNldHRpbmdzOjpjcmVhdGUoUGFnZSogcGFnZSkKK3sK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNldHRpbmdzKHBhZ2UpKTsKK30gCisKIGNvbnN0IEF0
b21pY1N0cmluZyYgU2V0dGluZ3M6OnN0YW5kYXJkRm9udEZhbWlseShVU2NyaXB0Q29kZSBzY3Jp
cHQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEdlbmVyaWNGb250RmFtaWx5Rm9yU2NyaXB0KG1f
c3RhbmRhcmRGb250RmFtaWx5TWFwLCBzY3JpcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4
IDhmNDQyMjJmYzFlMWEwYTk5Y2VmYWIxNjAzZDBiY2FjNzdlMGMxMTMuLjdhNGM5Zjk2YzBlOTEx
NGJkYzM1ODE3ZWY0MDQxOTBiNjgxNmQ4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTY4
LDcgKzY4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNldHRpbmdzIHsKICAg
ICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0dGluZ3MpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNldHRpbmdzKFBhZ2UqKTsKKyAgICAgICAgc3Rh
dGljIFBhc3NPd25QdHI8U2V0dGluZ3M+IGNyZWF0ZShQYWdlKik7CiAKICAgICAgICAgdm9pZCBz
ZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBV
U0NSSVBUX0NPTU1PTik7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc3RhbmRhcmRGb250
RmFtaWx5KFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pIGNvbnN0OwpAQCAtNTA0LDYgKzUw
NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwZXJUaWxlRHJhd2luZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3BlclRpbGVEcmF3aW5nRW5hYmxlZDsgfQogCiAgICAg
cHJpdmF0ZToKKyAgICAgICAgU2V0dGluZ3MoUGFnZSopOworCiAgICAgICAgIFBhZ2UqIG1fcGFn
ZTsKIAogICAgICAgICBTdHJpbmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dC5jcHAKaW5kZXggOTYwNWRkM2RkNDQ5OGY5ZWNmNzAyNTk2MjRiNGQw
ODg1NWI3NTkwMy4uNmE4NjIwYThmMmVjODJmNjY0N2ZhZjkxNDYyZGNlMzU2YzQ0N2ExOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50LmgiCiAjaW5j
bHVkZSAiU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNiArNTIsMTEgQEAgU3BlZWNoSW5wdXQ6
On5TcGVlY2hJbnB1dCgpCiAgICAgbV9jbGllbnQtPnNldExpc3RlbmVyKDApOwogfQogCitQYXNz
T3duUHRyPFNwZWVjaElucHV0PiBTcGVlY2hJbnB1dDo6Y3JlYXRlKFNwZWVjaElucHV0Q2xpZW50
KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTcGVlY2hJbnB1dChjbGllbnQp
KTsKK30KKwogaW50IFNwZWVjaElucHV0OjpyZWdpc3Rlckxpc3RlbmVyKFNwZWVjaElucHV0TGlz
dGVuZXIqIGxpc3RlbmVyKQogewogI2lmIGRlZmluZWQoREVCVUcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmgKaW5kZXggNTJkNmMwMzU2ZjliZmQ2ZDM4Y2M0OTk3Yjk3ODg4YzVkNzhiOWM3My4u
NmZlZTY1Y2ViNDE4YjYxNmQ1Y2M5ZmY2NDg0MjFhMDA4YzUyOGNmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXQuaApAQCAtNTAsOSArNTAsMTAgQEAgY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5l
cjsKIGNsYXNzIFNwZWVjaElucHV0IDogcHVibGljIFNwZWVjaElucHV0TGlzdGVuZXIgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNwZWVjaElucHV0KTsKIHB1YmxpYzoKLSAgICBTcGVlY2hJ
bnB1dChTcGVlY2hJbnB1dENsaWVudCopOwogICAgIHZpcnR1YWwgflNwZWVjaElucHV0KCk7CiAK
KyAgICBzdGF0aWMgUGFzc093blB0cjxTcGVlY2hJbnB1dD4gY3JlYXRlKFNwZWVjaElucHV0Q2xp
ZW50Kik7CisKICAgICAvLyBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQgZm9yIHRoZSBnaXZlbiBsaXN0
ZW5lciB0byBiZSB1c2VkIGZvciBzcGVlY2ggcmVxdWVzdHMuCiAgICAgLy8gVGhpcyBzaG91bGQg
YmUgdGhlIGZpcnN0IGNhbGwgbWFkZSBieSBsaXN0ZW5lcnMgYmVmb3JlIGFueXRoaW5nIGVsc2Uu
CiAgICAgaW50IHJlZ2lzdGVyTGlzdGVuZXIoU3BlZWNoSW5wdXRMaXN0ZW5lciopOwpAQCAtNzIs
NiArNzMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0
KGludCwgY29uc3QgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSYpOwogCiBwcml2YXRlOgorICAgIFNw
ZWVjaElucHV0KFNwZWVjaElucHV0Q2xpZW50Kik7CisKICAgICBTcGVlY2hJbnB1dENsaWVudCog
bV9jbGllbnQ7CiAgICAgSGFzaE1hcDxpbnQsIFNwZWVjaElucHV0TGlzdGVuZXIqPiBtX2xpc3Rl
bmVyczsKICAgICBpbnQgbV9uZXh0TGlzdGVuZXJJZDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>