[Git][ghc/ghc][wip/supersven/fix-aarch64-switch-table-jumps] 2 commits: Do not deallocate stack for jump/switch table jumps
Sven Tennie (@supersven)
gitlab at gitlab.haskell.org
Sun Feb 23 10:03:05 UTC 2025
Sven Tennie pushed to branch wip/supersven/fix-aarch64-switch-table-jumps at Glasgow Haskell Compiler / GHC
Commits:
8d8acd94 by Sven Tennie at 2025-02-23T10:57:25+01:00
Do not deallocate stack for jump/switch table jumps
Though the name is misleading, we consider them to be branching. For
branch instructions we do not deallocate (parts of) the stack, but keep
the stack pointer (sp) intact.
- - - - -
b94b0181 by Sven Tennie at 2025-02-23T10:57:25+01:00
Add reproducer for dealloc instructions in switch table jump expressions (#25733)
- - - - -
6 changed files:
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
- + testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
- testsuite/tests/cmm/should_run/all.T
Changes:
=====================================
compiler/GHC/CmmToAsm/AArch64/Instr.hs
=====================================
@@ -550,7 +550,6 @@ allocMoreStack platform slots proc@(CmmProc info lbl live (ListGraph code)) = do
insert_dealloc insn r = case insn of
J _ -> dealloc ++ (insn : r)
- J_TBL {} -> dealloc ++ (insn : r)
ANN _ (J _) -> dealloc ++ (insn : r)
_other | jumpDestsOfInstr insn /= []
-> patchJumpInstr insn retarget : r
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
=====================================
@@ -0,0 +1,12 @@
+{-# LANGUAGE GHCForeignImportPrim #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE UnliftedFFITypes #-}
+
+import Data.Foldable
+import GHC.Exts
+import GHC.Int
+
+foreign import prim "foo" foo :: Int64# -> Int64#
+
+main :: IO ()
+main = for_ [0 .. 9] $ \(I64# x#) -> print $ I64# (foo x#)
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
=====================================
@@ -0,0 +1,50 @@
+0
+0
+0
+6
+0
+2
+0
+4
+0
+0
+Before switch
+Inside branch 0
+Before jump 0
+End :)
+Before switch
+Inside branch 1
+Before jump 1
+End :)
+Before switch
+Inside branch 8
+Before jump 8
+End :)
+Before switch
+Inside default branch
+Before jump default
+End :)
+Before switch
+Inside branch 6
+Before jump 6
+End :)
+Before switch
+Inside branch 7
+Before jump 7
+End :)
+Before switch
+Inside branch 4
+Before jump 4
+End :)
+Before switch
+Inside branch 5
+Before jump 5
+End :)
+Before switch
+Inside branch 2
+Before jump 2
+End :)
+Before switch
+Inside branch 3
+Before jump 3
+End :)
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
=====================================
@@ -0,0 +1,75 @@
+-- | Generates the JumpTableNoStackDealloc test
+--
+-- The test is a reproducer of #25733 where stack spill slots where wrongly
+-- deallocated for switch table jumps. This only happened when the initial
+-- stack (RESERVED_C_STACK_BYTES, 2048 * SIZEOF_LONG, 16k on most 64bit
+-- architectures) was full. I.e. we were breaking the assumptions explained in
+-- Note [extra spill slots].
+--
+-- The strategy of this test is to first fill the C stack by having many local
+-- variables that are used later. This leads to stack spilling. In the broken
+-- implemetation of the CodeGen, the invalid stack pointer led to a
+-- segmentation fault / core dump. Its absence, i.e. a suceessful run of this
+-- test, shows that the stack pointer is intact.
+--
+-- The calculations in this test are pretty randomly choosen: They are only
+-- made to prevent inlining and constant folding.
+--
+-- The real test can be generated by running:
+-- `ghc JumpTableNoStackDeallocGen.hs && ./JumpTableNoStackDeallocGen > JumpTableNoStackDealloc_cmm.cmm`
+module Main where
+
+import Control.Monad
+import Data.List
+
+printVarDecl :: Int -> IO ()
+printVarDecl i = do
+ putStrLn $ " I64 i" ++ show i ++ ";"
+ putStrLn $ " i" ++ show i ++ " = (" ++ show i ++ " " ++ op ++ " x) % 10;"
+ where
+ -- Add some variance. Otherwise, GHC inlines the expressions.
+ op = case i of
+ _
+ | even i -> "+"
+ | odd i -> "-"
+
+addVars :: [Int] -> String
+addVars = opVars "+"
+ where
+ opVars :: String -> [Int] -> String
+ opVars op is = concat $ intersperse op $ map ((++) "i" . show) is
+
+printCase :: Int -> IO ()
+printCase i = do
+ putStrLn $ " case " ++ show i ++ ": {"
+ putStrLn $ " ccall printf(\"Inside branch %d \\n\", " ++ show i ++ ");"
+ putStrLn $ " res = i" ++ show i ++ ";"
+ putStrLn $ " ccall printf(\"Before jump %d \\n\", " ++ show i ++ ");"
+ putStrLn $ " goto END;"
+ putStrLn $ " }"
+
+main :: IO ()
+main = do
+ -- This number depends on the amount of available registers. 2048 works for
+ -- AArch64, adding a bit more to be safe in case an architecture has more
+ -- free fregisters.
+ let varNums = [0 .. 2060]
+ putStrLn "// Generated by JumpTableNoStackDeallocGen.hs\n"
+ putStrLn "#include \"Cmm.h\""
+ putStrLn "foo (I64 x) {"
+ forM_ varNums printVarDecl
+ putStrLn "\n I64 res;"
+ putStrLn " ccall printf(\"Before switch\\n\");"
+ putStrLn $ " switch [0 .. 9] ((" ++ addVars varNums ++ ") % 10) {"
+ forM_ [0 .. 8] printCase
+ putStrLn " default: {"
+ putStrLn " ccall printf(\"Inside default branch\\n\");"
+ putStrLn " res = x * (2 :: I64);"
+ putStrLn " ccall printf(\"Before jump default\\n\");"
+ putStrLn " goto END;"
+ putStrLn " }"
+ putStrLn " }"
+ putStrLn "END:"
+ putStrLn " ccall printf(\"End :) \\n\");"
+ putStrLn $ " return (res);"
+ putStrLn "}"
=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
=====================================
@@ -0,0 +1,4195 @@
+// Generated by JumpTableNoStackDeallocGen.hs
+
+#include "Cmm.h"
+foo (I64 x) {
+ I64 i0;
+ i0 = (0 + x) % 10;
+ I64 i1;
+ i1 = (1 - x) % 10;
+ I64 i2;
+ i2 = (2 + x) % 10;
+ I64 i3;
+ i3 = (3 - x) % 10;
+ I64 i4;
+ i4 = (4 + x) % 10;
+ I64 i5;
+ i5 = (5 - x) % 10;
+ I64 i6;
+ i6 = (6 + x) % 10;
+ I64 i7;
+ i7 = (7 - x) % 10;
+ I64 i8;
+ i8 = (8 + x) % 10;
+ I64 i9;
+ i9 = (9 - x) % 10;
+ I64 i10;
+ i10 = (10 + x) % 10;
+ I64 i11;
+ i11 = (11 - x) % 10;
+ I64 i12;
+ i12 = (12 + x) % 10;
+ I64 i13;
+ i13 = (13 - x) % 10;
+ I64 i14;
+ i14 = (14 + x) % 10;
+ I64 i15;
+ i15 = (15 - x) % 10;
+ I64 i16;
+ i16 = (16 + x) % 10;
+ I64 i17;
+ i17 = (17 - x) % 10;
+ I64 i18;
+ i18 = (18 + x) % 10;
+ I64 i19;
+ i19 = (19 - x) % 10;
+ I64 i20;
+ i20 = (20 + x) % 10;
+ I64 i21;
+ i21 = (21 - x) % 10;
+ I64 i22;
+ i22 = (22 + x) % 10;
+ I64 i23;
+ i23 = (23 - x) % 10;
+ I64 i24;
+ i24 = (24 + x) % 10;
+ I64 i25;
+ i25 = (25 - x) % 10;
+ I64 i26;
+ i26 = (26 + x) % 10;
+ I64 i27;
+ i27 = (27 - x) % 10;
+ I64 i28;
+ i28 = (28 + x) % 10;
+ I64 i29;
+ i29 = (29 - x) % 10;
+ I64 i30;
+ i30 = (30 + x) % 10;
+ I64 i31;
+ i31 = (31 - x) % 10;
+ I64 i32;
+ i32 = (32 + x) % 10;
+ I64 i33;
+ i33 = (33 - x) % 10;
+ I64 i34;
+ i34 = (34 + x) % 10;
+ I64 i35;
+ i35 = (35 - x) % 10;
+ I64 i36;
+ i36 = (36 + x) % 10;
+ I64 i37;
+ i37 = (37 - x) % 10;
+ I64 i38;
+ i38 = (38 + x) % 10;
+ I64 i39;
+ i39 = (39 - x) % 10;
+ I64 i40;
+ i40 = (40 + x) % 10;
+ I64 i41;
+ i41 = (41 - x) % 10;
+ I64 i42;
+ i42 = (42 + x) % 10;
+ I64 i43;
+ i43 = (43 - x) % 10;
+ I64 i44;
+ i44 = (44 + x) % 10;
+ I64 i45;
+ i45 = (45 - x) % 10;
+ I64 i46;
+ i46 = (46 + x) % 10;
+ I64 i47;
+ i47 = (47 - x) % 10;
+ I64 i48;
+ i48 = (48 + x) % 10;
+ I64 i49;
+ i49 = (49 - x) % 10;
+ I64 i50;
+ i50 = (50 + x) % 10;
+ I64 i51;
+ i51 = (51 - x) % 10;
+ I64 i52;
+ i52 = (52 + x) % 10;
+ I64 i53;
+ i53 = (53 - x) % 10;
+ I64 i54;
+ i54 = (54 + x) % 10;
+ I64 i55;
+ i55 = (55 - x) % 10;
+ I64 i56;
+ i56 = (56 + x) % 10;
+ I64 i57;
+ i57 = (57 - x) % 10;
+ I64 i58;
+ i58 = (58 + x) % 10;
+ I64 i59;
+ i59 = (59 - x) % 10;
+ I64 i60;
+ i60 = (60 + x) % 10;
+ I64 i61;
+ i61 = (61 - x) % 10;
+ I64 i62;
+ i62 = (62 + x) % 10;
+ I64 i63;
+ i63 = (63 - x) % 10;
+ I64 i64;
+ i64 = (64 + x) % 10;
+ I64 i65;
+ i65 = (65 - x) % 10;
+ I64 i66;
+ i66 = (66 + x) % 10;
+ I64 i67;
+ i67 = (67 - x) % 10;
+ I64 i68;
+ i68 = (68 + x) % 10;
+ I64 i69;
+ i69 = (69 - x) % 10;
+ I64 i70;
+ i70 = (70 + x) % 10;
+ I64 i71;
+ i71 = (71 - x) % 10;
+ I64 i72;
+ i72 = (72 + x) % 10;
+ I64 i73;
+ i73 = (73 - x) % 10;
+ I64 i74;
+ i74 = (74 + x) % 10;
+ I64 i75;
+ i75 = (75 - x) % 10;
+ I64 i76;
+ i76 = (76 + x) % 10;
+ I64 i77;
+ i77 = (77 - x) % 10;
+ I64 i78;
+ i78 = (78 + x) % 10;
+ I64 i79;
+ i79 = (79 - x) % 10;
+ I64 i80;
+ i80 = (80 + x) % 10;
+ I64 i81;
+ i81 = (81 - x) % 10;
+ I64 i82;
+ i82 = (82 + x) % 10;
+ I64 i83;
+ i83 = (83 - x) % 10;
+ I64 i84;
+ i84 = (84 + x) % 10;
+ I64 i85;
+ i85 = (85 - x) % 10;
+ I64 i86;
+ i86 = (86 + x) % 10;
+ I64 i87;
+ i87 = (87 - x) % 10;
+ I64 i88;
+ i88 = (88 + x) % 10;
+ I64 i89;
+ i89 = (89 - x) % 10;
+ I64 i90;
+ i90 = (90 + x) % 10;
+ I64 i91;
+ i91 = (91 - x) % 10;
+ I64 i92;
+ i92 = (92 + x) % 10;
+ I64 i93;
+ i93 = (93 - x) % 10;
+ I64 i94;
+ i94 = (94 + x) % 10;
+ I64 i95;
+ i95 = (95 - x) % 10;
+ I64 i96;
+ i96 = (96 + x) % 10;
+ I64 i97;
+ i97 = (97 - x) % 10;
+ I64 i98;
+ i98 = (98 + x) % 10;
+ I64 i99;
+ i99 = (99 - x) % 10;
+ I64 i100;
+ i100 = (100 + x) % 10;
+ I64 i101;
+ i101 = (101 - x) % 10;
+ I64 i102;
+ i102 = (102 + x) % 10;
+ I64 i103;
+ i103 = (103 - x) % 10;
+ I64 i104;
+ i104 = (104 + x) % 10;
+ I64 i105;
+ i105 = (105 - x) % 10;
+ I64 i106;
+ i106 = (106 + x) % 10;
+ I64 i107;
+ i107 = (107 - x) % 10;
+ I64 i108;
+ i108 = (108 + x) % 10;
+ I64 i109;
+ i109 = (109 - x) % 10;
+ I64 i110;
+ i110 = (110 + x) % 10;
+ I64 i111;
+ i111 = (111 - x) % 10;
+ I64 i112;
+ i112 = (112 + x) % 10;
+ I64 i113;
+ i113 = (113 - x) % 10;
+ I64 i114;
+ i114 = (114 + x) % 10;
+ I64 i115;
+ i115 = (115 - x) % 10;
+ I64 i116;
+ i116 = (116 + x) % 10;
+ I64 i117;
+ i117 = (117 - x) % 10;
+ I64 i118;
+ i118 = (118 + x) % 10;
+ I64 i119;
+ i119 = (119 - x) % 10;
+ I64 i120;
+ i120 = (120 + x) % 10;
+ I64 i121;
+ i121 = (121 - x) % 10;
+ I64 i122;
+ i122 = (122 + x) % 10;
+ I64 i123;
+ i123 = (123 - x) % 10;
+ I64 i124;
+ i124 = (124 + x) % 10;
+ I64 i125;
+ i125 = (125 - x) % 10;
+ I64 i126;
+ i126 = (126 + x) % 10;
+ I64 i127;
+ i127 = (127 - x) % 10;
+ I64 i128;
+ i128 = (128 + x) % 10;
+ I64 i129;
+ i129 = (129 - x) % 10;
+ I64 i130;
+ i130 = (130 + x) % 10;
+ I64 i131;
+ i131 = (131 - x) % 10;
+ I64 i132;
+ i132 = (132 + x) % 10;
+ I64 i133;
+ i133 = (133 - x) % 10;
+ I64 i134;
+ i134 = (134 + x) % 10;
+ I64 i135;
+ i135 = (135 - x) % 10;
+ I64 i136;
+ i136 = (136 + x) % 10;
+ I64 i137;
+ i137 = (137 - x) % 10;
+ I64 i138;
+ i138 = (138 + x) % 10;
+ I64 i139;
+ i139 = (139 - x) % 10;
+ I64 i140;
+ i140 = (140 + x) % 10;
+ I64 i141;
+ i141 = (141 - x) % 10;
+ I64 i142;
+ i142 = (142 + x) % 10;
+ I64 i143;
+ i143 = (143 - x) % 10;
+ I64 i144;
+ i144 = (144 + x) % 10;
+ I64 i145;
+ i145 = (145 - x) % 10;
+ I64 i146;
+ i146 = (146 + x) % 10;
+ I64 i147;
+ i147 = (147 - x) % 10;
+ I64 i148;
+ i148 = (148 + x) % 10;
+ I64 i149;
+ i149 = (149 - x) % 10;
+ I64 i150;
+ i150 = (150 + x) % 10;
+ I64 i151;
+ i151 = (151 - x) % 10;
+ I64 i152;
+ i152 = (152 + x) % 10;
+ I64 i153;
+ i153 = (153 - x) % 10;
+ I64 i154;
+ i154 = (154 + x) % 10;
+ I64 i155;
+ i155 = (155 - x) % 10;
+ I64 i156;
+ i156 = (156 + x) % 10;
+ I64 i157;
+ i157 = (157 - x) % 10;
+ I64 i158;
+ i158 = (158 + x) % 10;
+ I64 i159;
+ i159 = (159 - x) % 10;
+ I64 i160;
+ i160 = (160 + x) % 10;
+ I64 i161;
+ i161 = (161 - x) % 10;
+ I64 i162;
+ i162 = (162 + x) % 10;
+ I64 i163;
+ i163 = (163 - x) % 10;
+ I64 i164;
+ i164 = (164 + x) % 10;
+ I64 i165;
+ i165 = (165 - x) % 10;
+ I64 i166;
+ i166 = (166 + x) % 10;
+ I64 i167;
+ i167 = (167 - x) % 10;
+ I64 i168;
+ i168 = (168 + x) % 10;
+ I64 i169;
+ i169 = (169 - x) % 10;
+ I64 i170;
+ i170 = (170 + x) % 10;
+ I64 i171;
+ i171 = (171 - x) % 10;
+ I64 i172;
+ i172 = (172 + x) % 10;
+ I64 i173;
+ i173 = (173 - x) % 10;
+ I64 i174;
+ i174 = (174 + x) % 10;
+ I64 i175;
+ i175 = (175 - x) % 10;
+ I64 i176;
+ i176 = (176 + x) % 10;
+ I64 i177;
+ i177 = (177 - x) % 10;
+ I64 i178;
+ i178 = (178 + x) % 10;
+ I64 i179;
+ i179 = (179 - x) % 10;
+ I64 i180;
+ i180 = (180 + x) % 10;
+ I64 i181;
+ i181 = (181 - x) % 10;
+ I64 i182;
+ i182 = (182 + x) % 10;
+ I64 i183;
+ i183 = (183 - x) % 10;
+ I64 i184;
+ i184 = (184 + x) % 10;
+ I64 i185;
+ i185 = (185 - x) % 10;
+ I64 i186;
+ i186 = (186 + x) % 10;
+ I64 i187;
+ i187 = (187 - x) % 10;
+ I64 i188;
+ i188 = (188 + x) % 10;
+ I64 i189;
+ i189 = (189 - x) % 10;
+ I64 i190;
+ i190 = (190 + x) % 10;
+ I64 i191;
+ i191 = (191 - x) % 10;
+ I64 i192;
+ i192 = (192 + x) % 10;
+ I64 i193;
+ i193 = (193 - x) % 10;
+ I64 i194;
+ i194 = (194 + x) % 10;
+ I64 i195;
+ i195 = (195 - x) % 10;
+ I64 i196;
+ i196 = (196 + x) % 10;
+ I64 i197;
+ i197 = (197 - x) % 10;
+ I64 i198;
+ i198 = (198 + x) % 10;
+ I64 i199;
+ i199 = (199 - x) % 10;
+ I64 i200;
+ i200 = (200 + x) % 10;
+ I64 i201;
+ i201 = (201 - x) % 10;
+ I64 i202;
+ i202 = (202 + x) % 10;
+ I64 i203;
+ i203 = (203 - x) % 10;
+ I64 i204;
+ i204 = (204 + x) % 10;
+ I64 i205;
+ i205 = (205 - x) % 10;
+ I64 i206;
+ i206 = (206 + x) % 10;
+ I64 i207;
+ i207 = (207 - x) % 10;
+ I64 i208;
+ i208 = (208 + x) % 10;
+ I64 i209;
+ i209 = (209 - x) % 10;
+ I64 i210;
+ i210 = (210 + x) % 10;
+ I64 i211;
+ i211 = (211 - x) % 10;
+ I64 i212;
+ i212 = (212 + x) % 10;
+ I64 i213;
+ i213 = (213 - x) % 10;
+ I64 i214;
+ i214 = (214 + x) % 10;
+ I64 i215;
+ i215 = (215 - x) % 10;
+ I64 i216;
+ i216 = (216 + x) % 10;
+ I64 i217;
+ i217 = (217 - x) % 10;
+ I64 i218;
+ i218 = (218 + x) % 10;
+ I64 i219;
+ i219 = (219 - x) % 10;
+ I64 i220;
+ i220 = (220 + x) % 10;
+ I64 i221;
+ i221 = (221 - x) % 10;
+ I64 i222;
+ i222 = (222 + x) % 10;
+ I64 i223;
+ i223 = (223 - x) % 10;
+ I64 i224;
+ i224 = (224 + x) % 10;
+ I64 i225;
+ i225 = (225 - x) % 10;
+ I64 i226;
+ i226 = (226 + x) % 10;
+ I64 i227;
+ i227 = (227 - x) % 10;
+ I64 i228;
+ i228 = (228 + x) % 10;
+ I64 i229;
+ i229 = (229 - x) % 10;
+ I64 i230;
+ i230 = (230 + x) % 10;
+ I64 i231;
+ i231 = (231 - x) % 10;
+ I64 i232;
+ i232 = (232 + x) % 10;
+ I64 i233;
+ i233 = (233 - x) % 10;
+ I64 i234;
+ i234 = (234 + x) % 10;
+ I64 i235;
+ i235 = (235 - x) % 10;
+ I64 i236;
+ i236 = (236 + x) % 10;
+ I64 i237;
+ i237 = (237 - x) % 10;
+ I64 i238;
+ i238 = (238 + x) % 10;
+ I64 i239;
+ i239 = (239 - x) % 10;
+ I64 i240;
+ i240 = (240 + x) % 10;
+ I64 i241;
+ i241 = (241 - x) % 10;
+ I64 i242;
+ i242 = (242 + x) % 10;
+ I64 i243;
+ i243 = (243 - x) % 10;
+ I64 i244;
+ i244 = (244 + x) % 10;
+ I64 i245;
+ i245 = (245 - x) % 10;
+ I64 i246;
+ i246 = (246 + x) % 10;
+ I64 i247;
+ i247 = (247 - x) % 10;
+ I64 i248;
+ i248 = (248 + x) % 10;
+ I64 i249;
+ i249 = (249 - x) % 10;
+ I64 i250;
+ i250 = (250 + x) % 10;
+ I64 i251;
+ i251 = (251 - x) % 10;
+ I64 i252;
+ i252 = (252 + x) % 10;
+ I64 i253;
+ i253 = (253 - x) % 10;
+ I64 i254;
+ i254 = (254 + x) % 10;
+ I64 i255;
+ i255 = (255 - x) % 10;
+ I64 i256;
+ i256 = (256 + x) % 10;
+ I64 i257;
+ i257 = (257 - x) % 10;
+ I64 i258;
+ i258 = (258 + x) % 10;
+ I64 i259;
+ i259 = (259 - x) % 10;
+ I64 i260;
+ i260 = (260 + x) % 10;
+ I64 i261;
+ i261 = (261 - x) % 10;
+ I64 i262;
+ i262 = (262 + x) % 10;
+ I64 i263;
+ i263 = (263 - x) % 10;
+ I64 i264;
+ i264 = (264 + x) % 10;
+ I64 i265;
+ i265 = (265 - x) % 10;
+ I64 i266;
+ i266 = (266 + x) % 10;
+ I64 i267;
+ i267 = (267 - x) % 10;
+ I64 i268;
+ i268 = (268 + x) % 10;
+ I64 i269;
+ i269 = (269 - x) % 10;
+ I64 i270;
+ i270 = (270 + x) % 10;
+ I64 i271;
+ i271 = (271 - x) % 10;
+ I64 i272;
+ i272 = (272 + x) % 10;
+ I64 i273;
+ i273 = (273 - x) % 10;
+ I64 i274;
+ i274 = (274 + x) % 10;
+ I64 i275;
+ i275 = (275 - x) % 10;
+ I64 i276;
+ i276 = (276 + x) % 10;
+ I64 i277;
+ i277 = (277 - x) % 10;
+ I64 i278;
+ i278 = (278 + x) % 10;
+ I64 i279;
+ i279 = (279 - x) % 10;
+ I64 i280;
+ i280 = (280 + x) % 10;
+ I64 i281;
+ i281 = (281 - x) % 10;
+ I64 i282;
+ i282 = (282 + x) % 10;
+ I64 i283;
+ i283 = (283 - x) % 10;
+ I64 i284;
+ i284 = (284 + x) % 10;
+ I64 i285;
+ i285 = (285 - x) % 10;
+ I64 i286;
+ i286 = (286 + x) % 10;
+ I64 i287;
+ i287 = (287 - x) % 10;
+ I64 i288;
+ i288 = (288 + x) % 10;
+ I64 i289;
+ i289 = (289 - x) % 10;
+ I64 i290;
+ i290 = (290 + x) % 10;
+ I64 i291;
+ i291 = (291 - x) % 10;
+ I64 i292;
+ i292 = (292 + x) % 10;
+ I64 i293;
+ i293 = (293 - x) % 10;
+ I64 i294;
+ i294 = (294 + x) % 10;
+ I64 i295;
+ i295 = (295 - x) % 10;
+ I64 i296;
+ i296 = (296 + x) % 10;
+ I64 i297;
+ i297 = (297 - x) % 10;
+ I64 i298;
+ i298 = (298 + x) % 10;
+ I64 i299;
+ i299 = (299 - x) % 10;
+ I64 i300;
+ i300 = (300 + x) % 10;
+ I64 i301;
+ i301 = (301 - x) % 10;
+ I64 i302;
+ i302 = (302 + x) % 10;
+ I64 i303;
+ i303 = (303 - x) % 10;
+ I64 i304;
+ i304 = (304 + x) % 10;
+ I64 i305;
+ i305 = (305 - x) % 10;
+ I64 i306;
+ i306 = (306 + x) % 10;
+ I64 i307;
+ i307 = (307 - x) % 10;
+ I64 i308;
+ i308 = (308 + x) % 10;
+ I64 i309;
+ i309 = (309 - x) % 10;
+ I64 i310;
+ i310 = (310 + x) % 10;
+ I64 i311;
+ i311 = (311 - x) % 10;
+ I64 i312;
+ i312 = (312 + x) % 10;
+ I64 i313;
+ i313 = (313 - x) % 10;
+ I64 i314;
+ i314 = (314 + x) % 10;
+ I64 i315;
+ i315 = (315 - x) % 10;
+ I64 i316;
+ i316 = (316 + x) % 10;
+ I64 i317;
+ i317 = (317 - x) % 10;
+ I64 i318;
+ i318 = (318 + x) % 10;
+ I64 i319;
+ i319 = (319 - x) % 10;
+ I64 i320;
+ i320 = (320 + x) % 10;
+ I64 i321;
+ i321 = (321 - x) % 10;
+ I64 i322;
+ i322 = (322 + x) % 10;
+ I64 i323;
+ i323 = (323 - x) % 10;
+ I64 i324;
+ i324 = (324 + x) % 10;
+ I64 i325;
+ i325 = (325 - x) % 10;
+ I64 i326;
+ i326 = (326 + x) % 10;
+ I64 i327;
+ i327 = (327 - x) % 10;
+ I64 i328;
+ i328 = (328 + x) % 10;
+ I64 i329;
+ i329 = (329 - x) % 10;
+ I64 i330;
+ i330 = (330 + x) % 10;
+ I64 i331;
+ i331 = (331 - x) % 10;
+ I64 i332;
+ i332 = (332 + x) % 10;
+ I64 i333;
+ i333 = (333 - x) % 10;
+ I64 i334;
+ i334 = (334 + x) % 10;
+ I64 i335;
+ i335 = (335 - x) % 10;
+ I64 i336;
+ i336 = (336 + x) % 10;
+ I64 i337;
+ i337 = (337 - x) % 10;
+ I64 i338;
+ i338 = (338 + x) % 10;
+ I64 i339;
+ i339 = (339 - x) % 10;
+ I64 i340;
+ i340 = (340 + x) % 10;
+ I64 i341;
+ i341 = (341 - x) % 10;
+ I64 i342;
+ i342 = (342 + x) % 10;
+ I64 i343;
+ i343 = (343 - x) % 10;
+ I64 i344;
+ i344 = (344 + x) % 10;
+ I64 i345;
+ i345 = (345 - x) % 10;
+ I64 i346;
+ i346 = (346 + x) % 10;
+ I64 i347;
+ i347 = (347 - x) % 10;
+ I64 i348;
+ i348 = (348 + x) % 10;
+ I64 i349;
+ i349 = (349 - x) % 10;
+ I64 i350;
+ i350 = (350 + x) % 10;
+ I64 i351;
+ i351 = (351 - x) % 10;
+ I64 i352;
+ i352 = (352 + x) % 10;
+ I64 i353;
+ i353 = (353 - x) % 10;
+ I64 i354;
+ i354 = (354 + x) % 10;
+ I64 i355;
+ i355 = (355 - x) % 10;
+ I64 i356;
+ i356 = (356 + x) % 10;
+ I64 i357;
+ i357 = (357 - x) % 10;
+ I64 i358;
+ i358 = (358 + x) % 10;
+ I64 i359;
+ i359 = (359 - x) % 10;
+ I64 i360;
+ i360 = (360 + x) % 10;
+ I64 i361;
+ i361 = (361 - x) % 10;
+ I64 i362;
+ i362 = (362 + x) % 10;
+ I64 i363;
+ i363 = (363 - x) % 10;
+ I64 i364;
+ i364 = (364 + x) % 10;
+ I64 i365;
+ i365 = (365 - x) % 10;
+ I64 i366;
+ i366 = (366 + x) % 10;
+ I64 i367;
+ i367 = (367 - x) % 10;
+ I64 i368;
+ i368 = (368 + x) % 10;
+ I64 i369;
+ i369 = (369 - x) % 10;
+ I64 i370;
+ i370 = (370 + x) % 10;
+ I64 i371;
+ i371 = (371 - x) % 10;
+ I64 i372;
+ i372 = (372 + x) % 10;
+ I64 i373;
+ i373 = (373 - x) % 10;
+ I64 i374;
+ i374 = (374 + x) % 10;
+ I64 i375;
+ i375 = (375 - x) % 10;
+ I64 i376;
+ i376 = (376 + x) % 10;
+ I64 i377;
+ i377 = (377 - x) % 10;
+ I64 i378;
+ i378 = (378 + x) % 10;
+ I64 i379;
+ i379 = (379 - x) % 10;
+ I64 i380;
+ i380 = (380 + x) % 10;
+ I64 i381;
+ i381 = (381 - x) % 10;
+ I64 i382;
+ i382 = (382 + x) % 10;
+ I64 i383;
+ i383 = (383 - x) % 10;
+ I64 i384;
+ i384 = (384 + x) % 10;
+ I64 i385;
+ i385 = (385 - x) % 10;
+ I64 i386;
+ i386 = (386 + x) % 10;
+ I64 i387;
+ i387 = (387 - x) % 10;
+ I64 i388;
+ i388 = (388 + x) % 10;
+ I64 i389;
+ i389 = (389 - x) % 10;
+ I64 i390;
+ i390 = (390 + x) % 10;
+ I64 i391;
+ i391 = (391 - x) % 10;
+ I64 i392;
+ i392 = (392 + x) % 10;
+ I64 i393;
+ i393 = (393 - x) % 10;
+ I64 i394;
+ i394 = (394 + x) % 10;
+ I64 i395;
+ i395 = (395 - x) % 10;
+ I64 i396;
+ i396 = (396 + x) % 10;
+ I64 i397;
+ i397 = (397 - x) % 10;
+ I64 i398;
+ i398 = (398 + x) % 10;
+ I64 i399;
+ i399 = (399 - x) % 10;
+ I64 i400;
+ i400 = (400 + x) % 10;
+ I64 i401;
+ i401 = (401 - x) % 10;
+ I64 i402;
+ i402 = (402 + x) % 10;
+ I64 i403;
+ i403 = (403 - x) % 10;
+ I64 i404;
+ i404 = (404 + x) % 10;
+ I64 i405;
+ i405 = (405 - x) % 10;
+ I64 i406;
+ i406 = (406 + x) % 10;
+ I64 i407;
+ i407 = (407 - x) % 10;
+ I64 i408;
+ i408 = (408 + x) % 10;
+ I64 i409;
+ i409 = (409 - x) % 10;
+ I64 i410;
+ i410 = (410 + x) % 10;
+ I64 i411;
+ i411 = (411 - x) % 10;
+ I64 i412;
+ i412 = (412 + x) % 10;
+ I64 i413;
+ i413 = (413 - x) % 10;
+ I64 i414;
+ i414 = (414 + x) % 10;
+ I64 i415;
+ i415 = (415 - x) % 10;
+ I64 i416;
+ i416 = (416 + x) % 10;
+ I64 i417;
+ i417 = (417 - x) % 10;
+ I64 i418;
+ i418 = (418 + x) % 10;
+ I64 i419;
+ i419 = (419 - x) % 10;
+ I64 i420;
+ i420 = (420 + x) % 10;
+ I64 i421;
+ i421 = (421 - x) % 10;
+ I64 i422;
+ i422 = (422 + x) % 10;
+ I64 i423;
+ i423 = (423 - x) % 10;
+ I64 i424;
+ i424 = (424 + x) % 10;
+ I64 i425;
+ i425 = (425 - x) % 10;
+ I64 i426;
+ i426 = (426 + x) % 10;
+ I64 i427;
+ i427 = (427 - x) % 10;
+ I64 i428;
+ i428 = (428 + x) % 10;
+ I64 i429;
+ i429 = (429 - x) % 10;
+ I64 i430;
+ i430 = (430 + x) % 10;
+ I64 i431;
+ i431 = (431 - x) % 10;
+ I64 i432;
+ i432 = (432 + x) % 10;
+ I64 i433;
+ i433 = (433 - x) % 10;
+ I64 i434;
+ i434 = (434 + x) % 10;
+ I64 i435;
+ i435 = (435 - x) % 10;
+ I64 i436;
+ i436 = (436 + x) % 10;
+ I64 i437;
+ i437 = (437 - x) % 10;
+ I64 i438;
+ i438 = (438 + x) % 10;
+ I64 i439;
+ i439 = (439 - x) % 10;
+ I64 i440;
+ i440 = (440 + x) % 10;
+ I64 i441;
+ i441 = (441 - x) % 10;
+ I64 i442;
+ i442 = (442 + x) % 10;
+ I64 i443;
+ i443 = (443 - x) % 10;
+ I64 i444;
+ i444 = (444 + x) % 10;
+ I64 i445;
+ i445 = (445 - x) % 10;
+ I64 i446;
+ i446 = (446 + x) % 10;
+ I64 i447;
+ i447 = (447 - x) % 10;
+ I64 i448;
+ i448 = (448 + x) % 10;
+ I64 i449;
+ i449 = (449 - x) % 10;
+ I64 i450;
+ i450 = (450 + x) % 10;
+ I64 i451;
+ i451 = (451 - x) % 10;
+ I64 i452;
+ i452 = (452 + x) % 10;
+ I64 i453;
+ i453 = (453 - x) % 10;
+ I64 i454;
+ i454 = (454 + x) % 10;
+ I64 i455;
+ i455 = (455 - x) % 10;
+ I64 i456;
+ i456 = (456 + x) % 10;
+ I64 i457;
+ i457 = (457 - x) % 10;
+ I64 i458;
+ i458 = (458 + x) % 10;
+ I64 i459;
+ i459 = (459 - x) % 10;
+ I64 i460;
+ i460 = (460 + x) % 10;
+ I64 i461;
+ i461 = (461 - x) % 10;
+ I64 i462;
+ i462 = (462 + x) % 10;
+ I64 i463;
+ i463 = (463 - x) % 10;
+ I64 i464;
+ i464 = (464 + x) % 10;
+ I64 i465;
+ i465 = (465 - x) % 10;
+ I64 i466;
+ i466 = (466 + x) % 10;
+ I64 i467;
+ i467 = (467 - x) % 10;
+ I64 i468;
+ i468 = (468 + x) % 10;
+ I64 i469;
+ i469 = (469 - x) % 10;
+ I64 i470;
+ i470 = (470 + x) % 10;
+ I64 i471;
+ i471 = (471 - x) % 10;
+ I64 i472;
+ i472 = (472 + x) % 10;
+ I64 i473;
+ i473 = (473 - x) % 10;
+ I64 i474;
+ i474 = (474 + x) % 10;
+ I64 i475;
+ i475 = (475 - x) % 10;
+ I64 i476;
+ i476 = (476 + x) % 10;
+ I64 i477;
+ i477 = (477 - x) % 10;
+ I64 i478;
+ i478 = (478 + x) % 10;
+ I64 i479;
+ i479 = (479 - x) % 10;
+ I64 i480;
+ i480 = (480 + x) % 10;
+ I64 i481;
+ i481 = (481 - x) % 10;
+ I64 i482;
+ i482 = (482 + x) % 10;
+ I64 i483;
+ i483 = (483 - x) % 10;
+ I64 i484;
+ i484 = (484 + x) % 10;
+ I64 i485;
+ i485 = (485 - x) % 10;
+ I64 i486;
+ i486 = (486 + x) % 10;
+ I64 i487;
+ i487 = (487 - x) % 10;
+ I64 i488;
+ i488 = (488 + x) % 10;
+ I64 i489;
+ i489 = (489 - x) % 10;
+ I64 i490;
+ i490 = (490 + x) % 10;
+ I64 i491;
+ i491 = (491 - x) % 10;
+ I64 i492;
+ i492 = (492 + x) % 10;
+ I64 i493;
+ i493 = (493 - x) % 10;
+ I64 i494;
+ i494 = (494 + x) % 10;
+ I64 i495;
+ i495 = (495 - x) % 10;
+ I64 i496;
+ i496 = (496 + x) % 10;
+ I64 i497;
+ i497 = (497 - x) % 10;
+ I64 i498;
+ i498 = (498 + x) % 10;
+ I64 i499;
+ i499 = (499 - x) % 10;
+ I64 i500;
+ i500 = (500 + x) % 10;
+ I64 i501;
+ i501 = (501 - x) % 10;
+ I64 i502;
+ i502 = (502 + x) % 10;
+ I64 i503;
+ i503 = (503 - x) % 10;
+ I64 i504;
+ i504 = (504 + x) % 10;
+ I64 i505;
+ i505 = (505 - x) % 10;
+ I64 i506;
+ i506 = (506 + x) % 10;
+ I64 i507;
+ i507 = (507 - x) % 10;
+ I64 i508;
+ i508 = (508 + x) % 10;
+ I64 i509;
+ i509 = (509 - x) % 10;
+ I64 i510;
+ i510 = (510 + x) % 10;
+ I64 i511;
+ i511 = (511 - x) % 10;
+ I64 i512;
+ i512 = (512 + x) % 10;
+ I64 i513;
+ i513 = (513 - x) % 10;
+ I64 i514;
+ i514 = (514 + x) % 10;
+ I64 i515;
+ i515 = (515 - x) % 10;
+ I64 i516;
+ i516 = (516 + x) % 10;
+ I64 i517;
+ i517 = (517 - x) % 10;
+ I64 i518;
+ i518 = (518 + x) % 10;
+ I64 i519;
+ i519 = (519 - x) % 10;
+ I64 i520;
+ i520 = (520 + x) % 10;
+ I64 i521;
+ i521 = (521 - x) % 10;
+ I64 i522;
+ i522 = (522 + x) % 10;
+ I64 i523;
+ i523 = (523 - x) % 10;
+ I64 i524;
+ i524 = (524 + x) % 10;
+ I64 i525;
+ i525 = (525 - x) % 10;
+ I64 i526;
+ i526 = (526 + x) % 10;
+ I64 i527;
+ i527 = (527 - x) % 10;
+ I64 i528;
+ i528 = (528 + x) % 10;
+ I64 i529;
+ i529 = (529 - x) % 10;
+ I64 i530;
+ i530 = (530 + x) % 10;
+ I64 i531;
+ i531 = (531 - x) % 10;
+ I64 i532;
+ i532 = (532 + x) % 10;
+ I64 i533;
+ i533 = (533 - x) % 10;
+ I64 i534;
+ i534 = (534 + x) % 10;
+ I64 i535;
+ i535 = (535 - x) % 10;
+ I64 i536;
+ i536 = (536 + x) % 10;
+ I64 i537;
+ i537 = (537 - x) % 10;
+ I64 i538;
+ i538 = (538 + x) % 10;
+ I64 i539;
+ i539 = (539 - x) % 10;
+ I64 i540;
+ i540 = (540 + x) % 10;
+ I64 i541;
+ i541 = (541 - x) % 10;
+ I64 i542;
+ i542 = (542 + x) % 10;
+ I64 i543;
+ i543 = (543 - x) % 10;
+ I64 i544;
+ i544 = (544 + x) % 10;
+ I64 i545;
+ i545 = (545 - x) % 10;
+ I64 i546;
+ i546 = (546 + x) % 10;
+ I64 i547;
+ i547 = (547 - x) % 10;
+ I64 i548;
+ i548 = (548 + x) % 10;
+ I64 i549;
+ i549 = (549 - x) % 10;
+ I64 i550;
+ i550 = (550 + x) % 10;
+ I64 i551;
+ i551 = (551 - x) % 10;
+ I64 i552;
+ i552 = (552 + x) % 10;
+ I64 i553;
+ i553 = (553 - x) % 10;
+ I64 i554;
+ i554 = (554 + x) % 10;
+ I64 i555;
+ i555 = (555 - x) % 10;
+ I64 i556;
+ i556 = (556 + x) % 10;
+ I64 i557;
+ i557 = (557 - x) % 10;
+ I64 i558;
+ i558 = (558 + x) % 10;
+ I64 i559;
+ i559 = (559 - x) % 10;
+ I64 i560;
+ i560 = (560 + x) % 10;
+ I64 i561;
+ i561 = (561 - x) % 10;
+ I64 i562;
+ i562 = (562 + x) % 10;
+ I64 i563;
+ i563 = (563 - x) % 10;
+ I64 i564;
+ i564 = (564 + x) % 10;
+ I64 i565;
+ i565 = (565 - x) % 10;
+ I64 i566;
+ i566 = (566 + x) % 10;
+ I64 i567;
+ i567 = (567 - x) % 10;
+ I64 i568;
+ i568 = (568 + x) % 10;
+ I64 i569;
+ i569 = (569 - x) % 10;
+ I64 i570;
+ i570 = (570 + x) % 10;
+ I64 i571;
+ i571 = (571 - x) % 10;
+ I64 i572;
+ i572 = (572 + x) % 10;
+ I64 i573;
+ i573 = (573 - x) % 10;
+ I64 i574;
+ i574 = (574 + x) % 10;
+ I64 i575;
+ i575 = (575 - x) % 10;
+ I64 i576;
+ i576 = (576 + x) % 10;
+ I64 i577;
+ i577 = (577 - x) % 10;
+ I64 i578;
+ i578 = (578 + x) % 10;
+ I64 i579;
+ i579 = (579 - x) % 10;
+ I64 i580;
+ i580 = (580 + x) % 10;
+ I64 i581;
+ i581 = (581 - x) % 10;
+ I64 i582;
+ i582 = (582 + x) % 10;
+ I64 i583;
+ i583 = (583 - x) % 10;
+ I64 i584;
+ i584 = (584 + x) % 10;
+ I64 i585;
+ i585 = (585 - x) % 10;
+ I64 i586;
+ i586 = (586 + x) % 10;
+ I64 i587;
+ i587 = (587 - x) % 10;
+ I64 i588;
+ i588 = (588 + x) % 10;
+ I64 i589;
+ i589 = (589 - x) % 10;
+ I64 i590;
+ i590 = (590 + x) % 10;
+ I64 i591;
+ i591 = (591 - x) % 10;
+ I64 i592;
+ i592 = (592 + x) % 10;
+ I64 i593;
+ i593 = (593 - x) % 10;
+ I64 i594;
+ i594 = (594 + x) % 10;
+ I64 i595;
+ i595 = (595 - x) % 10;
+ I64 i596;
+ i596 = (596 + x) % 10;
+ I64 i597;
+ i597 = (597 - x) % 10;
+ I64 i598;
+ i598 = (598 + x) % 10;
+ I64 i599;
+ i599 = (599 - x) % 10;
+ I64 i600;
+ i600 = (600 + x) % 10;
+ I64 i601;
+ i601 = (601 - x) % 10;
+ I64 i602;
+ i602 = (602 + x) % 10;
+ I64 i603;
+ i603 = (603 - x) % 10;
+ I64 i604;
+ i604 = (604 + x) % 10;
+ I64 i605;
+ i605 = (605 - x) % 10;
+ I64 i606;
+ i606 = (606 + x) % 10;
+ I64 i607;
+ i607 = (607 - x) % 10;
+ I64 i608;
+ i608 = (608 + x) % 10;
+ I64 i609;
+ i609 = (609 - x) % 10;
+ I64 i610;
+ i610 = (610 + x) % 10;
+ I64 i611;
+ i611 = (611 - x) % 10;
+ I64 i612;
+ i612 = (612 + x) % 10;
+ I64 i613;
+ i613 = (613 - x) % 10;
+ I64 i614;
+ i614 = (614 + x) % 10;
+ I64 i615;
+ i615 = (615 - x) % 10;
+ I64 i616;
+ i616 = (616 + x) % 10;
+ I64 i617;
+ i617 = (617 - x) % 10;
+ I64 i618;
+ i618 = (618 + x) % 10;
+ I64 i619;
+ i619 = (619 - x) % 10;
+ I64 i620;
+ i620 = (620 + x) % 10;
+ I64 i621;
+ i621 = (621 - x) % 10;
+ I64 i622;
+ i622 = (622 + x) % 10;
+ I64 i623;
+ i623 = (623 - x) % 10;
+ I64 i624;
+ i624 = (624 + x) % 10;
+ I64 i625;
+ i625 = (625 - x) % 10;
+ I64 i626;
+ i626 = (626 + x) % 10;
+ I64 i627;
+ i627 = (627 - x) % 10;
+ I64 i628;
+ i628 = (628 + x) % 10;
+ I64 i629;
+ i629 = (629 - x) % 10;
+ I64 i630;
+ i630 = (630 + x) % 10;
+ I64 i631;
+ i631 = (631 - x) % 10;
+ I64 i632;
+ i632 = (632 + x) % 10;
+ I64 i633;
+ i633 = (633 - x) % 10;
+ I64 i634;
+ i634 = (634 + x) % 10;
+ I64 i635;
+ i635 = (635 - x) % 10;
+ I64 i636;
+ i636 = (636 + x) % 10;
+ I64 i637;
+ i637 = (637 - x) % 10;
+ I64 i638;
+ i638 = (638 + x) % 10;
+ I64 i639;
+ i639 = (639 - x) % 10;
+ I64 i640;
+ i640 = (640 + x) % 10;
+ I64 i641;
+ i641 = (641 - x) % 10;
+ I64 i642;
+ i642 = (642 + x) % 10;
+ I64 i643;
+ i643 = (643 - x) % 10;
+ I64 i644;
+ i644 = (644 + x) % 10;
+ I64 i645;
+ i645 = (645 - x) % 10;
+ I64 i646;
+ i646 = (646 + x) % 10;
+ I64 i647;
+ i647 = (647 - x) % 10;
+ I64 i648;
+ i648 = (648 + x) % 10;
+ I64 i649;
+ i649 = (649 - x) % 10;
+ I64 i650;
+ i650 = (650 + x) % 10;
+ I64 i651;
+ i651 = (651 - x) % 10;
+ I64 i652;
+ i652 = (652 + x) % 10;
+ I64 i653;
+ i653 = (653 - x) % 10;
+ I64 i654;
+ i654 = (654 + x) % 10;
+ I64 i655;
+ i655 = (655 - x) % 10;
+ I64 i656;
+ i656 = (656 + x) % 10;
+ I64 i657;
+ i657 = (657 - x) % 10;
+ I64 i658;
+ i658 = (658 + x) % 10;
+ I64 i659;
+ i659 = (659 - x) % 10;
+ I64 i660;
+ i660 = (660 + x) % 10;
+ I64 i661;
+ i661 = (661 - x) % 10;
+ I64 i662;
+ i662 = (662 + x) % 10;
+ I64 i663;
+ i663 = (663 - x) % 10;
+ I64 i664;
+ i664 = (664 + x) % 10;
+ I64 i665;
+ i665 = (665 - x) % 10;
+ I64 i666;
+ i666 = (666 + x) % 10;
+ I64 i667;
+ i667 = (667 - x) % 10;
+ I64 i668;
+ i668 = (668 + x) % 10;
+ I64 i669;
+ i669 = (669 - x) % 10;
+ I64 i670;
+ i670 = (670 + x) % 10;
+ I64 i671;
+ i671 = (671 - x) % 10;
+ I64 i672;
+ i672 = (672 + x) % 10;
+ I64 i673;
+ i673 = (673 - x) % 10;
+ I64 i674;
+ i674 = (674 + x) % 10;
+ I64 i675;
+ i675 = (675 - x) % 10;
+ I64 i676;
+ i676 = (676 + x) % 10;
+ I64 i677;
+ i677 = (677 - x) % 10;
+ I64 i678;
+ i678 = (678 + x) % 10;
+ I64 i679;
+ i679 = (679 - x) % 10;
+ I64 i680;
+ i680 = (680 + x) % 10;
+ I64 i681;
+ i681 = (681 - x) % 10;
+ I64 i682;
+ i682 = (682 + x) % 10;
+ I64 i683;
+ i683 = (683 - x) % 10;
+ I64 i684;
+ i684 = (684 + x) % 10;
+ I64 i685;
+ i685 = (685 - x) % 10;
+ I64 i686;
+ i686 = (686 + x) % 10;
+ I64 i687;
+ i687 = (687 - x) % 10;
+ I64 i688;
+ i688 = (688 + x) % 10;
+ I64 i689;
+ i689 = (689 - x) % 10;
+ I64 i690;
+ i690 = (690 + x) % 10;
+ I64 i691;
+ i691 = (691 - x) % 10;
+ I64 i692;
+ i692 = (692 + x) % 10;
+ I64 i693;
+ i693 = (693 - x) % 10;
+ I64 i694;
+ i694 = (694 + x) % 10;
+ I64 i695;
+ i695 = (695 - x) % 10;
+ I64 i696;
+ i696 = (696 + x) % 10;
+ I64 i697;
+ i697 = (697 - x) % 10;
+ I64 i698;
+ i698 = (698 + x) % 10;
+ I64 i699;
+ i699 = (699 - x) % 10;
+ I64 i700;
+ i700 = (700 + x) % 10;
+ I64 i701;
+ i701 = (701 - x) % 10;
+ I64 i702;
+ i702 = (702 + x) % 10;
+ I64 i703;
+ i703 = (703 - x) % 10;
+ I64 i704;
+ i704 = (704 + x) % 10;
+ I64 i705;
+ i705 = (705 - x) % 10;
+ I64 i706;
+ i706 = (706 + x) % 10;
+ I64 i707;
+ i707 = (707 - x) % 10;
+ I64 i708;
+ i708 = (708 + x) % 10;
+ I64 i709;
+ i709 = (709 - x) % 10;
+ I64 i710;
+ i710 = (710 + x) % 10;
+ I64 i711;
+ i711 = (711 - x) % 10;
+ I64 i712;
+ i712 = (712 + x) % 10;
+ I64 i713;
+ i713 = (713 - x) % 10;
+ I64 i714;
+ i714 = (714 + x) % 10;
+ I64 i715;
+ i715 = (715 - x) % 10;
+ I64 i716;
+ i716 = (716 + x) % 10;
+ I64 i717;
+ i717 = (717 - x) % 10;
+ I64 i718;
+ i718 = (718 + x) % 10;
+ I64 i719;
+ i719 = (719 - x) % 10;
+ I64 i720;
+ i720 = (720 + x) % 10;
+ I64 i721;
+ i721 = (721 - x) % 10;
+ I64 i722;
+ i722 = (722 + x) % 10;
+ I64 i723;
+ i723 = (723 - x) % 10;
+ I64 i724;
+ i724 = (724 + x) % 10;
+ I64 i725;
+ i725 = (725 - x) % 10;
+ I64 i726;
+ i726 = (726 + x) % 10;
+ I64 i727;
+ i727 = (727 - x) % 10;
+ I64 i728;
+ i728 = (728 + x) % 10;
+ I64 i729;
+ i729 = (729 - x) % 10;
+ I64 i730;
+ i730 = (730 + x) % 10;
+ I64 i731;
+ i731 = (731 - x) % 10;
+ I64 i732;
+ i732 = (732 + x) % 10;
+ I64 i733;
+ i733 = (733 - x) % 10;
+ I64 i734;
+ i734 = (734 + x) % 10;
+ I64 i735;
+ i735 = (735 - x) % 10;
+ I64 i736;
+ i736 = (736 + x) % 10;
+ I64 i737;
+ i737 = (737 - x) % 10;
+ I64 i738;
+ i738 = (738 + x) % 10;
+ I64 i739;
+ i739 = (739 - x) % 10;
+ I64 i740;
+ i740 = (740 + x) % 10;
+ I64 i741;
+ i741 = (741 - x) % 10;
+ I64 i742;
+ i742 = (742 + x) % 10;
+ I64 i743;
+ i743 = (743 - x) % 10;
+ I64 i744;
+ i744 = (744 + x) % 10;
+ I64 i745;
+ i745 = (745 - x) % 10;
+ I64 i746;
+ i746 = (746 + x) % 10;
+ I64 i747;
+ i747 = (747 - x) % 10;
+ I64 i748;
+ i748 = (748 + x) % 10;
+ I64 i749;
+ i749 = (749 - x) % 10;
+ I64 i750;
+ i750 = (750 + x) % 10;
+ I64 i751;
+ i751 = (751 - x) % 10;
+ I64 i752;
+ i752 = (752 + x) % 10;
+ I64 i753;
+ i753 = (753 - x) % 10;
+ I64 i754;
+ i754 = (754 + x) % 10;
+ I64 i755;
+ i755 = (755 - x) % 10;
+ I64 i756;
+ i756 = (756 + x) % 10;
+ I64 i757;
+ i757 = (757 - x) % 10;
+ I64 i758;
+ i758 = (758 + x) % 10;
+ I64 i759;
+ i759 = (759 - x) % 10;
+ I64 i760;
+ i760 = (760 + x) % 10;
+ I64 i761;
+ i761 = (761 - x) % 10;
+ I64 i762;
+ i762 = (762 + x) % 10;
+ I64 i763;
+ i763 = (763 - x) % 10;
+ I64 i764;
+ i764 = (764 + x) % 10;
+ I64 i765;
+ i765 = (765 - x) % 10;
+ I64 i766;
+ i766 = (766 + x) % 10;
+ I64 i767;
+ i767 = (767 - x) % 10;
+ I64 i768;
+ i768 = (768 + x) % 10;
+ I64 i769;
+ i769 = (769 - x) % 10;
+ I64 i770;
+ i770 = (770 + x) % 10;
+ I64 i771;
+ i771 = (771 - x) % 10;
+ I64 i772;
+ i772 = (772 + x) % 10;
+ I64 i773;
+ i773 = (773 - x) % 10;
+ I64 i774;
+ i774 = (774 + x) % 10;
+ I64 i775;
+ i775 = (775 - x) % 10;
+ I64 i776;
+ i776 = (776 + x) % 10;
+ I64 i777;
+ i777 = (777 - x) % 10;
+ I64 i778;
+ i778 = (778 + x) % 10;
+ I64 i779;
+ i779 = (779 - x) % 10;
+ I64 i780;
+ i780 = (780 + x) % 10;
+ I64 i781;
+ i781 = (781 - x) % 10;
+ I64 i782;
+ i782 = (782 + x) % 10;
+ I64 i783;
+ i783 = (783 - x) % 10;
+ I64 i784;
+ i784 = (784 + x) % 10;
+ I64 i785;
+ i785 = (785 - x) % 10;
+ I64 i786;
+ i786 = (786 + x) % 10;
+ I64 i787;
+ i787 = (787 - x) % 10;
+ I64 i788;
+ i788 = (788 + x) % 10;
+ I64 i789;
+ i789 = (789 - x) % 10;
+ I64 i790;
+ i790 = (790 + x) % 10;
+ I64 i791;
+ i791 = (791 - x) % 10;
+ I64 i792;
+ i792 = (792 + x) % 10;
+ I64 i793;
+ i793 = (793 - x) % 10;
+ I64 i794;
+ i794 = (794 + x) % 10;
+ I64 i795;
+ i795 = (795 - x) % 10;
+ I64 i796;
+ i796 = (796 + x) % 10;
+ I64 i797;
+ i797 = (797 - x) % 10;
+ I64 i798;
+ i798 = (798 + x) % 10;
+ I64 i799;
+ i799 = (799 - x) % 10;
+ I64 i800;
+ i800 = (800 + x) % 10;
+ I64 i801;
+ i801 = (801 - x) % 10;
+ I64 i802;
+ i802 = (802 + x) % 10;
+ I64 i803;
+ i803 = (803 - x) % 10;
+ I64 i804;
+ i804 = (804 + x) % 10;
+ I64 i805;
+ i805 = (805 - x) % 10;
+ I64 i806;
+ i806 = (806 + x) % 10;
+ I64 i807;
+ i807 = (807 - x) % 10;
+ I64 i808;
+ i808 = (808 + x) % 10;
+ I64 i809;
+ i809 = (809 - x) % 10;
+ I64 i810;
+ i810 = (810 + x) % 10;
+ I64 i811;
+ i811 = (811 - x) % 10;
+ I64 i812;
+ i812 = (812 + x) % 10;
+ I64 i813;
+ i813 = (813 - x) % 10;
+ I64 i814;
+ i814 = (814 + x) % 10;
+ I64 i815;
+ i815 = (815 - x) % 10;
+ I64 i816;
+ i816 = (816 + x) % 10;
+ I64 i817;
+ i817 = (817 - x) % 10;
+ I64 i818;
+ i818 = (818 + x) % 10;
+ I64 i819;
+ i819 = (819 - x) % 10;
+ I64 i820;
+ i820 = (820 + x) % 10;
+ I64 i821;
+ i821 = (821 - x) % 10;
+ I64 i822;
+ i822 = (822 + x) % 10;
+ I64 i823;
+ i823 = (823 - x) % 10;
+ I64 i824;
+ i824 = (824 + x) % 10;
+ I64 i825;
+ i825 = (825 - x) % 10;
+ I64 i826;
+ i826 = (826 + x) % 10;
+ I64 i827;
+ i827 = (827 - x) % 10;
+ I64 i828;
+ i828 = (828 + x) % 10;
+ I64 i829;
+ i829 = (829 - x) % 10;
+ I64 i830;
+ i830 = (830 + x) % 10;
+ I64 i831;
+ i831 = (831 - x) % 10;
+ I64 i832;
+ i832 = (832 + x) % 10;
+ I64 i833;
+ i833 = (833 - x) % 10;
+ I64 i834;
+ i834 = (834 + x) % 10;
+ I64 i835;
+ i835 = (835 - x) % 10;
+ I64 i836;
+ i836 = (836 + x) % 10;
+ I64 i837;
+ i837 = (837 - x) % 10;
+ I64 i838;
+ i838 = (838 + x) % 10;
+ I64 i839;
+ i839 = (839 - x) % 10;
+ I64 i840;
+ i840 = (840 + x) % 10;
+ I64 i841;
+ i841 = (841 - x) % 10;
+ I64 i842;
+ i842 = (842 + x) % 10;
+ I64 i843;
+ i843 = (843 - x) % 10;
+ I64 i844;
+ i844 = (844 + x) % 10;
+ I64 i845;
+ i845 = (845 - x) % 10;
+ I64 i846;
+ i846 = (846 + x) % 10;
+ I64 i847;
+ i847 = (847 - x) % 10;
+ I64 i848;
+ i848 = (848 + x) % 10;
+ I64 i849;
+ i849 = (849 - x) % 10;
+ I64 i850;
+ i850 = (850 + x) % 10;
+ I64 i851;
+ i851 = (851 - x) % 10;
+ I64 i852;
+ i852 = (852 + x) % 10;
+ I64 i853;
+ i853 = (853 - x) % 10;
+ I64 i854;
+ i854 = (854 + x) % 10;
+ I64 i855;
+ i855 = (855 - x) % 10;
+ I64 i856;
+ i856 = (856 + x) % 10;
+ I64 i857;
+ i857 = (857 - x) % 10;
+ I64 i858;
+ i858 = (858 + x) % 10;
+ I64 i859;
+ i859 = (859 - x) % 10;
+ I64 i860;
+ i860 = (860 + x) % 10;
+ I64 i861;
+ i861 = (861 - x) % 10;
+ I64 i862;
+ i862 = (862 + x) % 10;
+ I64 i863;
+ i863 = (863 - x) % 10;
+ I64 i864;
+ i864 = (864 + x) % 10;
+ I64 i865;
+ i865 = (865 - x) % 10;
+ I64 i866;
+ i866 = (866 + x) % 10;
+ I64 i867;
+ i867 = (867 - x) % 10;
+ I64 i868;
+ i868 = (868 + x) % 10;
+ I64 i869;
+ i869 = (869 - x) % 10;
+ I64 i870;
+ i870 = (870 + x) % 10;
+ I64 i871;
+ i871 = (871 - x) % 10;
+ I64 i872;
+ i872 = (872 + x) % 10;
+ I64 i873;
+ i873 = (873 - x) % 10;
+ I64 i874;
+ i874 = (874 + x) % 10;
+ I64 i875;
+ i875 = (875 - x) % 10;
+ I64 i876;
+ i876 = (876 + x) % 10;
+ I64 i877;
+ i877 = (877 - x) % 10;
+ I64 i878;
+ i878 = (878 + x) % 10;
+ I64 i879;
+ i879 = (879 - x) % 10;
+ I64 i880;
+ i880 = (880 + x) % 10;
+ I64 i881;
+ i881 = (881 - x) % 10;
+ I64 i882;
+ i882 = (882 + x) % 10;
+ I64 i883;
+ i883 = (883 - x) % 10;
+ I64 i884;
+ i884 = (884 + x) % 10;
+ I64 i885;
+ i885 = (885 - x) % 10;
+ I64 i886;
+ i886 = (886 + x) % 10;
+ I64 i887;
+ i887 = (887 - x) % 10;
+ I64 i888;
+ i888 = (888 + x) % 10;
+ I64 i889;
+ i889 = (889 - x) % 10;
+ I64 i890;
+ i890 = (890 + x) % 10;
+ I64 i891;
+ i891 = (891 - x) % 10;
+ I64 i892;
+ i892 = (892 + x) % 10;
+ I64 i893;
+ i893 = (893 - x) % 10;
+ I64 i894;
+ i894 = (894 + x) % 10;
+ I64 i895;
+ i895 = (895 - x) % 10;
+ I64 i896;
+ i896 = (896 + x) % 10;
+ I64 i897;
+ i897 = (897 - x) % 10;
+ I64 i898;
+ i898 = (898 + x) % 10;
+ I64 i899;
+ i899 = (899 - x) % 10;
+ I64 i900;
+ i900 = (900 + x) % 10;
+ I64 i901;
+ i901 = (901 - x) % 10;
+ I64 i902;
+ i902 = (902 + x) % 10;
+ I64 i903;
+ i903 = (903 - x) % 10;
+ I64 i904;
+ i904 = (904 + x) % 10;
+ I64 i905;
+ i905 = (905 - x) % 10;
+ I64 i906;
+ i906 = (906 + x) % 10;
+ I64 i907;
+ i907 = (907 - x) % 10;
+ I64 i908;
+ i908 = (908 + x) % 10;
+ I64 i909;
+ i909 = (909 - x) % 10;
+ I64 i910;
+ i910 = (910 + x) % 10;
+ I64 i911;
+ i911 = (911 - x) % 10;
+ I64 i912;
+ i912 = (912 + x) % 10;
+ I64 i913;
+ i913 = (913 - x) % 10;
+ I64 i914;
+ i914 = (914 + x) % 10;
+ I64 i915;
+ i915 = (915 - x) % 10;
+ I64 i916;
+ i916 = (916 + x) % 10;
+ I64 i917;
+ i917 = (917 - x) % 10;
+ I64 i918;
+ i918 = (918 + x) % 10;
+ I64 i919;
+ i919 = (919 - x) % 10;
+ I64 i920;
+ i920 = (920 + x) % 10;
+ I64 i921;
+ i921 = (921 - x) % 10;
+ I64 i922;
+ i922 = (922 + x) % 10;
+ I64 i923;
+ i923 = (923 - x) % 10;
+ I64 i924;
+ i924 = (924 + x) % 10;
+ I64 i925;
+ i925 = (925 - x) % 10;
+ I64 i926;
+ i926 = (926 + x) % 10;
+ I64 i927;
+ i927 = (927 - x) % 10;
+ I64 i928;
+ i928 = (928 + x) % 10;
+ I64 i929;
+ i929 = (929 - x) % 10;
+ I64 i930;
+ i930 = (930 + x) % 10;
+ I64 i931;
+ i931 = (931 - x) % 10;
+ I64 i932;
+ i932 = (932 + x) % 10;
+ I64 i933;
+ i933 = (933 - x) % 10;
+ I64 i934;
+ i934 = (934 + x) % 10;
+ I64 i935;
+ i935 = (935 - x) % 10;
+ I64 i936;
+ i936 = (936 + x) % 10;
+ I64 i937;
+ i937 = (937 - x) % 10;
+ I64 i938;
+ i938 = (938 + x) % 10;
+ I64 i939;
+ i939 = (939 - x) % 10;
+ I64 i940;
+ i940 = (940 + x) % 10;
+ I64 i941;
+ i941 = (941 - x) % 10;
+ I64 i942;
+ i942 = (942 + x) % 10;
+ I64 i943;
+ i943 = (943 - x) % 10;
+ I64 i944;
+ i944 = (944 + x) % 10;
+ I64 i945;
+ i945 = (945 - x) % 10;
+ I64 i946;
+ i946 = (946 + x) % 10;
+ I64 i947;
+ i947 = (947 - x) % 10;
+ I64 i948;
+ i948 = (948 + x) % 10;
+ I64 i949;
+ i949 = (949 - x) % 10;
+ I64 i950;
+ i950 = (950 + x) % 10;
+ I64 i951;
+ i951 = (951 - x) % 10;
+ I64 i952;
+ i952 = (952 + x) % 10;
+ I64 i953;
+ i953 = (953 - x) % 10;
+ I64 i954;
+ i954 = (954 + x) % 10;
+ I64 i955;
+ i955 = (955 - x) % 10;
+ I64 i956;
+ i956 = (956 + x) % 10;
+ I64 i957;
+ i957 = (957 - x) % 10;
+ I64 i958;
+ i958 = (958 + x) % 10;
+ I64 i959;
+ i959 = (959 - x) % 10;
+ I64 i960;
+ i960 = (960 + x) % 10;
+ I64 i961;
+ i961 = (961 - x) % 10;
+ I64 i962;
+ i962 = (962 + x) % 10;
+ I64 i963;
+ i963 = (963 - x) % 10;
+ I64 i964;
+ i964 = (964 + x) % 10;
+ I64 i965;
+ i965 = (965 - x) % 10;
+ I64 i966;
+ i966 = (966 + x) % 10;
+ I64 i967;
+ i967 = (967 - x) % 10;
+ I64 i968;
+ i968 = (968 + x) % 10;
+ I64 i969;
+ i969 = (969 - x) % 10;
+ I64 i970;
+ i970 = (970 + x) % 10;
+ I64 i971;
+ i971 = (971 - x) % 10;
+ I64 i972;
+ i972 = (972 + x) % 10;
+ I64 i973;
+ i973 = (973 - x) % 10;
+ I64 i974;
+ i974 = (974 + x) % 10;
+ I64 i975;
+ i975 = (975 - x) % 10;
+ I64 i976;
+ i976 = (976 + x) % 10;
+ I64 i977;
+ i977 = (977 - x) % 10;
+ I64 i978;
+ i978 = (978 + x) % 10;
+ I64 i979;
+ i979 = (979 - x) % 10;
+ I64 i980;
+ i980 = (980 + x) % 10;
+ I64 i981;
+ i981 = (981 - x) % 10;
+ I64 i982;
+ i982 = (982 + x) % 10;
+ I64 i983;
+ i983 = (983 - x) % 10;
+ I64 i984;
+ i984 = (984 + x) % 10;
+ I64 i985;
+ i985 = (985 - x) % 10;
+ I64 i986;
+ i986 = (986 + x) % 10;
+ I64 i987;
+ i987 = (987 - x) % 10;
+ I64 i988;
+ i988 = (988 + x) % 10;
+ I64 i989;
+ i989 = (989 - x) % 10;
+ I64 i990;
+ i990 = (990 + x) % 10;
+ I64 i991;
+ i991 = (991 - x) % 10;
+ I64 i992;
+ i992 = (992 + x) % 10;
+ I64 i993;
+ i993 = (993 - x) % 10;
+ I64 i994;
+ i994 = (994 + x) % 10;
+ I64 i995;
+ i995 = (995 - x) % 10;
+ I64 i996;
+ i996 = (996 + x) % 10;
+ I64 i997;
+ i997 = (997 - x) % 10;
+ I64 i998;
+ i998 = (998 + x) % 10;
+ I64 i999;
+ i999 = (999 - x) % 10;
+ I64 i1000;
+ i1000 = (1000 + x) % 10;
+ I64 i1001;
+ i1001 = (1001 - x) % 10;
+ I64 i1002;
+ i1002 = (1002 + x) % 10;
+ I64 i1003;
+ i1003 = (1003 - x) % 10;
+ I64 i1004;
+ i1004 = (1004 + x) % 10;
+ I64 i1005;
+ i1005 = (1005 - x) % 10;
+ I64 i1006;
+ i1006 = (1006 + x) % 10;
+ I64 i1007;
+ i1007 = (1007 - x) % 10;
+ I64 i1008;
+ i1008 = (1008 + x) % 10;
+ I64 i1009;
+ i1009 = (1009 - x) % 10;
+ I64 i1010;
+ i1010 = (1010 + x) % 10;
+ I64 i1011;
+ i1011 = (1011 - x) % 10;
+ I64 i1012;
+ i1012 = (1012 + x) % 10;
+ I64 i1013;
+ i1013 = (1013 - x) % 10;
+ I64 i1014;
+ i1014 = (1014 + x) % 10;
+ I64 i1015;
+ i1015 = (1015 - x) % 10;
+ I64 i1016;
+ i1016 = (1016 + x) % 10;
+ I64 i1017;
+ i1017 = (1017 - x) % 10;
+ I64 i1018;
+ i1018 = (1018 + x) % 10;
+ I64 i1019;
+ i1019 = (1019 - x) % 10;
+ I64 i1020;
+ i1020 = (1020 + x) % 10;
+ I64 i1021;
+ i1021 = (1021 - x) % 10;
+ I64 i1022;
+ i1022 = (1022 + x) % 10;
+ I64 i1023;
+ i1023 = (1023 - x) % 10;
+ I64 i1024;
+ i1024 = (1024 + x) % 10;
+ I64 i1025;
+ i1025 = (1025 - x) % 10;
+ I64 i1026;
+ i1026 = (1026 + x) % 10;
+ I64 i1027;
+ i1027 = (1027 - x) % 10;
+ I64 i1028;
+ i1028 = (1028 + x) % 10;
+ I64 i1029;
+ i1029 = (1029 - x) % 10;
+ I64 i1030;
+ i1030 = (1030 + x) % 10;
+ I64 i1031;
+ i1031 = (1031 - x) % 10;
+ I64 i1032;
+ i1032 = (1032 + x) % 10;
+ I64 i1033;
+ i1033 = (1033 - x) % 10;
+ I64 i1034;
+ i1034 = (1034 + x) % 10;
+ I64 i1035;
+ i1035 = (1035 - x) % 10;
+ I64 i1036;
+ i1036 = (1036 + x) % 10;
+ I64 i1037;
+ i1037 = (1037 - x) % 10;
+ I64 i1038;
+ i1038 = (1038 + x) % 10;
+ I64 i1039;
+ i1039 = (1039 - x) % 10;
+ I64 i1040;
+ i1040 = (1040 + x) % 10;
+ I64 i1041;
+ i1041 = (1041 - x) % 10;
+ I64 i1042;
+ i1042 = (1042 + x) % 10;
+ I64 i1043;
+ i1043 = (1043 - x) % 10;
+ I64 i1044;
+ i1044 = (1044 + x) % 10;
+ I64 i1045;
+ i1045 = (1045 - x) % 10;
+ I64 i1046;
+ i1046 = (1046 + x) % 10;
+ I64 i1047;
+ i1047 = (1047 - x) % 10;
+ I64 i1048;
+ i1048 = (1048 + x) % 10;
+ I64 i1049;
+ i1049 = (1049 - x) % 10;
+ I64 i1050;
+ i1050 = (1050 + x) % 10;
+ I64 i1051;
+ i1051 = (1051 - x) % 10;
+ I64 i1052;
+ i1052 = (1052 + x) % 10;
+ I64 i1053;
+ i1053 = (1053 - x) % 10;
+ I64 i1054;
+ i1054 = (1054 + x) % 10;
+ I64 i1055;
+ i1055 = (1055 - x) % 10;
+ I64 i1056;
+ i1056 = (1056 + x) % 10;
+ I64 i1057;
+ i1057 = (1057 - x) % 10;
+ I64 i1058;
+ i1058 = (1058 + x) % 10;
+ I64 i1059;
+ i1059 = (1059 - x) % 10;
+ I64 i1060;
+ i1060 = (1060 + x) % 10;
+ I64 i1061;
+ i1061 = (1061 - x) % 10;
+ I64 i1062;
+ i1062 = (1062 + x) % 10;
+ I64 i1063;
+ i1063 = (1063 - x) % 10;
+ I64 i1064;
+ i1064 = (1064 + x) % 10;
+ I64 i1065;
+ i1065 = (1065 - x) % 10;
+ I64 i1066;
+ i1066 = (1066 + x) % 10;
+ I64 i1067;
+ i1067 = (1067 - x) % 10;
+ I64 i1068;
+ i1068 = (1068 + x) % 10;
+ I64 i1069;
+ i1069 = (1069 - x) % 10;
+ I64 i1070;
+ i1070 = (1070 + x) % 10;
+ I64 i1071;
+ i1071 = (1071 - x) % 10;
+ I64 i1072;
+ i1072 = (1072 + x) % 10;
+ I64 i1073;
+ i1073 = (1073 - x) % 10;
+ I64 i1074;
+ i1074 = (1074 + x) % 10;
+ I64 i1075;
+ i1075 = (1075 - x) % 10;
+ I64 i1076;
+ i1076 = (1076 + x) % 10;
+ I64 i1077;
+ i1077 = (1077 - x) % 10;
+ I64 i1078;
+ i1078 = (1078 + x) % 10;
+ I64 i1079;
+ i1079 = (1079 - x) % 10;
+ I64 i1080;
+ i1080 = (1080 + x) % 10;
+ I64 i1081;
+ i1081 = (1081 - x) % 10;
+ I64 i1082;
+ i1082 = (1082 + x) % 10;
+ I64 i1083;
+ i1083 = (1083 - x) % 10;
+ I64 i1084;
+ i1084 = (1084 + x) % 10;
+ I64 i1085;
+ i1085 = (1085 - x) % 10;
+ I64 i1086;
+ i1086 = (1086 + x) % 10;
+ I64 i1087;
+ i1087 = (1087 - x) % 10;
+ I64 i1088;
+ i1088 = (1088 + x) % 10;
+ I64 i1089;
+ i1089 = (1089 - x) % 10;
+ I64 i1090;
+ i1090 = (1090 + x) % 10;
+ I64 i1091;
+ i1091 = (1091 - x) % 10;
+ I64 i1092;
+ i1092 = (1092 + x) % 10;
+ I64 i1093;
+ i1093 = (1093 - x) % 10;
+ I64 i1094;
+ i1094 = (1094 + x) % 10;
+ I64 i1095;
+ i1095 = (1095 - x) % 10;
+ I64 i1096;
+ i1096 = (1096 + x) % 10;
+ I64 i1097;
+ i1097 = (1097 - x) % 10;
+ I64 i1098;
+ i1098 = (1098 + x) % 10;
+ I64 i1099;
+ i1099 = (1099 - x) % 10;
+ I64 i1100;
+ i1100 = (1100 + x) % 10;
+ I64 i1101;
+ i1101 = (1101 - x) % 10;
+ I64 i1102;
+ i1102 = (1102 + x) % 10;
+ I64 i1103;
+ i1103 = (1103 - x) % 10;
+ I64 i1104;
+ i1104 = (1104 + x) % 10;
+ I64 i1105;
+ i1105 = (1105 - x) % 10;
+ I64 i1106;
+ i1106 = (1106 + x) % 10;
+ I64 i1107;
+ i1107 = (1107 - x) % 10;
+ I64 i1108;
+ i1108 = (1108 + x) % 10;
+ I64 i1109;
+ i1109 = (1109 - x) % 10;
+ I64 i1110;
+ i1110 = (1110 + x) % 10;
+ I64 i1111;
+ i1111 = (1111 - x) % 10;
+ I64 i1112;
+ i1112 = (1112 + x) % 10;
+ I64 i1113;
+ i1113 = (1113 - x) % 10;
+ I64 i1114;
+ i1114 = (1114 + x) % 10;
+ I64 i1115;
+ i1115 = (1115 - x) % 10;
+ I64 i1116;
+ i1116 = (1116 + x) % 10;
+ I64 i1117;
+ i1117 = (1117 - x) % 10;
+ I64 i1118;
+ i1118 = (1118 + x) % 10;
+ I64 i1119;
+ i1119 = (1119 - x) % 10;
+ I64 i1120;
+ i1120 = (1120 + x) % 10;
+ I64 i1121;
+ i1121 = (1121 - x) % 10;
+ I64 i1122;
+ i1122 = (1122 + x) % 10;
+ I64 i1123;
+ i1123 = (1123 - x) % 10;
+ I64 i1124;
+ i1124 = (1124 + x) % 10;
+ I64 i1125;
+ i1125 = (1125 - x) % 10;
+ I64 i1126;
+ i1126 = (1126 + x) % 10;
+ I64 i1127;
+ i1127 = (1127 - x) % 10;
+ I64 i1128;
+ i1128 = (1128 + x) % 10;
+ I64 i1129;
+ i1129 = (1129 - x) % 10;
+ I64 i1130;
+ i1130 = (1130 + x) % 10;
+ I64 i1131;
+ i1131 = (1131 - x) % 10;
+ I64 i1132;
+ i1132 = (1132 + x) % 10;
+ I64 i1133;
+ i1133 = (1133 - x) % 10;
+ I64 i1134;
+ i1134 = (1134 + x) % 10;
+ I64 i1135;
+ i1135 = (1135 - x) % 10;
+ I64 i1136;
+ i1136 = (1136 + x) % 10;
+ I64 i1137;
+ i1137 = (1137 - x) % 10;
+ I64 i1138;
+ i1138 = (1138 + x) % 10;
+ I64 i1139;
+ i1139 = (1139 - x) % 10;
+ I64 i1140;
+ i1140 = (1140 + x) % 10;
+ I64 i1141;
+ i1141 = (1141 - x) % 10;
+ I64 i1142;
+ i1142 = (1142 + x) % 10;
+ I64 i1143;
+ i1143 = (1143 - x) % 10;
+ I64 i1144;
+ i1144 = (1144 + x) % 10;
+ I64 i1145;
+ i1145 = (1145 - x) % 10;
+ I64 i1146;
+ i1146 = (1146 + x) % 10;
+ I64 i1147;
+ i1147 = (1147 - x) % 10;
+ I64 i1148;
+ i1148 = (1148 + x) % 10;
+ I64 i1149;
+ i1149 = (1149 - x) % 10;
+ I64 i1150;
+ i1150 = (1150 + x) % 10;
+ I64 i1151;
+ i1151 = (1151 - x) % 10;
+ I64 i1152;
+ i1152 = (1152 + x) % 10;
+ I64 i1153;
+ i1153 = (1153 - x) % 10;
+ I64 i1154;
+ i1154 = (1154 + x) % 10;
+ I64 i1155;
+ i1155 = (1155 - x) % 10;
+ I64 i1156;
+ i1156 = (1156 + x) % 10;
+ I64 i1157;
+ i1157 = (1157 - x) % 10;
+ I64 i1158;
+ i1158 = (1158 + x) % 10;
+ I64 i1159;
+ i1159 = (1159 - x) % 10;
+ I64 i1160;
+ i1160 = (1160 + x) % 10;
+ I64 i1161;
+ i1161 = (1161 - x) % 10;
+ I64 i1162;
+ i1162 = (1162 + x) % 10;
+ I64 i1163;
+ i1163 = (1163 - x) % 10;
+ I64 i1164;
+ i1164 = (1164 + x) % 10;
+ I64 i1165;
+ i1165 = (1165 - x) % 10;
+ I64 i1166;
+ i1166 = (1166 + x) % 10;
+ I64 i1167;
+ i1167 = (1167 - x) % 10;
+ I64 i1168;
+ i1168 = (1168 + x) % 10;
+ I64 i1169;
+ i1169 = (1169 - x) % 10;
+ I64 i1170;
+ i1170 = (1170 + x) % 10;
+ I64 i1171;
+ i1171 = (1171 - x) % 10;
+ I64 i1172;
+ i1172 = (1172 + x) % 10;
+ I64 i1173;
+ i1173 = (1173 - x) % 10;
+ I64 i1174;
+ i1174 = (1174 + x) % 10;
+ I64 i1175;
+ i1175 = (1175 - x) % 10;
+ I64 i1176;
+ i1176 = (1176 + x) % 10;
+ I64 i1177;
+ i1177 = (1177 - x) % 10;
+ I64 i1178;
+ i1178 = (1178 + x) % 10;
+ I64 i1179;
+ i1179 = (1179 - x) % 10;
+ I64 i1180;
+ i1180 = (1180 + x) % 10;
+ I64 i1181;
+ i1181 = (1181 - x) % 10;
+ I64 i1182;
+ i1182 = (1182 + x) % 10;
+ I64 i1183;
+ i1183 = (1183 - x) % 10;
+ I64 i1184;
+ i1184 = (1184 + x) % 10;
+ I64 i1185;
+ i1185 = (1185 - x) % 10;
+ I64 i1186;
+ i1186 = (1186 + x) % 10;
+ I64 i1187;
+ i1187 = (1187 - x) % 10;
+ I64 i1188;
+ i1188 = (1188 + x) % 10;
+ I64 i1189;
+ i1189 = (1189 - x) % 10;
+ I64 i1190;
+ i1190 = (1190 + x) % 10;
+ I64 i1191;
+ i1191 = (1191 - x) % 10;
+ I64 i1192;
+ i1192 = (1192 + x) % 10;
+ I64 i1193;
+ i1193 = (1193 - x) % 10;
+ I64 i1194;
+ i1194 = (1194 + x) % 10;
+ I64 i1195;
+ i1195 = (1195 - x) % 10;
+ I64 i1196;
+ i1196 = (1196 + x) % 10;
+ I64 i1197;
+ i1197 = (1197 - x) % 10;
+ I64 i1198;
+ i1198 = (1198 + x) % 10;
+ I64 i1199;
+ i1199 = (1199 - x) % 10;
+ I64 i1200;
+ i1200 = (1200 + x) % 10;
+ I64 i1201;
+ i1201 = (1201 - x) % 10;
+ I64 i1202;
+ i1202 = (1202 + x) % 10;
+ I64 i1203;
+ i1203 = (1203 - x) % 10;
+ I64 i1204;
+ i1204 = (1204 + x) % 10;
+ I64 i1205;
+ i1205 = (1205 - x) % 10;
+ I64 i1206;
+ i1206 = (1206 + x) % 10;
+ I64 i1207;
+ i1207 = (1207 - x) % 10;
+ I64 i1208;
+ i1208 = (1208 + x) % 10;
+ I64 i1209;
+ i1209 = (1209 - x) % 10;
+ I64 i1210;
+ i1210 = (1210 + x) % 10;
+ I64 i1211;
+ i1211 = (1211 - x) % 10;
+ I64 i1212;
+ i1212 = (1212 + x) % 10;
+ I64 i1213;
+ i1213 = (1213 - x) % 10;
+ I64 i1214;
+ i1214 = (1214 + x) % 10;
+ I64 i1215;
+ i1215 = (1215 - x) % 10;
+ I64 i1216;
+ i1216 = (1216 + x) % 10;
+ I64 i1217;
+ i1217 = (1217 - x) % 10;
+ I64 i1218;
+ i1218 = (1218 + x) % 10;
+ I64 i1219;
+ i1219 = (1219 - x) % 10;
+ I64 i1220;
+ i1220 = (1220 + x) % 10;
+ I64 i1221;
+ i1221 = (1221 - x) % 10;
+ I64 i1222;
+ i1222 = (1222 + x) % 10;
+ I64 i1223;
+ i1223 = (1223 - x) % 10;
+ I64 i1224;
+ i1224 = (1224 + x) % 10;
+ I64 i1225;
+ i1225 = (1225 - x) % 10;
+ I64 i1226;
+ i1226 = (1226 + x) % 10;
+ I64 i1227;
+ i1227 = (1227 - x) % 10;
+ I64 i1228;
+ i1228 = (1228 + x) % 10;
+ I64 i1229;
+ i1229 = (1229 - x) % 10;
+ I64 i1230;
+ i1230 = (1230 + x) % 10;
+ I64 i1231;
+ i1231 = (1231 - x) % 10;
+ I64 i1232;
+ i1232 = (1232 + x) % 10;
+ I64 i1233;
+ i1233 = (1233 - x) % 10;
+ I64 i1234;
+ i1234 = (1234 + x) % 10;
+ I64 i1235;
+ i1235 = (1235 - x) % 10;
+ I64 i1236;
+ i1236 = (1236 + x) % 10;
+ I64 i1237;
+ i1237 = (1237 - x) % 10;
+ I64 i1238;
+ i1238 = (1238 + x) % 10;
+ I64 i1239;
+ i1239 = (1239 - x) % 10;
+ I64 i1240;
+ i1240 = (1240 + x) % 10;
+ I64 i1241;
+ i1241 = (1241 - x) % 10;
+ I64 i1242;
+ i1242 = (1242 + x) % 10;
+ I64 i1243;
+ i1243 = (1243 - x) % 10;
+ I64 i1244;
+ i1244 = (1244 + x) % 10;
+ I64 i1245;
+ i1245 = (1245 - x) % 10;
+ I64 i1246;
+ i1246 = (1246 + x) % 10;
+ I64 i1247;
+ i1247 = (1247 - x) % 10;
+ I64 i1248;
+ i1248 = (1248 + x) % 10;
+ I64 i1249;
+ i1249 = (1249 - x) % 10;
+ I64 i1250;
+ i1250 = (1250 + x) % 10;
+ I64 i1251;
+ i1251 = (1251 - x) % 10;
+ I64 i1252;
+ i1252 = (1252 + x) % 10;
+ I64 i1253;
+ i1253 = (1253 - x) % 10;
+ I64 i1254;
+ i1254 = (1254 + x) % 10;
+ I64 i1255;
+ i1255 = (1255 - x) % 10;
+ I64 i1256;
+ i1256 = (1256 + x) % 10;
+ I64 i1257;
+ i1257 = (1257 - x) % 10;
+ I64 i1258;
+ i1258 = (1258 + x) % 10;
+ I64 i1259;
+ i1259 = (1259 - x) % 10;
+ I64 i1260;
+ i1260 = (1260 + x) % 10;
+ I64 i1261;
+ i1261 = (1261 - x) % 10;
+ I64 i1262;
+ i1262 = (1262 + x) % 10;
+ I64 i1263;
+ i1263 = (1263 - x) % 10;
+ I64 i1264;
+ i1264 = (1264 + x) % 10;
+ I64 i1265;
+ i1265 = (1265 - x) % 10;
+ I64 i1266;
+ i1266 = (1266 + x) % 10;
+ I64 i1267;
+ i1267 = (1267 - x) % 10;
+ I64 i1268;
+ i1268 = (1268 + x) % 10;
+ I64 i1269;
+ i1269 = (1269 - x) % 10;
+ I64 i1270;
+ i1270 = (1270 + x) % 10;
+ I64 i1271;
+ i1271 = (1271 - x) % 10;
+ I64 i1272;
+ i1272 = (1272 + x) % 10;
+ I64 i1273;
+ i1273 = (1273 - x) % 10;
+ I64 i1274;
+ i1274 = (1274 + x) % 10;
+ I64 i1275;
+ i1275 = (1275 - x) % 10;
+ I64 i1276;
+ i1276 = (1276 + x) % 10;
+ I64 i1277;
+ i1277 = (1277 - x) % 10;
+ I64 i1278;
+ i1278 = (1278 + x) % 10;
+ I64 i1279;
+ i1279 = (1279 - x) % 10;
+ I64 i1280;
+ i1280 = (1280 + x) % 10;
+ I64 i1281;
+ i1281 = (1281 - x) % 10;
+ I64 i1282;
+ i1282 = (1282 + x) % 10;
+ I64 i1283;
+ i1283 = (1283 - x) % 10;
+ I64 i1284;
+ i1284 = (1284 + x) % 10;
+ I64 i1285;
+ i1285 = (1285 - x) % 10;
+ I64 i1286;
+ i1286 = (1286 + x) % 10;
+ I64 i1287;
+ i1287 = (1287 - x) % 10;
+ I64 i1288;
+ i1288 = (1288 + x) % 10;
+ I64 i1289;
+ i1289 = (1289 - x) % 10;
+ I64 i1290;
+ i1290 = (1290 + x) % 10;
+ I64 i1291;
+ i1291 = (1291 - x) % 10;
+ I64 i1292;
+ i1292 = (1292 + x) % 10;
+ I64 i1293;
+ i1293 = (1293 - x) % 10;
+ I64 i1294;
+ i1294 = (1294 + x) % 10;
+ I64 i1295;
+ i1295 = (1295 - x) % 10;
+ I64 i1296;
+ i1296 = (1296 + x) % 10;
+ I64 i1297;
+ i1297 = (1297 - x) % 10;
+ I64 i1298;
+ i1298 = (1298 + x) % 10;
+ I64 i1299;
+ i1299 = (1299 - x) % 10;
+ I64 i1300;
+ i1300 = (1300 + x) % 10;
+ I64 i1301;
+ i1301 = (1301 - x) % 10;
+ I64 i1302;
+ i1302 = (1302 + x) % 10;
+ I64 i1303;
+ i1303 = (1303 - x) % 10;
+ I64 i1304;
+ i1304 = (1304 + x) % 10;
+ I64 i1305;
+ i1305 = (1305 - x) % 10;
+ I64 i1306;
+ i1306 = (1306 + x) % 10;
+ I64 i1307;
+ i1307 = (1307 - x) % 10;
+ I64 i1308;
+ i1308 = (1308 + x) % 10;
+ I64 i1309;
+ i1309 = (1309 - x) % 10;
+ I64 i1310;
+ i1310 = (1310 + x) % 10;
+ I64 i1311;
+ i1311 = (1311 - x) % 10;
+ I64 i1312;
+ i1312 = (1312 + x) % 10;
+ I64 i1313;
+ i1313 = (1313 - x) % 10;
+ I64 i1314;
+ i1314 = (1314 + x) % 10;
+ I64 i1315;
+ i1315 = (1315 - x) % 10;
+ I64 i1316;
+ i1316 = (1316 + x) % 10;
+ I64 i1317;
+ i1317 = (1317 - x) % 10;
+ I64 i1318;
+ i1318 = (1318 + x) % 10;
+ I64 i1319;
+ i1319 = (1319 - x) % 10;
+ I64 i1320;
+ i1320 = (1320 + x) % 10;
+ I64 i1321;
+ i1321 = (1321 - x) % 10;
+ I64 i1322;
+ i1322 = (1322 + x) % 10;
+ I64 i1323;
+ i1323 = (1323 - x) % 10;
+ I64 i1324;
+ i1324 = (1324 + x) % 10;
+ I64 i1325;
+ i1325 = (1325 - x) % 10;
+ I64 i1326;
+ i1326 = (1326 + x) % 10;
+ I64 i1327;
+ i1327 = (1327 - x) % 10;
+ I64 i1328;
+ i1328 = (1328 + x) % 10;
+ I64 i1329;
+ i1329 = (1329 - x) % 10;
+ I64 i1330;
+ i1330 = (1330 + x) % 10;
+ I64 i1331;
+ i1331 = (1331 - x) % 10;
+ I64 i1332;
+ i1332 = (1332 + x) % 10;
+ I64 i1333;
+ i1333 = (1333 - x) % 10;
+ I64 i1334;
+ i1334 = (1334 + x) % 10;
+ I64 i1335;
+ i1335 = (1335 - x) % 10;
+ I64 i1336;
+ i1336 = (1336 + x) % 10;
+ I64 i1337;
+ i1337 = (1337 - x) % 10;
+ I64 i1338;
+ i1338 = (1338 + x) % 10;
+ I64 i1339;
+ i1339 = (1339 - x) % 10;
+ I64 i1340;
+ i1340 = (1340 + x) % 10;
+ I64 i1341;
+ i1341 = (1341 - x) % 10;
+ I64 i1342;
+ i1342 = (1342 + x) % 10;
+ I64 i1343;
+ i1343 = (1343 - x) % 10;
+ I64 i1344;
+ i1344 = (1344 + x) % 10;
+ I64 i1345;
+ i1345 = (1345 - x) % 10;
+ I64 i1346;
+ i1346 = (1346 + x) % 10;
+ I64 i1347;
+ i1347 = (1347 - x) % 10;
+ I64 i1348;
+ i1348 = (1348 + x) % 10;
+ I64 i1349;
+ i1349 = (1349 - x) % 10;
+ I64 i1350;
+ i1350 = (1350 + x) % 10;
+ I64 i1351;
+ i1351 = (1351 - x) % 10;
+ I64 i1352;
+ i1352 = (1352 + x) % 10;
+ I64 i1353;
+ i1353 = (1353 - x) % 10;
+ I64 i1354;
+ i1354 = (1354 + x) % 10;
+ I64 i1355;
+ i1355 = (1355 - x) % 10;
+ I64 i1356;
+ i1356 = (1356 + x) % 10;
+ I64 i1357;
+ i1357 = (1357 - x) % 10;
+ I64 i1358;
+ i1358 = (1358 + x) % 10;
+ I64 i1359;
+ i1359 = (1359 - x) % 10;
+ I64 i1360;
+ i1360 = (1360 + x) % 10;
+ I64 i1361;
+ i1361 = (1361 - x) % 10;
+ I64 i1362;
+ i1362 = (1362 + x) % 10;
+ I64 i1363;
+ i1363 = (1363 - x) % 10;
+ I64 i1364;
+ i1364 = (1364 + x) % 10;
+ I64 i1365;
+ i1365 = (1365 - x) % 10;
+ I64 i1366;
+ i1366 = (1366 + x) % 10;
+ I64 i1367;
+ i1367 = (1367 - x) % 10;
+ I64 i1368;
+ i1368 = (1368 + x) % 10;
+ I64 i1369;
+ i1369 = (1369 - x) % 10;
+ I64 i1370;
+ i1370 = (1370 + x) % 10;
+ I64 i1371;
+ i1371 = (1371 - x) % 10;
+ I64 i1372;
+ i1372 = (1372 + x) % 10;
+ I64 i1373;
+ i1373 = (1373 - x) % 10;
+ I64 i1374;
+ i1374 = (1374 + x) % 10;
+ I64 i1375;
+ i1375 = (1375 - x) % 10;
+ I64 i1376;
+ i1376 = (1376 + x) % 10;
+ I64 i1377;
+ i1377 = (1377 - x) % 10;
+ I64 i1378;
+ i1378 = (1378 + x) % 10;
+ I64 i1379;
+ i1379 = (1379 - x) % 10;
+ I64 i1380;
+ i1380 = (1380 + x) % 10;
+ I64 i1381;
+ i1381 = (1381 - x) % 10;
+ I64 i1382;
+ i1382 = (1382 + x) % 10;
+ I64 i1383;
+ i1383 = (1383 - x) % 10;
+ I64 i1384;
+ i1384 = (1384 + x) % 10;
+ I64 i1385;
+ i1385 = (1385 - x) % 10;
+ I64 i1386;
+ i1386 = (1386 + x) % 10;
+ I64 i1387;
+ i1387 = (1387 - x) % 10;
+ I64 i1388;
+ i1388 = (1388 + x) % 10;
+ I64 i1389;
+ i1389 = (1389 - x) % 10;
+ I64 i1390;
+ i1390 = (1390 + x) % 10;
+ I64 i1391;
+ i1391 = (1391 - x) % 10;
+ I64 i1392;
+ i1392 = (1392 + x) % 10;
+ I64 i1393;
+ i1393 = (1393 - x) % 10;
+ I64 i1394;
+ i1394 = (1394 + x) % 10;
+ I64 i1395;
+ i1395 = (1395 - x) % 10;
+ I64 i1396;
+ i1396 = (1396 + x) % 10;
+ I64 i1397;
+ i1397 = (1397 - x) % 10;
+ I64 i1398;
+ i1398 = (1398 + x) % 10;
+ I64 i1399;
+ i1399 = (1399 - x) % 10;
+ I64 i1400;
+ i1400 = (1400 + x) % 10;
+ I64 i1401;
+ i1401 = (1401 - x) % 10;
+ I64 i1402;
+ i1402 = (1402 + x) % 10;
+ I64 i1403;
+ i1403 = (1403 - x) % 10;
+ I64 i1404;
+ i1404 = (1404 + x) % 10;
+ I64 i1405;
+ i1405 = (1405 - x) % 10;
+ I64 i1406;
+ i1406 = (1406 + x) % 10;
+ I64 i1407;
+ i1407 = (1407 - x) % 10;
+ I64 i1408;
+ i1408 = (1408 + x) % 10;
+ I64 i1409;
+ i1409 = (1409 - x) % 10;
+ I64 i1410;
+ i1410 = (1410 + x) % 10;
+ I64 i1411;
+ i1411 = (1411 - x) % 10;
+ I64 i1412;
+ i1412 = (1412 + x) % 10;
+ I64 i1413;
+ i1413 = (1413 - x) % 10;
+ I64 i1414;
+ i1414 = (1414 + x) % 10;
+ I64 i1415;
+ i1415 = (1415 - x) % 10;
+ I64 i1416;
+ i1416 = (1416 + x) % 10;
+ I64 i1417;
+ i1417 = (1417 - x) % 10;
+ I64 i1418;
+ i1418 = (1418 + x) % 10;
+ I64 i1419;
+ i1419 = (1419 - x) % 10;
+ I64 i1420;
+ i1420 = (1420 + x) % 10;
+ I64 i1421;
+ i1421 = (1421 - x) % 10;
+ I64 i1422;
+ i1422 = (1422 + x) % 10;
+ I64 i1423;
+ i1423 = (1423 - x) % 10;
+ I64 i1424;
+ i1424 = (1424 + x) % 10;
+ I64 i1425;
+ i1425 = (1425 - x) % 10;
+ I64 i1426;
+ i1426 = (1426 + x) % 10;
+ I64 i1427;
+ i1427 = (1427 - x) % 10;
+ I64 i1428;
+ i1428 = (1428 + x) % 10;
+ I64 i1429;
+ i1429 = (1429 - x) % 10;
+ I64 i1430;
+ i1430 = (1430 + x) % 10;
+ I64 i1431;
+ i1431 = (1431 - x) % 10;
+ I64 i1432;
+ i1432 = (1432 + x) % 10;
+ I64 i1433;
+ i1433 = (1433 - x) % 10;
+ I64 i1434;
+ i1434 = (1434 + x) % 10;
+ I64 i1435;
+ i1435 = (1435 - x) % 10;
+ I64 i1436;
+ i1436 = (1436 + x) % 10;
+ I64 i1437;
+ i1437 = (1437 - x) % 10;
+ I64 i1438;
+ i1438 = (1438 + x) % 10;
+ I64 i1439;
+ i1439 = (1439 - x) % 10;
+ I64 i1440;
+ i1440 = (1440 + x) % 10;
+ I64 i1441;
+ i1441 = (1441 - x) % 10;
+ I64 i1442;
+ i1442 = (1442 + x) % 10;
+ I64 i1443;
+ i1443 = (1443 - x) % 10;
+ I64 i1444;
+ i1444 = (1444 + x) % 10;
+ I64 i1445;
+ i1445 = (1445 - x) % 10;
+ I64 i1446;
+ i1446 = (1446 + x) % 10;
+ I64 i1447;
+ i1447 = (1447 - x) % 10;
+ I64 i1448;
+ i1448 = (1448 + x) % 10;
+ I64 i1449;
+ i1449 = (1449 - x) % 10;
+ I64 i1450;
+ i1450 = (1450 + x) % 10;
+ I64 i1451;
+ i1451 = (1451 - x) % 10;
+ I64 i1452;
+ i1452 = (1452 + x) % 10;
+ I64 i1453;
+ i1453 = (1453 - x) % 10;
+ I64 i1454;
+ i1454 = (1454 + x) % 10;
+ I64 i1455;
+ i1455 = (1455 - x) % 10;
+ I64 i1456;
+ i1456 = (1456 + x) % 10;
+ I64 i1457;
+ i1457 = (1457 - x) % 10;
+ I64 i1458;
+ i1458 = (1458 + x) % 10;
+ I64 i1459;
+ i1459 = (1459 - x) % 10;
+ I64 i1460;
+ i1460 = (1460 + x) % 10;
+ I64 i1461;
+ i1461 = (1461 - x) % 10;
+ I64 i1462;
+ i1462 = (1462 + x) % 10;
+ I64 i1463;
+ i1463 = (1463 - x) % 10;
+ I64 i1464;
+ i1464 = (1464 + x) % 10;
+ I64 i1465;
+ i1465 = (1465 - x) % 10;
+ I64 i1466;
+ i1466 = (1466 + x) % 10;
+ I64 i1467;
+ i1467 = (1467 - x) % 10;
+ I64 i1468;
+ i1468 = (1468 + x) % 10;
+ I64 i1469;
+ i1469 = (1469 - x) % 10;
+ I64 i1470;
+ i1470 = (1470 + x) % 10;
+ I64 i1471;
+ i1471 = (1471 - x) % 10;
+ I64 i1472;
+ i1472 = (1472 + x) % 10;
+ I64 i1473;
+ i1473 = (1473 - x) % 10;
+ I64 i1474;
+ i1474 = (1474 + x) % 10;
+ I64 i1475;
+ i1475 = (1475 - x) % 10;
+ I64 i1476;
+ i1476 = (1476 + x) % 10;
+ I64 i1477;
+ i1477 = (1477 - x) % 10;
+ I64 i1478;
+ i1478 = (1478 + x) % 10;
+ I64 i1479;
+ i1479 = (1479 - x) % 10;
+ I64 i1480;
+ i1480 = (1480 + x) % 10;
+ I64 i1481;
+ i1481 = (1481 - x) % 10;
+ I64 i1482;
+ i1482 = (1482 + x) % 10;
+ I64 i1483;
+ i1483 = (1483 - x) % 10;
+ I64 i1484;
+ i1484 = (1484 + x) % 10;
+ I64 i1485;
+ i1485 = (1485 - x) % 10;
+ I64 i1486;
+ i1486 = (1486 + x) % 10;
+ I64 i1487;
+ i1487 = (1487 - x) % 10;
+ I64 i1488;
+ i1488 = (1488 + x) % 10;
+ I64 i1489;
+ i1489 = (1489 - x) % 10;
+ I64 i1490;
+ i1490 = (1490 + x) % 10;
+ I64 i1491;
+ i1491 = (1491 - x) % 10;
+ I64 i1492;
+ i1492 = (1492 + x) % 10;
+ I64 i1493;
+ i1493 = (1493 - x) % 10;
+ I64 i1494;
+ i1494 = (1494 + x) % 10;
+ I64 i1495;
+ i1495 = (1495 - x) % 10;
+ I64 i1496;
+ i1496 = (1496 + x) % 10;
+ I64 i1497;
+ i1497 = (1497 - x) % 10;
+ I64 i1498;
+ i1498 = (1498 + x) % 10;
+ I64 i1499;
+ i1499 = (1499 - x) % 10;
+ I64 i1500;
+ i1500 = (1500 + x) % 10;
+ I64 i1501;
+ i1501 = (1501 - x) % 10;
+ I64 i1502;
+ i1502 = (1502 + x) % 10;
+ I64 i1503;
+ i1503 = (1503 - x) % 10;
+ I64 i1504;
+ i1504 = (1504 + x) % 10;
+ I64 i1505;
+ i1505 = (1505 - x) % 10;
+ I64 i1506;
+ i1506 = (1506 + x) % 10;
+ I64 i1507;
+ i1507 = (1507 - x) % 10;
+ I64 i1508;
+ i1508 = (1508 + x) % 10;
+ I64 i1509;
+ i1509 = (1509 - x) % 10;
+ I64 i1510;
+ i1510 = (1510 + x) % 10;
+ I64 i1511;
+ i1511 = (1511 - x) % 10;
+ I64 i1512;
+ i1512 = (1512 + x) % 10;
+ I64 i1513;
+ i1513 = (1513 - x) % 10;
+ I64 i1514;
+ i1514 = (1514 + x) % 10;
+ I64 i1515;
+ i1515 = (1515 - x) % 10;
+ I64 i1516;
+ i1516 = (1516 + x) % 10;
+ I64 i1517;
+ i1517 = (1517 - x) % 10;
+ I64 i1518;
+ i1518 = (1518 + x) % 10;
+ I64 i1519;
+ i1519 = (1519 - x) % 10;
+ I64 i1520;
+ i1520 = (1520 + x) % 10;
+ I64 i1521;
+ i1521 = (1521 - x) % 10;
+ I64 i1522;
+ i1522 = (1522 + x) % 10;
+ I64 i1523;
+ i1523 = (1523 - x) % 10;
+ I64 i1524;
+ i1524 = (1524 + x) % 10;
+ I64 i1525;
+ i1525 = (1525 - x) % 10;
+ I64 i1526;
+ i1526 = (1526 + x) % 10;
+ I64 i1527;
+ i1527 = (1527 - x) % 10;
+ I64 i1528;
+ i1528 = (1528 + x) % 10;
+ I64 i1529;
+ i1529 = (1529 - x) % 10;
+ I64 i1530;
+ i1530 = (1530 + x) % 10;
+ I64 i1531;
+ i1531 = (1531 - x) % 10;
+ I64 i1532;
+ i1532 = (1532 + x) % 10;
+ I64 i1533;
+ i1533 = (1533 - x) % 10;
+ I64 i1534;
+ i1534 = (1534 + x) % 10;
+ I64 i1535;
+ i1535 = (1535 - x) % 10;
+ I64 i1536;
+ i1536 = (1536 + x) % 10;
+ I64 i1537;
+ i1537 = (1537 - x) % 10;
+ I64 i1538;
+ i1538 = (1538 + x) % 10;
+ I64 i1539;
+ i1539 = (1539 - x) % 10;
+ I64 i1540;
+ i1540 = (1540 + x) % 10;
+ I64 i1541;
+ i1541 = (1541 - x) % 10;
+ I64 i1542;
+ i1542 = (1542 + x) % 10;
+ I64 i1543;
+ i1543 = (1543 - x) % 10;
+ I64 i1544;
+ i1544 = (1544 + x) % 10;
+ I64 i1545;
+ i1545 = (1545 - x) % 10;
+ I64 i1546;
+ i1546 = (1546 + x) % 10;
+ I64 i1547;
+ i1547 = (1547 - x) % 10;
+ I64 i1548;
+ i1548 = (1548 + x) % 10;
+ I64 i1549;
+ i1549 = (1549 - x) % 10;
+ I64 i1550;
+ i1550 = (1550 + x) % 10;
+ I64 i1551;
+ i1551 = (1551 - x) % 10;
+ I64 i1552;
+ i1552 = (1552 + x) % 10;
+ I64 i1553;
+ i1553 = (1553 - x) % 10;
+ I64 i1554;
+ i1554 = (1554 + x) % 10;
+ I64 i1555;
+ i1555 = (1555 - x) % 10;
+ I64 i1556;
+ i1556 = (1556 + x) % 10;
+ I64 i1557;
+ i1557 = (1557 - x) % 10;
+ I64 i1558;
+ i1558 = (1558 + x) % 10;
+ I64 i1559;
+ i1559 = (1559 - x) % 10;
+ I64 i1560;
+ i1560 = (1560 + x) % 10;
+ I64 i1561;
+ i1561 = (1561 - x) % 10;
+ I64 i1562;
+ i1562 = (1562 + x) % 10;
+ I64 i1563;
+ i1563 = (1563 - x) % 10;
+ I64 i1564;
+ i1564 = (1564 + x) % 10;
+ I64 i1565;
+ i1565 = (1565 - x) % 10;
+ I64 i1566;
+ i1566 = (1566 + x) % 10;
+ I64 i1567;
+ i1567 = (1567 - x) % 10;
+ I64 i1568;
+ i1568 = (1568 + x) % 10;
+ I64 i1569;
+ i1569 = (1569 - x) % 10;
+ I64 i1570;
+ i1570 = (1570 + x) % 10;
+ I64 i1571;
+ i1571 = (1571 - x) % 10;
+ I64 i1572;
+ i1572 = (1572 + x) % 10;
+ I64 i1573;
+ i1573 = (1573 - x) % 10;
+ I64 i1574;
+ i1574 = (1574 + x) % 10;
+ I64 i1575;
+ i1575 = (1575 - x) % 10;
+ I64 i1576;
+ i1576 = (1576 + x) % 10;
+ I64 i1577;
+ i1577 = (1577 - x) % 10;
+ I64 i1578;
+ i1578 = (1578 + x) % 10;
+ I64 i1579;
+ i1579 = (1579 - x) % 10;
+ I64 i1580;
+ i1580 = (1580 + x) % 10;
+ I64 i1581;
+ i1581 = (1581 - x) % 10;
+ I64 i1582;
+ i1582 = (1582 + x) % 10;
+ I64 i1583;
+ i1583 = (1583 - x) % 10;
+ I64 i1584;
+ i1584 = (1584 + x) % 10;
+ I64 i1585;
+ i1585 = (1585 - x) % 10;
+ I64 i1586;
+ i1586 = (1586 + x) % 10;
+ I64 i1587;
+ i1587 = (1587 - x) % 10;
+ I64 i1588;
+ i1588 = (1588 + x) % 10;
+ I64 i1589;
+ i1589 = (1589 - x) % 10;
+ I64 i1590;
+ i1590 = (1590 + x) % 10;
+ I64 i1591;
+ i1591 = (1591 - x) % 10;
+ I64 i1592;
+ i1592 = (1592 + x) % 10;
+ I64 i1593;
+ i1593 = (1593 - x) % 10;
+ I64 i1594;
+ i1594 = (1594 + x) % 10;
+ I64 i1595;
+ i1595 = (1595 - x) % 10;
+ I64 i1596;
+ i1596 = (1596 + x) % 10;
+ I64 i1597;
+ i1597 = (1597 - x) % 10;
+ I64 i1598;
+ i1598 = (1598 + x) % 10;
+ I64 i1599;
+ i1599 = (1599 - x) % 10;
+ I64 i1600;
+ i1600 = (1600 + x) % 10;
+ I64 i1601;
+ i1601 = (1601 - x) % 10;
+ I64 i1602;
+ i1602 = (1602 + x) % 10;
+ I64 i1603;
+ i1603 = (1603 - x) % 10;
+ I64 i1604;
+ i1604 = (1604 + x) % 10;
+ I64 i1605;
+ i1605 = (1605 - x) % 10;
+ I64 i1606;
+ i1606 = (1606 + x) % 10;
+ I64 i1607;
+ i1607 = (1607 - x) % 10;
+ I64 i1608;
+ i1608 = (1608 + x) % 10;
+ I64 i1609;
+ i1609 = (1609 - x) % 10;
+ I64 i1610;
+ i1610 = (1610 + x) % 10;
+ I64 i1611;
+ i1611 = (1611 - x) % 10;
+ I64 i1612;
+ i1612 = (1612 + x) % 10;
+ I64 i1613;
+ i1613 = (1613 - x) % 10;
+ I64 i1614;
+ i1614 = (1614 + x) % 10;
+ I64 i1615;
+ i1615 = (1615 - x) % 10;
+ I64 i1616;
+ i1616 = (1616 + x) % 10;
+ I64 i1617;
+ i1617 = (1617 - x) % 10;
+ I64 i1618;
+ i1618 = (1618 + x) % 10;
+ I64 i1619;
+ i1619 = (1619 - x) % 10;
+ I64 i1620;
+ i1620 = (1620 + x) % 10;
+ I64 i1621;
+ i1621 = (1621 - x) % 10;
+ I64 i1622;
+ i1622 = (1622 + x) % 10;
+ I64 i1623;
+ i1623 = (1623 - x) % 10;
+ I64 i1624;
+ i1624 = (1624 + x) % 10;
+ I64 i1625;
+ i1625 = (1625 - x) % 10;
+ I64 i1626;
+ i1626 = (1626 + x) % 10;
+ I64 i1627;
+ i1627 = (1627 - x) % 10;
+ I64 i1628;
+ i1628 = (1628 + x) % 10;
+ I64 i1629;
+ i1629 = (1629 - x) % 10;
+ I64 i1630;
+ i1630 = (1630 + x) % 10;
+ I64 i1631;
+ i1631 = (1631 - x) % 10;
+ I64 i1632;
+ i1632 = (1632 + x) % 10;
+ I64 i1633;
+ i1633 = (1633 - x) % 10;
+ I64 i1634;
+ i1634 = (1634 + x) % 10;
+ I64 i1635;
+ i1635 = (1635 - x) % 10;
+ I64 i1636;
+ i1636 = (1636 + x) % 10;
+ I64 i1637;
+ i1637 = (1637 - x) % 10;
+ I64 i1638;
+ i1638 = (1638 + x) % 10;
+ I64 i1639;
+ i1639 = (1639 - x) % 10;
+ I64 i1640;
+ i1640 = (1640 + x) % 10;
+ I64 i1641;
+ i1641 = (1641 - x) % 10;
+ I64 i1642;
+ i1642 = (1642 + x) % 10;
+ I64 i1643;
+ i1643 = (1643 - x) % 10;
+ I64 i1644;
+ i1644 = (1644 + x) % 10;
+ I64 i1645;
+ i1645 = (1645 - x) % 10;
+ I64 i1646;
+ i1646 = (1646 + x) % 10;
+ I64 i1647;
+ i1647 = (1647 - x) % 10;
+ I64 i1648;
+ i1648 = (1648 + x) % 10;
+ I64 i1649;
+ i1649 = (1649 - x) % 10;
+ I64 i1650;
+ i1650 = (1650 + x) % 10;
+ I64 i1651;
+ i1651 = (1651 - x) % 10;
+ I64 i1652;
+ i1652 = (1652 + x) % 10;
+ I64 i1653;
+ i1653 = (1653 - x) % 10;
+ I64 i1654;
+ i1654 = (1654 + x) % 10;
+ I64 i1655;
+ i1655 = (1655 - x) % 10;
+ I64 i1656;
+ i1656 = (1656 + x) % 10;
+ I64 i1657;
+ i1657 = (1657 - x) % 10;
+ I64 i1658;
+ i1658 = (1658 + x) % 10;
+ I64 i1659;
+ i1659 = (1659 - x) % 10;
+ I64 i1660;
+ i1660 = (1660 + x) % 10;
+ I64 i1661;
+ i1661 = (1661 - x) % 10;
+ I64 i1662;
+ i1662 = (1662 + x) % 10;
+ I64 i1663;
+ i1663 = (1663 - x) % 10;
+ I64 i1664;
+ i1664 = (1664 + x) % 10;
+ I64 i1665;
+ i1665 = (1665 - x) % 10;
+ I64 i1666;
+ i1666 = (1666 + x) % 10;
+ I64 i1667;
+ i1667 = (1667 - x) % 10;
+ I64 i1668;
+ i1668 = (1668 + x) % 10;
+ I64 i1669;
+ i1669 = (1669 - x) % 10;
+ I64 i1670;
+ i1670 = (1670 + x) % 10;
+ I64 i1671;
+ i1671 = (1671 - x) % 10;
+ I64 i1672;
+ i1672 = (1672 + x) % 10;
+ I64 i1673;
+ i1673 = (1673 - x) % 10;
+ I64 i1674;
+ i1674 = (1674 + x) % 10;
+ I64 i1675;
+ i1675 = (1675 - x) % 10;
+ I64 i1676;
+ i1676 = (1676 + x) % 10;
+ I64 i1677;
+ i1677 = (1677 - x) % 10;
+ I64 i1678;
+ i1678 = (1678 + x) % 10;
+ I64 i1679;
+ i1679 = (1679 - x) % 10;
+ I64 i1680;
+ i1680 = (1680 + x) % 10;
+ I64 i1681;
+ i1681 = (1681 - x) % 10;
+ I64 i1682;
+ i1682 = (1682 + x) % 10;
+ I64 i1683;
+ i1683 = (1683 - x) % 10;
+ I64 i1684;
+ i1684 = (1684 + x) % 10;
+ I64 i1685;
+ i1685 = (1685 - x) % 10;
+ I64 i1686;
+ i1686 = (1686 + x) % 10;
+ I64 i1687;
+ i1687 = (1687 - x) % 10;
+ I64 i1688;
+ i1688 = (1688 + x) % 10;
+ I64 i1689;
+ i1689 = (1689 - x) % 10;
+ I64 i1690;
+ i1690 = (1690 + x) % 10;
+ I64 i1691;
+ i1691 = (1691 - x) % 10;
+ I64 i1692;
+ i1692 = (1692 + x) % 10;
+ I64 i1693;
+ i1693 = (1693 - x) % 10;
+ I64 i1694;
+ i1694 = (1694 + x) % 10;
+ I64 i1695;
+ i1695 = (1695 - x) % 10;
+ I64 i1696;
+ i1696 = (1696 + x) % 10;
+ I64 i1697;
+ i1697 = (1697 - x) % 10;
+ I64 i1698;
+ i1698 = (1698 + x) % 10;
+ I64 i1699;
+ i1699 = (1699 - x) % 10;
+ I64 i1700;
+ i1700 = (1700 + x) % 10;
+ I64 i1701;
+ i1701 = (1701 - x) % 10;
+ I64 i1702;
+ i1702 = (1702 + x) % 10;
+ I64 i1703;
+ i1703 = (1703 - x) % 10;
+ I64 i1704;
+ i1704 = (1704 + x) % 10;
+ I64 i1705;
+ i1705 = (1705 - x) % 10;
+ I64 i1706;
+ i1706 = (1706 + x) % 10;
+ I64 i1707;
+ i1707 = (1707 - x) % 10;
+ I64 i1708;
+ i1708 = (1708 + x) % 10;
+ I64 i1709;
+ i1709 = (1709 - x) % 10;
+ I64 i1710;
+ i1710 = (1710 + x) % 10;
+ I64 i1711;
+ i1711 = (1711 - x) % 10;
+ I64 i1712;
+ i1712 = (1712 + x) % 10;
+ I64 i1713;
+ i1713 = (1713 - x) % 10;
+ I64 i1714;
+ i1714 = (1714 + x) % 10;
+ I64 i1715;
+ i1715 = (1715 - x) % 10;
+ I64 i1716;
+ i1716 = (1716 + x) % 10;
+ I64 i1717;
+ i1717 = (1717 - x) % 10;
+ I64 i1718;
+ i1718 = (1718 + x) % 10;
+ I64 i1719;
+ i1719 = (1719 - x) % 10;
+ I64 i1720;
+ i1720 = (1720 + x) % 10;
+ I64 i1721;
+ i1721 = (1721 - x) % 10;
+ I64 i1722;
+ i1722 = (1722 + x) % 10;
+ I64 i1723;
+ i1723 = (1723 - x) % 10;
+ I64 i1724;
+ i1724 = (1724 + x) % 10;
+ I64 i1725;
+ i1725 = (1725 - x) % 10;
+ I64 i1726;
+ i1726 = (1726 + x) % 10;
+ I64 i1727;
+ i1727 = (1727 - x) % 10;
+ I64 i1728;
+ i1728 = (1728 + x) % 10;
+ I64 i1729;
+ i1729 = (1729 - x) % 10;
+ I64 i1730;
+ i1730 = (1730 + x) % 10;
+ I64 i1731;
+ i1731 = (1731 - x) % 10;
+ I64 i1732;
+ i1732 = (1732 + x) % 10;
+ I64 i1733;
+ i1733 = (1733 - x) % 10;
+ I64 i1734;
+ i1734 = (1734 + x) % 10;
+ I64 i1735;
+ i1735 = (1735 - x) % 10;
+ I64 i1736;
+ i1736 = (1736 + x) % 10;
+ I64 i1737;
+ i1737 = (1737 - x) % 10;
+ I64 i1738;
+ i1738 = (1738 + x) % 10;
+ I64 i1739;
+ i1739 = (1739 - x) % 10;
+ I64 i1740;
+ i1740 = (1740 + x) % 10;
+ I64 i1741;
+ i1741 = (1741 - x) % 10;
+ I64 i1742;
+ i1742 = (1742 + x) % 10;
+ I64 i1743;
+ i1743 = (1743 - x) % 10;
+ I64 i1744;
+ i1744 = (1744 + x) % 10;
+ I64 i1745;
+ i1745 = (1745 - x) % 10;
+ I64 i1746;
+ i1746 = (1746 + x) % 10;
+ I64 i1747;
+ i1747 = (1747 - x) % 10;
+ I64 i1748;
+ i1748 = (1748 + x) % 10;
+ I64 i1749;
+ i1749 = (1749 - x) % 10;
+ I64 i1750;
+ i1750 = (1750 + x) % 10;
+ I64 i1751;
+ i1751 = (1751 - x) % 10;
+ I64 i1752;
+ i1752 = (1752 + x) % 10;
+ I64 i1753;
+ i1753 = (1753 - x) % 10;
+ I64 i1754;
+ i1754 = (1754 + x) % 10;
+ I64 i1755;
+ i1755 = (1755 - x) % 10;
+ I64 i1756;
+ i1756 = (1756 + x) % 10;
+ I64 i1757;
+ i1757 = (1757 - x) % 10;
+ I64 i1758;
+ i1758 = (1758 + x) % 10;
+ I64 i1759;
+ i1759 = (1759 - x) % 10;
+ I64 i1760;
+ i1760 = (1760 + x) % 10;
+ I64 i1761;
+ i1761 = (1761 - x) % 10;
+ I64 i1762;
+ i1762 = (1762 + x) % 10;
+ I64 i1763;
+ i1763 = (1763 - x) % 10;
+ I64 i1764;
+ i1764 = (1764 + x) % 10;
+ I64 i1765;
+ i1765 = (1765 - x) % 10;
+ I64 i1766;
+ i1766 = (1766 + x) % 10;
+ I64 i1767;
+ i1767 = (1767 - x) % 10;
+ I64 i1768;
+ i1768 = (1768 + x) % 10;
+ I64 i1769;
+ i1769 = (1769 - x) % 10;
+ I64 i1770;
+ i1770 = (1770 + x) % 10;
+ I64 i1771;
+ i1771 = (1771 - x) % 10;
+ I64 i1772;
+ i1772 = (1772 + x) % 10;
+ I64 i1773;
+ i1773 = (1773 - x) % 10;
+ I64 i1774;
+ i1774 = (1774 + x) % 10;
+ I64 i1775;
+ i1775 = (1775 - x) % 10;
+ I64 i1776;
+ i1776 = (1776 + x) % 10;
+ I64 i1777;
+ i1777 = (1777 - x) % 10;
+ I64 i1778;
+ i1778 = (1778 + x) % 10;
+ I64 i1779;
+ i1779 = (1779 - x) % 10;
+ I64 i1780;
+ i1780 = (1780 + x) % 10;
+ I64 i1781;
+ i1781 = (1781 - x) % 10;
+ I64 i1782;
+ i1782 = (1782 + x) % 10;
+ I64 i1783;
+ i1783 = (1783 - x) % 10;
+ I64 i1784;
+ i1784 = (1784 + x) % 10;
+ I64 i1785;
+ i1785 = (1785 - x) % 10;
+ I64 i1786;
+ i1786 = (1786 + x) % 10;
+ I64 i1787;
+ i1787 = (1787 - x) % 10;
+ I64 i1788;
+ i1788 = (1788 + x) % 10;
+ I64 i1789;
+ i1789 = (1789 - x) % 10;
+ I64 i1790;
+ i1790 = (1790 + x) % 10;
+ I64 i1791;
+ i1791 = (1791 - x) % 10;
+ I64 i1792;
+ i1792 = (1792 + x) % 10;
+ I64 i1793;
+ i1793 = (1793 - x) % 10;
+ I64 i1794;
+ i1794 = (1794 + x) % 10;
+ I64 i1795;
+ i1795 = (1795 - x) % 10;
+ I64 i1796;
+ i1796 = (1796 + x) % 10;
+ I64 i1797;
+ i1797 = (1797 - x) % 10;
+ I64 i1798;
+ i1798 = (1798 + x) % 10;
+ I64 i1799;
+ i1799 = (1799 - x) % 10;
+ I64 i1800;
+ i1800 = (1800 + x) % 10;
+ I64 i1801;
+ i1801 = (1801 - x) % 10;
+ I64 i1802;
+ i1802 = (1802 + x) % 10;
+ I64 i1803;
+ i1803 = (1803 - x) % 10;
+ I64 i1804;
+ i1804 = (1804 + x) % 10;
+ I64 i1805;
+ i1805 = (1805 - x) % 10;
+ I64 i1806;
+ i1806 = (1806 + x) % 10;
+ I64 i1807;
+ i1807 = (1807 - x) % 10;
+ I64 i1808;
+ i1808 = (1808 + x) % 10;
+ I64 i1809;
+ i1809 = (1809 - x) % 10;
+ I64 i1810;
+ i1810 = (1810 + x) % 10;
+ I64 i1811;
+ i1811 = (1811 - x) % 10;
+ I64 i1812;
+ i1812 = (1812 + x) % 10;
+ I64 i1813;
+ i1813 = (1813 - x) % 10;
+ I64 i1814;
+ i1814 = (1814 + x) % 10;
+ I64 i1815;
+ i1815 = (1815 - x) % 10;
+ I64 i1816;
+ i1816 = (1816 + x) % 10;
+ I64 i1817;
+ i1817 = (1817 - x) % 10;
+ I64 i1818;
+ i1818 = (1818 + x) % 10;
+ I64 i1819;
+ i1819 = (1819 - x) % 10;
+ I64 i1820;
+ i1820 = (1820 + x) % 10;
+ I64 i1821;
+ i1821 = (1821 - x) % 10;
+ I64 i1822;
+ i1822 = (1822 + x) % 10;
+ I64 i1823;
+ i1823 = (1823 - x) % 10;
+ I64 i1824;
+ i1824 = (1824 + x) % 10;
+ I64 i1825;
+ i1825 = (1825 - x) % 10;
+ I64 i1826;
+ i1826 = (1826 + x) % 10;
+ I64 i1827;
+ i1827 = (1827 - x) % 10;
+ I64 i1828;
+ i1828 = (1828 + x) % 10;
+ I64 i1829;
+ i1829 = (1829 - x) % 10;
+ I64 i1830;
+ i1830 = (1830 + x) % 10;
+ I64 i1831;
+ i1831 = (1831 - x) % 10;
+ I64 i1832;
+ i1832 = (1832 + x) % 10;
+ I64 i1833;
+ i1833 = (1833 - x) % 10;
+ I64 i1834;
+ i1834 = (1834 + x) % 10;
+ I64 i1835;
+ i1835 = (1835 - x) % 10;
+ I64 i1836;
+ i1836 = (1836 + x) % 10;
+ I64 i1837;
+ i1837 = (1837 - x) % 10;
+ I64 i1838;
+ i1838 = (1838 + x) % 10;
+ I64 i1839;
+ i1839 = (1839 - x) % 10;
+ I64 i1840;
+ i1840 = (1840 + x) % 10;
+ I64 i1841;
+ i1841 = (1841 - x) % 10;
+ I64 i1842;
+ i1842 = (1842 + x) % 10;
+ I64 i1843;
+ i1843 = (1843 - x) % 10;
+ I64 i1844;
+ i1844 = (1844 + x) % 10;
+ I64 i1845;
+ i1845 = (1845 - x) % 10;
+ I64 i1846;
+ i1846 = (1846 + x) % 10;
+ I64 i1847;
+ i1847 = (1847 - x) % 10;
+ I64 i1848;
+ i1848 = (1848 + x) % 10;
+ I64 i1849;
+ i1849 = (1849 - x) % 10;
+ I64 i1850;
+ i1850 = (1850 + x) % 10;
+ I64 i1851;
+ i1851 = (1851 - x) % 10;
+ I64 i1852;
+ i1852 = (1852 + x) % 10;
+ I64 i1853;
+ i1853 = (1853 - x) % 10;
+ I64 i1854;
+ i1854 = (1854 + x) % 10;
+ I64 i1855;
+ i1855 = (1855 - x) % 10;
+ I64 i1856;
+ i1856 = (1856 + x) % 10;
+ I64 i1857;
+ i1857 = (1857 - x) % 10;
+ I64 i1858;
+ i1858 = (1858 + x) % 10;
+ I64 i1859;
+ i1859 = (1859 - x) % 10;
+ I64 i1860;
+ i1860 = (1860 + x) % 10;
+ I64 i1861;
+ i1861 = (1861 - x) % 10;
+ I64 i1862;
+ i1862 = (1862 + x) % 10;
+ I64 i1863;
+ i1863 = (1863 - x) % 10;
+ I64 i1864;
+ i1864 = (1864 + x) % 10;
+ I64 i1865;
+ i1865 = (1865 - x) % 10;
+ I64 i1866;
+ i1866 = (1866 + x) % 10;
+ I64 i1867;
+ i1867 = (1867 - x) % 10;
+ I64 i1868;
+ i1868 = (1868 + x) % 10;
+ I64 i1869;
+ i1869 = (1869 - x) % 10;
+ I64 i1870;
+ i1870 = (1870 + x) % 10;
+ I64 i1871;
+ i1871 = (1871 - x) % 10;
+ I64 i1872;
+ i1872 = (1872 + x) % 10;
+ I64 i1873;
+ i1873 = (1873 - x) % 10;
+ I64 i1874;
+ i1874 = (1874 + x) % 10;
+ I64 i1875;
+ i1875 = (1875 - x) % 10;
+ I64 i1876;
+ i1876 = (1876 + x) % 10;
+ I64 i1877;
+ i1877 = (1877 - x) % 10;
+ I64 i1878;
+ i1878 = (1878 + x) % 10;
+ I64 i1879;
+ i1879 = (1879 - x) % 10;
+ I64 i1880;
+ i1880 = (1880 + x) % 10;
+ I64 i1881;
+ i1881 = (1881 - x) % 10;
+ I64 i1882;
+ i1882 = (1882 + x) % 10;
+ I64 i1883;
+ i1883 = (1883 - x) % 10;
+ I64 i1884;
+ i1884 = (1884 + x) % 10;
+ I64 i1885;
+ i1885 = (1885 - x) % 10;
+ I64 i1886;
+ i1886 = (1886 + x) % 10;
+ I64 i1887;
+ i1887 = (1887 - x) % 10;
+ I64 i1888;
+ i1888 = (1888 + x) % 10;
+ I64 i1889;
+ i1889 = (1889 - x) % 10;
+ I64 i1890;
+ i1890 = (1890 + x) % 10;
+ I64 i1891;
+ i1891 = (1891 - x) % 10;
+ I64 i1892;
+ i1892 = (1892 + x) % 10;
+ I64 i1893;
+ i1893 = (1893 - x) % 10;
+ I64 i1894;
+ i1894 = (1894 + x) % 10;
+ I64 i1895;
+ i1895 = (1895 - x) % 10;
+ I64 i1896;
+ i1896 = (1896 + x) % 10;
+ I64 i1897;
+ i1897 = (1897 - x) % 10;
+ I64 i1898;
+ i1898 = (1898 + x) % 10;
+ I64 i1899;
+ i1899 = (1899 - x) % 10;
+ I64 i1900;
+ i1900 = (1900 + x) % 10;
+ I64 i1901;
+ i1901 = (1901 - x) % 10;
+ I64 i1902;
+ i1902 = (1902 + x) % 10;
+ I64 i1903;
+ i1903 = (1903 - x) % 10;
+ I64 i1904;
+ i1904 = (1904 + x) % 10;
+ I64 i1905;
+ i1905 = (1905 - x) % 10;
+ I64 i1906;
+ i1906 = (1906 + x) % 10;
+ I64 i1907;
+ i1907 = (1907 - x) % 10;
+ I64 i1908;
+ i1908 = (1908 + x) % 10;
+ I64 i1909;
+ i1909 = (1909 - x) % 10;
+ I64 i1910;
+ i1910 = (1910 + x) % 10;
+ I64 i1911;
+ i1911 = (1911 - x) % 10;
+ I64 i1912;
+ i1912 = (1912 + x) % 10;
+ I64 i1913;
+ i1913 = (1913 - x) % 10;
+ I64 i1914;
+ i1914 = (1914 + x) % 10;
+ I64 i1915;
+ i1915 = (1915 - x) % 10;
+ I64 i1916;
+ i1916 = (1916 + x) % 10;
+ I64 i1917;
+ i1917 = (1917 - x) % 10;
+ I64 i1918;
+ i1918 = (1918 + x) % 10;
+ I64 i1919;
+ i1919 = (1919 - x) % 10;
+ I64 i1920;
+ i1920 = (1920 + x) % 10;
+ I64 i1921;
+ i1921 = (1921 - x) % 10;
+ I64 i1922;
+ i1922 = (1922 + x) % 10;
+ I64 i1923;
+ i1923 = (1923 - x) % 10;
+ I64 i1924;
+ i1924 = (1924 + x) % 10;
+ I64 i1925;
+ i1925 = (1925 - x) % 10;
+ I64 i1926;
+ i1926 = (1926 + x) % 10;
+ I64 i1927;
+ i1927 = (1927 - x) % 10;
+ I64 i1928;
+ i1928 = (1928 + x) % 10;
+ I64 i1929;
+ i1929 = (1929 - x) % 10;
+ I64 i1930;
+ i1930 = (1930 + x) % 10;
+ I64 i1931;
+ i1931 = (1931 - x) % 10;
+ I64 i1932;
+ i1932 = (1932 + x) % 10;
+ I64 i1933;
+ i1933 = (1933 - x) % 10;
+ I64 i1934;
+ i1934 = (1934 + x) % 10;
+ I64 i1935;
+ i1935 = (1935 - x) % 10;
+ I64 i1936;
+ i1936 = (1936 + x) % 10;
+ I64 i1937;
+ i1937 = (1937 - x) % 10;
+ I64 i1938;
+ i1938 = (1938 + x) % 10;
+ I64 i1939;
+ i1939 = (1939 - x) % 10;
+ I64 i1940;
+ i1940 = (1940 + x) % 10;
+ I64 i1941;
+ i1941 = (1941 - x) % 10;
+ I64 i1942;
+ i1942 = (1942 + x) % 10;
+ I64 i1943;
+ i1943 = (1943 - x) % 10;
+ I64 i1944;
+ i1944 = (1944 + x) % 10;
+ I64 i1945;
+ i1945 = (1945 - x) % 10;
+ I64 i1946;
+ i1946 = (1946 + x) % 10;
+ I64 i1947;
+ i1947 = (1947 - x) % 10;
+ I64 i1948;
+ i1948 = (1948 + x) % 10;
+ I64 i1949;
+ i1949 = (1949 - x) % 10;
+ I64 i1950;
+ i1950 = (1950 + x) % 10;
+ I64 i1951;
+ i1951 = (1951 - x) % 10;
+ I64 i1952;
+ i1952 = (1952 + x) % 10;
+ I64 i1953;
+ i1953 = (1953 - x) % 10;
+ I64 i1954;
+ i1954 = (1954 + x) % 10;
+ I64 i1955;
+ i1955 = (1955 - x) % 10;
+ I64 i1956;
+ i1956 = (1956 + x) % 10;
+ I64 i1957;
+ i1957 = (1957 - x) % 10;
+ I64 i1958;
+ i1958 = (1958 + x) % 10;
+ I64 i1959;
+ i1959 = (1959 - x) % 10;
+ I64 i1960;
+ i1960 = (1960 + x) % 10;
+ I64 i1961;
+ i1961 = (1961 - x) % 10;
+ I64 i1962;
+ i1962 = (1962 + x) % 10;
+ I64 i1963;
+ i1963 = (1963 - x) % 10;
+ I64 i1964;
+ i1964 = (1964 + x) % 10;
+ I64 i1965;
+ i1965 = (1965 - x) % 10;
+ I64 i1966;
+ i1966 = (1966 + x) % 10;
+ I64 i1967;
+ i1967 = (1967 - x) % 10;
+ I64 i1968;
+ i1968 = (1968 + x) % 10;
+ I64 i1969;
+ i1969 = (1969 - x) % 10;
+ I64 i1970;
+ i1970 = (1970 + x) % 10;
+ I64 i1971;
+ i1971 = (1971 - x) % 10;
+ I64 i1972;
+ i1972 = (1972 + x) % 10;
+ I64 i1973;
+ i1973 = (1973 - x) % 10;
+ I64 i1974;
+ i1974 = (1974 + x) % 10;
+ I64 i1975;
+ i1975 = (1975 - x) % 10;
+ I64 i1976;
+ i1976 = (1976 + x) % 10;
+ I64 i1977;
+ i1977 = (1977 - x) % 10;
+ I64 i1978;
+ i1978 = (1978 + x) % 10;
+ I64 i1979;
+ i1979 = (1979 - x) % 10;
+ I64 i1980;
+ i1980 = (1980 + x) % 10;
+ I64 i1981;
+ i1981 = (1981 - x) % 10;
+ I64 i1982;
+ i1982 = (1982 + x) % 10;
+ I64 i1983;
+ i1983 = (1983 - x) % 10;
+ I64 i1984;
+ i1984 = (1984 + x) % 10;
+ I64 i1985;
+ i1985 = (1985 - x) % 10;
+ I64 i1986;
+ i1986 = (1986 + x) % 10;
+ I64 i1987;
+ i1987 = (1987 - x) % 10;
+ I64 i1988;
+ i1988 = (1988 + x) % 10;
+ I64 i1989;
+ i1989 = (1989 - x) % 10;
+ I64 i1990;
+ i1990 = (1990 + x) % 10;
+ I64 i1991;
+ i1991 = (1991 - x) % 10;
+ I64 i1992;
+ i1992 = (1992 + x) % 10;
+ I64 i1993;
+ i1993 = (1993 - x) % 10;
+ I64 i1994;
+ i1994 = (1994 + x) % 10;
+ I64 i1995;
+ i1995 = (1995 - x) % 10;
+ I64 i1996;
+ i1996 = (1996 + x) % 10;
+ I64 i1997;
+ i1997 = (1997 - x) % 10;
+ I64 i1998;
+ i1998 = (1998 + x) % 10;
+ I64 i1999;
+ i1999 = (1999 - x) % 10;
+ I64 i2000;
+ i2000 = (2000 + x) % 10;
+ I64 i2001;
+ i2001 = (2001 - x) % 10;
+ I64 i2002;
+ i2002 = (2002 + x) % 10;
+ I64 i2003;
+ i2003 = (2003 - x) % 10;
+ I64 i2004;
+ i2004 = (2004 + x) % 10;
+ I64 i2005;
+ i2005 = (2005 - x) % 10;
+ I64 i2006;
+ i2006 = (2006 + x) % 10;
+ I64 i2007;
+ i2007 = (2007 - x) % 10;
+ I64 i2008;
+ i2008 = (2008 + x) % 10;
+ I64 i2009;
+ i2009 = (2009 - x) % 10;
+ I64 i2010;
+ i2010 = (2010 + x) % 10;
+ I64 i2011;
+ i2011 = (2011 - x) % 10;
+ I64 i2012;
+ i2012 = (2012 + x) % 10;
+ I64 i2013;
+ i2013 = (2013 - x) % 10;
+ I64 i2014;
+ i2014 = (2014 + x) % 10;
+ I64 i2015;
+ i2015 = (2015 - x) % 10;
+ I64 i2016;
+ i2016 = (2016 + x) % 10;
+ I64 i2017;
+ i2017 = (2017 - x) % 10;
+ I64 i2018;
+ i2018 = (2018 + x) % 10;
+ I64 i2019;
+ i2019 = (2019 - x) % 10;
+ I64 i2020;
+ i2020 = (2020 + x) % 10;
+ I64 i2021;
+ i2021 = (2021 - x) % 10;
+ I64 i2022;
+ i2022 = (2022 + x) % 10;
+ I64 i2023;
+ i2023 = (2023 - x) % 10;
+ I64 i2024;
+ i2024 = (2024 + x) % 10;
+ I64 i2025;
+ i2025 = (2025 - x) % 10;
+ I64 i2026;
+ i2026 = (2026 + x) % 10;
+ I64 i2027;
+ i2027 = (2027 - x) % 10;
+ I64 i2028;
+ i2028 = (2028 + x) % 10;
+ I64 i2029;
+ i2029 = (2029 - x) % 10;
+ I64 i2030;
+ i2030 = (2030 + x) % 10;
+ I64 i2031;
+ i2031 = (2031 - x) % 10;
+ I64 i2032;
+ i2032 = (2032 + x) % 10;
+ I64 i2033;
+ i2033 = (2033 - x) % 10;
+ I64 i2034;
+ i2034 = (2034 + x) % 10;
+ I64 i2035;
+ i2035 = (2035 - x) % 10;
+ I64 i2036;
+ i2036 = (2036 + x) % 10;
+ I64 i2037;
+ i2037 = (2037 - x) % 10;
+ I64 i2038;
+ i2038 = (2038 + x) % 10;
+ I64 i2039;
+ i2039 = (2039 - x) % 10;
+ I64 i2040;
+ i2040 = (2040 + x) % 10;
+ I64 i2041;
+ i2041 = (2041 - x) % 10;
+ I64 i2042;
+ i2042 = (2042 + x) % 10;
+ I64 i2043;
+ i2043 = (2043 - x) % 10;
+ I64 i2044;
+ i2044 = (2044 + x) % 10;
+ I64 i2045;
+ i2045 = (2045 - x) % 10;
+ I64 i2046;
+ i2046 = (2046 + x) % 10;
+ I64 i2047;
+ i2047 = (2047 - x) % 10;
+ I64 i2048;
+ i2048 = (2048 + x) % 10;
+ I64 i2049;
+ i2049 = (2049 - x) % 10;
+ I64 i2050;
+ i2050 = (2050 + x) % 10;
+ I64 i2051;
+ i2051 = (2051 - x) % 10;
+ I64 i2052;
+ i2052 = (2052 + x) % 10;
+ I64 i2053;
+ i2053 = (2053 - x) % 10;
+ I64 i2054;
+ i2054 = (2054 + x) % 10;
+ I64 i2055;
+ i2055 = (2055 - x) % 10;
+ I64 i2056;
+ i2056 = (2056 + x) % 10;
+ I64 i2057;
+ i2057 = (2057 - x) % 10;
+ I64 i2058;
+ i2058 = (2058 + x) % 10;
+ I64 i2059;
+ i2059 = (2059 - x) % 10;
+ I64 i2060;
+ i2060 = (2060 + x) % 10;
+
+ I64 res;
+ ccall printf("Before switch\n");
+ switch [0 .. 9] ((i0+i1+i2+i3+i4+i5+i6+i7+i8+i9+i10+i11+i12+i13+i14+i15+i16+i17+i18+i19+i20+i21+i22+i23+i24+i25+i26+i27+i28+i29+i30+i31+i32+i33+i34+i35+i36+i37+i38+i39+i40+i41+i42+i43+i44+i45+i46+i47+i48+i49+i50+i51+i52+i53+i54+i55+i56+i57+i58+i59+i60+i61+i62+i63+i64+i65+i66+i67+i68+i69+i70+i71+i72+i73+i74+i75+i76+i77+i78+i79+i80+i81+i82+i83+i84+i85+i86+i87+i88+i89+i90+i91+i92+i93+i94+i95+i96+i97+i98+i99+i100+i101+i102+i103+i104+i105+i106+i107+i108+i109+i110+i111+i112+i113+i114+i115+i116+i117+i118+i119+i120+i121+i122+i123+i124+i125+i126+i127+i128+i129+i130+i131+i132+i133+i134+i135+i136+i137+i138+i139+i140+i141+i142+i143+i144+i145+i146+i147+i148+i149+i150+i151+i152+i153+i154+i155+i156+i157+i158+i159+i160+i161+i162+i163+i164+i165+i166+i167+i168+i169+i170+i171+i172+i173+i174+i175+i176+i177+i178+i179+i180+i181+i182+i183+i184+i185+i186+i187+i188+i189+i190+i191+i192+i193+i194+i195+i196+i197+i198+i199+i200+i201+i202+i203+i204+i205+i206+i207+i208+i209+i210+i211+i212+i213+i214+i215+i216+i217+i218+i219+i220+i221+i222+i223+i224+i225+i226+i227+i228+i229+i230+i231+i232+i233+i234+i235+i236+i237+i238+i239+i240+i241+i242+i243+i244+i245+i246+i247+i248+i249+i250+i251+i252+i253+i254+i255+i256+i257+i258+i259+i260+i261+i262+i263+i264+i265+i266+i267+i268+i269+i270+i271+i272+i273+i274+i275+i276+i277+i278+i279+i280+i281+i282+i283+i284+i285+i286+i287+i288+i289+i290+i291+i292+i293+i294+i295+i296+i297+i298+i299+i300+i301+i302+i303+i304+i305+i306+i307+i308+i309+i310+i311+i312+i313+i314+i315+i316+i317+i318+i319+i320+i321+i322+i323+i324+i325+i326+i327+i328+i329+i330+i331+i332+i333+i334+i335+i336+i337+i338+i339+i340+i341+i342+i343+i344+i345+i346+i347+i348+i349+i350+i351+i352+i353+i354+i355+i356+i357+i358+i359+i360+i361+i362+i363+i364+i365+i366+i367+i368+i369+i370+i371+i372+i373+i374+i375+i376+i377+i378+i379+i380+i381+i382+i383+i384+i385+i386+i387+i388+i389+i390+i391+i392+i393+i394+i395+i396+i397+i398+i399+i400+i401+i402+i403+i404+i405+i406+i407+i408+i409+i410+i411+i412+i413+i414+i415+i416+i417+i418+i419+i420+i421+i422+i423+i424+i425+i426+i427+i428+i429+i430+i431+i432+i433+i434+i435+i436+i437+i438+i439+i440+i441+i442+i443+i444+i445+i446+i447+i448+i449+i450+i451+i452+i453+i454+i455+i456+i457+i458+i459+i460+i461+i462+i463+i464+i465+i466+i467+i468+i469+i470+i471+i472+i473+i474+i475+i476+i477+i478+i479+i480+i481+i482+i483+i484+i485+i486+i487+i488+i489+i490+i491+i492+i493+i494+i495+i496+i497+i498+i499+i500+i501+i502+i503+i504+i505+i506+i507+i508+i509+i510+i511+i512+i513+i514+i515+i516+i517+i518+i519+i520+i521+i522+i523+i524+i525+i526+i527+i528+i529+i530+i531+i532+i533+i534+i535+i536+i537+i538+i539+i540+i541+i542+i543+i544+i545+i546+i547+i548+i549+i550+i551+i552+i553+i554+i555+i556+i557+i558+i559+i560+i561+i562+i563+i564+i565+i566+i567+i568+i569+i570+i571+i572+i573+i574+i575+i576+i577+i578+i579+i580+i581+i582+i583+i584+i585+i586+i587+i588+i589+i590+i591+i592+i593+i594+i595+i596+i597+i598+i599+i600+i601+i602+i603+i604+i605+i606+i607+i608+i609+i610+i611+i612+i613+i614+i615+i616+i617+i618+i619+i620+i621+i622+i623+i624+i625+i626+i627+i628+i629+i630+i631+i632+i633+i634+i635+i636+i637+i638+i639+i640+i641+i642+i643+i644+i645+i646+i647+i648+i649+i650+i651+i652+i653+i654+i655+i656+i657+i658+i659+i660+i661+i662+i663+i664+i665+i666+i667+i668+i669+i670+i671+i672+i673+i674+i675+i676+i677+i678+i679+i680+i681+i682+i683+i684+i685+i686+i687+i688+i689+i690+i691+i692+i693+i694+i695+i696+i697+i698+i699+i700+i701+i702+i703+i704+i705+i706+i707+i708+i709+i710+i711+i712+i713+i714+i715+i716+i717+i718+i719+i720+i721+i722+i723+i724+i725+i726+i727+i728+i729+i730+i731+i732+i733+i734+i735+i736+i737+i738+i739+i740+i741+i742+i743+i744+i745+i746+i747+i748+i749+i750+i751+i752+i753+i754+i755+i756+i757+i758+i759+i760+i761+i762+i763+i764+i765+i766+i767+i768+i769+i770+i771+i772+i773+i774+i775+i776+i777+i778+i779+i780+i781+i782+i783+i784+i785+i786+i787+i788+i789+i790+i791+i792+i793+i794+i795+i796+i797+i798+i799+i800+i801+i802+i803+i804+i805+i806+i807+i808+i809+i810+i811+i812+i813+i814+i815+i816+i817+i818+i819+i820+i821+i822+i823+i824+i825+i826+i827+i828+i829+i830+i831+i832+i833+i834+i835+i836+i837+i838+i839+i840+i841+i842+i843+i844+i845+i846+i847+i848+i849+i850+i851+i852+i853+i854+i855+i856+i857+i858+i859+i860+i861+i862+i863+i864+i865+i866+i867+i868+i869+i870+i871+i872+i873+i874+i875+i876+i877+i878+i879+i880+i881+i882+i883+i884+i885+i886+i887+i888+i889+i890+i891+i892+i893+i894+i895+i896+i897+i898+i899+i900+i901+i902+i903+i904+i905+i906+i907+i908+i909+i910+i911+i912+i913+i914+i915+i916+i917+i918+i919+i920+i921+i922+i923+i924+i925+i926+i927+i928+i929+i930+i931+i932+i933+i934+i935+i936+i937+i938+i939+i940+i941+i942+i943+i944+i945+i946+i947+i948+i949+i950+i951+i952+i953+i954+i955+i956+i957+i958+i959+i960+i961+i962+i963+i964+i965+i966+i967+i968+i969+i970+i971+i972+i973+i974+i975+i976+i977+i978+i979+i980+i981+i982+i983+i984+i985+i986+i987+i988+i989+i990+i991+i992+i993+i994+i995+i996+i997+i998+i999+i1000+i1001+i1002+i1003+i1004+i1005+i1006+i1007+i1008+i1009+i1010+i1011+i1012+i1013+i1014+i1015+i1016+i1017+i1018+i1019+i1020+i1021+i1022+i1023+i1024+i1025+i1026+i1027+i1028+i1029+i1030+i1031+i1032+i1033+i1034+i1035+i1036+i1037+i1038+i1039+i1040+i1041+i1042+i1043+i1044+i1045+i1046+i1047+i1048+i1049+i1050+i1051+i1052+i1053+i1054+i1055+i1056+i1057+i1058+i1059+i1060+i1061+i1062+i1063+i1064+i1065+i1066+i1067+i1068+i1069+i1070+i1071+i1072+i1073+i1074+i1075+i1076+i1077+i1078+i1079+i1080+i1081+i1082+i1083+i1084+i1085+i1086+i1087+i1088+i1089+i1090+i1091+i1092+i1093+i1094+i1095+i1096+i1097+i1098+i1099+i1100+i1101+i1102+i1103+i1104+i1105+i1106+i1107+i1108+i1109+i1110+i1111+i1112+i1113+i1114+i1115+i1116+i1117+i1118+i1119+i1120+i1121+i1122+i1123+i1124+i1125+i1126+i1127+i1128+i1129+i1130+i1131+i1132+i1133+i1134+i1135+i1136+i1137+i1138+i1139+i1140+i1141+i1142+i1143+i1144+i1145+i1146+i1147+i1148+i1149+i1150+i1151+i1152+i1153+i1154+i1155+i1156+i1157+i1158+i1159+i1160+i1161+i1162+i1163+i1164+i1165+i1166+i1167+i1168+i1169+i1170+i1171+i1172+i1173+i1174+i1175+i1176+i1177+i1178+i1179+i1180+i1181+i1182+i1183+i1184+i1185+i1186+i1187+i1188+i1189+i1190+i1191+i1192+i1193+i1194+i1195+i1196+i1197+i1198+i1199+i1200+i1201+i1202+i1203+i1204+i1205+i1206+i1207+i1208+i1209+i1210+i1211+i1212+i1213+i1214+i1215+i1216+i1217+i1218+i1219+i1220+i1221+i1222+i1223+i1224+i1225+i1226+i1227+i1228+i1229+i1230+i1231+i1232+i1233+i1234+i1235+i1236+i1237+i1238+i1239+i1240+i1241+i1242+i1243+i1244+i1245+i1246+i1247+i1248+i1249+i1250+i1251+i1252+i1253+i1254+i1255+i1256+i1257+i1258+i1259+i1260+i1261+i1262+i1263+i1264+i1265+i1266+i1267+i1268+i1269+i1270+i1271+i1272+i1273+i1274+i1275+i1276+i1277+i1278+i1279+i1280+i1281+i1282+i1283+i1284+i1285+i1286+i1287+i1288+i1289+i1290+i1291+i1292+i1293+i1294+i1295+i1296+i1297+i1298+i1299+i1300+i1301+i1302+i1303+i1304+i1305+i1306+i1307+i1308+i1309+i1310+i1311+i1312+i1313+i1314+i1315+i1316+i1317+i1318+i1319+i1320+i1321+i1322+i1323+i1324+i1325+i1326+i1327+i1328+i1329+i1330+i1331+i1332+i1333+i1334+i1335+i1336+i1337+i1338+i1339+i1340+i1341+i1342+i1343+i1344+i1345+i1346+i1347+i1348+i1349+i1350+i1351+i1352+i1353+i1354+i1355+i1356+i1357+i1358+i1359+i1360+i1361+i1362+i1363+i1364+i1365+i1366+i1367+i1368+i1369+i1370+i1371+i1372+i1373+i1374+i1375+i1376+i1377+i1378+i1379+i1380+i1381+i1382+i1383+i1384+i1385+i1386+i1387+i1388+i1389+i1390+i1391+i1392+i1393+i1394+i1395+i1396+i1397+i1398+i1399+i1400+i1401+i1402+i1403+i1404+i1405+i1406+i1407+i1408+i1409+i1410+i1411+i1412+i1413+i1414+i1415+i1416+i1417+i1418+i1419+i1420+i1421+i1422+i1423+i1424+i1425+i1426+i1427+i1428+i1429+i1430+i1431+i1432+i1433+i1434+i1435+i1436+i1437+i1438+i1439+i1440+i1441+i1442+i1443+i1444+i1445+i1446+i1447+i1448+i1449+i1450+i1451+i1452+i1453+i1454+i1455+i1456+i1457+i1458+i1459+i1460+i1461+i1462+i1463+i1464+i1465+i1466+i1467+i1468+i1469+i1470+i1471+i1472+i1473+i1474+i1475+i1476+i1477+i1478+i1479+i1480+i1481+i1482+i1483+i1484+i1485+i1486+i1487+i1488+i1489+i1490+i1491+i1492+i1493+i1494+i1495+i1496+i1497+i1498+i1499+i1500+i1501+i1502+i1503+i1504+i1505+i1506+i1507+i1508+i1509+i1510+i1511+i1512+i1513+i1514+i1515+i1516+i1517+i1518+i1519+i1520+i1521+i1522+i1523+i1524+i1525+i1526+i1527+i1528+i1529+i1530+i1531+i1532+i1533+i1534+i1535+i1536+i1537+i1538+i1539+i1540+i1541+i1542+i1543+i1544+i1545+i1546+i1547+i1548+i1549+i1550+i1551+i1552+i1553+i1554+i1555+i1556+i1557+i1558+i1559+i1560+i1561+i1562+i1563+i1564+i1565+i1566+i1567+i1568+i1569+i1570+i1571+i1572+i1573+i1574+i1575+i1576+i1577+i1578+i1579+i1580+i1581+i1582+i1583+i1584+i1585+i1586+i1587+i1588+i1589+i1590+i1591+i1592+i1593+i1594+i1595+i1596+i1597+i1598+i1599+i1600+i1601+i1602+i1603+i1604+i1605+i1606+i1607+i1608+i1609+i1610+i1611+i1612+i1613+i1614+i1615+i1616+i1617+i1618+i1619+i1620+i1621+i1622+i1623+i1624+i1625+i1626+i1627+i1628+i1629+i1630+i1631+i1632+i1633+i1634+i1635+i1636+i1637+i1638+i1639+i1640+i1641+i1642+i1643+i1644+i1645+i1646+i1647+i1648+i1649+i1650+i1651+i1652+i1653+i1654+i1655+i1656+i1657+i1658+i1659+i1660+i1661+i1662+i1663+i1664+i1665+i1666+i1667+i1668+i1669+i1670+i1671+i1672+i1673+i1674+i1675+i1676+i1677+i1678+i1679+i1680+i1681+i1682+i1683+i1684+i1685+i1686+i1687+i1688+i1689+i1690+i1691+i1692+i1693+i1694+i1695+i1696+i1697+i1698+i1699+i1700+i1701+i1702+i1703+i1704+i1705+i1706+i1707+i1708+i1709+i1710+i1711+i1712+i1713+i1714+i1715+i1716+i1717+i1718+i1719+i1720+i1721+i1722+i1723+i1724+i1725+i1726+i1727+i1728+i1729+i1730+i1731+i1732+i1733+i1734+i1735+i1736+i1737+i1738+i1739+i1740+i1741+i1742+i1743+i1744+i1745+i1746+i1747+i1748+i1749+i1750+i1751+i1752+i1753+i1754+i1755+i1756+i1757+i1758+i1759+i1760+i1761+i1762+i1763+i1764+i1765+i1766+i1767+i1768+i1769+i1770+i1771+i1772+i1773+i1774+i1775+i1776+i1777+i1778+i1779+i1780+i1781+i1782+i1783+i1784+i1785+i1786+i1787+i1788+i1789+i1790+i1791+i1792+i1793+i1794+i1795+i1796+i1797+i1798+i1799+i1800+i1801+i1802+i1803+i1804+i1805+i1806+i1807+i1808+i1809+i1810+i1811+i1812+i1813+i1814+i1815+i1816+i1817+i1818+i1819+i1820+i1821+i1822+i1823+i1824+i1825+i1826+i1827+i1828+i1829+i1830+i1831+i1832+i1833+i1834+i1835+i1836+i1837+i1838+i1839+i1840+i1841+i1842+i1843+i1844+i1845+i1846+i1847+i1848+i1849+i1850+i1851+i1852+i1853+i1854+i1855+i1856+i1857+i1858+i1859+i1860+i1861+i1862+i1863+i1864+i1865+i1866+i1867+i1868+i1869+i1870+i1871+i1872+i1873+i1874+i1875+i1876+i1877+i1878+i1879+i1880+i1881+i1882+i1883+i1884+i1885+i1886+i1887+i1888+i1889+i1890+i1891+i1892+i1893+i1894+i1895+i1896+i1897+i1898+i1899+i1900+i1901+i1902+i1903+i1904+i1905+i1906+i1907+i1908+i1909+i1910+i1911+i1912+i1913+i1914+i1915+i1916+i1917+i1918+i1919+i1920+i1921+i1922+i1923+i1924+i1925+i1926+i1927+i1928+i1929+i1930+i1931+i1932+i1933+i1934+i1935+i1936+i1937+i1938+i1939+i1940+i1941+i1942+i1943+i1944+i1945+i1946+i1947+i1948+i1949+i1950+i1951+i1952+i1953+i1954+i1955+i1956+i1957+i1958+i1959+i1960+i1961+i1962+i1963+i1964+i1965+i1966+i1967+i1968+i1969+i1970+i1971+i1972+i1973+i1974+i1975+i1976+i1977+i1978+i1979+i1980+i1981+i1982+i1983+i1984+i1985+i1986+i1987+i1988+i1989+i1990+i1991+i1992+i1993+i1994+i1995+i1996+i1997+i1998+i1999+i2000+i2001+i2002+i2003+i2004+i2005+i2006+i2007+i2008+i2009+i2010+i2011+i2012+i2013+i2014+i2015+i2016+i2017+i2018+i2019+i2020+i2021+i2022+i2023+i2024+i2025+i2026+i2027+i2028+i2029+i2030+i2031+i2032+i2033+i2034+i2035+i2036+i2037+i2038+i2039+i2040+i2041+i2042+i2043+i2044+i2045+i2046+i2047+i2048+i2049+i2050+i2051+i2052+i2053+i2054+i2055+i2056+i2057+i2058+i2059+i2060) % 10) {
+ case 0: {
+ ccall printf("Inside branch %d \n", 0);
+ res = i0;
+ ccall printf("Before jump %d \n", 0);
+ goto END;
+ }
+ case 1: {
+ ccall printf("Inside branch %d \n", 1);
+ res = i1;
+ ccall printf("Before jump %d \n", 1);
+ goto END;
+ }
+ case 2: {
+ ccall printf("Inside branch %d \n", 2);
+ res = i2;
+ ccall printf("Before jump %d \n", 2);
+ goto END;
+ }
+ case 3: {
+ ccall printf("Inside branch %d \n", 3);
+ res = i3;
+ ccall printf("Before jump %d \n", 3);
+ goto END;
+ }
+ case 4: {
+ ccall printf("Inside branch %d \n", 4);
+ res = i4;
+ ccall printf("Before jump %d \n", 4);
+ goto END;
+ }
+ case 5: {
+ ccall printf("Inside branch %d \n", 5);
+ res = i5;
+ ccall printf("Before jump %d \n", 5);
+ goto END;
+ }
+ case 6: {
+ ccall printf("Inside branch %d \n", 6);
+ res = i6;
+ ccall printf("Before jump %d \n", 6);
+ goto END;
+ }
+ case 7: {
+ ccall printf("Inside branch %d \n", 7);
+ res = i7;
+ ccall printf("Before jump %d \n", 7);
+ goto END;
+ }
+ case 8: {
+ ccall printf("Inside branch %d \n", 8);
+ res = i8;
+ ccall printf("Before jump %d \n", 8);
+ goto END;
+ }
+ default: {
+ ccall printf("Inside default branch\n");
+ res = x * (2 :: I64);
+ ccall printf("Before jump default\n");
+ goto END;
+ }
+ }
+END:
+ ccall printf("End :) \n");
+ return (res);
+}
=====================================
testsuite/tests/cmm/should_run/all.T
=====================================
@@ -31,6 +31,13 @@ test('T22871',
multi_compile_and_run,
['T22871', [('T22871_cmm.cmm', '')], ''])
+test('JumpTableNoStackDealloc',
+ [ extra_run_opts('"' + config.libdir + '"')
+ , req_cmm
+ ],
+ multi_compile_and_run,
+ ['JumpTableNoStackDealloc', [('JumpTableNoStackDealloc_cmm.cmm', '')], ''])
+
test('AtomicFetch',
[ extra_run_opts('"' + config.libdir + '"')
, req_cmm
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/25caa0df748f4ad9964088497d88e78df63e7390...b94b0181a2e5755346a0f70975c99222d92ac974
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/25caa0df748f4ad9964088497d88e78df63e7390...b94b0181a2e5755346a0f70975c99222d92ac974
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20250223/ee0c2670/attachment-0001.html>
More information about the ghc-commits
mailing list