<?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>60830</bug_id>
          
          <creation_ts>2011-05-13 22:53:03 -0700</creation_ts>
          <short_desc>Mouse-select then Cut, results in preceding character being lost</short_desc>
          <delta_ts>2012-08-09 21:45:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>525.x (Safari 3.2)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="PAC">p.chapman.uk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>enrica</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mehmet.sahin</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>404029</commentid>
    <comment_count>0</comment_count>
    <who name="PAC">p.chapman.uk</who>
    <bug_when>2011-05-13 22:53:03 -0700</bug_when>
    <thetext>Initially reported as a Chromium bug, I have been asked to post to webkit buglist....

Chrome Version       : 11.0.696.68
OS Version: OS X 10.6.7
Other browsers tested:
    Safari 5.0.5 (6533.21.1):  FAIL
    Chromium 11.0.692.0 (77020): FAIL
    Firefox 4.x: OK

What steps will reproduce the problem?

1. Load any webpage with a &lt;TEXTAREA&gt;, lets use http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea
2. Using the mouse, double click any word. Lets use &apos;because&apos; as an example..
3. Press CMD-X to cut
3. Press CMD-V to paste it back again

What is the expected result?

&apos;because&apos; is cut into the clipboard, leaving the rest of the text intact
Pasting the word back should result in the original text again

What happens instead?

&apos;because&apos; is cut into the clipboard, but the preceding character (in this case a space) disappears completely (and isnt in clipboard). 
This happens no matter what the preceding character is, even if its a carriage return.

The same problem does *not* occur if you use the keyboard to select the word, and then cut.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404030</commentid>
    <comment_count>1</comment_count>
    <who name="Mehmet">mehmet.sahin</who>
    <bug_when>2011-05-13 23:04:02 -0700</bug_when>
    <thetext>Chromium Bug-Report: http://code.google.com/p/chromium/issues/detail?id=82603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404081</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-14 11:27:08 -0700</bug_when>
    <thetext>&gt; &apos;because&apos; is cut into the clipboard, leaving the rest of the text intact

Why do you expect that? It&apos;s intentional that extra spaces are removed, it&apos;s called &quot;smart cut&amp;paste&quot;. TextEdit has the same behavior.

&gt; Pasting the word back should result in the original text again

Here, WebKit clearly has a bug. Pasting should be smart too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691017</commentid>
    <comment_count>3</comment_count>
      <attachid>157351</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-08 17:43:51 -0700</bug_when>
    <thetext>Created attachment 157351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691019</commentid>
    <comment_count>4</comment_count>
      <attachid>157351</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-08 17:47:40 -0700</bug_when>
    <thetext>Comment on attachment 157351
Patch

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

&gt; LayoutTests/editing/pasteboard/smart-paste-in-text-control-expected.txt:3
&gt; +Hello world test

It&apos;s not obvious when the test is passing. Can we print out PASS/FAIL based on the results?

&gt; LayoutTests/editing/pasteboard/smart-paste-in-text-control.html:14
&gt; +This tests smart pasting in a text control. There are three words in the text area below, i.e. &quot;Hello world test&quot;. We double click the middle word. Then we cut and paste. It should result in the original text. The space before the middle word should not be lost.

You probably want to split this into two lines.
We normally mention the part for manual testing by &quot;To manually test, ~~&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691057</commentid>
    <comment_count>5</comment_count>
      <attachid>157359</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-08 18:26:15 -0700</bug_when>
    <thetext>Created attachment 157359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691064</commentid>
    <comment_count>6</comment_count>
      <attachid>157359</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-08 18:39:29 -0700</bug_when>
    <thetext>Comment on attachment 157359
Patch

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

&gt; Source/WebCore/platform/mac/ClipboardMac.mm:387
&gt; +    pasteboard.writePlainText(text, false);

Ugh... can we use enum instead so that these call sites don&apos;t look so cryptic?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691955</commentid>
    <comment_count>7</comment_count>
      <attachid>157569</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-09 15:55:44 -0700</bug_when>
    <thetext>Created attachment 157569
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692182</commentid>
    <comment_count>8</comment_count>
      <attachid>157569</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 21:45:39 -0700</bug_when>
    <thetext>Comment on attachment 157569
Patch

Clearing flags on attachment: 157569

Committed r125247: &lt;http://trac.webkit.org/changeset/125247&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692183</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 21:45:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157351</attachid>
            <date>2012-08-08 17:43:51 -0700</date>
            <delta_ts>2012-08-08 18:26:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60830-20120808174325.patch</filename>
            <type>text/plain</type>
            <size>17668</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTEyNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA4LTA4ICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBNb3VzZS1zZWxl
