<?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>43068</bug_id>
          
          <creation_ts>2010-07-27 12:22:26 -0700</creation_ts>
          <short_desc>Move NPJSObject out into separate files</short_desc>
          <delta_ts>2010-07-27 12:30:33 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256750</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-27 12:22:26 -0700</bug_when>
    <thetext>Move NPJSObject out into separate files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256752</commentid>
    <comment_count>1</comment_count>
      <attachid>62725</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-27 12:25:51 -0700</bug_when>
    <thetext>Created attachment 62725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256753</commentid>
    <comment_count>2</comment_count>
      <attachid>62725</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-27 12:28:09 -0700</bug_when>
    <thetext>Comment on attachment 62725
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256754</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-27 12:28:40 -0700</bug_when>
    <thetext>Attachment 62725 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/Plugins/NPJSObject.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/Plugins/NPJSObject.cpp:129:  NPJSObject::NP_Allocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPJSObject.cpp:136:  NPJSObject::NP_Deallocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPJSObject.cpp:142:  NPJSObject::NP_HasProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPJSObject.cpp:147:  NPJSObject::NP_GetProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/WebProcess/Plugins/NPJSObject.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/WebProcess/Plugins/NPJSObject.h:66:  NP_Allocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPJSObject.h:67:  NP_Deallocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPJSObject.h:68:  NP_HasProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/NPJSObject.h:69:  NP_GetProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 11 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256756</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-27 12:30:33 -0700</bug_when>
    <thetext>Committed r64147: &lt;http://trac.webkit.org/changeset/64147&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62725</attachid>
            <date>2010-07-27 12:25:51 -0700</date>
            <delta_ts>2010-07-27 12:28:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43068-20100727122550.patch</filename>
            <type>text/plain</type>
            <size>20440</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
