<?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>141618</bug_id>
          
          <creation_ts>2015-02-14 20:23:43 -0800</creation_ts>
          <short_desc>Fix the C-Loop LLInt build after r180098</short_desc>
          <delta_ts>2015-02-18 01:47:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141540</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>myvyang</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069266</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-14 20:23:43 -0800</bug_when>
    <thetext>Fix the C-Loop LLInt build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069268</commentid>
    <comment_count>1</comment_count>
      <attachid>246614</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-14 20:27:17 -0800</bug_when>
    <thetext>Created attachment 246614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069269</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-14 20:29:27 -0800</bug_when>
    <thetext>Attachment 246614 did not pass style-queue:

ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:30:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:112:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:113:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:114:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:147:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:149:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:149:  Extra space between int and k  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:153:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:153:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:154:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:154:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:154:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:158:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:160:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:160:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:162:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:162:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:164:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:164:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:167:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:168:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:168:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:171:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:177:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:177:  z_h is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:177:  z_l is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:177:  p_h is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:177:  p_l is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:178:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:179:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:180:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:181:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:183:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:183:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:184:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:185:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:186:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:189:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:189:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:189:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:189:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:192:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:192:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:192:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:192:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:193:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:193:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:193:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:202:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:202:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:203:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:203:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:203:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:204:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:204:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:206:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:208:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:208:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:208:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:209:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:209:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:209:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:211:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:211:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:211:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:217:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:217:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:217:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:218:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:219:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:219:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:219:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:220:  Extra space between return and y  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:219:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:222:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:224:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:226:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:226:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:227:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:227:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:227:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:227:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:227:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:228:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:229:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:229:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:229:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:230:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:230:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:231:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:231:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:238:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:238:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:238:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:239:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:239:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:239:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:239:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:241:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:241:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:241:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:242:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:242:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:243:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:243:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:243:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:244:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:245:  Missing spaces around ==  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:245:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:255:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:255:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:255:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:255:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:258:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:258:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:258:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:258:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:261:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:262:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:262:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:263:  Missing spaces around &lt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:263:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:263:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:264:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:264:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:264:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:267:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:267:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:267:  More than one command on the same line in
 if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:268:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:268:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:279:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:279:  s_l is incorrectly named. Don&apos;t use the single letter &apos;l&apos; as an identifier name.  [readability/naming] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:279:  t_h is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:279:  t_l is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:282:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:282:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:283:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:287:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:288:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:288:  Missing spaces around &lt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:288:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:288:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:289:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:289:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:289:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:289:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:290:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:290:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:290:  Missing spaces around +=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:295:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:301:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:336:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:337:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:337:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:337:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:337:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:340:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:340:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:341:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:342:  Missing spaces around &gt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:342:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:342:  Extra space before ) in if  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:343:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:343:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:343:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:343:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:346:  Missing spaces around &lt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:346:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:346:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:347:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:355:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:360:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:361:  Missing spaces around &lt;  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:361:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:361:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:372:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:376:  Missing spaces around &lt;=  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:376:  Missing space before ( in if(  [whitespace/parens] [5]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:376:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:376:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:377:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/MathCommon.cpp:377:  __HI is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 183 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069529</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-02-16 12:38:16 -0800</bug_when>
    <thetext>*** Bug 141649 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070048</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-17 21:59:09 -0800</bug_when>
    <thetext>The cloop build is broken since 4.5 days. Any plan to review this fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070061</commentid>
    <comment_count>5</comment_count>
      <attachid>246614</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-18 00:01:13 -0800</bug_when>
    <thetext>Comment on attachment 246614
Patch

Clearing flags on attachment: 246614

Committed r180258: &lt;http://trac.webkit.org/changeset/180258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070062</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-18 00:01:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070087</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-18 01:44:48 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 246614 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 246614
&gt; 
&gt; Committed r180258: &lt;http://trac.webkit.org/changeset/180258&gt;

and the Windows buildfix landed in http://trac.webkit.org/changeset/180262.

Just out of curiosity, why did you change the original 
pow to std::pow, which made Windows unhappy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070088</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-18 01:47:13 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; Comment on attachment 246614 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 246614
&gt; &gt; 
&gt; &gt; Committed r180258: &lt;http://trac.webkit.org/changeset/180258&gt;
&gt; 
&gt; and the Windows buildfix landed in http://trac.webkit.org/changeset/180262.
&gt; 
&gt; Just out of curiosity, why did you change the original 
&gt; pow to std::pow, which made Windows unhappy?

As far as I could find, std::pow() was better defined and I also know it lowers to llvm.pow with clang. I switched to that to be on the safe side.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246614</attachid>
            <date>2015-02-14 20:27:17 -0800</date>
            <delta_ts>2015-02-18 00:01:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141618-20150214202713.patch</filename>
            <type>text/plain</type>
            <size>45736</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
Y2FhOTIzNWY2NjMzZGY4OGE3ZjJjYWJjYjU4MjlkYmE4ZWU4NzExLi5jMDE5NGYwOTM1Mzc5MjVh
ZTBiMmNlMWZlNDRjNWU3OTA2MmY1MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxNS0wMi0xNCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgRml4IHRoZSBDLUxvb3AgTExJbnQgYnVpbGQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTYxOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgYnJva2UgQy1Mb29wIHdoZW4g
bW92aW5nIHRoZSBjb21tb24gY29kZSBvZiBwb3coKQorICAgICAgICB0byBKSVRPcGVyYXRpb25z
IGJlY2F1c2UgdGhhdCBmaWxlIGlzICNpZmRlZmVkIG91dAorICAgICAgICB3aGVuIHRoZSBKSVRz
IGFyZSBkaXNhYmxlZC4KKworICAgICAgICBJdCB3b3VsZCBiZSB3ZWlyZCB0byBtb3ZlIGl0IGJh
Y2sgdG8gTWF0aE9iamVjdCBzaW5jZQorICAgICAgICB0aGUgZnVuY3Rpb24gbmVlZHMgdG8ga25v
dyBhYm91dCB0aGUgY2FsbGluZyBjb252ZW50aW9ucy4KKworICAgICAgICBUbyBhdm9pZCBtYWtp
bmcgYSBtZXNzLCBJIGp1c3QgZ2F2ZSB0aGUgZnVuY3Rpb24gaXRzIG93biBmaWxlCisgICAgICAg
IHRoYXQgaXMgdXNlZCBieSBib3RoIHRoZSBydW50aW1lIGFuZCB0aGUgSklULgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogcnVudGltZS9NYXRoQ29tbW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OmZkbGlibVNjYWxibik6CisgICAgICAgIChKU0M6OmZk
bGlibVBvdyk6CisgICAgICAgIChKU0M6OmlzRGVub3JtYWwpOgorICAgICAgICAoSlNDOjppc0Vk
Z2VDYXNlKToKKyAgICAgICAgKEpTQzo6bWF0aFBvd0ludGVybmFsKToKKyAgICAgICAgKEpTQzo6
b3BlcmF0aW9uTWF0aFBvdyk6CisgICAgICAgICogcnVudGltZS9NYXRoQ29tbW9uLmg6IEFkZGVk
LgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisKIDIwMTUtMDItMDkgIEJyaWFu
IEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IEluc3BlY3RvciBwcmVmaXhlcyBmcm9tIGNsYXNz
IG5hbWVzIGluIEluc3BlY3RvciBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBjZDc3OTYzMWNmMzFmOTU4N2RmMjdjOTk1MGE3MWE1YWQ0MWM3ZGUzLi5iZDE4
YzFlYjI0ZjZhYjg1NGZkZjA3NjBjYmJlMjEyNTI4OTc2YTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC01MDcsNiArNTA3LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1JV
TlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKICAg
ICBydW50aW1lL01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvTWFwUHJvdG90
eXBlLmNwcAorICAgIHJ1bnRpbWUvTWF0aENvbW1vbi5jcHAKICAgICBydW50aW1lL01hdGhPYmpl
Y3QuY3BwCiAgICAgcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmNwcAogICAgIHJ1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ogYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCmluZGV4IGNmZmExMTliZDQzYmFiN2ZmNjNhMzQ4YzRiOTJiYzFjN2QyYzI0YzguLmRkNDE4
M2ZlZjJlNzE4MDQxNTU0ZjRhZDc5MjIxNTQwZGFmMWE0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvagpAQCAtNzczLDYgKzc3Myw3IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxNYXBJdGVyYXRvclByb3RvdHlwZS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hcFByb3RvdHlwZS5jcHAiIC8+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hdGhDb21tb24uY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxNYXRoT2JqZWN0LmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcTWVtb3J5U3RhdGlzdGljcy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXE5hdGl2ZUVycm9yQ29uc3RydWN0
b3IuY3BwIiAvPgpAQCAtMTU2Nyw2ICsxNTY4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcTWFwSXRlcmF0b3JQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcTWFwUHJvdG90eXBlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXE1hdGNoUmVzdWx0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxydW50aW1lXE1hdGhDb21tb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcTWF0aE9iamVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxNZW1vcnlTdGF0aXN0aWNzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
dW50aW1lXE1pY3JvdGFzay5oIiAvPgpAQCAtMTc1OSw0ICsxNzYxLDQgQEAKICAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNU
YXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwvSW1w
b3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9q
ZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJz
CmluZGV4IDI3Y2Q0ZTRkMTY3Zjc5ZDkwNmYzMDUxOWFiOTc0NzYwNGQ0MTY2MjMuLjgwNDhhYmU0
NzE2YWE3MDM2MGY1MTMyODU1OTk3NGYxMzI1OGU1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ou
ZmlsdGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTczNSw2ICs3MzUsOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxNYXBDb25zdHJ1Y3Rvci5jcHAiPgogICAg
ICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hdGhDb21tb24uY3BwIj4KKyAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxNYXRoT2JqZWN0LmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTQzOTEsNCArNDM5NCw0IEBACiAgICAgICA8Rmls
dGVyPmppdDwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiYWYyOTA0NTRlYmI0Y2YxNjBlZjI0MjYxMDc0Zjc4ZGZhNmI0YTM1
Li40MjI4NzI0YThlZDBmM2E4M2I2ZTc1ODIxOWYwOGU1NTc2ZTZkMGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtODk3LDYgKzg5Nyw4IEBACiAJCTJBRjczODJEMThCQkJGOTIw
MDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJl
SURUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTM3MUQ4NDJEMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNG
OTk0IC8qIGxpYnouZHlsaWIgKi87IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBE
YXRlQ29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07
CisJCTQzNDBBNDg0MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgyMUE5MDUxQUYwMEQ3
M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAqLzsgfTsKKwkJNDM0MEE0ODUxQTkwNTFBRjAwRDczQ0NB
IC8qIE1hdGhDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzNDBBNDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi87IH07CiAJ
CTQ0NDNBRTMzMTZFMTg4RDkwMDc2RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZD
NkIwMEU2REYxQiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJNDUxNTM5QjkxMkRD
OTk0NTAwRUY3QUM0IC8qIFlhcnIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ1MTUzOUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI2NzhGOEUxQTAzMTAw
OTAwNkEzMDZEIC8qIEJhc2ljQmxvY2tMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjY3OEY4QzFBMDMxMDA5MDA2QTMwNkQgLyogQmFz
aWNCbG9ja0xvY2F0aW9uLmNwcCAqLzsgfTsKQEAgLTI1MzUsNiArMjUzNyw4IEBACiAJCTJBRjcz
ODJBMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cnVjdHVyZUlEVGFibGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyQUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJl
SURUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJRFRh
YmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUQ4NDJDMTdDOThCNkUwMEVD
Rjk5NCAvKiBsaWJ6LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJ6LmR5bGliOyBw
YXRoID0gdXNyL2xpYi9saWJ6LmR5bGliOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJNDM0
MEE0ODIxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQzNDBBNDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhDb21tb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTE1MzlCODEyREM5OTQ1
MDBFRjdBQzQgLyogWWFyci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBZYXJy
Lmg7IHBhdGggPSB5YXJyL1lhcnIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVF
MTJEODgwNkE0OUIwRjAwRTlERjg0IC8qIGpzYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBqc2MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CkBAIC00MjAzLDggKzQyMDcsNiBAQAogCQkJCTBGQjdG
MzhBMTVFRDhFMzgwMEYxNjdCMiAvKiBBcnJheVN0b3JhZ2UuaCAqLywKIAkJCQk1MjY3OEY4QzFB
MDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0aW9uLmNwcCAqLywKIAkJCQk1MjY3OEY4
RDFBMDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0aW9uLmggKi8sCi0JCQkJNTJCNzE3
QjQxQTA1OTdFMTAwN0FGNEYzIC8qIENvbnRyb2xGbG93UHJvZmlsZXIuY3BwICovLAotCQkJCTUy
Njc4RjkwMUEwNDE3N0MwMDZBMzA2RCAvKiBDb250cm9sRmxvd1Byb2ZpbGVyLmggKi8sCiAJCQkJ
MTQ3QjgzQUEwRTZEQjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgg
Ki8sCiAJCQkJODY2NzM5RDAxM0JGREU3MTAwMjNEODdDIC8qIEJpZ0ludGVnZXIuaCAqLywKIAkJ
CQlCQzc5NTIzMjBFMTVFQjU2MDBBODk4QUIgLyogQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCAqLywK
QEAgLTQyNDMsNiArNDI0NSw4IEBACiAJCQkJMEZGQzk5RDAxODRFQzhBRDAwOUMxMEFCIC8qIENv
bnN0YW50TW9kZS5oICovLAogCQkJCUJDQTYyREZGMEUyODI2MzEwMDA0RjMwRCAvKiBDb25zdHJ1
Y3REYXRhLmNwcCAqLywKIAkJCQlCQzhGM0NDRjBEQUYxN0JBMDA1NzdBODAgLyogQ29uc3RydWN0
RGF0YS5oICovLAorCQkJCTUyQjcxN0I0MUEwNTk3RTEwMDdBRjRGMyAvKiBDb250cm9sRmxvd1By
b2ZpbGVyLmNwcCAqLywKKwkJCQk1MjY3OEY5MDFBMDQxNzdDMDA2QTMwNkQgLyogQ29udHJvbEZs
b3dQcm9maWxlci5oICovLAogCQkJCTJBMTExMjQzMTkyRkNFNzkwMDVFRTE4RCAvKiBDdXN0b21H
ZXR0ZXJTZXR0ZXIuY3BwICovLAogCQkJCTJBMTExMjQ0MTkyRkNFNzkwMDVFRTE4RCAvKiBDdXN0
b21HZXR0ZXJTZXR0ZXIuaCAqLywKIAkJCQkwRjJCNjZCMDE3QjZCNUFCMDBBN0FFM0YgLyogRGF0
YVZpZXcuY3BwICovLApAQCAtNDMwNiw4ICs0MzEwLDYgQEAKIAkJCQlCQzlCQjk1QjBFMTk2ODA2
MDBERjg4NTUgLyogSW50ZXJuYWxGdW5jdGlvbi5jcHAgKi8sCiAJCQkJQkMxMTY2N0EwRTE5OUMw
NTAwODA2NkREIC8qIEludGVybmFsRnVuY3Rpb24uaCAqLywKIAkJCQk4NkJGNjQyQTE0OERCMkI1
MDA0REUzNkEgLyogSW50cmluc2ljLmggKi8sCi0JCQkJMTREQTgxOEYwRDk5RkQyMDAwQjBBNEZC
IC8qIEpTTGV4aWNhbEVudmlyb25tZW50LmNwcCAqLywKLQkJCQkxNERBODE4RTBEOTlGRDIwMDBC
MEE0RkIgLyogSlNMZXhpY2FsRW52aXJvbm1lbnQuaCAqLywKIAkJCQlBNzYxNDBDQjE4Mjk4MkNC
MDA3NTA2MjQgLyogSlNBcmd1bWVudHNJdGVyYXRvci5jcHAgKi8sCiAJCQkJQTc2MTQwQ0MxODI5
ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRlcmF0b3IuaCAqLywKIAkJCQk5M0FERkNFNjBD
Q0JEN0FDMDBEMzBCMDggLyogSlNBcnJheS5jcHAgKi8sCkBAIC00MzQzLDYgKzQzNDUsOCBAQAog
CQkJCTk3ODhGQzIyMTQ3MUFEMEMwMDY4Q0UyRCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKIAkJCQk5
Nzg4RkMyMzE0NzFBRDBDMDA2OENFMkQgLyogSlNEYXRlTWF0aC5oICovLAogCQkJCUMyQTdGNjg3
MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovLAorCQkJCUJDMjJB
MzlBMEUxNkUxNDgwMEFGMjFDOCAvKiBKU0Vudmlyb25tZW50UmVjb3JkLmNwcCAqLywKKwkJCQkx
NEYyNTI1NjBEMDhERDhEMDA0RUNGRkYgLyogSlNFbnZpcm9ubWVudFJlY29yZC5oICovLAogCQkJ
CUE3QjRBQ0FFMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oICovLAogCQkJCTBG
MkI2NkMxMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0MzJBcnJheS5oICovLAogCQkJCTBGMkI2
NkMyMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0NjRBcnJheS5oICovLApAQCAtNDM2NCw2ICs0
MzY4LDggQEAKIAkJCQkwRjJCNjZDOTE3QjZCNUFCMDBBN0FFM0YgLyogSlNJbnQ4QXJyYXkuaCAq
LywKIAkJCQkwRjJCNjZDQTE3QjZCNUFCMDBBN0FFM0YgLyogSlNJbnQxNkFycmF5LmggKi8sCiAJ
CQkJMEYyQjY2Q0IxN0I2QjVBQjAwQTdBRTNGIC8qIEpTSW50MzJBcnJheS5oICovLAorCQkJCTE0
REE4MThGMEQ5OUZEMjAwMEIwQTRGQiAvKiBKU0xleGljYWxFbnZpcm9ubWVudC5jcHAgKi8sCisJ
CQkJMTREQTgxOEUwRDk5RkQyMDAwQjBBNEZCIC8qIEpTTGV4aWNhbEVudmlyb25tZW50LmggKi8s
CiAJCQkJNjVFQTRDOTkwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5jcHAgKi8sCiAJCQkJNjVF
QTRDOUEwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5oICovLAogCQkJCUE3MDA4NzNGMTdDQkU4
RUIwMEMzRTY0MyAvKiBKU01hcC5jcHAgKi8sCkBAIC00NDIxLDggKzQ0MjcsNiBAQAogCQkJCTBG
MkI2NkQzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5LmggKi8sCiAJCQkJ
MEYyQjY2RDQxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2QXJyYXkuaCAqLywKIAkJCQkwRjJC
NjZENTE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5oICovLAotCQkJCUJDMjJBMzlB
MEUxNkUxNDgwMEFGMjFDOCAvKiBKU0Vudmlyb25tZW50UmVjb3JkLmNwcCAqLywKLQkJCQkxNEYy
NTI1NjBEMDhERDhEMDA0RUNGRkYgLyogSlNFbnZpcm9ubWVudFJlY29yZC5oICovLAogCQkJCUE3
Q0EzQUUxMTdEQTQxQUUwMDY1MzhBRiAvKiBKU1dlYWtNYXAuY3BwICovLAogCQkJCUE3Q0EzQUUy
MTdEQTQxQUUwMDY1MzhBRiAvKiBKU1dlYWtNYXAuaCAqLywKIAkJCQkxNDQyNTY1RjE1RURFOThE
MDA2NkE0OUIgLyogSlNXaXRoU2NvcGUuY3BwICovLApAQCAtNDQ0NCw2ICs0NDQ4LDggQEAKIAkJ
CQlBNzAwODczQjE3Q0JFOEQzMDBDM0U2NDMgLyogTWFwUHJvdG90eXBlLmNwcCAqLywKIAkJCQlB
NzAwODczQzE3Q0JFOEQzMDBDM0U2NDMgLyogTWFwUHJvdG90eXBlLmggKi8sCiAJCQkJODYxMkU0
Q0IxNTIyOTE4NDAwQzgzNkJFIC8qIE1hdGNoUmVzdWx0LmggKi8sCisJCQkJNDM0MEE0ODIxQTkw
NTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uY3BwICovLAorCQkJCTQzNDBBNDgzMUE5MDUxQUYw
MEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi8sCiAJCQkJRjY5MkE4NkEwMjU1NTk3RDAxRkY2MEY3
IC8qIE1hdGhPYmplY3QuY3BwICovLAogCQkJCUY2OTJBODZCMDI1NTU5N0QwMUZGNjBGNyAvKiBN
YXRoT2JqZWN0LmggKi8sCiAJCQkJOTAyMTNFM0IxMjNBNDBDMjAwRDQyMkYzIC8qIE1lbW9yeVN0
YXRpc3RpY3MuY3BwICovLApAQCAtNjEzOSw2ICs2MTQ1LDcgQEAKIAkJCQkwRkE3QThFQzE4QjQx
M0M4MDA1MjM3MUQgLyogUmVnLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1QTBFMTZGNUNE
MDBCMzQ0NjAgLyogUmVnRXhwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTcxMkIzRjExQzdCMjI4
MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzNDBBNDg1MUE5
MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDJD
MjBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRDIwMkQ2MEUxNzA3MDgwMDJDN0U4MiAvKiBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNzEyQjQxMTFDN0IyMzUwMDdBNTMxNSAvKiBSZWdFeHBLZXku
aCBpbiBIZWFkZXJzICovLApAQCAtNzMyNyw2ICs3MzM0LDcgQEAKIAkJCQkxNEY3MjU2NTE0RUUy
NjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
Q0EzQUUzMTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFrTWFwQ29uc3RydWN0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdDQTNBRUIxN0RBNTE2ODAwNjUzOEFGIC8qIFdlYWtNYXBEYXRhLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTQzNDBBNDg0MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Q0EzQUU1MTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFr
TWFwUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTg0RkEwMTRFRTFBQ0MwMEQ2
RDVENCAvKiBXZWFrU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBNEVDOTBCMTg2MEQ2QzIw
MDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKaW5kZXggYmY3ZDA0MWU2NGZkNDQxYWIxODVlODQ2ZDJiYmUxNTNhOGIzMjA0Ni4u
YTYzZDdlNWRkMzdjZTMxNjU5M2NmZjg0NjcxYTE0ODYwOTA1NjRiOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMuaCIKICNpbmNs
dWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCisjaW5jbHVk
ZSAiTWF0aENvbW1vbi5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQdXRC
eUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiU3RyaW5nT2JqZWN0LmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBlOTlmMTJlMGIxZTc3ZGIyOTlmYjU3
NThiMDFjNWZjYzNkYmRmMmI5Li4yNDRiNGJlOWNjNmUxN2U4YWJlYzc3M2RkMDg3MTkxMTFjNDFk
OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAg
LTEyMTMsMzk1ICsxMjEzLDYgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IGJ5dGUKIH0KICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oSU9TKSAmJiBDUFUoQVJNX1RIVU1CMikKLQotLy8gVGhlIGZvbGxvd2lu
ZyBjb2RlIGlzIHRha2VuIGZyb20gbmV0bGliLm9yZzoKLS8vICAgaHR0cDovL3d3dy5uZXRsaWIu
b3JnL2ZkbGlibS9mZGxpYm0uaAotLy8gICBodHRwOi8vd3d3Lm5ldGxpYi5vcmcvZmRsaWJtL2Vf
cG93LmMKLS8vICAgaHR0cDovL3d3dy5uZXRsaWIub3JnL2ZkbGlibS9zX3NjYWxibi5jCi0vLwot
Ly8gQW5kIHdhcyBvcmlnaW5hbGx5IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj
ZW5zZToKLQotLyoKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLSAqIENvcHlyaWdodCAoQykgMTk5MyBieSBTdW4gTWljcm9zeXN0ZW1zLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogRGV2ZWxvcGVkIGF0IFN1blNvZnQsIGEg
U3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBidXNpbmVzcy4KLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBj
b3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMKLSAqIHNvZnR3YXJlIGlzIGZyZWVseSBn
cmFudGVkLCBwcm92aWRlZCB0aGF0IHRoaXMgbm90aWNlIAotICogaXMgcHJlc2VydmVkLgotICog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICov
Ci0vKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotICogQ29weXJpZ2h0IChDKSAyMDA0IGJ5IFN1biBNaWNyb3N5c3RlbXMsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBhbmQgZGlzdHJpYnV0ZSB0aGlzCi0gKiBzb2Z0d2FyZSBpcyBmcmVlbHkgZ3JhbnRlZCwgcHJv
dmlkZWQgdGhhdCB0aGlzIG5vdGljZSAKLSAqIGlzIHByZXNlcnZlZC4KLSAqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqLwotCi0vKiBfX2ll
ZWU3NTRfcG93KHgseSkgcmV0dXJuIHgqKnkKLSAqCi0gKiAgICAgICAgICAgICAgbgotICogTWV0
aG9kOiAgTGV0IHggPSAgMiAgICogKDErZikKLSAqICAgIDEuIENvbXB1dGUgYW5kIHJldHVybiBs
b2cyKHgpIGluIHR3byBwaWVjZXM6Ci0gKiAgICAgICAgbG9nMih4KSA9IHcxICsgdzIsCi0gKiAg
ICAgICB3aGVyZSB3MSBoYXMgNTMtMjQgPSAyOSBiaXQgdHJhaWxpbmcgemVyb3MuCi0gKiAgICAy
LiBQZXJmb3JtIHkqbG9nMih4KSA9IG4reScgYnkgc2ltdWxhdGluZyBtdXRpLXByZWNpc2lvbiAK
LSAqICAgICAgIGFyaXRobWV0aWMsIHdoZXJlIHx5J3w8PTAuNS4KLSAqICAgIDMuIFJldHVybiB4
Kip5ID0gMioqbipleHAoeScqbG9nMikKLSAqCi0gKiBTcGVjaWFsIGNhc2VzOgotICogICAgMS4g
IChhbnl0aGluZykgKiogMCAgaXMgMQotICogICAgMi4gIChhbnl0aGluZykgKiogMSAgaXMgaXRz
ZWxmCi0gKiAgICAzLiAgKGFueXRoaW5nKSAqKiBOQU4gaXMgTkFOCi0gKiAgICA0LiAgTkFOICoq
IChhbnl0aGluZyBleGNlcHQgMCkgaXMgTkFOCi0gKiAgICA1LiAgKy0ofHh8ID4gMSkgKiogICtJ
TkYgaXMgK0lORgotICogICAgNi4gICstKHx4fCA+IDEpICoqICAtSU5GIGlzICswCi0gKiAgICA3
LiAgKy0ofHh8IDwgMSkgKiogICtJTkYgaXMgKzAKLSAqICAgIDguICArLSh8eHwgPCAxKSAqKiAg
LUlORiBpcyArSU5GCi0gKiAgICA5LiAgKy0xICAgICAgICAgKiogKy1JTkYgaXMgTkFOCi0gKiAg
ICAxMC4gKzAgKiogKCthbnl0aGluZyBleGNlcHQgMCwgTkFOKSAgICAgICAgICAgICAgIGlzICsw
Ci0gKiAgICAxMS4gLTAgKiogKCthbnl0aGluZyBleGNlcHQgMCwgTkFOLCBvZGQgaW50ZWdlcikg
IGlzICswCi0gKiAgICAxMi4gKzAgKiogKC1hbnl0aGluZyBleGNlcHQgMCwgTkFOKSAgICAgICAg
ICAgICAgIGlzICtJTkYKLSAqICAgIDEzLiAtMCAqKiAoLWFueXRoaW5nIGV4Y2VwdCAwLCBOQU4s
IG9kZCBpbnRlZ2VyKSAgaXMgK0lORgotICogICAgMTQuIC0wICoqIChvZGQgaW50ZWdlcikgPSAt
KCArMCAqKiAob2RkIGludGVnZXIpICkKLSAqICAgIDE1LiArSU5GICoqICgrYW55dGhpbmcgZXhj
ZXB0IDAsTkFOKSBpcyArSU5GCi0gKiAgICAxNi4gK0lORiAqKiAoLWFueXRoaW5nIGV4Y2VwdCAw
LE5BTikgaXMgKzAKLSAqICAgIDE3LiAtSU5GICoqIChhbnl0aGluZykgID0gLTAgKiogKC1hbnl0
aGluZykKLSAqICAgIDE4LiAoLWFueXRoaW5nKSAqKiAoaW50ZWdlcikgaXMgKC0xKSoqKGludGVn
ZXIpKigrYW55dGhpbmcqKmludGVnZXIpCi0gKiAgICAxOS4gKC1hbnl0aGluZyBleGNlcHQgMCBh
bmQgaW5mKSAqKiAobm9uLWludGVnZXIpIGlzIE5BTgotICoKLSAqIEFjY3VyYWN5OgotICogICAg
cG93KHgseSkgcmV0dXJucyB4Kip5IG5lYXJseSByb3VuZGVkLiBJbiBwYXJ0aWN1bGFyCi0gKiAg
ICAgICAgICAgIHBvdyhpbnRlZ2VyLGludGVnZXIpCi0gKiAgICBhbHdheXMgcmV0dXJucyB0aGUg
Y29ycmVjdCBpbnRlZ2VyIHByb3ZpZGVkIGl0IGlzIAotICogICAgcmVwcmVzZW50YWJsZS4KLSAq
Ci0gKiBDb25zdGFudHMgOgotICogVGhlIGhleGFkZWNpbWFsIHZhbHVlcyBhcmUgdGhlIGludGVu
ZGVkIG9uZXMgZm9yIHRoZSBmb2xsb3dpbmcgCi0gKiBjb25zdGFudHMuIFRoZSBkZWNpbWFsIHZh
bHVlcyBtYXkgYmUgdXNlZCwgcHJvdmlkZWQgdGhhdCB0aGUgCi0gKiBjb21waWxlciB3aWxsIGNv
bnZlcnQgZnJvbSBkZWNpbWFsIHRvIGJpbmFyeSBhY2N1cmF0ZWx5IGVub3VnaCAKLSAqIHRvIHBy
b2R1Y2UgdGhlIGhleGFkZWNpbWFsIHZhbHVlcyBzaG93bi4KLSAqLwotCi0jZGVmaW5lIF9fSEko
eCkgKigxKyhpbnQqKSZ4KQotI2RlZmluZSBfX0xPKHgpICooaW50KikmeAotCi1zdGF0aWMgY29u
c3QgZG91YmxlCi1icFtdID0gezEuMCwgMS41LH0sCi1kcF9oW10gPSB7IDAuMCwgNS44NDk2MjQ4
NzIyMDc2NDE2MDE1NmUtMDEsfSwgLyogMHgzRkUyQjgwMywgMHg0MDAwMDAwMCAqLwotZHBfbFtd
ID0geyAwLjAsIDEuMzUwMDM5MjAyMTI5NzQ4OTcxMjhlLTA4LH0sIC8qIDB4M0U0Q0ZERUIsIDB4
NDNDRkQwMDYgKi8KLXplcm8gICAgPSAgMC4wLAotb25lICAgID0gIDEuMCwKLXR3byAgICA9ICAy
LjAsCi10d281MyAgICA9ICA5MDA3MTk5MjU0NzQwOTkyLjAsICAgIC8qIDB4NDM0MDAwMDAsIDB4
MDAwMDAwMDAgKi8KLWh1Z2UgICAgPSAgMS4wZTMwMCwKLXRpbnkgICAgPSAgMS4wZS0zMDAsCi0g
ICAgICAgIC8qIGZvciBzY2FsYm4gKi8KLXR3bzU0ICAgPSAgMS44MDE0Mzk4NTA5NDgxOTg0MDAw
MGUrMTYsIC8qIDB4NDM1MDAwMDAsIDB4MDAwMDAwMDAgKi8KLXR3b201NCAgPSAgNS41NTExMTUx
MjMxMjU3ODI3MDIxMmUtMTcsIC8qIDB4M0M5MDAwMDAsIDB4MDAwMDAwMDAgKi8KLSAgICAvKiBw
b2x5IGNvZWZzIGZvciAoMy8yKSoobG9nKHgpLTJzLTIvMypzKiozICovCi1MMSAgPSAgNS45OTk5
OTk5OTk5OTk5NDY0ODcyNWUtMDEsIC8qIDB4M0ZFMzMzMzMsIDB4MzMzMzMzMDMgKi8KLUwyICA9
ICA0LjI4NTcxNDI4NTc4NTUwMTg0MjUyZS0wMSwgLyogMHgzRkRCNkRCNiwgMHhEQjZGQUJGRiAq
LwotTDMgID0gIDMuMzMzMzMzMjk4MTgzNzc0MzI5MThlLTAxLCAvKiAweDNGRDU1NTU1LCAweDUx
OEYyNjREICovCi1MNCAgPSAgMi43MjcyODEyMzgwODUzNDAwNjQ4OWUtMDEsIC8qIDB4M0ZEMTc0
NjAsIDB4QTkxRDQxMDEgKi8KLUw1ICA9ICAyLjMwNjYwNzQ1Nzc1NTYxNzU0MDY3ZS0wMSwgLyog
MHgzRkNEODY0QSwgMHg5M0M5REI2NSAqLwotTDYgID0gIDIuMDY5NzUwMTc4MDAzMzg0MTc3ODRl
LTAxLCAvKiAweDNGQ0E3RTI4LCAweDRBNDU0RUVGICovCi1QMSAgID0gIDEuNjY2NjY2NjY2NjY2
NjYwMTkwMzdlLTAxLCAvKiAweDNGQzU1NTU1LCAweDU1NTU1NTNFICovCi1QMiAgID0gLTIuNzc3
Nzc3Nzc3NzAxNTU5MzM4NDJlLTAzLCAvKiAweEJGNjZDMTZDLCAweDE2QkVCRDkzICovCi1QMyAg
ID0gIDYuNjEzNzU2MzIxNDM3OTM0MzYxMTdlLTA1LCAvKiAweDNGMTE1NjZBLCAweEFGMjVERTJD
ICovCi1QNCAgID0gLTEuNjUzMzkwMjIwNTQ2NTI1MTUzOTBlLTA2LCAvKiAweEJFQkJCRDQxLCAw
eEM1RDI2QkYxICovCi1QNSAgID0gIDQuMTM4MTM2Nzk3MDU3MjM4NDYwMzllLTA4LCAvKiAweDNF
NjYzNzY5LCAweDcyQkVBNEQwICovCi1sZzIgID0gIDYuOTMxNDcxODA1NTk5NDUyODYyMjdlLTAx
LCAvKiAweDNGRTYyRTQyLCAweEZFRkEzOUVGICovCi1sZzJfaCAgPSAgNi45MzE0NzE4MjQ2NDU5
OTYwOTM3NWUtMDEsIC8qIDB4M0ZFNjJFNDMsIDB4MDAwMDAwMDAgKi8KLWxnMl9sICA9IC0xLjkw
NDY1NDI5OTk1Nzc2ODA0NTI1ZS0wOSwgLyogMHhCRTIwNUM2MSwgMHgwQ0E4NkMzOSAqLwotb3Z0
ID0gIDguMDA4NTY2MjU5NTM3Mjk0NDM3MmUtMDAxNywgLyogLSgxMDI0LWxvZzIob3ZmbCsuNXVs
cCkpICovCi1jcCAgICA9ICA5LjYxNzk2NjkzOTI1OTc1NTU0MzI5ZS0wMSwgLyogMHgzRkVFQzcw
OSwgMHhEQzNBMDNGRCA9Mi8oM2xuMikgKi8KLWNwX2ggID0gIDkuNjE3OTY3MDA5NTQ0MzcyNTU4
NTllLTAxLCAvKiAweDNGRUVDNzA5LCAweEUwMDAwMDAwID0oZmxvYXQpY3AgKi8KLWNwX2wgID0g
LTcuMDI4NDYxNjUwOTUyNzU4MjY1MTZlLTA5LCAvKiAweEJFM0UyRkUwLCAweDE0NUIwMUY1ID10
YWlsIG9mIGNwX2gqLwotaXZsbjIgICAgPSAgMS40NDI2OTUwNDA4ODg5NjMzODcwMGUrMDAsIC8q
IDB4M0ZGNzE1NDcsIDB4NjUyQjgyRkUgPTEvbG4yICovCi1pdmxuMl9oICA9ICAxLjQ0MjY5NTAy
MTYyOTMzMzQ5NjA5ZSswMCwgLyogMHgzRkY3MTU0NywgMHg2MDAwMDAwMCA9MjRiIDEvbG4yKi8K
LWl2bG4yX2wgID0gIDEuOTI1OTYyOTkxMTI2NjE3NDY4ODdlLTA4OyAvKiAweDNFNTRBRTBCLCAw
eEY4NURERjQ0ID0xL2xuMiB0YWlsKi8KLQotaW5saW5lIGRvdWJsZSBmZGxpYm1TY2FsYm4gKGRv
dWJsZSB4LCBpbnQgbikKLXsKLSAgICBpbnQgIGssaHgsbHg7Ci0gICAgaHggPSBfX0hJKHgpOwot
ICAgIGx4ID0gX19MTyh4KTsKLSAgICAgICAgayA9IChoeCYweDdmZjAwMDAwKT4+MjA7ICAgICAg
ICAvKiBleHRyYWN0IGV4cG9uZW50ICovCi0gICAgICAgIGlmIChrPT0wKSB7ICAgICAgICAgICAg
ICAgIC8qIDAgb3Igc3Vibm9ybWFsIHggKi8KLSAgICAgICAgICAgIGlmICgobHh8KGh4JjB4N2Zm
ZmZmZmYpKT09MCkgcmV0dXJuIHg7IC8qICstMCAqLwotICAgICAgICB4ICo9IHR3bzU0OyAKLSAg
ICAgICAgaHggPSBfX0hJKHgpOwotICAgICAgICBrID0gKChoeCYweDdmZjAwMDAwKT4+MjApIC0g
NTQ7IAotICAgICAgICAgICAgaWYgKG48IC01MDAwMCkgcmV0dXJuIHRpbnkqeDsgICAgIC8qdW5k
ZXJmbG93Ki8KLSAgICAgICAgfQotICAgICAgICBpZiAoaz09MHg3ZmYpIHJldHVybiB4K3g7ICAg
ICAgICAvKiBOYU4gb3IgSW5mICovCi0gICAgICAgIGsgPSBrK247IAotICAgICAgICBpZiAoayA+
ICAweDdmZSkgcmV0dXJuIGh1Z2UqY29weXNpZ24oaHVnZSx4KTsgLyogb3ZlcmZsb3cgICovCi0g
ICAgICAgIGlmIChrID4gMCkgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCByZXN1bHQgKi8KLSAg
ICAgICAge19fSEkoeCkgPSAoaHgmMHg4MDBmZmZmZil8KGs8PDIwKTsgcmV0dXJuIHg7fQotICAg
ICAgICBpZiAoayA8PSAtNTQpIHsKLSAgICAgICAgICAgIGlmIChuID4gNTAwMDApICAgICAvKiBp
biBjYXNlIGludGVnZXIgb3ZlcmZsb3cgaW4gbitrICovCi0gICAgICAgIHJldHVybiBodWdlKmNv
cHlzaWduKGh1Z2UseCk7ICAgIC8qb3ZlcmZsb3cqLwotICAgICAgICBlbHNlIHJldHVybiB0aW55
KmNvcHlzaWduKHRpbnkseCk7ICAgICAvKnVuZGVyZmxvdyovCi0gICAgICAgIH0KLSAgICAgICAg
ayArPSA1NDsgICAgICAgICAgICAgICAgLyogc3Vibm9ybWFsIHJlc3VsdCAqLwotICAgICAgICBf
X0hJKHgpID0gKGh4JjB4ODAwZmZmZmYpfChrPDwyMCk7Ci0gICAgICAgIHJldHVybiB4KnR3b201
NDsKLX0KLQotc3RhdGljIGRvdWJsZSBmZGxpYm1Qb3coZG91YmxlIHgsIGRvdWJsZSB5KQotewot
ICAgIGRvdWJsZSB6LGF4LHpfaCx6X2wscF9oLHBfbDsKLSAgICBkb3VibGUgeTEsdDEsdDIscixz
LHQsdSx2LHc7Ci0gICAgaW50IGkwLGkxLGksaixrLHlpc2ludCxuOwotICAgIGludCBoeCxoeSxp
eCxpeTsKLSAgICB1bnNpZ25lZCBseCxseTsKLQotICAgIGkwID0gKCgqKGludCopJm9uZSk+PjI5
KV4xOyBpMT0xLWkwOwotICAgIGh4ID0gX19ISSh4KTsgbHggPSBfX0xPKHgpOwotICAgIGh5ID0g
X19ISSh5KTsgbHkgPSBfX0xPKHkpOwotICAgIGl4ID0gaHgmMHg3ZmZmZmZmZjsgIGl5ID0gaHkm
MHg3ZmZmZmZmZjsKLQotICAgIC8qIHk9PXplcm86IHgqKjAgPSAxICovCi0gICAgaWYoKGl5fGx5
KT09MCkgcmV0dXJuIG9uZTsgICAgIAotCi0gICAgLyogKy1OYU4gcmV0dXJuIHgreSAqLwotICAg
IGlmKGl4ID4gMHg3ZmYwMDAwMCB8fCAoKGl4PT0weDdmZjAwMDAwKSYmKGx4IT0wKSkgfHwKLSAg
ICAgICBpeSA+IDB4N2ZmMDAwMDAgfHwgKChpeT09MHg3ZmYwMDAwMCkmJihseSE9MCkpKSAKLSAg
ICAgICAgcmV0dXJuIHgreTsgICAgCi0KLSAgICAvKiBkZXRlcm1pbmUgaWYgeSBpcyBhbiBvZGQg
aW50IHdoZW4geCA8IDAKLSAgICAgKiB5aXNpbnQgPSAwICAgIC4uLiB5IGlzIG5vdCBhbiBpbnRl
Z2VyCi0gICAgICogeWlzaW50ID0gMSAgICAuLi4geSBpcyBhbiBvZGQgaW50Ci0gICAgICogeWlz
aW50ID0gMiAgICAuLi4geSBpcyBhbiBldmVuIGludAotICAgICAqLwotICAgIHlpc2ludCAgPSAw
OwotICAgIGlmKGh4PDApIHsgICAgCi0gICAgICAgIGlmKGl5Pj0weDQzNDAwMDAwKSB5aXNpbnQg
PSAyOyAvKiBldmVuIGludGVnZXIgeSAqLwotICAgICAgICBlbHNlIGlmKGl5Pj0weDNmZjAwMDAw
KSB7Ci0gICAgICAgIGsgPSAoaXk+PjIwKS0weDNmZjsgICAgICAgLyogZXhwb25lbnQgKi8KLSAg
ICAgICAgaWYoaz4yMCkgewotICAgICAgICAgICAgaiA9IGx5Pj4oNTItayk7Ci0gICAgICAgICAg
ICBpZihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oajw8KDUyLWspKT09bHkpIHlpc2ludCA9IDItKGom
MSk7Ci0gICAgICAgIH0gZWxzZSBpZihseT09MCkgewotICAgICAgICAgICAgaiA9IGl5Pj4oMjAt
ayk7Ci0gICAgICAgICAgICBpZigoajw8KDIwLWspKT09aXkpIHlpc2ludCA9IDItKGomMSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgfSAgICAgICAgCi0gICAgfSAKLQotICAgIC8qIHNwZWNpYWwgdmFs
dWUgb2YgeSAqLwotICAgIGlmKGx5PT0wKSB7ICAgICAKLSAgICAgICAgaWYgKGl5PT0weDdmZjAw
MDAwKSB7ICAgIC8qIHkgaXMgKy1pbmYgKi8KLSAgICAgICAgICAgIGlmKCgoaXgtMHgzZmYwMDAw
MCl8bHgpPT0wKQotICAgICAgICAgICAgcmV0dXJuICB5IC0geTsgICAgLyogaW5mKiorLTEgaXMg
TmFOICovCi0gICAgICAgICAgICBlbHNlIGlmIChpeCA+PSAweDNmZjAwMDAwKS8qICh8eHw+MSkq
KistaW5mID0gaW5mLDAgKi8KLSAgICAgICAgICAgIHJldHVybiAoaHk+PTApPyB5OiB6ZXJvOwot
ICAgICAgICAgICAgZWxzZSAgICAgICAgICAgIC8qICh8eHw8MSkqKi0sK2luZiA9IGluZiwwICov
Ci0gICAgICAgICAgICByZXR1cm4gKGh5PDApPy15OiB6ZXJvOwotICAgICAgICB9IAotICAgICAg
ICBpZihpeT09MHgzZmYwMDAwMCkgeyAgICAvKiB5IGlzICArLTEgKi8KLSAgICAgICAgaWYoaHk8
MCkgcmV0dXJuIG9uZS94OyBlbHNlIHJldHVybiB4OwotICAgICAgICB9Ci0gICAgICAgIGlmKGh5
PT0weDQwMDAwMDAwKSByZXR1cm4geCp4OyAvKiB5IGlzICAyICovCi0gICAgICAgIGlmKGh5PT0w
eDNmZTAwMDAwKSB7ICAgIC8qIHkgaXMgIDAuNSAqLwotICAgICAgICBpZihoeD49MCkgICAgLyog
eCA+PSArMCAqLwotICAgICAgICByZXR1cm4gc3FydCh4KTsgICAgCi0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBheCAgID0gZmFicyh4KTsKLSAgICAvKiBzcGVjaWFsIHZhbHVlIG9mIHggKi8KLSAg
ICBpZihseD09MCkgewotICAgICAgICBpZihpeD09MHg3ZmYwMDAwMHx8aXg9PTB8fGl4PT0weDNm
ZjAwMDAwKXsKLSAgICAgICAgeiA9IGF4OyAgICAgICAgICAgIC8qeCBpcyArLTAsKy1pbmYsKy0x
Ki8KLSAgICAgICAgaWYoaHk8MCkgeiA9IG9uZS96OyAgICAvKiB6ID0gKDEvfHh8KSAqLwotICAg
ICAgICBpZihoeDwwKSB7Ci0gICAgICAgICAgICBpZigoKGl4LTB4M2ZmMDAwMDApfHlpc2ludCk9
PTApIHsKLSAgICAgICAgICAgIHogPSAoei16KS8oei16KTsgLyogKC0xKSoqbm9uLWludCBpcyBO
YU4gKi8KLSAgICAgICAgICAgIH0gZWxzZSBpZih5aXNpbnQ9PTEpIAotICAgICAgICAgICAgeiA9
IC16OyAgICAgICAgLyogKHg8MCkqKm9kZCA9IC0ofHh8KipvZGQpICovCi0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHo7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgbiA9IChoeD4+MzEp
KzE7Ci0KLSAgICAvKiAoeDwwKSoqKG5vbi1pbnQpIGlzIE5hTiAqLwotICAgIGlmKChufHlpc2lu
dCk9PTApIHJldHVybiAoeC14KS8oeC14KTsKLQotICAgIHMgPSBvbmU7IC8qIHMgKHNpZ24gb2Yg
cmVzdWx0IC12ZSoqb2RkKSA9IC0xIGVsc2UgPSAxICovCi0gICAgaWYoKG58KHlpc2ludC0xKSk9
PTApIHMgPSAtb25lOy8qICgtdmUpKioob2RkIGludCkgKi8KLQotICAgIC8qIHx5fCBpcyBodWdl
ICovCi0gICAgaWYoaXk+MHg0MWUwMDAwMCkgeyAvKiBpZiB8eXwgPiAyKiozMSAqLwotICAgICAg
ICBpZihpeT4weDQzZjAwMDAwKXsgICAgLyogaWYgfHl8ID4gMioqNjQsIG11c3Qgby91ZmxvdyAq
LwotICAgICAgICBpZihpeDw9MHgzZmVmZmZmZikgcmV0dXJuIChoeTwwKT8gaHVnZSpodWdlOnRp
bnkqdGlueTsKLSAgICAgICAgaWYoaXg+PTB4M2ZmMDAwMDApIHJldHVybiAoaHk+MCk/IGh1Z2Uq
aHVnZTp0aW55KnRpbnk7Ci0gICAgICAgIH0KLSAgICAvKiBvdmVyL3VuZGVyZmxvdyBpZiB4IGlz
IG5vdCBjbG9zZSB0byBvbmUgKi8KLSAgICAgICAgaWYoaXg8MHgzZmVmZmZmZikgcmV0dXJuICho
eTwwKT8gcypodWdlKmh1Z2U6cyp0aW55KnRpbnk7Ci0gICAgICAgIGlmKGl4PjB4M2ZmMDAwMDAp
IHJldHVybiAoaHk+MCk/IHMqaHVnZSpodWdlOnMqdGlueSp0aW55OwotICAgIC8qIG5vdyB8MS14
fCBpcyB0aW55IDw9IDIqKi0yMCwgc3VmZmljZSB0byBjb21wdXRlIAotICAgICAgIGxvZyh4KSBi
eSB4LXheMi8yK3heMy8zLXheNC80ICovCi0gICAgICAgIHQgPSBheC1vbmU7ICAgICAgICAvKiB0
IGhhcyAyMCB0cmFpbGluZyB6ZXJvcyAqLwotICAgICAgICB3ID0gKHQqdCkqKDAuNS10KigwLjMz
MzMzMzMzMzMzMzMzMzMzMzMzMzMtdCowLjI1KSk7Ci0gICAgICAgIHUgPSBpdmxuMl9oKnQ7ICAg
IC8qIGl2bG4yX2ggaGFzIDIxIHNpZy4gYml0cyAqLwotICAgICAgICB2ID0gdCppdmxuMl9sLXcq
aXZsbjI7Ci0gICAgICAgIHQxID0gdSt2OwotICAgICAgICBfX0xPKHQxKSA9IDA7Ci0gICAgICAg
IHQyID0gdi0odDEtdSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG91YmxlIHNzLHMyLHNfaCxz
X2wsdF9oLHRfbDsKLSAgICAgICAgbiA9IDA7Ci0gICAgLyogdGFrZSBjYXJlIHN1Ym5vcm1hbCBu
dW1iZXIgKi8KLSAgICAgICAgaWYoaXg8MHgwMDEwMDAwMCkKLSAgICAgICAge2F4ICo9IHR3bzUz
OyBuIC09IDUzOyBpeCA9IF9fSEkoYXgpOyB9Ci0gICAgICAgIG4gICs9ICgoaXgpPj4yMCktMHgz
ZmY7Ci0gICAgICAgIGogID0gaXgmMHgwMDBmZmZmZjsKLSAgICAvKiBkZXRlcm1pbmUgaW50ZXJ2
YWwgKi8KLSAgICAgICAgaXggPSBqfDB4M2ZmMDAwMDA7ICAgICAgICAvKiBub3JtYWxpemUgaXgg
Ki8KLSAgICAgICAgaWYoajw9MHgzOTg4RSkgaz0wOyAgICAgICAgLyogfHh8PHNxcnQoMy8yKSAq
LwotICAgICAgICBlbHNlIGlmKGo8MHhCQjY3QSkgaz0xOyAgICAvKiB8eHw8c3FydCgzKSAgICov
Ci0gICAgICAgIGVsc2Uge2s9MDtuKz0xO2l4IC09IDB4MDAxMDAwMDA7fQotICAgICAgICBfX0hJ
KGF4KSA9IGl4OwotCi0gICAgLyogY29tcHV0ZSBzcyA9IHNfaCtzX2wgPSAoeC0xKS8oeCsxKSBv
ciAoeC0xLjUpLyh4KzEuNSkgKi8KLSAgICAgICAgdSA9IGF4LWJwW2tdOyAgICAgICAgLyogYnBb
MF09MS4wLCBicFsxXT0xLjUgKi8KLSAgICAgICAgdiA9IG9uZS8oYXgrYnBba10pOwotICAgICAg
ICBzcyA9IHUqdjsKLSAgICAgICAgc19oID0gc3M7Ci0gICAgICAgIF9fTE8oc19oKSA9IDA7Ci0g
ICAgLyogdF9oPWF4K2JwW2tdIEhpZ2ggKi8KLSAgICAgICAgdF9oID0gemVybzsKLSAgICAgICAg
X19ISSh0X2gpPSgoaXg+PjEpfDB4MjAwMDAwMDApKzB4MDAwODAwMDArKGs8PDE4KTsgCi0gICAg
ICAgIHRfbCA9IGF4IC0gKHRfaC1icFtrXSk7Ci0gICAgICAgIHNfbCA9IHYqKCh1LXNfaCp0X2gp
LXNfaCp0X2wpOwotICAgIC8qIGNvbXB1dGUgbG9nKGF4KSAqLwotICAgICAgICBzMiA9IHNzKnNz
OwotICAgICAgICByID0gczIqczIqKEwxK3MyKihMMitzMiooTDMrczIqKEw0K3MyKihMNStzMipM
NikpKSkpOwotICAgICAgICByICs9IHNfbCooc19oK3NzKTsKLSAgICAgICAgczIgID0gc19oKnNf
aDsKLSAgICAgICAgdF9oID0gMy4wK3MyK3I7Ci0gICAgICAgIF9fTE8odF9oKSA9IDA7Ci0gICAg
ICAgIHRfbCA9IHItKCh0X2gtMy4wKS1zMik7Ci0gICAgLyogdSt2ID0gc3MqKDErLi4uKSAqLwot
ICAgICAgICB1ID0gc19oKnRfaDsKLSAgICAgICAgdiA9IHNfbCp0X2grdF9sKnNzOwotICAgIC8q
IDIvKDNsb2cyKSooc3MrLi4uKSAqLwotICAgICAgICBwX2ggPSB1K3Y7Ci0gICAgICAgIF9fTE8o
cF9oKSA9IDA7Ci0gICAgICAgIHBfbCA9IHYtKHBfaC11KTsKLSAgICAgICAgel9oID0gY3BfaCpw
X2g7ICAgICAgICAvKiBjcF9oK2NwX2wgPSAyLygzKmxvZzIpICovCi0gICAgICAgIHpfbCA9IGNw
X2wqcF9oK3BfbCpjcCtkcF9sW2tdOwotICAgIC8qIGxvZzIoYXgpID0gKHNzKy4uKSoyLygzKmxv
ZzIpID0gbiArIGRwX2ggKyB6X2ggKyB6X2wgKi8KLSAgICAgICAgdCA9IChkb3VibGUpbjsKLSAg
ICAgICAgdDEgPSAoKCh6X2grel9sKStkcF9oW2tdKSt0KTsKLSAgICAgICAgX19MTyh0MSkgPSAw
OwotICAgICAgICB0MiA9IHpfbC0oKCh0MS10KS1kcF9oW2tdKS16X2gpOwotICAgIH0KLQotICAg
IC8qIHNwbGl0IHVwIHkgaW50byB5MSt5MiBhbmQgY29tcHV0ZSAoeTEreTIpKih0MSt0MikgKi8K
LSAgICB5MSAgPSB5OwotICAgIF9fTE8oeTEpID0gMDsKLSAgICBwX2wgPSAoeS15MSkqdDEreSp0
MjsKLSAgICBwX2ggPSB5MSp0MTsKLSAgICB6ID0gcF9sK3BfaDsKLSAgICBqID0gX19ISSh6KTsK
LSAgICBpID0gX19MTyh6KTsKLSAgICBpZiAoaj49MHg0MDkwMDAwMCkgeyAgICAgICAgICAgICAg
ICAvKiB6ID49IDEwMjQgKi8KLSAgICAgICAgaWYoKChqLTB4NDA5MDAwMDApfGkpIT0wKSAgICAg
ICAgICAgIC8qIGlmIHogPiAxMDI0ICovCi0gICAgICAgIHJldHVybiBzKmh1Z2UqaHVnZTsgICAg
ICAgICAgICAvKiBvdmVyZmxvdyAqLwotICAgICAgICBlbHNlIHsKLSAgICAgICAgaWYocF9sK292
dD56LXBfaCkgcmV0dXJuIHMqaHVnZSpodWdlOyAgICAvKiBvdmVyZmxvdyAqLwotICAgICAgICB9
Ci0gICAgfSBlbHNlIGlmKChqJjB4N2ZmZmZmZmYpPj0weDQwOTBjYzAwICkgeyAgICAvKiB6IDw9
IC0xMDc1ICovCi0gICAgICAgIGlmKCgoai0weGMwOTBjYzAwKXxpKSE9MCkgICAgICAgICAvKiB6
IDwgLTEwNzUgKi8KLSAgICAgICAgcmV0dXJuIHMqdGlueSp0aW55OyAgICAgICAgLyogdW5kZXJm
bG93ICovCi0gICAgICAgIGVsc2UgewotICAgICAgICBpZihwX2w8PXotcF9oKSByZXR1cm4gcyp0
aW55KnRpbnk7ICAgIC8qIHVuZGVyZmxvdyAqLwotICAgICAgICB9Ci0gICAgfQotICAgIC8qCi0g
ICAgICogY29tcHV0ZSAyKioocF9oK3BfbCkKLSAgICAgKi8KLSAgICBpID0gaiYweDdmZmZmZmZm
OwotICAgIGsgPSAoaT4+MjApLTB4M2ZmOwotICAgIG4gPSAwOwotICAgIGlmKGk+MHgzZmUwMDAw
MCkgeyAgICAgICAgLyogaWYgfHp8ID4gMC41LCBzZXQgbiA9IFt6KzAuNV0gKi8KLSAgICAgICAg
biA9IGorKDB4MDAxMDAwMDA+PihrKzEpKTsKLSAgICAgICAgayA9ICgobiYweDdmZmZmZmZmKT4+
MjApLTB4M2ZmOyAgICAvKiBuZXcgayBmb3IgbiAqLwotICAgICAgICB0ID0gemVybzsKLSAgICAg
ICAgX19ISSh0KSA9IChuJn4oMHgwMDBmZmZmZj4+aykpOwotICAgICAgICBuID0gKChuJjB4MDAw
ZmZmZmYpfDB4MDAxMDAwMDApPj4oMjAtayk7Ci0gICAgICAgIGlmKGo8MCkgbiA9IC1uOwotICAg
ICAgICBwX2ggLT0gdDsKLSAgICB9IAotICAgIHQgPSBwX2wrcF9oOwotICAgIF9fTE8odCkgPSAw
OwotICAgIHUgPSB0KmxnMl9oOwotICAgIHYgPSAocF9sLSh0LXBfaCkpKmxnMit0KmxnMl9sOwot
ICAgIHogPSB1K3Y7Ci0gICAgdyA9IHYtKHotdSk7Ci0gICAgdCAgPSB6Kno7Ci0gICAgdDEgID0g
eiAtIHQqKFAxK3QqKFAyK3QqKFAzK3QqKFA0K3QqUDUpKSkpOwotICAgIHIgID0gKHoqdDEpLyh0
MS10d28pLSh3K3oqdyk7Ci0gICAgeiAgPSBvbmUtKHIteik7Ci0gICAgaiAgPSBfX0hJKHopOwot
ICAgIGogKz0gKG48PDIwKTsKLSAgICBpZigoaj4+MjApPD0wKSB6ID0gZmRsaWJtU2NhbGJuKHos
bik7ICAgIC8qIHN1Ym5vcm1hbCBvdXRwdXQgKi8KLSAgICBlbHNlIF9fSEkoeikgKz0gKG48PDIw
KTsKLSAgICByZXR1cm4gcyp6OwotfQotCi1zdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzRGVu
b3JtYWwoZG91YmxlIHgpCi17Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNpZ25iaXQgPSAw
eDgwMDAwMDAwMDAwMDAwMDBVTEw7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IG1pbk5vcm1h
bCA9IDB4MDAwMTAwMDAwMDAwMDAwMFVMTDsKLSAgICByZXR1cm4gKGJpdHdpc2VfY2FzdDx1aW50
NjRfdD4oeCkgJiB+c2lnbmJpdCkgLSAxIDwgbWluTm9ybWFsIC0gMTsKLX0KLQotc3RhdGljIEFM
V0FZU19JTkxJTkUgYm9vbCBpc0VkZ2VDYXNlKGRvdWJsZSB4KQotewotICAgIHN0YXRpYyBjb25z
dCB1aW50NjRfdCBzaWduYml0ID0gMHg4MDAwMDAwMDAwMDAwMDAwVUxMOwotICAgIHN0YXRpYyBj
b25zdCB1aW50NjRfdCBpbmZpbml0eSA9IDB4N2ZmZmZmZmZmZmZmZmZmZlVMTDsKLSAgICByZXR1
cm4gKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oeCkgJiB+c2lnbmJpdCkgLSAxID49IGluZmluaXR5
IC0gMTsKLX0KLQotc3RhdGljIEFMV0FZU19JTkxJTkUgZG91YmxlIG1hdGhQb3dJbnRlcm5hbChk
b3VibGUgeCwgZG91YmxlIHkpCi17Ci0gICAgaWYgKCFpc0Rlbm9ybWFsKHgpICYmICFpc0Rlbm9y
bWFsKHkpKSB7Ci0gICAgICAgIGRvdWJsZSBsaWJtUmVzdWx0ID0gcG93KHgsIHkpOwotICAgICAg
ICBpZiAobGlibVJlc3VsdCB8fCBpc0VkZ2VDYXNlKHgpIHx8IGlzRWRnZUNhc2UoeSkpCi0gICAg
ICAgICAgICByZXR1cm4gbGlibVJlc3VsdDsKLSAgICB9Ci0gICAgcmV0dXJuIGZkbGlibVBvdyh4
LCB5KTsKLX0KLQotI2Vsc2UKLQotQUxXQVlTX0lOTElORSBkb3VibGUgbWF0aFBvd0ludGVybmFs
KGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAgICByZXR1cm4gcG93KHgsIHkpOwotfQotCi0jZW5k
aWYKLQotZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0aFBvdyhkb3VibGUgeCwgZG91
YmxlIHkpCi17Ci0gICAgaWYgKHN0ZDo6aXNuYW4oeSkpCi0gICAgICAgIHJldHVybiBQTmFOOwot
ICAgIGlmIChzdGQ6OmlzaW5mKHkpICYmIGZhYnMoeCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIFBO
YU47Ci0gICAgcmV0dXJuIG1hdGhQb3dJbnRlcm5hbCh4LCB5KTsKLX0KLQogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQXJyYXlWYWx1ZSwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDEwODliMDM2ZjliMzQ0YjA5OGI3NDc3OTFjYmY1
NGEzOWU1ZmQ2YmMuLjc2N2VhNWJiNTUyN2RlYzdkZDVlMTBkN2NjZmQyZDYyOTc1MTkzYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0yODEsNyArMjgx
LDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSosIGludDMy
X3QpIFdURl9JTlRFUk5BTDsKICNpZiBFTkFCTEUoREZHX0pJVCkKIFNsb3dQYXRoUmV0dXJuVHlw
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdU
Rl9JTlRFUk5BTDsKICNlbmRpZgotZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0aFBv
dyhkb3VibGUgeCwgZG91YmxlIHkpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBF
bmNvZGVkSlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50
aWZpZXIqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aENvbW1vbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTFkYTk4MTlkMTFkODAwYmEzNTBjZDJlMzIyNWQ4NWZmYmZhMDZmZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uY3BwCkBAIC0wLDAg
KzEsNDIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKKworI2luY2x1ZGUg
PGNtYXRoPgorI2luY2x1ZGUgIlB1cmVOYU4uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyNpZiBQ
TEFURk9STShJT1MpICYmIENQVShBUk1fVEhVTUIyKQorCisvLyBUaGUgZm9sbG93aW5nIGNvZGUg
aXMgdGFrZW4gZnJvbSBuZXRsaWIub3JnOgorLy8gICBodHRwOi8vd3d3Lm5ldGxpYi5vcmcvZmRs
aWJtL2ZkbGlibS5oCisvLyAgIGh0dHA6Ly93d3cubmV0bGliLm9yZy9mZGxpYm0vZV9wb3cuYwor
Ly8gICBodHRwOi8vd3d3Lm5ldGxpYi5vcmcvZmRsaWJtL3Nfc2NhbGJuLmMKKy8vCisvLyBBbmQg
d2FzIG9yaWdpbmFsbHkgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlOgor
CisvKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICogQ29weXJpZ2h0IChDKSAxOTkzIGJ5IFN1biBNaWNyb3N5c3RlbXMsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBEZXZlbG9wZWQgYXQgU3VuU29mdCwgYSBTdW4gTWlj
cm9zeXN0ZW1zLCBJbmMuIGJ1c2luZXNzLgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcworICogc29mdHdhcmUgaXMgZnJlZWx5IGdyYW50ZWQs
IHByb3ZpZGVkIHRoYXQgdGhpcyBub3RpY2UKKyAqIGlzIHByZXNlcnZlZC4KKyAqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqLworLyoKKyAq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAq
IENvcHlyaWdodCAoQykgMjAwNCBieSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRp
c3RyaWJ1dGUgdGhpcworICogc29mdHdhcmUgaXMgZnJlZWx5IGdyYW50ZWQsIHByb3ZpZGVkIHRo
YXQgdGhpcyBub3RpY2UKKyAqIGlzIHByZXNlcnZlZC4KKyAqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqLworCisvKiBfX2llZWU3NTRfcG93
KHgseSkgcmV0dXJuIHgqKnkKKyAqCisgKiAgICAgICAgICAgICAgbgorICogTWV0aG9kOiAgTGV0
IHggPSAgMiAgICogKDErZikKKyAqICAgIDEuIENvbXB1dGUgYW5kIHJldHVybiBsb2cyKHgpIGlu
IHR3byBwaWVjZXM6CisgKiAgICAgICAgbG9nMih4KSA9IHcxICsgdzIsCisgKiAgICAgICB3aGVy
ZSB3MSBoYXMgNTMtMjQgPSAyOSBiaXQgdHJhaWxpbmcgemVyb3MuCisgKiAgICAyLiBQZXJmb3Jt
IHkqbG9nMih4KSA9IG4reScgYnkgc2ltdWxhdGluZyBtdXRpLXByZWNpc2lvbgorICogICAgICAg
YXJpdGhtZXRpYywgd2hlcmUgfHknfDw9MC41LgorICogICAgMy4gUmV0dXJuIHgqKnkgPSAyKipu
KmV4cCh5Jypsb2cyKQorICoKKyAqIFNwZWNpYWwgY2FzZXM6CisgKiAgICAxLiAgKGFueXRoaW5n
KSAqKiAwICBpcyAxCisgKiAgICAyLiAgKGFueXRoaW5nKSAqKiAxICBpcyBpdHNlbGYKKyAqICAg
IDMuICAoYW55dGhpbmcpICoqIE5BTiBpcyBOQU4KKyAqICAgIDQuICBOQU4gKiogKGFueXRoaW5n
IGV4Y2VwdCAwKSBpcyBOQU4KKyAqICAgIDUuICArLSh8eHwgPiAxKSAqKiAgK0lORiBpcyArSU5G
CisgKiAgICA2LiAgKy0ofHh8ID4gMSkgKiogIC1JTkYgaXMgKzAKKyAqICAgIDcuICArLSh8eHwg
PCAxKSAqKiAgK0lORiBpcyArMAorICogICAgOC4gICstKHx4fCA8IDEpICoqICAtSU5GIGlzICtJ
TkYKKyAqICAgIDkuICArLTEgICAgICAgICAqKiArLUlORiBpcyBOQU4KKyAqICAgIDEwLiArMCAq
KiAoK2FueXRoaW5nIGV4Y2VwdCAwLCBOQU4pICAgICAgICAgICAgICAgaXMgKzAKKyAqICAgIDEx
LiAtMCAqKiAoK2FueXRoaW5nIGV4Y2VwdCAwLCBOQU4sIG9kZCBpbnRlZ2VyKSAgaXMgKzAKKyAq
ICAgIDEyLiArMCAqKiAoLWFueXRoaW5nIGV4Y2VwdCAwLCBOQU4pICAgICAgICAgICAgICAgaXMg
K0lORgorICogICAgMTMuIC0wICoqICgtYW55dGhpbmcgZXhjZXB0IDAsIE5BTiwgb2RkIGludGVn
ZXIpICBpcyArSU5GCisgKiAgICAxNC4gLTAgKiogKG9kZCBpbnRlZ2VyKSA9IC0oICswICoqIChv
ZGQgaW50ZWdlcikgKQorICogICAgMTUuICtJTkYgKiogKCthbnl0aGluZyBleGNlcHQgMCxOQU4p
IGlzICtJTkYKKyAqICAgIDE2LiArSU5GICoqICgtYW55dGhpbmcgZXhjZXB0IDAsTkFOKSBpcyAr
MAorICogICAgMTcuIC1JTkYgKiogKGFueXRoaW5nKSAgPSAtMCAqKiAoLWFueXRoaW5nKQorICog
ICAgMTguICgtYW55dGhpbmcpICoqIChpbnRlZ2VyKSBpcyAoLTEpKiooaW50ZWdlcikqKCthbnl0
aGluZyoqaW50ZWdlcikKKyAqICAgIDE5LiAoLWFueXRoaW5nIGV4Y2VwdCAwIGFuZCBpbmYpICoq
IChub24taW50ZWdlcikgaXMgTkFOCisgKgorICogQWNjdXJhY3k6CisgKiAgICBwb3coeCx5KSBy
ZXR1cm5zIHgqKnkgbmVhcmx5IHJvdW5kZWQuIEluIHBhcnRpY3VsYXIKKyAqICAgICAgICAgICAg
cG93KGludGVnZXIsaW50ZWdlcikKKyAqICAgIGFsd2F5cyByZXR1cm5zIHRoZSBjb3JyZWN0IGlu
dGVnZXIgcHJvdmlkZWQgaXQgaXMKKyAqICAgIHJlcHJlc2VudGFibGUuCisgKgorICogQ29uc3Rh
bnRzIDoKKyAqIFRoZSBoZXhhZGVjaW1hbCB2YWx1ZXMgYXJlIHRoZSBpbnRlbmRlZCBvbmVzIGZv
ciB0aGUgZm9sbG93aW5nCisgKiBjb25zdGFudHMuIFRoZSBkZWNpbWFsIHZhbHVlcyBtYXkgYmUg
dXNlZCwgcHJvdmlkZWQgdGhhdCB0aGUKKyAqIGNvbXBpbGVyIHdpbGwgY29udmVydCBmcm9tIGRl
Y2ltYWwgdG8gYmluYXJ5IGFjY3VyYXRlbHkgZW5vdWdoCisgKiB0byBwcm9kdWNlIHRoZSBoZXhh
ZGVjaW1hbCB2YWx1ZXMgc2hvd24uCisgKi8KKworI2RlZmluZSBfX0hJKHgpICooMSsoaW50Kikm
eCkKKyNkZWZpbmUgX19MTyh4KSAqKGludCopJngKKworc3RhdGljIGNvbnN0IGRvdWJsZQorYnBb
XSA9IHsxLjAsIDEuNSx9LAorZHBfaFtdID0geyAwLjAsIDUuODQ5NjI0ODcyMjA3NjQxNjAxNTZl
LTAxLH0sIC8qIDB4M0ZFMkI4MDMsIDB4NDAwMDAwMDAgKi8KK2RwX2xbXSA9IHsgMC4wLCAxLjM1
MDAzOTIwMjEyOTc0ODk3MTI4ZS0wOCx9LCAvKiAweDNFNENGREVCLCAweDQzQ0ZEMDA2ICovCit6
ZXJvICAgID0gIDAuMCwKK29uZSAgICA9ICAxLjAsCit0d28gICAgPSAgMi4wLAordHdvNTMgICAg
PSAgOTAwNzE5OTI1NDc0MDk5Mi4wLCAgICAvKiAweDQzNDAwMDAwLCAweDAwMDAwMDAwICovCito
dWdlICAgID0gIDEuMGUzMDAsCit0aW55ICAgID0gIDEuMGUtMzAwLAorLyogZm9yIHNjYWxibiAq
LwordHdvNTQgICA9ICAxLjgwMTQzOTg1MDk0ODE5ODQwMDAwZSsxNiwgLyogMHg0MzUwMDAwMCwg
MHgwMDAwMDAwMCAqLwordHdvbTU0ICA9ICA1LjU1MTExNTEyMzEyNTc4MjcwMjEyZS0xNywgLyog
MHgzQzkwMDAwMCwgMHgwMDAwMDAwMCAqLworLyogcG9seSBjb2VmcyBmb3IgKDMvMikqKGxvZyh4
KS0ycy0yLzMqcyoqMyAqLworTDEgID0gIDUuOTk5OTk5OTk5OTk5OTQ2NDg3MjVlLTAxLCAvKiAw
eDNGRTMzMzMzLCAweDMzMzMzMzAzICovCitMMiAgPSAgNC4yODU3MTQyODU3ODU1MDE4NDI1MmUt
MDEsIC8qIDB4M0ZEQjZEQjYsIDB4REI2RkFCRkYgKi8KK0wzICA9ICAzLjMzMzMzMzI5ODE4Mzc3
NDMyOTE4ZS0wMSwgLyogMHgzRkQ1NTU1NSwgMHg1MThGMjY0RCAqLworTDQgID0gIDIuNzI3Mjgx
MjM4MDg1MzQwMDY0ODllLTAxLCAvKiAweDNGRDE3NDYwLCAweEE5MUQ0MTAxICovCitMNSAgPSAg
Mi4zMDY2MDc0NTc3NTU2MTc1NDA2N2UtMDEsIC8qIDB4M0ZDRDg2NEEsIDB4OTNDOURCNjUgKi8K
K0w2ICA9ICAyLjA2OTc1MDE3ODAwMzM4NDE3Nzg0ZS0wMSwgLyogMHgzRkNBN0UyOCwgMHg0QTQ1
NEVFRiAqLworUDEgICA9ICAxLjY2NjY2NjY2NjY2NjY2MDE5MDM3ZS0wMSwgLyogMHgzRkM1NTU1
NSwgMHg1NTU1NTUzRSAqLworUDIgICA9IC0yLjc3Nzc3Nzc3NzcwMTU1OTMzODQyZS0wMywgLyog
MHhCRjY2QzE2QywgMHgxNkJFQkQ5MyAqLworUDMgICA9ICA2LjYxMzc1NjMyMTQzNzkzNDM2MTE3
ZS0wNSwgLyogMHgzRjExNTY2QSwgMHhBRjI1REUyQyAqLworUDQgICA9IC0xLjY1MzM5MDIyMDU0
NjUyNTE1MzkwZS0wNiwgLyogMHhCRUJCQkQ0MSwgMHhDNUQyNkJGMSAqLworUDUgICA9ICA0LjEz
ODEzNjc5NzA1NzIzODQ2MDM5ZS0wOCwgLyogMHgzRTY2Mzc2OSwgMHg3MkJFQTREMCAqLworbGcy
ICA9ICA2LjkzMTQ3MTgwNTU5OTQ1Mjg2MjI3ZS0wMSwgLyogMHgzRkU2MkU0MiwgMHhGRUZBMzlF
RiAqLworbGcyX2ggID0gIDYuOTMxNDcxODI0NjQ1OTk2MDkzNzVlLTAxLCAvKiAweDNGRTYyRTQz
LCAweDAwMDAwMDAwICovCitsZzJfbCAgPSAtMS45MDQ2NTQyOTk5NTc3NjgwNDUyNWUtMDksIC8q
IDB4QkUyMDVDNjEsIDB4MENBODZDMzkgKi8KK292dCA9ICA4LjAwODU2NjI1OTUzNzI5NDQzNzJl
LTAwMTcsIC8qIC0oMTAyNC1sb2cyKG92ZmwrLjV1bHApKSAqLworY3AgICAgPSAgOS42MTc5NjY5
MzkyNTk3NTU1NDMyOWUtMDEsIC8qIDB4M0ZFRUM3MDksIDB4REMzQTAzRkQgPTIvKDNsbjIpICov
CitjcF9oICA9ICA5LjYxNzk2NzAwOTU0NDM3MjU1ODU5ZS0wMSwgLyogMHgzRkVFQzcwOSwgMHhF
MDAwMDAwMCA9KGZsb2F0KWNwICovCitjcF9sICA9IC03LjAyODQ2MTY1MDk1Mjc1ODI2NTE2ZS0w
OSwgLyogMHhCRTNFMkZFMCwgMHgxNDVCMDFGNSA9dGFpbCBvZiBjcF9oKi8KK2l2bG4yICAgID0g
IDEuNDQyNjk1MDQwODg4OTYzMzg3MDBlKzAwLCAvKiAweDNGRjcxNTQ3LCAweDY1MkI4MkZFID0x
L2xuMiAqLworaXZsbjJfaCAgPSAgMS40NDI2OTUwMjE2MjkzMzM0OTYwOWUrMDAsIC8qIDB4M0ZG
NzE1NDcsIDB4NjAwMDAwMDAgPTI0YiAxL2xuMiovCitpdmxuMl9sICA9ICAxLjkyNTk2Mjk5MTEy
NjYxNzQ2ODg3ZS0wODsgLyogMHgzRTU0QUUwQiwgMHhGODVEREY0NCA9MS9sbjIgdGFpbCovCisK
K2lubGluZSBkb3VibGUgZmRsaWJtU2NhbGJuIChkb3VibGUgeCwgaW50IG4pCit7CisgICAgaW50
ICBrLGh4LGx4OworICAgIGh4ID0gX19ISSh4KTsKKyAgICBseCA9IF9fTE8oeCk7CisgICAgayA9
IChoeCYweDdmZjAwMDAwKT4+MjA7ICAgICAgICAvKiBleHRyYWN0IGV4cG9uZW50ICovCisgICAg
aWYgKGs9PTApIHsgICAgICAgICAgICAgICAgLyogMCBvciBzdWJub3JtYWwgeCAqLworICAgICAg
ICBpZiAoKGx4fChoeCYweDdmZmZmZmZmKSk9PTApIHJldHVybiB4OyAvKiArLTAgKi8KKyAgICAg
ICAgeCAqPSB0d281NDsKKyAgICAgICAgaHggPSBfX0hJKHgpOworICAgICAgICBrID0gKChoeCYw
eDdmZjAwMDAwKT4+MjApIC0gNTQ7CisgICAgICAgIGlmIChuPCAtNTAwMDApIHJldHVybiB0aW55
Kng7ICAgICAvKnVuZGVyZmxvdyovCisgICAgfQorICAgIGlmIChrPT0weDdmZikgcmV0dXJuIHgr
eDsgICAgICAgIC8qIE5hTiBvciBJbmYgKi8KKyAgICBrID0gaytuOworICAgIGlmIChrID4gIDB4
N2ZlKSByZXR1cm4gaHVnZSpjb3B5c2lnbihodWdlLHgpOyAvKiBvdmVyZmxvdyAgKi8KKyAgICBp
ZiAoayA+IDApICAgICAgICAgICAgICAgICAvKiBub3JtYWwgcmVzdWx0ICovCisgICAge19fSEko
eCkgPSAoaHgmMHg4MDBmZmZmZil8KGs8PDIwKTsgcmV0dXJuIHg7fQorICAgIGlmIChrIDw9IC01
NCkgeworICAgICAgICBpZiAobiA+IDUwMDAwKSAgICAgLyogaW4gY2FzZSBpbnRlZ2VyIG92ZXJm
bG93IGluIG4rayAqLworICAgICAgICAgICAgcmV0dXJuIGh1Z2UqY29weXNpZ24oaHVnZSx4KTsg
ICAgLypvdmVyZmxvdyovCisgICAgICAgIGVsc2UgcmV0dXJuIHRpbnkqY29weXNpZ24odGlueSx4
KTsgICAgIC8qdW5kZXJmbG93Ki8KKyAgICB9CisgICAgayArPSA1NDsgICAgICAgICAgICAgICAg
Lyogc3Vibm9ybWFsIHJlc3VsdCAqLworICAgIF9fSEkoeCkgPSAoaHgmMHg4MDBmZmZmZil8KGs8
PDIwKTsKKyAgICByZXR1cm4geCp0d29tNTQ7Cit9CisKK3N0YXRpYyBkb3VibGUgZmRsaWJtUG93
KGRvdWJsZSB4LCBkb3VibGUgeSkKK3sKKyAgICBkb3VibGUgeixheCx6X2gsel9sLHBfaCxwX2w7
CisgICAgZG91YmxlIHkxLHQxLHQyLHIscyx0LHUsdix3OworICAgIGludCBpMCxpMSxpLGosayx5
aXNpbnQsbjsKKyAgICBpbnQgaHgsaHksaXgsaXk7CisgICAgdW5zaWduZWQgbHgsbHk7CisKKyAg
ICBpMCA9ICgoKihpbnQqKSZvbmUpPj4yOSleMTsgaTE9MS1pMDsKKyAgICBoeCA9IF9fSEkoeCk7
IGx4ID0gX19MTyh4KTsKKyAgICBoeSA9IF9fSEkoeSk7IGx5ID0gX19MTyh5KTsKKyAgICBpeCA9
IGh4JjB4N2ZmZmZmZmY7ICBpeSA9IGh5JjB4N2ZmZmZmZmY7CisKKyAgICAvKiB5PT16ZXJvOiB4
KiowID0gMSAqLworICAgIGlmKChpeXxseSk9PTApIHJldHVybiBvbmU7CisKKyAgICAvKiArLU5h
TiByZXR1cm4geCt5ICovCisgICAgaWYoaXggPiAweDdmZjAwMDAwIHx8ICgoaXg9PTB4N2ZmMDAw
MDApJiYobHghPTApKSB8fAorICAgICAgIGl5ID4gMHg3ZmYwMDAwMCB8fCAoKGl5PT0weDdmZjAw
MDAwKSYmKGx5IT0wKSkpCisgICAgICAgIHJldHVybiB4K3k7CisKKyAgICAvKiBkZXRlcm1pbmUg
aWYgeSBpcyBhbiBvZGQgaW50IHdoZW4geCA8IDAKKyAgICAgKiB5aXNpbnQgPSAwICAgIC4uLiB5
IGlzIG5vdCBhbiBpbnRlZ2VyCisgICAgICogeWlzaW50ID0gMSAgICAuLi4geSBpcyBhbiBvZGQg
aW50CisgICAgICogeWlzaW50ID0gMiAgICAuLi4geSBpcyBhbiBldmVuIGludAorICAgICAqLwor
ICAgIHlpc2ludCAgPSAwOworICAgIGlmKGh4PDApIHsKKyAgICAgICAgaWYoaXk+PTB4NDM0MDAw
MDApIHlpc2ludCA9IDI7IC8qIGV2ZW4gaW50ZWdlciB5ICovCisgICAgICAgIGVsc2UgaWYoaXk+
PTB4M2ZmMDAwMDApIHsKKyAgICAgICAgICAgIGsgPSAoaXk+PjIwKS0weDNmZjsgICAgICAgLyog
ZXhwb25lbnQgKi8KKyAgICAgICAgICAgIGlmKGs+MjApIHsKKyAgICAgICAgICAgICAgICBqID0g
bHk+Pig1Mi1rKTsKKyAgICAgICAgICAgICAgICBpZihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oajw8
KDUyLWspKT09bHkpIHlpc2ludCA9IDItKGomMSk7CisgICAgICAgICAgICB9IGVsc2UgaWYobHk9
PTApIHsKKyAgICAgICAgICAgICAgICBqID0gaXk+PigyMC1rKTsKKyAgICAgICAgICAgICAgICBp
Zigoajw8KDIwLWspKT09aXkpIHlpc2ludCA9IDItKGomMSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICAvKiBzcGVjaWFsIHZhbHVlIG9mIHkgKi8KKyAgICBpZihseT09
MCkgeworICAgICAgICBpZiAoaXk9PTB4N2ZmMDAwMDApIHsgICAgLyogeSBpcyArLWluZiAqLwor
ICAgICAgICAgICAgaWYoKChpeC0weDNmZjAwMDAwKXxseCk9PTApCisgICAgICAgICAgICAgICAg
cmV0dXJuICB5IC0geTsgICAgLyogaW5mKiorLTEgaXMgTmFOICovCisgICAgICAgICAgICBlbHNl
IGlmIChpeCA+PSAweDNmZjAwMDAwKS8qICh8eHw+MSkqKistaW5mID0gaW5mLDAgKi8KKyAgICAg
ICAgICAgICAgICByZXR1cm4gKGh5Pj0wKT8geTogemVybzsKKyAgICAgICAgICAgIGVsc2UgICAg
ICAgICAgICAvKiAofHh8PDEpKiotLCtpbmYgPSBpbmYsMCAqLworICAgICAgICAgICAgICAgIHJl
dHVybiAoaHk8MCk/LXk6IHplcm87CisgICAgICAgIH0KKyAgICAgICAgaWYoaXk9PTB4M2ZmMDAw
MDApIHsgICAgLyogeSBpcyAgKy0xICovCisgICAgICAgICAgICBpZihoeTwwKSByZXR1cm4gb25l
L3g7IGVsc2UgcmV0dXJuIHg7CisgICAgICAgIH0KKyAgICAgICAgaWYoaHk9PTB4NDAwMDAwMDAp
IHJldHVybiB4Kng7IC8qIHkgaXMgIDIgKi8KKyAgICAgICAgaWYoaHk9PTB4M2ZlMDAwMDApIHsg
ICAgLyogeSBpcyAgMC41ICovCisgICAgICAgICAgICBpZihoeD49MCkgICAgLyogeCA+PSArMCAq
LworICAgICAgICAgICAgICAgIHJldHVybiBzcXJ0KHgpOworICAgICAgICB9CisgICAgfQorCisg
ICAgYXggICA9IGZhYnMoeCk7CisgICAgLyogc3BlY2lhbCB2YWx1ZSBvZiB4ICovCisgICAgaWYo
bHg9PTApIHsKKyAgICAgICAgaWYoaXg9PTB4N2ZmMDAwMDB8fGl4PT0wfHxpeD09MHgzZmYwMDAw
MCl7CisgICAgICAgICAgICB6ID0gYXg7ICAgICAgICAgICAgLyp4IGlzICstMCwrLWluZiwrLTEq
LworICAgICAgICAgICAgaWYoaHk8MCkgeiA9IG9uZS96OyAgICAvKiB6ID0gKDEvfHh8KSAqLwor
ICAgICAgICAgICAgaWYoaHg8MCkgeworICAgICAgICAgICAgICAgIGlmKCgoaXgtMHgzZmYwMDAw
MCl8eWlzaW50KT09MCkgeworICAgICAgICAgICAgICAgICAgICB6ID0gKHoteikvKHoteik7IC8q
ICgtMSkqKm5vbi1pbnQgaXMgTmFOICovCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHlpc2lu
dD09MSkKKyAgICAgICAgICAgICAgICAgICAgeiA9IC16OyAgICAgICAgLyogKHg8MCkqKm9kZCA9
IC0ofHh8KipvZGQpICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gejsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIG4gPSAoaHg+PjMxKSsxOworCisgICAgLyogKHg8MCkqKihu
b24taW50KSBpcyBOYU4gKi8KKyAgICBpZigobnx5aXNpbnQpPT0wKSByZXR1cm4gKHgteCkvKHgt
eCk7CisKKyAgICBzID0gb25lOyAvKiBzIChzaWduIG9mIHJlc3VsdCAtdmUqKm9kZCkgPSAtMSBl
bHNlID0gMSAqLworICAgIGlmKChufCh5aXNpbnQtMSkpPT0wKSBzID0gLW9uZTsvKiAoLXZlKSoq
KG9kZCBpbnQpICovCisKKyAgICAvKiB8eXwgaXMgaHVnZSAqLworICAgIGlmKGl5PjB4NDFlMDAw
MDApIHsgLyogaWYgfHl8ID4gMioqMzEgKi8KKyAgICAgICAgaWYoaXk+MHg0M2YwMDAwMCl7ICAg
IC8qIGlmIHx5fCA+IDIqKjY0LCBtdXN0IG8vdWZsb3cgKi8KKyAgICAgICAgICAgIGlmKGl4PD0w
eDNmZWZmZmZmKSByZXR1cm4gKGh5PDApPyBodWdlKmh1Z2U6dGlueSp0aW55OworICAgICAgICAg
ICAgaWYoaXg+PTB4M2ZmMDAwMDApIHJldHVybiAoaHk+MCk/IGh1Z2UqaHVnZTp0aW55KnRpbnk7
CisgICAgICAgIH0KKyAgICAgICAgLyogb3Zlci91bmRlcmZsb3cgaWYgeCBpcyBub3QgY2xvc2Ug
dG8gb25lICovCisgICAgICAgIGlmKGl4PDB4M2ZlZmZmZmYpIHJldHVybiAoaHk8MCk/IHMqaHVn
ZSpodWdlOnMqdGlueSp0aW55OworICAgICAgICBpZihpeD4weDNmZjAwMDAwKSByZXR1cm4gKGh5
PjApPyBzKmh1Z2UqaHVnZTpzKnRpbnkqdGlueTsKKyAgICAgICAgLyogbm93IHwxLXh8IGlzIHRp
bnkgPD0gMioqLTIwLCBzdWZmaWNlIHRvIGNvbXB1dGUKKyAgICAgICAgIGxvZyh4KSBieSB4LXhe
Mi8yK3heMy8zLXheNC80ICovCisgICAgICAgIHQgPSBheC1vbmU7ICAgICAgICAvKiB0IGhhcyAy
MCB0cmFpbGluZyB6ZXJvcyAqLworICAgICAgICB3ID0gKHQqdCkqKDAuNS10KigwLjMzMzMzMzMz
MzMzMzMzMzMzMzMzMzMtdCowLjI1KSk7CisgICAgICAgIHUgPSBpdmxuMl9oKnQ7ICAgIC8qIGl2
bG4yX2ggaGFzIDIxIHNpZy4gYml0cyAqLworICAgICAgICB2ID0gdCppdmxuMl9sLXcqaXZsbjI7
CisgICAgICAgIHQxID0gdSt2OworICAgICAgICBfX0xPKHQxKSA9IDA7CisgICAgICAgIHQyID0g
di0odDEtdSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNzLHMyLHNfaCxzX2wsdF9o
LHRfbDsKKyAgICAgICAgbiA9IDA7CisgICAgICAgIC8qIHRha2UgY2FyZSBzdWJub3JtYWwgbnVt
YmVyICovCisgICAgICAgIGlmKGl4PDB4MDAxMDAwMDApCisgICAgICAgIHtheCAqPSB0d281Mzsg
biAtPSA1MzsgaXggPSBfX0hJKGF4KTsgfQorICAgICAgICBuICArPSAoKGl4KT4+MjApLTB4M2Zm
OworICAgICAgICBqICA9IGl4JjB4MDAwZmZmZmY7CisgICAgICAgIC8qIGRldGVybWluZSBpbnRl
cnZhbCAqLworICAgICAgICBpeCA9IGp8MHgzZmYwMDAwMDsgICAgICAgIC8qIG5vcm1hbGl6ZSBp
eCAqLworICAgICAgICBpZihqPD0weDM5ODhFKSBrPTA7ICAgICAgICAvKiB8eHw8c3FydCgzLzIp
ICovCisgICAgICAgIGVsc2UgaWYoajwweEJCNjdBKSBrPTE7ICAgIC8qIHx4fDxzcXJ0KDMpICAg
Ki8KKyAgICAgICAgZWxzZSB7az0wO24rPTE7aXggLT0gMHgwMDEwMDAwMDt9CisgICAgICAgIF9f
SEkoYXgpID0gaXg7CisKKyAgICAgICAgLyogY29tcHV0ZSBzcyA9IHNfaCtzX2wgPSAoeC0xKS8o
eCsxKSBvciAoeC0xLjUpLyh4KzEuNSkgKi8KKyAgICAgICAgdSA9IGF4LWJwW2tdOyAgICAgICAg
LyogYnBbMF09MS4wLCBicFsxXT0xLjUgKi8KKyAgICAgICAgdiA9IG9uZS8oYXgrYnBba10pOwor
ICAgICAgICBzcyA9IHUqdjsKKyAgICAgICAgc19oID0gc3M7CisgICAgICAgIF9fTE8oc19oKSA9
IDA7CisgICAgICAgIC8qIHRfaD1heCticFtrXSBIaWdoICovCisgICAgICAgIHRfaCA9IHplcm87
CisgICAgICAgIF9fSEkodF9oKT0oKGl4Pj4xKXwweDIwMDAwMDAwKSsweDAwMDgwMDAwKyhrPDwx
OCk7CisgICAgICAgIHRfbCA9IGF4IC0gKHRfaC1icFtrXSk7CisgICAgICAgIHNfbCA9IHYqKCh1
LXNfaCp0X2gpLXNfaCp0X2wpOworICAgICAgICAvKiBjb21wdXRlIGxvZyhheCkgKi8KKyAgICAg
ICAgczIgPSBzcypzczsKKyAgICAgICAgciA9IHMyKnMyKihMMStzMiooTDIrczIqKEwzK3MyKihM
NCtzMiooTDUrczIqTDYpKSkpKTsKKyAgICAgICAgciArPSBzX2wqKHNfaCtzcyk7CisgICAgICAg
IHMyICA9IHNfaCpzX2g7CisgICAgICAgIHRfaCA9IDMuMCtzMityOworICAgICAgICBfX0xPKHRf
aCkgPSAwOworICAgICAgICB0X2wgPSByLSgodF9oLTMuMCktczIpOworICAgICAgICAvKiB1K3Yg
PSBzcyooMSsuLi4pICovCisgICAgICAgIHUgPSBzX2gqdF9oOworICAgICAgICB2ID0gc19sKnRf
aCt0X2wqc3M7CisgICAgICAgIC8qIDIvKDNsb2cyKSooc3MrLi4uKSAqLworICAgICAgICBwX2gg
PSB1K3Y7CisgICAgICAgIF9fTE8ocF9oKSA9IDA7CisgICAgICAgIHBfbCA9IHYtKHBfaC11KTsK
KyAgICAgICAgel9oID0gY3BfaCpwX2g7ICAgICAgICAvKiBjcF9oK2NwX2wgPSAyLygzKmxvZzIp
ICovCisgICAgICAgIHpfbCA9IGNwX2wqcF9oK3BfbCpjcCtkcF9sW2tdOworICAgICAgICAvKiBs
b2cyKGF4KSA9IChzcysuLikqMi8oMypsb2cyKSA9IG4gKyBkcF9oICsgel9oICsgel9sICovCisg
ICAgICAgIHQgPSAoZG91YmxlKW47CisgICAgICAgIHQxID0gKCgoel9oK3pfbCkrZHBfaFtrXSkr
dCk7CisgICAgICAgIF9fTE8odDEpID0gMDsKKyAgICAgICAgdDIgPSB6X2wtKCgodDEtdCktZHBf
aFtrXSktel9oKTsKKyAgICB9CisKKyAgICAvKiBzcGxpdCB1cCB5IGludG8geTEreTIgYW5kIGNv
bXB1dGUgKHkxK3kyKSoodDErdDIpICovCisgICAgeTEgID0geTsKKyAgICBfX0xPKHkxKSA9IDA7
CisgICAgcF9sID0gKHkteTEpKnQxK3kqdDI7CisgICAgcF9oID0geTEqdDE7CisgICAgeiA9IHBf
bCtwX2g7CisgICAgaiA9IF9fSEkoeik7CisgICAgaSA9IF9fTE8oeik7CisgICAgaWYgKGo+PTB4
NDA5MDAwMDApIHsgICAgICAgICAgICAgICAgLyogeiA+PSAxMDI0ICovCisgICAgICAgIGlmKCgo
ai0weDQwOTAwMDAwKXxpKSE9MCkgICAgICAgICAgICAvKiBpZiB6ID4gMTAyNCAqLworICAgICAg
ICAgICAgcmV0dXJuIHMqaHVnZSpodWdlOyAgICAgICAgICAgIC8qIG92ZXJmbG93ICovCisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgaWYocF9sK292dD56LXBfaCkgcmV0dXJuIHMqaHVnZSpo
dWdlOyAgICAvKiBvdmVyZmxvdyAqLworICAgICAgICB9CisgICAgfSBlbHNlIGlmKChqJjB4N2Zm
ZmZmZmYpPj0weDQwOTBjYzAwICkgeyAgICAvKiB6IDw9IC0xMDc1ICovCisgICAgICAgIGlmKCgo
ai0weGMwOTBjYzAwKXxpKSE9MCkgICAgICAgICAvKiB6IDwgLTEwNzUgKi8KKyAgICAgICAgICAg
IHJldHVybiBzKnRpbnkqdGlueTsgICAgICAgIC8qIHVuZGVyZmxvdyAqLworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGlmKHBfbDw9ei1wX2gpIHJldHVybiBzKnRpbnkqdGlueTsgICAgLyog
dW5kZXJmbG93ICovCisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICAgKiBjb21wdXRlIDIq
KihwX2grcF9sKQorICAgICAqLworICAgIGkgPSBqJjB4N2ZmZmZmZmY7CisgICAgayA9IChpPj4y
MCktMHgzZmY7CisgICAgbiA9IDA7CisgICAgaWYoaT4weDNmZTAwMDAwKSB7ICAgICAgICAvKiBp
ZiB8enwgPiAwLjUsIHNldCBuID0gW3orMC41XSAqLworICAgICAgICBuID0gaisoMHgwMDEwMDAw
MD4+KGsrMSkpOworICAgICAgICBrID0gKChuJjB4N2ZmZmZmZmYpPj4yMCktMHgzZmY7ICAgIC8q
IG5ldyBrIGZvciBuICovCisgICAgICAgIHQgPSB6ZXJvOworICAgICAgICBfX0hJKHQpID0gKG4m
figweDAwMGZmZmZmPj5rKSk7CisgICAgICAgIG4gPSAoKG4mMHgwMDBmZmZmZil8MHgwMDEwMDAw
MCk+PigyMC1rKTsKKyAgICAgICAgaWYoajwwKSBuID0gLW47CisgICAgICAgIHBfaCAtPSB0Owor
ICAgIH0KKyAgICB0ID0gcF9sK3BfaDsKKyAgICBfX0xPKHQpID0gMDsKKyAgICB1ID0gdCpsZzJf
aDsKKyAgICB2ID0gKHBfbC0odC1wX2gpKSpsZzIrdCpsZzJfbDsKKyAgICB6ID0gdSt2OworICAg
IHcgPSB2LSh6LXUpOworICAgIHQgID0geip6OworICAgIHQxICA9IHogLSB0KihQMSt0KihQMit0
KihQMyt0KihQNCt0KlA1KSkpKTsKKyAgICByICA9ICh6KnQxKS8odDEtdHdvKS0odyt6KncpOwor
ICAgIHogID0gb25lLShyLXopOworICAgIGogID0gX19ISSh6KTsKKyAgICBqICs9IChuPDwyMCk7
CisgICAgaWYoKGo+PjIwKTw9MCkgeiA9IGZkbGlibVNjYWxibih6LG4pOyAgICAvKiBzdWJub3Jt
YWwgb3V0cHV0ICovCisgICAgZWxzZSBfX0hJKHopICs9IChuPDwyMCk7CisgICAgcmV0dXJuIHMq
ejsKK30KKworc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc0Rlbm9ybWFsKGRvdWJsZSB4KQor
eworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBzaWduYml0ID0gMHg4MDAwMDAwMDAwMDAwMDAw
VUxMOworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBtaW5Ob3JtYWwgPSAweDAwMDEwMDAwMDAw
MDAwMDBVTEw7CisgICAgcmV0dXJuIChiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHgpICYgfnNpZ25i
aXQpIC0gMSA8IG1pbk5vcm1hbCAtIDE7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wg
aXNFZGdlQ2FzZShkb3VibGUgeCkKK3sKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3Qgc2lnbmJp
dCA9IDB4ODAwMDAwMDAwMDAwMDAwMFVMTDsKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgaW5m
aW5pdHkgPSAweDdmZmZmZmZmZmZmZmZmZmZVTEw7CisgICAgcmV0dXJuIChiaXR3aXNlX2Nhc3Q8
dWludDY0X3Q+KHgpICYgfnNpZ25iaXQpIC0gMSA+PSBpbmZpbml0eSAtIDE7Cit9CisKK3N0YXRp
YyBBTFdBWVNfSU5MSU5FIGRvdWJsZSBtYXRoUG93SW50ZXJuYWwoZG91YmxlIHgsIGRvdWJsZSB5
KQoreworICAgIGlmICghaXNEZW5vcm1hbCh4KSAmJiAhaXNEZW5vcm1hbCh5KSkgeworICAgICAg
ICBkb3VibGUgbGlibVJlc3VsdCA9IHN0ZDo6cG93KHgsIHkpOworICAgICAgICBpZiAobGlibVJl
c3VsdCB8fCBpc0VkZ2VDYXNlKHgpIHx8IGlzRWRnZUNhc2UoeSkpCisgICAgICAgICAgICByZXR1
cm4gbGlibVJlc3VsdDsKKyAgICB9CisgICAgcmV0dXJuIGZkbGlibVBvdyh4LCB5KTsKK30KKwor
I2Vsc2UKKworQUxXQVlTX0lOTElORSBkb3VibGUgbWF0aFBvd0ludGVybmFsKGRvdWJsZSB4LCBk
b3VibGUgeSkKK3sKKyAgICByZXR1cm4gc3RkOjpwb3coeCwgeSk7Cit9CisKKyNlbmRpZgorCitk
b3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRoUG93KGRvdWJsZSB4LCBkb3VibGUgeSkK
K3sKKyAgICBpZiAoc3RkOjppc25hbih5KSkKKyAgICAgICAgcmV0dXJuIFBOYU47CisgICAgaWYg
KHN0ZDo6aXNpbmYoeSkgJiYgZmFicyh4KSA9PSAxKQorICAgICAgICByZXR1cm4gUE5hTjsKKyAg
ICByZXR1cm4gbWF0aFBvd0ludGVybmFsKHgsIHkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZjQ3MDZlYTMyYWM3M2M4OGQ3MGQ1YmQ1MjQzZDQzMjE3ZDU3OTRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aENvbW1vbi5oCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1hdGhDb21tb25faAorI2RlZmluZSBNYXRoQ29tbW9uX2gKKworI2luY2x1ZGUgIkpJVE9w
ZXJhdGlvbnMuaCIKKworI2lmbmRlZiBKSVRfT1BFUkFUSU9OCisjZGVmaW5lIEpJVF9PUEVSQVRJ
T04KKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsKK2RvdWJsZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk1hdGhQb3coZG91YmxlIHgsIGRvdWJsZSB5KSBXVEZfSU5URVJOQUw7Cit9CisKKyNlbmRp
ZiAvLyBNYXRoQ29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5jcHAKaW5kZXggMDM4ZDU1M2FhNTEzOTA3NDBiZjcyZTA5MGJiMjgwMDIxMjhmYTBhMC4u
MjhmZjVjOGQ5Mjc5ZWU1OWU1YjExZTc1MWI5OWI1NGIyZjZmMDM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTIxLDggKzIxLDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNYXRoT2JqZWN0LmgiCiAKLSNpbmNsdWRlICJK
SVRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCisjaW5jbHVkZSAiTWF0aENvbW1v
bi5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlIDx0aW1lLmg+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>