Y3QgdGhlbiBDdXQsIHJlc3VsdHMgaW4gcHJlY2VkaW5nIGNoYXJhY3RlciBiZWluZyBsb3N0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgzMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYnVnIGhh
cHBlbmVkIG9ubHkgaW4gdGV4dCBmaWVsZHMgYW5kIHRleHQgYXJlYXMsIG5vdCBpbiBvdGhlcgor
ICAgICAgICBjb250ZW50LWVkaXRhYmxlIGVsZW1lbnRzLiBUaGF0J3MgYmVjYXVzZSB3aGVuIHdl
IGN1dCBvciBjb3BpZWQgdGV4dAorICAgICAgICBpbiBhIHRleHQgY29udHJvbCwgd2UgY2FsbGVk
IFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0IGluc3RlYWQgb2YKKyAgICAgICAgUGFzdGVib2Fy
ZDo6d3JpdGVTZWxlY3Rpb24uIHdyaXRlUGxhaW5UZXh0IGRpZCBub3QgcmVjb3JkIHRoZSBzbWFy
dCByZXBsYWNlCisgICAgICAgIGluZm9ybWF0aW9uLiBNYWtlIHdyaXRlUGxhaW5UZXh0IHJlY29y
ZCB0aGUgc21hcnQgcmVwbGFjZSBpbmZvcm1hdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwKKworICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weSk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6
OmNvcHlUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y29weVRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFBhc3RlYm9hcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZWZs
L1Bhc3RlYm9hcmRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJk
TWFjOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFz
dGVib2FyZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vd2luY2UvUGFzdGVib2FyZFdpbkNFLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRX
eDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6CisKIDIw
MTItMDgtMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEdv
b2dsZSBzZWFyY2ggcXVlcnkgdGV4dCByZXZlcnRzIHRvIG9yaWdpbmFsIHNlYXJjaCBxdWVyeSBh
ZnRlciBtdWx0aXBsZSBzZWFyY2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAko
cmV2aXNpb24gMTI1MTI0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05ODYsNyArOTg2LDcgQEAgdm9pZCBFZGl0b3I6OmN1dCgpCiAgICAg
aWYgKHNob3VsZERlbGV0ZVJhbmdlKHNlbGVjdGlvbi5nZXQoKSkpIHsKICAgICAgICAgdXBkYXRl
TWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcodHJ1ZSk7CiAgICAgICAgIGlmIChlbmNs
b3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS0+c2VsZWN0aW9uKCktPnN0YXJ0KCkpKQotICAg
ICAgICAgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQo
c2VsZWN0ZWRUZXh0KCkpOworICAgICAgICAgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9h
cmQoKS0+d3JpdGVQbGFpblRleHQoc2VsZWN0ZWRUZXh0KCksIGNhblNtYXJ0Q29weU9yRGVsZXRl
KCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVi
b2FyZCgpLT53cml0ZVNlbGVjdGlvbihzZWxlY3Rpb24uZ2V0KCksIGNhblNtYXJ0Q29weU9yRGVs
ZXRlKCksIG1fZnJhbWUpOwogICAgICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgp
OwpAQCAtMTAwNCw3ICsxMDA0LDcgQEAgdm9pZCBFZGl0b3I6OmNvcHkoKQogICAgIH0KIAogICAg
IGlmIChlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS0+c2VsZWN0aW9uKCktPnN0YXJ0
KCkpKQotICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53cml0ZVBsYWlu
VGV4dChzZWxlY3RlZFRleHQoKSk7CisgICAgICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJv
YXJkKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dCgpLCBjYW5TbWFydENvcHlPckRlbGV0
ZSgpKTsKICAgICBlbHNlIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9
IGltYWdlRWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwCShyZXZpc2lvbiAx
MjUxMjQpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHRI
b3N0OjpjbGVhckNvbnNvbGVNZXMKIAogdm9pZCBJbmplY3RlZFNjcmlwdEhvc3Q6OmNvcHlUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2Fy
ZCgpLT53cml0ZVBsYWluVGV4dCh0ZXh0KTsKKyAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVi
b2FyZCgpLT53cml0ZVBsYWluVGV4dCh0ZXh0LCBmYWxzZSk7CiB9CiAKIFNjcmlwdFZhbHVlIElu
amVjdGVkU2NyaXB0SG9zdDo6SW5zcGVjdGFibGVPYmplY3Q6OmdldChTY3JpcHRTdGF0ZSopCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcAkocmV2aXNpb24gMTI1MTI0KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw3ICsyMjIsNyBA
QCBTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpoaWRkZW5QYW5lCiAKIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0Ojpjb3B5VGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0gICAgUGFz
dGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQodGV4dCk7CisgICAg
UGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQodGV4dCwgZmFs
c2UpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAkocmV2
aXNpb24gMTI1MTI0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMg
UGFzdGVib2FyZCogZ2VuZXJhbFBhc3RlYm9hcmQoKTsKICAgICB2b2lkIHdyaXRlU2VsZWN0aW9u
KFJhbmdlKiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUqKTsKLSAgICB2b2lkIHdy
aXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgd3JpdGVQbGFpblRleHQoY29u
c3QgU3RyaW5nJiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSk7CiAgICAgdm9pZCB3cml0ZVVS
TChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7CiAgICAgdm9pZCB3cml0
ZUltYWdlKE5vZGUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9p
ZCB3cml0ZUNsaXBib2FyZChDbGlwYm9hcmQqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3Bw
CShyZXZpc2lvbiAxMjUxMjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5
L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBA
QCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKEtVUkwgY29uc3QmIHVyCiAgICAgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OkNsaXBib2FyZDo6d3JpdGVVUkwodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
LCBib29sKQogewogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpDbGlwYm9hcmQ6OndyaXRlUGxh
aW5UZXh0KHRleHQudXRmOCgpLmRhdGEoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDEyNTEyNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9h
cmRDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDggKzk4LDkgQEAgdm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogcwogICAgIFdlYktpdDo6UGxhdGZvcm06OmN1
cnJlbnQoKS0+Y2xpcGJvYXJkKCktPndyaXRlSFRNTChodG1sLCB1cmwsIHBsYWluVGV4dCwgY2Fu
U21hcnRDb3B5T3JEZWxldGUpOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlKQogeworICAgIC8vIEZJ
WE1FOiBhZGQgc3VwcG9ydCBmb3Igc21hcnQgcmVwbGFjaW5nCiAjaWYgT1MoV0lORE9XUykKICAg
ICBTdHJpbmcgcGxhaW5UZXh0KHRleHQpOwogICAgIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dz
U3R5bGVOZXdsaW5lcyhwbGFpblRleHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAkocmV2aXNpb24gMTI1MTI0KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw3ICs0Niw3IEBAIFBhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoKQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJikK
K3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBjYW5T
bWFydENvcHlPckRlbGV0ZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkocmV2aXNpb24g
MTI1MTI0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02OCwxNCArNjgsMTQgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZVNlbGVjdGlvbihSYW5nZSogcwogICAgIGhlbHBlci0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhj
bGlwYm9hcmQsIGNhblNtYXJ0Q29weU9yRGVsZXRlID8gUGFzdGVib2FyZEhlbHBlcjo6SW5jbHVk
ZVNtYXJ0UGFzdGUgOiBQYXN0ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1ZGVTbWFydFBhc3RlKTsK
IH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQp
Cit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCBjYW5TbWFydENvcHlPckRlbGV0ZSkKIHsKICAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCA9
IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCks
IEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKICAgICBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0
ID0gRGF0YU9iamVjdEd0azo6Zm9yQ2xpcGJvYXJkKGNsaXBib2FyZCk7CiAgICAgZGF0YU9iamVj
dC0+Y2xlYXJBbGwoKTsKIAogICAgIGRhdGFPYmplY3QtPnNldFRleHQodGV4dCk7Ci0gICAgUGFz
dGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+d3JpdGVDbGlwYm9hcmRD
b250ZW50cyhjbGlwYm9hcmQpOworICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJv
YXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMoY2xpcGJvYXJkLCBjYW5TbWFydENv
cHlPckRlbGV0ZSA/IFBhc3RlYm9hcmRIZWxwZXI6OkluY2x1ZGVTbWFydFBhc3RlIDogUGFzdGVi
b2FyZEhlbHBlcjo6RG9Ob3RJbmNsdWRlU21hcnRQYXN0ZSk7CiB9CiAKIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGcmFtZSog
ZnJhbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMu
bW0JKHJldmlzaW9uIDEyNTEyNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlw
Ym9hcmRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIENsaXBi
b2FyZE1hYzo6d3JpdGVSYW5nZShSYW5nZSogcmFuCiB2b2lkIENsaXBib2FyZE1hYzo6d3JpdGVQ
bGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIFBhc3RlYm9hcmQgcGFzdGVib2Fy
ZChtX3Bhc3RlYm9hcmROYW1lKTsKLSAgICBwYXN0ZWJvYXJkLndyaXRlUGxhaW5UZXh0KHRleHQp
OworICAgIHBhc3RlYm9hcmQud3JpdGVQbGFpblRleHQodGV4dCwgZmFsc2UpOwogfQogCiB2b2lk
IENsaXBib2FyZE1hYzo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBGcmFtZSogZnJhbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGFzdGVib2FyZE1hYy5tbQkocmV2aXNpb24gMTI1MTI0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwNCwxMiArMjA0
LDE3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb25Gb3JUeXBlcygKICAgICAgICAg
cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRCdWZmZXJGb3JU
eXBlKDAsIFdlYlNtYXJ0UGFzdGVQYm9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKTsKIH0KIAot
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBjYW5T
bWFydENvcHlPckRlbGV0ZSkKIHsKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKICAgICB0eXBl
cy5hcHBlbmQoTlNTdHJpbmdQYm9hcmRUeXBlKTsKKyAgICBpZiAoY2FuU21hcnRDb3B5T3JEZWxl
dGUpCisgICAgICAgIHR5cGVzLmFwcGVuZChXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSk7CisgICAg
CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRUeXBl
cyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJpbmdGb3JUeXBlKHRleHQsIE5TU3RyaW5nUGJvYXJk
VHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7CisgICAgaWYgKGNhblNtYXJ0Q29weU9yRGVsZXRlKQor
ICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldEJ1
ZmZlckZvclR5cGUoMCwgV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUsIG1fcGFzdGVib2FyZE5hbWUp
OwogfQogICAgIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBmcmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAkocmV2aXNpb24gMTI1MTI0KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI3LDcgKzEyNyw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2Fy
ZDoKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChj
b25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSkKIHsKICNpZm5kZWYgUVRf
Tk9fQ0xJUEJPQVJECiAgICAgUU1pbWVEYXRhKiBtZCA9IG5ldyBRTWltZURhdGE7CkBAIC0xMzUs
NiArMTM1LDggQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdAogICAg
IHF0ZXh0LnJlcGxhY2UoUUNoYXIoMHhhMCksIFFMYXRpbjFDaGFyKCcgJykpOwogICAgIG1kLT5z
ZXRUZXh0KHF0ZXh0KTsKICAgICBRR3VpQXBwbGljYXRpb246OmNsaXBib2FyZCgpLT5zZXRNaW1l
RGF0YShtZCwgbV9zZWxlY3Rpb25Nb2RlID8gUUNsaXBib2FyZDo6U2VsZWN0aW9uIDogUUNsaXBi
b2FyZDo6Q2xpcGJvYXJkKTsKKyAgICBpZiAoY2FuU21hcnRDb3B5T3JEZWxldGUpCisgICAgICAg
IG1kLT5zZXREYXRhKFFMYXRpbjFTdHJpbmcoImFwcGxpY2F0aW9uL3ZuZC5xdHdlYmtpdC5zbWFy
dHBhc3RlIiksIFFCeXRlQXJyYXkoKSk7CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAkocmV2aXNpb24gMTI1MTI0KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlv
bihSYW5nZSogcwogICAgIH0KIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChj
b25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSkKIHsKICAgICBjbGVhcigp
OwogCkBAIC0xNjIsNiArMTYyLDE0IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQo
Y29uc3QgU3QKICAgICAgICAgICAgIDo6R2xvYmFsRnJlZShjYkRhdGEpOwogICAgICAgICA6OkNs
b3NlQ2xpcGJvYXJkKCk7CiAgICAgfQorCisgICAgLy8gZW5hYmxlIHNtYXJ0LXJlcGxhY2luZyBs
YXRlciBvbiBieSBwdXR0aW5nIGR1bW15IGRhdGEgb24gdGhlIHBhc3RlYm9hcmQKKyAgICBpZiAo
Y2FuU21hcnRDb3B5T3JEZWxldGUpIHsKKyAgICAgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293
bmVyKSkgeworICAgICAgICAgICAgOjpTZXRDbGlwYm9hcmREYXRhKFdlYlNtYXJ0UGFzdGVGb3Jt
YXQsIDApOworICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOworICAgICAgICB9CisgICAg
fQogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB0aXRsZVN0ciwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luY2UvUGFzdGVib2FyZFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luQ0UuY3BwCShyZXZpc2lvbiAxMjUxMjQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luQ0UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNl
bGVjdGlvbihSYW5nZSogcwogICAgIH0KIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSkKIHsKICAgICBj
bGVhcigpOwogCkBAIC0xNTcsNiArMTU3LDE0IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFp
blRleHQoY29uc3QgU3QKICAgICAgICAgICAgIDo6R2xvYmFsRnJlZShjYkRhdGEpOwogICAgICAg
ICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgfQorCisgICAgLy8gZW5hYmxlIHNtYXJ0LXJlcGxh
Y2luZyBsYXRlciBvbiBieSBwdXR0aW5nIGR1bW15IGRhdGEgb24gdGhlIHBhc3RlYm9hcmQKKyAg
ICBpZiAoY2FuU21hcnRDb3B5T3JEZWxldGUpIHsKKyAgICAgICAgaWYgKDo6T3BlbkNsaXBib2Fy
ZChtX293bmVyKSkgeworICAgICAgICAgICAgOjpTZXRDbGlwYm9hcmREYXRhKFdlYlNtYXJ0UGFz
dGVGb3JtYXQsIDApOworICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOworICAgICAgICB9
CisgICAgfQogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0aXRsZVN0ciwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmNwcAkocmV2aXNpb24gMTI1MTI0KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDIsNyArMTQyLDcgQEAgYm9vbCBDbGlwYm9hcmRXeDo6aGFzRGF0YSgpIAogCiB2b2lkIENs
aXBib2FyZFd4Ojp3cml0ZVBsYWluVGV4dChjb25zdCBXVEY6OlN0cmluZyYgdGV4dCkKIHsKLSAg
ICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53cml0ZVBsYWluVGV4dCh0ZXh0KTsK
KyAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53cml0ZVBsYWluVGV4dCh0ZXh0
LCBmYWxzZSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L1Bhc3Rl
Ym9hcmRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvUGFz
dGVib2FyZFd4LmNwcAkocmV2aXNpb24gMTI1MTI0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3gvUGFzdGVib2FyZFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCB2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzCiAgICAgfQogfQogCi12b2lk
IFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQgUGFz
dGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIGNhblNtYXJ0
Q29weU9yRGVsZXRlKQogewogICAgIGlmICh3eFRoZUNsaXBib2FyZC0+T3BlbigpKSB7CiAgICAg
ICAgIHd4VGhlQ2xpcGJvYXJkLT5TZXREYXRhKCBuZXcgd3hUZXh0RGF0YU9iamVjdCh0ZXh0KSAp
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTI1MTI0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMDggIFN1a29sc2FrIFNha3No
dXdvbmcgIDxzdWtvbHNha0Bnb29nbGUuY29tPgorCisgICAgICAgIE1vdXNlLXNlbGVjdCB0aGVu
IEN1dCwgcmVzdWx0cyBpbiBwcmVjZWRpbmcgY2hhcmFjdGVyIGJlaW5nIGxvc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwODMwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDEyLTA4LTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBHb29nbGUgc2VhcmNoIHF1ZXJ5IHRleHQgcmV2ZXJ0cyB0byBvcmlnaW5hbCBzZWFyY2ggcXVl
cnkgYWZ0ZXIgbXVsdGlwbGUgc2VhcmNoZXMKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0
LWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyBzbWFydCBwYXN0aW5nIGluIGEg
dGV4dCBjb250cm9sLiBUaGVyZSBhcmUgdGhyZWUgd29yZHMgaW4gdGhlIHRleHQgYXJlYSBiZWxv
dywgaS5lLiAiSGVsbG8gd29ybGQgdGVzdCIuIFdlIGRvdWJsZSBjbGljayB0aGUgbWlkZGxlIHdv
cmQuIFRoZW4gd2UgY3V0IGFuZCBwYXN0ZS4gSXQgc2hvdWxkIHJlc3VsdCBpbiB0aGUgb3JpZ2lu
YWwgdGV4dC4gVGhlIHNwYWNlIGJlZm9yZSB0aGUgbWlkZGxlIHdvcmQgc2hvdWxkIG5vdCBiZSBs
b3N0LgorCitIZWxsbyB3b3JsZCB0ZXN0CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0
LXBhc3RlLWluLXRleHQtY29udHJvbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPiAKKzxoZWFkPgorPHN0eWxlPgorI3RleHRhcmVhIHsK
KyAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICBmb250LXNpemU6IDE2cHg7CisgICAgY29sb3I6
IHJnYmEoMCwgMCwgMCwgMC4yKTsKKyAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0cyBzbWFydCBwYXN0aW5nIGlu
IGEgdGV4dCBjb250cm9sLiBUaGVyZSBhcmUgdGhyZWUgd29yZHMgaW4gdGhlIHRleHQgYXJlYSBi
ZWxvdywgaS5lLiAiSGVsbG8gd29ybGQgdGVzdCIuIFdlIGRvdWJsZSBjbGljayB0aGUgbWlkZGxl
IHdvcmQuIFRoZW4gd2UgY3V0IGFuZCBwYXN0ZS4gSXQgc2hvdWxkIHJlc3VsdCBpbiB0aGUgb3Jp
Z2luYWwgdGV4dC4gVGhlIHNwYWNlIGJlZm9yZSB0aGUgbWlkZGxlIHdvcmQgc2hvdWxkIG5vdCBi
ZSBsb3N0LgorPGRpdj4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiPkhlbGxvIHdvcmxkIHRlc3Q8
L3RleHRhcmVhPgorPC9kaXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGRvdWJsZUNsaWNrKHgsIHkp
IHsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorICAgIAordmFyIHRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpOwordmFyIHggPSB0YXJn
ZXQub2Zmc2V0TGVmdCArIDEyMDsKK3ZhciB5ID0gdGFyZ2V0Lm9mZnNldFRvcCArIDEwOworZG91
YmxlQ2xpY2soeCwgeSk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJDdXQiKTsKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworZG9jdW1lbnQud3JpdGUodGFyZ2V0LnZhbHVlKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMjUxMjQpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTQsNiArMTU0LDkgQEAgQlVHV0s4OTA1MiBTS0lQIDogZmFzdC9jc3MvaW1hZ2Utb3JpZW50
YQogLy8gQ2hyb21pdW0gbmVlZHMgbGFyZ2VyIG1lZGlhIGZpbGVzIHRvIHRlc3QgYnVmZmVyaW5n
IHRoaXMgd2F5LgogQlVHV0s4ODE3MiBTS0lQIDogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1idWZm
ZXJlZC5odG1sID0gUEFTUwogCisvLyBDaHJvbWl1bSBkb2VzIG5vdCBzdXBwb3J0IHNtYXJ0IHBh
c3RpbmcgaW4gdGV4dCBjb250cm9scyB5ZXQuCitCVUdXSzYwODMwIFNLSVAgOiBlZGl0aW5nL3Bh
c3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwgPSBQQVNTCisKIC8vIFBy
b3hpbWl0eSBFdmVudHMgaXMgbm90IHN1cHBvcnRlZC4KIEJVR1dLOTI5NDIgU0tJUCA6IGZhc3Qv
ZG9tL1Byb3hpbWl0eSA9IFBBU1MKIEJVR1dLOTI5NDIgU0tJUCA6IGZhc3QvZXZlbnRzL2NvbnN0
cnVjdG9ycy9kZXZpY2UtcHJveGltaXR5LWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgPSBQQVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157359</attachid>
            <date>2012-08-08 18:26:15 -0700</date>
            <delta_ts>2012-08-09 15:55:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60830-20120808182548.patch</filename>
            <type>text/plain</type>
            <size>18035</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA4LTA4ICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBNb3VzZS1zZWxl
