<?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>29024</bug_id>
          
          <creation_ts>2009-09-08 01:36:13 -0700</creation_ts>
          <short_desc>Make JavaScriptCore compile on platforms with case-insensitive file systems and typeinfo.h in STL</short_desc>
          <delta_ts>2009-09-09 08:01:22 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>0</everconfirmed>
          <reporter name="Kent Hansen">kent.hansen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145282</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-09-08 01:36:13 -0700</bug_when>
    <thetext>JavaScriptCore/runtime/TypeInfo.h clashes with standard header typeinfo.h on certain platforms with case-insensitive file system.
typeinfo.h is being included from another standard header (that we need to include), so we can&apos;t change it.
The proposed fix is to rename TypeInfo.h to JSTypeInfo.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145283</commentid>
    <comment_count>1</comment_count>
      <attachid>39175</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-09-08 01:43:26 -0700</bug_when>
    <thetext>Created attachment 39175
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145285</commentid>
    <comment_count>2</comment_count>
      <attachid>39175</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-09-08 01:55:22 -0700</bug_when>
    <thetext>Comment on attachment 39175
Proposed patch

When renaming a file like this you should update all references to the file so that you don&apos;t break the build.

A few other points:
1) Includes should be kept in alphabetical order.
2) The JS prefix is typically reserved for objects that represent an object within the JavaScript environment (JSArray, JSString, etc).  Maybe this case is ok for the same reason that JSType is ok.
3) Classes live inside files of the same name.  Since you&apos;re renaming the file I suspect that you should rename the class to match.
4) You should explicit about which platform this is intended to fix.  It&apos;s quite clear that JavaScriptCore compiles on Mac OS X and Windows, both of which use case-insensitive file systems.  If roll out this change in the future and only test on those platforms, we&apos;ll break whatever platform it is you&apos;re trying to fix here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145295</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-09-08 02:31:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 39175 [details])
&gt; When renaming a file like this you should update all references to the file so
&gt; that you don&apos;t break the build.

Will fix.

&gt; A few other points:
&gt; 1) Includes should be kept in alphabetical order.

Will fix.

&gt; 2) The JS prefix is typically reserved for objects that represent an object
&gt; within the JavaScript environment (JSArray, JSString, etc).  Maybe this case is
&gt; ok for the same reason that JSType is ok.
&gt; 3) Classes live inside files of the same name.  Since you&apos;re renaming the file
&gt; I suspect that you should rename the class to match.

Renaming the class itself would result in a much larger change.
Is there a better name we can use to avoid hi-jacking the JS prefix?
Renaming the file is the same solution as that already used for WebCore/platform/text/PlatformString.h; see comment near top of file. I&apos;ll update the patch to include a similar comment in JSTypeInfo.h.

&gt; 4) You should explicit about which platform this is intended to fix.  It&apos;s
&gt; quite clear that JavaScriptCore compiles on Mac OS X and Windows, both of which
&gt; use case-insensitive file systems.  If roll out this change in the future and
&gt; only test on those platforms, we&apos;ll break whatever platform it is you&apos;re trying
&gt; to fix here.

I&apos;ve updated the summary and will update the ChangeLog to be more explicit about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145307</commentid>
    <comment_count>4</comment_count>
      <attachid>39178</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-09-08 03:13:23 -0700</bug_when>
    <thetext>Created attachment 39178
Revised patch based on comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145386</commentid>
    <comment_count>5</comment_count>
      <attachid>39178</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 09:28:18 -0700</bug_when>
    <thetext>Comment on attachment 39178
Revised patch based on comments

This looks OK to me, but since Mark reviewed the first patch, I would like to leave him a chance to comment on this one as well.  He can mark it r+/cq+ if he likes what he sees.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145387</commentid>
    <comment_count>6</comment_count>
      <attachid>39178</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-08 09:30:07 -0700</bug_when>
    <thetext>Comment on attachment 39178
Revised patch based on comments

To preserve the file history, you should use &quot;svn mv&quot; instead of just removing the old file and adding the new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145697</commentid>
    <comment_count>7</comment_count>
      <attachid>39259</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-09-09 03:37:42 -0700</bug_when>
    <thetext>Created attachment 39259
updated patch with proper svn copy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145753</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-09-09 08:01:22 -0700</bug_when>
    <thetext>Committed in revision 48207.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39175</attachid>
            <date>2009-09-08 01:43:26 -0700</date>
            <delta_ts>2009-09-08 03:13:23 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>renametypeinfo.diff</filename>
            <type>text/plain</type>
            <size>8489</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA0OGYzNWU0Li4xZmU1MGUyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMDktMDktMDggIEtlbnQgSGFuc2VuICA8a2hhbnNlbkB0cm9sbHRlY2guY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgSmF2YVNj
