<?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>45581</bug_id>
          
          <creation_ts>2010-09-10 17:51:34 -0700</creation_ts>
          <short_desc>Add AudioNodeOutput files</short_desc>
          <delta_ts>2010-10-26 19:31:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277570</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-10 17:51:34 -0700</bug_when>
    <thetext>Add AudioNodeOutput files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277571</commentid>
    <comment_count>1</comment_count>
      <attachid>67274</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-10 17:52:52 -0700</bug_when>
    <thetext>Created attachment 67274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292662</commentid>
    <comment_count>2</comment_count>
      <attachid>70470</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-11 14:33:15 -0700</bug_when>
    <thetext>Created attachment 70470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292664</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-11 14:35:09 -0700</bug_when>
    <thetext>New patch with thread safety changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299925</commentid>
    <comment_count>4</comment_count>
      <attachid>70470</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-26 18:29:14 -0700</bug_when>
    <thetext>Comment on attachment 70470
Patch

Looks good. The threading-related assertions look solid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299939</commentid>
    <comment_count>5</comment_count>
      <attachid>70470</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-26 19:31:51 -0700</bug_when>
    <thetext>Comment on attachment 70470
Patch

Clearing flags on attachment: 70470

Committed r70602: &lt;http://trac.webkit.org/changeset/70602&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299940</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-26 19:31:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67274</attachid>
            <date>2010-09-10 17:52:52 -0700</date>
            <delta_ts>2010-10-11 14:33:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45581-20100910175250.patch</filename>
            <type>text/plain</type>
            <size>11013</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzI1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDktMTAgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Ob2RlT3V0cHV0IGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTU4MQorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBhdWRp
byBBUEkgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
Tm9kZU91dHB1dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0
OjpBdWRpb05vZGVPdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojpz
ZXROdW1iZXJPZkNoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6
cHJvcGFnYXRlQ2hhbm5lbENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1
dDo6cHVsbCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6OmJ1cyk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6OmZhbk91dENvdW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6YWRkSW5wdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Ob2RlT3V0cHV0OjpyZW1vdmVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVP
dXRwdXQ6OmRpc2Nvbm5lY3RBbGxJbnB1dHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
T3V0cHV0OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6ZW5h
YmxlKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6Om5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Ob2RlT3V0cHV0OjpudW1iZXJPZkNoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvTm9kZU91dHB1dDo6aXNDaGFubmVsQ291bnRLbm93bik6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb05vZGVPdXRwdXQ6OmlzRW5hYmxlZCk6CisKIDIwMTAtMDktMTAgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTm8gcmV2aWV3OyBidWlsZCBmaXggb25seS4K
SW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJTykK
KworI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIK
KyNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0F1ZGlvTm9kZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0KEF1
ZGlvTm9kZSogbm9kZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKKyAgICA6IG1fbm9kZShu
b2RlKQorICAgICwgbV9pbnRlcm5hbE91dHB1dEJ1cygwKQorICAgICwgbV9hY3R1YWxEZXN0aW5h
dGlvbkJ1cygwKQorICAgICwgbV9pc0VuYWJsZWQodHJ1ZSkKK3sKKyAgICBpZiAobnVtYmVyT2ZD
aGFubmVscykKKyAgICAgICAgc2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsK
K30KKwordm9pZCBBdWRpb05vZGVPdXRwdXQ6OnNldE51bWJlck9mQ2hhbm5lbHModW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscykKK3sKKyAgICBpZiAobnVtYmVyT2ZDaGFubmVscyAhPSB0aGlzLT5u
dW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgbV9pbnRlcm5hbE91dHB1dEJ1cyA9IGFkb3B0
UHRyKG5ldyBBdWRpb0J1cyhudW1iZXJPZkNoYW5uZWxzLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdT
aXplSW5GcmFtZXMpKTsKKyAgICAgICAgbV9hY3R1YWxEZXN0aW5hdGlvbkJ1cyA9IG1faW50ZXJu
YWxPdXRwdXRCdXMuZ2V0KCk7CisgICAgICAgIAorICAgICAgICBwcm9wYWdhdGVDaGFubmVsQ291
bnQoKTsKKyAgICB9Cit9CisKK3ZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojpwcm9wYWdhdGVDaGFubmVs
Q291bnQoKQoreworICAgIGlmIChpc0NoYW5uZWxDb3VudEtub3duKCkpIHsKKyAgICAgICAgLy8g
QW5ub3VuY2UgdG8gYW55IG5vZGVzIHdlJ3JlIGNvbm5lY3RlZCB0byB0aGF0IHdlIGNoYW5nZWQg
b3VyIGNoYW5uZWwgY291bnQgZm9yIGl0cyBpbnB1dC4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1faW5wdXRzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBBdWRpb05vZGVJ
bnB1dCogaW5wdXQgPSBtX2lucHV0c1tpXTsKKyAgICAgICAgICAgIEF1ZGlvTm9kZSogZGVzdGlu
YXRpb25Ob2RlID0gaW5wdXQtPm5vZGUoKTsKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uTm9kZS0+
Y2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoaW5wdXQpOworICAgICAgICB9CisgICAgfQor
fQorCitBdWRpb0J1cyogQXVkaW9Ob2RlT3V0cHV0OjpwdWxsKEF1ZGlvQnVzKiBpblBsYWNlQnVz
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIC8vIENhdXNlcyBvdXIgQXVkaW9Ob2Rl
IHRvIHByb2Nlc3MgKGlmIGl0IGhhc24ndCBhbHJlYWR5IGZvciB0aGlzIHJlbmRlciBxdWFudHVt
KS4KKworICAgIC8vIFRyeSB0byBkbyBpbi1wbGFjZSBwcm9jZXNzaW5nICh1c2luZyBpblBsYWNl
QnVzKSBpZiBhdCBhbGwgcG9zc2libGUuCisgICAgLy8gV2UgY2FuJ3QgcHJvY2VzcyBpbi1wbGFj
ZSBpZiB3ZSdyZSBjb25uZWN0ZWQgdG8gbW9yZSB0aGFuIG9uZSBpbnB1dCAoZmFub3V0ID4gMSku
CisgICAgLy8gSW4gdGhpcyBjYXNlIHB1bGwoKSBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgcGVy
IHJlbmRlcmluZyBxdWFudHVtLCBhbmQgdGhlIHByb2Nlc3NJZk5lY2Vzc2FyeSgpIGNhbGwgYmVs
b3cgd2lsbAorICAgIC8vIGNhdXNlIG91ciBub2RlIHRvIHByb2Nlc3MoKSBvbmx5IHRoZSBmaXJz
dCB0aW1lLCBjYWNoaW5nIHRoZSBvdXRwdXQgaW4gbV9pbnRlcm5hbE91dHB1dEJ1cyBmb3Igc3Vi
c2VxdWVudCBjYWxscy4KKyAgICAKKyAgICBib29sIGlzSW5QbGFjZSA9IGluUGxhY2VCdXMgJiYg
aW5QbGFjZUJ1cy0+bnVtYmVyT2ZDaGFubmVscygpID09IG51bWJlck9mQ2hhbm5lbHMoKSAmJiBm
YW5PdXRDb3VudCgpID09IDE7CisKKyAgICAvLyBTZXR1cCB0aGUgYWN0dWFsIGRlc3RpbmF0aW9u
IGJ1cyBmb3IgcHJvY2Vzc2luZyB3aGVuIG91ciBub2RlJ3MgcHJvY2VzcygpIG1ldGhvZCBnZXRz
IGNhbGxlZCBpbiBwcm9jZXNzSWZOZWNlc3NhcnkoKSBiZWxvdy4KKyAgICBtX2FjdHVhbERlc3Rp
bmF0aW9uQnVzID0gaXNJblBsYWNlID8gaW5QbGFjZUJ1cyA6IG1faW50ZXJuYWxPdXRwdXRCdXMu
Z2V0KCk7CisKKyAgICBub2RlKCktPnByb2Nlc3NJZk5lY2Vzc2FyeShmcmFtZXNUb1Byb2Nlc3Mp
OworICAgIHJldHVybiBtX2FjdHVhbERlc3RpbmF0aW9uQnVzOworfQorCitBdWRpb0J1cyogQXVk
aW9Ob2RlT3V0cHV0OjpidXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2FjdHVhbERlc3RpbmF0
aW9uQnVzOworfQorCit1bnNpZ25lZCBBdWRpb05vZGVPdXRwdXQ6OmZhbk91dENvdW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dHMuc2l6ZSgpOworfQorCit2b2lkIEF1ZGlvTm9kZU91
dHB1dDo6YWRkSW5wdXQoQXVkaW9Ob2RlSW5wdXQqIGlucHV0KQoreworICAgIEFTU0VSVChpbnB1
dCk7CisgICAgaWYgKCFpbnB1dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTWFrZSBzdXJl
IGl0J3Mgbm90IGFscmVhZHkgdGhlcmUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
aW5wdXRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChpbnB1dCA9PSBtX2lucHV0c1tpXSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2lucHV0cy5hcHBlbmQoaW5wdXQp
OworfQorCit2b2lkIEF1ZGlvTm9kZU91dHB1dDo6cmVtb3ZlSW5wdXQoQXVkaW9Ob2RlSW5wdXQq
IGlucHV0KQoreworICAgIEFTU0VSVChpbnB1dCk7CisgICAgaWYgKCFpbnB1dCkKKyAgICAgICAg
cmV0dXJuOworICAgICAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9pbnB1dHMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGlucHV0ID09IG1faW5wdXRzW2ldKSB7CisgICAg
ICAgICAgICBtX2lucHV0cy5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICB9Cit9CisKK3ZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpkaXNjb25uZWN0QWxsSW5wdXRz
KCkKK3sKKyAgICAvLyBDb3B5IHRvIGFsbElucHV0cyBzaW5jZSBBdWRpb05vZGVJbnB1dDo6ZGlz
Y29ubmVjdCgpIGNoYW5nZXMgbV9pbnB1dHMgYnkgY2FsbGluZyByZW1vdmVJbnB1dCgpLgorICAg
IFZlY3RvcjxBdWRpb05vZGVJbnB1dCo+IGFsbElucHV0cyhtX2lucHV0cyk7CisgICAgCisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFsbElucHV0cy5zaXplKCk7ICsraSkKKyAgICAgICAg
YWxsSW5wdXRzW2ldLT5kaXNjb25uZWN0KHRoaXMpOworICAgIAorICAgIG1faW5wdXRzLmNsZWFy
KCk7Cit9CisKK3ZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpkaXNhYmxlKCkKK3sKKyAgICBpZiAobV9p
c0VuYWJsZWQpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faW5wdXRzLnNp
emUoKTsgKytpKQorICAgICAgICAgICAgbV9pbnB1dHNbaV0tPmRpc2FibGUodGhpcyk7CisgICAg
ICAgIG1faXNFbmFibGVkID0gZmFsc2U7CisgICAgfQorfQorCit2b2lkIEF1ZGlvTm9kZU91dHB1
dDo6ZW5hYmxlKCkKK3sKKyAgICBpZiAoIW1faXNFbmFibGVkKSB7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX2lucHV0cy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG1faW5w
dXRzW2ldLT5lbmFibGUodGhpcyk7CisgICAgICAgIG1faXNFbmFibGVkID0gdHJ1ZTsKKyAgICB9
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVE
SU8pCkluZGV4OiBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBBdWRpb05vZGVPdXRwdXRfaAorI2RlZmluZSBBdWRpb05vZGVPdXRw
dXRfaAorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1
ZGlvTm9kZTsKK2NsYXNzIEF1ZGlvTm9kZUlucHV0OworCitjbGFzcyBBdWRpb05vZGVPdXRwdXQg
eworcHVibGljOgorICAgIC8vIEl0J3MgT0sgdG8gcGFzcyAwIGZvciBudW1iZXJPZkNoYW5uZWxz
IGluIHdoaWNoIGNhc2Ugc2V0TnVtYmVyT2ZDaGFubmVscygpIG11c3QgYmUgY2FsbGVkIGxhdGVy
IG9uLgorICAgIEF1ZGlvTm9kZU91dHB1dChBdWRpb05vZGUqLCB1bnNpZ25lZCBudW1iZXJPZkNo
YW5uZWxzKTsKKworICAgIEF1ZGlvTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZTsg
fQorICAgIAorICAgIC8vIENhdXNlcyBvdXIgQXVkaW9Ob2RlIHRvIHByb2Nlc3MgKGlmIGl0IGhh
c24ndCBhbHJlYWR5IGZvciB0aGlzIHJlbmRlciBxdWFudHVtKS4KKyAgICAvLyBSZXR1cm5zIHRo
ZSBidXMgY29udGFpbmluZyB0aGUgcHJvY2Vzc2VkIGF1ZGlvIGZvciB0aGlzIG91dHB1dC4gIEl0
IHdpbGwgcmV0dXJuIGluUGxhY2VCdXMgaWYgaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgcG9zc2li
bGUuCisgICAgQXVkaW9CdXMqIHB1bGwoQXVkaW9CdXMqIGluUGxhY2VCdXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpOworCisgICAgLy8gYnVzKCkgd2lsbCBjb250YWluIHRoZSByZW5kZXJlZCBh
dWRpbyBhZnRlciBwdWxsKCkgaXMgY2FsbGVkIGZvciBlYWNoIHJlbmRlcmluZyB0aW1lIHF1YW50
dW0uCisgICAgQXVkaW9CdXMqIGJ1cygpIGNvbnN0OworCisgICAgLy8gZmFuT3V0Q291bnQoKSBp
cyB0aGUgbnVtYmVyIG9mIEF1ZGlvTm9kZUlucHV0cyB0aGF0IHdlJ3JlIGNvbm5lY3RlZCB0by4K
KyAgICB1bnNpZ25lZCBmYW5PdXRDb3VudCgpIGNvbnN0OworCisgICAgdm9pZCBkaXNjb25uZWN0
QWxsSW5wdXRzKCk7CisKKyAgICB2b2lkIHNldE51bWJlck9mQ2hhbm5lbHModW5zaWduZWQpOwor
ICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFs
T3V0cHV0QnVzLmdldCgpID8gbV9pbnRlcm5hbE91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygp
IDogMDsgfQorICAgIGJvb2wgaXNDaGFubmVsQ291bnRLbm93bigpIGNvbnN0IHsgcmV0dXJuIG51
bWJlck9mQ2hhbm5lbHMoKSA+IDA7IH0KKworICAgIC8vIERpc2FibGUvRW5hYmxlIGhhcHBlbnMg
d2hlbiB0aGVyZSBhcmUgc3RpbGwgSmF2YVNjcmlwdCByZWZlcmVuY2VzIHRvIGEgbm9kZSwgYnV0
IGl0IGhhcyBvdGhlcndpc2UgImZpbmlzaGVkIiBpdHMgd29yay4KKyAgICAvLyBGb3IgZXhhbXBs
ZSwgd2hlbiBhIG5vdGUgaGFzIGZpbmlzaGVkIHBsYXlpbmcuICBJdCBpcyBrZXB0IGFyb3VuZCwg
YmVjYXVzZSBpdCBtYXkgYmUgcGxheWVkIGFnYWluIGF0IGEgbGF0ZXIgdGltZS4KKyAgICB2b2lk
IGRpc2FibGUoKTsKKyAgICB2b2lkIGVuYWJsZSgpOworICAgIGJvb2wgaXNFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0VuYWJsZWQ7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIEF1ZGlvTm9kZUlucHV0OworICAgIAorICAgIHZvaWQgYWRkSW5wdXQoQXVkaW9Ob2RlSW5w
dXQqKTsKKyAgICB2b2lkIHJlbW92ZUlucHV0KEF1ZGlvTm9kZUlucHV0Kik7CisKKyAgICAvLyBB
bm5vdW5jZSB0byBhbnkgbm9kZXMgd2UncmUgY29ubmVjdGVkIHRvIHRoYXQgd2UgY2hhbmdlZCBv
dXIgY2hhbm5lbCBjb3VudCBmb3IgaXRzIGlucHV0LgorICAgIHZvaWQgcHJvcGFnYXRlQ2hhbm5l
bENvdW50KCk7CisKKyAgICBBdWRpb05vZGUqIG1fbm9kZTsKKworICAgIE93blB0cjxBdWRpb0J1
cz4gbV9pbnRlcm5hbE91dHB1dEJ1czsKKyAgICBBdWRpb0J1cyogbV9hY3R1YWxEZXN0aW5hdGlv
bkJ1czsKKworICAgIFZlY3RvcjxBdWRpb05vZGVJbnB1dCo+IG1faW5wdXRzOyAvLyBrZWVwcyB0
cmFjayBvZiBjb25uZWN0aW9ucyAtIGRlYWxzIHdpdGggImZhbm91dCIKKyAgICBib29sIG1faXNF
bmFibGVkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQXVkaW9O
b2RlT3V0cHV0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70470</attachid>
            <date>2010-10-11 14:33:15 -0700</date>
            <delta_ts>2010-10-26 19:31:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45581-20101011143314.patch</filename>
            <type>text/plain</type>
            <size>15350</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTUyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMTAtMTEgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Ob2RlT3V0cHV0IGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTU4MQorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBhdWRp
byBBUEkgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
Tm9kZU91dHB1dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0
OjpBdWRpb05vZGVPdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojpz
ZXROdW1iZXJPZkNoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6
c2V0SW50ZXJuYWxCdXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojp1cGRh
dGVSZW5kZXJpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6OnVw
ZGF0ZU51bWJlck9mQ2hhbm5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0
Ojpwcm9wYWdhdGVDaGFubmVsQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0
cHV0OjpwdWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6YnVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6cmVuZGVyaW5nRmFuT3V0Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0OjpmYW5PdXRDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6OmFkZElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvTm9kZU91dHB1dDo6cmVtb3ZlSW5wdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9O
b2RlT3V0cHV0OjpkaXNjb25uZWN0QWxsSW5wdXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Tm9kZU91dHB1dDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6
OmVuYWJsZSk6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojpub2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvTm9kZU91dHB1dDo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05v
ZGVPdXRwdXQ6Om51bWJlck9mQ2hhbm5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
T3V0cHV0Ojppc0NoYW5uZWxDb3VudEtub3duKToKKwogMjAxMC0xMC0xMSAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2
byBOb3JvbmhhIFNpbHZhLgpJbmRleDogV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0
LmgiCisKKyNpbmNsdWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgor
I2luY2x1ZGUgIkF1ZGlvTm9kZUlucHV0LmgiCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0F1ZGlvTm9kZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0
KEF1ZGlvTm9kZSogbm9kZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKKyAgICA6IG1fbm9k
ZShub2RlKQorICAgICwgbV9udW1iZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5lbHMpCisgICAg
LCBtX2Rlc2lyZWROdW1iZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5lbHMpCisgICAgLCBtX2lu
dGVybmFsT3V0cHV0QnVzKDApCisgICAgLCBtX2FjdHVhbERlc3RpbmF0aW9uQnVzKDApCisgICAg
LCBtX2lzRW5hYmxlZCh0cnVlKQorICAgICwgbV9yZW5kZXJpbmdGYW5PdXRDb3VudCgwKQorewor
ICAgIG1fbW9ub0ludGVybmFsQnVzID0gYWRvcHRQdHIobmV3IEF1ZGlvQnVzKDEsIEF1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykpOworICAgIG1fc3RlcmVvSW50ZXJuYWxCdXMgPSBh
ZG9wdFB0cihuZXcgQXVkaW9CdXMoMiwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVz
KSk7CisgICAgc2V0SW50ZXJuYWxCdXMoKTsKK30KKwordm9pZCBBdWRpb05vZGVPdXRwdXQ6OnNl
dE51bWJlck9mQ2hhbm5lbHModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKK3sKKyAgICBBU1NF
UlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CisgICAgCisgICAgbV9kZXNpcmVkTnVtYmVy
T2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7CisKKyAgICBpZiAoY29udGV4dCgpLT5pc0F1
ZGlvVGhyZWFkKCkpIHsKKyAgICAgICAgLy8gSWYgd2UncmUgaW4gdGhlIGF1ZGlvIHRocmVhZCB0
aGVuIHdlIGNhbiB0YWtlIGNhcmUgb2YgaXQgcmlnaHQgYXdheSAod2Ugc2hvdWxkIGJlIGF0IHRo
ZSB2ZXJ5IHN0YXJ0IG9yIGVuZCBvZiBhIHJlbmRlcmluZyBxdWFudHVtKS4KKyAgICAgICAgdXBk
YXRlTnVtYmVyT2ZDaGFubmVscygpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIExldCB0aGUg
Y29udGV4dCB0YWtlIGNhcmUgb2YgaXQgaW4gdGhlIGF1ZGlvIHRocmVhZCBpbiB0aGUgcHJlIGFu
ZCBwb3N0IHJlbmRlciB0YXNrcy4KKyAgICAgICAgY29udGV4dCgpLT5tYXJrQXVkaW9Ob2RlT3V0
cHV0RGlydHkodGhpcyk7CisgICAgfQorfQorCit2b2lkIEF1ZGlvTm9kZU91dHB1dDo6c2V0SW50
ZXJuYWxCdXMoKQoreworICAgIHN3aXRjaCAobV9udW1iZXJPZkNoYW5uZWxzKSB7CisgICAgY2Fz
ZSAwOgorICAgIGNhc2UgMToKKyAgICAgICAgbV9pbnRlcm5hbE91dHB1dEJ1cyA9IG1fbW9ub0lu
dGVybmFsQnVzLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDI6CisgICAgICAgIG1f
aW50ZXJuYWxPdXRwdXRCdXMgPSBtX3N0ZXJlb0ludGVybmFsQnVzLmdldCgpOworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICAvLyBGSVhNRTogbGF0ZXIgd2UgY2FuIGZ1bGx5
IGltcGxlbWVudCBtb3JlIHRoYW4gc3RlcmVvLCA1LjEsIGV0Yy4KKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7ICAgICAgICAgICAgCisgICAgfQorCisgICAgLy8gVGhpcyBtYXkgbGF0ZXIg
YmUgY2hhbmdlZCBpbiBwdWxsKCkgdG8gcG9pbnQgdG8gYW4gaW4tcGxhY2UgYnVzIHdpdGggdGhl
IHNhbWUgbnVtYmVyIG9mIGNoYW5uZWxzLgorICAgIG1fYWN0dWFsRGVzdGluYXRpb25CdXMgPSBt
X2ludGVybmFsT3V0cHV0QnVzOworfQorCit2b2lkIEF1ZGlvTm9kZU91dHB1dDo6dXBkYXRlUmVu
ZGVyaW5nU3RhdGUoKQoreworICAgIHVwZGF0ZU51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICBtX3Jl
bmRlcmluZ0Zhbk91dENvdW50ID0gZmFuT3V0Q291bnQoKTsKK30KKwordm9pZCBBdWRpb05vZGVP
dXRwdXQ6OnVwZGF0ZU51bWJlck9mQ2hhbm5lbHMoKQoreworICAgIEFTU0VSVChjb250ZXh0KCkt
PmlzQXVkaW9UaHJlYWQoKSAmJiBjb250ZXh0KCktPmlzR3JhcGhPd25lcigpKTsKKworICAgIGlm
IChtX251bWJlck9mQ2hhbm5lbHMgIT0gbV9kZXNpcmVkTnVtYmVyT2ZDaGFubmVscykgeworICAg
ICAgICBtX251bWJlck9mQ2hhbm5lbHMgPSBtX2Rlc2lyZWROdW1iZXJPZkNoYW5uZWxzOworICAg
ICAgICBzZXRJbnRlcm5hbEJ1cygpOworICAgICAgICBwcm9wYWdhdGVDaGFubmVsQ291bnQoKTsK
KyAgICB9Cit9CisKK3ZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojpwcm9wYWdhdGVDaGFubmVsQ291bnQo
KQoreworICAgIEFTU0VSVChjb250ZXh0KCktPmlzQXVkaW9UaHJlYWQoKSAmJiBjb250ZXh0KCkt
PmlzR3JhcGhPd25lcigpKTsKKyAgICAKKyAgICBpZiAoaXNDaGFubmVsQ291bnRLbm93bigpKSB7
CisgICAgICAgIC8vIEFubm91bmNlIHRvIGFueSBub2RlcyB3ZSdyZSBjb25uZWN0ZWQgdG8gdGhh
dCB3ZSBjaGFuZ2VkIG91ciBjaGFubmVsIGNvdW50IGZvciBpdHMgaW5wdXQuCisgICAgICAgIGZv
ciAoSW5wdXRzSXRlcmF0b3IgaSA9IG1faW5wdXRzLmJlZ2luKCk7IGkgIT0gbV9pbnB1dHMuZW5k
KCk7ICsraSkgeworICAgICAgICAgICAgQXVkaW9Ob2RlSW5wdXQqIGlucHV0ID0gKmk7CisgICAg
ICAgICAgICBBdWRpb05vZGUqIGNvbm5lY3Rpb25Ob2RlID0gaW5wdXQtPm5vZGUoKTsKKyAgICAg
ICAgICAgIGNvbm5lY3Rpb25Ob2RlLT5jaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChpbnB1
dCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0F1ZGlvQnVzKiBBdWRpb05vZGVPdXRwdXQ6OnB1
bGwoQXVkaW9CdXMqIGluUGxhY2VCdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAg
QVNTRVJUKGNvbnRleHQoKS0+aXNBdWRpb1RocmVhZCgpKTsKKyAgICBBU1NFUlQobV9yZW5kZXJp
bmdGYW5PdXRDb3VudCA+IDApOworICAgIAorICAgIC8vIENhdXNlcyBvdXIgQXVkaW9Ob2RlIHRv
IHByb2Nlc3MgaWYgaXQgaGFzbid0IGFscmVhZHkgZm9yIHRoaXMgcmVuZGVyIHF1YW50dW0uCisg
ICAgLy8gV2UgdHJ5IHRvIGRvIGluLXBsYWNlIHByb2Nlc3NpbmcgKHVzaW5nIGluUGxhY2VCdXMp
IGlmIGF0IGFsbCBwb3NzaWJsZSwKKyAgICAvLyBidXQgd2UgY2FuJ3QgcHJvY2VzcyBpbi1wbGFj
ZSBpZiB3ZSdyZSBjb25uZWN0ZWQgdG8gbW9yZSB0aGFuIG9uZSBpbnB1dCAoZmFuLW91dCA+IDEp
LgorICAgIC8vIEluIHRoaXMgY2FzZSBwdWxsKCkgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHBl
ciByZW5kZXJpbmcgcXVhbnR1bSwgYW5kIHRoZSBwcm9jZXNzSWZOZWNlc3NhcnkoKSBjYWxsIGJl
bG93IHdpbGwKKyAgICAvLyBjYXVzZSBvdXIgbm9kZSB0byBwcm9jZXNzKCkgb25seSB0aGUgZmly
c3QgdGltZSwgY2FjaGluZyB0aGUgb3V0cHV0IGluIG1faW50ZXJuYWxPdXRwdXRCdXMgZm9yIHN1
YnNlcXVlbnQgY2FsbHMuICAgIAorICAgIAorICAgIGJvb2wgaXNJblBsYWNlID0gaW5QbGFjZUJ1
cyAmJiBpblBsYWNlQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gbnVtYmVyT2ZDaGFubmVscygp
ICYmIG1fcmVuZGVyaW5nRmFuT3V0Q291bnQgPT0gMTsKKworICAgIC8vIFNldHVwIHRoZSBhY3R1
YWwgZGVzdGluYXRpb24gYnVzIGZvciBwcm9jZXNzaW5nIHdoZW4gb3VyIG5vZGUncyBwcm9jZXNz
KCkgbWV0aG9kIGdldHMgY2FsbGVkIGluIHByb2Nlc3NJZk5lY2Vzc2FyeSgpIGJlbG93LgorICAg
IG1fYWN0dWFsRGVzdGluYXRpb25CdXMgPSBpc0luUGxhY2UgPyBpblBsYWNlQnVzIDogbV9pbnRl
cm5hbE91dHB1dEJ1czsKKworICAgIG5vZGUoKS0+cHJvY2Vzc0lmTmVjZXNzYXJ5KGZyYW1lc1Rv
UHJvY2Vzcyk7CisgICAgcmV0dXJuIG1fYWN0dWFsRGVzdGluYXRpb25CdXM7Cit9CisKK0F1ZGlv
QnVzKiBBdWRpb05vZGVPdXRwdXQ6OmJ1cygpIGNvbnN0Cit7CisgICAgQVNTRVJUKGNvbnN0X2Nh
c3Q8QXVkaW9Ob2RlT3V0cHV0Kj4odGhpcyktPmNvbnRleHQoKS0+aXNBdWRpb1RocmVhZCgpKTsK
KyAgICBBU1NFUlQobV9hY3R1YWxEZXN0aW5hdGlvbkJ1cyk7CisgICAgcmV0dXJuIG1fYWN0dWFs
RGVzdGluYXRpb25CdXM7Cit9CisKK3Vuc2lnbmVkIEF1ZGlvTm9kZU91dHB1dDo6cmVuZGVyaW5n
RmFuT3V0Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlbmRlcmluZ0Zhbk91dENvdW50
OworfQorCit1bnNpZ25lZCBBdWRpb05vZGVPdXRwdXQ6OmZhbk91dENvdW50KCkKK3sKKyAgICBB
U1NFUlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CisgICAgcmV0dXJuIG1faW5wdXRzLnNp
emUoKTsKK30KKwordm9pZCBBdWRpb05vZGVPdXRwdXQ6OmFkZElucHV0KEF1ZGlvTm9kZUlucHV0
KiBpbnB1dCkKK3sKKyAgICBBU1NFUlQoY29udGV4dCgpLT5pc0dyYXBoT3duZXIoKSk7CisKKyAg
ICBBU1NFUlQoaW5wdXQpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1faW5wdXRzLmFkZChpbnB1dCk7Cit9CisKK3ZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpyZW1vdmVJ
bnB1dChBdWRpb05vZGVJbnB1dCogaW5wdXQpCit7CisgICAgQVNTRVJUKGNvbnRleHQoKS0+aXNH
cmFwaE93bmVyKCkpOworCisgICAgQVNTRVJUKGlucHV0KTsKKyAgICBpZiAoIWlucHV0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2lucHV0cy5yZW1vdmUoaW5wdXQpOworfQorCit2b2lkIEF1
ZGlvTm9kZU91dHB1dDo6ZGlzY29ubmVjdEFsbElucHV0cygpCit7CisgICAgQVNTRVJUKGNvbnRl
eHQoKS0+aXNHcmFwaE93bmVyKCkpOworICAgIAorICAgIC8vIEF1ZGlvTm9kZUlucHV0OjpkaXNj
b25uZWN0KCkgY2hhbmdlcyBtX2lucHV0cyBieSBjYWxsaW5nIHJlbW92ZUlucHV0KCkuCisgICAg
d2hpbGUgKCFtX2lucHV0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgQXVkaW9Ob2RlSW5wdXQqIGlu
cHV0ID0gKm1faW5wdXRzLmJlZ2luKCk7CisgICAgICAgIGlucHV0LT5kaXNjb25uZWN0KHRoaXMp
OworICAgIH0KK30KKwordm9pZCBBdWRpb05vZGVPdXRwdXQ6OmRpc2FibGUoKQoreworICAgIEFT
U0VSVChjb250ZXh0KCktPmlzR3JhcGhPd25lcigpKTsKKworICAgIGlmIChtX2lzRW5hYmxlZCkg
eworICAgICAgICBmb3IgKElucHV0c0l0ZXJhdG9yIGkgPSBtX2lucHV0cy5iZWdpbigpOyBpICE9
IG1faW5wdXRzLmVuZCgpOyArK2kpIHsKKyAgICAgICAgICAgIEF1ZGlvTm9kZUlucHV0KiBpbnB1
dCA9ICppOworICAgICAgICAgICAgaW5wdXQtPmRpc2FibGUodGhpcyk7CisgICAgICAgIH0KKyAg
ICAgICAgbV9pc0VuYWJsZWQgPSBmYWxzZTsKKyAgICB9Cit9CisKK3ZvaWQgQXVkaW9Ob2RlT3V0
cHV0OjplbmFibGUoKQoreworICAgIEFTU0VSVChjb250ZXh0KCktPmlzR3JhcGhPd25lcigpKTsK
KworICAgIGlmICghbV9pc0VuYWJsZWQpIHsKKyAgICAgICAgZm9yIChJbnB1dHNJdGVyYXRvciBp
ID0gbV9pbnB1dHMuYmVnaW4oKTsgaSAhPSBtX2lucHV0cy5lbmQoKTsgKytpKSB7CisgICAgICAg
ICAgICBBdWRpb05vZGVJbnB1dCogaW5wdXQgPSAqaTsKKyAgICAgICAgICAgIGlucHV0LT5lbmFi
bGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0VuYWJsZWQgPSB0cnVlOworICAgIH0K
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJ
TykKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBdWRpb05vZGVPdXRwdXRfaAorI2RlZmluZSBB
dWRpb05vZGVPdXRwdXRfaAorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNsdWRlICJBdWRp
b05vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQXVkaW9Db250ZXh0OworY2xhc3MgQXVkaW9Ob2RlSW5wdXQ7CisKKy8vIEF1ZGlvTm9kZU91
dHB1dCByZXByZXNlbnRzIGEgc2luZ2xlIG91dHB1dCBmb3IgYW4gQXVkaW9Ob2RlLgorLy8gSXQg
bWF5IGJlIGNvbm5lY3RlZCB0byBvbmUgb3IgbW9yZSBBdWRpb05vZGVJbnB1dHMuCisKK2NsYXNz
IEF1ZGlvTm9kZU91dHB1dCB7CitwdWJsaWM6CisgICAgLy8gSXQncyBPSyB0byBwYXNzIDAgZm9y
IG51bWJlck9mQ2hhbm5lbHMgaW4gd2hpY2ggY2FzZSBzZXROdW1iZXJPZkNoYW5uZWxzKCkgbXVz
dCBiZSBjYWxsZWQgbGF0ZXIgb24uCisgICAgQXVkaW9Ob2RlT3V0cHV0KEF1ZGlvTm9kZSosIHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMpOworCisgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFu
eSB0aHJlYWQuCisgICAgQXVkaW9Ob2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlOyB9
CisgICAgQXVkaW9Db250ZXh0KiBjb250ZXh0KCkgeyByZXR1cm4gbV9ub2RlLT5jb250ZXh0KCk7
IH0KKyAgICAKKyAgICAvLyBDYXVzZXMgb3VyIEF1ZGlvTm9kZSB0byBwcm9jZXNzIGlmIGl0IGhh
c24ndCBhbHJlYWR5IGZvciB0aGlzIHJlbmRlciBxdWFudHVtLgorICAgIC8vIEl0IHJldHVybnMg
dGhlIGJ1cyBjb250YWluaW5nIHRoZSBwcm9jZXNzZWQgYXVkaW8gZm9yIHRoaXMgb3V0cHV0LCBy
ZXR1cm5pbmcgaW5QbGFjZUJ1cyBpZiBpbi1wbGFjZSBwcm9jZXNzaW5nIHdhcyBwb3NzaWJsZS4K
KyAgICAvLyBDYWxsZWQgZnJvbSBjb250ZXh0J3MgYXVkaW8gdGhyZWFkLgorICAgIEF1ZGlvQnVz
KiBwdWxsKEF1ZGlvQnVzKiBpblBsYWNlQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKKwor
ICAgIC8vIGJ1cygpIHdpbGwgY29udGFpbiB0aGUgcmVuZGVyZWQgYXVkaW8gYWZ0ZXIgcHVsbCgp
IGlzIGNhbGxlZCBmb3IgZWFjaCByZW5kZXJpbmcgdGltZSBxdWFudHVtLgorICAgIC8vIENhbGxl
ZCBmcm9tIGNvbnRleHQncyBhdWRpbyB0aHJlYWQuCisgICAgQXVkaW9CdXMqIGJ1cygpIGNvbnN0
OworCisgICAgLy8gZmFuT3V0Q291bnQoKSBpcyB0aGUgbnVtYmVyIG9mIEF1ZGlvTm9kZUlucHV0
cyB0aGF0IHdlJ3JlIGNvbm5lY3RlZCB0by4KKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBu
b3QgYmUgY2FsbGVkIGluIGF1ZGlvIHRocmVhZCByZW5kZXJpbmcgY29kZSwgaW5zdGVhZCByZW5k
ZXJpbmdGYW5PdXRDb3VudCgpIHNob3VsZCBiZSB1c2VkLgorICAgIC8vIEl0IG11c3QgYmUgY2Fs
bGVkIHdpdGggdGhlIGNvbnRleHQncyBncmFwaCBsb2NrLgorICAgIHVuc2lnbmVkIGZhbk91dENv
dW50KCk7CisKKyAgICAvLyByZW5kZXJpbmdGYW5PdXRDb3VudCgpIGlzIHRoZSBudW1iZXIgb2Yg
QXVkaW9Ob2RlSW5wdXRzIHRoYXQgd2UncmUgY29ubmVjdGVkIHRvIGR1cmluZyByZW5kZXJpbmcu
CisgICAgLy8gVW5saWtlIGZhbk91dENvdW50KCkgaXQgd2lsbCBub3QgY2hhbmdlIGR1cmluZyB0
aGUgY291cnNlIG9mIGEgcmVuZGVyIHF1YW50dW0uCisgICAgdW5zaWduZWQgcmVuZGVyaW5nRmFu
T3V0Q291bnQoKSBjb25zdDsKKworICAgIC8vIEl0IG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIGNv
bnRleHQncyBncmFwaCBsb2NrLgorICAgIHZvaWQgZGlzY29ubmVjdEFsbElucHV0cygpOworCisg
ICAgdm9pZCBzZXROdW1iZXJPZkNoYW5uZWxzKHVuc2lnbmVkKTsKKyAgICB1bnNpZ25lZCBudW1i
ZXJPZkNoYW5uZWxzKCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZkNoYW5uZWxzOyB9CisgICAg
Ym9vbCBpc0NoYW5uZWxDb3VudEtub3duKCkgY29uc3QgeyByZXR1cm4gbnVtYmVyT2ZDaGFubmVs
cygpID4gMDsgfQorCisgICAgLy8gRGlzYWJsZS9FbmFibGUgaGFwcGVucyB3aGVuIHRoZXJlIGFy
ZSBzdGlsbCBKYXZhU2NyaXB0IHJlZmVyZW5jZXMgdG8gYSBub2RlLCBidXQgaXQgaGFzIG90aGVy
d2lzZSAiZmluaXNoZWQiIGl0cyB3b3JrLgorICAgIC8vIEZvciBleGFtcGxlLCB3aGVuIGEgbm90
ZSBoYXMgZmluaXNoZWQgcGxheWluZy4gIEl0IGlzIGtlcHQgYXJvdW5kLCBiZWNhdXNlIGl0IG1h
eSBiZSBwbGF5ZWQgYWdhaW4gYXQgYSBsYXRlciB0aW1lLgorICAgIC8vIFRoZXkgbXVzdCBiZSBj
YWxsZWQgd2l0aCB0aGUgY29udGV4dCdzIGdyYXBoIGxvY2suCisgICAgdm9pZCBkaXNhYmxlKCk7
CisgICAgdm9pZCBlbmFibGUoKTsKKworICAgIC8vIHVwZGF0ZVJlbmRlcmluZ1N0YXRlKCkgaXMg
Y2FsbGVkIGluIHRoZSBhdWRpbyB0aHJlYWQgYXQgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgcmVu
ZGVyIHF1YW50dW0gdG8gaGFuZGxlIGFueSByZWNlbnQgY2hhbmdlcyB0byB0aGUgZ3JhcGggc3Rh
dGUuCisgICAgLy8gSXQgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgY29udGV4dCdzIGdyYXBoIGxv
Y2suCisgICAgdm9pZCB1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpOworICAgIAorcHJpdmF0ZToKKyAg
ICBBdWRpb05vZGUqIG1fbm9kZTsKKworICAgIGZyaWVuZCBjbGFzcyBBdWRpb05vZGVJbnB1dDsK
KyAgICAKKyAgICAvLyBUaGVzZSBhcmUgY2FsbGVkIGZyb20gQXVkaW9Ob2RlSW5wdXQuCisgICAg
Ly8gVGhleSBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBjb250ZXh0J3MgZ3JhcGggbG9jay4KKyAg
ICB2b2lkIGFkZElucHV0KEF1ZGlvTm9kZUlucHV0Kik7CisgICAgdm9pZCByZW1vdmVJbnB1dChB
dWRpb05vZGVJbnB1dCopOworCisgICAgLy8gc2V0SW50ZXJuYWxCdXMoKSBzZXRzIG1faW50ZXJu
YWxPdXRwdXRCdXMgYXBwcm9wcmlhdGVseSBmb3IgdGhlIG51bWJlciBvZiBjaGFubmVscy4KKyAg
ICAvLyBJdCBpcyBjYWxsZWQgaW4gdGhlIGNvbnN0cnVjdG9yIG9yIGluIHRoZSBhdWRpbyB0aHJl
YWQgd2l0aCB0aGUgY29udGV4dCdzIGdyYXBoIGxvY2suCisgICAgdm9pZCBzZXRJbnRlcm5hbEJ1
cygpOworCisgICAgLy8gQW5ub3VuY2UgdG8gYW55IG5vZGVzIHdlJ3JlIGNvbm5lY3RlZCB0byB0
aGF0IHdlIGNoYW5nZWQgb3VyIGNoYW5uZWwgY291bnQgZm9yIGl0cyBpbnB1dC4KKyAgICAvLyBJ
dCBtdXN0IGJlIGNhbGxlZCBpbiB0aGUgYXVkaW8gdGhyZWFkIHdpdGggdGhlIGNvbnRleHQncyBn
cmFwaCBsb2NrLgorICAgIHZvaWQgcHJvcGFnYXRlQ2hhbm5lbENvdW50KCk7CisKKyAgICAvLyB1
cGRhdGVOdW1iZXJPZkNoYW5uZWxzKCkgaXMgY2FsbGVkIGluIHRoZSBhdWRpbyB0aHJlYWQgYXQg
dGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgcmVuZGVyIHF1YW50dW0gdG8gcGljayB1cCBjaGFubmVs
IGNoYW5nZXMuCisgICAgLy8gSXQgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgY29udGV4dCdzIGdy
YXBoIGxvY2suCisgICAgdm9pZCB1cGRhdGVOdW1iZXJPZkNoYW5uZWxzKCk7CisKKyAgICAvLyBt
X251bWJlck9mQ2hhbm5lbHMgd2lsbCBvbmx5IGJlIGNoYW5nZWQgaW4gdGhlIGF1ZGlvIHRocmVh
ZC4KKyAgICAvLyBUaGUgbWFpbiB0aHJlYWQgc2V0cyBtX2Rlc2lyZWROdW1iZXJPZkNoYW5uZWxz
IHdoaWNoIHdpbGwgbGF0ZXIgZ2V0IHBpY2tlZCB1cCBpbiB0aGUgYXVkaW8gdGhyZWFkIGluIHVw
ZGF0ZU51bWJlck9mQ2hhbm5lbHMoKS4KKyAgICB1bnNpZ25lZCBtX251bWJlck9mQ2hhbm5lbHM7
CisgICAgdW5zaWduZWQgbV9kZXNpcmVkTnVtYmVyT2ZDaGFubmVsczsKKyAgICAKKyAgICAvLyBt
X2ludGVybmFsT3V0cHV0QnVzIHdpbGwgcG9pbnQgdG8gZWl0aGVyIG1fbW9ub0ludGVybmFsQnVz
IG9yIG1fc3RlcmVvSW50ZXJuYWxCdXMuCisgICAgLy8gSXQgbXVzdCBvbmx5IGJlIGNoYW5nZWQg
aW4gdGhlIGF1ZGlvIHRocmVhZCAob3IgY29uc3RydWN0b3IpLgorICAgIEF1ZGlvQnVzKiBtX2lu
dGVybmFsT3V0cHV0QnVzOworICAgIE93blB0cjxBdWRpb0J1cz4gbV9tb25vSW50ZXJuYWxCdXM7
CisgICAgT3duUHRyPEF1ZGlvQnVzPiBtX3N0ZXJlb0ludGVybmFsQnVzOworCisgICAgLy8gbV9h
Y3R1YWxEZXN0aW5hdGlvbkJ1cyBpcyBzZXQgaW4gcHVsbCgpIGFuZCB3aWxsIGVpdGhlciBwb2lu
dCB0byBvbmUgb2Ygb3VyIGludGVybmFsIGJ1c3NlcyBvciB0byB0aGUgaW4tcGxhY2UgYnVzLgor
ICAgIC8vIEl0IG11c3Qgb25seSBiZSBjaGFuZ2VkIGluIHRoZSBhdWRpbyB0aHJlYWQgKG9yIGNv
bnN0cnVjdG9yKS4KKyAgICBBdWRpb0J1cyogbV9hY3R1YWxEZXN0aW5hdGlvbkJ1czsKKworICAg
IEhhc2hTZXQ8QXVkaW9Ob2RlSW5wdXQqPiBtX2lucHV0czsKKyAgICB0eXBlZGVmIEhhc2hTZXQ8
QXVkaW9Ob2RlSW5wdXQqPjo6aXRlcmF0b3IgSW5wdXRzSXRlcmF0b3I7CisgICAgYm9vbCBtX2lz
RW5hYmxlZDsKKyAgICAKKyAgICAvLyBGb3IgdGhlIHB1cnBvc2VzIG9mIHJlbmRlcmluZywga2Vl
cHMgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBpbnB1dHMgd2UncmUgY29ubmVjdGVkIHRvLgorICAg
IC8vIFRoaXMgdmFsdWUgc2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBhdCB0aGUgdmVyeSBzdGFydCBv
ciBlbmQgb2YgdGhlIHJlbmRlcmluZyBxdWFudHVtLgorICAgIHVuc2lnbmVkIG1fcmVuZGVyaW5n
RmFuT3V0Q291bnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBB
dWRpb05vZGVPdXRwdXRfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>