diff --git a/.github/actions/rust-setup/action.yaml b/.github/actions/rust-setup/action.yaml index acc81bf4bf0be..ea5d5551f4cbc 100644 --- a/.github/actions/rust-setup/action.yaml +++ b/.github/actions/rust-setup/action.yaml @@ -20,6 +20,7 @@ runs: # rust-cache action will cache ~/.cargo and ./target # https://github.com/Swatinem/rust-cache#cache-details - name: Run cargo cache + if: !startsWith(github.ref, 'refs/pull/') uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # pin@v2.7.3 with: key: ${{ inputs.ADDITIONAL_KEY }} diff --git a/.github/workflows/replay-verify.yaml b/.github/workflows/replay-verify.yaml index bd39bf3e6ec80..89ffff493f1b7 100644 --- a/.github/workflows/replay-verify.yaml +++ b/.github/workflows/replay-verify.yaml @@ -31,6 +31,7 @@ on: pull_request: paths: - ".github/workflows/replay-verify.yaml" + - ".github/workflows/workflow-run-replay-verify.yaml" - "testsuite/replay_verify.py" schedule: - cron: "0 22 * * 0,2,4" # The main branch cadence. This runs every Sun,Tues,Thurs @@ -64,12 +65,16 @@ jobs: # replay-verify config BUCKET: ${{ inputs.TESTNET_BUCKET || 'aptos-testnet-backup' }} SUB_DIR: e1 - HISTORY_START: 250000000 # TODO: We need an exhaustive list of txns_to_skip before we can set this to 0. - TXNS_TO_SKIP: 46874937 151020059 409163615 409163669 409163708 409163774 409163845 409163955 409164059 409164191 414625832 761241943 761247376 761483628 761492625 761494608 761500902 761500975 761504816 761508349 761508397 761508969 761509180 761515997 761531553 761531645 761553168 761553288 761659735 761660965 761661629 761662335 761662951 761664420 761666676 761666846 761667070 761667337 761669444 761670483 761671140 761671243 761671650 761672111 761672821 761674579 761674907 761675526 761709313 761709478 761709835 761846021 761846029 761846031 761846038 761846039 761846040 761846041 761846042 761846043 761846044 761846045 761846046 761846047 761846048 761846049 761846050 761846051 761846052 761846053 761846054 761846055 761846056 761846057 761846058 761846059 761846060 761846061 761846062 761846063 761846064 761846065 761846066 761846067 761846068 761846069 761846070 761846071 761846072 761846073 761846074 761846075 761846076 761846077 761846078 761846079 761846080 761846081 761846082 761846083 761846084 761846085 761846086 761846087 761846088 761846089 761846090 761846091 761846092 761846093 761846094 761846095 761846096 761846097 761846098 761846099 761846100 761846101 761846102 761846103 761846104 761846105 761846106 761846107 761846108 761846109 761846110 761846111 761846112 761846113 761846114 761846115 761846137 761846138 761846139 761846140 761846141 761846142 761846143 761846144 761846145 761846146 761846147 761846148 761846149 761846150 761846151 761846152 761846153 761846154 761846155 761846156 761846157 761846158 761846159 761846160 761846161 761846162 761846163 761846164 761846165 761846166 761846167 761846168 761846169 761846170 761846171 761846172 761846173 761846174 761846175 761846176 761846177 761846178 761846179 761846180 761846181 761846182 761846183 761846184 761846185 761846186 761846187 761846188 761846189 761846190 761846191 761846192 761846193 761846194 761846195 761846196 761846197 761846198 761846199 761846200 761846201 761846202 761846203 761846204 761846205 761846206 761846207 761846208 761846209 761846210 761846211 761846212 761846213 761846214 761846215 761846216 761846217 761846218 761846219 761846220 761846223 761846224 761846225 761846226 761846227 761846228 761846229 761846230 761846231 761846232 761846233 761846234 761846235 761846236 761846237 761846238 761846239 761846240 761846241 761846242 761846243 761846244 761846245 761846246 761846247 761846248 761846249 761846250 761846251 761846252 761846253 761846254 761846255 761846256 761846257 761846258 761846259 761846260 761846261 761846262 761846263 761846264 761846265 761846266 761846267 761846268 761846269 761846270 761846271 761846272 761846273 761846274 761846275 761846276 761846277 761846278 761846279 761846280 761846281 761846282 761846283 761846284 761846285 761846286 761846287 761846288 761846289 761846290 761846291 761846292 761846293 761846294 761846295 761846296 761846297 761846298 761846299 761846300 761846301 761846302 761846303 761846304 761846305 761846306 761846307 761846308 761846309 761846310 761846311 761846312 761846313 761846314 761846315 761846316 761846317 761846318 761846319 761846320 761846321 761846322 761846323 761846324 761846325 761846326 761846327 761846328 761846329 761846330 761846331 761846332 761846333 761846334 761846335 761846336 761846337 761846338 761846339 761846340 761846341 761846342 761846343 761846344 761846345 761846346 761846347 761846348 761846349 761846350 761846351 761846352 761846353 761846354 761846355 761846356 761846357 761846358 761846359 761846360 761846361 761846362 761846363 761846364 761846365 761846366 761846367 761846368 761846369 761846370 761846371 761846372 761846373 761846374 761846375 761846376 761846377 761846378 761846379 761846380 761846381 761846382 761846383 761846384 761846385 761846386 761846387 761846388 761846389 761846390 761846391 761846392 761846393 761846394 761846395 761846396 761846397 761846398 761846399 761846400 761846401 761846402 761846403 761846404 761846405 761846406 761846407 761846408 761846409 761846410 761846411 761846412 761846413 761846414 761846415 761846416 761846417 761846418 761846419 761846420 761846421 761846422 761846423 761846424 761846425 761846426 761846427 761846428 761846429 761846430 761846431 761846432 761846433 761846434 761846435 761846436 761846437 761846438 761846439 761846440 761846441 761846442 761846443 761846444 761846445 761846446 761846447 761846448 761846449 761846450 761846451 761846452 761846453 761846454 761846455 761846456 761846457 761846458 761846459 761846460 761846461 761846462 761846463 761846464 761846465 761846466 761846467 761846468 761846469 761846470 761846471 761846472 761846473 761846474 761846475 761846476 761846477 761846478 761846479 761846480 761846481 761846482 761846483 761846484 761846485 761846486 761846487 761846488 761846489 761846490 761846491 761846492 761846493 761846494 761846495 761846496 761846497 761846498 761846499 761846500 761846501 761846502 761846503 761846504 761846505 761846506 761846507 761846508 761846509 761846510 761846511 761846512 761846513 761846514 761846515 761846516 761846517 761846518 761846519 761846520 761846521 761846522 761846523 761846524 761846525 761846526 761846527 761846528 761846529 761846530 761846538 761846539 761846540 761846541 761846542 761846543 761846544 761846545 761846546 761846547 761846548 761846549 761846550 761846551 761846552 761846553 761846554 761846555 761846556 761846557 761846558 761846559 761846560 761846561 761846562 761846563 761846564 761846565 761846566 761846567 761846568 761846569 761846570 761846571 761846572 761846573 761846574 761846575 761846576 761846577 761846578 761846579 761846580 761846581 761846582 761846583 761846584 761846585 761846586 761846587 761846588 761846589 761846590 761846591 761846592 761846593 761846594 761846595 761846596 761846597 761846598 761846599 761846600 761846601 761846602 761846603 761846604 761846605 761846606 761846607 761846608 761846609 761846610 761846611 761846612 761846613 761846614 761846615 761846616 761846617 761846618 761846619 761846620 761846621 761846622 761846623 761846624 761846625 761846626 761846627 761846628 761846629 761846630 761846631 761846632 761846633 761846634 761846635 761846636 761846637 761846638 761846639 761846640 761846641 761846642 761846643 761846644 761846645 761846646 761846647 761846648 761846649 761846650 761846651 761846652 761846653 761846654 761846655 761846656 761846657 761888898 761888908 761888909 761888910 761888911 761888912 761888913 761888914 761888915 761888916 761888917 761888918 761888919 761888920 761888921 761888922 761888923 761888924 761888925 761888926 761888927 761888928 761888929 761888930 761888931 761888932 761888940 761888941 761888943 761888944 761888945 761888946 761888947 761888948 761888949 761888950 761888951 761888952 761888953 761888954 761888955 761888956 761888957 761888958 761888959 761888960 761888961 761888962 761888963 761888964 761888965 761888966 761888967 761888968 761888969 761888970 761888971 761888972 761888973 761888974 761888975 761888976 761888977 761888978 761888979 761888980 761888981 761888982 761888983 761888984 761888985 761888986 761888987 761888988 761888993 761888994 761888995 761888996 761888997 761888998 761888999 761889000 761889001 761889002 761889003 761889004 761889005 761889006 761889007 761889008 761889009 761889010 761889011 761889012 761889013 761889014 761889015 761889016 761889017 761889018 761889019 761889020 761889021 761889022 761889023 761889024 761889025 761889026 761889027 761889028 761889029 761889030 761889031 761889032 761889033 761889034 761889035 761889036 761889037 761889038 761889039 761889040 761889041 761889042 761889043 761889046 761889047 761889048 761889049 761889050 761889051 761889052 761889053 761889054 761889055 761889056 761889057 761889058 761889059 761889060 761889061 761889062 761889063 761889064 761889065 761889066 761889067 761889068 761889069 761889070 761889071 761889072 761889073 761889074 761889075 761889076 761889077 761889078 761889079 761889080 761889081 761889082 761889083 761889084 761889085 761889086 761889087 761889088 761889089 761889090 761889091 761889092 761889093 761889094 761889095 761889096 761889097 761889098 761889099 761889100 761889101 761889102 761889103 761889104 761889105 761889106 761889107 761889108 761889109 761889110 761889111 761889112 761889113 761889114 761889115 761889116 761889117 761889118 761889119 761889120 761889121 761889122 761889123 761889124 761889125 761889126 761889127 761889128 761889129 761889130 761889131 761889132 761889133 761889134 761889135 761889136 761889137 761889138 761889139 761889140 761889141 761889142 761889143 761889146 761889147 761889148 761889149 761889150 761889151 761889152 761889153 761889154 761889155 761889156 761889157 761889158 761889159 761889160 761889161 761889162 761889163 761889164 761889165 761889166 761889167 761889168 761889169 761889170 761889171 761889172 761889173 761889174 761889175 761889176 761889177 761889178 761889179 761889180 761889181 761889182 761889183 761889184 761889185 761889186 761889187 761889188 761889189 761889190 761889191 761889192 761889193 761889194 761889195 761889196 761889197 761889198 761889199 761889200 761889201 761889202 761889203 761889204 761889205 761889206 761889207 761889208 761889209 761889210 761889211 761889212 761889213 761889214 761889215 761889216 761889217 761889218 761889219 761889220 761889221 761889222 761889223 761889224 761889225 761889226 761889227 761889228 761889229 761889230 761889231 761889232 761889233 761889234 761889235 761889236 761889237 761889238 761889239 761889240 761889241 761889242 761889243 761889244 761889245 761889246 761889247 761889248 761889249 761889250 761889251 761889252 761889253 761889254 761889255 761889256 761889257 761889258 761889259 761889260 761889261 761889262 761889263 761889264 761889265 761889266 761889267 761889268 761889269 761889270 761889271 761889272 761889273 761889274 761889275 761889276 761889277 761889278 761889279 761889280 761889281 761889282 761889283 761889284 761889285 761889286 761889287 761889288 761889289 761889290 761889291 761889292 761889293 761889294 761889295 761889296 761889297 761889298 761889299 761889300 761889301 761889302 761889303 761889304 761889305 761889306 761889307 761889308 761889309 761889310 761889311 761889312 761889313 761889314 761889315 761889316 761889317 761889318 761889319 761889320 761889321 761889322 761889323 761889324 761889325 761889326 761889327 761889328 761889329 761889330 761889331 761889332 761889333 761889334 761889335 761889336 761889337 761889338 761889339 761889340 761889341 761889342 761889343 761889344 761889345 761889372 761889373 761889374 761889375 761889376 761889377 761889379 761889380 761889381 761889391 761889392 761889393 761889394 761889395 761889396 761889397 761889398 761889399 761889400 761889401 761889402 761889403 761889404 761889405 761889406 761889407 761889408 761889409 761889410 761889411 761889412 761889413 761889414 761889415 761889417 761889418 761889419 761889420 761889421 761889422 761889423 761889424 761889425 761889426 761889427 761889428 761889429 761889430 761889431 761889432 761889433 761889434 761889435 761889436 761889437 761889438 761889439 761889440 761889441 761889442 761889443 761889444 761889445 761889446 761889447 761889448 761889449 761889450 761889451 761889452 761889453 761889454 761889455 761889456 761889457 761889458 761889459 761889460 761889461 761889462 761889463 761889464 761889465 761889466 761889467 761889468 761889469 761889470 761889471 761889472 761889473 761889474 761889475 761889476 761889477 761889478 761889479 761889480 761889481 761889482 761889483 761889484 761889485 761889486 761889487 761889488 761889489 761889490 761889491 761889492 761889493 761889494 761889495 761889496 761889497 761889498 761889499 761889500 761889501 761889502 761889503 761889504 761889505 761889506 761889507 761889508 761889509 761889510 761889511 761889512 761889513 761889514 761889515 761889516 761889517 761889518 761889519 761889520 761889521 761889522 761889523 761889524 761889525 761889526 761889527 761889528 761889529 761889530 761889531 761889532 761889533 761889534 761889535 761889536 761889537 761889538 761889539 761889540 761889541 761889542 761889543 761889544 761889545 761889546 761889547 761889548 761889549 761889550 761889551 761889552 761889553 761889554 761889555 761889556 761889557 761889558 761889559 761889560 761889561 761889562 761889563 761889564 761889565 761889566 761889567 761889568 761889569 761889570 761889571 761889572 761889573 761889574 761889575 761889576 761889577 761889578 761889579 761889580 761889581 761889582 761889583 761889584 761889585 761889586 761889587 761889588 761889589 761889590 761889591 761889592 761889593 761889594 761889595 761889596 761889597 761889598 761889599 761889600 761889601 761889602 761889603 761889604 761889605 761889606 761889607 761889608 761889609 761889610 761889611 761889612 761889613 761889614 761889615 761889616 761889617 761889618 761889619 761889620 761889621 761889622 761889623 761889624 761889625 761889626 761889627 761889628 761889629 761889630 761889631 761889632 761889633 761889634 761889635 761889636 761889637 761889638 761889639 761889640 761889641 761889642 761889643 761889644 761889645 761889646 761889647 761889648 761889649 761889650 761889651 761889652 761889653 761889654 761889655 761889656 761889657 761889658 761889659 761889660 761889661 761889662 761889663 761889664 761889665 761889666 761889667 761889668 761889669 761889670 761889671 761889672 761889673 761889674 761889675 761889676 761889677 761889678 761889679 761889680 761889681 761889682 761889683 761889684 761889685 761889686 761889687 761889688 761889689 761889690 761889691 761889692 761889693 761889694 761889695 761889696 761889697 761889698 761889699 761889700 761889701 761889702 761889703 761889704 761889705 761889706 761889707 761889708 761889709 761889710 761889711 761889712 761889713 761889714 761889715 761889716 761889717 761889718 761889719 761889720 761889721 761889722 761889723 761889724 761889725 761889726 761889727 761889728 761889729 761889730 761889731 761889732 761889733 761889734 761889735 761889736 761889737 761889738 761889739 761889740 761889741 761889742 761889743 761889744 761889745 761889746 761889747 761889748 761889749 761889750 761889751 761889752 761889753 761889754 761889755 761889756 761889757 761889758 761889759 761889760 761889761 761889762 761889763 761889764 761889765 761889766 761889767 761889768 761889769 761889770 761889771 761889772 761889773 761889774 761889775 761889776 761889777 761889778 761889779 761889780 761889781 761889782 761889783 761889784 761889785 761889786 761889787 761889788 761889789 761889790 761889791 761889792 761889793 761889794 761889795 761889796 761889797 761889798 761889799 761889800 761889801 761889802 761889803 761889804 761889805 761889806 761889807 761889808 761889809 761889810 761889811 761889812 761889813 761889814 761889815 761889816 761889817 761889818 761889819 761889820 761889821 761889822 761889823 761889824 761889825 761889826 761889827 761889828 761889829 761889830 761889831 761889832 761889833 761889834 761889835 761889836 761889837 761889838 761889839 761889840 761889841 761889842 761889843 761889844 761889845 761889846 761889847 761889848 761889849 761889850 761889851 761889852 761889853 761889854 761889855 761889856 761889857 761889858 761889859 761889860 761889861 761889862 761889863 761889864 761889865 761889866 761889867 761889868 761889869 761889870 761889871 761889872 761889873 761889874 761889875 761889876 761889877 761889878 761889879 761889880 761889881 761889882 761889883 761889884 761889885 761889886 761889887 761889888 761889889 761889890 761889891 761889892 761889893 761889894 761889895 761889896 761889897 761889898 761889899 761889900 761889901 761889902 761889903 761889904 761889905 761889906 761889907 761889908 761889909 761889910 761889911 761889912 761889913 761889914 761889915 761889916 761889917 761889918 761889919 761889920 761889921 761889922 761889923 761889924 761889925 761889926 761889927 761889928 761889929 761889930 761889931 761889932 761889933 761889934 761889935 761889936 761889937 761889938 761889939 761889940 761889941 761889942 761889943 761889944 761889945 761889946 761889947 761889948 761889949 761889950 761889951 761889952 761889953 761889954 761889955 761889956 761889957 761889958 761889959 761889960 761889961 761889962 761889963 761889964 761889965 761889966 761889967 761889968 761889969 761889970 761889971 761889972 761889973 761889974 761889975 761889976 761889977 761889978 761889979 761889980 761889981 761889982 761889983 761889984 761889985 761889986 761889987 761889988 761889989 761889990 761889991 761889992 761889993 761889994 761889995 761889996 761889997 761889998 761889999 761890000 761890001 761890002 761890003 761890004 761890005 761890006 761890007 761890008 761890009 761890010 761890011 761890012 761890013 761890014 761890015 761890016 761890017 761890018 761890019 761890020 761890021 761890022 761890023 761890024 761890025 761890026 761890027 761890028 761890029 761890030 761890031 761890032 761890033 761890034 761890035 761890036 761890037 761890038 761890039 761890040 761890041 761890042 761890043 761890044 761890045 761890046 761890047 761890048 761890049 761890050 761890051 761890052 761890053 761890054 761890055 761890056 761890057 761890058 761890059 761890060 761890061 761890062 761890063 761890064 761890065 761890066 761890067 761890068 761890069 761890070 761890071 761890072 761890073 761890074 761890075 761890076 761890077 761890078 761890079 761890080 761890081 761890082 761890083 761890084 761890085 761890086 761890087 761890088 761890089 761890090 761890091 761890092 761890093 761890094 761890095 761890096 761890097 761890098 761890099 761890100 761890101 761890102 761890103 761890104 761890105 761890106 761890107 761890108 761890109 761890110 761890111 761890112 761890113 761890114 761890115 761890116 761890117 761890118 761890119 761890120 761890121 761890122 761890123 761890124 761890125 761890126 761890127 761890128 761890129 761890130 761890131 761890132 761890133 761890134 761890137 761890140 761890141 761890142 761890145 761890146 761890148 761890149 761890150 761890151 761890152 761890153 761890154 761890155 761890156 761890157 761890158 761890159 761890160 761890161 761890162 761890163 761890164 761890165 761890166 761890167 761890168 761890169 761890170 761890171 761890172 761890173 761890174 761890175 761890176 761890177 761890178 761890179 761890180 761890181 761890182 761890183 761890184 761890185 761890186 761890187 761890188 761890189 761890190 761890191 761890192 761890193 761890194 761890195 761890196 761890197 761890198 761890199 761890200 761890201 761890202 761890203 761890204 761890205 761890206 761890207 761890208 761890209 761890210 761890211 761890212 761890213 761890214 761890215 761890216 761890217 761890218 761890219 761890220 761890221 761890222 761890223 761890224 761890225 761890226 761890227 761890228 761890229 761890230 761890231 761890232 761890233 761890234 761890235 761890236 761890237 761890238 761890239 761890240 761890241 761890242 761890243 761890244 761890245 761890246 761890247 761890248 761890249 761890250 761890251 761890252 761890253 761890254 761890255 761890256 761890257 761890258 761890259 761890260 761890261 761890262 761890263 761890264 761890265 761890266 761890267 761890268 761890269 761890270 761890271 761890272 761890273 761890274 761890275 761890276 761890277 761890278 761890279 761890280 761890281 761890282 761890283 761890284 761890285 761890286 761890287 761890288 761890289 761890290 761890291 761890292 761890293 761890294 761890295 761890296 761890297 761890298 761890299 761890300 761890301 761890302 761890303 761890304 761890305 761890306 761890307 761890308 761890309 761890310 761890313 761890314 761890315 761890317 761890318 761890319 761890320 761890321 761890322 761890323 761890324 761890325 761890326 761890327 761890328 761890329 761890330 761890331 761890332 761890333 761890334 761890335 761890336 761890337 761890338 761890339 761890340 761890341 761890342 761890343 761890344 761890345 761890346 761890347 761890348 761890349 761890350 761890351 761890352 761890353 761890354 761890355 761890356 761890357 761890358 761890359 761890360 761890361 761890362 761890363 761890364 761890365 761890366 761890367 761890368 761890369 761890370 761890371 761890372 761890373 761890374 761890375 761890376 761890377 761890378 761890379 761890380 761890381 761890382 761890383 761890384 761890385 761890386 761890387 761890388 761890389 761890390 761890391 761890392 761890393 761890394 761890395 761890396 761890397 761890398 761890399 761890400 761890401 761890402 761890403 761890404 761890405 761890406 761890407 761890408 761890409 761890410 761890411 761890412 761890413 761890414 761890415 761890416 761890417 761890418 761890419 761890420 761890421 761890422 761890423 761890424 761890425 761890426 761890427 761890428 761890429 761890430 761890431 761890432 761890433 761890434 761890435 761890436 761890437 761890438 761890439 761890440 761890441 761890442 761890443 761890444 761890445 761890446 761890447 761890448 761890449 761890450 761890451 761890452 761890453 761890454 761890455 761890456 761890457 761890458 761890459 761890460 761890461 761890462 761890463 761890464 761890465 761890466 761890467 761890468 761890469 761890470 761890471 761890472 761890473 761890474 761890475 761890476 761890477 761890478 761890479 761890480 761890481 761890482 761890483 761890484 761890485 761890486 761890487 761890488 761890489 761890490 761890491 761890492 761890493 761890494 761890495 761890496 761890497 761890498 761890499 761890500 761890501 761890502 761890503 761890504 761890505 761890506 761890507 761890508 761890509 761890510 761890511 761890512 761890513 761890514 761890515 761890516 761890517 761890518 761890519 761890520 761890521 761890522 761890523 761890524 761890525 761890526 761890527 761890528 761890529 761890530 761890531 761890532 761890533 761890534 761890535 761890536 761890537 761890538 761890539 761890540 761890541 761890542 761890543 761890544 761890545 761890546 761890547 761890548 761890549 761890550 761890551 761890552 761890553 761890554 761890555 761890556 761890557 761890558 761890559 761890560 761890561 761890562 761890563 761890564 761890565 761890566 761890567 761890568 761890569 761943777 761959265 762339040 762340585 762368931 762417190 762417238 762417259 762417640 762417968 762417969 762418255 762419031 762419045 762419057 762419144 762419290 762419770 762419908 762419961 762419968 762419976 762419999 762420000 762420045 762420264 762420282 762420297 762420337 762420397 762420400 762420508 762420526 762420537 762420645 762420753 762420779 762420817 762420963 762421011 762421020 762421217 762421412 762755085 762755086 762755087 762755088 762755089 762755090 762755091 762755092 762755093 762755094 762755095 762755103 762755104 762755105 762755106 762755107 762755108 762755109 762755110 762755111 762755112 762755113 762755114 762755115 762755116 762755117 762755118 762755119 762755120 762755121 762755122 762755123 762755124 762755125 762755126 762755127 762755128 762755129 762755130 762755131 762755132 762755133 762755134 762755135 762755136 762755137 762755138 762755139 762755140 762755141 762755142 762755143 762755144 762755145 762755146 762755147 762755148 762755149 762755150 762755151 762755152 762755153 762755154 762755155 762755156 762755157 762755158 762755159 762755160 762755161 762755162 762755170 762755171 762755172 762755173 762755174 762755175 762755176 762755177 762755178 762755179 762755180 762755181 762755182 762755183 762755184 762755185 762755186 762755187 762755188 762755189 762755190 762755191 762755192 762755193 762755194 762755195 762755196 762755197 762755198 762755199 762755200 762755201 762755202 762755203 762755204 762755205 762755206 762755207 762755208 762755209 762755210 762755211 762755212 762755213 762755214 762755215 762755216 762755217 762755218 762755219 762755220 762755221 762755222 762755223 762755224 762755225 762755226 762755227 762755228 762755229 762755230 762755231 762755232 762755233 762755234 762755235 762755236 762755237 762755238 762755239 762755240 762755241 762755242 762755243 762755244 762755245 762755246 762755247 762755248 762755249 762755250 762755251 762755252 762755253 762755254 762755255 762755256 762755257 762755258 762755259 762755260 762755261 762755262 762755263 762755264 762755265 762755266 762755267 762755268 762755269 762755270 762755271 762755272 762755273 762755274 762755275 762755276 762755277 762755278 762755279 762755280 762755281 762755282 762755283 762755284 762755285 762755286 762755287 762755293 762755294 762755295 762755296 762755297 762755298 762755299 762755300 762755301 762755302 762755303 762755304 762755305 762755306 762755307 762755308 762755309 762755310 762755311 762755312 762755313 762755314 762755315 762755316 762755317 762755318 762755319 762755320 762755321 762755322 762755323 762755324 762755325 762755326 762755327 762755328 762755329 762755330 762755331 762755332 762755333 762755334 762755335 762755336 762755337 762755338 762755339 762755340 762755341 762755342 762755343 762755344 762755345 762755346 762755347 762755348 762755349 762755350 762755351 762755352 762755353 762755354 762755355 762755356 762755357 762755358 762755359 762755360 762755361 762755362 762755363 762755364 762755365 762755366 762755367 762755368 762755369 762755370 762755371 762755372 762755373 762755374 762755375 762755376 762755377 762755378 762755379 762755380 762755381 762755382 762755383 762755384 762755385 762755386 762755387 762755388 762755389 762755390 762755391 762755392 762755393 762755394 762755395 762755396 762755397 762755398 762755399 762755400 762755401 762755402 762755403 762755404 762755405 762755406 762755407 762755408 762755409 762755410 762755411 762755412 762755413 762755414 762755415 762755416 762755417 762755418 762755419 762755420 762755421 762755422 762755423 762755424 762755425 762755426 762755427 762755428 762755429 762755430 762755431 762755432 762755433 762755434 762755435 762755436 762755437 762755438 762755439 762755440 762755441 762755442 762755443 762755444 762755445 762755446 762755447 762755448 762755449 762755450 762755451 762755452 762755453 762755454 762755455 762755456 762755457 762755458 762755459 762755460 762755461 762755462 762755463 762755464 762755465 762755466 762755467 762755468 762755469 762755470 762755471 762755472 762755473 762755474 762755475 762755476 762755477 762755478 762755479 762755480 762755481 762755482 762755483 762755484 762755485 762755486 762755487 762755488 762755489 762755490 762755491 762755492 762755493 762755494 762755495 762755496 762755497 762755498 762755499 762755500 762755501 762755502 762755503 762755504 762755505 762755506 762755507 762755508 762755509 762755510 762755511 762755512 762755513 762755514 762755515 762755516 762755517 762755518 762755519 762755520 762755521 762755522 762755523 762755524 762755525 762755526 762755527 762755528 762755529 762755530 762755531 762755532 762755533 762755534 762755535 762755536 762755537 762755538 762755539 762755540 762755541 762755542 762755543 762755544 762755545 762755546 762755547 762755548 762755549 762755550 762755551 762755552 762755553 762755554 762755555 762755556 762755557 762755558 762755559 762755560 762755561 762755562 762755563 762755564 762755565 762755566 762755567 762755568 762755569 762755570 762755571 762755572 762755573 762755574 762755575 762755576 762755577 762755578 762755579 762755580 762755581 762755582 762755583 762755584 762755585 762755586 762755587 762755588 762755589 762755590 762755591 762755592 762755593 762755594 762755595 762755596 762755597 762755598 762755599 762755600 762755601 762755602 762755603 762758490 762758499 762758500 762758501 762758504 762758505 762758506 762758507 762758508 762758509 762758510 762758511 762758512 762758513 762758514 762758515 762758516 762758517 762758518 762758519 762758520 762758521 762758522 762758523 762758524 762758525 762758526 762758527 762758528 762758529 762758530 762758531 762758532 762758533 762758534 762758535 762758536 762758537 762758538 762758539 762758540 762758541 762758542 762758543 762758544 762758545 762758546 762758547 762758548 762758549 762758550 762758551 762758552 762758553 762758554 762758555 762758556 762758557 762758558 762758559 762758560 762758561 762758562 762758563 762758564 762758565 762758566 762758567 762758568 762758569 762758570 762758571 762758572 762758573 762758574 762758575 762758576 762758577 762758578 762758579 762758580 762758581 762758582 762758583 762758584 762758585 762758586 762758587 762758588 762758589 762758590 762758591 762758596 762758597 762758598 762758599 762758600 762758601 762758602 762758603 762758604 762758605 762758606 762758607 762758608 762758609 762758610 762758611 762758612 762758613 762758614 762758615 762758616 762758617 762758618 762758619 762758620 762758621 762758622 762758623 762758624 762758625 762758626 762758627 762758628 762758629 762758630 762758631 762758632 762758633 762758634 762758635 762758636 762758637 762758638 762758639 762758640 762758641 762758642 762758643 762758644 762758645 762758646 762758647 762758648 762758649 762758650 762758651 762758652 762758653 762758654 762758655 762758656 762758657 762758658 762758659 762758660 762758661 762758662 762758663 762758664 762758665 762758666 762758669 762758670 762758671 762758672 762758673 762758675 762758676 762758677 762758678 762758679 762758680 762758681 762758682 762758683 762758684 762758685 762758686 762758687 762758688 762758689 762758690 762758691 762758692 762758693 762758694 762758695 762758696 762758697 762758698 762758699 762758700 762758701 762758702 762758703 762758704 762758705 762758706 762758707 762758708 762758709 762758710 762758711 762758712 762758713 762758714 762758715 762758716 762758717 762758718 762758719 762758720 762758721 762758722 762758723 762758724 762758725 762758726 762758727 762758728 762758729 762758730 762758731 762758732 762758733 762758734 762758735 762758736 762758737 762758738 762758739 762758740 762758741 762758742 762758743 762758744 762758745 762758746 762758747 762758748 762758749 762758750 762758751 762758752 762758753 762758754 762758755 762758756 762758757 762758758 762758759 762758760 762758761 762758762 762758763 762758764 762758765 762758766 762758767 762758768 762758769 762758770 762758771 762758772 762758773 762758774 762758775 762758776 762758777 762758778 762758779 762758780 762758781 762758782 762758783 762758784 762758785 762758786 762758787 762758788 762758789 762758790 762758791 762758792 762758793 762758794 762758795 762758796 762758797 762758798 762758799 762758800 762758801 762758802 762758803 762758804 762758805 762758806 762758807 762758808 762758809 762758810 762758811 762758812 762758813 762758814 762758815 762758816 762758817 762758818 762758819 762758820 762758821 762758822 762758823 762758824 762758825 762758826 762758827 762758828 762758829 762758830 762758831 762758832 762758833 762758834 762758835 762758836 762758837 762758838 762758839 762758840 762758841 762758842 762758843 762758844 762758845 762758846 762758847 762758848 762758849 762758850 762758851 762758852 762758853 762758854 762758855 762758856 762758857 762758858 762758859 762758860 762758861 762758862 762758863 762758864 762758865 762758866 762758867 762758868 762758869 762758870 762758871 762758872 762758873 762758874 762758875 762758876 762758877 762758878 762758879 762758880 762758881 762758882 762758883 762758884 762758885 762758886 762758887 762758888 762758889 762758890 762758891 762758892 762758893 762758894 762758895 762758896 762758897 762758898 762758899 762758900 762758901 762758902 762758903 762758904 762758905 762758906 762758907 762758908 762758909 762758910 762758911 762758912 762758913 762758914 762758915 762758916 762758917 762758918 762758919 762758920 762758921 762758922 762758923 762758924 762758925 762758926 762758927 762758928 762758929 762758930 762758931 762758932 762758933 762758934 762758935 762758936 762758937 762758938 762758939 762758940 762758941 762758942 762758943 762758944 762758945 762758946 762758947 762758948 762758949 762758950 762758951 762758952 762758953 762758954 762758955 762758956 762758957 762758958 762758959 762758960 762758961 762758962 762758963 762758964 762758965 762758966 762758967 762758968 762758969 762758970 762758971 762758972 762758973 762758974 762758975 762758976 762758977 762758978 762758979 762758980 762758981 762758982 762758983 762758984 762758985 762758986 762758987 762758988 762758989 762758990 762758991 762758992 762758993 762758994 762758995 762758996 762758997 762758998 762758999 762759000 762759001 762759002 762759003 762759004 762759005 762759006 762814859 762814862 762814863 762814865 762814866 762814867 762814868 762814869 762814870 762814871 762814872 762814873 762814874 762814875 762814876 762814877 762814878 762814879 762814880 762814881 762814882 762814883 762814884 762814885 762814886 762814887 762814888 762814889 762814890 762814891 762814892 762814893 762814894 762814895 762814896 762814897 762814898 762814899 762814900 762814901 762814902 762814903 762814904 762814905 762814906 762814907 762814908 762814909 762814910 762814911 762814912 762814913 762814914 762814915 762814916 762814917 762814918 762814919 762814920 762814921 762814922 762814923 762814924 762814925 762814926 762814927 762814928 762814929 762814930 762814931 762814932 762814933 762814934 762814935 762814936 762814937 762814938 762814943 762814944 762814945 762814946 762814947 762814948 762814949 762814950 762814951 762814952 762814953 762814954 762814955 762814956 762814957 762814958 762814959 762814960 762814961 762814962 762814963 762814964 762814965 762814966 762814967 762814968 762814969 762814970 762814971 762814972 762814973 762814974 762814975 762814976 762814977 762814978 762814979 762814980 762814981 762814982 762814983 762814984 762814985 762814986 762814987 762814988 762814989 762814990 762814991 762814992 762814993 762814994 762814995 762814996 762814997 762814998 762814999 762815000 762815001 762815002 762815003 762815004 762815005 762815006 762815007 762815008 762815009 762815010 762815011 762815012 762815013 762815014 762815015 762815016 762815017 762815018 762815019 762815020 762815021 762815022 762815023 762815024 762815025 762815026 762815027 762815028 762815029 762815030 762815031 762815032 762815033 762815034 762815035 762815036 762815037 762815038 762815039 762815040 762815041 762815042 762815043 762815044 762815045 762815046 762815047 762815048 762815049 762815050 762815051 762815052 762815053 762815054 762815055 762815056 762815057 762815058 762815059 762815060 762815061 762815062 762815063 762815064 762815065 762815066 762815067 762815068 762815069 762815070 762815071 762815072 762815073 762815074 762815075 762815076 762815077 762815078 762815079 762815080 762815081 762815082 762815083 762815084 762815085 762815086 762815087 762815088 762815089 762815090 762815091 762815092 762815093 762815094 762815095 762815096 762815097 762815098 762815099 762815100 762815101 762815102 762815103 762815104 762815105 762815106 762815107 762815108 762815109 762815110 762815111 762815112 762815113 762815114 762815115 762815116 762815117 762815118 762815119 762815120 762815121 762815122 762815123 762815124 762815125 762815126 762815127 762815128 762815129 762815130 762815131 762815132 762815133 762815134 762815135 762815136 762815137 762815138 762815139 762815140 762815141 762815142 762815143 762815144 762815145 762815146 762815147 762815148 762815149 762815150 762815151 762815152 762815153 762815154 762815155 762815156 762815157 762815158 762815159 762815160 762815161 762815162 762815163 762815164 762815165 762815166 762815167 762815168 762815169 762815170 762815171 762815172 762815173 762815174 762815175 762815176 762815177 762815178 762815183 762815184 762815185 762815186 762815187 762815188 762815189 762815190 762815191 762815192 762815193 762815194 762815195 762815196 762815197 762815198 762815199 762815200 762815201 762815202 762815203 762815204 762815205 762815206 762815207 762815208 762815209 762815210 762815211 762815212 762815213 762815214 762815215 762815216 762815217 762815218 762815219 762815220 762815221 762815222 762815223 762815224 762815225 762815226 762815227 762815228 762815229 762815230 762815231 762815232 762815233 762815234 762815235 762815236 762815237 762815238 762815239 762815240 762815241 762815242 762815243 762815244 762815245 762815246 762815247 762815248 762815249 762815250 762815251 762815252 762815253 762815254 762815255 762815256 762815257 762815258 762815259 762815260 762815261 762815262 762815263 762815264 762815265 762815266 762815267 762815268 762815269 762815270 762815271 762815272 762815273 762815274 762815275 762815276 762815277 762815278 762815279 762815280 762815281 762815282 762815283 762815284 762815285 762815286 762815287 762815288 762815289 762815290 762815291 762815292 762815293 762815294 762815295 762815296 762815297 762815298 762815299 762815300 762815301 762815302 762815303 762815304 762815305 762815306 762815307 762815308 762815309 762815310 762815311 762815312 762815313 762815314 762815315 762815316 762815317 762815318 762815319 762815320 762815321 762815322 762815323 762815324 762815325 762815326 762815327 762815328 762815329 762815330 762815331 762815332 762815333 762815334 762815335 762815336 762815337 762815338 762815339 762815340 762815341 762815342 762815343 762815344 762815345 762815346 762815347 762815348 762815349 762815350 762815351 762815352 762815353 762815354 762815355 762815356 762815357 762815358 762815359 762815360 762815361 762815362 762815363 762815364 762815365 762815366 762815367 762815368 762815369 762817220 762817229 762817230 762817231 762817233 762817234 762817235 762817236 762817237 762817238 762817239 762817240 762817241 762817242 762817243 762817244 762817245 762817246 762817247 762817248 762817249 762817250 762817251 762817252 762817253 762817254 762817255 762817256 762817257 762817258 762817259 762817260 762817261 762817262 762817263 762817264 762817265 762817266 762817267 762817268 762817269 762817270 762817271 762817272 762817273 762817274 762817275 762817276 762817277 762817278 762817279 762817280 762817281 762817282 762817283 762817284 762817285 762817286 762817287 762817288 762817289 762817290 762817291 762817292 762817293 762817294 762817295 762817296 762817297 762817298 762817299 762817300 762817301 762817302 762817303 762817304 762817309 762817310 762817311 762817312 762817313 762817314 762817315 762817316 762817317 762817318 762817319 762817320 762817321 762817322 762817323 762817324 762817325 762817326 762817327 762817328 762817329 762817330 762817331 762817332 762817333 762817334 762817335 762817336 762817337 762817338 762817339 762817340 762817341 762817342 762817343 762817344 762817345 762817346 762817347 762817348 762817349 762817350 762817351 762817352 762817353 762817354 762817355 762817356 762817357 762817358 762817359 762817360 762817361 762817362 762817363 762817364 762817365 762817366 762817367 762817368 762817369 762817370 762817371 762817372 762817373 762817374 762817375 762817376 762817377 762817378 762817379 762817380 762817381 762817382 762817383 762817384 762817385 762817386 762817387 762817388 762817389 762817390 762817391 762817392 762817393 762817394 762817395 762817396 762817397 762817398 762817399 762817400 762817405 762817406 762817407 762817408 762817409 762817410 762817411 762817412 762817413 762817414 762817415 762817416 762817417 762817418 762817419 762817420 762817421 762817422 762817423 762817424 762817425 762817426 762817427 762817428 762817429 762817430 762817431 762817432 762817433 762817434 762817435 762817436 762817437 762817438 762817439 762817440 762817441 762817442 762817443 762817444 762817445 762817446 762817447 762817448 762817449 762817450 762817451 762817452 762817453 762817454 762817455 762817456 762817457 762817458 762817459 762817460 762817461 762817462 762817463 762817464 762817465 762817466 762817467 762817468 762817469 762817470 762817471 762817472 762817473 762817474 762817475 762817476 762817477 762817478 762817479 762817480 762817481 762817482 762817483 762817484 762817485 762817486 762817487 762817488 762817489 762817490 762817491 762817492 762817493 762817494 762817495 762817496 762817497 762817498 762817499 762817500 762817501 762817502 762817503 762817504 762817505 762817506 762817507 762817508 762817509 762817510 762817511 762817512 762817513 762817514 762817515 762817516 762817517 762817518 762817519 762817520 762817521 762817522 762817523 762817524 762817525 762817526 762817527 762817528 762817529 762817530 762817531 762817532 762817533 762817534 762817535 762817536 762817537 762817538 762817539 762817540 762817541 762817542 762817543 762817544 762817545 762817546 762817547 762817548 762817549 762817550 762817551 762817552 762817553 762817554 762817555 762817556 762817557 762817558 762817559 762817560 762817561 762817562 762817563 762817564 762817565 762817566 762817567 762817568 762817569 762817570 762817571 762817572 762817573 762817574 762817575 762817576 762817577 762817578 762817579 762817580 762817581 762817582 762817583 762817584 762817585 762817586 762817587 762817588 762817589 762817590 762817591 762817592 762817593 762817594 762817595 762817596 762817597 762817598 762817599 762817600 762817601 762817602 762817603 762817604 762817605 762817606 762817607 762817608 762817609 762817610 762817611 762817612 762817613 762817614 762817615 762817616 762817617 762817618 762817619 762817620 762817621 762817622 762817623 762817624 762817625 762817626 762817627 762817628 762817629 762817630 762817631 762817632 762817633 762817634 762817635 762817636 762817637 762817638 762817639 762817640 762817641 762817642 762817643 762817644 762817645 762817646 762817647 762817648 762817649 762817650 762817651 762817652 762817653 762817654 762817655 762817656 762817657 762817658 762817659 762817660 762817661 762817662 762817663 762817664 762817665 762817666 762817667 762817668 762817669 762817670 762817671 762817672 762817673 762817674 762817675 762817676 762817677 762817678 762817679 762817680 762817681 762817682 762817683 762817684 762817685 762817686 762817687 762817688 762817689 762817690 762817691 762817692 762817693 762817694 762817695 762817696 762817697 762817698 762817699 762817700 762817701 762817702 762817703 762817704 762817705 762817706 762817707 762817708 762817709 762817710 762817711 762817712 762817713 762817714 762817715 762817716 762817717 762817718 762817719 762817720 762817721 762817722 762817723 762817724 762817725 762817726 762817727 762817728 762817729 762817730 762817731 762817732 762817733 762817734 762817735 762817736 762828406 762828412 762828413 762828414 762828415 762828416 762828417 762828418 762828419 762828420 762828421 762828422 762828423 762828424 762828425 762828426 762828427 762828428 762828429 762828430 762828431 762828432 762828433 762828434 762828435 762828436 762828437 762828438 762828439 762828440 762828441 762828442 762828443 762828444 762828445 762828446 762828447 762828448 762828449 762828450 762828451 762828452 762828453 762828454 762828455 762828456 762828457 762828458 762828459 762828460 762828461 762828462 762828463 762828464 762828465 762828466 762828467 762828468 762828469 762828470 762828471 762828472 762828473 762828474 762828475 762828476 762828477 762828478 762828479 762828480 762828481 762828482 762828483 762828484 762828485 762828486 762828493 762828494 762828495 762828496 762828497 762828498 762828499 762828500 762828501 762828502 762828503 762828504 762828505 762828506 762828507 762828508 762828509 762828510 762828511 762828512 762828513 762828514 762828515 762828516 762828517 762828518 762828519 762828520 762828521 762828522 762828523 762828524 762828525 762828526 762828527 762828528 762828529 762828530 762828531 762828532 762828533 762828534 762828535 762828536 762828537 762828538 762828539 762828540 762828541 762828542 762828543 762828544 762828545 762828546 762828547 762828548 762828549 762828550 762828551 762828552 762828553 762828554 762828555 762828556 762828557 762828558 762828559 762828560 762828561 762828562 762828563 762828564 762828565 762828566 762828567 762828568 762828569 762828570 762828571 762828572 762828573 762828574 762828575 762828576 762828577 762828578 762828579 762828580 762828581 762828582 762828583 762828584 762828585 762828586 762828587 762828588 762828589 762828590 762828591 762828592 762828593 762828594 762828595 762828596 762828597 762828598 762828599 762828600 762828601 762828602 762828603 762828604 762828605 762828606 762828607 762828608 762828609 762828610 762828611 762828612 762828613 762828614 762828615 762828616 762828617 762828618 762828619 762828620 762828621 762828622 762828623 762828624 762828625 762828626 762828627 762828628 762828629 762828630 762828631 762828632 762828633 762828634 762828635 762828636 762828637 762828638 762828639 762828640 762828641 762828642 762828643 762828644 762828645 762828646 762828647 762828648 762828649 762828650 762828651 762828652 762828653 762828654 762828655 762828656 762828657 762828658 762828659 762828660 762828661 762828662 762828663 762828664 762828665 762828666 762828667 762828668 762828669 762828670 762828671 762828672 762828673 762828674 762828675 762828676 762828677 762828678 762828679 762828680 762828681 762828682 762828683 762828684 762828685 762828686 762828687 762828688 762828689 762828690 762828691 762828692 762828693 762828694 762828695 762828696 762828697 762828698 762828699 762828700 762828701 762828702 762828703 762828704 762828705 762828708 762828709 762828710 762828712 762828713 762828714 762828715 762828716 762828717 762828718 762828719 762828720 762828721 762828722 762828723 762828724 762828725 762828726 762828727 762828728 762828729 762828730 762828731 762828732 762828733 762828734 762828735 762828736 762828737 762828738 762828739 762828740 762828741 762828742 762828743 762828744 762828745 762828746 762828747 762828748 762828749 762828750 762828751 762828752 762828753 762828754 762828755 762828756 762828757 762828758 762828759 762828760 762828761 762828762 762828763 762828764 762828765 762828766 762828767 762828768 762828769 762828770 762828771 762828772 762828773 762828774 762828775 762828776 762828777 762828778 762828779 762828780 762828781 762828782 762828783 762828784 762828785 762828786 762828787 762828788 762828789 762828790 762828791 762828792 762828793 762828794 762828795 762828796 762828797 762828798 762828799 762828800 762828801 762828802 762828803 762828804 762828805 762828806 762828807 762828808 762828809 762828810 762828811 762828812 762828813 762828814 762828815 762828816 762828817 762828818 762828819 762828820 762828821 762828822 762828823 762828824 762828825 762828826 762828827 762828828 762828829 762828830 762828831 762828832 762828833 762828834 762828835 762828836 762828837 762828838 762828839 762828840 762828841 762828842 762828843 762828844 762828845 762828846 762828847 762828848 762828849 762828850 762828851 762828852 762828853 762828854 762828855 762828856 762828857 762828858 762828859 762828860 762828861 762828862 762828863 762828864 762828865 762828866 762828867 762828868 762828869 762828870 762828871 762828872 762828873 762828874 762828875 762828876 762828877 762828878 762828879 762828880 762828881 762828882 762828883 762828884 762828885 762828886 762828887 762828888 762828889 762828890 762828891 762828892 762828893 762828894 762828895 762828896 762828897 762828898 762828899 762828900 762828901 762828902 762828903 762828904 762828905 762828906 762828907 762828908 762828909 762828910 762828911 762828912 762828913 762828914 762828915 762828916 762828917 762828918 762828919 762829159 762829164 762829165 762829166 762829167 762829168 762829169 762829170 762829171 762829172 762829173 762829174 762829175 762829176 762829177 762829178 762829184 762829185 762829186 762829187 762829189 762829190 762829191 762829192 762829193 762829194 762829195 762829196 762829197 762829198 762829199 762829200 762829201 762829202 762829203 762829204 762829205 762829206 762829207 762829208 762829209 762829210 762829211 762829212 762829213 762829214 762829215 762829216 762829217 762829218 762829219 762829220 762829221 762829222 762829223 762829224 762829225 762829226 762829227 762829228 762829229 762829230 762829231 762829232 762829233 762829234 762829235 762829236 762829237 762829238 762829239 762829240 762829241 762829242 762829243 762829244 762829245 762829246 762829247 762829248 762829249 762829250 762829251 762829252 762829253 762829254 762829255 762829256 762829257 762829258 762829259 762829260 762829261 762829262 762829263 762829264 762829265 762829266 762829267 762829268 762829269 762829270 762829271 762829272 762829273 762829274 762829275 762829276 762829277 762829278 762829279 762829280 762829281 762829282 762829283 762829284 762829285 762829286 762829287 762829288 762829289 762829290 762829291 762829292 762829293 762829294 762829295 762829296 762829297 762829298 762829299 762829300 762829301 762829302 762829303 762829304 762829305 762829306 762829307 762829308 762829309 762829310 762829311 762829312 762829313 762829314 762829315 762829316 762829317 762829318 762829319 762829320 762829321 762829322 762829323 762829324 762829325 762829326 762829327 762829328 762829329 762829330 762829331 762829332 762829333 762829334 762829335 762829336 762829337 762829338 762829339 762829340 762829341 762829342 762829343 762829344 762829345 762829346 762829347 762829352 762829353 762829354 762829355 762829356 762829357 762829358 762829359 762829360 762829361 762829362 762829363 762829364 762829365 762829366 762829367 762829368 762829369 762829370 762829371 762829372 762829373 762829374 762829375 762829376 762829377 762829378 762829379 762829380 762829381 762829382 762829383 762829384 762829385 762829386 762829387 762829388 762829389 762829390 762829391 762829392 762829393 762829394 762829395 762829396 762829397 762829398 762829399 762829400 762829401 762829402 762829403 762829404 762829405 762829406 762829407 762829408 762829409 762829410 762829411 762829412 762829413 762829414 762829415 762829416 762829417 762829418 762829419 762829420 762829421 762829422 762829423 762829424 762829425 762829426 762829427 762829428 762829429 762829430 762829431 762829432 762829433 762829434 762829435 762829436 762829437 762829438 762829439 762829440 762829441 762829442 762829443 762829444 762829445 762829446 762829447 762829448 762829449 762829450 762829451 762829452 762829453 762829454 762829455 762829456 762829457 762829458 762829459 762829460 762829461 762829462 762829463 762829464 762829465 762829466 762829467 762829468 762829469 762829470 762829471 762829472 762829473 762829474 762829475 762829476 762829477 762829478 762829479 762829480 762829481 762829482 762829483 762829484 762829485 762829486 762829487 762829488 762829489 762829490 762829491 762829492 762829493 762829494 762829495 762829496 762829497 762829498 762829499 762829500 762829501 762829502 762829503 762829504 762829505 762829506 762829507 762829508 762829509 762829510 762829511 762829512 762829513 762829514 762829515 762829516 762829517 762829518 762829519 762829520 762829521 762829522 762829523 762829524 762829525 762829526 762829527 762829528 762829529 762829530 762829531 762829532 762829533 762829534 762829535 762829536 762829537 762829538 762829539 762829540 762829541 762829542 762829543 762829544 762829545 762829546 762829547 762829548 762829549 762829550 762829551 762829552 762829553 762829554 762829555 762829556 762829557 762829558 762829559 762829560 762829561 762829562 762829563 762829564 762829565 762829566 762829567 762829568 762829569 762829570 762829571 762829572 762829573 762829574 762829575 762829576 762829577 762829578 762829579 762829580 762829581 762829582 762829583 762829584 762829585 762829586 762829587 762829588 762829593 762829594 762829595 762829596 762829597 762829598 762829599 762829600 762829601 762829602 762829603 762829604 762829605 762829606 762829607 762829608 762829609 762829610 762829611 762829612 762829613 762829614 762829615 762829616 762829617 762829618 762829619 762829620 762829621 762829622 762829623 762829624 762829625 762829626 762829627 762829628 762829629 762829630 762829631 762829632 762829633 762829634 762829635 762829636 762829637 762829638 762829639 762829640 762829641 762829642 762829643 762829644 762829645 762829646 762829647 762829648 762829649 762829650 762829651 762829652 762829653 762829654 762829655 762829656 762829657 762829658 762829659 762829660 762829661 762829662 762829663 762829664 762829665 762829666 762829667 762829668 762829669 762829670 762829671 762829672 762829673 762829674 762829675 762829676 762831055 762831060 762831061 762831062 762831063 762831064 762831065 762831066 762831067 762831068 762831069 762831070 762831071 762831072 762831073 762831074 762831075 762831076 762831077 762831078 762831079 762831080 762831081 762831082 762831083 762831084 762831085 762831086 762831087 762831088 762831089 762831090 762831091 762831092 762831093 762831094 762831095 762831096 762831097 762831105 762831106 762831107 762831108 762831109 762831110 762831111 762831112 762831113 762831114 762831115 762831116 762831117 762831118 762831119 762831120 762831121 762831122 762831123 762831124 762831125 762831126 762831127 762831128 762831129 762831130 762831131 762831132 762831133 762831134 762831135 762831136 762831137 762831138 762831139 762831140 762831141 762831142 762831143 762831144 762831145 762831146 762831147 762831148 762831149 762831150 762831151 762831152 762831153 762831154 762831155 762831156 762831157 762831158 762831159 762831160 762831161 762831162 762831163 762831164 762831165 762831166 762831167 762831168 762831169 762831170 762831171 762831172 762831173 762831174 762831175 762831176 762831177 762831178 762831179 762831180 762831189 762831190 762831191 762831192 762831193 762831195 762831196 762831197 762831198 762831199 762831200 762831201 762831202 762831203 762831204 762831205 762831206 762831207 762831208 762831209 762831210 762831211 762831212 762831213 762831214 762831215 762831216 762831217 762831218 762831219 762831220 762831221 762831222 762831223 762831224 762831225 762831226 762831227 762831228 762831229 762831230 762831231 762831232 762831233 762831234 762831235 762831236 762831237 762831238 762831239 762831240 762831241 762831242 762831243 762831244 762831245 762831246 762831247 762831248 762831249 762831250 762831251 762831252 762831253 762831254 762831255 762831256 762831257 762831258 762831259 762831260 762831261 762831262 762831263 762831264 762831265 762831266 762831267 762831268 762831269 762831270 762831271 762831272 762831273 762831274 762831275 762831276 762831277 762831278 762831279 762831280 762831281 762831282 762831283 762831284 762831285 762831286 762831287 762831288 762831289 762831290 762831291 762831292 762831293 762831294 762831295 762831296 762831297 762831298 762831299 762831300 762831301 762831302 762831303 762831304 762831305 762831306 762831307 762831308 762831309 762831310 762831311 762831312 762831313 762831314 762831315 762831316 762831317 762831318 762831319 762831320 762831321 762831322 762831323 762831324 762831325 762831326 762831327 762831328 762831329 762831330 762831331 762831332 762831333 762831334 762831335 762831336 762831337 762831338 762831339 762831340 762831341 762831342 762831343 762831344 762831345 762831346 762831347 762831348 762831349 762831350 762831351 762831352 762831353 762831354 762831355 762831356 762831357 762831358 762831359 762831362 762831363 762831364 762831365 762831367 762831368 762831369 762831370 762831371 762831372 762831373 762831374 762831375 762831376 762831377 762831378 762831379 762831380 762831381 762831382 762831383 762831384 762831385 762831386 762831387 762831388 762831389 762831390 762831391 762831392 762831393 762831394 762831395 762831396 762831397 762831398 762831399 762831400 762831401 762831402 762831403 762831404 762831405 762831406 762831407 762831408 762831409 762831410 762831411 762831412 762831413 762831414 762831415 762831416 762831417 762831418 762831419 762831420 762831421 762831422 762831423 762831424 762831425 762831426 762831427 762831428 762831429 762831430 762831431 762831432 762831433 762831434 762831435 762831436 762831437 762831438 762831439 762831440 762831441 762831442 762831443 762831444 762831445 762831446 762831447 762831448 762831449 762831450 762831451 762831452 762831453 762831454 762831455 762831456 762831457 762831458 762831459 762831460 762831461 762831462 762831463 762831464 762831465 762831466 762831467 762831468 762831469 762831470 762831471 762831472 762831473 762831474 762831475 762831476 762831477 762831478 762831479 762831480 762831481 762831482 762831483 762831484 762831485 762831486 762831487 762831488 762831489 762831490 762831491 762831492 762831493 762831494 762831495 762831496 762831497 762831498 762831499 762831500 762831501 762831502 762831503 762831504 762831505 762831506 762831507 762831508 762831509 762831510 762831511 762831512 762831513 762831514 762831515 762831516 762831517 762831518 762831519 762831520 762831521 762831522 762831523 762831524 762831525 762831526 762831527 762831528 762831529 762831530 762831531 762831532 762831533 762831534 762831535 762831536 762831537 762831538 762831539 762831540 762831541 762831542 762831543 762831544 762831545 762831546 762831547 762831548 762831549 762831550 762831551 762831552 762831553 762831554 762831555 762831556 762831557 762831558 762831559 762831560 762831561 762831562 762831563 762831564 762831565 762831566 762831567 762831568 762831569 762831570 762831571 762831572 762831573 762831574 762831575 762831576 762831577 762831578 762831579 762831580 762831581 762831582 762831583 762831584 762831585 762831586 762831587 762831588 762831589 762831590 762831591 762831592 762831593 762831594 762831595 762831596 762831597 762831598 762831599 762831600 762831601 762831602 762831603 762831604 762831605 762831606 762831607 762831608 762831609 762831610 762831611 762831612 762831613 762831614 762831615 762831616 762831617 762831618 762831619 762831620 762831621 762831622 762831623 762831624 762831625 762831626 762831627 762831628 762831629 762831630 762831631 762831632 762831633 762831634 762831635 762831636 762831637 762831638 762831639 762831640 762831641 762831642 762831643 762831644 762831645 762831646 762831647 762831648 762831649 762831650 762831651 762831652 762831653 762831654 762831655 762831656 762831657 762831658 762831659 762831660 762831661 762831662 762831663 762831664 762831665 762831666 762831667 762831668 762831669 762831670 762831671 762831672 762831673 762831674 762831675 762831676 762831677 762831678 762831679 762831680 762831681 762831682 762831683 762831684 762831685 762831686 762831687 762831688 762831689 762831690 762831691 762831692 762831693 762831694 762831695 762831696 762831697 762831698 762831699 762831700 762831701 762831702 762831703 762831704 762831705 762831706 762831707 762831708 762831709 762831710 762831711 762831712 762831713 762831714 762831715 762831716 762831717 762831718 762831719 762831720 762831721 762831722 762831723 762831724 762831725 762831726 762831727 762831728 762831729 762831730 762831731 762831732 762831733 762831734 762831735 762831736 762831737 762831738 762831739 762831740 762831741 762831742 762831743 762831744 762831745 762831746 762831747 762831752 762831753 762831754 762831755 762831756 762831757 762831758 762831759 762831760 762831779 762831780 762831781 762831782 762831784 762831785 762831786 762831787 762831788 762831789 762831790 762831791 762831792 762831793 762831794 762831795 762831796 762831797 762831798 762831799 762831800 762831801 762831802 762831803 762831804 762831805 762831806 762831807 762831808 762831809 762831810 762831811 762831812 762831813 762831814 762831815 762831816 762831817 762831818 762831819 762831820 762831821 762831822 762831823 762831824 762831825 762831826 762831827 762831828 762831829 762831830 762831831 762831832 762831833 762831834 762831835 762831836 762831837 762831838 762831839 762831840 762831841 762831842 762831843 762831844 762831845 762831846 762831847 762831848 762831849 762831850 762831851 762831852 762831853 762831854 762831855 762831856 762831857 762831858 762831859 762831860 762831861 762831862 762831863 762831864 762831865 762831866 762831867 762831868 762831869 762831870 762831871 762831872 762831873 762831874 762831875 762831876 762831877 762831878 762831879 762831880 762831881 762831882 762831883 762831884 762831885 762831886 762831887 762831888 762831889 762831890 762831891 762831892 762831893 762831894 762831895 762831896 762831897 762831898 762831899 762831900 762831901 762831902 762831903 762831904 762831905 762831906 762831907 762831908 762831909 762831910 762831911 762831912 762831913 762831914 762831915 762831916 762831917 762831918 762831919 762831920 762831921 762831922 762831923 762831924 762831925 762831926 762831927 762831928 762831929 762831930 762831931 762831932 762831933 762831934 762831935 762831936 762831937 762831938 762831941 762831943 762831944 762831945 762831946 762831947 762831948 762831949 762831950 762831951 762831952 762831953 762831954 762831955 762831956 762831957 762831958 762831959 762831960 762831961 762831962 762831963 762831964 762831965 762831966 762831967 762831968 762831969 762831970 762831971 762831972 762831973 762831974 762831975 762831976 762831977 762831978 762831979 762831980 762831981 762831982 762831983 762831984 762831985 762831986 762831987 762831988 762831989 762831990 762831991 762831992 762831993 762831994 762831995 762831996 762831997 762831998 762831999 762832000 762832001 762832002 762832003 762832004 762832005 762832006 762832007 762832008 762832009 762832010 762832011 762832012 762832013 762832014 762832015 762832016 762832017 762832018 762832019 762832020 762832021 762832022 762832023 762832024 762832025 762832026 762832027 762832028 762832029 762832030 762832031 762832032 762832033 762832034 762832035 762832036 762832037 762832038 762832039 762832040 762832041 762832042 762832043 762832044 762832045 762832046 762832047 762832048 762832049 762832050 762832051 762832052 762832053 762832054 762832055 762832056 762832057 762832058 762832059 762832060 762832061 762832062 762832063 762832064 762832065 762832066 762832067 762832068 762832069 762832070 762832071 762832072 762832073 762832074 762832075 762832076 762832077 762832078 762832079 762832080 762832081 762832082 762832083 762832084 762832085 762832086 762832087 762832088 762832089 762832090 762832091 762832092 762832093 762832094 762832095 762832096 762832097 762832098 762832099 762832100 762832101 762832102 762832103 762844335 762844348 762844349 762844350 762844351 762844352 762844353 762844354 762844355 762844356 762844357 762844358 762844359 762844360 762844368 762844369 762844370 762844371 762844372 762844373 762844374 762844375 762844376 762844377 762844378 762844379 762844380 762844381 762844382 762844383 762844384 762844385 762844386 762844387 762844388 762844389 762844390 762844391 762844394 762844395 762844396 762844397 762844398 762844399 762844400 762844401 762844402 762844403 762844404 762844405 762844406 762844407 762844408 762844409 762844410 762844411 762844412 762844413 762844414 762844415 762844416 762844417 762844418 762844419 762844420 762844421 762844422 762844423 762844424 762844425 762844426 762844427 762844428 762844429 762844430 762844431 762844432 762844433 762844434 762844435 762844436 762844437 762844438 762844439 762844440 762844441 762844442 762844443 762844444 762844445 762844446 762844447 762844448 762844449 762844450 762844451 762844452 762844453 762844454 762844455 762844456 762844457 762844458 762844459 762844460 762844461 762844462 762844463 762844464 762844465 762844466 762844467 762844468 762844469 762844470 762844471 762844472 762844473 762844474 762844479 762844480 762844481 762844482 762844483 762844484 762844485 762844486 762844487 762844488 762844489 762844490 762844491 762844492 762844493 762844494 762844495 762844496 762844497 762844498 762844499 762844500 762844501 762844502 762844503 762844504 762844505 762844506 762844507 762844508 762844509 762844510 762844511 762844512 762844513 762844514 762844515 762844516 762844517 762844518 762844519 762844520 762844521 762844522 762844523 762844524 762844525 762844526 762844527 762844528 762844529 762844530 762844531 762844532 762844533 762844534 762844535 762844536 762844537 762844538 762844539 762844540 762844541 762844542 762844543 762844544 762844545 762844546 762844547 762844548 762844549 762844550 762844551 762844552 762844553 762844554 762844555 762844556 762844557 762844558 762844559 762844560 762844561 762844562 762844563 762844564 762844565 762844566 762844567 762844568 762844569 762844570 762844571 762844572 762844573 762844574 762844575 762844576 762844577 762844578 762844579 762844580 762844581 762844582 762844583 762844584 762844585 762844586 762844587 762844588 762844589 762844590 762844591 762844592 762844593 762844594 762844595 762844596 762844597 762844598 762844599 762844600 762844601 762844602 762844603 762844604 762844605 762844606 762844607 762844608 762844609 762844610 762844611 762844612 762844613 762844614 762844615 762844616 762844617 762844618 762844619 762844620 762844621 762844622 762844623 762844624 762844625 762844626 762844627 762844628 762844629 762844630 762844631 762844632 762844633 762844634 762844635 762844636 762844637 762844638 762844639 762844640 762844641 762844642 762844643 762844644 762844645 762844646 762844647 762844648 762844649 762844650 762844651 762844652 762844653 762844654 762844655 762844656 762844657 762844658 762844659 762844660 762844661 762844662 762844663 762844664 762844665 762844666 762844667 762844668 762844669 762844670 762844671 762844672 762844673 762844674 762844675 762844676 762844677 762844678 762844679 762844680 762844681 762844682 762844683 762844684 762844685 762844686 762844687 762844688 762844689 762844690 762844691 762844692 762844693 762844694 762844695 762844696 762844697 762844698 762844699 762844700 762844701 762844702 762844703 762844704 762844705 762844706 762844707 762844708 762844709 762844710 762844711 762844712 762844713 762844714 762844715 762844716 762844717 762844718 762844719 762844720 762844721 762844722 762844723 762844724 762844725 762844726 762844727 762844728 762844729 762844730 762844731 762844732 762844733 762844734 762844735 762844736 762844774 762844775 762844776 762844777 762844778 762844779 762844780 762844781 762844782 762844783 762844784 762844785 762844786 762844787 762844792 762844793 762844795 762844796 762844797 762844798 762844799 762844800 762844801 762844802 762844803 762844804 762844805 762844806 762844807 762844808 762844809 762844810 762844811 762844812 762844813 762844814 762844815 762844816 762844817 762844818 762844819 762844820 762844821 762844822 762844823 762844824 762844825 762844826 762844827 762844828 762844829 762844830 762844831 762844832 762844833 762844834 762844835 762844836 762844837 762844838 762844839 762844840 762844841 762844842 762844843 762844844 762844851 762844852 762844853 762844854 762844855 762844856 762844857 762844858 762844859 762844860 762844861 762844862 762844863 762844864 762844865 762844866 762844867 762844868 762844869 762844870 762844871 762844872 762844873 762844874 762844875 762844876 762844877 762844878 762844879 762844880 762844881 762844882 762844883 762844884 762844885 762844886 762844887 762844888 762844889 762844890 762844891 762844892 762844893 762844894 762844895 762844896 762844897 762844898 762844899 762844900 762844901 762844902 762844903 762844904 762844905 762844906 762844907 762844908 762844909 762844910 762844911 762844912 762844913 762844914 762844915 762844916 762844917 762844918 762844919 762844920 762844921 762844922 762844923 762844924 762844925 762844926 762844927 762844928 762844929 762844930 762844931 762844932 762844933 762844934 762844935 762844936 762844937 762844938 762844939 762844940 762844941 762844942 762844943 762844944 762844945 762844946 762844947 762844948 762844949 762844950 762844951 762844952 762844953 762844954 762844955 762844956 762844957 762844958 762844959 762844960 762844961 762844962 762844963 762844964 762844965 762844966 762844967 762844968 762844969 762844970 762844971 762844972 762844973 762844974 762844975 762844976 762844977 762844978 762844979 762844980 762844981 762844982 762844983 762844984 762844987 762844989 762844990 762844991 762844992 762844993 762844994 762844995 762844996 762844997 762844998 762844999 762845000 762845001 762845002 762845003 762845004 762845005 762845006 762845007 762845008 762845009 762845010 762845011 762845012 762845013 762845014 762845015 762845016 762845017 762845018 762845019 762845020 762845021 762845022 762845023 762845024 762845025 762845026 762845027 762845028 762845029 762845030 762845031 762845032 762845033 762845034 762845035 762845036 762845037 762845038 762845039 762845044 762845045 762845047 762845048 762845049 762845050 762845051 762845052 762845053 762845054 762845055 762845056 762845057 762845058 762845059 762845060 762845061 762845062 762845063 762845064 762845065 762845066 762845067 762845068 762845069 762845070 762845071 762845072 762845073 762845074 762845075 762845076 762845077 762845078 762845079 762845080 762845081 762845082 762845083 762845084 762845085 762845086 762845087 762845088 762845089 762845090 762845091 762845092 762845093 762845094 762845095 762845096 762845097 762845098 762845099 762845100 762845101 762845102 762845103 762845104 762845105 762845106 762845107 762845108 762845109 762845110 762845111 762845112 762845113 762845114 762845115 762845116 762845117 762845118 762845119 762845120 762845121 762845122 762845123 762845124 762845125 762845126 762845127 762845128 762845129 762845130 762845131 762845132 762845133 762845134 762845135 762845136 762845137 762845138 762845139 762845140 762845141 762845142 762845143 762845144 762845145 762845146 762845147 762845148 762845149 762845150 762845151 762845152 762845153 762845154 762845155 762845156 762845157 762845158 762845159 762845160 762845161 762845162 762845163 762845164 762845165 762845166 762845167 762845168 762845169 762845170 762845171 762845172 762845173 762845174 762845175 762845176 762845177 762845178 762845179 762845180 762845181 762845182 762845183 762845184 762845185 762845186 762845187 762845188 762845189 762845190 762845191 762845192 762845193 762845194 762845195 762845196 762845197 762845198 762845199 762845200 762845201 762845202 762845203 762845204 762845205 762845206 762845207 762845208 762845209 762845210 762845211 762845212 762845213 762845214 762845215 762845216 762845217 762845218 762845219 762845220 762845221 762845222 762845223 762845224 762845225 762845226 762845227 762845228 762845229 762845230 762845231 762845232 762845233 762845234 762845235 762845236 762845237 762845238 762845239 762845240 762845241 762845242 762845243 762845244 762845245 762845246 762845247 762845248 762845249 762845250 762845251 762845252 762845253 762845254 762845255 762845256 762845257 762845258 762845259 762845260 762845261 762845262 762845263 762845264 762845265 762845266 762845267 762845268 762845269 762845270 762845271 762845272 762845273 762845274 762845275 762845276 762845277 762845278 762845279 762845280 762845281 762845282 762845283 762845287 762845288 762845289 762845290 762845291 762845292 762845293 762845294 762845295 762845296 762845297 762845298 762845299 762845300 762845301 762845302 762845303 762845304 762845305 762845306 762845307 762845308 762845309 762845310 762845311 762845312 762845313 762845314 762845315 762845316 762845317 762845318 762845319 762845320 762845321 762845322 762845323 762845324 762845325 762845326 762845327 762845328 762845329 762845330 762845331 762845332 762845333 762845334 762845335 762845336 762845337 762845338 762845339 762845340 762845341 762845342 762845343 762845344 762845345 762845346 762845347 762845348 762845349 762845350 762845351 762845352 762845353 762845354 762845355 762845356 762845357 762845358 762845359 762845360 762845361 762845362 762845363 762845364 762845365 762845366 762845367 762845368 762845369 762845370 762845371 762845372 762845373 762845374 762845375 762845376 762845377 762845378 762845379 762845380 762845381 762845382 762845383 762845384 762845385 762845386 762845387 762845388 762845389 762845390 762845391 762845392 762845393 762845394 762845395 762845396 762845397 762845398 762845399 762845400 762845401 762845402 762845403 762845404 762845405 762845406 762845407 762845408 762845409 762845410 762845411 762845412 762845413 762845414 762845415 762845416 762845417 762845418 762848830 762848837 762848838 762848839 762848842 762848843 762848844 762848846 762848847 762848848 762848849 762848850 762848851 762848852 762848853 762848854 762848855 762848856 762848857 762848858 762848859 762848860 762848861 762848862 762848863 762848864 762848865 762848866 762848867 762848868 762848869 762848870 762848871 762848872 762848873 762848874 762848875 762848876 762848877 762848878 762848879 762848880 762848881 762848882 762848883 762848884 762848885 762848886 762848887 762848888 762848889 762848890 762848891 762848892 762848893 762848894 762848895 762848906 762848907 762848908 762848909 762848910 762848911 762848912 762848913 762848914 762848924 762848925 762848926 762848927 762848928 762848929 762848930 762848931 762848932 762848933 762848934 762848935 762848936 762848937 762848938 762848939 762848940 762848941 762848942 762848943 762848944 762848945 762848946 762848947 762848948 762848949 762848950 762848951 762848952 762848953 762848954 762848955 762848956 762848957 762848958 762848959 762848960 762848961 762848962 762848963 762848964 762848965 762848966 762848967 762848968 762848969 762848970 762848971 762848972 762848973 762848974 762848975 762848976 762848977 762848978 762848979 762848980 762848981 762848982 762848983 762848984 762848985 762848986 762848987 762848988 762848989 762848990 762848991 762848992 762848993 762848994 762848995 762848996 762848997 762848998 762848999 762849000 762849001 762849002 762849003 762849004 762849005 762849006 762849007 762849008 762849009 762849010 762849011 762849012 762849013 762849014 762849015 762849016 762849017 762849018 762849019 762849020 762849021 762849022 762849023 762849024 762849025 762849026 762849027 762849028 762849029 762849030 762849031 762849032 762849033 762849034 762849035 762849036 762849037 762849038 762849039 762849040 762849041 762849042 762849043 762849044 762849045 762849046 762849047 762849048 762849049 762849050 762849051 762849052 762849053 762849054 762849055 762849056 762849057 762849058 762849059 762849060 762849061 762849062 762849063 762849064 762849065 762849066 762849067 762849068 762849069 762849070 762849071 762849072 762849073 762849074 762849075 762849076 762849077 762849078 762849079 762849080 762849081 762849082 762849083 762849084 762849085 762849086 762849087 762849088 762849089 762849090 762849091 762849092 762849093 762849094 762849095 762849096 762849097 762849098 762849099 762849100 762849101 762849102 762849103 762849104 762849105 762849106 762849107 762849108 762849109 762849110 762849111 762849112 762849113 762849114 762849115 762849116 762849117 762849118 762849119 762849120 762849121 762849122 762849123 762849124 762849125 762849126 762849127 762849128 762849129 762849130 762849131 762849132 762849133 762849134 762849135 762849136 762849137 762849138 762849139 762849140 762849141 762849142 762849143 762849144 762849145 762849146 762849147 762849148 762849149 762849150 762849151 762849152 762849153 762849154 762849155 762849156 762849157 762849158 762849159 762849160 762849161 762849162 762849163 762849164 762849165 762849166 762849167 762849168 762849169 762849170 762849171 762849172 762849173 762849174 762849175 762849176 762849177 762849178 762849179 762849180 762849181 762849182 762849183 762849184 762849185 762849186 762849187 762849188 762849189 762849190 762849191 762849192 762849193 762849194 762849195 762849196 762849197 762849198 762849199 762849200 762849201 762849202 762849203 762849204 762849205 762849206 762849207 762849208 762849209 762849210 762849211 762849212 762849213 762849214 762849215 762849216 762849217 762849218 762849219 762849220 762849221 762849222 762849223 762849224 762849225 762849226 762849227 762849228 762849229 762849230 762849231 762849232 762849233 762849234 762849235 762849236 762849237 762849238 762849239 762849240 762849241 762849242 762849243 762849244 762849245 762849246 762849247 762849248 762849249 762849250 762849251 762849252 762849253 762849254 762849255 762849256 762849257 762849258 762849259 762849260 762849261 762849262 762849263 762849264 762849265 762849266 762849267 762849268 762849269 762849270 762849271 762849272 762849273 762849274 762849275 762849276 762849277 762849278 762849279 762849280 762849281 762849282 762849283 762849284 762849285 762849286 762849287 762849288 762849289 762849290 762849291 762849292 762849293 762849294 762849295 762849296 762849297 762849298 762849299 762849300 762849301 762849302 762849303 762849304 762849305 762849306 762849307 762849308 762849309 762849310 762849311 762849312 762849313 762849314 762849315 762849316 762849317 762849318 762849319 762849320 762849321 762849322 762849323 762849324 762849325 762849326 762849327 762849328 762849329 762849330 762849331 762849332 762849333 762849334 762849335 762849336 762849337 762849338 762849339 762849340 762849341 762849342 762849343 762849344 762849345 762849346 762849347 762849348 762849349 762849350 762849351 762849352 762849353 762849354 762849355 762849356 762849357 762849358 762849359 762849360 762849361 762849362 762849363 762849364 762849365 762849366 762849367 762849368 762849369 762849370 762849371 762849372 762849373 762849374 762849375 762849376 762849377 762849378 762849379 762849380 762849381 762849382 762849383 762849384 762849385 762849386 762849387 762849388 762849389 762849390 762849391 762849392 762849393 762849394 762849395 762849396 762849397 762849398 762849399 762849400 762849401 762849402 762849403 762849404 762849405 762849406 762849407 762849408 762849409 762849410 762849411 762849412 762849413 762849414 762849415 762849416 762849417 762849418 762849419 762849420 762849421 762849422 762849423 762849424 762849425 762849426 762849427 762849428 762849429 762849430 762849431 762849432 762849433 762849434 762849435 762849436 762849437 762849438 762849439 762849440 762849441 762849442 762849443 762849444 762849445 762849446 762849447 762849448 762849449 762849450 762849451 762849452 762849453 762849454 762849455 762849456 762849457 762849458 762849459 762849460 762849461 762849462 762849463 762849464 762849465 762849466 762849467 762849468 762849469 762849470 762849471 762849472 762849473 762849474 762849475 762849476 762849477 762849478 762849479 762849480 762849481 762849482 762849483 762849484 762849485 762849486 762849487 762849488 762849489 762849490 762849491 762849492 762849493 762849494 762849495 762849496 762849497 762849498 762849499 762849500 762849501 762849502 762849503 762849504 762849505 762849506 762849507 762849508 762849509 762849510 762849511 762849512 762849513 762849514 762849515 762849516 762849517 762849518 762849519 762849520 762849521 762849522 762849523 762849524 762849525 762849526 762849527 762849528 762849529 762849530 762849531 762849532 762849533 762849534 762849535 762849536 762849537 762849538 762849539 762849540 762849541 762849542 762849543 762849544 762849545 762849546 762849547 762849548 762849549 762849550 762849551 762849552 762849553 762849554 762849555 762849556 762849557 762849558 762849559 762849560 762849561 762849562 762849563 762849564 762849565 762849566 762849567 762849568 762849569 762849570 762849571 762849572 762849573 762849574 762849575 762849576 762849577 762849578 762849579 762849580 762849581 762849582 762849583 762849584 762849585 762849586 762849587 762849588 762849589 762849590 762849591 762849592 762849593 762849594 762849595 762849596 762849597 762849598 762849599 762849600 762849601 762849602 762849603 762849604 762849605 762849606 762849607 762849608 762849609 762849610 762849611 762849612 762849613 762849614 762849615 762849616 762849617 762849618 762849619 762849620 762849621 762849622 762849623 762849624 762849625 762849626 762849627 762849628 762849629 762849630 762849631 762849632 762849633 762849634 762849635 762849636 762849637 762849638 762849639 762849640 762849641 762849642 762849643 762849644 762849645 762849646 762849647 762849648 762849649 762849650 762849651 762849652 762849653 762849654 762849655 762849656 762849657 762849658 762849659 762849660 762849661 762849662 762849663 762849664 762849665 762849666 762849667 762849668 762849669 762849670 762849671 762849672 762849673 762849674 762849675 762849676 762849677 762849678 762849679 762849680 762849681 762849682 762849683 762849684 762849685 762849686 762849687 762849688 762849689 762849690 762849691 762849692 762849693 762849694 762849695 762849696 762849697 762849698 762849699 762849700 762849701 762849702 762849703 762849704 762849705 762849706 762849707 762849708 762849709 762849710 762849711 762849712 762849713 762849714 762849715 762849716 762849717 762849718 762849719 762849720 762849721 762849722 762849723 762849724 762849725 762849726 762849727 762849728 762849729 762849730 762849731 762849732 762849733 762849734 762849735 762849736 762849737 762849738 762849739 762849740 762849741 762849742 762849743 762849744 762849745 762849746 762849747 762849748 762849749 762849750 762849751 762849752 762849753 762849754 762849755 762849756 762849757 762849758 762849759 762849760 762849761 762849762 762849763 762849764 762849765 762849766 762849767 762849768 762849769 762849770 762849771 762849772 762849773 762849774 762849775 762849776 762849777 762849778 762849779 762849780 762849781 762849782 762849783 762849784 762849785 762849786 762849787 762849788 762849789 762849790 762849791 762849792 762849793 762849794 762849795 762849796 762849797 762849798 762849799 762849800 762849801 762849802 762849803 762849804 762849805 762849806 762849807 762849808 762849809 762849810 762849811 762849812 762849813 762849814 762849815 762849816 762849817 762849818 762849819 762849820 762849821 762849822 762849823 762849824 762849825 762849826 762849827 762849828 762849829 762849830 762849831 762849832 762849833 762849834 762849835 762849836 762849837 762849838 762849839 762849840 762849841 762849842 762849843 762849844 762849845 762849846 762849847 762849848 762849849 762849850 762849851 762849852 762849853 762849854 762849855 762849856 762849857 762850239 762850247 762850248 762850249 762850250 762850251 762850252 762850253 762850254 762850255 762850256 762850257 762850258 762850259 762850260 762850261 762850262 762850263 762850264 762850265 762850266 762850267 762850268 762850269 762850270 762850271 762850272 762850273 762850274 762850275 762850276 762850277 762850278 762850279 762850280 762850281 762850282 762850283 762850284 762850285 762850286 762850287 762850288 762850289 762850290 762850291 762850292 762850293 762850294 762850295 762850296 762850297 762850298 762850299 762850300 762850301 762850302 762850303 762850304 762850305 762850306 762850307 762850308 762850309 762850310 762850311 762850312 762850313 762850314 762850324 762850325 762850326 762850327 762850328 762850329 762850330 762850331 762850332 762850333 762850334 762850335 762850336 762850337 762850338 762850339 762850340 762850341 762850342 762850343 762850344 762850345 762850346 762850347 762850348 762850349 762850350 762850351 762850352 762850353 762850354 762850355 762850356 762850357 762850358 762850359 762850360 762850361 762850362 762850363 762850364 762850365 762850366 762850367 762850368 762850369 762850370 762850371 762850372 762850373 762850374 762850375 762850376 762850377 762850378 762850379 762850380 762850381 762850382 762850383 762850384 762850385 762850386 762850387 762850388 762850389 762850390 762850391 762850392 762850393 762850394 762850395 762850396 762850397 762850398 762850399 762850400 762850401 762850402 762850403 762850404 762850405 762850406 762850407 762850408 762850409 762850410 762850411 762850412 762850413 762850414 762850415 762850416 762850417 762850418 762850419 762850420 762850421 762850422 762850423 762850424 762850425 762850426 762850427 762850428 762850429 762850430 762850431 762850432 762850433 762850434 762850435 762850436 762850437 762850438 762850439 762850440 762850441 762850442 762850443 762850444 762850445 762850446 762850447 762850448 762850449 762850450 762850451 762850452 762850453 762850454 762850455 762850456 762850457 762850458 762850459 762850460 762850461 762850462 762850463 762850464 762850465 762850466 762850467 762850468 762850469 762850470 762850471 762850477 762850478 762850479 762850480 762850481 762850482 762850483 762850484 762850485 762850486 762850487 762850488 762850489 762850490 762850491 762850492 762850493 762850494 762850495 762850496 762850497 762850498 762850499 762850500 762850501 762850502 762850503 762850504 762850505 762850506 762850507 762850508 762850509 762850510 762850511 762850512 762850513 762850514 762850515 762850516 762850517 762850518 762850519 762850520 762850521 762850522 762850523 762850524 762850525 762850526 762850527 762850528 762850529 762850530 762850531 762850532 762850533 762850534 762850535 762850536 762850537 762850538 762850539 762850540 762850541 762850542 762850543 762850544 762850545 762850546 762850547 762850548 762850549 762850550 762850551 762850552 762850553 762850554 762850555 762850556 762850557 762850558 762850559 762850560 762850561 762850562 762850563 762850564 762850565 762850566 762850567 762850568 762850569 762850570 762850571 762850572 762850573 762850574 762850575 762850576 762850577 762850578 762850579 762850580 762850581 762850582 762850583 762850584 762850585 762850586 762850587 762850588 762850589 762850590 762850591 762850592 762850593 762850594 762850595 762850596 762850597 762850598 762850599 762850600 762850601 762850602 762850603 762850604 762850605 762850606 762850607 762850608 762850609 762850610 762850611 762850612 762850613 762850614 762850615 762850616 762850617 762850618 762850619 762850620 762850621 762850622 762850623 762850624 762850625 762850626 762850627 762850628 762850629 762850630 762850631 762850632 762850633 762850634 762850635 762850636 762850637 762850638 762850639 762850640 762850641 762850642 762850643 762850644 762850645 762850646 762850647 762850648 762850649 762850650 762850651 762850652 762850653 762850654 762850655 762850656 762850657 762850658 762850659 762850660 762850661 762850662 762850663 762850664 762850665 762850666 762850667 762850668 762850669 762850670 762850671 762850672 762850673 762850674 762850675 762850676 762850677 762850678 762850679 762850680 762850681 762850682 762850683 762850684 762850685 762850686 762850687 762850688 762850689 762850690 762850691 762850692 762850693 762850694 762850695 762850696 762850697 762850698 762850699 762850700 762850701 762850702 762850703 762850704 762850705 762850706 762850707 762850708 762850709 762850710 762850711 762850712 762850713 762850714 762850715 762850716 762850717 762850718 762850719 762850720 762850721 762850722 762850723 762850724 762850725 762850726 762850727 762850728 762850729 762850730 762850731 762850732 762850733 762850734 762850735 762850736 762850737 762850738 762850739 762850740 762850741 762850742 762850743 762850744 762850745 762850746 762850747 762850748 762850749 762850750 762850751 762850752 762850753 762850754 762850755 762850756 762850757 762850758 762850759 763270975 763294957 763295806 763304366 763304599 763305228 763305975 763309274 763314274 763315741 763315937 763316917 763317970 763318262 763318713 763319742 763319967 763321380 763336881 763339989 763351734 763351765 763351871 763360683 763410221 763413396 763416641 763536557 763536771 766222412 766339175 766339582 766339650 766339968 767275060 767418536 767420776 767441363 767444452 767466774 767466940 767551096 767563766 767567102 767567402 767568483 767573397 767573611 767574307 767584105 767648675 767648768 767652306 767745369 767746068 767746144 767746400 767746701 767746818 767746984 767747089 767748183 767770522 767772992 767773075 767833797 767834276 767843728 767843821 767843852 767844245 767844488 767857001 768418552 768419091 768425649 768457230 768457380 768457832 768789133 768794659 768958184 768963625 768965338 768973188 768976109 768982034 768985197 768986819 768990217 768994175 768995538 768997916 768998913 769002807 769027017 769048826 769050666 769051132 769058425 769082134 769127357 769144978 769153262 769169525 769171105 769177044 769191207 769197221 769216318 769929638 769950853 769981712 770063212 770069820 770201269 770510343 770753083 770756615 770756781 770756985 770769011 770769288 770769577 771035940 771721274 771747500 771749540 771755771 771768633 771777548 771788692 771791931 771872333 771903016 772028804 772039370 772040639 772043141 772043294 772082121 772357462 772358371 772362182 772362353 772365767 772366177 772366443 772367711 772368528 772369703 772370388 772373012 773312959 773348895 773397229 773402075 773464227 773499667 773872671 773873397 775135682 777785696 777812887 778002106 778094454 778134090 778151583 778151694 778151803 778151876 778151957 778152803 778201138 778728117 778728174 778732183 779474346 779497098 779516634 779656559 779779542 780314340 780338135 780338279 780338588 780339353 780339504 780339762 780398143 780398726 780398938 780399138 780399256 780399389 780399458 780400026 780400414 780400884 780401272 780414871 780415746 780446363 780535892 780537177 780557520 780561690 780595424 780595772 780596021 780596253 780596429 780596849 780609559 780619772 780619898 780627268 780627914 780628657 780629613 780630479 780720139 780720518 780721907 780784516 780974266 781007670 781021997 781022497 781111901 781112242 781113723 781114147 781127241 781127397 781141576 781142254 781142572 781147762 781149873 781151224 781151527 781151679 781151788 781152240 781152378 781152547 781152773 781264416 781264732 781265659 781266717 781267761 781268027 781268257 781268516 781332051 781335821 781335941 781377995 781378776 781398771 781415826 781416195 781591415 781682416 781684854 781777222 781780775 781781320 781781398 781785482 781788723 781790875 781796084 781796677 781813396 781828030 781831345 781831363 781831520 781834712 781834764 781834908 781835262 781835308 781836198 781836224 781836814 782007167 782015883 782235282 782318761 782517335 782540644 782607444 782608006 782691329 782691602 782692774 782697560 782698614 782698880 782699232 782699675 782700119 782712300 782719930 782729269 782742656 782749674 782778334 782778538 782808055 783375549 783403095 784059803 784164785 784197322 784254025 784266252 784267718 784268194 784268871 784272349 784275706 784278129 784283081 784283453 784334494 784348544 784488645 784536788 784545210 784552713 784558658 784571272 784599015 784600709 785960951 788595916 788633436 788635458 788664118 788693715 788699805 788707956 788749572 788838807 788849100 788679341 788868020 788693958 788876992 788888813 788890371 788890949 788984747 788989296 789037336 789082306 789082864 789085691 789086886 789163259 789171837 789188381 789201584 789266452 789274573 789585530 789586214 789587678 789699287 789699829 789700285 789702536 789741706 789742472 789744618 789746031 789809918 790129701 790202843 790219215 790226114 790302196 790346824 790347843 790448348 790449712 790450793 790454280 790454991 790456043 790456198 790456489 790458026 790461802 790462129 790467686 790475869 790478765 790483030 790594802 790595374 790603419 790613884 790627324 790629249 790630227 790631189 790632816 790684454 790727188 790742549 790764198 791569889 791801937 791834203 791834864 791893587 791895662 791896230 791897550 791907491 791912434 791993458 792002157 792005358 792150978 792159831 792172891 792178211 792179905 792188386 792195026 792195393 792217694 792256655 792415465 793233316 793233485 793233497 793233498 793273291 793287666 793329077 793331256 793342139 793359112 793369887 793413268 793436815 793522877 793524226 793533662 793537252 793539145 793553592 793554140 793556649 793557384 793557441 793564039 793582318 793662814 793846730 793853488 793860667 793870317 793888558 793892063 793892701 793936849 793956349 793974918 794307557 794804812 794810548 794813736 794813739 794813741 794813742 794813743 794827053 794889353 794922499 795033516 795035012 795036904 795037280 795048241 795050633 795050636 795053207 795059807 795062154 795068927 795074658 795076542 795078367 795094908 795096604 795097989 795100710 795101685 795149590 795149591 795152046 795152051 795152052 795152055 795152206 795152214 795152215 795152237 795152374 795152380 795164685 795164692 795164693 795164694 795164899 795164903 795164904 795164905 795165064 795165073 795165074 795165075 795170338 795170339 795170348 795170587 795170594 795170595 795170752 795170770 795170775 795200226 795238998 795239188 795239352 795239474 795239478 795239506 795239646 795239794 795243883 795243887 795243888 795244099 795244116 795244263 795244271 795244541 795244553 795244554 795244707 795244728 795244743 795244907 795245226 795245232 795245243 795245395 795245407 795247806 795247813 795248432 795248558 795248587 795249607 795249608 795249609 795249792 795249890 795250189 795257288 795257289 795257327 795257463 795257474 795257631 795257644 795257814 795257825 795257831 795258007 795258183 795259274 795259628 795259804 795259833 795259966 795259977 795259984 795260027 795260254 795260510 795260518 795260576 795263903 795265804 795265810 795265811 795265950 795265955 795265973 795265983 795266110 795266171 795266172 795266232 795266290 795266369 795266391 795266401 795266524 795266564 795266570 795266637 795266741 795267110 795267163 795267298 795267375 795267461 795267475 795267478 795267698 795267827 795269596 795269656 795269659 795269670 795269677 795269940 795270103 795283071 796142365 796142738 796267570 797185151 797185862 799007429 799009186 799009195 799009368 799009373 799009388 799009389 799009532 799009540 799009556 799009910 799009916 799009917 799010050 799010071 799010072 799010076 799017560 799017561 799017562 799017564 799017804 799017822 799017823 799017959 799017960 799018006 799019324 799019325 799019328 799019329 799019497 799019511 799019664 799019665 799019677 799019824 799019845 799020707 799020711 799020713 799020714 799020889 799020895 799020896 799020897 799020898 799021070 799021074 799021075 799021077 799021078 799021246 799021247 799021248 799021249 799021263 799021395 799021420 799115390 799240619 799324945 799324946 799324947 799324951 799324952 799325162 799325163 799325168 799325169 799325170 799325348 799325349 799325350 799325518 799325519 799325520 799325526 799325673 799325674 799325677 799325678 799325679 799328639 799334506 799351963 799359944 799361781 799368836 799387625 799434137 799436846 799469053 799493665 799526556 799595188 761164252 761169140 761202002 762417283 762417843 762417919 762418292 763351332 763861811 763863842 771749851 772372212 779410956 779433203 780314210 780462539 780595024 781787054 782273035 782315213 783390405 790536843 791697683 791775969 791919567 793233310 793233317 793233318 793233320 793376458 793523679 794893134 794918134 795259635 795265799 589866662 587489153 610736373 + HISTORY_START: 862000000 + # to see historical TXNS_TO_SKIP, check out ce6158ac2764ee9d4c8738a85f3bcdc6bd0cadc1 + TXNS_TO_SKIP: "0" + # 1195000000-122000000: https://github.com/aptos-labs/aptos-core/pull/13832 + RANGES_TO_SKIP: "1195000000-1220000000" BACKUP_CONFIG_TEMPLATE_PATH: terraform/helm/fullnode/files/backup/gcs.yaml # workflow config RUNS_ON: "high-perf-docker-with-local-ssd" - TIMEOUT_MINUTES: 480 + TIMEOUT_MINUTES: 180 + MAX_VERSIONS_PER_RANGE: 1800000 replay-mainnet: if: | @@ -84,12 +89,16 @@ jobs: # replay-verify config BUCKET: ${{ inputs.MAINNET_BUCKET || 'aptos-mainnet-backup' }} SUB_DIR: e1 - HISTORY_START: 0 - TXNS_TO_SKIP: 12253479 12277499 148358668 + HISTORY_START: 518000000 + #TXNS_TO_SKIP: 12253479 12277499 148358668 + TXNS_TO_SKIP: "0" + # 1197378568-1198492648: https://github.com/aptos-labs/aptos-core/pull/13832 + RANGES_TO_SKIP: "1197378568-1198492648" BACKUP_CONFIG_TEMPLATE_PATH: terraform/helm/fullnode/files/backup/gcs.yaml # workflow config RUNS_ON: "high-perf-docker-with-local-ssd" - TIMEOUT_MINUTES: 480 + TIMEOUT_MINUTES: 180 + MAX_VERSIONS_PER_RANGE: 1000000 test-replay: if: ${{ (github.event_name == 'pull_request') && contains(github.event.pull_request.labels.*.name, 'CICD:test-replay')}} @@ -101,9 +110,13 @@ jobs: # replay-verify config BUCKET: ${{ inputs.TESTNET_BUCKET || 'aptos-testnet-backup' }} SUB_DIR: e1 - HISTORY_START: 250000000 # TODO: We need an exhaustive list of txns_to_skip before we can set this to 0. - TXNS_TO_SKIP: 46874937 151020059 409163615 409163669 409163708 409163774 409163845 409163955 409164059 409164191 414625832 + HISTORY_START: 862000000 + # to see historical TXNS_TO_SKIP, check out ce6158ac2764ee9d4c8738a85f3bcdc6bd0cadc1 + TXNS_TO_SKIP: "0" + # 1195000000-1220000000: https://github.com/aptos-labs/aptos-core/pull/13832 + RANGES_TO_SKIP: "1195000000-1220000000" BACKUP_CONFIG_TEMPLATE_PATH: terraform/helm/fullnode/files/backup/gcs.yaml # workflow config RUNS_ON: "high-perf-docker-with-local-ssd" TIMEOUT_MINUTES: 120 # increase test replay timeout to capture more flaky errors + MAX_VERSIONS_PER_RANGE: 1800000 diff --git a/.github/workflows/workflow-run-replay-verify.yaml b/.github/workflows/workflow-run-replay-verify.yaml index 29dbdf1c88c13..cb7af2922a65d 100644 --- a/.github/workflows/workflow-run-replay-verify.yaml +++ b/.github/workflows/workflow-run-replay-verify.yaml @@ -25,6 +25,10 @@ on: required: false type: string description: The list of transaction versions to skip. If not specified, it will use the default list. + RANGES_TO_SKIP: + required: false + type: string + description: The optional list of transaction ranges to skip.. BACKUP_CONFIG_TEMPLATE_PATH: description: "The path to the backup config template to use." type: string @@ -39,7 +43,11 @@ on: description: "Github job timeout in minutes" type: number required: true - default: 720 + default: 180 + MAX_VERSIONS_PER_RANGE: + description: "The maximum number of versions to process in a single job." + type: number + required: true # This allows the workflow to be triggered manually from the Github UI or CLI # NOTE: because the "number" type is not supported, we default to 720 minute timeout workflow_dispatch: @@ -65,6 +73,10 @@ on: required: false type: string description: The list of transaction versions to skip. If not specified, it will use the default list. + RANGES_TO_SKIP: + required: false + type: string + description: The optional list of transaction ranges to skip.. BACKUP_CONFIG_TEMPLATE_PATH: description: "The path to the backup config template to use." type: string @@ -75,25 +87,128 @@ on: type: string required: true default: "high-perf-docker-with-local-ssd" - + MAX_VERSIONS_PER_RANGE: + description: "The maximum number of versions to process in a single job." + type: number + required: true jobs: + prepare: + runs-on: ${{ inputs.RUNS_ON }} + outputs: + job_ids: ${{ steps.gen-jobs.outputs.job_ids }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.GIT_SHA }} + + - name: Load cached aptos-debugger binary + id: cache-aptos-debugger-binary + uses: actions/cache@v4 + with: + # copy the binary to the root of the repo and cache it there, because rust-setup calls a cache-rust action + # which cleans up the target directory in its post action + path: | + aptos-debugger + testsuite/replay_verify.py + key: aptos-debugger-${{ inputs.GIT_SHA || github.sha }} + + - name: Prepare for build if not cached + if: steps.cache-aptos-debugger-binary.outputs.cache-hit != 'true' + uses: aptos-labs/aptos-core/.github/actions/rust-setup@main + with: + GIT_CREDENTIALS: ${{ inputs.GIT_CREDENTIALS }} + + - name: Build and strip aptos-debugger binary if not cached + if: steps.cache-aptos-debugger-binary.outputs.cache-hit != 'true' + shell: bash + run: | + cargo build --release -p aptos-debugger + strip -s target/release/aptos-debugger + cp target/release/aptos-debugger . + + - name: Install GCloud SDK + uses: "google-github-actions/setup-gcloud@v2" + with: + version: ">= 418.0.0" + install_components: "kubectl,gke-gcloud-auth-plugin" + + - name: get timestamp to use in cache key + id: get-timestamp + run: echo "ts=$(date +%s)" >> $GITHUB_OUTPUT + + - name: Load cached backup storage metadata cache dir (and save back afterwards) + uses: actions/cache@v4 + with: + path: metadata_cache + key: metadata-cache-${{ inputs.BUCKET }}/${{ inputs.SUB_DIR }}-${{ steps.get-timestamp.outputs.ts }} + restore-keys: metadata-cache-${{ inputs.BUCKET }}/${{ inputs.SUB_DIR }}- + + - name: Generate job ranges + id: gen-jobs + env: + BUCKET: ${{ inputs.BUCKET }} + SUB_DIR: ${{ inputs.SUB_DIR }} + run: | + ./aptos-debugger aptos-db gen-replay-verify-jobs \ + --metadata-cache-dir ./metadata_cache \ + --command-adapter-config ${{ inputs.BACKUP_CONFIG_TEMPLATE_PATH }} \ + --start-version ${{ inputs.HISTORY_START }} \ + --ranges-to-skip "${{ inputs.RANGES_TO_SKIP }}" \ + --max-versions-per-range ${{ inputs.MAX_VERSIONS_PER_RANGE }} \ + \ + --max-ranges-per-job 16 \ + --output-json-file jobs.json \ + + + jq -c 'length as $N | [range(0; $N)]' jobs.json > job_ids.json + + cat job_ids.json + jq . jobs.json + + echo "job_ids=$(cat job_ids.json)" >> $GITHUB_OUTPUT + + - name: Cache backup storage config and job definition + uses: actions/cache/save@v4 + with: + path: | + ${{ inputs.BACKUP_CONFIG_TEMPLATE_PATH }} + jobs.json + key: backup-config-${{ inputs.BUCKET }}/${{ inputs.SUB_DIR }}-${{ github.run_id }} + replay-verify: - timeout-minutes: ${{ inputs.TIMEOUT_MINUTES || 720 }} + needs: prepare + timeout-minutes: ${{ inputs.TIMEOUT_MINUTES || 180 }} runs-on: ${{ inputs.RUNS_ON }} strategy: fail-fast: false matrix: - number: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] # runner number + job_id: ${{ fromJson(needs.prepare.outputs.job_ids) }} steps: - - name: Echo Runner Number - run: echo "Runner is ${{ matrix.number }}" - - uses: actions/checkout@v4 + - name: Load cached aptos-debugger binary and replay_verify.py script + uses: actions/cache/restore@v4 with: - ref: ${{ inputs.GIT_SHA }} + path: | + aptos-debugger + testsuite/replay_verify.py + key: aptos-debugger-${{ inputs.GIT_SHA || github.sha }} + fail-on-cache-miss: true + + - name: Load cached backup storage metadata cache dir + uses: actions/cache/restore@v4 + with: + path: metadata_cache + key: metadata-cache-${{ inputs.BUCKET }}/${{ inputs.SUB_DIR }}- + fail-on-cache-miss: true - - uses: aptos-labs/aptos-core/.github/actions/rust-setup@main + - name: Load cached backup storage config and job definitions + uses: actions/cache/restore@v4 with: - GIT_CREDENTIALS: ${{ secrets.GIT_CREDENTIALS }} + path: | + ${{ inputs.BACKUP_CONFIG_TEMPLATE_PATH }} + jobs.json + key: backup-config-${{ inputs.BUCKET }}/${{ inputs.SUB_DIR }}-${{ github.run_id }} + fail-on-cache-miss: true - name: Install GCloud SDK uses: "google-github-actions/setup-gcloud@v2" @@ -101,16 +216,79 @@ jobs: version: ">= 418.0.0" install_components: "kubectl,gke-gcloud-auth-plugin" - - name: Build CLI binaries in release mode - shell: bash - run: cargo build --release -p aptos-debugger - - name: Run replay-verify in parallel - shell: bash - run: testsuite/replay_verify.py ${{ matrix.number }} 19 # first argument is the runner number, second argument is the total number of runners env: BUCKET: ${{ inputs.BUCKET }} SUB_DIR: ${{ inputs.SUB_DIR }} - HISTORY_START: ${{ inputs.HISTORY_START }} - TXNS_TO_SKIP: ${{ inputs.TXNS_TO_SKIP }} - BACKUP_CONFIG_TEMPLATE_PATH: ${{ inputs.BACKUP_CONFIG_TEMPLATE_PATH }} + shell: bash + run: | + set -o nounset -o errexit -o pipefail + replay() { + idx=$1 + id=$2 + begin=$3 + end=$4 + desc=$5 + + echo --------- + echo Job start. $id: $desc + echo --------- + + MC=metadata_cache_$idx + cp -r metadata_cache $MC + DB=db_$idx + + for try in {0..6} + do + if [ $try -gt 0 ]; then + SLEEP=$((10 * $try)) + echo "sleeping for $SLEEP seconds before retry #$try" >&2 + sleep $SLEEP + fi + + res=0 + ./aptos-debugger aptos-db replay-verify \ + --metadata-cache-dir $MC \ + --command-adapter-config ${{ inputs.BACKUP_CONFIG_TEMPLATE_PATH }} \ + --start-version $begin \ + --end-version $end \ + \ + --lazy-quit \ + --enable-storage-sharding \ + --target-db-dir $DB \ + --concurrent-downloads 8 \ + --replay-concurrency-level 4 \ + || res=$? + + if [[ $res == 0 || $res == 2 ]] + then + return $res + fi + done + return 1 + } + + pids=() + idx=0 + while read id begin end desc; do + + replay $idx $id $begin $end "$desc" 2>&1 | sed "s/^/[partition $idx]: /" & + + pids[$idx]=$! + idx=$((idx+1)) + done < <(jq '.[${{ matrix.job_id }}][]' jobs.json) + + res=0 + for idx in `seq 0 $((idx-1))` + do + range_res=0 + wait ${pids[$idx]} || range_res=$? + echo partition $idx returned $range_res + if [[ $range_res != 0 ]] + then + res=$range_res + fi + done + + echo All partitions done, returning $res + exit $res diff --git a/Cargo.lock b/Cargo.lock index a06faf7c9f0a7..3837a3bcf00e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1245,6 +1245,7 @@ dependencies = [ "bcs 0.1.4", "clap 4.4.14", "itertools 0.13.0", + "serde_json", "tokio", ] diff --git a/execution/executor/src/chunk_executor.rs b/execution/executor/src/chunk_executor.rs index 4b18dd00a53de..22289d087c4a5 100644 --- a/execution/executor/src/chunk_executor.rs +++ b/execution/executor/src/chunk_executor.rs @@ -57,6 +57,7 @@ use std::{ atomic::{AtomicBool, Ordering}, Arc, }, + time::Instant, }; pub static SIG_VERIFY_POOL: Lazy> = Lazy::new(|| { @@ -598,9 +599,11 @@ impl TransactionReplayer for ChunkExecutorInner { mut event_vecs: Vec>, verify_execution_mode: &VerifyExecutionMode, ) -> Result<()> { + let started = Instant::now(); + let num_txns = transactions.len(); let mut latest_view = self.commit_queue.lock().expect_latest_view()?; let chunk_begin = latest_view.num_transactions() as Version; - let chunk_end = chunk_begin + transactions.len() as Version; // right-exclusive + let chunk_end = chunk_begin + num_txns as Version; // right-exclusive // Find epoch boundaries. let mut epochs = Vec::new(); @@ -636,11 +639,28 @@ impl TransactionReplayer for ChunkExecutorInner { self.commit_queue .lock() - .enqueue_chunk_to_commit_directly(executed_chunk.expect("Nothing to commit.")) + .enqueue_chunk_to_commit_directly(executed_chunk.expect("Nothing to commit."))?; + info!( + num_txns = num_txns, + tps = (num_txns as f64 / started.elapsed().as_secs_f64()), + "TransactionReplayer::replay() OK" + ); + + Ok(()) } fn commit(&self) -> Result { - self.commit_chunk_impl() + let started = Instant::now(); + + let chunk = self.commit_chunk_impl()?; + + let num_committed = chunk.transactions_to_commit().len(); + info!( + num_committed = num_committed, + tps = num_committed as f64 / started.elapsed().as_secs_f64(), + "TransactionReplayer::commit() OK" + ); + Ok(chunk) } } diff --git a/storage/backup/backup-cli/src/metadata/view.rs b/storage/backup/backup-cli/src/metadata/view.rs index d42c3a39061a3..3b857651208de 100644 --- a/storage/backup/backup-cli/src/metadata/view.rs +++ b/storage/backup/backup-cli/src/metadata/view.rs @@ -105,6 +105,10 @@ impl MetadataView { self.compaction_timestamps.clone() } + pub fn all_state_snapshots(&self) -> &[StateSnapshotBackupMeta] { + &self.state_snapshot_backups + } + pub fn select_state_snapshot( &self, target_version: Version, diff --git a/storage/db-tool/Cargo.toml b/storage/db-tool/Cargo.toml index a579e1ef63710..c4859b5f4ad76 100644 --- a/storage/db-tool/Cargo.toml +++ b/storage/db-tool/Cargo.toml @@ -26,6 +26,7 @@ aptos-vm = { workspace = true } bcs = { workspace = true } clap = { workspace = true } itertools = { workspace = true } +serde_json = { workspace = true } tokio = { workspace = true } [dev-dependencies] diff --git a/storage/db-tool/src/gen_replay_verify_jobs.rs b/storage/db-tool/src/gen_replay_verify_jobs.rs new file mode 100644 index 0000000000000..09b800dd6e779 --- /dev/null +++ b/storage/db-tool/src/gen_replay_verify_jobs.rs @@ -0,0 +1,195 @@ +// Copyright (c) Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +use aptos_backup_cli::{ + metadata::{ + cache::{sync_and_load, MetadataCacheOpt}, + StateSnapshotBackupMeta, + }, + storage::DBToolStorageOpt, + utils::ConcurrentDownloadsOpt, +}; +use aptos_types::transaction::Version; +use clap::Parser; +use itertools::Itertools; +use std::{ + io::Write, + iter::{once, zip}, + path::PathBuf, +}; + +#[derive(Parser)] +pub struct Opt { + #[clap(flatten)] + metadata_cache_opt: MetadataCacheOpt, + #[clap(flatten)] + storage: DBToolStorageOpt, + #[clap(flatten)] + concurrent_downloads: ConcurrentDownloadsOpt, + #[clap( + long, + help = "The first transaction version required to be replayed and verified. [Defaults to 0]" + )] + start_version: Option, + #[clap( + long, + help = "Determines the oldest epoch to replay, relative to the latest", + default_value = "4000" + )] + max_epochs: u64, + #[clap( + long, + help = "Version ranges to skip. e.g. 123-2456", + value_delimiter = ' ' + )] + ranges_to_skip: Vec, + #[clap(long, help = "Target number of transactions for each job to replay")] + max_versions_per_range: u64, + #[clap(long, help = "Maximum ranges per job.")] + max_ranges_per_job: u64, + #[clap(long, help = "Output json file containing the jobs.")] + output_json_file: PathBuf, +} + +impl Opt { + pub async fn run(self) -> anyhow::Result<()> { + let storage = self.storage.init_storage().await?; + let metadata_view = sync_and_load( + &self.metadata_cache_opt, + storage, + self.concurrent_downloads.get(), + ) + .await?; + + let storage_state = metadata_view.get_storage_state()?; + let global_end_version = storage_state + .latest_transaction_version + .expect("No transaction backups.") + + 1; + let latest_epoch = storage_state + .latest_state_snapshot_epoch + .expect("No state snapshots."); + let max_epochs = self.max_epochs.min(latest_epoch + 1); + let global_min_epoch = latest_epoch + 1 - max_epochs; + + let fake_end = StateSnapshotBackupMeta { + epoch: latest_epoch, + version: global_end_version, + manifest: "".to_string(), + }; + let job_ranges = metadata_view + .all_state_snapshots() + .iter() + .dedup_by(|a, b| a.epoch == b.epoch) + .filter(|s| s.epoch >= global_min_epoch && s.version <= global_end_version) + .chain(once(&fake_end)) + .collect_vec() + .iter() + .rev() + .tuple_windows() + // to simplify things, if start_version appears in the middle of a range, give up the range + .take_while(|(_end, begin)| begin.version >= self.start_version.unwrap_or(0)) + .peekable() + .batching(|it| { + match it.next() { + Some((end, mut begin)) => { + if end.version - begin.version >= self.max_versions_per_range { + // cut big range short, this hopefully automatically skips load tests + let msg = if end.epoch - begin.epoch > 15 { + "!!! Need more snapshots !!!" + } else { + "" + }; + Some(( + true, + begin.version, + begin.version + self.max_versions_per_range - 1, + format!( + "Partial replay epoch {} - {}, {} txns starting from version {}, another {} versions omitted, until {}. {}", + begin.epoch, + end.epoch - 1, + self.max_versions_per_range, + begin.version, + end.version - begin.version - self.max_versions_per_range, + end.version, + msg + ) + )) + } else { + while let Some((_prev_end, prev_begin)) = it.peek() { + if end.version - prev_begin.version > self.max_versions_per_range { + break; + } + begin = prev_begin; + let _ = it.next(); + } + Some(( + false, + begin.version, + end.version - 1, + format!( + "Replay epoch {} - {}, {} txns starting from version {}.", + begin.epoch, + end.epoch - 1, + end.version - begin.version, + begin.version, + ) + )) + } + }, + None => None, + } + }).collect_vec(); + + // Deal with ranges_to_skip: to simplify things, we skip entire jobs instead of trimming them + let mut ranges_to_skip = self + .ranges_to_skip + .iter() + .flat_map(|range| { + if range.is_empty() { + return None; + } + let (begin, end) = range + .split('-') + .map(|v| v.parse::().expect("Malformed range.")) + .collect_tuple() + .expect("Malformed range."); + assert!(begin <= end, "Malformed Range."); + Some((begin, end)) + }) + .sorted() + .rev() + .peekable(); + + let job_ranges = job_ranges + .into_iter() + .filter(|(_, first, last, _)| { + while let Some((skip_first, skip_last)) = ranges_to_skip.peek() { + if *skip_first > *last { + let _ = ranges_to_skip.next(); + } else { + return *skip_last < *first; + } + } + true + }) + .collect_vec(); + + let num_jobs = (job_ranges.len() as f32 / self.max_ranges_per_job as f32).ceil() as usize; + let mut jobs = vec![vec![]; num_jobs]; + + let mut job_idx = -1; + zip(job_ranges, (0..num_jobs).cycle()).for_each( + |((partial, first, last, desc), output_idx)| { + job_idx += 1; + let suffix = if partial { "-partial" } else { "" }; + let job = format!("{output_idx}-{job_idx}{suffix} {first} {last} {desc}"); + jobs[output_idx].push(job); + }, + ); + + std::fs::File::create(self.output_json_file)?.write_all(&serde_json::to_vec(&jobs)?)?; + + Ok(()) + } +} diff --git a/storage/db-tool/src/lib.rs b/storage/db-tool/src/lib.rs index aa5ce03cb0861..36c55e1493afe 100644 --- a/storage/db-tool/src/lib.rs +++ b/storage/db-tool/src/lib.rs @@ -6,6 +6,7 @@ extern crate core; mod backup; mod backup_maintenance; mod bootstrap; +mod gen_replay_verify_jobs; mod replay_verify; pub mod restore; #[cfg(test)] @@ -33,6 +34,8 @@ pub enum DBTool { ReplayVerify(replay_verify::Opt), + GenReplayVerifyJobs(gen_replay_verify_jobs::Opt), + #[clap(subcommand)] Restore(restore::Command), } @@ -49,6 +52,7 @@ impl DBTool { info!("Replay verify result: {:?}", ret); ret }, + DBTool::GenReplayVerifyJobs(cmd) => cmd.run().await, DBTool::Restore(cmd) => cmd.run().await, } }