<?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>148658</bug_id>
          
          <creation_ts>2015-08-31 16:58:44 -0700</creation_ts>
          <short_desc>Clean up register naming</short_desc>
          <delta_ts>2015-09-04 04:27:07 -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>WebKit 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>
          <dependson>148795</dependson>
          <blocked>148661</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basile Clement">basile_clement</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>basile_clement</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1122363</commentid>
    <comment_count>0</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 16:58:44 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122376</commentid>
    <comment_count>1</comment_count>
      <attachid>260338</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 17:11:17 -0700</bug_when>
    <thetext>Created attachment 260338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122399</commentid>
    <comment_count>2</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 17:59:32 -0700</bug_when>
    <thetext>*** Bug 147640 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122436</commentid>
    <comment_count>3</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 18:30:08 -0700</bug_when>
    <thetext>Running benchmarks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122559</commentid>
    <comment_count>4</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-09-01 10:00:55 -0700</bug_when>
    <thetext>Benchmark is essentially neutral.

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Basiles-Mac-Pro (MacPro6,1).

VMs tested:
&quot;Conf#1&quot; at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc
&quot;Conf#2&quot; at /Volumes/Data/secondary/OpenSource/WebKitBuild/renaming/Release/jsc

Collected 6 samples per benchmark/VM, with 6 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.

                                                          Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                            6.1803+-0.0883     ?      6.2454+-0.0816        ? might be 1.0105x slower
   3d-morph                                           6.2020+-0.0639     ?      6.2222+-0.2352        ?
   3d-raytrace                                        6.8086+-0.3350            6.7476+-0.0573        
   access-binary-trees                                2.3643+-0.0248     ?      2.4450+-0.0712        ? might be 1.0341x slower
   access-fannkuch                                    6.4820+-0.0531     ?      6.5900+-0.1325        ? might be 1.0167x slower
   access-nbody                                       3.1449+-0.0467            3.1318+-0.0386        
   access-nsieve                                      3.7629+-0.0817            3.7503+-0.0586        
   bitops-3bit-bits-in-byte                           1.8874+-0.0220     ^      1.4874+-0.0282        ^ definitely 1.2689x faster
   bitops-bits-in-byte                                3.8745+-0.0326     !      3.9566+-0.0350        ! definitely 1.0212x slower
   bitops-bitwise-and                                 2.3499+-0.0409     ?      2.3602+-0.0415        ?
   bitops-nsieve-bits                                 3.4457+-0.0768     ?      3.5519+-0.2908        ? might be 1.0308x slower
   controlflow-recursive                              2.4811+-0.1079     ?      2.5166+-0.0728        ? might be 1.0143x slower
   crypto-aes                                         4.9155+-0.1674            4.8021+-0.0580          might be 1.0236x faster
   crypto-md5                                         2.9591+-0.1287            2.8912+-0.0475          might be 1.0235x faster
   crypto-sha1                                        2.8880+-0.0664            2.8062+-0.1118          might be 1.0291x faster
   date-format-tofte                                 10.1961+-0.1396     ?     10.3704+-0.3585        ? might be 1.0171x slower
   date-format-xparb                                  5.5346+-0.1254     ?      5.6873+-0.1328        ? might be 1.0276x slower
   math-cordic                                        3.3462+-0.0462     ^      3.2379+-0.0279        ^ definitely 1.0334x faster
   math-partial-sums                                  6.2380+-0.3112            6.1801+-0.1566        
   math-spectral-norm                                 2.2332+-0.0550            2.2312+-0.0467        
   regexp-dna                                         7.6477+-0.1258     ?      7.7034+-0.1658        ?
   string-base64                                      4.8530+-0.0788            4.8333+-0.0802        
   string-fasta                                       6.7435+-0.0640            6.6908+-0.0749        
   string-tagcloud                                    9.6526+-0.1452            9.6384+-0.1428        
   string-unpack-code                                21.4602+-0.5428           21.3922+-0.4477        
   string-validate-input                              5.1482+-0.1491            5.1355+-0.1315        

   &lt;arithmetic&gt;                                       5.4923+-0.0351            5.4848+-0.0173          might be 1.0014x faster

                                                          Conf#1                    Conf#2                                      
LongSpider:
   3d-cube                                          920.9366+-10.6781         914.7239+-9.7232        
   3d-morph                                        1613.6661+-1.6156         1613.3217+-1.5577        
   3d-raytrace                                      724.1838+-2.7736          723.4377+-4.4823        
   access-binary-trees                              988.6160+-2.5309     ?    989.5280+-4.2783        ?
   access-fannkuch                                  362.0640+-5.6571          358.1241+-1.7842          might be 1.0110x faster
   access-nbody                                     620.9487+-0.7472          618.7581+-2.9151        
   access-nsieve                                    450.5928+-3.4098          448.7115+-3.7530        
   bitops-3bit-bits-in-byte                          49.0084+-0.2476     ^     42.3125+-0.6151        ^ definitely 1.1582x faster
   bitops-bits-in-byte                               95.9672+-1.6036           95.1195+-1.0238        
   bitops-nsieve-bits                               455.5458+-1.6891          455.4846+-2.9150        
   controlflow-recursive                            473.9130+-0.3432     ?    483.0140+-12.0485       ? might be 1.0192x slower
   crypto-aes                                       685.9493+-2.6761     !    703.7311+-11.1374       ! definitely 1.0259x slower
   crypto-md5                                       563.0445+-2.9782     ?    563.9762+-2.4571        ?
   crypto-sha1                                      725.2316+-6.4427     ?    727.8984+-11.0502       ?
   date-format-tofte                                764.2182+-12.3451         757.8718+-9.4887        
   date-format-xparb                                855.3398+-24.8191    ?    887.1689+-26.7272       ? might be 1.0372x slower
   hash-map                                         176.2868+-2.3723          176.2202+-0.4724        
   math-cordic                                      566.2535+-7.8937     ?    569.5494+-7.0272        ?
   math-partial-sums                                578.8940+-3.4062     ?    579.7620+-0.6503        ?
   math-spectral-norm                               599.2786+-2.7567          595.9735+-1.6545        
   string-base64                                    402.1124+-7.4449     ?    404.8613+-1.5523        ?
   string-fasta                                     420.6788+-2.3728     ?    423.7252+-2.2371        ?
   string-tagcloud                                  209.1170+-0.9694     ?    211.8248+-5.1832        ? might be 1.0129x slower

   &lt;geometric&gt;                                      466.7774+-0.5657     ^    465.2468+-0.7964        ^ definitely 1.0033x faster

                                                          Conf#1                    Conf#2                                      
V8Spider:
   crypto                                            59.9931+-0.2877     ?     60.3082+-1.1357        ?
   deltablue                                         83.2710+-1.4371     ^     80.8064+-0.7762        ^ definitely 1.0305x faster
   earley-boyer                                      48.5975+-0.4281     ?     48.6149+-0.4610        ?
   raytrace                                          35.7158+-0.8417           34.8602+-0.5564          might be 1.0245x faster
   regexp                                            77.2977+-1.5018     ?     77.9064+-1.4620        ?
   richards                                          80.7983+-1.5278           80.1919+-0.6352        
   splay                                             40.8701+-1.4312           40.7148+-2.1797        

   &lt;geometric&gt;                                       58.0122+-0.4402           57.5783+-0.5649          might be 1.0075x faster

                                                          Conf#1                    Conf#2                                      
Octane:
   encrypt                                           0.23633+-0.01086    ?     0.23975+-0.00869       ? might be 1.0145x slower
   decrypt                                           3.88052+-0.00757    ?     3.88515+-0.00980       ?
   deltablue                                x2       0.19752+-0.00395          0.19566+-0.00145       
   earley                                            0.36011+-0.00348          0.35933+-0.00205       
   boyer                                             5.26181+-0.01076          5.24689+-0.01049       
   navier-stokes                            x2       5.41033+-0.00443          5.40992+-0.00894       
   raytrace                                 x2       1.27531+-0.03372          1.25425+-0.03579         might be 1.0168x faster
   richards                                 x2       0.12820+-0.00219          0.12815+-0.00192       
   splay                                    x2       0.38373+-0.00201          0.38369+-0.00237       
   regexp                                   x2      28.37347+-0.14685         28.32821+-0.19024       
   pdfjs                                    x2      44.51061+-0.11956    ?    44.85676+-0.52413       ?
   mandreel                                 x2      54.16066+-0.23775    ?    54.34104+-0.30740       ?
   gbemu                                    x2      46.09097+-2.16532         45.17813+-0.40022         might be 1.0202x faster
   closure                                           0.73722+-0.00304    ?     0.74241+-0.00426       ?
   jquery                                            9.48213+-0.06841    ?     9.51682+-0.02593       ?
   box2d                                    x2      13.25117+-0.08383    ?    13.27029+-0.04766       ?
   zlib                                     x2     430.28932+-1.76949    ?   431.84633+-1.92878       ?
   typescript                               x2     885.50822+-27.86961   ?   893.96781+-12.61653      ?

   &lt;geometric&gt;                                       6.88606+-0.02098          6.88110+-0.01354         might be 1.0007x faster

                                                          Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                          290.869+-6.391            290.393+-3.735         
   audio-beat-detection                               61.695+-0.590             61.526+-0.536         
   audio-dft                                         111.382+-0.253            110.921+-0.338         
   audio-fft                                          41.714+-0.384      !      42.323+-0.103         ! definitely 1.0146x slower
   audio-oscillator                                   74.859+-0.246      ?      75.653+-1.571         ? might be 1.0106x slower
   imaging-darkroom                                   72.831+-0.628      ?      73.100+-0.907         ?
   imaging-desaturate                                 66.227+-0.434             65.965+-0.346         
   imaging-gaussian-blur                             111.815+-1.889      ?     113.004+-0.482         ? might be 1.0106x slower
   json-parse-financial                               48.434+-0.391             48.086+-0.251         
   json-stringify-tinderbox                           29.188+-0.134      ?      29.335+-0.905         ?
   stanford-crypto-aes                                50.031+-1.307             49.430+-1.266           might be 1.0122x faster
   stanford-crypto-ccm                                45.185+-0.789      ?      45.796+-1.694         ? might be 1.0135x slower
   stanford-crypto-pbkdf2                            109.951+-1.252            109.427+-1.078         
   stanford-crypto-sha256-iterative                   44.187+-0.222      ?      44.207+-0.343         ?

   &lt;arithmetic&gt;                                       82.741+-0.473      ?      82.797+-0.419         ? might be 1.0007x slower

                                                          Conf#1                    Conf#2                                      
JSRegress:
   abc-forward-loop-equal                            48.6871+-0.1831           48.4660+-0.1542        
   abc-postfix-backward-loop                         48.1849+-0.1184           48.1737+-0.1547        
   abc-simple-backward-loop                          47.9210+-0.0908           47.8554+-0.0635        
   abc-simple-forward-loop                           48.0440+-0.0665     ?     48.4696+-1.3082        ?
   abc-skippy-loop                                   33.0291+-0.0822     ?     33.2375+-0.2844        ?
   abs-boolean                                        2.9062+-0.0301     ?      2.9310+-0.0243        ?
   adapt-to-double-divide                            17.7393+-0.8131           17.7389+-0.2549        
   aliased-arguments-getbyval                         1.5161+-0.0732            1.5090+-0.1029        
   allocate-big-object                                2.7454+-0.0336            2.7271+-0.0745        
   arguments-named-and-reflective                    11.5020+-0.2372           11.4733+-0.2145        
   arguments-out-of-bounds                           13.0314+-0.1817           12.8851+-0.2108          might be 1.0113x faster
   arguments-strict-mode                             10.3147+-0.3322     ?     11.0665+-0.9855        ? might be 1.0729x slower
   arguments                                          9.1823+-0.2051     ?      9.1884+-0.1682        ?
   arity-mismatch-inlining                            1.0869+-0.0311     ?      1.0983+-0.0691        ? might be 1.0105x slower
   array-access-polymorphic-structure                 6.2168+-0.0801     ?      6.3824+-0.2718        ? might be 1.0266x slower
   array-nonarray-polymorhpic-access                 32.3904+-0.4286     ?     32.7919+-0.6253        ? might be 1.0124x slower
   array-prototype-every                             89.6169+-6.7116           85.6220+-0.4393          might be 1.0467x faster
   array-prototype-forEach                           85.1159+-0.3197     ?     85.4098+-1.5506        ?
   array-prototype-map                               94.0159+-0.2401     !     95.7259+-0.9362        ! definitely 1.0182x slower
   array-prototype-reduce                            82.6893+-0.1431     ^     82.0469+-0.1568        ^ definitely 1.0078x faster
   array-prototype-reduceRight                       82.7384+-0.1837     ^     82.2424+-0.1405        ^ definitely 1.0060x faster
   array-prototype-some                              87.8900+-0.7910           86.2569+-1.0744          might be 1.0189x faster
   array-splice-contiguous                           27.6078+-0.2359     ?     27.6448+-0.2920        ?
   array-with-double-add                              4.6398+-0.0389            4.5682+-0.3291          might be 1.0157x faster
   array-with-double-increment                        3.4966+-0.0156     !      3.5466+-0.0313        ! definitely 1.0143x slower
   array-with-double-mul-add                          5.3328+-0.0548     ?      5.4110+-0.0428        ? might be 1.0147x slower
   array-with-double-sum                              3.5500+-0.0435     ?      3.6236+-0.1304        ? might be 1.0207x slower
   array-with-int32-add-sub                           7.5054+-0.1246            7.2719+-0.1463          might be 1.0321x faster
   array-with-int32-or-double-sum                     3.6806+-0.1166            3.6259+-0.0169          might be 1.0151x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     33.0251+-2.4606           31.8805+-0.8478          might be 1.0359x faster
   ArrayBuffer-DataView-alloc-long-lived             13.7525+-1.3962           13.1783+-0.2645          might be 1.0436x faster
   ArrayBuffer-Int32Array-byteOffset                  4.0346+-0.0434     ?      4.0636+-0.0458        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     33.5280+-2.3664           31.9485+-0.4119          might be 1.0494x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     23.4718+-1.4227     ^     21.7290+-0.2756        ^ definitely 1.0802x faster
   ArrayBuffer-Int8Array-alloc-long-lived            13.8389+-0.5581           12.9054+-0.4301          might be 1.0723x faster
   ArrayBuffer-Int8Array-alloc                       11.4085+-1.1879           10.5717+-0.1663          might be 1.0792x faster
   arrowfunction-call                                12.1700+-0.2062     ?     12.2376+-0.3918        ?
   asmjs_bool_bug                                     7.8395+-0.0526     ?      8.0243+-0.4678        ? might be 1.0236x slower
   assign-custom-setter-polymorphic                   3.0978+-0.0419     !      3.2769+-0.1365        ! definitely 1.0578x slower
   assign-custom-setter                               4.2996+-0.0868     ?      4.3214+-0.1180        ?
   basic-set                                          9.3704+-0.1529            9.2699+-0.1874          might be 1.0108x faster
   big-int-mul                                        4.3016+-0.0679     ?      4.3487+-0.1478        ? might be 1.0110x slower
   boolean-test                                       3.4085+-0.1221            3.4010+-0.0988        
   branch-fold                                        4.2192+-0.2461            4.1838+-0.0439        
   branch-on-string-as-boolean                       20.4192+-0.5480           20.0495+-0.3125          might be 1.0184x faster
   by-val-generic                                     2.6318+-0.0771     ?      2.6693+-0.0480        ? might be 1.0142x slower
   call-spread-apply                                 31.0333+-0.7132     ?     31.6262+-1.4596        ? might be 1.0191x slower
   call-spread-call                                  25.0328+-0.2723     ?     25.3890+-1.2793        ? might be 1.0142x slower
   captured-assignments                               0.6892+-0.0203            0.6619+-0.0492          might be 1.0412x faster
   cast-int-to-double                                 5.7723+-0.1477            5.7493+-0.0702        
   cell-argument                                      7.8550+-0.3349            7.7916+-0.2048        
   cfg-simplify                                       3.0133+-0.0161     ?      3.0379+-0.0525        ?
   chain-getter-access                                9.4408+-0.0486            9.4296+-0.2037        
   cmpeq-obj-to-obj-other                            11.6333+-0.2762           11.5562+-0.1731        
   constant-test                                      5.4575+-0.1072     ?      5.4598+-0.1296        ?
   create-lots-of-functions                          11.4734+-0.5551           11.2404+-0.2259          might be 1.0207x faster
   cse-new-array-buffer                               2.3500+-0.0815     ?      2.3601+-0.0646        ?
   cse-new-array                                      2.5502+-0.0750            2.4250+-0.0773          might be 1.0516x faster
   DataView-custom-properties                        37.9970+-0.7310           37.2827+-0.3270          might be 1.0192x faster
   delay-tear-off-arguments-strictmode               14.0969+-0.3058     ?     14.1839+-0.3528        ?
   deltablue-varargs                                225.4709+-5.5784          222.5235+-3.1133          might be 1.0132x faster
   destructuring-arguments                          182.5571+-2.3747     ?    186.2459+-6.5108        ? might be 1.0202x slower
   destructuring-parameters-overridden-by-function   
                                                      0.7055+-0.0221            0.6936+-0.0266          might be 1.0171x faster
   destructuring-swap                                 5.5565+-0.0667     ?      5.5592+-0.0423        ?
   direct-arguments-getbyval                          1.5283+-0.0612     ?      1.5750+-0.0925        ? might be 1.0306x slower
   div-boolean-double                                 5.6053+-0.0427     ?      5.6569+-0.0634        ?
   div-boolean                                        8.4009+-0.2990            8.3731+-0.0620        
   double-get-by-val-out-of-bounds                    4.6125+-0.0804            4.5987+-0.0995        
   double-pollution-getbyval                          9.3692+-0.0434     ?      9.4930+-0.1049        ? might be 1.0132x slower
   double-pollution-putbyoffset                       4.3783+-0.1180            4.2490+-0.0892          might be 1.0304x faster
   double-real-use                                   30.6919+-0.2157           30.6577+-0.2259        
   double-to-int32-typed-array-no-inline              2.4943+-0.0397     ?      2.5466+-0.0450        ? might be 1.0210x slower
   double-to-int32-typed-array                        2.2374+-0.0538     ?      2.2494+-0.0168        ?
   double-to-uint32-typed-array-no-inline             2.6172+-0.0855            2.6073+-0.0268        
   double-to-uint32-typed-array                       2.3259+-0.0500     ?      2.4205+-0.1054        ? might be 1.0407x slower
   elidable-new-object-dag                           41.0552+-0.4030           40.6425+-0.8230          might be 1.0102x faster
   elidable-new-object-roflcopter                    41.0571+-0.3162     ?     41.3298+-0.9108        ?
   elidable-new-object-then-call                     38.3821+-0.6981     ?     38.6049+-0.3711        ?
   elidable-new-object-tree                          44.6273+-0.5232     ?     44.7926+-0.2138        ?
   empty-string-plus-int                              5.4586+-0.1805            5.3965+-0.0332          might be 1.0115x faster
   emscripten-cube2hash                              40.2443+-0.1336     ?     40.8027+-0.6133        ? might be 1.0139x slower
   exit-length-on-plain-object                       13.8134+-0.2661           13.7546+-0.4091        
   external-arguments-getbyval                        1.4749+-0.0918            1.4486+-0.1283          might be 1.0181x faster
   external-arguments-putbyval                        2.5111+-0.0173     ?      2.5330+-0.0425        ?
   fixed-typed-array-storage-var-index                1.5311+-0.0688            1.4790+-0.0443          might be 1.0352x faster
   fixed-typed-array-storage                          1.0950+-0.0264     ?      1.1132+-0.0467        ? might be 1.0166x slower
   Float32Array-matrix-mult                           4.7665+-0.0849            4.7485+-0.0209        
   Float32Array-to-Float64Array-set                  55.1646+-0.1867     ?     55.9315+-2.8570        ? might be 1.0139x slower
   Float64Array-alloc-long-lived                     70.4762+-0.2473     !     71.3833+-0.2986        ! definitely 1.0129x slower
   Float64Array-to-Int16Array-set                    73.2713+-0.6197     !     77.0726+-0.3513        ! definitely 1.0519x slower
   fold-double-to-int                                15.4609+-0.8196           15.0073+-0.2837          might be 1.0302x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.0960+-0.1256            9.9704+-0.2036          might be 1.0126x faster
   fold-get-by-id-to-multi-get-by-offset              8.8003+-0.2153            8.6115+-0.1755          might be 1.0219x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.2017+-0.0639            7.9917+-0.3564          might be 1.0263x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.0863+-0.0570            7.9047+-0.3640          might be 1.0230x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.1291+-0.0799            6.8052+-0.3744          might be 1.0476x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.4173+-0.2676     ?      5.5109+-0.2599        ? might be 1.0173x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.5741+-0.3010           10.3269+-0.4539          might be 1.0239x faster
   fold-put-by-id-to-multi-put-by-offset              8.0251+-0.3763            7.9914+-0.3421        
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                      8.1880+-0.2946            8.1053+-0.3422          might be 1.0102x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                      7.9732+-0.0534     !      8.3794+-0.3498        ! definitely 1.0509x slower
   fold-put-structure                                 5.3920+-0.0433     !      5.6015+-0.0554        ! definitely 1.0389x slower
   for-of-iterate-array-entries                      12.6036+-0.2758     ?     12.6086+-0.2981        ?
   for-of-iterate-array-keys                          3.9045+-0.0674     ?      3.9124+-0.0869        ?
   for-of-iterate-array-values                        3.9079+-0.1632     ?      3.9580+-0.1717        ? might be 1.0128x slower
   fround                                            19.0183+-0.8985     ?     19.1611+-0.3995        ?
   ftl-library-inlining-dataview                     68.6143+-0.4569           67.9126+-0.5084          might be 1.0103x faster
   ftl-library-inlining                             112.1084+-0.0597          105.7408+-16.7446         might be 1.0602x faster
   function-call                                     12.2318+-0.1510     ?     12.2345+-0.1913        ?
   function-dot-apply                                 2.4715+-0.0298            2.4548+-0.0293        
   function-test                                      3.1510+-0.0739            3.0997+-0.0231          might be 1.0165x faster
   function-with-eval                               114.7926+-0.4004     ?    118.4874+-8.1408        ? might be 1.0322x slower
   gcse-poly-get-less-obvious                        20.2936+-1.2114           19.4344+-0.8694          might be 1.0442x faster
   gcse-poly-get                                     25.7075+-2.7268           24.3786+-1.7107          might be 1.0545x faster
   gcse                                               4.6423+-0.0327     ?      4.7800+-0.2592        ? might be 1.0297x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.0140+-0.0541            2.9815+-0.0246          might be 1.0109x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.4750+-0.0857     ?      6.5177+-0.3074        ?
   get-by-id-chain-from-try-block                     6.0493+-0.1537            5.9624+-0.0406          might be 1.0146x faster
   get-by-id-check-structure-elimination              5.5063+-0.2665            5.4602+-0.0389        
   get-by-id-proto-or-self                           19.1534+-1.2020           18.4253+-0.9971          might be 1.0395x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.2213+-0.0321     ?      3.2351+-0.0629        ?
   get-by-id-self-or-proto                           18.5682+-0.7821     ?     19.1762+-2.0111        ? might be 1.0327x slower
   get-by-val-out-of-bounds                           4.4060+-0.0843     ?      4.4686+-0.0881        ? might be 1.0142x slower
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      3.0751+-0.0220     !      3.4519+-0.0197        ! definitely 1.1225x slower
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      7.1195+-0.0567            7.0190+-0.1239          might be 1.0143x faster
   get-by-val-with-string-chain-from-try-block   
                                                      5.9764+-0.0312     ?      5.9983+-0.0626        ?
   get-by-val-with-string-check-structure-elimination   
                                                      6.4311+-0.0950     ?      6.5940+-0.3848        ? might be 1.0253x slower
   get-by-val-with-string-proto-or-self              18.5036+-0.9899           18.3440+-1.0440        
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.8420+-0.0864     ?      3.8654+-0.0448        ?
   get-by-val-with-string-self-or-proto              19.1287+-1.3340           19.1094+-2.0229        
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.4798+-0.0299     !      4.2182+-0.2946        ! definitely 1.2122x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     14.6294+-0.1778     ?     14.7766+-0.2416        ? might be 1.0101x slower
   get-by-val-with-symbol-chain-from-try-block   
                                                      6.1475+-0.3822            6.0752+-0.1649          might be 1.0119x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     13.8618+-0.2037     ^     13.4135+-0.1203        ^ definitely 1.0334x faster
   get-by-val-with-symbol-proto-or-self              19.8185+-2.6186           19.6434+-2.5590        
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      4.7683+-0.1304            4.6206+-0.1380          might be 1.0320x faster
   get-by-val-with-symbol-self-or-proto              20.1013+-1.6871           18.8585+-0.8553          might be 1.0659x faster
   get_callee_monomorphic                             2.5536+-0.0784     ?      2.6715+-0.0782        ? might be 1.0462x slower
   get_callee_polymorphic                             3.4460+-0.0176     ?      3.5277+-0.0994        ? might be 1.0237x slower
   getter-no-activation                               5.5785+-0.0497     ?      5.6043+-0.0693        ?
   getter-prototype                                  13.3247+-0.1345     ?     13.3753+-0.2164        ?
   getter-richards                                  106.7201+-1.0695     ?    106.8978+-2.1357        ?
   getter                                             5.9958+-0.0598     ?      6.1035+-0.0970        ? might be 1.0180x slower
   global-object-access-with-mutating-structure   
                                                      6.6476+-0.1128     ?      6.7054+-0.1473        ?
   global-var-const-infer-fire-from-opt               1.0636+-0.1136     ?      1.0866+-0.1049        ? might be 1.0216x slower
   global-var-const-infer                             0.8335+-0.0313            0.8294+-0.0532        
   hard-overflow-check-equal                         53.0844+-0.1766           53.0045+-0.4082        
   hard-overflow-check                               52.8820+-0.4270           52.7854+-0.0943        
   HashMap-put-get-iterate-keys                      27.3002+-0.0977           27.2170+-0.1959        
   HashMap-put-get-iterate                           26.8893+-0.1382           26.8730+-0.4530        
   HashMap-string-put-get-iterate                    29.3212+-0.3037           29.3182+-0.4039        
   hoist-make-rope                                    9.8360+-0.1367     ?      9.9393+-0.2771        ? might be 1.0105x slower
   hoist-poly-check-structure-effectful-loop   
                                                      5.4407+-0.1177            5.4090+-0.1374        
   hoist-poly-check-structure                         3.9137+-0.0402            3.9095+-0.0279        
   imul-double-only                                   8.4582+-0.6025     ?      8.5499+-0.6605        ? might be 1.0108x slower
   imul-int-only                                      8.6844+-0.2596     ?      8.7053+-0.1204        ?
   imul-mixed                                         7.6092+-0.1158     ?      7.7386+-0.3348        ? might be 1.0170x slower
   in-four-cases                                     23.9077+-1.0133     ?     24.2448+-0.5004        ? might be 1.0141x slower
   in-one-case-false                                 11.9647+-0.1001           11.7803+-0.1646          might be 1.0157x faster
   in-one-case-true                                  11.9571+-0.1110           11.7260+-0.1357          might be 1.0197x faster
   in-two-cases                                      12.2520+-0.0554     ^     11.9880+-0.1564        ^ definitely 1.0220x faster
   indexed-properties-in-objects                      3.1652+-0.0357     ?      3.1913+-0.0282        ?
   infer-closure-const-then-mov-no-inline             4.2083+-0.0771            4.0637+-0.1486          might be 1.0356x faster
   infer-closure-const-then-mov                      20.9390+-0.4647     ?     21.2078+-0.3913        ? might be 1.0128x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.5847+-0.1234     ?     12.6608+-0.1240        ?
   infer-closure-const-then-put-to-scope             22.3500+-0.5195     ?     22.7073+-0.7696        ? might be 1.0160x slower
   infer-closure-const-then-reenter-no-inline   
                                                     59.0826+-0.1434     ?     59.2074+-0.2370        ?
   infer-closure-const-then-reenter                  22.6258+-0.3866     ?     23.4200+-1.0217        ? might be 1.0351x slower
   infer-constant-global-property                     3.8146+-0.0678            3.8061+-0.0533        
   infer-constant-property                            2.9333+-0.0323     ?      2.9499+-0.0156        ?
   infer-one-time-closure-ten-vars                   10.4072+-0.1444     ?     10.5232+-0.2263        ? might be 1.0111x slower
   infer-one-time-closure-two-vars                   10.0497+-0.2974     ?     10.1193+-0.4896        ?
   infer-one-time-closure                             9.8833+-0.2098            9.8219+-0.6806        
   infer-one-time-deep-closure                       16.2496+-0.4435     ?     16.3518+-0.3916        ?
   inline-arguments-access                            4.2627+-0.4490     ?      4.2974+-0.3416        ?
   inline-arguments-aliased-access                    4.0841+-0.0578     ?      4.1469+-0.1303        ? might be 1.0154x slower
   inline-arguments-local-escape                      3.9924+-0.0522     ?      4.1375+-0.1448        ? might be 1.0363x slower
   inline-get-scoped-var                              5.4323+-0.0827     ?      5.4892+-0.0751        ? might be 1.0105x slower
   inlined-put-by-id-transition                      11.6608+-0.3494     ?     12.0904+-0.3269        ? might be 1.0368x slower
   inlined-put-by-val-with-string-transition   
                                                     82.8212+-4.5718           80.1257+-1.3787          might be 1.0336x faster
   inlined-put-by-val-with-symbol-transition   
                                                     78.6553+-1.9964           77.5480+-0.6823          might be 1.0143x faster
   int-or-other-abs-then-get-by-val                   5.4140+-0.0741     ^      4.7396+-0.0341        ^ definitely 1.1423x faster
   int-or-other-abs-zero-then-get-by-val             17.9989+-0.3081     ?     18.5265+-0.7734        ? might be 1.0293x slower
   int-or-other-add-then-get-by-val                   4.6664+-0.0410            4.6473+-0.0279        
   int-or-other-add                                   5.8536+-0.1020     ?      5.9113+-0.1476        ?
   int-or-other-div-then-get-by-val                   4.6166+-0.0402            4.4436+-0.1860          might be 1.0389x faster
   int-or-other-max-then-get-by-val                   4.7115+-0.1454     ^      4.4638+-0.0955        ^ definitely 1.0555x faster
   int-or-other-min-then-get-by-val                   4.6779+-0.0610     ^      4.5103+-0.0965        ^ definitely 1.0372x faster
   int-or-other-mod-then-get-by-val                   4.2941+-0.0507            4.2498+-0.0839          might be 1.0104x faster
   int-or-other-mul-then-get-by-val                   4.2856+-0.0302     ^      4.1623+-0.0611        ^ definitely 1.0296x faster
   int-or-other-neg-then-get-by-val                   5.2530+-0.1235     ^      4.3827+-0.0692        ^ definitely 1.1986x faster
   int-or-other-neg-zero-then-get-by-val             18.2407+-0.3732           18.0059+-0.2680          might be 1.0130x faster
   int-or-other-sub-then-get-by-val                   4.7116+-0.0428            4.6920+-0.1014        
   int-or-other-sub                                   3.9274+-0.0681            3.8392+-0.1509          might be 1.0230x faster
   int-overflow-local                                 4.8022+-0.0574            4.7782+-0.0173        
   Int16Array-alloc-long-lived                       50.4648+-1.3336           49.9382+-0.2426          might be 1.0105x faster
   Int16Array-bubble-sort-with-byteLength            21.5503+-0.5172           21.2321+-0.3708          might be 1.0150x faster
   Int16Array-bubble-sort                            21.6483+-0.7593           21.1093+-0.2276          might be 1.0255x faster
   Int16Array-load-int-mul                            1.7865+-0.0246            1.7631+-0.0425          might be 1.0133x faster
   Int16Array-to-Int32Array-set                      53.0498+-0.1050     !     53.9540+-0.1053        ! definitely 1.0170x slower
   Int32Array-alloc-large                            20.9789+-0.3290           20.8208+-0.2531        
   Int32Array-alloc-long-lived                       56.3547+-0.4924     ?     56.4373+-0.4260        ?
   Int32Array-alloc                                   2.7631+-0.0437            2.7495+-0.0555        
   Int32Array-Int8Array-view-alloc                    6.5028+-0.0461     ?      6.5521+-0.1113        ?
   int52-spill                                        5.8068+-0.0603     ?      5.8143+-0.1669        ?
   Int8Array-alloc-long-lived                        44.4146+-1.2599           44.3546+-1.2693        
   Int8Array-load-with-byteLength                     3.6580+-0.0348            3.6430+-0.0321        
   Int8Array-load                                     3.6784+-0.0413     ?      3.6875+-0.0640        ?
   integer-divide                                    12.2005+-0.3117           11.9461+-0.2116          might be 1.0213x faster
   integer-modulo                                     2.1831+-0.0253     ?      2.1915+-0.0741        ?
   is-boolean-fold-tricky                             4.8064+-0.2260            4.7336+-0.0512          might be 1.0154x faster
   is-boolean-fold                                    3.1016+-0.0276     ?      3.1036+-0.1360        ?
   is-function-fold-tricky-internal-function   
                                                     12.2829+-0.1054           12.2509+-0.2657        
   is-function-fold-tricky                            4.8793+-0.0504     ?      4.8919+-0.0880        ?
   is-function-fold                                   3.1201+-0.0533            3.0857+-0.0602          might be 1.0111x faster
   is-number-fold-tricky                              4.7328+-0.0354     ?      4.7917+-0.1323        ? might be 1.0124x slower
   is-number-fold                                     3.1394+-0.0665            3.1104+-0.0966        
   is-object-or-null-fold-functions                   3.2507+-0.0716            3.1997+-0.1185          might be 1.0159x faster
   is-object-or-null-fold-less-tricky                 4.9262+-0.0953            4.9012+-0.0724        
   is-object-or-null-fold-tricky                      7.1240+-0.0879            7.0551+-0.0890        
   is-object-or-null-fold                             3.1297+-0.1314            3.0811+-0.0334          might be 1.0158x faster
   is-object-or-null-trickier-function                4.9572+-0.0434     ?      5.0643+-0.2409        ? might be 1.0216x slower
   is-object-or-null-trickier-internal-function   
                                                     13.2314+-0.2649           13.2268+-0.2560        
   is-object-or-null-tricky-function                  4.9360+-0.0481     ?      4.9957+-0.1011        ? might be 1.0121x slower
   is-object-or-null-tricky-internal-function   
                                                      9.8223+-0.0853     ?      9.8934+-0.2418        ?
   is-string-fold-tricky                              4.9629+-0.3946            4.7315+-0.0416          might be 1.0489x faster
   is-string-fold                                     3.0536+-0.0597            3.0535+-0.0265        
   is-undefined-fold-tricky                           3.9840+-0.0660     ?      4.0122+-0.1068        ?
   is-undefined-fold                                  3.0908+-0.1089     ?      3.1464+-0.0840        ? might be 1.0180x slower
   JSONP-negative-0                                   0.4170+-0.0131            0.4027+-0.0263          might be 1.0356x faster
   large-int-captured                                 4.3758+-0.1301            4.3477+-0.0300        
   large-int-neg                                     16.4283+-0.3083     ?     16.6324+-0.3116        ? might be 1.0124x slower
   large-int                                         14.5924+-0.1792     ?     14.8690+-0.2743        ? might be 1.0190x slower
   load-varargs-elimination                          24.7035+-0.5337     ?     24.7319+-0.4526        ?
   logical-not-weird-types                            3.4798+-0.0423     ?      3.5491+-0.0438        ? might be 1.0199x slower
   logical-not                                        4.9325+-0.0561            4.9197+-0.0513        
   lots-of-fields                                    12.9653+-0.1367     ?     13.1405+-0.4704        ? might be 1.0135x slower
   make-indexed-storage                               3.1593+-0.3325     ?      3.2315+-0.0841        ? might be 1.0229x slower
   make-rope-cse                                      3.7110+-0.0438            3.6962+-0.0878        
   marsaglia-larger-ints                             41.3318+-0.1102     ?     41.6445+-0.6262        ?
   marsaglia-osr-entry                               23.3322+-0.2297           23.3068+-0.4874        
   math-with-out-of-bounds-array-values              25.3486+-0.2925     ?     25.7757+-0.6900        ? might be 1.0168x slower
   max-boolean                                        2.7752+-0.1013            2.7721+-0.0602        
   method-on-number                                  17.8826+-0.2452     ?     17.8903+-0.2652        ?
   min-boolean                                        2.7795+-0.0330     ?      2.7958+-0.0662        ?
   minus-boolean-double                               3.5109+-0.1429     ?      3.5420+-0.1490        ?
   minus-boolean                                      2.6117+-0.0158     ^      2.5597+-0.0328        ^ definitely 1.0203x faster
   misc-strict-eq                                    35.0623+-0.9929           33.8311+-1.7372          might be 1.0364x faster
   mod-boolean-double                                11.5221+-0.1152     ?     11.5548+-0.1023        ?
   mod-boolean                                        8.3394+-0.0609            8.3344+-0.0772        
   mul-boolean-double                                 4.0280+-0.1125            4.0186+-0.0810        
   mul-boolean                                        3.2235+-0.1290            3.1485+-0.0235          might be 1.0238x faster
   neg-boolean                                        3.4644+-0.0650     ?      3.5047+-0.1160        ? might be 1.0116x slower
   negative-zero-divide                               0.5179+-0.0275     ?      0.5225+-0.0256        ?
   negative-zero-modulo                               0.5276+-0.0191     ?      0.5343+-0.0068        ? might be 1.0128x slower
   negative-zero-negate                               0.5010+-0.0136     ?      0.5089+-0.0086        ? might be 1.0157x slower
   nested-function-parsing                           52.3598+-0.8906     ?     52.5869+-0.4430        ?
   new-array-buffer-dead                            106.0827+-0.5082          106.0503+-0.3468        
   new-array-buffer-push                              6.8017+-0.4130            6.5142+-0.0634          might be 1.0441x faster
   new-array-dead                                    19.1299+-1.1183     ?     20.1821+-0.7169        ? might be 1.0550x slower
   new-array-push                                     3.8997+-0.1318     ?      3.9367+-0.1724        ?
   no-inline-constructor                             37.3277+-0.4324           37.0943+-0.2513        
   number-test                                        3.3469+-0.0566            3.3120+-0.0279          might be 1.0105x faster
   object-closure-call                                5.9193+-0.0715     ?      6.0272+-0.1450        ? might be 1.0182x slower
   object-get-own-property-symbols-on-large-array   
                                                      4.0247+-0.1437     ?      4.0350+-0.2187        ?
   object-test                                        3.1540+-0.0988            3.1125+-0.0971          might be 1.0133x faster
   obvious-sink-pathology-taken                     123.6047+-0.8123     ?    124.0277+-1.3611        ?
   obvious-sink-pathology                           118.7427+-3.5863          117.8487+-0.8235        
   obviously-elidable-new-object                     33.7719+-0.1777     ?     33.9040+-0.1542        ?
   plus-boolean-arith                                 2.7609+-0.0163     ?      2.7972+-0.0548        ? might be 1.0131x slower
   plus-boolean-double                                3.4572+-0.0325     ?      3.4666+-0.0357        ?
   plus-boolean                                       2.6882+-0.1453            2.6517+-0.0406          might be 1.0138x faster
   poly-chain-access-different-prototypes-simple   
                                                      4.2323+-0.0222     ?      4.2604+-0.0318        ?
   poly-chain-access-different-prototypes             3.3734+-0.0337     !      4.6241+-0.0510        ! definitely 1.3708x slower
   poly-chain-access-simpler                          4.2481+-0.0678     ?      4.2542+-0.0370        ?
   poly-chain-access                                  4.5765+-0.0604            4.5645+-0.0383        
   poly-stricteq                                     64.9372+-0.1533     !     66.9467+-0.2459        ! definitely 1.0309x slower
   polymorphic-array-call                             1.6657+-0.0505            1.6599+-0.1067        
   polymorphic-get-by-id                              3.4387+-0.0570            3.3665+-0.0278          might be 1.0214x faster
   polymorphic-put-by-id                             28.9482+-1.6996           28.8966+-1.4475        
   polymorphic-put-by-val-with-string                30.9445+-1.8100           30.3157+-1.2477          might be 1.0207x faster
   polymorphic-put-by-val-with-symbol                30.4944+-1.5573           30.2331+-1.3640        
   polymorphic-structure                             15.9507+-0.3786           15.7985+-0.1828        
   polyvariant-monomorphic-get-by-id                  9.2039+-0.0438     ?      9.2936+-0.1208        ?
   proto-getter-access                                9.4219+-0.1268     ?      9.6165+-0.3418        ? might be 1.0207x slower
   prototype-access-with-mutating-prototype           6.1851+-0.3235     ?      6.1974+-0.2287        ?
   put-by-id-replace-and-transition                   9.7784+-0.4987     ?      9.9071+-0.2935        ? might be 1.0132x slower
   put-by-id-slightly-polymorphic                     3.1328+-0.1079     ?      3.1720+-0.1278        ? might be 1.0125x slower
   put-by-id                                         12.6504+-0.1424     ?     12.8431+-0.5609        ? might be 1.0152x slower
   put-by-val-direct                                  0.5252+-0.0117     ?      0.5310+-0.0250        ? might be 1.0110x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.6178+-0.3724            5.4925+-0.0930          might be 1.0228x faster
   put-by-val-machine-int                             2.6653+-0.1510            2.5837+-0.0759          might be 1.0316x faster
   put-by-val-with-string-replace-and-transition   
                                                     13.9289+-0.1525     ?     14.1140+-0.1336        ? might be 1.0133x slower
   put-by-val-with-string-slightly-polymorphic   
                                                      3.3431+-0.0561     !      3.7863+-0.0730        ! definitely 1.1326x slower
   put-by-val-with-string                            13.4301+-0.2943           13.2775+-0.2140          might be 1.0115x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     15.1800+-0.1301     ?     15.2990+-0.3189        ?
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.9915+-0.0757            3.9642+-0.0653        
   put-by-val-with-symbol                            13.5498+-0.8390           13.3334+-0.2801          might be 1.0162x faster
   rare-osr-exit-on-local                            15.8862+-0.1890     ^     15.1859+-0.4206        ^ definitely 1.0461x faster
   register-pressure-from-osr                        22.6036+-0.1719     ?     22.7336+-0.2302        ?
   repeat-multi-get-by-offset                        24.8244+-0.5568           24.7305+-0.9714        
   setter-prototype                                   8.7048+-0.1766            8.5936+-0.2800          might be 1.0129x faster
   setter                                             6.2301+-0.0370     ?      6.3144+-0.0707        ? might be 1.0135x slower
   simple-activation-demo                            26.8207+-0.4366           26.7293+-0.8651        
   simple-getter-access                              11.9682+-0.3959           11.8553+-0.0479        
   simple-poly-call-nested                            8.4701+-0.0306     ?      8.4757+-0.0271        ?
   simple-poly-call                                   1.5545+-0.0190            1.5490+-0.0276        
   sin-boolean                                       19.6823+-0.3657           19.6367+-0.5795        
   singleton-scope                                   61.7980+-0.0922     ?     62.2336+-0.8129        ?
   sink-function                                     11.8775+-0.9395     ?     11.8803+-0.7519        ?
   sink-huge-activation                              18.3521+-0.8442     ?     18.8512+-1.4691        ? might be 1.0272x slower
   sinkable-new-object-dag                           69.8940+-0.6619     ?     70.6745+-2.4660        ? might be 1.0112x slower
   sinkable-new-object-taken                         55.3473+-0.4945     ?     56.4062+-3.2221        ? might be 1.0191x slower
   sinkable-new-object                               37.3018+-0.3453     ?     37.6871+-0.3336        ? might be 1.0103x slower
   slow-array-profile-convergence                     3.0389+-0.0619            2.9655+-0.0784          might be 1.0248x faster
   slow-convergence                                   2.8826+-0.0672     ?      2.8892+-0.1126        ?
   slow-ternaries                                    19.2428+-0.2207           19.2391+-0.1682        
   sorting-benchmark                                 20.0138+-0.1953     ?     20.0704+-0.2728        ?
   sparse-conditional                                 1.4360+-0.0290     ?      1.4533+-0.0451        ? might be 1.0120x slower
   splice-to-remove                                  15.4765+-0.2268           15.3639+-0.2814        
   string-char-code-at                               16.8338+-0.3514     ?     17.6887+-0.5734        ? might be 1.0508x slower
   string-concat-object                               2.1176+-0.0484            2.1047+-0.0167        
   string-concat-pair-object                          2.0656+-0.0220     ?      2.1192+-0.0730        ? might be 1.0259x slower
   string-concat-pair-simple                         11.8488+-0.3647     ?     12.4438+-0.8062        ? might be 1.0502x slower
   string-concat-simple                              12.2231+-0.4545     ?     12.3024+-0.2097        ?
   string-cons-repeat                                 8.1260+-0.8976            7.9490+-0.3328          might be 1.0223x faster
   string-cons-tower                                  7.8830+-0.2081            7.7932+-0.1758          might be 1.0115x faster
   string-equality                                   18.5113+-0.3973     ?     18.5504+-0.3073        ?
   string-get-by-val-big-char                         7.2764+-0.1149            7.2666+-0.0464        
   string-get-by-val-out-of-bounds-insane             3.7765+-0.0528     !      3.9115+-0.0437        ! definitely 1.0358x slower
   string-get-by-val-out-of-bounds                    5.6345+-0.0533            5.5156+-0.1585          might be 1.0216x faster
   string-get-by-val                                  3.5566+-0.0885     ?      3.5950+-0.0954        ? might be 1.0108x slower
   string-hash                                        2.3578+-0.0247     ?      2.3672+-0.0366        ?
   string-long-ident-equality                        15.3772+-0.4505     ?     15.3884+-0.1207        ?
   string-out-of-bounds                              13.6178+-0.2535           13.4259+-0.0951          might be 1.0143x faster
   string-repeat-arith                               33.1405+-0.1320     ?     33.4747+-0.5254        ? might be 1.0101x slower
   string-sub                                        67.8951+-1.5475     ^     65.3888+-0.1985        ^ definitely 1.0383x faster
   string-test                                        3.2399+-0.0353            3.2175+-0.0356        
   string-var-equality                               33.3329+-2.2251           32.6110+-0.1696          might be 1.0221x faster
   structure-hoist-over-transitions                   2.6578+-0.0893            2.6471+-0.0460        
   substring-concat-weird                            42.8455+-0.6862     ^     41.9146+-0.1694        ^ definitely 1.0222x faster
   substring-concat                                  45.4118+-0.3205     ?     45.5334+-0.1419        ?
   substring                                         49.2972+-0.0667     ?     49.4387+-0.4000        ?
   switch-char-constant                               2.9832+-0.0412     ?      3.0287+-0.0447        ? might be 1.0152x slower
   switch-char                                        6.9659+-0.0970     ?      6.9678+-0.1108        ?
   switch-constant                                    9.6410+-0.4811            9.3151+-0.5593          might be 1.0350x faster
   switch-string-basic-big-var                       19.6021+-0.2659           19.4604+-0.3104        
   switch-string-basic-big                           18.2219+-0.5769           17.8974+-0.6997          might be 1.0181x faster
   switch-string-basic-var                           15.8740+-0.2934           15.7619+-0.2776        
   switch-string-basic                               15.3014+-0.2214           15.0052+-0.4887          might be 1.0197x faster
   switch-string-big-length-tower-var                21.4449+-0.2822           21.2705+-0.2658        
   switch-string-length-tower-var                    16.1685+-0.1519           16.1250+-0.2862        
   switch-string-length-tower                        13.8331+-0.2229     ^     13.0684+-0.0525        ^ definitely 1.0585x faster
   switch-string-short                               13.7011+-0.1580     ^     13.1530+-0.1779        ^ definitely 1.0417x faster
   switch                                            13.2532+-0.3914     ^     12.5503+-0.2286        ^ definitely 1.0560x faster
   tear-off-arguments-simple                          3.2460+-0.0357     ?      3.2922+-0.1500        ? might be 1.0142x slower
   tear-off-arguments                                 4.5632+-0.0801     ?      4.5638+-0.1466        ?
   temporal-structure                                12.9555+-0.0961           12.9391+-0.1723        
   to-int32-boolean                                  14.5246+-0.1942     ?     14.7107+-0.9738        ? might be 1.0128x slower
   try-catch-get-by-val-cloned-arguments             14.5758+-0.1689     ?     14.8240+-0.1488        ? might be 1.0170x slower
   try-catch-get-by-val-direct-arguments              6.8378+-0.1844            6.8359+-0.1052        
   try-catch-get-by-val-scoped-arguments              7.9230+-0.3255     ?      8.0761+-0.7051        ? might be 1.0193x slower
   typed-array-get-set-by-val-profiling              33.1675+-0.2808           33.0987+-0.4936        
   undefined-property-access                        382.0230+-0.4944          381.9189+-0.4282        
   undefined-test                                     3.4060+-0.1057            3.3319+-0.0413          might be 1.0222x faster
   unprofiled-licm                                   21.2026+-0.7463           20.4543+-0.2987          might be 1.0366x faster
   varargs-call                                      14.9650+-0.3647     ?     15.2939+-0.6726        ? might be 1.0220x slower
   varargs-construct-inline                          27.8194+-0.0862     ^     27.2899+-0.2836        ^ definitely 1.0194x faster
   varargs-construct                                 23.0441+-0.2189     ?     23.2766+-0.1485        ? might be 1.0101x slower
   varargs-inline                                     9.3702+-0.1960            9.3498+-0.2409        
   varargs-strict-mode                               10.6371+-0.3319           10.4539+-0.1344          might be 1.0175x faster
   varargs                                           10.3340+-0.0938     ?     10.4381+-0.0966        ? might be 1.0101x slower
   weird-inlining-const-prop                          2.4308+-0.0189            2.3750+-0.0469          might be 1.0235x faster

   &lt;geometric&gt;                                        9.2830+-0.0120            9.2739+-0.0180          might be 1.0010x faster

                                                          Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                                       532.7976+-1.2376     ?    533.0817+-3.9638        ?
   cray.c                                           465.1835+-7.1045          460.2675+-2.3300          might be 1.0107x faster
   dry.c                                            523.8757+-2.9565     ?    524.7718+-5.3049        ?
   FloatMM.c                                        760.9978+-1.1333     ?    761.7770+-1.7781        ?
   gcc-loops.cpp                                   4178.0798+-21.3492        4173.8627+-15.2648       
   n-body.c                                        1036.2662+-2.9769     ?   1036.4792+-2.4905        ?
   Quicksort.c                                      444.0026+-6.1488          440.8528+-4.9008        
   stepanov_container.cpp                          3967.0333+-13.3905        3951.2995+-26.9907       
   Towers.c                                         264.6323+-3.9363     ?    265.2015+-2.1479        ?

   &lt;geometric&gt;                                      835.9512+-1.8731          834.3733+-1.6338          might be 1.0019x faster

                                                          Conf#1                    Conf#2                                      