Y3QgdGhlbiBDdXQsIHJlc3VsdHMgaW4gcHJlY2VkaW5nIGNoYXJhY3RlciBiZWluZyBsb3N0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgzMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYnVnIGhh
cHBlbmVkIG9ubHkgaW4gdGV4dCBmaWVsZHMgYW5kIHRleHQgYXJlYXMsIG5vdCBpbiBvdGhlcgor
ICAgICAgICBjb250ZW50LWVkaXRhYmxlIGVsZW1lbnRzLiBUaGF0J3MgYmVjYXVzZSB3aGVuIHdl
IGN1dCBvciBjb3BpZWQgdGV4dAorICAgICAgICBpbiBhIHRleHQgY29udHJvbCwgd2UgY2FsbGVk
IFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0IGluc3RlYWQgb2YKKyAgICAgICAgUGFzdGVib2Fy
ZDo6d3JpdGVTZWxlY3Rpb24uIHdyaXRlUGxhaW5UZXh0IGRpZCBub3QgcmVjb3JkIHRoZSBzbWFy
dCByZXBsYWNlCisgICAgICAgIGluZm9ybWF0aW9uLiBNYWtlIHdyaXRlUGxhaW5UZXh0IHJlY29y
ZCB0aGUgc21hcnQgcmVwbGFjZSBpbmZvcm1hdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwKKworICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weSk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6
OmNvcHlUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y29weVRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFBhc3RlYm9hcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUGFzdGVib2FyZEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZWZs
L1Bhc3RlYm9hcmRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJk
TWFjOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFz
dGVib2FyZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vd2luY2UvUGFzdGVib2FyZFdpbkNFLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRX
eDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6CisKIDIw
MTItMDgtMDggIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayBzaG91bGQgbm90IHJldXNlIHRo
ZSBzYW1lIEV2ZW50RGlzcGF0Y2hlciBpbnN0YW5jZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg2LDcgKzk4Niw3IEBAIHZvaWQgRWRpdG9yOjpj
dXQoKQogICAgIGlmIChzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24uZ2V0KCkpKSB7CiAgICAg
ICAgIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKHRydWUpOwogICAgICAg
ICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFy
dCgpKSkKLSAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPndyaXRl
UGxhaW5UZXh0KHNlbGVjdGVkVGV4dCgpKTsKKyAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmdlbmVy
YWxQYXN0ZWJvYXJkKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dCgpLCBjYW5TbWFydENv
cHlPckRlbGV0ZSgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUGFzdGVib2FyZDo6Z2Vu
ZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVTZWxlY3Rpb24oc2VsZWN0aW9uLmdldCgpLCBjYW5TbWFy
dENvcHlPckRlbGV0ZSgpLCBtX2ZyYW1lKTsKICAgICAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQoKTsKQEAgLTEwMDQsNyArMTAwNCw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5KCkKICAg
ICB9CiAKICAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUtPnNlbGVjdGlv
bigpLT5zdGFydCgpKSkKLSAgICAgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+
d3JpdGVQbGFpblRleHQoc2VsZWN0ZWRUZXh0KCkpOworICAgICAgICBQYXN0ZWJvYXJkOjpnZW5l
cmFsUGFzdGVib2FyZCgpLT53cml0ZVBsYWluVGV4dChzZWxlY3RlZFRleHQoKSwgY2FuU21hcnRD
b3B5T3JEZWxldGUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChIVE1MSW1hZ2VFbGVtZW50KiBpbWFn
ZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1bWVudChkb2N1bWVudCkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAko
cmV2aXNpb24gMTI1MTM0KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEluamVj
dGVkU2NyaXB0SG9zdDo6Y2xlYXJDb25zb2xlTWVzCiAKIHZvaWQgSW5qZWN0ZWRTY3JpcHRIb3N0
Ojpjb3B5VGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0gICAgUGFzdGVib2FyZDo6Z2VuZXJh
bFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQodGV4dCk7CisgICAgUGFzdGVib2FyZDo6Z2Vu
ZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQodGV4dCwgZmFsc2UpOwogfQogCiBTY3Jp
cHRWYWx1ZSBJbmplY3RlZFNjcmlwdEhvc3Q6Okluc3BlY3RhYmxlT2JqZWN0OjpnZXQoU2NyaXB0
U3RhdGUqKQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAJKHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIs
NyArMjIyLDcgQEAgU3RyaW5nIEluc3BlY3RvckZyb250ZW5kSG9zdDo6aGlkZGVuUGFuZQogCiB2
b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6Y29weVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQog
ewotICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPndyaXRlUGxhaW5UZXh0KHRl
eHQpOworICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPndyaXRlUGxhaW5UZXh0
KHRleHQsIGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Om9wZW5Jbk5l
d1RhYihjb25zdCBTdHJpbmcmIHVybCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmgJKHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgc3RhdGljIFBhc3RlYm9hcmQqIGdlbmVyYWxQYXN0ZWJvYXJkKCk7CiAgICAgdm9pZCB3cml0
ZVNlbGVjdGlvbihSYW5nZSosIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKik7Ci0g
ICAgdm9pZCB3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHdyaXRlUGxh
aW5UZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUpOwogICAgIHZv
aWQgd3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKiA9IDApOwogICAg
IHZvaWQgd3JpdGVJbWFnZShOb2RlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogICAgIHZvaWQgd3JpdGVDbGlwYm9hcmQoQ2xpcGJvYXJkKik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Bhc3RlYm9hcmRCbGFj
a0JlcnJ5LmNwcAkocmV2aXNpb24gMTI1MTM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9QYXN0ZWJvYXJkQmxhY2tCZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2
LDcgKzc2LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChLVVJMIGNvbnN0JiB1cgogICAg
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpDbGlwYm9hcmQ6OndyaXRlVVJMKHVybC5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCkKIHsKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6Q2xpcGJvYXJk
Ojp3cml0ZVBsYWluVGV4dCh0ZXh0LnV0ZjgoKS5kYXRhKCkpOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0u
Y3BwCShyZXZpc2lvbiAxMjUxMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw4ICs5OCw5IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICBXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmNsaXBib2FyZCgpLT53cml0ZUhUTUwoaHRtbCwgdXJsLCBwbGFp
blRleHQsIGNhblNtYXJ0Q29weU9yRGVsZXRlKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxh
aW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSkKIHsK
KyAgICAvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIHNtYXJ0IHJlcGxhY2luZwogI2lmIE9TKFdJ
TkRPV1MpCiAgICAgU3RyaW5nIHBsYWluVGV4dCh0ZXh0KTsKICAgICByZXBsYWNlTmV3bGluZXNX
aXRoV2luZG93c1N0eWxlTmV3bGluZXMocGxhaW5UZXh0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAJKHJldmlzaW9uIDEyNTEzNCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQCBQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0
IFN0cmluZyYpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYs
IGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAJ
KHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsMTQgKzY4LDE0IEBAIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICBoZWxwZXItPndyaXRlQ2xpcGJvYXJk
Q29udGVudHMoY2xpcGJvYXJkLCBjYW5TbWFydENvcHlPckRlbGV0ZSA/IFBhc3RlYm9hcmRIZWxw
ZXI6OkluY2x1ZGVTbWFydFBhc3RlIDogUGFzdGVib2FyZEhlbHBlcjo6RG9Ob3RJbmNsdWRlU21h
cnRQYXN0ZSk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUpCiB7CiAgICAgR3RrQ2xpcGJvYXJkKiBj
bGlwYm9hcmQgPSBndGtfY2xpcGJvYXJkX2dldF9mb3JfZGlzcGxheShnZGtfZGlzcGxheV9nZXRf
ZGVmYXVsdCgpLCBHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCk7CiAgICAgRGF0YU9iamVjdEd0ayog
ZGF0YU9iamVjdCA9IERhdGFPYmplY3RHdGs6OmZvckNsaXBib2FyZChjbGlwYm9hcmQpOwogICAg
IGRhdGFPYmplY3QtPmNsZWFyQWxsKCk7CiAKICAgICBkYXRhT2JqZWN0LT5zZXRUZXh0KHRleHQp
OwotICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRl
Q2xpcGJvYXJkQ29udGVudHMoY2xpcGJvYXJkKTsKKyAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZh
dWx0UGFzdGVib2FyZEhlbHBlcigpLT53cml0ZUNsaXBib2FyZENvbnRlbnRzKGNsaXBib2FyZCwg
Y2FuU21hcnRDb3B5T3JEZWxldGUgPyBQYXN0ZWJvYXJkSGVscGVyOjpJbmNsdWRlU21hcnRQYXN0
ZSA6IFBhc3RlYm9hcmRIZWxwZXI6OkRvTm90SW5jbHVkZVNtYXJ0UGFzdGUpOwogfQogCiB2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBi
b2FyZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xp
cGJvYXJkTWFjLm1tCShyZXZpc2lvbiAxMjUxMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvQ2xpcGJvYXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODQsNyArMzg0LDcgQEAg
dm9pZCBDbGlwYm9hcmRNYWM6OndyaXRlUmFuZ2UoUmFuZ2UqIHJhbgogdm9pZCBDbGlwYm9hcmRN
YWM6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBQYXN0ZWJvYXJk
IHBhc3RlYm9hcmQobV9wYXN0ZWJvYXJkTmFtZSk7Ci0gICAgcGFzdGVib2FyZC53cml0ZVBsYWlu
VGV4dCh0ZXh0KTsKKyAgICBwYXN0ZWJvYXJkLndyaXRlUGxhaW5UZXh0KHRleHQsIGZhbHNlKTsK
IH0KIAogdm9pZCBDbGlwYm9hcmRNYWM6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0JKHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDQsMTIgKzIwNCwxNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uRm9yVHlwZXMo
CiAgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0
QnVmZmVyRm9yVHlwZSgwLCBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFt
ZSk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQs
IGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7
CiAgICAgdHlwZXMuYXBwZW5kKE5TU3RyaW5nUGJvYXJkVHlwZSk7CisgICAgaWYgKGNhblNtYXJ0
Q29weU9yRGVsZXRlKQorICAgICAgICB0eXBlcy5hcHBlbmQoV2ViU21hcnRQYXN0ZVBib2FyZFR5
cGUpOworICAgIAogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3ko
KS0+c2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOwogICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZSh0ZXh0LCBOU1N0
cmluZ1Bib2FyZFR5cGUsIG1fcGFzdGVib2FyZE5hbWUpOworICAgIGlmIChjYW5TbWFydENvcHlP
ckRlbGV0ZSkKKyAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5zZXRCdWZmZXJGb3JUeXBlKDAsIFdlYlNtYXJ0UGFzdGVQYm9hcmRUeXBlLCBtX3Bhc3Rl
Ym9hcmROYW1lKTsKIH0KICAgICAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFu
Z2UqLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSogZnJhbWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAJKHJldmlzaW9uIDEyNTEz
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IFBhc3RlYm9hcmQ6CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUpCiB7CiAj
aWZuZGVmIFFUX05PX0NMSVBCT0FSRAogICAgIFFNaW1lRGF0YSogbWQgPSBuZXcgUU1pbWVEYXRh
OwpAQCAtMTM1LDYgKzEzNSw4IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29u
c3QgU3QKICAgICBxdGV4dC5yZXBsYWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcignICcpKTsK
ICAgICBtZC0+c2V0VGV4dChxdGV4dCk7CiAgICAgUUd1aUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQo
KS0+c2V0TWltZURhdGEobWQsIG1fc2VsZWN0aW9uTW9kZSA/IFFDbGlwYm9hcmQ6OlNlbGVjdGlv
biA6IFFDbGlwYm9hcmQ6OkNsaXBib2FyZCk7CisgICAgaWYgKGNhblNtYXJ0Q29weU9yRGVsZXRl
KQorICAgICAgICBtZC0+c2V0RGF0YShRTGF0aW4xU3RyaW5nKCJhcHBsaWNhdGlvbi92bmQucXR3
ZWJraXQuc21hcnRwYXN0ZSIpLCBRQnl0ZUFycmF5KCkpOwogI2VuZGlmCiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAJKHJldmlzaW9u
IDEyNTEzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3Jp
dGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICB9CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUpCiB7CiAg
ICAgY2xlYXIoKTsKIApAQCAtMTYyLDYgKzE2MiwxNCBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
UGxhaW5UZXh0KGNvbnN0IFN0CiAgICAgICAgICAgICA6Okdsb2JhbEZyZWUoY2JEYXRhKTsKICAg
ICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgIH0KKworICAgIC8vIGVuYWJsZSBzbWFydC1y
ZXBsYWNpbmcgbGF0ZXIgb24gYnkgcHV0dGluZyBkdW1teSBkYXRhIG9uIHRoZSBwYXN0ZWJvYXJk
CisgICAgaWYgKGNhblNtYXJ0Q29weU9yRGVsZXRlKSB7CisgICAgICAgIGlmICg6Ok9wZW5DbGlw
Ym9hcmQobV9vd25lcikpIHsKKyAgICAgICAgICAgIDo6U2V0Q2xpcGJvYXJkRGF0YShXZWJTbWFy
dFBhc3RlRm9ybWF0LCAwKTsKKyAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKKyAgICAg
ICAgfQorICAgIH0KIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbmNlL1Bhc3RlYm9hcmRXaW5DRS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvUGFzdGVib2FyZFdpbkNFLmNwcAkocmV2aXNp
b24gMTI1MTM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvUGFzdGVib2FyZFdp
bkNFLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICB9CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6
d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUp
CiB7CiAgICAgY2xlYXIoKTsKIApAQCAtMTU3LDYgKzE1NywxNCBAQCB2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0CiAgICAgICAgICAgICA6Okdsb2JhbEZyZWUoY2JEYXRh
KTsKICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgIH0KKworICAgIC8vIGVuYWJsZSBz
bWFydC1yZXBsYWNpbmcgbGF0ZXIgb24gYnkgcHV0dGluZyBkdW1teSBkYXRhIG9uIHRoZSBwYXN0
ZWJvYXJkCisgICAgaWYgKGNhblNtYXJ0Q29weU9yRGVsZXRlKSB7CisgICAgICAgIGlmICg6Ok9w
ZW5DbGlwYm9hcmQobV9vd25lcikpIHsKKyAgICAgICAgICAgIDo6U2V0Q2xpcGJvYXJkRGF0YShX
ZWJTbWFydFBhc3RlRm9ybWF0LCAwKTsKKyAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsK
KyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5jcHAJKHJldmlzaW9uIDEyNTEz
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgQ2xpcGJvYXJkV3g6Omhhc0RhdGEoKSAK
IAogdm9pZCBDbGlwYm9hcmRXeDo6d3JpdGVQbGFpblRleHQoY29uc3QgV1RGOjpTdHJpbmcmIHRl
eHQpCiB7Ci0gICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRl
eHQodGV4dCk7CisgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFp
blRleHQodGV4dCwgZmFsc2UpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93eC9QYXN0ZWJvYXJkV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAJKHJldmlzaW9uIDEyNTEzNCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcg
KzYxLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogcwogICAgIH0K
IH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQp
Cit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCBjYW5TbWFydENvcHlPckRlbGV0ZSkKIHsKICAgICBpZiAod3hUaGVDbGlwYm9hcmQtPk9wZW4o
KSkgewogICAgICAgICB3eFRoZUNsaXBib2FyZC0+U2V0RGF0YSggbmV3IHd4VGV4dERhdGFPYmpl
Y3QodGV4dCkgKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTEzNCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA4LTA4ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBNb3VzZS1z
ZWxlY3QgdGhlbiBDdXQsIHJlc3VsdHMgaW4gcHJlY2VkaW5nIGNoYXJhY3RlciBiZWluZyBsb3N0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgzMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGlu
Zy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNv
bnRyb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxMi0wOC0wOCAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9i
ZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFkZXJzXSBJbnZhbGlkIHNoYWRlcnMgc2hvdWxkIGFj
dCBhcyBwYXNzLXRocm91Z2ggZmlsdGVycwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQt
Y29udHJvbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHNtYXJ0IHBhc3RpbmcgaW4gYSB0
ZXh0IGNvbnRyb2wuIFRvIG1hbnVhbGx5IHRlc3QsIGRvdWJsZSBjbGljayB0aGUgbWlkZGxlIHdv
cmQgaW4gdGhlIHRleHQgYXJlYSBiZWxvdy4gVGhlbiBjdXQgYW5kIHBhc3RlLiBJdCBzaG91bGQg
cmVzdWx0IGluIHRoZSBvcmlnaW5hbCB0ZXh0LiBUaGUgc3BhY2UgYmVmb3JlIHRoZSBtaWRkbGUg
d29yZCBzaG91bGQgbm90IGJlIGxvc3QuCisKK1BBU1M6IFNtYXJ0IGN1dHRpbmcgYW5kIHBhc3Rp
bmcgcmVzdWx0IGluIHRoZSBvcmlnaW5hbCB0ZXh0LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNv
bnRyb2wuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4gCis8aGVhZD4KKzxzdHlsZT4KKyN0ZXh0
YXJlYSB7CisgICAgZm9udC1mYW1pbHk6IEFoZW07CisgICAgZm9udC1zaXplOiAxNnB4OworICAg
IGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7CisgICAgLXdlYmtpdC1mb250LXNtb290aGluZzog
bm9uZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdHMgc21hcnQgcGFz
dGluZyBpbiBhIHRleHQgY29udHJvbC4KK1RvIG1hbnVhbGx5IHRlc3QsIGRvdWJsZSBjbGljayB0
aGUgbWlkZGxlIHdvcmQgaW4gdGhlIHRleHQgYXJlYSBiZWxvdy4gVGhlbiBjdXQgYW5kIHBhc3Rl
LgorSXQgc2hvdWxkIHJlc3VsdCBpbiB0aGUgb3JpZ2luYWwgdGV4dC4gVGhlIHNwYWNlIGJlZm9y
ZSB0aGUgbWlkZGxlIHdvcmQgc2hvdWxkIG5vdCBiZSBsb3N0LgorPGRpdj4KKzx0ZXh0YXJlYSBp
ZD0idGV4dGFyZWEiPkhlbGxvIHdvcmxkIHRlc3Q8L3RleHRhcmVhPgorPC9kaXY+CisKKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBmdW5jdGlvbiBkb3VibGVDbGljayh4
LCB5KSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOworICAgIH0KKyAgICAgICAgCisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpOworICAgIHZhciB4ID0gdGFyZ2V0Lm9mZnNldExlZnQgKyAx
MjA7CisgICAgdmFyIHkgPSB0YXJnZXQub2Zmc2V0VG9wICsgMTA7CisgICAgZG91YmxlQ2xpY2so
eCwgeSk7CisKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3V0Iik7CisgICAgZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICBpZiAodGFyZ2V0LnZhbHVlID09ICJIZWxsbyB3
b3JsZCB0ZXN0IikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlBBU1M6IFNtYXJ0IGN1dHRpbmcg
YW5kIHBhc3RpbmcgcmVzdWx0IGluIHRoZSBvcmlnaW5hbCB0ZXh0LiIpOworICAgIGVsc2UKKyAg
ICAgICAgZG9jdW1lbnQud3JpdGUoIkZBSUw6IFNtYXJ0IGN1dHRpbmcgYW5kIHBhc3RpbmcgZG8g
bm90IHJlc3VsdCBpbiB0aGUgb3JpZ2luYWwgdGV4dC4iKTsKK30gZWxzZSB7CisgICAgZG9jdW1l
bnQud3JpdGUoIlRoaXMgdGVzdCBjYW4ndCBiZSBydW4gaW4gd2ViIGJyb3dzZXIgd2l0aG91dCB0
aGUgZXZlbnRTZW5kZXIuIik7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2
aXNpb24gMTI1MTM0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTU0LDYgKzE1NCw5IEBAIEJVR1dLODkwNTIgU0tJ
UCA6IGZhc3QvY3NzL2ltYWdlLW9yaWVudGEKIC8vIENocm9taXVtIG5lZWRzIGxhcmdlciBtZWRp
YSBmaWxlcyB0byB0ZXN0IGJ1ZmZlcmluZyB0aGlzIHdheS4KIEJVR1dLODgxNzIgU0tJUCA6IGh0
dHAvdGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQuaHRtbCA9IFBBU1MKIAorLy8gQ2hyb21pdW0g
ZG9lcyBub3Qgc3VwcG9ydCBzbWFydCBwYXN0aW5nIGluIHRleHQgY29udHJvbHMgeWV0LgorQlVH
V0s2MDgzMCBTS0lQIDogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29u
dHJvbC5odG1sID0gUEFTUworCiAvLyBQcm94aW1pdHkgRXZlbnRzIGlzIG5vdCBzdXBwb3J0ZWQu
CiBCVUdXSzkyOTQyIFNLSVAgOiBmYXN0L2RvbS9Qcm94aW1pdHkgPSBQQVNTCiBCVUdXSzkyOTQy
IFNLSVAgOiBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvZGV2aWNlLXByb3hpbWl0eS1ldmVudC1j
b25zdHJ1Y3Rvci5odG1sID0gUEFTUwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157569</attachid>
            <date>2012-08-09 15:55:44 -0700</date>
            <delta_ts>2012-08-09 21:45:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60830-20120809155706.patch</filename>
            <type>text/plain</type>
            <size>19106</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTIxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA4LTA5ICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBNb3VzZS1zZWxl
