<?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>110208</bug_id>
          
          <creation_ts>2013-02-19 04:19:51 -0800</creation_ts>
          <short_desc>Allow to retrieve the request data from abstract TextCheckingRequest to be accessible for WK2</short_desc>
          <delta_ts>2013-02-21 22:03:51 -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>109577</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Grzegorz Czajkowski">g.czajkowski</reporter>
          <assigned_to name="Grzegorz Czajkowski">g.czajkowski</assigned_to>
          <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>enrica</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836220</commentid>
    <comment_count>0</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-19 04:19:51 -0800</bug_when>
    <thetext>The WebCore changes are required to implement asynchronous spell checking in WK2. The idea of asynchronous spell checking in WK1 is to pass the pointer to the abstract object to the client who is able to verify the given text and notify the WebCore about results. WK2 will extract the request data from TextCheckingRequest and pass it (with additional information) to the UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836228</commentid>
    <comment_count>1</comment_count>
      <attachid>189054</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-19 04:29:38 -0800</bug_when>
    <thetext>Created attachment 189054
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837075</commentid>
    <comment_count>2</comment_count>
      <attachid>189054</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-19 19:16:30 -0800</bug_when>
    <thetext>Comment on attachment 189054
proposed patch

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

&gt; Source/WebCore/platform/text/TextChecking.h:119
&gt; +class TextCheckingRequest : public RefCounted&lt;TextCheckingRequest&gt;, public TextCheckingRequestData {

Using inheritance here should be avoidable if possible. Why not just turns it a member?
This looks a typical composition over inheritance situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837078</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-19 19:34:11 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Using inheritance here should be avoidable if possible. Why not just turns it a member?
s/avoidable/avoided/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837315</commentid>
    <comment_count>4</comment_count>
      <attachid>189279</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-20 03:48:37 -0800</bug_when>
    <thetext>Created attachment 189279
TextCheckingRequestData as a member of TextCheckingRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837338</commentid>
    <comment_count>5</comment_count>
      <attachid>189279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-20 04:23:33 -0800</bug_when>
    <thetext>Comment on attachment 189279
TextCheckingRequestData as a member of TextCheckingRequest

Attachment 189279 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16655269</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837392</commentid>
    <comment_count>6</comment_count>
      <attachid>189298</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-20 05:54:20 -0800</bug_when>
    <thetext>Created attachment 189298
hopefully fixes Mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838180</commentid>
    <comment_count>7</comment_count>
      <attachid>189298</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-21 00:05:13 -0800</bug_when>
    <thetext>Comment on attachment 189298
hopefully fixes Mac build

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

Looks good overall. Could you polish a bit more?

&gt; Source/WebCore/platform/text/TextChecking.h:91
&gt; +const int unrequestedSequence = -1;

Could you move this into some classes or change the name a bit more verbose?
The name is too ambiguous to be WebCore global.

&gt; Source/WebCore/platform/text/TextChecking.h:130
&gt; +    const TextCheckingRequestData&amp; data() const { return m_requestData; }

Looks like we no longer need to have m_requestData in this class. It can be pushed down to SpellCheckRequest then data() can be pure virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838256</commentid>
    <comment_count>8</comment_count>
      <attachid>189488</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-21 02:40:45 -0800</bug_when>
    <thetext>Created attachment 189488
apply Morrita&apos;s suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838262</commentid>
    <comment_count>9</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-21 02:45:36 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 189298 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189298&amp;action=review
&gt; 
&gt; Looks good overall. Could you polish a bit more?
&gt; 
&gt; &gt; Source/WebCore/platform/text/TextChecking.h:91
&gt; &gt; +const int unrequestedSequence = -1;&gt; 
&gt; Could you move this into some classes or change the name a bit more verbose?
&gt; The name is too ambiguous to be WebCore global.

Sure, changed to &apos;unrequestedTextCheckingSequence&apos;.

&gt; 
&gt; &gt; Source/WebCore/platform/text/TextChecking.h:130
&gt; &gt; +    const TextCheckingRequestData&amp; data() const { return m_requestData; }
&gt; 
&gt; Looks like we no longer need to have m_requestData in this class. It can be pushed down to SpellCheckRequest then data() can be pure virtual.

Definitely, done. Thanks for great review.

Is it ok for you now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839214</commentid>
    <comment_count>10</comment_count>
      <attachid>189488</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-21 21:42:33 -0800</bug_when>
    <thetext>Comment on attachment 189488
apply Morrita&apos;s suggestions

thanks for the update!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839222</commentid>
    <comment_count>11</comment_count>
      <attachid>189488</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 22:03:45 -0800</bug_when>
    <thetext>Comment on attachment 189488
apply Morrita&apos;s suggestions

Clearing flags on attachment: 189488

Committed r143688: &lt;http://trac.webkit.org/changeset/143688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839223</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 22:03:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189054</attachid>
            <date>2013-02-19 04:29:38 -0800</date>
            <delta_ts>2013-02-20 03:48:37 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>spelling-asynchronous-webcore-changes.patch</filename>
            <type>text/plain</type>
            <size>4535</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMGFkNmY0Li5jNGUwNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTMtMDItMTkgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0YSBmcm9t
IGFic3RyYWN0IFRleHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBmb3IgV0syCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViQ29y
ZSBjaGFuZ2VzIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMi4KKyAgICAgICAgVGhlIGlkZWEgb2YgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMSBpcyB0byBwYXNzIHRoZSBwb2ludGVyIHRvIHRoZSBhYnN0cmFjdCBvYmpl
Y3QKKyAgICAgICAgdG8gdGhlIGNsaWVudCB3aG8gaXMgYWJsZSB0byB2ZXJpZnkgdGhlIGdpdmVu
IHRleHQgYW5kIG5vdGlmeSB0aGUgV2ViQ29yZSBhYm91dCByZXN1bHRzLgorICAgICAgICBXSzIg
d2lsbCBleHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYW5kIHBhc3MgaXQgKHdpdGggYWRkaXRpb25h
bCBpbmZvcm1hdGlvbikgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGNvdmVyZWQgYnkgZWRpdGluZy9zcGVsbGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcv
U3BlbGxDaGVja2VyLmNwcDoKKyAgICAgICAgTW92ZSAndW5yZXF1ZXN0ZWRTZXF1ZW5jZScgZGVj
bGFyYXRpb24gdG8gdGhlICdUZXh0Q2hlY2tpbmcuaCcgdG8gYmUKKyAgICAgICAgYWNjZXNzaWJs
ZSBieSBkZWZhdWx0IGNvbnN0cnVjdG9yIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YTo6VGV4dENoZWNr
aW5nUmVxdWVzdERhdGEpOgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgJ1RleHRDaGVja2luZ1Jl
cXVlc3REYXRhJyBjbGFzcyB0byBrZWVwIHRoZSByZXF1ZXN0IGRhdGEgYW5kCisgICAgICAgIGVh
c3kgZXh0cmFjdCBpdCBmcm9tIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKKyAgICAgICAg
KFRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVx
dWVzdDo6VGV4dENoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIEluaGVyaXQgJ1RleHRDaGVja2lu
Z1JlcXVlc3REYXRhJy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q6On5U
ZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKwogMjAxMy0wMi0xOSAgQXJwaXRhIEJhaHVndW5hICA8YS5i
YWhAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgQ2FyZXQgaXMgbm90IGRpc3BsYXllZCB3aGVuIHRy
eWluZyB0byBmb2N1cyBpbnNpZGUgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCBjb250YWluaW5n
IGFuIGVtcHR5IGJsb2NrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVs
bENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmlu
ZGV4IDM2MGZiOWMuLmIzYzFhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
U3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAKQEAgLTQ1LDggKzQ1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
Y29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKLQogU3BlbGxDaGVja1JlcXVlc3Q6
OlNwZWxsQ2hlY2tSZXF1ZXN0KFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NS
ZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVj
a2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQog
ICAgIDogVGV4dENoZWNraW5nUmVxdWVzdCh1bnJlcXVlc3RlZFNlcXVlbmNlLCB0ZXh0LCBtYXNr
LCBwcm9jZXNzVHlwZSkKICAgICAsIG1fY2hlY2tlcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENoZWNraW5nLmgKaW5kZXggMzk3ZGQ0Ni4uNDMxZTI1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCkBAIC01NSw2ICs1NSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZiAvLyAjaWYgUExBVEZPUk0oTUFDKSAmJiAoUExB
VEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzApCiAK
IGVudW0gVGV4dENoZWNraW5nVHlwZSB7CisgICAgVGV4dENoZWNraW5nVHlwZU5vbmUgICAgICAg
ID0gMCwKICAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCiAgICAgVGV4
dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAogICAgIFRleHRDaGVja2luZ1R5cGVM
aW5rICAgICAgICA9IDEgPDwgNSwKQEAgLTg3LDE5ICs4OCwyMiBAQCBzdHJ1Y3QgVGV4dENoZWNr
aW5nUmVzdWx0IHsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnQ7CiB9OwogCi1jbGFzcyBUZXh0Q2hl
Y2tpbmdSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dENoZWNraW5nUmVxdWVzdD4gewor
Y29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKKworY2xhc3MgVGV4dENoZWNraW5n
UmVxdWVzdERhdGEgewogcHVibGljOgotICAgIFRleHRDaGVja2luZ1JlcXVlc3QoaW50IHNlcXVl
bmNlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRD
aGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQorICAgIFRleHRDaGVja2luZ1JlcXVlc3RE
YXRhKCkKKyAgICAgICAgOiBtX3NlcXVlbmNlKHVucmVxdWVzdGVkU2VxdWVuY2UpCisgICAgICAg
ICwgbV9tYXNrKFRleHRDaGVja2luZ1R5cGVOb25lKQorICAgICAgICAsIG1fcHJvY2Vzc1R5cGUo
VGV4dENoZWNraW5nUHJvY2Vzc0luY3JlbWVudGFsKQorICAgIHsgfQorICAgIFRleHRDaGVja2lu
Z1JlcXVlc3REYXRhKGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tp
bmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAg
ICAgICAgOiBtX3NlcXVlbmNlKHNlcXVlbmNlKQogICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAg
ICAgICAsIG1fbWFzayhtYXNrKQogICAgICAgICAsIG1fcHJvY2Vzc1R5cGUocHJvY2Vzc1R5cGUp
CiAgICAgeyB9CiAKLSAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tpbmdSZXF1ZXN0KCkgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4m
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbCgpID0gMDsKLQogICAgIGludCBzZXF1
ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VxdWVuY2U7IH0KICAgICBTdHJpbmcgdGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2soKSBj
b25zdCB7IHJldHVybiBtX21hc2s7IH0KQEAgLTExMiw2ICsxMTYsMTcgQEAgcHJvdGVjdGVkOgog
ICAgIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIG1fcHJvY2Vzc1R5cGU7CiB9OwogCitjbGFzcyBU
ZXh0Q2hlY2tpbmdSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dENoZWNraW5nUmVxdWVz
dD4sIHB1YmxpYyBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSB7CitwdWJsaWM6CisgICAgVGV4dENo
ZWNraW5nUmVxdWVzdChpbnQgc2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNr
aW5nVHlwZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisg
ICAgICAgIDogVGV4dENoZWNraW5nUmVxdWVzdERhdGEoc2VxdWVuY2UsIHRleHQsIG1hc2ssIHBy
b2Nlc3NUeXBlKQorICAgIHsgfQorCisgICAgdmlydHVhbCB+VGV4dENoZWNraW5nUmVxdWVzdCgp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRTdWNjZWVkKGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tp
bmdSZXN1bHQ+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoKSA9IDA7Cit9Owor
CiB9CiAKICNlbmRpZiAvLyBUZXh0Q2hlY2tpbmdfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189279</attachid>
            <date>2013-02-20 03:48:37 -0800</date>
            <delta_ts>2013-02-20 05:54:20 -0800</delta_ts>
            <desc>TextCheckingRequestData as a member of TextCheckingRequest</desc>
            <filename>spelling-asynchronous-webcore-changes.patch</filename>
            <type>text/plain</type>
            <size>14885</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjY2YyN2U4Li5hODUxZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTMtMDItMjAgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0YSBmcm9t
IGFic3RyYWN0IFRleHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBmb3IgV0syCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViQ29y
ZSBjaGFuZ2VzIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMi4KKyAgICAgICAgVGhlIGlkZWEgb2YgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMSBpcyB0byBwYXNzIHRoZSBwb2ludGVyIHRvIHRoZSBhYnN0cmFjdCBvYmpl
Y3QKKyAgICAgICAgdG8gdGhlIGNsaWVudCB3aG8gaXMgYWJsZSB0byB2ZXJpZnkgdGhlIGdpdmVu
IHRleHQgYW5kIG5vdGlmeSB0aGUgV2ViQ29yZSBhYm91dCByZXN1bHRzLgorICAgICAgICBXSzIg
d2lsbCBleHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYW5kIHBhc3MgaXQgKHdpdGggYWRkaXRpb25h
bCBpbmZvcm1hdGlvbikgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGNvdmVyZWQgYnkgZWRpdGluZy9zcGVsbGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3Ip
OgorICAgICAgICBFeHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYXMgaXQgaXMgdGhlIG1lbWJlciBv
ZiAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6ZGlkU3VjY2VlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6ZGlkQ2FuY2VsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpzZXRDaGVja2VyQW5kU2VxdWVuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmRpZENoZWNrU3VjY2VlZCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tpbmcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVGV4dENoZWNr
aW5nUmVxdWVzdERhdGEpOgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgJ1RleHRDaGVja2luZ1Jl
cXVlc3REYXRhJyBjbGFzcyB0byBrZWVwIHRoZSByZXF1ZXN0IGRhdGEgYW5kIHRvCisgICAgICAg
IGVhc3kgZXh0cmFjdCBpdCBmcm9tIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
RGF0YSk6CisgICAgICAgIChUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3Q6OlRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6flRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6ZGF0YSk6CisgICAgICAgIFJldHVybiBy
ZWFkIG9ubHkgdGhlIHJlcXVlc3QgZGF0YSB0byBiZSBhY2Nlc3NpYmxlIGZvciBib3RoIFdLMSBh
bmQgV0syIGNsaWVudHMuCisKIDIwMTMtMDItMTkgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRmV3IG1ldGhvZHMgaW4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmlkbCBoYXZlIGluY29ycmVjdCBzaWduYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggN2M0NjI3Yy4uNDBiZDY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMjEzNSw3ICsyMTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFBhc3NS
ZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IFZlY3QKIHsKICAgICBBU1NF
UlQocmVxdWVzdCk7CiAKLSAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRp
b25zID0gcmVxdWVzdC0+bWFzaygpOworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVj
a2luZ09wdGlvbnMgPSByZXF1ZXN0LT5kYXRhKCkubWFzaygpOwogICAgIFRleHRDaGVja2luZ1Bh
cmFncmFwaCBwYXJhZ3JhcGgocmVxdWVzdC0+Y2hlY2tpbmdSYW5nZSgpLCByZXF1ZXN0LT5wYXJh
Z3JhcGhSYW5nZSgpKTsKIAogICAgIGJvb2wgc2hvdWxkTWFya1NwZWxsaW5nID0gdGV4dENoZWNr
aW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCAzNjBmYjljLi43MGZkODdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC00NSw4ICs0NSw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0IGludCB1bnJlcXVlc3RlZFNlcXVlbmNlID0gLTE7
Ci0KIFNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVsbENoZWNrUmVxdWVzdChQYXNzUmVmUHRyPFJhbmdl
PiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9j
ZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAgICA6IFRleHRDaGVja2luZ1JlcXVlc3QodW5yZXF1ZXN0
ZWRTZXF1ZW5jZSwgdGV4dCwgbWFzaywgcHJvY2Vzc1R5cGUpCiAgICAgLCBtX2NoZWNrZXIoMCkK
QEAgLTc3LDcgKzc1LDcgQEAgdm9pZCBTcGVsbENoZWNrUmVxdWVzdDo6ZGlkU3VjY2VlZChjb25z
dCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKIHsKICAgICBpZiAoIW1fY2hl
Y2tlcikKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2hlY2tlci0+ZGlkQ2hlY2tTdWNjZWVkKG1f
c2VxdWVuY2UsIHJlc3VsdHMpOworICAgIG1fY2hlY2tlci0+ZGlkQ2hlY2tTdWNjZWVkKG1fcmVx
dWVzdERhdGEuc2VxdWVuY2UoKSwgcmVzdWx0cyk7CiAgICAgbV9jaGVja2VyID0gMDsKIH0KIApA
QCAtODUsMTYgKzgzLDE2IEBAIHZvaWQgU3BlbGxDaGVja1JlcXVlc3Q6OmRpZENhbmNlbCgpCiB7
CiAgICAgaWYgKCFtX2NoZWNrZXIpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NoZWNrZXItPmRp
ZENoZWNrQ2FuY2VsKG1fc2VxdWVuY2UpOworICAgIG1fY2hlY2tlci0+ZGlkQ2hlY2tDYW5jZWwo
bV9yZXF1ZXN0RGF0YS5zZXF1ZW5jZSgpKTsKICAgICBtX2NoZWNrZXIgPSAwOwogfQogCiB2b2lk
IFNwZWxsQ2hlY2tSZXF1ZXN0OjpzZXRDaGVja2VyQW5kU2VxdWVuY2UoU3BlbGxDaGVja2VyKiBy
ZXF1ZXN0ZXIsIGludCBzZXF1ZW5jZSkKIHsKICAgICBBU1NFUlQoIW1fY2hlY2tlcik7Ci0gICAg
QVNTRVJUKG1fc2VxdWVuY2UgPT0gdW5yZXF1ZXN0ZWRTZXF1ZW5jZSk7CisgICAgQVNTRVJUKG1f
cmVxdWVzdERhdGEuc2VxdWVuY2UoKSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKTsKICAgICBtX2No
ZWNrZXIgPSByZXF1ZXN0ZXI7Ci0gICAgbV9zZXF1ZW5jZSA9IHNlcXVlbmNlOworICAgIG1fcmVx
dWVzdERhdGEubV9zZXF1ZW5jZSA9IHNlcXVlbmNlOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tSZXF1
ZXN0OjpyZXF1ZXN0ZXJEZXN0cm95ZWQoKQpAQCAtMTYwLDcgKzE1OCw3IEBAIHZvaWQgU3BlbGxD
aGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4g
cmVxdWVzdCkKICAgICBpZiAoIXJlcXVlc3QgfHwgIWNhbkNoZWNrQXN5bmNocm9ub3VzbHkocmVx
dWVzdC0+cGFyYWdyYXBoUmFuZ2UoKS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFT
U0VSVChyZXF1ZXN0LT5zZXF1ZW5jZSgpID09IHVucmVxdWVzdGVkU2VxdWVuY2UpOworICAgIEFT
U0VSVChyZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKTsK
ICAgICBpbnQgc2VxdWVuY2UgPSArK21fbGFzdFJlcXVlc3RTZXF1ZW5jZTsKICAgICBpZiAoc2Vx
dWVuY2UgPT0gdW5yZXF1ZXN0ZWRTZXF1ZW5jZSkKICAgICAgICAgc2VxdWVuY2UgPSArK21fbGFz
dFJlcXVlc3RTZXF1ZW5jZTsKQEAgLTIwMiw4ICsyMDAsOCBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6
ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKIHZv
aWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0
Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewogICAgIEFTU0VSVChtX3Byb2Nlc3NpbmdSZXF1
ZXN0KTsKLSAgICBBU1NFUlQobV9wcm9jZXNzaW5nUmVxdWVzdC0+c2VxdWVuY2UoKSA9PSBzZXF1
ZW5jZSk7Ci0gICAgaWYgKG1fcHJvY2Vzc2luZ1JlcXVlc3QtPnNlcXVlbmNlKCkgIT0gc2VxdWVu
Y2UpIHsKKyAgICBBU1NFUlQobV9wcm9jZXNzaW5nUmVxdWVzdC0+ZGF0YSgpLnNlcXVlbmNlKCkg
PT0gc2VxdWVuY2UpOworICAgIGlmIChtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVu
Y2UoKSAhPSBzZXF1ZW5jZSkgewogICAgICAgICBtX3JlcXVlc3RRdWV1ZS5jbGVhcigpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjIwLDExICsyMTgsMTIgQEAgdm9pZCBTcGVsbENoZWNr
ZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3Vs
dD4mIHJlc3UKIAogdm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVu
Y2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewotICAgIGlm
IChtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5zZXF1ZW5jZSgpID09IHNlcXVlbmNlKSB7CisgICAgVGV4
dENoZWNraW5nUmVxdWVzdERhdGEgcmVxdWVzdERhdGEgPSBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5k
YXRhKCk7CisgICAgaWYgKHJlcXVlc3REYXRhLnNlcXVlbmNlKCkgPT0gc2VxdWVuY2UpIHsKICAg
ICAgICAgdW5zaWduZWQgbWFya2VycyA9IDA7Ci0gICAgICAgIGlmIChtX3Byb2Nlc3NpbmdSZXF1
ZXN0LT5tYXNrKCkgJiBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCisgICAgICAgIGlmIChyZXF1
ZXN0RGF0YS5tYXNrKCkgJiBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCiAgICAgICAgICAgICBt
YXJrZXJzIHw9IERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsKLSAgICAgICAgaWYgKG1fcHJvY2Vz
c2luZ1JlcXVlc3QtPm1hc2soKSAmIFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICBp
ZiAocmVxdWVzdERhdGEubWFzaygpICYgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpCiAgICAgICAg
ICAgICBtYXJrZXJzIHw9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOwogICAgICAgICBpZiAobWFy
a2VycykKICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+cmVtb3Zl
TWFya2VycyhtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5jaGVja2luZ1JhbmdlKCkuZ2V0KCksIG1hcmtl
cnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKaW5kZXgg
Mzk3ZGQ0Ni4uYTQwNGQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRD
aGVja2luZy5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZiAv
LyAjaWYgUExBVEZPUk0oTUFDKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzApCiAKIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CisgICAg
VGV4dENoZWNraW5nVHlwZU5vbmUgICAgICAgID0gMCwKICAgICBUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmcgICAgPSAxIDw8IDEsCiAgICAgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8
PCAyLAogICAgIFRleHRDaGVja2luZ1R5cGVMaW5rICAgICAgICA9IDEgPDwgNSwKQEAgLTg3LDMx
ICs4OCw1MSBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0IHsKICAgICBTdHJpbmcgcmVwbGFj
ZW1lbnQ7CiB9OwogCi1jbGFzcyBUZXh0Q2hlY2tpbmdSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50
ZWQ8VGV4dENoZWNraW5nUmVxdWVzdD4geworY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2Ug
PSAtMTsKKworY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdERhdGEgeworICAgIGZyaWVuZCBjbGFz
cyBTcGVsbENoZWNrUmVxdWVzdDsgLy8gRm9yIGFjY2VzcyB0byBtX3NlcXVlbmNlLgogcHVibGlj
OgotICAgIFRleHRDaGVja2luZ1JlcXVlc3QoaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHBy
b2Nlc3NUeXBlKQorICAgIFRleHRDaGVja2luZ1JlcXVlc3REYXRhKCkKKyAgICAgICAgOiBtX3Nl
cXVlbmNlKHVucmVxdWVzdGVkU2VxdWVuY2UpCisgICAgICAgICwgbV9tYXNrKFRleHRDaGVja2lu
Z1R5cGVOb25lKQorICAgICAgICAsIG1fcHJvY2Vzc1R5cGUoVGV4dENoZWNraW5nUHJvY2Vzc0lu
Y3JlbWVudGFsKQorICAgIHsgfQorICAgIFRleHRDaGVja2luZ1JlcXVlc3REYXRhKGludCBzZXF1
ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0
Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAgICAgICAgOiBtX3NlcXVlbmNlKHNl
cXVlbmNlKQogICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICAgICAsIG1fbWFzayhtYXNrKQog
ICAgICAgICAsIG1fcHJvY2Vzc1R5cGUocHJvY2Vzc1R5cGUpCiAgICAgeyB9CiAKLSAgICB2aXJ0
dWFsIH5UZXh0Q2hlY2tpbmdSZXF1ZXN0KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN1Y2Nl
ZWQoY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZENhbmNlbCgpID0gMDsKLQogICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2VxdWVuY2U7IH0KICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsg
fQogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7
IH0KICAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvY2Vzc1R5cGU7IH0KIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICBpbnQgbV9z
ZXF1ZW5jZTsKICAgICBTdHJpbmcgbV90ZXh0OwogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1f
bWFzazsKICAgICBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBtX3Byb2Nlc3NUeXBlOwogfTsKIAor
Y2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRDaGVja2lu
Z1JlcXVlc3Q+IHsKKyAgICBmcmllbmQgY2xhc3MgU3BlbGxDaGVja1JlcXVlc3Q7IC8vIEZvciBh
Y2Nlc3MgdG8gbV9yZXF1ZXN0RGF0YS4KK3B1YmxpYzoKKyAgICBUZXh0Q2hlY2tpbmdSZXF1ZXN0
KGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBt
YXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKKyAgICAgICAgOiBtX3Jl
cXVlc3REYXRhKHNlcXVlbmNlLCB0ZXh0LCBtYXNrLCBwcm9jZXNzVHlwZSkKKyAgICB7IH0KKyAg
ICB2aXJ0dWFsIH5UZXh0Q2hlY2tpbmdSZXF1ZXN0KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3VjY2VlZChjb25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKCkgPSAwOworICAgIGNvbnN0IFRleHRDaGVja2luZ1JlcXVl
c3REYXRhJiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0RGF0YTsgfQorCitwcml2YXRl
OgorICAgIFRleHRDaGVja2luZ1JlcXVlc3REYXRhIG1fcmVxdWVzdERhdGE7Cit9OworCiB9CiAK
ICNlbmRpZiAvLyBUZXh0Q2hlY2tpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5k
ZXggZjI4ZmMyNi4uNjAxYzQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTMtMDItMjAgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dz
a2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3Qg
ZGF0YSBmcm9tIGFic3RyYWN0IFRleHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBm
b3IgV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTAyMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6SW5wdXRIYW5kbGVyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIEV4
dHJhY3QgdGhlIHJlcXVlc3QgZGF0YSBhcyBpdCBpcyB0aGUgbWVtYmVyIG9mICdUZXh0Q2hlY2tp
bmdSZXF1ZXN0Jy4KKwogMjAxMy0wMi0xOSAgTmltYSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlh
bkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBBcHByb3ByaWF0ZWx5IGhhbmRsZSB3
b3JkIHdyYXBwaW5nIGluIFNwZWxsaW5nSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKaW5kZXggYTUyMDk3
YS4uNmZkNjYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCkBAIC01OTcsMTQgKzU5NywxNCBAQCB2b2lkIElu
cHV0SGFuZGxlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdSZXF1ZQogewogICAgIG1fcmVxdWVzdCA9IHRleHRDaGVja2luZ1JlcXVlc3Q7
CiAKLSAgICBJbnB1dExvZyhQbGF0Zm9ybTo6TG9nTGV2ZWxJbmZvLCAiSW5wdXRIYW5kbGVyOjpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyAnJXMnIiwgbV9yZXF1ZXN0LT50ZXh0KCkubGF0aW4xKCku
ZGF0YSgpKTsKKyAgICBJbnB1dExvZyhQbGF0Zm9ybTo6TG9nTGV2ZWxJbmZvLCAiSW5wdXRIYW5k
bGVyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyAnJXMnIiwgbV9yZXF1ZXN0LT5kYXRhKCkudGV4
dCgpLmxhdGluMSgpLmRhdGEoKSk7CiAKICAgICBpZiAoIW1fcmVxdWVzdCkgewogICAgICAgICBT
cGVsbGluZ0xvZyhQbGF0Zm9ybTo6TG9nTGV2ZWxXYXJuLCAiSW5wdXRIYW5kbGVyOjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyBkaWQgbm90IHJlY2VpdmUgYSB2YWxpZCByZXF1ZXN0LiIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdW5zaWduZWQgcmVxdWVzdExlbmd0aCA9IG1fcmVx
dWVzdC0+dGV4dCgpLmxlbmd0aCgpOworICAgIHVuc2lnbmVkIHJlcXVlc3RMZW5ndGggPSBtX3Jl
cXVlc3QtPmRhdGEoKS50ZXh0KCkubGVuZ3RoKCk7CiAKICAgICAvLyBDaGVjayBpZiB0aGUgZmll
bGQgc2hvdWxkIGJlIHNwZWxsY2hlY2tlZC4KICAgICBpZiAoIWlzQWN0aXZlVGV4dEVkaXQoKSB8
fCAhc2hvdWxkU3BlbGxDaGVja0VsZW1lbnQobV9jdXJyZW50Rm9jdXNFbGVtZW50LmdldCgpKSB8
fCByZXF1ZXN0TGVuZ3RoIDwgMikgewpAQCAtNjM5LDcgKzYzOSw3IEBAIHZvaWQgSW5wdXRIYW5k
bGVyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVj
a2luZ1JlcXVlCiAgICAgfQogCiAgICAgaW50IHBhcmFncmFwaExlbmd0aCA9IDA7Ci0gICAgaWYg
KCFjb252ZXJ0U3RyaW5nVG9XY2hhcihtX3JlcXVlc3QtPnRleHQoKSwgY2hlY2tpbmdTdHJpbmcs
IHJlcXVlc3RMZW5ndGggKyAxLCAmcGFyYWdyYXBoTGVuZ3RoKSkgeworICAgIGlmICghY29udmVy
dFN0cmluZ1RvV2NoYXIobV9yZXF1ZXN0LT5kYXRhKCkudGV4dCgpLCBjaGVja2luZ1N0cmluZywg
cmVxdWVzdExlbmd0aCArIDEsICZwYXJhZ3JhcGhMZW5ndGgpKSB7CiAgICAgICAgIFBsYXRmb3Jt
Ojpsb2dBbHdheXMoUGxhdGZvcm06OkxvZ0xldmVsQ3JpdGljYWwsICJJbnB1dEhhbmRsZXI6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nIEZhaWxlZCB0byBjb252ZXJ0IFN0cmluZyB0byB3Y2hhciB0
eXBlLiIpOwogICAgICAgICBmcmVlKGNoZWNraW5nU3RyaW5nKTsKICAgICAgICAgbV9yZXF1ZXN0
LT5kaWRDYW5jZWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODY2YjZiZi4uNjhm
ZDgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0w
Mi0yMCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBBbGxvdyB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBkYXRhIGZyb20gYWJzdHJhY3Qg
VGV4dENoZWNraW5nUmVxdWVzdCB0byBiZSBhY2Nlc3NpYmxlIGZvciBXSzIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDIwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyk6CisgICAgICAgIEV4dHJhY3QgdGhlIHJlcXVlc3QgZGF0YSBhcyBpdCBpcyB0
aGUgbWVtYmVyIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0Jy4KKwogMjAxMy0wMi0xOSAgQWRyaWVu
bmUgV2Fsa2VyICA8ZW5uZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE0MzM4MiBhbmQgcjE0MzQwMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKaW5kZXggYzNhMGY5MS4uMGYzMjU1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTc0
Niw3ICs3NDYsNyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmlu
Zyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVj
a2luZ1JlcXVlc3Q+IHJlcXVlc3QpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0Ns
aWVudCgpKSB7Ci0gICAgICAgIFN0cmluZyB0ZXh0ID0gcmVxdWVzdC0+dGV4dCgpOworICAgICAg
ICBTdHJpbmcgdGV4dCA9IHJlcXVlc3QtPmRhdGEoKS50ZXh0KCk7CiAgICAgICAgIG1fd2ViVmll
dy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3IFdl
YlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKHJlcXVlc3QpKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggMDJjODM3NC4uYTAyNmQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEzLTAyLTIwICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNh
bXN1bmcuY29tPgorCisgICAgICAgIEFsbG93IHRvIHJldHJpZXZlIHRoZSByZXF1ZXN0IGRhdGEg
ZnJvbSBhYnN0cmFjdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0IHRvIGJlIGFjY2Vzc2libGUgZm9yIFdL
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjA4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgRXh0cmFjdCB0aGUgcmVxdWVzdCBk
YXRhIGFzIGl0IGlzIHRoZSBtZW1iZXIgb2YgJ1RleHRDaGVja2luZ1JlcXVlc3QnLgorCiAyMDEz
LTAyLTE5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IENsYXJpZnkgaXNJbldpbmRvdyB2cy4gaXNWaXNpYmxlIHBhdGggdGhyb3VnaCB0byBSZW5kZXJM
YXllckNvbXBvc2l0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAyNmUzYTQyLi5hYTg3NzE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC05
ODMsMTAgKzk4MywxMCBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZQogICAgIEFTU0VSVCghbV90
ZXh0Q2hlY2tpbmdSZXF1ZXN0KTsKICAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QgPSByZXF1ZXN0
OwogCi0gICAgaW50IHNlcXVlbmNlID0gbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5zZXF1ZW5jZSgp
OwotICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCBtX3RleHRDaGVja2luZ1JlcXVl
c3QtPnRleHQoKS5sZW5ndGgoKSk7CisgICAgaW50IHNlcXVlbmNlID0gbV90ZXh0Q2hlY2tpbmdS
ZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKTsKKyAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFu
Z2UoMCwgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkudGV4dCgpLmxlbmd0aCgpKTsKICAg
ICBOU1J1bkxvb3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07Ci0g
ICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nOm1fdGV4dENoZWNraW5nUmVxdWVzdC0+dGV4dCgpIHJhbmdlOnJhbmdlIHR5cGVzOk5T
VGV4dENoZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhU
YWc6MAorICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZzptX3RleHRDaGVja2luZ1JlcXVlc3QtPmRhdGEoKS50ZXh0KCkgcmFuZ2U6
cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVs
bERvY3VtZW50V2l0aFRhZzowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJbnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09y
dGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7CiAgICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9y
bVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5p
dFdpdGhDbGllbnQ6dGhpcyBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9y
ZWxlYXNlXQo=
</data>
<flag name="commit-queue"
          id="209638"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189298</attachid>
            <date>2013-02-20 05:54:20 -0800</date>
            <delta_ts>2013-02-21 02:40:45 -0800</delta_ts>
            <desc>hopefully fixes Mac build</desc>
            <filename>spelling-asynchronous-webcore-changes.patch</filename>
            <type>text/plain</type>
            <size>15459</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwN2UyNzU4Li42YzZiMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTMtMDItMjAgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0YSBmcm9t
IGFic3RyYWN0IFRleHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBmb3IgV0syCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViQ29y
ZSBjaGFuZ2VzIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMi4KKyAgICAgICAgVGhlIGlkZWEgb2YgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMSBpcyB0byBwYXNzIHRoZSBwb2ludGVyIHRvIHRoZSBhYnN0cmFjdCBvYmpl
Y3QKKyAgICAgICAgdG8gdGhlIGNsaWVudCB3aG8gaXMgYWJsZSB0byB2ZXJpZnkgdGhlIGdpdmVu
IHRleHQgYW5kIG5vdGlmeSB0aGUgV2ViQ29yZSBhYm91dCByZXN1bHRzLgorICAgICAgICBXSzIg
d2lsbCBleHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYW5kIHBhc3MgaXQgKHdpdGggYWRkaXRpb25h
bCBpbmZvcm1hdGlvbikgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGNvdmVyZWQgYnkgZWRpdGluZy9zcGVsbGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3Ip
OgorICAgICAgICBFeHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYXMgaXQgaXMgdGhlIG1lbWJlciBv
ZiAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6ZGlkU3VjY2VlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6ZGlkQ2FuY2VsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpzZXRDaGVja2VyQW5kU2VxdWVuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmRpZENoZWNrU3VjY2VlZCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tpbmcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVGV4dENoZWNr
aW5nUmVxdWVzdERhdGEpOgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgJ1RleHRDaGVja2luZ1Jl
cXVlc3REYXRhJyBjbGFzcyB0byBrZWVwIHRoZSByZXF1ZXN0IGRhdGEgYW5kIHRvCisgICAgICAg
IGVhc3kgZXh0cmFjdCBpdCBmcm9tIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
RGF0YSk6CisgICAgICAgIChUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3Q6OlRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6flRleHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6ZGF0YSk6CisgICAgICAgIFJldHVybiBy
ZWFkIG9ubHkgdGhlIHJlcXVlc3QgZGF0YSB0byBiZSBhY2Nlc3NpYmxlIGZvciBib3RoIFdLMSBh
bmQgV0syIGNsaWVudHMuCisKIDIwMTMtMDItMjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRyb2R1Y2UgU2VjdXJp
dHlPcmlnaW5BZGRlZCBhbmQgU2VjdXJpdHlPcmlnaW5SZW1vdmVkIGV2ZW50cyBpbnRvIFJlc291
cmNlVHJlZU1vZGVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggN2M0NjI3Yy4uNDBi
ZDY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjEzNSw3ICsyMTM1LDcgQEAg
dm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVl
c3Q+IHJlcXVlc3QsIGNvbnN0IFZlY3QKIHsKICAgICBBU1NFUlQocmVxdWVzdCk7CiAKLSAgICBU
ZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zID0gcmVxdWVzdC0+bWFzaygp
OworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMgPSByZXF1ZXN0
LT5kYXRhKCkubWFzaygpOwogICAgIFRleHRDaGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgocmVx
dWVzdC0+Y2hlY2tpbmdSYW5nZSgpLCByZXF1ZXN0LT5wYXJhZ3JhcGhSYW5nZSgpKTsKIAogICAg
IGJvb2wgc2hvdWxkTWFya1NwZWxsaW5nID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApp
bmRleCAzNjBmYjljLi43MGZkODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwCkBAIC00NSw4ICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGlj
IGNvbnN0IGludCB1bnJlcXVlc3RlZFNlcXVlbmNlID0gLTE7Ci0KIFNwZWxsQ2hlY2tSZXF1ZXN0
OjpTcGVsbENoZWNrUmVxdWVzdChQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNz
UmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkK
ICAgICA6IFRleHRDaGVja2luZ1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgdGV4dCwgbWFz
aywgcHJvY2Vzc1R5cGUpCiAgICAgLCBtX2NoZWNrZXIoMCkKQEAgLTc3LDcgKzc1LDcgQEAgdm9p
ZCBTcGVsbENoZWNrUmVxdWVzdDo6ZGlkU3VjY2VlZChjb25zdCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiYgcmVzdWx0cykKIHsKICAgICBpZiAoIW1fY2hlY2tlcikKICAgICAgICAgcmV0dXJu
OwotICAgIG1fY2hlY2tlci0+ZGlkQ2hlY2tTdWNjZWVkKG1fc2VxdWVuY2UsIHJlc3VsdHMpOwor
ICAgIG1fY2hlY2tlci0+ZGlkQ2hlY2tTdWNjZWVkKG1fcmVxdWVzdERhdGEuc2VxdWVuY2UoKSwg
cmVzdWx0cyk7CiAgICAgbV9jaGVja2VyID0gMDsKIH0KIApAQCAtODUsMTYgKzgzLDE2IEBAIHZv
aWQgU3BlbGxDaGVja1JlcXVlc3Q6OmRpZENhbmNlbCgpCiB7CiAgICAgaWYgKCFtX2NoZWNrZXIp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX2NoZWNrZXItPmRpZENoZWNrQ2FuY2VsKG1fc2VxdWVu
Y2UpOworICAgIG1fY2hlY2tlci0+ZGlkQ2hlY2tDYW5jZWwobV9yZXF1ZXN0RGF0YS5zZXF1ZW5j
ZSgpKTsKICAgICBtX2NoZWNrZXIgPSAwOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tSZXF1ZXN0Ojpz
ZXRDaGVja2VyQW5kU2VxdWVuY2UoU3BlbGxDaGVja2VyKiByZXF1ZXN0ZXIsIGludCBzZXF1ZW5j
ZSkKIHsKICAgICBBU1NFUlQoIW1fY2hlY2tlcik7Ci0gICAgQVNTRVJUKG1fc2VxdWVuY2UgPT0g
dW5yZXF1ZXN0ZWRTZXF1ZW5jZSk7CisgICAgQVNTRVJUKG1fcmVxdWVzdERhdGEuc2VxdWVuY2Uo
KSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKTsKICAgICBtX2NoZWNrZXIgPSByZXF1ZXN0ZXI7Ci0g
ICAgbV9zZXF1ZW5jZSA9IHNlcXVlbmNlOworICAgIG1fcmVxdWVzdERhdGEubV9zZXF1ZW5jZSA9
IHNlcXVlbmNlOwogfQogCiB2b2lkIFNwZWxsQ2hlY2tSZXF1ZXN0OjpyZXF1ZXN0ZXJEZXN0cm95
ZWQoKQpAQCAtMTYwLDcgKzE1OCw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tp
bmdGb3IoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKICAgICBpZiAoIXJl
cXVlc3QgfHwgIWNhbkNoZWNrQXN5bmNocm9ub3VzbHkocmVxdWVzdC0+cGFyYWdyYXBoUmFuZ2Uo
KS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChyZXF1ZXN0LT5zZXF1ZW5j
ZSgpID09IHVucmVxdWVzdGVkU2VxdWVuY2UpOworICAgIEFTU0VSVChyZXF1ZXN0LT5kYXRhKCku
c2VxdWVuY2UoKSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKTsKICAgICBpbnQgc2VxdWVuY2UgPSAr
K21fbGFzdFJlcXVlc3RTZXF1ZW5jZTsKICAgICBpZiAoc2VxdWVuY2UgPT0gdW5yZXF1ZXN0ZWRT
ZXF1ZW5jZSkKICAgICAgICAgc2VxdWVuY2UgPSArK21fbGFzdFJlcXVlc3RTZXF1ZW5jZTsKQEAg
LTIwMiw4ICsyMDAsOCBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1Jl
ZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRD
aGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1
bHRzKQogewogICAgIEFTU0VSVChtX3Byb2Nlc3NpbmdSZXF1ZXN0KTsKLSAgICBBU1NFUlQobV9w
cm9jZXNzaW5nUmVxdWVzdC0+c2VxdWVuY2UoKSA9PSBzZXF1ZW5jZSk7Ci0gICAgaWYgKG1fcHJv
Y2Vzc2luZ1JlcXVlc3QtPnNlcXVlbmNlKCkgIT0gc2VxdWVuY2UpIHsKKyAgICBBU1NFUlQobV9w
cm9jZXNzaW5nUmVxdWVzdC0+ZGF0YSgpLnNlcXVlbmNlKCkgPT0gc2VxdWVuY2UpOworICAgIGlm
IChtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKSAhPSBzZXF1ZW5jZSkgewog
ICAgICAgICBtX3JlcXVlc3RRdWV1ZS5jbGVhcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjIwLDExICsyMTgsMTIgQEAgdm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1
ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3UKIAogdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0
Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewotICAgIGlmIChtX3Byb2Nlc3NpbmdSZXF1ZXN0
LT5zZXF1ZW5jZSgpID09IHNlcXVlbmNlKSB7CisgICAgVGV4dENoZWNraW5nUmVxdWVzdERhdGEg
cmVxdWVzdERhdGEgPSBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5kYXRhKCk7CisgICAgaWYgKHJlcXVl
c3REYXRhLnNlcXVlbmNlKCkgPT0gc2VxdWVuY2UpIHsKICAgICAgICAgdW5zaWduZWQgbWFya2Vy
cyA9IDA7Ci0gICAgICAgIGlmIChtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5tYXNrKCkgJiBUZXh0Q2hl
Y2tpbmdUeXBlU3BlbGxpbmcpCisgICAgICAgIGlmIChyZXF1ZXN0RGF0YS5tYXNrKCkgJiBUZXh0
Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCiAgICAgICAgICAgICBtYXJrZXJzIHw9IERvY3VtZW50TWFy
a2VyOjpTcGVsbGluZzsKLSAgICAgICAgaWYgKG1fcHJvY2Vzc2luZ1JlcXVlc3QtPm1hc2soKSAm
IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICBpZiAocmVxdWVzdERhdGEubWFzaygp
ICYgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpCiAgICAgICAgICAgICBtYXJrZXJzIHw9IERvY3Vt
ZW50TWFya2VyOjpHcmFtbWFyOwogICAgICAgICBpZiAobWFya2VycykKICAgICAgICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+cmVtb3ZlTWFya2VycyhtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT5jaGVja2luZ1JhbmdlKCkuZ2V0KCksIG1hcmtlcnMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKaW5kZXggMzk3ZGQ0Ni4uYTQwNGQ3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCkBAIC01NSw2ICs1
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZiAvLyAjaWYgUExBVEZPUk0oTUFDKSAm
JiAoUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzApCiAKIGVudW0gVGV4dENoZWNraW5nVHlwZSB7CisgICAgVGV4dENoZWNraW5nVHlwZU5vbmUg
ICAgICAgID0gMCwKICAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCiAg
ICAgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAogICAgIFRleHRDaGVja2lu
Z1R5cGVMaW5rICAgICAgICA9IDEgPDwgNSwKQEAgLTg3LDMxICs4OCw1MSBAQCBzdHJ1Y3QgVGV4
dENoZWNraW5nUmVzdWx0IHsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnQ7CiB9OwogCi1jbGFzcyBU
ZXh0Q2hlY2tpbmdSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dENoZWNraW5nUmVxdWVz
dD4geworY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKKworY2xhc3MgVGV4dENo
ZWNraW5nUmVxdWVzdERhdGEgeworICAgIGZyaWVuZCBjbGFzcyBTcGVsbENoZWNrUmVxdWVzdDsg
Ly8gRm9yIGFjY2VzcyB0byBtX3NlcXVlbmNlLgogcHVibGljOgotICAgIFRleHRDaGVja2luZ1Jl
cXVlc3QoaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVN
YXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQorICAgIFRleHRD
aGVja2luZ1JlcXVlc3REYXRhKCkKKyAgICAgICAgOiBtX3NlcXVlbmNlKHVucmVxdWVzdGVkU2Vx
dWVuY2UpCisgICAgICAgICwgbV9tYXNrKFRleHRDaGVja2luZ1R5cGVOb25lKQorICAgICAgICAs
IG1fcHJvY2Vzc1R5cGUoVGV4dENoZWNraW5nUHJvY2Vzc0luY3JlbWVudGFsKQorICAgIHsgfQor
ICAgIFRleHRDaGVja2luZ1JlcXVlc3REYXRhKGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBw
cm9jZXNzVHlwZSkKICAgICAgICAgOiBtX3NlcXVlbmNlKHNlcXVlbmNlKQogICAgICAgICAsIG1f
dGV4dCh0ZXh0KQogICAgICAgICAsIG1fbWFzayhtYXNrKQogICAgICAgICAsIG1fcHJvY2Vzc1R5
cGUocHJvY2Vzc1R5cGUpCiAgICAgeyB9CiAKLSAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tpbmdSZXF1
ZXN0KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoY29uc3QgVmVjdG9yPFRleHRD
aGVja2luZ1Jlc3VsdD4mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbCgpID0gMDsK
LQogICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VxdWVuY2U7IH0KICAgICBT
dHJpbmcgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRDaGVja2luZ1R5
cGVNYXNrIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KICAgICBUZXh0Q2hlY2tpbmdQ
cm9jZXNzVHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1R5cGU7IH0K
IAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICBpbnQgbV9zZXF1ZW5jZTsKICAgICBTdHJpbmcg
bV90ZXh0OwogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1fbWFzazsKICAgICBUZXh0Q2hlY2tp
bmdQcm9jZXNzVHlwZSBtX3Byb2Nlc3NUeXBlOwogfTsKIAorY2xhc3MgVGV4dENoZWNraW5nUmVx
dWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRDaGVja2luZ1JlcXVlc3Q+IHsKKyAgICBmcmll
bmQgY2xhc3MgU3BlbGxDaGVja1JlcXVlc3Q7IC8vIEZvciBhY2Nlc3MgdG8gbV9yZXF1ZXN0RGF0
YS4KK3B1YmxpYzoKKyAgICBUZXh0Q2hlY2tpbmdSZXF1ZXN0KGludCBzZXF1ZW5jZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9j
ZXNzVHlwZSBwcm9jZXNzVHlwZSkKKyAgICAgICAgOiBtX3JlcXVlc3REYXRhKHNlcXVlbmNlLCB0
ZXh0LCBtYXNrLCBwcm9jZXNzVHlwZSkKKyAgICB7IH0KKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tp
bmdSZXF1ZXN0KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZChjb25zdCBWZWN0
b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2Vs
KCkgPSAwOworICAgIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiBkYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXF1ZXN0RGF0YTsgfQorCitwcml2YXRlOgorICAgIFRleHRDaGVja2luZ1Jl
cXVlc3REYXRhIG1fcmVxdWVzdERhdGE7Cit9OworCiB9CiAKICNlbmRpZiAvLyBUZXh0Q2hlY2tp
bmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZjM3ZWFiNC4uMzQ3YWU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MjAgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0YSBmcm9tIGFic3RyYWN0IFRl
eHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBmb3IgV0syCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIEV4dHJhY3QgdGhlIHJlcXVlc3QgZGF0
YSBhcyBpdCBpcyB0aGUgbWVtYmVyIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0Jy4KKwogMjAxMy0w
Mi0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBCbGFja0JlcnJ5IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmluZGV4IGE1
MjA5N2EuLjZmZDY2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApAQCAtNTk3LDE0ICs1OTcsMTQgQEAgdm9p
ZCBJbnB1dEhhbmRsZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVxdWUKIHsKICAgICBtX3JlcXVlc3QgPSB0ZXh0Q2hlY2tpbmdSZXF1
ZXN0OwogCi0gICAgSW5wdXRMb2coUGxhdGZvcm06OkxvZ0xldmVsSW5mbywgIklucHV0SGFuZGxl
cjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcgJyVzJyIsIG1fcmVxdWVzdC0+dGV4dCgpLmxhdGlu
MSgpLmRhdGEoKSk7CisgICAgSW5wdXRMb2coUGxhdGZvcm06OkxvZ0xldmVsSW5mbywgIklucHV0
SGFuZGxlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcgJyVzJyIsIG1fcmVxdWVzdC0+ZGF0YSgp
LnRleHQoKS5sYXRpbjEoKS5kYXRhKCkpOwogCiAgICAgaWYgKCFtX3JlcXVlc3QpIHsKICAgICAg
ICAgU3BlbGxpbmdMb2coUGxhdGZvcm06OkxvZ0xldmVsV2FybiwgIklucHV0SGFuZGxlcjo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcgZGlkIG5vdCByZWNlaXZlIGEgdmFsaWQgcmVxdWVzdC4iKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVuc2lnbmVkIHJlcXVlc3RMZW5ndGggPSBt
X3JlcXVlc3QtPnRleHQoKS5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCByZXF1ZXN0TGVuZ3RoID0g
bV9yZXF1ZXN0LT5kYXRhKCkudGV4dCgpLmxlbmd0aCgpOwogCiAgICAgLy8gQ2hlY2sgaWYgdGhl
IGZpZWxkIHNob3VsZCBiZSBzcGVsbGNoZWNrZWQuCiAgICAgaWYgKCFpc0FjdGl2ZVRleHRFZGl0
KCkgfHwgIXNob3VsZFNwZWxsQ2hlY2tFbGVtZW50KG1fY3VycmVudEZvY3VzRWxlbWVudC5nZXQo
KSkgfHwgcmVxdWVzdExlbmd0aCA8IDIpIHsKQEAgLTYzOSw3ICs2MzksNyBAQCB2b2lkIElucHV0
SGFuZGxlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdSZXF1ZQogICAgIH0KIAogICAgIGludCBwYXJhZ3JhcGhMZW5ndGggPSAwOwotICAg
IGlmICghY29udmVydFN0cmluZ1RvV2NoYXIobV9yZXF1ZXN0LT50ZXh0KCksIGNoZWNraW5nU3Ry
aW5nLCByZXF1ZXN0TGVuZ3RoICsgMSwgJnBhcmFncmFwaExlbmd0aCkpIHsKKyAgICBpZiAoIWNv
bnZlcnRTdHJpbmdUb1djaGFyKG1fcmVxdWVzdC0+ZGF0YSgpLnRleHQoKSwgY2hlY2tpbmdTdHJp
bmcsIHJlcXVlc3RMZW5ndGggKyAxLCAmcGFyYWdyYXBoTGVuZ3RoKSkgewogICAgICAgICBQbGF0
Zm9ybTo6bG9nQWx3YXlzKFBsYXRmb3JtOjpMb2dMZXZlbENyaXRpY2FsLCAiSW5wdXRIYW5kbGVy
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyBGYWlsZWQgdG8gY29udmVydCBTdHJpbmcgdG8gd2No
YXIgdHlwZS4iKTsKICAgICAgICAgZnJlZShjaGVja2luZ1N0cmluZyk7CiAgICAgICAgIG1fcmVx
dWVzdC0+ZGlkQ2FuY2VsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDg2NmI2YmYu
LjY4ZmQ4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTMtMDItMjAgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0YSBmcm9tIGFic3Ry
YWN0IFRleHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBmb3IgV0syCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICBFeHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYXMgaXQg
aXMgdGhlIG1lbWJlciBvZiAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKIDIwMTMtMDItMTkgIEFk
cmllbm5lIFdhbGtlciAgPGVubmVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNDMzODIgYW5kIHIxNDM0MDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IGMzYTBmOTEuLjBmMzI1NTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBA
IC03NDYsNyArNzQ2LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpjaGVja1NwZWxsaW5nT2ZT
dHJpbmcoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsCiB2b2lkIEVkaXRvckNsaWVudElt
cGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdSZXF1ZXN0PiByZXF1ZXN0KQogewogICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hl
Y2tDbGllbnQoKSkgewotICAgICAgICBTdHJpbmcgdGV4dCA9IHJlcXVlc3QtPnRleHQoKTsKKyAg
ICAgICAgU3RyaW5nIHRleHQgPSByZXF1ZXN0LT5kYXRhKCkudGV4dCgpOwogICAgICAgICBtX3dl
YlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZUZXh0KHRleHQsIG5l
dyBXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbChyZXF1ZXN0KSk7CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDAyYzgzNzQuLjA1OWY0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMy0wMi0yMCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3Nr
aUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBbGxvdyB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBk
YXRhIGZyb20gYWJzdHJhY3QgVGV4dENoZWNraW5nUmVxdWVzdCB0byBiZSBhY2Nlc3NpYmxlIGZv
ciBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MDIwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpkaWRDaGVja1N1Y2NlZWQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIEV4dHJhY3QgdGhlIHJlcXVlc3QgZGF0YSBhcyBp
dCBpcyB0aGUgbWVtYmVyIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0Jy4KKwogMjAxMy0wMi0xOSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGFyaWZ5
IGlzSW5XaW5kb3cgdnMuIGlzVmlzaWJsZSBwYXRoIHRocm91Z2ggdG8gUmVuZGVyTGF5ZXJDb21w
b3NpdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KaW5kZXggMjZlM2E0Mi4uMzc5ODI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtOTcyLDggKzk3
Miw4IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAK
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0Fy
cmF5KiByZXN1bHRzKQogewotICAgIEFTU0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09
IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+c2VxdWVuY2UoKSk7Ci0gICAgbV90ZXh0Q2hlY2tpbmdS
ZXF1ZXN0LT5kaWRTdWNjZWVkKGNvcmUocmVzdWx0cywgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5t
YXNrKCkpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHNlcXVlbmNlLCBzZXF1ZW5jZSA9PSBtX3RleHRD
aGVja2luZ1JlcXVlc3QtPmRhdGEoKS5zZXF1ZW5jZSgpKTsKKyAgICBtX3RleHRDaGVja2luZ1Jl
cXVlc3QtPmRpZFN1Y2NlZWQoY29yZShyZXN1bHRzLCBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRh
dGEoKS5tYXNrKCkpKTsKICAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QuY2xlYXIoKTsKIH0KIApA
QCAtOTgzLDEwICs5ODMsMTAgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmUKICAgICBBU1NFUlQo
IW1fdGV4dENoZWNraW5nUmVxdWVzdCk7CiAgICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0ID0gcmVx
dWVzdDsKIAotICAgIGludCBzZXF1ZW5jZSA9IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+c2VxdWVu
Y2UoKTsKLSAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgbV90ZXh0Q2hlY2tpbmdS
ZXF1ZXN0LT50ZXh0KCkubGVuZ3RoKCkpOworICAgIGludCBzZXF1ZW5jZSA9IG1fdGV4dENoZWNr
aW5nUmVxdWVzdC0+ZGF0YSgpLnNlcXVlbmNlKCk7CisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFr
ZVJhbmdlKDAsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLnRleHQoKS5sZW5ndGgoKSk7
CiAgICAgTlNSdW5Mb29wKiBjdXJyZW50TG9vcCA9IFtOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3Bd
OwotICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZzptX3RleHRDaGVja2luZ1JlcXVlc3QtPnRleHQoKSByYW5nZTpyYW5nZSB0eXBl
czpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRX
aXRoVGFnOjAKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmc6bV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkudGV4dCgpIHJh
bmdlOnJhbmdlIHR5cGVzOk5TVGV4dENoZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGlu
U3BlbGxEb2N1bWVudFdpdGhUYWc6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywg
TlNPcnRob2dyYXBoeSosIE5TSW50ZWdlcikgewogICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBl
cmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2Nd
IGluaXRXaXRoQ2xpZW50OnRoaXMgc2VxdWVuY2U6c2VxdWVuY2UgcmVzdWx0czpyZXN1bHRzXSBh
dXRvcmVsZWFzZV0K
</data>
<flag name="review"
          id="209655"
          type_id="1"
          status="+"
          setter="morrita"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189488</attachid>
            <date>2013-02-21 02:40:45 -0800</date>
            <delta_ts>2013-02-21 22:03:45 -0800</delta_ts>
            <desc>apply Morrita&apos;s suggestions</desc>
            <filename>spelling-asynchronous-webcore-changes.patch</filename>
            <type>text/plain</type>
            <size>16343</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODk5NGVkLi43NTY0MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTMtMDItMjEgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0YSBmcm9t
IGFic3RyYWN0IFRleHRDaGVja2luZ1JlcXVlc3QgdG8gYmUgYWNjZXNzaWJsZSBmb3IgV0syCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9ycml0YS4KKworICAgICAgICBUaGUgV2ViQ29y
ZSBjaGFuZ2VzIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMi4KKyAgICAgICAgVGhlIGlkZWEgb2YgYXN5bmNocm9ub3VzIHNwZWxsIGNo
ZWNraW5nIGluIFdLMSBpcyB0byBwYXNzIHRoZSBwb2ludGVyIHRvIHRoZSBhYnN0cmFjdCBvYmpl
Y3QKKyAgICAgICAgdG8gdGhlIGNsaWVudCB3aG8gaXMgYWJsZSB0byB2ZXJpZnkgdGhlIGdpdmVu
IHRleHQgYW5kIG5vdGlmeSB0aGUgV2ViQ29yZSBhYm91dCByZXN1bHRzLgorICAgICAgICBXSzIg
d2lsbCBleHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYW5kIHBhc3MgaXQgKHdpdGggYWRkaXRpb25h
bCBpbmZvcm1hdGlvbikgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGNvdmVyZWQgYnkgZWRpdGluZy9zcGVsbGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3Ip
OgorICAgICAgICBFeHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYXMgaXQgaXMgdGhlIG1lbWJlciBv
ZiAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tS
ZXF1ZXN0OjpkaWRDYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6
OnNldENoZWNrZXJBbmRTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6
OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmVu
cXVldWVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2sp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVja1N1Y2NlZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFRleHRDaGVja2luZ1JlcXVlc3REYXRhKToKKyAgICAgICAgSW50cm9kdWNlIGEg
bmV3ICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScgY2xhc3MgdG8ga2VlcCB0aGUgcmVxdWVzdCBk
YXRhIGFuZCB0bworICAgICAgICBlYXN5IGV4dHJhY3QgaXQgZnJvbSB0aGUgJ1RleHRDaGVja2lu
Z1JlcXVlc3QnLgorCisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YTo6
VGV4dENoZWNraW5nUmVxdWVzdERhdGEpOgorICAgICAgICAoVGV4dENoZWNraW5nUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0Ojp+VGV4dENoZWNraW5nUmVx
dWVzdCk6CisKIDIwMTMtMDItMjEgIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGNvbW1hbmQgZm9yIHNlbGVjdGluZyBmaWxlcyBm
b3IgZmlsZSBpbnB1dCBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggN2M0
NjI3Yy4uNDBiZDY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjEzNSw3ICsy
MTM1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFBhc3NSZWZQdHI8U3BlbGxD
aGVja1JlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IFZlY3QKIHsKICAgICBBU1NFUlQocmVxdWVzdCk7
CiAKLSAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zID0gcmVxdWVz
dC0+bWFzaygpOworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMg
PSByZXF1ZXN0LT5kYXRhKCkubWFzaygpOwogICAgIFRleHRDaGVja2luZ1BhcmFncmFwaCBwYXJh
Z3JhcGgocmVxdWVzdC0+Y2hlY2tpbmdSYW5nZSgpLCByZXF1ZXN0LT5wYXJhZ3JhcGhSYW5nZSgp
KTsKIAogICAgIGJvb2wgc2hvdWxkTWFya1NwZWxsaW5nID0gdGV4dENoZWNraW5nT3B0aW9ucyAm
IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcAppbmRleCAzNjBmYjljLi5hOTBiZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuY3BwCkBAIC00NSwxNCArNDUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1zdGF0aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKLQogU3BlbGxD
aGVja1JlcXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5n
UmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHBy
b2Nlc3NUeXBlKQotICAgIDogVGV4dENoZWNraW5nUmVxdWVzdCh1bnJlcXVlc3RlZFNlcXVlbmNl
LCB0ZXh0LCBtYXNrLCBwcm9jZXNzVHlwZSkKLSAgICAsIG1fY2hlY2tlcigwKQorICAgIDogbV9j
aGVja2VyKDApCiAgICAgLCBtX2NoZWNraW5nUmFuZ2UoY2hlY2tpbmdSYW5nZSkKICAgICAsIG1f
cGFyYWdyYXBoUmFuZ2UocGFyYWdyYXBoUmFuZ2UpCiAgICAgLCBtX3Jvb3RFZGl0YWJsZUVsZW1l
bnQobV9jaGVja2luZ1JhbmdlLT5zdGFydENvbnRhaW5lcigpLT5yb290RWRpdGFibGVFbGVtZW50
KCkpCisgICAgLCBtX3JlcXVlc3REYXRhKHVucmVxdWVzdGVkVGV4dENoZWNraW5nU2VxdWVuY2Us
IHRleHQsIG1hc2ssIHByb2Nlc3NUeXBlKQogewogfQogCkBAIC03MywxMSArNzEsMTYgQEAgUGFz
c1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0
Q2hlY2tpbmdUeXBlTWFzayB0ZXgKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tS
ZXF1ZXN0KGNoZWNraW5nUmFuZ2UsIHBhcmFncmFwaFJhbmdlLCB0ZXh0LCB0ZXh0Q2hlY2tpbmdP
cHRpb25zLCBwcm9jZXNzVHlwZSkpOwogfQogCitjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSYgU3BlbGxDaGVja1JlcXVlc3Q6OmRhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVl
c3REYXRhOworfQorCiB2b2lkIFNwZWxsQ2hlY2tSZXF1ZXN0OjpkaWRTdWNjZWVkKGNvbnN0IFZl
Y3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewogICAgIGlmICghbV9jaGVja2Vy
KQogICAgICAgICByZXR1cm47Ci0gICAgbV9jaGVja2VyLT5kaWRDaGVja1N1Y2NlZWQobV9zZXF1
ZW5jZSwgcmVzdWx0cyk7CisgICAgbV9jaGVja2VyLT5kaWRDaGVja1N1Y2NlZWQobV9yZXF1ZXN0
RGF0YS5zZXF1ZW5jZSgpLCByZXN1bHRzKTsKICAgICBtX2NoZWNrZXIgPSAwOwogfQogCkBAIC04
NSwxNiArODgsMTYgQEAgdm9pZCBTcGVsbENoZWNrUmVxdWVzdDo6ZGlkQ2FuY2VsKCkKIHsKICAg
ICBpZiAoIW1fY2hlY2tlcikKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2hlY2tlci0+ZGlkQ2hl
Y2tDYW5jZWwobV9zZXF1ZW5jZSk7CisgICAgbV9jaGVja2VyLT5kaWRDaGVja0NhbmNlbChtX3Jl
cXVlc3REYXRhLnNlcXVlbmNlKCkpOwogICAgIG1fY2hlY2tlciA9IDA7CiB9CiAKIHZvaWQgU3Bl
bGxDaGVja1JlcXVlc3Q6OnNldENoZWNrZXJBbmRTZXF1ZW5jZShTcGVsbENoZWNrZXIqIHJlcXVl
c3RlciwgaW50IHNlcXVlbmNlKQogewogICAgIEFTU0VSVCghbV9jaGVja2VyKTsKLSAgICBBU1NF
UlQobV9zZXF1ZW5jZSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKTsKKyAgICBBU1NFUlQobV9yZXF1
ZXN0RGF0YS5zZXF1ZW5jZSgpID09IHVucmVxdWVzdGVkVGV4dENoZWNraW5nU2VxdWVuY2UpOwog
ICAgIG1fY2hlY2tlciA9IHJlcXVlc3RlcjsKLSAgICBtX3NlcXVlbmNlID0gc2VxdWVuY2U7Cisg
ICAgbV9yZXF1ZXN0RGF0YS5tX3NlcXVlbmNlID0gc2VxdWVuY2U7CiB9CiAKIHZvaWQgU3BlbGxD
aGVja1JlcXVlc3Q6OnJlcXVlc3RlckRlc3Ryb3llZCgpCkBAIC0xNjAsOSArMTYzLDkgQEAgdm9p
ZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihQYXNzUmVmUHRyPFNwZWxsQ2hlY2tS
ZXF1ZXN0PiByZXF1ZXN0KQogICAgIGlmICghcmVxdWVzdCB8fCAhY2FuQ2hlY2tBc3luY2hyb25v
dXNseShyZXF1ZXN0LT5wYXJhZ3JhcGhSYW5nZSgpLmdldCgpKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQVNTRVJUKHJlcXVlc3QtPnNlcXVlbmNlKCkgPT0gdW5yZXF1ZXN0ZWRTZXF1ZW5jZSk7
CisgICAgQVNTRVJUKHJlcXVlc3QtPmRhdGEoKS5zZXF1ZW5jZSgpID09IHVucmVxdWVzdGVkVGV4
dENoZWNraW5nU2VxdWVuY2UpOwogICAgIGludCBzZXF1ZW5jZSA9ICsrbV9sYXN0UmVxdWVzdFNl
cXVlbmNlOwotICAgIGlmIChzZXF1ZW5jZSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKQorICAgIGlm
IChzZXF1ZW5jZSA9PSB1bnJlcXVlc3RlZFRleHRDaGVja2luZ1NlcXVlbmNlKQogICAgICAgICBz
ZXF1ZW5jZSA9ICsrbV9sYXN0UmVxdWVzdFNlcXVlbmNlOwogCiAgICAgcmVxdWVzdC0+c2V0Q2hl
Y2tlckFuZFNlcXVlbmNlKHRoaXMsIHNlcXVlbmNlKTsKQEAgLTIwMiw4ICsyMDUsOCBAQCB2b2lk
IFNwZWxsQ2hlY2tlcjo6ZW5xdWV1ZVJlcXVlc3QoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVz
dD4gcmVxdWVzdCkKIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNv
bnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewogICAgIEFTU0VSVCht
X3Byb2Nlc3NpbmdSZXF1ZXN0KTsKLSAgICBBU1NFUlQobV9wcm9jZXNzaW5nUmVxdWVzdC0+c2Vx
dWVuY2UoKSA9PSBzZXF1ZW5jZSk7Ci0gICAgaWYgKG1fcHJvY2Vzc2luZ1JlcXVlc3QtPnNlcXVl
bmNlKCkgIT0gc2VxdWVuY2UpIHsKKyAgICBBU1NFUlQobV9wcm9jZXNzaW5nUmVxdWVzdC0+ZGF0
YSgpLnNlcXVlbmNlKCkgPT0gc2VxdWVuY2UpOworICAgIGlmIChtX3Byb2Nlc3NpbmdSZXF1ZXN0
LT5kYXRhKCkuc2VxdWVuY2UoKSAhPSBzZXF1ZW5jZSkgewogICAgICAgICBtX3JlcXVlc3RRdWV1
ZS5jbGVhcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjIwLDExICsyMjMsMTIgQEAg
dm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRl
eHRDaGVja2luZ1Jlc3VsdD4mIHJlc3UKIAogdm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrU3Vj
Y2VlZChpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1
bHRzKQogewotICAgIGlmIChtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5zZXF1ZW5jZSgpID09IHNlcXVl
bmNlKSB7CisgICAgVGV4dENoZWNraW5nUmVxdWVzdERhdGEgcmVxdWVzdERhdGEgPSBtX3Byb2Nl
c3NpbmdSZXF1ZXN0LT5kYXRhKCk7CisgICAgaWYgKHJlcXVlc3REYXRhLnNlcXVlbmNlKCkgPT0g
c2VxdWVuY2UpIHsKICAgICAgICAgdW5zaWduZWQgbWFya2VycyA9IDA7Ci0gICAgICAgIGlmICht
X3Byb2Nlc3NpbmdSZXF1ZXN0LT5tYXNrKCkgJiBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCisg
ICAgICAgIGlmIChyZXF1ZXN0RGF0YS5tYXNrKCkgJiBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcp
CiAgICAgICAgICAgICBtYXJrZXJzIHw9IERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsKLSAgICAg
ICAgaWYgKG1fcHJvY2Vzc2luZ1JlcXVlc3QtPm1hc2soKSAmIFRleHRDaGVja2luZ1R5cGVHcmFt
bWFyKQorICAgICAgICBpZiAocmVxdWVzdERhdGEubWFzaygpICYgVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIpCiAgICAgICAgICAgICBtYXJrZXJzIHw9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOwog
ICAgICAgICBpZiAobWFya2VycykKICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPm1h
cmtlcnMoKS0+cmVtb3ZlTWFya2VycyhtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5jaGVja2luZ1Jhbmdl
KCkuZ2V0KCksIG1hcmtlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKaW5k
ZXggOTUzMzhiMC4uZjVhYWZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5o
CkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RlckRlc3Ryb3llZCgp
OwogICAgIGJvb2wgaXNTdGFydGVkKCkgY29uc3QgeyByZXR1cm4gbV9jaGVja2VyOyB9CiAKKyAg
ICB2aXJ0dWFsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiBkYXRhKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN1Y2NlZWQoY29uc3QgVmVjdG9yPFRleHRDaGVj
a2luZ1Jlc3VsdD4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKCkgT1ZF
UlJJREU7CiAKQEAgLTY3LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UmFuZ2U+IG1f
Y2hlY2tpbmdSYW5nZTsKICAgICBSZWZQdHI8UmFuZ2U+IG1fcGFyYWdyYXBoUmFuZ2U7CiAgICAg
UmVmUHRyPEVsZW1lbnQ+IG1fcm9vdEVkaXRhYmxlRWxlbWVudDsKKyAgICBUZXh0Q2hlY2tpbmdS
ZXF1ZXN0RGF0YSBtX3JlcXVlc3REYXRhOwogfTsKIAogY2xhc3MgU3BlbGxDaGVja2VyIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCmluZGV4IDM5N2RkNDYu
LjRjMzE1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENo
ZWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcu
aApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYgLy8gI2lmIFBM
QVRGT1JNKE1BQykgJiYgKFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDcwKQogCiBlbnVtIFRleHRDaGVja2luZ1R5cGUgeworICAgIFRleHRDaGVj
a2luZ1R5cGVOb25lICAgICAgICA9IDAsCiAgICAgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nICAg
ID0gMSA8PCAxLAogICAgIFRleHRDaGVja2luZ1R5cGVHcmFtbWFyICAgICA9IDEgPDwgMiwKICAg
ICBUZXh0Q2hlY2tpbmdUeXBlTGluayAgICAgICAgPSAxIDw8IDUsCkBAIC04NywzMSArODgsNDQg
QEAgc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdCB7CiAgICAgU3RyaW5nIHJlcGxhY2VtZW50Owog
fTsKIAotY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRD
aGVja2luZ1JlcXVlc3Q+IHsKK2NvbnN0IGludCB1bnJlcXVlc3RlZFRleHRDaGVja2luZ1NlcXVl
bmNlID0gLTE7CisKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhIHsKKyAgICBmcmllbmQg
Y2xhc3MgU3BlbGxDaGVja1JlcXVlc3Q7IC8vIEZvciBhY2Nlc3MgdG8gbV9zZXF1ZW5jZS4KIHB1
YmxpYzoKLSAgICBUZXh0Q2hlY2tpbmdSZXF1ZXN0KGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlw
ZSBwcm9jZXNzVHlwZSkKKyAgICBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSgpCisgICAgICAgIDog
bV9zZXF1ZW5jZSh1bnJlcXVlc3RlZFRleHRDaGVja2luZ1NlcXVlbmNlKQorICAgICAgICAsIG1f
bWFzayhUZXh0Q2hlY2tpbmdUeXBlTm9uZSkKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKFRleHRD
aGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCkKKyAgICB7IH0KKyAgICBUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YShpbnQgc2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlw
ZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCiAgICAgICAg
IDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKICAgICAgICAgLCBtX3RleHQodGV4dCkKICAgICAgICAg
LCBtX21hc2sobWFzaykKICAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQogICAg
IHsgfQogCi0gICAgdmlydHVhbCB+VGV4dENoZWNraW5nUmVxdWVzdCgpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRTdWNjZWVkKGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoKSA9IDA7Ci0KICAgICBpbnQgc2VxdWVuY2Uo
KSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9CiAgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7
IHJldHVybiBtX3RleHQ7IH0KICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXNrOyB9CiAgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5
cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NUeXBlOyB9CiAKLXByb3RlY3RlZDoKK3ByaXZh
dGU6CiAgICAgaW50IG1fc2VxdWVuY2U7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtX21hc2s7CiAgICAgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgbV9wcm9j
ZXNzVHlwZTsKIH07CiAKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxUZXh0Q2hlY2tpbmdSZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGV4dENo
ZWNraW5nUmVxdWVzdCgpIHsgfQorCisgICAgdmlydHVhbCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YSYgZGF0YSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZChj
b25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2FuY2VsKCkgPSAwOworfTsKKwogfQogCiAjZW5kaWYgLy8gVGV4dENoZWNraW5nX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDg1NTZhOGQuLmE1NTk3MzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTIxICBHcnpl
Z29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFs
bG93IHRvIHJldHJpZXZlIHRoZSByZXF1ZXN0IGRhdGEgZnJvbSBhYnN0cmFjdCBUZXh0Q2hlY2tp
bmdSZXF1ZXN0IHRvIGJlIGFjY2Vzc2libGUgZm9yIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
SGFqaW1lIE1vcnJpdGEuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5j
cHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICBFeHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgYXMgaXQg
aXMgdGhlIG1lbWJlciBvZiAnVGV4dENoZWNraW5nUmVxdWVzdCcuCisKIDIwMTMtMDItMjAgIE5p
bWEgR2hhbmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gQ2hlY2sgb2Zmc2V0IGZvciBpbml0aWFsaXplZCB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKaW5k
ZXggNDY3YjA0YS4uNWU1MDhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCkBAIC01OTcsMTQgKzU5NywxNCBA
QCB2b2lkIElucHV0SGFuZGxlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZQogewogICAgIG1fcmVxdWVzdCA9IHRleHRDaGVja2lu
Z1JlcXVlc3Q7CiAKLSAgICBJbnB1dExvZyhQbGF0Zm9ybTo6TG9nTGV2ZWxJbmZvLCAiSW5wdXRI
YW5kbGVyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyAnJXMnIiwgbV9yZXF1ZXN0LT50ZXh0KCku
bGF0aW4xKCkuZGF0YSgpKTsKKyAgICBJbnB1dExvZyhQbGF0Zm9ybTo6TG9nTGV2ZWxJbmZvLCAi
SW5wdXRIYW5kbGVyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyAnJXMnIiwgbV9yZXF1ZXN0LT5k
YXRhKCkudGV4dCgpLmxhdGluMSgpLmRhdGEoKSk7CiAKICAgICBpZiAoIW1fcmVxdWVzdCkgewog
ICAgICAgICBTcGVsbGluZ0xvZyhQbGF0Zm9ybTo6TG9nTGV2ZWxXYXJuLCAiSW5wdXRIYW5kbGVy
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyBkaWQgbm90IHJlY2VpdmUgYSB2YWxpZCByZXF1ZXN0
LiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdW5zaWduZWQgcmVxdWVzdExlbmd0
aCA9IG1fcmVxdWVzdC0+dGV4dCgpLmxlbmd0aCgpOworICAgIHVuc2lnbmVkIHJlcXVlc3RMZW5n
dGggPSBtX3JlcXVlc3QtPmRhdGEoKS50ZXh0KCkubGVuZ3RoKCk7CiAKICAgICAvLyBDaGVjayBp
ZiB0aGUgZmllbGQgc2hvdWxkIGJlIHNwZWxsY2hlY2tlZC4KICAgICBpZiAoIWlzQWN0aXZlVGV4
dEVkaXQoKSB8fCAhc2hvdWxkU3BlbGxDaGVja0VsZW1lbnQobV9jdXJyZW50Rm9jdXNFbGVtZW50
LmdldCgpKSB8fCByZXF1ZXN0TGVuZ3RoIDwgMikgewpAQCAtNjM5LDcgKzYzOSw3IEBAIHZvaWQg
SW5wdXRIYW5kbGVyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlCiAgICAgfQogCiAgICAgaW50IHBhcmFncmFwaExlbmd0aCA9IDA7
Ci0gICAgaWYgKCFjb252ZXJ0U3RyaW5nVG9XY2hhcihtX3JlcXVlc3QtPnRleHQoKSwgY2hlY2tp
bmdTdHJpbmcsIHJlcXVlc3RMZW5ndGggKyAxLCAmcGFyYWdyYXBoTGVuZ3RoKSkgeworICAgIGlm
ICghY29udmVydFN0cmluZ1RvV2NoYXIobV9yZXF1ZXN0LT5kYXRhKCkudGV4dCgpLCBjaGVja2lu
Z1N0cmluZywgcmVxdWVzdExlbmd0aCArIDEsICZwYXJhZ3JhcGhMZW5ndGgpKSB7CiAgICAgICAg
IFBsYXRmb3JtOjpsb2dBbHdheXMoUGxhdGZvcm06OkxvZ0xldmVsQ3JpdGljYWwsICJJbnB1dEhh
bmRsZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nIEZhaWxlZCB0byBjb252ZXJ0IFN0cmluZyB0
byB3Y2hhciB0eXBlLiIpOwogICAgICAgICBmcmVlKGNoZWNraW5nU3RyaW5nKTsKICAgICAgICAg
bV9yZXF1ZXN0LT5kaWRDYW5jZWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDk3
MmU1OS4uODg1ZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMy0wMi0yMSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBBbGxvdyB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBkYXRhIGZyb20g
YWJzdHJhY3QgVGV4dENoZWNraW5nUmVxdWVzdCB0byBiZSBhY2Nlc3NpYmxlIGZvciBXSzIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDIwOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JyaXRhLgorCisgICAgICAgICogc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIEV4dHJhY3QgdGhlIHJlcXVlc3QgZGF0YSBh
cyBpdCBpcyB0aGUgbWVtYmVyIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0Jy4KKwogMjAxMy0wMi0y
MSAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgY29tbWFuZCBmb3Igc2VsZWN0aW5nIGZpbGVzIGZvciBmaWxlIGlucHV0IGVsZW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAK
aW5kZXggYzNhMGY5MS4uMGYzMjU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTc0Niw3ICs3NDYsNyBAQCB2b2lkIEVkaXRvckNs
aWVudEltcGw6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxl
bmd0aCwKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+IHJlcXVlc3QpCiB7CiAg
ICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpKSB7Ci0gICAgICAgIFN0cmluZyB0
ZXh0ID0gcmVxdWVzdC0+dGV4dCgpOworICAgICAgICBTdHJpbmcgdGV4dCA9IHJlcXVlc3QtPmRh
dGEoKS50ZXh0KCk7CiAgICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT5yZXF1
ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBs
KHJlcXVlc3QpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjI1OWMzNy4uYTIxMGY5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTIxICBHcnplZ29y
eiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFsbG93
IHRvIHJldHJpZXZlIHRoZSByZXF1ZXN0IGRhdGEgZnJvbSBhYnN0cmFjdCBUZXh0Q2hlY2tpbmdS
ZXF1ZXN0IHRvIGJlIGFjY2Vzc2libGUgZm9yIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSGFq
aW1lIE1vcnJpdGEuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmRpZENoZWNrU3VjY2VlZCk6CisgICAgICAg
IChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgRXh0
cmFjdCB0aGUgcmVxdWVzdCBkYXRhIGFzIGl0IGlzIHRoZSBtZW1iZXIgb2YgJ1RleHRDaGVja2lu
Z1JlcXVlc3QnLgorCiAyMDEzLTAyLTIwICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgRW5hYmxlIENBTlZBU19QQVRIIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAyNmUzYTQyLi4z
Nzk4MjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCkBAIC05NzIsOCArOTcyLDggQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpZENo
ZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIE5TQXJyYXkqIHJlc3VsdHMpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRChzZXF1ZW5jZSwgc2VxdWVuY2UgPT0gbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5zZXF1
ZW5jZSgpKTsKLSAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRpZFN1Y2NlZWQoY29yZShyZXN1
bHRzLCBtX3RleHRDaGVja2luZ1JlcXVlc3QtPm1hc2soKSkpOworICAgIEFTU0VSVF9VTlVTRUQo
c2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLnNlcXVl
bmNlKCkpOworICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGlkU3VjY2VlZChjb3JlKHJlc3Vs
dHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLm1hc2soKSkpOwogICAgIG1fdGV4dENo
ZWNraW5nUmVxdWVzdC5jbGVhcigpOwogfQogCkBAIC05ODMsMTAgKzk4MywxMCBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdSZQogICAgIEFTU0VSVCghbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0KTsKICAg
ICBtX3RleHRDaGVja2luZ1JlcXVlc3QgPSByZXF1ZXN0OwogCi0gICAgaW50IHNlcXVlbmNlID0g
bV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5zZXF1ZW5jZSgpOwotICAgIE5TUmFuZ2UgcmFuZ2UgPSBO
U01ha2VSYW5nZSgwLCBtX3RleHRDaGVja2luZ1JlcXVlc3QtPnRleHQoKS5sZW5ndGgoKSk7Cisg
ICAgaW50IHNlcXVlbmNlID0gbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2Uo
KTsKKyAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgbV90ZXh0Q2hlY2tpbmdSZXF1
ZXN0LT5kYXRhKCkudGV4dCgpLmxlbmd0aCgpKTsKICAgICBOU1J1bkxvb3AqIGN1cnJlbnRMb29w
ID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFy
ZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOm1fdGV4dENoZWNraW5nUmVx
dWVzdC0+dGV4dCgpIHJhbmdlOnJhbmdlIHR5cGVzOk5TVGV4dENoZWNraW5nQWxsU3lzdGVtVHlw
ZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6MAorICAgIFtbTlNTcGVsbENoZWNr
ZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzptX3RleHRDaGVj
a2luZ1JlcXVlc3QtPmRhdGEoKS50ZXh0KCkgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tp
bmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNJbnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7
CiAgICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJm
b3JtKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRp
dG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhDbGllbnQ6dGhpcyBzZXF1ZW5j
ZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>