CompressionBench:
   huffman                                           63.5225+-1.8983     ?     63.7723+-1.8753        ?
   arithmetic-simple                                353.9067+-0.6449     ?    355.8669+-5.5322        ?
   arithmetic-precise                               289.1935+-1.1819          287.1032+-1.4460        
   arithmetic-complex-precise                       289.7915+-1.5866          287.1137+-1.5234        
   arithmetic-precise-order-0                       365.9331+-0.5661     ^    363.9087+-0.7407        ^ definitely 1.0056x faster
   arithmetic-precise-order-1                       350.1360+-1.5909     ^    345.6970+-1.9114        ^ definitely 1.0128x faster
   arithmetic-precise-order-2                       413.7000+-4.4618          409.4568+-2.5856          might be 1.0104x faster
   arithmetic-simple-order-1                        416.8987+-2.0924     ?    416.9521+-1.3284        ?
   arithmetic-simple-order-2                        484.0737+-6.4208          476.2249+-1.9169          might be 1.0165x faster
   lz-string                                        315.9792+-5.4379          312.6728+-2.7904          might be 1.0106x faster

   &lt;geometric&gt;                                      302.2575+-0.8983          300.3801+-1.3410          might be 1.0063x faster

                                                          Conf#1                    Conf#2                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                                   61.2755+-0.0917     ^     61.1126+-0.0674        ^ definitely 1.0027x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122601</commentid>
    <comment_count>5</comment_count>
      <attachid>260338</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-01 11:24:23 -0700</bug_when>
    <thetext>Comment on attachment 260338
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=260338&amp;action=review

r=me

Hard to tell if this is correct just by reading, since it&apos;s mostly assembly code, but I don&apos;t see any obvious errors.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:89
&gt; +#    + On X86, there are no actualy argument registers. a0 and a1 are edx and

no actualy =&gt; no</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123183</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-09-03 15:16:26 -0700</bug_when>
    <thetext>Committed r189293: &lt;http://trac.webkit.org/changeset/189293&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260338</attachid>
            <date>2015-08-31 17:11:17 -0700</date>
            <delta_ts>2015-09-01 11:24:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>naming.patch</filename>
            <type>text/plain</type>
            <size>136931</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">Y29tbWl0IDA1ZWM2ODA2N2NiYWEwMzBiNTc2NTdhYjg1NTJiMTk4NWYxNjdkMGUKQXV0aG9yOiBi
