diff --git a/tips/TIP-0039/tip-0039.md b/tips/TIP-0039/tip-0039.md index 14ec4e707..32ec024bf 100644 --- a/tips/TIP-0039/tip-0039.md +++ b/tips/TIP-0039/tip-0039.md @@ -60,20 +60,21 @@ It is an essential element of the IOTA protocol, as it is used: - [**Stored Mana**](#stored-mana) is Mana that is stored in UTXOs and can consequently be moved on the UTXO ledger, which allows for Mana Market development. -- [**Potential Mana**](#potential-mana) is generated by holding IOTA coins. The longer the IOTA coins were unspent, the - more Potential Mana is generated. When an output is spent, its Potential Mana is released and can be transitioned to - one of its more explicit forms, i.e. Stored Mana or Block Issuance Credits. -- [**Block Issuance Credit**](#block-issuance-credit) (BIC) is the form of Mana that can be used to issue blocks. During - a transaction, Stored or Potential Mana can be _allotted_ which moves the Mana off the UTXO ledger and converts it to - BIC. Only this form of Mana can be used to issue blocks. -- [**Mana Rewards**](#mana-rewards) reward participation in staking for validation and delegating IOTA coins. The Mana - rewarded from these activities is not registered in the UTXO ledger and must be moved to it when claiming rewards as - described in [TIP-40](../TIP-0040/tip-0040.md##mana-rewards). +- [**Potential Mana**](#potential-mana) is generated by holding IOTA coins. + The longer the IOTA coins were unspent, the more Potential Mana is generated. + When an output is spent, its Potential Mana is released and can be transitioned to one of its more explicit forms, i.e. Stored Mana or Block Issuance Credits. + Note that the Potential Mana is a quatity not explicitly tracked in the ledger state, but easily derived from it. +- [**Block Issuance Credit**](#block-issuance-credit) (BIC) is the form of Mana used as an anti-spam mechanism to the block issuance process. + During a transaction, Stored or Potential Mana can be _allotted as BIC_, which moves the Mana off the UTXO ledger and converts it to Block Issuance Credits. + Only this form of Mana can be burnt to issue blocks. +- [**Mana Rewards**](#mana-rewards) reward participation in staking for validation and delegating IOTA coins. + The Mana rewarded from these activities is not registered automatically in the UTXO ledger; thus, rewards must be claimed, as described in [TIP-40](../TIP-0040/tip-0040.md##mana-rewards). + +The **Mana holdings** of a user are the sum of all the Potential Mana and Stored Mana in their Account Output that they use to issue blocks. ## Mana Burn -The **Mana holdings** of a user are the sum of all the Potential Mana and Stored Mana (but not the Mana Rewards) in -their Account Output that they use to issue blocks. According to the congestion control mechanism, during each block +According to the congestion control mechanism, during each block issuance, the block issuer needs to burn a certain amount of Mana dictated by the work score of the block and the Reference Mana Cost (RMC). The Mana burned by the block is subtracted from the block issuer's BIC balance. Users who overspend Mana (i.e., try to issue more blocks than their Mana Holdings allow) will have their account locked until @@ -81,22 +82,22 @@ their debt is paid. ### Reference Mana Cost -_Reference Mana Cost (RMC)_ is used to decide how much Mana should be burned from BIC by each block in that slot. RMC is -computed according to an algorithm based on recent traffic activity: the algorithm counts the number of blocks in slots -that are _Maximum Committable Age (MCA)_ slots in the past so that all nodes agree on that value of RMC and know this -value in advance (before issuing the block). +The _Reference Mana Cost (RMC)_ of a slot is used to decide how much Mana should be burned from the user's BIC each time a block is issued in that slot. +The RMC is computed according to an algorithm based on the recent traffic activity. +Note that the algorithm takes as in input the number of blocks in certain slots older than _Maximum Committable Age (MCA)_, meaning that all nodes know and agree on the RMC of a slot in advance (even before issuing the block). From a high-level perspective, the RMC algorithm works as follows: - If the number of blocks in slot `i - MCA` is larger than a given threshold, then the RMC increases. -- Otherwise, if the activity is low, the RMC decreases. -- The rate at which the RMC decreases is higher than its increase to tackle situations where the price suddenly becomes - too large for the majority of users, and activity drops. +- Otherwise (i.e., if the activity is low), the RMC decreases. +- The rate at which the RMC decreases is higher than its increase to tackle situations where the price suddenly becomes too large for the majority of users, and activity drops. (TO DO: update with the final price dynamic design) + +To limit fluctuations in the RMC, it is recommended +to update its value at least every MCA slots. The RMC update only takes into account the blocks issued by accounts having non-negative BIC balances to avoid price -manipulations by malicious actors. Note that blocks from issuers with negative BIC balances are excluded with respect to -the RMC calculation, but they do make part of the slot commitment. To limit fluctuations in the RMC, it is recommended -to update its value every MCA slot at least. +manipulations by malicious actors. Note that even though blocks from issuers with negative BIC balances are excluded with respect to +the RMC calculation, they do make part of the slot commitment. ## Mana Decay @@ -106,8 +107,10 @@ non-gameability (e.g., splitting accounts or other behaviors that are not helpfu the fairness of Mana, the same global decay factor needs to be applied to all the above-mentioned forms of Mana. As the exact formulas in which the decay factor will be applied might differ among the Mana types, it is essential to -point out that all of them are based on the same exponential decay with the same parameter `β`. The Incentives -Whitepaper (TODO: Link) provides the specific formula for the decay function in Appendix A. +point out that all of them are based on the same exponential decay with the same parameter `β`. The [Incentives +Whitepaper](https://files.iota.org/papers/IOTA_2.0_Incentives_And_Tokenomics_Whitepaper.pdf) provides the specific formula for the decay function in Appendix A. +To make the formulas and code more intuitive, we define in this TIP an `Annual Decay` multiplicative factor that is mathematically equivalent to the decay mechanism introduced in the Whitepaper. +This new parameter is defined such that `Annual Decay = exp(-β)`. Applying decay for the generation of new Mana and staking rewards is conceptually straightforward since it is done at the time of storing this Mana. Similarly, applying the decay on the already stored Mana happens during the UTXO @@ -115,7 +118,7 @@ spending. In any of those cases, the node must calculate the decay based on epoc 2Slots Per Epoch Exponent slots, the epoch changes, meaning that every set of consecutive 2Slots Per Epoch Exponent slots will be in the same epoch. -The decay parameter `β` (together with the Mana generation parameter `Mana Structure::Generation Rate`) was set so the +The decay parameter `Annual Decay` (together with the Mana generation parameter `Mana Structure::Generation Rate`) was set so the maximum theoretical Mana in the system is smaller than 2Bits Count - 1, where `Bits Count` refers to the `Mana Structure::Bits Count` protocol parameter. This means that, even though Mana is stored as a uint64, it effectively uses less than 64 bits (in the case of BIC, it uses at most `Bits Count + 1` bits, `Bits Count` for the @@ -127,7 +130,7 @@ unreasonably large value in practice to avoid overflowing of the variables even ### Mana Decay Parameters The tables below describe the key parameters used for the Mana decay calculations in the next sections of this TIP. -Notice that the parameters in the first table are only used in the explanations in this TIP, but not in the code. +Notice that the parameters in the first table are only used in the explanations in this TIP, but not explicitly in the code. @@ -135,9 +138,9 @@ Notice that the parameters in the first table are only used in the explanations - + @@ -156,6 +159,13 @@ Notice that the parameters in the first table are only used in the explanations Additionally, we use the protocol parameters, as defined in [TIP-49], and `Decay Factors Length`, defined as the length of the lookup Table `Decay Factors`. +We also use an auxiliary `Decay per Epoch` factor, derived from `Annual Decay` and other protocol parameters using the following relation: + +Decay per Epoch = Annual Decay(Seconds per Epoch/Seconds per Year) + +where +- `Seconds per Year = 60*60*24*365` +- Seconds per Epoch = Slot Duration In Seconds * 2Slots Per Epoch Exponent ## Mana and fixed point arithmetics @@ -171,9 +181,9 @@ point arithmetics. In the last section of this TIP, we introduce a lookup table that will be used in the rest of this TIP (and possibly other TIPs), as a tool to perform calculations that would otherwise be done with floating point operations. Specifically, the [lookup table](#lookup-table) introduced is an integer approximation of 2Decay Factors -Exponentexp(-βΔn), for different values of `n` ranging from 1 to `Decay Factors Length`. For the lookup +ExponentDecay per Epochn, for different values of `n` ranging from 1 to `Decay Factors Length`. For the lookup table in this document, we set `Decay Factors Exponent` = 32, `Slots Per Epoch Exponent` = 13, -`Slot Duration in Seconds` = 10, (which implies that `Δ = 0.002597666159`), and `β = 1/3` per year. +`Slot Duration in Seconds` = 10, and `Annual Decay` = 0,7. ### How to use the lookup table @@ -222,11 +232,7 @@ necessarily corresponds to the `epochIndexDiff`th entry of the table. Other implementations of the functions above are possible; however, one must be careful with the order of operations, which must be done as defined above. Having a well-defined order is crucial since sequences of divisions and -multiplications with integers might lead to different results when the order is altered. Example: suppose one needs to -calculate 1002 * 99 / 100 *21 / 100. Following the left-to-right order, this would result in 1002 _ 99 / 100 _ 21 / 100 -= 99198 / 100 _ 21 / 100 = 991 _ 21 / 100 = 20811 / 100 = 208. If someone did this operation in a different order, let's -say 1002 _ 21 / 100 _ 99 / 100, the result would be 1002 _ 21 / 100 _ 99 / 100 = 21042 / 100 _ 99 / 100 = 210 _ 99 / 100 -= 20790 / 100 = 207. +multiplications with integers variables might lead to different results when the order is altered. ## Potential Mana @@ -238,7 +244,7 @@ transaction that created the UTXO. ### Rationale behind the Potential Mana formulas We model the potential Mana generated by an output holding `S` IOTA coins as the combination of a fixed generation per -slot `γS` and a decay equivalent to a multiplication by exp(-βΔ) every time an epoch ends. +slot `γS` and a decay equivalent to a multiplication by Decay per Epoch every time an epoch ends. ![](./img/slots_potential_mana-2.png) @@ -248,34 +254,36 @@ decayed `n` times. The Mana generated in epoch `i+1` "crosses" n-1 decay boundar and so on, until the Mana generated in epoch `j`, which is not decayed at all. Adding these values, we find the following formulas (where d is the number of slots in an epoch): -Potential Mana = γSd1 exp(-βΔn) + ΣγSd exp(-βΔi) + γSd2, where the summation is over +Potential Mana = γSd1 Decay per Epochn + ΣγSd Decay per Epochi + γSd2, where the summation is over i = 1,...,n-1. Solving the sum, this results: -Potential Mana = γSd1 exp(-βΔn) + γSd2 + γSd exp(-βΔ) (1 - exp(-βΔ(n-1))) / -(1-exp(-βΔ)), +Potential Mana = γSd1 Decay per Epochn + γSd2 + γSd Decay per Epoch (1 - Decay per Epochn-1) / +(1-Decay per Epoch), -Analogously, if `n=1`, Potential Mana = γSd1 exp(-βΔ) + γSd2; if `n=0`, +Analogously, if `n=1`, Potential Mana = γSd1 Decay per Epoch + γSd2; if `n=0`, Potential Mana = γSδ, where δ is the difference between the creation and consumption slots. ### Potential Mana formulas with fixed point arithmetics The formulas found in the last section are the exact formulas for the model proposed. However, we must not use floating point arithmetics, so these formulas must be adapted for the implementation. We begin by rearranging the formula for -n>1, noticing that we already approximated 2 `Decay Factors Exponent` exp(-βΔi) by +n>1, noticing that we already approximated 2 `Decay Factors Exponent` Decay per Epochi by `Decay Factors(i)`, where `Decay Factors Exponent` is the precision of the [lookup table](#lookup-table) used. The parameter `γ` is then represented as `Generation Rate`*2-`Generation Rate Exponent`, and -exp(-βΔ)/(1 - exp(-βΔ)) is approximated by +Decay per Epoch/(1 - Decay per Epoch) is approximated by `Decay Factor Epochs Sum`*2-`Decay Factor Epochs Sum Exponent`. For additional explanations -about these approximations, see the Incentives Whitepaper. +about these approximations, see the [Incentives +Whitepaper](https://files.iota.org/papers/IOTA_2.0_Incentives_And_Tokenomics_Whitepaper.pdf). We begin by defining an auxiliary procedure `Generate Mana` that (intuitively) generates Mana without applying any type of decay (note that we use some of the procedures and constants defined in the last sections): - `Generate Mana(value,slotIndexDiff)` returns the generated mana from holding `value` tokens for `slotIndexDiff` slots, - without applying any decay: _ if `slotIndexDiff` == 0 or `Generation Rate` == 0, the procedure returns `0` _ - otherwise, it returns `Multiplication And Shift(value, slotIndexDiff * Generation Rate, Generation Rate Exponent)`. + without applying any decay: + - if `slotIndexDiff` == 0 or `Generation Rate` == 0, the procedure returns `0` + - otherwise, it returns `Multiplication And Shift(value, slotIndexDiff * Generation Rate, Generation Rate Exponent)`. Now we define the procedure `Potential Mana` that actually calculates the Potential Mana using the formulas defined in the last section (including the decays): @@ -445,7 +453,7 @@ and underflows. ## Lookup Table
Description
βAnnual Decay - Global exponential decay parameter. + Global annual decay parameter.
- + @@ -453,1828 +461,1828 @@ and underflows. - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + +
Lookup Table: Decays for Mana in decay index granularity scaled to 232Lookup Table: Decays for Mana in epoch granularity scaled to 232
n Type
1 - uint32 4291249941 uint32 4290989755
2 - uint32 4287535805 uint32 4287015898
3 - uint32 4283824883 uint32 4283045721
4 - uint32 4280117173 uint32 4279079221
5 - uint32 4276412671 uint32 4275116394
6 - uint32 4272711377 uint32 4271157237
7 - uint32 4269013285 uint32 4267201747
8 - uint32 4265318395 uint32 4263249920
9 - uint32 4261626702 uint32 4259301752
10 - uint32 4257938205 uint32 4255357241
11 - uint32 4254252900 uint32 4251416383
12 - uint32 4250570785 uint32 4247479175
13 - uint32 4246891856 uint32 4243545613
14 - uint32 4243216112 uint32 4239615693
15 - uint32 4239543550 uint32 4235689414
16 - uint32 4235874166 uint32 4231766770
17 - uint32 4232207957 uint32 4227847759
18 - uint32 4228544922 uint32 4223932377
19 - uint32 4224885058 uint32 4220020622
20 - uint32 4221228361 uint32 4216112489
21 - uint32 4217574829 uint32 4212207975
22 - uint32 4213924459 uint32 4208307077
23 - uint32 4210277249 uint32 4204409792
24 - uint32 4206633195 uint32 4200516116
25 - uint32 4202992295 uint32 4196626046
26 - uint32 4199354547 uint32 4192739579
27 - uint32 4195719947 uint32 4188856710
28 - uint32 4192088493 uint32 4184977438
29 - uint32 4188460182 uint32 4181101758
30 - uint32 4184835011 uint32 4177229668
31 - uint32 4181212978 uint32 4173361163
32 - uint32 4177594080 uint32 4169496241
33 - uint32 4173978314 uint32 4165634898
34 - uint32 4170365677 uint32 4161777132
35 - uint32 4166756168 uint32 4157922938
36 - uint32 4163149782 uint32 4154072313
37 - uint32 4159546518 uint32 4150225254
38 - uint32 4155946372 uint32 4146381758
39 - uint32 4152349343 uint32 4142541822
40 - uint32 4148755427 uint32 4138705441
41 - uint32 4145164621 uint32 4134872614
42 - uint32 4141576923 uint32 4131043336
43 - uint32 4137992331 uint32 4127217604
44 - uint32 4134410840 uint32 4123395415
45 - uint32 4130832450 uint32 4119576766
46 - uint32 4127257157 uint32 4115761654
47 - uint32 4123684959 uint32 4111950074
48 - uint32 4120115852 uint32 4108142024
49 - uint32 4116549834 uint32 4104337501
50 - uint32 4112986903 uint32 4100536502
51 - uint32 4109427055 uint32 4096739022
52 - uint32 4105870289 uint32 4092945060
53 - uint32 4102316601 uint32 4089154610
54 - uint32 4098765988 uint32 4085367672
55 - uint32 4095218449 uint32 4081584240
56 - uint32 4091673981 uint32 4077804312
57 - uint32 4088132580 uint32 4074027884
58 - uint32 4084594244 uint32 4070254954
59 - uint32 4081058971 uint32 4066485518
60 - uint32 4077526757 uint32 4062719573
61 - uint32 4073997601 uint32 4058957115
62 - uint32 4070471499 uint32 4055198142
63 - uint32 4066948449 uint32 4051442650
64 - uint32 4063428449 uint32 4047690636
65 - uint32 4059911495 uint32 4043942097
66 - uint32 4056397585 uint32 4040197029
67 - uint32 4052886716 uint32 4036455429
68 - uint32 4049378886 uint32 4032717295
69 - uint32 4045874092 uint32 4028982622
70 - uint32 4042372332 uint32 4025251408
71 - uint32 4038873602 uint32 4021523650
72 - uint32 4035377901 uint32 4017799344
73 - uint32 4031885225 uint32 4014078486
74 - uint32 4028395572 uint32 4010361075
75 - uint32 4024908939 uint32 4006647106
76 - uint32 4021425325 uint32 4002936577
77 - uint32 4017944725 uint32 3999229484
78 - uint32 4014467138 uint32 3995525824
79 - uint32 4010992560 uint32 3991825594
80 - uint32 4007520990 uint32 3988128791
81 - uint32 4004052425 uint32 3984435412
82 - uint32 4000586862 uint32 3980745453
83 - uint32 3997124298 uint32 3977058911
84 - uint32 3993664731 uint32 3973375783
85 - uint32 3990208159 uint32 3969696066
86 - uint32 3986754578 uint32 3966019757
87 - uint32 3983303986 uint32 3962346853
88 - uint32 3979856381 uint32 3958677350
89 - uint32 3976411760 uint32 3955011245
90 - uint32 3972970120 uint32 3951348535
91 - uint32 3969531459 uint32 3947689218
92 - uint32 3966095774 uint32 3944033289
93 - uint32 3962663063 uint32 3940380746
94 - uint32 3959233323 uint32 3936731586
95 - uint32 3955806551 uint32 3933085805
96 - uint32 3952382745 uint32 3929443400
97 - uint32 3948961903 uint32 3925804369
98 - uint32 3945544021 uint32 3922168708
99 - uint32 3942129098 uint32 3918536413
100 - uint32 3938717130 uint32 3914907483
101 - uint32 3935308116 uint32 3911281913
102 - uint32 3931902052 uint32 3907659701
103 - uint32 3928498936 uint32 3904040843
104 - uint32 3925098765 uint32 3900425337
105 - uint32 3921701537 uint32 3896813179
106 - uint32 3918307250 uint32 3893204366
107 - uint32 3914915900 uint32 3889598896
108 - uint32 3911527486 uint32 3885996764
109 - uint32 3908142004 uint32 3882397968
110 - uint32 3904759453 uint32 3878802505
111 - uint32 3901379829 uint32 3875210372
112 - uint32 3898003131 uint32 3871621566
113 - uint32 3894629355 uint32 3868036083
114 - uint32 3891258499 uint32 3864453920
115 - uint32 3887890560 uint32 3860875075
116 - uint32 3884525537 uint32 3857299544
117 - uint32 3881163426 uint32 3853727325
118 - uint32 3877804224 uint32 3850158414
119 - uint32 3874447931 uint32 3846592808
120 - uint32 3871094542 uint32 3843030504
121 - uint32 3867744056 uint32 3839471499
122 - uint32 3864396469 uint32 3835915790
123 - uint32 3861051780 uint32 3832363374
124 - uint32 3857709986 uint32 3828814248
125 - uint32 3854371084 uint32 3825268408
126 - uint32 3851035072 uint32 3821725853
127 - uint32 3847701948 uint32 3818186578
128 - uint32 3844371708 uint32 3814650580
129 - uint32 3841044351 uint32 3811117858
130 - uint32 3837719873 uint32 3807588407
131 - uint32 3834398273 uint32 3804062225
132 - uint32 3831079548 uint32 3800539308
133 - uint32 3827763695 uint32 3797019654
134 - uint32 3824450713 uint32 3793503259
135 - uint32 3821140597 uint32 3789990121
136 - uint32 3817833347 uint32 3786480237
137 - uint32 3814528959 uint32 3782973602
138 - uint32 3811227431 uint32 3779470216
139 - uint32 3807928760 uint32 3775970074
140 - uint32 3804632945 uint32 3772473173
141 - uint32 3801339982 uint32 3768979511
142 - uint32 3798049869 uint32 3765489084
143 - uint32 3794762604 uint32 3762001889
144 - uint32 3791478184 uint32 3758517924
145 - uint32 3788196607 uint32 3755037186
146 - uint32 3784917870 uint32 3751559671
147 - uint32 3781641970 uint32 3748085377
148 - uint32 3778368907 uint32 3744614300
149 - uint32 3775098676 uint32 3741146437
150 - uint32 3771831275 uint32 3737681787
151 - uint32 3768566702 uint32 3734220344
152 - uint32 3765304955 uint32 3730762108
153 - uint32 3762046031 uint32 3727307074
154 - uint32 3758789928 uint32 3723855240
155 - uint32 3755536643 uint32 3720406602
156 - uint32 3752286174 uint32 3716961158
157 - uint32 3749038518 uint32 3713518905
158 - uint32 3745793673 uint32 3710079840
159 - uint32 3742551636 uint32 3706643960
160 - uint32 3739312405 uint32 3703211262
161 - uint32 3736075978 uint32 3699781742
162 - uint32 3732842352 uint32 3696355399
163 - uint32 3729611525 uint32 3692932229
164 - uint32 3726383494 uint32 3689512229
165 - uint32 3723158258 uint32 3686095396
166 - uint32 3719935812 uint32 3682681728
167 - uint32 3716716156 uint32 3679271221
168 - uint32 3713499286 uint32 3675863872
169 - uint32 3710285201 uint32 3672459679
170 - uint32 3707073897 uint32 3669058639
171 - uint32 3703865373 uint32 3665660748
172 - uint32 3700659626 uint32 3662266004
173 - uint32 3697456653 uint32 3658874404
174 - uint32 3694256453 uint32 3655485944
175 - uint32 3691059023 uint32 3652100623
176 - uint32 3687864360 uint32 3648718437
177 - uint32 3684672462 uint32 3645339383
178 - uint32 3681483326 uint32 3641963459
179 - uint32 3678296951 uint32 3638590661
180 - uint32 3675113334 uint32 3635220986
181 - uint32 3671932472 uint32 3631854432
182 - uint32 3668754363 uint32 3628490996
183 - uint32 3665579005 uint32 3625130675
184 - uint32 3662406395 uint32 3621773465
185 - uint32 3659236531 uint32 3618419365
186 - uint32 3656069411 uint32 3615068371
187 - uint32 3652905032 uint32 3611720480
188 - uint32 3649743392 uint32 3608375690
189 - uint32 3646584488 uint32 3605033997
190 - uint32 3643428318 uint32 3601695399
191 - uint32 3640274880 uint32 3598359893
192 - uint32 3637124172 uint32 3595027476
193 - uint32 3633976190 uint32 3591698145
194 - uint32 3630830933 uint32 3588371897
195 - uint32 3627688398 uint32 3585048730
196 - uint32 3624548583 uint32 3581728640
197 - uint32 3621411486 uint32 3578411625
198 - uint32 3618277104 uint32 3575097682
199 - uint32 3615145434 uint32 3571786808
200 - uint32 3612016476 uint32 3568479000
201 - uint32 3608890225 uint32 3565174255
202 - uint32 3605766680 uint32 3561872571
203 - uint32 3602645839 uint32 3558573944
204 - uint32 3599527699 uint32 3555278373
205 - uint32 3596412257 uint32 3551985853
206 - uint32 3593299512 uint32 3548696383
207 - uint32 3590189461 uint32 3545409959
208 - uint32 3587082102 uint32 3542126578
209 - uint32 3583977433 uint32 3538846238
210 - uint32 3580875450 uint32 3535568936
211 - uint32 3577776153 uint32 3532294669
212 - uint32 3574679537 uint32 3529023435
213 - uint32 3571585602 uint32 3525755230
214 - uint32 3568494345 uint32 3522490051
215 - uint32 3565405764 uint32 3519227897
216 - uint32 3562319855 uint32 3515968763
217 - uint32 3559236618 uint32 3512712648
218 - uint32 3556156049 uint32 3509459548
219 - uint32 3553078146 uint32 3506209461
220 - uint32 3550002907 uint32 3502962384
221 - uint32 3546930330 uint32 3499718314
222 - uint32 3543860413 uint32 3496477248
223 - uint32 3540793152 uint32 3493239183
224 - uint32 3537728546 uint32 3490004118
225 - uint32 3534666593 uint32 3486772048
226 - uint32 3531607290 uint32 3483542972
227 - uint32 3528550634 uint32 3480316886
228 - uint32 3525496624 uint32 3477093788
229 - uint32 3522445258 uint32 3473873674
230 - uint32 3519396533 uint32 3470656543
231 - uint32 3516350446 uint32 3467442391
232 - uint32 3513306995 uint32 3464231216
233 - uint32 3510266179 uint32 3461023014
234 - uint32 3507227995 uint32 3457817784
235 - uint32 3504192440 uint32 3454615522
236 - uint32 3501159513 uint32 3451416225
237 - uint32 3498129210 uint32 3448219892
238 - uint32 3495101531 uint32 3445026518
239 - uint32 3492076472 uint32 3441836102
240 - uint32 3489054031 uint32 3438648641
241 - uint32 3486034206 uint32 3435464131
242 - uint32 3483016995 uint32 3432282571
243 - uint32 3480002395 uint32 3429103957
244 - uint32 3476990404 uint32 3425928286
245 - uint32 3473981020 uint32 3422755557
246 - uint32 3470974241 uint32 3419585766
247 - uint32 3467970065 uint32 3416418910
248 - uint32 3464968488 uint32 3413254987
249 - uint32 3461969510 uint32 3410093995
250 - uint32 3458973127 uint32 3406935929
251 - uint32 3455979337 uint32 3403780789
252 - uint32 3452988139 uint32 3400628570
253 - uint32 3449999530 uint32 3397479270
254 - uint32 3447013507 uint32 3394332887
255 - uint32 3444030069 uint32 3391189418
256 - uint32 3441049213 uint32 3388048860
257 - uint32 3438070937 uint32 3384911211
258 - uint32 3435095238 uint32 3381776467
259 - uint32 3432122115 uint32 3378644627
260 - uint32 3429151566 uint32 3375515686
261 - uint32 3426183587 uint32 3372389644
262 - uint32 3423218178 uint32 3369266496
263 - uint32 3420255335 uint32 3366146241
264 - uint32 3417295056 uint32 3363028875
265 - uint32 3414337339 uint32 3359914396
266 - uint32 3411382183 uint32 3356802802
267 - uint32 3408429584 uint32 3353694089
268 - uint32 3405479541 uint32 3350588256
269 - uint32 3402532051 uint32 3347485298
270 - uint32 3399587112 uint32 3344385214
271 - uint32 3396644722 uint32 3341288001
272 - uint32 3393704878 uint32 3338193657
273 - uint32 3390767579 uint32 3335102178
274 - uint32 3387832823 uint32 3332013562
275 - uint32 3384900606 uint32 3328927806
276 - uint32 3381970927 uint32 3325844909
277 - uint32 3379043784 uint32 3322764866
278 - uint32 3376119175 uint32 3319687675
279 - uint32 3373197097 uint32 3316613335
280 - uint32 3370277548 uint32 3313541841
281 - uint32 3367360525 uint32 3310473192
282 - uint32 3364446028 uint32 3307407385
283 - uint32 3361534053 uint32 3304344417
284 - uint32 3358624598 uint32 3301284286
285 - uint32 3355717662 uint32 3298226988
286 - uint32 3352813241 uint32 3295172522
287 - uint32 3349911335 uint32 3292120885
288 - uint32 3347011940 uint32 3289072074
289 - uint32 3344115054 uint32 3286026086
290 - uint32 3341220676 uint32 3282982919
291 - uint32 3338328803 uint32 3279942570
292 - uint32 3335439433 uint32 3276905037
293 - uint32 3332552563 uint32 3273870317
294 - uint32 3329668193 uint32 3270838408
295 - uint32 3326786318 uint32 3267809306
296 - uint32 3323906939 uint32 3264783010
297 - uint32 3321030051 uint32 3261759516
298 - uint32 3318155653 uint32 3258738822
299 - uint32 3315283743 uint32 3255720926
300 - uint32 3312414319 uint32 3252705824
301 - uint32 3309547378 uint32 3249693515
302 - uint32 3306682918 uint32 3246683996
303 - uint32 3303820938 uint32 3243677263
304 - uint32 3300961435 uint32 3240673315
305 - uint32 3298104407 uint32 3237672149
306 - uint32 3295249852 uint32 3234673763
307 - uint32 3292397767 uint32 3231678153
308 - uint32 3289548151 uint32 3228685317
309 - uint32 3286701001 uint32 3225695253
310 - uint32 3283856315 uint32 3222707958
311 - uint32 3281014092 uint32 3219723430
312 - uint32 3278174328 uint32 3216741666
313 - uint32 3275337023 uint32 3213762662
314 - uint32 3272502173 uint32 3210786418
315 - uint32 3269669777 uint32 3207812930
316 - uint32 3266839832 uint32 3204842196
317 - uint32 3264012336 uint32 3201874213
318 - uint32 3261187288 uint32 3198908979
319 - uint32 3258364685 uint32 3195946490
320 - uint32 3255544525 uint32 3192986746
321 - uint32 3252726806 uint32 3190029742
322 - uint32 3249911526 uint32 3187075477
323 - uint32 3247098682 uint32 3184123947
324 - uint32 3244288273 uint32 3181175151
325 - uint32 3241480296 uint32 3178229086
326 - uint32 3238674749 uint32 3175285749
327 - uint32 3235871631 uint32 3172345138
328 - uint32 3233070939 uint32 3169407251
329 - uint32 3230272671 uint32 3166472084
330 - uint32 3227476825 uint32 3163539635
331 - uint32 3224683399 uint32 3160609902
332 - uint32 3221892391 uint32 3157682882
333 - uint32 3219103798 uint32 3154758573
334 - uint32 3216317619 uint32 3151836972
335 - uint32 3213533851 uint32 3148918077
336 - uint32 3210752492 uint32 3146001885
337 - uint32 3207973541 uint32 3143088393
338 - uint32 3205196995 uint32 3140177600
339 - uint32 3202422853 uint32 3137269503
340 - uint32 3199651111 uint32 3134364098
341 - uint32 3196881768 uint32 3131461384
342 - uint32 3194114823 uint32 3128561359
343 - uint32 3191350272 uint32 3125664019
344 - uint32 3188588114 uint32 3122769362
345 - uint32 3185828346 uint32 3119877387
346 - uint32 3183070967 uint32 3116988089
347 - uint32 3180315975 uint32 3114101467
348 - uint32 3177563367 uint32 3111217518
349 - uint32 3174813142 uint32 3108336240
350 - uint32 3172065297 uint32 3105457631
351 - uint32 3169319830 uint32 3102581687
352 - uint32 3166576739 uint32 3099708407
353 - uint32 3163836023 uint32 3096837788
354 - uint32 3161097679 uint32 3093969827
355 - uint32 3158361705 uint32 3091104522
356 - uint32 3155628099 uint32 3088241871
357 - uint32 3152896859 uint32 3085381870
358 - uint32 3150167982 uint32 3082524519
359 - uint32 3147441468 uint32 3079669813
360 - uint32 3144717314 uint32 3076817752
361 - uint32 3141995517 uint32 3073968331
362 - uint32 3139276076 uint32 3071121550
363 - uint32 3136558989 uint32 3068277404
364 - uint32 3133844253 uint32 3065435893
365 - uint32 3131131867 uint32 3062597013