Apple Microarchitecture Research by Dougall Johnson

M1/A14 P-core (Firestorm): Overview | Base Instructions | SIMD and FP Instructions
M1/A14 E-core (Icestorm):  Overview | Base Instructions | SIMD and FP Instructions

SUBS (register, 64-bit)

Test 1: uops

Code:

  subs x0, x0, x1
  mov x0, 1
  mov x1, 2

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 1.000

Integer unit issues: 1.000

Load/store unit issues: 0.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)031e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst int alu (97)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
1004103580829172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
1004103580619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
1004103580619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
1004103580619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
10041035804169172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
1004103580619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
1004103580619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
1004103580619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
10041035742619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036
10041035857619172510001000100062250103510358053882100010002000103540111001100073227229931000100010361036103610361036

Test 2: Latency 1->2

Code:

  subs x0, x0, x1
  mov x0, 1
  mov x1, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)03l2 tlb miss data (0b)1e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)ld unit uop (a6)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
1020410035750010399202510100101001010064715204969551003510035865638732101001020020200100354011102011009910010100100000071032711999510000101001003610036100361003610036
102041003575006199202510100101001010064715214969551003510035865638732101001020020200100354011102011009910010100100000071012711999510000101001003610036100361003610036
10204100357500619920251010010100101006471520496955100351003586563873210100102002020010035401110201100991001010010000010871012711999510000101001003610036100361003610036
102041003575006199202510100101001010064715214969551003510035865638732101001020020200100354011102011009910010100100001071012711999510000101001003610036100361003610036
102041003575001459920251010010100101006471520496955100351003586563873210100102002020010035401110201100991001010010000411171012711999510000101001003610036100361003610036
102041003575006199202510100101001010064715204969551003510035865638732101001020020200100354011102011009910010100100000071012711999510000101001003610036100361003610036
1020410035750061992025101001010010100647152049695510035100358656387321010010200202001003540111020110099100101001000047871012711999510000101001003610036100361003610036
102041003575006199202510100101001010064715204969551003510035865638732101001020020200100354011102011009910010100100000071012711999510000101001003610036100361003610036
102041003576006199202510100101001010064715204969551003510035865638732101001020020200100354011102011009910010100100000071012711999510000101001003610036100361003610036
10204100357500228799202510100101001010064715204969551003510035865638732101001020020200100354011102011009910010100100001371012711999510000101001003610036100361003610036

1000 unrolls and 10 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)030f1e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)acbranch cond mispred nonspec (c5)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
10024100357500619918251001010010100106472461496955100351003586783875410010100202002010035401110021109101001010018064022722999710000100101003610036100361003610036
1002410035750361991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101009064022722999710000100101003610036100361003610036
10024100357501861991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101013064022722999710000100101003610036100361003610036
1002410035750061991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101003064022722999710000100101003610036100361003610036
100241003575006699182510010100101001064724604969551003510035867838754100101002020020100354011100211091010010100768064022722999710000100101003610036100361003610036
1002410035751061991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
1002410035750661991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
1002410035750061991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
1002410035750061991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
1002410035750061991825100101001010010647246049695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036

Test 3: Latency 1->3

Code:

  subs x0, x1, x0
  mov x0, 1
  mov x1, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)031e3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)acbranch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
1020410035750619927251010010100101106472121496955100351003586738873510110102242024810035401110201100991001010010000111720016001001310000101001003610036100361003610036
1020410035750619927251010010100101106472121496955100351003586738873510110102242024810035401110201100991001010010000111720016001001310000101001003610036100361003610036
1020410035750619927251010010100101106472121496955100351003586738873510110102242024810035401110201100991001010010000111720016001001310000101001003610036100361003610036
10204100357501479927251010010100101106472121496955100351003586738873510110102242024810035401110201100991001010010000111720016001001210000101001003610036100361003610036
102041003575061992725101001010010110647212049695510035100358656387321010010200202001003540111020110099100101001000000071012711999510000101001003610036100361003610036
1020410035750124992025101001010010100647152049695510035100358656387321019110200202001003540111020110099100101001000000071012711999510000101001003610036100361003610036
102041003575084992025101001010010100647152049695510035100358656387321010010200202001003540111020110099100101001000000071012711999510000101001003610036100361003610036
102041003575061992025101001010010100647152049695510035100358656387321010010200202001003540111020110099100101001001000071012711999510000101001003610036100361003610036
102041003575061992025101001010010100647152049695510035100358656387321010010200202001003540111020110099100101001000000071012711999510000101001003610036100361003610036
1020410035750145992025101001010010100647152149695510035100358656387321010010200202001003540111020110099100101001000000071012711999510000101001003610036100361003610036

1000 unrolls and 10 iterations

Result (median cycles for code): 1.0035

