<?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>76141</bug_id>
          
          <creation_ts>2012-01-11 19:41:44 -0800</creation_ts>
          <short_desc>Merge &apos;Getter&apos;/&apos;Setter&apos; attributes into &apos;Accessor&apos;</short_desc>
          <delta_ts>2012-01-12 15:52:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>534520</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-11 19:41:44 -0800</bug_when>
    <thetext>These are currently ambiguous (and used inconsistently).  It would logically appear that either being bit set implies that the corresponding type of accessor is present but (a) we don&apos;t correctly enforce this, and (b) this means the attributes would not be able to distinguish between a data descriptor and an accessor descriptor with neither a getter nor setter defined (which is a descriptor permissible under the spec).  This ambiguity would lead to unsafe property caching behavior (though this does not represent an actual current bug, since we are currently unable to create descriptors that have neither a getter nor setter, it just prevents us from doing so).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534522</commentid>
    <comment_count>1</comment_count>
      <attachid>122159</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-11 19:44:05 -0800</bug_when>
    <thetext>Created attachment 122159
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534523</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 19:46:34 -0800</bug_when>
    <thetext>Attachment 122159 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSObject.h:69:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 9 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>534530</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-11 19:53:39 -0800</bug_when>
    <thetext>Fixed in r104784</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534706</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-12 03:19:08 -0800</bug_when>
    <thetext>It caused an assertion on SL, GTK and Qt:

ASSERTION FAILED: value.isGetterSetter() == !!(attributes &amp; Accessor)
../../../../Source/JavaScriptCore/runtime/PropertyDescriptor.cpp(90) : void JSC::PropertyDescriptor::setDescriptor(JSC::JSValue, unsigned int)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534707</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-12 03:21:36 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; It caused an assertion on SL, GTK and Qt:
&gt; 
&gt; ASSERTION FAILED: value.isGetterSetter() == !!(attributes &amp; Accessor)
&gt; ../../../../Source/JavaScriptCore/runtime/PropertyDescriptor.cpp(90) : void JSC::PropertyDescriptor::setDescriptor(JSC::JSValue, unsigned int)

I forgot to mention the name of the test: fast/dom/getter-on-window-object2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534987</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-12 11:11:56 -0800</bug_when>
    <thetext>Sorry I missed this ossy, investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535236</commentid>
    <comment_count>7</comment_count>
      <attachid>122325</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-12 15:46:17 -0800</bug_when>
    <thetext>Created attachment 122325
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535241</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-12 15:52:17 -0800</bug_when>
    <thetext>Fixed the layout test in r104871</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122159</attachid>
            <date>2012-01-11 19:44:05 -0800</date>
            <delta_ts>2012-01-12 03:21:50 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>76141.patch</filename>
            <type>text/plain</type>
            <size>17198</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA0NzgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDEyLTAxLTExICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBNZXJnZSAnR2V0dGVyJy8nU2V0dGVyJyBhdHRyaWJ1dGVzIGludG8gJ0FjY2Vz
