<?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>109463</bug_id>
          
          <creation_ts>2013-02-11 11:02:44 -0800</creation_ts>
          <short_desc>Add ENABLE_DELETION_UI to control the use of the deletion UI.</short_desc>
          <delta_ts>2013-02-12 02:52:50 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>109517</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>benjamin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829893</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-11 11:02:44 -0800</bug_when>
    <thetext>Platforms like iOS don&apos;t use DeleteButton ui at all. It doesn&apos;t make sense to use the current implementation that does quite a bit of work before calling into the client to find out there is nothing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829941</commentid>
    <comment_count>1</comment_count>
      <attachid>187629</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-11 11:31:50 -0800</bug_when>
    <thetext>Created attachment 187629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829951</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 11:38:19 -0800</bug_when>
    <thetext>Attachment 187629 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/editing/DeleteButtonController.cpp&apos;, u&apos;Source/WebCore/editing/DeleteButtonController.h&apos;]&quot; exit_code: 1
Source/WebCore/editing/DeleteButtonController.h:64:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830059</commentid>
    <comment_count>3</comment_count>
      <attachid>187629</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-11 13:32:30 -0800</bug_when>
    <thetext>Comment on attachment 187629
Patch

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

&gt; Source/WebCore/editing/DeleteButtonController.h:42
&gt; +#if !PLATFORM(IOS)

Why don&apos;t we add ENABLE_DELETE_BUTTON_CONTROLLER instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830107</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-11 14:09:38 -0800</bug_when>
    <thetext>After discussing this topic with a number of people, I decided to go for a different approach. I&apos;m adding ENABLE_DELETION_UI to control the use of this feature.
I will initially enabled it by default for all the ports to avoid breaking other ports, since I don&apos;t know for sure if and how they use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830191</commentid>
    <comment_count>5</comment_count>
      <attachid>187691</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-11 15:15:18 -0800</bug_when>
    <thetext>Created attachment 187691
Patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830198</commentid>
    <comment_count>6</comment_count>
      <attachid>187691</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-11 15:19:15 -0800</bug_when>
    <thetext>Comment on attachment 187691
Patch2

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830204</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-11 15:25:29 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=187691&amp;action=review

&gt; Source/WebCore/dom/ContainerNode.cpp:31
&gt; +#if ENABLE(DELETION_UI)
&gt;  #include &quot;DeleteButtonController.h&quot;
&gt; +#endif

Since it is an ENABLE(), I would have the #ifdef in the header file instead of around the #include.

&gt; Source/WebCore/editing/Editor.cpp:861
&gt; +#if ENABLE(DELETION_UI)
&gt; +    m_deleteButtonController = adoptPtr(new DeleteButtonController(frame));
&gt; +#endif

Node sure why you moved this out of the initialization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830252</commentid>
    <comment_count>8</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-11 15:51:04 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187691&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ContainerNode.cpp:31
&gt; &gt; +#if ENABLE(DELETION_UI)
&gt; &gt;  #include &quot;DeleteButtonController.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; Since it is an ENABLE(), I would have the #ifdef in the header file instead of around the #include.
&gt; 
&gt; &gt; Source/WebCore/editing/Editor.cpp:861
&gt; &gt; +#if ENABLE(DELETION_UI)
&gt; &gt; +    m_deleteButtonController = adoptPtr(new DeleteButtonController(frame));
&gt; &gt; +#endif
&gt; 
&gt; Node sure why you moved this out of the initialization.