Y3QgdGhlbiBDdXQsIHJlc3VsdHMgaW4gcHJlY2VkaW5nIGNoYXJhY3RlciBiZWluZyBsb3N0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDgzMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYnVnIGhh
cHBlbmVkIG9ubHkgaW4gdGV4dCBmaWVsZHMgYW5kIHRleHQgYXJlYXMsIG5vdCBpbiBvdGhlcgor
ICAgICAgICBjb250ZW50LWVkaXRhYmxlIGVsZW1lbnRzLiBUaGF0J3MgYmVjYXVzZSB3aGVuIHdl
IGN1dCBvciBjb3BpZWQgdGV4dAorICAgICAgICBpbiBhIHRleHQgY29udHJvbCwgd2UgY2FsbGVk
IFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0IGluc3RlYWQgb2YKKyAgICAgICAgUGFzdGVib2Fy
ZDo6d3JpdGVTZWxlY3Rpb24uIHdyaXRlUGxhaW5UZXh0IGRpZCBub3QgcmVjb3JkIHRoZSBzbWFy
dCByZXBsYWNlCisgICAgICAgIGluZm9ybWF0aW9uLiBNYWtlIHdyaXRlUGxhaW5UZXh0IHJlY29y
ZCB0aGUgc21hcnQgcmVwbGFjZSBpbmZvcm1hdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwKKworICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y3V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weSk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6
OmNvcHlUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y29weVRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFj
a2JlcnJ5L1Bhc3RlYm9hcmRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QYXN0
ZWJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZE1hYzo6d3JpdGVQbGFpblRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Bh
c3RlYm9hcmRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWlu
VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbmNlL1Bhc3RlYm9hcmRXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkV3g6OndyaXRlUGxhaW5UZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorCiAyMDEyLTA4LTA5ICBLZW50YXJvIEhhcmEg
IDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFJlbmFtZSBWOEJpbmRpbmdQ
ZXJJc29sYXRlRGF0YSB0byBWOFBlcklzb2xhdGVEYXRhCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCShyZXZpc2lvbiAxMjUyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4NSw5ICs5ODUsMTAgQEAgdm9pZCBFZGl0b3I6
OmN1dCgpCiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24gPSBzZWxlY3RlZFJhbmdlKCk7CiAg
ICAgaWYgKHNob3VsZERlbGV0ZVJhbmdlKHNlbGVjdGlvbi5nZXQoKSkpIHsKICAgICAgICAgdXBk
YXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcodHJ1ZSk7Ci0gICAgICAgIGlmIChl
bmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS0+c2VsZWN0aW9uKCktPnN0YXJ0KCkpKQot
ICAgICAgICAgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRl
eHQoc2VsZWN0ZWRUZXh0KCkpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChlbmNsb3NpbmdU
ZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS0+c2VsZWN0aW9uKCktPnN0YXJ0KCkpKSB7CisgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53cml0ZVBsYWluVGV4dChzZWxl
Y3RlZFRleHQoKSwKKyAgICAgICAgICAgICAgICBjYW5TbWFydENvcHlPckRlbGV0ZSgpID8gUGFz
dGVib2FyZDo6Q2FuU21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNl
KTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVi
b2FyZCgpLT53cml0ZVNlbGVjdGlvbihzZWxlY3Rpb24uZ2V0KCksIGNhblNtYXJ0Q29weU9yRGVs
ZXRlKCksIG1fZnJhbWUpOwogICAgICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgp
OwogICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JE
ZWxldGUoKSk7CkBAIC0xMDAzLDkgKzEwMDQsMTAgQEAgdm9pZCBFZGl0b3I6OmNvcHkoKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbCht
X2ZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKSkpCi0gICAgICAgIFBhc3RlYm9hcmQ6OmdlbmVy
YWxQYXN0ZWJvYXJkKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dCgpKTsKLSAgICBlbHNl
IHsKKyAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUtPnNlbGVjdGlvbigp
LT5zdGFydCgpKSkgeworICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53
cml0ZVBsYWluVGV4dChzZWxlY3RlZFRleHQoKSwKKyAgICAgICAgICAgIGNhblNtYXJ0Q29weU9y
RGVsZXRlKCkgPyBQYXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxhY2UgOiBQYXN0ZWJvYXJkOjpDYW5u
b3RTbWFydFJlcGxhY2UpOworICAgIH0gZWxzZSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChIVE1MSW1hZ2VFbGVtZW50KiBp
bWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1bWVudChkb2N1bWVudCkpCiAg
ICAgICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT53cml0ZUltYWdlKGlt
YWdlRWxlbWVudCwgZG9jdW1lbnQtPnVybCgpLCBkb2N1bWVudC0+dGl0bGUoKSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAkocmV2
aXNpb24gMTI1MjE0KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEluamVjdGVk
U2NyaXB0SG9zdDo6Y2xlYXJDb25zb2xlTWVzCiAKIHZvaWQgSW5qZWN0ZWRTY3JpcHRIb3N0Ojpj
b3B5VGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0gICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBh
c3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQodGV4dCk7CisgICAgUGFzdGVib2FyZDo6Z2VuZXJh
bFBhc3RlYm9hcmQoKS0+d3JpdGVQbGFpblRleHQodGV4dCwgUGFzdGVib2FyZDo6Q2Fubm90U21h
cnRSZXBsYWNlKTsKIH0KIAogU2NyaXB0VmFsdWUgSW5qZWN0ZWRTY3JpcHRIb3N0OjpJbnNwZWN0
YWJsZU9iamVjdDo6Z2V0KFNjcmlwdFN0YXRlKikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCShyZXZpc2lvbiAxMjUyMTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjIyLDcgKzIyMiw3IEBAIFN0cmluZyBJbnNwZWN0b3JGcm9udGVu
ZEhvc3Q6OmhpZGRlblBhbmUKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmNvcHlUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2Fy
ZCgpLT53cml0ZVBsYWluVGV4dCh0ZXh0KTsKKyAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVi
b2FyZCgpLT53cml0ZVBsYWluVGV4dCh0ZXh0LCBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxh
Y2UpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAkocmV2
aXNpb24gMTI1MjE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMSBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFz
cyBQYXN0ZWJvYXJkIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYXN0ZWJvYXJkKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgZW51bSBTbWFydFJlcGxhY2VPcHRp
b24geworICAgICAgICBDYW5TbWFydFJlcGxhY2UsCisgICAgICAgIENhbm5vdFNtYXJ0UmVwbGFj
ZQorICAgIH07CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCB0
byBzdXBwb3J0IE9TIFggc2VydmljZXMuCiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbkZvclR5cGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIGJvb2wgY2FuU21hcnRDb3B5
T3JEZWxldGUsIEZyYW1lKik7CkBAIC04Niw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBz
dGF0aWMgUGFzdGVib2FyZCogZ2VuZXJhbFBhc3RlYm9hcmQoKTsKICAgICB2b2lkIHdyaXRlU2Vs
ZWN0aW9uKFJhbmdlKiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUqKTsKLSAgICB2
b2lkIHdyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgd3JpdGVQbGFpblRl
eHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKTsKICAgICB2b2lkIHdyaXRlVVJM
KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSogPSAwKTsKICAgICB2b2lkIHdyaXRl
SW1hZ2UoTm9kZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICB2b2lk
IHdyaXRlQ2xpcGJvYXJkKENsaXBib2FyZCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYmxhY2tiZXJyeS9QYXN0ZWJvYXJkQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYXN0ZWJvYXJkQmxhY2tCZXJyeS5jcHAJ
KHJldmlzaW9uIDEyNTIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkv
UGFzdGVib2FyZEJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoS1VSTCBjb25zdCYgdXIKICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6Q2xpcGJvYXJkOjp3cml0ZVVSTCh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQs
IFNtYXJ0UmVwbGFjZU9wdGlvbikKIHsKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6Q2xpcGJv
YXJkOjp3cml0ZVBsYWluVGV4dCh0ZXh0LnV0ZjgoKS5kYXRhKCkpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21p
dW0uY3BwCShyZXZpc2lvbiAxMjUyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw4ICs5OCw5
IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICBXZWJLaXQ6
OlBsYXRmb3JtOjpjdXJyZW50KCktPmNsaXBib2FyZCgpLT53cml0ZUhUTUwoaHRtbCwgdXJsLCBw
bGFpblRleHQsIGNhblNtYXJ0Q29weU9yRGVsZXRlKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
UGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aW9uKQogeworICAg
IC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3Igc21hcnQgcmVwbGFjZQogI2lmIE9TKFdJTkRPV1Mp
CiAgICAgU3RyaW5nIHBsYWluVGV4dCh0ZXh0KTsKICAgICByZXBsYWNlTmV3bGluZXNXaXRoV2lu
ZG93c1N0eWxlTmV3bGluZXMocGxhaW5UZXh0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAJKHJldmlzaW9uIDEyNTIxNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQCBQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmlu
ZyYpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIFNtYXJ0
UmVwbGFjZU9wdGlvbikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkocmV2aXNpb24gMTI1
MjE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02OCwxNCArNjgsMTUgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNl
bGVjdGlvbihSYW5nZSogcwogICAgIGhlbHBlci0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhjbGlw
Ym9hcmQsIGNhblNtYXJ0Q29weU9yRGVsZXRlID8gUGFzdGVib2FyZEhlbHBlcjo6SW5jbHVkZVNt
YXJ0UGFzdGUgOiBQYXN0ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1ZGVTbWFydFBhc3RlKTsKIH0K
IAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgU21hcnRS
ZXBsYWNlT3B0aW9uIHNtYXJ0UmVwbGFjZU9wdGlvbikKIHsKICAgICBHdGtDbGlwYm9hcmQqIGNs
aXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9k
ZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKICAgICBEYXRhT2JqZWN0R3RrKiBk
YXRhT2JqZWN0ID0gRGF0YU9iamVjdEd0azo6Zm9yQ2xpcGJvYXJkKGNsaXBib2FyZCk7CiAgICAg
ZGF0YU9iamVjdC0+Y2xlYXJBbGwoKTsKIAogICAgIGRhdGFPYmplY3QtPnNldFRleHQodGV4dCk7
Ci0gICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+d3JpdGVD
bGlwYm9hcmRDb250ZW50cyhjbGlwYm9hcmQpOworICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMoY2xpcGJvYXJkLAor
ICAgICAgICAoc21hcnRSZXBsYWNlT3B0aW9uID09IENhblNtYXJ0UmVwbGFjZSkgPyBQYXN0ZWJv
YXJkSGVscGVyOjpJbmNsdWRlU21hcnRQYXN0ZSA6IFBhc3RlYm9hcmRIZWxwZXI6OkRvTm90SW5j
bHVkZVNtYXJ0UGFzdGUpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCShyZXZpc2lvbiAxMjUyMTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBDbGlwYm9hcmRNYWM6OndyaXRlUmFuZ2Uo
UmFuZ2UqIHJhbgogdm9pZCBDbGlwYm9hcmRNYWM6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmlu
ZyYgdGV4dCkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9hcmQobV9wYXN0ZWJvYXJkTmFtZSk7
Ci0gICAgcGFzdGVib2FyZC53cml0ZVBsYWluVGV4dCh0ZXh0KTsKKyAgICBwYXN0ZWJvYXJkLndy
aXRlUGxhaW5UZXh0KHRleHQsIFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CiB9CiAK
IHZvaWQgQ2xpcGJvYXJkTWFjOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIEZyYW1lKiBmcmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCShyZXZpc2lvbiAxMjUyMTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA0LDEy
ICsyMDQsMTcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbkZvclR5cGVzKAogICAg
ICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldEJ1ZmZl
ckZvclR5cGUoMCwgV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUsIG1fcGFzdGVib2FyZE5hbWUpOwog
fQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkK
K3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFy
dFJlcGxhY2VPcHRpb24gc21hcnRSZXBsYWNlT3B0aW9uKQogewogICAgIFZlY3RvcjxTdHJpbmc+
IHR5cGVzOwogICAgIHR5cGVzLmFwcGVuZChOU1N0cmluZ1Bib2FyZFR5cGUpOworICAgIGlmIChz
bWFydFJlcGxhY2VPcHRpb24gPT0gQ2FuU21hcnRSZXBsYWNlKQorICAgICAgICB0eXBlcy5hcHBl
bmQoV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUpOworCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7
CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJp
bmdGb3JUeXBlKHRleHQsIE5TU3RyaW5nUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7Cisg
ICAgaWYgKHNtYXJ0UmVwbGFjZU9wdGlvbiA9PSBDYW5TbWFydFJlcGxhY2UpCisgICAgICAgIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0QnVmZmVyRm9yVHlw
ZSgwLCBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7CiB9CiAgICAg
CiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiwgYm9vbCBjYW5TbWFydENv
cHlPckRlbGV0ZSwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUGFzdGVib2FyZFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9QYXN0ZWJvYXJkUXQuY3BwCShyZXZpc2lvbiAxMjUyMTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNyAr
MTI3LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOgogICAgIHJl
dHVybiAwOwogfQogCi12b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmlu
ZyYgdGV4dCkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBTbWFydFJlcGxhY2VPcHRpb24gc21hcnRSZXBsYWNlT3B0aW9uKQogewogI2lmbmRlZiBR
VF9OT19DTElQQk9BUkQKICAgICBRTWltZURhdGEqIG1kID0gbmV3IFFNaW1lRGF0YTsKQEAgLTEz
NSw2ICsxMzUsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0CiAg
ICAgcXRleHQucmVwbGFjZShRQ2hhcigweGEwKSwgUUxhdGluMUNoYXIoJyAnKSk7CiAgICAgbWQt
PnNldFRleHQocXRleHQpOwogICAgIFFHdWlBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldE1p
bWVEYXRhKG1kLCBtX3NlbGVjdGlvbk1vZGUgPyBRQ2xpcGJvYXJkOjpTZWxlY3Rpb24gOiBRQ2xp
cGJvYXJkOjpDbGlwYm9hcmQpOworICAgIGlmIChzbWFydFJlcGxhY2VPcHRpb24gPT0gQ2FuU21h
cnRSZXBsYWNlKQorICAgICAgICBtZC0+c2V0RGF0YShRTGF0aW4xU3RyaW5nKCJhcHBsaWNhdGlv
bi92bmQucXR3ZWJraXQuc21hcnRwYXN0ZSIpLCBRQnl0ZUFycmF5KCkpOwogI2VuZGlmCiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAJ
KHJldmlzaW9uIDEyNTIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICB9CiB9CiAKLXZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGlvbiBzbWFy
dFJlcGxhY2VPcHRpb24pCiB7CiAgICAgY2xlYXIoKTsKIApAQCAtMTYyLDYgKzE2MiwxNCBAQCB2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0CiAgICAgICAgICAgICA6Okds
b2JhbEZyZWUoY2JEYXRhKTsKICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgIH0KKwor
ICAgIC8vIGVuYWJsZSBzbWFydC1yZXBsYWNpbmcgbGF0ZXIgb24gYnkgcHV0dGluZyBkdW1teSBk
YXRhIG9uIHRoZSBwYXN0ZWJvYXJkCisgICAgaWYgKHNtYXJ0UmVwbGFjZU9wdGlvbiA9PSBDYW5T
bWFydFJlcGxhY2UpIHsKKyAgICAgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewor
ICAgICAgICAgICAgOjpTZXRDbGlwYm9hcmREYXRhKFdlYlNtYXJ0UGFzdGVGb3JtYXQsIDApOwor
ICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOworICAgICAgICB9CisgICAgfQogfQogCiB2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0
aXRsZVN0ciwgRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
Y2UvUGFzdGVib2FyZFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luQ0UuY3BwCShyZXZpc2lvbiAxMjUyMTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luQ0UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihS
YW5nZSogcwogICAgIH0KIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aW9uIHNtYXJ0UmVwbGFjZU9wdGlvbikKIHsKICAg
ICBjbGVhcigpOwogCkBAIC0xNTcsNiArMTU3LDE0IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQoY29uc3QgU3QKICAgICAgICAgICAgIDo6R2xvYmFsRnJlZShjYkRhdGEpOwogICAg
ICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgfQorCisgICAgLy8gZW5hYmxlIHNtYXJ0LXJl
cGxhY2luZyBsYXRlciBvbiBieSBwdXR0aW5nIGR1bW15IGRhdGEgb24gdGhlIHBhc3RlYm9hcmQK
KyAgICBpZiAoc21hcnRSZXBsYWNlT3B0aW9uID09IENhblNtYXJ0UmVwbGFjZSkgeworICAgICAg
ICBpZiAoOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CisgICAgICAgICAgICA6OlNldENsaXBi
b2FyZERhdGEoV2ViU21hcnRQYXN0ZUZvcm1hdCwgMCk7CisgICAgICAgICAgICA6OkNsb3NlQ2xp
cGJvYXJkKCk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVV
UkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwCShyZXZp
c2lvbiAxMjUyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQCBib29sIENsaXBib2FyZFd4Ojpo
YXNEYXRhKCkgCiAKIHZvaWQgQ2xpcGJvYXJkV3g6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFdURjo6
U3RyaW5nJiB0ZXh0KQogewotICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPndy
aXRlUGxhaW5UZXh0KHRleHQpOworICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkt
PndyaXRlUGxhaW5UZXh0KHRleHQsIFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CiB9
CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvUGFzdGVib2FyZFd4LmNw
cAkocmV2aXNpb24gMTI1MjE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvUGFzdGVi
b2FyZFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzCiAgICAgfQogfQogCi12b2lkIFBhc3RlYm9hcmQ6
OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQgUGFzdGVib2FyZDo6d3Jp
dGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRpb24pCiB7CiAg
ICAgaWYgKHd4VGhlQ2xpcGJvYXJkLT5PcGVuKCkpIHsKICAgICAgICAgd3hUaGVDbGlwYm9hcmQt
PlNldERhdGEoIG5ldyB3eFRleHREYXRhT2JqZWN0KHRleHQpICk7CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxMjUyMTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wOC0wOSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW91c2Utc2VsZWN0IHRoZW4gQ3V0LCByZXN1bHRzIGluIHBy
ZWNlZGluZyBjaGFyYWN0ZXIgYmVpbmcgbG9zdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10
ZXh0LWNvbnRyb2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMDgtMDkgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3
ZWQgZ2FyZGVuaW5nLCB0eXBvIGZpeC4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNv
bnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyBzbWFydCBwYXN0aW5nIGluIGEgdGV4
dCBjb250cm9sLiBUbyBtYW51YWxseSB0ZXN0LCBkb3VibGUgY2xpY2sgdGhlIG1pZGRsZSB3b3Jk
IGluIHRoZSB0ZXh0IGFyZWEgYmVsb3cuIFRoZW4gY3V0IGFuZCBwYXN0ZS4gSXQgc2hvdWxkIHJl
c3VsdCBpbiB0aGUgb3JpZ2luYWwgdGV4dC4gVGhlIHNwYWNlIGJlZm9yZSB0aGUgbWlkZGxlIHdv
cmQgc2hvdWxkIG5vdCBiZSBsb3N0LgorCitQQVNTOiBTbWFydCBjdXR0aW5nIGFuZCBwYXN0aW5n
IHJlc3VsdCBpbiB0aGUgb3JpZ2luYWwgdGV4dC4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250
cm9sLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
c21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+IAorPGhlYWQ+Cis8c3R5bGU+CisjdGV4dGFy
ZWEgeworICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgIGZvbnQtc2l6ZTogMTZweDsKKyAgICBj
b2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpOworICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5v
bmU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3RzIHNtYXJ0IHBhc3Rp
bmcgaW4gYSB0ZXh0IGNvbnRyb2wuCitUbyBtYW51YWxseSB0ZXN0LCBkb3VibGUgY2xpY2sgdGhl
IG1pZGRsZSB3b3JkIGluIHRoZSB0ZXh0IGFyZWEgYmVsb3cuIFRoZW4gY3V0IGFuZCBwYXN0ZS4K
K0l0IHNob3VsZCByZXN1bHQgaW4gdGhlIG9yaWdpbmFsIHRleHQuIFRoZSBzcGFjZSBiZWZvcmUg
dGhlIG1pZGRsZSB3b3JkIHNob3VsZCBub3QgYmUgbG9zdC4KKzxkaXY+Cis8dGV4dGFyZWEgaWQ9
InRleHRhcmVhIj5IZWxsbyB3b3JsZCB0ZXN0PC90ZXh0YXJlYT4KKzwvZGl2PgorCis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
CitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZnVuY3Rpb24gZG91YmxlQ2xpY2soeCwg
eSkgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKyAgICB9CisgICAgICAgIAorICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGV4dGFyZWEiKTsKKyAgICB2YXIgeCA9IHRhcmdldC5vZmZzZXRMZWZ0ICsgMTIw
OworICAgIHZhciB5ID0gdGFyZ2V0Lm9mZnNldFRvcCArIDEwOworICAgIGRvdWJsZUNsaWNrKHgs
IHkpOworCisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkN1dCIpOworICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgaWYgKHRhcmdldC52YWx1ZSA9PSAiSGVsbG8gd29y
bGQgdGVzdCIpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJQQVNTOiBTbWFydCBjdXR0aW5nIGFu
ZCBwYXN0aW5nIHJlc3VsdCBpbiB0aGUgb3JpZ2luYWwgdGV4dC4iKTsKKyAgICBlbHNlCisgICAg
ICAgIGRvY3VtZW50LndyaXRlKCJGQUlMOiBTbWFydCBjdXR0aW5nIGFuZCBwYXN0aW5nIGRvIG5v
dCByZXN1bHQgaW4gdGhlIG9yaWdpbmFsIHRleHQuIik7Cit9IGVsc2UgeworICAgIGRvY3VtZW50
LndyaXRlKCJUaGlzIHRlc3QgY2FuJ3QgcnVuIGF1dG9tYXRpY2FsbHkgaW4gd2ViIGJyb3dzZXIg
d2l0aG91dCBldmVudFNlbmRlci4iKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CShyZXZpc2lvbiAxMjUyMTQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIsNiArMTUyLDkgQEAgQlVHV0s4NTI2
MiBTS0lQIDogZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dAogLy8gQ1NTIGltYWdlLW9yaWVudGF0aW9u
IGlzIG5vdCB5ZXQgZW5hYmxlZC4KIEJVR1dLODkwNTIgU0tJUCA6IGZhc3QvY3NzL2ltYWdlLW9y
aWVudGF0aW9uID0gUEFTUwogCisvLyBDaHJvbWl1bSBkb2VzIG5vdCBzdXBwb3J0IHNtYXJ0IHBh
c3RpbmcgaW4gdGV4dCBjb250cm9scyB5ZXQuCitCVUdXSzYwODMwIFNLSVAgOiBlZGl0aW5nL3Bh
c3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4dC1jb250cm9sLmh0bWwgPSBQQVNTCisKIC8vIENo
cm9taXVtIG5lZWRzIGxhcmdlciBtZWRpYSBmaWxlcyB0byB0ZXN0IGJ1ZmZlcmluZyB0aGlzIHdh
eS4KIEJVR1dLODgxNzIgU0tJUCA6IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQuaHRt
bCA9IFBBU1MKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>