<?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>108882</bug_id>
          
          <creation_ts>2013-02-04 17:25:17 -0800</creation_ts>
          <short_desc>[Mac] Captions menu should indicate language and type of track</short_desc>
          <delta_ts>2013-02-05 00:05:35 -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>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>824938</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-04 17:25:17 -0800</bug_when>
    <thetext>For Mac, we want a specific text label on the menu items in the list of captions. For example:

&lt;label&gt; &lt;language&gt; &lt;type-indicator&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824939</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-04 17:25:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/13149502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824960</commentid>
    <comment_count>2</comment_count>
      <attachid>186510</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-04 17:51:55 -0800</bug_when>
    <thetext>Created attachment 186510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824975</commentid>
    <comment_count>3</comment_count>
      <attachid>186510</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 18:00:48 -0800</bug_when>
    <thetext>Comment on attachment 186510
Patch

Attachment 186510 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16365575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824994</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-04 18:18:57 -0800</bug_when>
    <thetext>Gah - build failure because it relies on r141840 which only just landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824995</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-04 18:19:18 -0800</bug_when>
    <thetext>Anyway, I developed on mac-wk2 so I think it&apos;s ok there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825008</commentid>
    <comment_count>6</comment_count>
      <attachid>186510</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-04 18:43:27 -0800</bug_when>
    <thetext>Comment on attachment 186510
Patch

Attachment 186510 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16376433</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825010</commentid>
    <comment_count>7</comment_count>
      <attachid>186510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 18:48:00 -0800</bug_when>
    <thetext>Comment on attachment 186510
Patch

Attachment 186510 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16376437</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825023</commentid>
    <comment_count>8</comment_count>
      <attachid>186510</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-04 19:04:36 -0800</bug_when>
    <thetext>Comment on attachment 186510
Patch

Attachment 186510 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16365604</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825024</commentid>
    <comment_count>9</comment_count>
      <attachid>186525</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-04 19:10:32 -0800</bug_when>
    <thetext>Created attachment 186525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825084</commentid>
    <comment_count>10</comment_count>
      <attachid>186525</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-04 20:51:50 -0800</bug_when>
    <thetext>Comment on attachment 186525
Patch

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