retire uop (01)cycle (02)031f3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fst unit uop (a7)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
100241003575061991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000364022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246149695510035100838678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
1002410035750619918251001010010100106472461496955100351003586783875410010100202002010035401110021109101001010015064022722999710000100101003610036100361003610036
1002410035750168991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575082991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101001064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
1002410035750124991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036
100241003575061991825100101001010010647246149695510035100358678387541001010020200201003540111002110910100101000064022722999710000100101003610036100361003610036

Test 4: Latency 4->2

Chain cycles: 1

Code:

  subs x0, x1, x2
  cset x1, cc
  mov x0, 1
  mov x1, 2
  mov x2, 3
  mov x3, 4
  mov x4, 5

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)18191e1f3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)ld unit uop (a6)l1d cache writeback (a8)a9acc2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
202042035415701088016168219930652010020100201121297233149169552003520035174257175872011220224312292003564112020110099100201001010002010001111319124222011420000201002040020266200362003620446
202042003515600009082199302352010020100201121297233149169552017120035174257174862011220224302362003564112020110099100201001010000010160501111337440112011420000201002008120493200362003620535
202042003515000059082199302122010020100201121297936149169552003520035174778174862044120224302362003564112020110099100201001010000000001111320216112001220000201002003620036200362003620036
20204200351500000006119930252010020100201121297233149169552003520035174257174862011220224302362003564112020110099100201001010000000001111319216112001220000201002003620036200362003620036
2020420035150000000611992416820258201692060613003331491722920307203121748645176372011220796312342031064212020110099100201001010002000545301111419456122021720133201002030620313203102035620309
2020420126153107692461685119926252010020100201121297233149169552003520035174258174852019220224302362003564112020110099100201001010000000301111319216112014920112201002026420266200812021720264
202042008115100516608861199302520100201002011212972331491723020307200351742525175642011220224302362008064212020110099100201001010004210001111387450112015020089201002003620036200362003620036
202042003515000000061199278920237201902044512997381491718320263200351747330176152044220694311012031164612020110099100201001010000000301111319366122001220000201002008220082200362008120081
2020420035152006680152834619928252010020100201121297233149169552003520035174257174862011220793310962008064812020110099100201001010022404479021111402216112004420069201002035420172204542039820493
2020420261164000000124419930151203302023720112129723314917319204912044317522451773920946211883167620492641112020110099100201001010000002858501111319116112001220000201002003620036200362003620036

1000 unrolls and 10 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)03191e1f3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
200242003515000061199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270427321999520000200102003620036200362003620036
2002420035150000191199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327321999520000200102003620036200362003620036
200242003515009132255199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327331999520000200102003620036200362003620036
2002420035150000191199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100101270227231999520000200102003620036200362003620036
200242003515000084199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327321999520000200102003620036200362003620036
2002420035150000126199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327321999520000200102003620036200362003620036
200242003515000061199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327331999520000200102003620036200362003620036
2002420035150000170199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327321999520000200102003620036200362003620036
20024200351490001339199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100001270327331999520000200102003620036200362003620036
2002420035150090493199182520010200102001012972474916955200352003517428317504200102002030020200356411200211091020010100100031270327331999520000200102003620036200362003620036

Test 5: Latency 4->3

Chain cycles: 1

Code:

  subs x0, x1, x2
  cset x2, cc
  mov x0, 1
  mov x1, 2
  mov x2, 3
  mov x3, 4
  mov x4, 5

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)03mmu table walk instruction (07)mmu table walk data (08)l2 tlb miss instruction (0a)l2 tlb miss data (0b)191e3a3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb miss (a1)l1d cache writeback (a8)branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
2020420035150202000167199302520100201002011212972331491695520035200351742571748620112202243023620035641120201100991002010010100001111320616342001520000201002003620036200362003620036
20204200351502020001542199302520100201002011212972330491695520035200351742581748620112202243023620035641120201100991002010010100001111320316352001520000201002003620036200362003620036
2020420035150202000167199302520100201002011212972331491695520035200351742581748520112202243023620035641120201100991002010010100001111320116342001520000201002003620036200362003620036
2020420035150202000167199302520100201002011212972330491695520035200351742571748520112202243023620035641120201100991002010010100001111320216342001520000201002003620036200362003620036
2020420035150202000167199302520100201002011212972330491695520035200351742581748520112202243023620035641120201100991002010010100001111321516342001520000201002003620036200362003620036
2020420035150202000167199302520100201002011212972330491695520035200351742571748520112202243023620035641120201100991002010010100001111321216452001520000201002003620036200362003620036
2020420035149202000167199302520100201002011212972331491695520035200351742571748520112202243023620035641120201100991002010010100001111320216442001520000201002003620036200362003620036
2020420035150202000167199302520100201002011212972331491695520035200351742581748620112202243023620035641120201100991002010010100001111321516452001520000201002003620036200362003620036
2020420035150202009167199302520100201002011212972331491695520035200351742571748620112202243023620035641120201100991002010010100001111320216232001520000201002003620036200362003620036
2020420035150202000167199302520100201002011212972331491695520035200351742571748620112202243023620035641120201100991002010010100001111320516442001520000201002003620036200362003620036