N2EwZmY3OTc4M2QxMTg2ODhlMzg5OTFmOGE3YzRlM2I4MTJjODkxOC4uOTMzM2E2NWYyNzg0MGJi
OWU1ZDI4ODhjZDg3OTZlODQ4NWE5MTEzNCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAogMjAxMC0wNy0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgTlBKU09iamVjdCBvdXQgaW50byBzZXBh
cmF0ZSBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDMwNjgKKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTlBKU09iamVjdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOUEpT
T2JqZWN0OjpOUEpTT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6TlBKU09iamVjdDo6fk5QSlNP
YmplY3QpOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0Ojppc05QSlNPYmplY3QpOgorICAg
ICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6
aWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKToKKyAgICAgICAgKFdlYktpdDo6TlBKU09iamVj
dDo6aGFzUHJvcGVydHkpOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpnZXRQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmplY3Q6Om5wQ2xhc3MpOgorICAgICAgICAoV2Vi
S2l0OjpOUEpTT2JqZWN0OjpOUF9BbGxvY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmpl
Y3Q6Ok5QX0RlYWxsb2NhdGUpOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpOUF9IYXNQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmplY3Q6Ok5QX0dldFByb3BlcnR5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTlBKU09iamVjdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TlBKU09iamVjdDo6anNPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpOUEpT
T2JqZWN0Ojp0b05QSlNPYmplY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OUFJ1
bnRpbWVPYmplY3RNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUFJ1bnRpbWVPYmplY3RNYXA6
Om5wSlNPYmplY3REZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpOUFJ1bnRpbWVPYmplY3RN
YXA6Omdsb2JhbEV4ZWMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OUFJ1bnRpbWVP
YmplY3RNYXAuaDoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKKzIwMTAtMDctMjcg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIFJvYmVuLgogCiAgICAgICAgIFJlbmFtZSBOUEpTT2JqZWN0TWFwIHRvIE5QUnVu
dGltZU9iamVjdE1hcApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwZGVkNDVhMDljZTk5ZDZmMDEwNmIxYTM3NjQxMmU2YjMwYmI1Y2RjLi43YThjYmJmOTM0
MzM2OGYxNjM0NjU0ZDU4Y2I1ZDc0MGY4YjEwNjY5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEsNiArNzEsOCBAQAogCQkxQUE1ODg5MzExRUU3MDQw
MDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNTg4OTExMUVFNzA0MDAwNjFCODgyIC8qIE5l
dHNjYXBlUGx1Z2luU3RyZWFtLmNwcCAqLzsgfTsKIAkJMUFBREU2RkYxMEQ4NTVGQzAwRDNENjNE
IC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBREU2RkUxMEQ4NTVGQzAwRDNENjNEIC8qIEFw
cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovOyB9OwogCQkxQUUxMTdGNjExREJCMzA5MDA5
ODE2MTUgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTExN0Y1MTFEQkIzMDkwMDk4MTYxNSAvKiBQcm9jZXNzTGF1
bmNoZXIuY3BwICovOyB9OworCQkxQUU0OTc2ODExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFNDk3
NjYxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuaCAqLzsgfTsKKwkJMUFFNDk3NjkxMUZG
NjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFNDk3NjcxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmpl
Y3QuY3BwICovOyB9OwogCQkxQUU1QjdGQjExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2NhcGVQbHVn
aW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0gKi87IH07CiAJ
CTFBRUZDQzEyMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRUZDQzEwMTFEMDFGOTYwMDgy
MTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCAqLzsgfTsKIAkJMUFFRkNDMTMxMUQwMUY5NjAwODIx
OUQzIC8qIFBsdWdpbkluZm9TdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUVGQ0MxMTExRDAxRjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0
b3JlLmNwcCAqLzsgfTsKQEAgLTM1Niw2ICszNTgsOCBAQAogCQkxQUE1ODg5MTExRUU3MDQwMDA2
MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQUFERTZGRTEwRDg1NUZDMDBEM0Q2M0QgLyogQXBwbGljYXRpb25TZXJ2
aWNlcy5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcGxpY2F0aW9uU2VydmljZXMuZnJh
bWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZp
Y2VzLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJCTFBRTExN0Y1MTFEQkIz
MDkwMDk4MTYxNSAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJvY2Vzc0xhdW5jaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUFFNDk3NjYxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlBKU09iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQUU0OTc2NzExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOUEpTT2JqZWN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFNUI3RjkxMUU3QUVEMjAwQkE2NzY3IC8qIE5l
dHNjYXBlUGx1Z2luTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTmV0c2NhcGVQbHVnaW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
RUZDQzEwMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luSW5mb1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBRUZDQzExMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2luSW5mb1N0b3Jl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3Myw2ICs2NzcsOCBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQTZGQjkwODExRTY2RkIxMDBE
QjEzNzEgLyogTmV0c2NhcGUgKi8sCisJCQkJMUFFNDk3NjcxMUZGNjU4RTAwNDhCNDY0IC8qIE5Q
SlNPYmplY3QuY3BwICovLAorCQkJCTFBRTQ5NzY2MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2Jq
ZWN0LmggKi8sCiAJCQkJMUEyMTYxQUYxMUYzNzY2NDAwOEFEMEY1IC8qIE5QUnVudGltZU9iamVj
dE1hcC5jcHAgKi8sCiAJCQkJMUEyMTYxQUUxMUYzNzY2NDAwOEFEMEY1IC8qIE5QUnVudGltZU9i
amVjdE1hcC5oICovLAogCQkJCTFBMjE2MkFFMTFGMzg5NzEwMDhBRDBGNSAvKiBOUFJ1bnRpbWVV
dGlsaXRpZXMuY3BwICovLApAQCAtMTI4MSw2ICsxMjg3LDcgQEAKIAkJCQlFMUVFNTYzMDExRjhG
NkFBMDBDQ0JFRTQgLyogV0tCdW5kbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0YwNDlF
NjExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVGcmFtZVByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFBRTQ5NzY4MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTE0NzgsNiArMTQ4NSw3IEBACiAJCQkJRTFFRTUzRTcxMUY4Q0ZG
QjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMUVFNTVGODExRjhGMUJDMDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMUVFNTY1NjExRjhGNzE3MDBDQ0JFRTQgLyogV0tCdW5kbGVO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBRTQ5NzY5MTFGRjY1OEUwMDQ4QjQ2NCAvKiBO
UEpTT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTlBKU09iamVjdC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
UEpTT2JqZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmU2ZGEzZjBhNDIzYWRkNTU4MzhlNGQ5M2FiYzJh
OTJmOTUwZDBiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TlBKU09iamVjdC5jcHAKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
TlBKU09iamVjdC5oIgorCisjaW5jbHVkZSAiTlBSdW50aW1lT2JqZWN0TWFwLmgiCisjaW5jbHVk
ZSAiTlBSdW50aW1lVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5o
PiAgCisjaW5jbHVkZSA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybVN0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOUEpTT2JqZWN0KiBOUEpTT2Jq
ZWN0OjpjcmVhdGUoTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIEpTT2JqZWN0KiBqc09i
amVjdCkKK3sKKyAgICBOUEpTT2JqZWN0KiBucEpTT2JqZWN0ID0gdG9OUEpTT2JqZWN0KGNyZWF0
ZU5QT2JqZWN0KDAsIG5wQ2xhc3MoKSkpOworICAgIG5wSlNPYmplY3QtPmluaXRpYWxpemUob2Jq
ZWN0TWFwLCBqc09iamVjdCk7CisKKyAgICByZXR1cm4gbnBKU09iamVjdDsKK30KKworTlBKU09i
amVjdDo6TlBKU09iamVjdCgpCisgICAgOiBtX29iamVjdE1hcCgwKQoreworfQorCitOUEpTT2Jq
ZWN0Ojp+TlBKU09iamVjdCgpCit7CisgICAgbV9vYmplY3RNYXAtPm5wSlNPYmplY3REZXN0cm95
ZWQodGhpcyk7Cit9CisKK2Jvb2wgTlBKU09iamVjdDo6aXNOUEpTT2JqZWN0KE5QT2JqZWN0KiBu
cE9iamVjdCkKK3sKKyAgICByZXR1cm4gbnBPYmplY3QtPl9jbGFzcyA9PSBucENsYXNzKCk7Cit9
CisKK3ZvaWQgTlBKU09iamVjdDo6aW5pdGlhbGl6ZShOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVj
dE1hcCwgSlNPYmplY3QqIGpzT2JqZWN0KQoreworICAgIEFTU0VSVCghbV9vYmplY3RNYXApOwor
ICAgIEFTU0VSVCghbV9qc09iamVjdCk7CisKKyAgICBtX29iamVjdE1hcCA9IG9iamVjdE1hcDsK
KyAgICBtX2pzT2JqZWN0ID0ganNPYmplY3Q7Cit9CisKK3N0YXRpYyBJZGVudGlmaWVyIGlkZW50
aWZpZXJGcm9tSWRlbnRpZmllclJlcChFeGVjU3RhdGUqIGV4ZWMsIElkZW50aWZpZXJSZXAqIGlk
ZW50aWZpZXJSZXApCit7CisgICAgQVNTRVJUKGlkZW50aWZpZXJSZXAtPmlzU3RyaW5nKCkpOwor
CisgICAgY29uc3QgY2hhciogc3RyaW5nID0gaWRlbnRpZmllclJlcC0+c3RyaW5nKCk7CisgICAg
aW50IGxlbmd0aCA9IHN0cmxlbihzdHJpbmcpOworCisgICAgcmV0dXJuIElkZW50aWZpZXIoZXhl
YywgU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhzdHJpbmcsIGxlbmd0aCkuaW1w
bCgpKTsKK30KKworYm9vbCBOUEpTT2JqZWN0OjpoYXNQcm9wZXJ0eShOUElkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBJZGVudGlmaWVyUmVwKiBpZGVudGlmaWVyUmVwID0gc3RhdGljX2Nh
c3Q8SWRlbnRpZmllclJlcCo+KGlkZW50aWZpZXIpOworICAgIAorICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IG1fb2JqZWN0TWFwLT5nbG9iYWxFeGVjKCk7CisgICAgaWYgKCFleGVjKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgYm9vbCByZXN1bHQ7CisgICAgaWYgKGlkZW50aWZpZXJS
ZXAtPmlzU3RyaW5nKCkpCisgICAgICAgIHJlc3VsdCA9IG1fanNPYmplY3QtPmhhc1Byb3BlcnR5
KGV4ZWMsIGlkZW50aWZpZXJGcm9tSWRlbnRpZmllclJlcChleGVjLCBpZGVudGlmaWVyUmVwKSk7
CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBtX2pzT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVj
LCBpZGVudGlmaWVyUmVwLT5udW1iZXIoKSk7CisKKyAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigp
OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBOUEpTT2JqZWN0OjpnZXRQcm9wZXJ0
eShOUElkZW50aWZpZXIgaWRlbnRpZmllciwgTlBWYXJpYW50KiByZXN1bHQpCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK05QQ2xhc3MqIE5QSlNP
YmplY3Q6Om5wQ2xhc3MoKQoreworICAgIHN0YXRpYyBOUENsYXNzIG5wQ2xhc3MgPSB7CisgICAg
ICAgIE5QX0NMQVNTX1NUUlVDVF9WRVJTSU9OLAorICAgICAgICBOUF9BbGxvY2F0ZSwKKyAgICAg
ICAgTlBfRGVhbGxvY2F0ZSwKKyAgICAgICAgMCwgCisgICAgICAgIDAsCisgICAgICAgIDAsCisg
ICAgICAgIDAsCisgICAgICAgIE5QX0hhc1Byb3BlcnR5LAorICAgICAgICBOUF9HZXRQcm9wZXJ0
eSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMAorICAgIH07
CisKKyAgICByZXR1cm4gJm5wQ2xhc3M7Cit9CisgICAgCitOUE9iamVjdCogTlBKU09iamVjdDo6
TlBfQWxsb2NhdGUoTlBQIG5wcCwgTlBDbGFzcyogbnBDbGFzcykKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKG5wcCwgIW5wcCk7CisKKyAgICByZXR1cm4gbmV3IE5QSlNPYmplY3Q7Cit9CisKK3ZvaWQg
TlBKU09iamVjdDo6TlBfRGVhbGxvY2F0ZShOUE9iamVjdCogbnBPYmplY3QpCit7CisgICAgTlBK
U09iamVjdCogbnBKU09iamVjdCA9IHRvTlBKU09iamVjdChucE9iamVjdCk7CisgICAgZGVsZXRl
IG5wSlNPYmplY3Q7Cit9CisKK2Jvb2wgTlBKU09iamVjdDo6TlBfSGFzUHJvcGVydHkoTlBPYmpl
Y3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKQoreworICAgIHJldHVybiB0
b05QSlNPYmplY3QobnBPYmplY3QpLT5oYXNQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOworfQorICAg
IAorYm9vbCBOUEpTT2JqZWN0OjpOUF9HZXRQcm9wZXJ0eShOUE9iamVjdCogbnBPYmplY3QsIE5Q
SWRlbnRpZmllciBwcm9wZXJ0eU5hbWUsIE5QVmFyaWFudCogcmVzdWx0KQoreworICAgIHJldHVy
biB0b05QSlNPYmplY3QobnBPYmplY3QpLT5nZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIHJlc3Vs
dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTlBKU09iamVjdC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TlBKU09iamVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmYzZmMDhlMTJiNjkwMzNjYzU0N2I2MTI2Mjg0ZTA2
MGVjZDVhMzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
UEpTT2JqZWN0LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTlBKU09i
amVjdF9oCisjZGVmaW5lIE5QSlNPYmplY3RfaAorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
UHJvdGVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvbnBydW50aW1lLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBKU0MgeworICAgIGNsYXNzIEpTT2JqZWN0Owor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTlBSdW50aW1lT2JqZWN0TWFwOworICAg
IAorLy8gTlBKU09iamVjdCBpcyBhbiBOUE9iamVjdCB0aGF0IHdyYXBwZXMgYSBKYXZhU2NyaXB0
IG9iamVjdC4KK2NsYXNzIE5QSlNPYmplY3QgOiBwdWJsaWMgTlBPYmplY3QsIE5vbmNvcHlhYmxl
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgTlBKU09iamVjdCogY3JlYXRlKE5QUnVudGltZU9iamVj
dE1hcCogb2JqZWN0TWFwLCBKU0M6OkpTT2JqZWN0KiBqc09iamVjdCk7CisKKyAgICBKU0M6OkpT
T2JqZWN0KiBqc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fanNPYmplY3QuZ2V0KCk7IH0KKwor
cHJpdmF0ZToKKyAgICBOUEpTT2JqZWN0KCk7CisgICAgfk5QSlNPYmplY3QoKTsKKworICAgIHN0
YXRpYyBib29sIGlzTlBKU09iamVjdChOUE9iamVjdCopOworCisgICAgc3RhdGljIE5QSlNPYmpl
Y3QqIHRvTlBKU09iamVjdChOUE9iamVjdCogbnBPYmplY3QpCisgICAgeworICAgICAgICBBU1NF
UlQoaXNOUEpTT2JqZWN0KG5wT2JqZWN0KSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxO
UEpTT2JqZWN0Kj4obnBPYmplY3QpOworICAgIH0KKworICAgIHZvaWQgaW5pdGlhbGl6ZShOUFJ1
bnRpbWVPYmplY3RNYXAqLCBKU0M6OkpTT2JqZWN0KiBqc09iamVjdCk7CisKKyAgICBib29sIGhh
c1Byb3BlcnR5KE5QSWRlbnRpZmllcik7CisgICAgYm9vbCBnZXRQcm9wZXJ0eShOUElkZW50aWZp
ZXIsIE5QVmFyaWFudCogcmVzdWx0KTsKKworICAgIHN0YXRpYyBOUENsYXNzKiBucENsYXNzKCk7
CisgICAgc3RhdGljIE5QT2JqZWN0KiBOUF9BbGxvY2F0ZShOUFAsIE5QQ2xhc3MqKTsKKyAgICBz
dGF0aWMgdm9pZCBOUF9EZWFsbG9jYXRlKE5QT2JqZWN0Kik7CisgICAgc3RhdGljIGJvb2wgTlBf
SGFzUHJvcGVydHkoTlBPYmplY3QqIG5wb2JqLCBOUElkZW50aWZpZXIgbmFtZSk7CisgICAgc3Rh
dGljIGJvb2wgTlBfR2V0UHJvcGVydHkoTlBPYmplY3QqIG5wb2JqLCBOUElkZW50aWZpZXIgbmFt
ZSwgTlBWYXJpYW50KiByZXN1bHQpOworICAgIAorICAgIE5QUnVudGltZU9iamVjdE1hcCogbV9v
YmplY3RNYXA7CisgICAgSlNDOjpQcm90ZWN0ZWRQdHI8SlNDOjpKU09iamVjdD4gbV9qc09iamVj
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTlBKU09iamVjdF9o
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OUFJ1bnRpbWVPYmplY3RN
YXAuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTlBSdW50aW1lT2JqZWN0TWFwLmNw
cAppbmRleCA5MGRhOGIxMzJlMjEwZjNiMGEzMGJhYzkwYjYyM2IxNmM4NzI2M2I3Li5lMjgwYmM3
ODIyZDFhZWQ5YTExMTk1MjU4MmZlOWYyZDBmYTBiZjczIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCisrKyBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05QUnVudGltZU9iamVjdE1hcC5jcHAKQEAgLTI1LDE2MSArMjUsMTYg
QEAKIAogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgogCisjaW5jbHVkZSAiTlBKU09i
amVjdC5oIgogI2luY2x1ZGUgIk5QUnVudGltZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsdWdp
blZpZXcuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9J
ZGVudGlmaWVyUmVwLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KLSNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm90ZWN0Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0L25wcnVu
dGltZS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1j
bGFzcyBOUEpTT2JqZWN0IDogcHVibGljIE5QT2JqZWN0LCBOb25jb3B5YWJsZSB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIE5QSlNPYmplY3QqIGNyZWF0ZShOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVj
dE1hcCwgSlNPYmplY3QqIGpzT2JqZWN0KTsKLQotcHJpdmF0ZToKLSAgICBOUEpTT2JqZWN0KCkK
LSAgICAgICAgOiBtX29iamVjdE1hcCgwKQotICAgIHsKLSAgICB9Ci0KLSAgICB+TlBKU09iamVj
dCgpCi0gICAgewotICAgICAgICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGZyb20gdGhlIG1hcC4KLSAg
ICAgICAgQVNTRVJUKG1fb2JqZWN0TWFwLT5tX29iamVjdHMuY29udGFpbnMobV9qc09iamVjdC5n
ZXQoKSkpOwotICAgICAgICBtX29iamVjdE1hcC0+bV9vYmplY3RzLnJlbW92ZShtX2pzT2JqZWN0
LmdldCgpKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpc05QSlNPYmplY3QoTlBPYmplY3Qq
KTsKLQotICAgIHN0YXRpYyBOUEpTT2JqZWN0KiB0b05QSlNPYmplY3QoTlBPYmplY3QqIG5wT2Jq
ZWN0KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzTlBKU09iamVjdChucE9iamVjdCkpOwotICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlBKU09iamVjdCo+KG5wT2JqZWN0KTsKLSAgICB9Ci0K
LSAgICB2b2lkIGluaXRpYWxpemUoTlBSdW50aW1lT2JqZWN0TWFwKiwgSlNPYmplY3QqIGpzT2Jq
ZWN0KTsKLQotICAgIGJvb2wgaGFzUHJvcGVydHkoTlBJZGVudGlmaWVyKTsKLSAgICBib29sIGdl
dFByb3BlcnR5KE5QSWRlbnRpZmllciwgTlBWYXJpYW50KiByZXN1bHQpOwotCi0gICAgc3RhdGlj
IE5QQ2xhc3MqIG5wQ2xhc3MoKTsKLSAgICBzdGF0aWMgTlBPYmplY3QqIE5QX0FsbG9jYXRlKE5Q
UCwgTlBDbGFzcyopOwotICAgIHN0YXRpYyB2b2lkIE5QX0RlYWxsb2NhdGUoTlBPYmplY3QqKTsK
LSAgICBzdGF0aWMgYm9vbCBOUF9IYXNQcm9wZXJ0eShOUE9iamVjdCogbnBvYmosIE5QSWRlbnRp
ZmllciBuYW1lKTsKLSAgICBzdGF0aWMgYm9vbCBOUF9HZXRQcm9wZXJ0eShOUE9iamVjdCogbnBv
YmosIE5QSWRlbnRpZmllciBuYW1lLCBOUFZhcmlhbnQqIHJlc3VsdCk7Ci0gICAgCi0gICAgTlBS
dW50aW1lT2JqZWN0TWFwKiBtX29iamVjdE1hcDsKLSAgICBQcm90ZWN0ZWRQdHI8SlNPYmplY3Q+
IG1fanNPYmplY3Q7Ci19OwotCi1OUEpTT2JqZWN0KiBOUEpTT2JqZWN0OjpjcmVhdGUoTlBSdW50
aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIEpTT2JqZWN0KiBqc09iamVjdCkKLXsKLSAgICBOUEpT
T2JqZWN0KiBucEpTT2JqZWN0ID0gdG9OUEpTT2JqZWN0KGNyZWF0ZU5QT2JqZWN0KDAsIG5wQ2xh
c3MoKSkpOwotICAgIG5wSlNPYmplY3QtPmluaXRpYWxpemUob2JqZWN0TWFwLCBqc09iamVjdCk7
Ci0KLSAgICByZXR1cm4gbnBKU09iamVjdDsKLX0KLQotYm9vbCBOUEpTT2JqZWN0Ojppc05QSlNP
YmplY3QoTlBPYmplY3QqIG5wT2JqZWN0KQotewotICAgIHJldHVybiBucE9iamVjdC0+X2NsYXNz
ID09IG5wQ2xhc3MoKTsKLX0KLQotdm9pZCBOUEpTT2JqZWN0Ojppbml0aWFsaXplKE5QUnVudGlt
ZU9iamVjdE1hcCogb2JqZWN0TWFwLCBKU09iamVjdCoganNPYmplY3QpCi17Ci0gICAgQVNTRVJU
KCFtX29iamVjdE1hcCk7Ci0gICAgQVNTRVJUKCFtX2pzT2JqZWN0KTsKLQotICAgIG1fb2JqZWN0
TWFwID0gb2JqZWN0TWFwOwotICAgIG1fanNPYmplY3QgPSBqc09iamVjdDsKLX0KLQotc3RhdGlj
IElkZW50aWZpZXIgaWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKEV4ZWNTdGF0ZSogZXhlYywg
SWRlbnRpZmllclJlcCogaWRlbnRpZmllclJlcCkKLXsKLSAgICBBU1NFUlQoaWRlbnRpZmllclJl
cC0+aXNTdHJpbmcoKSk7Ci0KLSAgICBjb25zdCBjaGFyKiBzdHJpbmcgPSBpZGVudGlmaWVyUmVw
LT5zdHJpbmcoKTsKLSAgICBpbnQgbGVuZ3RoID0gc3RybGVuKHN0cmluZyk7Ci0KLSAgICByZXR1
cm4gSWRlbnRpZmllcihleGVjLCBTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKHN0
cmluZywgbGVuZ3RoKS5pbXBsKCkpOwotfQotCi1ib29sIE5QSlNPYmplY3Q6Omhhc1Byb3BlcnR5
KE5QSWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIElkZW50aWZpZXJSZXAqIGlkZW50aWZp
ZXJSZXAgPSBzdGF0aWNfY2FzdDxJZGVudGlmaWVyUmVwKj4oaWRlbnRpZmllcik7Ci0gICAgCi0g
ICAgRnJhbWUqIGZyYW1lID0gbV9vYmplY3RNYXAtPm1fcGx1Z2luVmlldy0+ZnJhbWUoKTsKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBib29sIHJlc3VsdDsK
LSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBmcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChwbHVn
aW5Xb3JsZCgpKS0+Z2xvYmFsRXhlYygpOwotICAgIGlmIChpZGVudGlmaWVyUmVwLT5pc1N0cmlu
ZygpKQotICAgICAgICByZXN1bHQgPSBtX2pzT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBpZGVu
dGlmaWVyRnJvbUlkZW50aWZpZXJSZXAoZXhlYywgaWRlbnRpZmllclJlcCkpOwotICAgIGVsc2UK
LSAgICAgICAgcmVzdWx0ID0gbV9qc09iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnRpZmll
clJlcC0+bnVtYmVyKCkpOwotCi0gICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKLQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgTlBKU09iamVjdDo6Z2V0UHJvcGVydHkoTlBJZGVudGlm
aWVyIGlkZW50aWZpZXIsIE5QVmFyaWFudCogcmVzdWx0KQotewotICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQuCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1OUENsYXNzKiBOUEpTT2JqZWN0OjpucENs
YXNzKCkKLXsKLSAgICBzdGF0aWMgTlBDbGFzcyBucENsYXNzID0gewotICAgICAgICBOUF9DTEFT
U19TVFJVQ1RfVkVSU0lPTiwKLSAgICAgICAgTlBfQWxsb2NhdGUsCi0gICAgICAgIE5QX0RlYWxs
b2NhdGUsCi0gICAgICAgIDAsIAotICAgICAgICAwLAotICAgICAgICAwLAotICAgICAgICAwLAot
ICAgICAgICBOUF9IYXNQcm9wZXJ0eSwKLSAgICAgICAgTlBfR2V0UHJvcGVydHksCi0gICAgICAg
IDAsCi0gICAgICAgIDAsCi0gICAgICAgIDAsCi0gICAgICAgIDAKLSAgICB9OwotCi0gICAgcmV0
dXJuICZucENsYXNzOwotfQotICAgIAotTlBPYmplY3QqIE5QSlNPYmplY3Q6Ok5QX0FsbG9jYXRl
KE5QUCBucHAsIE5QQ2xhc3MqIG5wQ2xhc3MpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChucHAsICFu
cHApOwotCi0gICAgcmV0dXJuIG5ldyBOUEpTT2JqZWN0OwotfQotCi12b2lkIE5QSlNPYmplY3Q6
Ok5QX0RlYWxsb2NhdGUoTlBPYmplY3QqIG5wT2JqZWN0KQotewotICAgIE5QSlNPYmplY3QqIG5w
SlNPYmplY3QgPSB0b05QSlNPYmplY3QobnBPYmplY3QpOwotICAgIGRlbGV0ZSBucEpTT2JqZWN0
OwotfQotCi1ib29sIE5QSlNPYmplY3Q6Ok5QX0hhc1Byb3BlcnR5KE5QT2JqZWN0KiBucE9iamVj
dCwgTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gdG9OUEpTT2JqZWN0
KG5wT2JqZWN0KS0+aGFzUHJvcGVydHkocHJvcGVydHlOYW1lKTsKLX0KLSAgICAKLWJvb2wgTlBK
U09iamVjdDo6TlBfR2V0UHJvcGVydHkoTlBPYmplY3QqIG5wT2JqZWN0LCBOUElkZW50aWZpZXIg
cHJvcGVydHlOYW1lLCBOUFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXR1cm4gdG9OUEpTT2Jq
ZWN0KG5wT2JqZWN0KS0+Z2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCByZXN1bHQpOwotfQogCiBO
UFJ1bnRpbWVPYmplY3RNYXA6Ok5QUnVudGltZU9iamVjdE1hcChQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3KQogICAgIDogbV9wbHVnaW5WaWV3KHBsdWdpblZpZXcpCkBAIC0yMDAsNiArNTUsMTMgQEAg
TlBPYmplY3QqIE5QUnVudGltZU9iamVjdE1hcDo6Z2V0T3JDcmVhdGVOUE9iamVjdChKU09iamVj
dCoganNPYmplY3QpCiAgICAgcmV0dXJuIG5wSlNPYmplY3Q7CiB9CiAKK3ZvaWQgTlBSdW50aW1l
T2JqZWN0TWFwOjpucEpTT2JqZWN0RGVzdHJveWVkKE5QSlNPYmplY3QqIG5wSlNPYmplY3QpCit7
CisgICAgLy8gUmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgbWFwLgorICAgIEFTU0VSVChtX29i
amVjdHMuY29udGFpbnMobnBKU09iamVjdC0+anNPYmplY3QoKSkpOworICAgIG1fb2JqZWN0cy5y
ZW1vdmUobnBKU09iamVjdC0+anNPYmplY3QoKSk7Cit9CisKIHZvaWQgTlBSdW50aW1lT2JqZWN0
TWFwOjppbnZhbGlkYXRlKCkKIHsKICAgICBWZWN0b3I8TlBKU09iamVjdCo+IG5wSlNPYmplY3Rz
OwpAQCAtMjEzLDQgKzc1LDE0IEBAIHZvaWQgTlBSdW50aW1lT2JqZWN0TWFwOjppbnZhbGlkYXRl
KCkKICAgICBBU1NFUlQobV9vYmplY3RzLmlzRW1wdHkoKSk7CiB9CiAKK0V4ZWNTdGF0ZSogTlBS
dW50aW1lT2JqZWN0TWFwOjpnbG9iYWxFeGVjKCkgY29uc3QKK3sKKyAgICBGcmFtZSogZnJhbWUg
PSBtX3BsdWdpblZpZXctPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgCisgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KHBsdWdp
bldvcmxkKCkpLT5nbG9iYWxFeGVjKCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OUFJ1bnRpbWVPYmplY3RNYXAu
aCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05QUnVudGltZU9iamVjdE1hcC5oCmluZGV4
IDQzZDViNzgxODFkYTUxMTg5NTQzMjdkNmEzYjg0NGRhZWExNjc1ZWUuLjYxNTIyMWQyYzcwNzU1
MWQ2ZmI1OWE5ODk5YjhkZDY0MWM1OTg1ZjQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05QUnVudGltZU9iamVjdE1hcC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC0zMSw2ICszMSw3IEBACiBzdHJ1Y3QgTlBP
YmplY3Q7CiAKIG5hbWVzcGFjZSBKU0MgeworICAgIGNsYXNzIEV4ZWNTdGF0ZTsKICAgICBjbGFz
cyBKU09iamVjdDsKIH0KIApAQCAtNDAsNyArNDEsNiBAQCBjbGFzcyBOUEpTT2JqZWN0OwogY2xh
c3MgUGx1Z2luVmlldzsKIAogLy8gQSBwZXIgcGx1Zy1pbiBtYXAgb2YgTlBPYmplY3RzIHRoYXQg
d3JhcCBKYXZhU2NyaXB0IG9iamVjdHMuCi0KIGNsYXNzIE5QUnVudGltZU9iamVjdE1hcCB7CiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgTlBSdW50aW1lT2JqZWN0TWFwKFBsdWdpblZpZXcqKTsKQEAg
LTQ5LDEwICs0OSwxNCBAQCBwdWJsaWM6CiAgICAgLy8gcmV0YWluIGl0IGFuZCByZXR1cm4gaXQu
CiAgICAgTlBPYmplY3QqIGdldE9yQ3JlYXRlTlBPYmplY3QoSlNDOjpKU09iamVjdCopOwogCisg
ICAgdm9pZCBucEpTT2JqZWN0RGVzdHJveWVkKE5QSlNPYmplY3QqKTsKKworICAgIC8vIENhbGxl
ZCB3aGVuIHRoZSBwbHVnLWluIGlzIGRlc3Ryb3llZC4gV2lsbCBpbnZhbGlkYXRlIGFsbCB0aGUg
TlBPYmplY3RzLgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCisgICAgSlNDOjpFeGVjU3RhdGUq
IGdsb2JhbEV4ZWMoKSBjb25zdDsKKwogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgTlBKU09i
amVjdDsKICAgICBQbHVnaW5WaWV3KiBtX3BsdWdpblZpZXc7CiAKICAgICBIYXNoTWFwPEpTQzo6
SlNPYmplY3QqLCBOUEpTT2JqZWN0Kj4gbV9vYmplY3RzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCA3YTU0
N2Q4NWQ0MDA4OGIyZWVmYjEzZmU4MzhlYzMxMDYwZWZkNTVmLi5kZjdmYzVhNWU0MDU5MjAwOTlm
ODQzY2Y2NzQ0NDM5NWVhMmNiOGQ2IDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNzUyLDYgKzc1MiwxNCBA
QAogCQkJCU5hbWU9IlBsdWdpbnMiDQogCQkJCT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5QSlNPYmplY3QuY3BwIg0KKwkJCQkJPg0KKwkJ
CQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
UGx1Z2luc1xOUEpTT2JqZWN0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5QUnVudGltZU9iamVj
dE1hcC5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCg==
</data>
<flag name="review"
          id="50955"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>