&gt; Source/WebCore/page/CaptionUserPreferencesMac.mm:439
&gt; +    if (track-&gt;kind() != track-&gt;subtitlesKeyword()) {

Shouldn&apos;t this test to see if it *is* a caption track instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825196</commentid>
    <comment_count>11</comment_count>
      <attachid>186525</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-05 00:04:07 -0800</bug_when>
    <thetext>Comment on attachment 186525
Patch

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

&gt;&gt; Source/WebCore/page/CaptionUserPreferencesMac.mm:439
&gt;&gt; +    if (track-&gt;kind() != track-&gt;subtitlesKeyword()) {
&gt; 
&gt; Shouldn&apos;t this test to see if it *is* a caption track instead?

Yes. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825198</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-05 00:05:35 -0800</bug_when>
    <thetext>Committed r141864: &lt;http://trac.webkit.org/changeset/141864&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186510</attachid>
            <date>2013-02-04 17:51:55 -0800</date>
            <delta_ts>2013-02-04 19:10:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108882-20130205124832.patch</filename>
            <type>text/plain</type>
            <size>33193</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4NmE5ZTFmNTI2ZTY1
YmM3NDhhYWU5MTdiYmQ4NWFhOGJlZTM0MS4uMmQxODkxMDNlNzMxYzZkZDVkZDEzYWI5Njk4M2M3
OTYwMDc0MWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTA0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBDYXB0aW9ucyBtZW51
IHNob3VsZCBpbmRpY2F0ZSBsYW5ndWFnZSBhbmQgdHlwZSBvZiB0cmFjaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODgyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3ZSB3YW50IGEgc3Bl
Y2lmaWMgZm9ybWF0IGZvciBtZW51IGl0ZW1zIGluIGEgY2FwdGlvbiBsaXN0LiBTaW5jZQorICAg
ICAgICBvdGhlciBwb3J0cyBtaWdodCB3YW50IGRpZmZlcmVudCBmb3JtYXRzLCBtb3ZlIHRoZSBn
ZW5lcmF0aW9uIG9mIHRoZSBsYWJlbAorICAgICAgICBpbnRvIENhcHRpb25zVXNlclByZWZlcmVu
Y2VzIHdoZXJlIGl0IGNhbiBiZSBvdmVycmlkZGVuLgorCisgICAgICAgIFRoaXMgcmVxdWlyZWQg
Q2FwdGlvbnNVc2VyUHJlZmVyZW5jZXMgdG8gYmVjb21lIHB1YmxpYyBvbiB0aGUgUGFnZUdyb3Vw
LCBzbworICAgICAgICBpdCBjb3VsZCBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIG1lbnUuIEFs
c28sIHNpbmNlIENhcHRpb25zVXNlclByZWZlcmVuY2VzCisgICAgICAgIHdhcyBoaWRkZW4gb24g
TW91bnRhaW4gTGlvbiBhbmQgYmVsb3csIGJlIGEgbGl0dGxlIG1vcmUgc3BlY2lmaWMgYWJvdXQK
KyAgICAgICAgd2hpY2ggcGllY2VzIGNhbiBiZSBzZWVuIG9uIHdoaWNoIGJ1aWxkcy4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXNpdGluZyBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10
cmFja21lbnUgdGVzdHMuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3M6IFJlbW92ZSB0ZXh0VHJhY2tDbG9zZWRDYXB0aW9uc1RleHQuCisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0
TWVudSk6IEJ1aWxkIG9ubHkKKyAgICAgICAgICAgIG9uZSBzZWN0aW9uIGFuZCBnZXQgdGhlIHRy
YWNrJ3MgZGlzcGxheSBuYW1lIGZyb20gdGhlIHVzZXIgcHJlZmVyZW5jZXMuCisgICAgICAgICog
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpkaXNwbGF5TmFtZUZvclRyYWNrKTogRGVmYXVsdCBpbXBsZW1lbnRh
dGlvbiBvZgorICAgICAgICAgICAgdmlydHVhbCBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIGEgbGFi
ZWwgZm9yIGEgY2FwdGlvbnMgbWVudSBpdGVtLgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01hYy5oOiBBZGQgdGhlIG5ldyB2aXJ0dWFsIGZ1bmN0aW9uLCBhbmQgZXhwb3Nl
IGp1c3QKKyAgICAgICAgICAgIGEgYml0IG9mIHRoaXMgY2xhc3Mgb3V0c2lkZSAxMC45IGJ1aWxk
cy4KKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWFjKTogR3VhcmQgZmVhdHVyZXMgZm9yIHN5c3RlbSB2ZXJzaW9uLgorICAgICAgICAoV2Vi
Q29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6fkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6
OmRpc3BsYXlOYW1lRm9yVHJhY2spOiBOZXcgT1MgWC1zcGVjaWZpYyBtZXRob2QgdGhhdAorICAg
ICAgICAgICAgcmV0dXJucyBhIHN0cmluZyBmb3IgdGhlIG1lbnUgbGFiZWwuCisgICAgICAgICog
cGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjYXB0aW9u
UHJlZmVyZW5jZXMpOiBVbmd1YXJkIGZvciBzeXN0ZW0gdmVyc2lvbi4KKyAgICAgICAgKiBwYWdl
L1BhZ2VHcm91cC5oOiBNYWtlIGNhcHRpb25QcmVmZXJlbmNlcyBwdWJsaWMuCisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6IFJlbW92ZSB0ZXh0VHJhY2tDbG9zZWRDYXB0
aW9uc1RleHQgLSBub3QgbmVlZGVkIGFueSBtb3JlLgorICAgICAgICAqIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaDogUmVtb3ZlIHRleHRUcmFja0Nsb3NlZENhcHRpb25zVGV4dC4KKworMjAx
My0wMi0wNCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKICAgICAgICAgQWxsb3cg
VGV4dFRyYWNrcyB0byBiZSBtYXJrZWQgYXMgY2xvc2VkIGNhcHRpb25zCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4NTYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNl
L1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc4NDcyZTJi
NjE3N2QwNTQwYWQwMDFlNTgzNGVkYWQ4MTM0MzgyMGEuLjI5YWU4MWZiNDljNzQzNzU1MGQ3ZmMz
YzljYmFlY2UxZDllZTZiMDUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTAKemNtYUVJ
bikkO2k8Xyg7KGxqVilYSGxMTFpzR1hjVkt9azJDQSZvKFMhSTI/fCE0cFUtRnIrWX4wITE8ekBf
QEptCm1pMVVGZzElQElab3hfbTIqPX1+UD9kMCNXQko0UnBzYllxYiY5YG9GQGQ1ekRCTl9ZdgoK
ZGVsdGEgOTYKemNtZXh4aXV1V0Q8Xyg7KGxsQSR5Q1U8OVBPdWwkZ1p0YDZSRWBEYyo5RU47YFZ1
bjxQNmIxemI9ZzkkQUJ7OVN2Cm9UJEcoR3BRcDUwVGhec15eMUBrU2xORCE2WjlZNHomVVcoQlN3
ZnBMWj9OK00wNj8xfHZqNn05CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDQxYzNmMmUyZDBlYTFmYTIyNTI5NDczNGI5
ODY5ZjU2ZGM0ZjRjZWMuLmEwZGY4ZTY3MjU4ZTYwMWFjZGFiNzFmZDgwNjhiODU3M2JkNmQwZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAi
TWVkaWFDb250cm9sRWxlbWVudHMuaCIKIAorI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKQEAgLTg3MSwxOSArODcyLDE3IEBAIHZvaWQgTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0
TWVudSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIERvY3VtZW50KiBkb2MgPSBkb2N1bWVudCgp
OworICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRpb25zVXNlclByZWZlcmVuY2VzOwor
CisgICAgaWYgKGRvYy0+cGFnZSgpKQorICAgICAgICBjYXB0aW9uc1VzZXJQcmVmZXJlbmNlcyA9
IGRvYy0+cGFnZSgpLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOwogCiAgICAgUmVmUHRy
PEVsZW1lbnQ+IGNhcHRpb25zU2VjdGlvbiA9IGRvYy0+Y3JlYXRlRWxlbWVudChzZWN0aW9uVGFn
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNIZWFk
ZXIgPSBkb2MtPmNyZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAg
IGNhcHRpb25zSGVhZGVyLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKHRleHRUcmFj
a0Nsb3NlZENhcHRpb25zVGV4dCgpKSk7CisgICAgY2FwdGlvbnNIZWFkZXItPmFwcGVuZENoaWxk
KGRvYy0+Y3JlYXRlVGV4dE5vZGUodGV4dFRyYWNrU3VidGl0bGVzVGV4dCgpKSk7CiAgICAgY2Fw
dGlvbnNTZWN0aW9uLT5hcHBlbmRDaGlsZChjYXB0aW9uc0hlYWRlcik7CiAgICAgUmVmUHRyPEVs
ZW1lbnQ+IGNhcHRpb25zTWVudUxpc3QgPSBkb2MtPmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VS
VF9OT19FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHN1YnRpdGxlc1NlY3Rpb24g
PSBkb2MtPmNyZWF0ZUVsZW1lbnQoc2VjdGlvblRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0g
ICAgUmVmUHRyPEVsZW1lbnQ+IHN1YnRpdGxlc0hlYWRlciA9IGRvYy0+Y3JlYXRlRWxlbWVudCho
M1RhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgc3VidGl0bGVzSGVhZGVyLT5hcHBlbmRD
aGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKHRleHRUcmFja1N1YnRpdGxlc1RleHQoKSkpOwotICAg
IHN1YnRpdGxlc1NlY3Rpb24tPmFwcGVuZENoaWxkKHN1YnRpdGxlc0hlYWRlcik7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IHN1YnRpdGxlc01lbnVMaXN0ID0gZG9jLT5jcmVhdGVFbGVtZW50KHVsVGFn
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLQogICAgIFJlZlB0cjxFbGVtZW50PiB0cmFja0l0ZW07
CiAKICAgICB0cmFja0l0ZW0gPSBkb2MtPmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19F
WENFUFRJT04pOwpAQCAtODkyLDE1ICs4OTEsNiBAQCB2b2lkIE1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zVHJhY2tMaXN0RWxlbWVudDo6cmVidWlsZFRyYWNrTGlzdE1lbnUoKQogICAgIGNhcHRp
b25zTWVudUxpc3QtPmFwcGVuZENoaWxkKHRyYWNrSXRlbSk7CiAgICAgbV9tZW51SXRlbXMuYXBw
ZW5kKHRyYWNrSXRlbSk7CiAKLSAgICB0cmFja0l0ZW0gPSBkb2MtPmNyZWF0ZUVsZW1lbnQobGlU
YWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIHRyYWNrSXRlbS0+YXBwZW5kQ2hpbGQoZG9j
LT5jcmVhdGVUZXh0Tm9kZSh0ZXh0VHJhY2tPZmZUZXh0KCkpKTsKLSAgICB0cmFja0l0ZW0tPnNl
dEF0dHJpYnV0ZSh0cmFja0luZGV4QXR0cmlidXRlTmFtZSgpLCB0ZXh0VHJhY2tzT2ZmQXR0clZh
bHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBzdWJ0aXRsZXNNZW51TGlzdC0+YXBwZW5k
Q2hpbGQodHJhY2tJdGVtKTsKLSAgICBtX21lbnVJdGVtcy5hcHBlbmQodHJhY2tJdGVtKTsKLQot
ICAgIGJvb2wgaGFzQ2FwdGlvbnMgPSBmYWxzZTsKLSAgICBib29sIGhhc1N1YnRpdGxlcyA9IGZh
bHNlOwotCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gdHJhY2tMaXN0LT5sZW5n
dGgoKTsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIFRleHRUcmFjayogdHJhY2sgPSB0cmFj
a0xpc3QtPml0ZW0oaSk7CiAgICAgICAgIHRyYWNrSXRlbSA9IGRvYy0+Y3JlYXRlRWxlbWVudChs
aVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CkBAIC05MTEsMzEgKzkwMSwxNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6cmVidWlsZFRyYWNrTGlz
dE1lbnUoKQogICAgICAgICAvLyBzaG91bGQgYWx3YXlzIGJlIGluIHN5bmMuCiAgICAgICAgIHRy
YWNrSXRlbS0+c2V0QXR0cmlidXRlKHRyYWNrSW5kZXhBdHRyaWJ1dGVOYW1lKCksIFN0cmluZzo6
bnVtYmVyKGkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgICAgICBBdG9taWNTdHJpbmcg
bGFiZWxUZXh0ID0gdHJhY2stPmxhYmVsKCk7Ci0gICAgICAgIGlmIChsYWJlbFRleHQuaXNOdWxs
KCkgfHwgbGFiZWxUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGxhYmVsVGV4dCA9IGRpc3Bs
YXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUodHJhY2stPmxhbmd1YWdlKCkpOwotICAgICAgICBpZiAo
bGFiZWxUZXh0LmlzTnVsbCgpIHx8IGxhYmVsVGV4dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBs
YWJlbFRleHQgPSB0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpOwotICAgICAgICB0cmFja0l0ZW0tPmFw
cGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUobGFiZWxUZXh0KSk7CisgICAgICAgIGlmIChj
YXB0aW9uc1VzZXJQcmVmZXJlbmNlcykKKyAgICAgICAgICAgIHRyYWNrSXRlbS0+YXBwZW5kQ2hp
bGQoZG9jLT5jcmVhdGVUZXh0Tm9kZShjYXB0aW9uc1VzZXJQcmVmZXJlbmNlcy0+ZGlzcGxheU5h
bWVGb3JUcmFjayh0cmFjaykpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdHJhY2tJdGVt
LT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKHRyYWNrLT5sYWJlbCgpKSk7CiAKLSAg
ICAgICAgaWYgKHRyYWNrLT5raW5kKCkgPT0gdHJhY2stPmNhcHRpb25zS2V5d29yZCgpKSB7Ci0g
ICAgICAgICAgICBoYXNDYXB0aW9ucyA9IHRydWU7Ci0gICAgICAgICAgICBpbnNlcnRUZXh0VHJh
Y2tNZW51SXRlbUludG9Tb3J0ZWRDb250YWluZXIodHJhY2tJdGVtLCBjYXB0aW9uc01lbnVMaXN0
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAodHJhY2stPmtpbmQoKSA9PSB0cmFjay0+c3VidGl0
bGVzS2V5d29yZCgpKSB7Ci0gICAgICAgICAgICBoYXNTdWJ0aXRsZXMgPSB0cnVlOwotICAgICAg
ICAgICAgaW5zZXJ0VGV4dFRyYWNrTWVudUl0ZW1JbnRvU29ydGVkQ29udGFpbmVyKHRyYWNrSXRl
bSwgc3VidGl0bGVzTWVudUxpc3QpOwotICAgICAgICB9CisgICAgICAgIGluc2VydFRleHRUcmFj
a01lbnVJdGVtSW50b1NvcnRlZENvbnRhaW5lcih0cmFja0l0ZW0sIGNhcHRpb25zTWVudUxpc3Qp
OwogICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQodHJhY2tJdGVtKTsKICAgICB9CiAKICAgICBj
YXB0aW9uc1NlY3Rpb24tPmFwcGVuZENoaWxkKGNhcHRpb25zTWVudUxpc3QpOwotICAgIHN1YnRp
dGxlc1NlY3Rpb24tPmFwcGVuZENoaWxkKHN1YnRpdGxlc01lbnVMaXN0KTsKLQotICAgIGlmICho
YXNDYXB0aW9ucykKLSAgICAgICAgYXBwZW5kQ2hpbGQoY2FwdGlvbnNTZWN0aW9uKTsKLSAgICBp
ZiAoaGFzU3VidGl0bGVzKQotICAgICAgICBhcHBlbmRDaGlsZChzdWJ0aXRsZXNTZWN0aW9uKTsK
KyAgICBhcHBlbmRDaGlsZChjYXB0aW9uc1NlY3Rpb24pOwogCiAgICAgdXBkYXRlRGlzcGxheSgp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5o
CmluZGV4IDM2NTAxMDRhNmU1ZjI2ZjkxYWE3M2FlMDFhMjhiYTAxNWM4YTM2NDguLjZlZGI0ZTI0
NGZhZjVjYWFhN2M5YzRhMTE2NDIzNTJjMWQxNTQwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIApAQCAtNTksNiAr
NjEsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRMYW5ndWFnZShT
dHJpbmcpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVkTGFu
Z3VhZ2VzKCkgY29uc3QgeyByZXR1cm4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7
IH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0
cmFjaykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICh0cmFjay0+bGFiZWwoKS5pc0VtcHR5KCkg
JiYgdHJhY2stPmxhbmd1YWdlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHRleHRU
cmFja05vTGFiZWxUZXh0KCk7CisgICAgICAgIGlmICghdHJhY2stPmxhYmVsKCkuaXNFbXB0eSgp
KQorICAgICAgICAgICAgcmV0dXJuIHRyYWNrLT5sYWJlbCgpOworICAgICAgICByZXR1cm4gdHJh
Y2stPmxhbmd1YWdlKCk7CisgICAgfQorCiAgICAgUGFnZUdyb3VwKiBwYWdlR3JvdXAoKSB7IHJl
dHVybiBtX3BhZ2VHcm91cDsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5oCmluZGV4IGNmYmQyMmI1ZDQ1NTRmNmQ2MzNj
MWIwMDgyYWVlY2VkZTdkNDUzMDMuLmEzOTU3ZTQ3ODVlMTRjZjAwYjllMzkzM2FmYzkxYTI2NzY1
YTc1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWNfaAogI2RlZmluZSBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjX2gKIAotI2lmIEVOQUJMRShW
SURFT19UUkFDSykgJiYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNp
bmNsdWRlICJDYXB0aW9uVXNlclByZWZlcmVuY2VzLmgiCkBAIC00MCw2ICs0MCw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc093blB0cjxDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjPiBjcmVh
dGUoUGFnZUdyb3VwKiBncm91cCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNYWMoZ3JvdXApKTsgfQogICAgIHZpcnR1YWwgfkNhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWMoKTsKIAorI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAg
ICB2aXJ0dWFsIGJvb2wgdXNlclByZWZlcnNDYXB0aW9ucygpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRVc2VyUHJlZmVyc0NhcHRpb25zKGJvb2wpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCB1c2VySGFzQ2FwdGlvblByZWZlcmVuY2VzKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTIsMTAgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0IE9WRVJSSURFOwogCiAg
ICAgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisjZW5kaWYKKworICAgIHZpcnR1
YWwgU3RyaW5nIGRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKikgY29uc3QgT1ZFUlJJREU7
CiAKIHByaXZhdGU6CiAgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYyhQYWdlR3JvdXAqKTsK
IAorI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBTdHJpbmcg
Y2FwdGlvbnNXaW5kb3dDU1MoKSBjb25zdDsKICAgICBTdHJpbmcgY2FwdGlvbnNCYWNrZ3JvdW5k
Q1NTKCkgY29uc3Q7CiAgICAgU3RyaW5nIGNhcHRpb25zVGV4dENvbG9yQ1NTKCkgY29uc3Q7CkBA
IC03MSw2ICs3Niw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PENhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWRMaXN0ZW5lcio+IG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnM7CiAg
ICAgYm9vbCBtX2xpc3RlbmluZ0ZvclByZWZlcmVuY2VDaGFuZ2VzOworI2VuZGlmCiB9OwogICAg
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFj
Lm1tCmluZGV4IDAyZjQxZDVmYzljMzVjYWM2MzJlZTA2NTU2ZTZjYmE5MjBlOGNlMjIuLjU5NTk2
YzAxY2ZmNTAzNzRhZTFjZGFlNGFkZmEyOTRiOTQxMmJhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KQEAgLTI1LDcgKzI1LDcgQEAK
IAogI2ltcG9ydCAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIE1BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAKICNpbXBvcnQgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMuaCIKIApAQCAtMzQsNyArMzQs
MTEgQEAKICNpbXBvcnQgIkRPTVdyYXBwZXJXb3JsZC5oIgogI2ltcG9ydCAiRmxvYXRDb252ZXJz
aW9uLmgiCiAjaW1wb3J0ICJLVVJMLmgiCisjaW1wb3J0ICJMYW5ndWFnZS5oIgorI2ltcG9ydCAi
TG9jYWxpemVkU3RyaW5ncy5oIgorI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwOTAKICNpbXBvcnQgIk1lZGlhQWNjZXNzaWJpbGl0eS9NZWRpYUFjY2Vzc2liaWxpdHkuaCIK
KyNlbmRpZgogI2ltcG9ydCAiUGFnZUdyb3VwLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgog
I2ltcG9ydCAiVGV4dFRyYWNrQ3VlLmgiCkBAIC00Miw2ICs0Niw4IEBACiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBN
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisKIFNPRlRfTElOS19GUkFNRVdP
UktfT1BUSU9OQUwoTWVkaWFBY2Nlc3NpYmlsaXR5KQogCiBTT0ZUX0xJTksoTWVkaWFBY2Nlc3Np
YmlsaXR5LCBNQUNhcHRpb25BcHBlYXJhbmNlR2V0U2hvd0NhcHRpb25zLCBib29sLCAoTUFDYXB0
aW9uQXBwZWFyYW5jZURvbWFpbiBkb21haW4pLCAoZG9tYWluKSkKQEAgLTYyLDI3ICs2OCwzNiBA
QCBTT0ZUX0xJTksoTWVkaWFBY2Nlc3NpYmlsaXR5LCBNQUNhcHRpb25BcHBlYXJhbmNlQ29weVNl
bGVjdGVkTGFuZ3VhZ2VzLCBDRkFycmF5UgogU09GVF9MSU5LX1BPSU5URVIoTWVkaWFBY2Nlc3Np
YmlsaXR5LCBrTUFYQ2FwdGlvbkFwcGVhcmFuY2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24s
IENGU3RyaW5nUmVmKQogI2RlZmluZSBrTUFYQ2FwdGlvbkFwcGVhcmFuY2VTZXR0aW5nc0NoYW5n
ZWROb3RpZmljYXRpb24gZ2V0a01BWENhcHRpb25BcHBlYXJhbmNlU2V0dGluZ3NDaGFuZ2VkTm90
aWZpY2F0aW9uKCkKIAorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAK
IHN0YXRpYyB2b2lkIHVzZXJDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uQ2Fs
bGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1Jl
ZiwgY29uc3Qgdm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYpCiB7CiAgICAgc3RhdGljX2Nhc3Q8Q2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01hYyo+KG9ic2VydmVyKS0+Y2FwdGlvblByZWZlcmVuY2VzQ2hh
bmdlZCgpOwogfQorI2VuZGlmCiAKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OkNhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWMoUGFnZUdyb3VwKiBncm91cCkKICAgICA6IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMoZ3JvdXApCisjaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5
MAogICAgICwgbV9saXN0ZW5pbmdGb3JQcmVmZXJlbmNlQ2hhbmdlcyhmYWxzZSkKKyNlbmRpZgog
ewogfQogCiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjp+Q2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYygpCiB7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogICAg
IGlmIChrTUFYQ2FwdGlvbkFwcGVhcmFuY2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24pCiAg
ICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25D
ZW50ZXJHZXRMb2NhbENlbnRlcigpLCB0aGlzLCBrTUFYQ2FwdGlvbkFwcGVhcmFuY2VTZXR0aW5n
c0NoYW5nZWROb3RpZmljYXRpb24sIE5VTEwpOworI2VuZGlmCiB9CiAKKyNpZiBNQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiBib29sIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWM6OnVzZXJQcmVmZXJzQ2FwdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBNQUNhcHRpb25B
cHBlYXJhbmNlR2V0U2hvd0NhcHRpb25zKGtNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWluVXNlcik7
CkBAIC0zOTcsNiArNDEyLDM5IEBAIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWM6OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiAKICAgICByZXR1cm4gdXNlclByZWZl
cnJlZExhbmd1YWdlczsKIH0KKyNlbmRpZgorCitTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYzo6ZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zdAoreworICAg
IFN0cmluZyBsYWJlbCA9IHRyYWNrLT5sYWJlbCgpOworICAgIFN0cmluZyBsYW5ndWFnZSA9IHRy
YWNrLT5sYW5ndWFnZSgpOworICAgIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZSA9IGRlZmF1bHRM
YW5ndWFnZSgpOworICAgIFN0cmluZ0J1aWxkZXIgZGlzcGxheU5hbWU7CisKKyAgICBpZiAobGFi
ZWwuaXNFbXB0eSgpICYmIGxhbmd1YWdlLmlzRW1wdHkoKSkgeworICAgICAgICBkaXNwbGF5TmFt
ZS5hcHBlbmQodGV4dFRyYWNrTm9MYWJlbFRleHQoKSk7CisgICAgICAgIHJldHVybiBkaXNwbGF5
TmFtZS50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBpZiAoIWxhYmVsLmlzRW1wdHkoKSkK
KyAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGxhYmVsKTsKKyAgICAKKyAgICBBdG9taWNTdHJp
bmcgbG9jYWxlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1
YWdlKTsKKyAgICBpZiAoIWxhYmVsLmNvbnRhaW5zKGxvY2FsZURpc3BsYXlOYW1lKSkgeworICAg
ICAgICBpZiAoZGlzcGxheU5hbWUubGVuZ3RoKCkgPiAwKQorICAgICAgICAgICAgZGlzcGxheU5h
bWUuYXBwZW5kKCIgIik7CisgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChsb2NhbGVEaXNwbGF5
TmFtZSk7CisgICAgfQorCisgICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gdHJhY2stPnN1YnRpdGxl
c0tleXdvcmQoKSkgeworICAgICAgICBpZiAodHJhY2stPmlzQ2xvc2VkQ2FwdGlvbnMoKSkKKyAg
ICAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZCgiIENDIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZCgiIFNESCIpOworICAgIH0KKworICAgIHJldHVybiBk
aXNwbGF5TmFtZS50b1N0cmluZygpOworfQogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNw
cAppbmRleCA3ODJkYTBmODk4NzM2N2M0MWE3ZmFkZDJmODJjOGNmYzQxYmQxOTZkLi40NmQ1YTdm
NjI1NTBlNThhZTg5MWRjZGFjZmJkZGFmMmNmNWE2NGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXAuY3BwCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotI2lmIFBMQVRGT1JNKE1BQykgJiYgTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRl
ICJDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLmgiCiAjZWxzZQogI2luY2x1ZGUgIkNhcHRpb25V
c2VyUHJlZmVyZW5jZXMuaCIKQEAgLTQyMCw3ICs0MjAsNyBAQCB2b2lkIFBhZ2VHcm91cDo6aW52
YWxpZGF0ZWRJbmplY3RlZFN0eWxlU2hlZXRDYWNoZUluQWxsRnJhbWVzKCkKIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMqIFBhZ2VHcm91cDo6Y2FwdGlvblByZWZlcmVuY2VzKCkKIHsKICAgICBpZiAo
IW1fY2FwdGlvblByZWZlcmVuY2VzKQotI2lmIFBMQVRGT1JNKE1BQykgJiYgTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgbV9j
YXB0aW9uUHJlZmVyZW5jZXMgPSBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjcmVhdGUodGhp
cyk7CiAjZWxzZQogICAgICAgICBtX2NhcHRpb25QcmVmZXJlbmNlcyA9IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXM6OmNyZWF0ZSh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCmluZGV4IDZlZWVj
NTdkODgxZmRlMTY2NmI1MTYxMTBlYmFlMTU1ZGNmZjM5NTUuLmNkODgwMzQ2ZmE5NjBjYjM2MTlm
YzNlNjE2NTEwYjgwNjI2YjViZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaApAQCAtMTE0LDYg
KzExNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgY2FwdGlvbkZvbnRT
aXplU2NhbGUoYm9vbCYpOwogICAgICAgICB2b2lkIHJlZ2lzdGVyRm9yQ2FwdGlvblByZWZlcmVu
Y2VzQ2hhbmdlZENhbGxiYWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqKTsK
ICAgICAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZENhbGxi
YWNrcyhDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXIqKTsKKyAgICAgICAgQ2FwdGlv
blVzZXJQcmVmZXJlbmNlcyogY2FwdGlvblByZWZlcmVuY2VzKCk7CiAjZW5kaWYKIAogICAgIHBy
aXZhdGU6CkBAIC0xMjIsOSArMTIzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIGFkZFZpc2l0ZWRMaW5rKExpbmtIYXNoIHN0cmluZ0hhc2gpOwogICAgICAgICB2b2lkIGlu
dmFsaWRhdGVkSW5qZWN0ZWRTdHlsZVNoZWV0Q2FjaGVJbkFsbEZyYW1lcygpOwogICAKLSNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCi0gICAgICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRp
b25QcmVmZXJlbmNlcygpOwotI2VuZGlmCiAgICAgICAgIFN0cmluZyBtX25hbWU7CiAKICAgICAg
ICAgSGFzaFNldDxQYWdlKj4gbV9wYWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYzY3Mzg0ZjY1ZjY2ZDcwODUyMjIwMmU0MDNhN2UwMjQ5
YjU0NTYwMS4uMWZiYWU4ODJhOWYxYjAyZDVkNmM2ODA3ZDM3NTdjNmNkMmE0NjA1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEwMTUsMTEg
KzEwMTUsNiBAQCBTdHJpbmcgY2xpY2tUb0V4aXRGdWxsU2NyZWVuVGV4dCgpCiB9CiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCi1TdHJpbmcgdGV4dFRyYWNrQ2xvc2VkQ2FwdGlvbnNUZXh0KCkK
LXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiQ2xvc2VkIENhcHRpb25zIiwgIk1lbnUgc2Vj
dGlvbiBoZWFkaW5nIGZvciBjbG9zZWQgY2FwdGlvbnMiKTsKLX0KLQogU3RyaW5nIHRleHRUcmFj
a1N1YnRpdGxlc1RleHQoKQogewogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTdWJ0aXRsZXMi
LCAiTWVudSBzZWN0aW9uIGhlYWRpbmcgZm9yIHN1YnRpdGxlcyIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGNmODZkY2I1MWI0NTgxNDM5YzA1MzE3
NmU5NDc5MDEzOThiNWU5MDkuLjg3MGEyY2IxMTQ3NDZiMzhiNGNmN2VkMzc5YzI1MDJjYTgzYjJh
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTI2
NSw3ICsyNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIGNsaWNrVG9FeGl0
RnVsbFNjcmVlblRleHQoKTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBTdHJpbmcg
dGV4dFRyYWNrQ2xvc2VkQ2FwdGlvbnNUZXh0KCk7CiAgICAgU3RyaW5nIHRleHRUcmFja1N1YnRp
dGxlc1RleHQoKTsKICAgICBTdHJpbmcgdGV4dFRyYWNrT2ZmVGV4dCgpOwogICAgIFN0cmluZyB0
ZXh0VHJhY2tOb0xhYmVsVGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNmZTZiNzY5NmViOWQyMWEzMzZhMjAxZjZk
ZjM1OTEwODkwOTkzZmMuLmI2ZjE5MWU4ZWRjZmQ0YmQ2MjQ5NTE3YzQyNzQzZTg2Y2JmNmNiZjcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMi0wNCAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQ2FwdGlvbnMgbWVudSBzaG91bGQgaW5kaWNhdGUg
bGFuZ3VhZ2UgYW5kIHR5cGUgb2YgdHJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwODg4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZSBjYXB0aW9ucyBtZW51IGNhbiBiZSBsYWJl
bGxlZCBpbiBhIHBsYXRmb3JtLXNwZWNpZmljIHdheSwgbW92ZQorICAgICAgICB0aGUgcmVzdWx0
cyBpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnkuIEF0IHRoZSBtb21lbnQsIHRoZXkgYXJlIHNr
aXBwZWQKKyAgICAgICAgZXZlcnl3aGVyZSBidXQgTWFjLiBBbHNvIHVwZGF0ZSB0aGUgdGVzdHMg
dG8gdGhlIG5ldyBtZW51IHN0cnVjdHVyZSwgd2hpY2gKKyAgICAgICAgb25seSBoYXMgYSBzaW5n
bGUgbGlzdCBvZiBlbnRyaWVzLgorCisgICAgICAgICogbWVkaWEvdmlkZW8tY29udHJvbHMtY2Fw
dGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC5odG1sOiBVcGRhdGVkIGZvciBuZXcgbWVudSBzdHJ1
Y3R1cmUuCisgICAgICAgICogbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby1jb250cm9scy1j
YXB0aW9ucy10cmFja21lbnUtbG9jYWxpemVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtc29ydGVkLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9u
cy10cmFja21lbnUtc29ydGVkLmh0bWw6IFVwZGF0ZWQgZm9yIG5ldyBtZW51IHN0cnVjdHVyZS4K
KyAgICAgICAgKiBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUuaHRtbDog
VXBkYXRlZCBmb3IgbmV3IG1lbnUgc3RydWN0dXJlLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9t
ZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtZXhwZWN0ZWQudHh0OiBOZXcg
cGxhdGZvcm0gc3BlY2lmaWMgcmVzdWx0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEv
dmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC1leHBlY3RlZC50eHQ6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0
aW9ucy10cmFja21lbnUtc29ydGVkLWV4cGVjdGVkLnR4dDogRGl0dG8uCisKIDIwMTMtMDItMDQg
IERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZXQgOmxh
bmcoKSBwc2V1ZG8gY2xhc3Mgc3VwcG9ydCBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gZWxl
bWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlv
bnMtdHJhY2ttZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRy
b2xzLWNhcHRpb25zLXRyYWNrbWVudS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU2YjUwMDNiYzAxNWViNGExZmYzODhkMGNhNTIyMjIzZTkwNGU4ZGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVRlc3QgdGhhdCB3ZSBhcmUgYWJsZSB0byB0cmlnZ2Vy
IHRoZSBsaXN0IG9mIGNhcHRpb25zLCBhbmQgc2VsZWN0IGZyb20gdGhlIGxpc3QuCi0KLUVWRU5U
KGNhbnBsYXl0aHJvdWdoKQotCi0qKiogU2V0IHRoZSB1c2VyIGxhbmd1YWdlIHByZWZlcmVuY2Uu
Ci1SVU4oaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoWydlbiddKSkKLQotKioq
IEFkZCBhbm90aGVyIHRleHQgdHJhY2suCi1SVU4odmlkZW8uYWRkVGV4dFRyYWNrKCJjYXB0aW9u
cyIsICJDb21tZW50YXJ5IiwgInJ1IikpCi0qKiogVHVybmluZyBjYXB0aW9ucyBvbgotVGhlcmUg
c2hvdWxkIGJlIDUgaXRlbXMgaW4gdGhlIG1lbnUuCi1FWFBFQ1RFRCAoNSA9PSAnNScpIE9LCi1F
WFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrcy5sZW5ndGggPT0gJzQnKSBPSwotVHJhY2sgMCBzaG91
bGQgYmUgc2hvd2luZwotRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMF0ubW9kZSA9PSAnZGlz
YWJsZWQnKSBPSwotVHJhY2sgMSBzaG91bGQgYmUgZGlzYWJsZWQKLUVYUEVDVEVEICh2aWRlby50
ZXh0VHJhY2tzWzFdLm1vZGUgPT0gJ3Nob3dpbmcnKSBPSwotVHJhY2sgMiBzaG91bGQgYmUgZGlz
YWJsZWQKLUVYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzJdLm1vZGUgPT0gJ2Rpc2FibGVkJykg
T0sKLVRyYWNrIDMgc2hvdWxkIGJlIGRpc2FibGVkCi1FWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNr
c1szXS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCi1FWFBFQ1RFRCAodGV4dFRyYWNrRGlzcGxheUVs
ZW1lbnQodmlkZW8sICdkaXNwbGF5JykuaW5uZXJUZXh0ID09ICdMb3JlbScpIE9LCi0KLSoqKiBS
ZW1vdmUgYSB0cmFjay4KLVJVTih2aWRlby5yZW1vdmVDaGlsZChkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJ0cmFjayIpWzBdKSkKLSoqKiBUdXJuaW5nIGNhcHRpb25zIG9mZgotVGhlcmUgc2hv
dWxkIGJlIDQgaXRlbXMgaW4gdGhlIG1lbnUuCi1FWFBFQ1RFRCAoNCA9PSAnNCcpIE9LCi1FWFBF
Q1RFRCAodmlkZW8udGV4dFRyYWNrcy5sZW5ndGggPT0gJzMnKSBPSwotVHJhY2sgMCBzaG91bGQg
YmUgZGlzYWJsZWQKLUVYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzBdLm1vZGUgPT0gJ2Rpc2Fi
bGVkJykgT0sKLVRyYWNrIDEgc2hvdWxkIGJlIGRpc2FibGVkCi1FWFBFQ1RFRCAodmlkZW8udGV4
dFRyYWNrc1sxXS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCi1UcmFjayAyIHNob3VsZCBiZSBkaXNh
YmxlZAotRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMl0ubW9kZSA9PSAnZGlzYWJsZWQnKSBP
SwotTm8gdGV4dCB0cmFjayBjdWUgd2l0aCBkaXNwbGF5IGlkICctd2Via2l0LW1lZGlhLXRleHQt
dHJhY2stZGlzcGxheScgaXMgY3VycmVudGx5IHZpc2libGUKLUVORCBPRiBURVNUCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVu
dS1sb2NhbGl6ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJv
bHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE1MGU5ZjViZjE0YWFlYmNhNjA5OGI5N2U3OTQ1YmZjNmUyNmE4
N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0IHRoYXQgY2Fw
dGlvbnMgYW5kIHN1YnRpdGxlcyBtZW51IGl0ZW1zIGFyZSBsb2NhbGl6ZWQuCi0KLUVWRU5UKGNh
bnBsYXl0aHJvdWdoKQotCi0qKiogU2V0IHRoZSB1c2VyIGxhbmd1YWdlIHByZWZlcmVuY2UuCi1S
VU4oaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoWydlbiddKSkKLUVYUEVDVEVE
IChjYXB0aW9uc1NlY3Rpb24udGV4dENvbnRlbnQgPT0gJ0Nsb3NlZCBDYXB0aW9ucycpIE9LCi1F
WFBFQ1RFRCAoY2FwdGlvbnNTZWN0aW9uLnRleHRDb250ZW50ID09ICdTdWJ0aXRsZXMnKSBPSwot
RVhQRUNURUQgKGl0ZW0udGV4dENvbnRlbnQgPT0gJ09mZicpIE9LCi1FWFBFQ1RFRCAoaXRlbS50
ZXh0Q29udGVudCA9PSAnTm8gbGFiZWwnKSBPSwotRU5EIE9GIFRFU1QKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2Fs
aXplZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJh
Y2ttZW51LWxvY2FsaXplZC5odG1sCmluZGV4IDZjYmNkMjJmY2EwNjIzZDhmZDhiMDZhZjg5MGI1
Y2QwMzQ1Mjk4OGIuLjRmYjQyNjBlYmQyMzUxNjA1OGI3NjZlMjRmYjY3N2Y1NWEyODdlNTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNr
bWVudS1sb2NhbGl6ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9s
cy1jYXB0aW9ucy10cmFja21lbnUtbG9jYWxpemVkLmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAg
ICAgIDxzY3JpcHQgc3JjPSJ0cmFja21lbnUtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxz
Y3JpcHQ+CiAKLSAgICAgICAgdmFyIGNhcHRpb25zU2VjdGlvbjsKKyAgICAgICAgdmFyIHRyYWNr
TGlzdFNlY3Rpb247CiAgICAgICAgIHZhciBpdGVtOwogCiAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKQEAgLTIwLDE5ICsyMCwxNCBAQAogICAgICAgICAgICAgaWYgKCF0cmFja0xpc3RF
bGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgLy8gVHJhY2sg
bGlzdCBzaG91bGQgaGF2ZSB0d28gPHNlY3Rpb24+IGVsZW1lbnRzLgotICAgICAgICAgICAgdmFy
IHRyYWNrTGlzdFNlY3Rpb25zID0gdHJhY2tMaXN0RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJo
MyIpOwotICAgICAgICAgICAgaWYgKCF0cmFja0xpc3RTZWN0aW9ucyB8fCB0cmFja0xpc3RTZWN0
aW9ucy5sZW5ndGggIT0gMikgewotICAgICAgICAgICAgICAgIGZhaWxUZXN0KCJUaGVyZSBzaG91
bGQgYmUgdHdvIHNlY3Rpb24gZWxlbWVudHMgaW4gdHJhY2sgbGlzdCBtZW51Iik7CisgICAgICAg
ICAgICB0cmFja0xpc3RTZWN0aW9uID0gdHJhY2tMaXN0RWxlbWVudC5xdWVyeVNlbGVjdG9yKCJo
MyIpOworICAgICAgICAgICAgaWYgKCF0cmFja0xpc3RTZWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgZmFpbFRlc3QoIlRoZXJlIHNob3VsZCBiZSBhIHNpbmdsZSBzZWN0aW9uIGVsZW1lbnQgaW4g
dHJhY2sgbGlzdCBtZW51Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBjYXB0aW9uc1NlY3Rpb24gPSB0cmFja0xpc3RTZWN0aW9uc1swXTsK
LSAgICAgICAgICAgIGxvZ0NvbnNvbGUoIkZpcnN0IHNlY3Rpb24gc2hvdWxkIGJlIGxhYmVsbGVk
ICdDbG9zZWQgQ2FwdGlvbnMnIik7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImNhcHRpb25z
U2VjdGlvbi50ZXh0Q29udGVudCIsICJDbG9zZWQgQ2FwdGlvbnMiKTsKLSAgICAgICAgICAgIGNh
cHRpb25zU2VjdGlvbiA9IHRyYWNrTGlzdFNlY3Rpb25zWzFdOwotICAgICAgICAgICAgbG9nQ29u
c29sZSgiU2Vjb25kIHNlY3Rpb24gc2hvdWxkIGJlIGxhYmVsbGVkICdTdWJ0aXRsZXMnIik7Ci0g
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImNhcHRpb25zU2VjdGlvbi50ZXh0Q29udGVudCIsICJT
dWJ0aXRsZXMiKTsKKyAgICAgICAgICAgIGxvZ0NvbnNvbGUoIkhlYWRpbmcgc2hvdWxkIGJlIGxh
YmVsbGVkICdTdWJ0aXRsZXMnIik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrTGlz
dFNlY3Rpb24udGV4dENvbnRlbnQiLCAiU3VidGl0bGVzIik7CiAKICAgICAgICAgICAgIHZhciBj
YXB0aW9uc0VudHJpZXMgPSB0cmFja0xpc3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImxpIik7
CiAgICAgICAgICAgICBpZiAoIWNhcHRpb25zRW50cmllcyB8fCBjYXB0aW9uc0VudHJpZXMubGVu
Z3RoIDw9IDApIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xz
LWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LXNvcnRlZC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NDcyZWRjNTdjNDBiNGNhMDVlYzVkYjg3
Y2FkYzUyODJkNzhjOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51
LXNvcnRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UZXN0
IHRoYXQgY2FwdGlvbnMgYW5kIHN1YnRpdGxlcyBhcmUgc29ydGVkIGluIHRoZSBtZW51LgotCi1F
VkVOVChjYW5wbGF5dGhyb3VnaCkKLQotKioqIFNldCB0aGUgdXNlciBsYW5ndWFnZSBwcmVmZXJl
bmNlLgotUlVOKGludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkpCi0K
LSoqKiBUZXN0IG1lbnUgc2VjdGlvbiAwLgotRmlyc3QgaXRlbSBzaG91bGQgYmUgbGFiZWxsZWQg
b2ZmIE9LCi1hIGlzIHRoZSBmaXJzdCByZWFsIGl0ZW0gaW4gdGhlIGxpc3QgT0sKLWEgY29tZXMg
YmVmb3JlIGIgT0sKLWIgY29tZXMgYmVmb3JlIGMgT0sKLWMgY29tZXMgYmVmb3JlIGQgT0sKLU1l
bnUgc2VjdGlvbiAwIHdhcyBvay4KLQotCi0qKiogVGVzdCBtZW51IHNlY3Rpb24gMS4KLUZpcnN0
IGl0ZW0gc2hvdWxkIGJlIGxhYmVsbGVkIG9mZiBPSwotYSBpcyB0aGUgZmlyc3QgcmVhbCBpdGVt
IGluIHRoZSBsaXN0IE9LCi1hIGNvbWVzIGJlZm9yZSBiIE9LCi1iIGNvbWVzIGJlZm9yZSBjIE9L
Ci1jIGNvbWVzIGJlZm9yZSBkIE9LCi1NZW51IHNlY3Rpb24gMSB3YXMgb2suCi0KLUVORCBPRiBU
RVNUCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRp
b25zLXRyYWNrbWVudS1zb3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRy
b2xzLWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQuaHRtbAppbmRleCA3NDdmNDAyZTVjYzdmMDNm
OTY5OGQ0YjhlOTI3ZDk5YTk0MzEzOTllLi5lNDBkZDVhNGZkMmVjNmU0NGViNzNkNDk1ZThiMDVm
NWI2ODQyZGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1j
YXB0aW9ucy10cmFja21lbnUtc29ydGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LXNvcnRlZC5odG1sCkBAIC0xNSwzMyArMTUs
MjggQEAKICAgICAgICAgICAgICAgICB2YXIgdHJhY2tMaXN0RWxlbWVudCA9IGdldFRyYWNrTGlz
dEVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdEVsZW1lbnQpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAvLyBUcmFjayBsaXN0IHNo
b3VsZCBoYXZlIHR3byA8dWw+IGVsZW1lbnRzLgotICAgICAgICAgICAgICAgIHZhciB0cmFja0xp
c3RTZWN0aW9ucyA9IHRyYWNrTGlzdEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgidWwiKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdFNlY3Rpb25zIHx8IHRyYWNrTGlzdFNlY3Rpb25z
Lmxlbmd0aCAhPSAyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZhaWxUZXN0KCJUaGVyZSBzaG91
bGQgYmUgdHdvIHVsIGVsZW1lbnRzIGluIHRyYWNrIGxpc3QgbWVudSIpOworICAgICAgICAgICAg
ICAgIHZhciB0cmFja0xpc3RTZWN0aW9uID0gdHJhY2tMaXN0RWxlbWVudC5xdWVyeVNlbGVjdG9y
KCJ1bCIpOworICAgICAgICAgICAgICAgIGlmICghdHJhY2tMaXN0U2VjdGlvbikgeworICAgICAg
ICAgICAgICAgICAgICBmYWlsVGVzdCgiVGhlcmUgc2hvdWxkIGJlIGEgdWwgZWxlbWVudCBpbiB0
cmFjayBsaXN0IG1lbnUiKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyYWNrTGlzdFNl
Y3Rpb25zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
PGJyPioqKiBUZXN0IG1lbnUgc2VjdGlvbiAiICsgaSArICIuIik7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciBsYXN0VHJhY2tMYWJlbCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB0
cmFja0xpc3RJdGVtcyA9IHRyYWNrTGlzdFNlY3Rpb25zW2ldLnF1ZXJ5U2VsZWN0b3JBbGwoImxp
Iik7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghdHJhY2tMaXN0SXRlbXMgfHwgdHJhY2tMaXN0
SXRlbXMubGVuZ3RoICE9IDUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxUZXN0KCJU
aGVyZSBzaG91bGQgYmUgZml2ZSBsaSBlbGVtZW50cyBpbiB0aGlzIHNlY3Rpb24iKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRyYWNrTGlzdEl0ZW1zLmxlbmd0aDsg
aisrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRyYWNrTGlzdEl0ZW1z
W2pdOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2dSZXN1bHQoaXRlbS50ZXh0Q29udGVudCA9PSAiT2ZmIiwgIkZpcnN0
IGl0ZW0gc2hvdWxkIGJlIGxhYmVsbGVkIG9mZiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUcmFja0xhYmVsKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dSZXN1bHQoaXRlbS50ZXh0Q29udGVu
dCA+IGxhc3RUcmFja0xhYmVsLCBsYXN0VHJhY2tMYWJlbCArICIgY29tZXMgYmVmb3JlICIgKyBp
dGVtLnRleHRDb250ZW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1Jlc3VsdCh0cnVlLCBpdGVtLnRleHRDb250
ZW50ICsgIiBpcyB0aGUgZmlyc3QgcmVhbCBpdGVtIGluIHRoZSBsaXN0Iik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGFzdFRyYWNrTGFiZWwgPSBpdGVtLnRleHRDb250ZW50OwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBsYXN0VHJhY2tMYWJl
bCA9IG51bGw7CisgICAgICAgICAgICAgICAgdmFyIHRyYWNrTGlzdEl0ZW1zID0gdHJhY2tMaXN0
U2VjdGlvbi5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpOworICAgICAgICAgICAgICAgIGlmICghdHJh
Y2tMaXN0SXRlbXMgfHwgdHJhY2tMaXN0SXRlbXMubGVuZ3RoICE9IDcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZmFpbFRlc3QoIlRoZXJlIHNob3VsZCBiZSBzZXZlbiBsaSBlbGVtZW50cyBpbiB0
aGUgbWVudSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHJhY2tMaXN0SXRlbXMubGVu
Z3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0cmFja0xpc3RJdGVt
c1tqXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZ1Jlc3VsdChpdGVtLnRleHRDb250ZW50ID09ICJPZmYiLCAiRmlyc3QgaXRlbSBz
aG91bGQgYmUgbGFiZWxsZWQgb2ZmIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUcmFja0xhYmVsKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvZ1Jlc3VsdChpdGVtLnRleHRDb250ZW50ID4gbGFzdFRyYWNrTGFiZWws
IGxhc3RUcmFja0xhYmVsICsgIiBjb21lcyBiZWZvcmUgIiArIGl0ZW0udGV4dENvbnRlbnQpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvZ1Jlc3VsdCh0cnVlLCBpdGVtLnRleHRDb250ZW50ICsgIiBpcyB0aGUgZmlyc3QgcmVhbCBp
dGVtIGluIHRoZSBsaXN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VHJhY2tMYWJl
bCA9IGl0ZW0udGV4dENvbnRlbnQ7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCJNZW51IHNlY3Rpb24gIiArIGkgKyAiIHdhcyBvay48YnI+
Iik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAg
ICAgICAgIH0KQEAgLTYxLDExICs1Niw5IEBACiAgICAgICAgICAgICA8dHJhY2sgbGFiZWw9ImMi
IGtpbmQ9ImNhcHRpb25zIiBzcmM9InRyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1mYXN0
LnZ0dCIgc3JjbGFuZz0iamEiPgogICAgICAgICAgICAgPHRyYWNrIGxhYmVsPSJiIiBraW5kPSJj
YXB0aW9ucyIgc3JjPSJ0cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMtZmFzdC52dHQiIHNy
Y2xhbmc9ImVuLWF1Ij4KICAgICAgICAgICAgIDx0cmFjayBsYWJlbD0iYSIga2luZD0iY2FwdGlv
bnMiIHNyYz0idHJhY2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWZhc3QudnR0IiBzcmNsYW5n
PSJlbiI+Ci0gICAgICAgICAgICA8dHJhY2sgbGFiZWw9ImQiIGtpbmQ9ImNhcHRpb25zIiBzcmM9
InRyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1mYXN0LnZ0dCIgc3JjbGFuZz0iamEiPgog
ICAgICAgICAgICAgPHRyYWNrIGxhYmVsPSJiIiBraW5kPSJzdWJ0aXRsZXMiIHNyYz0idHJhY2sv
Y2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWZhc3QudnR0IiBzcmNsYW5nPSJqYSI+CiAgICAgICAg
ICAgICA8dHJhY2sgbGFiZWw9ImEiIGtpbmQ9InN1YnRpdGxlcyIgc3JjPSJ0cmFjay9jYXB0aW9u
cy13ZWJ2dHQvY2FwdGlvbnMtZmFzdC52dHQiIHNyY2xhbmc9ImVuLWF1Ij4KICAgICAgICAgICAg
IDx0cmFjayBsYWJlbD0iYyIga2luZD0ic3VidGl0bGVzIiBzcmM9InRyYWNrL2NhcHRpb25zLXdl
YnZ0dC9jYXB0aW9ucy1mYXN0LnZ0dCIgc3JjbGFuZz0iZW4iPgotICAgICAgICAgICAgPHRyYWNr
IGxhYmVsPSJkIiBraW5kPSJzdWJ0aXRsZXMiIHNyYz0idHJhY2svY2FwdGlvbnMtd2VidnR0L2Nh
cHRpb25zLWZhc3QudnR0IiBzcmNsYW5nPSJqYSI+CiAgICAgICAgIDwvdmlkZW8+CiAgICAgPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJv
bHMtY2FwdGlvbnMtdHJhY2ttZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250
cm9scy1jYXB0aW9ucy10cmFja21lbnUuaHRtbAppbmRleCAyYWUwOWI1YWEwNDQ3ZWViNTI0MzQy
NGUzOTRhNWI3N2RjZDZlM2QyLi4zODNhM2YwMzk2OWQ5NzBlNDI5MjQ3MzZlNDhkODQwZTgyODhm
NjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9u
cy10cmFja21lbnUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1j
YXB0aW9ucy10cmFja21lbnUuaHRtbApAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgICAgICAg
IHZhciB0cmFja0xpc3RFbGVtZW50ID0gZ2V0VHJhY2tMaXN0RWxlbWVudCgpOwogICAgICAgICAg
ICAgICAgIGlmICghdHJhY2tMaXN0RWxlbWVudCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgICAgIC8vIFRyYWNrIGxpc3Qgc2hvdWxkIGhhdmUgYSA8dWw+IHdpdGgg
Zml2ZSA8bGk+IGNoaWxkcmVuIChPbmUgb2YgdGhlbSBpcyAiT2ZmIikuCisgICAgICAgICAgICAg
ICAgLy8gVHJhY2sgbGlzdCBzaG91bGQgaGF2ZSBhIDx1bD4gd2l0aCA8bGk+IGNoaWxkcmVuIChP
bmUgb2YgdGhlbSBpcyAiT2ZmIikuCiAgICAgICAgICAgICAgICAgdmFyIHRyYWNrTGlzdCA9IHRy
YWNrTGlzdEVsZW1lbnQucXVlcnlTZWxlY3RvcigidWwiKTsKICAgICAgICAgICAgICAgICBpZiAo
IXRyYWNrTGlzdCkgewogICAgICAgICAgICAgICAgICAgICBmYWlsVGVzdCgiQ291bGQgbm90IGZp
bmQgYSBjaGlsZCB1bCBlbGVtZW50IGluIHRyYWNrIGxpc3QgbWVudSIpOwpAQCAtNzAsOSArNzAs
OSBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
dGV4dFRyYWNrcy5sZW5ndGgiLCA0KTsKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRy
YWNrIDAgc2hvdWxkIGJlIHNob3dpbmciKTsKLSAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLnRleHRUcmFja3NbMF0ubW9kZSIsICJkaXNhYmxlZCIpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1swXS5tb2RlIiwgInNob3dpbmciKTsKICAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRyYWNrIDEgc2hvdWxkIGJlIGRpc2FibGVkIik7
Ci0gICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzFdLm1vZGUi
LCAic2hvd2luZyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRy
YWNrc1sxXS5tb2RlIiwgImRpc2FibGVkIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCJUcmFjayAyIHNob3VsZCBiZSBkaXNhYmxlZCIpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidmlkZW8udGV4dFRyYWNrc1syXS5tb2RlIiwgImRpc2FibGVkIik7CiAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJUcmFjayAzIHNob3VsZCBiZSBkaXNhYmxlZCIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRp
b25zLXRyYWNrbWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVk
aWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMDUwMWJmNTQ3MmFhMDEyY2ZmMmY1OGIwYzVhN2NjNDRjMWYxODZjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNh
cHRpb25zLXRyYWNrbWVudS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVzdCB0aGF0
IHdlIGFyZSBhYmxlIHRvIHRyaWdnZXIgdGhlIGxpc3Qgb2YgY2FwdGlvbnMsIGFuZCBzZWxlY3Qg
ZnJvbSB0aGUgbGlzdC4KKworRVZFTlQoY2FucGxheXRocm91Z2gpCisKKyoqKiBTZXQgdGhlIHVz
ZXIgbGFuZ3VhZ2UgcHJlZmVyZW5jZS4KK1JVTihpbnRlcm5hbHMuc2V0VXNlclByZWZlcnJlZExh
bmd1YWdlcyhbJ2VuJ10pKQorCisqKiogQWRkIGFub3RoZXIgdGV4dCB0cmFjay4KK1JVTih2aWRl
by5hZGRUZXh0VHJhY2soImNhcHRpb25zIiwgIkNvbW1lbnRhcnkiLCAicnUiKSkKKyoqKiBUdXJu
aW5nIGNhcHRpb25zIG9uCitUaGVyZSBzaG91bGQgYmUgNSBpdGVtcyBpbiB0aGUgbWVudS4KK0VY
UEVDVEVEICg1ID09ICc1JykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCA9
PSAnNCcpIE9LCitUcmFjayAwIHNob3VsZCBiZSBzaG93aW5nCitFWFBFQ1RFRCAodmlkZW8udGV4
dFRyYWNrc1swXS5tb2RlID09ICdzaG93aW5nJykgT0sKK1RyYWNrIDEgc2hvdWxkIGJlIGRpc2Fi
bGVkCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1sxXS5tb2RlID09ICdkaXNhYmxlZCcpIE9L
CitUcmFjayAyIHNob3VsZCBiZSBkaXNhYmxlZAorRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3Nb
Ml0ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworVHJhY2sgMyBzaG91bGQgYmUgZGlzYWJsZWQKK0VY
UEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzNdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sKK0VYUEVD
VEVEICh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2Rpc3BsYXknKS5pbm5lclRleHQg
PT0gJ0xvcmVtJykgT0sKKworKioqIFJlbW92ZSBhIHRyYWNrLgorUlVOKHZpZGVvLnJlbW92ZUNo
aWxkKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRyYWNrIilbMF0pKQorKioqIFR1cm5pbmcg
Y2FwdGlvbnMgb2ZmCitUaGVyZSBzaG91bGQgYmUgNCBpdGVtcyBpbiB0aGUgbWVudS4KK0VYUEVD
VEVEICg0ID09ICc0JykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCA9PSAn
MycpIE9LCitUcmFjayAwIHNob3VsZCBiZSBkaXNhYmxlZAorRVhQRUNURUQgKHZpZGVvLnRleHRU
cmFja3NbMF0ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworVHJhY2sgMSBzaG91bGQgYmUgZGlzYWJs
ZWQKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzFdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sK
K1RyYWNrIDIgc2hvdWxkIGJlIGRpc2FibGVkCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1sy
XS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCitObyB0ZXh0IHRyYWNrIGN1ZSB3aXRoIGRpc3BsYXkg
aWQgJy13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5JyBpcyBjdXJyZW50bHkgdmlzaWJs
ZQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21l
ZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRp
b25zLXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MDU0ZGFi
ZDZkNGM4YjA5NTE3N2M5NDcyMGZmYzQxOTY5MmM5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2tt
ZW51LWxvY2FsaXplZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0IGNh
cHRpb25zIGFuZCBzdWJ0aXRsZXMgbWVudSBpdGVtcyBhcmUgbG9jYWxpemVkLgorCitFVkVOVChj
YW5wbGF5dGhyb3VnaCkKKworKioqIFNldCB0aGUgdXNlciBsYW5ndWFnZSBwcmVmZXJlbmNlLgor
UlVOKGludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkpCitFWFBFQ1RF
RCAodHJhY2tMaXN0U2VjdGlvbi50ZXh0Q29udGVudCA9PSAnU3VidGl0bGVzJykgT0sKK0VYUEVD
VEVEIChpdGVtLnRleHRDb250ZW50ID09ICdPZmYnKSBPSworRVhQRUNURUQgKGl0ZW0udGV4dENv
bnRlbnQgPT0gJ05vIGxhYmVsJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21l
bnUtc29ydGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92
aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtc29ydGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYWZlOWQxNmFlMWE4NTI2NWJmYmRkMDkzMDJkMTdlNDA5ODU4NzNmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xz
LWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1Rlc3QgdGhhdCBjYXB0aW9ucyBhbmQgc3VidGl0bGVzIGFyZSBzb3J0ZWQgaW4gdGhlIG1lbnUu
CisKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorCisqKiogU2V0IHRoZSB1c2VyIGxhbmd1YWdlIHBy
ZWZlcmVuY2UuCitSVU4oaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoWydlbidd
KSkKK0ZpcnN0IGl0ZW0gc2hvdWxkIGJlIGxhYmVsbGVkIG9mZiBPSworYSBFbmdsaXNoIChBdXN0
cmFsaWEpIGlzIHRoZSBmaXJzdCByZWFsIGl0ZW0gaW4gdGhlIGxpc3QgT0sKK2EgRW5nbGlzaCAo
QXVzdHJhbGlhKSBjb21lcyBiZWZvcmUgYSBFbmdsaXNoIFNESCBPSworYSBFbmdsaXNoIFNESCBj
b21lcyBiZWZvcmUgYiBFbmdsaXNoIChBdXN0cmFsaWEpIFNESCBPSworYiBFbmdsaXNoIChBdXN0
cmFsaWEpIFNESCBjb21lcyBiZWZvcmUgYiBKYXBhbmVzZSBPSworYiBKYXBhbmVzZSBjb21lcyBi
ZWZvcmUgYyBFbmdsaXNoIE9LCitjIEVuZ2xpc2ggY29tZXMgYmVmb3JlIGMgSmFwYW5lc2UgU0RI
IE9LCitFTkQgT0YgVEVTVAorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186525</attachid>
            <date>2013-02-04 19:10:32 -0800</date>
            <delta_ts>2013-02-05 00:04:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108882-20130205140710.patch</filename>
            <type>text/plain</type>
            <size>33182</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY1MWNmZGVhOTU0OGNk
NzQ2MjgxNGVkNWE1NzZhOTljODM4OTllMC4uMjA4MzliOTBkNDVmNTMwNmE1N2YxNGE4M2Q4OWIw
MzgyZThkOGVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTA0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBDYXB0aW9ucyBtZW51
IHNob3VsZCBpbmRpY2F0ZSBsYW5ndWFnZSBhbmQgdHlwZSBvZiB0cmFjaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODgyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gTWFjLCB3ZSB3YW50IGEgc3Bl
Y2lmaWMgZm9ybWF0IGZvciBtZW51IGl0ZW1zIGluIGEgY2FwdGlvbiBsaXN0LiBTaW5jZQorICAg
ICAgICBvdGhlciBwb3J0cyBtaWdodCB3YW50IGRpZmZlcmVudCBmb3JtYXRzLCBtb3ZlIHRoZSBn
ZW5lcmF0aW9uIG9mIHRoZSBsYWJlbAorICAgICAgICBpbnRvIENhcHRpb25zVXNlclByZWZlcmVu
Y2VzIHdoZXJlIGl0IGNhbiBiZSBvdmVycmlkZGVuLgorCisgICAgICAgIFRoaXMgcmVxdWlyZWQg
Q2FwdGlvbnNVc2VyUHJlZmVyZW5jZXMgdG8gYmVjb21lIHB1YmxpYyBvbiB0aGUgUGFnZUdyb3Vw
LCBzbworICAgICAgICBpdCBjb3VsZCBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIG1lbnUuIEFs
c28sIHNpbmNlIENhcHRpb25zVXNlclByZWZlcmVuY2VzCisgICAgICAgIHdhcyBoaWRkZW4gb24g
TW91bnRhaW4gTGlvbiBhbmQgYmVsb3csIGJlIGEgbGl0dGxlIG1vcmUgc3BlY2lmaWMgYWJvdXQK
KyAgICAgICAgd2hpY2ggcGllY2VzIGNhbiBiZSBzZWVuIG9uIHdoaWNoIGJ1aWxkcy4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXNpdGluZyBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10
cmFja21lbnUgdGVzdHMuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3M6IFJlbW92ZSB0ZXh0VHJhY2tDbG9zZWRDYXB0aW9uc1RleHQuCisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0
TWVudSk6IEJ1aWxkIG9ubHkKKyAgICAgICAgICAgIG9uZSBzZWN0aW9uIGFuZCBnZXQgdGhlIHRy
YWNrJ3MgZGlzcGxheSBuYW1lIGZyb20gdGhlIHVzZXIgcHJlZmVyZW5jZXMuCisgICAgICAgICog
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpkaXNwbGF5TmFtZUZvclRyYWNrKTogRGVmYXVsdCBpbXBsZW1lbnRh
dGlvbiBvZgorICAgICAgICAgICAgdmlydHVhbCBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIGEgbGFi
ZWwgZm9yIGEgY2FwdGlvbnMgbWVudSBpdGVtLgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01hYy5oOiBBZGQgdGhlIG5ldyB2aXJ0dWFsIGZ1bmN0aW9uLCBhbmQgZXhwb3Nl
IGp1c3QKKyAgICAgICAgICAgIGEgYml0IG9mIHRoaXMgY2xhc3Mgb3V0c2lkZSAxMC45IGJ1aWxk
cy4KKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWFjKTogR3VhcmQgZmVhdHVyZXMgZm9yIHN5c3RlbSB2ZXJzaW9uLgorICAgICAgICAoV2Vi
Q29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6fkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6
OmRpc3BsYXlOYW1lRm9yVHJhY2spOiBOZXcgT1MgWC1zcGVjaWZpYyBtZXRob2QgdGhhdAorICAg
ICAgICAgICAgcmV0dXJucyBhIHN0cmluZyBmb3IgdGhlIG1lbnUgbGFiZWwuCisgICAgICAgICog
cGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjYXB0aW9u
UHJlZmVyZW5jZXMpOiBVbmd1YXJkIGZvciBzeXN0ZW0gdmVyc2lvbi4KKyAgICAgICAgKiBwYWdl
L1BhZ2VHcm91cC5oOiBNYWtlIGNhcHRpb25QcmVmZXJlbmNlcyBwdWJsaWMuCisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6IFJlbW92ZSB0ZXh0VHJhY2tDbG9zZWRDYXB0
aW9uc1RleHQgLSBub3QgbmVlZGVkIGFueSBtb3JlLgorICAgICAgICAqIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaDogUmVtb3ZlIHRleHRUcmFja0Nsb3NlZENhcHRpb25zVGV4dC4KKworMjAx
My0wMi0wNCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKICAgICAgICAgRGVmYXVs
dCBlbGVtZW50IHN0eWxlcyBhcmUgbm90IGFsd2F5cyBjb2xsZWN0ZWQgZm9yIHNoYXJpbmcgZGV0
ZWN0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDg0MDQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzCmluZGV4IDc4NDcyZTJiNjE3N2QwNTQwYWQwMDFlNTgzNGVkYWQ4MTM0MzgyMGEuLjI5
YWU4MWZiNDljNzQzNzU1MGQ3ZmMzYzljYmFlY2UxZDllZTZiMDUgMTAwNjQ0CkdJVCBiaW5hcnkg
cGF0Y2gKZGVsdGEgOTAKemNtYUVJbikkO2k8Xyg7KGxqVilYSGxMTFpzR1hjVkt9azJDQSZvKFMh
STI/fCE0cFUtRnIrWX4wITE8ekBfQEptCm1pMVVGZzElQElab3hfbTIqPX1+UD9kMCNXQko0UnBz
YllxYiY5YG9GQGQ1ekRCTl9ZdgoKZGVsdGEgOTYKemNtZXh4aXV1V0Q8Xyg7KGxsQSR5Q1U8OVBP
dWwkZ1p0YDZSRWBEYyo5RU47YFZ1bjxQNmIxemI9ZzkkQUJ7OVN2Cm9UJEcoR3BRcDUwVGhec15e
MUBrU2xORCE2WjlZNHomVVcoQlN3ZnBMWj9OK00wNj8xfHZqNn05CgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDQxYzNm
MmUyZDBlYTFmYTIyNTI5NDczNGI5ODY5ZjU2ZGM0ZjRjZWMuLmZjNmUwYTU1YzY3OTkxYmI1ZGNj
YTM2MmU3ZmIwNmM4Nzc2MzViYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpZiBFTkFC
TEUoVklERU8pCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKIAorI2luY2x1ZGUg
IkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKQEAgLTg3MSwx
OSArODcyLDE0IEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVt
ZW50OjpyZWJ1aWxkVHJhY2tMaXN0TWVudSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIERvY3Vt
ZW50KiBkb2MgPSBkb2N1bWVudCgpOworICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRp
b25zVXNlclByZWZlcmVuY2VzID0gZG9jLT5wYWdlKCktPmdyb3VwKCkuY2FwdGlvblByZWZlcmVu
Y2VzKCk7CiAKICAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNTZWN0aW9uID0gZG9jLT5jcmVh
dGVFbGVtZW50KHNlY3Rpb25UYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIFJlZlB0cjxF
bGVtZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvYy0+Y3JlYXRlRWxlbWVudChoM1RhZywgQVNTRVJU
X05PX0VYQ0VQVElPTik7Ci0gICAgY2FwdGlvbnNIZWFkZXItPmFwcGVuZENoaWxkKGRvYy0+Y3Jl
YXRlVGV4dE5vZGUodGV4dFRyYWNrQ2xvc2VkQ2FwdGlvbnNUZXh0KCkpKTsKKyAgICBjYXB0aW9u
c0hlYWRlci0+YXBwZW5kQ2hpbGQoZG9jLT5jcmVhdGVUZXh0Tm9kZSh0ZXh0VHJhY2tTdWJ0aXRs
ZXNUZXh0KCkpKTsKICAgICBjYXB0aW9uc1NlY3Rpb24tPmFwcGVuZENoaWxkKGNhcHRpb25zSGVh
ZGVyKTsKICAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRvYy0+Y3JlYXRl
RWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVu
dD4gc3VidGl0bGVzU2VjdGlvbiA9IGRvYy0+Y3JlYXRlRWxlbWVudChzZWN0aW9uVGFnLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gc3VidGl0bGVzSGVhZGVyID0g
ZG9jLT5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBzdWJ0
aXRsZXNIZWFkZXItPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUodGV4dFRyYWNrU3Vi
dGl0bGVzVGV4dCgpKSk7Ci0gICAgc3VidGl0bGVzU2VjdGlvbi0+YXBwZW5kQ2hpbGQoc3VidGl0
bGVzSGVhZGVyKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gc3VidGl0bGVzTWVudUxpc3QgPSBkb2Mt
PmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwotCiAgICAgUmVmUHRy
PEVsZW1lbnQ+IHRyYWNrSXRlbTsKIAogICAgIHRyYWNrSXRlbSA9IGRvYy0+Y3JlYXRlRWxlbWVu
dChsaVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CkBAIC04OTIsMTUgKzg4OCw2IEBAIHZvaWQg
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpyZWJ1aWxkVHJhY2tM
aXN0TWVudSgpCiAgICAgY2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQodHJhY2tJdGVtKTsK
ICAgICBtX21lbnVJdGVtcy5hcHBlbmQodHJhY2tJdGVtKTsKIAotICAgIHRyYWNrSXRlbSA9IGRv
Yy0+Y3JlYXRlRWxlbWVudChsaVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgdHJhY2tJ
dGVtLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKHRleHRUcmFja09mZlRleHQoKSkp
OwotICAgIHRyYWNrSXRlbS0+c2V0QXR0cmlidXRlKHRyYWNrSW5kZXhBdHRyaWJ1dGVOYW1lKCks
IHRleHRUcmFja3NPZmZBdHRyVmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIHN1YnRp
dGxlc01lbnVMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0ZW0pOwotICAgIG1fbWVudUl0ZW1zLmFw
cGVuZCh0cmFja0l0ZW0pOwotCi0gICAgYm9vbCBoYXNDYXB0aW9ucyA9IGZhbHNlOwotICAgIGJv
b2wgaGFzU3VidGl0bGVzID0gZmFsc2U7Ci0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5n
dGggPSB0cmFja0xpc3QtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgVGV4
dFRyYWNrKiB0cmFjayA9IHRyYWNrTGlzdC0+aXRlbShpKTsKICAgICAgICAgdHJhY2tJdGVtID0g
ZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKQEAgLTkxMSwz
MSArODk4LDE3IEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVt
ZW50OjpyZWJ1aWxkVHJhY2tMaXN0TWVudSgpCiAgICAgICAgIC8vIHNob3VsZCBhbHdheXMgYmUg
aW4gc3luYy4KICAgICAgICAgdHJhY2tJdGVtLT5zZXRBdHRyaWJ1dGUodHJhY2tJbmRleEF0dHJp
YnV0ZU5hbWUoKSwgU3RyaW5nOjpudW1iZXIoaSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0g
ICAgICAgIEF0b21pY1N0cmluZyBsYWJlbFRleHQgPSB0cmFjay0+bGFiZWwoKTsKLSAgICAgICAg
aWYgKGxhYmVsVGV4dC5pc051bGwoKSB8fCBsYWJlbFRleHQuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgbGFiZWxUZXh0ID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZSh0cmFjay0+bGFuZ3Vh
Z2UoKSk7Ci0gICAgICAgIGlmIChsYWJlbFRleHQuaXNOdWxsKCkgfHwgbGFiZWxUZXh0LmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIGxhYmVsVGV4dCA9IHRleHRUcmFja05vTGFiZWxUZXh0KCk7Ci0g
ICAgICAgIHRyYWNrSXRlbS0+YXBwZW5kQ2hpbGQoZG9jLT5jcmVhdGVUZXh0Tm9kZShsYWJlbFRl
eHQpKTsKKyAgICAgICAgaWYgKGNhcHRpb25zVXNlclByZWZlcmVuY2VzKQorICAgICAgICAgICAg
dHJhY2tJdGVtLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKGNhcHRpb25zVXNlclBy
ZWZlcmVuY2VzLT5kaXNwbGF5TmFtZUZvclRyYWNrKHRyYWNrKSkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0cmFja0l0ZW0tPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUodHJh
Y2stPmxhYmVsKCkpKTsKIAotICAgICAgICBpZiAodHJhY2stPmtpbmQoKSA9PSB0cmFjay0+Y2Fw
dGlvbnNLZXl3b3JkKCkpIHsKLSAgICAgICAgICAgIGhhc0NhcHRpb25zID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGluc2VydFRleHRUcmFja01lbnVJdGVtSW50b1NvcnRlZENvbnRhaW5lcih0cmFja0l0
ZW0sIGNhcHRpb25zTWVudUxpc3QpOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0cmFjay0+a2lu
ZCgpID09IHRyYWNrLT5zdWJ0aXRsZXNLZXl3b3JkKCkpIHsKLSAgICAgICAgICAgIGhhc1N1YnRp
dGxlcyA9IHRydWU7Ci0gICAgICAgICAgICBpbnNlcnRUZXh0VHJhY2tNZW51SXRlbUludG9Tb3J0
ZWRDb250YWluZXIodHJhY2tJdGVtLCBzdWJ0aXRsZXNNZW51TGlzdCk7Ci0gICAgICAgIH0KKyAg
ICAgICAgaW5zZXJ0VGV4dFRyYWNrTWVudUl0ZW1JbnRvU29ydGVkQ29udGFpbmVyKHRyYWNrSXRl
bSwgY2FwdGlvbnNNZW51TGlzdCk7CiAgICAgICAgIG1fbWVudUl0ZW1zLmFwcGVuZCh0cmFja0l0
ZW0pOwogICAgIH0KIAogICAgIGNhcHRpb25zU2VjdGlvbi0+YXBwZW5kQ2hpbGQoY2FwdGlvbnNN
ZW51TGlzdCk7Ci0gICAgc3VidGl0bGVzU2VjdGlvbi0+YXBwZW5kQ2hpbGQoc3VidGl0bGVzTWVu
dUxpc3QpOwotCi0gICAgaWYgKGhhc0NhcHRpb25zKQotICAgICAgICBhcHBlbmRDaGlsZChjYXB0
aW9uc1NlY3Rpb24pOwotICAgIGlmIChoYXNTdWJ0aXRsZXMpCi0gICAgICAgIGFwcGVuZENoaWxk
KHN1YnRpdGxlc1NlY3Rpb24pOworICAgIGFwcGVuZENoaWxkKGNhcHRpb25zU2VjdGlvbik7CiAK
ICAgICB1cGRhdGVEaXNwbGF5KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmgKaW5kZXggMzY1MDEwNGE2ZTVmMjZmOTFhYTczYWUwMWEyOGJh
MDE1YzhhMzY0OC4uNmVkYjRlMjQ0ZmFmNWNhYWE3YzljNGExMTY0MjM1MmMxZDE1NDBlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmgKQEAgLTI5LDYg
KzI5LDggQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJMYW5ndWFnZS5o
IgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2suaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgogCkBAIC01OSw2ICs2MSwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dFByZWZlcnJlZExhbmd1YWdlKFN0cmluZykgY29uc3QgeyB9CiAgICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdCB7IHJldHVybiBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoKTsgfQogCisgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheU5hbWVG
b3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKHRyYWNr
LT5sYWJlbCgpLmlzRW1wdHkoKSAmJiB0cmFjay0+bGFuZ3VhZ2UoKS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXR1cm4gdGV4dFRyYWNrTm9MYWJlbFRleHQoKTsKKyAgICAgICAgaWYgKCF0cmFj
ay0+bGFiZWwoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gdHJhY2stPmxhYmVsKCk7
CisgICAgICAgIHJldHVybiB0cmFjay0+bGFuZ3VhZ2UoKTsKKyAgICB9CisKICAgICBQYWdlR3Jv
dXAqIHBhZ2VHcm91cCgpIHsgcmV0dXJuIG1fcGFnZUdyb3VwOyB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLmgKaW5kZXgg
Y2ZiZDIyYjVkNDU1NGY2ZDYzM2MxYjAwODJhZWVjZWRlN2Q0NTMwMy4uYTM5NTdlNDc4NWUxNGNm
MDBiOWUzOTMzYWZjOTFhMjY3NjVhNzU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01hY19oCiAjZGVmaW5lIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
YWNfaAogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBNQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDkwCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiQ1NT
UHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKQEAg
LTQwLDYgKzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNYWM+IGNyZWF0ZShQYWdlR3JvdXAqIGdyb3VwKSB7IHJldHVybiBhZG9wdFB0
cihuZXcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYyhncm91cCkpOyB9CiAgICAgdmlydHVhbCB+
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYygpOwogCisjaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAogICAgIHZpcnR1YWwgYm9vbCB1c2VyUHJlZmVyc0NhcHRpb25zKCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFVzZXJQcmVmZXJzQ2FwdGlvbnMo
Ym9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHVzZXJIYXNDYXB0aW9uUHJlZmVyZW5j
ZXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CkBAIC01MiwxMCArNTMsMTQgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVkTGFuZ3VhZ2VzKCkg
Y29uc3QgT1ZFUlJJREU7CiAKICAgICB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsK
KyNlbmRpZgorCisgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJh
Y2sqKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWFjKFBhZ2VHcm91cCopOwogCisjaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA5MAogICAgIFN0cmluZyBjYXB0aW9uc1dpbmRvd0NTUygpIGNvbnN0OwogICAgIFN0cmlu
ZyBjYXB0aW9uc0JhY2tncm91bmRDU1MoKSBjb25zdDsKICAgICBTdHJpbmcgY2FwdGlvbnNUZXh0
Q29sb3JDU1MoKSBjb25zdDsKQEAgLTcxLDYgKzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hT
ZXQ8Q2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKj4gbV9jYXB0aW9uUHJlZmVyZW5j
ZUNoYW5nZUxpc3RlbmVyczsKICAgICBib29sIG1fbGlzdGVuaW5nRm9yUHJlZmVyZW5jZUNoYW5n
ZXM7CisjZW5kaWYKIH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggMDJmNDFkNWZjOWMzNWNhYzYzMmVlMDY1NTZl
NmNiYTkyMGU4Y2UyMi4uNTk1OTZjMDFjZmY1MDM3NGFlMWNkYWU0YWRmYTI5NGI5NDEyYmE2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5t
bQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShW
SURFT19UUkFDSykgJiYgTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKIAogI2ltcG9ydCAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yy5oIgogCkBAIC0zNCw3ICszNCwxMSBAQAogI2ltcG9ydCAiRE9NV3JhcHBlcldvcmxkLmgiCiAj
aW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKICNpbXBvcnQgIktVUkwuaCIKKyNpbXBvcnQgIkxh
bmd1YWdlLmgiCisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaWYgTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogI2ltcG9ydCAiTWVkaWFBY2Nlc3NpYmlsaXR5L01l
ZGlhQWNjZXNzaWJpbGl0eS5oIgorI2VuZGlmCiAjaW1wb3J0ICJQYWdlR3JvdXAuaCIKICNpbXBv
cnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tDdWUuaCIKQEAgLTQyLDYgKzQ2
LDggQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAorI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAK
KwogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChNZWRpYUFjY2Vzc2liaWxpdHkpCiAKIFNP
RlRfTElOSyhNZWRpYUFjY2Vzc2liaWxpdHksIE1BQ2FwdGlvbkFwcGVhcmFuY2VHZXRTaG93Q2Fw
dGlvbnMsIGJvb2wsIChNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWluIGRvbWFpbiksIChkb21haW4p
KQpAQCAtNjIsMjcgKzY4LDM2IEBAIFNPRlRfTElOSyhNZWRpYUFjY2Vzc2liaWxpdHksIE1BQ2Fw
dGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRMYW5ndWFnZXMsIENGQXJyYXlSCiBTT0ZUX0xJTktf
UE9JTlRFUihNZWRpYUFjY2Vzc2liaWxpdHksIGtNQVhDYXB0aW9uQXBwZWFyYW5jZVNldHRpbmdz
Q2hhbmdlZE5vdGlmaWNhdGlvbiwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtNQVhDYXB0aW9uQXBw
ZWFyYW5jZVNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbiBnZXRrTUFYQ2FwdGlvbkFwcGVhcmFu
Y2VTZXR0aW5nc0NoYW5nZWROb3RpZmljYXRpb24oKQogCisjZW5kaWYKKwogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MAogc3RhdGljIHZvaWQgdXNlckNhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWROb3RpZmljYXRpb25DYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCog
b2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkICosIENGRGljdGlvbmFyeVJlZikKIHsK
ICAgICBzdGF0aWNfY2FzdDxDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjKj4ob2JzZXJ2ZXIpLT5j
YXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiB9CisjZW5kaWYKIAogQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01hYzo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYyhQYWdlR3JvdXAqIGdyb3VwKQog
ICAgIDogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyhncm91cCkKKyNpZiBNQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgLCBtX2xpc3RlbmluZ0ZvclByZWZlcmVuY2VDaGFu
Z2VzKGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6On5D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWFjKCkKIHsKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDkwCiAgICAgaWYgKGtNQVhDYXB0aW9uQXBwZWFyYW5jZVNldHRpbmdzQ2hh
bmdlZE5vdGlmaWNhdGlvbikKICAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNl
cnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksIHRoaXMsIGtNQVhDYXB0
aW9uQXBwZWFyYW5jZVNldHRpbmdzQ2hhbmdlZE5vdGlmaWNhdGlvbiwgTlVMTCk7CisjZW5kaWYK
IH0KIAorI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKIGJvb2wgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01hYzo6dXNlclByZWZlcnNDYXB0aW9ucygpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIE1BQ2FwdGlvbkFwcGVhcmFuY2VHZXRTaG93Q2FwdGlvbnMoa01BQ2FwdGlvbkFw
cGVhcmFuY2VEb21haW5Vc2VyKTsKQEAgLTM5Nyw2ICs0MTIsMzkgQEAgVmVjdG9yPFN0cmluZz4g
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIAog
ICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogfQorI2VuZGlmCisKK1N0cmluZyBD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayog
dHJhY2spIGNvbnN0Cit7CisgICAgU3RyaW5nIGxhYmVsID0gdHJhY2stPmxhYmVsKCk7CisgICAg
U3RyaW5nIGxhbmd1YWdlID0gdHJhY2stPmxhbmd1YWdlKCk7CisgICAgU3RyaW5nIHByZWZlcnJl
ZExhbmd1YWdlID0gZGVmYXVsdExhbmd1YWdlKCk7CisgICAgU3RyaW5nQnVpbGRlciBkaXNwbGF5
TmFtZTsKKworICAgIGlmIChsYWJlbC5pc0VtcHR5KCkgJiYgbGFuZ3VhZ2UuaXNFbXB0eSgpKSB7
CisgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZCh0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpKTsKKyAg
ICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIGlm
ICghbGFiZWwuaXNFbXB0eSgpKQorICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwor
ICAgIAorICAgIEF0b21pY1N0cmluZyBsb2NhbGVEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9y
TGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2UpOworICAgIGlmICghbGFiZWwuY29udGFpbnMobG9jYWxl
RGlzcGxheU5hbWUpKSB7CisgICAgICAgIGlmIChkaXNwbGF5TmFtZS5sZW5ndGgoKSA+IDApCisg
ICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQoIiAiKTsKKyAgICAgICAgZGlzcGxheU5hbWUu
YXBwZW5kKGxvY2FsZURpc3BsYXlOYW1lKTsKKyAgICB9CisKKyAgICBpZiAodHJhY2stPmtpbmQo
KSAhPSB0cmFjay0+c3VidGl0bGVzS2V5d29yZCgpKSB7CisgICAgICAgIGlmICh0cmFjay0+aXND
bG9zZWRDYXB0aW9ucygpKQorICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKCIgQ0MiKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKCIgU0RIIik7Cisg
ICAgfQorCisgICAgcmV0dXJuIGRpc3BsYXlOYW1lLnRvU3RyaW5nKCk7Cit9CiAKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDc4MmRhMGY4OTg3MzY3YzQxYTdmYWRkMmY4MmM4
Y2ZjNDFiZDE5NmQuLjQ2ZDVhN2Y2MjU1MGU1OGFlODkxZGNkYWNmYmRkYWYyY2Y1YTY0ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0jaWYgUExBVEZP
Uk0oTUFDKSAmJiBNQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExB
VEZPUk0oTUFDKQogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMuaCIKICNlbHNl
CiAjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgpAQCAtNDIwLDcgKzQyMCw3IEBA
IHZvaWQgUGFnZUdyb3VwOjppbnZhbGlkYXRlZEluamVjdGVkU3R5bGVTaGVldENhY2hlSW5BbGxG
cmFtZXMoKQogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyogUGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVy
ZW5jZXMoKQogewogICAgIGlmICghbV9jYXB0aW9uUHJlZmVyZW5jZXMpCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiBNQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICBtX2NhcHRpb25QcmVmZXJlbmNlcyA9IENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNYWM6OmNyZWF0ZSh0aGlzKTsKICNlbHNlCiAgICAgICAgIG1fY2FwdGlvblByZWZlcmVu
Y2VzID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y3JlYXRlKHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmgKaW5kZXggNmVlZWM1N2Q4ODFmZGUxNjY2YjUxNjExMGViYWUxNTVkY2ZmMzk1NS4u
Y2Q4ODAzNDZmYTk2MGNiMzYxOWZjM2U2MTY1MTBiODA2MjZiNWJkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VHcm91cC5oCkBAIC0xMTQsNiArMTE0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBmbG9hdCBjYXB0aW9uRm9udFNpemVTY2FsZShib29sJik7CiAgICAgICAgIHZvaWQgcmVnaXN0
ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWRMaXN0ZW5lciopOwogICAgICAgICB2b2lkIHVucmVnaXN0ZXJGb3JDYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5l
ciopOworICAgICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzKiBjYXB0aW9uUHJlZmVyZW5jZXMo
KTsKICNlbmRpZgogCiAgICAgcHJpdmF0ZToKQEAgLTEyMiw5ICsxMjMsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYWRkVmlzaXRlZExpbmsoTGlua0hhc2ggc3RyaW5nSGFz
aCk7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZWRJbmplY3RlZFN0eWxlU2hlZXRDYWNoZUluQWxs
RnJhbWVzKCk7CiAgIAotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcyogY2FwdGlvblByZWZlcmVuY2VzKCk7Ci0jZW5kaWYKICAgICAgICAgU3Ry
aW5nIG1fbmFtZTsKIAogICAgICAgICBIYXNoU2V0PFBhZ2UqPiBtX3BhZ2VzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRleCBjNjczODRmNjVmNjZk
NzA4NTIyMjAyZTQwM2E3ZTAyNDliNTQ1NjAxLi4xZmJhZTg4MmE5ZjFiMDJkNWQ2YzY4MDdkMzc1
N2M2Y2QyYTQ2MDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcApAQCAtMTAxNSwxMSArMTAxNSw2IEBAIFN0cmluZyBjbGlja1RvRXhpdEZ1bGxTY3Jl
ZW5UZXh0KCkKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLVN0cmluZyB0ZXh0VHJhY2tD
bG9zZWRDYXB0aW9uc1RleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDbG9zZWQg
Q2FwdGlvbnMiLCAiTWVudSBzZWN0aW9uIGhlYWRpbmcgZm9yIGNsb3NlZCBjYXB0aW9ucyIpOwot
fQotCiBTdHJpbmcgdGV4dFRyYWNrU3VidGl0bGVzVGV4dCgpCiB7CiAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIlN1YnRpdGxlcyIsICJNZW51IHNlY3Rpb24gaGVhZGluZyBmb3Igc3VidGl0bGVz
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggY2Y4
NmRjYjUxYjQ1ODE0MzljMDUzMTc2ZTk0NzkwMTM5OGI1ZTkwOS4uODcwYTJjYjExNDc0NmIzOGI0
Y2Y3ZWQzNzljMjUwMmNhODNiMmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaApAQCAtMjY1LDcgKzI2NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBTdHJpbmcgY2xpY2tUb0V4aXRGdWxsU2NyZWVuVGV4dCgpOwogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQotICAgIFN0cmluZyB0ZXh0VHJhY2tDbG9zZWRDYXB0aW9uc1RleHQoKTsKICAgICBT
dHJpbmcgdGV4dFRyYWNrU3VidGl0bGVzVGV4dCgpOwogICAgIFN0cmluZyB0ZXh0VHJhY2tPZmZU
ZXh0KCk7CiAgICAgU3RyaW5nIHRleHRUcmFja05vTGFiZWxUZXh0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTdiZjZm
MTBhMWQ4NjE5NWEzYWJmMmNlMmEwOWI2OWFiYjMwZDJhNy4uZGI0NjQ5NDg4NzY3OTdiZGYwM2Ux
Njc0MjZmOTVjMmEzOWMwYTcwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAyLTA0ICBE
ZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBDYXB0aW9ucyBt
ZW51IHNob3VsZCBpbmRpY2F0ZSBsYW5ndWFnZSBhbmQgdHlwZSBvZiB0cmFjaworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgdGhlIGNhcHRp
b25zIG1lbnUgY2FuIGJlIGxhYmVsbGVkIGluIGEgcGxhdGZvcm0tc3BlY2lmaWMgd2F5LCBtb3Zl
CisgICAgICAgIHRoZSByZXN1bHRzIGludG8gdGhlIHBsYXRmb3JtIGRpcmVjdG9yeS4gQXQgdGhl
IG1vbWVudCwgdGhleSBhcmUgc2tpcHBlZAorICAgICAgICBldmVyeXdoZXJlIGJ1dCBNYWMuIEFs
c28gdXBkYXRlIHRoZSB0ZXN0cyB0byB0aGUgbmV3IG1lbnUgc3RydWN0dXJlLCB3aGljaAorICAg
ICAgICBvbmx5IGhhcyBhIHNpbmdsZSBsaXN0IG9mIGVudHJpZXMuCisKKyAgICAgICAgKiBtZWRp
YS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtbG9jYWxpemVkLmh0bWw6IFVwZGF0
ZWQgZm9yIG5ldyBtZW51IHN0cnVjdHVyZS4KKyAgICAgICAgKiBtZWRpYS92aWRlby1jb250cm9s
cy1jYXB0aW9ucy10cmFja21lbnUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRy
YWNrbWVudS1zb3J0ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL3Zp
ZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQuaHRtbDogVXBkYXRlZCBmb3Ig
bmV3IG1lbnUgc3RydWN0dXJlLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRp
b25zLXRyYWNrbWVudS5odG1sOiBVcGRhdGVkIGZvciBuZXcgbWVudSBzdHJ1Y3R1cmUuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVu
dS1leHBlY3RlZC50eHQ6IE5ldyBwbGF0Zm9ybSBzcGVjaWZpYyByZXN1bHRzLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtbG9j
YWxpemVkLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlh
L3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQtZXhwZWN0ZWQudHh0OiBE
aXR0by4KKwogMjAxMy0wMi0wNCAgQ2hyaXMgSG9wbWFuICA8Y2pob3BtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE1ha2UgbW92ZUNhcmV0VG93YXJkc1dpbmRvd1BvaW50IG5vdCBzbmFwIHRv
IHRoZSBiZWdpbm5pbmcvZW5kIHdoZW4gbW92ZWQgYWJvdmUvYmVsb3cgZWRpdGFibGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVu
dS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9u
cy10cmFja21lbnUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
NmI1MDAzYmMwMTVlYjRhMWZmMzg4ZDBjYTUyMjIyM2U5MDRlOGRkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNv
bnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzOCArMCwwIEBACi1UZXN0IHRoYXQgd2UgYXJlIGFibGUgdG8gdHJpZ2dlciB0aGUgbGlzdCBv
ZiBjYXB0aW9ucywgYW5kIHNlbGVjdCBmcm9tIHRoZSBsaXN0LgotCi1FVkVOVChjYW5wbGF5dGhy
b3VnaCkKLQotKioqIFNldCB0aGUgdXNlciBsYW5ndWFnZSBwcmVmZXJlbmNlLgotUlVOKGludGVy
bmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkpCi0KLSoqKiBBZGQgYW5vdGhl
ciB0ZXh0IHRyYWNrLgotUlVOKHZpZGVvLmFkZFRleHRUcmFjaygiY2FwdGlvbnMiLCAiQ29tbWVu
dGFyeSIsICJydSIpKQotKioqIFR1cm5pbmcgY2FwdGlvbnMgb24KLVRoZXJlIHNob3VsZCBiZSA1
IGl0ZW1zIGluIHRoZSBtZW51LgotRVhQRUNURUQgKDUgPT0gJzUnKSBPSwotRVhQRUNURUQgKHZp
ZGVvLnRleHRUcmFja3MubGVuZ3RoID09ICc0JykgT0sKLVRyYWNrIDAgc2hvdWxkIGJlIHNob3dp
bmcKLUVYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzBdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sK
LVRyYWNrIDEgc2hvdWxkIGJlIGRpc2FibGVkCi1FWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1sx
XS5tb2RlID09ICdzaG93aW5nJykgT0sKLVRyYWNrIDIgc2hvdWxkIGJlIGRpc2FibGVkCi1FWFBF
Q1RFRCAodmlkZW8udGV4dFRyYWNrc1syXS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCi1UcmFjayAz
IHNob3VsZCBiZSBkaXNhYmxlZAotRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbM10ubW9kZSA9
PSAnZGlzYWJsZWQnKSBPSwotRVhQRUNURUQgKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVv
LCAnZGlzcGxheScpLmlubmVyVGV4dCA9PSAnTG9yZW0nKSBPSwotCi0qKiogUmVtb3ZlIGEgdHJh
Y2suCi1SVU4odmlkZW8ucmVtb3ZlQ2hpbGQoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidHJh
Y2siKVswXSkpCi0qKiogVHVybmluZyBjYXB0aW9ucyBvZmYKLVRoZXJlIHNob3VsZCBiZSA0IGl0
ZW1zIGluIHRoZSBtZW51LgotRVhQRUNURUQgKDQgPT0gJzQnKSBPSwotRVhQRUNURUQgKHZpZGVv
LnRleHRUcmFja3MubGVuZ3RoID09ICczJykgT0sKLVRyYWNrIDAgc2hvdWxkIGJlIGRpc2FibGVk
Ci1FWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1swXS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCi1U
cmFjayAxIHNob3VsZCBiZSBkaXNhYmxlZAotRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMV0u
bW9kZSA9PSAnZGlzYWJsZWQnKSBPSwotVHJhY2sgMiBzaG91bGQgYmUgZGlzYWJsZWQKLUVYUEVD
VEVEICh2aWRlby50ZXh0VHJhY2tzWzJdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sKLU5vIHRleHQg
dHJhY2sgY3VlIHdpdGggZGlzcGxheSBpZCAnLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3Bs
YXknIGlzIGN1cnJlbnRseSB2aXNpYmxlCi1FTkQgT0YgVEVTVAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtbG9jYWxpemVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25z
LXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxNTBlOWY1YmYxNGFhZWJjYTYwOThiOTdlNzk0NWJmYzZlMjZhODdiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdCB0aGF0IGNhcHRpb25zIGFuZCBz
dWJ0aXRsZXMgbWVudSBpdGVtcyBhcmUgbG9jYWxpemVkLgotCi1FVkVOVChjYW5wbGF5dGhyb3Vn
aCkKLQotKioqIFNldCB0aGUgdXNlciBsYW5ndWFnZSBwcmVmZXJlbmNlLgotUlVOKGludGVybmFs
cy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkpCi1FWFBFQ1RFRCAoY2FwdGlvbnNT
ZWN0aW9uLnRleHRDb250ZW50ID09ICdDbG9zZWQgQ2FwdGlvbnMnKSBPSwotRVhQRUNURUQgKGNh
cHRpb25zU2VjdGlvbi50ZXh0Q29udGVudCA9PSAnU3VidGl0bGVzJykgT0sKLUVYUEVDVEVEIChp
dGVtLnRleHRDb250ZW50ID09ICdPZmYnKSBPSwotRVhQRUNURUQgKGl0ZW0udGV4dENvbnRlbnQg
PT0gJ05vIGxhYmVsJykgT0sKLUVORCBPRiBURVNUCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2Nh
bGl6ZWQuaHRtbAppbmRleCA2Y2JjZDIyZmNhMDYyM2Q4ZmQ4YjA2YWY4OTBiNWNkMDM0NTI5ODhi
Li40ZmI0MjYwZWJkMjM1MTYwNThiNzY2ZTI0ZmI2NzdmNTVhMjg3ZTU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtbG9jYWxp
emVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMt
dHJhY2ttZW51LWxvY2FsaXplZC5odG1sCkBAIC04LDcgKzgsNyBAQAogICAgICAgICA8c2NyaXB0
IHNyYz0idHJhY2ttZW51LXRlc3QuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0PgogCi0g
ICAgICAgIHZhciBjYXB0aW9uc1NlY3Rpb247CisgICAgICAgIHZhciB0cmFja0xpc3RTZWN0aW9u
OwogICAgICAgICB2YXIgaXRlbTsKIAogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkBA
IC0yMCwxOSArMjAsMTQgQEAKICAgICAgICAgICAgIGlmICghdHJhY2tMaXN0RWxlbWVudCkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIC8vIFRyYWNrIGxpc3Qgc2hvdWxk
IGhhdmUgdHdvIDxzZWN0aW9uPiBlbGVtZW50cy4KLSAgICAgICAgICAgIHZhciB0cmFja0xpc3RT
ZWN0aW9ucyA9IHRyYWNrTGlzdEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiaDMiKTsKLSAgICAg
ICAgICAgIGlmICghdHJhY2tMaXN0U2VjdGlvbnMgfHwgdHJhY2tMaXN0U2VjdGlvbnMubGVuZ3Ro
ICE9IDIpIHsKLSAgICAgICAgICAgICAgICBmYWlsVGVzdCgiVGhlcmUgc2hvdWxkIGJlIHR3byBz
ZWN0aW9uIGVsZW1lbnRzIGluIHRyYWNrIGxpc3QgbWVudSIpOworICAgICAgICAgICAgdHJhY2tM
aXN0U2VjdGlvbiA9IHRyYWNrTGlzdEVsZW1lbnQucXVlcnlTZWxlY3RvcigiaDMiKTsKKyAgICAg
ICAgICAgIGlmICghdHJhY2tMaXN0U2VjdGlvbikgeworICAgICAgICAgICAgICAgIGZhaWxUZXN0
KCJUaGVyZSBzaG91bGQgYmUgYSBzaW5nbGUgc2VjdGlvbiBlbGVtZW50IGluIHRyYWNrIGxpc3Qg
bWVudSIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgY2FwdGlvbnNTZWN0aW9uID0gdHJhY2tMaXN0U2VjdGlvbnNbMF07Ci0gICAgICAgICAg
ICBsb2dDb25zb2xlKCJGaXJzdCBzZWN0aW9uIHNob3VsZCBiZSBsYWJlbGxlZCAnQ2xvc2VkIENh
cHRpb25zJyIpOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJjYXB0aW9uc1NlY3Rpb24udGV4
dENvbnRlbnQiLCAiQ2xvc2VkIENhcHRpb25zIik7Ci0gICAgICAgICAgICBjYXB0aW9uc1NlY3Rp
b24gPSB0cmFja0xpc3RTZWN0aW9uc1sxXTsKLSAgICAgICAgICAgIGxvZ0NvbnNvbGUoIlNlY29u
ZCBzZWN0aW9uIHNob3VsZCBiZSBsYWJlbGxlZCAnU3VidGl0bGVzJyIpOwotICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJjYXB0aW9uc1NlY3Rpb24udGV4dENvbnRlbnQiLCAiU3VidGl0bGVzIik7
CisgICAgICAgICAgICBsb2dDb25zb2xlKCJIZWFkaW5nIHNob3VsZCBiZSBsYWJlbGxlZCAnU3Vi
dGl0bGVzJyIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0cmFja0xpc3RTZWN0aW9uLnRl
eHRDb250ZW50IiwgIlN1YnRpdGxlcyIpOwogCiAgICAgICAgICAgICB2YXIgY2FwdGlvbnNFbnRy
aWVzID0gdHJhY2tMaXN0RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpOwogICAgICAgICAg
ICAgaWYgKCFjYXB0aW9uc0VudHJpZXMgfHwgY2FwdGlvbnNFbnRyaWVzLmxlbmd0aCA8PSAwKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10
cmFja21lbnUtc29ydGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNv
bnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiODQ3MmVkYzU3YzQwYjRjYTA1ZWM1ZGI4N2NhZGM1MjgyZDc4
YzliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGVzdCB0aGF0IGNhcHRp
b25zIGFuZCBzdWJ0aXRsZXMgYXJlIHNvcnRlZCBpbiB0aGUgbWVudS4KLQotRVZFTlQoY2FucGxh
eXRocm91Z2gpCi0KLSoqKiBTZXQgdGhlIHVzZXIgbGFuZ3VhZ2UgcHJlZmVyZW5jZS4KLVJVTihp
bnRlcm5hbHMuc2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyhbJ2VuJ10pKQotCi0qKiogVGVzdCBt
ZW51IHNlY3Rpb24gMC4KLUZpcnN0IGl0ZW0gc2hvdWxkIGJlIGxhYmVsbGVkIG9mZiBPSwotYSBp
cyB0aGUgZmlyc3QgcmVhbCBpdGVtIGluIHRoZSBsaXN0IE9LCi1hIGNvbWVzIGJlZm9yZSBiIE9L
Ci1iIGNvbWVzIGJlZm9yZSBjIE9LCi1jIGNvbWVzIGJlZm9yZSBkIE9LCi1NZW51IHNlY3Rpb24g
MCB3YXMgb2suCi0KLQotKioqIFRlc3QgbWVudSBzZWN0aW9uIDEuCi1GaXJzdCBpdGVtIHNob3Vs
ZCBiZSBsYWJlbGxlZCBvZmYgT0sKLWEgaXMgdGhlIGZpcnN0IHJlYWwgaXRlbSBpbiB0aGUgbGlz
dCBPSwotYSBjb21lcyBiZWZvcmUgYiBPSwotYiBjb21lcyBiZWZvcmUgYyBPSwotYyBjb21lcyBi
ZWZvcmUgZCBPSwotTWVudSBzZWN0aW9uIDEgd2FzIG9rLgotCi1FTkQgT0YgVEVTVAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21l
bnUtc29ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9u
cy10cmFja21lbnUtc29ydGVkLmh0bWwKaW5kZXggNzQ3ZjQwMmU1Y2M3ZjAzZjk2OThkNGI4ZTky
N2Q5OWE5NDMxMzk5ZS4uZTQwZGQ1YTRmZDJlYzZlNDRlYjczZDQ5NWU4YjA1ZjViNjg0MmRmNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJh
Y2ttZW51LXNvcnRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xz
LWNhcHRpb25zLXRyYWNrbWVudS1zb3J0ZWQuaHRtbApAQCAtMTUsMzMgKzE1LDI4IEBACiAgICAg
ICAgICAgICAgICAgdmFyIHRyYWNrTGlzdEVsZW1lbnQgPSBnZXRUcmFja0xpc3RFbGVtZW50KCk7
CiAgICAgICAgICAgICAgICAgaWYgKCF0cmFja0xpc3RFbGVtZW50KQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgLy8gVHJhY2sgbGlzdCBzaG91bGQgaGF2ZSB0
d28gPHVsPiBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICB2YXIgdHJhY2tMaXN0U2VjdGlvbnMg
PSB0cmFja0xpc3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInVsIik7Ci0gICAgICAgICAgICAg
ICAgaWYgKCF0cmFja0xpc3RTZWN0aW9ucyB8fCB0cmFja0xpc3RTZWN0aW9ucy5sZW5ndGggIT0g
MikgewotICAgICAgICAgICAgICAgICAgICBmYWlsVGVzdCgiVGhlcmUgc2hvdWxkIGJlIHR3byB1
bCBlbGVtZW50cyBpbiB0cmFjayBsaXN0IG1lbnUiKTsKKyAgICAgICAgICAgICAgICB2YXIgdHJh
Y2tMaXN0U2VjdGlvbiA9IHRyYWNrTGlzdEVsZW1lbnQucXVlcnlTZWxlY3RvcigidWwiKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdFNlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAg
ICAgZmFpbFRlc3QoIlRoZXJlIHNob3VsZCBiZSBhIHVsIGVsZW1lbnQgaW4gdHJhY2sgbGlzdCBt
ZW51Iik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFja0xpc3RTZWN0aW9ucy5sZW5n
dGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiogVGVz
dCBtZW51IHNlY3Rpb24gIiArIGkgKyAiLiIpOwotICAgICAgICAgICAgICAgICAgICB2YXIgbGFz
dFRyYWNrTGFiZWwgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICB2YXIgdHJhY2tMaXN0SXRl
bXMgPSB0cmFja0xpc3RTZWN0aW9uc1tpXS5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpOwotICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdEl0ZW1zIHx8IHRyYWNrTGlzdEl0ZW1zLmxlbmd0
aCAhPSA1KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmYWlsVGVzdCgiVGhlcmUgc2hvdWxk
IGJlIGZpdmUgbGkgZWxlbWVudHMgaW4gdGhpcyBzZWN0aW9uIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCB0cmFja0xpc3RJdGVtcy5sZW5ndGg7IGorKykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0cmFja0xpc3RJdGVtc1tqXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChqID09IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nUmVzdWx0KGl0ZW0udGV4dENvbnRlbnQgPT0gIk9mZiIsICJGaXJzdCBpdGVtIHNob3Vs
ZCBiZSBsYWJlbGxlZCBvZmYiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0VHJhY2tMYWJlbCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9nUmVzdWx0KGl0ZW0udGV4dENvbnRlbnQgPiBsYXN0VHJh
Y2tMYWJlbCwgbGFzdFRyYWNrTGFiZWwgKyAiIGNvbWVzIGJlZm9yZSAiICsgaXRlbS50ZXh0Q29u
dGVudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2dSZXN1bHQodHJ1ZSwgaXRlbS50ZXh0Q29udGVudCArICIgaXMg
dGhlIGZpcnN0IHJlYWwgaXRlbSBpbiB0aGUgbGlzdCIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxhc3RUcmFja0xhYmVsID0gaXRlbS50ZXh0Q29udGVudDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgbGFzdFRyYWNrTGFiZWwgPSBudWxsOwor
ICAgICAgICAgICAgICAgIHZhciB0cmFja0xpc3RJdGVtcyA9IHRyYWNrTGlzdFNlY3Rpb24ucXVl
cnlTZWxlY3RvckFsbCgibGkiKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRyYWNrTGlzdEl0ZW1z
IHx8IHRyYWNrTGlzdEl0ZW1zLmxlbmd0aCAhPSA3KSB7CisgICAgICAgICAgICAgICAgICAgIGZh
aWxUZXN0KCJUaGVyZSBzaG91bGQgYmUgc2V2ZW4gbGkgZWxlbWVudHMgaW4gdGhlIG1lbnUiKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRyYWNrTGlzdEl0ZW1zLmxlbmd0aDsgaisrKSB7
CisgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdHJhY2tMaXN0SXRlbXNbal07CisgICAg
ICAgICAgICAgICAgICAgIGlmIChqID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dS
ZXN1bHQoaXRlbS50ZXh0Q29udGVudCA9PSAiT2ZmIiwgIkZpcnN0IGl0ZW0gc2hvdWxkIGJlIGxh
YmVsbGVkIG9mZiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChsYXN0VHJhY2tMYWJlbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2dSZXN1bHQoaXRlbS50ZXh0Q29udGVudCA+IGxhc3RUcmFja0xhYmVsLCBsYXN0VHJhY2tM
YWJlbCArICIgY29tZXMgYmVmb3JlICIgKyBpdGVtLnRleHRDb250ZW50KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dSZXN1bHQo
dHJ1ZSwgaXRlbS50ZXh0Q29udGVudCArICIgaXMgdGhlIGZpcnN0IHJlYWwgaXRlbSBpbiB0aGUg
bGlzdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRyYWNrTGFiZWwgPSBpdGVtLnRl
eHRDb250ZW50OwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiTWVudSBzZWN0aW9uICIgKyBpICsgIiB3YXMgb2suPGJyPiIpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICB9CkBA
IC02MSwxMSArNTYsOSBAQAogICAgICAgICAgICAgPHRyYWNrIGxhYmVsPSJjIiBraW5kPSJjYXB0
aW9ucyIgc3JjPSJ0cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMtZmFzdC52dHQiIHNyY2xh
bmc9ImphIj4KICAgICAgICAgICAgIDx0cmFjayBsYWJlbD0iYiIga2luZD0iY2FwdGlvbnMiIHNy
Yz0idHJhY2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWZhc3QudnR0IiBzcmNsYW5nPSJlbi1h
dSI+CiAgICAgICAgICAgICA8dHJhY2sgbGFiZWw9ImEiIGtpbmQ9ImNhcHRpb25zIiBzcmM9InRy
YWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1mYXN0LnZ0dCIgc3JjbGFuZz0iZW4iPgotICAg
ICAgICAgICAgPHRyYWNrIGxhYmVsPSJkIiBraW5kPSJjYXB0aW9ucyIgc3JjPSJ0cmFjay9jYXB0
aW9ucy13ZWJ2dHQvY2FwdGlvbnMtZmFzdC52dHQiIHNyY2xhbmc9ImphIj4KICAgICAgICAgICAg
IDx0cmFjayBsYWJlbD0iYiIga2luZD0ic3VidGl0bGVzIiBzcmM9InRyYWNrL2NhcHRpb25zLXdl
YnZ0dC9jYXB0aW9ucy1mYXN0LnZ0dCIgc3JjbGFuZz0iamEiPgogICAgICAgICAgICAgPHRyYWNr
IGxhYmVsPSJhIiBraW5kPSJzdWJ0aXRsZXMiIHNyYz0idHJhY2svY2FwdGlvbnMtd2VidnR0L2Nh
cHRpb25zLWZhc3QudnR0IiBzcmNsYW5nPSJlbi1hdSI+CiAgICAgICAgICAgICA8dHJhY2sgbGFi
ZWw9ImMiIGtpbmQ9InN1YnRpdGxlcyIgc3JjPSJ0cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtZmFzdC52dHQiIHNyY2xhbmc9ImVuIj4KLSAgICAgICAgICAgIDx0cmFjayBsYWJlbD0iZCIg
a2luZD0ic3VidGl0bGVzIiBzcmM9InRyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1mYXN0
LnZ0dCIgc3JjbGFuZz0iamEiPgogICAgICAgICA8L3ZpZGVvPgogICAgIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25z
LXRyYWNrbWVudS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlv
bnMtdHJhY2ttZW51Lmh0bWwKaW5kZXggMmFlMDliNWFhMDQ0N2VlYjUyNDM0MjRlMzk0YTViNzdk
Y2Q2ZTNkMi4uMzgzYTNmMDM5NjlkOTcwZTQyOTI0NzM2ZTQ4ZDg0MGU4Mjg4ZjY3YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJh
Y2ttZW51Lmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgICAgICAgICAgICB2YXIgdHJhY2tM
aXN0RWxlbWVudCA9IGdldFRyYWNrTGlzdEVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICBpZiAo
IXRyYWNrTGlzdEVsZW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgICAgICAvLyBUcmFjayBsaXN0IHNob3VsZCBoYXZlIGEgPHVsPiB3aXRoIGZpdmUgPGxpPiBj
aGlsZHJlbiAoT25lIG9mIHRoZW0gaXMgIk9mZiIpLgorICAgICAgICAgICAgICAgIC8vIFRyYWNr
IGxpc3Qgc2hvdWxkIGhhdmUgYSA8dWw+IHdpdGggPGxpPiBjaGlsZHJlbiAoT25lIG9mIHRoZW0g
aXMgIk9mZiIpLgogICAgICAgICAgICAgICAgIHZhciB0cmFja0xpc3QgPSB0cmFja0xpc3RFbGVt
ZW50LnF1ZXJ5U2VsZWN0b3IoInVsIik7CiAgICAgICAgICAgICAgICAgaWYgKCF0cmFja0xpc3Qp
IHsKICAgICAgICAgICAgICAgICAgICAgZmFpbFRlc3QoIkNvdWxkIG5vdCBmaW5kIGEgY2hpbGQg
dWwgZWxlbWVudCBpbiB0cmFjayBsaXN0IG1lbnUiKTsKQEAgLTcwLDkgKzcwLDkgQEAKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3Mu
bGVuZ3RoIiwgNCk7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUcmFjayAwIHNob3Vs
ZCBiZSBzaG93aW5nIik7Ci0gICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0
VHJhY2tzWzBdLm1vZGUiLCAiZGlzYWJsZWQiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLnRleHRUcmFja3NbMF0ubW9kZSIsICJzaG93aW5nIik7CiAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJUcmFjayAxIHNob3VsZCBiZSBkaXNhYmxlZCIpOwotICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1sxXS5tb2RlIiwgInNob3dpbmci
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMV0ubW9k
ZSIsICJkaXNhYmxlZCIpOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVHJhY2sgMiBz
aG91bGQgYmUgZGlzYWJsZWQiKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LnRleHRUcmFja3NbMl0ubW9kZSIsICJkaXNhYmxlZCIpOwogICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiVHJhY2sgMyBzaG91bGQgYmUgZGlzYWJsZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21l
bnUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNv
bnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA1MDFi
ZjU0NzJhYTAxMmNmZjJmNThiMGM1YTdjYzQ0YzFmMTg2YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFj
a21lbnUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3QgdGhhdCB3ZSBhcmUgYWJs
ZSB0byB0cmlnZ2VyIHRoZSBsaXN0IG9mIGNhcHRpb25zLCBhbmQgc2VsZWN0IGZyb20gdGhlIGxp
c3QuCisKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorCisqKiogU2V0IHRoZSB1c2VyIGxhbmd1YWdl
IHByZWZlcmVuY2UuCitSVU4oaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoWydl
biddKSkKKworKioqIEFkZCBhbm90aGVyIHRleHQgdHJhY2suCitSVU4odmlkZW8uYWRkVGV4dFRy
YWNrKCJjYXB0aW9ucyIsICJDb21tZW50YXJ5IiwgInJ1IikpCisqKiogVHVybmluZyBjYXB0aW9u
cyBvbgorVGhlcmUgc2hvdWxkIGJlIDUgaXRlbXMgaW4gdGhlIG1lbnUuCitFWFBFQ1RFRCAoNSA9
PSAnNScpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrcy5sZW5ndGggPT0gJzQnKSBPSwor
VHJhY2sgMCBzaG91bGQgYmUgc2hvd2luZworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMF0u
bW9kZSA9PSAnc2hvd2luZycpIE9LCitUcmFjayAxIHNob3VsZCBiZSBkaXNhYmxlZAorRVhQRUNU
RUQgKHZpZGVvLnRleHRUcmFja3NbMV0ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworVHJhY2sgMiBz
aG91bGQgYmUgZGlzYWJsZWQKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzJdLm1vZGUgPT0g
J2Rpc2FibGVkJykgT0sKK1RyYWNrIDMgc2hvdWxkIGJlIGRpc2FibGVkCitFWFBFQ1RFRCAodmlk
ZW8udGV4dFRyYWNrc1szXS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCitFWFBFQ1RFRCAodGV4dFRy
YWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdkaXNwbGF5JykuaW5uZXJUZXh0ID09ICdMb3JlbScp
IE9LCisKKyoqKiBSZW1vdmUgYSB0cmFjay4KK1JVTih2aWRlby5yZW1vdmVDaGlsZChkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCJ0cmFjayIpWzBdKSkKKyoqKiBUdXJuaW5nIGNhcHRpb25zIG9m
ZgorVGhlcmUgc2hvdWxkIGJlIDQgaXRlbXMgaW4gdGhlIG1lbnUuCitFWFBFQ1RFRCAoNCA9PSAn
NCcpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrcy5sZW5ndGggPT0gJzMnKSBPSworVHJh
Y2sgMCBzaG91bGQgYmUgZGlzYWJsZWQKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzBdLm1v
ZGUgPT0gJ2Rpc2FibGVkJykgT0sKK1RyYWNrIDEgc2hvdWxkIGJlIGRpc2FibGVkCitFWFBFQ1RF
RCAodmlkZW8udGV4dFRyYWNrc1sxXS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCitUcmFjayAyIHNo
b3VsZCBiZSBkaXNhYmxlZAorRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMl0ubW9kZSA9PSAn
ZGlzYWJsZWQnKSBPSworTm8gdGV4dCB0cmFjayBjdWUgd2l0aCBkaXNwbGF5IGlkICctd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheScgaXMgY3VycmVudGx5IHZpc2libGUKK0VORCBPRiBU
RVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1j
b250cm9scy1jYXB0aW9ucy10cmFja21lbnUtbG9jYWxpemVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21l
bnUtbG9jYWxpemVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjA1NGRhYmQ2ZDRjOGIwOTUx
NzdjOTQ3MjBmZmM0MTk2OTJjOWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCBjYXB0aW9ucyBhbmQg
c3VidGl0bGVzIG1lbnUgaXRlbXMgYXJlIGxvY2FsaXplZC4KKworRVZFTlQoY2FucGxheXRocm91
Z2gpCisKKyoqKiBTZXQgdGhlIHVzZXIgbGFuZ3VhZ2UgcHJlZmVyZW5jZS4KK1JVTihpbnRlcm5h
bHMuc2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyhbJ2VuJ10pKQorRVhQRUNURUQgKHRyYWNrTGlz
dFNlY3Rpb24udGV4dENvbnRlbnQgPT0gJ1N1YnRpdGxlcycpIE9LCitFWFBFQ1RFRCAoaXRlbS50
ZXh0Q29udGVudCA9PSAnT2ZmJykgT0sKK0VYUEVDVEVEIChpdGVtLnRleHRDb250ZW50ID09ICdO
byBsYWJlbCcpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LXNvcnRlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tY29udHJv
bHMtY2FwdGlvbnMtdHJhY2ttZW51LXNvcnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFm
ZTlkMTZhZTFhODUyNjViZmJkZDA5MzAyZDE3ZTQwOTg1ODczZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10
cmFja21lbnUtc29ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHRoYXQg
Y2FwdGlvbnMgYW5kIHN1YnRpdGxlcyBhcmUgc29ydGVkIGluIHRoZSBtZW51LgorCitFVkVOVChj
YW5wbGF5dGhyb3VnaCkKKworKioqIFNldCB0aGUgdXNlciBsYW5ndWFnZSBwcmVmZXJlbmNlLgor
UlVOKGludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkpCitGaXJzdCBp
dGVtIHNob3VsZCBiZSBsYWJlbGxlZCBvZmYgT0sKK2EgRW5nbGlzaCAoQXVzdHJhbGlhKSBpcyB0
aGUgZmlyc3QgcmVhbCBpdGVtIGluIHRoZSBsaXN0IE9LCithIEVuZ2xpc2ggKEF1c3RyYWxpYSkg
Y29tZXMgYmVmb3JlIGEgRW5nbGlzaCBTREggT0sKK2EgRW5nbGlzaCBTREggY29tZXMgYmVmb3Jl
IGIgRW5nbGlzaCAoQXVzdHJhbGlhKSBTREggT0sKK2IgRW5nbGlzaCAoQXVzdHJhbGlhKSBTREgg
Y29tZXMgYmVmb3JlIGIgSmFwYW5lc2UgT0sKK2IgSmFwYW5lc2UgY29tZXMgYmVmb3JlIGMgRW5n
bGlzaCBPSworYyBFbmdsaXNoIGNvbWVzIGJlZm9yZSBjIEphcGFuZXNlIFNESCBPSworRU5EIE9G
IFRFU1QKKwo=
</data>
<flag name="review"
          id="206000"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>