<?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>119897</bug_id>
          
          <creation_ts>2013-08-16 10:18:36 -0700</creation_ts>
          <short_desc>Object properties added using dot syntax (o.f = ...) from code that isn&apos;t in eval should be less likely to cause an object to become a dictionary</short_desc>
          <delta_ts>2013-08-16 12:14:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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></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="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>917994</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-16 10:18:36 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917996</commentid>
    <comment_count>1</comment_count>
      <attachid>208930</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-16 10:20:46 -0700</bug_when>
    <thetext>Created attachment 208930
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918000</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-16 10:23:55 -0700</bug_when>
    <thetext>Attachment 208930 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/js/regress/lots-of-fields-expected.txt&apos;, u&apos;LayoutTests/fast/js/regress/lots-of-fields.html&apos;, u&apos;LayoutTests/fast/js/regress/script-tests/lots-of-fields.js&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlock.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntSlowPaths.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/JSObject.h&apos;, u&apos;Source/JavaScriptCore/runtime/PutPropertySlot.h&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/bytecode/CodeBlock.h:58:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918033</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-16 11:20:45 -0700</bug_when>
    <thetext>Complete perf results:


Benchmark report for SunSpider, V8Spider, Octane, Kraken, JSBench, JSRegress, and DSP on oldmac (MacPro4,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/DumpRenderTree (r154157)
&quot;LotsOfFields&quot; at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/DumpRenderTree (r154157)

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                LotsOfFields                                   
SunSpider:
   3d-cube                                                 7.6306+-0.2576     ?      7.6367+-0.2239        ?
   3d-morph                                                8.2989+-0.0697     ?      8.3592+-0.0676        ?
   3d-raytrace                                             9.3500+-0.2787            9.2582+-0.2009        
   access-binary-trees                                     2.7433+-0.3155            2.7349+-0.3050        
   access-fannkuch                                         7.6926+-0.0492            7.6443+-0.0625        
   access-nbody                                            4.0687+-0.0629            4.0657+-0.0288        
   access-nsieve                                           4.9293+-0.1528            4.8493+-0.0626          might be 1.0165x faster
   bitops-3bit-bits-in-byte                                1.8514+-0.0347     ^      1.7912+-0.0200        ^ definitely 1.0336x faster
   bitops-bits-in-byte                                     6.7498+-0.1207            6.6927+-0.1093        
   bitops-bitwise-and                                      2.7585+-0.0520     ?      2.7636+-0.0315        ?
   bitops-nsieve-bits                                      4.7127+-0.0472            4.6995+-0.0383        
   controlflow-recursive                                   2.9592+-0.0232            2.9437+-0.0232        
   crypto-aes                                              5.8872+-0.3061     ?      5.9346+-0.2938        ?
   crypto-md5                                              3.2100+-0.0560            3.2083+-0.0556        
   crypto-sha1                                             2.9097+-0.0322     ?      2.9694+-0.0510        ? might be 1.0205x slower
   date-format-tofte                                      13.3077+-1.0438     ?     13.5622+-1.0428        ? might be 1.0191x slower
   date-format-xparb                                       9.2468+-0.6859     ?      9.5744+-0.6891        ? might be 1.0354x slower
   math-cordic                                             3.9726+-0.0627            3.9061+-0.0384          might be 1.0170x faster
   math-partial-sums                                      10.5248+-0.1104     ?     10.5832+-0.0929        ?
   math-spectral-norm                                      2.8657+-0.0278     ?      2.8701+-0.0536        ?
   regexp-dna                                             12.9183+-0.5484           12.8464+-0.5488        
   string-base64                                           6.4359+-0.5202            6.3592+-0.5208          might be 1.0121x faster
   string-fasta                                           12.2263+-0.1732           12.1213+-0.1494        
   string-tagcloud                                        14.9299+-0.2430           14.7736+-0.2053          might be 1.0106x faster
   string-unpack-code                                     31.3526+-0.3015     ?     31.4395+-0.3153        ?
   string-validate-input                                   8.9686+-0.1714     ?      9.0955+-0.2287        ? might be 1.0141x slower

   &lt;arithmetic&gt; *                                          7.7885+-0.1381     ?      7.7955+-0.1291        ? might be 1.0009x slower
   &lt;geometric&gt;                                             6.2000+-0.1025            6.1948+-0.0940          might be 1.0008x faster
   &lt;harmonic&gt;                                              5.0484+-0.0801            5.0312+-0.0714          might be 1.0034x faster

                                                             TipOfTree                LotsOfFields                                   
V8Spider:
   crypto                                                 80.9288+-0.3811           80.8731+-0.3830        
   deltablue                                             102.6328+-1.1821     ?    102.6652+-0.6980        ?
   earley-boyer                                           71.2676+-0.5727     ?     71.9512+-0.5575        ?
   raytrace                                               45.6368+-5.1497           45.5152+-5.1325        
   regexp                                                102.8871+-0.4945     ?    103.1333+-1.2980        ?
   richards                                              114.7300+-2.4139          113.5802+-0.7325          might be 1.0101x faster
   splay                                                  59.5613+-3.4098     ?     60.0249+-3.7810        ?

   &lt;arithmetic&gt;                                           82.5206+-0.4185     ?     82.5347+-0.6726        ? might be 1.0002x slower
   &lt;geometric&gt; *                                          78.6837+-0.8190     ?     78.7581+-0.9845        ? might be 1.0009x slower
   &lt;harmonic&gt;                                             74.5392+-1.3711     ?     74.6390+-1.4602        ? might be 1.0013x slower

                                                             TipOfTree                LotsOfFields                                   
Octane and V8v7:
   encrypt                                                0.47401+-0.00043          0.47333+-0.00032       
   decrypt                                                8.54159+-0.02755    ?     8.54717+-0.02089       ?
   deltablue                                     x2       0.60204+-0.00653          0.59603+-0.00432         might be 1.0101x faster
   earley                                                 0.90955+-0.00773          0.89925+-0.00551         might be 1.0115x faster
   boyer                                                 12.63949+-0.04299    ?    12.67616+-0.05574       ?
   raytrace                                      x2       4.45775+-0.05991          4.43165+-0.06299       
   regexp                                        x2      33.27820+-0.16605         33.18729+-0.35190       
   richards                                      x2       0.31100+-0.00493    ?     0.31480+-0.00435       ? might be 1.0122x slower
   splay                                         x2       0.64825+-0.00743          0.63607+-0.00620         might be 1.0191x faster
   navier-stokes                                 x2      10.94183+-0.00860         10.94123+-0.01137       
   closure                                                0.38217+-0.01832          0.38161+-0.01826       
   jquery                                                 4.74511+-0.55382          4.71803+-0.55098       
   gbemu                                         x2     133.04056+-2.35823    ^    91.91793+-3.10193       ^ definitely 1.4474x faster
   mandreel                                      x2     195.02732+-0.78930        194.72279+-0.96283       
   pdfjs                                         x2      99.14485+-0.39014    ?    99.70104+-0.27412       ?
   box2d                                         x2      34.86907+-0.22845         34.71528+-0.16714       

V8v7:
   &lt;arithmetic&gt;                                           7.69017+-0.02097          7.67563+-0.04739         might be 1.0019x faster
   &lt;geometric&gt; *                                          2.46044+-0.00783          2.45122+-0.00805         might be 1.0038x faster
   &lt;harmonic&gt;                                             0.94455+-0.00556          0.94279+-0.00514         might be 1.0019x faster

Octane including V8v7:
   &lt;arithmetic&gt;                                          40.47437+-0.14514    ^    37.30861+-0.26548       ^ definitely 1.0849x faster
   &lt;geometric&gt; *                                          7.27821+-0.04587    ^     7.05540+-0.06084       ^ definitely 1.0316x faster
   &lt;harmonic&gt;                                             1.30745+-0.01361          1.30462+-0.01384         might be 1.0022x faster

                                                             TipOfTree                LotsOfFields                                   
Kraken:
   ai-astar                                               492.136+-0.871      ?     492.397+-1.022         ?
   audio-beat-detection                                   251.478+-2.523            247.994+-1.891           might be 1.0140x faster
   audio-dft                                              312.536+-1.341      ?     314.603+-1.894         ?
   audio-fft                                              145.891+-0.301      ?     146.473+-0.538         ?
   audio-oscillator                                       248.979+-0.918            248.634+-0.565         
   imaging-darkroom                                       294.609+-1.484      ?     295.022+-1.294         ?
   imaging-desaturate                                     158.948+-0.219            158.926+-0.263         
   imaging-gaussian-blur                                  403.228+-0.272      ?     403.299+-0.398         ?
   json-parse-financial                                    79.455+-0.410      !      81.786+-0.347         ! definitely 1.0293x slower
   json-stringify-tinderbox                               104.001+-0.315      ?     104.249+-0.450         ?
   stanford-crypto-aes                                    108.451+-0.900            107.336+-0.803           might be 1.0104x faster
   stanford-crypto-ccm                                    125.075+-2.146      ?     125.792+-1.695         ?
   stanford-crypto-pbkdf2                                 271.564+-1.119      ^     268.164+-1.503         ^ definitely 1.0127x faster
   stanford-crypto-sha256-iterative                       127.720+-0.482            127.097+-0.324         

   &lt;arithmetic&gt; *                                         223.148+-0.371            222.984+-0.375           might be 1.0007x faster
   &lt;geometric&gt;                                            193.488+-0.365      ?     193.579+-0.376         ? might be 1.0005x slower
   &lt;harmonic&gt;                                             168.305+-0.370      ?     168.794+-0.359         ? might be 1.0029x slower

                                                             TipOfTree                LotsOfFields                                   
JSBench:
   amazon                                                 10.0833+-0.1834     ?     10.2500+-0.2874        ? might be 1.0165x slower
   facebook                                               38.9167+-0.5038     ?     39.0833+-0.5038        ?
   google                                                 68.0000+-1.1170           67.1667+-1.2659          might be 1.0124x faster
   twitter                                                10.1667+-0.2473     ?     10.2500+-0.2874        ?
   yahoo                                                   3.6667+-0.3128     ?      3.9167+-0.1834        ? might be 1.0682x slower

   &lt;arithmetic&gt; *                                         26.1667+-0.3105           26.1333+-0.2122          might be 1.0013x faster
   &lt;geometric&gt;                                            15.8078+-0.3429     ?     16.0808+-0.1768        ? might be 1.0173x slower
   &lt;harmonic&gt;                                              9.7466+-0.4748     ?     10.1628+-0.2731        ? might be 1.0427x slower

                                                             TipOfTree                LotsOfFields                                   
JSRegress:
   adapt-to-double-divide                                 22.5474+-0.0508           22.5089+-0.0316        
   aliased-arguments-getbyval                              0.9550+-0.0307     ?      0.9894+-0.0201        ? might be 1.0360x slower
   allocate-big-object                                     4.8139+-1.4028            4.4599+-1.4003          might be 1.0794x faster
   arity-mismatch-inlining                                 0.8823+-0.0284            0.8820+-0.0199        
   array-access-polymorphic-structure                      8.9643+-1.9976     ?      8.9765+-2.0080        ?
   array-nonarray-polymorhpic-access                      56.3120+-0.1053     !     56.5248+-0.0705        ! definitely 1.0038x slower
   array-with-double-add                                   5.4305+-0.0502            5.4266+-0.0516        
   array-with-double-increment                             4.2583+-0.1396     ?      4.2765+-0.1258        ?
   array-with-double-mul-add                               7.3773+-0.2817     ?      7.3995+-0.2552        ?
   array-with-double-sum                                   7.8757+-0.0227     ?      7.8776+-0.0371        ?
   array-with-int32-add-sub                                9.3844+-0.0812            9.3250+-0.0346        
   array-with-int32-or-double-sum                          7.9654+-0.0188            7.9542+-0.0225        
   ArrayBuffer-Int8Array-alloc-huge-long-lived           220.0331+-2.0901          215.9948+-3.3348          might be 1.0187x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived          133.3690+-2.5465     ?    133.8109+-1.2729        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer          84.2347+-10.3846          82.7975+-10.9949         might be 1.0174x faster
   ArrayBuffer-Int8Array-alloc-long-lived                 42.5424+-3.8013           42.4116+-3.9430        
   ArrayBuffer-Int8Array-alloc                            38.2171+-4.0754           37.8311+-3.9915          might be 1.0102x faster
   big-int-mul                                             5.0521+-0.4907            4.7614+-0.0348          might be 1.0610x faster
   boolean-test                                            4.3534+-0.0403            4.3448+-0.0229        
   branch-fold                                             4.7262+-0.0366     ?      4.7654+-0.0595        ?
   cast-int-to-double                                     14.1235+-0.0566           14.1019+-0.0520        
   cell-argument                                          14.8322+-0.3058           14.7910+-0.2806        
   cfg-simplify                                            3.8329+-0.0296            3.7887+-0.0254          might be 1.0117x faster
   cmpeq-obj-to-obj-other                                 12.5485+-0.1840     ?     12.5865+-0.1602        ?
   constant-test                                           8.6841+-0.1461            8.6183+-0.0909        
   delay-tear-off-arguments-strictmode                     3.2889+-0.0652            3.2414+-0.0586          might be 1.0147x faster
   direct-arguments-getbyval                               0.7927+-0.0155     ?      0.8066+-0.0189        ? might be 1.0176x slower
   double-pollution-getbyval                              10.8172+-0.0484           10.7951+-0.0403        
   double-pollution-putbyoffset                            6.6318+-0.6037            6.6069+-0.5972        
   empty-string-plus-int                                  13.8492+-0.2098     ?     13.9976+-0.2536        ? might be 1.0107x slower
   external-arguments-getbyval                             2.3743+-0.1374     ?      2.4098+-0.1539        ? might be 1.0149x slower
   external-arguments-putbyval                             3.9155+-0.2764     ?      4.0131+-0.2389        ? might be 1.0249x slower
   Float32Array-matrix-mult                                7.3228+-0.2498            7.2189+-0.2020          might be 1.0144x faster
   fold-double-to-int                                     25.3121+-0.1062     ?     25.4200+-0.2714        ?
   function-dot-apply                                      3.0168+-0.0262            3.0117+-0.0226        
   function-test                                           5.0213+-0.1159            4.8767+-0.1084          might be 1.0297x faster
   get-by-id-chain-from-try-block                          6.6927+-0.1163     ?      6.8459+-0.1081        ? might be 1.0229x slower
   get-by-id-proto-or-self                                22.9548+-0.3922     ?     23.1817+-0.4059        ?
   get-by-id-self-or-proto                                23.2727+-0.4556           23.1579+-0.3773        
   HashMap-put-get-iterate-keys                           44.3111+-0.6032     ?     45.2180+-0.7726        ? might be 1.0205x slower
   HashMap-put-get-iterate                                54.0832+-0.4741     ?     54.6537+-0.3497        ? might be 1.0105x slower
   HashMap-string-put-get-iterate                         64.2464+-0.8872     ?     64.5848+-0.9610        ?
   imul-double-only                                       17.4536+-0.0177     ?     17.4631+-0.0213        ?
   imul-int-only                                          14.7905+-0.2016           14.6604+-0.0298        
   imul-mixed                                             21.9772+-0.0143     ?     21.9872+-0.0207        ?
   in-four-cases                                          26.2086+-0.1381           26.1202+-0.0659        
   in-one-case-false                                      12.2063+-0.0290     ?     12.2193+-0.0237        ?
   in-one-case-true                                       12.1915+-0.0273     ?     12.1936+-0.0159        ?
   in-two-cases                                           12.6249+-0.0439           12.6049+-0.0322        
   indexed-properties-in-objects                           4.1663+-0.0217     ?      4.1682+-0.0303        ?
   inline-arguments-access                                 1.4529+-0.0294            1.4293+-0.0245          might be 1.0165x faster
   inline-arguments-local-escape                          25.7837+-0.0865     ?     26.8111+-1.6743        ? might be 1.0398x slower
   inline-get-scoped-var                                   6.7868+-0.0928     ?      6.8317+-0.0877        ?
   inlined-put-by-id-transition                           14.8572+-0.2129           14.8348+-0.2482        
   int-or-other-abs-then-get-by-val                        9.0660+-0.0176     ?      9.0671+-0.0311        ?
   int-or-other-abs-zero-then-get-by-val                  36.9854+-0.4685     ^     36.3317+-0.1171        ^ definitely 1.0180x faster
   int-or-other-add-then-get-by-val                       10.1873+-0.0278     ?     10.3339+-0.1347        ? might be 1.0144x slower
   int-or-other-add                                       10.6921+-0.1550           10.6638+-0.1581        
   int-or-other-div-then-get-by-val                        6.2118+-0.0221     ?      6.2160+-0.0423        ?
   int-or-other-max-then-get-by-val                        7.0557+-0.0597     ?      7.1113+-0.0789        ?
   int-or-other-min-then-get-by-val                        7.1219+-0.0247            7.1199+-0.0262        
   int-or-other-mod-then-get-by-val                        5.9189+-0.1115            5.8033+-0.0137          might be 1.0199x faster
   int-or-other-mul-then-get-by-val                        6.4896+-0.0692            6.4284+-0.0375        
   int-or-other-neg-then-get-by-val                        7.9098+-0.0497     ?      7.9857+-0.0483        ?
   int-or-other-neg-zero-then-get-by-val                  37.0525+-0.5909           36.2443+-0.5725          might be 1.0223x faster
   int-or-other-sub-then-get-by-val                       10.1715+-0.0349     ?     10.2105+-0.0408        ?
   int-or-other-sub                                        8.1607+-0.0550     ?      8.2421+-0.1013        ?
   int-overflow-local                                     11.8056+-0.0179           11.7970+-0.0729        
   Int16Array-bubble-sort                                 48.2996+-0.2397           48.2615+-0.3273        
   Int16Array-load-int-mul                                 1.9894+-0.0248     ?      2.0176+-0.0203        ? might be 1.0142x slower
   Int32Array-alloc-huge-long-lived                      716.7318+-16.1847         716.4501+-15.8666       
   Int32Array-alloc-huge                                 818.8742+-7.4920     ?    822.0723+-6.0544        ?
   Int32Array-alloc-large-long-lived                    1023.7960+-4.0836     ?   1027.9814+-6.3803        ?
   Int32Array-alloc-large                                 45.3640+-0.8524           44.5212+-0.7116          might be 1.0189x faster
   Int32Array-alloc-long-lived                           190.7977+-3.4005          186.2670+-1.9737          might be 1.0243x faster
   Int32Array-alloc                                       17.6830+-3.0530     ?     17.7047+-3.0345        ?
   Int32Array-Int8Array-view-alloc                        25.8518+-2.0160           25.2155+-1.7917          might be 1.0252x faster
   Int8Array-load                                          4.8298+-0.0231     ?      4.8368+-0.0336        ?
   integer-divide                                         15.3758+-0.0741     ?     15.3889+-0.0352        ?
   integer-modulo                                          1.9150+-0.0252     ?      1.9263+-0.0355        ?
   make-indexed-storage                                    4.9761+-0.6638     ?      5.1524+-0.6284        ? might be 1.0354x slower
   make-rope-cse                                          16.7504+-2.9356           16.6062+-3.0075        
   marsaglia                                             521.9096+-1.3320          521.2599+-0.6239        
   method-on-number                                       25.0728+-0.5448           24.8846+-0.4745        
   negative-zero-divide                                    0.3355+-0.0150            0.3352+-0.0127        
   negative-zero-modulo                                    0.3196+-0.0120     ?      0.3251+-0.0146        ? might be 1.0173x slower
   negative-zero-negate                                    0.3159+-0.0223            0.3144+-0.0165        
   nested-function-parsing-random                        415.4240+-12.2845         414.7116+-12.3628       
   nested-function-parsing                                57.4897+-3.9657           57.1888+-4.0080        
   new-array-buffer-dead                                   3.9233+-0.1033     ?      3.9774+-0.1005        ? might be 1.0138x slower
   new-array-buffer-push                                  14.9355+-2.3663           14.8791+-2.4229        
   new-array-dead                                         28.4313+-0.0805           28.3617+-0.0265        
   new-array-push                                         12.4365+-2.0323     ?     12.4803+-1.9863        ?
   number-test                                             4.2544+-0.0296     ?      4.2782+-0.0273        ?
   object-closure-call                                     9.5872+-1.4358            9.5515+-1.5489        
   object-test                                             4.8037+-0.0674            4.7733+-0.0967        
   poly-stricteq                                          90.8852+-0.4190     ?     91.2134+-0.5133        ?
   polymorphic-structure                                  21.0515+-0.0983     ?     21.2184+-0.2963        ?
   polyvariant-monomorphic-get-by-id                      12.5030+-0.0106           12.4771+-0.0310        
   put-by-val-large-index-blank-indexing-type             15.7844+-3.0905     ?     16.0252+-3.1243        ? might be 1.0153x slower
   rare-osr-exit-on-local                                 20.0755+-0.0764     ?     20.0890+-0.0489        ?
   register-pressure-from-osr                             31.6079+-0.1742           31.4887+-0.0800        
   simple-activation-demo                                 34.6946+-0.2468           34.6633+-0.2257        
   slow-array-profile-convergence                          4.6886+-0.2443     ?      4.7483+-0.2643        ? might be 1.0127x slower
   slow-convergence                                        3.6016+-0.0570            3.5927+-0.0322        
   sparse-conditional                                      1.3130+-0.0188     ?      1.3410+-0.0387        ? might be 1.0214x slower
   splice-to-remove                                       47.7261+-0.2052           47.6646+-0.1707        
   string-concat-object                                    5.0712+-1.3919     ?      5.0734+-1.3913        ?
   string-concat-pair-object                               4.9803+-1.4035            4.9752+-1.4026        
   string-concat-pair-simple                              19.5451+-0.7055     ?     19.6131+-0.7365        ?
   string-concat-simple                                   19.5682+-0.5615           19.4766+-0.6678        
   string-cons-repeat                                     14.9962+-1.0241           14.9879+-1.0036        
   string-cons-tower                                      15.6142+-1.0371     ?     15.6652+-0.9777        ?
   string-equality                                        43.7321+-0.2138     ?     43.7960+-0.3039        ?
   string-get-by-val-big-char                             17.4107+-0.1908           17.2645+-0.2062        
   string-get-by-val-out-of-bounds-insane                  5.2083+-0.1991            5.1245+-0.1086          might be 1.0164x faster
   string-get-by-val-out-of-bounds                         4.6259+-0.0185     ?      4.6643+-0.0342        ?
   string-get-by-val                                       4.1438+-0.0491     ^      4.0154+-0.0480        ^ definitely 1.0320x faster
   string-hash                                             2.6154+-0.0286            2.5983+-0.0280        
   string-long-ident-equality                             38.6480+-0.5328           38.4075+-0.4446        
   string-repeat-arith                                    48.1144+-0.3490     ?     48.6016+-0.3459        ? might be 1.0101x slower
   string-sub                                             94.0298+-0.6855     ?     94.3448+-1.1631        ?
   string-test                                             4.2173+-0.0203     !      4.3249+-0.0729        ! definitely 1.0255x slower
   string-var-equality                                    72.2075+-0.4365           72.0858+-0.4525        
   structure-hoist-over-transitions                        4.0423+-0.5908     ?      4.3110+-0.6219        ? might be 1.0665x slower
   switch-char-constant                                    3.3729+-0.0585            3.3463+-0.0191        
   switch-char                                             7.9776+-0.0266     ?      7.9892+-0.0304        ?
   switch-constant                                        13.0220+-2.6930           12.8386+-2.5725          might be 1.0143x faster
   switch-string-basic-big-var                            27.1417+-1.3070     ?     27.2371+-1.2736        ?
   switch-string-basic-big                                24.7609+-1.1488           24.7441+-1.2537        
   switch-string-basic-var                                21.7910+-0.4766     ?     21.8415+-0.5946        ?
   switch-string-basic                                    22.1232+-1.8982           20.7840+-1.5499          might be 1.0644x faster
   switch-string-big-length-tower-var                     29.5607+-0.0488     ?     29.6101+-0.0803        ?
   switch-string-length-tower-var                         22.6528+-0.0179     !     22.7990+-0.0735        ! definitely 1.0065x slower
   switch-string-length-tower                             17.6489+-0.0504           17.6469+-0.0237        
   switch-string-short                                    17.8351+-0.1967           17.7903+-0.1857        
   switch                                                 18.9431+-3.2131     ?     19.5547+-3.4109        ? might be 1.0323x slower
   tear-off-arguments-simple                               2.3193+-0.0688            2.2684+-0.0379          might be 1.0224x faster
   tear-off-arguments                                      3.4846+-0.0300            3.4634+-0.0385        
   temporal-structure                                     21.0315+-0.0278     ?     21.1970+-0.2880        ?
   to-int32-boolean                                       21.9562+-0.0500           21.9408+-0.0255        
   undefined-test                                          4.4995+-0.0596            4.4600+-0.0301        

   &lt;arithmetic&gt;                                           44.9426+-0.2209           44.9099+-0.2248          might be 1.0007x faster
   &lt;geometric&gt; *                                          12.5672+-0.1730           12.5600+-0.1794          might be 1.0006x faster
   &lt;harmonic&gt;                                              4.7927+-0.0860     ?      4.8080+-0.0769        ? might be 1.0032x slower

                                                             TipOfTree                LotsOfFields                                   
DSP:
   filtrr-posterize-tint                                  43.9497+-1.3647     ?     44.0499+-1.3026        ?
   filtrr-tint-contrast-sat-bright                        71.9355+-1.0284     ?     72.1006+-1.0201        ?
   filtrr-tint-sat-adj-contr-mult                         85.3233+-3.9803     ?     85.5898+-3.9459        ?
   filtrr-blur-overlay-sat-contr                         217.9329+-5.7883     ?    219.3346+-6.0586        ?
   filtrr-sat-blur-mult-sharpen-contr                    259.1763+-2.0209     ?    259.6100+-2.5434        ?
   filtrr-sepia-bias                                      33.9087+-3.4755           33.8869+-3.4395        
   route9-vp8                                    x5     1081.6394+-7.2687     ?   1082.2983+-8.3244        ?
   starfield                                     x5     1185.4524+-4.6188         1183.8739+-4.7232        
   bellard-jslinux                               x5     2872.4167+-7.4956         2870.8333+-5.4376        
   zynaps-quake3                                 x5     1395.9535+-25.0805        1393.9805+-24.5054       
   zynaps-mandelbrot                             x5     1108.1667+-5.5310     ?   1110.5154+-7.2420        ?
   ammojs-asm-js                                 x5      264.6556+-14.4313         262.6845+-14.9480       
   ammojs-regular-js                             x5      254.3963+-11.6450         252.1862+-10.1824       

   &lt;arithmetic&gt;                                         1012.8202+-2.5780         1012.1081+-2.3668          might be 1.0007x faster
   &lt;geometric&gt; *                                         624.4494+-8.1878          623.4205+-7.8186          might be 1.0017x faster
   &lt;harmonic&gt;                                            284.6529+-11.2768         284.3369+-11.1313         might be 1.0011x faster

                                                             TipOfTree                LotsOfFields                                   
All benchmarks:
   &lt;arithmetic&gt;                                          203.0454+-0.3117          202.5921+-0.2989          might be 1.0022x faster
   &lt;geometric&gt;                                            25.0281+-0.2339           24.9436+-0.2233          might be 1.0034x faster
   &lt;harmonic&gt;                                              4.7014+-0.0538     ?      4.7065+-0.0523        ? might be 1.0011x slower

                                                             TipOfTree                LotsOfFields                                   
Geomean of preferred means:
   &lt;scaled-result&gt;                                        41.2783+-0.2071           41.0814+-0.1933          might be 1.0048x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918045</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-16 11:42:23 -0700</bug_when>
    <thetext>On my laptop, the gbemu speed-up is more pronounced:

   gbemu          x2      95.13075+-2.83926    ^    57.76286+-2.12455       ^ definitely 1.6469x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918064</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-16 12:14:36 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/154199</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208930</attachid>
            <date>2013-08-16 10:20:46 -0700</date>
            <delta_ts>2013-08-16 11:23:01 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>23102</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0MTg4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDEzLTA4LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
T2JqZWN0IHByb3BlcnRpZXMgYWRkZWQgdXNpbmcgZG90IHN5bnRheCAoby5mID0gLi4uKSBmcm9t
IGNvZGUgdGhhdCBpc24ndCBpbiBldmFsIHNob3VsZCBiZSBsZXNzIGxpa2VseSB0byBjYXVzZSBh
biBvYmplY3QgdG8gYmVjb21lIGEgZGljdGlvbmFyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICA2LTEweCBzcGVlZC11cCBvbiBtaWNyb2Jl
bmNobWFya3MgdGhhdCBjcmVhdGUgbGFyZ2Ugc3RhdGljIG9iamVjdHMuIDY0JSBzcGVlZC11cAor
ICAgICAgICBvbiBPY3RhbmUvZ2JlbXUuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
aDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwdXRCeUlkQ29udGV4dCk6CisgICAgICAgICog
ZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAg
ICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToKKyAgICAgICAgKiBsbGludC9MTEludFNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
cHV0RGlyZWN0SW50ZXJuYWwpOgorICAgICAgICAqIHJ1bnRpbWUvUHV0UHJvcGVydHlTbG90Lmg6
CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6UHV0UHJvcGVydHlTbG90KToKKyAgICAg
ICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojpjb250ZXh0KToKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorCiAyMDEzLTA4LTE2ICBCYWxh
enMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CiAKICAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzExOTc0Mj4gUkVHUkVTU0lPTihGVEwpOiBGaXggcmVnaXN0ZXIgdXNhZ2Ug
aW4gbWlwcyBpbXBsZW1lbnRhdGlvbiBvZiBjdGlWTUhhbmRsZUV4Y2VwdGlvbgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTU0MTU3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiT2JqZWN0QWxsb2NhdGlvblByb2Zp
bGUuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2lu
Y2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIgogI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5j
bHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpJVFdyaXRlQmFycmllci5oIgpAQCAtMzk4LDYg
KzM5OSwxMiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgQ29kZVR5cGUgY29kZVR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3VubGlua2VkQ29kZS0+Y29kZVR5cGUoKTsgfQorICAgIFB1dFByb3BlcnR5
U2xvdDo6Q29udGV4dCBwdXRCeUlkQ29udGV4dCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAo
Y29kZVR5cGUoKSA9PSBFdmFsQ29kZSkKKyAgICAgICAgICAgIHJldHVybiBQdXRQcm9wZXJ0eVNs
b3Q6OlB1dEJ5SWRFdmFsOworICAgICAgICByZXR1cm4gUHV0UHJvcGVydHlTbG90OjpQdXRCeUlk
OworICAgIH0KIAogICAgIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZS5nZXQoKTsgfQogICAgIHVuc2lnbmVkIHNvdXJjZU9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlT2Zmc2V0OyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE1NDE1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzMiw3ICs4MzIs
NyBAQCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljCiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAgICAgCiAgICAgSWRlbnRpZmllciBp
ZGVudCh2bSwgdWlkKTsKLSAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0cnVlKTsKKyAgICBQdXRQ
cm9wZXJ0eVNsb3Qgc2xvdCh0cnVlLCBleGVjLT5jb2RlQmxvY2soKS0+cHV0QnlJZENvbnRleHQo
KSk7CiAgICAgYmFzZS0+bWV0aG9kVGFibGUoKS0+cHV0KGJhc2UsIGV4ZWMsIGlkZW50LCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKQEAgLTg0Miw3ICs4NDIsNyBA
QCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAgICAgCiAgICAgSWRlbnRpZmllciBpZGVu
dCh2bSwgdWlkKTsKLSAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSk7CisgICAgUHV0UHJv
cGVydHlTbG90IHNsb3QoZmFsc2UsIGV4ZWMtPmNvZGVCbG9jaygpLT5wdXRCeUlkQ29udGV4dCgp
KTsKICAgICBiYXNlLT5tZXRob2RUYWJsZSgpLT5wdXQoYmFzZSwgZXhlYywgaWRlbnQsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIApAQCAtODUyLDcgKzg1Miw3IEBA
IHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWMKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKICAgICAKICAgICBJZGVudGlmaWVyIGlkZW50
KHZtLCB1aWQpOwotICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRydWUpOworICAgIFB1dFByb3Bl
cnR5U2xvdCBzbG90KHRydWUsIGV4ZWMtPmNvZGVCbG9jaygpLT5wdXRCeUlkQ29udGV4dCgpKTsK
ICAgICBBU1NFUlQoYmFzZS0+aXNPYmplY3QoKSk7CiAgICAgYXNPYmplY3QoYmFzZSktPnB1dERp
cmVjdChleGVjLT52bSgpLCBpZGVudCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNs
b3QpOwogfQpAQCAtODYzLDcgKzg2Myw3IEBAIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeUlkRGlyZWMKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsK
ICAgICAKICAgICBJZGVudGlmaWVyIGlkZW50KHZtLCB1aWQpOwotICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90KGZhbHNlKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSwgZXhlYy0+Y29k
ZUJsb2NrKCktPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIEFTU0VSVChiYXNlLT5pc09iamVjdCgp
KTsKICAgICBhc09iamVjdChiYXNlKS0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGlkZW50LCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CkBAIC04ODAsNyArODgwLDcgQEAg
dm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRTdHJpYwogCiAgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogICAgIEpTVmFsdWUgYmFzZVZh
bHVlKGJhc2UpOwotICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRydWUpOworICAgIFB1dFByb3Bl
cnR5U2xvdCBzbG90KHRydWUsIGV4ZWMtPmNvZGVCbG9jaygpLT5wdXRCeUlkQ29udGV4dCgpKTsK
ICAgICAKICAgICBiYXNlVmFsdWUucHV0KGV4ZWMsIGlkZW50LCB2YWx1ZSwgc2xvdCk7CiAgICAg
CkBAIC05MDUsNyArOTA1LDcgQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRO
b25TdAogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwogICAgIEpTVmFsdWUgYmFzZVZhbHVlKGJhc2UpOwotICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
KGZhbHNlKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSwgZXhlYy0+Y29kZUJsb2Nr
KCktPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIAogICAgIGJhc2VWYWx1ZS5wdXQoZXhlYywgaWRl
bnQsIHZhbHVlLCBzbG90KTsKICAgICAKQEAgLTkyOSw3ICs5MjksNyBAQCB2b2lkIERGR19PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjCiAgICAgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlID0g
c3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8uYWNjZXNzVHlwZSk7CiAKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgUHV0UHJvcGVy
dHlTbG90IHNsb3QodHJ1ZSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSwgZXhlYy0+
Y29kZUJsb2NrKCktPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIAogICAgIEFTU0VSVChiYXNlLT5p
c09iamVjdCgpKTsKICAgICBhc09iamVjdChiYXNlKS0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGlk
ZW50LCB2YWx1ZSwgc2xvdCk7CkBAIC05NTQsNyArOTU0LDcgQEAgdm9pZCBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5SWREaXJlYwogICAgIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRp
Y19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpOwogCiAgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90KGZhbHNlKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSwgZXhlYy0+Y29k
ZUJsb2NrKCktPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIAogICAgIEFTU0VSVChiYXNlLT5pc09i
amVjdCgpKTsKICAgICBhc09iamVjdChiYXNlKS0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGlkZW50
LCB2YWx1ZSwgc2xvdCk7CkBAIC05ODAsNyArOTgwLDcgQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5SWRTdHJpYwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlKGJhc2UpOwotICAgIFB1dFBy
b3BlcnR5U2xvdCBzbG90KHRydWUpOworICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRydWUsIGV4
ZWMtPmNvZGVCbG9jaygpLT5wdXRCeUlkQ29udGV4dCgpKTsKICAgICAKICAgICBiYXNlVmFsdWUu
cHV0KGV4ZWMsIGlkZW50LCB2YWx1ZSwgc2xvdCk7CiAgICAgCkBAIC0xMDAyLDcgKzEwMDIsNyBA
QCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0CiAKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgSlNWYWx1ZSBiYXNl
VmFsdWUoYmFzZSk7Ci0gICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZmFsc2UpOworICAgIFB1dFBy
b3BlcnR5U2xvdCBzbG90KGZhbHNlLCBleGVjLT5jb2RlQmxvY2soKS0+cHV0QnlJZENvbnRleHQo
KSk7CiAgICAgCiAgICAgYmFzZVZhbHVlLnB1dChleGVjLCBpZGVudCwgdmFsdWUsIHNsb3QpOwog
ICAgIApAQCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5SWREaXJlYwogICAgIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vz
c1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpOwogICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0
cnVlKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0cnVlLCBleGVjLT5jb2RlQmxvY2soKS0+
cHV0QnlJZENvbnRleHQoKSk7CiAgICAgCiAgICAgQVNTRVJUKGJhc2UtPmlzT2JqZWN0KCkpOwog
ICAgIGFzT2JqZWN0KGJhc2UpLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgaWRlbnQsIHZhbHVlLCBz
bG90KTsKQEAgLTEwNDUsNyArMTA0NSw3IEBAIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeUlkRGlyZWMKICAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBzdGF0aWNfY2FzdDxBY2Nl
c3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKIAogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxz
ZSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZmFsc2UsIGV4ZWMtPmNvZGVCbG9jaygpLT5w
dXRCeUlkQ29udGV4dCgpKTsKICAgICAKICAgICBBU1NFUlQoYmFzZS0+aXNPYmplY3QoKSk7CiAg
ICAgYXNPYmplY3QoYmFzZSktPnB1dERpcmVjdChleGVjLT52bSgpLCBpZGVudCwgdmFsdWUsIHNs
b3QpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9u
IDE1NDE1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzUsNyArNDc1LDkgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwg
b3BfcHV0X2J5X2lkXwogewogICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsK
IAotICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKS0+aXNTdHJpY3RNb2RlKCkpOworICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KAorICAgICAg
ICBzdGFja0ZyYW1lLmNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpLAorICAg
ICAgICBzdGFja0ZyYW1lLmNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPnB1dEJ5SWRDb250ZXh0KCkp
OwogICAgIHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkucHV0KHN0YWNrRnJhbWUuY2FsbEZy
YW1lLCBzdGFja0ZyYW1lLmFyZ3NbMV0uaWRlbnRpZmllcigpLCBzdGFja0ZyYW1lLmFyZ3NbMl0u
anNWYWx1ZSgpLCBzbG90KTsKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwogfQpA
QCAtNDg0LDcgKzQ4Niw5IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV9p
ZF8KIHsKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CiAgICAgCi0gICAg
UHV0UHJvcGVydHlTbG90IHNsb3Qoc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5p
c1N0cmljdE1vZGUoKSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoCisgICAgICAgIHN0YWNr
RnJhbWUuY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCksCisgICAgICAgIHN0
YWNrRnJhbWUuY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+cHV0QnlJZENvbnRleHQoKSk7CiAgICAg
SlNWYWx1ZSBiYXNlVmFsdWUgPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpOwogICAgIEFT
U0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgYXNPYmplY3QoYmFzZVZhbHVlKS0+cHV0
RGlyZWN0KHN0YWNrRnJhbWUuY2FsbEZyYW1lLT52bSgpLCBzdGFja0ZyYW1lLmFyZ3NbMV0uaWRl
bnRpZmllcigpLCBzdGFja0ZyYW1lLmFyZ3NbMl0uanNWYWx1ZSgpLCBzbG90KTsKQEAgLTUxNiw3
ICs1MjAsOSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfaWQpCiAgICAg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gJmNvZGVCbG9jay0+Z2V0U3R1YkluZm8oU1RV
Ql9SRVRVUk5fQUREUkVTUyk7CiAgICAgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlID0gc3RhdGljX2Nh
c3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5cGUpOwogCi0gICAgUHV0UHJvcGVydHlT
bG90IHNsb3QoY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOworICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90KAorICAgICAgICBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0
cmljdE1vZGUoKSwKKyAgICAgICAgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+cHV0QnlJZENvbnRl
eHQoKSk7CiAgICAgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKS5wdXQoY2FsbEZyYW1lLCBp
ZGVudCwgc3RhY2tGcmFtZS5hcmdzWzJdLmpzVmFsdWUoKSwgc2xvdCk7CiAgICAgCiAgICAgaWYg
KGFjY2Vzc1R5cGUgPT0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5
cGUpKSB7CkBAIC01MzcsNyArNTQzLDkgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3Bf
cHV0X2J5X2lkXwogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9ICZjb2RlQmxvY2st
PmdldFN0dWJJbmZvKFNUVUJfUkVUVVJOX0FERFJFU1MpOwogICAgIEFjY2Vzc1R5cGUgYWNjZXNz
VHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NUeXBlKTsKIAot
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCgKKyAgICAgICAgY2FsbEZyYW1lLT5j
b2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCksCisgICAgICAgIGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCktPnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFt
ZS5hcmdzWzBdLmpzVmFsdWUoKTsKICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwog
ICAgIApAQCAtNTU4LDcgKzU2Niw5IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1
dF9ieV9pZF8KICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZyYW1l
OwogICAgIElkZW50aWZpZXImIGlkZW50ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmlkZW50aWZpZXIo
KTsKICAgICAKLSAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChjYWxsRnJhbWUtPmNvZGVCbG9jaygp
LT5pc1N0cmljdE1vZGUoKSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoCisgICAgICAgIGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpLAorICAgICAgICBjYWxsRnJhbWUt
PmNvZGVCbG9jaygpLT5wdXRCeUlkQ29udGV4dCgpKTsKICAgICBzdGFja0ZyYW1lLmFyZ3NbMF0u
anNWYWx1ZSgpLnB1dChjYWxsRnJhbWUsIGlkZW50LCBzdGFja0ZyYW1lLmFyZ3NbMl0uanNWYWx1
ZSgpLCBzbG90KTsKIAogICAgIENIRUNLX0ZPUl9FWENFUFRJT05fQVRfRU5EKCk7CkBAIC01NzEs
NyArNTgxLDkgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5X2lkXwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAgICAgSWRlbnRp
ZmllciYgaWRlbnQgPSBzdGFja0ZyYW1lLmFyZ3NbMV0uaWRlbnRpZmllcigpOwogICAgIAotICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9k
ZSgpKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCgKKyAgICAgICAgY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKS0+aXNTdHJpY3RNb2RlKCksCisgICAgICAgIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkt
PnB1dEJ5SWRDb250ZXh0KCkpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFtZS5h
cmdzWzBdLmpzVmFsdWUoKTsKICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwogICAg
IGFzT2JqZWN0KGJhc2VWYWx1ZSktPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGlkZW50LCBz
dGFja0ZyYW1lLmFyZ3NbMl0uanNWYWx1ZSgpLCBzbG90KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTU0MTU3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcwLDcgKzU3MCw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9wdXRfYnlfaWQKICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRl
bnRpZmllcihwY1syXS51Lm9wZXJhbmQpOwogICAgIAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0g
TExJTlRfT1BfQygxKS5qc1ZhbHVlKCk7Ci0gICAgUHV0UHJvcGVydHlTbG90IHNsb3QoY29kZUJs
b2NrLT5pc1N0cmljdE1vZGUoKSk7CisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoY29kZUJsb2Nr
LT5pc1N0cmljdE1vZGUoKSwgY29kZUJsb2NrLT5wdXRCeUlkQ29udGV4dCgpKTsKICAgICBpZiAo
cGNbOF0udS5vcGVyYW5kKQogICAgICAgICBhc09iamVjdChiYXNlVmFsdWUpLT5wdXREaXJlY3Qo
dm0sIGlkZW50LCBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKSwgc2xvdCk7CiAgICAgZWxzZQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCShyZXZpc2lvbiAxNTQx
NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzQ3LDcgKzEzNDcsNyBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGly
ZWN0SW50ZXJuYWwoCiAgICAgaWYgKChtb2RlID09IFB1dE1vZGVQdXQpICYmICFpc0V4dGVuc2li
bGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbih2bSwgdGhpcy0+c3RydWN0dXJlKCks
IHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNGdW5jdGlvbiwgb2Zmc2V0KTsKKyAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9u
KHZtLCB0aGlzLT5zdHJ1Y3R1cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZp
Y0Z1bmN0aW9uLCBvZmZzZXQsIHNsb3QuY29udGV4dCgpKTsKICAgICAKICAgICB2YWxpZGF0ZU9m
ZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmlzVmFsaWRPZmZzZXQob2Zmc2V0
KSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdXRQcm9wZXJ0eVNsb3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdXRQcm9wZXJ0
eVNsb3QuaAkocmV2aXNpb24gMTU0MTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHV0UHJvcGVydHlTbG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxMyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBQdXRQcm9wZXJ0eVNsb3QgewogICAgIHB1YmxpYzoK
ICAgICAgICAgZW51bSBUeXBlIHsgVW5jYWNoYWJsZSwgRXhpc3RpbmdQcm9wZXJ0eSwgTmV3UHJv
cGVydHkgfTsKKyAgICAgICAgZW51bSBDb250ZXh0IHsgVW5rbm93bkNvbnRleHQsIFB1dEJ5SWQs
IFB1dEJ5SWRFdmFsIH07CiAKLSAgICAgICAgUHV0UHJvcGVydHlTbG90KGJvb2wgaXNTdHJpY3RN
b2RlID0gZmFsc2UpCisgICAgICAgIFB1dFByb3BlcnR5U2xvdChib29sIGlzU3RyaWN0TW9kZSA9
IGZhbHNlLCBDb250ZXh0IGNvbnRleHQgPSBVbmtub3duQ29udGV4dCkKICAgICAgICAgICAgIDog
bV90eXBlKFVuY2FjaGFibGUpCiAgICAgICAgICAgICAsIG1fYmFzZSgwKQogICAgICAgICAgICAg
LCBtX2lzU3RyaWN0TW9kZShpc1N0cmljdE1vZGUpCisgICAgICAgICAgICAsIG1fY29udGV4dChj
b250ZXh0KQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNTgsNiArNjAsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIG1fYmFzZSA9IGJhc2U7CiAgICAgICAgICAgICBtX29mZnNl
dCA9IG9mZnNldDsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ29udGV4dCBjb250ZXh0
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udGV4dD4obV9jb250ZXh0KTsgfQogCiAg
ICAgICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgICAgICBKU09i
amVjdCogYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZTsgfQpAQCAtNzUsNiArNzksNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNPYmplY3QqIG1fYmFzZTsKICAgICAgICAgUHJvcGVy
dHlPZmZzZXQgbV9vZmZzZXQ7CiAgICAgICAgIGJvb2wgbV9pc1N0cmljdE1vZGU7CisgICAgICAg
IHVpbnQ4X3QgbV9jb250ZXh0OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lvbiAx
NTQxNTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zODAsNyArMzgwLDcgQEAgTm9uUHJvcGVydHlUcmFuc2l0aW9uIFN0
cnVjdHVyZTo6c3VnZ2VzdAogICAgIHJldHVybiBBbGxvY2F0ZUFycmF5U3RvcmFnZTsKIH0KIAot
U3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzLCBKU0NlbGwqIHNwZWNpZmljVmFsdWUsIFByb3BlcnR5T2Zmc2V0JiBvZmZzZXQpCitT
dHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMsIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZSwgUHJvcGVydHlPZmZzZXQmIG9mZnNldCwgUHV0
UHJvcGVydHlTbG90OjpDb250ZXh0IGNvbnRleHQpCiB7CiAgICAgLy8gSWYgd2UgaGF2ZSBhIHNw
ZWNpZmljIGZ1bmN0aW9uLCB3ZSBtYXkgaGF2ZSBnb3QgdG8gdGhpcyBwb2ludCBpZiB0aGVyZSBp
cwogICAgIC8vIGFscmVhZHkgYSB0cmFuc2l0aW9uIHdpdGggdGhlIGNvcnJlY3QgcHJvcGVydHkg
bmFtZSBhbmQgYXR0cmlidXRlcywgYnV0CkBAIC0zOTksNyArMzk5LDEyIEBAIFN0cnVjdHVyZSog
U3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXQKICAgICBpZiAoc3RydWN0dXJlLT5tX3NwZWNp
ZmljRnVuY3Rpb25UaHJhc2hDb3VudCA9PSBtYXhTcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQp
CiAgICAgICAgIHNwZWNpZmljVmFsdWUgPSAwOwogCi0gICAgaWYgKHN0cnVjdHVyZS0+dHJhbnNp
dGlvbkNvdW50KCkgPiBzX21heFRyYW5zaXRpb25MZW5ndGgpIHsKKyAgICBpbnQgbWF4VHJhbnNp
dGlvbkxlbmd0aDsKKyAgICBpZiAoY29udGV4dCA9PSBQdXRQcm9wZXJ0eVNsb3Q6OlB1dEJ5SWQp
CisgICAgICAgIG1heFRyYW5zaXRpb25MZW5ndGggPSBzX21heFRyYW5zaXRpb25MZW5ndGhGb3JO
b25FdmFsUHV0QnlJZDsKKyAgICBlbHNlCisgICAgICAgIG1heFRyYW5zaXRpb25MZW5ndGggPSBz
X21heFRyYW5zaXRpb25MZW5ndGg7CisgICAgaWYgKHN0cnVjdHVyZS0+dHJhbnNpdGlvbkNvdW50
KCkgPiBtYXhUcmFuc2l0aW9uTGVuZ3RoKSB7CiAgICAgICAgIFN0cnVjdHVyZSogdHJhbnNpdGlv
biA9IHRvQ2FjaGVhYmxlRGljdGlvbmFyeVRyYW5zaXRpb24odm0sIHN0cnVjdHVyZSk7CiAgICAg
ICAgIEFTU0VSVChzdHJ1Y3R1cmUgIT0gdHJhbnNpdGlvbik7CiAgICAgICAgIG9mZnNldCA9IHRy
YW5zaXRpb24tPnB1dFNwZWNpZmljVmFsdWUodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywg
c3BlY2lmaWNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaAkocmV2aXNpb24gMTU0MTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5j
bHVkZSAiUHJvdGVjdC5oIgorI2luY2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlVHJhbnNpdGlvblRhYmxl
LmgiCiAjaW5jbHVkZSAiSlNUeXBlSW5mby5oIgpAQCAtOTUsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6
CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZHVtcFN0YXRpc3RpY3MoKTsKIAotICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBTdHJ1Y3R1cmUqIGFkZFByb3BlcnR5VHJhbnNpdGlvbihWTSYs
IFN0cnVjdHVyZSosIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBz
cGVjaWZpY1ZhbHVlLCBQcm9wZXJ0eU9mZnNldCYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBTdHJ1Y3R1cmUqIGFkZFByb3BlcnR5VHJhbnNpdGlvbihWTSYsIFN0cnVjdHVyZSosIFBy
b3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVjaWZpY1ZhbHVlLCBQ
cm9wZXJ0eU9mZnNldCYsIFB1dFByb3BlcnR5U2xvdDo6Q29udGV4dCA9IFB1dFByb3BlcnR5U2xv
dDo6VW5rbm93bkNvbnRleHQpOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGFkZFByb3BlcnR5VHJh
bnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVDb25jdXJyZW50bHkoU3RydWN0dXJlKiwgU3RyaW5n
SW1wbCogdWlkLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU0NlbGwqIHNwZWNpZmljVmFsdWUsIFBy
b3BlcnR5T2Zmc2V0Jik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVyZSog
YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZShTdHJ1Y3R1cmUqLCBQcm9w
ZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZSwgUHJv
cGVydHlPZmZzZXQmKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiByZW1vdmVQcm9wZXJ0eVRyYW5z
aXRpb24oVk0mLCBTdHJ1Y3R1cmUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5T2Zmc2V0Jik7CkBA
IC00NjQsNiArNDY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsb25lUmFyZURhdGFGcm9tKFZN
JiwgY29uc3QgU3RydWN0dXJlKik7CiAKICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4VHJhbnNp
dGlvbkxlbmd0aCA9IDY0OworICAgIHN0YXRpYyBjb25zdCBpbnQgc19tYXhUcmFuc2l0aW9uTGVu
Z3RoRm9yTm9uRXZhbFB1dEJ5SWQgPSA1MTI7CiAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bWF4U3BlY2lmaWNGdW5jdGlvblRocmFzaENvdW50ID0gMzsKICAgICAgICAgCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxNTQxODgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMy0wOC0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgorCisgICAgICAgIE9iamVjdCBwcm9wZXJ0aWVzIGFkZGVkIHVzaW5nIGRvdCBzeW50YXgg
KG8uZiA9IC4uLikgZnJvbSBjb2RlIHRoYXQgaXNuJ3QgaW4gZXZhbCBzaG91bGQgYmUgbGVzcyBs
aWtlbHkgdG8gY2F1c2UgYW4gb2JqZWN0IHRvIGJlY29tZSBhIGRpY3Rpb25hcnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTg5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy9yZWdyZXNz
L2xvdHMtb2YtZmllbGRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9y
ZWdyZXNzL2xvdHMtb2YtZmllbGRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvbG90cy1vZi1maWVsZHMuanM6IEFkZGVkLgorICAgICAgICAoZm9v
KToKKwogMjAxMy0wOC0xNiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRp
Z2lhLmNvbT4KIAogICAgICAgICBbUXRdIEtlcm5pbmcgaW4gZmFzdCBmb250IHBhdGggYnJlYWtz
IGxldHRlci1zcGFjaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvbG90cy1v
Zi1maWVsZHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
cmVncmVzcy9sb3RzLW9mLWZpZWxkcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvbG90cy1vZi1maWVsZHMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9sb3RzLW9mLWZpZWxkcworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL2xvdHMtb2YtZmllbGRzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL2xvdHMtb2YtZmllbGRzLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvbG90cy1vZi1maWVsZHMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9sb3RzLW9mLWZpZWxkcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xvdHMtb2Yt
ZmllbGRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvbG90cy1vZi1maWVsZHMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xvdHMtb2YtZmllbGRzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjEzIEBACitmdW5jdGlvbiBmb28oKSB7CisgICAgdmFyIHJlc3VsdCA9
IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIG8g
PSB7fTsKKyAgICAgICAgby5pMCA9IDA7CisgICAgICAgIG8uaTEgPSAxOworICAgICAgICBvLmky
ID0gMjsKKyAgICAgICAgby5pMyA9IDM7CisgICAgICAgIG8uaTQgPSA0OworICAgICAgICBvLmk1
ID0gNTsKKyAgICAgICAgby5pNiA9IDY7CisgICAgICAgIG8uaTcgPSA3OworICAgICAgICBvLmk4
ID0gODsKKyAgICAgICAgby5pOSA9IDk7CisgICAgICAgIG8uaTEwID0gMTA7CisgICAgICAgIG8u
aTExID0gMTE7CisgICAgICAgIG8uaTEyID0gMTI7CisgICAgICAgIG8uaTEzID0gMTM7CisgICAg
ICAgIG8uaTE0ID0gMTQ7CisgICAgICAgIG8uaTE1ID0gMTU7CisgICAgICAgIG8uaTE2ID0gMTY7
CisgICAgICAgIG8uaTE3ID0gMTc7CisgICAgICAgIG8uaTE4ID0gMTg7CisgICAgICAgIG8uaTE5
ID0gMTk7CisgICAgICAgIG8uaTIwID0gMjA7CisgICAgICAgIG8uaTIxID0gMjE7CisgICAgICAg
IG8uaTIyID0gMjI7CisgICAgICAgIG8uaTIzID0gMjM7CisgICAgICAgIG8uaTI0ID0gMjQ7Cisg
ICAgICAgIG8uaTI1ID0gMjU7CisgICAgICAgIG8uaTI2ID0gMjY7CisgICAgICAgIG8uaTI3ID0g
Mjc7CisgICAgICAgIG8uaTI4ID0gMjg7CisgICAgICAgIG8uaTI5ID0gMjk7CisgICAgICAgIG8u
aTMwID0gMzA7CisgICAgICAgIG8uaTMxID0gMzE7CisgICAgICAgIG8uaTMyID0gMzI7CisgICAg
ICAgIG8uaTMzID0gMzM7CisgICAgICAgIG8uaTM0ID0gMzQ7CisgICAgICAgIG8uaTM1ID0gMzU7
CisgICAgICAgIG8uaTM2ID0gMzY7CisgICAgICAgIG8uaTM3ID0gMzc7CisgICAgICAgIG8uaTM4
ID0gMzg7CisgICAgICAgIG8uaTM5ID0gMzk7CisgICAgICAgIG8uaTQwID0gNDA7CisgICAgICAg
IG8uaTQxID0gNDE7CisgICAgICAgIG8uaTQyID0gNDI7CisgICAgICAgIG8uaTQzID0gNDM7Cisg
ICAgICAgIG8uaTQ0ID0gNDQ7CisgICAgICAgIG8uaTQ1ID0gNDU7CisgICAgICAgIG8uaTQ2ID0g
NDY7CisgICAgICAgIG8uaTQ3ID0gNDc7CisgICAgICAgIG8uaTQ4ID0gNDg7CisgICAgICAgIG8u
aTQ5ID0gNDk7CisgICAgICAgIG8uaTUwID0gNTA7CisgICAgICAgIG8uaTUxID0gNTE7CisgICAg
ICAgIG8uaTUyID0gNTI7CisgICAgICAgIG8uaTUzID0gNTM7CisgICAgICAgIG8uaTU0ID0gNTQ7
CisgICAgICAgIG8uaTU1ID0gNTU7CisgICAgICAgIG8uaTU2ID0gNTY7CisgICAgICAgIG8uaTU3
ID0gNTc7CisgICAgICAgIG8uaTU4ID0gNTg7CisgICAgICAgIG8uaTU5ID0gNTk7CisgICAgICAg
IG8uaTYwID0gNjA7CisgICAgICAgIG8uaTYxID0gNjE7CisgICAgICAgIG8uaTYyID0gNjI7Cisg
ICAgICAgIG8uaTYzID0gNjM7CisgICAgICAgIG8uaTY0ID0gNjQ7CisgICAgICAgIG8uaTY1ID0g
NjU7CisgICAgICAgIG8uaTY2ID0gNjY7CisgICAgICAgIG8uaTY3ID0gNjc7CisgICAgICAgIG8u
aTY4ID0gNjg7CisgICAgICAgIG8uaTY5ID0gNjk7CisgICAgICAgIG8uaTcwID0gNzA7CisgICAg
ICAgIG8uaTcxID0gNzE7CisgICAgICAgIG8uaTcyID0gNzI7CisgICAgICAgIG8uaTczID0gNzM7
CisgICAgICAgIG8uaTc0ID0gNzQ7CisgICAgICAgIG8uaTc1ID0gNzU7CisgICAgICAgIG8uaTc2
ID0gNzY7CisgICAgICAgIG8uaTc3ID0gNzc7CisgICAgICAgIG8uaTc4ID0gNzg7CisgICAgICAg
IG8uaTc5ID0gNzk7CisgICAgICAgIG8uaTgwID0gODA7CisgICAgICAgIG8uaTgxID0gODE7Cisg
ICAgICAgIG8uaTgyID0gODI7CisgICAgICAgIG8uaTgzID0gODM7CisgICAgICAgIG8uaTg0ID0g
ODQ7CisgICAgICAgIG8uaTg1ID0gODU7CisgICAgICAgIG8uaTg2ID0gODY7CisgICAgICAgIG8u
aTg3ID0gODc7CisgICAgICAgIG8uaTg4ID0gODg7CisgICAgICAgIG8uaTg5ID0gODk7CisgICAg
ICAgIG8uaTkwID0gOTA7CisgICAgICAgIG8uaTkxID0gOTE7CisgICAgICAgIG8uaTkyID0gOTI7
CisgICAgICAgIG8uaTkzID0gOTM7CisgICAgICAgIG8uaTk0ID0gOTQ7CisgICAgICAgIG8uaTk1
ID0gOTU7CisgICAgICAgIG8uaTk2ID0gOTY7CisgICAgICAgIG8uaTk3ID0gOTc7CisgICAgICAg
IG8uaTk4ID0gOTg7CisgICAgICAgIG8uaTk5ID0gOTk7CisgICAgICAgIG8uaTEwMCA9IDEwMDsK
KyAgICAgICAgby5pMTAxID0gMTAxOworICAgICAgICBvLmkxMDIgPSAxMDI7CisgICAgICAgIG8u
aTEwMyA9IDEwMzsKKyAgICAgICAgby5pMTA0ID0gMTA0OworICAgICAgICBvLmkxMDUgPSAxMDU7
CisgICAgICAgIG8uaTEwNiA9IDEwNjsKKyAgICAgICAgby5pMTA3ID0gMTA3OworICAgICAgICBv
LmkxMDggPSAxMDg7CisgICAgICAgIG8uaTEwOSA9IDEwOTsKKyAgICAgICAgby5pMTEwID0gMTEw
OworICAgICAgICBvLmkxMTEgPSAxMTE7CisgICAgICAgIG8uaTExMiA9IDExMjsKKyAgICAgICAg
by5pMTEzID0gMTEzOworICAgICAgICBvLmkxMTQgPSAxMTQ7CisgICAgICAgIG8uaTExNSA9IDEx
NTsKKyAgICAgICAgby5pMTE2ID0gMTE2OworICAgICAgICBvLmkxMTcgPSAxMTc7CisgICAgICAg
IG8uaTExOCA9IDExODsKKyAgICAgICAgby5pMTE5ID0gMTE5OworICAgICAgICBvLmkxMjAgPSAx
MjA7CisgICAgICAgIG8uaTEyMSA9IDEyMTsKKyAgICAgICAgby5pMTIyID0gMTIyOworICAgICAg
ICBvLmkxMjMgPSAxMjM7CisgICAgICAgIG8uaTEyNCA9IDEyNDsKKyAgICAgICAgby5pMTI1ID0g
MTI1OworICAgICAgICBvLmkxMjYgPSAxMjY7CisgICAgICAgIG8uaTEyNyA9IDEyNzsKKyAgICAg
ICAgby5pMTI4ID0gMTI4OworICAgICAgICBvLmkxMjkgPSAxMjk7CisgICAgICAgIG8uaTEzMCA9
IDEzMDsKKyAgICAgICAgby5pMTMxID0gMTMxOworICAgICAgICBvLmkxMzIgPSAxMzI7CisgICAg
ICAgIG8uaTEzMyA9IDEzMzsKKyAgICAgICAgby5pMTM0ID0gMTM0OworICAgICAgICBvLmkxMzUg
PSAxMzU7CisgICAgICAgIG8uaTEzNiA9IDEzNjsKKyAgICAgICAgby5pMTM3ID0gMTM3OworICAg
ICAgICBvLmkxMzggPSAxMzg7CisgICAgICAgIG8uaTEzOSA9IDEzOTsKKyAgICAgICAgby5pMTQw
ID0gMTQwOworICAgICAgICBvLmkxNDEgPSAxNDE7CisgICAgICAgIG8uaTE0MiA9IDE0MjsKKyAg
ICAgICAgby5pMTQzID0gMTQzOworICAgICAgICBvLmkxNDQgPSAxNDQ7CisgICAgICAgIG8uaTE0
NSA9IDE0NTsKKyAgICAgICAgby5pMTQ2ID0gMTQ2OworICAgICAgICBvLmkxNDcgPSAxNDc7Cisg
ICAgICAgIG8uaTE0OCA9IDE0ODsKKyAgICAgICAgby5pMTQ5ID0gMTQ5OworICAgICAgICBvLmkx
NTAgPSAxNTA7CisgICAgICAgIG8uaTE1MSA9IDE1MTsKKyAgICAgICAgby5pMTUyID0gMTUyOwor
ICAgICAgICBvLmkxNTMgPSAxNTM7CisgICAgICAgIG8uaTE1NCA9IDE1NDsKKyAgICAgICAgby5p
MTU1ID0gMTU1OworICAgICAgICBvLmkxNTYgPSAxNTY7CisgICAgICAgIG8uaTE1NyA9IDE1NzsK
KyAgICAgICAgby5pMTU4ID0gMTU4OworICAgICAgICBvLmkxNTkgPSAxNTk7CisgICAgICAgIG8u
aTE2MCA9IDE2MDsKKyAgICAgICAgby5pMTYxID0gMTYxOworICAgICAgICBvLmkxNjIgPSAxNjI7
CisgICAgICAgIG8uaTE2MyA9IDE2MzsKKyAgICAgICAgby5pMTY0ID0gMTY0OworICAgICAgICBv
LmkxNjUgPSAxNjU7CisgICAgICAgIG8uaTE2NiA9IDE2NjsKKyAgICAgICAgby5pMTY3ID0gMTY3
OworICAgICAgICBvLmkxNjggPSAxNjg7CisgICAgICAgIG8uaTE2OSA9IDE2OTsKKyAgICAgICAg
by5pMTcwID0gMTcwOworICAgICAgICBvLmkxNzEgPSAxNzE7CisgICAgICAgIG8uaTE3MiA9IDE3
MjsKKyAgICAgICAgby5pMTczID0gMTczOworICAgICAgICBvLmkxNzQgPSAxNzQ7CisgICAgICAg
IG8uaTE3NSA9IDE3NTsKKyAgICAgICAgby5pMTc2ID0gMTc2OworICAgICAgICBvLmkxNzcgPSAx
Nzc7CisgICAgICAgIG8uaTE3OCA9IDE3ODsKKyAgICAgICAgby5pMTc5ID0gMTc5OworICAgICAg
ICBvLmkxODAgPSAxODA7CisgICAgICAgIG8uaTE4MSA9IDE4MTsKKyAgICAgICAgby5pMTgyID0g
MTgyOworICAgICAgICBvLmkxODMgPSAxODM7CisgICAgICAgIG8uaTE4NCA9IDE4NDsKKyAgICAg
ICAgby5pMTg1ID0gMTg1OworICAgICAgICBvLmkxODYgPSAxODY7CisgICAgICAgIG8uaTE4NyA9
IDE4NzsKKyAgICAgICAgby5pMTg4ID0gMTg4OworICAgICAgICBvLmkxODkgPSAxODk7CisgICAg
ICAgIG8uaTE5MCA9IDE5MDsKKyAgICAgICAgby5pMTkxID0gMTkxOworICAgICAgICBvLmkxOTIg
PSAxOTI7CisgICAgICAgIG8uaTE5MyA9IDE5MzsKKyAgICAgICAgby5pMTk0ID0gMTk0OworICAg
ICAgICBvLmkxOTUgPSAxOTU7CisgICAgICAgIG8uaTE5NiA9IDE5NjsKKyAgICAgICAgby5pMTk3
ID0gMTk3OworICAgICAgICBvLmkxOTggPSAxOTg7CisgICAgICAgIG8uaTE5OSA9IDE5OTsKKyAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAxMDA7ICsraikKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmkxMDA7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBm
b28oKTsKK2lmIChyZXN1bHQgIT0gNTAwMDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgcmVzdWx0Owo=
</data>
<flag name="review"
          id="230901"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>