<?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>75985</bug_id>
          
          <creation_ts>2012-01-10 12:50:37 -0800</creation_ts>
          <short_desc>CodeBlock::m_numParameters should be encapsulated</short_desc>
          <delta_ts>2012-01-10 14:09:13 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533313</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-10 12:50:37 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533315</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-10 12:51:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/10671020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533345</commentid>
    <comment_count>2</comment_count>
      <attachid>121900</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-10 13:33:49 -0800</bug_when>
    <thetext>Created attachment 121900
the patch

Seems neutral.



[pizlo@nitroflex bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc RfctrNumParam:/Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc --remote bigmac,oldmac --local
Copying TipOfTree into /Volumes/Data/pizlo/bencher/temp/benchdata...
Copying RfctrNumParam into /Volumes/Data/pizlo/bencher/temp/benchdata...
All VMs are in place.
Packaging benchmarking directory for remote hosts...
Sending benchmark payload to bigmac...
Running on bigmac...
376/376                                                            
Generating benchmark report at TipOfTree_RfctrNumParam_SunSpiderV8Kraken_bigmac_20120110_1309_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on bigmac (MacPro5,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r104613)
&quot;RfctrNumParam&quot; at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r104613)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             RfctrNumParam                                  
SunSpider:
   3d-cube                                5.8683+-0.0181    !     5.9354+-0.0145       ! definitely 1.0114x slower
   3d-morph                               8.4685+-0.0902          8.4185+-0.0714       
   3d-raytrace                            7.8394+-0.0584          7.8346+-0.0468       
   access-binary-trees                    1.6051+-0.0060    ?     1.6086+-0.0100       ?
   access-fannkuch                        7.5068+-0.0582          7.4632+-0.0418       
   access-nbody                           3.9616+-0.0075    ?     3.9708+-0.0048       ?
   access-nsieve                          3.1296+-0.0404    ?     3.1675+-0.0605       ? might be 1.0121x slower
   bitops-3bit-bits-in-byte               1.2497+-0.0115    ?     1.2555+-0.0136       ?
   bitops-bits-in-byte                    5.0360+-0.0315          5.0221+-0.0458       
   bitops-bitwise-and                     3.3961+-0.1008          3.3911+-0.0970       
   bitops-nsieve-bits                     5.6554+-0.0382          5.6373+-0.0346       
   controlflow-recursive                  2.3302+-0.0076    ?     2.3433+-0.0180       ?
   crypto-aes                             7.5072+-0.1635          7.3696+-0.0301         might be 1.0187x faster
   crypto-md5                             2.4991+-0.0276    ?     2.5415+-0.0324       ? might be 1.0170x slower
   crypto-sha1                            2.2877+-0.0089    ?     2.2984+-0.0159       ?
   date-format-tofte                     10.6542+-0.1226    ?    10.7796+-0.1434       ? might be 1.0118x slower
   date-format-xparb                      9.7879+-0.0417    !    10.1586+-0.0833       ! definitely 1.0379x slower
   math-cordic                            7.3127+-0.0989          7.2762+-0.0476       
   math-partial-sums                     10.5211+-0.0368         10.4998+-0.0639       
   math-spectral-norm                     2.6520+-0.0154          2.6474+-0.0039       
   regexp-dna                             8.8970+-0.0127    !     9.0567+-0.0893       ! definitely 1.0180x slower
   string-base64                          4.3556+-0.0421    ^     4.2931+-0.0130       ^ definitely 1.0146x faster
   string-fasta                           7.2574+-0.0206          7.2566+-0.0258       
   string-tagcloud                       12.3251+-0.0567    !    12.4417+-0.0391       ! definitely 1.0095x slower
   string-unpack-code                    20.4763+-0.1440    ?    20.5627+-0.0549       ?
   string-validate-input                  5.6144+-0.0309    ^     5.5323+-0.0324       ^ definitely 1.0148x faster

   &lt;arithmetic&gt; *                         6.4690+-0.0243    ?     6.4909+-0.0209       ? might be 1.0034x slower
   &lt;geometric&gt;                            5.2735+-0.0205    ?     5.2865+-0.0220       ? might be 1.0025x slower
   &lt;harmonic&gt;                             4.1883+-0.0183    ?     4.1999+-0.0222       ? might be 1.0028x slower

                                            TipOfTree             RfctrNumParam                                  
V8:
   crypto                                77.9880+-0.3012         77.6291+-0.2856       
   deltablue                            171.1756+-1.2006    !   173.8017+-1.0390       ! definitely 1.0153x slower
   earley-boyer                          99.4807+-1.1543    ?    99.6217+-0.8499       ?
   raytrace                              51.2460+-0.2566    ?    51.2726+-0.1109       ?
   regexp                               118.4736+-0.6294    ?   119.3783+-0.3546       ?
   richards                             137.0357+-0.4192    ?   138.1799+-0.7674       ?
   splay                                 92.4658+-1.4322    ?    92.6360+-1.5458       ?

   &lt;arithmetic&gt;                         106.8379+-0.3346    ?   107.5028+-0.3544       ? might be 1.0062x slower
   &lt;geometric&gt; *                        100.2996+-0.3226    ?   100.7358+-0.3362       ? might be 1.0043x slower
   &lt;harmonic&gt;                            93.5915+-0.3170    ?    93.8412+-0.3017       ? might be 1.0027x slower

                                            TipOfTree             RfctrNumParam                                  
Kraken:
   ai-astar                             817.6216+-10.4685   ?   827.8829+-0.7681       ? might be 1.0126x slower
   audio-beat-detection                 192.2483+-0.7113        191.8314+-0.6771       
   audio-dft                            274.6441+-2.0212    ?   275.8626+-1.5501       ?
   audio-fft                            119.8347+-0.9139    ?   120.0442+-1.1719       ?
   audio-oscillator                     280.8818+-2.1622        280.4128+-1.9432       
   imaging-darkroom                     304.4767+-9.2157        301.2759+-7.2255         might be 1.0106x faster
   imaging-desaturate                   229.9158+-0.0687    ?   230.0034+-0.0640       ?
   imaging-gaussian-blur                519.6653+-1.1099        519.5721+-0.4877       
   json-parse-financial                  68.0139+-0.2153    !    68.9786+-0.3429       ! definitely 1.0142x slower
   json-stringify-tinderbox              80.9312+-1.0978    !    85.3001+-1.4029       ! definitely 1.0540x slower
   stanford-crypto-aes                  115.6784+-0.2686    ?   115.9618+-0.6682       ?
   stanford-crypto-ccm                  108.7447+-0.8759    ?   109.5120+-1.1911       ?
   stanford-crypto-pbkdf2               215.1478+-0.5469    ?   215.8661+-0.5456       ?
   stanford-crypto-sha256-iterative      94.7657+-0.4536    ^    93.6657+-0.1614       ^ definitely 1.0117x faster

   &lt;arithmetic&gt; *                       244.4693+-1.1735    ?   245.4407+-0.5786       ? might be 1.0040x slower
   &lt;geometric&gt;                          189.0543+-0.6567    ?   190.0362+-0.4414       ? might be 1.0052x slower
   &lt;harmonic&gt;                           152.7654+-0.4600    !   154.1267+-0.4529       ! definitely 1.0089x slower

                                            TipOfTree             RfctrNumParam                                  
All benchmarks:
   &lt;arithmetic&gt;                          92.3113+-0.3904    ?    92.7117+-0.2022       ? might be 1.0043x slower
   &lt;geometric&gt;                           23.7495+-0.0729    ?    23.8340+-0.0715       ? might be 1.0036x slower
   &lt;harmonic&gt;                             7.3734+-0.0316    ?     7.3945+-0.0382       ? might be 1.0029x slower

                                            TipOfTree             RfctrNumParam                                  
Geomean of preferred means:
   &lt;scaled-result&gt;                       54.1316+-0.1628    ?    54.3429+-0.1260       ? might be 1.0039x slower