(In reply to comment #7)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187691&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ContainerNode.cpp:31
&gt; &gt; +#if ENABLE(DELETION_UI)
&gt; &gt;  #include &quot;DeleteButtonController.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; Since it is an ENABLE(), I would have the #ifdef in the header file instead of around the #include.
&gt; 
&gt; &gt; Source/WebCore/editing/Editor.cpp:861
&gt; &gt; +#if ENABLE(DELETION_UI)
&gt; &gt; +    m_deleteButtonController = adoptPtr(new DeleteButtonController(frame));
&gt; &gt; +#endif
&gt; 
&gt; Node sure why you moved this out of the initialization.

I don&apos;t like the #ifdef in the initialization list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830253</commentid>
    <comment_count>9</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-11 15:51:14 -0800</bug_when>
    <thetext>Committed revision 142533.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187629</attachid>
            <date>2013-02-11 11:31:50 -0800</date>
            <delta_ts>2013-02-11 15:15:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>deletebutton.txt</filename>
            <type>text/plain</type>
            <size>4278</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTExICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvdmlkZSBzdHViIGltcGxl
bWVudGF0aW9uIG9mIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIgZm9yIHBsYXRmb3JtcyB0aGF0IGRv
bid0IHVzZSB0aGUgRGVsZXRlYnV0dG9uIFVJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDYzCisKKyAgICAgICAgSSd2ZSBhbHNvIG1vdmVkIHRv
IHRoZSBwcml2YXRlIHNlY3Rpb24gb2YgdGhlIGNsYXNzIHNvbWUgbWV0aG9kcyB0aGF0IHdlIG9u
bHkgdXNlZCBpbnRlcm5hbGx5LgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3Bw
OiBFeGNsdWRlIHRoZSBlbnRpcmUgY29udGVudAorICAgICAgICBpZiBub3QgaW50ZXJlc3RlZCBp
biB0aGUgZmVhdHVyZS4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIu
aDogQWRkIGltcGxlbWVudGF0aW9uIHdpdGggZW1wdHkgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6RGVsZXRlQnV0dG9uQ29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVCdXR0b25Db250cm9sbGVyOjpjb250YWluZXJFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OnJlc3BvbmRUb0NoYW5nZWRT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6ZGV2
aWNlU2NhbGVGYWN0b3JDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUJ1dHRvbkNv
bnRyb2xsZXI6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlQnV0dG9uQ29udHJvbGxl
cjo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVCdXR0b25Db250cm9sbGVyOjplbmFi
bGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6ZGlzYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVCdXR0b25Db250cm9sbGVyOjpkZWxldGVUYXJnZXQp
OgorCiAyMDEzLTAyLTExICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogVGltZWxpbmU6IGludmFsaWRhdGUgYW5kIGZvcmNlIGxv
Y2F0aW9ucyBhcmUgc2FtZSBmb3IgTGF5b3V0IHJlY29yZHMgY2F1c2VkIGJ5IHN0eWxlIHJlY2Fs
Y3VsYWl0b24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0
b25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTQyMTk5KQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiAr
NTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogY29uc3QgY2hhciogY29uc3QgRGVsZXRlQnV0dG9uQ29u
dHJvbGxlcjo6Y29udGFpbmVyRWxlbWVudElkZW50aWZpZXIgPSAiV2ViS2l0LUVkaXRpbmctRGVs
ZXRlLUNvbnRhaW5lciI7CiBjb25zdCBjaGFyKiBjb25zdCBEZWxldGVCdXR0b25Db250cm9sbGVy
OjpidXR0b25FbGVtZW50SWRlbnRpZmllciA9ICJXZWJLaXQtRWRpdGluZy1EZWxldGUtQnV0dG9u
IjsKIGNvbnN0IGNoYXIqIGNvbnN0IERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6Om91dGxpbmVFbGVt
ZW50SWRlbnRpZmllciA9ICJXZWJLaXQtRWRpdGluZy1EZWxldGUtT3V0bGluZSI7CkBAIC0zOTQs
NSArMzk1LDYgQEAgdm9pZCBEZWxldGVCdXR0b25Db250cm9sbGVyOjpkZWxldGVUYXJnZQogICAg
IGFwcGx5Q29tbWFuZChSZW1vdmVUYXJnZXRDb21tYW5kOjpjcmVhdGUobV9mcmFtZS0+ZG9jdW1l
bnQoKSwgbV90YXJnZXQpKTsKICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9u
KFZpc2libGVQb3NpdGlvbihwb3MpKTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRy
b2xsZXIuaAkocmV2aXNpb24gMTQyMTk5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVCdXR0b25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDExICszOSw4IEBAIGNs
YXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBEZWxldGVCdXR0b25Db250cm9sbGVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWxldGVCdXR0b25Db250cm9sbGVyKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisjaWYgIVBMQVRGT1JNKElPUykKICAgICBleHBsaWNp
dCBEZWxldGVCdXR0b25Db250cm9sbGVyKEZyYW1lKik7Ci0KLSAgICBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgY29udGFpbmVyRWxlbWVudElkZW50aWZpZXI7Ci0KLSAgICBIVE1MRWxlbWVudCog
dGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KICAgICBIVE1MRWxlbWVu
dCogY29udGFpbmVyRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVyRWxlbWVudC5n
ZXQoKTsgfQogCiAgICAgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbik7CkBAIC01Myw3ICs1MCw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNob3coSFRNTEVsZW1lbnQqKTsKICAgICB2b2lkIGhpZGUoKTsKIAotICAgIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIChtX2Rpc2FibGVTdGFjayA9PSAwKTsgfQogICAgIHZv
aWQgZW5hYmxlKCk7CiAgICAgdm9pZCBkaXNhYmxlKCk7CiAKQEAgLTYyLDggKzU4LDEwIEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGJ1dHRvbkVsZW1l
bnRJZGVudGlmaWVyOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvdXRsaW5lRWxlbWVu
dElkZW50aWZpZXI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNvbnRhaW5lckVsZW1l
bnRJZGVudGlmaWVyOwogCiAgICAgdm9pZCBjcmVhdGVEZWxldGlvblVJKCk7CisgICAgYm9vbCBl
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gKG1fZGlzYWJsZVN0YWNrID09IDApOyB9CiAKICAgICBG
cmFtZSogbV9mcmFtZTsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1fdGFyZ2V0OwpAQCAtNzMs
NiArNzEsMjIgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FzU3RhdGljUG9zaXRpb25lZDsKICAg
ICBib29sIG1fd2FzQXV0b1pJbmRleDsKICAgICB1bnNpZ25lZCBtX2Rpc2FibGVTdGFjazsKKyNl
bHNlCisgICAgZXhwbGljaXQgRGVsZXRlQnV0dG9uQ29udHJvbGxlcihGcmFtZSopIHsgfTsKKyAg
ICBIVE1MRWxlbWVudCogY29udGFpbmVyRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwor
ICAgIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JikgeyB9OworCisgICAgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQoKSB7IH07CisKKyAg
ICB2b2lkIHNob3coSFRNTEVsZW1lbnQqKSB7IH07CisgICAgdm9pZCBoaWRlKCkgeyB9OworCisg
ICAgdm9pZCBlbmFibGUoKSB7IH07CisgICAgdm9pZCBkaXNhYmxlKCkgeyB9OworCisgICAgdm9p
ZCBkZWxldGVUYXJnZXQoKSB7IH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187691</attachid>
            <date>2013-02-11 15:15:18 -0800</date>
            <delta_ts>2013-02-11 15:19:14 -0800</delta_ts>
            <desc>Patch2</desc>
            <filename>deletebutton.txt</filename>
            <type>text/plain</type>
            <size>21042</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNDI1MTkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTExICBFbnJpY2EgQ2FzdWNjaSAgPGVu
cmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEVOQUJMRV9ERUxFVElPTl9VSSB0byBjb250
cm9sIHRoZSB1c2Ugb2YgdGhlIGRlbGV0aW9uIFVJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDYzLgorICAgICAgICAKKyAgICAgICAgRU5BQkxF
X0RFTEVUSU9OX1VJIGlzIHNldCB0byAxIGJ5IGRlZmF1bHQgZm9yCisgICAgICAgIGFsbCBwb3J0
cy4gSXQgaXMgZXhwbGljaXRseSBlbmFibGVkIGZvciBNQUMgYW5kIGRpc2FibGVkIGZvciBpT1Mu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDoKKwogMjAxMy0wMi0xMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNp
c2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gU3RvcCB1c2luZyBzbWFydCBwb2ludGVy
cyBmb3IgRWNvcmVfVGltZXIKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTQyMTk5KQorKysg
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNTYyLDYgKzU2Miw3
IEBACiAjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDEKICNkZWZpbmUgRU5BQkxFX1dF
Ql9BUkNISVZFIDEKICNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCisjZGVmaW5lIEVOQUJMRV9E
RUxFVElPTl9VSSAxCiAjaWYgZGVmaW5lZChFTkFCTEVfVklERU8pCiAjZGVmaW5lIEVOQUJMRV9W
SURFT19UUkFDSyAxCiAjZW5kaWYKQEAgLTYxMiw2ICs2MTMsNyBAQAogI2RlZmluZSBFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTIDEKICNkZWZpbmUgRU5BQkxFX1JFUEFJTlRfVEhST1RUTElORyAx
CiAjZGVmaW5lIEVOQUJMRV9XRUJfQVJDSElWRSAxCisjZGVmaW5lIEVOQUJMRV9ERUxFVElPTl9V
SSAwCiAjZGVmaW5lIEhBVkVfUkVBRExJTkUgMQogI2RlZmluZSBXVEZfVVNFX0NGIDEKICNkZWZp
bmUgV1RGX1VTRV9DRk5FVFdPUksgMQpAQCAtODE2LDYgKzgxOCwxMCBAQAogI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0RFTEVUSU9OX1VJ
KQorI2RlZmluZSBFTkFCTEVfREVMRVRJT05fVUkgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKICNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9BUEkgMQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDI1MjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NyBAQAorMjAx
My0wMi0xMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBFTkFCTEVfREVMRVRJT05fVUkgdG8gY29udHJvbCB0aGUgdXNlIG9mIHRoZSBkZWxldGlvbiBV
SS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ2
My4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWRkcyAjaWYgRU5BQkxFKERFTEVUSU9OX1VJKSBpbiBldmVyeSBzcG90
IHdoZXJlCisgICAgICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIgaXMgdXNlZC4gVGhpcyBjbGFz
cyBpcyBub3cgb25seSBpbnN0YW50aWF0ZWQKKyAgICAgICAgaWYgdGhlIGZlYXR1cmUgaXMgZW5h
YmxlZC4gSSd2ZSBhbHNvIGRvbmUgc29tZSBjbGVhbnVwIGluIHRoZQorICAgICAgICBEZWxldGVC
dXR0b25Db250cm9sbGVyIGNsYXNzLCByZW1vdmluZyB1bnVzZWQgbWV0aG9kcyBhbmQgbWFraW5n
CisgICAgICAgIHByaXZhdGUgc29tZSBtZXRob2RzIG9ubHkgdXNlZCBpbnRlcm5hbGx5IHRvIHRo
ZSBjbGFzcy4KKyAgICAgICAgQm90aCBEZWxldGVCdXR0b25Db250cm9sbGVyIGFuZCBEZWxldGVC
dXR0b24gY2xhc3NlcyBhcmUgbm93IGV4Y2x1ZGVkCisgICAgICAgIGZyb20gdGhlIGNvbXBpbGF0
aW9uIGlmIHRoZSBmZWF0dXJlIGlzIG5vdCBlbmFibGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gY2hhbmdlIG9mIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVy
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpjbG9uZUNoaWxkTm9k
ZXMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpyZWFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxl
dGVCdXR0b24uY3BwOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmg6IFNvbWUgY2xl
YW51cC4KKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmVuYWJsZWQp
OiBNYWRlIHByaXZhdGUuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bm90aWZ5Q29tcG9uZW50
c09uQ2hhbmdlZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJhbmdlRm9yUG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpkZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6IGF2b2lkSW50
ZXJzZWN0aW9uV2l0aE5vZGUgaXMKKyAgICAgICAgdXNlZCBvbmx5IGlmIHRoZSBmZWF0dXJlIGlz
IGVuYWJsZWQuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorICAgICAgICAqIGVk
aXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcmt1cCk6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21Ob2Rlcyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcDogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpbmNsdWRlCisgICAgICAg
IGZvIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaAorCiAyMDEzLTAyLTExICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBGb2xkIE1hcmt1cFRva2VuQmFzZSBpbnRvIEhU
TUxUb2tlbiBub3cgdGhhdCBpdCBoYXMgbm8gb3RoZXIgc3ViY2xhc3NlcwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkocmV2aXNpb24gMTQyMTk5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw5
IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0
aW9uU2NvcGUuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgorI2lmIEVO
QUJMRShERUxFVElPTl9VSSkKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCisj
ZW5kaWYKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpAQCAtODI1LDE0ICs4MjcsMTcgQEAgdm9pZCBDb250
YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoYm9vbAogCiB2b2lkIENvbnRhaW5lck5vZGU6OmNs
b25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlICpjbG9uZSkKIHsKKyNpZiBFTkFCTEUoREVMRVRJ
T05fVUkpCiAgICAgSFRNTEVsZW1lbnQqIGRlbGV0ZUJ1dHRvbkNvbnRhaW5lckVsZW1lbnQgPSAw
OwogICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBk
ZWxldGVCdXR0b25Db250YWluZXJFbGVtZW50ID0gZnJhbWUtPmVkaXRvcigpLT5kZWxldGVCdXR0
b25Db250cm9sbGVyKCktPmNvbnRhaW5lckVsZW1lbnQoKTsKLQorI2VuZGlmCiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuICYmICFl
YzsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKKyNpZiBFTkFCTEUoREVMRVRJT05fVUkpCiAgICAg
ICAgIGlmIChuID09IGRlbGV0ZUJ1dHRvbkNvbnRhaW5lckVsZW1lbnQpCiAgICAgICAgICAgICBj
b250aW51ZTsKKyNlbmRpZgogICAgICAgICBjbG9uZS0+YXBwZW5kQ2hpbGQobi0+Y2xvbmVOb2Rl
KHRydWUpLCBlYyk7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDE0MjE5OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw5IEBACiAKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkFwcGx5U3R5bGVDb21tYW5kLmgiCisjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogI2luY2x1
ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTk5LDE0ICsxMDEsMTcgQEAgdm9pZCBFZGl0Q29t
bWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5KCkKICAgICAvLyBMb3cgbGV2ZWwgb3BlcmF0aW9ucywg
bGlrZSBSZW1vdmVOb2RlQ29tbWFuZCwgZG9uJ3QgcmVxdWlyZSBhIGxheW91dCBiZWNhdXNlIHRo
ZSBoaWdoIGxldmVsIG9wZXJhdGlvbnMgdGhhdCB1c2UgdGhlbSBwZXJmb3JtIG9uZQogICAgIC8v
IGlmIG9uZSBpcyBuZWNlc3NhcnkgKGxpa2UgZm9yIHRoZSBjcmVhdGlvbiBvZiBWaXNpYmxlUG9z
aXRpb25zKS4KICAgICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKLSAgICAKKworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBEZWxldGVCdXR0
b25Db250cm9sbGVyKiBkZWxldGVCdXR0b25Db250cm9sbGVyID0gZnJhbWUtPmVkaXRvcigpLT5k
ZWxldGVCdXR0b25Db250cm9sbGVyKCk7CiAgICAgZGVsZXRlQnV0dG9uQ29udHJvbGxlci0+ZGlz
YWJsZSgpOworI2VuZGlmCiAgICAgc2l6ZV90IHNpemUgPSBtX2NvbW1hbmRzLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gc2l6ZTsgaSAhPSAwOyAtLWkpCiAgICAgICAgIG1fY29tbWFuZHNb
aSAtIDFdLT5kb1VuYXBwbHkoKTsKKyNpZiBFTkFCTEUoREVMRVRJT05fVUkpCiAgICAgZGVsZXRl
QnV0dG9uQ29udHJvbGxlci0+ZW5hYmxlKCk7Ci0gICAgCisjZW5kaWYKICAgICBmcmFtZS0+ZWRp
dG9yKCktPnVuYXBwbGllZEVkaXRpbmcodGhpcyk7CiB9CiAKQEAgLTEyMSwxMiArMTI2LDE2IEBA
IHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6cmVhcHBseSgpCiAgICAgLy8gaWYgb25lIGlz
IG5lY2Vzc2FyeSAobGlrZSBmb3IgdGhlIGNyZWF0aW9uIG9mIFZpc2libGVQb3NpdGlvbnMpLgog
ICAgIG1fZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
ICAgIAorI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBEZWxldGVCdXR0b25Db250cm9sbGVy
KiBkZWxldGVCdXR0b25Db250cm9sbGVyID0gZnJhbWUtPmVkaXRvcigpLT5kZWxldGVCdXR0b25D
b250cm9sbGVyKCk7CiAgICAgZGVsZXRlQnV0dG9uQ29udHJvbGxlci0+ZGlzYWJsZSgpOworI2Vu
ZGlmCiAgICAgc2l6ZV90IHNpemUgPSBtX2NvbW1hbmRzLnNpemUoKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSAhPSBzaXplOyArK2kpCiAgICAgICAgIG1fY29tbWFuZHNbaV0tPmRvUmVhcHBs
eSgpOworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBkZWxldGVCdXR0b25Db250cm9sbGVy
LT5lbmFibGUoKTsKKyNlbmRpZgogICAgIAogICAgIGZyYW1lLT5lZGl0b3IoKS0+cmVhcHBsaWVk
RWRpdGluZyh0aGlzKTsKIH0KQEAgLTIwMCwxMCArMjA5LDE0IEBAIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OmFwcGx5KCkKICAgICBBU1NFUlQoZnJhbWUpOwogICAgIHsKICAgICAgICAgRXZl
bnRRdWV1ZVNjb3BlIHNjb3BlOworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICAgICAgRGVs
ZXRlQnV0dG9uQ29udHJvbGxlciogZGVsZXRlQnV0dG9uQ29udHJvbGxlciA9IGZyYW1lLT5lZGl0
b3IoKS0+ZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpOwogICAgICAgICBkZWxldGVCdXR0b25Db250
cm9sbGVyLT5kaXNhYmxlKCk7CisjZW5kaWYKICAgICAgICAgZG9BcHBseSgpOworI2lmIEVOQUJM
RShERUxFVElPTl9VSSkKICAgICAgICAgZGVsZXRlQnV0dG9uQ29udHJvbGxlci0+ZW5hYmxlKCk7
CisjZW5kaWYKICAgICB9CiAKICAgICAvLyBPbmx5IG5lZWQgdG8gY2FsbCBhcHBsaWVkRWRpdGlu
ZyBmb3IgdG9wLWxldmVsIGNvbW1hbmRzLApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVCdXR0b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlQnV0dG9uLmNwcAkocmV2aXNpb24gMTQyMTk5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVCdXR0b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAorI2lmIEVOQUJM
RShERUxFVElPTl9VSSkKKwogaW5saW5lIERlbGV0ZUJ1dHRvbjo6RGVsZXRlQnV0dG9uKERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxJbWFnZUVsZW1lbnQoaW1nVGFnLCBkb2N1bWVudCkK
IHsKQEAgLTU4LDUgKzYwLDYgQEAgdm9pZCBEZWxldGVCdXR0b246OmRlZmF1bHRFdmVudEhhbmRs
ZXIoRQogCiAgICAgSFRNTEltYWdlRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTQyMTk5KQor
KysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKKyNpZiBFTkFCTEUoREVMRVRJT05fVUkpCisKIGNvbnN0
IGNoYXIqIGNvbnN0IERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNvbnRhaW5lckVsZW1lbnRJZGVu
dGlmaWVyID0gIldlYktpdC1FZGl0aW5nLURlbGV0ZS1Db250YWluZXIiOwogY29uc3QgY2hhciog
Y29uc3QgRGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6YnV0dG9uRWxlbWVudElkZW50aWZpZXIgPSAi
V2ViS2l0LUVkaXRpbmctRGVsZXRlLUJ1dHRvbiI7CiBjb25zdCBjaGFyKiBjb25zdCBEZWxldGVC
dXR0b25Db250cm9sbGVyOjpvdXRsaW5lRWxlbWVudElkZW50aWZpZXIgPSAiV2ViS2l0LUVkaXRp
bmctRGVsZXRlLU91dGxpbmUiOwpAQCAtMzk0LDUgKzM5Niw2IEBAIHZvaWQgRGVsZXRlQnV0dG9u
Q29udHJvbGxlcjo6ZGVsZXRlVGFyZ2UKICAgICBhcHBseUNvbW1hbmQoUmVtb3ZlVGFyZ2V0Q29t
bWFuZDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIG1fdGFyZ2V0KSk7CiAgICAgbV9mcmFt
ZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlUG9zaXRpb24ocG9zKSk7CiB9Cisj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmgJKHJldmlzaW9uIDE0MjE5OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSw5ICs0MSw2IEBAIGNsYXNzIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIgewog
cHVibGljOgogICAgIGV4cGxpY2l0IERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoRnJhbWUqKTsKIAot
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBjb250YWluZXJFbGVtZW50SWRlbnRpZmllcjsK
LQotICAgIEhUTUxFbGVtZW50KiB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQo
KTsgfQogICAgIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9jb250YWluZXJFbGVtZW50LmdldCgpOyB9CiAKICAgICB2b2lkIHJlc3BvbmRUb0NoYW5nZWRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uKTsKQEAgLTUzLDcg
KzUwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2hvdyhIVE1MRWxlbWVudCopOwogICAgIHZvaWQg
aGlkZSgpOwogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gKG1fZGlzYWJsZVN0
YWNrID09IDApOyB9CiAgICAgdm9pZCBlbmFibGUoKTsKICAgICB2b2lkIGRpc2FibGUoKTsKIApA
QCAtNjIsOCArNTgsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgYnV0dG9uRWxlbWVudElkZW50aWZpZXI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IG91dGxpbmVFbGVtZW50SWRlbnRpZmllcjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QgY29udGFpbmVyRWxlbWVudElkZW50aWZpZXI7CiAKICAgICB2b2lkIGNyZWF0ZURlbGV0
aW9uVUkoKTsKKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiAoIW1fZGlzYWJsZVN0
YWNrKTsgfQogCiAgICAgRnJhbWUqIG1fZnJhbWU7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBt
X3RhcmdldDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCShyZXZp
c2lvbiAxNDIxOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsOSBAQAogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgi
CiAKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgorI2lmIEVOQUJMRShERUxFVElP
Tl9VSSkKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCisjZW5kaWYKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKQEAgLTQ2LDcgKzQ4LDExIEBAIEVkaXRDb21tYW5kOjpFZGl0Q29tbWFuZChEb2N1bWVudCog
ZG9jdW0KIHsKICAgICBBU1NFUlQobV9kb2N1bWVudCk7CiAgICAgQVNTRVJUKG1fZG9jdW1lbnQt
PmZyYW1lKCkpOworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBzZXRTdGFydGluZ1NlbGVj
dGlvbihhdm9pZEludGVyc2VjdGlvbldpdGhOb2RlKG1fZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVj
dGlvbigpLT5zZWxlY3Rpb24oKSwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+ZWRpdG9yKCktPmRlbGV0
ZUJ1dHRvbkNvbnRyb2xsZXIoKS0+Y29udGFpbmVyRWxlbWVudCgpKSk7CisjZWxzZQorICAgIHNl
dFN0YXJ0aW5nU2VsZWN0aW9uKG1fZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxl
Y3Rpb24oKSk7CisjZW5kaWYKICAgICBzZXRFbmRpbmdTZWxlY3Rpb24obV9zdGFydGluZ1NlbGVj
dGlvbik7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDE0
MjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzcsNyArMzcsOSBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisj
aWYgRU5BQkxFKERFTEVUSU9OX1VJKQogI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIK
QEAgLTUzLDYgKzU1LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0
UmVzdWx0LmgiCkBAIC00ODQsNyArNDg3LDkgQEAgdm9pZCBFZGl0b3I6Om5vdGlmeUNvbXBvbmVu
dHNPbkNoYW5nZWRTZQogICAgIGlmIChjbGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlc3Bv
bmRUb0NoYW5nZWRTZWxlY3Rpb24obV9mcmFtZSk7CiAgICAgc2V0U3RhcnROZXdLaWxsUmluZ1Nl
cXVlbmNlKHRydWUpOworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBtX2RlbGV0ZUJ1dHRv
bkNvbnRyb2xsZXItPnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKKyNl
bmRpZgogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvQ2hhbmdlZFNl
bGVjdGlvbihvbGRTZWxlY3Rpb24sIG9wdGlvbnMpOwogfQogCkBAIC04NDEsNyArODQ2LDYgQEAg
dm9pZCBFZGl0b3I6OnJlYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cgogCiBFZGl0b3I6OkVkaXRv
cihGcmFtZSogZnJhbWUpCiAgICAgOiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZnJhbWUpCi0g
ICAgLCBtX2RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoYWRvcHRQdHIobmV3IERlbGV0ZUJ1dHRvbkNv
bnRyb2xsZXIoZnJhbWUpKSkKICAgICAsIG1faWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFu
Z2UoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShmYWxzZSkK
ICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0
aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUgYnV0IG5vdCBGRikuCkBAIC04NTIsNiArODU2
LDkgQEAgRWRpdG9yOjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgICwgbV9hcmVNYXJrZWRUZXh0
TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogICAgICwgbV9kZWZhdWx0UGFyYWdyYXBoU2VwYXJh
dG9yKEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2KQogeworI2lmIEVOQUJMRShERUxFVElP
Tl9VSSkKKyAgICBtX2RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgRGVsZXRl
QnV0dG9uQ29udHJvbGxlcihmcmFtZSkpOworI2VuZGlmCiB9CiAKIEVkaXRvcjo6fkVkaXRvcigp
CkBAIC0yMzk0LDcgKzI0MDEsMTEgQEAgUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpyYW5nZUZv
clBvaW50KAogICAgICAgICByZXR1cm4gMDsKICAgICBJbnRQb2ludCBmcmFtZVBvaW50ID0gZnJh
bWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKHdpbmRvd1BvaW50KTsKICAgICBWaXNpYmxlU2VsZWN0
aW9uIHNlbGVjdGlvbihmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoZnJhbWVQb2ludCkp
OworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICByZXR1cm4gYXZvaWRJbnRlcnNlY3Rpb25X
aXRoTm9kZShzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgbV9kZWxldGVCdXR0
b25Db250cm9sbGVyLT5jb250YWluZXJFbGVtZW50KCkpOworI2Vsc2UKKyAgICByZXR1cm4gc2Vs
ZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBFZGl0b3I6OnJl
dmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihjb25zdCBTY3JvbGxBbGlnbm1lbnQm
IGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50T3B0aW9uIHJldmVhbEV4dGVudE9wdGlvbikKQEAgLTMw
MTQsNyArMzAyNSw5IEBAIFRleHRDaGVja2luZ1R5cGVNYXNrIEVkaXRvcjo6cmVzb2x2ZVRleHQK
IAogdm9pZCBFZGl0b3I6OmRldmljZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCiB7CisjaWYgRU5BQkxF
KERFTEVUSU9OX1VJKQogICAgIG1fZGVsZXRlQnV0dG9uQ29udHJvbGxlci0+ZGV2aWNlU2NhbGVG
YWN0b3JDaGFuZ2VkKCk7CisjZW5kaWYKIH0KIAogYm9vbCBFZGl0b3I6OnVuaWZpZWRUZXh0Q2hl
Y2tlckVuYWJsZWQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lv
biAxNDIxOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw3ICs1MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2xpcGJv
YXJkOwogY2xhc3MgQ29tcG9zaXRlRWRpdENvbW1hbmQ7CisjaWYgRU5BQkxFKERFTEVUSU9OX1VJ
KQogY2xhc3MgRGVsZXRlQnV0dG9uQ29udHJvbGxlcjsKKyNlbmRpZgogY2xhc3MgRWRpdENvbW1h
bmQ7CiBjbGFzcyBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOwogY2xhc3MgRWRpdG9yQ2xpZW50OwpA
QCAtOTQsNyArOTYsOSBAQCBwdWJsaWM6CiAgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVj
a2VyKCkgY29uc3Q7CiAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1l
OyB9CisjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIq
IGRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2RlbGV0ZUJ1dHRvbkNv
bnRyb2xsZXIuZ2V0KCk7IH0KKyNlbmRpZgogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBsYXN0
RWRpdENvbW1hbmQoKSB7IHJldHVybiBtX2xhc3RFZGl0Q29tbWFuZC5nZXQoKTsgfQogCiAgICAg
dm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKTsKQEAgLTQwMyw3ICs0MDcs
OSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFnZSgp
IE9WRVJSSURFOwogCisjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogICAgIE93blB0cjxEZWxldGVC
dXR0b25Db250cm9sbGVyPiBtX2RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI7CisjZW5kaWYKICAgICBS
ZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IG1fbGFzdEVkaXRDb21tYW5kOwogICAgIFJlZlB0
cjxOb2RlPiBtX3JlbW92ZWRBbmNob3I7CiAgICAgUmVmUHRyPFRleHQ+IG1fY29tcG9zaXRpb25O
b2RlOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9u
IDE0MjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTg3LDYgKzExODcsNyBAQCBib29sIGlzTm9uVGFibGVDZWxsSFRNTEJs
b2NrRWxlbWVudChjb25zCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoaDVUYWcpOwogfQog
CisjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogUGFzc1JlZlB0cjxSYW5nZT4gYXZvaWRJbnRlcnNl
Y3Rpb25XaXRoTm9kZShjb25zdCBSYW5nZSogcmFuZ2UsIE5vZGUqIG5vZGUpCiB7CiAgICAgaWYg
KCFyYW5nZSkKQEAgLTEyNDEsNyArMTI0Miw4IEBAIFZpc2libGVTZWxlY3Rpb24gYXZvaWRJbnRl
cnNlY3Rpb25XaXRoTm8KIAogICAgIHJldHVybiB1cGRhdGVkU2VsZWN0aW9uOwogfQotCisjZW5k
aWYKKyAgICAKIFBvc2l0aW9uIGFkanVzdGVkU2VsZWN0aW9uU3RhcnRGb3JTdHlsZUNvbXB1dGF0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGlzIHVzZWQgYnkgcmFuZ2Ugc3R5bGUgY29tcHV0YXRpb25zIHRvIGF2b2lkIGJ1Z3Mg
bGlrZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJldmlzaW9uIDE0
MjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAkod29ya2luZyBj
b3B5KQpAQCAtMTkyLDcgKzE5Miw5IEBAIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25G
b3JJbmRleCgKIAogUGFzc1JlZlB0cjxSYW5nZT4gY3JlYXRlUmFuZ2UoUGFzc1JlZlB0cjxEb2N1
bWVudD4sIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgZW5kLCBFeGNlcHRpb25Db2RlJik7CiBQYXNzUmVmUHRyPFJhbmdlPiBleHRlbmRSYW5nZVRv
V3JhcHBpbmdOb2RlcyhQYXNzUmVmUHRyPFJhbmdlPiByYW5nZVRvRXh0ZW5kLCBjb25zdCBSYW5n
ZSogbWF4aW11bVJhbmdlLCBjb25zdCBOb2RlKiByb290Tm9kZSk7CisjaWYgRU5BQkxFKERFTEVU
SU9OX1VJKQogUGFzc1JlZlB0cjxSYW5nZT4gYXZvaWRJbnRlcnNlY3Rpb25XaXRoTm9kZShjb25z
dCBSYW5nZSosIE5vZGUqKTsKKyNlbmRpZgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBIVE1M
RWxlbWVudApAQCAtMjM1LDcgKzIzNyw5IEBAIGJvb2wgY2FuTWVyZ2VMaXN0cyhFbGVtZW50KiBm
aXJzdExpc3QsIEUKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLy8gRnVuY3Rpb25zIHJldHVybmlu
ZyBWaXNpYmxlU2VsZWN0aW9uCisjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogVmlzaWJsZVNlbGVj
dGlvbiBhdm9pZEludGVyc2VjdGlvbldpdGhOb2RlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBO
b2RlKik7CisjZW5kaWYKIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uRm9yUGFyYWdyYXBoSXRl
cmF0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogUG9zaXRpb24gYWRqdXN0ZWRTZWxl
Y3Rpb25TdGFydEZvclN0eWxlQ29tcHV0YXRpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkocmV2aXNpb24gMTQyMTk5KQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw5IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNoaWxkTGlz
dE11dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKKyNpZiBFTkFC
TEUoREVMRVRJT05fVUkpCiAjaW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlw
ZS5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtNTU1LDE0ICs1NTcsMTggQEAgU3RyaW5nIGNy
ZWF0ZU1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIAogCiAgICAgLy8gRGlzYWJsZSB0aGUgZGVs
ZXRlIGJ1dHRvbiBzbyBpdCdzIGVsZW1lbnRzIGFyZSBub3Qgc2VyaWFsaXplZCBpbnRvIHRoZSBt
YXJrdXAsCiAgICAgLy8gYnV0IG1ha2Ugc3VyZSBuZWl0aGVyIGVuZHBvaW50IGlzIGluc2lkZSB0
aGUgZGVsZXRlIHVzZXIgaW50ZXJmYWNlLgorICAgIFJlZlB0cjxSYW5nZT4gdXBkYXRlZFJhbmdl
OworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+
ZnJhbWUoKTsKICAgICBEZWxldGVCdXR0b25Db250cm9sbGVyKiBkZWxldGVCdXR0b24gPSBmcmFt
ZSA/IGZyYW1lLT5lZGl0b3IoKS0+ZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpIDogMDsKLSAgICBS
ZWZQdHI8UmFuZ2U+IHVwZGF0ZWRSYW5nZSA9IGF2b2lkSW50ZXJzZWN0aW9uV2l0aE5vZGUocmFu
Z2UsIGRlbGV0ZUJ1dHRvbiA/IGRlbGV0ZUJ1dHRvbi0+Y29udGFpbmVyRWxlbWVudCgpIDogMCk7
CisgICAgdXBkYXRlZFJhbmdlID0gYXZvaWRJbnRlcnNlY3Rpb25XaXRoTm9kZShyYW5nZSwgZGVs
ZXRlQnV0dG9uID8gZGVsZXRlQnV0dG9uLT5jb250YWluZXJFbGVtZW50KCkgOiAwKTsKICAgICBp
ZiAoIXVwZGF0ZWRSYW5nZSkKICAgICAgICAgcmV0dXJuICIiOwotCiAgICAgaWYgKGRlbGV0ZUJ1
dHRvbikKICAgICAgICAgZGVsZXRlQnV0dG9uLT5kaXNhYmxlKCk7CisjZWxzZQorICAgIHVwZGF0
ZWRSYW5nZSA9IFJhbmdlOjpjcmVhdGUocmFuZ2UtPm93bmVyRG9jdW1lbnQoKSwgcmFuZ2UtPnN0
YXJ0Q29udGFpbmVyKCksIHJhbmdlLT5zdGFydE9mZnNldCgpLCByYW5nZS0+ZW5kQ29udGFpbmVy
KCksIHJhbmdlLT5lbmRPZmZzZXQoKSk7CisjZW5kaWYKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIGJvb2wgY29sbGFwc2VkID0gdXBkYXRlZFJhbmdlLT5jb2xsYXBzZWQoZWMpOwpA
QCAtNTkwLDggKzU5NiwxMCBAQCBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiByYW5n
ZSwgCiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVFbmQodXBkYXRlZFJhbmdlLT5lbmRQb3Np
dGlvbigpLCBWUF9ERUZBVUxUX0FGRklOSVRZKTsKICAgICBpZiAoc2hvdWxkQW5ub3RhdGUgPT0g
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSAmJiBuZWVkSW50ZXJjaGFuZ2VOZXdsaW5lQWZ0ZXIodmlz
aWJsZVN0YXJ0KSkgewogICAgICAgICBpZiAodmlzaWJsZVN0YXJ0ID09IHZpc2libGVFbmQucHJl
dmlvdXMoKSkgeworI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICAgICAgICAgIGlmIChkZWxl
dGVCdXR0b24pCiAgICAgICAgICAgICAgICAgZGVsZXRlQnV0dG9uLT5lbmFibGUoKTsKKyNlbmRp
ZgogICAgICAgICAgICAgcmV0dXJuIGludGVyY2hhbmdlTmV3bGluZVN0cmluZzsKICAgICAgICAg
fQogCkBAIC02MDEsOCArNjA5LDEwIEBAIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2Uq
IHJhbmdlLCAKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIGlmIChwYXN0
RW5kICYmIFJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoc3RhcnROb2RlLCAwLCBwYXN0RW5k
LCAwLCBlYykgPj0gMCkgewogICAgICAgICAgICAgQVNTRVJUKCFlYyk7CisjaWYgRU5BQkxFKERF
TEVUSU9OX1VJKQogICAgICAgICAgICAgaWYgKGRlbGV0ZUJ1dHRvbikKICAgICAgICAgICAgICAg
ICBkZWxldGVCdXR0b24tPmVuYWJsZSgpOworI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gaW50
ZXJjaGFuZ2VOZXdsaW5lU3RyaW5nOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVCghZWMpOwpA
QCAtNjUxLDkgKzY2MSwxMCBAQCBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiByYW5n
ZSwgCiAgICAgaWYgKHNob3VsZEFubm90YXRlID09IEFubm90YXRlRm9ySW50ZXJjaGFuZ2UgJiYg
bmVlZEludGVyY2hhbmdlTmV3bGluZUFmdGVyKHZpc2libGVFbmQucHJldmlvdXMoKSkpCiAgICAg
ICAgIGFjY3VtdWxhdG9yLmFwcGVuZFN0cmluZyhpbnRlcmNoYW5nZU5ld2xpbmVTdHJpbmcpOwog
CisjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogICAgIGlmIChkZWxldGVCdXR0b24pCiAgICAgICAg
IGRlbGV0ZUJ1dHRvbi0+ZW5hYmxlKCk7Ci0KKyNlbmRpZgogICAgIHJldHVybiBhY2N1bXVsYXRv
ci50YWtlUmVzdWx0cygpOwogfQogCkBAIC03NjcsMTIgKzc3OCwxMyBAQCBTdHJpbmcgY3JlYXRl
TWFya3VwKGNvbnN0IE5vZGUqIG5vZGUsIEVDCiAgICAgICAgIHJldHVybiAiIjsKIAogICAgIEhU
TUxFbGVtZW50KiBkZWxldGVCdXR0b25Db250YWluZXJFbGVtZW50ID0gMDsKKyNpZiBFTkFCTEUo
REVMRVRJT05fVUkpCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPmZy
YW1lKCkpIHsKICAgICAgICAgZGVsZXRlQnV0dG9uQ29udGFpbmVyRWxlbWVudCA9IGZyYW1lLT5l
ZGl0b3IoKS0+ZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpLT5jb250YWluZXJFbGVtZW50KCk7CiAg
ICAgICAgIGlmIChub2RlLT5pc0Rlc2NlbmRhbnRPZihkZWxldGVCdXR0b25Db250YWluZXJFbGVt
ZW50KSkKICAgICAgICAgICAgIHJldHVybiAiIjsKICAgICB9Ci0KKyNlbmRpZgogICAgIE1hcmt1
cEFjY3VtdWxhdG9yIGFjY3VtdWxhdG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcyk7CiAgICAg
cmV0dXJuIGFjY3VtdWxhdG9yLnNlcmlhbGl6ZU5vZGVzKGNvbnN0X2Nhc3Q8Tm9kZSo+KG5vZGUp
LCBkZWxldGVCdXR0b25Db250YWluZXJFbGVtZW50LCBjaGlsZHJlbk9ubHksIHRhZ05hbWVzVG9T
a2lwKTsKIH0KQEAgLTkxOCwxMCArOTMwLDExIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ20KICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gMDsKIAor
I2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICAvLyBkaXNhYmxlIHRoZSBkZWxldGUgYnV0dG9u
IHNvIGl0J3MgZWxlbWVudHMgYXJlIG5vdCBzZXJpYWxpemVkIGludG8gdGhlIG1hcmt1cAogICAg
IGlmIChkb2N1bWVudC0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQtPmZyYW1lKCktPmVkaXRv
cigpLT5kZWxldGVCdXR0b25Db250cm9sbGVyKCktPmRpc2FibGUoKTsKLQorI2VuZGlmCiAgICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtOTM0LDkgKzk0
NywxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtCiAgICAgICAg
IEFTU0VSVCghZWMpOwogICAgIH0KIAorI2lmIEVOQUJMRShERUxFVElPTl9VSSkKICAgICBpZiAo
ZG9jdW1lbnQtPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+
ZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpLT5lbmFibGUoKTsKLQorI2VuZGlmCiAgICAgcmV0dXJu
IGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuY3BwCShyZXZpc2lvbiAxNDIxOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAK
ICNpbmNsdWRlICJBdXRvVGFibGVMYXlvdXQuaCIKICNpbmNsdWRlICJDb2xsYXBzZWRCb3JkZXJW
YWx1ZS5oIgotI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkZpeGVkVGFibGVMYXlvdXQuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIK
</data>
<flag name="review"
          id="207581"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>