c29yJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYx
NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVz
ZSBhcmUgY3VycmVudGx5IGFtYmlndW91cyAoYW5kIHVzZWQgaW5jb25zaXN0ZW50bHkpLiBJdCB3
b3VsZCBsb2dpY2FsbHkgYXBwZWFyCisgICAgICAgIHRoYXQgZWl0aGVyIGJlaW5nIGJpdCBzZXQg
aW1wbGllcyB0aGF0IHRoZSBjb3JyZXNwb25kaW5nIHR5cGUgb2YgYWNjZXNzb3IgaXMgcHJlc2Vu
dAorICAgICAgICBidXQgKGEpIHdlIGRvbid0IGNvcnJlY3RseSBlbmZvcmNlIHRoaXMsIGFuZCAo
YikgdGhpcyBtZWFucyB0aGUgYXR0cmlidXRlcyB3b3VsZCBub3QKKyAgICAgICAgYmUgYWJsZSB0
byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgZGF0YSBkZXNjcmlwdG9yIGFuZCBhbiBhY2Nlc3NvciBk
ZXNjcmlwdG9yIHdpdGgKKyAgICAgICAgbmVpdGhlciBhIGdldHRlciBub3Igc2V0dGVyIGRlZmlu
ZWQgKHdoaWNoIGlzIGEgZGVzY3JpcHRvciBwZXJtaXNzaWJsZSB1bmRlciB0aGUgc3BlYykuCisg
ICAgICAgIFRoaXMgYW1iaWd1aXR5IHdvdWxkIGxlYWQgdG8gdW5zYWZlIHByb3BlcnR5IGNhY2hp
bmcgYmVoYXZpb3IgKHRob3VnaCB0aGlzIGRvZXMgbm90CisgICAgICAgIHJlcHJlc2VudCBhbiBh
Y3R1YWwgY3VycmVudCBidWcsIHNpbmNlIHdlIGFyZSBjdXJyZW50bHkgdW5hYmxlIHRvIGNyZWF0
ZSBkZXNjcmlwdG9ycworICAgICAgICB0aGF0IGhhdmUgbmVpdGhlciBhIGdldHRlciBub3Igc2V0
dGVyLCBpdCBqdXN0IHByZXZlbnRzIHVzIGZyb20gZG9pbmcgc28pLgorCisgICAgICAgICogcnVu
dGltZS9Bcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmNyZWF0ZVN0cmlj
dE1vZGVDYWxsZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6Y3JlYXRl
U3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXku
Y3BwOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjpwdXQpOgorICAgICAgICAo
SlNDOjpKU0FycmF5OjpwdXREZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTQm91bmRGdW5jdGlvbjo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWZpbmVHZXR0ZXIpOgorICAgICAgICAoSlND
OjpKU09iamVjdDo6aW5pdGlhbGl6ZUdldHRlclNldHRlclByb3BlcnR5KToKKyAgICAgICAgKEpT
Qzo6SlNPYmplY3Q6OmRlZmluZVNldHRlcik6CisgICAgICAgIChKU0M6OnB1dERlc2NyaXB0b3Ip
OgorICAgICAgICAoSlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSk6Cisg
ICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoSlNDOjpQ
cm9wZXJ0eURlc2NyaXB0b3I6OnNldERlc2NyaXB0b3IpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3I6OnNldEFjY2Vzc29yRGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OlByb3Bl
cnR5RGVzY3JpcHRvcjo6c2V0U2V0dGVyKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yOjpzZXRHZXR0ZXIpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmF0dHJp
YnV0ZXNPdmVycmlkaW5nQ3VycmVudCk6CisKIDIwMTItMDEtMTEgIEdhdmluIEJhcnJhY2xvdWdo
ICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShbXSwgJ2xlbmd0aCcsIHt9KSBzaG91bGQgbm90IG1ha2UgbGVuZ3RoIHJlYWQtb25seQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCShyZXZpc2lv
biAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBBcmd1bWVudHM6OmNyZWF0
ZVN0cmljdE1vZGVDYWxsZXJJZgogCiAgICAgZC0+b3ZlcnJvZGVDYWxsZXIgPSB0cnVlOwogICAg
IFByb3BlcnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yOwotICAgIGRlc2NyaXB0b3Iuc2V0QWNjZXNz
b3JEZXNjcmlwdG9yKGdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihl
eGVjKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgR2V0dGVyIHwgU2V0dGVyKTsKKyAgICBkZXNj
cmlwdG9yLnNldEFjY2Vzc29yRGVzY3JpcHRvcihnbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJy
b3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IEFjY2Vzc29yKTsK
ICAgICBtZXRob2RUYWJsZSgpLT5kZWZpbmVPd25Qcm9wZXJ0eSh0aGlzLCBleGVjLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuY2FsbGVyLCBkZXNjcmlwdG9yLCBmYWxzZSk7CiB9CiAKQEAgLTEyMCw3
ICsxMjAsNyBAQCB2b2lkIEFyZ3VtZW50czo6Y3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmCiAgICAg
CiAgICAgZC0+b3ZlcnJvZGVDYWxsZWUgPSB0cnVlOwogICAgIFByb3BlcnR5RGVzY3JpcHRvciBk
ZXNjcmlwdG9yOwotICAgIGRlc2NyaXB0b3Iuc2V0QWNjZXNzb3JEZXNjcmlwdG9yKGdsb2JhbE9i
amVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgR2V0dGVyIHwgU2V0dGVyKTsKKyAgICBkZXNjcmlwdG9yLnNldEFjY2Vzc29yRGVz
Y3JpcHRvcihnbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IEFjY2Vzc29yKTsKICAgICBtZXRob2RUYWJsZSgpLT5k
ZWZpbmVPd25Qcm9wZXJ0eSh0aGlzLCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVl
LCBkZXNjcmlwdG9yLCBmYWxzZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuY3BwCShyZXZpc2lvbiAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3
IEBAIGlubGluZSB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnB1dChFeGUKIHsKICAgICBTcGFy
c2VBcnJheUVudHJ5JiBlbnRyeSA9IGFkZChhcnJheSwgaSkuZmlyc3QtPnNlY29uZDsKIAotICAg
IGlmICghKGVudHJ5LmF0dHJpYnV0ZXMgJiAoR2V0dGVyIHwgU2V0dGVyKSkpIHsKKyAgICBpZiAo
IShlbnRyeS5hdHRyaWJ1dGVzICYgQWNjZXNzb3IpKSB7CiAgICAgICAgIGlmIChlbnRyeS5hdHRy
aWJ1dGVzICYgUmVhZE9ubHkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhyb3cg
aWYgYmVpbmcgY2FsbGVkIGZyb20gc3RyaWN0IG1vZGUuCiAgICAgICAgICAgICAvLyB0aHJvd1R5
cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwpAQCAt
MzQ4LDcgKzM0OCw3IEBAIHZvaWQgSlNBcnJheTo6cHV0RGVzY3JpcHRvcihFeGVjU3RhdGUqIGUK
ICAgICAgICAgICAgIGVudHJ5SW5NYXAtPnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGRl
c2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgIGVsc2UgaWYgKG9sZERlc2NyaXB0b3IuaXNBY2Nl
c3NvckRlc2NyaXB0b3IoKSkKICAgICAgICAgICAgIGVudHJ5SW5NYXAtPnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIGpzVW5kZWZpbmVkKCkpOwotICAgICAgICBlbnRyeUluTWFwLT5hdHRy
aWJ1dGVzID0gZGVzY3JpcHRvci5hdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQob2xkRGVzY3Jp
cHRvcikgJiB+KEdldHRlciB8IFNldHRlcik7CisgICAgICAgIGVudHJ5SW5NYXAtPmF0dHJpYnV0
ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVudChvbGREZXNjcmlwdG9y
KSAmIH5BY2Nlc3NvcjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCShyZXZpc2lv
biAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOCArMTExLDggQEAgdm9pZCBKU0JvdW5kRnVu
Y3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZQogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMs
IGV4ZWN1dGFibGUsIGxlbmd0aCwgbmFtZSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIAotICAgIGluaXRpYWxpemVHZXR0ZXJTZXR0ZXJQcm9wZXJ0eShleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuYXJndW1lbnRzLCBnbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0
ZXJTZXR0ZXIoZXhlYyksIERvbnREZWxldGUgfCBEb250RW51bSB8IEdldHRlciB8IFNldHRlcik7
Ci0gICAgaW5pdGlhbGl6ZUdldHRlclNldHRlclByb3BlcnR5KGV4ZWMsIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5jYWxsZXIsIGdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRl
cihleGVjKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgR2V0dGVyIHwgU2V0dGVyKTsKKyAgICBp
bml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
LmFyZ3VtZW50cywgZ2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4
ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBBY2Nlc3Nvcik7CisgICAgaW5pdGlhbGl6ZUdl
dHRlclNldHRlclByb3BlcnR5KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIsIGds
b2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjKSwgRG9udERlbGV0
ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOwogfQogCiB2b2lkIEpTQm91bmRGdW5jdGlvbjo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDEw
NDc3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMTYsNyArMjE2LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZQogICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCkt
PmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAg
ICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5pbml0
aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0
LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERvbnRE
ZWxldGUgfCBEb250RW51bSB8IEdldHRlciB8IFNldHRlcik7CisgICAgICAgICAgICAgICAgdGhp
c09iamVjdC0+aW5pdGlhbGl6ZUdldHRlclNldHRlclByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVy
KGV4ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBBY2Nlc3Nvcik7CiAgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAg
ICAgICAgICB9CkBAIC0yMzUsNyArMjM1LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZQogICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlz
U3RyaWN0TW9kZSgpKSB7CiAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93blBy
b3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgICAg
ICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5pbml0aWFs
aXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5n
bG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERvbnREZWxl
dGUgfCBEb250RW51bSB8IEdldHRlciB8IFNldHRlcik7CisgICAgICAgICAgICAgICAgdGhpc09i
amVjdC0+aW5pdGlhbGl6ZUdldHRlclNldHRlclByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSwg
dGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4
ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBBY2Nlc3Nvcik7CiAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAgICAg
ICAgICB9CkBAIC0yNjQsNyArMjY0LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0bwogICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPmlzU3Ry
aWN0TW9kZSgpKSB7CiAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
OwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzT2JqZWN0
LT5pbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCB0aGlz
T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyks
IERvbnREZWxldGUgfCBEb250RW51bSB8IEdldHRlciB8IFNldHRlcik7CisgICAgICAgICAgICAg
ICAgdGhpc09iamVjdC0+aW5pdGlhbGl6ZUdldHRlclNldHRlclByb3BlcnR5KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVy
U2V0dGVyKGV4ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBBY2Nlc3Nvcik7CiAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKHJlc3VsdCk7CiAgICAgICAgICAgICB9CkBAIC0yODMsNyArMjgzLDcgQEAgYm9vbCBKU0Z1
bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0bwogICAgICAgICBpZiAodGhpc09iamVjdC0+
anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAg
ICAgICAgICAgICB0aGlzT2JqZWN0LT5pbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhl
YywgcHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJy
b3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERvbnREZWxldGUgfCBEb250RW51bSB8IEdldHRlciB8IFNl
dHRlcik7CisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+aW5pdGlhbGl6ZUdldHRlclNldHRl
clByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkt
PnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0g
fCBBY2Nlc3Nvcik7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7
CiAgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAgICAgICAgICB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCShyZXZpc2lvbiAxMDQ3
NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIEpTT2JqZWN0OjpkZWZpbmVHZXR0ZXIo
SlNPYmplY3QqIHRoCiAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gZXhlYy0+Z2xvYmFs
RGF0YSgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwogICAgIEdldHRlclNldHRlciogZ2V0
dGVyU2V0dGVyID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUoZXhlYyk7Ci0gICAgdGhpc09iamVjdC0+
cHV0RGlyZWN0SW50ZXJuYWwoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIs
IGF0dHJpYnV0ZXMgfCBHZXR0ZXIsIHRydWUsIHNsb3QsIDApOworICAgIHRoaXNPYmplY3QtPnB1
dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVyLCBh
dHRyaWJ1dGVzIHwgQWNjZXNzb3IsIHRydWUsIHNsb3QsIDApOwogCiAgICAgLy8gcHV0RGlyZWN0
IHdpbGwgY2hhbmdlIG91ciBTdHJ1Y3R1cmUgaWYgd2UgYWRkIGEgbmV3IHByb3BlcnR5LiBGb3IK
ICAgICAvLyBnZXR0ZXJzIGFuZCBzZXR0ZXJzLCB0aG91Z2gsIHdlIGFsc28gbmVlZCB0byBjaGFu
Z2Ugb3VyIFN0cnVjdHVyZQpAQCAtMzc5LDEyICszNzksMTEgQEAgdm9pZCBKU09iamVjdDo6aW5p
dGlhbGl6ZUdldHRlclNldHRlclBybwogewogICAgIC8vIFNldCBhbiBpbml0YWwgcHJvcGVydHkg
b24gYW4gb2JqZWN0OyB0aGUgcHJvcGVydHkgbXVzdCBub3QgYWxyZWFkeSBleGlzdCAmIHRoZSBh
dHRyaWJ1dGUgZmxhZ3MgbXVzdCBiZSBzZXQgY29ycmVjdGx5LgogICAgIEFTU0VSVChzdHJ1Y3R1
cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKSA9PSBXVEY6Om5vdEZv
dW5kKTsKLSAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Ym9vbD4oZ2V0dGVyU2V0dGVyLT5nZXR0ZXIo
KSkgPT0gc3RhdGljX2Nhc3Q8Ym9vbD4oYXR0cmlidXRlcyAmIEdldHRlcikpOwotICAgIEFTU0VS
VChzdGF0aWNfY2FzdDxib29sPihnZXR0ZXJTZXR0ZXItPnNldHRlcigpKSA9PSBzdGF0aWNfY2Fz
dDxib29sPihhdHRyaWJ1dGVzICYgU2V0dGVyKSk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PGJv
b2w+KGF0dHJpYnV0ZXMgJiBBY2Nlc3NvcikpOwogCiAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhID0gZXhlYy0+Z2xvYmFsRGF0YSgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAg
IHB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVy
LCBhdHRyaWJ1dGVzIHwgR2V0dGVyLCB0cnVlLCBzbG90LCAwKTsKKyAgICBwdXREaXJlY3RJbnRl
cm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwgYXR0cmlidXRlcywg
dHJ1ZSwgc2xvdCwgMCk7CiAKICAgICAvLyBwdXREaXJlY3Qgd2lsbCBjaGFuZ2Ugb3VyIFN0cnVj
dHVyZSBpZiB3ZSBhZGQgYSBuZXcgcHJvcGVydHkuIEZvcgogICAgIC8vIGdldHRlcnMgYW5kIHNl
dHRlcnMsIHRob3VnaCwgd2UgYWxzbyBuZWVkIHRvIGNoYW5nZSBvdXIgU3RydWN0dXJlCkBAIC00
MTMsNyArNDEyLDcgQEAgdm9pZCBKU09iamVjdDo6ZGVmaW5lU2V0dGVyKEpTT2JqZWN0KiB0aAog
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7CiAgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0
ZXIgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZShleGVjKTsKLSAgICB0aGlzT2JqZWN0LT5wdXREaXJl
Y3RJbnRlcm5hbChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVy
LCBhdHRyaWJ1dGVzIHwgU2V0dGVyLCB0cnVlLCBzbG90LCAwKTsKKyAgICB0aGlzT2JqZWN0LT5w
dXREaXJlY3RJbnRlcm5hbChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgZ2V0dGVy
U2V0dGVyLCBhdHRyaWJ1dGVzIHwgQWNjZXNzb3IsIHRydWUsIHNsb3QsIDApOwogCiAgICAgLy8g
cHV0RGlyZWN0IHdpbGwgY2hhbmdlIG91ciBTdHJ1Y3R1cmUgaWYgd2UgYWRkIGEgbmV3IHByb3Bl
cnR5LiBGb3IKICAgICAvLyBnZXR0ZXJzIGFuZCBzZXR0ZXJzLCB0aG91Z2gsIHdlIGFsc28gbmVl
ZCB0byBjaGFuZ2Ugb3VyIFN0cnVjdHVyZQpAQCAtNjkzLDExICs2OTIsMTEgQEAgc3RhdGljIGJv
b2wgcHV0RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZQogICAgICAgICBpZiAoZGVzY3JpcHRvci5p
c0dlbmVyaWNEZXNjcmlwdG9yKCkgJiYgb2xkRGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRv
cigpKSB7CiAgICAgICAgICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVy
OjpjcmVhdGUoZXhlYyk7CiAgICAgICAgICAgICBpZiAob2xkRGVzY3JpcHRvci5nZXR0ZXIoKSkg
ewotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgfD0gR2V0dGVyOworICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZXMgfD0gQWNjZXNzb3I7CiAgICAgICAgICAgICAgICAgYWNjZXNzb3ItPnNldEdl
dHRlcihleGVjLT5nbG9iYWxEYXRhKCksIGFzT2JqZWN0KG9sZERlc2NyaXB0b3IuZ2V0dGVyKCkp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChvbGREZXNjcmlwdG9yLnNldHRlcigp
KSB7Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyB8PSBTZXR0ZXI7CisgICAgICAgICAgICAg
ICAgYXR0cmlidXRlcyB8PSBBY2Nlc3NvcjsKICAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+c2V0
U2V0dGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgYXNPYmplY3Qob2xkRGVzY3JpcHRvci5zZXR0ZXIo
KSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGFyZ2V0LT5tZXRob2RUYWJsZSgpLT5w
dXRXaXRoQXR0cmlidXRlcyh0YXJnZXQsIGV4ZWMsIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIGF0
dHJpYnV0ZXMpOwpAQCAtNzA4LDcgKzcwNyw3IEBAIHN0YXRpYyBib29sIHB1dERlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGUKICAgICAgICAgICAgIG5ld1ZhbHVlID0gZGVzY3JpcHRvci52YWx1ZSgp
OwogICAgICAgICBlbHNlIGlmIChvbGREZXNjcmlwdG9yLnZhbHVlKCkpCiAgICAgICAgICAgICBu
ZXdWYWx1ZSA9IG9sZERlc2NyaXB0b3IudmFsdWUoKTsKLSAgICAgICAgdGFyZ2V0LT5tZXRob2RU
YWJsZSgpLT5wdXRXaXRoQXR0cmlidXRlcyh0YXJnZXQsIGV4ZWMsIHByb3BlcnR5TmFtZSwgbmV3
VmFsdWUsIGF0dHJpYnV0ZXMgJiB+KEdldHRlciB8IFNldHRlcikpOworICAgICAgICB0YXJnZXQt
Pm1ldGhvZFRhYmxlKCktPnB1dFdpdGhBdHRyaWJ1dGVzKHRhcmdldCwgZXhlYywgcHJvcGVydHlO
YW1lLCBuZXdWYWx1ZSwgYXR0cmlidXRlcyAmIH5BY2Nlc3Nvcik7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICBhdHRyaWJ1dGVzICY9IH5SZWFkT25seTsKQEAgLTgzMiwxMCArODMx
LDggQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplYwogICAgIH0KICAg
ICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lKTsKICAgICB1bnNpZ25lZCBhdHRycyA9IGN1cnJlbnQuYXR0cmlidXRlc1dpdGhP
dmVycmlkZShkZXNjcmlwdG9yKTsKLSAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXIoKSkKLSAgICAg
ICAgYXR0cnMgfD0gU2V0dGVyOwotICAgIGlmIChkZXNjcmlwdG9yLmdldHRlcigpKQotICAgICAg
ICBhdHRycyB8PSBHZXR0ZXI7CisgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVyKCkgfHwgZGVzY3Jp
cHRvci5nZXR0ZXIoKSkKKyAgICAgICAgYXR0cnMgfD0gQWNjZXNzb3I7CiAgICAgb2JqZWN0LT5w
dXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwg
YXR0cnMpOwogICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCShyZXZpc2lvbiAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw4ICs2Niw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEb250RW51bSAgICAgPSAxIDw8IDIsICAvLyBwcm9w
ZXJ0eSBkb2Vzbid0IGFwcGVhciBpbiAoZm9yIC4uIGluIC4uKQogICAgICAgICBEb250RGVsZXRl
ICAgPSAxIDw8IDMsICAvLyBwcm9wZXJ0eSBjYW4ndCBiZSBkZWxldGVkCiAgICAgICAgIEZ1bmN0
aW9uICAgICA9IDEgPDwgNCwgIC8vIHByb3BlcnR5IGlzIGEgZnVuY3Rpb24gLSBvbmx5IHVzZWQg
Ynkgc3RhdGljIGhhc2h0YWJsZXMKLSAgICAgICAgR2V0dGVyICAgICAgID0gMSA8PCA1LCAgLy8g
cHJvcGVydHkgaXMgYSBnZXR0ZXIKLSAgICAgICAgU2V0dGVyICAgICAgID0gMSA8PCA2ICAgLy8g
cHJvcGVydHkgaXMgYSBzZXR0ZXIKKyAgICAgICAgQWNjZXNzb3IgICAgID0gMSA8PCA1LCAgLy8g
cHJvcGVydHkgaXMgYSBnZXR0ZXIvc2V0dGVyCiAgICAgfTsKIAogICAgIGNsYXNzIEpTT2JqZWN0
IDogcHVibGljIEpTQ2VsbCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxMDQ3NzcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5OSw3ICsyOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdENvbnN0CiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CiAgICAgaWYgKCF0
b1Byb3BlcnR5RGVzY3JpcHRvcihleGVjLCBleGVjLT5hcmd1bWVudCgyKSwgZGVzY3JpcHRvcikp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwotICAgIEFTU0VSVCgo
ZGVzY3JpcHRvci5hdHRyaWJ1dGVzKCkgJiAoR2V0dGVyIHwgU2V0dGVyKSkgfHwgKCFkZXNjcmlw
dG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpKTsKKyAgICBBU1NFUlQoKGRlc2NyaXB0b3IuYXR0
cmlidXRlcygpICYgQWNjZXNzb3IpIHx8ICghZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRv
cigpKSk7CiAgICAgQVNTRVJUKCFleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAgICAgTy0+bWV0aG9k
VGFibGUoKS0+ZGVmaW5lT3duUHJvcGVydHkoTywgZXhlYywgSWRlbnRpZmllcihleGVjLCBwcm9w
ZXJ0eU5hbWUpLCBkZXNjcmlwdG9yLCB0cnVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KE8pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlw
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eURlc2NyaXB0b3IuY3BwCShyZXZpc2lvbiAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NywxOSArODcsMTYgQEAgSlNWYWx1ZSBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldHRlcigpIGNvbgog
dm9pZCBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldERlc2NyaXB0b3IoSlNWYWx1ZSB2YWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcykKIHsKICAgICBBU1NFUlQodmFsdWUpOworICAgIEFTU0VSVCh2YWx1
ZS5pc0dldHRlclNldHRlcigpID09ICEhKGF0dHJpYnV0ZXMgJiBBY2Nlc3NvcikpOworCiAgICAg
bV9hdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKICAgICBpZiAodmFsdWUuaXNHZXR0ZXJTZXR0ZXIo
KSkgewogICAgICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gYXNHZXR0ZXJTZXR0ZXIodmFs
dWUpOwogCiAgICAgICAgIG1fZ2V0dGVyID0gYWNjZXNzb3ItPmdldHRlcigpOwotICAgICAgICBp
ZiAobV9nZXR0ZXIpCi0gICAgICAgICAgICBtX2F0dHJpYnV0ZXMgfD0gR2V0dGVyOwotCiAgICAg
ICAgIG1fc2V0dGVyID0gYWNjZXNzb3ItPnNldHRlcigpOwotICAgICAgICBpZiAobV9zZXR0ZXIp
Ci0gICAgICAgICAgICBtX2F0dHJpYnV0ZXMgfD0gU2V0dGVyOwotCiAgICAgICAgIEFTU0VSVCht
X2dldHRlciB8fCBtX3NldHRlcik7CisKICAgICAgICAgbV9zZWVuQXR0cmlidXRlcyA9IEVudW1l
cmFibGVQcmVzZW50IHwgQ29uZmlndXJhYmxlUHJlc2VudDsKICAgICAgICAgbV9hdHRyaWJ1dGVz
ICY9IH5SZWFkT25seTsKICAgICB9IGVsc2UgewpAQCAtMTEwLDEwICsxMDcsOCBAQCB2b2lkIFBy
b3BlcnR5RGVzY3JpcHRvcjo6c2V0RGVzY3JpcHRvcihKCiAKIHZvaWQgUHJvcGVydHlEZXNjcmlw
dG9yOjpzZXRBY2Nlc3NvckRlc2NyaXB0b3IoR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciwgdW5zaWdu
ZWQgYXR0cmlidXRlcykKIHsKLSAgICBBU1NFUlQoYXR0cmlidXRlcyAmIChHZXR0ZXIgfCBTZXR0
ZXIpKTsKKyAgICBBU1NFUlQoYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsKICAgICBBU1NFUlQoYWNj
ZXNzb3ItPmdldHRlcigpIHx8IGFjY2Vzc29yLT5zZXR0ZXIoKSk7Ci0gICAgQVNTRVJUKCFhY2Nl
c3Nvci0+Z2V0dGVyKCkgPT0gIShhdHRyaWJ1dGVzICYgR2V0dGVyKSk7Ci0gICAgQVNTRVJUKCFh
Y2Nlc3Nvci0+c2V0dGVyKCkgPT0gIShhdHRyaWJ1dGVzICYgU2V0dGVyKSk7CiAgICAgbV9hdHRy
aWJ1dGVzID0gYXR0cmlidXRlczsKICAgICBtX2dldHRlciA9IGFjY2Vzc29yLT5nZXR0ZXIoKTsK
ICAgICBtX3NldHRlciA9IGFjY2Vzc29yLT5zZXR0ZXIoKTsKQEAgLTE1MSwxNCArMTQ2LDE0IEBA
IHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXRDb25maWd1cmFibGUKIHZvaWQgUHJvcGVydHlE
ZXNjcmlwdG9yOjpzZXRTZXR0ZXIoSlNWYWx1ZSBzZXR0ZXIpCiB7CiAgICAgbV9zZXR0ZXIgPSBz
ZXR0ZXI7Ci0gICAgbV9hdHRyaWJ1dGVzIHw9IFNldHRlcjsKKyAgICBtX2F0dHJpYnV0ZXMgfD0g
QWNjZXNzb3I7CiAgICAgbV9hdHRyaWJ1dGVzICY9IH5SZWFkT25seTsKIH0KIAogdm9pZCBQcm9w
ZXJ0eURlc2NyaXB0b3I6OnNldEdldHRlcihKU1ZhbHVlIGdldHRlcikKIHsKICAgICBtX2dldHRl
ciA9IGdldHRlcjsKLSAgICBtX2F0dHJpYnV0ZXMgfD0gR2V0dGVyOworICAgIG1fYXR0cmlidXRl
cyB8PSBBY2Nlc3NvcjsKICAgICBtX2F0dHJpYnV0ZXMgJj0gflJlYWRPbmx5OwogfQogCkBAIC0y
MjUsNyArMjIwLDcgQEAgdW5zaWduZWQgUHJvcGVydHlEZXNjcmlwdG9yOjphdHRyaWJ1dGVzTwog
ICAgIGlmIChjb25maWd1cmFibGVQcmVzZW50KCkpCiAgICAgICAgIG92ZXJyaWRlTWFzayB8PSBE
b250RGVsZXRlOwogICAgIGlmIChpc0FjY2Vzc29yRGVzY3JpcHRvcigpKQotICAgICAgICBvdmVy
cmlkZU1hc2sgfD0gKEdldHRlciB8IFNldHRlcik7CisgICAgICAgIG92ZXJyaWRlTWFzayB8PSBB
Y2Nlc3NvcjsKICAgICByZXR1cm4gKG1fYXR0cmlidXRlcyAmIG92ZXJyaWRlTWFzaykgfCAoY3Vy
cmVudC5tX2F0dHJpYnV0ZXMgJiB+b3ZlcnJpZGVNYXNrKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122325</attachid>
            <date>2012-01-12 15:46:17 -0800</date>
            <delta_ts>2012-01-12 15:48:45 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>76141.2.patch</filename>
            <type>text/plain</type>
            <size>6341</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA0ODY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAxLTEyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNDEK
KyAgICAgICAgZGVmaW5lU2V0dGVyL2RlZmluZUdldHRlciBtYXkgZmFpbCB0byB1cGRhdGUgQWNj
ZXNzb3IgYXR0cmlidXRlCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6
OmRlZmluZUdldHRlcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojppbml0aWFsaXplR2V0dGVy
U2V0dGVyUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6ZGVmaW5lU2V0dGVyKToK
KyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1
cmUuaDoKKwogMjAxMi0wMS0xMiAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBGaXggREMgbGVhayBpbiBXZWJTY3JlZW5JbmZvRmFjdG9yeS4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlz
aW9uIDEwNDgzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzY2LDEwICszNjYsOCBAQCB2b2lkIEpTT2JqZWN0OjpkZWZp
bmVHZXR0ZXIoSlNPYmplY3QqIHRoCiAgICAgLy8gcHV0RGlyZWN0IHdpbGwgY2hhbmdlIG91ciBT
dHJ1Y3R1cmUgaWYgd2UgYWRkIGEgbmV3IHByb3BlcnR5LiBGb3IKICAgICAvLyBnZXR0ZXJzIGFu
ZCBzZXR0ZXJzLCB0aG91Z2gsIHdlIGFsc28gbmVlZCB0byBjaGFuZ2Ugb3VyIFN0cnVjdHVyZQog
ICAgIC8vIGlmIHdlIG92ZXJyaWRlIGFuIGV4aXN0aW5nIG5vbi1nZXR0ZXIgb3Igbm9uLXNldHRl
ci4KLSAgICBpZiAoc2xvdC50eXBlKCkgIT0gUHV0UHJvcGVydHlTbG90OjpOZXdQcm9wZXJ0eSkg
ewotICAgICAgICBpZiAoIXRoaXNPYmplY3QtPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkK
LSAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IFN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbihnbG9iYWxEYXRhLCB0aGlzT2JqZWN0
LT5zdHJ1Y3R1cmUoKSkpOwotICAgIH0KKyAgICBpZiAoc2xvdC50eXBlKCkgIT0gUHV0UHJvcGVy
dHlTbG90OjpOZXdQcm9wZXJ0eSkKKyAgICAgICAgdGhpc09iamVjdC0+c2V0U3RydWN0dXJlKGV4
ZWMtPmdsb2JhbERhdGEoKSwgU3RydWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKGds
b2JhbERhdGEsIHRoaXNPYmplY3QtPnN0cnVjdHVyZSgpLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0
ZXMgfCBBY2Nlc3NvcikpOwogCiAgICAgdGhpc09iamVjdC0+c3RydWN0dXJlKCktPnNldEhhc0dl
dHRlclNldHRlclByb3BlcnRpZXModHJ1ZSk7CiAgICAgZ2V0dGVyU2V0dGVyLT5zZXRHZXR0ZXIo
Z2xvYmFsRGF0YSwgZ2V0dGVyRnVuY3Rpb24pOwpAQCAtMzg4LDEwICszODYsOCBAQCB2b2lkIEpT
T2JqZWN0Ojppbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvCiAgICAgLy8gcHV0RGlyZWN0IHdpbGwg
Y2hhbmdlIG91ciBTdHJ1Y3R1cmUgaWYgd2UgYWRkIGEgbmV3IHByb3BlcnR5LiBGb3IKICAgICAv
LyBnZXR0ZXJzIGFuZCBzZXR0ZXJzLCB0aG91Z2gsIHdlIGFsc28gbmVlZCB0byBjaGFuZ2Ugb3Vy
IFN0cnVjdHVyZQogICAgIC8vIGlmIHdlIG92ZXJyaWRlIGFuIGV4aXN0aW5nIG5vbi1nZXR0ZXIg
b3Igbm9uLXNldHRlci4KLSAgICBpZiAoc2xvdC50eXBlKCkgIT0gUHV0UHJvcGVydHlTbG90OjpO
ZXdQcm9wZXJ0eSkgewotICAgICAgICBpZiAoIXN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkK
LSAgICAgICAgICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIFN0cnVjdHVyZTo6
Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbihnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUoKSkpOwotICAgIH0K
KyAgICBpZiAoc2xvdC50eXBlKCkgIT0gUHV0UHJvcGVydHlTbG90OjpOZXdQcm9wZXJ0eSkKKyAg
ICAgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgU3RydWN0dXJlOjphdHRyaWJ1
dGVDaGFuZ2VUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLCBwcm9wZXJ0eU5hbWUs
IGF0dHJpYnV0ZXMpKTsKIAogICAgIHN0cnVjdHVyZSgpLT5zZXRIYXNHZXR0ZXJTZXR0ZXJQcm9w
ZXJ0aWVzKHRydWUpOwogfQpAQCAtNDE3LDEwICs0MTMsOCBAQCB2b2lkIEpTT2JqZWN0OjpkZWZp
bmVTZXR0ZXIoSlNPYmplY3QqIHRoCiAgICAgLy8gcHV0RGlyZWN0IHdpbGwgY2hhbmdlIG91ciBT
dHJ1Y3R1cmUgaWYgd2UgYWRkIGEgbmV3IHByb3BlcnR5LiBGb3IKICAgICAvLyBnZXR0ZXJzIGFu
ZCBzZXR0ZXJzLCB0aG91Z2gsIHdlIGFsc28gbmVlZCB0byBjaGFuZ2Ugb3VyIFN0cnVjdHVyZQog
ICAgIC8vIGlmIHdlIG92ZXJyaWRlIGFuIGV4aXN0aW5nIG5vbi1nZXR0ZXIgb3Igbm9uLXNldHRl
ci4KLSAgICBpZiAoc2xvdC50eXBlKCkgIT0gUHV0UHJvcGVydHlTbG90OjpOZXdQcm9wZXJ0eSkg
ewotICAgICAgICBpZiAoIXRoaXNPYmplY3QtPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkK
LSAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IFN0cnVjdHVyZTo6Z2V0dGVyU2V0dGVyVHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXNPYmplY3QtPnN0cnVjdHVyZSgpKSk7Ci0gICAgfQorICAgIGlmIChzbG90LnR5cGUoKSAhPSBQ
dXRQcm9wZXJ0eVNsb3Q6Ok5ld1Byb3BlcnR5KQorICAgICAgICB0aGlzT2JqZWN0LT5zZXRTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNoYW5nZVRyYW5z
aXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUoKSwgcHJvcGVy
dHlOYW1lLCBhdHRyaWJ1dGVzIHwgQWNjZXNzb3IpKTsKIAogICAgIHRoaXNPYmplY3QtPnN0cnVj
dHVyZSgpLT5zZXRIYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKHRydWUpOwogICAgIGdldHRlclNl
dHRlci0+c2V0U2V0dGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2V0dGVyRnVuY3Rpb24pOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lv
biAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MDEsMTcgKzQwMSwyNiBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVy
ZTo6ZGVzcGVjaWZ5RnVuY3Rpb25UCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9CiAKLVN0cnVj
dHVyZSogU3RydWN0dXJlOjpnZXR0ZXJTZXR0ZXJUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YXR0
cmlidXRlQ2hhbmdlVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpCiB7Ci0gICAgU3RydWN0dXJlKiB0cmFuc2l0aW9uID0gY3JlYXRlKGdsb2JhbERh
dGEsIHN0cnVjdHVyZSk7CisgICAgaWYgKCFzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9u
YXJ5KCkpIHsKKyAgICAgICAgU3RydWN0dXJlKiB0cmFuc2l0aW9uID0gY3JlYXRlKGdsb2JhbERh
dGEsIHN0cnVjdHVyZSk7CiAKLSAgICAvLyBEb24ndCBzZXQgbV9vZmZzZXQsIGFzIG9uZSBjYW4g
bm90IHRyYW5zaXRpb24gdG8gdGhpcy4KKyAgICAgICAgLy8gRG9uJ3Qgc2V0IG1fb2Zmc2V0LCBh
cyBvbmUgY2FuIG5vdCB0cmFuc2l0aW9uIHRvIHRoaXMuCiAKLSAgICBzdHJ1Y3R1cmUtPm1hdGVy
aWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKLSAgICB0cmFuc2l0aW9u
LT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlRm9yUGlubmlu
ZyhnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKLSAgICB0cmFuc2l0aW9uLT5waW4oKTsKKyAgICAg
ICAgc3RydWN0dXJlLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnkoZ2xvYmFsRGF0
YSk7CisgICAgICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29w
eVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOworICAgICAg
ICB0cmFuc2l0aW9uLT5waW4oKTsKKyAgICAgICAgCisgICAgICAgIHN0cnVjdHVyZSA9IHRyYW5z
aXRpb247CisgICAgfQogCi0gICAgcmV0dXJuIHRyYW5zaXRpb247CisgICAgQVNTRVJUKHN0cnVj
dHVyZS0+bV9wcm9wZXJ0eVRhYmxlKTsKKyAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IHN0
cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS5pbXBsKCkpLmZpcnN0
OworICAgIEFTU0VSVChlbnRyeSk7CisgICAgZW50cnktPmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVz
OworCisgICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0KIAogU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnRv
RGljdGlvbmFyeVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgRGljdGlvbmFyeUtpbmQga2luZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxMDQ3NzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtODksNyAr
ODksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogcmVtb3Zl
UHJvcGVydHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgc2l6ZV90JiBvZmZzZXQpOwogICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVy
ZSosIEpTVmFsdWUgcHJvdG90eXBlKTsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogZGVzcGVj
aWZ5RnVuY3Rpb25UcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IElk
ZW50aWZpZXImKTsKLSAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogZ2V0dGVyU2V0dGVyVHJhbnNp
dGlvbihKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgc3RhdGljIFN0cnVjdHVy
ZSogYXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbihKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiB0b0NhY2hlYWJsZURpY3Rpb25hcnlUcmFuc2l0aW9uKEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiB0b1Vu
Y2FjaGVhYmxlRGljdGlvbmFyeVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7
CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIHNlYWxUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSopOwo=
</data>
<flag name="review"
          id="123076"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>