cmlwdENvcmUgY29tcGlsZSBvbiBwbGF0Zm9ybXMgd2l0aCBjYXNlLWluc2Vuc2l0aXZlIGZpbGUg
c3lzdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
OTAyNAorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBydW50aW1l
L0pTVHlwZUluZm8uaDogUmVuYW1lZCBmcm9tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUlu
Zm8uaC4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorCiAyMDA5LTA5LTA3ICBEcmV3
IFdpbHNvbiAgPGF0d2lsc29uQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0aW5nIHI0ODEy
MSB0byBmaXggV2luZG93cyBidWlsZCBlcnJvcnMuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lw
aQppbmRleCBkZDNjZTYwLi5hNjJlMzk2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXBpCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkK
QEAgLTMyOCw3ICszMjgsNyBAQAogICAgICAgICAgICAgJ3J1bnRpbWUvVGltZW91dENoZWNrZXIu
Y3BwJywKICAgICAgICAgICAgICdydW50aW1lL1RpbWVvdXRDaGVja2VyLmgnLAogICAgICAgICAg
ICAgJ3J1bnRpbWUvVHJhY2luZy5oJywKLSAgICAgICAgICAgICdydW50aW1lL1R5cGVJbmZvLmgn
LAorICAgICAgICAgICAgJ3J1bnRpbWUvSlNUeXBlSW5mby5oJywKICAgICAgICAgICAgICdydW50
aW1lL1VTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL1VTdHJpbmcuaCcsCiAgICAg
ICAgICAgICAnd3JlYy9DaGFyYWN0ZXJDbGFzcy5jcHAnLApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTAyMjkzCi0tLSAv
ZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKQEAgLTAs
MCArMSw3MyBAQAorLy8gLSotIG1vZGU6IGMrKzsgYy1iYXNpYy1vZmZzZXQ6IDQgLSotCisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBKU1R5cGVJbmZvX2gKKyNkZWZpbmUgSlNUeXBlSW5mb19oCisKKyNpbmNs
dWRlICJKU1R5cGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyAgICAvLyBXZWJDb3JlIHVzZXMg
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB0byBtYWtlIGRvY3VtZW50LmFsbCBhbmQgc3R5bGUuZmls
dGVyIHVuZGV0ZWN0YWJsZS4KKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCA9IDE7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxlbWVudHNIYXNJ
bnN0YW5jZSA9IDEgPDwgMTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzSGFz
SW5zdGFuY2UgPSAxIDw8IDI7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UgPSAxIDw8IDM7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE5l
ZWRzVGhpc0NvbnZlcnNpb24gPSAxIDw8IDQ7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhh
c1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90ID0gMSA8PCA1OworICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBIYXNEZWZhdWx0TWFyayA9IDEgPDwgNjsKKworICAgIGNsYXNzIFR5cGVJbmZvIHsK
KyAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKKyAgICBwdWJsaWM6CisgICAgICAgIFR5cGVJbmZv
KEpTVHlwZSB0eXBlLCB1bnNpZ25lZCBmbGFncyA9IDApCisgICAgICAgICAgICA6IG1fdHlwZSh0
eXBlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlIG1lYW5zIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgJiAhT3ZlcnJpZGVzSGFzSW5zdGFuY2Up
CisgICAgICAgICAgICBpZiAoKGZsYWdzICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJy
aWRlc0hhc0luc3RhbmNlKSkgPT0gSW1wbGVtZW50c0hhc0luc3RhbmNlKQorICAgICAgICAgICAg
ICAgIG1fZmxhZ3MgPSBmbGFncyB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2U7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9mbGFncyA9IGZsYWdzOworICAgICAgICB9
CisKKyAgICAgICAgSlNUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKworICAg
ICAgICBib29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
ICYgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZDsgfQorICAgICAgICBib29sIGltcGxlbWVudHNIYXNJ
bnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBJbXBsZW1lbnRzSGFzSW5zdGFuY2U7
IH0KKyAgICAgICAgYm9vbCBvdmVycmlkZXNIYXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmxhZ3MgJiBPdmVycmlkZXNIYXNJbnN0YW5jZTsgfQorICAgICAgICBib29sIG5lZWRzVGhpc0Nv
bnZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgTmVlZHNUaGlzQ29udmVyc2lvbjsg
fQorICAgICAgICBib29sIGhhc1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90KCkgY29uc3QgeyBy
ZXR1cm4gbV9mbGFncyAmIEhhc1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90OyB9CisgICAgICAg
IGJvb2wgaGFzRGVmYXVsdE1hcmsoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgSGFzRGVmYXVs
dE1hcms7IH0KKyAgICAgICAgdW5zaWduZWQgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
OyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBKU1R5cGUgbV90eXBlOworICAgICAgICB1bnNp
Z25lZCBtX2ZsYWdzOworICAgIH07CisKK30KKworI2VuZGlmIC8vIEpTVHlwZUluZm9faApkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggNzc0YTgxYS4uMjlmYjMwOSAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiUHJvcGVy
dHlNYXBIYXNoVGFibGUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIgotI2luY2x1ZGUgIlR5cGVJbmZvLmgiCisjaW5j
bHVkZSAiSlNUeXBlSW5mby5oIgogI2luY2x1ZGUgIlVTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVJbmZvLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwYzEzZWEuLjAwMDAw
MDAKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlSW5mby5oCisrKyAvZGV2L251bGwK
QEAgLTEsNzMgKzAsMCBAQAotLy8gLSotIG1vZGU6IGMrKzsgYy1iYXNpYy1vZmZzZXQ6IDQgLSot
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2lmbmRlZiBUeXBlSW5mb19oCi0jZGVmaW5lIFR5cGVJbmZvX2gKLQotI2lu
Y2x1ZGUgIkpTVHlwZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotICAgIC8vIFdlYkNvcmUgdXNl
cyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1lbnQuYWxsIGFuZCBzdHlsZS5m
aWx0ZXIgdW5kZXRlY3RhYmxlLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW1wbGVtZW50c0hh
c0luc3RhbmNlID0gMSA8PCAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNI
YXNJbnN0YW5jZSA9IDEgPDwgMjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDEgPDwgMzsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
TmVlZHNUaGlzQ29udmVyc2lvbiA9IDEgPDwgNDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
SGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDU7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIEhhc0RlZmF1bHRNYXJrID0gMSA8PCA2OwotCi0gICAgY2xhc3MgVHlwZUluZm8g
ewotICAgICAgICBmcmllbmQgY2xhc3MgSklUOwotICAgIHB1YmxpYzoKLSAgICAgICAgVHlwZUlu
Zm8oSlNUeXBlIHR5cGUsIHVuc2lnbmVkIGZsYWdzID0gMCkKLSAgICAgICAgICAgIDogbV90eXBl
KHR5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIEltcGxlbWVudHNEZWZhdWx0SGFzSW5z
dGFuY2UgbWVhbnMgKEltcGxlbWVudHNIYXNJbnN0YW5jZSAmICFPdmVycmlkZXNIYXNJbnN0YW5j
ZSkKLSAgICAgICAgICAgIGlmICgoZmxhZ3MgJiAoSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3Zl
cnJpZGVzSGFzSW5zdGFuY2UpKSA9PSBJbXBsZW1lbnRzSGFzSW5zdGFuY2UpCi0gICAgICAgICAg
ICAgICAgbV9mbGFncyA9IGZsYWdzIHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX2ZsYWdzID0gZmxhZ3M7Ci0gICAgICAg
IH0KLQotICAgICAgICBKU1R5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0g
ICAgICAgIGJvb2wgbWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxh
Z3MgJiBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOyB9Ci0gICAgICAgIGJvb2wgaW1wbGVtZW50c0hh
c0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEltcGxlbWVudHNIYXNJbnN0YW5j
ZTsgfQotICAgICAgICBib29sIG92ZXJyaWRlc0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4g
bV9mbGFncyAmIE92ZXJyaWRlc0hhc0luc3RhbmNlOyB9Ci0gICAgICAgIGJvb2wgbmVlZHNUaGlz
Q29udmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBOZWVkc1RoaXNDb252ZXJzaW9u
OyB9Ci0gICAgICAgIGJvb2wgaGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25zdCB7
IHJldHVybiBtX2ZsYWdzICYgSGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3Q7IH0KLSAgICAg
ICAgYm9vbCBoYXNEZWZhdWx0TWFyaygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBIYXNEZWZh
dWx0TWFyazsgfQotICAgICAgICB1bnNpZ25lZCBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxh
Z3M7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTVHlwZSBtX3R5cGU7Ci0gICAgICAgIHVu
c2lnbmVkIG1fZmxhZ3M7Ci0gICAgfTsKLQotfQotCi0jZW5kaWYgLy8gVHlwZUluZm9faAo=
</data>
<flag name="review"
          id="20234"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39178</attachid>
            <date>2009-09-08 03:13:23 -0700</date>
            <delta_ts>2009-09-09 03:37:42 -0700</delta_ts>
            <desc>Revised patch based on comments</desc>
            <filename>renametypeinfo.diff</filename>
            <type>text/plain</type>
            <size>13181</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA0OGYzNWU0Li4yYjU5YjZkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMDktMDktMDggIEtlbnQgSGFuc2VuICA8a2hhbnNlbkB0cm9sbHRlY2guY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAyNAorICAgICAgICBNYWtlIEphdmFTY3Jp
