<?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>45441</bug_id>
          
          <creation_ts>2010-09-08 23:29:02 -0700</creation_ts>
          <short_desc>[Chromium] Implement textInputController.hasSpellingMarker() for Chromium</short_desc>
          <delta_ts>2010-09-12 21:21:19 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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="Hironori Bono">hbono</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>eric</cc>
    
    <cc>morrita</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>276326</commentid>
    <comment_count>0</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-08 23:29:02 -0700</bug_when>
    <thetext>Greetings,

As written in Bug 41832 &lt;https://bugs.webkit.org/show_bug.cgi?id=41832&gt;, I have added textInputController.hasSpellingMarker() so we can write text-based tests for spellcheckers. Unfortunately, this implementation is only for Mac DumpRenderTree and we need to implemented this function for Chromium DumpRenderTree.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276935</commentid>
    <comment_count>1</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-09 18:53:06 -0700</bug_when>
    <thetext>OK, I&apos;ll take this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277025</commentid>
    <comment_count>2</comment_count>
      <attachid>67154</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-09 22:26:29 -0700</bug_when>
    <thetext>Created attachment 67154
A draft implementation (just for your information)

Greetings,

Thank you for taking this issue.
I would like to post my quick implementation. I wish it helps.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277026</commentid>
    <comment_count>3</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-09 22:32:34 -0700</bug_when>
    <thetext>Greetings,

By the way, Chromium DumpRenderTree checks the spellings of text only on Mac as shown in the following snippet copied from &lt;http://svn.webkit.org/repository/webkit/trunk/WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp&gt;.

  void WebViewHost::spellCheck(const WebString&amp; text, int&amp; misspelledOffset, int&amp; misspelledLength)
  {
      // Check the spelling of the given text.
  #if OS(MAC_OS_X)
      // FIXME: rebaseline layout-test results of Windows and Linux so we
      // can enable this mock spellchecker on them.
      m_spellcheck.spellCheckWord(text, &amp;misspelledOffset, &amp;misspelledLength);
  #endif
  }

Should we add another API to DumpRenderTree so we can enable/disable spell-checking?

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277064</commentid>
    <comment_count>4</comment_count>
      <attachid>67162</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-10 00:49:59 -0700</bug_when>
    <thetext>Created attachment 67162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277272</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 10:07:52 -0700</bug_when>
    <thetext>Moving the code into Editor.cpp sounds fine to me, but just to make sure, Eric, is it OK for us to have this method which is currently only used in testing in WebCore (rather than WebKit)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277940</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-12 18:26:03 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Moving the code into Editor.cpp sounds fine to me, but just to make sure, Eric, is it OK for us to have this method which is currently only used in testing in WebCore (rather than WebKit)?

Hi, I&apos;ll land this soon seeing no objection here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277941</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-12 18:31:16 -0700</bug_when>
    <thetext>Looks fine to me.  We have a bunch of code in WebCore which is only used by DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277958</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-12 21:21:19 -0700</bug_when>
    <thetext>Committed r67362: &lt;http://trac.webkit.org/changeset/67362&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67154</attachid>
            <date>2010-09-09 22:26:29 -0700</date>
            <delta_ts>2010-09-10 00:49:54 -0700</delta_ts>
            <desc>A draft implementation (just for your information)</desc>
            <filename>hasspellingmarker-chrome.txt</filename>
            <type>text/plain</type>
            <size>5433</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDY2OTUwKQorKysgV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MzMsNiAr