YXNpbGVfY2xlbWVudEBhcHBsZS5jb20gPGJhc2lsZV9jbGVtZW50QGFwcGxlLmNvbUAyNjhmNDVj
Yy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmM+CkRhdGU6ICAgTW9uIEp1bCAxMyAyMzowMDoy
MiAyMDE1ICswMDAwCgogICAgQ2xlYW4gdXAgcmVnaXN0ZXIgbmFtaW5nCiAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NjU4CiAgICAKICAgIFBhdGNoIGJ5IEJh
c2lsZSBDbGVtZW50ICA8YmFzaWxlX2NsZW1lbnRAYXBwbGUuY29tPiBhbmQgTWljaGFlbCBTYWJv
ZmYgPG1zYWJvZmZAYXBwbGUuY29tPiBvbiAyMDE1LTA4LTMxCiAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KICAgIAogICAgVGhpcyBjaGFuZ2VzIHJlZ2lzdGVyIG5hbWluZyBjb252ZW50
aW9ucyBpbiB0aGUgbGxpbnQgYW5kIGJhc2VsaW5lIEpJVAogICAgaW4gb3JkZXIgdG8gdXNlIGFz
IGZldyAobmF0aXZlKSBjYWxsZWUtc2F2ZSByZWdpc3RlcnMgYXMgcG9zc2libGUgb24KICAgIDY0
LWJpdHMgcGxhdGZvcm1zLiBJdCBhbHNvIGludHJvZHVjZXMgc2lnbmlmaWNhbnQgY2hhbmdlcyBp
biB0aGUgd2F5CiAgICByZWdpc3RlcnMgbmFtZXMgYXJlIGRlZmluZWQgaW4gdGhlIExMaW50IGFu
ZCBiYXNlbGluZSBKSVQgaW4gb3JkZXIgdG8KICAgIGVuYWJsZSBhIHNpbXBsZXIgY29udmVudGlv
biBhYm91dCB3aGljaCByZWdpc3RlcnMgY2FuIGJlIGFsaWFzZWQuIFRoYXQKICAgIGNvbnZlbnRp
b24gaXMgdmFsaWQgYWNyb3NzIGFsbCBhcmNoaXRlY3R1cmUsIGFuZCBkZXNjcmliZWQgaW4KICAg
IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtLgogICAgCiAgICBDYWxsZWUgc2F2ZSByZWdp
c3RlcnMgYXJlIG5vdyBjYWxsZWQgb3V0IHJlZ0NTPG4+IChpbiB0aGUgSklUKSBvcgogICAgY3Ny
PG4+IChpbiB0aGUgTExJbnQpIHdpdGggYSBjb21tb24gbnVtYmVyaW5nIGFjcm9zcyBhbGwgdGll
cnMuIFNvbWUKICAgIHJlZ2lzdGVycyBhcmUgdW51c2VkIGluIHNvbWUgdGllcnMuCiAgICAKICAg
IEFzIGEgcGFydCBvZiB0aGlzIGNoYW5nZSwgcmRpIHdhcyByZW1vdmVkIGZyb20gdGhlIGxpc3Qg
b2YgdGVtcG9yYXJ5CiAgICByZWdpc3RlcnMgZm9yIFg4Ni02NCBXaW5kb3dzIGFzIGl0IGlzIGEg
Y2FsbGVlIHNhdmVzIHJlZ2lzdGVyLiBUaGlzCiAgICByZWR1Y2VkIHRoZSBudW1iZXIgb2YgdGVt
cG9yYXJ5IHJlZ2lzdGVycyBmb3IgWDg2LTY0IFdpbmRvd3MuCiAgICAKICAgIFRoaXMgaXMgaW4g
cHJlcGFyYXRpb24gZm9yIHByb3Blcmx5IGhhbmRsaW5nIGNhbGxlZSBzYXZlIHJlZ2lzdGVyCiAg
ICBwcmVzZXJ2YXRpb24gYW5kIHJlc3RvcmF0aW9uLgogICAgCiAgICAqIGRmZy9ERkdKSVRDb21w
aWxlci5jcHA6CiAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24pOgog
ICAgKiBmdGwvRlRMTGluay5jcHA6CiAgICAoSlNDOjpGVEw6OmxpbmspOgogICAgKiBqaXQvRlBS
SW5mby5oOgogICAgKEpTQzo6RlBSSW5mbzo6dG9SZWdpc3Rlcik6CiAgICAoSlNDOjpGUFJJbmZv
Ojp0b0luZGV4KToKICAgICogaml0L0dQUkluZm8uaDoKICAgIChKU0M6OkdQUkluZm86OnRvSW5k
ZXgpOgogICAgKEpTQzo6R1BSSW5mbzo6dG9SZWdpc3Rlcik6CiAgICAoSlNDOjpHUFJJbmZvOjpk
ZWJ1Z05hbWUpOiBEZWxldGVkLgogICAgKiBqaXQvSklULmNwcDoKICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGUpOgogICAgKiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CiAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfbW9kKToKICAgICogaml0L0pJVE9wY29kZXMuY3BwOgogICAgKEpTQzo6SklUOjpl
bWl0U2xvd19vcF9sb29wX2hpbnQpOgogICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9lbmQpOgogICAgKEpTQzo6SklUOjplbWl0X29wX25ld19vYmpl
Y3QpOgogICAgKiBqaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcDoK
ICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKICAgIChKU0M6
OmdlbmVyYXRlUmVnaXN0ZXJSZXN0b3JhdGlvbik6CiAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMu
Y3BwOgogICAgKEpTQzo6YXJpdHlGaXh1cEdlbmVyYXRvcik6CiAgICAoSlNDOjpuYXRpdmVGb3JH
ZW5lcmF0b3IpOiBEZWxldGVkLgogICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToK
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKICAgICogbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKICAgICogb2ZmbGluZWFzbS9hcm0ucmI6CiAgICAqIG9m
ZmxpbmVhc20vYXJtNjQucmI6CiAgICAqIG9mZmxpbmVhc20vY2xvb3AucmI6CiAgICAqIG9mZmxp
bmVhc20vbWlwcy5yYjoKICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CiAgICAqIG9mZmxp
bmVhc20vc2g0LnJiOgogICAgKiBvZmZsaW5lYXNtL3g4Ni5yYjoKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCAwODMzNThkLi45ZDBiYmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NiBAQAorMjAxNS0wOC0zMSAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVu
dEBhcHBsZS5jb20+IGFuZCBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisg
ICAgICAgIENsZWFuIHVwIHJlZ2lzdGVyIG5hbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHJlZ2lzdGVyIG5hbWluZyBjb252
ZW50aW9ucyBpbiB0aGUgbGxpbnQgYW5kIGJhc2VsaW5lIEpJVAorICAgICAgICBpbiBvcmRlciB0
byB1c2UgYXMgZmV3IChuYXRpdmUpIGNhbGxlZS1zYXZlIHJlZ2lzdGVycyBhcyBwb3NzaWJsZSBv
bgorICAgICAgICA2NC1iaXRzIHBsYXRmb3Jtcy4gSXQgYWxzbyBpbnRyb2R1Y2VzIHNpZ25pZmlj
YW50IGNoYW5nZXMgaW4gdGhlIHdheQorICAgICAgICByZWdpc3RlcnMgbmFtZXMgYXJlIGRlZmlu
ZWQgaW4gdGhlIExMaW50IGFuZCBiYXNlbGluZSBKSVQgaW4gb3JkZXIgdG8KKyAgICAgICAgZW5h
YmxlIGEgc2ltcGxlciBjb252ZW50aW9uIGFib3V0IHdoaWNoIHJlZ2lzdGVycyBjYW4gYmUgYWxp
YXNlZC4gVGhhdAorICAgICAgICBjb252ZW50aW9uIGlzIHZhbGlkIGFjcm9zcyBhbGwgYXJjaGl0
ZWN0dXJlLCBhbmQgZGVzY3JpYmVkIGluCisgICAgICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtLgorCisgICAgICAgIENhbGxlZSBzYXZlIHJlZ2lzdGVycyBhcmUgbm93IGNhbGxlZCBv
dXQgcmVnQ1M8bj4gKGluIHRoZSBKSVQpIG9yCisgICAgICAgIGNzcjxuPiAoaW4gdGhlIExMSW50
KSB3aXRoIGEgY29tbW9uIG51bWJlcmluZyBhY3Jvc3MgYWxsIHRpZXJzLiBTb21lCisgICAgICAg
IHJlZ2lzdGVycyBhcmUgdW51c2VkIGluIHNvbWUgdGllcnMuCisKKyAgICAgICAgQXMgYSBwYXJ0
IG9mIHRoaXMgY2hhbmdlLCByZGkgd2FzIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBvZiB0ZW1wb3Jh
cnkKKyAgICAgICAgcmVnaXN0ZXJzIGZvciBYODYtNjQgV2luZG93cyBhcyBpdCBpcyBhIGNhbGxl
ZSBzYXZlcyByZWdpc3Rlci4gVGhpcworICAgICAgICByZWR1Y2VkIHRoZSBudW1iZXIgb2YgdGVt
cG9yYXJ5IHJlZ2lzdGVycyBmb3IgWDg2LTY0IFdpbmRvd3MuCisKKyAgICAgICAgVGhpcyBpcyBp
biBwcmVwYXJhdGlvbiBmb3IgcHJvcGVybHkgaGFuZGxpbmcgY2FsbGVlIHNhdmUgcmVnaXN0ZXIK
KyAgICAgICAgcHJlc2VydmF0aW9uIGFuZCByZXN0b3JhdGlvbi4KKworICAgICAgICAqIGRmZy9E
RkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBp
bGVGdW5jdGlvbik6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OmxpbmspOgorICAgICAgICAqIGppdC9GUFJJbmZvLmg6CisgICAgICAgIChKU0M6OkZQUklu
Zm86OnRvUmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpGUFJJbmZvOjp0b0luZGV4KToKKyAgICAg
ICAgKiBqaXQvR1BSSW5mby5oOgorICAgICAgICAoSlNDOjpHUFJJbmZvOjp0b0luZGV4KToKKyAg
ICAgICAgKEpTQzo6R1BSSW5mbzo6dG9SZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkdQUkluZm86
OmRlYnVnTmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX21vZCk6CisgICAgICAgICogaml0L0pJVE9w
Y29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludCk6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9lbmQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmV3X29iamVjdCk6CisgICAg
ICAgICogaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OmdlbmVyYXRlUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyKToKKyAgICAgICAg
KEpTQzo6Z2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKToKKyAgICAgICAgKiBqaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6YXJpdHlGaXh1cEdlbmVyYXRvcik6CisgICAg
ICAgIChKU0M6Om5hdGl2ZUZvckdlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
OgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJt
NjQucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9jbG9vcC5yYjoKKyAgICAgICAgKiBvZmZsaW5l
YXNtL21pcHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAg
ICogb2ZmbGluZWFzbS9zaDQucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIw
MTUtMDgtMTEgIEJhc2lsZSBDbGVtZW50ICA8YmFzaWxlX2NsZW1lbnRAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBtb3JlIHN0cmljdCBtb2RlIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCmluZGV4IGI1OGQ2N2UuLjE3MThkZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCkBAIC0zOTUsMTggKzM5
NSwxNCBAQCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIG1fc3BlY3Vs
YXRpdmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2Nv
ZGVCbG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6
IG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgaWYgKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQogICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAg
IGJyYW5jaFRlc3QzMihaZXJvLCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNr
LCB0aGlzKTsKKyAgICBicmFuY2hUZXN0MzIoWmVybywgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
LmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhpcyk7CiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihD
b2RlT3JpZ2luKDApKTsKLSAgICBHUFJSZWcgdGh1bmtSZWc7Ci0jaWYgVVNFKEpTVkFMVUU2NCkK
LSAgICB0aHVua1JlZyA9IEdQUkluZm86OnJlZ1Q3OwotI2Vsc2UKLSAgICB0aHVua1JlZyA9IEdQ
UkluZm86OnJlZ1Q1OwotI2VuZGlmCisgICAgR1BSUmVnIHRodW5rUmVnID0gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOwogICAgIENvZGVMb2NhdGlvbkxhYmVsKiBhcml0eVRodW5rTGFiZWxzID0KICAg
ICAgICAgbV92bS0+YXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MtPnJldHVyblBDc0ZvcigqbV92
bSwgbV9jb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGFyaXR5VGh1bmtMYWJlbHMpLCB0aHVua1JlZyk7Ci0gICAgbG9hZFB0cihCYXNlSW5kZXgodGh1
bmtSZWcsIEdQUkluZm86OnJlZ1QwLCB0aW1lc1B0cigpKSwgdGh1bmtSZWcpOworICAgIGxvYWRQ
dHIoQmFzZUluZGV4KHRodW5rUmVnLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgdGltZXNQdHIo
KSksIHRodW5rUmVnKTsKKyAgICBtb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIG1fY2FsbEFyaXR5Rml4dXAgPSBjYWxsKCk7CiAgICAganVt
cChmcm9tQXJpdHlDaGVjayk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExpbmsuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNw
cAppbmRleCA3N2I2NTcxLi5mYTkzNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExpbmsuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGlu
ay5jcHAKQEAgLTE2NSwxNCArMTY1LDE0IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAg
ICAgIGppdC5sb2FkNjQodm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEdQUkluZm86OnJlZ1QxKTsK
ICAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZvOjpyZWdUMSk7CiAjZW5kaWYKLSAg
ICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsK
KyAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwotICAgICAgICBt
YWluUGF0aEp1bXBzLmFwcGVuZChqaXQuYnJhbmNoVGVzdDMyKENDYWxsSGVscGVyczo6WmVybywg
R1BSSW5mbzo6cmVnVDApKTsKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5j
aFRlc3QzMihDQ2FsbEhlbHBlcnM6Olplcm8sIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWwqIGFyaXR5VGh1bmtMYWJlbHMgPQogICAgICAgICAgICAgdm0uYXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MtPnJldHVyblBDc0Zvcih2bSwgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpOwot
ICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYXJpdHlUaHVua0xh
YmVscyksIEdQUkluZm86OnJlZ1Q3KTsKLSAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpCYXNlSW5kZXgoR1BSSW5mbzo6cmVnVDcsIEdQUkluZm86OnJlZ1QwLCBDQ2FsbEhlbHBlcnM6
OnRpbWVzUHRyKCkpLCBHUFJJbmZvOjpyZWdUNyk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihhcml0eVRodW5rTGFiZWxzKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoR1BSSW5m
bzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVscGVyczo6dGlt
ZXNQdHIoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6
Q2FsbCBjYWxsQXJpdHlGaXh1cCA9IGppdC5jYWxsKCk7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICBtYWluUGF0aEp1bXBzLmFwcGVuZChqaXQuanVtcCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRlBSSW5mby5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9GUFJJbmZvLmgKaW5kZXggZjA2YjE3Yy4uMDA2MmI3MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9GUFJJbmZvLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9GUFJJbmZvLmgKQEAgLTI2OCwxNSArMjY4LDE2IEBAIHB1Ymxp
YzoKIGNsYXNzIEZQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgRlBSUmVnIFJlZ2lzdGVy
VHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2Owor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDc7CiAKICAgICAv
LyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgogICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMCA9
IE1JUFNSZWdpc3RlcnM6OmYwOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMSA9IE1J
UFNSZWdpc3RlcnM6OmY0OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMiA9IE1JUFNS
ZWdpc3RlcnM6OmY2OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMyA9IE1JUFNSZWdp
c3RlcnM6OmY4OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNCA9IE1JUFNSZWdpc3Rl
cnM6OmYxMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDUgPSBNSVBTUmVnaXN0ZXJz
OjpmMTg7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QxID0gTUlQU1JlZ2lzdGVyczo6
ZjI7CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QyID0gTUlQU1JlZ2lzdGVyczo6ZjQ7
CisgICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6ZjY7Cisg
ICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6Zjg7CisgICAg
c3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q1ID0gTUlQU1JlZ2lzdGVyczo6ZjEwOworICAgIHN0
YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNiA9IE1JUFNSZWdpc3RlcnM6OmYxODsKIAogICAgIHN0
YXRpYyBjb25zdCBGUFJSZWcgcmV0dXJuVmFsdWVGUFIgPSBNSVBTUmVnaXN0ZXJzOjpmMDsKIApA
QCAtMjg2LDcgKzI4Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRlBSUmVnIHRvUmVnaXN0ZXIo
dW5zaWduZWQgaW5kZXgpCiAgICAgewogICAgICAgICBzdGF0aWMgY29uc3QgRlBSUmVnIHJlZ2lz
dGVyRm9ySW5kZXhbbnVtYmVyT2ZSZWdpc3RlcnNdID0gewotICAgICAgICAgICAgZnBSZWdUMCwg
ZnBSZWdUMSwgZnBSZWdUMiwgZnBSZWdUMywgZnBSZWdUNCwgZnBSZWdUNSB9OworICAgICAgICAg
ICAgZnBSZWdUMCwgZnBSZWdUMSwgZnBSZWdUMiwgZnBSZWdUMywgZnBSZWdUNCwgZnBSZWdUNSwg
ZnBSZWdUNiB9OwogCiAgICAgICAgIEFTU0VSVChpbmRleCA8IG51bWJlck9mUmVnaXN0ZXJzKTsK
ICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRm9ySW5kZXhbaW5kZXhdOwpAQCAtMjk3LDExICsyOTgs
MTEgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVnICE9IEludmFsaWRGUFJSZWcpOwogICAg
ICAgICBBU1NFUlQocmVnIDwgMjApOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5k
ZXhGb3JSZWdpc3RlclsyMF0gPSB7Ci0gICAgICAgICAgICAwLCBJbnZhbGlkSW5kZXgsIEludmFs
aWRJbmRleCwgSW52YWxpZEluZGV4LAotICAgICAgICAgICAgMSwgSW52YWxpZEluZGV4LCAyLCBJ
bnZhbGlkSW5kZXgsCi0gICAgICAgICAgICAzLCBJbnZhbGlkSW5kZXgsIDQsIEludmFsaWRJbmRl
eCwKKyAgICAgICAgICAgIDAsIEludmFsaWRJbmRleCwgMSwgSW52YWxpZEluZGV4LAorICAgICAg
ICAgICAgMiwgSW52YWxpZEluZGV4LCAzLCBJbnZhbGlkSW5kZXgsCisgICAgICAgICAgICA0LCBJ
bnZhbGlkSW5kZXgsIDUsIEludmFsaWRJbmRleCwKICAgICAgICAgICAgIEludmFsaWRJbmRleCwg
SW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwKLSAgICAgICAgICAgIElu
dmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCA1LCBJbnZhbGlkSW5kZXgsCisgICAgICAgICAgICBJ
bnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgNiwgSW52YWxpZEluZGV4LAogICAgICAgICB9Owog
ICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSBpbmRleEZvclJlZ2lzdGVyW3JlZ107CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQ
UkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCmluZGV4IGQ1Y2Yy
NjcuLmM3MDg4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCkBAIC0zMSw2ICsz
MSwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorLy8gV2UgdXNlIHRoZSBzYW1lIGNvbnZlbnRp
b25zIGluIHRoZSBiYXNsaW5lIEpJVCBhcyBpbiB0aGUgTExpbnQuIElmIHlvdQorLy8gY2hhbmdl
IG1hcHBpbmdzIGluIHRoZSBHUFJJbmZvLCB5b3Ugc2hvdWxkIGNoYW5nZSB0aGVtIGluIHRoZSBv
ZmZsaW5lYXNtCisvLyBjb21waWxlciBhZGVxdWF0ZWx5LiBUaGUgcmVnaXN0ZXIgbmFtaW5nIGNv
bnZlbnRpb25zIGFyZSBkZXNjcmliZWQgYXQgdGhlCisvLyB0b3Agb2YgdGhlIExvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtIGZpbGUuCisKIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQg
R1BSUmVnOwogI2RlZmluZSBJbnZhbGlkR1BSUmVnICgoOjpKU0M6OkdQUlJlZyktMSkKIApAQCAt
MzA4LDggKzMxMyw2IEBAIHByaXZhdGU6CiB9OwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQp
CiAKLS8vIFRoZSBiYXNlbGluZSBKSVQgcmVxdWlyZXMgdGhhdCByZWdUMyBiZSBjYWxsZWUtcHJl
c2VydmVkLgotCiAjaWYgQ1BVKFg4NikKICNkZWZpbmUgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lT
VEVSUyAwdQogCkBAIC0zMTksMjUgKzMyMiwyMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gNjsKICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RF
UlM7CiAKLSAgICAvLyBOb3RlOiByZWdUMyBpcyByZXF1aXJlZCB0byBiZSBjYWxsZWUtcHJlc2Vy
dmVkLgotCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1QwID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIg
PSBYODZSZWdpc3RlcnM6OmVjeDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gWDg2
UmVnaXN0ZXJzOjplYng7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IFg4NlJlZ2lz
dGVyczo6ZWRpOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6
OmVzaTsKLSAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gcmVnVDA7Ci0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBjYWNoZWRSZXN1bHRSZWdpc3RlcjIgPSByZWdUMTsKKyAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjplYng7IC8vIENhbGxlZS1z
YXZlCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IFg4NlJlZ2lzdGVyczo6ZXNpOyAv
LyBDYWxsZWUtc2F2ZQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3Rl
cnM6OmVkaTsgLy8gQ2FsbGVlLXNhdmUKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYnA7CiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHBy
b3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJu
IHZhbHVlIHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9
IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdUMgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJn
dW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxCisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKKyAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OyAvLyBy
ZWdUMwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IFg4NlJlZ2lzdGVyczo6
ZXNpOyAvLyByZWdUNAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9IFg4NlJl
Z2lzdGVyczo6ZWF4OyAvLyByZWdUMAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BS
MiA9IFg4NlJlZ2lzdGVyczo6ZWJ4OyAvLyByZWdUMworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
bm9uQXJnR1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyByZWdUNQogICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKICAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWR4
OyAvLyByZWdUMQogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSID0gWDg2UmVnaXN0ZXJzOjplY3g7CkBAIC0zNTksNyArMzU4LDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgQVNTRVJUKHJlZyAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAgQVNTRVJU
KHN0YXRpY19jYXN0PGludD4ocmVnKSA8IDgpOwotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgaW5kZXhGb3JSZWdpc3Rlcls4XSA9IHsgMCwgMiwgMSwgMywgSW52YWxpZEluZGV4LCBJbnZh
bGlkSW5kZXgsIDUsIDQgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9y
UmVnaXN0ZXJbOF0gPSB7IDAsIDIsIDEsIDMsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCA0
LCA1IH07CiAgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IGluZGV4Rm9yUmVnaXN0ZXJbcmVnXTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0zOTMsNTIgKzM5Miw3NCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTE7CiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1C
RVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCi0gICAgLy8gTm90ZTogcmVnVDMgaXMgcmVxdWly
ZWQgdG8gYmUgY2FsbGVlLXByZXNlcnZlZC4KLQogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRj
aCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0
UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNh
bGxGcmFtZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYnA7CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNDsKICAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHRhZ01hc2tSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjE1OwogICAg
IC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMCA9
IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBYODZS
ZWdpc3RlcnM6OmVkeDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0
ZXJzOjplY3g7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMyA9IFg4NlJlZ2lzdGVyczo6
ZWJ4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQgPSBYODZSZWdpc3RlcnM6OmVkaTsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNiA9IFg4NlJlZ2lzdGVyczo6cjg7CisjaWYgIU9TKFdJ
TkRPV1MpCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZXNp
OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBYODZSZWdpc3RlcnM6OmVkeDsKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjplY3g7CisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IFg4NlJlZ2lzdGVyczo6cjg7CisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6cjEwOworICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDYgPSBYODZSZWdpc3RlcnM6OmVkaTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q3ID0gWDg2UmVnaXN0ZXJzOjpyOTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q4
ID0gWDg2UmVnaXN0ZXJzOjpyMTA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOSA9IFg4
NlJlZ2lzdGVyczo6cjEyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEwID0gWDg2UmVn
aXN0ZXJzOjpyMTM7CisjZWxzZQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBYODZS
ZWdpc3RlcnM6OmVkeDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0
ZXJzOjpyODsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjpy
OTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjpyMTA7Cisg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6ZWN4OworI2VuZGlm
CisKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTMCA9IFg4NlJlZ2lzdGVyczo6ZWJ4Owor
CisjaWYgIU9TKFdJTkRPV1MpCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzEgPSBYODZS
ZWdpc3RlcnM6OnIxMjsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTMiA9IFg4NlJlZ2lz
dGVyczo6cjEzOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MzID0gWDg2UmVnaXN0ZXJz
OjpyMTQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzQgPSBYODZSZWdpc3RlcnM6OnIx
NTsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzEgPSBYODZSZWdpc3RlcnM6
OmVzaTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTMiA9IFg4NlJlZ2lzdGVyczo6ZWRp
OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MzID0gWDg2UmVnaXN0ZXJzOjpyMTI7Cisg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzQgPSBYODZSZWdpc3RlcnM6OnIxMzsKKyAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTNSA9IFg4NlJlZ2lzdGVyczo6cjE0OworICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnQ1M2ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CisjZW5kaWYKKwogICAg
IC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVy
cG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCiAjaWYgIU9TKFdJTkRPV1Mp
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVk
aTsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJl
Z2lzdGVyczo6ZXNpOyAvLyByZWdUNQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDIKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IFg4NlJlZ2lzdGVyczo6cjg7ICAvLyByZWdUNgot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFI1ID0gWDg2UmVnaXN0ZXJzOjpyOTsg
IC8vIHJlZ1Q3CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdp
c3RlcnM6OmVkaTsgLy8gcmVnVDYKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BS
MSA9IFg4NlJlZ2lzdGVyczo6ZXNpOyAvLyByZWdUMQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
YXJndW1lbnRHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDMKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IFg4NlJlZ2lzdGVyczo6cjg7IC8v
IHJlZ1Q0CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjUgPSBYODZSZWdpc3Rl
cnM6OnI5OyAvLyByZWdUNwogI2Vsc2UKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50
R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1l
bnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1
bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUNgotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDcKKyAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdU
NQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjpl
ZHg7IC8vIHJlZ1QxCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZS
ZWdpc3RlcnM6OnI4OyAvLyByZWdUMgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDMKICNlbmRpZgotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgbm9uQXJnR1BSMCA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUOAotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWJ4OyAvLyByZWdU
MwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMiA9IFg4NlJlZ2lzdGVyczo6cjEy
OyAvLyByZWdUOQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IFg4NlJlZ2lz
dGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIG5vbkFyZ0dQUjEgPSBYODZSZWdpc3RlcnM6OmVieDsgLy8gQ2FsbGVlIHNhdmUKICAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0ZXJzOjplYXg7
IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZS
ZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNl
cnZlZE5vblJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgbm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIgPSBYODZSZWdpc3RlcnM6OnIxMDsKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWR4
OyAvLyByZWdUMSBvciByZWdUMgorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVk
Tm9uUmV0dXJuR1BSID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1IChyZWdUNCBvbiBXaW5k
b3dzKQorICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIg
PSBYODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJs
ZXI6OnNjcmF0Y2hSZWdpc3RlcjsKIAogICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNp
Z25lZCBpbmRleCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpbmRleCA8IG51bWJlck9mUmVnaXN0
ZXJzKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJl
ck9mUmVnaXN0ZXJzXSA9IHsgcmVnVDAsIHJlZ1QxLCByZWdUMiwgcmVnVDMsIHJlZ1Q0LCByZWdU
NSwgcmVnVDYsIHJlZ1Q3LCByZWdUOCwgcmVnVDksIHJlZ1QxMCB9OworI2lmICFPUyhXSU5ET1dT
KQorICAgICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ2lzdGVyRm9ySW5kZXhbbnVtYmVyT2ZS
ZWdpc3RlcnNdID0geyByZWdUMCwgcmVnVDEsIHJlZ1QyLCByZWdUMywgcmVnVDQsIHJlZ1Q1LCBy
ZWdUNiwgcmVnVDcsIHJlZ0NTMCwgcmVnQ1MxLCByZWdDUzIgfTsKKyNlbHNlCisgICAgICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7
IHJlZ1QwLCByZWdUMSwgcmVnVDIsIHJlZ1QzLCByZWdUNCwgcmVnVDUsIHJlZ0NTMCwgcmVnQ1Mx
LCByZWdDUzIsIHJlZ0NTMywgcmVnQ1M0IH07CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHJlZ2lz
dGVyRm9ySW5kZXhbaW5kZXhdOwogICAgIH0KICAgICAKQEAgLTQ1Nyw3ICs0NzgsMTEgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKHJlZyAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PGludD4ocmVnKSA8IDE2KTsKLSAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJbMTZdID0geyAwLCAyLCAxLCAzLCBJbnZhbGlk
SW5kZXgsIEludmFsaWRJbmRleCwgNSwgNCwgNiwgNywgOCwgSW52YWxpZEluZGV4LCA5LCAxMCwg
SW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXggfTsKKyNpZiAhT1MoV0lORE9XUykKKyAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJbMTZdID0geyAwLCAzLCAyLCA4
LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgMSwgNiwgNCwgNywgNSwgSW52YWxpZEluZGV4
LCA5LCAxMCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXggfTsKKyNlbHNlCisgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9IHsgMCwgNSwgMSwgNiwg
SW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDcsIDgsIDIsIDMsIDQsIEludmFsaWRJbmRleCwg
OSwgMTAsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07CisjZW5kaWYKICAgICAgICAgcmV0
dXJuIGluZGV4Rm9yUmVnaXN0ZXJbcmVnXTsKICAgICB9CiAKQEAgLTQ4OCwxMyArNTEzLDExIEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA5
OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0g
TlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAotICAgIC8vIE5vdGU6IHJlZ1QzIGlzIHJl
cXVpcmVkIHRvIGJlIGNhbGxlZS1wcmVzZXJ2ZWQuCi0KICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0
ZXJzLgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBBUk1SZWdpc3RlcnM6OnIwOwog
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBBUk1SZWdpc3RlcnM6OnIxOwogICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBBUk1SZWdpc3RlcnM6OnIyOwotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDMgPSBBUk1SZWdpc3RlcnM6OnI0OworICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDMgPSBBUk1SZWdpc3RlcnM6OnIzOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDQgPSBBUk1SZWdpc3RlcnM6OnI4OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUg
PSBBUk1SZWdpc3RlcnM6OnI5OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYgPSBBUk1S
ZWdpc3RlcnM6OnIxMDsKQEAgLTUwMywyMiArNTI2LDIwIEBAIHB1YmxpYzoKICNlbHNlIAogICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDcgPSBBUk1SZWdpc3RlcnM6OnI3OwogI2VuZGlmCi0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IEFSTVJlZ2lzdGVyczo6cjM7CisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IEFSTVJlZ2lzdGVyczo6cjQ7CiAgICAgLy8gVGhlc2Ug
cmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IHJlZ1QwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
Y2FjaGVkUmVzdWx0UmVnaXN0ZXIyID0gcmVnVDE7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBj
YWxsRnJhbWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZnA7CiAgICAgLy8gVGhlc2UgY29uc3Rh
bnRzIHByb3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYg
cmV0dXJuIHZhbHVlIHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50
R1BSMCA9IEFSTVJlZ2lzdGVyczo6cjA7IC8vIHJlZ1QwCiAgICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjEgPSBBUk1SZWdpc3RlcnM6OnIxOyAvLyByZWdUMQogICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gQVJNUmVnaXN0ZXJzOjpyMjsgLy8gcmVnVDIKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTVJlZ2lzdGVyczo6cjM7IC8v
IHJlZ1Q4Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIwID0gQVJNUmVnaXN0ZXJz
OjpyNDsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFS
TVJlZ2lzdGVyczo6cjM7IC8vIHJlZ1QzCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdH
UFIwID0gQVJNUmVnaXN0ZXJzOjpyNDsgLy8gcmVnVDgKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IG5vbkFyZ0dQUjEgPSBBUk1SZWdpc3RlcnM6OnI4OyAvLyByZWdUNAogICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgbm9uQXJnR1BSMiA9IEFSTVJlZ2lzdGVyczo6cjk7IC8vIHJlZ1Q1CiAgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUiA9IEFSTVJlZ2lzdGVyczo6cjA7IC8vIHJl
Z1QwCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBBUk1SZWdpc3Rl
cnM6OnIxOyAvLyByZWdUMQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9u
UmV0dXJuR1BSID0gQVJNUmVnaXN0ZXJzOjpyNTsgLy8gcmVnVDcKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IEFSTVJlZ2lzdGVyczo6cjU7CiAKICAg
ICBzdGF0aWMgR1BSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewpAQCAtNTQw
LDkgKzU2MSw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludD4ocmVn
KSA8IDE2KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJb
MTZdID0KICNpZiBDUFUoQVJNX1RIVU1CMikKLSAgICAgICAgICAgIHsgMCwgMSwgMiwgOCwgMywg
OSwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDQsIDUsIDYsIDcsIEludmFsaWRJbmRleCwg
SW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCB9OworICAgICAgICAgICAg
eyAwLCAxLCAyLCAzLCA4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4
LCA0LCA1LCA2LCA3LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJ
bnZhbGlkSW5kZXggfTsKICNlbHNlCi0gICAgICAgICAgICB7IDAsIDEsIDIsIDgsIDMsIDksIElu
dmFsaWRJbmRleCwgNywgNCwgNSwgNiwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFs
aWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXggfTsKKyAgICAgICAgICAgIHsgMCwg
MSwgMiwgMywgOCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDcsIDQsIDUsIDYsIEludmFs
aWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxp
ZEluZGV4IH07CiAjZW5kaWYKICAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gaW5kZXhGb3JSZWdp
c3RlcltyZWddOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTc1LDExICs1OTYsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTY7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4
OwogCi0gICAgLy8gTm90ZTogcmVnVDMgaXMgcmVxdWlyZWQgdG8gYmUgY2FsbGVlLXByZXNlcnZl
ZC4KLQogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVy
czo6eDA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9IEFS
TTY0UmVnaXN0ZXJzOjp4MjY7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpmcDsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRhZ1R5
cGVOdW1iZXJSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7CiAgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDI4OwpAQCAtNTg3LDkg
KzYwNCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gQVJNNjRS
ZWdpc3RlcnM6OngwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBBUk02NFJlZ2lz
dGVyczo6eDE7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gQVJNNjRSZWdpc3RlcnM6Ongy
MzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gQVJNNjRSZWdpc3RlcnM6Ong1Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBBUk02NFJlZ2lzdGVyczo6eDI0OworICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBBUk02NFJlZ2lzdGVyczo6eDM7CisgICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsKKyAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6Ong1OwogICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDYgPSBBUk02NFJlZ2lzdGVyczo6eDY7CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdUNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q4ID0gQVJNNjRSZWdpc3RlcnM6Ong4OwpAQCAtNjAwLDE4ICs2MTcsMjAgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEzID0gQVJNNjRSZWdpc3RlcnM6OngxMzsK
ICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxNCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTQ7CiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTUgPSBBUk02NFJlZ2lzdGVyczo6eDE1OworICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MwID0gQVJNNjRSZWdpc3RlcnM6OngyNjsgLy8gVXNl
ZCBieSBMTEludCBvbmx5CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzEgPSBBUk02NFJl
Z2lzdGVyczo6eDI3OyAvLyB0YWdUeXBlTnVtYmVyCisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdDUzIgPSBBUk02NFJlZ2lzdGVyczo6eDI4OyAvLyB0YWdNYXNrCiAgICAgLy8gVGhlc2UgY29u
c3RhbnRzIHByb3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50
ICYgcmV0dXJuIHZhbHVlIHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3Vt
ZW50R1BSMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsgLy8gcmVnVDAKICAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIGFyZ3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsgLy8gcmVnVDEKICAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjsgLy8g
cmVnVDIKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTTY0UmVnaXN0
ZXJzOjp4MzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVn
aXN0ZXJzOjp4NDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IEFSTTY0
UmVnaXN0ZXJzOjp4NTsgLy8gcmVnVDQKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50
R1BSMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MzsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsgLy8gcmVnVDQKKyAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsgLy8gcmVn
VDUKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNiA9IEFSTTY0UmVnaXN0ZXJz
Ojp4NjsgLy8gcmVnVDYKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNyA9IEFS
TTY0UmVnaXN0ZXJzOjp4NzsgLy8gcmVnVDcKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFy
Z0dQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7IC8vIHJlZ1Q4CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBub25BcmdHUFIxID0gQVJNNjRSZWdpc3RlcnM6Ong5OyAvLyByZWdUOQotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7IC8vIHJlZ1Qx
MAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk02NFJlZ2lzdGVy
czo6eDA7IC8vIHJlZ1QwCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIg
PSBBUk02NFJlZ2lzdGVyczo6eDE7IC8vIHJlZ1QxCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBu
b25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk02NFJlZ2lzdGVyczo6eDI7CkBAIC02NzcsNDEg
KzY5NiwzOCBAQCBwdWJsaWM6CiBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEdQUlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9m
UmVnaXN0ZXJzID0gNzsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3Rl
cnMgPSA4OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAogICAgIC8vIHJlZ1QwIG11c3Qg
YmUgdjAgZm9yIHJldHVybmluZyBhIDMyLWJpdCB2YWx1ZS4KICAgICAvLyByZWdUMSBtdXN0IGJl
IHYxIGZvciByZXR1cm5pbmcgYSBwYWlyIG9mIDMyLWJpdCB2YWx1ZS4KLSAgICAvLyByZWdUMyBt
dXN0IGJlIHNhdmVkIGluIHRoZSBjYWxsZWUsIHNvIHVzZSBhbiBTIHJlZ2lzdGVyLgogCiAgICAg
Ly8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0g
TUlQU1JlZ2lzdGVyczo6djA7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IE1JUFNS
ZWdpc3RlcnM6OnYxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBNSVBTUmVnaXN0
ZXJzOjp0NDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6
czI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IE1JUFNSZWdpc3RlcnM6OnQ1Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gTUlQU1JlZ2lzdGVyczo6czA7CisgICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQyOworICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDMgPSBNSVBTUmVnaXN0ZXJzOjp0MzsKKyAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6dDQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUNSA9IE1JUFNSZWdpc3RlcnM6OnQ1OworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYg
PSBNSVBTUmVnaXN0ZXJzOjp0MDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gTUlQ
U1JlZ2lzdGVyczo6dDE7CiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGlu
ZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IHJl
Z1QwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FjaGVkUmVzdWx0UmVnaXN0ZXIyID0gcmVn
VDE7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IE1JUFNSZWdp
c3RlcnM6OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3Ig
dGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBNSVBTUmVnaXN0ZXJzOjphMDsK
ICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IE1JUFNSZWdpc3RlcnM6OmEx
OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gTUlQU1JlZ2lzdGVyczo6
YTI7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBNSVBTUmVnaXN0ZXJz
OjphMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSByZWdUMjsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSByZWdUMzsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIG5vbkFyZ0dQUjIgPSByZWdUNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFy
Z0dQUjAgPSByZWdUMDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSByZWdU
MTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gcmVnVDA7CiAgICAg
c3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSByZWdUMTsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IHJlZ1Q1OworICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gcmVnVDI7CiAKICAgICBz
dGF0aWMgR1BSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewogICAgICAgICBB
U1NFUlQoaW5kZXggPCBudW1iZXJPZlJlZ2lzdGVycyk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7IHJlZ1QwLCByZWdU
MSwgcmVnVDIsIHJlZ1QzLCByZWdUNCwgcmVnVDUsIHJlZ1Q2IH07CisgICAgICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnaXN0ZXJGb3JJbmRleFtudW1iZXJPZlJlZ2lzdGVyc10gPSB7IHJlZ1Qw
LCByZWdUMSwgcmVnVDIsIHJlZ1QzLCByZWdUNCwgcmVnVDUsIHJlZ1Q2LCByZWdUNyB9OwogICAg
ICAgICByZXR1cm4gcmVnaXN0ZXJGb3JJbmRleFtpbmRleF07CiAgICAgfQogCkBAIC03MjEsOCAr
NzM3LDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVnIDwgMjQpOwogICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JSZWdpc3RlclsyNF0gPSB7CiAgICAgICAgICAgICBJ
bnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgMCwgMSwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5k
ZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LAotICAgICAgICAgICAgSW52YWxpZEluZGV4
LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCAyLCA0LCA1LCBJbnZh
bGlkSW5kZXgsCi0gICAgICAgICAgICA2LCBJbnZhbGlkSW5kZXgsIDMsIEludmFsaWRJbmRleCwg
SW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4Cisg
ICAgICAgICAgICA2LCA3LCAyLCAzLCA0LCA1LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwK
KyAgICAgICAgICAgIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIElu
dmFsaWRJbmRleCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgSW52
YWxpZEluZGV4CiAgICAgICAgIH07CiAgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IGluZGV4Rm9y
UmVnaXN0ZXJbcmVnXTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTc1OSwxMiArNzc1LDEy
IEBAIHB1YmxpYzoKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgogICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDAgPSBTSDRSZWdpc3RlcnM6OnIwOwogICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnVDEgPSBTSDRSZWdpc3RlcnM6OnIxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDIgPSBTSDRSZWdpc3RlcnM6OnIyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBT
SDRSZWdpc3RlcnM6OnIxMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gU0g0UmVn
aXN0ZXJzOjpyNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gU0g0UmVnaXN0ZXJz
OjpyNTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gU0g0UmVnaXN0ZXJzOjpyNjsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gU0g0UmVnaXN0ZXJzOjpyNzsKKyAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gU0g0UmVnaXN0ZXJzOjpyNjsKKyAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1QzID0gU0g0UmVnaXN0ZXJzOjpyNzsKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1Q0ID0gU0g0UmVnaXN0ZXJzOjpyMjsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q1ID0gU0g0UmVnaXN0ZXJzOjpyMzsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2
ID0gU0g0UmVnaXN0ZXJzOjpyNDsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gU0g0
UmVnaXN0ZXJzOjpyNTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q4ID0gU0g0UmVnaXN0
ZXJzOjpyODsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q5ID0gU0g0UmVnaXN0ZXJzOjpy
OTsKICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KQEAgLTc3
MiwxMyArNzg4LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhY2hlZFJl
c3VsdFJlZ2lzdGVyMiA9IHJlZ1QxOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1l
UmVnaXN0ZXIgPSBTSDRSZWdpc3RlcnM6OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92
aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2
YWx1ZSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBy
ZWdUNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IHJlZ1Q1OwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gcmVnVDY7Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSByZWdUNzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IG5vbkFyZ0dQUjAgPSByZWdUMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEg
PSByZWdUODsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjIgPSByZWdUOTsKKyAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFNINFJlZ2lzdGVyczo6cjQ7IC8v
IHJlZ1Q2CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBTSDRSZWdpc3Rl
cnM6OnI1OyAvLyByZWdUNworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0g
U0g0UmVnaXN0ZXJzOjpyNjsgLy8gcmVnVDIKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3Vt
ZW50R1BSMyA9IFNINFJlZ2lzdGVyczo6cjc7IC8vIHJlZ1QzCisgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBub25BcmdHUFIwID0gcmVnVDQ7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdH
UFIxID0gcmVnVDU7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUiA9IHJl
Z1QwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gcmVnVDE7CiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSByZWdUMjsK
QEAgLTc5NCw3ICs4MDksNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQocmVnICE9
IEludmFsaWRHUFJSZWcpOwogICAgICAgICBBU1NFUlQocmVnIDwgMTQpOwotICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JSZWdpc3RlclsxNF0gPSB7IDAsIDEsIDIsIEludmFs
aWRJbmRleCwgNCwgNSwgNiwgNywgOCwgOSwgMywgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgs
IEludmFsaWRJbmRleCB9OworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5kZXhGb3JS
ZWdpc3RlclsxNF0gPSB7IDAsIDEsIDQsIDUsIDYsIDcsIDIsIDMsIDgsIDksIEludmFsaWRJbmRl
eCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCB9OwogICAgICAgICB1
bnNpZ25lZCByZXN1bHQgPSBpbmRleEZvclJlZ2lzdGVyW3JlZ107CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGJiYzg1MjMuLmJi
ZDZmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTU4MywxOSArNTgzLDEzIEBA
IENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZv
cnQgZWZmb3J0KQogICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25F
eGNlcHRpb24obV9jb2RlQmxvY2stPm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVj
dEFyaXR5Q2hlY2sgOiBvcGVyYXRpb25DYWxsQXJpdHlDaGVjayk7CiAgICAgICAgIGlmIChtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
Ci0gICAgICAgIGlmIChyZXR1cm5WYWx1ZUdQUiAhPSByZWdUMCkKLSAgICAgICAgICAgIG1vdmUo
cmV0dXJuVmFsdWVHUFIsIHJlZ1QwKTsKLSAgICAgICAgYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1Qw
KS5saW5rVG8oYmVnaW5MYWJlbCwgdGhpcyk7Ci0gICAgICAgIEdQUlJlZyB0aHVua1JlZzsKLSNp
ZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICB0aHVua1JlZyA9IEdQUkluZm86OnJlZ1Q3OwotI2Vs
c2UKLSAgICAgICAgdGh1bmtSZWcgPSBHUFJJbmZvOjpyZWdUNTsKLSNlbmRpZgorICAgICAgICBi
cmFuY2hUZXN0MzIoWmVybywgcmV0dXJuVmFsdWVHUFIpLmxpbmtUbyhiZWdpbkxhYmVsLCB0aGlz
KTsKKyAgICAgICAgR1BSUmVnIHRodW5rUmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOwogICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCogZmFpbFRodW5rTGFiZWxzID0KICAgICAgICAgICAgIG1f
dm0tPmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3IoKm1fdm0sIG1fY29k
ZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpOwogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZmFp
bFRodW5rTGFiZWxzKSwgdGh1bmtSZWcpOwotICAgICAgICBsb2FkUHRyKEJhc2VJbmRleCh0aHVu
a1JlZywgcmVnVDAsIHRpbWVzUHRyKCkpLCB0aHVua1JlZyk7CisgICAgICAgIGxvYWRQdHIoQmFz
ZUluZGV4KHRodW5rUmVnLCByZXR1cm5WYWx1ZUdQUiwgdGltZXNQdHIoKSksIHRodW5rUmVnKTsK
KyAgICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKGFyaXR5Rml4dXBHZW5lcmF0b3Ip
LmNvZGUoKSk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBcml0aG1ldGljLmNwcAppbmRleCAxNjdlNDEzLi42MTg5ZTU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKQEAgLTYxMSwyNSArNjExLDMy
IEBAIHZvaWQgSklUOjplbWl0X29wX21vZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCiAgICAg
Ly8gTWFrZSBzdXJlIHJlZ2lzdGVycyBhcmUgY29ycmVjdCBmb3IgeDg2IElESVYgaW5zdHJ1Y3Rp
b25zLgorI2lmIENQVShYODYpCisgICAgYXV0byBlZHggPSByZWdUMTsKKyAgICBhdXRvIGVjeCA9
IHJlZ1QyOworI2Vsc2UKKyAgICBhdXRvIGVkeCA9IHJlZ1QyOworICAgIGF1dG8gZWN4ID0gcmVn
VDM7CisjZW5kaWYKICAgICBBU1NFUlQocmVnVDAgPT0gWDg2UmVnaXN0ZXJzOjplYXgpOwotICAg
IEFTU0VSVChyZWdUMSA9PSBYODZSZWdpc3RlcnM6OmVkeCk7Ci0gICAgQVNTRVJUKHJlZ1QyID09
IFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAgICBBU1NFUlQoZWR4ID09IFg4NlJlZ2lzdGVyczo6ZWR4
KTsKKyAgICBBU1NFUlQoZWN4ID09IFg4NlJlZ2lzdGVyczo6ZWN4KTsKIAotICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXJzKG9wMSwgcmVnVDMsIG9wMiwgcmVnVDIpOwotICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDMpOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDIpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJz
KG9wMSwgcmVnVDQsIG9wMiwgZWN4KTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlh
dGVJbnRlZ2VyKHJlZ1Q0KTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRl
Z2VyKGVjeCk7CiAKLSAgICBtb3ZlKHJlZ1QzLCByZWdUMCk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJh
bmNoVGVzdDMyKFplcm8sIHJlZ1QyKSk7Ci0gICAgSnVtcCBkZW5vbWluYXRvck5vdE5lZzEgPSBi
cmFuY2gzMihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJbW0zMigtMSkpOworICAgIG1vdmUocmVn
VDQsIHJlZ1QwKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoWmVybywgZWN4KSk7Cisg
ICAgSnVtcCBkZW5vbWluYXRvck5vdE5lZzEgPSBicmFuY2gzMihOb3RFcXVhbCwgZWN4LCBUcnVz
dGVkSW1tMzIoLTEpKTsKICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDAsIFRy
dXN0ZWRJbW0zMigtMjE0NzQ4MzY0Ny0xKSkpOwogICAgIGRlbm9taW5hdG9yTm90TmVnMS5saW5r
KHRoaXMpOwogICAgIG1fYXNzZW1ibGVyLmNkcSgpOwotICAgIG1fYXNzZW1ibGVyLmlkaXZsX3Io
cmVnVDIpOwotICAgIEp1bXAgbnVtZXJhdG9yUG9zaXRpdmUgPSBicmFuY2gzMihHcmVhdGVyVGhh
bk9yRXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoMCkpOwotICAgIGFkZFNsb3dDYXNlKGJyYW5j
aFRlc3QzMihaZXJvLCByZWdUMSkpOworICAgIG1fYXNzZW1ibGVyLmlkaXZsX3IoZWN4KTsKKyAg
ICBKdW1wIG51bWVyYXRvclBvc2l0aXZlID0gYnJhbmNoMzIoR3JlYXRlclRoYW5PckVxdWFsLCBy
ZWdUNCwgVHJ1c3RlZEltbTMyKDApKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoWmVy
bywgZWR4KSk7CiAgICAgbnVtZXJhdG9yUG9zaXRpdmUubGluayh0aGlzKTsKLSAgICBlbWl0RmFz
dEFyaXRoUmVUYWdJbW1lZGlhdGUocmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0RmFzdEFyaXRoUmVU
YWdJbW1lZGlhdGUoZWR4LCByZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1
bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBm
MzBmZDAyLi5lYzc5MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKQEAgLTkyOSw3ICs5MjksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbG9vcF9oaW50KElu
c3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaQogICAgICAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvbk9wdGltaXplLCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICAg
ICAgSnVtcCBub09wdGltaXplZEVudHJ5ID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZXR1cm5WYWx1
ZUdQUik7CiAgICAgICAgIGlmICghQVNTRVJUX0RJU0FCTEVEKSB7Ci0gICAgICAgICAgICBKdW1w
IG9rID0gYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZSwgcmVnVDAsIFRydXN0ZWRJbW1Q
dHIoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4oMTAwMCkpKSk7Cisg
ICAgICAgICAgICBKdW1wIG9rID0gYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZSwgcmV0
dXJuVmFsdWVHUFIsIFRydXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2Fz
dDxpbnRwdHJfdD4oMTAwMCkpKSk7CiAgICAgICAgICAgICBhYm9ydFdpdGhSZWFzb24oSklUVW5y
ZWFzb25hYmxlTG9vcEhpbnRKdW1wVGFyZ2V0KTsKICAgICAgICAgICAgIG9rLmxpbmsodGhpcyk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0
LmNwcAppbmRleCBiMzlhZTFkLi40Y2RiZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfbW92KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1p
dF9vcF9lbmQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBBU1NFUlQo
cmV0dXJuVmFsdWVHUFIgIT0gY2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgIGVtaXRMb2FkKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExvYWQo
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEsIHJldHVyblZhbHVlR1BSKTsK
ICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQpAQCAtMTY1LDkgKzE2
NSw5IEBAIHZvaWQgSklUOjplbWl0X29wX25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBzaXplX3QgYWxsb2NhdGlvblNpemUgPSBKU0ZpbmFsT2JqZWN0Ojph
bGxvY2F0aW9uU2l6ZShzdHJ1Y3R1cmUtPmlubGluZUNhcGFjaXR5KCkpOwogICAgIE1hcmtlZEFs
bG9jYXRvciogYWxsb2NhdG9yID0gJm1fdm0tPmhlYXAuYWxsb2NhdG9yRm9yT2JqZWN0V2l0aG91
dERlc3RydWN0b3IoYWxsb2NhdGlvblNpemUpOwogCi0gICAgUmVnaXN0ZXJJRCByZXN1bHRSZWcg
PSByZWdUMDsKKyAgICBSZWdpc3RlcklEIHJlc3VsdFJlZyA9IHJldHVyblZhbHVlR1BSOwogICAg
IFJlZ2lzdGVySUQgYWxsb2NhdG9yUmVnID0gcmVnVDE7Ci0gICAgUmVnaXN0ZXJJRCBzY3JhdGNo
UmVnID0gcmVnVDI7CisgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnID0gcmVnVDM7CiAKICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoYWxsb2NhdG9yKSwgYWxsb2NhdG9yUmVnKTsKICAgICBlbWl0QWxs
b2NhdGVKU09iamVjdChhbGxvY2F0b3JSZWcsIFRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgcmVz
dWx0UmVnLCBzY3JhdGNoUmVnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcApp
bmRleCAwNzBiNWNiLi4xODA3MjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3Iu
Y3BwCkBAIC02NSw2ICs2NSwxMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXIoVk0mIHZtLCBFeGVjdXRhYmxlQmFzZQogICAgIC8vIFdl
IHNob3VsZG4ndCBldmVyIGJlIGdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIG5hdGl2ZSBmdW5jdGlv
bnMuCiAgICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOwogICAg
IHB0cmRpZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworCisgICAg
QVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJlZ1QxKSk7CisgICAgQVNTRVJUKCF0b1NhdmUu
Z2V0KEdQUkluZm86OnJlZ1QyKSk7CisgICAgQVNTRVJUKCF0b1NhdmUuZ2V0KEdQUkluZm86OnJl
Z1QzKSk7CiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzIGppdCgmdm0sIDApOwogICAgIApAQCAt
ODQsMzEgKzg4LDMwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBnZW5lcmF0ZVJlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlcihWTSYgdm0sIEV4ZWN1dGFibGVCYXNlCiAgICAgICAgICAgICBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUp
LAogICAgICAgICBHUFJJbmZvOjpyZWdUMik7CiAKLSAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BS
SW5mbzo6cmVnVDQpKTsKLSAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDMpOwogICAgIAogICAgIEFzc2Vt
Ymx5SGVscGVyczo6TGFiZWwgbG9vcCA9IGppdC5sYWJlbCgpOwogICAgIGppdC5zdWIzMihBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOwotICAgIGppdC5s
b2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Q0LCBvZmZzZXQpLCBH
UFJJbmZvOjpyZWdUMCk7Ci0gICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86
OnJlZ1Q0KTsKLSAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHNp
emVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0LmxvYWQ2NChBc3NlbWJs
eUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDMsIG9mZnNldCksIEdQUkluZm86OnJlZ1Qw
KTsKKyAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDMpOworICAg
IGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKFJlZ2lzdGVy
KSksIEdQUkluZm86OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoVGVzdDMyKEFzc2VtYmx5SGVscGVy
czo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKIAotICAgIC8v
IEF0IHRoaXMgcG9pbnQgcmVnVDQgKyBvZmZzZXQgcG9pbnRzIHRvIHdoZXJlIHdlIHNhdmUgdGhp
bmdzLgorICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVnVDMgKyBvZmZzZXQgcG9pbnRzIHRvIHdoZXJl
IHdlIHNhdmUgdGhpbmdzLgogICAgIHB0cmRpZmZfdCBjdXJyZW50T2Zmc2V0ID0gMDsKLSAgICBq
aXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJ
bmZvOjpyZWdUNCwgY3VycmVudE9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpy
ZWdUMSwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QzLCBjdXJyZW50T2Zm
c2V0KSk7CiAgICAgCiAgICAgZm9yIChHUFJSZWcgZ3ByID0gQXNzZW1ibHlIZWxwZXJzOjpmaXJz
dFJlZ2lzdGVyKCk7IGdwciA8PSBBc3NlbWJseUhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBncHIg
PSBzdGF0aWNfY2FzdDxHUFJSZWc+KGdwciArIDEpKSB7CiAgICAgICAgIGlmICghdG9TYXZlLmdl
dChncHIpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0g
c2l6ZW9mKFJlZ2lzdGVyKTsKLSAgICAgICAgaml0LnN0b3JlNjQoZ3ByLCBBc3NlbWJseUhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDQsIGN1cnJlbnRPZmZzZXQpKTsKKyAgICAgICAgaml0
LnN0b3JlNjQoZ3ByLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDMsIGN1
cnJlbnRPZmZzZXQpKTsKICAgICB9CiAgICAgZm9yIChGUFJSZWcgZnByID0gQXNzZW1ibHlIZWxw
ZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgZnByIDw9IEFzc2VtYmx5SGVscGVyczo6bGFzdEZQUmVn
aXN0ZXIoKTsgZnByID0gc3RhdGljX2Nhc3Q8RlBSUmVnPihmcHIgKyAxKSkgewogICAgICAgICBp
ZiAoIXRvU2F2ZS5nZXQoZnByKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjdXJy
ZW50T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7Ci0gICAgICAgIGppdC5zdG9yZURvdWJsZShm
cHIsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgY3VycmVudE9mZnNl
dCkpOworICAgICAgICBqaXQuc3RvcmVEb3VibGUoZnByLCBBc3NlbWJseUhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6cmVnVDMsIGN1cnJlbnRPZmZzZXQpKTsKICAgICB9CiAgICAgCiAgICAgLy8g
QXNzdW1lIHRoYXQgdGhlcmUgYXJlbid0IGFueSBzYXZlZCBGUCByZWdpc3RlcnMuCkBAIC0xNTEs
NyArMTU0LDkgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVSZWdpc3RlclJlc3RvcmF0aW9uKEFzc2Vt
Ymx5SGVscGVycyYgaml0KQogICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJl
c2VydmUoKTsKICAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZz
ZXQoKTsKICAgICAKLSAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDQpKTsKKyAg
ICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDEpKTsKKyAgICBBU1NFUlQoIXRvU2F2
ZS5nZXQoR1BSSW5mbzo6cmVnVDIpKTsKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6
cmVnVDMpKTsKIAogICAgIC8vIFdlIG5lZWQgdG8gcGxhY2UgdGhlIHN0YWNrIHBvaW50ZXIgYmFj
ayB0byB3aGVyZSB0aGUgY2FsbGVyIHRob3VnaHQgdGhleSBsZWZ0IGl0LgogICAgIC8vIEJ1dCBh
bHNvLCBpbiBvcmRlciB0byByZWNvdmVyIHRoZSByZWdpc3RlcnMsIHdlIG5lZWQgdG8gZmlndXJl
IG91dCBob3cgYmlnIHRoZQpAQCAtMTYxLDkgKzE2Niw5IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRl
UmVnaXN0ZXJSZXN0b3JhdGlvbihBc3NlbWJseUhlbHBlcnMmIGppdCkKICAgICAgICAgQXNzZW1i
bHlIZWxwZXJzOjpBZGRyZXNzKAogICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwKICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNT
dGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRP
ZmZzZXQpLAotICAgICAgICBHUFJJbmZvOjpyZWdUNCk7CisgICAgICAgIEdQUkluZm86OnJlZ1Qz
KTsKICAgICAKLSAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6cmVnVDIpOwor
ICAgIGppdC5tb3ZlKEdQUkluZm86OnJlZ1QzLCBHUFJJbmZvOjpyZWdUMik7CiAgICAgaml0Lmxz
aGlmdDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDMpLCBHUFJJbmZvOjpyZWdUMik7
CiAgICAgCiAgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihvZmZz
ZXQpLCBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTIwMyw3ICsy
MDgsNyBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZVJlZ2lzdGVyUmVzdG9yYXRpb24oQXNzZW1ibHlI
ZWxwZXJzJiBqaXQpCiAgICAgCiAgICAgLy8gVGh1bmtzIGxpa2UgdGhpcyByZWx5IG9uIHRoZSBB
cmd1bWVudENvdW50IGJlaW5nIGludGFjdC4gUGF5IGl0IGZvcndhcmQuCiAgICAgaml0LnN0b3Jl
MzIoCi0gICAgICAgIEdQUkluZm86OnJlZ1Q0LAorICAgICAgICBHUFJJbmZvOjpyZWdUMywKICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAogICAgICAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVu
dENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVy
KSArIFBheWxvYWRPZmZzZXQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAppbmRleCAzNGM2NTA0Li41MDViZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0yNTUsOCArMjU1LDYgQEAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGsKICNlbmRpZgogCiAjZWxpZiBDUFUoQVJNNjQpCi0gICAgQ09N
UElMRV9BU1NFUlQoQVJNNjRSZWdpc3RlcnM6OngzICE9IEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
cHJldl9jYWxsZnJhbWVfbm90X3RyYW1wbGVkX2J5X1QxKTsKLSAgICBDT01QSUxFX0FTU0VSVChB
Uk02NFJlZ2lzdGVyczo6eDMgIT0gSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBwcmV2X2NhbGxmcmFt
ZV9ub3RfdHJhbXBsZWRfYnlfVDMpOwogICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0ZXJz
Ojp4MCAhPSBKU0ludGVyZmFjZUpJVDo6cmVnVDMsIFQzX25vdF90cmFtcGxlZF9ieV9hcmdfMCk7
CiAgICAgQ09NUElMRV9BU1NFUlQoQVJNNjRSZWdpc3RlcnM6OngxICE9IEpTSW50ZXJmYWNlSklU
OjpyZWdUMywgVDNfbm90X3RyYW1wbGVkX2J5X2FyZ18xKTsKICAgICBDT01QSUxFX0FTU0VSVChB
Uk02NFJlZ2lzdGVyczo6eDIgIT0gSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBUM19ub3RfdHJhbXBs
ZWRfYnlfYXJnXzIpOwpAQCAtMzU1LDQ2ICszNTMsNTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGFyaXR5Rml4dXBHZW5lcmF0b3IoVk0qIHZtKQogewogICAgIEpTSW50ZXJmYWNlSklUIGppdCh2
bSk7CiAKLSAgICAvLyBXZSBlbnRlciB3aXRoIGZpeHVwIGNvdW50LCBpbiBhbGlnbmVkIHN0YWNr
IHVuaXRzLCBpbiByZWdUMCBhbmQgdGhlIHJldHVybiB0aHVuayBpbgotICAgIC8vIHJlZ1Q1IG9u
IDMyLWJpdCBhbmQgcmVnVDcgb24gNjQtYml0LgorICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAg
Y291bnQsIGluIGFsaWduZWQgc3RhY2sgdW5pdHMsIGluIGFyZ3VtZW50R1BSMCBhbmQgdGhlIHJl
dHVybiB0aHVuayBpbiBhcmd1bWVudEdQUjEKKyAgICAvLyBXZSBoYXZlIHRoZSBndWFyYW50ZWUg
dGhhdCBhMCwgYTEsIGEyLCB0MywgdDQgYW5kIHQ1IChvciB0MCBmb3IgV2luZG93cykgYXJlIGFs
bCBkaXN0aW5jdCA6LSkKICNpZiBVU0UoSlNWQUxVRTY0KQorI2lmIE9TKFdJTkRPV1MpCisgICAg
Y29uc3QgR1BSUmVnIGV4dHJhVGVtcCA9IEpTSW50ZXJmYWNlSklUOjpyZWdUMDsKKyNlbHNlCisg
ICAgY29uc3QgR1BSUmVnIGV4dHJhVGVtcCA9IEpTSW50ZXJmYWNlSklUOjpyZWdUNTsKKyNlbmRp
ZgogIyAgaWYgQ1BVKFg4Nl82NCkKICAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7
CiAjICBlbmRpZgotICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDApOwot
ICAgIGppdC5uZWc2NChKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotICAgIGppdC5tb3ZlKEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q2KTsKLSAg
ICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3Rlcikp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOworICAgIGppdC5sc2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRH
UFIwKTsKKyAgICBqaXQubmVnNjQoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CisgICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMpOworICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogc2l6
ZW9mKFJlZ2lzdGVyKSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOworICAgIGppdC5h
ZGQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsKIAotICAgIC8vIE1vdmUgY3Vy
cmVudCBmcmFtZSBkb3duIHJlZ1QwIG51bWJlciBvZiBzbG90cworICAgIC8vIE1vdmUgY3VycmVu
dCBmcmFtZSBkb3duIGFyZ3VtZW50R1BSMCBudW1iZXIgb2Ygc2xvdHMKICAgICBKU0ludGVyZmFj
ZUpJVDo6TGFiZWwgY29weUxvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5sb2FkNjQoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5zdG9yZTY0
KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVy
ZmFjZUpJVDo6cmVnVDYsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRp
bWVzRWlnaHQpKTsKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
OCksIEpTSW50ZXJmYWNlSklUOjpyZWdUNik7Ci0gICAgaml0LmJyYW5jaFN1YjMyKE1hY3JvQXNz
ZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7Ci0KLSAgICAvLyBGaWxsIGlu
IHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAotICAgIGppdC5tb3Zl
KEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQu
bW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTY0KFZhbHVlVW5kZWZpbmVkKSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBqaXQubG9hZDY0KEpTSW50ZXJm
YWNlSklUOjpyZWdUMywgZXh0cmFUZW1wKTsKKyAgICBqaXQuc3RvcmU2NChleHRyYVRlbXAsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFj
ZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAgIGpp
dC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QzKTsKKyAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQ
UjIpLmxpbmtUbyhjb3B5TG9vcCwgJmppdCk7CisKKyAgICAvLyBGaWxsIGluIGFyZ3VtZW50R1BS
MCAtIDEgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsK
KyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTY0KFZhbHVlVW5kZWZpbmVk
KSwgZXh0cmFUZW1wKTsKKyAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
MigxKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMik7CiAgICAgSlNJbnRlcmZhY2VKSVQ6
OkxhYmVsIGZpbGxVbmRlZmluZWRMb29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQuc3RvcmU2NChK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0KSk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDYpOwotICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKS5saW5rVG8oZmlsbFVuZGVmaW5lZExvb3AsICZqaXQpOworICAgIGppdC5z
dG9yZTY0KGV4dHJhVGVtcCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJ
VDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjAsIEpTSW50ZXJmYWNlSklUOjpU
aW1lc0VpZ2h0KSk7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMy
KDgpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOworICAgIGppdC5icmFuY2hBZGQzMihNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRl
cmZhY2VKSVQ6OmFyZ3VtZW50R1BSMikubGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsK
ICAgICAKICAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRl
ciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJ
VDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmxzaGlmdDY0KEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAg
aml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJh
bWVSZWdpc3Rlcik7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50
ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZh
Y2VKSVQ6OmFyZ3VtZW50R1BSMCwgZXh0cmFUZW1wKTsKKyAgICBqaXQubHNoaWZ0NjQoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgZXh0cmFUZW1wKTsKKyAgICBqaXQuYWRkUHRyKGV4
dHJhVGVtcCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRk
UHRyKGV4dHJhVGVtcCwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAog
ICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KLSAgICBqaXQubG9hZFB0cihKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICBqaXQuc3Rv
cmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q2LCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0KSk7CisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkp
LCBHUFJJbmZvOjpyZWdUNSk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Q1LCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VK
SVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICAKICAg
ICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgotICAgIGppdC5zdG9yZVB0cihHUFJJbmZv
OjpyZWdUNywgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBqaXQuc3RvcmVQ
dHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkp
OwogCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdU
NCk7CkBAIC00MDQsNDUgKzQwNyw0NSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1
cEdlbmVyYXRvcihWTSogdm0pCiAjICBpZiBDUFUoWDg2KQogICAgIGppdC5wb3AoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCi0gICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7Ci0gICAgaml0Lm5lZzMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CisgICAg
aml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOworICAgIGppdC5u
ZWczMihKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQubW92ZShKU0ludGVy
ZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAg
aml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyKTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJm
YWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVv
ZihSZWdpc3RlcikpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsKKyAgICBqaXQuYWRk
MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJT
aXplKSwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMik7CiAKLSAgICAvLyBNb3ZlIGN1cnJl
bnQgZnJhbWUgZG93biByZWdUMCBudW1iZXIgb2Ygc2xvdHMKKyAgICAvLyBNb3ZlIGN1cnJlbnQg
ZnJhbWUgZG93biBhcmd1bWVudEdQUjAgbnVtYmVyIG9mIHNsb3RzCiAgICAgSlNJbnRlcmZhY2VK
SVQ6OkxhYmVsIGNvcHlMb29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQubG9hZDMyKEpTSW50ZXJm
YWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuc3RvcmUzMihK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0KSk7Ci0gICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhKU0ludGVy
ZmFjZUpJVDo6cmVnVDMsIDQpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5zdG9y
ZTMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0lu
dGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6
OlRpbWVzRWlnaHQsIDQpKTsKKyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpyZWdUMywg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmUzMihKU0ludGVyZmFjZUpJVDo6
cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBK
U0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkp
OworICAgIGppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QzLCA0KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuc3RvcmUzMihKU0lu
dGVyZmFjZUpJVDo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6
VGltZXNFaWdodCwgNCkpOwogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQuYnJhbmNoU3ViMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKKyAgICBqaXQuYnJh
bmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVk
SW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpLmxpbmtUbyhjb3B5TG9vcCwg
JmppdCk7CiAKLSAgICAvLyBGaWxsIGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRo
IHVuZGVmaW5lZAotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0z
MigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICAvLyBGaWxsIGluIGFyZ3VtZW50R1BS
MCAtIDEgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsK
KyAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZh
Y2VKSVQ6OmFyZ3VtZW50R1BSMik7CiAgICAgSlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGZpbGxVbmRl
ZmluZWRMb29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKDApLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5zdG9yZTMyKEpT
SW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFj
ZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVz
RWlnaHQpKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6OlVuZGVmaW5lZFRhZyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LnN0b3Jl
MzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50
ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6
VGltZXNFaWdodCwgNCkpOworICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIoMCksIEpTSW50ZXJmYWNlSklUOjpyZWdUNSk7CisgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpy
ZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVz
RWlnaHQpKTsKKyAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6OlVuZGVmaW5lZFRhZyksIEpTSW50ZXJmYWNlSklUOjpyZWdUNSk7CisgICAgaml0LnN0b3Jl
MzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50
ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZh
Y2VKSVQ6OlRpbWVzRWlnaHQsIDQpKTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKLSAgICBqaXQuYnJhbmNo
QWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1t
MzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAm
aml0KTsKKyAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIp
LmxpbmtUbyhmaWxsVW5kZWZpbmVkTG9vcCwgJmppdCk7CiAKICAgICAvLyBBZGp1c3QgY2FsbCBm
cmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9pbnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFy
Z3MKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSk7Ci0gICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6
cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgaml0LmFkZFB0
cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q1KTsKKyAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAg
ICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKIAogICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4K
LSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86
OnJlZ1QxKTsKLSAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAs
IEpTSW50ZXJmYWNlSklUOjpUaW1lc0VpZ2h0KSk7CisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUNSk7CisgICAgaml0LnN0b3JlUHRy
KEdQUkluZm86OnJlZ1Q1LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklU
OjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRp
bWVzRWlnaHQpKTsKICAgICAKICAgICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgotICAg
IGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0
KCkpKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFt
ZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogICAgIAogIyAgaWYgQ1BVKFg4NikKICAgICBqaXQucHVz
aChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDEzNmM5MTYuLmE3MjczMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20KQEAgLTIxLDYgKzIxLDEyNiBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBDcmFzaCBjb3Vyc2Ugb24gdGhlIGxhbmd1YWdlIHRo
YXQgdGhpcyBpcyB3cml0dGVuIGluICh3aGljaCBJIGp1c3QgY2FsbAorIyAiYXNzZW1ibHkiIGV2
ZW4gdGhvdWdoIGl0J3MgbW9yZSB0aGFuIHRoYXQpOgorIworIyAtIE1vc3RseSBnYXMtc3R5bGUg
b3BlcmFuZCBvcmRlcmluZy4gVGhlIGxhc3Qgb3BlcmFuZCB0ZW5kcyB0byBiZSB0aGUKKyMgICBk
ZXN0aW5hdGlvbi4gU28gImEgOj0gYiIgaXMgd3JpdHRlbiBhcyAibW92IGIsIGEiLiBCdXQgdW5s
aWtlIGdhcywKKyMgICBjb21wYXJpc29ucyBhcmUgaW4tb3JkZXIsIHNvICJpZiAoYSA8IGIpIiBp
cyB3cml0dGVuIGFzCisjICAgImJpbHQgYSwgYiwgLi4uIi4KKyMKKyMgLSAiYiIgPSBieXRlLCAi
aCIgPSAxNi1iaXQgd29yZCwgImkiID0gMzItYml0IHdvcmQsICJwIiA9IHBvaW50ZXIuCisjICAg
Rm9yIDMyLWJpdCwgImkiIGFuZCAicCIgYXJlIGludGVyY2hhbmdlYWJsZSBleGNlcHQgd2hlbiBh
biBvcCBzdXBwb3J0cyBvbmUKKyMgICBidXQgbm90IHRoZSBvdGhlci4KKyMKKyMgLSBJbiBnZW5l
cmFsLCB2YWxpZCBvcGVyYW5kcyBmb3IgbWFjcm8gaW52b2NhdGlvbnMgYW5kIGluc3RydWN0aW9u
cyBhcmUKKyMgICByZWdpc3RlcnMgKGVnICJ0MCIpLCBhZGRyZXNzZXMgKGVnICI0W3QwXSIpLCBi
YXNlLWluZGV4IGFkZHJlc3NlcworIyAgIChlZyAiN1t0MCwgdDEsIDJdIiksIGFic29sdXRlIGFk
ZHJlc3NlcyAoZWcgIjB4YTAwMDAwMDBbXSIpLCBvciBsYWJlbHMKKyMgICAoZWcgIl9mb28iIG9y
ICIuZm9vIikuIE1hY3JvIGludm9jYXRpb25zIGNhbiBhbHNvIHRha2UgYW5vbnltb3VzCisjICAg
bWFjcm9zIGFzIG9wZXJhbmRzLiBJbnN0cnVjdGlvbnMgY2Fubm90IHRha2UgYW5vbnltb3VzIG1h
Y3Jvcy4KKyMKKyMgLSBMYWJlbHMgbXVzdCBoYXZlIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCBlaXRo
ZXIgIl8iIG9yICIuIi4gIEEgIi4iIGxhYmVsCisjICAgaXMgbG9jYWwgYW5kIGdldHMgcmVuYW1l
ZCBiZWZvcmUgY29kZSBnZW4gdG8gbWluaW1pemUgbmFtZXNwYWNlCisjICAgcG9sbHV0aW9uLiBB
ICJfIiBsYWJlbCBpcyBhbiBleHRlcm4gc3ltYm9sIChpLmUuICIuZ2xvYmwiKS4gVGhlICJfIgor
IyAgIG1heSBvciBtYXkgbm90IGJlIHJlbW92ZWQgZHVyaW5nIGNvZGUgZ2VuIGRlcGVuZGluZyBv
biB3aGV0aGVyIHRoZSBhc20KKyMgICBjb252ZW50aW9ucyBmb3IgQyBuYW1lIG1hbmdsaW5nIG9u
IHRoZSB0YXJnZXQgcGxhdGZvcm0gbWFuZGF0ZSBhICJfIgorIyAgIHByZWZpeC4KKyMKKyMgLSBB
ICJtYWNybyIgaXMgYSBsYW1iZGEgZXhwcmVzc2lvbiwgd2hpY2ggbWF5IGJlIGVpdGhlciBhbm9u
eW1vdXMgb3IKKyMgICBuYW1lZC4gQnV0IHRoaXMgaGFzIGNhdmVhdHMuICJtYWNybyIgY2FuIHRh
a2UgemVybyBvciBtb3JlIGFyZ3VtZW50cywKKyMgICB3aGljaCBtYXkgYmUgbWFjcm9zIG9yIGFu
eSB2YWxpZCBvcGVyYW5kcywgYnV0IGl0IGNhbiBvbmx5IHJldHVybgorIyAgIGNvZGUuIEJ1dCB5
b3UgY2FuIGRvIFR1cmluZy1jb21wbGV0ZSB0aGluZ3MgdmlhIGNvbnRpbnVhdGlvbiBwYXNzaW5n
CisjICAgc3R5bGU6ICJtYWNybyBmb28gKGEsIGIpIGIoYSwgYSkgZW5kIGZvbyhmb28sIGZvbyki
LiBBY3R1YWxseSwgZG9uJ3QgZG8KKyMgICB0aGF0LCBzaW5jZSB5b3UnbGwganVzdCBjcmFzaCB0
aGUgYXNzZW1ibGVyLgorIworIyAtIEFuICJpZiIgaXMgYSBjb25kaXRpb25hbCBvbiBzZXR0aW5n
cy4gQW55IGlkZW50aWZpZXIgc3VwcGxpZWQgaW4gdGhlCisjICAgcHJlZGljYXRlIG9mIGFuICJp
ZiIgaXMgYXNzdW1lZCB0byBiZSBhICNkZWZpbmUgdGhhdCBpcyBhdmFpbGFibGUKKyMgICBkdXJp
bmcgY29kZSBnZW4uIFNvIHlvdSBjYW4ndCB1c2UgImlmIiBmb3IgY29tcHV0YXRpb24gaW4gYSBt
YWNybywgYnV0CisjICAgeW91IGNhbiB1c2UgaXQgdG8gc2VsZWN0IGRpZmZlcmVudCBwaWVjZXMg
b2YgY29kZSBmb3IgZGlmZmVyZW50CisjICAgcGxhdGZvcm1zLgorIworIyAtIEFyZ3VtZW50cyB0
byBtYWNyb3MgZm9sbG93IGxleGljYWwgc2NvcGluZyByYXRoZXIgdGhhbiBkeW5hbWljIHNjb3Bp
bmcuCisjICAgQ29uc3QncyBhbHNvIGZvbGxvdyBsZXhpY2FsIHNjb3BpbmcgYW5kIG1heSBvdmVy
cmlkZSAoaGlkZSkgYXJndW1lbnRzCisjICAgb3Igb3RoZXIgY29uc3RzLiBBbGwgdmFyaWFibGVz
IChhcmd1bWVudHMgYW5kIGNvbnN0YW50cykgY2FuIGJlIGJvdW5kCisjICAgdG8gb3BlcmFuZHMu
IEFkZGl0aW9uYWxseSwgYXJndW1lbnRzIChidXQgbm90IGNvbnN0YW50cykgY2FuIGJlIGJvdW5k
CisjICAgdG8gbWFjcm9zLgorCisjIFRoZSBmb2xsb3dpbmcgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lz
dGVycyBhcmUgYXZhaWxhYmxlOgorIworIyAgLSBjZnIgYW5kIHNwIGhvbGQgdGhlIGNhbGwgZnJh
bWUgYW5kIChuYXRpdmUpIHN0YWNrIHBvaW50ZXIgcmVzcGVjdGl2ZWx5LgorIyAgVGhleSBhcmUg
Y2FsbGVlLXNhdmUgcmVnaXN0ZXJzLCBhbmQgZ3VhcmFudGVlZCB0byBiZSBkaXN0aW5jdCBmcm9t
IGFsbCBvdGhlcgorIyAgcmVnaXN0ZXJzIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgorIworIyAgLSBs
ciBpcyBkZWZpbmVkIG9uIG5vbi1YODYgYXJjaGl0ZWN0dXJlcyAoQVJNNjQsIEFSTXY3LCBBUk0s
CisjICBBUk12N19UUkFESVRJT05BTCwgTUlQUywgU0g0IGFuZCBDTE9PUCkgYW5kIGhvbGRzIHRo
ZSByZXR1cm4gUEMKKyMKKyMgIC0gcGMgaG9sZHMgdGhlIChuYXRpdmUpIHByb2dyYW0gY291bnRl
ciBvbiAzMi1iaXRzIEFSTSBhcmNoaXRlY3R1cmVzIChBUk0sCisjICBBUk12NywgQVJNdjdfVFJB
RElUSU9OQUwpCisjCisjICAtIHQwLCB0MSwgdDIsIHQzLCB0NCBhbmQgb3B0aW9uYWxseSB0NSBh
cmUgdGVtcG9yYXJ5IHJlZ2lzdGVycyB0aGF0IGNhbiBnZXQgdHJhc2hlZCBvbgorIyAgY2FsbHMs
IGFuZCBhcmUgcGFpcndpc2UgZGlzdGluY3QgcmVnaXN0ZXJzLiB0NCBob2xkcyB0aGUgSlMgcHJv
Z3JhbSBjb3VudGVyLCBzbyB1c2UKKyMgIHdpdGggY2F1dGlvbiBpbiBvcGNvZGVzIChhY3R1YWxs
eSwgZG9uJ3QgdXNlIGl0IGluIG9wY29kZXMgYXQgYWxsLCBleGNlcHQgYXMgUEMpLgorIworIyAg
LSByMCBhbmQgcjEgYXJlIHRoZSBwbGF0Zm9ybSdzIGN1c3RvbWFyeSByZXR1cm4gcmVnaXN0ZXJz
LCBhbmQgdGh1cyBhcmUKKyMgIHR3byBkaXN0aW5jdCByZWdpc3RlcnMKKyMKKyMgIC0gYTAsIGEx
LCBhMiBhbmQgYTMgYXJlIHRoZSBwbGF0Zm9ybSdzIGN1c3RvbWFyeSBhcmd1bWVudCByZWdpc3Rl
cnMsIGFuZAorIyAgdGh1cyBhcmUgcGFpcndpc2UgZGlzdGluY3QgcmVnaXN0ZXJzLiBCZSBtaW5k
ZnVsIHRoYXQ6CisjICAgICsgT24gWDg2LCB0aGVyZSBhcmUgbm8gYWN0dWFseSBhcmd1bWVudCBy
ZWdpc3RlcnMuIGEwIGFuZCBhMSBhcmUgZWR4IGFuZAorIyAgICBlY3ggZm9sbG93aW5nIHRoZSBm
YXN0Y2FsbCBjb252ZW50aW9uLCBidXQgeW91IHNob3VsZCBzdGlsbCB1c2UgdGhlIHN0YWNrCisj
ICAgIHRvIHBhc3MgeW91ciBhcmd1bWVudHMuIFRoZSBjQ2FsbDIgYW5kIGNDYWxsNCBtYWNyb3Mg
ZG8gdGhpcyBmb3IgeW91LgorIyAgICArIE9uIFg4Nl82NF9XSU4sIHlvdSBzaG91bGQgYWxsb2Nh
dGUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciB0aGUgYXJndW1lbnRzLAorIyAgICBhbmQgdGhlIHJl
dHVybiBjb252ZW50aW9uIGlzIHdlaXJkIGZvciA+IDggYnl0ZXMgdHlwZXMuIFRoZSBvbmx5IHBs
YWNlIHdlCisjICAgIHVzZSA+IDggYnl0ZXMgcmV0dXJuIHZhbHVlcyBpcyBvbiBhIGNDYWxsLCBh
bmQgY0NhbGwyIGFuZCBjQ2FsbDQgaGFuZGxlCisjICAgIHRoaXMgZm9yIHlvdS4KKyMKKyMgIC0g
VGhlIG9ubHkgcmVnaXN0ZXJzIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVyLXNhdmVkIGFyZSByMCwg
cjEsIGEwLCBhMSBhbmQgYTIsIGFuZAorIyAgeW91IHNob3VsZCBiZSBtaW5kZnVsIG9mIHRoYXQg
aW4gZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCBkaXJlY3RseSBmcm9tIEMuCisjICBJZiB5b3Ug
bmVlZCBtb3JlIHJlZ2lzdGVycywgeW91IHNob3VsZCBwdXNoIGFuZCBwb3AgdGhlbSBsaWtlIGEg
Z29vZAorIyAgYXNzZW1ibHkgY2l0aXplbiwgYmVjYXVzZSBhbnkgb3RoZXIgcmVnaXN0ZXIgd2ls
bCBiZSBjYWxsZWUtc2F2ZWQgb24gWDg2LgorIworIyBZb3UgY2FuIGFkZGl0aW9uYWxseSBhc3N1
bWU6CisjCisjICAtIGEzLCB0MiwgdDMsIHQ0IGFuZCB0NSBhcmUgbmV2ZXIgcmV0dXJuIHJlZ2lz
dGVyczsgdDAsIHQxLCBhMCwgYTEgYW5kIGEyCisjICBjYW4gYmUgcmV0dXJuIHJlZ2lzdGVycy4K
KyMKKyMgIC0gdDQgYW5kIHQ1IGFyZSBuZXZlciBhcmd1bWVudCByZWdpc3RlcnMsIHQzIGNhbiBv
bmx5IGJlIGEzLCB0MSBjYW4gb25seSBiZQorIyAgYTE7IGJ1dCB0MCBhbmQgdDIgY2FuIGJlIGVp
dGhlciBhMCBvciBhMi4KKyMKKyMgIC0gT24gNjQgYml0cywgY3NyMCwgY3NyMSwgY3NyMiBhbmQg
b3B0aW9uYWxseSBjc3IzLCBjc3I0LCBjc3I1IGFuZCBjc3I2CisjICBhcmUgYXZhaWxhYmxlIGFz
IGNhbGxlZS1zYXZlIHJlZ2lzdGVycy4KKyMgIGNzcjAgaXMgdXNlZCB0byBzdG9yZSB0aGUgUEMg
YmFzZSwgd2hpbGUgdGhlIGxhc3QgdHdvIGNzciByZWdpc3RlcnMgYXJlIHVzZWQKKyMgIHRvIHN0
b3JlIHNwZWNpYWwgdGFnIHZhbHVlcy4gRG9uJ3QgdXNlIHRoZW0gZm9yIGFueXRoaW5nIGVsc2Uu
CisjCisjIEFkZGl0aW9uYWwgcGxhdGZvcm0tc3BlY2lmaWMgZGV0YWlscyAoeW91IHNob3VsZG4n
dCByZWx5IG9uIHRoaXMgcmVtYWluaW5nCisjIHRydWUpOgorIworIyAgLSBGb3IgY29uc2lzdGVu
Y3kgd2l0aCB0aGUgYmFzZWxpbmUgSklULCB0MCBpcyBhbHdheXMgcjAgKGFuZCB0MSBpcyBhbHdh
eXMKKyMgIHIxIG9uIDMyIGJpdHMgcGxhdGZvcm1zKS4gWW91IHNob3VsZCB1c2UgdGhlIHIgdmVy
c2lvbiB3aGVuIHlvdSBuZWVkIHJldHVybgorIyAgcmVnaXN0ZXJzLCBhbmQgdGhlIHQgdmVyc2lv
biBvdGhlcndpc2U6IGNvZGUgdXNpbmcgdDAgKG9yIHQxKSBzaG91bGQgc3RpbGwKKyMgIHdvcmsg
aWYgc3dhcHBlZCB3aXRoIGUuZy4gdDMsIHdoaWxlIGNvZGUgdXNpbmcgcjAgKG9yIHIxKSBzaG91
bGQgbm90LiBUaGVyZQorIyAgKm1heSogYmUgbGVnYWN5IGNvZGUgcmVseWluZyBvbiB0aGlzLgor
IworIyAgLSBPbiBhbGwgcGxhdGZvcm1zIG90aGVyIHRoYW4gWDg2LCB0MCBjYW4gb25seSBiZSBh
MCBhbmQgdDIgY2FuIG9ubHkgYmUgYTIuCisjCisjICAtIE9uIGFsbCBwbGF0Zm9ybXMgb3RoZXIg
dGhhbiBYODYgYW5kIFg4Nl82NCwgYTIgaXMgbm90IGEgcmV0dXJuIHJlZ2lzdGVyLgorIyAgYTIg
aXMgcjAgb24gWDg2IChiZWNhdXNlIHdlIGhhdmUgc28gZmV3IHJlZ2lzdGVycykgYW5kIHIxIG9u
IFg4Nl82NCAoYmVjYXVzZQorIyAgdGhlIEFCSSBlbmZvcmNlcyBpdCkuCisjCisjIFRoZSBmb2xs
b3dpbmcgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGU6CisjCisjICAtIGZ0
MC1mdDUgYXJlIHRlbXBvcmFyeSBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMgdGhhdCBnZXQgdHJh
c2hlZCBvbiBjYWxscywKKyMgIGFuZCBhcmUgcGFpcndpc2UgZGlzdGluY3QuCisjCisjICAtIGZh
MCBhbmQgZmExIGFyZSB0aGUgcGxhdGZvcm0ncyBjdXN0b21hcnkgZmxvYXRpbmctcG9pbnQgYXJn
dW1lbnQKKyMgIHJlZ2lzdGVycywgYW5kIGFyZSBib3RoIGRpc3RpbmN0LiBPbiA2NC1iaXRzIHBs
YXRmb3JtcywgZmEyIGFuZCBmYTMgYXJlCisjICBhZGRpdGlvbmFsIGZsb2F0aW5nLXBvaW50IGFy
Z3VtZW50IHJlZ2lzdGVycy4KKyMKKyMgIC0gZnIgaXMgdGhlIHBsYXRmb3JtJ3MgY3VzdG9tYXJ5
IGZsb2F0aW5nLXBvaW50IHJldHVybiByZWdpc3RlcgorIworIyBZb3UgY2FuIGFzc3VtZSB0aGF0
IGZ0MS1mdDUgb3IgZmExLWZhMyBhcmUgbmV2ZXIgZnIsIGFuZCB0aGF0IGZ0WCBpcyBuZXZlcgor
IyBmYVkgaWYgWCAhPSBZLgorCiAjIEZpcnN0IGNvbWUgdGhlIGNvbW1vbiBwcm90b2NvbHMgdGhh
dCBib3RoIGludGVycHJldGVycyB1c2UuIE5vdGUgdGhhdCBlYWNoCiAjIG9mIHRoZXNlIG11c3Qg
aGF2ZSBhbiBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwCiAKQEAgLTEwNywxNiArMjI3LDIyIEBA
IGNvbnN0IElzSW52YWxpZGF0ZWQgPSAyCiBpZiBKU1ZBTFVFNjQKICAgICAjIC0gVXNlIGEgcGFp
ciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50IHRoZSBQQzogb25lIHJlZ2lzdGVyIGZvciB0aGUK
ICAgICAjICAgYmFzZSBvZiB0aGUgYnl0ZWNvZGVzLCBhbmQgb25lIHJlZ2lzdGVyIGZvciB0aGUg
aW5kZXguCi0gICAgIyAtIFRoZSBQQyBiYXNlIChvciBQQiBmb3Igc2hvcnQpIHNob3VsZCBiZSBz
dG9yZWQgaW4gdGhlIGNzci4gSXQgd2lsbAotICAgICMgICBnZXQgY2xvYmJlcmVkIG9uIGNhbGxz
IHRvIG90aGVyIEpTIGNvZGUsIGJ1dCB3aWxsIGdldCBzYXZlZCBvbiBjYWxscwotICAgICMgICB0
byBDIGZ1bmN0aW9ucy4KKyAgICAjIC0gVGhlIFBDIGJhc2UgKG9yIFBCIGZvciBzaG9ydCkgbXVz
dCBiZSBzdG9yZWQgaW4gYSBjYWxsZWUtc2F2ZSByZWdpc3Rlci4KICAgICAjIC0gQyBjYWxscyBh
cmUgc3RpbGwgZ2l2ZW4gdGhlIEluc3RydWN0aW9uKiByYXRoZXIgdGhhbiB0aGUgUEMgaW5kZXgu
CiAgICAgIyAgIFRoaXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwgYW5kIGEgc3Vi
IGFmdGVyLgotICAgIGNvbnN0IFBDID0gdDUKLSAgICBjb25zdCBQQiA9IHQ2Ci0gICAgY29uc3Qg
dGFnVHlwZU51bWJlciA9IGNzcjEKLSAgICBjb25zdCB0YWdNYXNrID0gY3NyMgotICAgIAorICAg
IGNvbnN0IFBDID0gdDQKKyAgICBjb25zdCBQQiA9IGNzcjAKKyAgICBpZiBBUk02NAorICAgICAg
ICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMQorICAgICAgICBjb25zdCB0YWdNYXNrID0gY3Ny
MgorICAgIGVsc2lmIFg4Nl82NAorICAgICAgICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMwor
ICAgICAgICBjb25zdCB0YWdNYXNrID0gY3NyNAorICAgIGVsc2lmIFg4Nl82NF9XSU4KKyAgICAg
ICAgY29uc3QgdGFnVHlwZU51bWJlciA9IGNzcjUKKyAgICAgICAgY29uc3QgdGFnTWFzayA9IGNz
cjYKKyAgICBlbmQKKwogICAgIG1hY3JvIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihvZmZzZXQsIGRl
c3QpCiAgICAgICAgIGxvYWRpcyBvZmZzZXQgKiA4W1BCLCBQQywgOF0sIGRlc3QKICAgICBlbmQK
QEAgLTEzMCw3ICsyNTYsNyBAQCBpZiBKU1ZBTFVFNjQKICAgICBlbmQKIAogZWxzZQotICAgIGNv
bnN0IFBDID0gdDUKKyAgICBjb25zdCBQQyA9IHQ0CiAgICAgbWFjcm8gbG9hZGlzRnJvbUluc3Ry
dWN0aW9uKG9mZnNldCwgZGVzdCkKICAgICAgICAgbG9hZGlzIG9mZnNldCAqIDRbUENdLCBkZXN0
CiAgICAgZW5kCkBAIC0xNDAsNiArMjY2LDEyIEBAIGVsc2UKICAgICBlbmQKIGVuZAogCitpZiBY
ODZfNjRfV0lOCisgICAgY29uc3QgZXh0cmFUZW1wUmVnID0gdDAKK2Vsc2UKKyAgICBjb25zdCBl
eHRyYVRlbXBSZWcgPSB0NQorZW5kCisKICMgQ29uc3RhbnRzIGZvciByZWFzb25pbmcgYWJvdXQg
dmFsdWUgcmVwcmVzZW50YXRpb24uCiBpZiBCSUdfRU5ESUFOCiAgICAgY29uc3QgVGFnT2Zmc2V0
ID0gMApAQCAtNDYwLDEyICs1OTIsMTIgQEAgZW5kCiAKIG1hY3JvIHJlc3RvcmVTdGFja1BvaW50
ZXJBZnRlckNhbGwoKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgotICAgIGdldEZyYW1l
UmVnaXN0ZXJTaXplRm9yQ29kZUJsb2NrKHQyLCB0NCkKKyAgICBnZXRGcmFtZVJlZ2lzdGVyU2l6
ZUZvckNvZGVCbG9jayh0MiwgdDIpCiAgICAgaWYgQVJNdjcKLSAgICAgICAgc3VicCBjZnIsIHQ0
LCB0NAotICAgICAgICBtb3ZlIHQ0LCBzcAorICAgICAgICBzdWJwIGNmciwgdDIsIHQyCisgICAg
ICAgIG1vdmUgdDIsIHNwCiAgICAgZWxzZQotICAgICAgICBzdWJwIGNmciwgdDQsIHNwCisgICAg
ICAgIHN1YnAgY2ZyLCB0Miwgc3AKICAgICBlbmQKIGVuZAogCkBAIC00ODksMTMgKzYyMSwxMyBA
QCBlbmQKIG1hY3JvIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCkKICAgICBjYWxsQ2FsbFNsb3dQ
YXRoKAogICAgICAgICBzbG93UGF0aCwKLSAgICAgICAgbWFjcm8gKGNhbGxlZSkKLSAgICAgICAg
ICAgIGJ0cHogdDEsIC5kb250VXBkYXRlU1AKKyAgICAgICAgbWFjcm8gKGNhbGxlZSwgY2FsbGVl
RnJhbWUpCisgICAgICAgICAgICBidHB6IGNhbGxlZUZyYW1lLCAuZG9udFVwZGF0ZVNQCiAgICAg
ICAgICAgICBpZiBBUk12NwotICAgICAgICAgICAgICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1Np
emUsIHQxLCB0MQotICAgICAgICAgICAgICAgIG1vdmUgdDEsIHNwCisgICAgICAgICAgICAgICAg
YWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgY2FsbGVlRnJhbWUsIGNhbGxlZUZyYW1lCisgICAg
ICAgICAgICAgICAgbW92ZSBjYWxsZWVGcmFtZSwgc3AKICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0MSwgc3AKKyAgICAgICAgICAg
ICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCBjYWxsZWVGcmFtZSwgc3AKICAgICAgICAg
ICAgIGVuZAogICAgICAgICAuZG9udFVwZGF0ZVNQOgogICAgICAgICAgICAgaWYgQ19MT09QCkBA
IC01OTEsMTUgKzcyMywxOSBAQCBtYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVC
bG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCiAgICAgaWYgbm90IENfTE9P
UAogICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBC
YXNlbGluZUV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQogICAgICAg
ICBpZiBKU1ZBTFVFNjQKLSAgICAgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykK
KyAgICAgICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICAgICAgbW92ZSBQQywgYTEKKyAgICAg
ICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgIyBX
ZSBhcmUgYWZ0ZXIgdGhlIGZ1bmN0aW9uIHByb2xvZ3VlLCBidXQgYmVmb3JlIHdlIGhhdmUgc2V0
IHVwIHNwIGZyb20gdGhlIENvZGVCbG9jay4KICAgICAgICAgICAgICMgVGVtcG9yYXJpbHkgYWxp
Z24gc3RhY2sgcG9pbnRlciBmb3IgdGhpcyBjYWxsLgogICAgICAgICAgICAgc3VicCA4LCBzcAot
ICAgICAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICAgICAgbW92
ZSBjZnIsIGEwCisgICAgICAgICAgICBtb3ZlIFBDLCBhMQorICAgICAgICAgICAgY0NhbGwyKG9z
clNsb3dQYXRoKQogICAgICAgICAgICAgYWRkcCA4LCBzcAogICAgICAgICBlbmQKLSAgICAgICAg
YnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAgbW92
ZSBjZnIsIHNwICMgcmVzdG9yZSB0aGUgcHJldmlvdXMgc3AKICAgICAgICAgIyBwb3AgdGhlIGNh
bGxlckZyYW1lIHNpbmNlIHdlIHdpbGwganVtcCB0byBhIGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8g
c2F2ZSBpdAogICAgICAgICBpZiBBUk02NApAQCAtNjEwLDcgKzc0Niw3IEBAIG1hY3JvIHByb2xv
Z3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VT
bG93UGF0aCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcG9wIGNmcgogICAgICAgICBlbmQK
LSAgICAgICAgam1wIHQwCisgICAgICAgIGptcCByMAogICAgIC5yZWNvdmVyOgogICAgICAgICBj
b2RlQmxvY2tHZXR0ZXIodDEpCiAgICAgLmNvbnRpbnVlOgpAQCAtNjM1LDggKzc3MSw4IEBAIG1h
Y3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0
aCwgdHJhY2VTbG93UGF0aCkKICAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVk
IHRvIGNhbGwgYSBzbG93X3BhdGguCiAgICAgc3VicCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCwgc3AgIyBTZXQgdXAgdGVtcG9yYXJ5IHN0YWNrIHBvaW50ZXIgZm9yIGNhbGwKICAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3N0YWNrX2NoZWNrKQotICAgIGJwZXEgdDEsIDAsIC5zdGFja0hl
aWdodE9LR2V0Q29kZUJsb2NrCi0gICAgbW92ZSB0MSwgY2ZyCisgICAgYnBlcSByMSwgMCwgLnN0
YWNrSGVpZ2h0T0tHZXRDb2RlQmxvY2sKKyAgICBtb3ZlIHIxLCBjZnIKICAgICBkaXNwYXRjaCgw
KSAjIEdvIHRvIGV4Y2VwdGlvbiBoYW5kbGVyIGluIFBDCiAKIC5zdGFja0hlaWdodE9LR2V0Q29k
ZUJsb2NrOgpAQCAtNzMzLDI3ICs4NjksMTQgQEAgaWYgbm90IENfTE9PUAogICAgICMgdm9pZCBz
YW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKiB2bSkKICAgICBnbG9iYWwgX3Nhbml0aXplU3RhY2tG
b3JWTUltcGwKICAgICBfc2FuaXRpemVTdGFja0ZvclZNSW1wbDoKLSAgICAgICAgaWYgWDg2XzY0
Ci0gICAgICAgICAgICBjb25zdCB2bSA9IHQ0Ci0gICAgICAgICAgICBjb25zdCBhZGRyZXNzID0g
dDEKLSAgICAgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCi0gICAgICAgIGVsc2lmIFg4Nl82
NF9XSU4KLSAgICAgICAgICAgIGNvbnN0IHZtID0gdDIKLSAgICAgICAgICAgIGNvbnN0IGFkZHJl
c3MgPSB0MQotICAgICAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKLSAgICAgICAgZWxzaWYg
WDg2IG9yIFg4Nl9XSU4KLSAgICAgICAgICAgIGNvbnN0IHZtID0gdDIKLSAgICAgICAgICAgIGNv
bnN0IGFkZHJlc3MgPSB0MQotICAgICAgICAgICAgY29uc3QgemVyb1ZhbHVlID0gdDAKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29uc3Qgdm0gPSBhMAotICAgICAgICAgICAgY29uc3QgYWRk
cmVzcyA9IHQxCi0gICAgICAgICAgICBjb25zdCB6ZXJvVmFsdWUgPSB0MgotICAgICAgICBlbmQK
LSAgICAKKyAgICAgICAgIyBXZSBuZWVkIHRocmVlIG5vbi1hbGlhc2VkIGNhbGxlci1zYXZlIHJl
Z2lzdGVycy4gV2UgYXJlIGd1YXJhbnRlZWQKKyAgICAgICAgIyB0aGlzIGZvciBhMCwgYTEgYW5k
IGEyIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgogICAgICAgICBpZiBYODYgb3IgWDg2X1dJTgotICAg
ICAgICAgICAgbG9hZHAgNFtzcF0sIHZtCisgICAgICAgICAgICBsb2FkcCA0W3NwXSwgYTAKICAg
ICAgICAgZW5kCisgICAgICAgIGNvbnN0IHZtID0gYTAKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9
IGExCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IGEyCiAgICAgCiAgICAgICAgIGxvYWRwIFZN
OjptX2xhc3RTdGFja1RvcFt2bV0sIGFkZHJlc3MKICAgICAgICAgYnBiZXEgc3AsIGFkZHJlc3Ms
IC56ZXJvRmlsbERvbmUKQEAgLTc3MiwyMiArODk1LDExIEBAIGlmIG5vdCBDX0xPT1AKICAgICAj
IFZNRW50cnlSZWNvcmQqIHZtRW50cnlSZWNvcmQoY29uc3QgVk1FbnRyeUZyYW1lKiBlbnRyeUZy
YW1lKQogICAgIGdsb2JhbCBfdm1FbnRyeVJlY29yZAogICAgIF92bUVudHJ5UmVjb3JkOgotICAg
ICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgIGNvbnN0IGVudHJ5RnJhbWUgPSB0NAotICAgICAg
ICAgICAgY29uc3QgcmVzdWx0ID0gdDAKLSAgICAgICAgZWxzaWYgWDg2IG9yIFg4Nl9XSU4gb3Ig
WDg2XzY0X1dJTgotICAgICAgICAgICAgY29uc3QgZW50cnlGcmFtZSA9IHQyCi0gICAgICAgICAg
ICBjb25zdCByZXN1bHQgPSB0MAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdCBlbnRy
eUZyYW1lID0gYTAKLSAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHQwCi0gICAgICAgIGVuZAot
ICAgIAogICAgICAgICBpZiBYODYgb3IgWDg2X1dJTgotICAgICAgICAgICAgbG9hZHAgNFtzcF0s
IGVudHJ5RnJhbWUKKyAgICAgICAgICAgIGxvYWRwIDRbc3BdLCBhMAogICAgICAgICBlbmQKLSAg
ICAKLSAgICAgICAgdm1FbnRyeVJlY29yZChlbnRyeUZyYW1lLCByZXN1bHQpCisKKyAgICAgICAg
dm1FbnRyeVJlY29yZChhMCwgcjApCiAgICAgICAgIHJldAogZW5kCiAKQEAgLTc5NSwxNyArOTA3
LDEyIEBAIGlmIENfTE9PUAogICAgICMgRHVtbXkgZW50cnkgcG9pbnQgdGhlIEMgTG9vcCB1c2Vz
IHRvIGluaXRpYWxpemUuCiAgICAgX2xsaW50X2VudHJ5OgogICAgICAgICBjcmFzaCgpCi0gICAg
ZWxzZQorZWxzZQogICAgIG1hY3JvIGluaXRQQ1JlbGF0aXZlKHBjQmFzZSkKLSAgICAgICAgaWYg
WDg2XzY0IG9yIFg4Nl82NF9XSU4KKyAgICAgICAgaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4gb3Ig
WDg2IG9yIFg4Nl9XSU4KICAgICAgICAgICAgIGNhbGwgX3JlbGF0aXZlUENCYXNlCiAgICAgICAg
IF9yZWxhdGl2ZVBDQmFzZToKICAgICAgICAgICAgIHBvcCBwY0Jhc2UKLSAgICAgICAgZWxzaWYg
WDg2IG9yIFg4Nl9XSU4KLSAgICAgICAgICAgIGNhbGwgX3JlbGF0aXZlUENCYXNlCi0gICAgICAg
IF9yZWxhdGl2ZVBDQmFzZToKLSAgICAgICAgICAgIHBvcCBwY0Jhc2UKLSAgICAgICAgICAgIGxv
YWRwIDIwW3NwXSwgdDQKICAgICAgICAgZWxzaWYgQVJNNjQKICAgICAgICAgZWxzaWYgQVJNdjcK
ICAgICAgICAgX3JlbGF0aXZlUENCYXNlOgpAQCAtODI2LDQxICs5MzMsMzkgQEAgaWYgQ19MT09Q
CiAgICAgICAgIGVuZAogZW5kCiAKKyMgVGhlIFBDIGJhc2UgaXMgaW4gdDEsIGFzIHRoaXMgaXMg
d2hhdCBfbGxpbnRfZW50cnkgbGVhdmVzIGJlaGluZCB0aHJvdWdoCisjIGluaXRQQ1JlbGF0aXZl
KHQxKQogbWFjcm8gc2V0RW50cnlBZGRyZXNzKGluZGV4LCBsYWJlbCkKLSAgICBpZiBYODZfNjQK
LSAgICAgICAgbGVhcCAobGFiZWwgLSBfcmVsYXRpdmVQQ0Jhc2UpW3QxXSwgdDAKLSAgICAgICAg
bW92ZSBpbmRleCwgdDIKLSAgICAgICAgc3RvcmVwIHQwLCBbdDQsIHQyLCA4XQotICAgIGVsc2lm
IFg4Nl82NF9XSU4KLSAgICAgICAgbGVhcCAobGFiZWwgLSBfcmVsYXRpdmVQQ0Jhc2UpW3QxXSwg
dDAKKyAgICBpZiBYODZfNjQgb3IgWDg2XzY0X1dJTgorICAgICAgICBsZWFwIChsYWJlbCAtIF9y
ZWxhdGl2ZVBDQmFzZSlbdDFdLCB0MwogICAgICAgICBtb3ZlIGluZGV4LCB0NAotICAgICAgICBz
dG9yZXAgdDAsIFt0MiwgdDQsIDhdCisgICAgICAgIHN0b3JlcCB0MywgW2EwLCB0NCwgOF0KICAg
ICBlbHNpZiBYODYgb3IgWDg2X1dJTgotICAgICAgICBsZWFwIChsYWJlbCAtIF9yZWxhdGl2ZVBD
QmFzZSlbdDFdLCB0MAotICAgICAgICBtb3ZlIGluZGV4LCB0MgotICAgICAgICBzdG9yZXAgdDAs
IFt0NCwgdDIsIDRdCisgICAgICAgIGxlYXAgKGxhYmVsIC0gX3JlbGF0aXZlUENCYXNlKVt0MV0s
IHQzCisgICAgICAgIG1vdmUgaW5kZXgsIHQ0CisgICAgICAgIHN0b3JlcCB0MywgW2EwLCB0NCwg
NF0KICAgICBlbHNpZiBBUk02NAogICAgICAgICBwY3J0b2FkZHIgbGFiZWwsIHQxCi0gICAgICAg
IG1vdmUgaW5kZXgsIHQyCi0gICAgICAgIHN0b3JlcCB0MSwgW2EwLCB0MiwgOF0KKyAgICAgICAg
bW92ZSBpbmRleCwgdDQKKyAgICAgICAgc3RvcmVwIHQxLCBbYTAsIHQ0LCA4XQogICAgIGVsc2lm
IEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAotICAgICAgICBtdmxibCAobGFiZWwg
LSBfcmVsYXRpdmVQQ0Jhc2UpLCB0MgotICAgICAgICBhZGRwIHQyLCB0MSwgdDIKKyAgICAgICAg
bXZsYmwgKGxhYmVsIC0gX3JlbGF0aXZlUENCYXNlKSwgdDQKKyAgICAgICAgYWRkcCB0NCwgdDEs
IHQ0CiAgICAgICAgIG1vdmUgaW5kZXgsIHQzCi0gICAgICAgIHN0b3JlcCB0MiwgW2EwLCB0Mywg
NF0KKyAgICAgICAgc3RvcmVwIHQ0LCBbYTAsIHQzLCA0XQogICAgIGVsc2lmIFNINAotICAgICAg
ICBtb3ZlIChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSksIHQyCi0gICAgICAgIGFkZHAgdDIsIHQx
LCB0MgorICAgICAgICBtb3ZlIChsYWJlbCAtIF9yZWxhdGl2ZVBDQmFzZSksIHQ0CisgICAgICAg
IGFkZHAgdDQsIHQxLCB0NAogICAgICAgICBtb3ZlIGluZGV4LCB0MwotICAgICAgICBzdG9yZXAg
dDIsIFthMCwgdDMsIDRdCisgICAgICAgIHN0b3JlcCB0NCwgW2EwLCB0MywgNF0KICAgICAgICAg
Zmx1c2hjcCAjIEZvcmNlIGNvbnN0YW50IHBvb2wgZmx1c2ggdG8gYXZvaWQgInBjcmVsIHRvbyBm
YXIiIGxpbmsgZXJyb3IuCiAgICAgZWxzaWYgTUlQUwotICAgICAgICBsYSBsYWJlbCwgdDIKKyAg
ICAgICAgbGEgbGFiZWwsIHQ0CiAgICAgICAgIGxhIF9yZWxhdGl2ZVBDQmFzZSwgdDMKLSAgICAg
ICAgc3VicCB0MywgdDIKLSAgICAgICAgYWRkcCB0MiwgdDEsIHQyCisgICAgICAgIHN1YnAgdDMs
IHQ0CisgICAgICAgIGFkZHAgdDQsIHQxLCB0NAogICAgICAgICBtb3ZlIGluZGV4LCB0MwotICAg
ICAgICBzdG9yZXAgdDIsIFthMCwgdDMsIDRdCisgICAgICAgIHN0b3JlcCB0NCwgW2EwLCB0Mywg
NF0KICAgICBlbmQKIGVuZAogCkBAIC04NjksNiArOTc0LDkgQEAgZ2xvYmFsIF9sbGludF9lbnRy
eQogX2xsaW50X2VudHJ5OgogICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQogICAgIHB1c2hDYWxsZWVT
YXZlcygpCisgICAgaWYgWDg2IG9yIFg4Nl9XSU4KKyAgICAgICAgbG9hZHAgMjBbc3BdLCBhMAor
ICAgIGVuZAogICAgIGluaXRQQ1JlbGF0aXZlKHQxKQogCiAgICAgIyBJbmNsdWRlIGdlbmVyYXRl
ZCBieXRlY29kZSBpbml0aWFsaXphdGlvbiBmaWxlLgpAQCAtMTIwMywxNiArMTMxMSwxNiBAQCBf
bGxpbnRfb3BfY2FsbF92YXJhcmdzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKQogICAgIGJyYW5j
aElmRXhjZXB0aW9uKF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lKQotICAg
ICMgY2FsbGVlRnJhbWUgaW4gdDEKKyAgICAjIGNhbGxlZUZyYW1lIGluIHIxCiAgICAgaWYgSlNW
QUxVRTY0Ci0gICAgICAgIG1vdmUgdDEsIHNwCisgICAgICAgIG1vdmUgcjEsIHNwCiAgICAgZWxz
ZQogICAgICAgICAjIFRoZSBjYWxsZWVGcmFtZSBpcyBub3Qgc3RhY2sgYWxpZ25lZCwgbW92ZSBk
b3duIGJ5IENhbGxlckZyYW1lQW5kUENTaXplIHRvIGFsaWduCiAgICAgICAgIGlmIEFSTXY3Ci0g
ICAgICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdDIKKyAgICAgICAgICAg
IHN1YnAgcjEsIENhbGxlckZyYW1lQW5kUENTaXplLCB0MgogICAgICAgICAgICAgbW92ZSB0Miwg
c3AKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc3VicCB0MSwgQ2FsbGVyRnJhbWVBbmRQQ1Np
emUsIHNwCisgICAgICAgICAgICBzdWJwIHIxLCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKICAg
ICAgICAgZW5kCiAgICAgZW5kCiAgICAgc2xvd1BhdGhGb3JDYWxsKF9sbGludF9zbG93X3BhdGhf
Y2FsbF92YXJhcmdzKQpAQCAtMTIyMSwxNiArMTMyOSwxNiBAQCBfbGxpbnRfb3BfY29uc3RydWN0
X3ZhcmFyZ3M6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3NpemVfZnJhbWVfZm9yX3ZhcmFyZ3MpCiAgICAgYnJhbmNoSWZFeGNlcHRpb24o
X2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUpCi0gICAgIyBjYWxsZWVGcmFt
ZSBpbiB0MQorICAgICMgY2FsbGVlRnJhbWUgaW4gcjEKICAgICBpZiBKU1ZBTFVFNjQKLSAgICAg
ICAgbW92ZSB0MSwgc3AKKyAgICAgICAgbW92ZSByMSwgc3AKICAgICBlbHNlCiAgICAgICAgICMg
VGhlIGNhbGxlZUZyYW1lIGlzIG5vdCBzdGFjayBhbGlnbmVkLCBtb3ZlIGRvd24gYnkgQ2FsbGVy
RnJhbWVBbmRQQ1NpemUgdG8gYWxpZ24KICAgICAgICAgaWYgQVJNdjcKLSAgICAgICAgICAgIHN1
YnAgdDEsIENhbGxlckZyYW1lQW5kUENTaXplLCB0MgorICAgICAgICAgICAgc3VicCByMSwgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHQyCiAgICAgICAgICAgICBtb3ZlIHQyLCBzcAogICAgICAgICBl
bHNlCi0gICAgICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAg
ICAgICAgIHN1YnAgcjEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAogICAgICAgICBlbmQKICAg
ICBlbmQKICAgICBzbG93UGF0aEZvckNhbGwoX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3RfdmFy
YXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggN2VmNmI4Ny4uZmUwYWZiNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KQEAgLTIyLDU0ICsyMiw2IEBACiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogCi0jIENyYXNoIGNvdXJzZSBvbiB0aGUgbGFuZ3VhZ2UgdGhhdCB0aGlzIGlzIHdyaXR0
ZW4gaW4gKHdoaWNoIEkganVzdCBjYWxsCi0jICJhc3NlbWJseSIgZXZlbiB0aG91Z2ggaXQncyBt
b3JlIHRoYW4gdGhhdCk6Ci0jCi0jIC0gTW9zdGx5IGdhcy1zdHlsZSBvcGVyYW5kIG9yZGVyaW5n
LiBUaGUgbGFzdCBvcGVyYW5kIHRlbmRzIHRvIGJlIHRoZQotIyAgIGRlc3RpbmF0aW9uLiBTbyAi
YSA6PSBiIiBpcyB3cml0dGVuIGFzICJtb3YgYiwgYSIuIEJ1dCB1bmxpa2UgZ2FzLAotIyAgIGNv
bXBhcmlzb25zIGFyZSBpbi1vcmRlciwgc28gImlmIChhIDwgYikiIGlzIHdyaXR0ZW4gYXMKLSMg
ICAiYmlsdCBhLCBiLCAuLi4iLgotIwotIyAtICJiIiA9IGJ5dGUsICJoIiA9IDE2LWJpdCB3b3Jk
LCAiaSIgPSAzMi1iaXQgd29yZCwgInAiID0gcG9pbnRlci4KLSMgICBDdXJyZW50bHkgdGhpcyBp
cyBqdXN0IDMyLWJpdCBzbyAiaSIgYW5kICJwIiBhcmUgaW50ZXJjaGFuZ2VhYmxlCi0jICAgZXhj
ZXB0IHdoZW4gYW4gb3Agc3VwcG9ydHMgb25lIGJ1dCBub3QgdGhlIG90aGVyLgotIwotIyAtIElu
IGdlbmVyYWwsIHZhbGlkIG9wZXJhbmRzIGZvciBtYWNybyBpbnZvY2F0aW9ucyBhbmQgaW5zdHJ1
Y3Rpb25zIGFyZQotIyAgIHJlZ2lzdGVycyAoZWcgInQwIiksIGFkZHJlc3NlcyAoZWcgIjRbdDBd
IiksIGJhc2UtaW5kZXggYWRkcmVzc2VzCi0jICAgKGVnICI3W3QwLCB0MSwgMl0iKSwgYWJzb2x1
dGUgYWRkcmVzc2VzIChlZyAiMHhhMDAwMDAwMFtdIiksIG9yIGxhYmVscwotIyAgIChlZyAiX2Zv
byIgb3IgIi5mb28iKS4gTWFjcm8gaW52b2NhdGlvbnMgY2FuIGFsc28gdGFrZSBhbm9ueW1vdXMK
LSMgICBtYWNyb3MgYXMgb3BlcmFuZHMuIEluc3RydWN0aW9ucyBjYW5ub3QgdGFrZSBhbm9ueW1v
dXMgbWFjcm9zLgotIwotIyAtIExhYmVscyBtdXN0IGhhdmUgbmFtZXMgdGhhdCBiZWdpbiB3aXRo
IGVpdGhlciAiXyIgb3IgIi4iLiAgQSAiLiIgbGFiZWwKLSMgICBpcyBsb2NhbCBhbmQgZ2V0cyBy
ZW5hbWVkIGJlZm9yZSBjb2RlIGdlbiB0byBtaW5pbWl6ZSBuYW1lc3BhY2UKLSMgICBwb2xsdXRp
b24uIEEgIl8iIGxhYmVsIGlzIGFuIGV4dGVybiBzeW1ib2wgKGkuZS4gIi5nbG9ibCIpLiBUaGUg
Il8iCi0jICAgbWF5IG9yIG1heSBub3QgYmUgcmVtb3ZlZCBkdXJpbmcgY29kZSBnZW4gZGVwZW5k
aW5nIG9uIHdoZXRoZXIgdGhlIGFzbQotIyAgIGNvbnZlbnRpb25zIGZvciBDIG5hbWUgbWFuZ2xp
bmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSBtYW5kYXRlIGEgIl8iCi0jICAgcHJlZml4LgotIwot
IyAtIEEgIm1hY3JvIiBpcyBhIGxhbWJkYSBleHByZXNzaW9uLCB3aGljaCBtYXkgYmUgZWl0aGVy
IGFub255bW91cyBvcgotIyAgIG5hbWVkLiBCdXQgdGhpcyBoYXMgY2F2ZWF0cy4gIm1hY3JvIiBj
YW4gdGFrZSB6ZXJvIG9yIG1vcmUgYXJndW1lbnRzLAotIyAgIHdoaWNoIG1heSBiZSBtYWNyb3Mg
b3IgYW55IHZhbGlkIG9wZXJhbmRzLCBidXQgaXQgY2FuIG9ubHkgcmV0dXJuCi0jICAgY29kZS4g
QnV0IHlvdSBjYW4gZG8gVHVyaW5nLWNvbXBsZXRlIHRoaW5ncyB2aWEgY29udGludWF0aW9uIHBh
c3NpbmcKLSMgICBzdHlsZTogIm1hY3JvIGZvbyAoYSwgYikgYihhKSBlbmQgZm9vKGZvbywgZm9v
KSIuIEFjdHVhbGx5LCBkb24ndCBkbwotIyAgIHRoYXQsIHNpbmNlIHlvdSdsbCBqdXN0IGNyYXNo
IHRoZSBhc3NlbWJsZXIuCi0jCi0jIC0gQW4gImlmIiBpcyBhIGNvbmRpdGlvbmFsIG9uIHNldHRp
bmdzLiBBbnkgaWRlbnRpZmllciBzdXBwbGllZCBpbiB0aGUKLSMgICBwcmVkaWNhdGUgb2YgYW4g
ImlmIiBpcyBhc3N1bWVkIHRvIGJlIGEgI2RlZmluZSB0aGF0IGlzIGF2YWlsYWJsZQotIyAgIGR1
cmluZyBjb2RlIGdlbi4gU28geW91IGNhbid0IHVzZSAiaWYiIGZvciBjb21wdXRhdGlvbiBpbiBh
IG1hY3JvLCBidXQKLSMgICB5b3UgY2FuIHVzZSBpdCB0byBzZWxlY3QgZGlmZmVyZW50IHBpZWNl
cyBvZiBjb2RlIGZvciBkaWZmZXJlbnQKLSMgICBwbGF0Zm9ybXMuCi0jCi0jIC0gQXJndW1lbnRz
IHRvIG1hY3JvcyBmb2xsb3cgbGV4aWNhbCBzY29waW5nIHJhdGhlciB0aGFuIGR5bmFtaWMgc2Nv
cGluZy4KLSMgICBDb25zdCdzIGFsc28gZm9sbG93IGxleGljYWwgc2NvcGluZyBhbmQgbWF5IG92
ZXJyaWRlIChoaWRlKSBhcmd1bWVudHMKLSMgICBvciBvdGhlciBjb25zdHMuIEFsbCB2YXJpYWJs
ZXMgKGFyZ3VtZW50cyBhbmQgY29uc3RhbnRzKSBjYW4gYmUgYm91bmQKLSMgICB0byBvcGVyYW5k
cy4gQWRkaXRpb25hbGx5LCBhcmd1bWVudHMgKGJ1dCBub3QgY29uc3RhbnRzKSBjYW4gYmUgYm91
bmQKLSMgICB0byBtYWNyb3MuCi0KLQotIyBCZWxvdyB3ZSBoYXZlIGEgYnVuY2ggb2YgY29uc3Rh
bnQgZGVjbGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQotIyBhIGNvcnJlc3BvbmRp
bmcgQVNTRVJUKCkgaW4gTExJbnREYXRhLmNwcC4KLQogIyBVdGlsaXRpZXMKIG1hY3JvIGRpc3Bh
dGNoKGFkdmFuY2UpCiAgICAgYWRkcCBhZHZhbmNlICogNCwgUEMKQEAgLTg5LDYwICs0MSw0NyBA
QCBlbmQKIAogbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQogICAgIGxvYWRpIEFyZ3VtZW50Q291
bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKLSAgICBsb2FkaSA0W1BDXSwgdDIKLSAgICBzdG9yZWkg
dDEsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQotICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQyLCA4XQotICAgIHZhbHVlUHJvZmlsZSh0MSwgdDAsIDQgKiAoQ2FsbE9wQ29kZVNpemUg
LSAxKSwgdDMpCisgICAgbG9hZGkgNFtQQ10sIHQzCisgICAgc3RvcmVpIHIxLCBUYWdPZmZzZXRb
Y2ZyLCB0MywgOF0KKyAgICBzdG9yZWkgcjAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KKyAg
ICB2YWx1ZVByb2ZpbGUocjEsIHIwLCA0ICogKENhbGxPcENvZGVTaXplIC0gMSksIHQzKQogICAg
IGRpc3BhdGNoKENhbGxPcENvZGVTaXplKQogZW5kCiAKLW1hY3JvIGNDYWxsMihmdW5jdGlvbiwg
YXJnMSwgYXJnMikKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3Ig
TUlQUwotICAgICAgICBtb3ZlIGFyZzEsIGEwCi0gICAgICAgIG1vdmUgYXJnMiwgYTEKK21hY3Jv
IGNDYWxsMihmdW5jdGlvbikKKyAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9O
QUwgb3IgTUlQUyBvciBTSDQKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4NiBv
ciBYODZfV0lOCiAgICAgICAgIHN1YnAgOCwgc3AKLSAgICAgICAgcHVzaCBhcmcyCi0gICAgICAg
IHB1c2ggYXJnMQorICAgICAgICBwdXNoIGExCisgICAgICAgIHB1c2ggYTAKICAgICAgICAgY2Fs
bCBmdW5jdGlvbgogICAgICAgICBhZGRwIDE2LCBzcAotICAgIGVsc2lmIFNINAotICAgICAgICBz
ZXRhcmdzIGFyZzEsIGFyZzIKLSAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIENfTE9P
UAotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYXJnMSwgYXJnMgorICAgICAg
ICBjbG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYTAsIGExCiAgICAgZWxzZQogICAgICAgICBl
cnJvcgogICAgIGVuZAogZW5kCiAKLW1hY3JvIGNDYWxsMlZvaWQoZnVuY3Rpb24sIGFyZzEsIGFy
ZzIpCittYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9uKQogICAgIGlmIENfTE9PUAotICAgICAgICBj
bG9vcENhbGxTbG93UGF0aFZvaWQgZnVuY3Rpb24sIGFyZzEsIGFyZzIKKyAgICAgICAgY2xvb3BD
YWxsU2xvd1BhdGhWb2lkIGZ1bmN0aW9uLCBhMCwgYTEKICAgICBlbHNlCi0gICAgICAgIGNDYWxs
MihmdW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICAgICAgY0NhbGwyKGZ1bmN0aW9uKQogICAgIGVu
ZAogZW5kCiAKLSMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFyZzQgc2hvdWxkIHByb2Jh
Ymx5IGJlIGltbWVkaWF0ZXMuCi1tYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFy
ZzMsIGFyZzQpCi0gICAgaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1J
UFMKLSAgICAgICAgbW92ZSBhcmcxLCBhMAotICAgICAgICBtb3ZlIGFyZzIsIGExCi0gICAgICAg
IG1vdmUgYXJnMywgYTIKLSAgICAgICAgbW92ZSBhcmc0LCBhMworbWFjcm8gY0NhbGw0KGZ1bmN0
aW9uKQorICAgIGlmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTIG9y
IFNINAogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl9XSU4KLSAg
ICAgICAgcHVzaCBhcmc0Ci0gICAgICAgIHB1c2ggYXJnMwotICAgICAgICBwdXNoIGFyZzIKLSAg
ICAgICAgcHVzaCBhcmcxCisgICAgICAgIHB1c2ggYTMKKyAgICAgICAgcHVzaCBhMgorICAgICAg
ICBwdXNoIGExCisgICAgICAgIHB1c2ggYTAKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgICAg
ICBhZGRwIDE2LCBzcAotICAgIGVsc2lmIFNINAotICAgICAgICBzZXRhcmdzIGFyZzEsIGFyZzIs
IGFyZzMsIGFyZzQKLSAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIENfTE9PUAogICAg
ICAgICBlcnJvcgogICAgIGVsc2UKQEAgLTE1MSwxMzMgKzkwLDEwNSBAQCBtYWNybyBjQ2FsbDQo
ZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiBlbmQKIAogbWFjcm8gY2FsbFNsb3dQ
YXRoKHNsb3dQYXRoKQotICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQw
LCBQQworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGwyKHNsb3dQ
YXRoKQorICAgIG1vdmUgcjAsIFBDCiBlbmQKIAogbWFjcm8gZG9WTUVudHJ5KG1ha2VDYWxsKQot
ICAgIGlmIFg4NiBvciBYODZfV0lOCi0gICAgICAgIGNvbnN0IGVudHJ5ID0gdDQKLSAgICAgICAg
Y29uc3Qgdm0gPSB0MwotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQ1Ci0KLSAgICAg
ICAgY29uc3QgdGVtcDEgPSB0MAotICAgICAgICBjb25zdCB0ZW1wMiA9IHQxCi0gICAgICAgIGNv
bnN0IHRlbXAzID0gdDIKLSAgICAgICAgY29uc3QgdGVtcDQgPSB0MyAjIHNhbWUgYXMgdm0KLSAg
ICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQ19MT09QCi0gICAg
ICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm0gPSBhMQotICAgICAgICBjb25z
dCBwcm90b0NhbGxGcmFtZSA9IGEyCi0KLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAg
ICBjb25zdCB0ZW1wMiA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDUKLSAgICAgICAgY29u
c3QgdGVtcDQgPSB0NCAjIFNhbWUgYXMgdGVtcDIKLSAgICBlbHNpZiBNSVBTCi0gICAgICAgIGNv
bnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29uc3Qgdm0gPSBhMQotICAgICAgICBjb25zdCBwcm90
b0NhbGxGcmFtZSA9IGEyCi0KLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MwotICAgICAgICBjb25z
dCB0ZW1wMiA9IHQ1Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDQKLSAgICAgICAgY29uc3QgdGVt
cDQgPSB0NgotICAgIGVsc2lmIFNINAotICAgICAgICBjb25zdCBlbnRyeSA9IGEwCi0gICAgICAg
IGNvbnN0IHZtID0gYTEKLSAgICAgICAgY29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgotCi0gICAg
ICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMwotICAgICAgICBj
b25zdCB0ZW1wMyA9IHQ4Ci0gICAgICAgIGNvbnN0IHRlbXA0ID0gdDkKLSAgICBlbmQKLQogICAg
IGZ1bmN0aW9uUHJvbG9ndWUoKQogICAgIHB1c2hDYWxsZWVTYXZlcygpCiAKKyAgICAjIHg4NiBu
ZWVkcyB0byBsb2FkIGFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjawogICAgIGlmIFg4NiBvciBYODZf
V0lOCi0gICAgICAgIGxvYWRwIDEyW2Nmcl0sIHZtCi0gICAgICAgIGxvYWRwIDhbY2ZyXSwgZW50
cnkKKyAgICAgICAgbG9hZHAgMTZbY2ZyXSwgYTIKKyAgICAgICAgbG9hZHAgMTJbY2ZyXSwgYTEK
KyAgICAgICAgbG9hZHAgOFtjZnJdLCBhMAogICAgIGVuZAogCisgICAgY29uc3QgZW50cnkgPSBh
MAorICAgIGNvbnN0IHZtID0gYTEKKyAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCisKKyAg
ICAjIFdlIGFyZSB1c2luZyB0MywgdDQgYW5kIHQ1IGFzIHRlbXBvcmFyaWVzIHRocm91Z2ggdGhl
IGZ1bmN0aW9uLgorICAgICMgU2luY2Ugd2UgaGF2ZSB0aGUgZ3VhcmFudGVlIHRoYXQgdFggIT0g
YVkgd2hlbiBYICE9IFksIHdlIGFyZSBzYWZlIGZyb20KKyAgICAjIGFsaWFzaW5nIHByb2JsZW1z
IHdpdGggb3VyIGFyZ3VtZW50cy4KKwogICAgIGlmIEFSTXY3Ci0gICAgICAgIHZtRW50cnlSZWNv
cmQoY2ZyLCB0ZW1wMSkKLSAgICAgICAgbW92ZSB0ZW1wMSwgc3AKKyAgICAgICAgdm1FbnRyeVJl
Y29yZChjZnIsIHQzKQorICAgICAgICBtb3ZlIHQzLCBzcAogICAgIGVsc2UKICAgICAgICAgdm1F
bnRyeVJlY29yZChjZnIsIHNwKQogICAgIGVuZAogCiAgICAgc3RvcmVwIHZtLCBWTUVudHJ5UmVj
b3JkOjptX3ZtW3NwXQotICAgIGxvYWRwIFZNOjp0b3BDYWxsRnJhbWVbdm1dLCB0ZW1wMgotICAg
IHN0b3JlcCB0ZW1wMiwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wQ2FsbEZyYW1lW3NwXQotICAg
IGxvYWRwIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dLCB0ZW1wMgotICAgIHN0b3JlcCB0ZW1wMiwg
Vk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXQorICAgIGxvYWRwIFZNOjp0
b3BDYWxsRnJhbWVbdm1dLCB0NAorICAgIHN0b3JlcCB0NCwgVk1FbnRyeVJlY29yZDo6bV9wcmV2
VG9wQ2FsbEZyYW1lW3NwXQorICAgIGxvYWRwIFZNOjp0b3BWTUVudHJ5RnJhbWVbdm1dLCB0NAor
ICAgIHN0b3JlcCB0NCwgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXQog
CiAgICAgIyBBbGlnbiBzdGFjayBwb2ludGVyCiAgICAgaWYgWDg2X1dJTgotICAgICAgICBhZGRw
IENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgc3AsIHRlbXAxCi0gICAgICAgIGFuZHAg
flN0YWNrQWxpZ25tZW50TWFzaywgdGVtcDEKLSAgICAgICAgc3VicCB0ZW1wMSwgQ2FsbEZyYW1l
QWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcAorICAgICAgICBhZGRwIENhbGxGcmFtZUFsaWduU2xv
dHMgKiBTbG90U2l6ZSwgc3AsIHQzCisgICAgICAgIGFuZHAgflN0YWNrQWxpZ25tZW50TWFzaywg
dDMKKyAgICAgICAgc3VicCB0MywgQ2FsbEZyYW1lQWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcAog
ICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAotICAgICAgICBhZGRw
IENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgc3AsIHRlbXAxCi0gICAgICAgIGNscmJw
IHRlbXAxLCBTdGFja0FsaWdubWVudE1hc2ssIHRlbXAxCisgICAgICAgIGFkZHAgQ2FsbEZyYW1l
QWxpZ25TbG90cyAqIFNsb3RTaXplLCBzcCwgdDMKKyAgICAgICAgY2xyYnAgdDMsIFN0YWNrQWxp
Z25tZW50TWFzaywgdDMKICAgICAgICAgaWYgQVJNdjcKLSAgICAgICAgICAgIHN1YnAgdGVtcDEs
IENhbGxGcmFtZUFsaWduU2xvdHMgKiBTbG90U2l6ZSwgdGVtcDEKLSAgICAgICAgICAgIG1vdmUg
dGVtcDEsIHNwCisgICAgICAgICAgICBzdWJwIHQzLCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xv
dFNpemUsIHQzCisgICAgICAgICAgICBtb3ZlIHQzLCBzcAogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzdWJwIHRlbXAxLCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xvdFNpemUsIHNwCisgICAg
ICAgICAgICBzdWJwIHQzLCBDYWxsRnJhbWVBbGlnblNsb3RzICogU2xvdFNpemUsIHNwCiAgICAg
ICAgIGVuZAogICAgIGVuZAogCi0gICAgaWYgWDg2IG9yIFg4Nl9XSU4KLSAgICAgICAgbG9hZHAg
MTZbY2ZyXSwgcHJvdG9DYWxsRnJhbWUKLSAgICBlbmQKLQotICAgIGxvYWRpIFByb3RvQ2FsbEZy
YW1lOjpwYWRkZWRBcmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCi0gICAgYWRkcCBDYWxs
RnJhbWVIZWFkZXJTbG90cywgdGVtcDIsIHRlbXAyCi0gICAgbHNoaWZ0cCAzLCB0ZW1wMgotICAg
IHN1YnAgc3AsIHRlbXAyLCB0ZW1wMQorICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRB
cmdDb3VudFtwcm90b0NhbGxGcmFtZV0sIHQ0CisgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90
cywgdDQsIHQ0CisgICAgbHNoaWZ0cCAzLCB0NAorICAgIHN1YnAgc3AsIHQ0LCB0MwogCiAgICAg
IyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5IGZv
ciB0aGUgaW5jb21pbmcgYXJncywKICAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBjb2Rl
IHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCiAgICAgIyBiZWZvcmUg
d2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxvdy4K
LSAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sK
KyAgICBicGFlcSB0MywgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKIAog
ICAgIGlmIENfTE9PUAotICAgICAgICBtb3ZlIGVudHJ5LCB0ZW1wMgotICAgICAgICBtb3ZlIHZt
LCB0ZW1wMwotICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hlY2tfYXRf
dm1fZW50cnksIHZtLCB0ZW1wMQorICAgICAgICBtb3ZlIGVudHJ5LCB0NAorICAgICAgICBtb3Zl
IHZtLCB0NQorICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBfbGxpbnRfc3RhY2tfY2hlY2tfYXRf
dm1fZW50cnksIHZtLCB0MwogICAgICAgICBicGVxIHQwLCAwLCAuc3RhY2tDaGVja0ZhaWxlZAot
ICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQotICAgICAgICBtb3ZlIHRlbXAzLCB2bQorICAgICAg
ICBtb3ZlIHQ0LCBlbnRyeQorICAgICAgICBtb3ZlIHQ1LCB2bQogICAgICAgICBqbXAgLnN0YWNr
SGVpZ2h0T0sKIAogLnN0YWNrQ2hlY2tGYWlsZWQ6Ci0gICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5
Ci0gICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIG1vdmUgdDQsIGVudHJ5CisgICAgICAg
IG1vdmUgdDUsIHZtCiAgICAgZW5kCiAKICAgICBzdWJwIDgsIHNwICMgQWxpZ24gc3RhY2sgZm9y
IGNDYWxsMigpIHRvIG1ha2UgYSBjYWxsLgotICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tf
b3ZlcmZsb3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBtb3ZlIHZtLCBhMAorICAg
IG1vdmUgcHJvdG9DYWxsRnJhbWUsIGExCisgICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19v
dmVyZmxvd19lcnJvcikKIAogICAgIGlmIEFSTXY3Ci0gICAgICAgIHZtRW50cnlSZWNvcmQoY2Zy
LCB0ZW1wMSkKLSAgICAgICAgbW92ZSB0ZW1wMSwgc3AKKyAgICAgICAgdm1FbnRyeVJlY29yZChj
ZnIsIHQzKQorICAgICAgICBtb3ZlIHQzLCBzcAogICAgIGVsc2UKICAgICAgICAgdm1FbnRyeVJl
Y29yZChjZnIsIHNwKQogICAgIGVuZAogCi0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV92bVtz
cF0sIHRlbXAzCi0gICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wQ2FsbEZyYW1lW3Nw
XSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDQsIFZNOjp0b3BDYWxsRnJhbWVbdGVtcDNdCi0gICAg
bG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXSwgdGVtcDQKLSAg
ICBzdG9yZXAgdGVtcDQsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdGVtcDNdCisgICAgbG9hZHAgVk1F
bnRyeVJlY29yZDo6bV92bVtzcF0sIHQ1CisgICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2
VG9wQ2FsbEZyYW1lW3NwXSwgdDQKKyAgICBzdG9yZXAgdDQsIFZNOjp0b3BDYWxsRnJhbWVbdDVd
CisgICAgbG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3NwXSwgdDQK
KyAgICBzdG9yZXAgdDQsIFZNOjp0b3BWTUVudHJ5RnJhbWVbdDVdCiAKICAgICBpZiBBUk12Nwot
ICAgICAgICBzdWJwIGNmciwgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSwgdGVtcDMKLSAgICAgICAg
bW92ZSB0ZW1wMywgc3AKKyAgICAgICAgc3VicCBjZnIsIENhbGxlZVJlZ2lzdGVyU2F2ZVNpemUs
IHQ1CisgICAgICAgIG1vdmUgdDUsIHNwCiAgICAgZWxzZQogICAgICAgICBzdWJwIGNmciwgQ2Fs
bGVlUmVnaXN0ZXJTYXZlU2l6ZSwgc3AKICAgICBlbmQKQEAgLTI4Nyw2MyArMTk4LDYzIEBAIG1h
Y3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKICAgICByZXQKIAogLnN0YWNrSGVpZ2h0T0s6Ci0gICAg
bW92ZSB0ZW1wMSwgc3AKLSAgICBtb3ZlIDQsIHRlbXAxCisgICAgbW92ZSB0Mywgc3AKKyAgICBt
b3ZlIDQsIHQzCiAKIC5jb3B5SGVhZGVyTG9vcDoKLSAgICBzdWJpIDEsIHRlbXAxCi0gICAgbG9h
ZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCi0gICAgc3RvcmVp
IHRlbXAzLCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQotICAgIGxvYWRpIFBh
eWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZWkg
dGVtcDMsIFBheWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQotICAgIGJ0aW56
IHRlbXAxLCAuY29weUhlYWRlckxvb3AKLQotICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBQcm90
b0NhbGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0
ZW1wMgotICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVk
QXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0ZW1wMwotICAgIHN1YmkgMSwgdGVtcDMKLQotICAg
IGJpZXEgdGVtcDIsIHRlbXAzLCAuY29weUFyZ3MKKyAgICBzdWJpIDEsIHQzCisgICAgbG9hZGkg
VGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0MywgOF0sIHQ1CisgICAgc3RvcmVpIHQ1LCBUYWdP
ZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHQzLCA4XQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbcHJv
dG9DYWxsRnJhbWUsIHQzLCA4XSwgdDUKKyAgICBzdG9yZWkgdDUsIFBheWxvYWRPZmZzZXQgKyBD
b2RlQmxvY2tbc3AsIHQzLCA4XQorICAgIGJ0aW56IHQzLCAuY29weUhlYWRlckxvb3AKKworICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBQcm90b0NhbGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3Jp
Z2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0NAorICAgIHN1YmkgMSwgdDQKKyAgICBsb2FkaSBQ
cm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJhbWVdLCB0NQorICAgIHN1
YmkgMSwgdDUKKworICAgIGJpZXEgdDQsIHQ1LCAuY29weUFyZ3MKIC5maWxsRXh0cmFBcmdzTG9v
cDoKLSAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3RvcmVpIFVuZGVmaW5lZFRhZywgVGhpc0FyZ3Vt
ZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDMsIDhdCi0gICAgc3RvcmVpIDAsIFRo
aXNBcmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0ZW1wMywgOF0KLSAgICBi
aW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0cmFBcmdzTG9vcAorICAgIHN1YmkgMSwgdDUKKyAg
ICBzdG9yZWkgVW5kZWZpbmVkVGFnLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zmc2V0
W3NwLCB0NSwgOF0KKyAgICBzdG9yZWkgMCwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxv
YWRPZmZzZXRbc3AsIHQ1LCA4XQorICAgIGJpbmVxIHQ0LCB0NSwgLmZpbGxFeHRyYUFyZ3NMb29w
CiAKIC5jb3B5QXJnczoKLSAgICBsb2FkcCBQcm90b0NhbGxGcmFtZTo6YXJnc1twcm90b0NhbGxG
cmFtZV0sIHRlbXAxCisgICAgbG9hZHAgUHJvdG9DYWxsRnJhbWU6OmFyZ3NbcHJvdG9DYWxsRnJh
bWVdLCB0MwogCiAuY29weUFyZ3NMb29wOgotICAgIGJ0aXogdGVtcDIsIC5jb3B5QXJnc0RvbmUK
LSAgICBzdWJpIDEsIHRlbXAyCi0gICAgbG9hZGkgVGFnT2Zmc2V0W3RlbXAxLCB0ZW1wMiwgOF0s
IHRlbXAzCi0gICAgc3RvcmVpIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgVGFnT2Zm
c2V0W3NwLCB0ZW1wMiwgOF0KLSAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W3RlbXAxLCB0ZW1wMiwg
OF0sIHRlbXAzCi0gICAgc3RvcmVpIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4ICsgUGF5
bG9hZE9mZnNldFtzcCwgdGVtcDIsIDhdCisgICAgYnRpeiB0NCwgLmNvcHlBcmdzRG9uZQorICAg
IHN1YmkgMSwgdDQKKyAgICBsb2FkaSBUYWdPZmZzZXRbdDMsIHQ0LCA4XSwgdDUKKyAgICBzdG9y
ZWkgdDUsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBUYWdPZmZzZXRbc3AsIHQ0LCA4XQorICAg
IGxvYWRpIFBheWxvYWRPZmZzZXRbdDMsIHQ0LCA4XSwgdDUKKyAgICBzdG9yZWkgdDUsIFRoaXNB
cmd1bWVudE9mZnNldCArIDggKyBQYXlsb2FkT2Zmc2V0W3NwLCB0NCwgOF0KICAgICBqbXAgLmNv
cHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgogICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxG
cmFtZVt2bV0KICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wVk1FbnRyeUZyYW1lW3ZtXQogCi0gICAg
bWFrZUNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKKyAgICBtYWtlQ2FsbChlbnRyeSwgdDMsIHQ0
KQogCiAgICAgaWYgQVJNdjcKLSAgICAgICAgdm1FbnRyeVJlY29yZChjZnIsIHRlbXAxKQotICAg
ICAgICBtb3ZlIHRlbXAxLCBzcAorICAgICAgICB2bUVudHJ5UmVjb3JkKGNmciwgdDMpCisgICAg
ICAgIG1vdmUgdDMsIHNwCiAgICAgZWxzZQogICAgICAgICB2bUVudHJ5UmVjb3JkKGNmciwgc3Ap
CiAgICAgZW5kCiAKLSAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ZtW3NwXSwgdGVtcDMKLSAg
ICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BDYWxsRnJhbWVbc3BdLCB0ZW1wNAotICAg
IHN0b3JlcCB0ZW1wNCwgVk06OnRvcENhbGxGcmFtZVt0ZW1wM10KLSAgICBsb2FkcCBWTUVudHJ5
UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3BdLCB0ZW1wNAotICAgIHN0b3JlcCB0ZW1w
NCwgVk06OnRvcFZNRW50cnlGcmFtZVt0ZW1wM10KKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjpt
X3ZtW3NwXSwgdDUKKyAgICBsb2FkcCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BDYWxsRnJhbWVb
c3BdLCB0NAorICAgIHN0b3JlcCB0NCwgVk06OnRvcENhbGxGcmFtZVt0NV0KKyAgICBsb2FkcCBW
TUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3BdLCB0NAorICAgIHN0b3JlcCB0
NCwgVk06OnRvcFZNRW50cnlGcmFtZVt0NV0KIAogICAgIGlmIEFSTXY3Ci0gICAgICAgIHN1YnAg
Y2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCB0ZW1wMwotICAgICAgICBtb3ZlIHRlbXAzLCBz
cAorICAgICAgICBzdWJwIGNmciwgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSwgdDUKKyAgICAgICAg
bW92ZSB0NSwgc3AKICAgICBlbHNlCiAgICAgICAgIHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNh
dmVTaXplLCBzcAogICAgIGVuZApAQCAtMzU1LDEzICsyNjYsMTMgQEAgZW5kCiAKIG1hY3JvIG1h
a2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQogICAgIGFkZHAgQ2FsbGVyRnJh
bWVBbmRQQ1NpemUsIHNwCi0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFk
MGRjMDIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcCwgMHhiYWQwZGMwMikK
ICAgICBpZiBDX0xPT1AKICAgICAgICAgY2xvb3BDYWxsSlNGdW5jdGlvbiBlbnRyeQogICAgIGVs
c2UKICAgICAgICAgY2FsbCBlbnRyeQogICAgIGVuZAotICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KHQyLCAweGJhZDBkYzAzKQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRl
bXAsIDB4YmFkMGRjMDMpCiAgICAgc3VicCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKIGVuZAog
CkBAIC0zNzYsOSArMjg3LDkgQEAgbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRl
bXAxLCB0ZW1wMikKICAgICAgICAgIyBQdXQgY2FsbGVlIGZyYW1lIHBvaW50ZXIgb24gc3RhY2sg
YXMgYXJnMCwgYWxzbyBwdXQgaXQgaW4gZWN4IGZvciAiZmFzdGNhbGwiIHRhcmdldHMKICAgICAg
ICAgbW92ZSAwLCB0ZW1wMgogICAgICAgICBtb3ZlIHRlbXAyLCA0W3NwXSAjIHB1dCAwIGluIFJl
dHVyblBDCi0gICAgICAgIG1vdmUgc3AsIHQyICMgdDIgaXMgZWN4CisgICAgICAgIG1vdmUgc3As
IGEwICMgYTAgaXMgZWN4CiAgICAgICAgIHB1c2ggdGVtcDIgIyBQdXNoIGR1bW15IGFyZzEKLSAg
ICAgICAgcHVzaCB0MgorICAgICAgICBwdXNoIGEwCiAgICAgICAgIGNhbGwgdGVtcDEKICAgICAg
ICAgYWRkcCA4LCBzcAogICAgIGVsc2UKQEAgLTQyOSwzMSArMzQwLDQzIEBAIGVuZAogIyBkZWJ1
Z2dpbmcgZnJvbS4gb3BlcmFuZCBzaG91bGQgbGlrZXdpc2UgYmUgYW4gaW1tZWRpYXRlLCBhbmQg
c2hvdWxkIGlkZW50aWZ5IHRoZSBvcGVyYW5kCiAjIGluIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0g
eW91J2QgbGlrZSB0byBwcmludCBvdXQuCiBtYWNybyB0cmFjZU9wZXJhbmQoZnJvbVdoZXJlLCBv
cGVyYW5kKQotICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCwgY2ZyLCBQQywgZnJvbVdo
ZXJlLCBvcGVyYW5kKQotICAgIG1vdmUgdDAsIFBDCi0gICAgbW92ZSB0MSwgY2ZyCisgICAgbW92
ZSBmcm9tV2hlcmUsIGEyCisgICAgbW92ZSBvcGVyYW5kLCBhMworICAgIG1vdmUgY2ZyLCBhMAor
ICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kKQorICAgIG1v
dmUgcjAsIFBDCisgICAgbW92ZSByMSwgY2ZyCiBlbmQKIAogIyBEZWJ1Z2dpbmcgb3BlcmF0aW9u
IGlmIHlvdSdkIGxpa2UgdG8gcHJpbnQgdGhlIHZhbHVlIG9mIGFuIG9wZXJhbmQgaW4gdGhlIGlu
c3RydWN0aW9uCiAjIHN0cmVhbS4gU2FtZSBhcyB0cmFjZU9wZXJhbmQoKSwgYnV0IGFzc3VtZXMg
dGhhdCB0aGUgb3BlcmFuZCBpcyBhIHJlZ2lzdGVyLCBhbmQgcHJpbnRzIGl0cwogIyB2YWx1ZS4K
IG1hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQotICAgIGNDYWxsNChfbGxpbnRf
dHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkKLSAgICBtb3ZlIHQwLCBQ
QwotICAgIG1vdmUgdDEsIGNmcgorICAgIG1vdmUgZnJvbVdoZXJlLCBhMgorICAgIG1vdmUgb3Bl
cmFuZCwgYTMKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBhMQorICAgIGNDYWxsNChf
bGxpbnRfdHJhY2VfdmFsdWUpCisgICAgbW92ZSByMCwgUEMKKyAgICBtb3ZlIHIxLCBjZnIKIGVu
ZAogCiAjIENhbGwgYSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVzLgogbWFjcm8gY2FsbENhbGxT
bG93UGF0aChzbG93UGF0aCwgYWN0aW9uKQogICAgIHN0b3JlcCBQQywgQXJndW1lbnRDb3VudCAr
IFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQotICAgIGFjdGlv
bih0MCkKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBtb3ZlIFBDLCBhMQorICAgIGNDYWxsMihzbG93
UGF0aCkKKyAgICBhY3Rpb24ocjAsIHIxKQogZW5kCiAKIG1hY3JvIGNhbGxXYXRjaGRvZ1RpbWVy
SGFuZGxlcih0aHJvd0hhbmRsZXIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFn
T2Zmc2V0W2Nmcl0KLSAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2df
dGltZXIsIGNmciwgUEMpCi0gICAgYnRwbnogdDAsIHRocm93SGFuZGxlcgorICAgIG1vdmUgY2Zy
LCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGwyKF9sbGludF9zbG93X3BhdGhfaGFuZGxl
X3dhdGNoZG9nX3RpbWVyKQorICAgIGJ0cG56IHIwLCB0aHJvd0hhbmRsZXIKICAgICBsb2FkaSBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiBlbmQKIApAQCAtNDYyLDEwICszODUs
MTIgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICAxLAogICAgICAg
ICBtYWNybyAoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KLSAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0g
ICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgotICAgICAgICAgICAgbW92ZSB0MSwgc3AKLSAg
ICAgICAgICAgIGptcCB0MAorICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgICAgICBt
b3ZlIFBDLCBhMQorICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zcikKKyAgICAgICAg
ICAgIGJ0cHogcjAsIC5yZWNvdmVyCisgICAgICAgICAgICBtb3ZlIHIxLCBzcAorICAgICAgICAg
ICAgam1wIHIwCiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRD
b3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICBlbmQpCkBAIC01NzYsNyArNTAxLDkg
QEAgbWFjcm8gd3JpdGVCYXJyaWVyT25PcGVyYW5kKGNlbGxPcGVyYW5kKQogICAgICAgICAgICAg
ICAgIHB1c2ggY2ZyLCBQQwogICAgICAgICAgICAgICAgICMgV2UgbWFrZSB0d28gZXh0cmEgc2xv
dHMgYmVjYXVzZSBjQ2FsbDIgd2lsbCBwb2tlLgogICAgICAgICAgICAgICAgIHN1YnAgOCwgc3AK
LSAgICAgICAgICAgICAgICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3csIGNm
ciwgdDIpCisgICAgICAgICAgICAgICAgbW92ZSB0MiwgYTEgIyB0MiBjYW4gYmUgYTAgb24geDg2
CisgICAgICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgICAgICAgICAgY0NhbGwyVm9p
ZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KQogICAgICAgICAgICAgICAgIGFkZHAgOCwgc3AK
ICAgICAgICAgICAgICAgICBwb3AgUEMsIGNmcgogICAgICAgICAgICAgZW5kCkBAIC02MTAsNyAr
NTM3LDkgQEAgbWFjcm8gd3JpdGVCYXJyaWVyT25HbG9iYWxPYmplY3QodmFsdWVPcGVyYW5kKQog
ICAgICAgICAgICAgICAgIHB1c2ggY2ZyLCBQQwogICAgICAgICAgICAgICAgICMgV2UgbWFrZSB0
d28gZXh0cmEgc2xvdHMgYmVjYXVzZSBjQ2FsbDIgd2lsbCBwb2tlLgogICAgICAgICAgICAgICAg
IHN1YnAgOCwgc3AKLSAgICAgICAgICAgICAgICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJy
aWVyX3Nsb3csIGNmciwgdDMpCisgICAgICAgICAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAg
ICAgICAgICAgbW92ZSB0MywgYTEKKyAgICAgICAgICAgICAgICBjQ2FsbDJWb2lkKF9sbGludF93
cml0ZV9iYXJyaWVyX3Nsb3cpCiAgICAgICAgICAgICAgICAgYWRkcCA4LCBzcAogICAgICAgICAg
ICAgICAgIHBvcCBQQywgY2ZyCiAgICAgICAgICAgICBlbmQKQEAgLTYzMiwxOSArNTYxLDIxIEBA
IGVuZAogbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAg
bG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKICAgICBiaWFlcSB0
MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwKLSAgICBjQ2FsbDIo
c2xvd1BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBhIHNpbXBsZSBwcm90b2Nv
bDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCi0gICAgYnRpeiB0MCwgLm5v
RXJyb3IKLSAgICBtb3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQorICAg
IG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAgY0NhbGwyKHNsb3dQYXRoKSAgICMg
VGhpcyBzbG93UGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwg
dDAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXogcjAsIC5ub0Vycm9yCisgICAgbW92ZSByMSwgY2Zy
ICAgIyByMSBjb250YWlucyBjYWxsZXIgZnJhbWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21f
c2xvd19wYXRoX3RyYW1wb2xpbmUKIAogLm5vRXJyb3I6Ci0gICAgIyB0MSBwb2ludHMgdG8gQXJp
dHlDaGVja0RhdGEuCi0gICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6
dGh1bmtUb0NhbGxbdDFdLCB0MgotICAgIGJ0cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgIyBy
MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpB
cml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbcjFdLCB0MworICAgIGJ0cHogdDMsIC5wcm9jZWVk
SW5saW5lCiAgICAgCi0gICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6
cmV0dXJuUENbdDFdLCB0NQotICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0Rh
dGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAotICAgIGNhbGwgdDIKKyAgICBsb2FkcCBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3IxXSwgYTAKKyAg
ICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1tyMV0sIGEx
CisgICAgY2FsbCB0MwogICAgIGlmIEFTU0VSVF9FTkFCTEVECiAgICAgICAgIGxvYWRwIFJldHVy
blBDW2Nmcl0sIHQwCiAgICAgICAgIGxvYWRwIFt0MF0sIHQwCkBAIC02NTIsNyArNTgzLDcgQEAg
bWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAgam1wIC5j
b250aW51ZQogCiAucHJvY2VlZElubGluZToKLSAgICBsb2FkaSBDb21tb25TbG93UGF0aHM6OkFy
aXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDEKKyAgICBsb2FkaSBDb21tb25T
bG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3IxXSwgdDEKICAgICBi
dGl6IHQxLCAuY29udGludWUKIAogICAgIC8vIE1vdmUgZnJhbWUgdXAgInQxICogMiIgc2xvdHMK
QEAgLTczNCwxNCArNjY1LDE0IEBAIF9sbGludF9vcF9jcmVhdGVfdGhpczoKICAgICB0cmFjZUV4
ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9hZHAgUGF5bG9hZE9mZnNldFtj
ZnIsIHQwLCA4XSwgdDAKLSAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX3JhcmVEYXRhW3QwXSwgdDQK
LSAgICBidHB6IHQ0LCAub3BDcmVhdGVUaGlzU2xvdwotICAgIGxvYWRwIEZ1bmN0aW9uUmFyZURh
dGE6Om1fYWxsb2NhdGlvblByb2ZpbGUgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZTo6bV9hbGxv
Y2F0b3JbdDRdLCB0MQotICAgIGxvYWRwIEZ1bmN0aW9uUmFyZURhdGE6Om1fYWxsb2NhdGlvblBy
b2ZpbGUgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZTo6bV9zdHJ1Y3R1cmVbdDRdLCB0MgorICAg
IGxvYWRwIEpTRnVuY3Rpb246Om1fcmFyZURhdGFbdDBdLCB0NQorICAgIGJ0cHogdDUsIC5vcENy
ZWF0ZVRoaXNTbG93CisgICAgbG9hZHAgRnVuY3Rpb25SYXJlRGF0YTo6bV9hbGxvY2F0aW9uUHJv
ZmlsZSArIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlOjptX2FsbG9jYXRvclt0NV0sIHQxCisgICAg
bG9hZHAgRnVuY3Rpb25SYXJlRGF0YTo6bV9hbGxvY2F0aW9uUHJvZmlsZSArIE9iamVjdEFsbG9j
YXRpb25Qcm9maWxlOjptX3N0cnVjdHVyZVt0NV0sIHQyCiAgICAgYnRweiB0MSwgLm9wQ3JlYXRl
VGhpc1Nsb3cKLSAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig0LCB0NCkKLSAgICBicGVxIHQ0LCAx
LCAuaGFzU2Vlbk11bHRpcGxlQ2FsbGVlCi0gICAgYnBuZXEgdDQsIHQwLCAub3BDcmVhdGVUaGlz
U2xvdworICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDQsIHQ1KQorICAgIGJwZXEgdDUsIDEsIC5o
YXNTZWVuTXVsdGlwbGVDYWxsZWUKKyAgICBicG5lcSB0NSwgdDAsIC5vcENyZWF0ZVRoaXNTbG93
CiAuaGFzU2Vlbk11bHRpcGxlQ2FsbGVlOgogICAgIGFsbG9jYXRlSlNPYmplY3QodDEsIHQyLCB0
MCwgdDMsIC5vcENyZWF0ZVRoaXNTbG93KQogICAgIGxvYWRpIDRbUENdLCB0MQpAQCAtMTk4OSw4
ICsxOTIwLDggQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRv
RnVuY3Rpb24pCiAgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQogICAgICAgICBsb2Fk
cCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQzCiAgICAgICAg
IHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0gICAgICAgIG1vdmUgY2ZyLCB0MiAg
IyB0MiA9IGVjeAotICAgICAgICBzdG9yZXAgdDIsIFtzcF0KKyAgICAgICAgbW92ZSBjZnIsIGEw
ICAjIGEwID0gZWN4CisgICAgICAgIHN0b3JlcCBhMCwgW3NwXQogICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQz
LCAweGRlYWQwMDAxKQpAQCAtMjAwNSwxMSArMTkzNiw3IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFt
cG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDEKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtT
ZXQ6Om1fdm1bdDFdLCB0MQogICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3Qx
XQotICAgICAgICBpZiBNSVBTIG9yIFNINAotICAgICAgICAgICAgbW92ZSBjZnIsIGEwCi0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG1vdmUgY2ZyLCB0MAotICAgICAgICBlbmQKKyAgICAgICAg
bW92ZSBjZnIsIGEwCiAgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwg
dDEKICAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKICAgICAg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCkBAIC0yMjI0LDkg
KzIxNTEsOSBAQCBlbmQKIG1hY3JvIHB1dExvY2FsQ2xvc3VyZVZhcigpCiAgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDMsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyLCB0
MykKLSAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig1LCB0NCkKLSAgICBidHB6IHQ0LCAubm9WYXJp
YWJsZVdhdGNocG9pbnRTZXQKLSAgICBub3RpZnlXcml0ZSh0NCwgLnBEeW5hbWljKQorICAgIGxv
YWRwRnJvbUluc3RydWN0aW9uKDUsIHQ1KQorICAgIGJ0cHogdDUsIC5ub1ZhcmlhYmxlV2F0Y2hw
b2ludFNldAorICAgIG5vdGlmeVdyaXRlKHQ1LCAucER5bmFtaWMpCiAubm9WYXJpYWJsZVdhdGNo
cG9pbnRTZXQ6CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDYsIHQxKQogICAgIHN0b3JlaSB0
MiwgSlNFbnZpcm9ubWVudFJlY29yZF92YXJpYWJsZXMgKyBUYWdPZmZzZXRbdDAsIHQxLCA4XQpA
QCAtMjMzOCw5ICsyMjY1LDkgQEAgX2xsaW50X29wX3Byb2ZpbGVfdHlwZToKICAgICAjIHQxIGlz
IGhvbGRpbmcgdGhlIHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxvZy4KICAgICBsb2FkcCBW
TTo6bV90eXBlUHJvZmlsZXJMb2dbdDFdLCB0MQogCi0gICAgIyB0MCBpcyBob2xkaW5nIHRoZSBw
YXlsb2FkLCB0NCBpcyBob2xkaW5nIHRoZSB0YWcuCisgICAgIyB0MCBpcyBob2xkaW5nIHRoZSBw
YXlsb2FkLCB0NSBpcyBob2xkaW5nIHRoZSB0YWcuCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9u
KDEsIHQyKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQ0LCB0MCkKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQyLCB0NSwgdDApCiAKICAgICBiaWVxIHQ0LCBFbXB0eVZhbHVl
VGFnLCAub3BQcm9maWxlVHlwZURvbmUKIApAQCAtMjM0OCwxNCArMjI3NSwxNCBAQCBfbGxpbnRf
b3BfcHJvZmlsZV90eXBlOgogICAgIGxvYWRwIFR5cGVQcm9maWxlckxvZzo6bV9jdXJyZW50TG9n
RW50cnlQdHJbdDFdLCB0MgogCiAgICAgIyBTdG9yZSB0aGUgSlNWYWx1ZSBvbnRvIHRoZSBsb2cg
ZW50cnkuCi0gICAgc3RvcmVpIHQ0LCBUeXBlUHJvZmlsZXJMb2c6OkxvZ0VudHJ5Ojp2YWx1ZSAr
IFRhZ09mZnNldFt0Ml0KKyAgICBzdG9yZWkgdDUsIFR5cGVQcm9maWxlckxvZzo6TG9nRW50cnk6
OnZhbHVlICsgVGFnT2Zmc2V0W3QyXQogICAgIHN0b3JlaSB0MCwgVHlwZVByb2ZpbGVyTG9nOjpM
b2dFbnRyeTo6dmFsdWUgKyBQYXlsb2FkT2Zmc2V0W3QyXQogCiAgICAgIyBTdG9yZSB0aGUgVHlw
ZUxvY2F0aW9uIG9udG8gdGhlIGxvZyBlbnRyeS4KICAgICBsb2FkcEZyb21JbnN0cnVjdGlvbigy
LCB0MykKICAgICBzdG9yZXAgdDMsIFR5cGVQcm9maWxlckxvZzo6TG9nRW50cnk6OmxvY2F0aW9u
W3QyXQogCi0gICAgYmllcSB0NCwgQ2VsbFRhZywgLm9wUHJvZmlsZVR5cGVJc0NlbGwKKyAgICBi
aWVxIHQ1LCBDZWxsVGFnLCAub3BQcm9maWxlVHlwZUlzQ2VsbAogICAgIHN0b3JlaSAwLCBUeXBl
UHJvZmlsZXJMb2c6OkxvZ0VudHJ5OjpzdHJ1Y3R1cmVJRFt0Ml0KICAgICBqbXAgLm9wUHJvZmls
ZVR5cGVTa2lwSXNDZWxsCiAub3BQcm9maWxlVHlwZUlzQ2VsbDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggZDIx
NTJhMi4uYzBkMzFlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTQ2LDE3NyArNDYsMTI3IEBAIG1hY3JvIGRp
c3BhdGNoQWZ0ZXJDYWxsKCkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKICAgICBsb2Fk
cCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKICAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMSwgdDEpCi0gICAgc3RvcmVxIHQwLCBbY2ZyLCB0MSwgOF0KLSAgICB2YWx1ZVByb2Zp
bGUodDAsIChDYWxsT3BDb2RlU2l6ZSAtIDEpLCB0MikKKyAgICBzdG9yZXEgcjAsIFtjZnIsIHQx
LCA4XQorICAgIHZhbHVlUHJvZmlsZShyMCwgKENhbGxPcENvZGVTaXplIC0gMSksIHQzKQogICAg
IGRpc3BhdGNoKENhbGxPcENvZGVTaXplKQogZW5kCiAKLW1hY3JvIGNDYWxsMihmdW5jdGlvbiwg
YXJnMSwgYXJnMikKK21hY3JvIGNDYWxsMihmdW5jdGlvbikKICAgICBjaGVja1N0YWNrUG9pbnRl
ckFsaWdubWVudCh0NCwgMHhiYWQwYzAwMikKLSAgICBpZiBYODZfNjQKLSAgICAgICAgbW92ZSBh
cmcxLCB0NAotICAgICAgICBtb3ZlIGFyZzIsIHQ1CisgICAgaWYgWDg2XzY0IG9yIEFSTTY0CiAg
ICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBYODZfNjRfV0lOCiAgICAgICAgICMgTm90
ZTogdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBvbmx5IGNvcnJlY3QgaWYgdGhlIHJldHVybiB0eXBl
IHNpemUgaXMgPiA4IGJ5dGVzLgogICAgICAgICAjIFNlZSBtYWNybyBjQ2FsbDJWb2lkIGZvciBh
biBpbXBsZW1lbnRhdGlvbiB3aGVuIHRoZSByZXR1cm4gdHlwZSA8PSA4IGJ5dGVzLgogICAgICAg
ICAjIE9uIFdpbjY0LCB3aGVuIHRoZSByZXR1cm4gdHlwZSBpcyBsYXJnZXIgdGhhbiA4IGJ5dGVz
LCB3ZSBuZWVkIHRvIGFsbG9jYXRlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIHJldHVybiB2
YWx1ZS4KLSAgICAgICAgIyBPbiBlbnRyeSByY3ggKHQyKSwgc2hvdWxkIGNvbnRhaW4gYSBwb2lu
dGVyIHRvIHRoaXMgc3RhY2sgc3BhY2UuIFRoZSBvdGhlciBwYXJhbWV0ZXJzIGFyZSBzaGlmdGVk
IHRvIHRoZSByaWdodCwKLSAgICAgICAgIyByZHggKHQxKSBzaG91bGQgY29udGFpbiB0aGUgZmly
c3QgYXJndW1lbnQsIGFuZCByOCAodDYpIHNob3VsZCBjb250YWluIHRoZSBzZWNvbmQgYXJndW1l
bnQuCi0gICAgICAgICMgT24gcmV0dXJuLCByYXggY29udGFpbnMgYSBwb2ludGVyIHRvIHRoaXMg
c3RhY2sgdmFsdWUsIGFuZCB3ZSB0aGVuIG5lZWQgdG8gY29weSB0aGUgMTYgYnl0ZSByZXR1cm4g
dmFsdWUgaW50byByYXggKHQwKSBhbmQgcmR4ICh0MSkKKyAgICAgICAgIyBPbiBlbnRyeSByY3gg
KGEwKSwgc2hvdWxkIGNvbnRhaW4gYSBwb2ludGVyIHRvIHRoaXMgc3RhY2sgc3BhY2UuIFRoZSBv
dGhlciBwYXJhbWV0ZXJzIGFyZSBzaGlmdGVkIHRvIHRoZSByaWdodCwKKyAgICAgICAgIyByZHgg
KGExKSBzaG91bGQgY29udGFpbiB0aGUgZmlyc3QgYXJndW1lbnQsIGFuZCByOCAoYTIpIHNob3Vs
ZCBjb250YWluIHRoZSBzZWNvbmQgYXJndW1lbnQuCisgICAgICAgICMgT24gcmV0dXJuLCByYXgg
Y29udGFpbnMgYSBwb2ludGVyIHRvIHRoaXMgc3RhY2sgdmFsdWUsIGFuZCB3ZSB0aGVuIG5lZWQg
dG8gY29weSB0aGUgMTYgYnl0ZSByZXR1cm4gdmFsdWUgaW50byByYXggKHIwKSBhbmQgcmR4IChy
MSkKICAgICAgICAgIyBzaW5jZSB0aGUgcmV0dXJuIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIHNw
bGl0IGJldHdlZW4gdGhlIHR3by4KICAgICAgICAgIyBTZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0
LmNvbS9lbi11cy9saWJyYXJ5Lzc1NzJ6dHo0LmFzcHgKLSAgICAgICAgbW92ZSBhcmcxLCB0MQot
ICAgICAgICBtb3ZlIGFyZzIsIHQ2CisgICAgICAgIG1vdmUgYTEsIGEyCisgICAgICAgIG1vdmUg
YTAsIGExCiAgICAgICAgIHN1YnAgNDgsIHNwCi0gICAgICAgIG1vdmUgc3AsIHQyCi0gICAgICAg
IGFkZHAgMzIsIHQyCisgICAgICAgIG1vdmUgc3AsIGEwCisgICAgICAgIGFkZHAgMzIsIGEwCiAg
ICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICAgICAgYWRkcCA0OCwgc3AKLSAgICAgICAgbW92ZSA4
W3QwXSwgdDEKLSAgICAgICAgbW92ZSBbdDBdLCB0MAotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAg
IG1vdmUgYXJnMSwgdDAKLSAgICAgICAgbW92ZSBhcmcyLCB0MQotICAgICAgICBjYWxsIGZ1bmN0
aW9uCisgICAgICAgIG1vdmUgOFtyMF0sIHIxCisgICAgICAgIG1vdmUgW3IwXSwgcjAKICAgICBl
bHNpZiBDX0xPT1AKLSAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggZnVuY3Rpb24sIGFyZzEsIGFy
ZzIKKyAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggZnVuY3Rpb24sIGEwLCBhMQogICAgIGVsc2UK
ICAgICAgICAgZXJyb3IKICAgICBlbmQKIGVuZAogCi1tYWNybyBjQ2FsbDJWb2lkKGZ1bmN0aW9u
LCBhcmcxLCBhcmcyKQorbWFjcm8gY0NhbGwyVm9pZChmdW5jdGlvbikKICAgICBpZiBDX0xPT1AK
LSAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGhWb2lkIGZ1bmN0aW9uLCBhcmcxLCBhcmcyCisgICAg
ICAgIGNsb29wQ2FsbFNsb3dQYXRoVm9pZCBmdW5jdGlvbiwgYTAsIGExCiAgICAgZWxzaWYgWDg2
XzY0X1dJTgogICAgICAgICAjIE5vdGU6IHdlIGNhbm5vdCB1c2UgdGhlIGNDYWxsMiBtYWNybyBm
b3IgV2luNjQgaW4gdGhpcyBjYXNlLAogICAgICAgICAjIGFzIHRoZSBXaW42NCBjQ2FsbDIgaW1w
bGVtZW5hdGlvbiBpcyBvbmx5IGNvcnJlY3Qgd2hlbiB0aGUgcmV0dXJuIHR5cGUgc2l6ZSBpcyA+
IDggYnl0ZXMuCiAgICAgICAgICMgT24gV2luNjQsIHJjeCBhbmQgcmR4IGFyZSB1c2VkIGZvciBw
YXNzaW5nIHRoZSBmaXJzdCB0d28gcGFyYW1ldGVycy4KICAgICAgICAgIyBXZSBhbHNvIG5lZWQg
dG8gbWFrZSByb29tIG9uIHRoZSBzdGFjayBmb3IgYWxsIGZvdXIgcGFyYW1ldGVyIHJlZ2lzdGVy
cy4KICAgICAgICAgIyBTZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5
L21zMjM1Mjg2LmFzcHgKLSAgICAgICAgbW92ZSBhcmcyLCB0MQotICAgICAgICBtb3ZlIGFyZzEs
IHQyCiAgICAgICAgIHN1YnAgMzIsIHNwIAogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgICAg
IGFkZHAgMzIsIHNwIAogICAgIGVsc2UKLSAgICAgICAgY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBh
cmcyKQorICAgICAgICBjQ2FsbDIoZnVuY3Rpb24pCiAgICAgZW5kCiBlbmQKIAogIyBUaGlzIGJh
cmVseSB3b3Jrcy4gYXJnMyBhbmQgYXJnNCBzaG91bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4K
LW1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKK21hY3JvIGND
YWxsNChmdW5jdGlvbikKICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0NCwgMHhiYWQw
YzAwNCkKLSAgICBpZiBYODZfNjQKLSAgICAgICAgbW92ZSBhcmcxLCB0NAotICAgICAgICBtb3Zl
IGFyZzIsIHQ1Ci0gICAgICAgIG1vdmUgYXJnMywgdDEKLSAgICAgICAgbW92ZSBhcmc0LCB0Mgor
ICAgIGlmIFg4Nl82NCBvciBBUk02NAogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYg
WDg2XzY0X1dJTgogICAgICAgICAjIE9uIFdpbjY0LCByY3gsIHJkeCwgcjgsIGFuZCByOSBhcmUg
dXNlZCBmb3IgcGFzc2luZyB0aGUgZmlyc3QgZm91ciBwYXJhbWV0ZXJzLgogICAgICAgICAjIFdl
IGFsc28gbmVlZCB0byBtYWtlIHJvb20gb24gdGhlIHN0YWNrIGZvciBhbGwgZm91ciBwYXJhbWV0
ZXIgcmVnaXN0ZXJzLgogICAgICAgICAjIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2Vu
LXVzL2xpYnJhcnkvbXMyMzUyODYuYXNweAotICAgICAgICBtb3ZlIGFyZzEsIHQyCi0gICAgICAg
IG1vdmUgYXJnMiwgdDEKLSAgICAgICAgbW92ZSBhcmczLCB0NgotICAgICAgICBtb3ZlIGFyZzQs
IHQ3Ci0gICAgICAgIHN1YnAgMzIsIHNwIAotICAgICAgICBjYWxsIGZ1bmN0aW9uCi0gICAgICAg
IGFkZHAgMzIsIHNwIAotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDAKLSAg
ICAgICAgbW92ZSBhcmcyLCB0MQotICAgICAgICBtb3ZlIGFyZzMsIHQyCi0gICAgICAgIG1vdmUg
YXJnNCwgdDMKKyAgICAgICAgc3VicCA2NCwgc3AKICAgICAgICAgY2FsbCBmdW5jdGlvbgotICAg
IGVsc2lmIENfTE9PUAotICAgICAgICBlcnJvcgorICAgICAgICBhZGRwIDY0LCBzcAogICAgIGVs
c2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKIGVuZAogCiBtYWNybyBkb1ZNRW50cnkobWFrZUNh
bGwpCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIGNvbnN0IGVudHJ5ID0gdDQKLSAgICAgICAgY29u
c3Qgdm0gPSB0NQotICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IHQxCi0KLSAgICAgICAg
Y29uc3QgcHJldmlvdXNDRlIgPSB0MAotICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gdDYKLSAg
ICAgICAgY29uc3QgdGVtcDEgPSB0MAotICAgICAgICBjb25zdCB0ZW1wMiA9IHQzCi0gICAgICAg
IGNvbnN0IHRlbXAzID0gdDYKLSAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgIGNvbnN0IGVu
dHJ5ID0gdDIKLSAgICAgICAgY29uc3Qgdm0gPSB0MQotICAgICAgICBjb25zdCBwcm90b0NhbGxG
cmFtZSA9IHQ2Ci0KLSAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MAotICAgICAgICBjb25z
dCBwcmV2aW91c1BDID0gdDQKLSAgICAgICAgY29uc3QgdGVtcDEgPSB0MAotICAgICAgICBjb25z
dCB0ZW1wMiA9IHQzCi0gICAgICAgIGNvbnN0IHRlbXAzID0gdDcKLSAgICBlbHNpZiBBUk02NCBv
ciBDX0xPT1AKLSAgICAgICAgY29uc3QgZW50cnkgPSBhMAotICAgICAgICBjb25zdCB2bSA9IGEx
Ci0gICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLQotICAgICAgICBjb25zdCBwcmV2
aW91c0NGUiA9IHQ1Ci0gICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgotICAgICAgICBjb25z
dCB0ZW1wMSA9IHQzCi0gICAgICAgIGNvbnN0IHRlbXAyID0gdDQKLSAgICAgICAgY29uc3QgdGVt
cDMgPSB0NgotICAgIGVuZAotCiAgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgcHVzaENhbGxl
ZVNhdmVzKCkKIAorICAgIGNvbnN0IGVudHJ5ID0gYTAKKyAgICBjb25zdCB2bSA9IGExCisgICAg
Y29uc3QgcHJvdG9DYWxsRnJhbWUgPSBhMgorCiAgICAgdm1FbnRyeVJlY29yZChjZnIsIHNwKQog
Ci0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDIsIDB4YmFkMGRjMDEpCisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQsIDB4YmFkMGRjMDEpCiAKICAgICBzdG9yZXAg
dm0sIFZNRW50cnlSZWNvcmQ6Om1fdm1bc3BdCi0gICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2
bV0sIHRlbXAyCi0gICAgc3RvcmVwIHRlbXAyLCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BDYWxs
RnJhbWVbc3BdCi0gICAgbG9hZHAgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0sIHRlbXAyCi0gICAg
c3RvcmVwIHRlbXAyLCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVudHJ5RnJhbWVbc3BdCisg
ICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHQ0CisgICAgc3RvcmVwIHQ0LCBWTUVudHJ5
UmVjb3JkOjptX3ByZXZUb3BDYWxsRnJhbWVbc3BdCisgICAgbG9hZHAgVk06OnRvcFZNRW50cnlG
cmFtZVt2bV0sIHQ0CisgICAgc3RvcmVwIHQ0LCBWTUVudHJ5UmVjb3JkOjptX3ByZXZUb3BWTUVu
dHJ5RnJhbWVbc3BdCiAKLSAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRb
cHJvdG9DYWxsRnJhbWVdLCB0ZW1wMgotICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHRl
bXAyLCB0ZW1wMgotICAgIGxzaGlmdHAgMywgdGVtcDIKLSAgICBzdWJwIHNwLCB0ZW1wMiwgdGVt
cDEKKyAgICBsb2FkaSBQcm90b0NhbGxGcmFtZTo6cGFkZGVkQXJnQ291bnRbcHJvdG9DYWxsRnJh
bWVdLCB0NAorICAgIGFkZHAgQ2FsbEZyYW1lSGVhZGVyU2xvdHMsIHQ0LCB0NAorICAgIGxzaGlm
dHAgMywgdDQKKyAgICBzdWJwIHNwLCB0NCwgdDMKIAogICAgICMgRW5zdXJlIHRoYXQgd2UgaGF2
ZSBlbm91Z2ggYWRkaXRpb25hbCBzdGFjayBjYXBhY2l0eSBmb3IgdGhlIGluY29taW5nIGFyZ3Ms
CiAgICAgIyBhbmQgdGhlIGZyYW1lIGZvciB0aGUgSlMgY29kZSB3ZSdyZSBleGVjdXRpbmcuIFdl
IG5lZWQgdG8gZG8gdGhpcyBjaGVjawogICAgICMgYmVmb3JlIHdlIHN0YXJ0IGNvcHlpbmcgdGhl
IGFyZ3MgZnJvbSB0aGUgcHJvdG9DYWxsRnJhbWUgYmVsb3cuCi0gICAgYnBhZXEgdGVtcDEsIFZN
OjptX2pzU3RhY2tMaW1pdFt2bV0sIC5zdGFja0hlaWdodE9LCisgICAgYnBhZXEgdDMsIFZNOjpt
X2pzU3RhY2tMaW1pdFt2bV0sIC5zdGFja0hlaWdodE9LCiAKICAgICBpZiBDX0xPT1AKLSAgICAg
ICAgbW92ZSBlbnRyeSwgdGVtcDIKLSAgICAgICAgbW92ZSB2bSwgdGVtcDMKLSAgICAgICAgY2xv
b3BDYWxsU2xvd1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdGVtcDEK
KyAgICAgICAgbW92ZSBlbnRyeSwgdDQKKyAgICAgICAgbW92ZSB2bSwgdDUKKyAgICAgICAgY2xv
b3BDYWxsU2xvd1BhdGggX2xsaW50X3N0YWNrX2NoZWNrX2F0X3ZtX2VudHJ5LCB2bSwgdDMKICAg
ICAgICAgYnBlcSB0MCwgMCwgLnN0YWNrQ2hlY2tGYWlsZWQKLSAgICAgICAgbW92ZSB0ZW1wMiwg
ZW50cnkKLSAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAgICAgICAgbW92ZSB0NCwgZW50cnkKKyAg
ICAgICAgbW92ZSB0NSwgdm0KICAgICAgICAgam1wIC5zdGFja0hlaWdodE9LCiAKIC5zdGFja0No
ZWNrRmFpbGVkOgotICAgICAgICBtb3ZlIHRlbXAyLCBlbnRyeQotICAgICAgICBtb3ZlIHRlbXAz
LCB2bQorICAgICAgICBtb3ZlIHQ0LCBlbnRyeQorICAgICAgICBtb3ZlIHQ1LCB2bQogICAgIGVu
ZAogCi0gICAgY0NhbGwyKF9sbGludF90aHJvd19zdGFja19vdmVyZmxvd19lcnJvciwgdm0sIHBy
b3RvQ2FsbEZyYW1lKQorICAgIG1vdmUgdm0sIGEwCisgICAgbW92ZSBwcm90b0NhbGxGcmFtZSwg
YTEKKyAgICBjQ2FsbDIoX2xsaW50X3Rocm93X3N0YWNrX292ZXJmbG93X2Vycm9yKQogCi0gICAg
dm1FbnRyeVJlY29yZChjZnIsIHRlbXAyKQorICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0NCkKIAot
ICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bdGVtcDJdLCB2bQotICAgIGxvYWRwIFZNRW50
cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVt0ZW1wMl0sIHRlbXAzCi0gICAgc3RvcmVwIHRl
bXAzLCBWTTo6dG9wQ2FsbEZyYW1lW3ZtXQotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJl
dlRvcFZNRW50cnlGcmFtZVt0ZW1wMl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBWTTo6dG9w
Vk1FbnRyeUZyYW1lW3ZtXQorICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bdDRdLCB2bQor
ICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVt0NF0sIGV4dHJhVGVt
cFJlZworICAgIHN0b3JlcCBleHRyYVRlbXBSZWcsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAg
bG9hZHAgVk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3Q0XSwgZXh0cmFUZW1w
UmVnCisgICAgc3RvcmVwIGV4dHJhVGVtcFJlZywgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0KIAog
ICAgIHN1YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogCkBAIC0yMjUsNjIgKzE3
NSw2NSBAQCBtYWNybyBkb1ZNRW50cnkobWFrZUNhbGwpCiAgICAgcmV0CiAKIC5zdGFja0hlaWdo
dE9LOgotICAgIG1vdmUgdGVtcDEsIHNwCi0gICAgbW92ZSA0LCB0ZW1wMQorICAgIG1vdmUgdDMs
IHNwCisgICAgbW92ZSA0LCB0MwogCiAuY29weUhlYWRlckxvb3A6Ci0gICAgc3ViaSAxLCB0ZW1w
MQotICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwgdGVtcDEsIDhdLCB0ZW1wMwotICAgIHN0b3Jl
cSB0ZW1wMywgQ29kZUJsb2NrW3NwLCB0ZW1wMSwgOF0KLSAgICBidGlueiB0ZW1wMSwgLmNvcHlI
ZWFkZXJMb29wCi0KLSAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgUHJvdG9DYWxsRnJhbWU6OmFy
Z0NvdW50QW5kQ29kZU9yaWdpblZhbHVlW3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIKLSAgICBzdWJp
IDEsIHRlbXAyCi0gICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3Rv
Q2FsbEZyYW1lXSwgdGVtcDMKLSAgICBzdWJpIDEsIHRlbXAzCi0KLSAgICBiaWVxIHRlbXAyLCB0
ZW1wMywgLmNvcHlBcmdzCi0gICAgbW92ZSBWYWx1ZVVuZGVmaW5lZCwgdGVtcDEKKyAgICBzdWJp
IDEsIHQzCisgICAgbG9hZHEgW3Byb3RvQ2FsbEZyYW1lLCB0MywgOF0sIGV4dHJhVGVtcFJlZwor
ICAgIHN0b3JlcSBleHRyYVRlbXBSZWcsIENvZGVCbG9ja1tzcCwgdDMsIDhdCisgICAgYnRpbnog
dDMsIC5jb3B5SGVhZGVyTG9vcAorCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIFByb3RvQ2Fs
bEZyYW1lOjphcmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHQ0Cisg
ICAgc3ViaSAxLCB0NAorICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjpwYWRkZWRBcmdDb3VudFtw
cm90b0NhbGxGcmFtZV0sIGV4dHJhVGVtcFJlZworICAgIHN1YmkgMSwgZXh0cmFUZW1wUmVnCisK
KyAgICBiaWVxIHQ0LCBleHRyYVRlbXBSZWcsIC5jb3B5QXJncworICAgIG1vdmUgVmFsdWVVbmRl
ZmluZWQsIHQzCiAuZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAgc3ViaSAxLCB0ZW1wMwotICAgIHN0
b3JlcSB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdGVtcDMsIDhdCi0gICAgYmlu
ZXEgdGVtcDIsIHRlbXAzLCAuZmlsbEV4dHJhQXJnc0xvb3AKKyAgICBzdWJpIDEsIGV4dHJhVGVt
cFJlZworICAgIHN0b3JlcSB0MywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgZXh0cmFUZW1w
UmVnLCA4XQorICAgIGJpbmVxIHQ0LCBleHRyYVRlbXBSZWcsIC5maWxsRXh0cmFBcmdzTG9vcAog
CiAuY29weUFyZ3M6Ci0gICAgbG9hZHAgUHJvdG9DYWxsRnJhbWU6OmFyZ3NbcHJvdG9DYWxsRnJh
bWVdLCB0ZW1wMQorICAgIGxvYWRwIFByb3RvQ2FsbEZyYW1lOjphcmdzW3Byb3RvQ2FsbEZyYW1l
XSwgdDMKIAogLmNvcHlBcmdzTG9vcDoKLSAgICBidGl6IHRlbXAyLCAuY29weUFyZ3NEb25lCi0g
ICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRxIFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMwotICAg
IHN0b3JlcSB0ZW1wMywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOFtzcCwgdGVtcDIsIDhdCisgICAg
YnRpeiB0NCwgLmNvcHlBcmdzRG9uZQorICAgIHN1YmkgMSwgdDQKKyAgICBsb2FkcSBbdDMsIHQ0
LCA4XSwgZXh0cmFUZW1wUmVnCisgICAgc3RvcmVxIGV4dHJhVGVtcFJlZywgVGhpc0FyZ3VtZW50
T2Zmc2V0ICsgOFtzcCwgdDQsIDhdCiAgICAgam1wIC5jb3B5QXJnc0xvb3AKIAogLmNvcHlBcmdz
RG9uZToKICAgICBpZiBBUk02NAotICAgICAgICBtb3ZlIHNwLCB0ZW1wMgotICAgICAgICBzdG9y
ZXAgdGVtcDIsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgICAgIG1vdmUgc3AsIHQ0CisgICAg
ICAgIHN0b3JlcCB0NCwgVk06OnRvcENhbGxGcmFtZVt2bV0KICAgICBlbHNlCiAgICAgICAgIHN0
b3JlcCBzcCwgVk06OnRvcENhbGxGcmFtZVt2bV0KICAgICBlbmQKICAgICBzdG9yZXAgY2ZyLCBW
TTo6dG9wVk1FbnRyeUZyYW1lW3ZtXQogCi0gICAgbW92ZSAweGZmZmYwMDAwMDAwMDAwMDAsIGNz
cjEKLSAgICBhZGRwIDIsIGNzcjEsIGNzcjIKKyAgICBtb3ZlIFRhZ1R5cGVOdW1iZXIsIHRhZ1R5
cGVOdW1iZXIKKyAgICBhZGRwIFRhZ0JpdFR5cGVPdGhlciwgdGFnVHlwZU51bWJlciwgdGFnTWFz
awogCi0gICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDIpCisg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoZXh0cmFUZW1wUmVnLCAweGJhZDBkYzAyKQog
Ci0gICAgbWFrZUNhbGwoZW50cnksIHRlbXAxKQorICAgIG1ha2VDYWxsKGVudHJ5LCB0MykKIAot
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRlbXAzLCAweGJhZDBkYzAzKQorICAgICMg
V2UgbWF5IGhhdmUganVzdCBtYWRlIGEgY2FsbCBpbnRvIGEgSlMgZnVuY3Rpb24sIHNvIHdlIGNh
bid0IHJlbHkgb24gc3AKKyAgICAjIGZvciBhbnl0aGluZyBidXQgdGhlIGZhY3QgdGhhdCBvdXIg
b3duIGxvY2FscyAoaWUgdGhlIFZNRW50cnlSZWNvcmQpIGFyZQorICAgICMgbm90IGJlbG93IGl0
LiBJdCBhbHNvIHN0aWxsIGhhcyB0byBiZSBhbGlnbmVkLCB0aG91Z2guCisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQoZXh0cmFUZW1wUmVnLCAweGJhZDBkYzAzKQogCi0gICAgdm1FbnRy
eVJlY29yZChjZnIsIHRlbXAyKQorICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0NCkKIAotICAgIGxv
YWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bdGVtcDJdLCB2bQotICAgIGxvYWRwIFZNRW50cnlSZWNv
cmQ6Om1fcHJldlRvcENhbGxGcmFtZVt0ZW1wMl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBW
TTo6dG9wQ2FsbEZyYW1lW3ZtXQotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZN
RW50cnlGcmFtZVt0ZW1wMl0sIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAzLCBWTTo6dG9wVk1FbnRy
eUZyYW1lW3ZtXQorICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bdDRdLCB2bQorICAgIGxv
YWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVt0NF0sIGV4dHJhVGVtcFJlZwor
ICAgIHN0b3JlcCBleHRyYVRlbXBSZWcsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgbG9hZHAg
Vk1FbnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3Q0XSwgZXh0cmFUZW1wUmVnCisg
ICAgc3RvcmVwIGV4dHJhVGVtcFJlZywgVk06OnRvcFZNRW50cnlGcmFtZVt2bV0KIAogICAgIHN1
YnAgY2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogCkBAIC0zMDUsMTMgKzI1OCw3IEBA
IGVuZAogbWFjcm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92ZSBl
bnRyeSwgdGVtcAogICAgIHN0b3JlcCBjZnIsIFtzcF0KLSAgICBpZiBYODZfNjQKLSAgICAgICAg
bW92ZSBzcCwgdDQKLSAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgIG1vdmUgc3AsIHQyCi0g
ICAgZWxzaWYgQVJNNjQgb3IgQ19MT09QCi0gICAgICAgIG1vdmUgc3AsIGEwCi0gICAgZW5kCisg
ICAgbW92ZSBzcCwgYTAKICAgICBpZiBDX0xPT1AKICAgICAgICAgc3RvcmVwIGxyLCA4W3NwXQog
ICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcApAQCAtMzM2LDEwICsyODMsMTAgQEAgX2hhbmRs
ZVVuY2F1Z2h0RXhjZXB0aW9uOgogICAgIHZtRW50cnlSZWNvcmQoY2ZyLCB0MikKIAogICAgIGxv
YWRwIFZNRW50cnlSZWNvcmQ6Om1fdm1bdDJdLCB0MwotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6
Om1fcHJldlRvcENhbGxGcmFtZVt0Ml0sIHQ1Ci0gICAgc3RvcmVwIHQ1LCBWTTo6dG9wQ2FsbEZy
YW1lW3QzXQotICAgIGxvYWRwIFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcFZNRW50cnlGcmFtZVt0
Ml0sIHQ1Ci0gICAgc3RvcmVwIHQ1LCBWTTo6dG9wVk1FbnRyeUZyYW1lW3QzXQorICAgIGxvYWRw
IFZNRW50cnlSZWNvcmQ6Om1fcHJldlRvcENhbGxGcmFtZVt0Ml0sIGV4dHJhVGVtcFJlZworICAg
IHN0b3JlcCBleHRyYVRlbXBSZWcsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisgICAgbG9hZHAgVk1F
bnRyeVJlY29yZDo6bV9wcmV2VG9wVk1FbnRyeUZyYW1lW3QyXSwgZXh0cmFUZW1wUmVnCisgICAg
c3RvcmVwIGV4dHJhVGVtcFJlZywgVk06OnRvcFZNRW50cnlGcmFtZVt0M10KIAogICAgIHN1YnAg
Y2ZyLCBDYWxsZWVSZWdpc3RlclNhdmVTaXplLCBzcAogCkBAIC0zNTAsMzEgKzI5NywzOSBAQCBf
aGFuZGxlVW5jYXVnaHRFeGNlcHRpb246CiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkK
ICAgICBsZWFwIFtQQiwgUEMsIDhdLCBQQwotICAgIG1vdmUgUEIsIHQzCiBlbmQKIAogbWFjcm8g
cmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCi0gICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQzLCBQ
QgorICAgIG1vdmUgcjAsIFBDCiAgICAgc3VicCBQQiwgUEMKICAgICByc2hpZnRwIDMsIFBDCiBl
bmQKIAogbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKLSAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAgbW92ZSBjZnIsIGEwCisg
ICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDIoc2xvd1BhdGgpCiAgICAgcmVzdG9yZVN0YXRlQWZ0
ZXJDQ2FsbCgpCiBlbmQKIAogbWFjcm8gdHJhY2VPcGVyYW5kKGZyb21XaGVyZSwgb3BlcmFuZCkK
ICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVy
YW5kLCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgbW92ZSBmcm9tV2hlcmUsIGEy
CisgICAgbW92ZSBvcGVyYW5kLCBhMworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGEx
CisgICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kKQogICAgIHJlc3RvcmVTdGF0ZUFmdGVy
Q0NhbGwoKQogZW5kCiAKIG1hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQogICAg
IHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX3ZhbHVlLCBj
ZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgbW92ZSBmcm9tV2hlcmUsIGEyCisgICAg
bW92ZSBvcGVyYW5kLCBhMworICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMsIGExCisgICAg
Y0NhbGw0KF9sbGludF90cmFjZV92YWx1ZSkKICAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkK
IGVuZAogCkBAIC0zODIsMTYgKzMzNywxOSBAQCBlbmQKIG1hY3JvIGNhbGxDYWxsU2xvd1BhdGgo
c2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZz
ZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd1BhdGgs
IGNmciwgUEMpCi0gICAgYWN0aW9uKHQwKQorICAgIG1vdmUgY2ZyLCBhMAorICAgIG1vdmUgUEMs
IGExCisgICAgY0NhbGwyKHNsb3dQYXRoKQorICAgIGFjdGlvbihyMCwgcjEpCiBlbmQKIAogbWFj
cm8gY2FsbFdhdGNoZG9nVGltZXJIYW5kbGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkgUEMs
IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxs
KCkKLSAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIsIGNm
ciwgUEMpCi0gICAgYnRwbnogdDAsIHRocm93SGFuZGxlcgotICAgIG1vdmUgdDMsIFBCCisgICAg
bW92ZSBjZnIsIGEwCisgICAgbW92ZSBQQywgYTEKKyAgICBjQ2FsbDIoX2xsaW50X3Nsb3dfcGF0
aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIpCisgICAgYnRwbnogcjAsIHRocm93SGFuZGxlcgogICAg
IGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKIGVuZAogCkBAIC00MDEs
MTIgKzM1OSwxMyBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAgIG1h
Y3JvKCkKICAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtj
ZnJdCiAgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgICAgICAgICBjQ2Fs
bDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQotICAgICAgICAgICAgYnRweiB0MCwgLnJlY292
ZXIKLSAgICAgICAgICAgIG1vdmUgdDEsIHNwCi0gICAgICAgICAgICBqbXAgdDAKKyAgICAgICAg
ICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICAgICAgbW92ZSBQQywgYTEKKyAgICAgICAgICAgIGND
YWxsMihfbGxpbnRfbG9vcF9vc3IpCisgICAgICAgICAgICBidHB6IHIwLCAucmVjb3ZlcgorICAg
ICAgICAgICAgbW92ZSByMSwgc3AKKyAgICAgICAgICAgIGptcCByMAogICAgICAgICAucmVjb3Zl
cjoKLSAgICAgICAgICAgIG1vdmUgdDMsIFBCCiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENv
dW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgIGVuZCkKIGVuZApAQCAtNDQ3LDcgKzQw
Niw5IEBAIG1hY3JvIHdyaXRlQmFycmllck9uT3BlcmFuZChjZWxsT3BlcmFuZCkKICAgICAgICAg
ICAgIG1hY3JvKGdjRGF0YSkKICAgICAgICAgICAgICAgICBidGJueiBnY0RhdGEsIC53cml0ZUJh
cnJpZXJEb25lCiAgICAgICAgICAgICAgICAgcHVzaCBQQiwgUEMKLSAgICAgICAgICAgICAgICBj
Q2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3csIGNmciwgdDIpCisgICAgICAgICAg
ICAgICAgbW92ZSB0MiwgYTEgIyB0MiBjYW4gYmUgYTAgKG5vdCBvbiA2NCBiaXRzLCBidXQgYmV0
dGVyIHNhZmUgdGhhbiBzb3JyeSkKKyAgICAgICAgICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAg
ICAgICAgICAgICBjQ2FsbDJWb2lkKF9sbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpCiAgICAgICAg
ICAgICAgICAgcG9wIFBDLCBQQgogICAgICAgICAgICAgZW5kCiAgICAgICAgICkKQEAgLTQ3OCw3
ICs0MzksOSBAQCBtYWNybyB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdCh2YWx1ZU9wZXJhbmQp
CiAgICAgICAgICAgICBtYWNybyhnY0RhdGEpCiAgICAgICAgICAgICAgICAgYnRibnogZ2NEYXRh
LCAud3JpdGVCYXJyaWVyRG9uZQogICAgICAgICAgICAgICAgIHB1c2ggUEIsIFBDCi0gICAgICAg
ICAgICAgICAgY0NhbGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93LCBjZnIsIHQzKQor
ICAgICAgICAgICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICAgICAgICAgIG1vdmUgdDMsIGEx
CisgICAgICAgICAgICAgICAgY0NhbGwyVm9pZChfbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KQog
ICAgICAgICAgICAgICAgIHBvcCBQQywgUEIKICAgICAgICAgICAgIGVuZAogICAgICAgICApCkBA
IC01MjIsMTkgKzQ4NSwyMSBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBz
bG93UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0
MAogICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJl
bAogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwg
UEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyB0aGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJv
ciwgdDAgIT0gMCA9PiBlcnJvcgotICAgIGJ0aXogdDAsIC5ub0Vycm9yCi0gICAgbW92ZSB0MSwg
Y2ZyICAgIyB0MSBjb250YWlucyBjYWxsZXIgZnJhbWUKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBt
b3ZlIFBDLCBhMQorICAgIGNDYWxsMihzbG93UGF0aCkgICAjIFRoaXMgc2xvd1BhdGggaGFzIHRo
ZSBwcm90b2NvbDogcjAgPSAwID0+IG5vIGVycm9yLCByMCAhPSAwID0+IGVycm9yCisgICAgYnRp
eiByMCwgLm5vRXJyb3IKKyAgICBtb3ZlIHIxLCBjZnIgICAjIHIxIGNvbnRhaW5zIGNhbGxlciBm
cmFtZQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCiAu
bm9FcnJvcjoKLSAgICAjIHQxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0YS4KLSAgICBsb2FkcCBD
b21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2FsbFt0MV0sIHQyCi0gICAg
YnRweiB0MiwgLnByb2NlZWRJbmxpbmUKKyAgICAjIHIxIHBvaW50cyB0byBBcml0eUNoZWNrRGF0
YS4KKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjp0aHVua1RvQ2Fs
bFtyMV0sIHQzCisgICAgYnRweiB0MywgLnByb2NlZWRJbmxpbmUKICAgICAKLSAgICBsb2FkcCBD
b21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1t0MV0sIHQ3Ci0gICAgbG9h
ZHAgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0s
IHQwCi0gICAgY2FsbCB0MgorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0Rh
dGE6OnBhZGRlZFN0YWNrU3BhY2VbcjFdLCBhMAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6
QXJpdHlDaGVja0RhdGE6OnJldHVyblBDW3IxXSwgYTEKKyAgICBjYWxsIHQzCiAgICAgaWYgQVNT
RVJUX0VOQUJMRUQKICAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKICAgICAgICAgbG9h
ZHAgW3QwXSwgdDAKQEAgLTU0Miw3ICs1MDcsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2so
ZG9uZUxhYmVsLCBzbG93UGF0aCkKICAgICBqbXAgLmNvbnRpbnVlCiAKIC5wcm9jZWVkSW5saW5l
OgotICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNr
U3BhY2VbdDFdLCB0MQorICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6
OnBhZGRlZFN0YWNrU3BhY2VbcjFdLCB0MQogICAgIGJ0aXogdDEsIC5jb250aW51ZQogCiAgICAg
Ly8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90cwpAQCAtNTg4LDcgKzU1Myw2IEBAIGVuZAog
CiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCi0KIF9sbGludF9vcF9lbnRlcjoKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4
ZGVhZDAwZTEpCkBAIC02MjAsMTQgKzU4NCwxNCBAQCBfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CiAg
ICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKICAg
ICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9yYXJlRGF0
YVt0MF0sIHQ0Ci0gICAgYnRweiB0NCwgLm9wQ3JlYXRlVGhpc1Nsb3cKLSAgICBsb2FkcCBGdW5j
dGlvblJhcmVEYXRhOjptX2FsbG9jYXRpb25Qcm9maWxlICsgT2JqZWN0QWxsb2NhdGlvblByb2Zp
bGU6Om1fYWxsb2NhdG9yW3Q0XSwgdDEKLSAgICBsb2FkcCBGdW5jdGlvblJhcmVEYXRhOjptX2Fs
bG9jYXRpb25Qcm9maWxlICsgT2JqZWN0QWxsb2NhdGlvblByb2ZpbGU6Om1fc3RydWN0dXJlW3Q0
XSwgdDIKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX3JhcmVEYXRhW3QwXSwgdDMKKyAgICBidHB6
IHQzLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGxvYWRwIEZ1bmN0aW9uUmFyZURhdGE6Om1fYWxs
b2NhdGlvblByb2ZpbGUgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZTo6bV9hbGxvY2F0b3JbdDNd
LCB0MQorICAgIGxvYWRwIEZ1bmN0aW9uUmFyZURhdGE6Om1fYWxsb2NhdGlvblByb2ZpbGUgKyBP
YmplY3RBbGxvY2F0aW9uUHJvZmlsZTo6bV9zdHJ1Y3R1cmVbdDNdLCB0MgogICAgIGJ0cHogdDEs
IC5vcENyZWF0ZVRoaXNTbG93Ci0gICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNCwgdDQpCi0gICAg
YnBlcSB0NCwgMSwgLmhhc1NlZW5NdWx0aXBsZUNhbGxlZQotICAgIGJwbmVxIHQ0LCB0MCwgLm9w
Q3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig0LCB0MykKKyAgICBicGVx
IHQzLCAxLCAuaGFzU2Vlbk11bHRpcGxlQ2FsbGVlCisgICAgYnBuZXEgdDMsIHQwLCAub3BDcmVh
dGVUaGlzU2xvdwogLmhhc1NlZW5NdWx0aXBsZUNhbGxlZToKICAgICBhbGxvY2F0ZUpTT2JqZWN0
KHQxLCB0MiwgdDAsIHQzLCAub3BDcmVhdGVUaGlzU2xvdykKICAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMSwgdDEpCkBAIC0xNzYwLDcgKzE3MjQsNyBAQCBfbGxpbnRfb3BfcmV0OgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCByMCkKICAgICBkb1JldHVybigp
CiAKIApAQCAtMTgyMyw3ICsxNzg3LDcgQEAgX2xsaW50X29wX2VuZDoKICAgICBjaGVja1N3aXRj
aFRvSklURm9yRXBpbG9ndWUoKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MCkKICAg
ICBhc3NlcnROb3RDb25zdGFudCh0MCkKLSAgICBsb2FkcSBbY2ZyLCB0MCwgOF0sIHQwCisgICAg
bG9hZHEgW2NmciwgdDAsIDhdLCByMAogICAgIGRvUmV0dXJuKCkKIAogCkBAIC0xODQ4LDU2ICsx
ODEyLDM1IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1
bmN0aW9uKQogCiAgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9j
a1tjZnJdCi0gICAgaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4KLSAgICAgICAgaWYgWDg2XzY0Ci0g
ICAgICAgICAgICBjb25zdCBhcmcxID0gdDQgICMgdDQgPSByZGkKLSAgICAgICAgICAgIGNvbnN0
IGFyZzIgPSB0NSAgIyB0NSA9IHJzaQotICAgICAgICAgICAgY29uc3QgdGVtcCA9IHQxCi0gICAg
ICAgIGVsc2lmIFg4Nl82NF9XSU4KLSAgICAgICAgICAgIGNvbnN0IGFyZzEgPSB0MiAgIyB0MiA9
IHJjeAotICAgICAgICAgICAgY29uc3QgYXJnMiA9IHQxICAjIHQxID0gcmR4Ci0gICAgICAgICAg
ICBjb25zdCB0ZW1wID0gdDAKLSAgICAgICAgZW5kCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJd
LCB0MAotICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAsIHQxCi0gICAgICAgIGxvYWRw
IE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QxXSwgdDEKLSAgICAgICAg
c3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KLSAgICAgICAgbW92ZSBjZnIsIGFyZzEK
LSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIGFyZzIKLSAgICAgICAgbG9hZHAgSlNGdW5jdGlv
bjo6bV9leGVjdXRhYmxlW2FyZzJdLCB0ZW1wCi0gICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KHQzLCAweGRlYWQwMDAxKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAorICAgIGFu
ZHAgTWFya2VkQmxvY2tNYXNrLCB0MCwgdDEKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFr
U2V0ICsgV2Vha1NldDo6bV92bVt0MV0sIHQxCisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxG
cmFtZVt0MV0KKyAgICBpZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgbW92ZSBsciwgY3NyMAor
ICAgICAgICBzdG9yZXAgbHIsIFJldHVyblBDW2Nmcl0KKyAgICBlbmQKKyAgICBtb3ZlIGNmciwg
YTAKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4
ZWN1dGFibGVbdDFdLCB0MQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRl
YWQwMDAxKQorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENhbGxOYXRpdmUgZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgZWxzZQogICAgICAgICBpZiBYODZfNjRfV0lOCiAg
ICAgICAgICAgICBzdWJwIDMyLCBzcAogICAgICAgICBlbmQKLSAgICAgICAgY2FsbCBleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvblt0ZW1wXQorICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uW3QxXQogICAgICAgICBpZiBYODZfNjRfV0lOCiAgICAgICAgICAgICBhZGRwIDMy
LCBzcAogICAgICAgICBlbmQKLSAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCi0gICAgICAg
IGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNNjQgb3IgQ19MT09Q
Ci0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAotICAgICAgICBhbmRwIE1hcmtlZEJsb2Nr
TWFzaywgdDAsIHQxCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFr
U2V0OjptX3ZtW3QxXSwgdDEKLSAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0
MV0KLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBz
dG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdDFdLCB0MQotICAgICAgICBpZiBDX0xPT1AKLSAgICAgICAgICAgIGNsb29wQ2FsbE5hdGl2
ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgZW5kCi0gICAg
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQotICAgICAgICBsb2FkcCBD
YWxsZWVbY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAg
IGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAg
ICBlbHNlCi0gICAgICAgIGVycm9yCiAgICAgZW5kCisgICAgaWYgQVJNNjQgb3IgQ19MT09QCisg
ICAgICAgIG1vdmUgY3NyMCwgbHIKKyAgICBlbmQKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDMK
KyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93
ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAKICAgICBmdW5jdGlvbkVwaWxvZ3VlKCkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCmluZGV4IDQ0Y2ZiZTUuLmEw
YWIzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5y
YgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKQEAgLTI3LDYg
KzI3LDM0IEBAIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIm9wdCIKIHJlcXVpcmUgInJpc2MiCiAK
KyMgR1BSIGNvbnZlbnRpb25zLCB0byBtYXRjaCB0aGUgYmFzZWxpbmUgSklUCisjCisjICB4MCA9
PiB0MCwgYTAsIHIwCisjICB4MSA9PiB0MSwgYTEsIHIxCisjICB4MiA9PiB0MiwgYTIsIHIyCisj
ICB4MyA9PiB0MywgYTMsIHIzCisjICB4NiA9PiAgICAgICAgICAgIChjYWxsZWUtc2F2ZSBzY3Jh
dGNoKQorIyAgeDcgPT4gY2ZyICAgICAgICAoQVJNdjcgb25seSkKKyMgIHg4ID0+IHQ0ICAgICAg
ICAgKGNhbGxlZS1zYXZlKQorIyAgeDkgPT4gdDUgICAgICAgICAoY2FsbGVlLXNhdmUpCisjIHgx
MCA9PiAgICAgICAgICAgIChjYWxsZWUtc2F2ZSBzY3JhdGNoKQorIyB4MTEgPT4gY2ZyICAgICAg
ICAoQVJNIGFuZCBBUk12NyB0cmFkaXRpb25hbCkKKyMgeDEyID0+ICAgICAgICAgICAgKGNhbGxl
ZS1zYXZlIHNjcmF0Y2gpCisjICBsciA9PiBscgorIyAgc3AgPT4gc3AKKyMgIHBjID0+IHBjCisj
CisjIEZQUiBjb252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVAorIworIyBkMCA9
PiBmdDAsIGZhMCwgZnIKKyMgZDEgPT4gZnQxLCBmYTEKKyMgZDIgPT4gZnQyCisjIGQzID0+IGZ0
MworIyBkNCA9PiBmdDQKKyMgZDUgPT4gZnQ1CisjIGQ2ID0+ICAgICAgICAgICAgICAoc2NyYXRj
aCkKKyMgZDcgPT4gICAgICAgICAgICAgIChzY3JhdGNoKQorCiBkZWYgaXNBUk12NwogICAgIGNh
c2UgJGFjdGl2ZUJhY2tlbmQKICAgICB3aGVuICJBUk12NyIKQEAgLTExOSw5ICsxNDcsOSBAQCBl
bmQKIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2Ug
bmFtZQotICAgICAgICB3aGVuICJmdDAiLCAiZnIiCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIs
ICJmYTAiCiAgICAgICAgICAgICAiZDAiCi0gICAgICAgIHdoZW4gImZ0MSIKKyAgICAgICAgd2hl
biAiZnQxIiwgImZhMSIKICAgICAgICAgICAgICJkMSIKICAgICAgICAgd2hlbiAiZnQyIgogICAg
ICAgICAgICAgImQyIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYXJtNjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgpp
bmRleCAzYTBkNzg2Li4xMTEwNjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm02NC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9hcm02NC5yYgpAQCAtMzcsMzIgKzM3LDMwIEBAIHJlcXVpcmUgInJpc2MiCiAjCiAjIEdQUiBj
b252ZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVDoKICMKLSMgIHgwICA9PiByZXR1
cm4gdmFsdWUsIGNhY2hlZCByZXN1bHQsIGZpcnN0IGFyZ3VtZW50LCB0MCwgYTAsIHIwCisjICB4
MCAgPT4gdDAsIGEwLCByMAogIyAgeDEgID0+IHQxLCBhMSwgcjEKICMgIHgyICA9PiB0MiwgYTIK
LSMgIHgzICA9PiBhMwotIyAgeDUgID0+IHQ0Ci0jICB4NiAgPT4gdDYKLSMgIHg5ICA9PiAobm9u
QXJnR1BSMSBpbiBiYXNlbGluZSkKLSMgeDEzICA9PiBzY3JhdGNoICh1bnVzZWQgaW4gYmFzZWxp
bmUpCi0jIHgxNiAgPT4gc2NyYXRjaAotIyB4MTcgID0+IHNjcmF0Y2gKLSMgeDIzICA9PiB0Mwot
IyB4MjQgID0+IHQ1Ci0jIHgyNyAgPT4gY3NyMSAodGFnVHlwZU51bWJlcikKLSMgeDI4ICA9PiBj
c3IyICh0YWdNYXNrKQorIyAgeDMgID0+IHQzLCBhMworIyAgeDQgID0+IHQ0CisjICB4NSAgPT4g
dDUKKyMgeDEzICA9PiAgICAgICAgICAgICAgICAgIChzY3JhdGNoKQorIyB4MTYgID0+ICAgICAg
ICAgICAgICAgICAgKHNjcmF0Y2gpCisjIHgxNyAgPT4gICAgICAgICAgICAgICAgICAoc2NyYXRj
aCkKKyMgeDI2ICA9PiAgICAgICAgICAgICBjc3IwIChQQikKKyMgeDI3ICA9PiAgICAgICAgICAg
ICBjc3IxICh0YWdUeXBlTnVtYmVyKQorIyB4MjggID0+ICAgICAgICAgICAgIGNzcjIgKHRhZ01h
c2spCiAjIHgyOSAgPT4gY2ZyCiAjICBzcCAgPT4gc3AKICMgIGxyICA9PiBscgogIwotIyBGUFIg
Y29uZW50aW9ucywgdG8gbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVDoKKyMgRlBSIGNvbnZlbnRpb25z
LCB0byBtYXRjaCB0aGUgYmFzZWxpbmUgSklUOgogIwotIyAgcTAgID0+IGZ0MAotIyAgcTEgID0+
IGZ0MQotIyAgcTIgID0+IGZ0MgotIyAgcTMgID0+IGZ0MwotIyAgcTQgID0+IGZ0NCAodW51c2Vk
IGluIGJhc2VsaW5lKQotIyAgcTUgID0+IGZ0NSAodW51c2VkIGluIGJhc2VsaW5lKQorIyAgcTAg
ID0+IGZ0MCwgZmEwLCBmcgorIyAgcTEgID0+IGZ0MSwgZmExCisjICBxMiAgPT4gZnQyLCBmYTIK
KyMgIHEzICA9PiBmdDMsIGZhMworIyAgcTQgID0+IGZ0NCAgICAgICAgICAodW51c2VkIGluIGJh
c2VsaW5lKQorIyAgcTUgID0+IGZ0NSAgICAgICAgICAodW51c2VkIGluIGJhc2VsaW5lKQogIyBx
MzEgID0+IHNjcmF0Y2gKIAogZGVmIGFybTY0R1BSTmFtZShuYW1lLCBraW5kKQpAQCAtMTA5LDIw
ICsxMDcsMTYgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4
MScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3QyJywgJ2EyJwogICAgICAgICAgICAgYXJtNjRHUFJO
YW1lKCd4MicsIGtpbmQpCi0gICAgICAgIHdoZW4gJ2EzJworICAgICAgICB3aGVuICd0MycsICdh
MycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDMnLCBraW5kKQotICAgICAgICB3aGVuICd0
MycKLSAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywga2luZCkKICAgICAgICAgd2hlbiAn
dDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g1Jywga2luZCkKKyAgICAgICAgICAgIGFy
bTY0R1BSTmFtZSgneDQnLCBraW5kKQogICAgICAgICB3aGVuICd0NScKLSAgICAgICAgICAgIGFy
bTY0R1BSTmFtZSgneDI0Jywga2luZCkKLSAgICAgICAgd2hlbiAndDYnCi0gICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3g2Jywga2luZCkKLSAgICAgICAgd2hlbiAndDcnCi0gICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3g3Jywga2luZCkKKyAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDUnLCBr
aW5kKQogICAgICAgICB3aGVuICdjZnInCiAgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyOScs
IGtpbmQpCisgICAgICAgIHdoZW4gJ2NzcjAnCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gy
NicsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NzcjEnCiAgICAgICAgICAgICBhcm02NEdQUk5hbWUo
J3gyNycsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NzcjInCkBAIC0xNDAsMTMgKzEzNCwxMyBAQCBl
bmQKIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm02NE9wZXJhbmQoa2luZCkKICAgICAg
ICAgY2FzZSBAbmFtZQotICAgICAgICB3aGVuICdmdDAnCisgICAgICAgIHdoZW4gJ2Z0MCcsICdm
cicsICdmYTAnCiAgICAgICAgICAgICBhcm02NEZQUk5hbWUoJ3EwJywga2luZCkKLSAgICAgICAg
d2hlbiAnZnQxJworICAgICAgICB3aGVuICdmdDEnLCAnZmExJwogICAgICAgICAgICAgYXJtNjRG
UFJOYW1lKCdxMScsIGtpbmQpCi0gICAgICAgIHdoZW4gJ2Z0MicKKyAgICAgICAgd2hlbiAnZnQy
JywgJ2ZhMicKICAgICAgICAgICAgIGFybTY0RlBSTmFtZSgncTInLCBraW5kKQotICAgICAgICB3
aGVuICdmdDMnCisgICAgICAgIHdoZW4gJ2Z0MycsICdmYTMnCiAgICAgICAgICAgICBhcm02NEZQ
Uk5hbWUoJ3EzJywga2luZCkKICAgICAgICAgd2hlbiAnZnQ0JwogICAgICAgICAgICAgYXJtNjRG
UFJOYW1lKCdxNCcsIGtpbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9jbG9vcC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29w
LnJiCmluZGV4IDA0YTY5OTguLjdlOTM5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2Nsb29wLnJiCkBAIC03MCw5ICs3MCw5IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAg
ICAgY2FzZSBuYW1lCiAgICAgICAgICMgVGhlIGNsb29wIGlzIG1vZGVsbGVkIG9uIHRoZSBBUk0g
aW1wbGVtZW50YXRpb24uIEhlbmNlLCB0aGUgYTAtYTMKICAgICAgICAgIyByZWdpc3RlcnMgYXJl
IGFsaWFzZXMgZm9yIHIwLXIzIGkuZS4gdDAtdDMgaW4gb3VyIGNhc2UuCi0gICAgICAgIHdoZW4g
InQwIiwgImEwIgorICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKICAgICAgICAgICAgICJ0
MCIKLSAgICAgICAgd2hlbiAidDEiLCAiYTEiCisgICAgICAgIHdoZW4gInQxIiwgImExIiwgInIx
IgogICAgICAgICAgICAgInQxIgogICAgICAgICB3aGVuICJ0MiIsICJhMiIKICAgICAgICAgICAg
ICJ0MiIKQEAgLTgyLDEwICs4Miw4IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgICJw
YyIKICAgICAgICAgd2hlbiAidDUiCiAgICAgICAgICAgICAidDUiCi0gICAgICAgIHdoZW4gInQ2
IgorICAgICAgICB3aGVuICJjc3IwIgogICAgICAgICAgICAgInBjQmFzZSIKLSAgICAgICAgd2hl
biAidDciCi0gICAgICAgICAgICAidDciCiAgICAgICAgIHdoZW4gImNzcjEiCiAgICAgICAgICAg
ICAidGFnVHlwZU51bWJlciIKICAgICAgICAgd2hlbiAiY3NyMiIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9taXBzLnJiCmluZGV4IGNjMTA3ZWMuLjMwNTJkY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpAQCAtMjQsNiArMjQsNDEgQEAKIAogcmVx
dWlyZSAncmlzYycKIAorIyBHUFIgY29udmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBK
SVQKKyMKKyMgJGEwID0+IGEwCisjICRhMSA9PiBhMQorIyAkYTIgPT4gYTIKKyMgJGEzID0+IGEz
CisjICR2MCA9PiB0MCwgcjAKKyMgJHYxID0+IHQxLCByMQorIyAkdDIgPT4gICAgICAgICB0Mgor
IyAkdDMgPT4gICAgICAgICB0MworIyAkdDQgPT4gICAgICAgICB0NAorIyAkdDUgPT4gICAgICAg
ICB0NQorIyAkdDYgPT4gICAgICAgICAgICAoc2NyYXRjaCkKKyMgJHQ3ID0+ICAgICAgICAgICAg
KHNjcmF0Y2gpCisjICR0OCA9PiAgICAgICAgICAgIChzY3JhdGNoKQorIyAkdDkgPT4gICAgICAg
ICAgICAoc3RvcmVzIHRoZSBjYWxsZWUgb2YgYSBjYWxsIG9wY29kZSkKKyMgJGdwID0+ICAgICAg
ICAgICAgKGdsb2JhbHMpCisjICRzNCA9PiAgICAgICAgICAgIChjYWxsZWUtc2F2ZSB1c2VkIHRv
IHByZXNlcnZlICRncCBhY3Jvc3MgY2FsbHMpCisjICRyYSA9PiBscgorIyAkc3AgPT4gc3AKKyMg
JGZwID0+IGNmcgorIworIyBGUFIgY29udmVudGlvbnMsIHRvIG1hdGNoIHRoZSBiYXNlbGluZSBK
SVQKKyMgV2UgZG9uJ3QgaGF2ZSBmYTIgb3IgZmEzIQorIyAgJGYwID0+IGZ0MCwgZnIKKyMgICRm
MiA9PiBmdDEKKyMgICRmNCA9PiBmdDIKKyMgICRmNiA9PiBmdDMKKyMgICRmOCA9PiBmdDQKKyMg
JGYxMCA9PiBmdDUKKyMgJGYxMiA9PiAgICAgICAgZmEwCisjICRmMTQgPT4gICAgICAgIGZhMQor
IyAkZjE2ID0+ICAgICAgICAgICAgKHNjcmF0Y2gpCisjICRmMTggPT4gICAgICAgICAgICAoc2Ny
YXRjaCkKKwogY2xhc3MgQXNzZW1ibGVyCiAgICAgZGVmIHB1dFN0cihzdHIpCiAgICAgICAgIEBv
dXRwLnB1dHMgc3RyCkBAIC01Nyw4ICs5Miw3IEBAIGNsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5v
Q2hpbGRyZW4KICAgICBlbmQKIGVuZAogCi1NSVBTX1RFTVBfR1BSUyA9IFtTcGVjaWFsUmVnaXN0
ZXIubmV3KCIkdDUiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ2IiksIFNwZWNpYWxSZWdpc3Rl
ci5uZXcoIiR0NyIpLAotICAgICAgICAgICAgICAgICAgICBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
dDgiKV0KK01JUFNfVEVNUF9HUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NiIpLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkdDciKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ4IildCiBNSVBT
X1pFUk9fUkVHID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKQogTUlQU19HUF9SRUcgPSBT
cGVjaWFsUmVnaXN0ZXIubmV3KCIkZ3AiKQogTUlQU19HUFNBVkVfUkVHID0gU3BlY2lhbFJlZ2lz
dGVyLm5ldygiJHM0IikKQEAgLTg1LDI0ICsxMTksMTggQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAg
ICAgICAgICAgIiRhMiIKICAgICAgICAgd2hlbiAiYTMiCiAgICAgICAgICAgICAiJGEzIgotICAg
ICAgICB3aGVuICJyMCIsICJ0MCIKKyAgICAgICAgd2hlbiAidDAiLCAicjAiCiAgICAgICAgICAg
ICAiJHYwIgotICAgICAgICB3aGVuICJyMSIsICJ0MSIKKyAgICAgICAgd2hlbiAidDEiLCAicjEi
CiAgICAgICAgICAgICAiJHYxIgogICAgICAgICB3aGVuICJ0MiIKICAgICAgICAgICAgICIkdDIi
CiAgICAgICAgIHdoZW4gInQzIgotICAgICAgICAgICAgIiRzMyIKLSAgICAgICAgd2hlbiAidDQi
ICAgIyBQQyByZWcgaW4gbGxpbnQKLSAgICAgICAgICAgICIkczIiCisgICAgICAgICAgICAiJHQz
IgorICAgICAgICB3aGVuICJ0NCIKKyAgICAgICAgICAgICIkdDQiCiAgICAgICAgIHdoZW4gInQ1
IgogICAgICAgICAgICAgIiR0NSIKLSAgICAgICAgd2hlbiAidDYiCi0gICAgICAgICAgICAiJHQ2
IgotICAgICAgICB3aGVuICJ0NyIKLSAgICAgICAgICAgICIkdDciCi0gICAgICAgIHdoZW4gInQ4
IgotICAgICAgICAgICAgIiR0OCIKICAgICAgICAgd2hlbiAiY2ZyIgogICAgICAgICAgICAgIiRm
cCIKICAgICAgICAgd2hlbiAibHIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9yZWdpc3RlcnMucmIKaW5kZXggMTY4NjY3ZS4uYTRhMDc1YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgpAQCAtMzEsMTAgKzMxLDYgQEAgR1BS
UyA9CiAgICAgICJ0MyIsCiAgICAgICJ0NCIsCiAgICAgICJ0NSIsCi0gICAgICJ0NiIsCi0gICAg
ICJ0NyIsCi0gICAgICJ0OCIsCi0gICAgICJ0OSIsCiAgICAgICJjZnIiLAogICAgICAiYTAiLAog
ICAgICAiYTEiLApAQCAtNDYsOCArNDIsMTMgQEAgR1BSUyA9CiAgICAgICJsciIsCiAgICAgICJw
YyIsCiAgICAgICMgNjQtYml0IG9ubHkgcmVnaXN0ZXJzOgotICAgICAiY3NyMSIsICAjIHRhZyB0
eXBlIG51bWJlciByZWdpc3RlcgotICAgICAiY3NyMiIgICAjIHRhZyBtYXNrIHJlZ2lzdGVyCisg
ICAgICJjc3IwIiwKKyAgICAgImNzcjEiLAorICAgICAiY3NyMiIsCisgICAgICJjc3IzIiwKKyAg
ICAgImNzcjQiLAorICAgICAiY3NyNSIsCisgICAgICJjc3I2IgogICAgIF0KIAogRlBSUyA9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIKaW5kZXggMDI0MWYzOC4uYzg0N2Q1
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vc2g0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NoNC5yYgpAQCAtMjQsNiArMjQs
MzMgQEAKIAogcmVxdWlyZSAncmlzYycKIAorIyBHUFIgY29udmVudGlvbnMsIHRvIG1hdGNoIHRo
ZSBiYXNlbGluZSBKSVQKKyMKKyMgIHIwID0+IHQwLCByMAorIyAgcjEgPT4gdDEsIHIxCisjICBy
MiA9PiB0NAorIyAgcjMgPT4gdDUKKyMgIHI0ID0+ICAgICAgICAgYTAKKyMgIHI1ID0+ICAgICAg
ICAgYTEKKyMgIHI2ID0+IHQyLCAgICAgYTIKKyMgIHI3ID0+IHQzLCAgICAgYTMKKyMgcjEwID0+
ICAgICAgICAgICAgKHNjcmF0Y2gpCisjIHIxMSA9PiAgICAgICAgICAgIChzY3JhdGNoKQorIyBy
MTMgPT4gICAgICAgICAgICAoc2NyYXRjaCkKKyMgcjE0ID0+IGNmcgorIyByMTUgPT4gc3AKKyMg
IHByID0+IGxyCisKKyMgRlBSIGNvbnZlbnRpb25zLCB0byBtYXRjaCB0aGUgYmFzZWxpbmUgSklU
CisjIFdlIGRvbid0IGhhdmUgZmEyIG9yIGZhMyEKKyMgIGRyMCA9PiBmdDAsIGZyCisjICBkcjIg
PT4gZnQxCisjICBkcjQgPT4gZnQyLCAgIGZhMAorIyAgZHI2ID0+IGZ0MywgICBmYTEKKyMgIGRy
OCA9PiBmdDQKKyMgZHIxMCA9PiBmdDUKKyMgZHIxMiA9PiAgICAgICAgICAgICAoc2NyYXRjaCkK
KwogY2xhc3MgTm9kZQogICAgIGRlZiBzaDRTaW5nbGVIaQogICAgICAgICBkb3VibGVPcGVyYW5k
ID0gc2g0T3BlcmFuZApAQCAtNTEsMzIgKzc4LDI4IEBAIGNsYXNzIFNwZWNpYWxSZWdpc3RlciA8
IE5vQ2hpbGRyZW4KICAgICBlbmQKIGVuZAogCi1TSDRfVE1QX0dQUlMgPSBbIFNwZWNpYWxSZWdp
c3Rlci5uZXcoInIzIiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIxMSIpLCBTcGVjaWFsUmVnaXN0
ZXIubmV3KCJyMTMiKSBdCi1TSDRfVE1QX0ZQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoImRy
MTAiKSBdCitTSDRfVE1QX0dQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIxMCIpLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCJyMTEiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjEzIikgXQorU0g0
X1RNUF9GUFJTID0gWyBTcGVjaWFsUmVnaXN0ZXIubmV3KCJkcjEyIikgXQogCiBjbGFzcyBSZWdp
c3RlcklECiAgICAgZGVmIHNoNE9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdo
ZW4gInQwIgotICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIKLSAgICAgICAgICAg
ICJyMSIKLSAgICAgICAgd2hlbiAidDIiCi0gICAgICAgICAgICAicjIiCi0gICAgICAgIHdoZW4g
InQzIgotICAgICAgICAgICAgInIxMCIKLSAgICAgICAgd2hlbiAidDQiLCAiYTAiCisgICAgICAg
IHdoZW4gImEwIgogICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIsICJhMSIKKyAg
ICAgICAgd2hlbiAiYTEiCiAgICAgICAgICAgICAicjUiCi0gICAgICAgIHdoZW4gInQ2IiwgImEy
IgorICAgICAgICB3aGVuICJyMCIsICJ0MCIKKyAgICAgICAgICAgICJyMCIKKyAgICAgICAgd2hl
biAicjEiLCAidDEiCisgICAgICAgICAgICAicjEiCisgICAgICAgIHdoZW4gImEyIiwgInQyIgog
ICAgICAgICAgICAgInI2IgotICAgICAgICB3aGVuICJ0NyIsICJhMyIKKyAgICAgICAgd2hlbiAi
YTMiLCAidDMiCiAgICAgICAgICAgICAicjciCi0gICAgICAgIHdoZW4gInQ4IgotICAgICAgICAg
ICAgInI4IgotICAgICAgICB3aGVuICJ0OSIKLSAgICAgICAgICAgICJyOSIKKyAgICAgICAgd2hl
biAidDQiCisgICAgICAgICAgICAicjIiCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAg
InIzIgogICAgICAgICB3aGVuICJjZnIiCiAgICAgICAgICAgICAicjE0IgogICAgICAgICB3aGVu
ICJzcCIKQEAgLTk2LDE0ICsxMTksMTQgQEAgY2xhc3MgRlBSZWdpc3RlcklECiAgICAgICAgICAg
ICAiZHIwIgogICAgICAgICB3aGVuICJmdDEiCiAgICAgICAgICAgICAiZHIyIgotICAgICAgICB3
aGVuICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJmYTAiCiAgICAgICAgICAgICAiZHI0Igot
ICAgICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJmYTEiCiAgICAgICAgICAg
ICAiZHI2IgogICAgICAgICB3aGVuICJmdDQiCiAgICAgICAgICAgICAiZHI4IgotICAgICAgICB3
aGVuICJmYTAiCi0gICAgICAgICAgICAiZHIxMiIKKyAgICAgICAgd2hlbiAiZnQ1IgorICAgICAg
ICAgICAgImRyMTAiCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0
ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAgIGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCmluZGV4IDg4MzBlM2QuLjE3ZmY5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKQEAgLTI0LDYgKzI0
LDYyIEBACiAKIHJlcXVpcmUgImNvbmZpZyIKIAorIyBHUFIgY29udmVudGlvbnMsIHRvIG1hdGNo
IHRoZSBiYXNlbGluZSBKSVQ6CisjCisjCisjIE9uIHg4Ni0zMiBiaXRzICh3aW5kb3dzIGFuZCBu
b24td2luZG93cykKKyMgYTAsIGExLCBhMiwgYTMgYXJlIG9ubHkgdGhlcmUgZm9yIGVhc2Utb2Yt
dXNlIG9mIG9mZmxpbmVhc207IHRoZXkgYXJlIG5vdAorIyBhY3R1YWxseSBjb25zaWRlcmVkIGFz
IHN1Y2ggYnkgdGhlIEFCSSBhbmQgd2UgbmVlZCB0byBwdXNoL3BvcCBvdXIgYXJndW1lbnRzCisj
IG9uIHRoZSBzdGFjay4gYTAgYW5kIGExIGFyZSBlY3ggYW5kIGVkeCB0byBmb2xsb3cgZmFzdGNh
bGwuCisjCisjIGVheCA9PiB0MCwgYTIsIHIwCisjIGVkeCA9PiB0MSwgYTEsIHIxCisjIGVjeCA9
PiB0MiwgYTAKKyMgZWJ4ID0+IHQzLCBhMyAgICAgKGNhbGxlZS1zYXZlKQorIyBlc2kgPT4gdDQg
ICAgICAgICAoY2FsbGVlLXNhdmUpCisjIGVkaSA9PiB0NSAgICAgICAgIChjYWxsZWUtc2F2ZSkK
KyMgZWJwID0+IGNmcgorIyBlc3AgPT4gc3AKKyMKKyMgT24geDg2LTY0IG5vbi13aW5kb3dzCisj
CisjIHJheCA9PiB0MCwgICAgIHIwCisjIHJkaSA9PiAgICAgYTAKKyMgcnNpID0+IHQxLCBhMQor
IyByZHggPT4gdDIsIGEyLCByMQorIyByY3ggPT4gdDMsIGEzCisjICByOCA9PiB0NAorIyByMTAg
PT4gdDUKKyMgcmJ4ID0+ICAgICAgICAgICAgIGNzcjAgKGNhbGxlZS1zYXZlLCBQQiwgdW51c2Vk
IGluIGJhc2VsaW5lKQorIyByMTIgPT4gICAgICAgICAgICAgY3NyMSAoY2FsbGVlLXNhdmUpCisj
IHIxMyA9PiAgICAgICAgICAgICBjc3IyIChjYWxsZWUtc2F2ZSkKKyMgcjE0ID0+ICAgICAgICAg
ICAgIGNzcjMgKGNhbGxlZS1zYXZlLCB0YWdUeXBlTnVtYmVyKQorIyByMTUgPT4gICAgICAgICAg
ICAgY3NyNCAoY2FsbGVlLXNhdmUsIHRhZ01hc2spCisjIHJzcCA9PiBzcAorIyByYnAgPT4gY2Zy
CisjIHIxMSA9PiAgICAgICAgICAgICAgICAgIChzY3JhdGNoKQorIworIyBPbiB4ODYtNjQgd2lu
ZG93cworIyBBcmd1bWVudHMgbmVlZCB0byBiZSBwdXNoL3BvcCdkIG9uIHRoZSBzdGFjayBpbiBh
ZGRpdGlvbiB0byBiZWluZyBzdG9yZWQgaW4KKyMgdGhlIHJlZ2lzdGVycy4gQWxzbywgPjggcmV0
dXJuIHR5cGVzIGFyZSByZXR1cm5lZCBpbiBhIHdlaXJkIHdheS4KKyMKKyMgcmF4ID0+IHQwLCAg
ICAgcjAKKyMgcmN4ID0+ICAgICBhMAorIyByZHggPT4gdDEsIGExLCByMQorIyAgcjggPT4gdDIs
IGEyCisjICByOSA9PiB0MywgYTMKKyMgcjEwID0+IHQ0CisjIHJieCA9PiAgICAgICAgICAgICBj
c3IwIChjYWxsZWUtc2F2ZSwgUEIsIHVudXNlZCBpbiBiYXNlbGluZSkKKyMgcnNpID0+ICAgICAg
ICAgICAgIGNzcjEgKGNhbGxlZS1zYXZlKQorIyByZGkgPT4gICAgICAgICAgICAgY3NyMiAoY2Fs
bGVlLXNhdmUpCisjIHIxMiA9PiAgICAgICAgICAgICBjc3IzIChjYWxsZWUtc2F2ZSkKKyMgcjEz
ID0+ICAgICAgICAgICAgIGNzcjQgKGNhbGxlZS1zYXZlKQorIyByMTQgPT4gICAgICAgICAgICAg
Y3NyNSAoY2FsbGVlLXNhdmUsIHRhZ1R5cGVOdW1iZXIpCisjIHIxNSA9PiAgICAgICAgICAgICBj
c3I2IChjYWxsZWUtc2F2ZSwgdGFnTWFzaykKKyMgcnNwID0+IHNwCisjIHJicCA9PiBjZnIKKyMg
cjExID0+ICAgICAgICAgICAgICAgICAgKHNjcmF0Y2gpCisKIGRlZiBpc1g2NAogICAgIGNhc2Ug
JGFjdGl2ZUJhY2tlbmQKICAgICB3aGVuICJYODYiCkBAIC0zOSw2ICs5NSwyMSBAQCBkZWYgaXNY
NjQKICAgICBlbmQKIGVuZAogCitkZWYgaXNXaW4KKyAgICBjYXNlICRhY3RpdmVCYWNrZW5kCisg
ICAgd2hlbiAiWDg2IgorICAgICAgICBmYWxzZQorICAgIHdoZW4gIlg4Nl9XSU4iCisgICAgICAg
IHRydWUKKyAgICB3aGVuICJYODZfNjQiCisgICAgICAgIGZhbHNlCisgICAgd2hlbiAiWDg2XzY0
X1dJTiIKKyAgICAgICAgdHJ1ZQorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgImJhZCB2YWx1ZSBm
b3IgJGFjdGl2ZUJhY2tlbmQ6ICN7JGFjdGl2ZUJhY2tlbmR9IgorICAgIGVuZAorZW5kCisKIGRl
ZiB1c2VYODcKICAgICBjYXNlICRhY3RpdmVCYWNrZW5kCiAgICAgd2hlbiAiWDg2IgpAQCAtNTQs
MjAgKzEyNSwyMCBAQCBkZWYgdXNlWDg3CiAgICAgZW5kCiBlbmQKIAotZGVmIGlzV2luZG93cwor
ZGVmIGlzQ29tcGlsaW5nT25XaW5kb3dzCiAgICAgRU5WWydPUyddID09ICdXaW5kb3dzX05UJwog
ZW5kCiAKIGRlZiBpc0dDQwotICAgICFpc1dpbmRvd3MKKyAgICAhaXNDb21waWxpbmdPbldpbmRv
d3MKIGVuZAogCiBkZWYgaXNNU1ZDCi0gICAgaXNXaW5kb3dzCisgICAgaXNDb21waWxpbmdPbldp
bmRvd3MKIGVuZAogCiBkZWYgaXNJbnRlbFN5bnRheAotICAgIGlzV2luZG93cworICAgIGlzQ29t
cGlsaW5nT25XaW5kb3dzCiBlbmQKIAogZGVmIHJlZ2lzdGVyKG5hbWUpCkBAIC0xNDEsMjA1ICsy
MTIsMTMzIEBAIGVuZAogCiBYNjRfU0NSQVRDSF9SRUdJU1RFUiA9IFNwZWNpYWxSZWdpc3Rlci5u
ZXcoInIxMSIpCiAKK2RlZiB4ODZHUFJOYW1lKG5hbWUsIGtpbmQpCisgICAgY2FzZSBuYW1lCisg
ICAgd2hlbiAiZWF4IiwgImVieCIsICJlY3giLCAiZWR4IgorICAgICAgICBuYW1lOCA9IG5hbWVb
MV0gKyAnbCcKKyAgICAgICAgbmFtZTE2ID0gbmFtZVsxLi4yXQorICAgIHdoZW4gImVzaSIsICJl
ZGkiLCAiZWJwIiwgImVzcCIKKyAgICAgICAgbmFtZTE2ID0gbmFtZVsxLi4yXQorICAgICAgICBu
YW1lOCA9IG5hbWUxNiArICdsJworICAgIHdoZW4gInJheCIsICJyYngiLCAicmN4IiwgInJkeCIK
KyAgICAgICAgcmFpc2UgImJhZCBHUFIgbmFtZSAje25hbWV9IGluIDMyLWJpdCBYODYiIHVubGVz
cyBpc1g2NAorICAgICAgICBuYW1lOCA9IG5hbWVbMV0gKyAnbCcKKyAgICAgICAgbmFtZTE2ID0g
bmFtZVsxLi4yXQorICAgIHdoZW4gInI4IiwgInI5IiwgInIxMCIsICJyMTIiLCAicjEzIiwgInIx
NCIsICJyMTUiCisgICAgICAgIHJhaXNlICJiYWQgR1BSIG5hbWUgI3tuYW1lfSBpbiAzMi1iaXQg
WDg2IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgY2FzZSBraW5kCisgICAgICAgIHdoZW4gOmhhbGYK
KyAgICAgICAgICAgIHJldHVybiByZWdpc3RlcihuYW1lICsgInciKQorICAgICAgICB3aGVuIDpp
bnQKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RlcihuYW1lICsgImQiKQorICAgICAgICB3aGVu
IDpwdHIKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RlcihuYW1lKQorICAgICAgICB3aGVuIDpx
dWFkCisgICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXIobmFtZSkKKyAgICAgICAgZW5kCisgICAg
ZWxzZQorICAgICAgICByYWlzZSAiYmFkIEdQUiBuYW1lICN7bmFtZX0iCisgICAgZW5kCisgICAg
Y2FzZSBraW5kCisgICAgd2hlbiA6Ynl0ZQorICAgICAgICByZWdpc3RlcihuYW1lOCkKKyAgICB3
aGVuIDpoYWxmCisgICAgICAgIHJlZ2lzdGVyKG5hbWUxNikKKyAgICB3aGVuIDppbnQKKyAgICAg
ICAgcmVnaXN0ZXIoImUiICsgbmFtZTE2KQorICAgIHdoZW4gOnB0cgorICAgICAgICByZWdpc3Rl
cigoaXNYNjQgPyAiciIgOiAiZSIpICsgbmFtZTE2KQorICAgIHdoZW4gOnF1YWQKKyAgICAgICAg
aXNYNjQgPyByZWdpc3RlcigiciIgKyBuYW1lMTYpIDogcmFpc2UKKyAgICBlbHNlCisgICAgICAg
IHJhaXNlICJpbnZhbGlkIGtpbmQgI3traW5kfSBmb3IgR1BSICN7bmFtZX0gaW4gWDg2IgorICAg
IGVuZAorZW5kCisKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgc3VwcG9ydHM4Qml0T25YODYK
LSAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdoZW4gInQwIiwgImEwIiwgInIwIiwgInQxIiwg
ImExIiwgInIxIiwgInQyIiwgInQzIiwgInQ0IiwgInQ1IgorICAgICAgICBjYXNlIHg4NkdQUgor
ICAgICAgICB3aGVuICJlYXgiLCAiZWJ4IiwgImVjeCIsICJlZHgiLCAiZWRpIiwgImVzaSIsICJl
YnAiLCAiZXNwIgogICAgICAgICAgICAgdHJ1ZQotICAgICAgICB3aGVuICJjZnIiLCAidHRuciIs
ICJ0bXIiCisgICAgICAgIHdoZW4gInI4IiwgInI5IiwgInIxMCIsICJyMTIiLCAicjEzIiwgInIx
NCIsICJyMTUiCiAgICAgICAgICAgICBmYWxzZQotICAgICAgICB3aGVuICJ0NiIKLSAgICAgICAg
ICAgIGlzWDY0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGVuZAog
ICAgIGVuZAotICAgIAotICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCi0gICAgICAgIGNhc2UgbmFt
ZQotICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKLSAgICAgICAgICAgIGNhc2Uga2luZAot
ICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJhbCIpCi0g
ICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoImF4IikKLSAg
ICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlYXgiKQotICAg
ICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicmF4
IikgOiByZWdpc3RlcigiZWF4IikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAg
ICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyYXgiKSA6IHJhaXNlCi0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgcmFpc2UgIkludmFsaWQga2luZCAje2tpbmR9IGZvciBuYW1lICN7bmFt
ZX0iCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAicjEiCi0gICAg
ICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAg
ICByZWdpc3RlcigiZGwiKQotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAg
IHJlZ2lzdGVyKCJkeCIpCi0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICBy
ZWdpc3RlcigiZWR4IikKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlz
WDY0ID8gcmVnaXN0ZXIoInJkeCIpIDogcmVnaXN0ZXIoImVkeCIpCi0gICAgICAgICAgICB3aGVu
IDpxdWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicmR4IikgOiByYWlzZQot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbmQK
LSAgICAgICAgd2hlbiAidDIiCi0gICAgICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdo
ZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiY2wiKQotICAgICAgICAgICAgd2hl
biA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJjeCIpCi0gICAgICAgICAgICB3aGVu
IDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigiZWN4IikKLSAgICAgICAgICAgIHdoZW4g
OnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIoInJjeCIpIDogcmVnaXN0ZXIo
ImVjeCIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgaXNYNjQgPyBy
ZWdpc3RlcigicmN4IikgOiByYWlzZQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHJhaXNlCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAidDMiCi0gICAgICAgICAgICBj
YXNlIGtpbmQKLSAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICByZWdpc3Rl
cigiYmwiKQotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVy
KCJieCIpCi0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICByZWdpc3Rlcigi
ZWJ4IikKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVn
aXN0ZXIoInJieCIpIDogcmVnaXN0ZXIoImVieCIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0g
ICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicmJ4IikgOiByYWlzZQotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbmQKLSAgICAgICAg
d2hlbiAidDQiCi0gICAgICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdoZW4gOmJ5dGUK
LSAgICAgICAgICAgICAgICByZWdpc3RlcigiZGlsIikKLSAgICAgICAgICAgIHdoZW4gOmhhbGYK
LSAgICAgICAgICAgICAgICByZWdpc3RlcigiZGkiKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0g
ICAgICAgICAgICAgICAgcmVnaXN0ZXIoImVkaSIpCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAg
ICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lzdGVyKCJyZGkiKSA6IHJlZ2lzdGVyKCJlZGkiKQot
ICAgICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIGlzWDY0ID8gcmVnaXN0ZXIo
InJkaSIpIDogcmFpc2UKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZQot
ICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gImNmciIKLSAgICAgICAgICAgIGlmIGlzWDY0
Ci0gICAgICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICAgICAgd2hlbiA6aGFsZgot
ICAgICAgICAgICAgICAgICAgICByZWdpc3RlcigiYnAiKQotICAgICAgICAgICAgICAgIHdoZW4g
OmludAotICAgICAgICAgICAgICAgICAgICByZWdpc3RlcigiZWJwIikKLSAgICAgICAgICAgICAg
ICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIoInJicCIpCi0gICAgICAg
ICAgICAgICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgICAgICByZWdpc3RlcigicmJwIikK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAg
ICAgICAgICAgZW5kCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY2FzZSBraW5k
Ci0gICAgICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICAgICByZWdpc3Rl
cigiYnAiKQotICAgICAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICAgICBy
ZWdpc3RlcigiZWJwIikKLSAgICAgICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXIoImVicCIpCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgZW5kCi0gICAg
ICAgIHdoZW4gInNwIgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpi
eXRlCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInNwbCIpCi0gICAgICAgICAgICB3aGVuIDpo
YWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInNwIikKLSAgICAgICAgICAgIHdoZW4gOmlu
dAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlc3AiKQotICAgICAgICAgICAgd2hlbiA6cHRy
Ci0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicnNwIikgOiByZWdpc3RlcigiZXNw
IikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/IHJlZ2lz
dGVyKCJyc3AiKSA6IHJhaXNlCisKKyAgICBkZWYgeDg2R1BSCisgICAgICAgIGlmIGlzWDY0Cisg
ICAgICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgICAgIHdoZW4gInQwIiwgInIwIgorICAgICAg
ICAgICAgICAgICJlYXgiCisgICAgICAgICAgICB3aGVuICJyMSIKKyAgICAgICAgICAgICAgICAi
ZWR4IiAjIHQxID0gYTEgd2hlbiBpc1dpbiwgdDIgPSBhMiBvdGhlcndpc2UKKyAgICAgICAgICAg
IHdoZW4gImEwIgorICAgICAgICAgICAgICAgIGlzV2luID8gImVjeCIgOiAiZWRpIgorICAgICAg
ICAgICAgd2hlbiAidDEiLCAiYTEiCisgICAgICAgICAgICAgICAgaXNXaW4gPyAiZWR4IiA6ICJl
c2kiCisgICAgICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgICAgICAgICBpc1dpbiA/
ICJyOCIgOiAiZWR4IgorICAgICAgICAgICAgd2hlbiAidDMiLCAiYTMiCisgICAgICAgICAgICAg
ICAgaXNXaW4gPyAicjkiIDogImVjeCIKKyAgICAgICAgICAgIHdoZW4gInQ0IgorICAgICAgICAg
ICAgICAgIGlzV2luID8gInIxMCIgOiAicjgiCisgICAgICAgICAgICB3aGVuICJ0NSIKKyAgICAg
ICAgICAgICAgICByYWlzZSAiY2Fubm90IHVzZSByZWdpc3RlciAje25hbWV9IG9uIFg4Ni02NCBX
aW5kb3dzIiB1bmxlc3Mgbm90IGlzV2luCisgICAgICAgICAgICAgICAgInIxMCIKKyAgICAgICAg
ICAgIHdoZW4gImNzcjAiCisgICAgICAgICAgICAgICAgImVieCIKKyAgICAgICAgICAgIHdoZW4g
ImNzcjEiCisgICAgICAgICAgICAgICAgInIxMiIKKyAgICAgICAgICAgIHdoZW4gImNzcjIiCisg
ICAgICAgICAgICAgICAgInIxMyIKKyAgICAgICAgICAgIHdoZW4gImNzcjMiCisgICAgICAgICAg
ICAgICAgaXNXaW4gPyAiZXNpIiA6ICJyMTQiCisgICAgICAgICAgICB3aGVuICJjc3I0IgorICAg
ICAgICAgICAgICAgIGlzV2luID8gImVkaSIgOiAicjE1IgorICAgICAgICAgICAgICAgICJyMTUi
CisgICAgICAgICAgICB3aGVuICJjc3I1IgorICAgICAgICAgICAgICAgIHJhaXNlICJjYW5ub3Qg
dXNlIHJlZ2lzdGVyICN7bmFtZX0gb24gWDg2LTY0IiB1bmxlc3MgaXNXaW4KKyAgICAgICAgICAg
ICAgICAicjE0IgorICAgICAgICAgICAgd2hlbiAiY3NyNiIKKyAgICAgICAgICAgICAgICByYWlz
ZSAiY2Fubm90IHVzZSByZWdpc3RlciAje25hbWV9IG9uIFg4Ni02NCIgdW5sZXNzIGlzV2luCisg
ICAgICAgICAgICAgICAgInIxNSIKKyAgICAgICAgICAgIHdoZW4gImNmciIKKyAgICAgICAgICAg
ICAgICAiZWJwIgorICAgICAgICAgICAgd2hlbiAic3AiCisgICAgICAgICAgICAgICAgImVzcCIK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZW5k
Ci0gICAgICAgIHdoZW4gInQ1IgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3
aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInNpbCIpCi0gICAgICAgICAgICB3
aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInNpIikKLSAgICAgICAgICAgIHdo
ZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJlc2kiKQotICAgICAgICAgICAgd2hl
biA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyByZWdpc3RlcigicnNpIikgOiByZWdpc3Rl
cigiZXNpIikKLSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICBpc1g2NCA/
IHJlZ2lzdGVyKCJyc2kiKSA6IHJhaXNlCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAi
dDYiCi0gICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYg
YXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0Ci0gICAgICAgICAgICBjYXNlIGtp
bmQKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICByZWdpc3Rlcigicjh3
IikKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyOGQi
KQotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI4IikK
LSAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAgICByZWdpc3RlcigicjgiKQot
ICAgICAgICAgICAgZW5kCi0gICAgICAgIHdoZW4gInQ3IgotICAgICAgICAgICAgcmFpc2UgIkNh
bm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVu
bGVzcyBpc1g2NAotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpoYWxm
Ci0gICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI5dyIpCi0gICAgICAgICAgICB3aGVuIDppbnQK
LSAgICAgICAgICAgICAgICByZWdpc3RlcigicjlkIikKLSAgICAgICAgICAgIHdoZW4gOnB0cgot
ICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyOSIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0g
ICAgICAgICAgICAgICAgcmVnaXN0ZXIoInI5IikKLSAgICAgICAgICAgIGVuZAotICAgICAgICB3
aGVuICJjc3IxIgotICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1i
aXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAotICAgICAgICAgICAg
Y2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgcmVnaXN0
ZXIoInIxNHciKQotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAgICAgICAgcmVnaXN0
ZXIoInIxNGQiKQotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgcmVnaXN0
ZXIoInIxNCIpCi0gICAgICAgICAgICB3aGVuIDpxdWFkCi0gICAgICAgICAgICAgICAgcmVnaXN0
ZXIoInIxNCIpCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgd2hlbiAiY3NyMiIKLSAgICAgICAg
ICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAg
ICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTV3IikKLSAgICAgICAg
ICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTVkIikKLSAgICAgICAg
ICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTUiKQotICAgICAgICAg
ICAgd2hlbiA6cXVhZAotICAgICAgICAgICAgICAgIHJlZ2lzdGVyKCJyMTUiKQorICAgICAgICAg
ICAgICAgIHJhaXNlICJjYW5ub3QgdXNlIHJlZ2lzdGVyICN7bmFtZX0gb24gWDg2IgogICAgICAg
ICAgICAgZW5kCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIg
I3tuYW1lfSBmb3IgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgICAgICBjYXNl
IG5hbWUKKyAgICAgICAgICAgIHdoZW4gInQwIiwgInIwIiwgImEyIgorICAgICAgICAgICAgICAg
ICJlYXgiCisgICAgICAgICAgICB3aGVuICJ0MSIsICJyMSIsICJhMSIKKyAgICAgICAgICAgICAg
ICAiZWR4IgorICAgICAgICAgICAgd2hlbiAidDIiLCAiYTAiCisgICAgICAgICAgICAgICAgImVj
eCIKKyAgICAgICAgICAgIHdoZW4gInQzIiwgImEzIgorICAgICAgICAgICAgICAgICJlYngiCisg
ICAgICAgICAgICB3aGVuICJ0NCIKKyAgICAgICAgICAgICAgICAiZXNpIgorICAgICAgICAgICAg
d2hlbiAidDUiCisgICAgICAgICAgICAgICAgImVkaSIKKyAgICAgICAgICAgIHdoZW4gImNmciIK
KyAgICAgICAgICAgICAgICAiZWJwIgorICAgICAgICAgICAgd2hlbiAic3AiCisgICAgICAgICAg
ICAgICAgImVzcCIKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbmQKICAgICBlbmQKKworICAg
IGRlZiB4ODZPcGVyYW5kKGtpbmQpCisgICAgICAgIHg4NkdQUk5hbWUoeDg2R1BSLCBraW5kKQor
ICAgIGVuZAorCiAgICAgZGVmIHg4NkNhbGxPcGVyYW5kKGtpbmQpCi0gICAgICAgIGlzWDY0ID8g
IiN7Y2FsbFByZWZpeH0je3g4Nk9wZXJhbmQoOnF1YWQpfSIgOiAiI3tjYWxsUHJlZml4fSN7eDg2
T3BlcmFuZCg6cHRyKX0iCisgICAgICAgICIje2NhbGxQcmVmaXh9I3t4ODZPcGVyYW5kKDpwdHIp
fSIKICAgICBlbmQKIGVuZAogCkBAIC01OTcsMTMgKzU5NiwxMiBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgIGVuZAogICAgIAogICAgIGRlZiBoYW5kbGVYODZTaGlmdChvcGNvZGUsIGtpbmQpCi0g
ICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZSBvciBvcGVyYW5kc1swXSA9PSBS
ZWdpc3RlcklELmZvck5hbWUobmlsLCAidDIiKQorICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUgb3Igb3BlcmFuZHNbMF0ueDg2R1BSID09ICJlY3giCiAgICAgICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlfSAje29yZGVyT3BlcmFuZHMob3BlcmFuZHNbMF0ueDg2T3BlcmFu
ZCg6Ynl0ZSksIG9wZXJhbmRzWzFdLng4Nk9wZXJhbmQoa2luZCkpfSIKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY3ggPSBSZWdpc3RlcklELmZvck5hbWUobmlsLCAidDIiKQotICAgICAgICAg
ICAgJGFzbS5wdXRzICJ4Y2hnI3t4ODZTdWZmaXgoOnB0cil9ICN7b3BlcmFuZHNbMF0ueDg2T3Bl
cmFuZCg6cHRyKX0sICN7Y3gueDg2T3BlcmFuZCg6cHRyKX0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgInhjaGcje3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kKDpwdHIp
fSwgI3t4ODZHUFJOYW1lKCJlY3giLCA6cHRyKX0iCiAgICAgICAgICAgICAkYXNtLnB1dHMgIiN7
b3Bjb2RlfSAje29yZGVyT3BlcmFuZHMocmVnaXN0ZXIoImNsIiksIG9wZXJhbmRzWzFdLng4Nk9w
ZXJhbmQoa2luZCkpfSIKLSAgICAgICAgICAgICRhc20ucHV0cyAieGNoZyN7eDg2U3VmZml4KDpw
dHIpfSAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOnB0cil9LCAje2N4Lng4Nk9wZXJhbmQoOnB0
cil9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4Y2hnI3t4ODZTdWZmaXgoOnB0cil9ICN7b3Bl
cmFuZHNbMF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7eDg2R1BSTmFtZSgiZWN4IiwgOnB0cil9Igog
ICAgICAgICBlbmQKICAgICBlbmQKICAgICAKQEAgLTY0Nyw3ICs2NDUsNyBAQCBjbGFzcyBJbnN0
cnVjdGlvbgogICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92enggI3tvcmRlck9wZXJhbmRz
KG9wZXJhbmQueDg2T3BlcmFuZCg6Ynl0ZSksIG9wZXJhbmQueDg2T3BlcmFuZCg6aW50KSl9Igog
ICAgICAgICAgICAgZW5kCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGF4ID0gUmVnaXN0ZXJJ
RC5uZXcobmlsLCAidDAiKQorICAgICAgICAgICAgYXggPSBSZWdpc3RlcklELm5ldyhuaWwsICJy
MCIpCiAgICAgICAgICAgICAkYXNtLnB1dHMgInhjaGcje3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVy
YW5kLng4Nk9wZXJhbmQoOnB0cil9LCAje2F4Lng4Nk9wZXJhbmQoOnB0cil9IgogICAgICAgICAg
ICAgJGFzbS5wdXRzICIje3NldE9wY29kZX0gJWFsIgogICAgICAgICAgICAgJGFzbS5wdXRzICJt
b3Z6YmwgJWFsLCAlZWF4Igo=
</data>
<flag name="review"
          id="285512"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>