cHRDb3JlIGNvbXBpbGUgb24gcGxhdGZvcm1zIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBmaWxlIHN5
c3RlbXMgYW5kIHR5cGVpbmZvLmggaW4gU1RMCisKKyAgICAgICAgVGhlc2UgcGxhdGZvcm1zIGlu
Y2x1ZGUgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMjAwMywgYW5kIFN5bWJpYW4gd2l0aCBNZXRy
b3dlcmtzIGNvbXBpbGVyLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHJ1bnRpbWUvSlNUeXBlSW5mby5oOiBSZW5hbWVkIGZyb20gSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UeXBlSW5mby5oLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisKIDIwMDktMDkt
MDcgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZlcnRp
bmcgcjQ4MTIxIHRvIGZpeCBXaW5kb3dzIGJ1aWxkIGVycm9ycy4KZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5neXBpCmluZGV4IGRkM2NlNjAuLjE1YTBjMGYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQpAQCAtMjU1LDYgKzI1NSw3IEBACiAgICAgICAgICAgICAncnVudGltZS9KU1N0cmlu
Zy5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNTdHJpbmcuaCcsCiAgICAgICAgICAgICAn
cnVudGltZS9KU1R5cGUuaCcsCisgICAgICAgICAgICAncnVudGltZS9KU1R5cGVJbmZvLmgnLAog
ICAgICAgICAgICAgJ3J1bnRpbWUvSlNWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUv
SlNWYWx1ZS5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwJywK
QEAgLTMyOCw3ICszMjksNiBAQAogICAgICAgICAgICAgJ3J1bnRpbWUvVGltZW91dENoZWNrZXIu
Y3BwJywKICAgICAgICAgICAgICdydW50aW1lL1RpbWVvdXRDaGVja2VyLmgnLAogICAgICAgICAg
ICAgJ3J1bnRpbWUvVHJhY2luZy5oJywKLSAgICAgICAgICAgICdydW50aW1lL1R5cGVJbmZvLmgn
LAogICAgICAgICAgICAgJ3J1bnRpbWUvVVN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ3J1bnRp
bWUvVVN0cmluZy5oJywKICAgICAgICAgICAgICd3cmVjL0NoYXJhY3RlckNsYXNzLmNwcCcsCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAxYjYyYWQwLi41ZTM0M2Q4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEx
MSw3ICsxMTEsNyBAQAogCQk1RDVEOEFEMTBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxp
YiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVENUQ4
QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliICovOyB9OwogCQk1RDZBNTY2QjBG
MDU5OTU1MDAyNjYxNDUgLyogVGhyZWFkaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVENkE1NjZBMEYwNTk5NTUwMDI2NjE0NSAvKiBUaHJlYWRp
bmcuY3BwICovOyB9OwogCQk1REU2RTVCMzBFMTcyOEVDMDAxODA0MDcgLyogY3JlYXRlX2hhc2hf
dGFibGUgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjky
QTg1NDAyNTU1OTdEMDFGRjYwRjcgLyogY3JlYXRlX2hhc2hfdGFibGUgKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKLQkJNjUwN0QyOUUwRTg3MUU1RTAwRDdEODk2IC8qIFR5
cGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTA3RDI5NzBFODcxRTRBMDBEN0Q4OTYgLyogVHlwZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2NTA3RDI5RTBFODcxRTVFMDBEN0Q4OTYg
LyogSlNUeXBlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjUwN0QyOTcwRTg3MUU0QTAwRDdEODk2IC8qIEpTVHlwZUluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTkxMjZCRDBCREQxNzI4
MDAxOTIxRkIgLyogQWxsSW5PbmVGaWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1OTEyNkJDMEJERDE3MjgwMDE5MjFGQiAvKiBBbGxJbk9uZUZp
bGUuY3BwICovOyB9OwogCQk2NURGQzkzMzA4RUExNzNBMDBGNzMwMEIgLyogSGFzaFRhYmxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REZDOTJE
MDhFQTE3M0EwMEY3MzAwQiAvKiBIYXNoVGFibGUuY3BwICovOyB9OwogCQk2NUZERTQ5QzBCREQx
RDRBMDBFODAxMTEgLyogQXNzZXJ0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NUUyMTdCODA4RTdFRUNDMDAyM0U1RjYgLyogQXNzZXJ0aW9u
cy5jcHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8tbWlzc2luZy1mb3Jt
YXQtYXR0cmlidXRlIjsgfTsgfTsKQEAgLTU5MCw3ICs1OTAsNyBAQAogCQk1REE0Nzk2NTBDRkJD
RjU2MDA5MzI4QTAgLyogVENQYWNrZWRDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUQ1BhY2tlZENhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVE
QkQxOEFGMEM1NDAxQTcwMEMxNUVBRSAvKiBNYWxsb2Nab25lU3VwcG9ydC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNYWxsb2Nab25lU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1REUzRDBGNDBERDhEREZCMDA0Njg3MTQgLyogV2ViS2l0QXZhaWxh
YmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEF2YWlsYWJp
bGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTA3RDI5NzBFODcxRTRBMDBE
N0Q4OTYgLyogVHlwZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlw
ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjUwN0QyOTcwRTg3MUU0QTAw
RDdEODk2IC8qIEpTVHlwZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNUeXBlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTFGNjQxMjAzOUQ1
QjVGMDA3ODM5NUMgLyogZHRvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBkdG9hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OwogCQk2NTFGNjQxMzAzOUQ1QjVGMDA3ODM5NUMgLyogZHRvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBkdG9hLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjUyMjQ2QTQwQzhE
N0EwRTAwN0JEQUY3IC8qIEhhc2hJdGVyYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSGFzaEl0ZXJhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTUwOSw3ICsxNTA5LDcgQEAKIAkJCQkxNEE0MkUzRTBGNEY2MEVFMDA1OTkwOTkgLyogVGltZW91
dENoZWNrZXIuaCAqLywKIAkJCQk1RDUzNzI2RDBFMUM1NDZCMDAyMUU1NDkgLyogVHJhY2luZy5k
ICovLAogCQkJCTVENTM3MjZFMEUxQzU0ODgwMDIxRTU0OSAvKiBUcmFjaW5nLmggKi8sCi0JCQkJ
NjUwN0QyOTcwRTg3MUU0QTAwRDdEODk2IC8qIFR5cGVJbmZvLmggKi8sCisJCQkJNjUwN0QyOTcw
RTg3MUU0QTAwRDdEODk2IC8qIEpTVHlwZUluZm8uaCAqLywKIAkJCQlGNjkyQTg4NTAyNTU1OTdE
MDFGRjYwRjcgLyogVVN0cmluZy5jcHAgKi8sCiAJCQkJRjY5MkE4ODYwMjU1NTk3RDAxRkY2MEY3
IC8qIFVTdHJpbmcuaCAqLywKIAkJCQlBNzc5NTU4RjEwMUE3NEQ1MDAxMTRFNTUgLyogTWFya1N0
YWNrLmggKi8sCkBAIC0xOTAwLDcgKzE5MDAsNyBAQAogCQkJCUJDMThDNDcxMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBUaHJlYWRTcGVjaWZpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRBNDJFNDAwRjRG
NjBFRTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDUz
NzI2RjBFMUM1NDg4MDAyMUU1NDkgLyogVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNjUw
N0QyOUUwRTg3MUU1RTAwRDdEODk2IC8qIFR5cGVJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk2
NTA3RDI5RTBFODcxRTVFMDBEN0Q4OTYgLyogSlNUeXBlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEI0RDdFNjMwRjMxOUFDODAwQUQ3RTU4IC8qIFR5cGVUcmFpdHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMThDNDcyMEUxNkY1Q0QwMEIzNDQ2MCAvKiB1Y3BpbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NzMwRTE2RjVDRDAwQjM0NDYwIC8qIFVuaWNvZGUuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NzAxM2I1Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVJbmZvLmgKQEAgLTAsMCArMSw3NiBAQAorLy8gLSotIG1vZGU6IGMr
KzsgYy1iYXNpYy1vZmZzZXQ6IDQgLSotCisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBKU1R5cGVJbmZvX2gK
KyNkZWZpbmUgSlNUeXBlSW5mb19oCisKKy8vIFRoaXMgZmlsZSB3b3VsZCBiZSBjYWxsZWQgVHlw
ZUluZm8uaCwgYnV0IHRoYXQgY29uZmxpY3RzIHdpdGggPHR5cGVpbmZvLmg+CisvLyBpbiB0aGUg
U1RMIG9uIHN5c3RlbXMgd2l0aG91dCBjYXNlLXNlbnNpdGl2ZSBmaWxlIHN5c3RlbXMuCisKKyNp
bmNsdWRlICJKU1R5cGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyAgICAvLyBXZWJDb3JlIHVz
ZXMgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB0byBtYWtlIGRvY3VtZW50LmFsbCBhbmQgc3R5bGUu
ZmlsdGVyIHVuZGV0ZWN0YWJsZS4KKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZCA9IDE7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxlbWVudHNI
YXNJbnN0YW5jZSA9IDEgPDwgMTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVz
SGFzSW5zdGFuY2UgPSAxIDw8IDI7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UgPSAxIDw8IDM7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IE5lZWRzVGhpc0NvbnZlcnNpb24gPSAxIDw8IDQ7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEhhc1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90ID0gMSA8PCA1OworICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBIYXNEZWZhdWx0TWFyayA9IDEgPDwgNjsKKworICAgIGNsYXNzIFR5cGVJbmZv
IHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKKyAgICBwdWJsaWM6CisgICAgICAgIFR5cGVJ
bmZvKEpTVHlwZSB0eXBlLCB1bnNpZ25lZCBmbGFncyA9IDApCisgICAgICAgICAgICA6IG1fdHlw
ZSh0eXBlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlIG1lYW5zIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgJiAhT3ZlcnJpZGVzSGFzSW5zdGFu
Y2UpCisgICAgICAgICAgICBpZiAoKGZsYWdzICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92
ZXJyaWRlc0hhc0luc3RhbmNlKSkgPT0gSW1wbGVtZW50c0hhc0luc3RhbmNlKQorICAgICAgICAg
ICAgICAgIG1fZmxhZ3MgPSBmbGFncyB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2U7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9mbGFncyA9IGZsYWdzOworICAgICAg
ICB9CisKKyAgICAgICAgSlNUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKwor
ICAgICAgICBib29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiBtX2Zs
YWdzICYgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZDsgfQorICAgICAgICBib29sIGltcGxlbWVudHNI
YXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBJbXBsZW1lbnRzSGFzSW5zdGFu
Y2U7IH0KKyAgICAgICAgYm9vbCBvdmVycmlkZXNIYXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZmxhZ3MgJiBPdmVycmlkZXNIYXNJbnN0YW5jZTsgfQorICAgICAgICBib29sIG5lZWRzVGhp
c0NvbnZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgTmVlZHNUaGlzQ29udmVyc2lv
bjsgfQorICAgICAgICBib29sIGhhc1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90KCkgY29uc3Qg
eyByZXR1cm4gbV9mbGFncyAmIEhhc1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90OyB9CisgICAg
ICAgIGJvb2wgaGFzRGVmYXVsdE1hcmsoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgSGFzRGVm
YXVsdE1hcms7IH0KKyAgICAgICAgdW5zaWduZWQgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2Zs
YWdzOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBKU1R5cGUgbV90eXBlOworICAgICAgICB1
bnNpZ25lZCBtX2ZsYWdzOworICAgIH07CisKK30KKworI2VuZGlmIC8vIEpTVHlwZUluZm9faApk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggNzc0YTgxYS4uOTFhZGFhYyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2luY2x1ZGUg
IklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJKU1R5cGUuaCIKKyNpbmNsdWRlICJKU1R5cGVJbmZv
LmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5TWFwSGFzaFRhYmxl
LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlQ2hhaW4uaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVUcmFu
c2l0aW9uVGFibGUuaCIKLSNpbmNsdWRlICJUeXBlSW5mby5oIgogI2luY2x1ZGUgIlVTdHJpbmcu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVJbmZvLmggYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1R5cGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIwYzEzZWEuLjAwMDAwMDAKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlSW5m
by5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLy8gLSotIG1vZGU6IGMrKzsgYy1i
YXNpYy1vZmZzZXQ6IDQgLSotCi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBUeXBlSW5mb19oCi0jZGVmaW5l
IFR5cGVJbmZvX2gKLQotI2luY2x1ZGUgIkpTVHlwZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQot
ICAgIC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1l
bnQuYWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5kZXRlY3RhYmxlLgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMSA8PCAxOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBPdmVycmlkZXNIYXNJbnN0YW5jZSA9IDEgPDwgMjsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDEgPDwgMzsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgTmVlZHNUaGlzQ29udmVyc2lvbiA9IDEgPDwgNDsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgSGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDU7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc0RlZmF1bHRNYXJrID0gMSA8PCA2OwotCi0g
ICAgY2xhc3MgVHlwZUluZm8gewotICAgICAgICBmcmllbmQgY2xhc3MgSklUOwotICAgIHB1Ymxp
YzoKLSAgICAgICAgVHlwZUluZm8oSlNUeXBlIHR5cGUsIHVuc2lnbmVkIGZsYWdzID0gMCkKLSAg
ICAgICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgbWVhbnMgKEltcGxlbWVudHNIYXNJbnN0YW5jZSAmICFP
dmVycmlkZXNIYXNJbnN0YW5jZSkKLSAgICAgICAgICAgIGlmICgoZmxhZ3MgJiAoSW1wbGVtZW50
c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UpKSA9PSBJbXBsZW1lbnRzSGFzSW5z
dGFuY2UpCi0gICAgICAgICAgICAgICAgbV9mbGFncyA9IGZsYWdzIHwgSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX2ZsYWdz
ID0gZmxhZ3M7Ci0gICAgICAgIH0KLQotICAgICAgICBKU1R5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQotCi0gICAgICAgIGJvb2wgbWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOyB9Ci0gICAgICAg
IGJvb2wgaW1wbGVtZW50c0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIElt
cGxlbWVudHNIYXNJbnN0YW5jZTsgfQotICAgICAgICBib29sIG92ZXJyaWRlc0hhc0luc3RhbmNl
KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIE92ZXJyaWRlc0hhc0luc3RhbmNlOyB9Ci0gICAg
ICAgIGJvb2wgbmVlZHNUaGlzQ29udmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBO
ZWVkc1RoaXNDb252ZXJzaW9uOyB9Ci0gICAgICAgIGJvb2wgaGFzU3RhbmRhcmRHZXRPd25Qcm9w
ZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgSGFzU3RhbmRhcmRHZXRPd25Qcm9w
ZXJ0eVNsb3Q7IH0KLSAgICAgICAgYm9vbCBoYXNEZWZhdWx0TWFyaygpIGNvbnN0IHsgcmV0dXJu
IG1fZmxhZ3MgJiBIYXNEZWZhdWx0TWFyazsgfQotICAgICAgICB1bnNpZ25lZCBmbGFncygpIGNv
bnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTVHlwZSBt
X3R5cGU7Ci0gICAgICAgIHVuc2lnbmVkIG1fZmxhZ3M7Ci0gICAgfTsKLQotfQotCi0jZW5kaWYg
Ly8gVHlwZUluZm9faAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39259</attachid>
            <date>2009-09-09 03:37:42 -0700</date>
            <delta_ts>2009-09-09 07:48:33 -0700</delta_ts>
            <desc>updated patch with proper svn copy</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13840</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MjA0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDktMDkgIEtlbnQgSGFu
c2VuICA8a2hhbnNlbkB0cm9sbHRlY2guY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTAyNAorICAgICAgICBNYWtlIEphdmFTY3JpcHRDb3JlIGNvbXBpbGUgb24gcGxhdGZv
cm1zIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBmaWxlIHN5c3RlbXMgYW5kIHR5cGVpbmZvLmggaW4g
U1RMCisKKyAgICAgICAgVGhlc2UgcGxhdGZvcm1zIGluY2x1ZGUgTWljcm9zb2Z0IFZpc3VhbCBT
dHVkaW8gMjAwMywgYW5kIFN5bWJpYW4gd2l0aCBNZXRyb3dlcmtzIGNvbXBpbGVyLgorCisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlSW5mby5oOiBD
b3BpZWQgZnJvbSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVJbmZvLmguCisgICAgICAgICog
cnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKiBydW50aW1lL1R5cGVJbmZvLmg6IFJlbW92
ZWQuCisKIDIwMDktMDktMDggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaQkocmV2aXNpb24gNDgyMDQpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsNiArMjU1LDcgQEAKICAgICAgICAg
ICAgICdydW50aW1lL0pTU3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU1N0cmlu
Zy5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTVHlwZS5oJywKKyAgICAgICAgICAgICdydW50
aW1lL0pTVHlwZUluZm8uaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU1ZhbHVlLmNwcCcsCiAg
ICAgICAgICAgICAncnVudGltZS9KU1ZhbHVlLmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNW
YXJpYWJsZU9iamVjdC5jcHAnLApAQCAtMzI4LDcgKzMyOSw2IEBACiAgICAgICAgICAgICAncnVu
dGltZS9UaW1lb3V0Q2hlY2tlci5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUvVGltZW91dENo
ZWNrZXIuaCcsCiAgICAgICAgICAgICAncnVudGltZS9UcmFjaW5nLmgnLAotICAgICAgICAgICAg
J3J1bnRpbWUvVHlwZUluZm8uaCcsCiAgICAgICAgICAgICAncnVudGltZS9VU3RyaW5nLmNwcCcs
CiAgICAgICAgICAgICAncnVudGltZS9VU3RyaW5nLmgnLAogICAgICAgICAgICAgJ3dyZWMvQ2hh
cmFjdGVyQ2xhc3MuY3BwJywKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDgyMDQpCisr
KyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAKIAkJNUQ1RDhBRDEwRTBEMEVCRTAw
RjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxp
YiAqLzsgfTsKIAkJNUQ2QTU2NkIwRjA1OTk1NTAwMjY2MTQ1IC8qIFRocmVhZGluZy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDZBNTY2QTBGMDU5
OTU1MDAyNjYxNDUgLyogVGhyZWFkaW5nLmNwcCAqLzsgfTsKIAkJNURFNkU1QjMwRTE3MjhFQzAw
MTgwNDA3IC8qIGNyZWF0ZV9oYXNoX3RhYmxlIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NTQwMjU1NTk3RDAxRkY2MEY3IC8qIGNyZWF0ZV9oYXNo
X3RhYmxlICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07Ci0JCTY1MDdEMjlF
MEU4NzFFNUUwMEQ3RDg5NiAvKiBUeXBlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjUwN0QyOTcwRTg3MUU0QTAwRDdEODk2IC8qIFR5cGVJbmZv
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNjUw
N0QyOUUwRTg3MUU1RTAwRDdEODk2IC8qIEpTVHlwZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBK
U1R5cGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNjU5MTI2QkQwQkREMTcyODAwMTkyMUZCIC8qIEFsbEluT25lRmlsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTkxMjZCQzBCREQxNzI4
MDAxOTIxRkIgLyogQWxsSW5PbmVGaWxlLmNwcCAqLzsgfTsKIAkJNjVERkM5MzMwOEVBMTczQTAw
RjczMDBCIC8qIEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NURGQzkyRDA4RUExNzNBMDBGNzMwMEIgLyogSGFzaFRhYmxlLmNwcCAq
LzsgfTsKIAkJNjVGREU0OUMwQkREMUQ0QTAwRTgwMTExIC8qIEFzc2VydGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMjE3QjgwOEU3RUVD
QzAwMjNFNUY2IC8qIEFzc2VydGlvbnMuY3BwICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFH
UyA9ICItV25vLW1pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSI7IH07IH07CkBAIC01OTAsNyArNTkw
LDcgQEAKIAkJNURBNDc5NjUwQ0ZCQ0Y1NjAwOTMyOEEwIC8qIFRDUGFja2VkQ2FjaGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVENQYWNrZWRDYWNoZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1REJEMThBRjBDNTQwMUE3MDBDMTVFQUUgLyogTWFsbG9jWm9u
ZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFsbG9jWm9uZVN1
cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURFM0QwRjQwREQ4RERGQjAw
NDY4NzE0IC8qIFdlYktpdEF2YWlsYWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJLaXRBdmFpbGFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNjUwN0QyOTcwRTg3MUU0QTAwRDdEODk2IC8qIFR5cGVJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHlwZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjUxRjY0MTIwMzlENUI1RjAwNzgzOTVDIC8qIGR0b2EuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZHRvYS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjUxRjY0MTMwMzlENUI1
RjAwNzgzOTVDIC8qIGR0b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gZHRvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CiAJCTY1MjI0NkE0MEM4RDdBMEUwMDdCREFGNyAvKiBIYXNoSXRlcmF0b3JzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hJdGVyYXRvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDksNyArMTUwOSw3IEBACiAJCQkJMTRBNDJFM0UwRjRG
NjBFRTAwNTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggKi8sCiAJCQkJNUQ1MzcyNkQwRTFDNTQ2
QjAwMjFFNTQ5IC8qIFRyYWNpbmcuZCAqLywKIAkJCQk1RDUzNzI2RTBFMUM1NDg4MDAyMUU1NDkg
LyogVHJhY2luZy5oICovLAotCQkJCTY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBUeXBlSW5m
by5oICovLAorCQkJCTY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggKi8s
CiAJCQkJRjY5MkE4ODUwMjU1NTk3RDAxRkY2MEY3IC8qIFVTdHJpbmcuY3BwICovLAogCQkJCUY2
OTJBODg2MDI1NTU5N0QwMUZGNjBGNyAvKiBVU3RyaW5nLmggKi8sCiAJCQkJQTc3OTU1OEYxMDFB
NzRENTAwMTE0RTU1IC8qIE1hcmtTdGFjay5oICovLApAQCAtMTkwMCw3ICsxOTAwLDcgQEAKIAkJ
CQlCQzE4QzQ3MTBFMTZGNUNEMDBCMzQ0NjAgLyogVGhyZWFkU3BlY2lmaWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0QTQyRTQwMEY0RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUQ1MzcyNkYwRTFDNTQ4ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCBp
biBIZWFkZXJzICovLAotCQkJCTY1MDdEMjlFMEU4NzFFNUUwMEQ3RDg5NiAvKiBUeXBlSW5mby5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNjUwN0QyOUUwRTg3MUU1RTAwRDdEODk2IC8qIEpTVHlwZUlu
Zm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBCNEQ3RTYzMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBl
VHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3MjBFMTZGNUNEMDBCMzQ0NjAgLyog
dWNwaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDczMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBVbmljb2RlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlSW5mby5oCShyZXZpc2lvbiA0ODIwNCkJKGZyb20gSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
eXBlSW5mby5oOjQ4MjA0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBAQAorLy8gLSotIG1vZGU6IGMrKzsgYy1iYXNp
Yy1vZmZzZXQ6IDQgLSotCisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBlSW5mb19oCisjZGVmaW5lIFR5
cGVJbmZvX2gKKworI2luY2x1ZGUgIkpTVHlwZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworICAg
IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1lbnQu
YWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5kZXRlY3RhYmxlLgorICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMSA8PCAxOworICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBPdmVycmlkZXNIYXNJbnN0YW5jZSA9IDEgPDwgMjsKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDEgPDwgMzsKKyAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgTmVlZHNUaGlzQ29udmVyc2lvbiA9IDEgPDwgNDsKKyAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgSGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDU7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc0RlZmF1bHRNYXJrID0gMSA8PCA2OworCisgICAg
Y2xhc3MgVHlwZUluZm8geworICAgICAgICBmcmllbmQgY2xhc3MgSklUOworICAgIHB1YmxpYzoK
KyAgICAgICAgVHlwZUluZm8oSlNUeXBlIHR5cGUsIHVuc2lnbmVkIGZsYWdzID0gMCkKKyAgICAg
ICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UgbWVhbnMgKEltcGxlbWVudHNIYXNJbnN0YW5jZSAmICFPdmVy
cmlkZXNIYXNJbnN0YW5jZSkKKyAgICAgICAgICAgIGlmICgoZmxhZ3MgJiAoSW1wbGVtZW50c0hh
c0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UpKSA9PSBJbXBsZW1lbnRzSGFzSW5zdGFu
Y2UpCisgICAgICAgICAgICAgICAgbV9mbGFncyA9IGZsYWdzIHwgSW1wbGVtZW50c0RlZmF1bHRI
YXNJbnN0YW5jZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2ZsYWdzID0g
ZmxhZ3M7CisgICAgICAgIH0KKworICAgICAgICBKU1R5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorCisgICAgICAgIGJvb2wgbWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpIGNvbnN0
IHsgcmV0dXJuIG1fZmxhZ3MgJiBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOyB9CisgICAgICAgIGJv
b2wgaW1wbGVtZW50c0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEltcGxl
bWVudHNIYXNJbnN0YW5jZTsgfQorICAgICAgICBib29sIG92ZXJyaWRlc0hhc0luc3RhbmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9mbGFncyAmIE92ZXJyaWRlc0hhc0luc3RhbmNlOyB9CisgICAgICAg
IGJvb2wgbmVlZHNUaGlzQ29udmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBOZWVk
c1RoaXNDb252ZXJzaW9uOyB9CisgICAgICAgIGJvb2wgaGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0
eVNsb3QoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgSGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0
eVNsb3Q7IH0KKyAgICAgICAgYm9vbCBoYXNEZWZhdWx0TWFyaygpIGNvbnN0IHsgcmV0dXJuIG1f
ZmxhZ3MgJiBIYXNEZWZhdWx0TWFyazsgfQorICAgICAgICB1bnNpZ25lZCBmbGFncygpIGNvbnN0
IHsgcmV0dXJuIG1fZmxhZ3M7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEpTVHlwZSBtX3R5
cGU7CisgICAgICAgIHVuc2lnbmVkIG1fZmxhZ3M7CisgICAgfTsKKworfQorCisjZW5kaWYgLy8g
VHlwZUluZm9faApJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgJKHJldmlzaW9u
IDQ4MjA0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDggKzI0LDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVm
IFR5cGVJbmZvX2gKLSNkZWZpbmUgVHlwZUluZm9faAorI2lmbmRlZiBKU1R5cGVJbmZvX2gKKyNk
ZWZpbmUgSlNUeXBlSW5mb19oCisKKy8vIFRoaXMgZmlsZSB3b3VsZCBiZSBjYWxsZWQgVHlwZUlu
Zm8uaCwgYnV0IHRoYXQgY29uZmxpY3RzIHdpdGggPHR5cGVpbmZvLmg+CisvLyBpbiB0aGUgU1RM
IG9uIHN5c3RlbXMgd2l0aG91dCBjYXNlLXNlbnNpdGl2ZSBmaWxlIHN5c3RlbXMuIAogCiAjaW5j
bHVkZSAiSlNUeXBlLmgiCiAKQEAgLTcwLDQgKzczLDQgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIH0K
IAotI2VuZGlmIC8vIFR5cGVJbmZvX2gKKyNlbmRpZiAvLyBKU1R5cGVJbmZvX2gKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gNDgyMDQpCisrKyBKYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW5jbHVkZSAiUHJvcGVydHlNYXBIYXNoVGFibGUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVD
aGFpbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIgotI2luY2x1ZGUg
IlR5cGVJbmZvLmgiCisjaW5jbHVkZSAiSlNUeXBlSW5mby5oIgogI2luY2x1ZGUgIlVTdHJpbmcu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVJbmZvLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlSW5mby5oCShyZXZpc2lvbiA0ODIwNCkKKysr
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw3
MyArMCwwIEBACi0vLyAtKi0gbW9kZTogYysrOyBjLWJhc2ljLW9mZnNldDogNCAtKi0KLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaWZuZGVmIFR5cGVJbmZvX2gKLSNkZWZpbmUgVHlwZUluZm9faAotCi0jaW5jbHVkZSAi
SlNUeXBlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi0gICAgLy8gV2ViQ29yZSB1c2VzIE1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQgdG8gbWFrZSBkb2N1bWVudC5hbGwgYW5kIHN0eWxlLmZpbHRlciB1
bmRldGVjdGFibGUuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1lbnRzSGFzSW5zdGFu
Y2UgPSAxIDw8IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRlc0hhc0luc3Rh
bmNlID0gMSA8PCAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlID0gMSA8PCAzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBOZWVkc1Ro
aXNDb252ZXJzaW9uID0gMSA8PCA0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBIYXNTdGFu
ZGFyZEdldE93blByb3BlcnR5U2xvdCA9IDEgPDwgNTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgSGFzRGVmYXVsdE1hcmsgPSAxIDw8IDY7Ci0KLSAgICBjbGFzcyBUeXBlSW5mbyB7Ci0gICAg
ICAgIGZyaWVuZCBjbGFzcyBKSVQ7Ci0gICAgcHVibGljOgotICAgICAgICBUeXBlSW5mbyhKU1R5
cGUgdHlwZSwgdW5zaWduZWQgZmxhZ3MgPSAwKQotICAgICAgICAgICAgOiBtX3R5cGUodHlwZSkK
LSAgICAgICAgewotICAgICAgICAgICAgLy8gSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSBt
ZWFucyAoSW1wbGVtZW50c0hhc0luc3RhbmNlICYgIU92ZXJyaWRlc0hhc0luc3RhbmNlKQotICAg
ICAgICAgICAgaWYgKChmbGFncyAmIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNI
YXNJbnN0YW5jZSkpID09IEltcGxlbWVudHNIYXNJbnN0YW5jZSkKLSAgICAgICAgICAgICAgICBt
X2ZsYWdzID0gZmxhZ3MgfCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIG1fZmxhZ3MgPSBmbGFnczsKLSAgICAgICAgfQotCi0g
ICAgICAgIEpTVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KLSAgICAgICAg
Ym9vbCBtYXNxdWVyYWRlc0FzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQ7IH0KLSAgICAgICAgYm9vbCBpbXBsZW1lbnRzSGFzSW5zdGFu
Y2UoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgSW1wbGVtZW50c0hhc0luc3RhbmNlOyB9Ci0g
ICAgICAgIGJvb2wgb3ZlcnJpZGVzSGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
ICYgT3ZlcnJpZGVzSGFzSW5zdGFuY2U7IH0KLSAgICAgICAgYm9vbCBuZWVkc1RoaXNDb252ZXJz
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIE5lZWRzVGhpc0NvbnZlcnNpb247IH0KLSAg
ICAgICAgYm9vbCBoYXNTdGFuZGFyZEdldE93blByb3BlcnR5U2xvdCgpIGNvbnN0IHsgcmV0dXJu
IG1fZmxhZ3MgJiBIYXNTdGFuZGFyZEdldE93blByb3BlcnR5U2xvdDsgfQotICAgICAgICBib29s
IGhhc0RlZmF1bHRNYXJrKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIEhhc0RlZmF1bHRNYXJr
OyB9Ci0gICAgICAgIHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQot
Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgSlNUeXBlIG1fdHlwZTsKLSAgICAgICAgdW5zaWduZWQg
bV9mbGFnczsKLSAgICB9OwotCi19Ci0KLSNlbmRpZiAvLyBUeXBlSW5mb19oCg==
</data>
<flag name="review"
          id="20322"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>