NTMzLDExIEBAIHB1YmxpYzoKICAgICAvLyBlbXB0eSAoKDAsMCksICgwLDApKS4KICAgICB2aXJ0
dWFsIFdlYlJlY3Qgc2VsZWN0aW9uQm91bmRzUmVjdCgpIGNvbnN0ID0gMDsKIAorICAgIC8vIFJl
dHVybnMgd2hldGhlciB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUgaGFz
IHNwZWxsaW5nCisgICAgLy8gbWFya2Vycy4gKFRoaXMgZnVuY3Rpb24gaXMgb25seSBmb3IgbGF5
b3V0IHRlc3RzIGFuZCBzaG91bGQgbm90IGJlIHVzZWQKKyAgICAvLyBmb3IgYW55IG90aGVyIHB1
cnBvc2VzLikKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU3BlbGxpbmdNYXJrZXIoaW50IGZyb20sIGlu
dCBsZW5ndGgpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAgIH5XZWJGcmFtZSgpIHsgfQog
fTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDY2OTUw
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzE4LDYgKzE3MTgsMjcgQEAgV2ViUmVjdCBXZWJGcmFtZUltcGw6OnNlbGVjdGlvbkJv
dW5kc1JlYwogICAgIHJldHVybiBXZWJSZWN0KCk7CiB9CiAKK2Jvb2wgV2ViRnJhbWVJbXBsOjpo
YXNTcGVsbGluZ01hcmtlcihpbnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3QKK3sKKyAgICBjb25z
dCBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUoKTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZSogbm9kZSA9IHNwZWxsaW5nTm9kZShjb3JlRnJh
bWUpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdW5zaWdu
ZWQgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihmcm9tKTsKKyAg
ICB1bnNpZ25lZCBpbnQgZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihmcm9t
ICsgbGVuZ3RoKTsKKyAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnMgPSBjb3JlRnJh
bWUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvck5vZGUobm9kZSk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0
IERvY3VtZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNbaV07CisgICAgICAgIGlmIChtYXJrZXIu
c3RhcnRPZmZzZXQgPD0gc3RhcnRPZmZzZXQgJiYgZW5kT2Zmc2V0IDw9IG1hcmtlci5lbmRPZmZz
ZXQgJiYgbWFya2VyLnR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogLy8gV2ViRnJh
bWVJbXBsIHB1YmxpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogUGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IFdlYkZyYW1lSW1wbDo6
Y3JlYXRlKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQpCkBAIC0yMjA1LDQgKzIyMjYsMTcgQEAgdm9p
ZCBXZWJGcmFtZUltcGw6OmxvYWRKYXZhU2NyaXB0VVJMKGNvbgogICAgICAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+d3JpdGVyKCktPnJlcGxhY2VEb2N1bWVudChzY3JpcHRSZXN1bHQpOwogfQogCitO
b2RlKiBXZWJGcmFtZUltcGw6OnNwZWxsaW5nTm9kZShjb25zdCBGcmFtZSogY29yZUZyYW1lKSBj
b25zdAoreworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5m
b2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUgfHwgIWZvY3VzZWROb2RlLT5yZW5k
ZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0
KiByZW5kZXJlciA9IGZvY3VzZWROb2RlLT5yZW5kZXJlcigpOyByZW5kZXJlcjsgcmVuZGVyZXIg
PSByZW5kZXJlci0+Y2hpbGRBdCgwKSkgeworICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgp
KQorICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5ub2RlKCk7CisgICAgfQorICAgIHJldHVy
biAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuaAkocmV2aXNpb24gNjY5NTApCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNiArMTgxLDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwYWdlV2lkdGhJblBp
eGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFn
ZUhlaWdodEluUGl4ZWxzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlJlY3Qgc2VsZWN0aW9uQm91
bmRzUmVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBoYXNTcGVsbGluZ01hcmtlcihpbnQg
ZnJvbSwgaW50IGxlbmd0aCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFt
ZUltcGw+IGNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xpZW50KTsKICAgICB+V2ViRnJhbWVJbXBs
KCk7CkBAIC0zMDYsNiArMzA3LDEyIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGxvYWRKYXZhU2Ny
aXB0VVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKIAorICAgIC8vIFJldHVybnMgdGhlIG5vZGUg
dXNlZCBieSBzcGVsbGNoZWNrZXJzLiBGb3IgPHRleHRhcmVhPiBlbGVtZW50cywKKyAgICAvLyBz
cGVsbGNoZWNrZXJzIGFkZCBzcGVsbGluZyBtYXJrZXJzIHRvIHRoZWlyIHNoYWRvdyBub2Rlcy4g
VGhpcyBmdW5jdGlvbgorICAgIC8vIHRyYXZlcnNlcyB0aGUgcmVuZGVyZXIgdHJlZSB0byBkaXJl
Y3RseSByZXRyaWV2ZSB0aGUgc2hhZG93IG5vZGVzIGZyb20KKyAgICAvLyB0aGUgZm9jdXNlZCBu
b2RlLgorICAgIFdlYkNvcmU6Ok5vZGUqIHNwZWxsaW5nTm9kZShjb25zdCBXZWJDb3JlOjpGcmFt
ZSogY29yZUZyYW1lKSBjb25zdDsKKwogICAgIEZyYW1lTG9hZGVyQ2xpZW50SW1wbCBtX2ZyYW1l
TG9hZGVyQ2xpZW50OwogCiAgICAgV2ViRnJhbWVDbGllbnQqIG1fY2xpZW50OwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElu
cHV0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDY2OTUwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY1LDYgKzY1LDcgQEAgVGV4dElucHV0Q29udHJvbGxlcjo6VGV4dElucHV0Q29udHJvbGxl
cgogICAgIGJpbmRNZXRob2QoImNoYXJhY3RlckluZGV4Rm9yUG9pbnQiLCAmVGV4dElucHV0Q29u
dHJvbGxlcjo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludCk7CiAgICAgYmluZE1ldGhvZCgidmFsaWRB
dHRyaWJ1dGVzRm9yTWFya2VkVGV4dCIsICZUZXh0SW5wdXRDb250cm9sbGVyOjp2YWxpZEF0dHJp
YnV0ZXNGb3JNYXJrZWRUZXh0KTsKICAgICBiaW5kTWV0aG9kKCJtYWtlQXR0cmlidXRlZFN0cmlu
ZyIsICZUZXh0SW5wdXRDb250cm9sbGVyOjptYWtlQXR0cmlidXRlZFN0cmluZyk7CisgICAgYmlu
ZE1ldGhvZCgiaGFzU3BlbGxpbmdNYXJrZXIiLCAmVGV4dElucHV0Q29udHJvbGxlcjo6aGFzU3Bl
bGxpbmdNYXJrZXIpOwogfQogCiBXZWJGcmFtZSogVGV4dElucHV0Q29udHJvbGxlcjo6Z2V0TWFp
bkZyYW1lKCkKQEAgLTIxNCwzICsyMTUsMTUgQEAgdm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjpt
YWtlQXR0cmlidXRlZAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KICAgICByZXN1bHQt
PnNldE51bGwoKTsKIH0KKwordm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjpoYXNTcGVsbGluZ01h
cmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3MsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sK
KyAgICByZXN1bHQtPnNldChmYWxzZSk7CisKKyAgICBXZWJGcmFtZSogbWFpbkZyYW1lID0gZ2V0
TWFpbkZyYW1lKCk7CisgICAgaWYgKCFtYWluRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChhcmdzLnNpemUoKSA+PSAyICYmIGFyZ3NbMF0uaXNJbnQzMigpICYmIGFyZ3NbMV0uaXNJ
bnQzMigpKQorICAgICAgICByZXN1bHQtPnNldChtYWluRnJhbWUtPmhhc1NwZWxsaW5nTWFya2Vy
KGFyZ3NbMF0udG9JbnQzMigpLCBhcmdzWzFdLnRvSW50MzIoKSkpOworfQpJbmRleDogV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1RleHRJbnB1dENv
bnRyb2xsZXIuaAkocmV2aXNpb24gNjY5NTApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYg
KzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCB2YWxpZEF0dHJpYnV0ZXNG
b3JNYXJrZWRUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2
b2lkIG1ha2VBdHRyaWJ1dGVkU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKKyAgICB2b2lkIGhhc1NwZWxsaW5nTWFya2VyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAogcHJpdmF0ZToKICAgICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHNoZWxs
J3MgbWFpbiBXZWJGcmFtZS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67162</attachid>
            <date>2010-09-10 00:49:59 -0700</date>
            <delta_ts>2010-09-10 10:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45441-20100910164957.patch</filename>
            <type>text/plain</type>
            <size>12638</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NmQxOWRlMGJiZDFjOGJmM2M0MDczMmYwMzc1ODY4YjAyYWQwNjliLi5hZTFlNjgy
