rusty+rustc 1.68.0-nightly (dfe3fe710 2022-12-09)D-798bc7c2d986ac97ܞ-f11f71ea62a32136rustc_std_workspace_coreҖ\-69892fa511d5a698 num_traits뎠n-38087d2823881823Ktraitsroots      Rootsnth_rootsqrtcbrt     signed_roots fixpointF bits log2! unsigned_roots   average)))))))Average0 average_ceil0 average_floor)3I3'a3'b33)9);  IntegerA div_floorA mod_floorAdiv_ceilAgcdAlcmAgcd_lcmA extended_gcdH Aextended_gcd_lcmAdividesAis_multiple_ofAis_evenAis_oddAdiv_remA div_mod_floorAnext_multiple_ofAprev_multiple_ofSUWY[]_aimpl_integer_for_isizeimpl_integer_for_usize IterBinomialeeaenekjjmmItemmmultiply_and_divideqbinomials multinomialuu xxx |||     goguess                                                             ExtendedGcdAxy     7771717272777778787B7B7C7C7D7D7E7E7F7F7G7G7H7H7J7J7K7K7L7L7M7N7O7O7P7P7Q7Q7R7R7p7u7y7z7{7}7~777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A0me|x3C7 A :0< Integer trait and functions.  ## Compatibility= The `num-integer` crate is tested for rustc 1.8 and greater.@  https://docs.rs/num-integer/0.1!:   !     %  6> KK A Provides methods to compute an integer's square root, cube root,UD and arbitrary `n`th root.A9 #9 Returns the truncated principal `n`th root of an integer<8 -- `if x >= 0 { ⌊ⁿ√x⌋ } else { ⌈ⁿ√x⌉ }`;= This is solving for `r` in `rⁿ = x`, rounding toward zero.@E If `x` is positive, the result will satisfy `rⁿ ≤ x < (r+1)ⁿ`.HA If `x` is negative and `n` is odd, then `(r-1)ⁿ < x ≤ rⁿ`.D # Panics  Panics if `n` is zero: ```should_panic # use num_integer::Roots;9 println!("can't compute ⁰√x : {}", 123.nth_root(0));< ```* or if `n` is even and `self` is negative:-<<; println!("no imaginary numbers... {}", (-1).nth_root(10));>= # Examples= use num_integer::Roots; let x: i32 = 12345; assert_eq!(x.nth_root(1), x);!% assert_eq!(x.nth_root(2), x.sqrt());(% assert_eq!(x.nth_root(3), x.cbrt()); ( assert_eq!(x.nth_root(4), 10); " assert_eq!(x.nth_root(13), 2); " assert_eq!(x.nth_root(14), 1); "* assert_eq!(x.nth_root(std::u32::MAX), 1); - + assert_eq!(std::i32::MAX.nth_root(30), 2); .+ assert_eq!(std::i32::MAX.nth_root(31), 1); ., assert_eq!(std::i32::MIN.nth_root(31), -2); /2 assert_eq!((std::i32::MIN + 1).nth_root(31), -1); 5 + assert_eq!(std::u32::MAX.nth_root(31), 2); .+ assert_eq!(std::u32::MAX.nth_root(32), 1); .=    9J Returns the truncated principal square root of an integer -- `⌊√x⌋` M< This is solving for `r` in `r² = x`, rounding toward zero.?/ The result will satisfy `r² ≤ x < (r+1)²`.2; $ Panics if `self` is less than zero:'<<5 println!("no imaginary numbers... {}", (-1).sqrt());8=>=?? assert_eq!((x * x).sqrt(), x);"# assert_eq!((x * x + 1).sqrt(), x);&' assert_eq!((x * x - 1).sqrt(), x - 1);*= 9; Returns the truncated principal cube root of an integer -->/ `if x >= 0 { ⌊∛x⌋ } else { ⌈∛x⌉ }`2< This is solving for `r` in `r³ = x`, rounding toward zero.?C If `x` is positive, the result will satisfy `r³ ≤ x < (r+1)³`.F0 If `x` is negative, then `(r-1)³ < x ≤ r³`.3>=? let x: i32 = 1234;# assert_eq!((x * x * x).cbrt(), x);&' assert_eq!((x * x * x + 1).cbrt(), x);*+ assert_eq!((x * x * x - 1).cbrt(), x - 1);.' assert_eq!((-(x * x * x)).cbrt(), -x);*+ assert_eq!((-(x * x * x + 1)).cbrt(), -x);.1 assert_eq!((-(x * x * x - 1)).cbrt(), -(x - 1));4= 9 = Returns the truncated principal square root of an integer --@1 see [Roots::sqrt](trait.Roots.html#method.sqrt).4T T K>1 see [Roots::cbrt](trait.Roots.html#method.cbrt).4TT T,< Returns the truncated principal `n`th root of an integer --?; see [Roots::nth_root](trait.Roots.html#tymethod.nth_root).>TT T 'V' T''AT'T'XT' XYT( TX''''))   T) T))) ) ""T)T) !T))**  '))))'')11)L Provides methods to compute the average of two integers, without overflows.;O0099-@ Returns the ceiling value of the average of `self` and `other`.C -- `⌈(self + other)/2⌉`>= use num_integer::Average;( assert_eq!(( 3).average_ceil(&10), 7);+( assert_eq!((-2).average_ceil(&-5), -3);+( assert_eq!(( 4).average_ceil(& 4), 4);+3 assert_eq!(u8::max_value().average_ceil(&2), 129);64 assert_eq!(i8::min_value().average_ceil(&-1), -64);7? assert_eq!(i8::min_value().average_ceil(&i8::max_value()), 0);B= 00 19 .> Returns the floor value of the average of `self` and `other`.A -- `⌊(self + other)/2⌋`>=^) assert_eq!(( 3).average_floor(&10), 6);,) assert_eq!((-2).average_floor(&-5), -4);,) assert_eq!(( 4).average_floor(& 4), 4);,4 assert_eq!(u8::max_value().average_floor(&2), 128);75 assert_eq!(i8::min_value().average_floor(&-1), -65); 8A assert_eq!(i8::min_value().average_floor(&i8::max_value()), -1); D=   0 0 29 )44 h 56 5h 6hh 56hhh 56hhh 56hh 56hh 56hh Ah hh h h      'b A 33 7h&= Returns the ceil value of the average of `self` and `other`.@ 33 8h19 Returns the floor value of the average of `x` and `y` --<I see [Average::average_floor](trait.Average.html#tymethod.average_floor).L ::T0T 9T0; Returns the ceiling value of the average of `x` and `y` -->G see [Average::average_ceil](trait.Average.html#tymethod.average_ceil).J <<Tn ;T&    6AA9999 99qqq qr * Floored integer division.> ~~~ # use num_integer::Integer;$ assert!(( 8).div_floor(& 3) == 2); '$ assert!(( 8).div_floor(&-3) == -3); '$ assert!((-8).div_floor(& 3) == -3); '$ assert!((-8).div_floor(&-3) == 2); ' $ assert!(( 1).div_floor(& 2) == 0); '$ assert!(( 1).div_floor(&-2) == -1); '$ assert!((-1).div_floor(& 2) == -1); '$ assert!((-1).div_floor(&-2) == 0); 'r  A A B9*$ Floored integer modulo, satisfying: ' r r  # let n = 1; let d = 1; 4 assert!(n.div_floor(&d) * d + n.mod_floor(&d) == n) 7r  > rr$ assert!(( 8).mod_floor(& 3) == 2);'$ assert!(( 8).mod_floor(&-3) == -1);'$ assert!((-8).mod_floor(& 3) == 1);'$ assert!((-8).mod_floor(&-3) == -2);'$ assert!(( 1).mod_floor(& 2) == 1);'$ assert!(( 1).mod_floor(&-2) == -1);'$ assert!((-1).mod_floor(& 2) == 1);'$ assert!((-1).mod_floor(&-2) == -1);'r AA C9( Ceiled integer division.>rr$ assert_eq!(( 8).div_ceil( &3), 3);'$ assert_eq!(( 8).div_ceil(&-3), -2);'$ assert_eq!((-8).div_ceil( &3), -2);'$ assert_eq!((-8).div_ceil(&-3), 3);'# assert_eq!(( 1).div_ceil( &2), 1);&# assert_eq!(( 1).div_ceil(&-2), 0);&# assert_eq!((-1).div_ceil( &2), 0);&# assert_eq!((-1).div_ceil(&-2), 1);&rAA D9$ Greatest Common Divisor (GCD).">rr assert_eq!(6.gcd(&8), 2); assert_eq!(7.gcd(&3), 1);rAA E9$ Lowest Common Multiple (LCM).!>rr assert_eq!(7.lcm(&3), 21); assert_eq!(2.lcm(&4), 4); assert_eq!(0.lcm(&0), 0);rAA F9/" Greatest Common Divisor (GCD) and%' Lowest Common Multiple (LCM) together.*8 Potentially more efficient than calling `gcd` and `lcm`;# individually for identical inputs.&>rr% assert_eq!(10.gcd_lcm(&4), (2, 20));($ assert_eq!(8.gcd_lcm(&9), (1, 72));'rAA G9#X2 Greatest common divisor and Bézout coefficients.5>r # extern crate num_integer;  # extern crate num_traits;  # fn main() { + # use num_integer::{ExtendedGcd, Integer}; . # use num_traits::NumAssign;! > fn check(a: A, b: A) -> bool {!A< let ExtendedGcd { gcd, x, y, .. } = a.extended_gcd(&b);!? gcd == x * a + y * b" }"! assert!(check(10isize, 4isize));"$! assert!(check(8isize, 9isize));#$ # }#r## A#A9$ H9&HIIIIHI9 99 9+mJ Greatest common divisor, least common multiple, and Bézout coefficients.*M+A+A,9, J9-(* Deprecated, use `is_multiple_of` instead.---A-A K9//3 Returns `true` if `self` is a multiple of `other`.-6.>..r.r.( assert_eq!(9.is_multiple_of(&3), true);.+) assert_eq!(3.is_multiple_of(&9), false);/,r//A/A L91& Returns `true` if the number is even.0)0>00r0r0 assert_eq!(3.is_even(), false);1# assert_eq!(4.is_even(), true);1"r11A2A M93% Returns `true` if the number is odd.2(2>22r2r2 assert_eq!(3.is_odd(), true);3! assert_eq!(4.is_odd(), false);3"r33A3A N9805 Simultaneous truncated integer division and modulus.48! Returns `(quotient, remainder)`.4$4>55r5r5) assert_eq!(( 8).div_rem( &3), ( 2, 2));5,) assert_eq!(( 8).div_rem(&-3), (-2, 2));5,) assert_eq!((-8).div_rem( &3), (-2, -2));6,) assert_eq!((-8).div_rem(&-3), ( 2, -2));6,7) assert_eq!(( 1).div_rem( &2), ( 0, 1));7,) assert_eq!(( 1).div_rem(&-2), ( 0, 1));7,) assert_eq!((-1).div_rem( &2), ( 0, -1));7,) assert_eq!((-1).div_rem(&-2), ( 0, -1));8,r88A8A O9>53 Simultaneous floored integer division and modulus.969$:>::r:r:/ assert_eq!(( 8).div_mod_floor( &3), ( 2, 2));:2/ assert_eq!(( 8).div_mod_floor(&-3), (-3, -1));;2/ assert_eq!((-8).div_mod_floor( &3), (-3, 1));;2/ assert_eq!((-8).div_mod_floor(&-3), ( 2, -2));;2</ assert_eq!(( 1).div_mod_floor( &2), ( 0, 1));<2/ assert_eq!(( 1).div_mod_floor(&-2), (-1, -1));<2/ assert_eq!((-1).div_mod_floor( &2), (-1, 1));=2/ assert_eq!((-1).div_mod_floor(&-2), ( 0, -1));=2r>> A>A P9DO+ Rounds up to nearest multiple of argument.?.? # Notes? ?I For signed types, `a.next_multiple_of(b) = a.prev_multiple_of(b.neg())`.?L@>@@r@r@. assert_eq!(( 16).next_multiple_of(& 8), 16);A1. assert_eq!(( 23).next_multiple_of(& 8), 24);A1. assert_eq!(( 16).next_multiple_of(&-8), 16);A1. assert_eq!(( 23).next_multiple_of(&-8), 16);B1. assert_eq!((-16).next_multiple_of(& 8), -16);B1. assert_eq!((-23).next_multiple_of(& 8), -16);C1. assert_eq!((-16).next_multiple_of(&-8), -16);C1. assert_eq!((-23).next_multiple_of(&-8), -24);D1rDDADAE Q9LO- Rounds down to nearest multiple of argument.F0GG GI For signed types, `a.prev_multiple_of(b) = a.next_multiple_of(b.neg())`.GLH>HHrHrH. assert_eq!(( 16).prev_multiple_of(& 8), 16);H1. assert_eq!(( 23).prev_multiple_of(& 8), 16);I1. assert_eq!(( 16).prev_multiple_of(&-8), 16);I1. assert_eq!(( 23).prev_multiple_of(&-8), 24);J1. assert_eq!((-16).prev_multiple_of(& 8), -16);J1. assert_eq!((-23).prev_multiple_of(& 8), -24);K1. assert_eq!((-16).prev_multiple_of(&-8), -16);K1. assert_eq!((-23).prev_multiple_of(&-8), -16);K1rLLALAM R9P0* Simultaneous integer division and modulusO-PTTTPXP STPPQ- Floored integer divisionPQ VVTQXQ UTQQQ- Floored integer modulusQQ XXTRXR WTRRR62 Simultaneous floored integer division and modulusR5R ZZTSXS YTSSS, Ceiled integer divisionSS\\TTXT [TTTU'L Calculates the Greatest Common Divisor (GCD) of the number and `other`. TheTO result is always non-negative.U"U^^TUXU ]TUUV'G Calculates the Lowest Common Multiple (LCM) of the number and `other`.UJV``TVXV _TVVX01 Calculates the Greatest Common Divisor (GCD) andW48 Lowest Common Multiple (LCM) of the number and `other`.W;XbbTXXX aTXXX#X#( An iterator over binomial coefficients.Փ+ ffTee g h i ʉTeeTeeTeeTkkTĔXĔĔ#S For a given n, iterate over all binomial coefficients binomial(n, k), for k=0...n.VΕC Note that this might overflow, depending on `T`. For the primitive֕FI integer types, the following n are the largest ones for which there willL be no overflow: type | n  -----|---  u8 | 10  i8 | 9Ǘ  u16 | 18ٗ  i16 | 17  u32 | 34  i32 | 33  u64 | 67  i64 | 66 Ř+ For larger n, `T` should be a bigint type.͘.jj lT$nnTXǚTњޚ mmTmm pTArrTX qT8$ Calculate the binomial coefficient.'K Note that this might overflow, depending on `T`. For the primitive integerNJ types, the following n are the largest ones possible such that there willM be no overflow for any k:̢ǽТ ݽݢ     о   ͣ ۣ4 For larger n, consider using a bigint type for `T`.ߣ7ttTX sTa' Calculate the multinomial coefficient.* vvרTXèͨwT wTwTT uT "xx y""x"x z$$x$x { "|| }""|"| ~$$|$|  " """ $$$ " """" """""" "$"$"$ + +"++ +"+"+" +$+$+$ 4 4"44 4"4"4" 4$4$4$ A+  A+" A+A+ A, A, A>A>A>A>A> A>A>A> A>A> A>A> A> A@ Ӎ   AC ACAC AD AD ALAKAKAKAK AKAKAK AKAK AKAK AL AN ӍAO AOAO AO AO A_A^A^A^A^ A^A^A^ A^A^ A^A^ A_ A` ӍE+  E+" E+E+ E, E, E>E>E>E>E> E>E>E> E>E> E>E> E> E@ Ӎ  EC ECEC ED ED ELEKEKEKEK EKEKEK EKEK EKEK EL EN ӍEO EOEO EO EO E_E^E^!E^E^ E^E^E^ E^E^ E^E^ E_ E` ӍI+  I+" I+I+ I, I, I>I>I>#I>I> I>I>I> I>I> I>I> I> I@ Ӎ IC ICIC ID ID ILIKIK%IKIK IKIKIK IKIK IKIK IL IN ӍIO IOIO IO IO I_I^I^'I^I^ I^I^I^ I^I^ I^I^ I_ I` ӍM+  M+" M+M+ M, M, M>M>M>*M>M> M>M>M> M>M> M>M> M> M@ Ӎ  MC MCMC MD MD MLMKMK,MKMK MKMKMK MKMK MKMK ML MN ӍMO MOMO MO MO M_M^M^.M^M^ M^M^M^ M^M^ M^M^ M_ M` ӍQ+  Q+" Q+Q+ Q, Q, Q>Q>Q>0Q>Q> Q>Q>Q> Q>Q> Q>Q> Q> Q@ Ӎ  QC QCQC QD QD QLQKQK2QKQK QKQKQK QKQK QKQK QL QN ӍQO QOQO QO QO Q_Q^Q^5Q^Q^ Q^Q^Q^ Q^Q^ Q^Q^ Q_ Q` ӍU+ hU+"U+U+ U,U, U>U>U>7U>U> U>U>U> U>U> U>U>U> U@Ӎ hh hUCUCUC UDUD ULUKUK9UKUK UKUKUK UKUK UKUKUL UNӍUOUOUO UOUO U_U^U^;U^U^ U^U^U^ U^U^ U^U^U_ U`ӍɁO1 Greatest common divisor and Bézout coefficientsM4M ```no_buildN# let e = isize::extended_gcd(a, b);N&" assert_eq!(e.gcd, e.x*a + e.y*b);N%=NO O뷆ݽ*OOO OOOOOYNYNYN<YNROCYNOROYNRYNYN ZNZNZN<ZNSOZNOSOZNSZNZN [N[N[N=[NTO[NOTO\O \O \O =\O UOOUO\O \O \O =\O UO\O OUO\O U\O \O ]O]O]O=]OVOOVO]O]O]O>]OVO]OOVO]O]O]O>]O]O ]O]O]O]O>]OV]O]O ^Y5^Z)ͮ^Y^Z ^Z ^^) Floored integer modulo^]^^ ^^ ^b56 Calculates `div_floor` and `mod_floor` simultaneously^a9^b ^b ^f(^f^f ^j#? Calculates the Greatest Common Divisor (GCD) of the number and^hB, `other`. The result is always non-negative.^i/^j^j ^vE^v^v ^{#> Calculates the Lowest Common Multiple (LCM) of the number and^zA `other`.^z ^{^{ ^}/^{4׶^|;^}^} ^ۀ'Ï^-^ހ^ ^.7 Returns `true` if the number is a multiple of `other`.^ˁ:^^ ^ф1 Returns `true` if the number is divisible by `2`^4^Ԅ^܄ ^5 Returns `true` if the number is not divisible by `2`^8^^ ^/ږ^چ8^^ ^0^.^^ ^0^ы0^^ _Y5_Z)ͮ_Y_Z _Z _^)_]_^ _^ _b5_a9_b _b _f(_f_f _j#_hB_i/_j_j _vE_v_v _{#_zA_z _{_{ _}/_{4׶_|;_}_} _ۀ'Ï_-_ހ_ _.Ö_ˁ:__ _ф_4_Ԅ_܄ __8__ _/ږ_چ8__ _0_.__ _0_ы0__ `Y5`Z)ͮ`Y`Z `Z `^)`]`^ `^ `b5`a9`b `b `f(`f`f `j#`hB`i/`j`j `vE`v`v `{#`zA`z `{`{ `}/`{4׶`|;`}`} `ۀ'Ï`-`ހ` `.Ö`ˁ:`` `ф`4`Ԅ`܄ ``8`` `/ږ`چ8`` `0`.`` `0`ы0`` aY5aZ)ͮaYaZ aZ a^)a]a^ a^ ab5aa9ab ab af(afaf aj#ahBai/ajaj avEavav a{#azAaz a{a{ a}/a{4׶a|;a}a} aۀ'Ïa-aހa a.Öaˁ:aa aфa4aԄa܄ aa8aa a/ږaچ8aa a0a.aa a0aы0aa bY5bZ)ͮbYbZ bZ b^)b]b^ b^ bb5ba9bb bb bf(bfbf bj#bhBbi/bjbj bvEbvbv b{#bzAbz b{b{ b}/b{4׶b|;b}b} bۀ'Ïb-bހb b.Öbˁ:bb bфb4bԄb܄ bb8bb b/ږbچ8bb b0b.bb b0bы0bb cY5cZ)ͮcYcZ cZ c^)c]c^ c^ cb5ca9cb cb cf(cfcf cj#chBci/cjcj cvEcvcv c{#czAcz c{c{ c}/c{4׶c|;c}c} cۀ'Ïc-cހc c.Öcˁ:cc cфc4cԄc܄ cc8cc c/ږcچ8cc c0c.cc c0cы0cc dd)C Unsigned integer division. Returns the same result as `div` (`/`).dFd d d)K Unsigned integer modulo operation. Returns the same result as `rem` (`%`).dNd d d(dd d#G Calculates the Greatest Common Divisor (GCD) of the number and `other`dJdd dEdd d#dJdd d/d4׶d;dd d'Ïd-dd d.Öd:dd d2 Returns `true` if the number is divisible by `2`.d5dd d6 Returns `true` if the number is not divisible by `2`.d9dd d/ږd8dd ee)eFe e e)eNe e e(ee e#eJee eEee e#eJee e/e4׶e;ee e'Ïe-ee e.Öe:ee ee5ee ee9ee e/ږe8ee ff)fFf f f)fNf f f(ff f#fJff fEff f#fJff f/f4׶f;ff f'Ïf-ff f.Öf:ff ff5ff ff9ff f/ږf8ff gg)gFg g g)gNg g g(gg g#gJgg gEgg g#gJgg g/g4׶g;gg g'Ïg-gg g.Ög:gg gg5gg gg9gg g/ږg8gg hhh)hFh h h)hNh h h(hh h#hJhh hEhh h#hJhh h/h4׶h;hh h'Ïh-hh h.Öh:hh hh5hh hh9hh h/ږh8hh ii)iFi i i)iNi i i(ii i#iJii iEii i#iJii i/i4׶i;ii i'Ïi-ii i.Öi:ii ii5ii ii9ii i/ږi8ii      #$++--/02389>>DDLLר"$"$"$""""$++"+$44"4$A+ACAOE+ECEOI+ICIOM+MCMOQ+QCQOU+UCUOYNYNYNZN\O\O]O^Z^Z^^^^^b^b^f^f^j^j^v^w^{^{^}^}^^^^Ȃ^܄^^^·^^^^ƌ_Z_Z_^_^_b_b_f_f_j_j_v_w_{_{_}_}____Ȃ_܄___·____ƌ`Z`Z`^`^`b`b`f`f`j`j`v`w`{`{`}`}````Ȃ`܄```·````ƌaZaZa^a^ababafafajajavawa{a{a}a}aaaaȂa܄aaa·aaaaƌbZbZb^b^bbbbbfbfbjbjbvbwb{b{b}b}bbbbȂb܄bbb·bbbbƌcZcZc^c^cbcbcfcfcjcjcvcwc{c{c}c}ccccȂc܄ccc·ccccƌddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffgggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiij )ASUWY[]_acdeqsu"mem  AddNumSignedZero    0 ;  9 !# ݎ    checked_pow%   PrimInt> 6KA K  7 7997 7997 799TTTT TT%     U  %    %           "                                  "    !     !!!&even roots of a negative are imaginary!(! !!!!! !! wrapping_neg! !! !! !! !!!  ! ! !""" "  " """ " "" ""# " ""# " "" ""*the square root of a negative is imaginary",### # # ## ## ### # #### #  $ $$$ $ $$ $$% $ $ $$ $$$$$ $ $ $$ $$ $$$ $ $  %%% %%%%% %% % %% %% %% %%% % %%yz{ 7 7"7 7$7 7}~ 7 7"7 7$7 7 7 7"7 7$7 7" "7 7""7 7"$7 7+ +7 7+"7 7+$7 74 47 74"7 74$7 7''TXT*T+b+++ ++ +++b + + ++ ++b+++ +  + +++ + ++  ++  ++ ++C  ,  ,,,  ,,, ,,  ,,  ,,, ,,CG ,  ,,. -- - ---can't find a root of degree 0!- - -- -  -- -- -  .. .... .. .  .. .... ..... / //// /////  //  //// / /  //0 000  00 0 00 00 0 0000 000006400: 1 1  11 12  22 MAX2 22 22222  2 2  22 222  2 22 2  229& 3 lo3333  3 3  33 333  3 3 33 3 hi33 3 3 33 5 55 next_power_of_two5555 trailing_zeros555 5  55 5555 555557 6 6 66 66  6 6  667 666 6 6 66  66 66 77 77  779 8 88 pow888  88  888 8  889 99::: ::: :: :::: :  :  ::; ::: ::  ::  :;; ;;= ; ;;;; ;;<<<32<< << <<  << < << <<< < <<<<< <<< < <  < < < <  <  <==== == = = == ln=== = == ===  == exp=== == =>>> >>> >>> >> >>>> >  >  >>> >>> >>  >>  >>> >>? ? ????? ??? ? ?  ? ? ? ?  ? @ n1@@  @ @ @@ @ @@ @ @@@ @ @@B @ @@ A A AA AA A A  AAB AAA axAA  A A AA AA AABBB B B B B B BB B B  B BB BB BBC  BCC  CC  CC C  CCC C CC  CCCC C  C CCC C CD DDO  D  DDD  DDD DDD DDN5 D DDDD DDDDDDDI E E  EE EE  EE E EE EEFFF  F F  FF FFF FF F  FFI F FFFG  F F  FG GGG G GG G GG G G GG G G G GG  GGH H  HHH HI I  II IIJ III  II I II IIJJJ JJJ JJ JJJJ J  J  JJJ JJJ JJJ JJKKK K K KK KKK KK KKKK KKK KKK KK KLLL L  L  LLL LLL LLL LLM L LLLLL LLL L L L L L N NN N NNN N NNN  N N N N N N NN NNN  NNN  NN N  NNO N OOOO O  O OOO O OO OOa  O  OOO  OOO OOO OOaL P PPPP PPPPPPPT Q Q  QQ QQ  QQ Q QQ QQRQQ  Q Q  QQ QQQ QQ Q  RRT R RRRR  R R  RR RRR R RR R RR R R SS S S S S S SS  SSS S  SST TT U UUUU UUUUUUU[* V V VV  VV V V y2VV VV V V VV VV V smaxVW WWWW WWWW W WW W  W WWW WW W W WW revWWWWZ W  WW  W W WW X X XX X X XX X bXX X XXX X X X X XX Y Y Y  YY YYZ Y Y Y Y  YY Y Y Y Y Y Y YY Z Z ZZ Z [[ [  [[ [[[ [[[  [[ [ [[ [[ \  \\ \\  \\ \ \\ \\\ \\\  \ \  \\ \\\ \\ \\]]] ]]] ]] ]]]] ]  ]  ]]] ]]] ]]] ]]^^^ ^ ^ ^^ ^^^ ^^ ^^^^ ^^^ ^^^ ^^ ^___ _  _  ___ ___ ___ ___ _ _____ ___ _ _ _ _ _ ` `` ` ``` ` ``a  ` ``a ` ` a a a a a a aa aaa  aaa  aa a  aaa a abA+ A+7 7AC7 7AO7 7 A, A,A> A> ADAL AOA_E+ E+7 7EC7 7EO7 7 E, E,E> E> EDEL EOE_I+ I+7 7IC7 7IO7 7 I, I,I> I> IDIL IOI_M+ M+7 7MC7 7MO7 7 M, M,M> M> MDML MOM_Q+ Q+7 7QC7 7QO7 7 Q, Q,Q> Q> QDQL QOQ_hU+ U+7 7hhUC7 7hhUO7 7hhh U, U,hhU> U>hhh UDhhULhhh UOhhU_hh09;BitAnd)BitOr)BitXor)Shr')'1A)101277 79 799  77 79 799780h77 7h 7hh77 7h 7hhTTTTTTABCDEFGHJKLMNOPQR  77 79 79977 79 79977 79 79977 79 79977 79 79977 79 79##77 79 79뷆ݽ*9++77 79 79ߙ9--77 79 79/077 79 7927 7947 798877 79 79>>77 79 79DD77 79 799LL77 79 799뷆ݽ*CNYN777 7 7BBB@B@B@B @B@Bbuf@๴7 ~  N7 7O \O 77 7 7O7 7PPTTTTQQTTTRRTTTSSTTTTTTTUUTTTVVTTTXXTTXYY Y YY  YYY test_modYY YYY Y Y YY YY#ͮYYYY Y  Z Z ZZ Z ZZ ZZ Z ZZ ZZ] \\\ \\ r\\ \\ \\\ \\ \\\ \\ \\ \ \\ \\\\ \\ \\ \ \\ \\] ] ] ]  ]]] ]#]^^^ ^  ^ ^ ^^ ^ ^^ ^^ ^ ^^ ^^a ` `` ` ` ` ` `` ``` `` `` ` `` ```` `` `` ` `` ``a a a a a  aaa a#a9bbb b  b b bb b bb bb b bbbc bc ccf ddd dd dd dd ddd dd eee ee ee e ee eeee ee ee e ee eeeee e e ee e e e e  effff ff ffff f  f ffg f ff ff f fg ggh ggg gg gg gg ggg gg ggg gg gg g gg gggh gg gg g gg ghh h h h  hhh h#hB#i/jjj j  j jjj j jj jj j jj jjvR j j mkk k kk k k  kk k kk k ׼kk kk  kk kkl kkk ׼k k  kk abskkkk l shiftllll ׼l l  ll llll p ׼pp pp min_valuep ppq  qq qq q qqqq qqq q q ſqq qqqq ׼rr ׼rr rrrr  rr  rr rrrr ׼s s ׼ss ssss  s s  ss ssss &s ׼tt  ttv t ׼tt  ttu ׼t t  tt ׼t t ׼tt tttt  uuv  u u ׼uu  u u  uu uuuu ׼v v ſvvvv v  v vvw v vv vw w wwww w w www wwy w egcdww ww w ww ww x xx x xx xx is_zeroxxxxx xx zeroxxx  xxyyy y y yyy y y y yy yy yyyyyy yy y#zA#z zzz z  { {{{ { {{ {{ { {{ {{{ {{ {{{ {{ {#{4#׶|;||| |  } }}} } }} }} } }}}} }} }} } }} }}}} }} }}}}~ ~~~ ~~ ~~~~ ~~ ~~~~ ~ ~~ ~~ ~~~ ~~            #Ï-ŀƀ̀ ǀ  ۀ ހ         #Öˁ:    ͂   Ƃ Ȃ ɂς ҂ׂ       ˃ ̃ у Ӄ ԃڃ ݃#4Ä   ф Ԅۄ ܄ ݄      #8       ˆ   #ږچ8    Ӈ  Ň LJ̇ · χՇ؇ ه݇ ߇          #.          ‹         Ҋ ׼֊؊ ڊ         ׼       ׼#ы0    ˌ   Č ƌ nj͌ ЌՌ     ߍ  ȍ ɍ͍        Ǝ Ŏ   ЎԎ Վގm $  ݎ $ #) Checks that the division rule holds for:,#ڏ# - `n`: numerator (dividend)# - `d`: denominator (divisor) # - `qr`: quotient and remainderÐ"      test_division_ruleÑ      q ‘  ő assert_eqב              test_div_rem   Ē test_nd_drǒ ђ ndҒԒ֒ݒג ْؒے ܒޒ qr         separate_div_rem͓   Ó œƓ  ȓ ʓ ̓Γ  combined_div_rem           Ք  ޔߔ      ʕܕ ݕߕ        Ö ͖ޖΖԖ ϖЖ Җ ӖՖזݖ ؖ ٖږ ܖߖ                   З ڗۗ ܗݗ ߗ           Ę   Ø   ˜Ř ט             test_div_mod_floor  ϙ test_nd_dmҙ ܙ ݙߙ   dm         separate_div_mod_floorϚ                  combined_div_mod_floorқ ԛۛ ݛ           Ӎ Ŝ  ΜϜ М Ӎ    Ɲ؝ ٝ۝ ݝ       Ş ϞО֞ ўҞ Ԟ ՞מٞ ڞ ۞ܞ ޞ ߞ                  ҟ ܟݟ ޟߟ              Ƞ   Ǡ   àĠ Ơɠ ۠             test_gcd ɡ  ҡӡ ԡݡ10ա ءۡ ܡޡ ߡ                    ĢŢ Ƣ΢ Ǣ ɢ̢ ͢Ϣ ТӢ֢ Ԣ բע ٢ ۢޢ ߢ                ӣ 56   ģȣ ţ42ƣɣ14ˣ Σѣ ңԣ                 Ť          ä ĤƤ ؤ                   test_gcd_cmp_with_euclideanϥХҥ   euclidean_gcd   ׼      ̧ & ׼  ݎΦѦ swapӦצ ئ ٦ ׼ݦަ     ׼       ƨ ʨ ̨ Ϩ127ШӨиը٨  j  ииܩ   ũ      ĩ © éƩ  и    ии   ݫ  ̫ѫ ͫΫ Ыҫ ԫի ֫٫ܫ ګ ۫ޫ   и  ииì    Ѭ test_gcd_min_valԬŰ7  min     max  max_value  ӭ max_pow2׭                  Ԯ  ®Ůʮ Ʈ Ǯˮ ͮ ϮҮ Ӯծ           ȯ     ɯ ۯ                    ԰հڰ  ְ     test_gcd_min_val_min_val   ± ı ͱαϱ             ɲ test_gcd_min_val_0̲޲߲dz            ֳ׳ܳ  س     test_gcd_0_min_val     ɴʴ˴ ݴ             test_lcm ϵ  صٵ ڵ ۵ ݵ                       ȶɶ ʶҶ ˶ Ͷж ѶӶ Զ׶ڶ ض ٶ۶ ݶ ߶                  ַ ÷   ·ķ ŷȷ̷ ɷ ʷ ˷ͷ Ϸ ѷԷ շ׷                  ɸ       72 ĸǸ ȸʸ ܸ   11     55       test_gcd_lcm ĹŹǹֽ $ٹ ݹ  once      chain  takeи flat_mapúߺ ĺ  ź ƺ Ⱥ̺κ  ͺϺ кպ޺ ֺںݺ ۺ  ܺ   128Ƚ     ػ ٻ޻߻  и                ռ                    test_extended_gcd_lcm1 $   o $̾ о־ NumAssignؾ  $     check  l  o     ÿĿϿ  ſƿ ȿɿ ˿̿ οѿ                         $           и                        и                                              test_even $         !                   !                  !                 !                 !     test_odd$                   !                   !                 !                 !              test_multiple_of_one_limits            one                       A^Z^Z77 7 7^^^^77 7 7^b^b77 7 7^f^f77 7 7^j^j77 7 7^v^v77 7 7뷆ݽ*^{^{77 7 7^}^}77 7 7IJ^^77 7 7^^77 7 7^݄7 7^7 7^^LJ77 7 7IJ^^77 7 7^^77 7 7A_Z_Z77 7 7_^_^77 7 7_b_b77 7 7_f_f77 7 7_j_j77 7 7_v_v77 7 7뷆ݽ*_{_{77 7 7_}_}77 7 7__77 7 7__77 7 7_݄7 7_7 7__LJ77 7 7__77 7 7__77 7 7A`Z`Z77 7 7`^`^77 7 7`b`b77 7 7`f`f77 7 7`j`j77 7 7`v`v77 7 7뷆ݽ*`{`{77 7 7`}`}77 7 7``77 7 7``77 7 7`݄7 7`7 7``LJ77 7 7``77 7 7``77 7 7AaZaZ77 7 7a^a^77 7 7abab77 7 7afaf77 7 7ajaj77 7 7avav77 7 7뷆ݽ*a{a{77 7 7a}a}77 7 7aa77 7 7aa77 7 7a݄7 7a7 7aaLJ77 7 7aa77 7 7aa77 7 7AbZbZ77 7 7b^b^77 7 7bbbb77 7 7bfbf77 7 7bjbj77 7 7bvbv77 7 7뷆ݽ*b{b{77 7 7b}b}77 7 7bb77 7 7bb77 7 7b݄7 7b7 7bbLJ77 7 7bb77 7 7bb77 7 7AcZcZ77 7 7c^c^77 7 7cbcb77 7 7cfcf77 7 7cjcj77 7 7cvcv77 7 7뷆ݽ*c{c{77 7 7c}c}77 7 7cc77 7 7cc77 7 7c݄7 7c7 7ccLJ77 7 7cc77 7 7cc77 7 7          k#F                #N                                        #J          5   ׼          ׼      ׼     ſ ׼     ׼  ׼        & ׼    ׼   ׼    ׼  ׼       ׼       ׼  ſ                                       #J              #4#׶;                                     #Ï-             #Ö:                      #5            #9          #ږ8                          8 $  ݎ $      (                                                                                                                                                                                                                                              ׼       & ׼  ݎ    ׼     ׼         255                        āŁ Ɓ Ӂ؁ ԁՁ ׁف ہ܁ ݁       Ăłʂ  Ƃ  ؂ ۂ˅                Ճ à   ƒă Ńȃ˃ Ƀ ʃ̃ ΃ ЃӃ ԃփ                Ƅ        Ą ńDŽ ل              15    17  څۅ  ܅    ۇ     256͇  ņ džʆΆ ˆ̆φ ІԆ؆Նچ                    test_is_multiple_of  Ո    ɈԈ ʈˈӈ ̈ Έш ҈ֈ            Ӊ    lj҉ ȉɉщ ʉ ̉ω Љԉ            Ԋ    Ȋӊ ɊʊҊ ˊ ͊Њ ъՊ             Ջ    ɋԋ ʋˋӋ ̋ ΋ы ҋ֋     ܌    ̌    ČŌƌ !Ȍ͌ ߌ                ! ΍  ׍؍ٍ ڍ ܍ߍ            !ȎɎΎ  ʎ  ܎ ߎ            ֏Ə  ď ŏǏ ȏΏϏЏ !ҏ׏            Ð     !Đ ֐  ߐ      Add77 7 7dd77 7 7dd77 7 7dd77 7 7dd77 7 7뷆ݽ*dd77 7 7dd77 7 7dd77 7 7dd77 7 7d7 7d7 7dd77 7 7Aee77 7 7ee77 7 7ee77 7 7ee77 7 7ee77 7 7뷆ݽ*ee77 7 7ee77 7 7ee77 7 7ee77 7 7e7 7e7 7ee77 7 7Aff77 7 7ff77 7 7ff77 7 7ff77 7 7ff77 7 7뷆ݽ*ff77 7 7ff77 7 7ff77 7 7ff77 7 7f7 7f7 7ff77 7 7Agg77 7 7gg77 7 7gg77 7 7gg77 7 7gg77 7 7뷆ݽ*gg77 7 7gg77 7 7gg77 7 7gg77 7 7g7 7g7 7gg77 7 7׋Ahhh77 7h 7hhhh77 7h 7hhhh77 7h 7hhhh77 7h 7hhhh77 7h 7h뷆ݽ*hhhh77 7h 7hhhh77 7h 7hhhhh77 7h 7hhh77 7h 7hh7 7hh7 7hhh77 7h 7hAii77 7 7ii77 7 7ii77 7 7ii77 7 7ii77 7 7뷆ݽ*ii77 7 7ii77 7 7ii77 7 7ii77 7 7i7 7i7 7ii77 7 7ʉghil Top77 7 ԙۭT ßɟTTTT  ŤTTT Ԩ7 7 TTBy!1@N\jx:-"%())x**i+++I,`,w,,,&-=-M-\-g-v----------.13455"5d55667777 888;= @ @ B CFGG,H PI UJ WKMPSV3WJWWW@XWXXXfY}YKZbZ[[[[ \\\\\]7]p]]`k````7aPaccdddde:emeeeef0feffffgPgggghʐV6x1Г\.tЕT˖O4zLؙ0r8m Rޜ$j NҞVڟ*pBΡ,D|@ڤ fݥXBz>بdN̪J*pCZd6|¯N8p4βZD´@ڵ f7AKU_is}÷ͷ׷ '1;EOYcmwǸҸݸ#-7AKU_is}ù͹׹ '1;EOYcmwǺѺۺ !+6ALWbmxûͻ׻ '1;EOZep{ȼӼݼ#-7AKU_is~˽ֽ )3=GQ[eoyþξپ%/9CMWakuƿѿܿ)4?IS]gq{ !,7BMXcny)4?JU`kv&1<GR]hs~ #.9DOZep{  +6ALWbmx(3>IT_juz F      9Yymu֛ǟ   7 k   $ $   $$                              v )9GUcq"v%()B*3+++,,E-U-`-o-~---------T.0o33C55677788#8:=?@ACVFG H/I4J6KM~PSVVW XX0YZZ[\\[\\] ];]`#````^cdddeOeqeeeefEfzffff0geggggh@hghhhhiQiijjNkk llmhThhhh i>iiojj;kkklm)m^mmnnYoopp1qGq|qrrruss1ttMucuu/vvvwxOxxkyyyMzz{{8|m|}}}}k~8V"p>}׃0s&\… y߆"χJwƊ vH'\/~Nڐ fEzɒM&l>ߕ!ckDИ\ڙ?:؛b4z]Ԟ#X:Ơ Rޡ~Fң P0"hƦ D§\.t^ܪZ:Ƭ Ej.fFү^:R޲$jTҴ P0v9CMWakuŷϷٷ )3=GQ[eoyɸԸ߸%/9CMWakuŹϹٹ )3=GQ[eoyɺӺݺ#-8CNYdozŻϻٻ )3=GQ\gr}ʼռ߼%/9CMWaku½ͽؽ !+5?IS]gq{žо۾'1;EOYcmwȿӿ޿  +6AKU_is} #.9DOZep{  +6ALWbmx(3>IT_ju%0;FQ\gr} "-8CNYdoz *5@KValw"%())W**H+w++W,n,,,,4-g.1334S55667768;=?@BCfFFGH?IDJFKMPSVWAWWWXNXXXEYtY*ZYZZ[[[p\\\ ]*]P]] `8`z```aFascc!dddd,e^eyeee f&fUffff g@gugggg+hHhwhhhh,iYii=jjjVkkklllmLmymn]nnntoop0ppq;qjqq.r{rrrsstLtt0uWuuuJvvvwww=xjxyNyuyyyhzz{5{{|[||}l}}}}~~&S7y=.ÑI2uۅD.هmщ/!'mƍJΎR-sE&h!pKהcƕD ?ݗ#i;Ǚ bٚ(]A͜Y>žF{ʟ_1w!3k/uɤU̥G1i-Ǩ Sߩ=9ӫ_1Oխ SѮ%k='_ݱ#wIճ3y/uɵU'"x%())D**5+q++Q,h,,,,.-U.0q334E556677$8:=?@ACXFFG H1I6J8KMPSVV;WWW XHXXX2YnYZSZZ[[[]\\\]"]=]y]`%`t````@a`ccddddePeseeee fFf{ffff1gfgggghBhhhhhhiSii jjjPkrkk lllm=msm n,nnnnooo*ppp5q[qq(rJrrrsstFtttQuwuuDvfvvwww.xdxxyoyyybzzz/{{{L||};}}}}~~Mj7Yx%Eƃ4y,`ƅ5}(Ӈ^Ո ‰ڊь];pC׏c5{ՑYݒa;ǔ S5w0ΗY+qޙSʚN1wI՝/q7l O۠!g#[eE7}ۦ!YקqCϩ-s)oë O۬!IŭC{[-sѰOͱg9ų#ieEѶ)r.8"%()k*\+9,,-134W5567 ;=?@BC|FFGHCIHJJKMPSV&WW3XXYY>ZZ[|\\].]f]`a```)acddd0ebe{eeef(fZffffgEgzgggg0hJh|hhhh1i[iiBjjjXkkklllmQm{mnbnnnvoop2ppq=qoqq0rrrrss$tNtt5uYuuuLvvvwwxBxlxySywyyyjzz {7{{|`||!}q}}}}~~+U<~?3ShIۇr։ 4&,rˍ OӎW2xJ+m&uē Pܔ"hȕID(n@̙%gޚ-bFҜ^CǞKϟd6|¡#8p4zΤZѥL6n2̨XB>ثd6QڭX֮*pB,d(|²Nڳ8~4zεZ,"w%()C*4++,,0p3D5567:=?@ACWFG H0I5J7KMPSVVW XX1YZZ[\\```_cddePeeeeFf{fff1gfggghhhhhiSiijjPkk ll=msm nnnnoo*pp[qq(rrrstFttwuuDvvww.xdxxyybzz/{{L||}}}~Mj7w4^Ո ‰ڊь];pC׏c5{ՑYݒa;ǔ S5w0ΗY+qSʚN1wI՝/q7l O۠!g#[eE7}ۦ!YקqCϩ-s)oë O۬!ŭC{[-sѰOͱg9ų#ieEѶDgY   ! b    4 t   5    . d    3s.Kh     ,Qt,Qt,Qty;^6[~0 V{">P+v0B^pK2Pb=~k5Rp]=Zޘ^יZҚ"e KϜOȝKÞV<|@<}עG-m1-nȦ8zާ^"۩_)kϫOӬ̭P׮\POOrB L4v<?h.p-s; ba B o   T   S    S v  "i%(v)5*&++,,0b365567:=?@ACIFFvGG"I'J)KMqPsSzVVwWWX#YZZ[_``QccdeBeeee8fmfff#gXggghZhhhiDiiiujjAkekkkll/mdmmnnn_ooopppMqqr=rrr{sst7tttiuu5vYvvwww xUxxyyySzwzz {{{>|s| }.}}}q~~ >\(L݃&PLj}̊}Ì O-b5ɏU'mǑ KϒS-sE'i"qKטcE @ޛ#i;ǝ!cڞ)^A͠YM٣W7)oͦKɧc5{eaAͬq5mMٯeð AY+q[ٴW7}ö  ?_ mw֣ǧO )*y+Y,p,,6-467CWWPXXvY[Z[[\]|`Hacd΃40<_H    P m   # c   $    \ ~   "b9Vs  l   IlIlIl3V%Sv'Es5Ge'9Ug GYu#@gy, I͘ MƙGɚR:z>8yݞC+k/)j΢4vܣ\ ٥[%gͧ MѨʩ LӪX>¬{=~ĮI=<~Fi/qp9z!c),mU]`( O N 9 \   A   @    J m  =  21!BCPDEJFGKLMNOQRBCPDEJFGKLMNOQRBCPDEJFGKLMNOQRBCPDEJFGKLMNOQRBCPDEJFGKLMNOQRBCPDEJFGKLMNOQRBCDEJFGKLMNOBCDEJFGKLMNOBCDEJFGKLMNOBCDEJFGKLMNOBCDEJFGKLMNOBCDEJFGKLMNOt!1@N\jx"a%(n))-*x*+i+++I,`,w,,,&-=-M-\-g-v---------L.0Z33455.55}6677777 88:=?@ACAFFnGGIJ!KMiPkSrVV3WoWWW@XXXYfYZKZZ[[[[ \R\\\\]7]p]_`k````7aHcccdddde:emeeeef0feffffgPgggghIT_ju\܂  &*.26:FU`kry !%)-159GZnrz %8<Sav  '.5<CJQn #5<CGNU\`gnuy %*2:BGKS[chpx &.6;CKSX\dlty  )1:CGOW[ckow{   # + 3 7 ? G O W _ g o w     # + / 7 ? G O W _ g o w     # ' / 7 ? G O W _ g o w       ' / 7 ? G O W _ g k s {     ' / 3 ; C K S [ c k s {  !'-39?EKQW]ciou{ $+29@GNU\cjqx  '.5<CJQX_fmt{#*18?FMT[bipw~ &-4;BIPW^elsz ")07>ELSZahov} %,3:AHOV]dkry !(/6=DKRY`gnu|$+29@GNU\cjqx  '.5<CJQX_fmt{#*18?FM}[y3cq}[ǜ6+rz}[c+[}["( s}[ݔ9e#}[ҕ{3}[Yi4G\}[+{;}[+Zߍ:}[)/}[!>c=h}[GxCF}[gyU~}[8 &t}[Lz}[qGآIJ}[!=`50$}[:y)}[2?Cd}[l<}[>ܺr}[-0cu}[܊>y}[+P)Rs-}[-R]$%}[KQ$}[%e}[U:]'}[ױ1F}[nX}[L}[B1Ot}[.E&}[G~w}[{@sm}[V-}[UFu}[xQ}[y}}[U˻[}[Xm}}Q}[@o}[gi }[%z/}[B$dh>"}[9,"}[h\0%Y}[&V3}[DA{}[9:y \}[}-'P- }[B4lz}[Zb]'O}[tˆ.}[zֽ*2}[dc2e}[GY" }[M}[?}[8}[@7#̲}[⩣q %}[ex}[<7U璘}[2"NO }[r?2}[efoPw}[ cQU}[J1~X}[H^Fr1G}[x';p}[M7YW}[2lj^}[`(c`}[2}x\9}[P$ j?G}[j(% }[^Y<}[)R}[仜}[7jcvuP}[=Ѩ)}[d޹Tew}[V0p}[hR}[Zd-^}[0Cy\}[u}[& )a}[}[ʻG6}[,+6M}[w6DSo}[ 9E}[Cf;}[*D9>z}[%I$LA}"}[.Tr}[S;}[tIHy}[p)'}[x=R}[iC}[K}[K85b}[a^ذ}[#GS}[EI5Ŭ}[fr}[ }[D6MJ}[ͮ( }[~t }[~}[M/Fzil}[0x}[{%#Ѩ}[@T}[\qK}[ϲa}[W5#}[ij}[KH;}[sY ޫj}[/RB}[BSE}[}+TF}[\Nh}[8s7}[b}[E83}[\<}[Σx,b}[< 64qW}[ XtH}[qbM}[߃Y}[J}[<ې}[IGh1}[,P>a}[5"}[/b$/}["e4}[95_}[<_]R}[ HH= }[s::}["o}[3`@_}[s2 ڀ}[b8}[~UTxs}[#> >M}[;H}[D=j0}[̒[/}[,pxƿ}[ $X}[sq}[W6}[tO1;,}[/$^}[ !~}[7w}[Q}[a^I}[X$VP%}[Ȑ}[t1~w1}[یSYs}['5}[/}[u53Ր}[ n=#5}[^-NЉD}[zn8w}[h }[*V}[UKLx}[:,}[h5}[p}[)緜l}[jd}[@m/P}[,H J}[w^suaK}[JL"}[v#kPjX}[R'yj}[U(׆}[ W]fq}[?RUi}[.7 2}[Y=j}[}[w'ZS}[}4N7}[C!w5}[v_ϑ}[J[֫F}[F+7ŷ}[yܺ}[Gz}[ݗ>;1}[u$ٜ6}[=<}[O0m}[#waЃM}[e }[OF6}[́"*}[WF?}[oX}[ۧkR}[5|6}[} j~}[~=cP}[S\}[y:}[,a͹œ}[L}[W'R 5}[TnW}[ f}[%{>}[ [x\c}[2B"@Nż}[ü}[(JY}[s%}[}2H}[I~- 6}[j}[~?}[)nmrE}[rܼc}[?ΐmY[}[׊\}[ɭ|I}[5އ}[jЯ}[5,c}[-Ŗ}[x|wi}[9}[`ES"}[^T0}[nQl匷}[+e[ 0}[D化X}[1#9{x}[b`$}[5^{}[ZRn}[Sxf()}[p}[g!}[M?0}[8K}[95 ϻi}[ e&o}[y[}[2oA}[Ppf4:}[C}[\iih }[JHIb+:}[ f-31}[{ Zh2}[܋}[jB}[m;NO}[OJ}[DZO}[a^͙}[W}[\<}[k.H2}[ ~7}[* ,J}["(}[Kiŕ}[THR}[3횞0}[Q ER@}[ ʎӷ}[PGd1}[fGӂ`}[`u&C}[`duF}[àR}[Q+.4}[Uw,}[ǡt#}[3 2}[{{V}[pNjBMR}[}[æ!=o9}[eQT5}[[2GE׆}[XO}[,;>}[]@}[;]#}[wΥq)=}[3CNa}[Z(}[H}[jUx}[eʳ}[m}[@Q#M<}[Gx@fX}["ou}[\.R}[ }[nA$P}[61}[:}[{rkn}[S}[YuK}[m^f }[3C6)}[sR+#}[0ڊԽZ}[M`I>}[̈́U}[T9EU}[i$Cr}[& Q}[ŻgN}[f1?9}[v}[xQ8i}[.K9F_8}[JUw }[|&}[z|,}[O}[Vy}[j#M`}[#XG5}[  &F}[5pŴ}[57E}[8˸s.}[!m]i|}[^ ʎ}[=4&.}[NhBI}[=R}[]´D}['"*}[w^kqZ}[6Dе}[uŀw}[&\WR%}[.HI}[@Dg}[Y{kyG}[|֠}[sv#}[fNG}[Z2ۓ}[ɥY*V}[<}[:ͨ|j}[=&rv}[s1+C9}[x@puzK}[fjP}[ĨA+}[cg }[B}[ށd}[&l9['}[Ĺ>Y}[T sHG}[0}[TQ}[h#3>R}[^˨G}[ }[S;}[ H;S}[V` y&Bh}[dfJ}[nȑn}[gTF$}[ےK&}[W cFF}[ޜvpӡW}[* |&}[A;"}[l W}[AYQ}[ ZBJ}[x6Z)}[v#j}[VTݍ}[ }[ l1 ˽}[g17}[VJlҝ}[1V F}[c!hGM+}[BfP]}[sxwU}[)`s,}[E9*}[O'Z3}[y CN}[˂=Rv}[mSՂ1o}[eK䥀B}[!RF}[1b}[iQ<}[ج|}[c?8{}[:e!}[YЋ}[ʕ\,7}[#pHC}[9'A}[W}[:#=}[Gh4b}[Tj}[*% o}[X81}[U`}[(ʺ}[%8 }[,ꌧb}[SiŃ}[l{$}[zj%<|}[n!84*"4}[-}[d}[-nB}[%lCr6}[*i\}[Pإ }[܉Z8׍}[Rf}[X)}[ϖӻ}[OQ}}[OR}[c5[c}[4 }[!,, }[*}[DU~7=}[_y!L}[!48.}[):m}[?Ry/}["6bRM}[hmjD !}[|}[Ch}[D+˾}[Lw`d}[wM}[ͤ AIDo}[ybH&}[x&'>rj}["۬}[vBc)l}[&8k}[} }[Y}[_"}[?.}[IU}[yv2%O}[׋vYr}[Ղm}[_/L }[,}[>`,M/}[3aw#>}[|<5}[g2@/W}[!9 }[z }[wέ*.}[Yw}[A r}[moE?d}[^B}[+Ș꺽}[DV~7_}[JIf }[fNU}[ː\!?}[9[)}[B'}[eIOJ0x}[JD21}[Xyw/Y}[4g}[0苒}[0ID,R}[Biq}[zҾ}[$+b"}[c1}[6f{}[&Xv}[9Q%#}[FC}[E*8}[,}[2y}[x>)5}[!9D}[ˬ}[h/.*Ě}[oA}[bs!0}[#Gv0}[Vҥ<$}[aM:}[0+2}[(}[4^Aՙ}[/x ~8}[ +Y7}[)ZěS}[>g*}[Va^}[ԵZb.b}[sn(T}[}[}[[7`}[.x]}[ctG*Xm}[k}[guQ}[c"}[T}[m k}[!G>Ox}[2#}[9J-I}[p}[shB}[/;ڸ}[Z0+U}[Xg}[K}[(Ka(}[i"fn}[! ~}[D(.0}[$G}[J }[H}[욫H=}[]*^}[`Y}[)?}[T(>'}[}[7iQ}[@ꇧ`}[FЛ"}[$Om}[XbJ%}[9,}[뚄x}[X1E+}[fNV; '4+he"_U\\RYYb M Aifc`V]]SZZ Q Egda^T[[U I& }[Hw?& }[ftgw.=d}[M..ZX3|OO core_intrinsics derive_eq }[miN% derive_clone_copy}[#+̿Bx,Xyc}[l̠b*7# }[]0wb*7# }[Sp =' }[O.b& }[/{.Xyc}[y`b,=d}[{"Y}[xmݒ2=d}[-ᜠ͑.=d}[bS %lNqC ϣ }[E'&i.Xyc}[ԥKc*7# }[&b*7# }[ڭlp2Xyc}[wVb& }[b~[_% }[۔"`pC0=d}[hңS.=d}[`*0Xyc}['/.Xyc}[U]֩O =  }[6TsoNü1 fmt_helpers_for_deriveCC}[™cCN,)}[+Hb*7# }["PtZb*7# }[5=jbZRI@8z0r(j R_u/E h,v66^f&Oe5BNXv&ODHT %}[Q+.4}[x=R}["(̭}[?Y}[ |Y}[dc2eV}[}+TF}[\e}[܉Z8׍h}[h }[E83ӡ}[wέ*.}[4g}[ $X}[:ͨ|j}[Mxd 5}[{{V}[57E}[mSՂ1oH}[(a}[2ԓ`uH&}[j!ZS}[6֞(t}[ [x\cv}[=&rv}[ )}[GY" W}[@7#̲[}[_y!Ls}[%{>u}[zj%<|`}[bs!0}[(JYy}[zֽ*2U}[ɥY*V}[5,c}[V-B}[R2t@}[w6DSo{}[vt8&}[j?9}[;H}[M?0}[O.x@H>e9}[oA}[shB}[D(W }[[2GE׆}[hmjD !}[߃Gud}[[I`06}[,H J}[eIOJ0x}[^-NЉD}[B1Ot>}[}-'P- Q}[Q}[BSE}[S\n}[VTݍ:}[fNV;$}[ XtH}[hπ]8}[r]:8}[3`@_}[1bK}[zsc}[l~d81-}[fr}[@Dg}[cg }[\iih }[ij}[bfk|:1}[jB}[JIf }[`nU}[)x\oX}[SppJ'}[sq}[H^Fr1Gd}[E@gqlH}[oXi}[uh}[)`s,C}[Uxw_H}[ex]}[9:y \P}[,pxƿ}[{%}[֣x|}[x|wi}[y[}[9[)}[#Gv0}[|<5}[sn(T}[YQуV}[k8xC%}[ϲa}[#> >M}[I_ }[!,, p}[/}[HW{N}[u#XlS}[Cza ef"}[ѾHO#}[仜n}[kkL+}[X^ }[y3cq}[܋}[Ȑ}[K8)}[XO}[D化XɎ}[`I_}[Vy}[B*PTz}[ʕ\,7Q}[ }[ށd!}[#[}[3횞0}[):}[ztSl}[ŻgN}[>(.0}[@ꇧ`}[v}h|}[=}[X)j}[IU}[8C C}[QE }W}[nA$P}[zSFp!}[-0cu}[`u&C}[Eպ}[oӲ}[!=`50$}[-}[3 2}[YuK}[iQg*}[p}[+P)Rs-}[w^suaK}[BcuN}[7jcvuPo}[Xyw/Y}[q{}[%} }[Biq}[Ղm}["G/X}[jQЅx}[l{$_}[l<}[G~w@}[g']eJ}[#GS}[YЋP}[|}[W}[}[`Y}[!TR1W}[ʒ,}[Kiŕ}[3C6)}[tIHy}["e4}[6f{}[ ~}[!>c=h }[FЛ"}[ HH= }[& Q}[|֠}[U`Z}[}[2էN}[ף͜;}[üx}[%6QpL}[ ;}[9Q%#}[)Rm}[.(G}[/b$/}[̒[/}[IK#}[fӫ9}[Y{kyG}[$}[,a͹œp}[>ܺr}[SiŃ^}[rܼc}[`ES"}[TQ&}[%I$LA}"}[R'yj}[T9EU}[!9D}[* |&3}[4^Aՙ}[6Dе }[!9 ģ}[6Kc. }[u53Ր}[W5#}[]d}[.E&?}[eQT5}[@mAQ$}[ױ1F;}[a^I}[0ڊԽZ}[guQ}[BfP]A}[%ߙoF}[~=cPm}[N1~E}[-Ŗ}[`duF}[+OōO}[E9*D}[ cQUb}[* ,J}[OQ}l}[9,"L}[^Ym}[i"fn}[W ^g}[E= }[s2 ڀ}[ !~}[}[sv#}[[7`}[c"}[́"*g}[\~$ҿ}[|%6@&}[x&'>rj}[(}[h/.*Ě}[ǜ6+rz}[,+6Mz}[G^,6 }[ f-31}[-b}[?Ry/ۇ}[,Ef4 }[ҕ{3}[n!84*"4a}[!48.t}[+{;}[ː>w5Z}[h#3>R'}[2B"@Nżw}[ĨA+}[B}[OCb'}[i$Cr}[-nBd}[W cFF1}[ʻG6y}[ FGZ}[ H;S+}[gdJzqQ}[KH;}[JL"}[D6MJ}[iKr}[dfJ-}[,P>a}[xQ8i}[֌^Rr*V}[!RFJ}[%lCr6e}[gyU~ }[Rfi}[W6}[ctG*Xm}[یSYs}[AYQ6}[ ZBJ7}[\<}[׋vYr}[r"F9}[IWD}[Lu`}[oHa}[Va^}[XbJ% }[B$dh>"K}[*i\f}[kGgk}[)nmrE}[TnWs}[.Tr̀}[~UTxs}[8˸s.}[x@puzK}[JUw }[wM}[V` y&Bh,}[zҾ}[+u(} FN5}[@'I:}[ۼ\}[S;*}[‚i/}[M`I>}[*V}[3=eL~0}[M/Fzil}[ZRn}[MoV}[nȑn.}[p}[JHIb+:}[kν}[iͪ }[6P}[^T0}[Sxf()}[NhBI}[J:B}[x';pe}[:,}[ǡt#}[+Ș꺽}[E*8}[ـsYT}[Y=j}[.K9F_8}[u}[]N3@}[@T}[s::۲}[! ~}[61}[Ȑ&}[7w}[p}[y,h}[&x F"}[8K}[A r}[8kF9}[2?Cd}[Gh4bV}[}4N7}[f׿ 1}[Gz_}[H}[*% oX}[U:]':}[܊>y}[]*^}[}[eZڥ-}[^ ʎ}[KQ$}[tˆ.T}[E\^<}[ےK&0}[(ʺ[}[D+˾}[$+b"}[aM:}[fGӂ`}[v}[rc }[!G>Ox}[U(׆}[׊\}[jЯ}[C}[Gx@fX}[g/1(}[É`:U}[yܺ^}[a^͙}[:}[;5b`}[ORm}[43-3}[y:o}[fNU}[x>)5}[rz}[\.R}[T(>'}["( s}[j}}[àR}[=R }[/}[{@smA}[xQD}[} }[&Mp}[v#kPjX}[~}[+Zߍ:}[W'R 5r}[ e&oÙ}[ ߌ}[Uw,}[WT}[_/L }["ou}[\qK}[,}[&Xv}[vU_ s/}[k}[8Z}[.7 2}[ }[KĆ}[9}[D=j0}[& )aw}[Ũ/S }[0Cy\u}[/RB}[DZOӦ}['"* }[gTF$/}[sxwUB}[/;ڸ}[v_ϑ[}[Z(}[.HI}[F"#`}[|&}[`(c`h}[,;>}[V0pr}[k~0' }[r?2`}[6M83+fM}[Yi4G\}[Ju4Gn,}[EI5Ŭ}[,-՟7R2}[ϻ8?g!}[zn8w}[g_8G}[tO1;,}[a \9Cb?}[ n=#5}[*D9>z~}[zdu?}[׎:OLA}[O0mc}[2oA}[f1?9}[˂=RvG}[:#=U}[WF?h}[#XG5}[%8 \}[=pϐ0k}[OJ}[1hK#}[moE?d}[>`,M/}[m;NO}[t>O}[JD21}[5WP }[<_]R}[X̔S}[+\ @Sw2}[<7U璘^}[&V3N}[THR}[T}[svW]Nu }[x6Z)8}[O'Z3E}['L\}[G^N}[5^{}[0+2}[3CNa}[ԵZb.b}[Z0+U}[(Ka(}[e e}[Cf;}}[{ Zh2}[$hQt~}[P$ j?Gj}[fjP}[B4lzR}[m}[ޜvpӡW2}[⩣q %\}[w^kqZ }[8s7ҟ}[;sZ)v}[u|w{,}[2}x\9i}[Σx,b}[%z/J}[3aw#>̠}[ɭ|I}[_OK}†}[J1~Xc}[t1~w1}[} j~l}[~?~}[~t }[s't}[g!Е}[J}[uŀw}[DV~7_ԫ}[@}[&8k}[F+7ŷ]}[뚄x"}[,ꌧb]}[^˨G(}[<}[m^f }[^\7}[ }ü0}[Q $6}[Ywæ}[9'AS}[2}[욫H=}[ݗ>;1`}[95_}[<ې}[m.+k}[m k}[S}[M7YWf}[0x}[@m/P}[ ʎӷ}[s1+C9}[?.}[ݔ9e#}[qGآIJ}[L=}[efoPwa}[;k3}[޴#}[.x]}[$Om}[p}[S;܁}[g2@/W}[U˻[F}[c1輺}[FC}[^g=}[jd}[y CNF}[DU~7=r}[;]#}[ ~7}[eʳ}[Zf?v}[Lz}[v#j9}[ۧkRj}[ ?窮+}[#waЃMd}[95 ϻi}[Xw}[/x ~8}[_#.Q}[8 &t }[a }[T sHG$}[_"}[obD}[sY ޫj}[5އ}[ZEU}[5pŴ}[4[5TR}[J}1}[B }[/$^}[c+[}[2"NO _}["oȳ}[t#eK}[{rkn}[uv}[ϖӻk}[%Y#}[xg}[0苒}[ˬ}[2#}[g1}[? @@qVR%7()rI#4s#7_#K&673w?Zowc5SM^VkamJBbqi^^wBV#tp)DQ]x04oSc36n(ALWSp`Mej.cPfMM%&4Y']|U4tm67Os U| $8^J wm?\^fC9X2ZejQ7__ RvqaD|0|`XIkdpGVjrS]w=2!, UWBfMRfr d|YFiZC:\Users\joe\.cargo\registry\src\github.com-1ecc6299db9ec823\num-integer-0.1.45\src\lib.rs <xC,U5QȦ[ F?#EB@A$!A; #! ' 09" $,,,,,,,, /, $ <  $,,,,,,,, /! $,,,,++++ /0 ' $"" )& $#"" )*/@+ $-, 6+: $#3%FD! )) > 113/,/5 !)'' RJ 42-; $01 4. $(' - $&' =) $11111111 5;) $77777777 <73Q $66666666 5 '"5Q $66666666 5 -5'&-. 3 0 06 9 /P#*K*5<3&")8`c2D'8`c(DFD`c2D(72DO<2)#$&*,6O;?:NKCF/O1** 2 2T562!8N2&AH>79+6::6+G=%+$A(!E' E>1;?4""9;=?4""8 9,-/H* <%;:66>>,.//,-./&<%1RQ<<DD,/./,/./9988;99:/?#3 M%)DO%@0$--,44::3;,--&-+&-388899:9: &!R'%V+K)&'!NL4&!R'%V+%UH898978787878776767/C*KK .00042&"S8[87?W2)#$&",61** 2 2T562!0W2&AH>79+2:6+G=%+$B(F' E>1 &JJYIIXIIIX9988;/?#3 "&DO"@08889:< +/K'????A@A7878776767 .00042, [KQ3* %& (! <  ,;)DC'"(ON 8;A#+  :+5'01&C '' !<""))11EE )A" ",/ ;1#2: $$$$">$; ""$$$$$%$$%$$%$$%$%(#2 ,,,,------------%&*+Mēժ㥔ި\C:\Users\joe\.cargo\registry\src\github.com-1ecc6299db9ec823\num-integer-0.1.45\src\roots.rs |hwb Qݷ  EA@EMI"A 2"C  &--'''2334:33 (RD7,"=  '+/ C7DK8 +/3/39 A5 # ?5 # @? /1 6SG%S-% 1B  ' # #"(1-.G'..!M;.+i>9!@-ad]D=-"%4')'",4OM9!I145H$)D0'50%%+e>4!>-.#%#.,,01,1i9-%%+e>4!>-3#%#,M'('57+%$6--1(".38,,01,1QB- 'ϖߴ^C:\Users\joe\.cargo\registry\src\github.com-1ecc6299db9ec823\num-integer-0.1.45\src\average.rs WKĢTmvyy(K޷N޷- PH$ "000;