Sending benchmark payload to oldmac...
Running on oldmac...
376/376                                                            
Generating benchmark report at TipOfTree_RfctrNumParam_SunSpiderV8Kraken_oldmac_20120110_1312_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on oldmac (MacPro4,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r104613)
&quot;RfctrNumParam&quot; at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r104613)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             RfctrNumParam                                  
SunSpider:
   3d-cube                                7.0533+-0.0265    !     7.1614+-0.0341       ! definitely 1.0153x slower
   3d-morph                              10.6125+-0.1990    ^    10.2576+-0.1293       ^ definitely 1.0346x faster
   3d-raytrace                            9.4088+-0.0557          9.3565+-0.0422       
   access-binary-trees                    1.9282+-0.0181          1.9233+-0.0074       
   access-fannkuch                        9.0700+-0.0679    ?     9.0965+-0.0582       ?
   access-nbody                           4.8020+-0.0157          4.7983+-0.0112       
   access-nsieve                          3.7470+-0.0593          3.7413+-0.0499       
   bitops-3bit-bits-in-byte               1.5143+-0.0164          1.4961+-0.0053         might be 1.0122x faster
   bitops-bits-in-byte                    6.1203+-0.1022    ?     6.1538+-0.1273       ?
   bitops-bitwise-and                     4.0384+-0.0923    ?     4.1048+-0.1138       ? might be 1.0164x slower
   bitops-nsieve-bits                     6.8230+-0.0447    ?     6.8315+-0.0461       ?
   controlflow-recursive                  2.8277+-0.0286          2.8211+-0.0153       
   crypto-aes                             8.8718+-0.0408    ?     8.9188+-0.0501       ?
   crypto-md5                             2.9864+-0.0363    ?     3.0160+-0.0315       ?
   crypto-sha1                            2.7370+-0.0076    ?     2.7512+-0.0194       ?
   date-format-tofte                     12.8502+-0.1035    ?    12.9286+-0.1492       ?
   date-format-xparb                     12.2060+-0.0997    !    12.8293+-0.4358       ! definitely 1.0511x slower
   math-cordic                            8.7722+-0.0351    ?     8.7931+-0.0392       ?
   math-partial-sums                     12.6144+-0.0430    ?    12.6522+-0.0575       ?
   math-spectral-norm                     3.2058+-0.0278          3.1985+-0.0083       
   regexp-dna                            10.8020+-0.0458    ?    10.8300+-0.0775       ?
   string-base64                          5.3186+-0.1814          5.1991+-0.0478         might be 1.0230x faster
   string-fasta                           8.7312+-0.0575          8.7033+-0.0268       
   string-tagcloud                       14.9391+-0.0466    ?    14.9752+-0.0451       ?
   string-unpack-code                    25.6408+-0.1239    ?    25.7339+-0.0793       ?
   string-validate-input                  6.7326+-0.0746    ?     6.7630+-0.0600       ?

   &lt;arithmetic&gt; *                         7.8597+-0.0233    ?     7.8859+-0.0309       ? might be 1.0033x slower
   &lt;geometric&gt;                            6.3771+-0.0232    ?     6.3892+-0.0259       ? might be 1.0019x slower
   &lt;harmonic&gt;                             5.0516+-0.0229          5.0515+-0.0198         might be 1.0000x faster

                                            TipOfTree             RfctrNumParam                                  
V8:
   crypto                                93.6672+-0.2530         93.5594+-0.2925       
   deltablue                            207.0785+-1.9827    ?   208.1339+-0.9415       ?
   earley-boyer                         119.9952+-1.0407    ?   120.3941+-1.5951       ?
   raytrace                              61.2435+-0.2262    !    62.3009+-0.1626       ! definitely 1.0173x slower
   regexp                               141.8403+-0.3131    ?   142.2910+-0.4716       ?
   richards                             166.4466+-0.9872    ?   167.2947+-1.3159       ?
   splay                                109.4022+-1.3063    ?   110.4139+-1.1222       ?

   &lt;arithmetic&gt;                         128.5248+-0.3574    ?   129.1983+-0.3454       ? might be 1.0052x slower
   &lt;geometric&gt; *                        120.4594+-0.2878    !   121.1813+-0.3326       ! definitely 1.0060x slower
   &lt;harmonic&gt;                           112.2304+-0.2509    !   113.0520+-0.2988       ! definitely 1.0073x slower

                                            TipOfTree             RfctrNumParam                                  
Kraken:
   ai-astar                             896.6284+-0.5398    ?   897.3215+-0.5353       ?
   audio-beat-detection                 234.2843+-0.7447    ?   234.4186+-1.1871       ?
   audio-dft                            332.1705+-2.8228        330.9123+-2.3645       
   audio-fft                            146.3395+-0.8246    ?   146.7152+-1.3583       ?
   audio-oscillator                     342.4462+-4.3969    ?   347.6450+-5.3358       ? might be 1.0152x slower
   imaging-darkroom                     362.0649+-8.2955        359.5454+-6.5532       
   imaging-desaturate                   278.0760+-0.1537        278.0465+-0.3000       
   imaging-gaussian-blur                628.9836+-0.3563        628.5045+-0.4399       
   json-parse-financial                  82.6112+-0.2405    !    83.7096+-0.3755       ! definitely 1.0133x slower
   json-stringify-tinderbox              96.9675+-0.1525    !   105.5802+-3.3886       ! definitely 1.0888x slower
   stanford-crypto-aes                  139.9473+-0.6911    ^   138.4198+-0.5331       ^ definitely 1.0110x faster
   stanford-crypto-ccm                  130.6286+-1.4276        130.3296+-0.9957       
   stanford-crypto-pbkdf2               261.2039+-1.0815    ?   261.7020+-1.3393       ?
   stanford-crypto-sha256-iterative     115.7132+-0.7981    ^   114.4264+-0.1691       ^ definitely 1.0112x faster

   &lt;arithmetic&gt; *                       289.1475+-0.7690    ?   289.8055+-0.7100       ? might be 1.0023x slower
   &lt;geometric&gt;                          227.2417+-0.5817    !   228.5786+-0.5689       ! definitely 1.0059x slower
   &lt;harmonic&gt;                           184.7135+-0.3882    !   186.7508+-0.6046       ! definitely 1.0110x slower

                                            TipOfTree             RfctrNumParam                                  
All benchmarks:
   &lt;arithmetic&gt;                         109.6190+-0.2636    ?   109.9298+-0.2408       ? might be 1.0028x slower
   &lt;geometric&gt;                           28.6389+-0.0836    ?    28.7444+-0.0856       ? might be 1.0037x slower
   &lt;harmonic&gt;                             8.8930+-0.0397    ?     8.8950+-0.0343       ? might be 1.0002x slower

                                            TipOfTree             RfctrNumParam                                  
Geomean of preferred means:
   &lt;scaled-result&gt;                       64.9315+-0.1519    ?    65.1823+-0.1605       ? might be 1.0039x slower