Njg5OTczZGM0Mjk2NjhhNWE0OWZmMjkxMDVjMzQ0M2E4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDktMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBJbXBs
ZW1lbnQgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcigpIGZvciBDaHJvbWl1
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU0NDEK
KyAgICAgICAgCisgICAgICAgIEFkZCBhbiBub3RlIGZvciBBUEkgcmVhZGluZXNzLgorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEwLTA5
LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKaW5kZXggZTdjYjJiMTU5MzQwOWYxYzZjYmU0ODAwNjcwNzZjYzQzZDZiNWI5Mi4u
YjVhZGVmYzMzZjgyNTI1NzY1ZGJmYmM5NjkxNWRmZmM1NTA4NjAwOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjcz
NSw2ICsyNzM1LDcgQEAgQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVy
UmFkaXVzRG91YmxlMDguaHRtbCA9IElNQUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3Qv
Ym9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwOS5odG1sID0gSU1BR0UKIAogLy8gTmVlZCB0byBp
bXBsZW1lbnQgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcnMoKS4KKy8vIE5v
dGUgdGhhdCBoYXNTcGVsbGluZ01hcmtlcnMoKSBpcyBhdmFpbGFibGUgZm9yIERSVDogaHR0cDov
L3dlYmtpdC5vcmcvYi80NTQ0MQogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctdGV4dGFyZWEuaHRtbCA9IEZBSUwKIEJVR1dLNDE4MzIgOiBlZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sID0gRkFJTAogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE5NGZmOTA4MTZlNmZiYjllNmYw
ZjVlMGQwZGQxNzlkNjMwYzk2OWMuLjBmNDI4ZWNmNDRhOTk5YjI3YWMxNzljZjBiNzYxZDdkNjNk
ZDEwYzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDktMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0Nocm9taXVtXSBJbXBsZW1lbnQgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGlu
Z01hcmtlcigpIGZvciBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDU0NDEKKyAgICAgICAgCisgICAgICAgIEFkZGVkIGFuICBBUEkgZm9y
IHRlc3RpbmcgbWFya2VyIHN0YXRlLiAKKyAgICAgICAgV2UgbG9jYXRlIHRoaXMgaGVyZSBpbnN0
ZWFkIG9mIERSVCBmb3Igc2hhcmluZyB0aGUgbG9naWMgYmV0d2VlbgorICAgICAgICBtdWx0aXBs
ZSBwb3J0cy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0aW9uU3RhcnRIYXNT
cGVsbGluZ01hcmtlckZvcik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKwogMjAxMC0w
OS0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYTJkNWEzOWI5ODcwMDJiNDA5NGE1YzRlYzNiNmFi
OTI1OWU5Mzk5YS4uMDJlOWIwN2IwNjFiZTYyOTUxZDMwZWVlNDU4MjYyNTFjZTJlZjkwZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC04NDUsNiArODQ1LDcgQEAgX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlZXFFUktOU18xOVJlc291cmNlUmVxdWVzdEJhc2VFUzJfCiBfX1pO
SzNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3Ry
aW5nMTRjcmVhdGVDRlN0cmluZ0V2CitfX1pOSzdXZWJDb3JlNkVkaXRvcjM0c2VsZWN0aW9uU3Rh
cnRIYXNTcGVsbGluZ01hcmtlckZvckVpaQogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9O
U1BvaW50RXYKIF9fWk5LN1dlYkNvcmUxMFBsdWdpbkRhdGExNnN1cHBvcnRzTWltZVR5cGVFUktO
M1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTBSZW5kZXJUZXh0MTZsaW5lc0JvdW5kaW5nQm94
RXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggYzUxNWJmYzg3MmUyMDFmMjUyYTcyNjdlYmFiZTE5NTc4ZGQ2
ZTM1Yy4uYWM4NjA3NzRiM2JjZWExMDlhMzY1NWNmMzBlOTEwMmRiNTY4MGYwOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTM1OTEsNCArMzU5MSwyNCBAQCB2b2lkIEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdl
ZFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGJvbwogICAg
IHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKIH0KIAorYm9vbCBFZGl0
b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IoaW50IGZyb20sIGludCBsZW5n
dGgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFy
dCgpLm5vZGUoKTsKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBBU1NFUlQobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpOwor
CisgICAgdW5zaWduZWQgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50
Pihmcm9tKTsKKyAgICB1bnNpZ25lZCBpbnQgZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgaW50Pihmcm9tICsgbGVuZ3RoKTsKKyAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtl
cnMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3JOb2RlKG5vZGUp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkgeworICAg
ICAgICBEb2N1bWVudE1hcmtlciBtYXJrZXIgPSBtYXJrZXJzW2ldOworICAgICAgICBpZiAobWFy
a2VyLnN0YXJ0T2Zmc2V0IDw9IHN0YXJ0T2Zmc2V0ICYmIGVuZE9mZnNldCA8PSBtYXJrZXIuZW5k
T2Zmc2V0ICYmIG1hcmtlci50eXBlID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMmMwNmNlYWZlZDRjMmVhOGI0ZTBh
OTcxNWE4N2Q0ZGE5M2MxZDBjOS4uNjc4ZWM1OTBjN2YwYjkxY2E5NzMzMjJjMGI4MjU5OGM1MzEw
MjkyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaApAQCAtMzYwLDYgKzM2MCw4IEBAIHB1YmxpYzoKICAgICBOU1dyaXRp
bmdEaXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0
OwogI2VuZGlmCiAKKyAgICBib29sIHNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3Io
aW50IGZyb20sIGludCBsZW5ndGgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEZyYW1lKiBtX2Zy
YW1lOwogICAgIE93blB0cjxEZWxldGVCdXR0b25Db250cm9sbGVyPiBtX2RlbGV0ZUJ1dHRvbkNv
bnRyb2xsZXI7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlOWY2MzU0YjhkOThhNWRiZDU3ZDkyZjYwNzVlMmFj
NjA0NjBmOGY2Li5hZGMwNDYyNzMzYzg1MzhiYTFiYjYyNGQxOTJiZTBhOTZiODUxMDFhIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0xMCAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1Nw
ZWxsaW5nTWFya2VyKCkgZm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTQ0MQorCisgICAgICAgIEV4cG9ydGVkIEZyYW1lOjpzZWxl
Y3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKCkgZm9yIERSVCB1c2UuCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFy
a2VyRm9yKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisKIDIwMTAtMDktMDggIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKaW5kZXggZDhlY2E2YWJlYzcwNGI5MTE1
MDZhNjhhNDM2Njk4YmQxM2ZhYjIyMS4uNjcyNWY1ODBkYTdiN2UxOGE0MTRiMTc4ZjYxN2M3MGFk
OGY4MWMyNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtNTMzLDYgKzUzMyw5IEBA
IHB1YmxpYzoKICAgICAvLyBlbXB0eSAoKDAsMCksICgwLDApKS4KICAgICB2aXJ0dWFsIFdlYlJl
Y3Qgc2VsZWN0aW9uQm91bmRzUmVjdCgpIGNvbnN0ID0gMDsKIAorICAgIC8vIE9ubHkgZm9yIHRl
c3RpbmcgcHVycG9zZTogCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHNlbGVjdGlvbi5hbmNob3JO
b2RlIGhhcyBhIG1hcmtlciBvbiByYW5nZSBmcm9tIHxmcm9tfCB3aXRoIHxsZW5ndGh8LgorICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGludCBmcm9t
LCBpbnQgbGVuZ3RoKSBjb25zdCA9IDA7CiBwcm90ZWN0ZWQ6CiAgICAgfldlYkZyYW1lKCkgeyB9
CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IGEyZDZhNDZjYWQ3MDEw
NTNiNTQ4ZWVhYzJmNjk2ZWYxYzI1NTY1YWMuLjI3ZjA3MWE2NTQ4ODY5YWMzMTc3NmQyODBlMWMy
ZjhhMjU4NWRlZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE3MTgs
NiArMTcxOCwxMyBAQCBXZWJSZWN0IFdlYkZyYW1lSW1wbDo6c2VsZWN0aW9uQm91bmRzUmVjdCgp
IGNvbnN0CiAgICAgcmV0dXJuIFdlYlJlY3QoKTsKIH0KIAorYm9vbCBXZWJGcmFtZUltcGw6OnNl
bGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IoaW50IGZyb20sIGludCBsZW5ndGgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIG1fZnJhbWUtPmVkaXRvcigpLT5zZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9y
KGZyb20sIGxlbmd0aCk7Cit9CisKIC8vIFdlYkZyYW1lSW1wbCBwdWJsaWMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBhc3NSZWZQ
dHI8V2ViRnJhbWVJbXBsPiBXZWJGcmFtZUltcGw6OmNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xp
ZW50KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggMTQyMTdmYWU1MGI1YmJiYWE4
ODZkOTZjNTQ0NWIzMjY0ZThiMWY0NS4uMjVlNzAwNGEyN2VlMTNmOTU1NmZhZmMwMThkMWZkMWYx
N2RkNjM4ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0xODIsNiArMTgyLDgg
QEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9h
dCBwYWdlSGVpZ2h0SW5QaXhlbHMpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViUmVjdCBzZWxlY3Rp
b25Cb3VuZHNSZWN0KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uU3RhcnRI
YXNTcGVsbGluZ01hcmtlckZvcihpbnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3Q7CisKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZUltcGw+IGNyZWF0ZShXZWJGcmFtZUNsaWVudCogY2xp
ZW50KTsKICAgICB+V2ViRnJhbWVJbXBsKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZGY1Y2E0NmM5NThhYjg3NDAzYTE2
N2ZkNDc1MjFjOTdmYTM5ZDRjYi4uOTcxM2M1MzM4Yjc1MDRmNmRkNWVhNzhkOTQxNjMzZGY2MGRm
ZDQ0YiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0xMCAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1Nw
ZWxsaW5nTWFya2VyKCkgZm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTQ0MQorCisgICAgICAgIE1vdmVkIHRoZSBhY3R1YWwgbG9n
aWMgb2YgaGFzU3BlbGxpbmdNYXJrZXIgaW50byBXZWJDb3JlIHRvIHNoYXJlCisgICAgICAgIGl0
IHdpdGggb3RoZXIgcG9ydHMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAg
ICAgICAoLVtXZWJGcmFtZSBoYXNTcGVsbGluZ01hcmtlcjpsZW5ndGg6XSk6CisKIDIwMTAtMDkt
MDkgIEpvaG4gVGhlcnJlbGwgIDxqdGhlcnJlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggOGQ1
NjRhM2VmMjlhMmZjZGQyOTU3MGM5NTJhNTIwMjgwOTkyMGE5OS4uOWNiMjg4YjgyNTZiNGQ0NTk0
Njk4ZjA5ZGU1MWE2ZTkxYmJlYmMzMiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTM2Niwz
OCArMTM2NiwxMiBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9j
dW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICByZXR1cm4gY29yZUZyYW1lLT5sYXllclRyZWVBc1Rl
eHQoKTsKIH0KIAotc3RhdGljIE5vZGUqIHNwZWxsaW5nTm9kZShGcmFtZSogY29yZUZyYW1lKQot
ewotICAgIE5vZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQo
KS5ub2RlKCk7Ci0gICAgaWYgKCFmb2N1c2VkTm9kZSB8fCAhZm9jdXNlZE5vZGUtPnJlbmRlcmVy
KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCk7IHJlbmRlcmVyOyByZW5kZXJlciA9IHJl
bmRlcmVyLT5jaGlsZEF0KDApKSB7Ci0gICAgICAgIGlmIChyZW5kZXJlci0+aXNUZXh0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPm5vZGUoKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KIC0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClmcm9tIGxlbmd0aDooaW50KWxl
bmd0aAogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAg
IGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gTk87Ci0KLSAgICBOb2RlKiBub2RlID0g
c3BlbGxpbmdOb2RlKGNvcmVGcmFtZSk7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4g
Tk87Ci0KLSAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBpbnQ+KGZyb20pOwotICAgIHVuc2lnbmVkIGludCBlbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOwotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4g
bWFya2VycyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yTm9k
ZShub2RlKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlcnMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgRG9jdW1lbnRNYXJrZXIgbWFya2VyID0gbWFya2Vyc1tpXTsKLSAgICAgICAg
aWYgKG1hcmtlci5zdGFydE9mZnNldCA8PSBzdGFydE9mZnNldCAmJiBlbmRPZmZzZXQgPD0gbWFy
a2VyLmVuZE9mZnNldCAmJiBtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcp
Ci0gICAgICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLSAgICByZXR1cm4gTk87CisgICAgcmV0
dXJuIGNvcmVGcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJG
b3IoZnJvbSwgbGVuZ3RoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFhNTI1YjViNGE2MWM1NTdjZWI2
ZWMwNjlkNWVmMjlkMmJmNjQ1YjkuLjUxOTY0ODkwNTJhZTc5MmRjMDA5NmEzYTNhYWY3ZGNlOTM0
ZjVlNWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0xMCAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCB0ZXh0SW5wdXRDb250cm9sbGVyLmhh
c1NwZWxsaW5nTWFya2VyKCkgZm9yIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQ0MQorCisgICAgICAgIEFkZGVkIFRleHRJbnB1dENv
bnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKCkuCisgICAgICAgIAorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoVGV4
dElucHV0Q29udHJvbGxlcjo6VGV4dElucHV0Q29udHJvbGxlcik6CisgICAgICAgIChUZXh0SW5w
dXRDb250cm9sbGVyOjpoYXNTcGVsbGluZ01hcmtlcik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5oOgorCiAyMDEwLTA5LTA5ICBIYW5zIFdl
bm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15
IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGV4dElucHV0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAppbmRleCA2M2M0NzE5NWRjMWI5M2I0N2E2MzZh
MzUyOWExYzk4NzZhOWE2MDA1Li43OWQxYWJlN2E5M2JkNDE0MzliMGNhNzAwM2YyYjk4ZWRmYmVl
YjEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0
SW5wdXRDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcApAQCAtNjUsNiArNjUsNyBAQCBUZXh0SW5wdXRD
b250cm9sbGVyOjpUZXh0SW5wdXRDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmlu
ZE1ldGhvZCgiY2hhcmFjdGVySW5kZXhGb3JQb2ludCIsICZUZXh0SW5wdXRDb250cm9sbGVyOjpj
aGFyYWN0ZXJJbmRleEZvclBvaW50KTsKICAgICBiaW5kTWV0aG9kKCJ2YWxpZEF0dHJpYnV0ZXNG
b3JNYXJrZWRUZXh0IiwgJlRleHRJbnB1dENvbnRyb2xsZXI6OnZhbGlkQXR0cmlidXRlc0Zvck1h
cmtlZFRleHQpOwogICAgIGJpbmRNZXRob2QoIm1ha2VBdHRyaWJ1dGVkU3RyaW5nIiwgJlRleHRJ
bnB1dENvbnRyb2xsZXI6Om1ha2VBdHRyaWJ1dGVkU3RyaW5nKTsKKyAgICBiaW5kTWV0aG9kKCJo
YXNTcGVsbGluZ01hcmtlciIsICZUZXh0SW5wdXRDb250cm9sbGVyOjpoYXNTcGVsbGluZ01hcmtl
cik7CiB9CiAKIFdlYkZyYW1lKiBUZXh0SW5wdXRDb250cm9sbGVyOjpnZXRNYWluRnJhbWUoKQpA
QCAtMjE0LDMgKzIxNSwxNCBAQCB2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6Om1ha2VBdHRyaWJ1
dGVkU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbgogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGhpcy4KICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KKwordm9pZCBUZXh0
SW5wdXRDb250cm9sbGVyOjpoYXNTcGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpIDwgMiB8fCAhYXJndW1lbnRzWzBdLmlzTnVtYmVyKCkgfHwgIWFyZ3VtZW50c1sxXS5pc051
bWJlcigpKQorICAgICAgICByZXR1cm47CisgICAgV2ViRnJhbWUqIG1haW5GcmFtZSA9IGdldE1h
aW5GcmFtZSgpOworICAgIGlmICghbWFpbkZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgLy8g
UmV0dXJucyBhcyBhIG51bWJlciBmb3IgYSBjb21wYXRpYmlsaXR5IHJlYXNvbi4KKyAgICByZXN1
bHQtPnNldChtYWluRnJhbWUtPnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IoYXJn
dW1lbnRzWzBdLnRvSW50MzIoKSwgYXJndW1lbnRzWzFdLnRvSW50MzIoKSkgPyAxIDogMCk7Cit9
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5w
dXRDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0
SW5wdXRDb250cm9sbGVyLmgKaW5kZXggOTg5NmJlNTY2NWMyMmVlOGZmMTRhOTkwOWY0NjkwNjJk
NjY5ZTFjYy4uZGRhY2VmZTZlZmVjNTIwNTdjYzE1MjJiZjg3MjE2YjNiZDIzY2NjNCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJv
bGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1RleHRJbnB1
dENvbnRyb2xsZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjaGFyYWN0
ZXJJbmRleEZvclBvaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAg
ICB2b2lkIHZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgbWFrZUF0dHJpYnV0ZWRTdHJpbmcoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgaGFzU3BlbGxpbmdNYXJrZXIo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiBwcml2YXRlOgogICAgIC8v
IFJldHVybnMgdGhlIHRlc3Qgc2hlbGwncyBtYWluIFdlYkZyYW1lLgo=
</data>
<flag name="review"
          id="56392"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>