<?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>58798</bug_id>
          
          <creation_ts>2011-04-18 11:03:38 -0700</creation_ts>
          <short_desc>WebKit needs to stop importing &lt;AppKit/NSTextChecker.h&gt;</short_desc>
          <delta_ts>2011-04-18 20:50:26 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jia Pu">jiapu.mail</reporter>
          <assigned_to name="Jia Pu">jiapu.mail</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddavidso</cc>
    
    <cc>mitz</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>387869</commentid>
    <comment_count>0</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-04-18 11:03:38 -0700</bug_when>
    <thetext>NSTextChecker.h is private header. We should use the public header NSSpellChecker.h, and the equivalent names and functions defined there.
&lt;rdar://problem/9294938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387876</commentid>
    <comment_count>1</comment_count>
      <attachid>90057</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-04-18 11:13:14 -0700</bug_when>
    <thetext>Created attachment 90057
Patch (v1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387887</commentid>
    <comment_count>2</comment_count>
      <attachid>90057</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2011-04-18 11:23:07 -0700</bug_when>
    <thetext>Comment on attachment 90057
Patch (v1)

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

r=me

&gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:80
&gt; +- (NSString *)languageForWordRange:(NSRange)range inString:(NSString *)string orthography:(NSOrthography *)orthography;

I think you should drop the comment.  In other places we call the category “AppKitSecretsIKnow”.

&gt; Source/WebKit2/UIProcess/mac/TextCheckerMac.mm:36
&gt; +- (NSString *)languageForWordRange:(NSRange)range inString:(NSString *)string orthography:(NSOrthography *)orthography;

Same as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387892</commentid>
    <comment_count>3</comment_count>
      <attachid>90057</attachid>
    <who name="">mitz</who>
    <bug_when>2011-04-18 11:30:30 -0700</bug_when>
    <thetext>Comment on attachment 90057
Patch (v1)

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

&gt;&gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:80
&gt;&gt; +- (NSString *)languageForWordRange:(NSRange)range inString:(NSString *)string orthography:(NSOrthography *)orthography;
&gt; 
&gt; I think you should drop the comment.  In other places we call the category “AppKitSecretsIKnow”.

That is the old convention. The modern convention is Web&lt;class&gt;Details, so in this case, WebNSSpellCheckerDetails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387984</commentid>
    <comment_count>4</comment_count>
      <attachid>90082</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-04-18 13:25:58 -0700</bug_when>
    <thetext>Created attachment 90082
Patch (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388265</commentid>
    <comment_count>5</comment_count>
      <attachid>90082</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-18 20:48:06 -0700</bug_when>
    <thetext>Comment on attachment 90082
Patch (v2)

Clearing flags on attachment: 90082

Committed r84220: &lt;http://trac.webkit.org/changeset/84220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388266</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-18 20:48:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388271</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-18 20:50:26 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 90082:

java/lc3/JSObject/ToObject-001.html bug 53091 (author: ap@webkit.org)
http/tests/xmlhttprequest/cross-origin-no-authorization.html bug 33357 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90057</attachid>
            <date>2011-04-18 11:13:14 -0700</date>
            <delta_ts>2011-04-18 13:25:55 -0700</delta_ts>
            <desc>Patch (v1)</desc>
            <filename>bug-58798-20110418111313.patch</filename>
            <type>text/plain</type>
            <size>18569</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQxNDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxYmVhMDkzZjUx
OTUzN2NmNGU4MDRjNzQ1MGM3NzFkMDJkM2I0YTgxLi5jZWIzYmZjMzk1OGYxY2NiNWQ2MDY0MjQ3
Zjk2YjMyMDY2NjY1ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEt
MDQtMTggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IG5lZWRzIHRvIHN0b3AgaW1wb3J0aW5nIDxB
cHBLaXQvTlNUZXh0Q2hlY2tlci5oPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTg3OTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyOTQ5Mzg+CisK
KyAgICAgICAgVXNlIHB1YmxpYyBoZWFkZXIgPEFwcEtpdC9OU1NwZWxsQ2hlY2tlci5oPiBpbnN0
ZWFkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tOgorICAgICAgICAoY29ycmVj
dGlvbkluZGljYXRvclR5cGUpOgorICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpzaG93KToKKyAg
ICAgICAgKENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzc0ludGVybmFsKToKKyAgICAgICAgKENvcnJl
Y3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKwogMjAxMS0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU4NDYzPiBTd2l0Y2ggSFRUUCBwaXBlbGluaW5n
IGZyb20gdXNlciBkZWZhdWx0IHRvIHByaXZhdGUgc2V0dGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaAppbmRleCBiN2Q0YzRjZGRl
MjkyN2NiNTFkMjUwNDc2MDAxOTQxNTc3YjQ2ZWIwLi4xNWIyYzY3M2FiYTg3YTI5MTY5M2ZlNWE3
YmZmNWE2OGFkZjdiZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Db3JyZWN0aW9uUGFuZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Db3JyZWN0aW9uUGFuZWwuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBDb3JyZWN0
aW9uUGFuZWxfaAogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKLSNpbXBvcnQgPEFwcEtpdC9OU1RleHRDaGVja2VyLmg+CisjaW1wb3J0IDxBcHBLaXQvTlNT
cGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJv
bGxlci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC00Niw3ICs0Niw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1Nob3dpbmcoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZXc7IH0KICAgICB2b2lkIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNz
aW5nQ29ycmVjdGlvblBhbmVsLCBib29sIGRpc21pc3NpbmdFeHRlcm5hbGx5KTsKLSAgICB2b2lk
IGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQs
IE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVwbGFjZW1lbnQsIE5TQ29y
cmVjdGlvbkJ1YmJsZVR5cGUpOworICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChO
U1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmlu
ZyogcHJvcG9zZWRSZXBsYWNlbWVudCwgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSk7CiAKICAg
ICBib29sIG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseTsKICAgICBXZWJDb3JlOjpSZWFzb25Gb3JE
aXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIG1fcmVhc29uRm9yRGlzbWlzc2luZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbQppbmRl
eCBiOGFhNjQwZjMzZGRiYTNlYTdhYzdjMDliZDI1NThhYWE0NGRiYmNhLi5jZTUyYjc0ODNkOTIy
ZTFiNTgzZjY0NTY3MWExOGMzYTEyMmJhMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tCkBAIC0yOSwxOCArMjksMTggQEAK
ICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBpbmxpbmUgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBj
b3JyZWN0aW9uQnViYmxlVHlwZShDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxU
eXBlKQorc3RhdGljIGlubGluZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25J
bmRpY2F0b3JUeXBlKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUpCiB7
CiAgICAgc3dpdGNoIChwYW5lbFR5cGUpIHsKICAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZUNvcnJlY3Rpb246Ci0gICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVU
eXBlQ29ycmVjdGlvbjsKKyAgICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVE
ZWZhdWx0OwogICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
OgotICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbjsKKyAgICAg
ICAgcmV0dXJuIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVSZXZlcnNpb247CiAgICAgY2FzZSBD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgotICAgICAg
ICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNzZXM7CisgICAgICAgIHJldHVybiBO
U0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlR3Vlc3NlczsKICAgICB9CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uOwor
ICAgIHJldHVybiBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlRGVmYXVsdDsKIH0KIAogQ29ycmVj
dGlvblBhbmVsOjpDb3JyZWN0aW9uUGFuZWwoKQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIENvcnJl
Y3Rpb25QYW5lbDo6c2hvdyhXZWJWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5l
bFR5cGUgdHlwZSwgYwogICAgIE5TU3RyaW5nKiByZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgPSBy
ZXBsYWNlZFN0cmluZzsKICAgICBOU1N0cmluZyogcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5n
ID0gcmVwbGFjZW1lbnRTdHJpbmc7CiAgICAgbV92aWV3ID0gdmlldzsKLSAgICBOU0NvcnJlY3Rp
b25CdWJibGVUeXBlIGJ1YmJsZVR5cGUgPSBjb3JyZWN0aW9uQnViYmxlVHlwZSh0eXBlKTsKKyAg
ICBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGluZGljYXRvclR5cGUgPSBjb3JyZWN0aW9uSW5k
aWNhdG9yVHlwZSh0eXBlKTsKICAgICAKICAgICBOU011dGFibGVBcnJheSogYWx0ZXJuYXRpdmVT
dHJpbmdzID0gMDsKICAgICBpZiAoIWFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLmlzRW1w
dHkoKSkgewpAQCAtNzUsOCArNzUsOCBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6c2hvdyhXZWJW
aWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgYwogICAgICAg
ICAgICAgW2FsdGVybmF0aXZlU3RyaW5ncyBhZGRPYmplY3Q6KE5TU3RyaW5nKilhbHRlcm5hdGl2
ZVJlcGxhY2VtZW50U3RyaW5nc1tpXV07CiAgICAgfQogCi0gICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUg
cHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJp
bmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6W3ZpZXcgY29udmVydFJlY3Q6
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nIGZyb21WaWV3Om5pbF0gdmlldzptX3ZpZXcuZ2V0
KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyogYWNjZXB0ZWRTdHJpbmcpIHsKLSAgICAg
ICAgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChhY2NlcHRlZFN0cmluZywgcmVwbGFjZWRTdHJp
bmdBc05TU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGJ1YmJsZVR5cGUpOwor
ICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVjdGlvbklu
ZGljYXRvck9mVHlwZTppbmRpY2F0b3JUeXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nIGFsdGVybmF0aXZlU3RyaW5nczphbHRlcm5hdGl2ZVN0cmluZ3MgZm9yU3Ry
aW5nSW5SZWN0Olt2aWV3IGNvbnZlcnRSZWN0OmJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZyBm
cm9tVmlldzpuaWxdIHZpZXc6bV92aWV3LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJp
bmcqIGFjY2VwdGVkU3RyaW5nKSB7CisgICAgICAgIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQo
YWNjZXB0ZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZywgcmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nLCBpbmRpY2F0b3JUeXBlKTsKICAgICB9XTsKIH0KIApAQCAtMTA2LDcgKzEw
Niw3IEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlz
bWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sCiAgICAgCiAgICAgbV9yZWFzb25Gb3JEaXNt
aXNzaW5nID0gcmVhc29uOwogICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWwuY2xl
YXIoKTsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gZGlzbWlzc0Nv
cnJlY3Rpb25CdWJibGVGb3JWaWV3Om1fdmlldy5nZXQoKV07CisgICAgW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNhdG9yRm9yVmlldzpt
X3ZpZXcuZ2V0KCldOwogICAgIG1fdmlldy5jbGVhcigpOwogfQogCkBAIC0xMTUsMTMgKzExNSwx
MyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShX
ZWJWaWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZQogICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpyZXNwb25zZSB0b0NvcnJlY3Rpb246cmVwbGFj
ZW1lbnRTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzpbdmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwogfQogCi12b2lk
IENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNj
ZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRS
ZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgY29ycmVjdGlvbkJ1YmJsZVR5cGUp
Cit2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmlu
ZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJv
cG9zZWRSZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgY29ycmVjdGlvbklu
ZGljYXRvclR5cGUpCiB7CiAgICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlciA9IFtOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOwogICAgIE5TSW50ZWdlciBkb2N1bWVudFRh
ZyA9IFttX3ZpZXcuZ2V0KCkgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogCi0gICAgc3dpdGNo
IChjb3JyZWN0aW9uQnViYmxlVHlwZSkgewotICAgIGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlw
ZUNvcnJlY3Rpb246CisgICAgc3dpdGNoIChjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSkgeworICAg
IGNhc2UgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZURlZmF1bHQ6CiAgICAgICAgIGlmIChhY2Nl
cHRlZFJlcGxhY2VtZW50KQogICAgICAgICAgICAgW3NwZWxsQ2hlY2tlciByZWNvcmRSZXNwb25z
ZTpOU0NvcnJlY3Rpb25SZXNwb25zZUFjY2VwdGVkIHRvQ29ycmVjdGlvbjphY2NlcHRlZFJlcGxh
Y2VtZW50IGZvcldvcmQ6cmVwbGFjZWQgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhU
YWc6ZG9jdW1lbnRUYWddOwogICAgICAgICBlbHNlIHsKQEAgLTEzMSwxMSArMTMxLDExIEBAIHZv
aWQgQ29ycmVjdGlvblBhbmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBh
Y2NlcHRlZFJlcGxhY2VtZW50LCBOCiAgICAgICAgICAgICAgICAgW3NwZWxsQ2hlY2tlciByZWNv
cmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZUlnbm9yZWQgdG9Db3JyZWN0aW9uOnByb3Bv
c2VkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOgorICAgIGNhc2UgTlNDb3JyZWN0
aW9uSW5kaWNhdG9yVHlwZVJldmVyc2lvbjoKICAgICAgICAgaWYgKGFjY2VwdGVkUmVwbGFjZW1l
bnQpCiAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlv
blJlc3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VkIGZvcldvcmQ6YWNjZXB0ZWRS
ZXBsYWNlbWVudCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpkb2N1bWVudFRh
Z107CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNz
ZXM6CisgICAgY2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlR3Vlc3NlczoKICAgICAgICAg
aWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCiAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2Vw
dGVkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDM0MWEy
OGZkNDQ0YTViNmQxMDE0MWYxZDQ4NWM3NTJlZTg4OTQxNDcuLmVhNGY3ODBjMTdhOGIxMDBiMDY2
ZWJlMTg4MTkyMjhlNTQyOTkyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTY5LDI4ICs2OSwxNiBAQAogI2ltcG9y
dCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0
ci5oPgogI2ltcG9ydCA8d3RmL1RocmVhZGluZy5oPgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCi0jaW1wb3J0IDxBcHBLaXQvTlNUZXh0Q2hlY2tlci5oPgot
I2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LXN0YXRpYyBpbmxpbmUgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBjb3JyZWN0aW9uQnViYmxlVHlw
ZShDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlKQotewotICAgIHN3aXRj
aCAocGFuZWxUeXBlKSB7Ci0gICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVD
b3JyZWN0aW9uOgotICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rp
b247Ci0gICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVSZXZlcnNpb246Ci0g
ICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOwotICAgIGNhc2Ug
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczoKLSAgICAg
ICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVHdWVzc2VzOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJl
Y3Rpb247Ci19CitAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChQcml2YXRlSGVhZGVyV29ya2Fy
b3VuZCkKKy8vIFRoaXMgd2lsbCBiZWNvbWUgYSBwdWJsaWMgQVBJLiBIb3dldmVyIGl0IHdvbid0
IGJlIGF2YWlsYWJsZSBmb3IgTGlvbi4KKy0gKE5TU3RyaW5nICopbGFuZ3VhZ2VGb3JXb3JkUmFu
Z2U6KE5TUmFuZ2UpcmFuZ2UgaW5TdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIG9ydGhvZ3JhcGh5
OihOU09ydGhvZ3JhcGh5ICopb3J0aG9ncmFwaHk7CitAZW5kCiAjZW5kaWYKIAogQGludGVyZmFj
ZSBOU0F0dHJpYnV0ZWRTdHJpbmcgKFdlYk5TQXR0cmlidXRlZFN0cmluZ0RldGFpbHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggY2ExOTExYzFkODVjM2IzNTYyMWE5NzFj
YTZhOGI5YTZhOTIyNGVkZS4uZDBmYzVkM2U1ZWE1YWU2OTJhZGE0YWM4MGZjZTcxYjk5NGJkMjVh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTgwLDEwICsxODAsNiBA
QAogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1RocmVhZGluZy5o
PgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSNpbXBv
cnQgPEFwcEtpdC9OU1RleHRDaGVja2VyLmg+Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKICNpbXBvcnQgPFdlYktpdC9XZWJEYXNoYm9hcmRSZWdpb24uaD4KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDgzZTY0ZTViZmY0OTRkM2NkYzFhNzFkZmYzMDM5YmQ5MTU0ODVhYmQu
LmNjNmIzNmVjMDdjYWY1MWVmOTQ4MjU3NmU1ZWRmZWMwZGI3MzEyYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMS0wNC0xOCAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgbmVlZHMg
dG8gc3RvcCBpbXBvcnRpbmcgPEFwcEtpdC9OU1RleHRDaGVja2VyLmg+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODc5OAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vOTI5NDkzOD4KKworICAgICAgICBVc2UgcHVibGljIGhlYWRlciA8QXBwS2l0L05T
U3BlbGxDaGVja2VyLmg+IGluc3RlYWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0NvcnJl
Y3Rpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLm1t
OgorICAgICAgICAoY29ycmVjdGlvbkluZGljYXRvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpD
b3JyZWN0aW9uUGFuZWw6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpDb3JyZWN0aW9uUGFuZWw6
OmRpc21pc3NJbnRlcm5hbCk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6aGFu
ZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UZXh0Q2hl
Y2tlck1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJF
ZGl0b3JDbGllbnRNYWMubW06CisKIDIwMTEtMDQtMTggIEplZmYgTWlsbGVyICA8amVmZm1AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oCmluZGV4IDc3MDQxMWMx
MzM1NWE2MjY2ZmRlOWFlNTVkNWY4ODZmZmNlYzJkOWMuLjg1YTk4ZWZjYzViNWRkOWJmMmU2ODI2
YTY5ZjIwNmNhNDhlZDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvQ29ycmVjdGlvblBhbmVsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9D
b3JyZWN0aW9uUGFuZWwuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBDb3JyZWN0aW9uUGFu
ZWxfaAogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotI2ltcG9ydCA8
QXBwS2l0L05TVGV4dENoZWNrZXIuaD4KKyNpbXBvcnQgPEFwcEtpdC9OU1NwZWxsQ2hlY2tlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TcGVsbGluZ0NvcnJlY3Rpb25Db250cm9sbGVyLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBib29sIGlzU2hvd2luZygpIGNvbnN0IHsgcmV0dXJuIG1fdmlldzsgfQogICAgIHZv
aWQgZGlzbWlzc0ludGVybmFsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9u
UGFuZWwsIGJvb2wgZGlzbWlzc2luZ0V4dGVybmFsbHkpOwotICAgIHZvaWQgaGFuZGxlQWNjZXB0
ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJl
cGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRSZXBsYWNlbWVudCwgTlNDb3JyZWN0aW9uQnViYmxl
VHlwZSk7CisgICAgdm9pZCBoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBhY2Nl
cHRlZFJlcGxhY2VtZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJl
cGxhY2VtZW50LCBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKTsKIAogICAgIGJvb2wgbV93YXNE
aXNtaXNzZWRFeHRlcm5hbGx5OwogICAgIFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3Jy
ZWN0aW9uUGFuZWwgbV9yZWFzb25Gb3JEaXNtaXNzaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQppbmRleCBhYjY4MThmZDA1MzJlOGY0Yzhi
OGFlZTNjNjIwNWQ2NDBkZWZhNmQ1Li4wZmM1MjBiYTgwYzc0MzNmMzJiMzRhYjNlZjYwZmMxY2Q0
NTMzZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rp
b25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25Q
YW5lbC5tbQpAQCAtMzMsMTggKzMzLDE4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
Ci1zdGF0aWMgaW5saW5lIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgY29ycmVjdGlvbkJ1YmJsZVR5
cGUoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlIHBhbmVsVHlwZSkKK3N0YXRpYyBpbmxp
bmUgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSBjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZShDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlKQogewogICAgIHN3aXRjaCAocGFu
ZWxUeXBlKSB7CiAgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0
aW9uOgotICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb247Cisg
ICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlRGVmYXVsdDsKICAgICBjYXNl
IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKLSAgICAgICAgcmV0dXJu
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb247CisgICAgICAgIHJldHVybiBOU0NvcnJl
Y3Rpb25JbmRpY2F0b3JUeXBlUmV2ZXJzaW9uOwogICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5m
bzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczoKLSAgICAgICAgcmV0dXJuIE5TQ29ycmVj
dGlvbkJ1YmJsZVR5cGVHdWVzc2VzOworICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uSW5kaWNh
dG9yVHlwZUd1ZXNzZXM7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlQ29ycmVjdGlvbjsKKyAgICByZXR1cm4gTlNDb3Jy
ZWN0aW9uSW5kaWNhdG9yVHlwZURlZmF1bHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NzEsNyArNzEsNyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6c2hvdyhXS1ZpZXcqIHZpZXcsIENv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0eXBlLCBjbwogICAgIE5TU3RyaW5nKiByZXBs
YWNlZFN0cmluZ0FzTlNTdHJpbmcgPSByZXBsYWNlZFN0cmluZzsKICAgICBOU1N0cmluZyogcmVw
bGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nID0gcmVwbGFjZW1lbnRTdHJpbmc7CiAgICAgbV92aWV3
ID0gdmlldzsKLSAgICBOU0NvcnJlY3Rpb25CdWJibGVUeXBlIGJ1YmJsZVR5cGUgPSBjb3JyZWN0
aW9uQnViYmxlVHlwZSh0eXBlKTsKKyAgICBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGluZGlj
YXRvclR5cGUgPSBjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSh0eXBlKTsKICAgICAKICAgICBOU011
dGFibGVBcnJheSogYWx0ZXJuYXRpdmVTdHJpbmdzID0gMDsKICAgICBpZiAoIWFsdGVybmF0aXZl
UmVwbGFjZW1lbnRTdHJpbmdzLmlzRW1wdHkoKSkgewpAQCAtODIsOCArODIsOCBAQCB2b2lkIENv
cnJlY3Rpb25QYW5lbDo6c2hvdyhXS1ZpZXcqIHZpZXcsIENvcnJlY3Rpb25QYW5lbEluZm86OlBh
bmVsVHlwZSB0eXBlLCBjbwogICAgIH0KIAogICAgIE5TU3BlbGxDaGVja2VyKiBzcGVsbENoZWNr
ZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXTsKLSAgICBbc3BlbGxDaGVj
a2VyIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUgcHJpbWFyeVN0cmluZzpy
ZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJpbmdzOmFsdGVybmF0aXZl
U3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nIHZpZXc6
bV92aWV3LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcqIGFjY2VwdGVkU3RyaW5n
KSB7Ci0gICAgICAgIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoYWNjZXB0ZWRTdHJpbmcsIHJl
cGxhY2VkU3RyaW5nQXNOU1N0cmluZywgcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nLCBidWJi
bGVUeXBlKTsKKyAgICBbc3BlbGxDaGVja2VyIHNob3dDb3JyZWN0aW9uSW5kaWNhdG9yT2ZUeXBl
OmluZGljYXRvclR5cGUgcHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcg
YWx0ZXJuYXRpdmVTdHJpbmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6Ym91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nIHZpZXc6bV92aWV3LmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOl4oTlNTdHJpbmcqIGFjY2VwdGVkU3RyaW5nKSB7CisgICAgICAgIGhhbmRsZUFjY2VwdGVk
UmVwbGFjZW1lbnQoYWNjZXB0ZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZywgcmVw
bGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nLCBpbmRpY2F0b3JUeXBlKTsKICAgICB9XTsKIH0KIApA
QCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwo
UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sCiAgICAgCiAgICAgbV9y
ZWFzb25Gb3JEaXNtaXNzaW5nID0gcmVhc29uOwogICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNE
aXNtaXNzYWwuY2xlYXIoKTsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tl
cl0gZGlzbWlzc0NvcnJlY3Rpb25CdWJibGVGb3JWaWV3Om1fdmlldy5nZXQoKV07CisgICAgW1tO
U1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNh
dG9yRm9yVmlldzptX3ZpZXcuZ2V0KCldOwogICAgIG1fdmlldy5jbGVhcigpOwogfQogCkBAIC0x
MjIsMTMgKzEyMiwxMyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZShXS1ZpZXcqIHZpZXcsIE5TQ29ycmVjdGlvblJlcwogICAgIFtbTlNTcGVsbENo
ZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpyZXNwb25zZSB0b0NvcnJl
Y3Rpb246cmVwbGFjZW1lbnRTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZyBsYW5ndWFnZTpu
aWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpbdmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11d
OwogfQogCi12b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChO
U1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmlu
ZyogcHJvcG9zZWRSZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgY29ycmVjdGlv
bkJ1YmJsZVR5cGUpCit2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNl
bWVudChOU1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBO
U1N0cmluZyogcHJvcG9zZWRSZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUg
Y29ycmVjdGlvbkluZGljYXRvclR5cGUpCiB7CiAgICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hl
Y2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOwogICAgIE5TSW50ZWdl
ciBkb2N1bWVudFRhZyA9IFttX3ZpZXcuZ2V0KCkgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwog
ICAgIAotICAgIHN3aXRjaCAoY29ycmVjdGlvbkJ1YmJsZVR5cGUpIHsKLSAgICBjYXNlIE5TQ29y
cmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uOgorICAgIHN3aXRjaCAoY29ycmVjdGlvbkluZGlj
YXRvclR5cGUpIHsKKyAgICBjYXNlIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVEZWZhdWx0Ogog
ICAgICAgICBpZiAoYWNjZXB0ZWRSZXBsYWNlbWVudCkKICAgICAgICAgICAgIFtzcGVsbENoZWNr
ZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rp
b246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNw
ZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFnXTsKICAgICAgICAgZWxzZSB7CkBAIC0xMzgs
MTEgKzEzOCwxMSBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNl
bWVudChOU1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTgogICAgICAgICAgICAgICAgIFtz
cGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VJZ25vcmVkIHRv
Q29ycmVjdGlvbjpwcm9wb3NlZFJlcGxhY2VtZW50IGZvcldvcmQ6cmVwbGFjZWQgbGFuZ3VhZ2U6
bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6ZG9jdW1lbnRUYWddOwogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbjoKKyAg
ICBjYXNlIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVSZXZlcnNpb246CiAgICAgICAgIGlmIChh
Y2NlcHRlZFJlcGxhY2VtZW50KQogICAgICAgICAgICAgW3NwZWxsQ2hlY2tlciByZWNvcmRSZXNw
b25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVydGVkIHRvQ29ycmVjdGlvbjpyZXBsYWNlZCBm
b3JXb3JkOmFjY2VwdGVkUmVwbGFjZW1lbnQgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdp
dGhUYWc6ZG9jdW1lbnRUYWddOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5TQ29ycmVjdGlv
bkJ1YmJsZVR5cGVHdWVzc2VzOgorICAgIGNhc2UgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZUd1
ZXNzZXM6CiAgICAgICAgIGlmIChhY2NlcHRlZFJlcGxhY2VtZW50KQogICAgICAgICAgICAgW3Nw
ZWxsQ2hlY2tlciByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZUFjY2VwdGVkIHRv
Q29ycmVjdGlvbjphY2NlcHRlZFJlcGxhY2VtZW50IGZvcldvcmQ6cmVwbGFjZWQgbGFuZ3VhZ2U6
bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6ZG9jdW1lbnRUYWddOwogICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCmluZGV4
IGYwZGNlYjBiZDFlMDQ2NzdiMWI0YjRjNmM2NDBkODczOTYyYzQ1ZjcuLjYzZGFhNWZhNGM5YTM3
NDhiOTNmNmU1ZTc0ZmUwMjI4YmZjZDUzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQpAQCAtMzEsNyArMzEsMTAgQEAKICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KIAogI2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKLSNpbXBv
cnQgPEFwcEtpdC9OU1RleHRDaGVja2VyLmg+CitAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChQ
cml2YXRlSGVhZGVyV29ya2Fyb3VuZCkKKy8vIFRoaXMgd2lsbCBiZWNvbWUgYSBwdWJsaWMgQVBJ
LiBIb3dldmVyIGl0IHdvbid0IGJlIGF2YWlsYWJsZSBmb3IgTGlvbi4KKy0gKE5TU3RyaW5nICop
bGFuZ3VhZ2VGb3JXb3JkUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UgaW5TdHJpbmc6KE5TU3RyaW5nICop
c3RyaW5nIG9ydGhvZ3JhcGh5OihOU09ydGhvZ3JhcGh5ICopb3J0aG9ncmFwaHk7CitAZW5kCiAj
ZW5kaWYKIAogc3RhdGljIE5TU3RyaW5nKiBjb25zdCBXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJl
Y3Rpb25FbmFibGVkID0gQCJXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkVkaXRvckNsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQppbmRleCAxMGRiMzgzYzZmNTUwYmU0
NTY3NDk1Y2JkMmQ3MTY3OTllMmVjY2IzLi4xN2ZkNWZlZDMxMzBlOTdlZWJmMmQzOGZiYmMxNzQx
YWNlNjdmYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1tCkBAIC00Niw5
ICs0Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJS
ZXNvdXJjZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYk5TVVJMRXh0cmFzLmg+Ci0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotI2ltcG9ydCA8QXBwS2l0L05TVGV4dENoZWNr
ZXIuaD4KLSNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90082</attachid>
            <date>2011-04-18 13:25:58 -0700</date>
            <delta_ts>2011-04-18 20:48:06 -0700</delta_ts>
            <desc>Patch (v2)</desc>
            <filename>bug-58798-20110418132557.patch</filename>
            <type>text/plain</type>
            <size>18420</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQxNDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxYmVhMDkzZjUx
OTUzN2NmNGU4MDRjNzQ1MGM3NzFkMDJkM2I0YTgxLi5jZWIzYmZjMzk1OGYxY2NiNWQ2MDY0MjQ3
Zjk2YjMyMDY2NjY1ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEt
MDQtMTggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IG5lZWRzIHRvIHN0b3AgaW1wb3J0aW5nIDxB
cHBLaXQvTlNUZXh0Q2hlY2tlci5oPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTg3OTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyOTQ5Mzg+CisK
KyAgICAgICAgVXNlIHB1YmxpYyBoZWFkZXIgPEFwcEtpdC9OU1NwZWxsQ2hlY2tlci5oPiBpbnN0
ZWFkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tOgorICAgICAgICAoY29ycmVj
dGlvbkluZGljYXRvclR5cGUpOgorICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpzaG93KToKKyAg
ICAgICAgKENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzc0ludGVybmFsKToKKyAgICAgICAgKENvcnJl
Y3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKwogMjAxMS0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU4NDYzPiBTd2l0Y2ggSFRUUCBwaXBlbGluaW5n
IGZyb20gdXNlciBkZWZhdWx0IHRvIHByaXZhdGUgc2V0dGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaAppbmRleCBiN2Q0YzRjZGRl
MjkyN2NiNTFkMjUwNDc2MDAxOTQxNTc3YjQ2ZWIwLi4xNWIyYzY3M2FiYTg3YTI5MTY5M2ZlNWE3
YmZmNWE2OGFkZjdiZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Db3JyZWN0aW9uUGFuZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Db3JyZWN0aW9uUGFuZWwuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBDb3JyZWN0
aW9uUGFuZWxfaAogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKLSNpbXBvcnQgPEFwcEtpdC9OU1RleHRDaGVja2VyLmg+CisjaW1wb3J0IDxBcHBLaXQvTlNT
cGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJv
bGxlci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC00Niw3ICs0Niw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1Nob3dpbmcoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZXc7IH0KICAgICB2b2lkIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNz
aW5nQ29ycmVjdGlvblBhbmVsLCBib29sIGRpc21pc3NpbmdFeHRlcm5hbGx5KTsKLSAgICB2b2lk
IGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQs
IE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVwbGFjZW1lbnQsIE5TQ29y
cmVjdGlvbkJ1YmJsZVR5cGUpOworICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChO
U1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmlu
ZyogcHJvcG9zZWRSZXBsYWNlbWVudCwgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSk7CiAKICAg
ICBib29sIG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseTsKICAgICBXZWJDb3JlOjpSZWFzb25Gb3JE
aXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIG1fcmVhc29uRm9yRGlzbWlzc2luZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbQppbmRl
eCBiOGFhNjQwZjMzZGRiYTNlYTdhYzdjMDliZDI1NThhYWE0NGRiYmNhLi5jZTUyYjc0ODNkOTIy
ZTFiNTgzZjY0NTY3MWExOGMzYTEyMmJhMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tCkBAIC0yOSwxOCArMjksMTggQEAK
ICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBpbmxpbmUgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBj
b3JyZWN0aW9uQnViYmxlVHlwZShDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxU
eXBlKQorc3RhdGljIGlubGluZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25J
bmRpY2F0b3JUeXBlKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUpCiB7
CiAgICAgc3dpdGNoIChwYW5lbFR5cGUpIHsKICAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZUNvcnJlY3Rpb246Ci0gICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVU
eXBlQ29ycmVjdGlvbjsKKyAgICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVE
ZWZhdWx0OwogICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
OgotICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbjsKKyAgICAg
ICAgcmV0dXJuIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVSZXZlcnNpb247CiAgICAgY2FzZSBD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgotICAgICAg
ICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNzZXM7CisgICAgICAgIHJldHVybiBO
U0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlR3Vlc3NlczsKICAgICB9CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uOwor
ICAgIHJldHVybiBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlRGVmYXVsdDsKIH0KIAogQ29ycmVj
dGlvblBhbmVsOjpDb3JyZWN0aW9uUGFuZWwoKQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIENvcnJl
Y3Rpb25QYW5lbDo6c2hvdyhXZWJWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5l
bFR5cGUgdHlwZSwgYwogICAgIE5TU3RyaW5nKiByZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgPSBy
ZXBsYWNlZFN0cmluZzsKICAgICBOU1N0cmluZyogcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5n
ID0gcmVwbGFjZW1lbnRTdHJpbmc7CiAgICAgbV92aWV3ID0gdmlldzsKLSAgICBOU0NvcnJlY3Rp
b25CdWJibGVUeXBlIGJ1YmJsZVR5cGUgPSBjb3JyZWN0aW9uQnViYmxlVHlwZSh0eXBlKTsKKyAg
ICBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGluZGljYXRvclR5cGUgPSBjb3JyZWN0aW9uSW5k
aWNhdG9yVHlwZSh0eXBlKTsKICAgICAKICAgICBOU011dGFibGVBcnJheSogYWx0ZXJuYXRpdmVT
dHJpbmdzID0gMDsKICAgICBpZiAoIWFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLmlzRW1w
dHkoKSkgewpAQCAtNzUsOCArNzUsOCBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6c2hvdyhXZWJW
aWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgYwogICAgICAg
ICAgICAgW2FsdGVybmF0aXZlU3RyaW5ncyBhZGRPYmplY3Q6KE5TU3RyaW5nKilhbHRlcm5hdGl2
ZVJlcGxhY2VtZW50U3RyaW5nc1tpXV07CiAgICAgfQogCi0gICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUg
cHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJp
bmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6W3ZpZXcgY29udmVydFJlY3Q6
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nIGZyb21WaWV3Om5pbF0gdmlldzptX3ZpZXcuZ2V0
KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyogYWNjZXB0ZWRTdHJpbmcpIHsKLSAgICAg
ICAgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChhY2NlcHRlZFN0cmluZywgcmVwbGFjZWRTdHJp
bmdBc05TU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGJ1YmJsZVR5cGUpOwor
ICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVjdGlvbklu
ZGljYXRvck9mVHlwZTppbmRpY2F0b3JUeXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nIGFsdGVybmF0aXZlU3RyaW5nczphbHRlcm5hdGl2ZVN0cmluZ3MgZm9yU3Ry
aW5nSW5SZWN0Olt2aWV3IGNvbnZlcnRSZWN0OmJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZyBm
cm9tVmlldzpuaWxdIHZpZXc6bV92aWV3LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJp
bmcqIGFjY2VwdGVkU3RyaW5nKSB7CisgICAgICAgIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQo
YWNjZXB0ZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZywgcmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nLCBpbmRpY2F0b3JUeXBlKTsKICAgICB9XTsKIH0KIApAQCAtMTA2LDcgKzEw
Niw3IEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlz
bWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sCiAgICAgCiAgICAgbV9yZWFzb25Gb3JEaXNt
aXNzaW5nID0gcmVhc29uOwogICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWwuY2xl
YXIoKTsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gZGlzbWlzc0Nv
cnJlY3Rpb25CdWJibGVGb3JWaWV3Om1fdmlldy5nZXQoKV07CisgICAgW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNhdG9yRm9yVmlldzpt
X3ZpZXcuZ2V0KCldOwogICAgIG1fdmlldy5jbGVhcigpOwogfQogCkBAIC0xMTUsMTMgKzExNSwx
MyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShX
ZWJWaWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZQogICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpyZXNwb25zZSB0b0NvcnJlY3Rpb246cmVwbGFj
ZW1lbnRTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzpbdmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwogfQogCi12b2lk
IENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNj
ZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRS
ZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgY29ycmVjdGlvbkJ1YmJsZVR5cGUp
Cit2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmlu
ZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJv
cG9zZWRSZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgY29ycmVjdGlvbklu
ZGljYXRvclR5cGUpCiB7CiAgICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlciA9IFtOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOwogICAgIE5TSW50ZWdlciBkb2N1bWVudFRh
ZyA9IFttX3ZpZXcuZ2V0KCkgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogCi0gICAgc3dpdGNo
IChjb3JyZWN0aW9uQnViYmxlVHlwZSkgewotICAgIGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlw
ZUNvcnJlY3Rpb246CisgICAgc3dpdGNoIChjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSkgeworICAg
IGNhc2UgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZURlZmF1bHQ6CiAgICAgICAgIGlmIChhY2Nl
cHRlZFJlcGxhY2VtZW50KQogICAgICAgICAgICAgW3NwZWxsQ2hlY2tlciByZWNvcmRSZXNwb25z
ZTpOU0NvcnJlY3Rpb25SZXNwb25zZUFjY2VwdGVkIHRvQ29ycmVjdGlvbjphY2NlcHRlZFJlcGxh
Y2VtZW50IGZvcldvcmQ6cmVwbGFjZWQgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhU
YWc6ZG9jdW1lbnRUYWddOwogICAgICAgICBlbHNlIHsKQEAgLTEzMSwxMSArMTMxLDExIEBAIHZv
aWQgQ29ycmVjdGlvblBhbmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBh
Y2NlcHRlZFJlcGxhY2VtZW50LCBOCiAgICAgICAgICAgICAgICAgW3NwZWxsQ2hlY2tlciByZWNv
cmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZUlnbm9yZWQgdG9Db3JyZWN0aW9uOnByb3Bv
c2VkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOgorICAgIGNhc2UgTlNDb3JyZWN0
aW9uSW5kaWNhdG9yVHlwZVJldmVyc2lvbjoKICAgICAgICAgaWYgKGFjY2VwdGVkUmVwbGFjZW1l
bnQpCiAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlv
blJlc3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VkIGZvcldvcmQ6YWNjZXB0ZWRS
ZXBsYWNlbWVudCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpkb2N1bWVudFRh
Z107CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNz
ZXM6CisgICAgY2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlR3Vlc3NlczoKICAgICAgICAg
aWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCiAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2Vw
dGVkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDM0MWEy
OGZkNDQ0YTViNmQxMDE0MWYxZDQ4NWM3NTJlZTg4OTQxNDcuLjIzMDBiZTE4MjkzM2RiZTAyODRj
NGQ2YTA2NDdiOGQzYjYzM2ZhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTY5LDI4ICs2OSwxNSBAQAogI2ltcG9y
dCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0
ci5oPgogI2ltcG9ydCA8d3RmL1RocmVhZGluZy5oPgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCi0jaW1wb3J0IDxBcHBLaXQvTlNUZXh0Q2hlY2tlci5oPgot
I2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LXN0YXRpYyBpbmxpbmUgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBjb3JyZWN0aW9uQnViYmxlVHlw
ZShDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlKQotewotICAgIHN3aXRj
aCAocGFuZWxUeXBlKSB7Ci0gICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVD
b3JyZWN0aW9uOgotICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rp
b247Ci0gICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVSZXZlcnNpb246Ci0g
ICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOwotICAgIGNhc2Ug
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczoKLSAgICAg
ICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVHdWVzc2VzOwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJl
Y3Rpb247Ci19CitAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChXZWJOU1NwZWxsQ2hlY2tlckRl
dGFpbHMpCistIChOU1N0cmluZyAqKWxhbmd1YWdlRm9yV29yZFJhbmdlOihOU1JhbmdlKXJhbmdl
IGluU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBvcnRob2dyYXBoeTooTlNPcnRob2dyYXBoeSAq
KW9ydGhvZ3JhcGh5OworQGVuZAogI2VuZGlmCiAKIEBpbnRlcmZhY2UgTlNBdHRyaWJ1dGVkU3Ry
aW5nIChXZWJOU0F0dHJpYnV0ZWRTdHJpbmdEZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IGNhMTkxMWMxZDg1YzNiMzU2MjFhOTcxY2E2YThiOWE2YTkyMjRlZGUu
LmQwZmM1ZDNlNWVhNWFlNjkyYWRhNGFjODBmY2U3MWI5OTRiZDI1YWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE4MCwxMCArMTgwLDYgQEAKICNpbXBvcnQgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KIAotI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0jaW1wb3J0IDxBcHBLaXQvTlNUZXh0
Q2hlY2tlci5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAjaW1w
b3J0IDxXZWJLaXQvV2ViRGFzaGJvYXJkUmVnaW9uLmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4
M2U2NGU1YmZmNDk0ZDNjZGMxYTcxZGZmMzAzOWJkOTE1NDg1YWJkLi5jYzZiMzZlYzA3Y2FmNTFl
Zjk0ODI1NzZlNWVkZmVjMGRiNzMxMmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTEtMDQtMTggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IG5lZWRzIHRvIHN0b3AgaW1wb3J0aW5n
IDxBcHBLaXQvTlNUZXh0Q2hlY2tlci5oPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTg3OTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyOTQ5Mzg+
CisKKyAgICAgICAgVXNlIHB1YmxpYyBoZWFkZXIgPEFwcEtpdC9OU1NwZWxsQ2hlY2tlci5oPiBp
bnN0ZWFkLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbToKKyAgICAgICAgKGNvcnJl
Y3Rpb25JbmRpY2F0b3JUeXBlKToKKyAgICAgICAgKFdlYktpdDo6Q29ycmVjdGlvblBhbmVsOjpz
aG93KToKKyAgICAgICAgKFdlYktpdDo6Q29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwp
OgorICAgICAgICAoV2ViS2l0OjpDb3JyZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFj
ZW1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW06CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1t
OgorCiAyMDExLTA0LTE4ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaAppbmRleCA3NzA0MTFjMTMzNTVhNjI2NmZkZTlhZTU1
ZDVmODg2ZmZjZWMyZDljLi44NWE5OGVmY2M1YjVkZDliZjJlNjgyNmE2OWYyMDZjYTQ4ZWQ5ZTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5l
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmgK
QEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgQ29ycmVjdGlvblBhbmVsX2gKIAogI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSNpbXBvcnQgPEFwcEtpdC9OU1RleHRDaGVj
a2VyLmg+CisjaW1wb3J0IDxBcHBLaXQvTlNTcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgogCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1No
b3dpbmcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KICAgICB2b2lkIGRpc21pc3NJbnRlcm5h
bChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsLCBib29sIGRpc21p
c3NpbmdFeHRlcm5hbGx5KTsKLSAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNT
dHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcq
IHByb3Bvc2VkUmVwbGFjZW1lbnQsIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUpOworICAgIHZvaWQg
aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwg
TlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRSZXBsYWNlbWVudCwgTlNDb3Jy
ZWN0aW9uSW5kaWNhdG9yVHlwZSk7CiAKICAgICBib29sIG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxs
eTsKICAgICBXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIG1fcmVh
c29uRm9yRGlzbWlzc2luZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvQ29ycmVjdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3Jy
ZWN0aW9uUGFuZWwubW0KaW5kZXggYWI2ODE4ZmQwNTMyZThmNGM4YjhhZWUzYzYyMDVkNjQwZGVm
YTZkNS4uMGZjNTIwYmE4MGM3NDMzZjMyYjM0YWIzZWY2MGZjMWNkNDUzM2Q2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0KQEAgLTMzLDE4
ICszMywxOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RhdGljIGlubGluZSBO
U0NvcnJlY3Rpb25CdWJibGVUeXBlIGNvcnJlY3Rpb25CdWJibGVUeXBlKENvcnJlY3Rpb25QYW5l
bEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUpCitzdGF0aWMgaW5saW5lIE5TQ29ycmVjdGlvbklu
ZGljYXRvclR5cGUgY29ycmVjdGlvbkluZGljYXRvclR5cGUoQ29ycmVjdGlvblBhbmVsSW5mbzo6
UGFuZWxUeXBlIHBhbmVsVHlwZSkKIHsKICAgICBzd2l0Y2ggKHBhbmVsVHlwZSkgewogICAgIGNh
c2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKLSAgICAgICAgcmV0
dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uOworICAgICAgICByZXR1cm4gTlND
b3JyZWN0aW9uSW5kaWNhdG9yVHlwZURlZmF1bHQ7CiAgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJ
bmZvOjpQYW5lbFR5cGVSZXZlcnNpb246Ci0gICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJi
bGVUeXBlUmV2ZXJzaW9uOworICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlw
ZVJldmVyc2lvbjsKICAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnM6Ci0gICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlR3Vl
c3NlczsKKyAgICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVHdWVzc2VzOwog
ICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNDb3JyZWN0aW9u
QnViYmxlVHlwZUNvcnJlY3Rpb247CisgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkluZGljYXRvclR5
cGVEZWZhdWx0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcxLDcgKzcxLDcgQEAgdm9p
ZCBDb3JyZWN0aW9uUGFuZWw6OnNob3coV0tWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZv
OjpQYW5lbFR5cGUgdHlwZSwgY28KICAgICBOU1N0cmluZyogcmVwbGFjZWRTdHJpbmdBc05TU3Ry
aW5nID0gcmVwbGFjZWRTdHJpbmc7CiAgICAgTlNTdHJpbmcqIHJlcGxhY2VtZW50U3RyaW5nQXNO
U1N0cmluZyA9IHJlcGxhY2VtZW50U3RyaW5nOwogICAgIG1fdmlldyA9IHZpZXc7Ci0gICAgTlND
b3JyZWN0aW9uQnViYmxlVHlwZSBidWJibGVUeXBlID0gY29ycmVjdGlvbkJ1YmJsZVR5cGUodHlw
ZSk7CisgICAgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSBpbmRpY2F0b3JUeXBlID0gY29ycmVj
dGlvbkluZGljYXRvclR5cGUodHlwZSk7CiAgICAgCiAgICAgTlNNdXRhYmxlQXJyYXkqIGFsdGVy
bmF0aXZlU3RyaW5ncyA9IDA7CiAgICAgaWYgKCFhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5n
cy5pc0VtcHR5KCkpIHsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnNo
b3coV0tWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgY28K
ICAgICB9CiAKICAgICBOU1NwZWxsQ2hlY2tlciogc3BlbGxDaGVja2VyID0gW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl07Ci0gICAgW3NwZWxsQ2hlY2tlciBzaG93Q29ycmVjdGlv
bkJ1YmJsZU9mVHlwZTpidWJibGVUeXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmdB
c05TU3RyaW5nIGFsdGVybmF0aXZlU3RyaW5nczphbHRlcm5hdGl2ZVN0cmluZ3MgZm9yU3RyaW5n
SW5SZWN0OmJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZyB2aWV3Om1fdmlldy5nZXQoKSBjb21w
bGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nKiBhY2NlcHRlZFN0cmluZykgewotICAgICAgICBoYW5k
bGVBY2NlcHRlZFJlcGxhY2VtZW50KGFjY2VwdGVkU3RyaW5nLCByZXBsYWNlZFN0cmluZ0FzTlNT
dHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZywgYnViYmxlVHlwZSk7CisgICAgW3Nw
ZWxsQ2hlY2tlciBzaG93Q29ycmVjdGlvbkluZGljYXRvck9mVHlwZTppbmRpY2F0b3JUeXBlIHBy
aW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGFsdGVybmF0aXZlU3RyaW5n
czphbHRlcm5hdGl2ZVN0cmluZ3MgZm9yU3RyaW5nSW5SZWN0OmJvdW5kaW5nQm94T2ZSZXBsYWNl
ZFN0cmluZyB2aWV3Om1fdmlldy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nKiBh
Y2NlcHRlZFN0cmluZykgeworICAgICAgICBoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KGFjY2Vw
dGVkU3RyaW5nLCByZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nQXNO
U1N0cmluZywgaW5kaWNhdG9yVHlwZSk7CiAgICAgfV07CiB9CiAKQEAgLTExMyw3ICsxMTMsNyBA
QCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzc0ludGVybmFsKFJlYXNvbkZvckRpc21pc3Np
bmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uLAogICAgIAogICAgIG1fcmVhc29uRm9yRGlzbWlzc2lu
ZyA9IHJlYXNvbjsKICAgICBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmNsZWFyKCk7
Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0
aW9uQnViYmxlRm9yVmlldzptX3ZpZXcuZ2V0KCldOworICAgIFtbTlNTcGVsbENoZWNrZXIgc2hh
cmVkU3BlbGxDaGVja2VyXSBkaXNtaXNzQ29ycmVjdGlvbkluZGljYXRvckZvclZpZXc6bV92aWV3
LmdldCgpXTsKICAgICBtX3ZpZXcuY2xlYXIoKTsKIH0KIApAQCAtMTIyLDEzICsxMjIsMTMgQEAg
dm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3
KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXMKICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6cmVzcG9uc2UgdG9Db3JyZWN0aW9uOnJlcGxhY2VtZW50
U3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVu
dFdpdGhUYWc6W3ZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKIH0KIAotdm9pZCBDb3Jy
ZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVk
UmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVwbGFj
ZW1lbnQsICBOU0NvcnJlY3Rpb25CdWJibGVUeXBlIGNvcnJlY3Rpb25CdWJibGVUeXBlKQordm9p
ZCBDb3JyZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFj
Y2VwdGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2Vk
UmVwbGFjZW1lbnQsICBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25JbmRpY2F0
b3JUeXBlKQogewogICAgIE5TU3BlbGxDaGVja2VyKiBzcGVsbENoZWNrZXIgPSBbTlNTcGVsbENo
ZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXTsKICAgICBOU0ludGVnZXIgZG9jdW1lbnRUYWcgPSBb
bV92aWV3LmdldCgpIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAKLSAgICBzd2l0Y2gg
KGNvcnJlY3Rpb25CdWJibGVUeXBlKSB7Ci0gICAgY2FzZSBOU0NvcnJlY3Rpb25CdWJibGVUeXBl
Q29ycmVjdGlvbjoKKyAgICBzd2l0Y2ggKGNvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKSB7CisgICAg
Y2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlRGVmYXVsdDoKICAgICAgICAgaWYgKGFjY2Vw
dGVkUmVwbGFjZW1lbnQpCiAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29yZFJlc3BvbnNl
Ok5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2VwdGVkUmVwbGFj
ZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRh
Zzpkb2N1bWVudFRhZ107CiAgICAgICAgIGVsc2UgewpAQCAtMTM4LDExICsxMzgsMTEgQEAgdm9p
ZCBDb3JyZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFj
Y2VwdGVkUmVwbGFjZW1lbnQsIE4KICAgICAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlSWdub3JlZCB0b0NvcnJlY3Rpb246cHJvcG9z
ZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1l
bnRXaXRoVGFnOmRvY3VtZW50VGFnXTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKLSAgICBj
YXNlIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb246CisgICAgY2FzZSBOU0NvcnJlY3Rp
b25JbmRpY2F0b3JUeXBlUmV2ZXJzaW9uOgogICAgICAgICBpZiAoYWNjZXB0ZWRSZXBsYWNlbWVu
dCkKICAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VSZXZlcnRlZCB0b0NvcnJlY3Rpb246cmVwbGFjZWQgZm9yV29yZDphY2NlcHRlZFJl
cGxhY2VtZW50IGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFn
XTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOU0NvcnJlY3Rpb25CdWJibGVUeXBlR3Vlc3Nl
czoKKyAgICBjYXNlIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGVHdWVzc2VzOgogICAgICAgICBp
ZiAoYWNjZXB0ZWRSZXBsYWNlbWVudCkKICAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3Jk
UmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0
ZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1l
bnRXaXRoVGFnOmRvY3VtZW50VGFnXTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQppbmRleCBmMGRjZWIwYmQxZTA0Njc3
YjFiNGI0YzZjNjQwZDg3Mzk2MmM0NWY3Li4yOTQ5M2Y5Yzg5OGM5YjdjMTcwZTJkOWFiYjUwYWIw
ZDI0NjQyYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRD
aGVja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNr
ZXJNYWMubW0KQEAgLTMxLDcgKzMxLDkgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAog
I2lmbmRlZiBCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQKLSNpbXBvcnQgPEFwcEtpdC9OU1RleHRD
aGVja2VyLmg+CitAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChXZWJOU1NwZWxsQ2hlY2tlckRl
dGFpbHMpCistIChOU1N0cmluZyAqKWxhbmd1YWdlRm9yV29yZFJhbmdlOihOU1JhbmdlKXJhbmdl
IGluU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBvcnRob2dyYXBoeTooTlNPcnRob2dyYXBoeSAq
KW9ydGhvZ3JhcGh5OworQGVuZAogI2VuZGlmCiAKIHN0YXRpYyBOU1N0cmluZyogY29uc3QgV2Vi
QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCA9IEAiV2ViQXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW0K
aW5kZXggMTBkYjM4M2M2ZjU1MGJlNDU2NzQ5NWNiZDJkNzE2Nzk5ZTJlY2NiMy4uMTdmZDVmZWQz
MTMwZTk3ZWViZjJkMzhmYmJjMTc0MWFjZTY3ZmI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRWRpdG9yQ2xpZW50TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRv
ckNsaWVudE1hYy5tbQpAQCAtNDYsOSArNDYsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV2ViUmVzb3VyY2UuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJOU1VS
TEV4dHJhcy5oPgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSNpbXBv
cnQgPEFwcEtpdC9OU1RleHRDaGVja2VyLmg+Ci0jZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>