Running locally...
376/376                                                            
Generating benchmark report at TipOfTree_RfctrNumParam_SunSpiderV8Kraken_nitroflex_20120110_1314_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on nitroflex (MacBookPro8,2).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r104613)
&quot;RfctrNumParam&quot; at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r104613)

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             RfctrNumParam                                  
SunSpider:
   3d-cube                                5.5256+-0.4344          5.3185+-0.1520         might be 1.0389x faster
   3d-morph                               8.0966+-0.1702          8.0764+-0.1231       
   3d-raytrace                            7.3347+-0.1750    ?     7.4635+-0.1790       ? might be 1.0176x slower
   access-binary-trees                    1.5088+-0.0823          1.4646+-0.0221         might be 1.0302x faster
   access-fannkuch                        5.8794+-0.0812    ?     6.0008+-0.0843       ? might be 1.0206x slower
   access-nbody                           3.3144+-0.0793          3.2550+-0.0536         might be 1.0182x faster
   access-nsieve                          2.5761+-0.0654    ?     2.6675+-0.0665       ? might be 1.0355x slower
   bitops-3bit-bits-in-byte               1.2288+-0.0156    ?     1.2608+-0.0227       ? might be 1.0261x slower
   bitops-bits-in-byte                    2.3537+-0.0493    ?     2.4543+-0.0690       ? might be 1.0427x slower
   bitops-bitwise-and                     3.2002+-0.0897          3.1750+-0.0526       
   bitops-nsieve-bits                     5.4431+-0.1289          5.4071+-0.0992       
   controlflow-recursive                  2.0270+-0.0399          1.9763+-0.0321         might be 1.0256x faster
   crypto-aes                             7.3462+-0.2054    ?     7.3621+-0.2128       ?
   crypto-md5                             2.3684+-0.0425    ?     2.4845+-0.0838       ? might be 1.0490x slower
   crypto-sha1                            2.1564+-0.0377          2.1479+-0.0489       
   date-format-tofte                      9.9488+-0.1123    ?    10.1208+-0.2443       ? might be 1.0173x slower
   date-format-xparb                      9.6318+-0.4107          9.3481+-0.3072         might be 1.0303x faster
   math-cordic                            6.4030+-0.0992          6.3398+-0.0941       
   math-partial-sums                      7.5771+-0.1928          7.5371+-0.1411       
   math-spectral-norm                     2.4076+-0.0690          2.3611+-0.0535         might be 1.0197x faster
   regexp-dna                             7.9983+-0.1815          7.8419+-0.1399         might be 1.0199x faster
   string-base64                          4.2585+-0.1070          4.1706+-0.0725         might be 1.0211x faster
   string-fasta                           6.7665+-0.1316    ?     6.8324+-0.1435       ?
   string-tagcloud                       11.3534+-0.2287    ?    11.3876+-0.2893       ?
   string-unpack-code                    19.1889+-0.3231         19.0803+-0.4314       
   string-validate-input                  5.2730+-0.1989    ?     5.3099+-0.1149       ?

   &lt;arithmetic&gt; *                         5.8141+-0.0228          5.8017+-0.0331         might be 1.0021x faster
   &lt;geometric&gt;                            4.6857+-0.0213          4.6846+-0.0191         might be 1.0002x faster
   &lt;harmonic&gt;                             3.7294+-0.0258    ?     3.7374+-0.0163       ? might be 1.0021x slower

                                            TipOfTree             RfctrNumParam                                  
V8:
   crypto                                71.4174+-0.7500    ?    71.7696+-0.7334       ?
   deltablue                            151.6468+-1.4288    ?   151.8994+-1.0678       ?
   earley-boyer                          81.3277+-0.8987         80.8021+-0.8427       
   raytrace                              47.4403+-0.3760         46.9299+-0.3002         might be 1.0109x faster
   regexp                               102.3778+-1.3692        101.8832+-0.5037       
   richards                             118.4247+-1.0375    ?   119.0488+-0.5125       ?
   splay                                 78.9634+-3.0659         77.2005+-0.9837         might be 1.0228x faster

   &lt;arithmetic&gt;                          93.0854+-0.6091         92.7905+-0.3368         might be 1.0032x faster
   &lt;geometric&gt; *                         87.7080+-0.6142         87.3150+-0.3467         might be 1.0045x faster
   &lt;harmonic&gt;                            82.4572+-0.5794         81.9860+-0.3541         might be 1.0057x faster

                                            TipOfTree             RfctrNumParam                                  
Kraken:
   ai-astar                             481.8322+-3.0552    ?   486.2457+-3.4514       ?
   audio-beat-detection                 173.7604+-0.5772    ?   174.0149+-1.0517       ?
   audio-dft                            288.9352+-3.1809        288.6147+-4.3236       
   audio-fft                            107.5737+-0.8168    ?   109.0944+-0.9194       ? might be 1.0141x slower
   audio-oscillator                     252.6726+-2.0058    ?   254.2016+-1.8679       ?
   imaging-darkroom                     278.1014+-11.9604       270.7786+-6.1103         might be 1.0270x faster
   imaging-desaturate                   208.5960+-0.5692    ?   209.6103+-0.8521       ?
   imaging-gaussian-blur                487.5258+-2.3106    ?   490.0134+-1.9930       ?
   json-parse-financial                  56.3911+-0.6143    ?    56.6638+-0.5727       ?
   json-stringify-tinderbox              72.0761+-0.5529    !    73.4659+-0.3768       ! definitely 1.0193x slower
   stanford-crypto-aes                   98.8736+-1.6470         98.2735+-1.3230       
   stanford-crypto-ccm                   97.7449+-2.5981         96.2524+-0.8122         might be 1.0155x faster
   stanford-crypto-pbkdf2               181.6335+-1.7431    ?   181.7980+-1.8560       ?
   stanford-crypto-sha256-iterative      83.5018+-0.3917    ?    84.5018+-0.6968       ? might be 1.0120x slower

   &lt;arithmetic&gt; *                       204.9442+-0.7089    ?   205.2521+-0.6205       ? might be 1.0015x slower
   &lt;geometric&gt;                          164.9503+-0.5974    ?   165.3039+-0.4361       ? might be 1.0021x slower
   &lt;harmonic&gt;                           134.0204+-0.6013    ?   134.5466+-0.3814       ? might be 1.0039x slower

                                            TipOfTree             RfctrNumParam                                  
All benchmarks:
   &lt;arithmetic&gt;                          78.1273+-0.2603    ?    78.1682+-0.2040       ? might be 1.0005x slower
   &lt;geometric&gt;                           20.9382+-0.0686         20.9349+-0.0511         might be 1.0002x faster
   &lt;harmonic&gt;                             6.5633+-0.0443    ?     6.5770+-0.0282       ? might be 1.0021x slower

                                            TipOfTree             RfctrNumParam                                  
Geomean of preferred means:
   &lt;scaled-result&gt;                       47.1026+-0.1560         47.0222+-0.1023         might be 1.0017x faster

[pizlo@nitroflex bencher]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533366</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-10 14:09:13 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/104630</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121900</attachid>
            <date>2012-01-10 13:33:49 -0800</date>
            <delta_ts>2012-01-10 13:35:46 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>refactornumparam_patch_1.diff</filename>
            <type>text/plain</type>
            <size>24012</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA0NjI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBA
CisyMDEyLTAxLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29kZUJsb2NrOjptX251bVBhcmFtZXRlcnMgc2hvdWxkIGJlIGVuY2Fwc3VsYXRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5ODUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzEwNjcxMDIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgRW5jYXBzdWxhdGVkIENvZGVCbG9jazo6bV9udW1Q
YXJhbWV0ZXJzIGFuZCBob29rZWQgYXJndW1lbnQgcHJvZmlsZSBjcmVhdGlvbgorICAgICAgICBp
bnRvIGl0LiAgVGhpcyBhcHBlYXJzIHRvIGJlIHBlcmZvcm1hbmNlIG5ldXRyYWwuCisKKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNv
ZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c2V0TnVtUGFyYW1ldGVycyk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkUGFyYW1ldGVyKToKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpudW1QYXJhbWV0ZXJzKToK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRyZXNzT2ZOdW1QYXJhbWV0ZXJzKToKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpvZmZzZXRPZk51bVBhcmFtZXRlcnMpOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6Om51bWJlck9mQXJndW1lbnRWYWx1ZVByb2ZpbGVzKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6YWRkUGFyYW1ldGVyKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRSZXR1cm4pOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpBYnN0cmFjdFN0YXRlKToKKyAgICAgICAgKiBk
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFy
c2VyOjpCeXRlQ29kZVBhcnNlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnByZWRpY3RBcmd1bWVudFR5cGVz
KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRp
b25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6c2xpZGVSZWdpc3RlcldpbmRvd0ZvckNh
bGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVycyk6CisgICAgICAg
IChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6
OnByZXBhcmVGb3JSZXBlYXRDYWxsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoK
KyAgICAgICAgKEpTQzo6YXJpdHlDaGVja0Zvcik6CisgICAgICAgIChKU0M6OmxhenlMaW5rRm9y
KToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5j
dGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JDYWxsSW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpG
dW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbCk6CisKIDIwMTIt
MDEtMTAgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIEJ1aWxkIGZpeCBmb2xsb3dpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc1OTM1CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcAkocmV2aXNpb24gMTA0NjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MTMsNyArMTQxMyw2IEBA
IENvZGVCbG9jazo6Q29kZUJsb2NrKENvcHlQYXJzZWRCbG9ja1RhZywKICAgICAsIG1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzKG90aGVyLm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKQogICAgICwgbV9udW1WYXJz
KG90aGVyLm1fbnVtVmFycykKICAgICAsIG1fbnVtQ2FwdHVyZWRWYXJzKG90aGVyLm1fbnVtQ2Fw
dHVyZWRWYXJzKQotICAgICwgbV9udW1QYXJhbWV0ZXJzKG90aGVyLm1fbnVtUGFyYW1ldGVycykK
ICAgICAsIG1faXNDb25zdHJ1Y3RvcihvdGhlci5tX2lzQ29uc3RydWN0b3IpCiAgICAgLCBtX3No
b3VsZERpc2NhcmRCeXRlY29kZShmYWxzZSkKICAgICAsIG1fb3duZXJFeGVjdXRhYmxlKCpvdGhl
ci5tX2dsb2JhbERhdGEsIG90aGVyLm1fb3duZXJFeGVjdXRhYmxlLmdldCgpLCBvdGhlci5tX293
bmVyRXhlY3V0YWJsZS5nZXQoKSkKQEAgLTE0NDgsNiArMTQ0Nyw3IEBAIENvZGVCbG9jazo6Q29k
ZUJsb2NrKENvcHlQYXJzZWRCbG9ja1RhZywKICAgICAsIG1fb3B0aW1pemF0aW9uRGVsYXlDb3Vu
dGVyKDApCiAgICAgLCBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyKDApCiB7CisgICAgc2V0
TnVtUGFyYW1ldGVycyhvdGhlci5udW1QYXJhbWV0ZXJzKCkpOwogICAgIG9wdGltaXplQWZ0ZXJX
YXJtVXAoKTsKICAgICAKICAgICBpZiAob3RoZXIubV9yYXJlRGF0YSkgewpAQCAtMTQ2OSw5ICsx
NDY5LDkgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogICAgICwg
bV9oZWFwKCZtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLmhlYXApCiAgICAgLCBtX251bUNh
bGxlZVJlZ2lzdGVycygwKQogICAgICwgbV9udW1WYXJzKDApCi0gICAgLCBtX251bVBhcmFtZXRl
cnMoMCkKICAgICAsIG1faXNDb25zdHJ1Y3Rvcihpc0NvbnN0cnVjdG9yKQogICAgICwgbV9zaG91
bGREaXNjYXJkQnl0ZWNvZGUoZmFsc2UpCisgICAgLCBtX251bVBhcmFtZXRlcnMoMCkKICAgICAs
IG1fb3duZXJFeGVjdXRhYmxlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBvd25lckV4ZWN1
dGFibGUsIG93bmVyRXhlY3V0YWJsZSkKICAgICAsIG1fZ2xvYmFsRGF0YSgwKQogICAgICwgbV9p
bnN0cnVjdGlvbnMoYWRvcHRSZWYobmV3IEluc3RydWN0aW9ucykpCkBAIC0xNTM4LDYgKzE1Mzgs
MjQgQEAgQ29kZUJsb2NrOjp+Q29kZUJsb2NrKCkKICNlbmRpZgogfQogCit2b2lkIENvZGVCbG9j
azo6c2V0TnVtUGFyYW1ldGVycyhpbnQgbmV3VmFsdWUpCit7CisgICAgbV9udW1QYXJhbWV0ZXJz
ID0gbmV3VmFsdWU7CisKKyNpZiBFTkFCTEUoVkFMVUVfUFJPRklMRVIpCisgICAgbV9hcmd1bWVu
dFZhbHVlUHJvZmlsZXMucmVzaXplKG5ld1ZhbHVlKTsKKyNlbmRpZgorfQorCit2b2lkIENvZGVC
bG9jazo6YWRkUGFyYW1ldGVyKCkKK3sKKyAgICBtX251bVBhcmFtZXRlcnMrKzsKKworI2lmIEVO
QUJMRShWQUxVRV9QUk9GSUxFUikKKyAgICBtX2FyZ3VtZW50VmFsdWVQcm9maWxlcy5hcHBlbmQo
VmFsdWVQcm9maWxlKCkpOworI2VuZGlmCit9CisKIHZvaWQgQ29kZUJsb2NrOjp2aXNpdFN0cnVj
dHVyZXMoU2xvdFZpc2l0b3ImIHZpc2l0b3IsIEluc3RydWN0aW9uKiB2UEMpIGNvbnN0CiB7CiAg
ICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyID0gbV9nbG9iYWxEYXRhLT5pbnRlcnByZXRlcjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlz
aW9uIDEwNDYxMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMjY4LDYgKzI2OCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+Q29kZUJsb2NrKCk7CisgICAgICAgIAorICAg
ICAgICBpbnQgbnVtUGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtUGFyYW1ldGVyczsg
fQorICAgICAgICB2b2lkIHNldE51bVBhcmFtZXRlcnMoaW50IG5ld1ZhbHVlKTsKKyAgICAgICAg
dm9pZCBhZGRQYXJhbWV0ZXIoKTsKKyAgICAgICAgCisgICAgICAgIGludCogYWRkcmVzc09mTnVt
UGFyYW1ldGVycygpIHsgcmV0dXJuICZtX251bVBhcmFtZXRlcnM7IH0KKyAgICAgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZk51bVBhcmFtZXRlcnMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoQ29kZUJsb2NrLCBtX251bVBhcmFtZXRlcnMpOyB9CiAKICAgICAgICAgQ29kZUJsb2NrKiBh
bHRlcm5hdGl2ZSgpIHsgcmV0dXJuIG1fYWx0ZXJuYXRpdmUuZ2V0KCk7IH0KICAgICAgICAgUGFz
c093blB0cjxDb2RlQmxvY2s+IHJlbGVhc2VBbHRlcm5hdGl2ZSgpIHsgcmV0dXJuIG1fYWx0ZXJu
YXRpdmUucmVsZWFzZSgpOyB9CkBAIC02NTcsMTIgKzY2NCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICNlbmRpZgogICAgICAgICAKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklMRVIpCi0gICAgICAgIHZv
aWQgc2V0QXJndW1lbnRWYWx1ZVByb2ZpbGVTaXplKHVuc2lnbmVkIHNpemUpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIG1fYXJndW1lbnRWYWx1ZVByb2ZpbGVzLnJlc2l6ZShzaXplKTsKLSAgICAg
ICAgfQogICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50VmFsdWVQcm9maWxlcygpCiAg
ICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX251bVBhcmFtZXRlcnMgPj0gMCk7CisgICAg
ICAgICAgICBBU1NFUlQobV9hcmd1bWVudFZhbHVlUHJvZmlsZXMuc2l6ZSgpID09IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihtX251bVBhcmFtZXRlcnMpKTsKICAgICAgICAgICAgIHJldHVybiBtX2Fy
Z3VtZW50VmFsdWVQcm9maWxlcy5zaXplKCk7CiAgICAgICAgIH0KICAgICAgICAgVmFsdWVQcm9m
aWxlKiB2YWx1ZVByb2ZpbGVGb3JBcmd1bWVudCh1bnNpZ25lZCBhcmd1bWVudEluZGV4KQpAQCAt
MTEzMSw3ICsxMTM2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBtX251bUNhbGxl
ZVJlZ2lzdGVyczsKICAgICAgICAgaW50IG1fbnVtVmFyczsKICAgICAgICAgaW50IG1fbnVtQ2Fw
dHVyZWRWYXJzOwotICAgICAgICBpbnQgbV9udW1QYXJhbWV0ZXJzOwogICAgICAgICBib29sIG1f
aXNDb25zdHJ1Y3RvcjsKIAogICAgICAgICAvLyBUaGlzIGlzIHB1YmxpYyBiZWNhdXNlIG90aGVy
d2lzZSB3ZSB3b3VsZCBoYXZlIG1hbnkgZnJpZW5kcy4KQEAgLTExOTUsNiArMTE5OSw4IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihuZXcg
UmFyZURhdGEpOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBpbnQgbV9udW1QYXJhbWV0
ZXJzOworCiAgICAgICAgIFdyaXRlQmFycmllcjxTY3JpcHRFeGVjdXRhYmxlPiBtX293bmVyRXhl
Y3V0YWJsZTsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxMDQ2MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMw
LDcgKzIzMCw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihQcm8KIAog
ICAgIC8vIEZJWE1FOiBNb3ZlIGNvZGUgdGhhdCBtb2RpZmllcyB0aGUgZ2xvYmFsIG9iamVjdCB0
byBJbnRlcnByZXRlcjo6ZXhlY3V0ZS4KICAgICAKLSAgICBtX2NvZGVCbG9jay0+bV9udW1QYXJh
bWV0ZXJzID0gMTsgLy8gQWxsb2NhdGUgc3BhY2UgZm9yICJ0aGlzIgorICAgIG1fY29kZUJsb2Nr
LT5zZXROdW1QYXJhbWV0ZXJzKDEpOyAvLyBBbGxvY2F0ZSBzcGFjZSBmb3IgInRoaXMiCiAgICAg
Y29kZUJsb2NrLT5tX251bUNhcHR1cmVkVmFycyA9IGNvZGVCbG9jay0+bV9udW1WYXJzOwogICAg
IAogICAgIGlmIChjb21waWxhdGlvbktpbmQgPT0gT3B0aW1pemluZ0NvbXBpbGF0aW9uKQpAQCAt
NDAxLDcgKzQwMSw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihGdW4K
ICAgICAvLyBBZGQgInRoaXMiIGFzIGEgcGFyYW1ldGVyCiAgICAgaW50IG5leHRQYXJhbWV0ZXJJ
bmRleCA9IENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCk7CiAgICAgbV90aGlzUmVnaXN0
ZXIuc2V0SW5kZXgobmV4dFBhcmFtZXRlckluZGV4LS0pOwotICAgICsrbV9jb2RlQmxvY2stPm1f
bnVtUGFyYW1ldGVyczsKKyAgICBtX2NvZGVCbG9jay0+YWRkUGFyYW1ldGVyKCk7CiAgICAgCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnNpemUoKTsgKytpKQogICAgICAg
ICBhZGRQYXJhbWV0ZXIocGFyYW1ldGVyc1tpXSwgbmV4dFBhcmFtZXRlckluZGV4LS0pOwpAQCAt
NDU5LDcgKzQ1OSw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihFdmEK
IAogICAgIGVtaXRPcGNvZGUob3BfZW50ZXIpOwogICAgIGNvZGVCbG9jay0+c2V0R2xvYmFsRGF0
YShtX2dsb2JhbERhdGEpOwotICAgIG1fY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMgPSAxOyAv
LyBBbGxvY2F0ZSBzcGFjZSBmb3IgInRoaXMiCisgICAgbV9jb2RlQmxvY2stPnNldE51bVBhcmFt
ZXRlcnMoMSk7CiAKICAgICBjb25zdCBEZWNsYXJhdGlvblN0YWNrczo6RnVuY3Rpb25TdGFjayYg
ZnVuY3Rpb25TdGFjayA9IGV2YWxOb2RlLT5mdW5jdGlvblN0YWNrKCk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKQpAQCAtNTAwLDcgKzUwMCw3
IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmFkZFBhcmFtZXRlcihjb24KIAogICAgIC8vIFRv
IG1haW50YWluIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24sIHdlIGhhdmUgdG8gYWxsb2NhdGUgdW5p
cXVlIHNwYWNlIGZvcgogICAgIC8vIGVhY2ggcGFyYW1ldGVyLCBldmVuIGlmIHRoZSBwYXJhbWV0
ZXIgZG9lc24ndCBtYWtlIGl0IGludG8gdGhlIHN5bWJvbCB0YWJsZS4KLSAgICArK21fY29kZUJs
b2NrLT5tX251bVBhcmFtZXRlcnM7CisgICAgbV9jb2RlQmxvY2stPmFkZFBhcmFtZXRlcigpOwog
fQogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6cmVnaXN0ZXJGb3IoY29uc3QgSWRl
bnRpZmllciYgaWRlbnQpCkBAIC0xODY5LDcgKzE4NjksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdFJldHVyCiAgICAgICAgIGVtaXRPcGNvZGUob3BfdGVhcl9vZmZfYWN0
aXZhdGlvbik7CiAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChtX2FjdGl2YXRpb25SZWdp
c3Rlci0+aW5kZXgoKSk7CiAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChtX2NvZGVCbG9j
ay0+YXJndW1lbnRzUmVnaXN0ZXIoKSk7Ci0gICAgfSBlbHNlIGlmIChtX2NvZGVCbG9jay0+dXNl
c0FyZ3VtZW50cygpICYmIG1fY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMgIT0gMSAmJiAhbV9j
b2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpKSB7CisgICAgfSBlbHNlIGlmIChtX2NvZGVCbG9jay0+
dXNlc0FyZ3VtZW50cygpICYmIG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgIT0gMSAmJiAh
bV9jb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAgIGVtaXRPcGNvZGUob3BfdGVh
cl9vZmZfYXJndW1lbnRzKTsKICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKG1fY29kZUJs
b2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDEwNDYxMykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
QWJzdHJhY3RTdGF0ZTo6QWJzdHJhY3RTdGF0ZShDb2RlQmxvY2sqIGNvZGVCbG9jaywgR3JhcGgm
IGdyYXBoKQogICAgIDogbV9jb2RlQmxvY2soY29kZUJsb2NrKQogICAgICwgbV9ncmFwaChncmFw
aCkKLSAgICAsIG1fdmFyaWFibGVzKGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzLCBncmFwaC5t
X2xvY2FsVmFycykKKyAgICAsIG1fdmFyaWFibGVzKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
LCBncmFwaC5tX2xvY2FsVmFycykKICAgICAsIG1fYmxvY2soMCkKIHsKICAgICBzaXplX3QgbWF4
QmxvY2tTaXplID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxMDQ2MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9jb25zdGFudE5hTihVSU5UX01BWCkKICAgICAg
ICAgLCBtX2NvbnN0YW50MShVSU5UX01BWCkKICAgICAgICAgLCBtX2NvbnN0YW50cyhjb2RlQmxv
Y2stPm51bWJlck9mQ29uc3RhbnRSZWdpc3RlcnMoKSkKLSAgICAgICAgLCBtX251bUFyZ3VtZW50
cyhjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycykKKyAgICAgICAgLCBtX251bUFyZ3VtZW50cyhj
b2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkKICAgICAgICAgLCBtX251bUxvY2Fscyhjb2RlQmxv
Y2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKQogICAgICAgICAsIG1fcHJlc2VydmVkVmFycyhjb2Rl
QmxvY2stPm1fbnVtVmFycykKICAgICAgICAgLCBtX3BhcmFtZXRlclNsb3RzKDApCkBAIC0yNDc4
LDcgKzI0NzgsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAg
ICAgICAgIGlubGluZUNhbGxGcmFtZS5zdGFja09mZnNldCA9IGlubGluZUNhbGxGcmFtZVN0YXJ0
ICsgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogICAgICAgICBpbmxpbmVDYWxs
RnJhbWUuY2FsbGVlLnNldCgqYnl0ZUNvZGVQYXJzZXItPm1fZ2xvYmFsRGF0YSwgYnl0ZUNvZGVQ
YXJzZXItPm1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKICAgICAgICAg
aW5saW5lQ2FsbEZyYW1lLmNhbGxlciA9IGJ5dGVDb2RlUGFyc2VyLT5jdXJyZW50Q29kZU9yaWdp
bigpOwotICAgICAgICBpbmxpbmVDYWxsRnJhbWUuYXJndW1lbnRzLnJlc2l6ZShjb2RlQmxvY2st
Pm1fbnVtUGFyYW1ldGVycyk7IC8vIFNldCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBpbmNsdWRp
bmcgdGhpcywgYnV0IGRvbid0IGNvbmZpZ3VyZSB0aGUgdmFsdWUgcmVjb3ZlcmllcywgeWV0Lgor
ICAgICAgICBpbmxpbmVDYWxsRnJhbWUuYXJndW1lbnRzLnJlc2l6ZShjb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMoKSk7IC8vIFNldCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBpbmNsdWRpbmcgdGhp
cywgYnV0IGRvbid0IGNvbmZpZ3VyZSB0aGUgdmFsdWUgcmVjb3ZlcmllcywgeWV0LgogICAgICAg
ICBpbmxpbmVDYWxsRnJhbWUuaXNDYWxsID0gaXNDYWxsKGtpbmQpOwogICAgICAgICBieXRlQ29k
ZVBhcnNlci0+bV9jb2RlQmxvY2stPmlubGluZUNhbGxGcmFtZXMoKS5hcHBlbmQoaW5saW5lQ2Fs
bEZyYW1lKTsKICAgICAgICAgbV9pbmxpbmVDYWxsRnJhbWUgPSAmYnl0ZUNvZGVQYXJzZXItPm1f
Y29kZUJsb2NrLT5pbmxpbmVDYWxsRnJhbWVzKCkubGFzdCgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDEwNDYxMykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsOCArMzQ0
LDggQEAgdm9pZCBHcmFwaDo6cHJlZGljdEFyZ3VtZW50VHlwZXMoQ29kZUJsbwogICAgIEFTU0VS
VChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwogCiAgICAgQ29kZUJsb2NrKiBwcm9maWxlZENv
ZGVCbG9jayA9IGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKTsKLSAgICBBU1NFUlQoY29kZUJsb2Nr
LT5tX251bVBhcmFtZXRlcnMgPj0gMSk7Ci0gICAgZm9yIChzaXplX3QgYXJnID0gMDsgYXJnIDwg
c3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyk7ICsrYXJnKSB7
CisgICAgQVNTRVJUKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpID49IDEpOworICAgIGZvciAo
c2l6ZV90IGFyZyA9IDA7IGFyZyA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzKCkpOyArK2FyZykgewogICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGUgPSBw
cm9maWxlZENvZGVCbG9jay0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJnKTsKICAgICAgICAg
aWYgKCFwcm9maWxlKQogICAgICAgICAgICAgY29udGludWU7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gMTA0NjEzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24o
SklUQ29kCiAgICAgY29tcGlsZUVudHJ5KCk7CiAKICAgICBsb2FkMzIoQXNzZW1ibHlIZWxwZXJz
OjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50
KSwgR1BSSW5mbzo6cmVnVDEpOwotICAgIGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6
cmVnVDEsIEltbTMyKG1fY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMpKS5saW5rVG8oZnJvbUFy
aXR5Q2hlY2ssIHRoaXMpOworICAgIGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgR1BSSW5mbzo6cmVn
VDEsIEltbTMyKG1fY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKS5saW5rVG8oZnJvbUFyaXR5
Q2hlY2ssIHRoaXMpOwogICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgcG9rZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgT0JKRUNU
X09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBjYWxsRnJhbWUpIC8gc2l6ZW9mKHZvaWQq
KSk7CiAgICAgQ2FsbCBjYWxsQXJpdHlDaGVjayA9IGNhbGwoKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTA0NjEzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjU2LDcgKzY1Niw3IEBAIGlubGluZSB2b2lkKiBsaW5rRm9yKEV4ZWNTdGF0ZSogZXhl
Y0NhbGwKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIGNvZGVCbG9j
ayA9ICZmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlRm9yKGtpbmQpOwotICAg
ICAgICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRp
Y19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMpKQorICAgICAgICBpZiAo
ZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRpY19jYXN0PHNp
emVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKQogICAgICAgICAgICAgY29kZVB0ciA9
IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtp
bmQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRh
YmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLmFkZHJlc3NGb3JDYWxsKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2
aXNpb24gMTA0NjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzAsNyArMTA3MCw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcygKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fdmFyaWFibGVzLnNpemUoKTsgKytpKQogICAgICAgICBtX3ZhcmlhYmxlc1tpXSA9IFZhbHVl
U291cmNlKFZhbHVlSW5SZWdpc3RlckZpbGUpOwogICAgIAotICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbV9qaXQuY29kZUJsb2NrKCktPm1fbnVtUGFyYW1ldGVyczsgKytpKSB7CisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBtX2ppdC5jb2RlQmxvY2soKS0+bnVtUGFyYW1ldGVycygpOyArK2kpIHsK
ICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZUFjY2Vzc0RhdGEgPSBhdChtX2pp
dC5ncmFwaCgpLm1fYXJndW1lbnRzW2ldKS52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAg
VmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IHZhcmlhYmxlQWNjZXNzRGF0YS0+bG9j
YWwoKTsKICAgICAgICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0ZWRUeXBlID0gdmFyaWFibGVBY2Nl
c3NEYXRhLT5wcmVkaWN0aW9uKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxMDQ2MTMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NDQs
NyArMjc0NCw3IEBAIGlubGluZSBTcGVjdWxhdGl2ZUpJVDo6U3BlY3VsYXRpdmVKSVQoSkkKICAg
ICAsIG1fY29tcGlsZUluZGV4KDApCiAgICAgLCBtX2dlbmVyYXRpb25JbmZvKG1faml0LmNvZGVC
bG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycykKICAgICAsIG1fYmxvY2tIZWFkcyhqaXQuZ3Jh
cGgoKS5tX2Jsb2Nrcy5zaXplKCkpCi0gICAgLCBtX2FyZ3VtZW50cyhqaXQuY29kZUJsb2NrKCkt
Pm1fbnVtUGFyYW1ldGVycykKKyAgICAsIG1fYXJndW1lbnRzKGppdC5jb2RlQmxvY2soKS0+bnVt
UGFyYW1ldGVycygpKQogICAgICwgbV92YXJpYWJsZXMoaml0LmdyYXBoKCkubV9sb2NhbFZhcnMp
CiAgICAgLCBtX2xhc3RTZXRPcGVyYW5kKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkp
CiAgICAgLCBtX3N0YXRlKG1faml0LmNvZGVCbG9jaygpLCBtX2ppdC5ncmFwaCgpKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CShyZXZpc2lvbiAxMDQ2MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzAsMTYgKzM3MCwxNiBAQCBORVZF
Ul9JTkxJTkUgYm9vbCBJbnRlcnByZXRlcjo6cmVzb2x2ZVRoCiBBTFdBWVNfSU5MSU5FIENhbGxG
cmFtZSogSW50ZXJwcmV0ZXI6OnNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JDYWxsKENvZGVCbG9jayog
bmV3Q29kZUJsb2NrLCBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmlsZSwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHNpemVfdCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzKQogewogICAgIC8vIFRoaXMgZW5zdXJlcyBlbm91Z2ggc3BhY2UgZm9yIHRoZSB3b3JzdCBj
YXNlIHNjZW5hcmlvIG9mIHplcm8gYXJndW1lbnRzIHBhc3NlZCBieSB0aGUgY2FsbGVyLgotICAg
IGlmICghcmVnaXN0ZXJGaWxlLT5ncm93KGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rl
ck9mZnNldCArIG5ld0NvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzICsgbmV3Q29kZUJsb2NrLT5t
X251bUNhbGxlZVJlZ2lzdGVycykpCisgICAgaWYgKCFyZWdpc3RlckZpbGUtPmdyb3coY2FsbEZy
YW1lLT5yZWdpc3RlcnMoKSArIHJlZ2lzdGVyT2Zmc2V0ICsgbmV3Q29kZUJsb2NrLT5udW1QYXJh
bWV0ZXJzKCkgKyBuZXdDb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSkKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPj0gbmV3Q29k
ZUJsb2NrLT5tX251bVBhcmFtZXRlcnMpIHsKKyAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPj0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpIHsKICAgICAgICAgUmVnaXN0
ZXIqIG5ld0NhbGxGcmFtZSA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyByZWdpc3Rlck9mZnNl
dDsKICAgICAgICAgcmV0dXJuIENhbGxGcmFtZTo6Y3JlYXRlKG5ld0NhbGxGcmFtZSk7CiAgICAg
fQogCiAgICAgLy8gVG9vIGZldyBhcmd1bWVudHMgLS0gY29weSBhcmd1bWVudHMsIHRoZW4gZmls
bCBpbiBtaXNzaW5nIGFyZ3VtZW50cyB3aXRoIHVuZGVmaW5lZC4KLSAgICBzaXplX3QgZGVsdGEg
PSBuZXdDb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyAtIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzOworICAgIHNpemVfdCBkZWx0YSA9IG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpIC0g
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7CiAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUg
PSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgcmVnaXN0ZXJPZmZz
ZXQgKyBkZWx0YSk7CiAKICAgICBSZWdpc3RlciogZHN0ID0gJm5ld0NhbGxGcmFtZS0+dW5jaGVj
a2VkUihDYWxsRnJhbWU6OnRoaXNBcmd1bWVudE9mZnNldCgpKTsKQEAgLTYwMiwxNCArNjAyLDE0
IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW0KICAgICBjb25zdCBS
ZWdpc3RlciogZW5kOwogICAgIEpTVmFsdWUgdjsKIAotICAgIGl0ID0gY2FsbEZyYW1lLT5yZWdp
c3RlcnMoKSAtIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGNvZGVCbG9jay0+
bV9udW1QYXJhbWV0ZXJzOworICAgIGl0ID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
OwogICAgIHYgPSAoKml0KS5qc1ZhbHVlKCk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBw
cmludGYoIlt0aGlzXSAgICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxseCBc
biIsIGl0LCB2LmRlc2NyaXB0aW9uKCksIEpTVmFsdWU6OmVuY29kZSh2KSk7ICsraXQ7CiAjZWxz
ZQogICAgIHByaW50ZigiW3RoaXNdICAgICAgICAgICAgICAgICAgICAgfCAlMTBwIHwgJS0xNnMg
JXAgXG4iLCBpdCwgdi5kZXNjcmlwdGlvbigpLCBKU1ZhbHVlOjplbmNvZGUodikpOyArK2l0Owog
I2VuZGlmCi0gICAgZW5kID0gaXQgKyBtYXgoY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMgLSAx
LCAwKTsgLy8gLSAxIHRvIHNraXAgInRoaXMiCisgICAgZW5kID0gaXQgKyBtYXgoY29kZUJsb2Nr
LT5udW1QYXJhbWV0ZXJzKCkgLSAxLCAwKTsgLy8gLSAxIHRvIHNraXAgInRoaXMiCiAgICAgaWYg
KGl0ICE9IGVuZCkgewogICAgICAgICBkbyB7CiAgICAgICAgICAgICB2ID0gKCppdCkuanNWYWx1
ZSgpOwpAQCAtOTg1LDEzICs5ODUsMTMgQEAgZmFpbGVkSlNPTlA6CiAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSAmcHJvZ3JhbS0+Z2VuZXJhdGVkQnl0ZWNvZGUoKTsKIAogICAgIFJlZ2lzdGVy
KiBvbGRFbmQgPSBtX3JlZ2lzdGVyRmlsZS5lbmQoKTsKLSAgICBSZWdpc3RlciogbmV3RW5kID0g
b2xkRW5kICsgY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMgKyBSZWdpc3RlckZpbGU6OkNhbGxG
cmFtZUhlYWRlclNpemUgKyBjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgIFJl
Z2lzdGVyKiBuZXdFbmQgPSBvbGRFbmQgKyBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSArIFJl
Z2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIGNvZGVCbG9jay0+bV9udW1DYWxsZWVS
ZWdpc3RlcnM7CiAgICAgaWYgKCFtX3JlZ2lzdGVyRmlsZS5ncm93KG5ld0VuZCkpCiAgICAgICAg
IHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkp
OwogCi0gICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShvbGRF
bmQgKyBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1l
SGVhZGVyU2l6ZSk7Ci0gICAgQVNTRVJUKGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzID09IDEp
OyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgotICAgIG5ld0NhbGxGcmFtZS0+aW5pdChjb2Rl
QmxvY2ssIDAsIHNjb3BlQ2hhaW4sIENhbGxGcmFtZTo6bm9DYWxsZXIoKSwgY29kZUJsb2NrLT5t
X251bVBhcmFtZXRlcnMsIDApOworICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZy
YW1lOjpjcmVhdGUob2xkRW5kICsgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgKyBSZWdpc3Rl
ckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUpOworICAgIEFTU0VSVChjb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMoKSA9PSAxKTsgLy8gMSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KKyAgICBuZXdDYWxs
RnJhbWUtPmluaXQoY29kZUJsb2NrLCAwLCBzY29wZUNoYWluLCBDYWxsRnJhbWU6Om5vQ2FsbGVy
KCksIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpLCAwKTsKICAgICBuZXdDYWxsRnJhbWUtPnNl
dFRoaXNWYWx1ZSh0aGlzT2JqKTsKICAgICBUb3BDYWxsRnJhbWVTZXR0ZXIgdG9wQ2FsbEZyYW1l
KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBuZXdDYWxsRnJhbWUpOwogCkBAIC0xMjU2LDcgKzEy
NTYsNyBAQCBDYWxsRnJhbWVDbG9zdXJlIEludGVycHJldGVyOjpwcmVwYXJlRm9yCiAgICAgfQog
ICAgIG5ld0NhbGxGcmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3BlQ2hhaW4sIGNhbGxGcmFt
ZS0+YWRkSG9zdENhbGxGcmFtZUZsYWcoKSwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIGZ1
bmN0aW9uKTsgIAogICAgIHNjb3BlQ2hhaW4tPmdsb2JhbERhdGEtPnRvcENhbGxGcmFtZSA9IG5l
d0NhbGxGcmFtZTsKLSAgICBDYWxsRnJhbWVDbG9zdXJlIHJlc3VsdCA9IHsgY2FsbEZyYW1lLCBu
ZXdDYWxsRnJhbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbkV4ZWN1dGFibGUsIHNjb3BlQ2hhaW4tPmds
b2JhbERhdGEsIG9sZEVuZCwgc2NvcGVDaGFpbiwgY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMs
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIH07CisgICAgQ2FsbEZyYW1lQ2xvc3VyZSByZXN1
bHQgPSB7IGNhbGxGcmFtZSwgbmV3Q2FsbEZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25FeGVjdXRh
YmxlLCBzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBvbGRFbmQsIHNjb3BlQ2hhaW4sIGNvZGVCbG9j
ay0+bnVtUGFyYW1ldGVycygpLCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyB9OwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKQEAgLTEzNjcsOCArMTM2Nyw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEKIAogICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0g
Q2FsbEZyYW1lOjpjcmVhdGUobV9yZWdpc3RlckZpbGUuYmVnaW4oKSArIGdsb2JhbFJlZ2lzdGVy
T2Zmc2V0KTsKIAotICAgIEFTU0VSVChjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyA9PSAxKTsg
Ly8gMSBwYXJhbWV0ZXIgZm9yICd0aGlzJy4KLSAgICBuZXdDYWxsRnJhbWUtPmluaXQoY29kZUJs
b2NrLCAwLCBzY29wZUNoYWluLCBjYWxsRnJhbWUtPmFkZEhvc3RDYWxsRnJhbWVGbGFnKCksIGNv
ZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzLCAwKTsKKyAgICBBU1NFUlQoY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCisgICAgbmV3Q2Fs
bEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5hZGRIb3N0
Q2FsbEZyYW1lRmxhZygpLCBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwgMCk7CiAgICAgbmV3
Q2FsbEZyYW1lLT5zZXRUaGlzVmFsdWUodGhpc1ZhbHVlKTsKIAogICAgIFRvcENhbGxGcmFtZVNl
dHRlciB0b3BDYWxsRnJhbWUoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIG5ld0NhbGxGcmFtZSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAxMDQ2MTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1Nyw4
ICs1NTcsNyBAQCBKSVRDb2RlIEpJVDo6cHJpdmF0ZUNvbXBpbGUoQ29kZVB0ciogZnVuCiAjaWYg
RU5BQkxFKFZBTFVFX1BST0ZJTEVSKQogICAgICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNldCA9
PSAodW5zaWduZWQpLTEpOwogICAgICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7Ci0g
ICAgICAgICAgICBtX2NvZGVCbG9jay0+c2V0QXJndW1lbnRWYWx1ZVByb2ZpbGVTaXplKG1fY29k
ZUJsb2NrLT5tX251bVBhcmFtZXRlcnMpOwotICAgICAgICAgICAgZm9yIChpbnQgYXJndW1lbnQg
PSAwOyBhcmd1bWVudCA8IG1fY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnM7ICsrYXJndW1lbnQp
IHsKKyAgICAgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJndW1lbnQgPCBtX2NvZGVC
bG9jay0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7CiAgICAgICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyBhIGNvbnN0cnVjdG9yLCB0aGVuIHdlIHdhbnQgdG8gcHV0IGluIGEgZHVtbXkg
cHJvZmlsaW5nIHNpdGUgKHRvCiAgICAgICAgICAgICAgICAgLy8ga2VlcCB0aGluZ3MgY29uc2lz
dGVudCkgYnV0IHdlIGRvbid0IGFjdHVhbGx5IHdhbnQgdG8gcmVjb3JkIHRoZSBkdW1teSB2YWx1
ZS4KICAgICAgICAgICAgICAgICBpZiAobV9jb2RlQmxvY2stPm1faXNDb25zdHJ1Y3RvciAmJiAh
YXJndW1lbnQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2
aXNpb24gMTA0NjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNzIsMTMgKzIxNzIsMTMgQEAgaW5saW5lIENhbGxGcmFtZSog
YXJpdHlDaGVja0ZvcihDYWxsRnJhbQogICAgIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cyA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKTsKIAogICAgIC8vIFRo
aXMgZW5zdXJlcyBlbm91Z2ggc3BhY2UgZm9yIHRoZSB3b3JzdCBjYXNlIHNjZW5hcmlvIG9mIHpl
cm8gYXJndW1lbnRzIHBhc3NlZCBieSB0aGUgY2FsbGVyLgotICAgIGlmICghcmVnaXN0ZXJGaWxl
LT5ncm93KGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBuZXdDb2RlQmxvY2stPm1fbnVtUGFyYW1l
dGVycyArIG5ld0NvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKQorICAgIGlmICghcmVn
aXN0ZXJGaWxlLT5ncm93KGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBuZXdDb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKSArIG5ld0NvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMpKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIEFTU0VSVChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA8
IG5ld0NvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgPCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAKICAgICAv
LyBUb28gZmV3IGFyZ3VtZW50cyAtLSBjb3B5IGNhbGwgZnJhbWUgYW5kIGFyZ3VtZW50cywgdGhl
biBmaWxsIGluIG1pc3NpbmcgYXJndW1lbnRzIHdpdGggdW5kZWZpbmVkLgotICAgIHNpemVfdCBk
ZWx0YSA9IG5ld0NvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJzIC0gYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXM7CisgICAgc2l6ZV90IGRlbHRhID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkgLSBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKICAgICBSZWdpc3Rlciogc3JjID0gY2Fs
bEZyYW1lLT5yZWdpc3RlcnMoKTsKICAgICBSZWdpc3RlciogZHN0ID0gY2FsbEZyYW1lLT5yZWdp
c3RlcnMoKSArIGRlbHRhOwogCkBAIC0yMjM5LDcgKzIyMzksNyBAQCBpbmxpbmUgdm9pZCogbGF6
eUxpbmtGb3IoQ2FsbEZyYW1lKiBjYWxsCiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICBjb2RlQmxvY2sgPSAmZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5l
cmF0ZWRCeXRlY29kZUZvcihraW5kKTsKLSAgICAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5tX251
bVBhcmFtZXRlcnMpCisgICAgICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygp
KQogICAgICAgICAgICAgfHwgY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86
OkNhbGxWYXJhcmdzKQogICAgICAgICAgICAgY29kZVB0ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+
Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpOwogICAgICAgICBlbHNlCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2
aXNpb24gMTA0NjEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNyBAQCBKU09iamVjdCogRnVuY3Rp
b25FeGVjdXRhYmxlOjpjb21waWxlRm9yCiAgICAgbmV3Q29kZUJsb2NrLT5zZXRBbHRlcm5hdGl2
ZShzdGF0aWNfcG9pbnRlcl9jYXN0PENvZGVCbG9jaz4obV9jb2RlQmxvY2tGb3JDYWxsLnJlbGVh
c2UoKSkpOwogICAgIG1fY29kZUJsb2NrRm9yQ2FsbCA9IG5ld0NvZGVCbG9jay5yZWxlYXNlKCk7
CiAgICAgCi0gICAgbV9udW1QYXJhbWV0ZXJzRm9yQ2FsbCA9IG1fY29kZUJsb2NrRm9yQ2FsbC0+
bV9udW1QYXJhbWV0ZXJzOworICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPSBtX2NvZGVCbG9j
a0ZvckNhbGwtPm51bVBhcmFtZXRlcnMoKTsKICAgICBBU1NFUlQobV9udW1QYXJhbWV0ZXJzRm9y
Q2FsbCk7CiAgICAgbV9udW1DYXB0dXJlZFZhcmlhYmxlcyA9IG1fY29kZUJsb2NrRm9yQ2FsbC0+
bV9udW1DYXB0dXJlZFZhcnM7CiAgICAgbV9zeW1ib2xUYWJsZSA9IG1fY29kZUJsb2NrRm9yQ2Fs
bC0+c2hhcmVkU3ltYm9sVGFibGUoKTsKQEAgLTU5Nyw3ICs1OTcsNyBAQCBKU09iamVjdCogRnVu
Y3Rpb25FeGVjdXRhYmxlOjpjb21waWxlRm9yCiAgICAgbmV3Q29kZUJsb2NrLT5zZXRBbHRlcm5h
dGl2ZShzdGF0aWNfcG9pbnRlcl9jYXN0PENvZGVCbG9jaz4obV9jb2RlQmxvY2tGb3JDb25zdHJ1
Y3QucmVsZWFzZSgpKSk7CiAgICAgbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QgPSBuZXdDb2RlQmxv
Y2sucmVsZWFzZSgpOwogICAgIAotICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNvbnN0cnVjdCA9IG1f
Y29kZUJsb2NrRm9yQ29uc3RydWN0LT5tX251bVBhcmFtZXRlcnM7CisgICAgbV9udW1QYXJhbWV0
ZXJzRm9yQ29uc3RydWN0ID0gbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QtPm51bVBhcmFtZXRlcnMo
KTsKICAgICBBU1NFUlQobV9udW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0KTsKICAgICBtX251bUNh
cHR1cmVkVmFyaWFibGVzID0gbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QtPm1fbnVtQ2FwdHVyZWRW
YXJzOwogICAgIG1fc3ltYm9sVGFibGUgPSBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdC0+c2hhcmVk
U3ltYm9sVGFibGUoKTsK
</data>
<flag name="review"
          id="122544"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>