1000 unrolls and 10 iterations

Result (median cycles for code, minus 1 chain cycle): 1.0035

retire uop (01)cycle (02)03mmu table walk instruction (07)mmu table walk data (08)09l2 tlb miss instruction (0a)l2 tlb miss data (0b)18191e1f3f4d51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)ld unit uop (a6)l1d cache writeback (a8)a9acc2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
20024200351500000000002031991825200102001020010129724704916955200352003517428317504200102002030020200356411200211091020010100100002000001270327721999520000200102003620036200362003620036
20024200351500000000001491991825200102001020010129724704916955200352003517428317504200102002030020200356411200211091020010100100000000001270327751999520000200102003620036200362003620036
20024200351500000000002121991825200102001020010129724704916955200352003517428317504200102002030020200356411200211091020010100100000002001270327621999520000200102003620036200362003620036
20024200351500000000003541991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100000000011270327531999520000200102003620036200362003620036
2002420035150000000030611991825200102001020010129724704916955200352003517428317504200102002030020200356411200211091020010100100000000001270227621999520000200102003620036200362003620036
2002420035150000000000611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100000000001270327331999520000200102003620036200362003620036
2002420035150000000000611991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100001000001270327341999520000200102003620036200362003620036
2002420035150000000000611991825200102001020010129724704916955200352003517428317504200102002030020200356411200211091020010100100000000001270227331999520000200102003620036200362003620036
20024200351500000000004551991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100000200001270327631999520022200102008020081200362003620036
20024200351500100000004831991825200102001020010129724714916955200352003517428317504200102002030020200356411200211091020010100100000000001270327642003020044200102003620036200362012720082

Test 6: throughput

Count: 8

Code:

  subs x0, x8, x9
  subs x1, x8, x9
  subs x2, x8, x9
  subs x3, x8, x9
  subs x4, x8, x9
  subs x5, x8, x9
  subs x6, x8, x9
  subs x7, x8, x9
  mov x8, 9
  mov x9, 10
  mov x10, 11

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code divided by count): 0.3342

retire uop (01)cycle (02)03mmu table walk data (08)09l2 tlb miss data (0b)18191e1f3a3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)696a6b6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acc2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
8020426762201000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110119112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110219112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735167083166908010080200160200267353911802011009910080100100000000005110119112673180000801002678326736267362673626736
8020426735201000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000905110219112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110219112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110219112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110219112673180000801002673626736267362673626736
8020426735200000009003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110119112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110219112673180000801002673626736267362673626736
8020426735200000000003525801008010080100400500492365502673526735166723166908010080200160200267353911802011009910080100100000000005110219112673180000801002673626736267362673626736

1000 unrolls and 10 iterations

Result (median cycles for code divided by count): 0.3338

retire uop (01)cycle (02)0309l2 tlb miss data (0b)1e3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)ld unit uop (a6)l1d cache writeback (a8)a9accfd5map dispatch bubble (d6)daddfetch restart (de)e0? int output thing (e9)ec? int retires (ef)f5f6f7f8fd
800242672220000077258001080010800104000501492362526705267051666531668380010800201600202670539118002110910800101000000502015180181526702800000800102670626706267062670626706
800242670520000012125800108001080010400050049236252670526705166653166838001080020160020267053911800211091080010100010350209180111226702800000800102670626706267062670626706
8002426705200000352580010800108001040005014923625267052670516665316683800108002016002026705391180021109108001010000005020141807826702800000800102670626706267062670626706
8002426705200000352580010800108001040005014923625267052670516665316683800108002016002026705391180021109108001010000005020718016926702800000800102670626706267062670626706
80024267052000003525800108001080010400050049236252670526705166653166838001080020160020267053911800211091080010100000050201218012626702800000800102670626706267062670626706
8002426705200000352580010800108001040005004923625267052670516665316683800108002016002026705391180021109108001010100005020121809926702800000800102670626706267062670626706
800242670520000035258001080010800104000500492362526705267051666531668380010800201600202670539118002110910800101000000502010180191026702800000800102670626706267062670626706
8002426705200000605258001080010800104000500492362526705267051666531668380010800201600202670539118002110910800101000000502061808926702800000800102670626706267062670626706
80024267052000005102580010800108001040005004923625267052670516665316683800108002016002026705391180021109108001010000005020121806826702800000800102670626706267062670626706
8002426705200000352580010800108001040005014923625267052670516665316683800108002016002026705391180021109108001010000005020718020826702800000800102670626706267062670626706