diff --git a/app.py b/app.py new file mode 100644 index 0000000..16e0ed8 --- /dev/null +++ b/app.py @@ -0,0 +1,37 @@ +import gzip +import pandas as pd +import numpy as np +from sklearn.linear_model import LinearRegression +from sklearn.utils import shuffle +from sklearn.metrics import accuracy_score + + +def preprocess(x): + x = pd.concat([x, x['engineType'].str.get_dummies().astype(bool)], axis=1) + x = x.drop(['engineType', 'brand'], axis=1) + return x + + +def makePrediction(path): + x_pred = pd.read_table(path + '/in.tsv', error_bad_lines=False, header=None, + names=names[1:]) + x_pred = preprocess(x_pred) + + y_pred = model.predict(x_pred) + y_pred.tofile(path + '/out.tsv', sep='\n') + + +names = ['price', 'mileage', 'year', 'brand', 'engineType', 'engineCap'] + +train = pd.read_table('train/train.tsv', error_bad_lines=False, header=None, + names=names) + +y_train = train['price'] +x_train = train.iloc[:, 1:] +x_train = preprocess(x_train) + +model = LinearRegression() +model.fit(x_train, y_train) + +makePrediction('dev-0') +makePrediction('test-A') diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..eaa6003 --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,1000 @@ +77497.59817308374 +12145.183204738423 +49614.760815142654 +14193.95902630873 +24411.78743601404 +78674.57835342735 +45093.73150507081 +9430.708212095313 +-8232.724232891575 +13879.290525870398 +25568.833666703664 +82812.4330928959 +6265.50123735331 +1607.9813047451898 +35841.60286660958 +24116.198240671307 +63157.95586764719 +94701.38593358826 +36727.04524317663 +6979.06861732807 +337.07804201729596 +7878.1579946335405 +-12434.567880833521 +58397.04103187099 +-5237.598255680874 +69304.49228382856 +79360.40583256632 +12212.45166661311 +10599.93806515541 +37149.723260872066 +75842.46299406979 +63474.692148797214 +7021.114373803139 +49996.6342601385 +39603.70783125609 +59278.15555410925 +32929.065144366585 +24936.393412046134 +42897.59869460296 +71335.3275401555 +74766.09899844695 +28805.56662850175 +39435.01918189414 +68445.94667971879 +12450.99508823827 +121629.70963679999 +91643.02354403678 +10226.742795088328 +38932.81235375069 +51131.56853915192 +74873.52349285316 +-7139.231804189272 +95314.95404706337 +39826.31165486574 +11915.349490043707 +-6563.983407936059 +-4067.4696074919775 +25244.510332305916 +71447.95779551286 +20632.409069417976 +62593.66720701661 +-10320.212989846244 +-344.2792952442542 +72884.06029582769 +82842.3732743049 +29113.83393068798 +-6952.213588139042 +87099.0324012218 +33533.54241297301 +2325.789221126586 +20943.488640376367 +33464.34632398188 +18999.369836922735 +19500.368104105815 +167207.74066234566 +44771.572681246325 +63053.521190154366 +42305.4043821767 +67282.64431340247 +16767.882196183316 +47979.0722680809 +20780.227181451395 +45498.59387625102 +16645.68920593802 +18322.17821686901 +19537.73549389653 +56460.28784766793 +41495.40915032942 +40852.53248755075 +23933.213687033392 +41008.840385847725 +32627.61406225618 +55482.14264514297 +45182.18583734706 +4068.9076504418626 +3128.549973658286 +64673.44611378573 +60492.24597202148 +36746.9398571467 +30324.029830866493 +7033.592367576435 +5470.230192290619 +10259.694229475223 +20054.190633448772 +6364.458330564201 +25479.181104391813 +26187.710714843124 +42756.5129827261 +63522.90319916885 +19771.14869630523 +76696.68599507771 +-15197.181422403082 +54630.822895575315 +59806.10515675321 +8861.112592361867 +41008.804150374606 +12329.863030731678 +34162.087016522884 +56171.463384402916 +27048.49012425728 +24445.261783045717 +31076.513184827752 +-24503.11612137314 +30161.675732123666 +66740.33063208964 +75430.08439093549 +-20041.02258642111 +44084.617848875 +22035.88318245299 +46793.10665704869 +12405.770104807802 +-7135.7949241399765 +46404.24202188384 +37774.460237681866 +-28656.935140392743 +63357.41409700923 +100303.74964265153 +56617.33373849932 +31658.619698510505 +63102.61278089974 +15140.106751419604 +51568.7592945341 +70111.61566795222 +18495.38215504214 +66592.60880121123 +51821.29233985394 +91174.80120742042 +15247.67248571571 +11204.415333762765 +57995.90248046722 +32223.670045377687 +18086.73050112091 +46356.930220148526 +-38566.626455326565 +74728.3237921521 +-13449.95141999051 +75608.14048965741 +18116.461089547724 +58647.85869064182 +60617.25336460397 +36703.7039143024 +66976.00464350358 +7236.023553165607 +-3414.963083180599 +2984.5312355831265 +-9927.231479551643 +41958.28270345926 +38329.36768847797 +26197.446837645955 +82098.1777638141 +61066.52145500202 +71233.57450914849 +20161.158015860245 +22631.10114006605 +74849.24564486742 +37396.36619751342 +76676.3954305267 +95796.0023933677 +81944.38450781256 +74766.09899844695 +53480.590404986404 +33431.70622828975 +16967.51242802944 +-13844.5227150945 +21888.147479982115 +5925.5010204659775 +81895.16381722316 +37905.05868534744 +11104.278149728663 +23797.162999306805 +-11598.044199549593 +40050.259476615116 +44205.15950421244 +62637.90717997961 +1486.2406712379307 +55027.682990621775 +40921.52380197309 +57898.31384016946 +21523.009792955592 +37643.84746509697 +100693.73685078509 +95797.17100262828 +-5844.719023390673 +-17461.989149501547 +19332.222580731846 +22015.54505042825 +32782.98898672033 +65197.891748772 +67899.65010665171 +33135.65921607427 +25912.419131562114 +7328.541950888932 +91585.19882588927 +42633.00885616522 +35026.323493243195 +77323.2066352237 +50575.23367202189 +61749.18456622213 +119885.69280544296 +53626.66656263359 +-14176.522481849417 +33601.82410722785 +26781.7514682319 +-9416.617727338336 +37432.1175126899 +26964.010015801527 +-1008.1418822770938 +40585.54325604811 +39238.57014422957 +54629.02702813875 +6437.172682010569 +44362.01647224557 +25642.982400490902 +46850.8082829481 +-601.9871000163257 +4722.287621136755 +72033.92528945394 +50155.55147883296 +13870.694567391649 +61594.72809050232 +37121.495746532455 +24809.050041024573 +21871.517136191018 +48919.21581887547 +37469.01505186688 +14617.085107526742 +13354.591830532067 +43307.45151155256 +30928.238910278305 +12400.073027755134 +54735.288523380645 +24463.979577838443 +49501.44218325522 +74423.03621094208 +12939.972875662148 +86554.3199471701 +32761.077563072555 +82882.24336798582 +33414.814729861915 +21675.11481096316 +68254.45496530924 +7747.3428120194 +20685.09074871801 +14513.969468493015 +73040.2157083517 +27439.76747661922 +-2651.3923945324495 +95796.73277415615 +2796.7632039384916 +19904.325193060562 +-12508.540546167642 +24078.669252791442 +18867.534276643768 +17083.023437659256 +69026.94758429937 +15367.638533780351 +18528.39585411083 +149501.13788695075 +19643.27675145585 +24829.843270933256 +121240.39670754131 +62609.67695891857 +13248.86094892677 +15400.278629471548 +74765.66076997481 +30514.459795944393 +78672.95470659807 +8087.792572214268 +33897.438916223124 +56372.64215307962 +27796.22698871605 +72791.84174317867 +38346.10344644822 +-562.9884219318628 +27366.056098817848 +38029.883796213195 +43985.992560653016 +30596.171337500215 +28424.771592266858 +53701.31080334354 +23957.2283148868 +11510.830293805338 +3328.875692700036 +37116.81881657336 +14445.595016980544 +35102.53944771644 +6334.878680455498 +52363.55269375071 +39262.61926747952 +9037.960895895027 +4977.738863040693 +-23171.426755387336 +24784.982706082053 +-21069.569049357437 +67916.52934096102 +89022.95147321653 +2963.6325914934278 +26563.310530739836 +47765.95868252125 +26059.278432697058 +45706.26635671966 +49098.30567559041 +24240.65137280058 +17699.78473589942 +57638.8151031062 +76586.3054352384 +17672.111546251923 +44518.83105548378 +60532.59124806244 +30818.965734442696 +29106.39711872395 +64389.360310161486 +4047.762017842382 +35184.62012004852 +-5748.43073085323 +42366.68736886978 +42046.304832514375 +30104.287442353554 +53542.85084199067 +63368.28796821274 +130186.12862707488 +87527.93166614976 +45259.980300738476 +66521.71371157188 +13125.237275213003 +65014.55357334949 +15299.063036676496 +3969.5353512298316 +54433.056953210384 +39615.20229434688 +58558.80534378253 +14698.128062300384 +49056.90833991859 +32647.786700276658 +51881.551789039746 +63897.852358008735 +8428.700149281882 +4874.117103990167 +55213.331658724695 +21177.318737881258 +94715.33097909857 +41749.369039214216 +-765.0551889427006 +49069.45486264024 +54470.30071181897 +78190.44559871778 +178853.4722448252 +67916.6754171187 +54928.92984214984 +8490.971250867471 +31248.516032451764 +31735.939004943706 +-23827.23586820811 +70903.76326355897 +81615.23042746074 +42430.99456567317 +24501.09063592367 +47341.64602338243 +76586.0492619304 +37477.59866943024 +-16990.991087737493 +38905.684543304145 +36645.381696513854 +51057.545449861325 +-3750.1295223636553 +28108.246734805405 +19298.072184938937 +-14898.624509315006 +26363.695633312687 +-1252.4033422358334 +50090.47568579856 +71725.44695686176 +48157.541532906704 +24135.644872623496 +7508.729236506857 +65727.02572653536 +21704.17791587673 +70757.92228332162 +41104.0113908723 +34779.75774887018 +52109.54995822441 +37266.489308911376 +87409.72655348666 +61169.40135660302 +53672.645321223885 +26342.514590454288 +-526.8060320094228 +19940.133979606442 +80644.78650143277 +81259.11077647936 +45622.790035347454 +7007.6190680461 +19329.051140095107 +237988.71456550714 +99221.51760289911 +120522.88474944606 +112497.76644148491 +11038.166538095102 +44787.0275996346 +47033.066830517724 +43401.33552737441 +66153.03373031504 +67469.63036868349 +78189.86129408702 +58627.3480304461 +48508.85314841755 +51687.33123718668 +-25461.172177031636 +55525.65661203861 +42983.01150325965 +39667.04395745043 +74722.15117779933 +56049.0616131518 +28352.406812421978 +4308.080203026533 +74765.66076997481 +20309.305952615105 +42834.0934437979 +27969.80736135505 +66033.71810352523 +32305.377033025026 +57483.843484297395 +23411.851977226324 +67916.09111248795 +61067.105759632774 +113115.01721707173 +43986.003793789074 +96180.23513437621 +65561.55512736086 +66008.761923654 +61961.50436930545 +29316.449283820577 +7037.134661807679 +17940.654343474656 +25134.56845807843 +47551.98642428871 +9275.30182418041 +64975.02412334178 +50958.78870118689 +31107.72927618958 +77858.63427153509 +13682.507951674052 +25049.01021449361 +24554.426713611 +9163.864415520802 +39675.90249012597 +13522.280477593653 +82097.59345918335 +42307.35705449339 +39834.989829795435 +27917.61521953158 +18144.06926953513 +79841.40458826534 +69671.08198299259 +23429.331419332884 +52722.02454262599 +28555.890793119557 +19776.777881812304 +15403.814843331464 +58539.717182835564 +-27574.29613425117 +45685.36771262996 +23592.351256899536 +20512.591744408943 +18327.542193535715 +25365.124450549483 +52506.8920948375 +47649.390964907594 +32779.552106670104 +26246.55168887507 +44581.79165432975 +48192.38429941051 +78190.44559871778 +24007.994245843962 +19009.024991593324 +37277.98377200216 +63427.36136134062 +41770.1622691229 +76910.70248979237 +666.7593451896682 +63975.47454951238 +26538.817551960237 +34556.07551649958 +25312.93230872508 +60806.6746169813 +59405.75976797752 +66773.52075082343 +7921.90536403656 +89609.51691261306 +32532.23119347263 +-30250.57941076439 +106516.64885392692 +72894.2860889025 +20549.852543092333 +196444.47567443084 +49823.18946571369 +18497.862131191418 +47637.86507671885 +35768.92475063447 +-28065.030743638054 +23637.624491690658 +50552.78847019188 +105210.69431712758 +16593.575817475095 +25662.98232644424 +94309.56178206578 +-12199.705179993995 +93578.81657525338 +71484.31732753664 +68984.83575354237 +58596.42178237997 +28189.59489680454 +95140.12044553459 +13317.683434540406 +79411.56025683228 +12057.262761571445 +69879.73166603968 +2512.5246494365856 +65640.97078732494 +41995.83609522134 +75088.40705856308 +68311.52400060091 +27670.323469090275 +-1243.31857773941 +12953.892345471308 +6031.957908139564 +46413.26569362357 +19646.925443770364 +67561.8513888456 +70967.26865971833 +52478.22993948124 +56966.245550483465 +12974.064983491786 +28553.303965571336 +16901.066993082874 +3016.550739386119 +14768.621446024626 +-13279.939909419976 +2313.674166147597 +54193.84567174874 +136557.1245355811 +84354.49940754194 +1548.7956081237644 +40963.2538149273 +41157.732831656 +-27369.25409356132 +55813.6460412126 +17921.569000477903 +-5727.84608138632 +2046.4779668813571 +73672.99841923825 +36502.132534566335 +92678.3753704289 +66070.79063427821 +82157.3720638277 +56276.56244098395 +49268.449168180116 +91174.80120742042 +30681.974341292866 +63650.91301026009 +-4806.176167963073 +56002.638220299035 +-21435.516810795292 +58470.94687871169 +72449.9739613384 +14256.437095658854 +7364.806775581092 +36324.378568271175 +63539.67264457885 +18382.23830925487 +-493.4399302499369 +24975.91942858044 +74595.00583316758 +14998.232546454296 +46263.68736420106 +63567.1768595716 +68171.35165297054 +127949.71369451378 +51396.58710849006 +2897.9787967335433 +27345.88346079737 +70100.99669958185 +44049.36745407898 +63464.49157657195 +14069.662878742442 +34714.07834045682 +13079.2800169345 +-48786.24167997483 +24905.75034500938 +56201.02897028532 +46700.56923918333 +16358.346594112925 +-1540.0403687180951 +56232.07547950931 +42632.66865757294 +41843.80507953372 +26939.942680858076 +21981.410903916694 +54377.2199888872 +42867.53086253721 +201228.80648684502 +14649.37280052621 +-19747.636121909134 +56747.131314014085 +37830.05115051195 +14030.75756551791 +39848.183293535374 +48761.64519813657 +11476.395011034794 +69661.9911381239 +-2738.121034728363 +132204.56447626092 +90301.45450211316 +-542.1951920241117 +26510.195891167037 +-2460.631873380393 +30161.675732123666 +-950.7762302141637 +67969.634226989 +26420.127528792247 +40118.20102365967 +-6040.171034700237 +21162.28198055923 +23186.202555010095 +34409.999358852394 +21452.747054223903 +49139.729360391386 +32827.22895968333 +58383.34294044878 +55560.73373033572 +56830.92017179169 +21672.575537742116 +26907.654987857677 +42763.49215700757 +62224.987225759774 +23913.767055081204 +55313.926659632474 +90204.15496571641 +87708.26605439745 +39952.94118056074 +51333.31893385947 +1393.4094505244866 +44989.61662040185 +25339.628497347236 +33845.867366285995 +39534.29198851902 +16808.227472225204 +13794.166901428252 +9135.713994987309 +88137.19576051924 +49678.249872189015 +32651.52044483833 +8324.668268325739 +87229.4142813664 +25856.89166327007 +34706.91781206522 +30788.02463939879 +80265.09299950767 +30985.214530109428 +44687.82757192012 +-38862.093537631445 +39522.66487648245 +17316.625028735958 +116358.80954304338 +76078.26028142031 +50752.09956299234 +63763.848301601596 +30510.18307535909 +36176.83272041939 +-9784.612393728457 +11364.493592835963 +11194.011295319535 +7565.0842644507065 +53340.37613410782 +48023.312241043895 +-688.6237523620948 +-18443.86298236251 +93954.08444934525 +-2076.354151668027 +70199.01956974808 +-3639.169938554056 +33013.65039337054 +95217.95947838668 +40511.83187824674 +21470.81765113119 +50327.164661628194 +57550.55018106941 +95796.73277415615 +33653.64746045787 +-15312.435686150566 +14272.891238101758 +-28642.271986447275 +22471.976953607984 +52344.000647618435 +7638.0696361828595 +35886.85116340034 +-12305.436061600223 +59842.28754667565 +129392.4136366183 +46172.10808561463 +58403.04520618636 +-2229.723478217609 +41413.70275702607 +57640.86016931292 +-2925.955709404312 +-1983.8167338026688 +55910.65968132671 +14231.092657756992 +22922.17504659854 +-2676.9825287796557 +27255.254970914684 +80277.09731610771 +102888.76322202478 +15420.765262114815 +2145.912389253266 +82097.73953534104 +-621.066559095867 +28380.53161930293 +20300.449780555442 +1689.2924487153068 +26817.908244500868 +22818.869171710685 +91108.36295630969 +62493.17762029078 +-3171.5660296622664 +46677.2279103091 +51572.8536132602 +42910.64672341384 +54941.351981452666 +16908.717058951035 +57651.14518197719 +-30161.936689822003 +44869.42868081294 +75883.64012297895 +3956.982671151869 +67916.09111248795 +42280.75552190747 +-12634.064569664188 +-41844.34434757009 +29975.254298435524 +12446.115380848758 +12712.704368554056 +23924.53551210463 +108314.11159904767 +26553.906349742785 +45969.82847937662 +29027.57743246667 +32997.121449375525 +-35701.688619992696 +41281.3328201985 +-24858.955041582696 +36682.18467832543 +33619.97168259602 +35963.29835318308 +54555.98894931562 +8643.972395919263 +-25347.441114711575 +18223.402477770112 +39709.08631016873 +17830.034569681622 +23247.693463652395 +37196.99352431856 +-60152.057169525884 +60511.65299818572 +49794.92874314077 +4466.046453633346 +71240.09857690893 +59741.69254576787 +26145.254695821553 +13581.979132148437 +58197.772118782625 +7443.04982809443 +-9232.294280755334 +34873.909953887574 +172279.2268317826 +-15933.702159807086 +19749.923263176344 +79934.74910489377 +61066.52145500202 +17801.90976280067 +-11515.762481627986 +6104.322687984444 +61761.45023410022 +16344.83591549471 +23933.213687033392 +3470.7889642277732 +29377.756204108708 +35022.53421050031 +58315.22517891042 +73744.50640821457 +-6352.495988014154 +60532.59124806244 +75146.07782811392 +6577.335387214087 +39116.45590734668 +27934.507645566948 +13114.899846259505 +6854.876114238054 +79624.43334097881 +57640.86016931292 +36061.051452275366 +30214.48846583534 +3147.2377370195463 +36662.73804637324 +23652.55583483074 +67969.634226989 +45998.418672012165 +-7684.078327138908 +57638.8151031062 +92167.98880775552 +21365.839681413956 +48035.427296022885 +51093.727839783765 +72702.72242874559 +4111.448622757569 +42796.85825876705 +59688.15380598698 +15700.136125114746 +-9075.130249585025 +46463.447995604016 +20261.13710784912 +37957.420969527215 +65468.03177544009 +38345.63537093159 +4616.3949187016115 +37201.20042017102 +32957.9686644068 +65843.52506516315 +21429.746369021013 +23300.250024056062 +30335.258490772918 +33902.787708434276 +28546.78041496966 +55029.72651319951 +63139.89045763109 +58667.69330648612 +11147.439713931642 +49774.69210036378 +21792.397489916533 +-6577.563226410188 +20426.76531162765 +13358.754716650583 +-10377.136355408467 +41856.71470797341 +22638.700906234793 +-15044.700666962191 +22154.26550105959 +21202.627256600186 +29285.21878624428 +14920.866433621384 +70268.59492429532 +49004.42165976763 +36057.182369004935 +35922.95307714213 +7662.757563015446 +95797.31707878597 +44541.81998166535 +128351.86278500501 +61409.048193941824 +75415.98839436285 +33440.62917195726 +26269.811617489904 +60220.266294749454 +18593.78145967517 +40439.46709840186 +80349.05721674208 +45663.37298171222 +51070.012907532044 +97188.55314747896 +10742.577342752367 +3333.7238509217277 +25940.750906205736 +589.6110873380676 +26283.273270426318 +37477.59866943024 +-53002.58340684511 +38277.84127674997 +-16493.146639036946 +58939.672983760014 +81615.23042746074 +49536.5341485301 +27457.947088893503 +78190.44559871778 +-1524.6084089484066 +26332.603374084458 +39334.955470276065 +-15157.410722847097 +16158.54063591268 +45704.14997353405 +91030.80268701166 +59972.353952419944 +115590.46308208816 +92875.58003916405 +60062.07508212328 +20447.083384577185 +-15438.06857504975 +27018.734811638482 +16312.917965273373 +25897.236939311028 +30027.7146294564 +88707.14894864988 +78190.44559871778 +738.3160986648872 +29892.99718103651 +71557.85156323761 +78200.47474632319 +95314.95404706337 +35366.87866761815 +14632.198732385412 +15128.298952198587 +59521.905010320246 +42055.62545007374 +30101.063260694966 +56309.26725965366 +13169.61159542203 +38929.061479078606 +65316.827147779055 +80959.78374068625 +61438.883610930294 +54665.76335378364 +-6900.61822867766 +-16183.39220867306 +27888.76440658141 +86429.87718912028 +40086.79686904792 +72085.63187454268 +64582.37838612497 +-12624.119597305544 +7387.897182077169 +88887.16852991562 +28664.731765734963 +36747.21788119804 +7987.047642107122 +-5435.6286535561085 +32461.365266588517 +63321.1053692922 +68810.63478901517 +21492.74863395188 +20460.131413388997 +20444.259040287696 +3825.8876687949523 +61350.7355505107 +40695.93444643356 +82610.2636907138 +67252.09449980408 +21285.899363816716 +21535.12484793458 +71988.65132722631 +74731.41292168666 +5209.768539201468 +54473.6521036746 +74409.82622448541 +47337.929883904755 +39981.06598744169 +48316.14992279373 +36317.04699129891 +167.39236630033702 +74766.09899844695 +25020.15940154344 +6748.733221187256 +44725.47433656175 +77789.00680424087 +75620.43374694604 +2737.577507317066 +7458.941371398978 +14490.455581831746 +67120.70643410273 +75751.70414680801 +68428.76134401839 +39096.65687270183 +34101.9676959198 +6382.50321093481 +45316.09423292335 +45732.27854332514 +-28518.19337334484 +17878.51429630071 +71672.83467439469 +74477.8227409618 +41344.15426534321 +118400.9683552077 \ No newline at end of file diff --git a/geval b/geval new file mode 100755 index 0000000..b68b316 Binary files /dev/null and b/geval differ diff --git a/test-A/out.tsv b/test-A/out.tsv new file mode 100644 index 0000000..ffb9ad9 --- /dev/null +++ b/test-A/out.tsv @@ -0,0 +1,1000 @@ +24338.076058211736 +23636.277893734165 +12031.8488286715 +-8466.057891640812 +-5934.440153094009 +20841.27885231655 +40507.345264752395 +19934.26178730838 +118060.46094445419 +47491.467941477895 +-29400.509392365813 +44459.507296470925 +-7569.840319186449 +31054.11681625154 +-24708.095405929722 +-7106.944111188874 +44810.98337077629 +66623.67784153484 +35440.53733832948 +15074.367045550607 +60292.631074594334 +17884.299315531738 +-4466.0788104608655 +45296.353263991885 +5512.117142422125 +23519.75294145383 +38354.055615309626 +34714.31187605858 +73998.21138132736 +26121.916198036633 +41602.25516401045 +21888.147479982115 +23913.041049012914 +9703.660883948207 +71084.78729833197 +13765.936680366285 +54219.80686584953 +46452.1897361977 +70729.12417746149 +35286.45630473178 +8809.809180140495 +50416.88579133153 +37213.67657519877 +67971.2897053454 +66905.29557328578 +33229.62913898565 +37063.72968374845 +8839.404873946682 +28005.808397167362 +43568.66273180302 +40768.21892928798 +87297.86171785556 +13717.289663862437 +46397.732261579484 +-4721.322729762644 +30527.539425217547 +66617.65113611892 +33304.84423190821 +72782.15668163914 +95796.0023933677 +21198.11196778994 +79060.30134841334 +63621.441605421714 +26559.14764462132 +61445.96039580647 +69380.19990753476 +-4746.55438094493 +-1787.9527110476047 +43345.63812651485 +78191.02990334854 +49856.62288203649 +94701.38593358826 +28241.787038628943 +76334.49839598686 +47585.0837681042 +19729.750625155866 +22734.20645680558 +16506.979856332764 +84655.32989776507 +31706.256138070486 +15660.775859540328 +45665.65707798954 +64834.51996248867 +44009.707492903806 +39790.85527101252 +76360.87976869475 +84675.50253578462 +16077.846683992073 +34719.23983480781 +46859.25805366039 +13163.635574752465 +58727.217025283724 +75533.05734462664 +47485.83536515385 +18759.677852650173 +75412.18668999057 +20900.711233115755 +7913.5916076870635 +63792.120501522906 +40225.5414497219 +74765.66076997481 +56493.18128557876 +7247.518016257323 +26164.70132777281 +33155.56366489921 +68926.47836470511 +54324.340740336105 +4443.534202645533 +43452.05797899328 +19256.39255740121 +26964.010015801527 +-1081.4518232764676 +58698.45935012959 +17473.86343855504 +6234.89842537418 +79371.42513869889 +659.1595790209249 +74765.8068461325 +-10555.338458002545 +45105.22596816253 +22711.791692148894 +12020.001962888055 +34413.111455337144 +-2628.956104164012 +13439.797671425156 +16990.486019793898 +29604.38106243685 +2150.862250530161 +61609.16766775772 +44473.24448456336 +23043.995480634272 +15919.080052990466 +35850.58829729725 +7758.578091521747 +111938.86237660609 +75862.6356320912 +29329.353345027193 +45912.5682761129 +52236.80007580761 +31823.122554824688 +35865.977457311004 +29845.456081886776 +43872.59789115656 +-22222.25262697134 +34198.88999833353 +24004.696720351465 +122036.53670471534 +43360.99025133345 +33646.252468858846 +10924.109884252772 +58680.93913984019 +73369.81552603934 +73874.7946157474 +29852.16706697084 +-7010.511996401474 +117806.43839358632 +45834.986164507456 +28077.258444295265 +41003.59909096733 +24529.429906380363 +21886.92836977169 +18972.21802462265 +56747.87687925622 +-9651.93540199846 +62635.090891818516 +43266.05487712845 +27158.69695447851 +65702.5088482853 +44593.28611742146 +62723.7336127609 +61323.22176116053 +812.5621608756483 +25276.74991880264 +55231.11339595541 +59083.676537380554 +15027.083359403536 +34693.10908063594 +60889.66772526596 +82751.65128304996 +62992.67691917997 +45778.63113656454 +51773.28969014622 +25020.779993431643 +96207.3149494296 +53305.66343439091 +71214.98045233265 +36142.740612590685 +39022.46276925411 +94182.73730831873 +23356.240633419715 +26513.747242596 +10380.876535776071 +3619.493975554593 +17915.240410574712 +15322.521967053413 +10559.592789114453 +56374.14541910123 +44914.28924566414 +11091.084685988724 +41519.408024978824 +96711.67432415951 +27820.294323659502 +20048.625611192547 +57259.7444637334 +77378.71557512973 +65732.53521061037 +20836.431352587417 +8726.210519067012 +36997.432210980915 +18301.06273936946 +25917.409577331506 +-16995.77522423677 +23288.03873969335 +42642.7055404 +33126.588934783824 +1395.975817183964 +56347.10512793157 +27731.50778046716 +38597.910485700704 +13843.210668430664 +26416.508367025293 +14305.433453191072 +70816.7698720498 +7949.981380333193 +-7943.323970223777 +5483.423656029627 +-14002.406936861575 +57488.64726098254 +15254.928477893583 +50445.01059821248 +-32000.677014362067 +1177.864973817952 +53417.39651053585 +61847.27666688152 +43556.84885221068 +6060.489304588176 +46346.92601524852 +23690.859238633886 +59563.596884317696 +52549.125029121526 +-25492.47380317934 +-914.218799892813 +62854.708486464806 +-10929.591945056804 +20720.26422487758 +29263.93241021596 +51646.98596114665 +120427.8172689518 +44864.07657007035 +38779.09062450938 +20120.708834649064 +41133.27905174345 +70188.22526849993 +57531.61038784776 +59964.71349504776 +72672.48116197903 +19059.47573953867 +38221.252721930854 +78191.02990334854 +90085.81572451815 +27264.66870930884 +85935.1031149067 +69852.6672315821 +1633.369623992592 +57164.388948885724 +30900.06731465552 +28266.474965459667 +44424.66819069348 +11221.771683620289 +66536.27769794408 +26911.817873976193 +8214.039895057678 +39049.317280985415 +71087.34741318598 +-1252.4033422358334 +5378.104785870761 +14293.67228068877 +20038.18088154681 +81443.99118602369 +47532.70210070349 +43352.31207640376 +17807.013221842237 +54166.83663443662 +45615.63786683604 +34033.19619457796 +39302.25674914569 +58381.42501126882 +78191.02990334854 +2555.1506309388205 +42995.12655823864 +35034.6492654793 +40053.43076728657 +35177.40862504486 +23758.286716436967 +47450.089403609745 +12738.267696142197 +48487.329542427324 +46381.05878505483 +26801.92410625238 +44427.03732175473 +87240.56617662031 +34137.652663181536 +111578.39571884926 +71477.43589203991 +94455.27352113277 +59843.634144631214 +40783.8115555197 +4103.446346625686 +81519.11231572926 +28908.053739362396 +36455.0655659046 +-6220.584355498664 +56932.87944872305 +51615.83925828058 +13444.312960235402 +64058.59166960046 +24162.663043438457 +-11697.790102139115 +37899.81739046797 +44622.136930371635 +72249.19526531734 +41108.344962105155 +91774.74825922772 +19084.689850160852 +16666.47086876165 +89543.89073315449 +32757.68046800047 +22099.25684050098 +50238.79012988135 +11581.773489948362 +-38074.38472687453 +4114.885502807796 +53505.02702066954 +69604.33776358329 +58043.04339986015 +34863.726032767445 +26448.488804266788 +-8552.559320623055 +71093.23495666496 +64004.186795167625 +59263.94166964386 +45548.70870115422 +39558.65115526039 +123451.71171025932 +78189.71521792933 +11801.292836200446 +12682.18836606294 +23770.09517415054 +89602.90550084319 +39837.80611795746 +62201.37443221826 +57185.890409315936 +78503.09734106995 +4026.510971060954 +41396.96699905582 +26295.120136209764 +43834.964082942344 +12380.366874738596 +37636.895003718324 +49057.96039954852 +62440.582579537295 +9836.505169785582 +13521.461218087003 +27138.884279306978 +-7103.049414265901 +38646.207930603065 +65223.038044654764 +36439.05581400264 +33021.60256223101 +56997.786767212674 +56682.150818231516 +130045.1653662175 +27348.699748959392 +23465.410070815124 +24732.05863983929 +44328.471043527126 +56810.870626019314 +61066.66753115971 +-1443.3400647342205 +15037.54010493774 +81615.23042746074 +21559.192182878964 +43141.202715884894 +39319.51306364965 +25381.860208519734 +25186.956843351945 +28759.5126572242 +7047.966533456929 +679.332217041403 +557.5915835341439 +1291.7616545092314 +33115.21838885825 +49960.87182697561 +19093.253852745518 +32671.43690954987 +42889.55467490386 +37265.07232579682 +57953.03189274203 +59560.004174564034 +33177.08290087618 +77337.14254723024 +-6279.078413059935 +46874.17084673699 +50234.627243762836 +20865.614376455545 +-5045.868152235635 +30952.280631569214 +7319.534079135396 +19817.84962174762 +42602.885165415704 +52465.388878433965 +53270.82764242496 +63319.88510913029 +68019.98860402126 +59456.56009595841 +48347.7522493368 +1434.8925779471174 +69964.49554094113 +80157.65146483202 +23539.995579376817 +53710.368200965226 +29661.850936360657 +67916.09111248795 +7625.899043023586 +56401.85738460906 +30379.485114202835 +35688.50238774903 +61206.61700835265 +95022.94780792855 +41640.40919950884 +34892.467804756016 +14653.424165513366 +61066.52145500202 +-5382.881032381207 +7971.293233586475 +31488.476205921732 +31443.929635692388 +91657.94287129026 +61096.1026487397 +25709.981433473527 +95314.36974243354 +71861.84320102818 +23992.698997761123 +-11226.279740935192 +20645.988101619296 +58357.26059152279 +18266.397068378516 +30781.43674656283 +46017.91801105533 +41359.438011176884 +-26502.387177063152 +22964.94532935694 +-31675.15859730728 +26270.194307782687 +13847.7731952779 +66370.90402940102 +-10329.297754343599 +25177.73002228141 +99505.5990318032 +26066.2751602754 +20614.7223729752 +3288.5304166590795 +23466.317465612665 +15988.125554288737 +34790.60600642022 +4671.065326512791 +40289.831601756625 +53221.39373207092 +-18605.83068331424 +-35559.39716539066 +46108.588385832496 +10568.270964044146 +76580.7959511634 +35783.485658669844 +56951.58239653893 +-5383.233435072936 +51368.51819511969 +42873.27501098625 +15440.623905512504 +51349.697765154764 +205.54194606747478 +75558.26284763776 +125863.80975762848 +81546.92530421726 +8738.183200780302 +93697.38851790596 +38411.53715851717 +52300.733279675245 +46482.128301692195 +44112.62208634801 +-18178.565704693086 +29641.416852410883 +25451.056297510862 +20370.410283685662 +57087.32652554102 +35440.59004541952 +29735.562314162962 +65332.93181237858 +75730.0211273795 +50526.779559056275 +30766.15300072916 +75194.43878984079 +8169.561533057131 +58053.19126499444 +4318.663286353461 +19059.51414760761 +57302.63783874083 +37749.5783467032 +-51507.21645223163 +51651.93581791129 +68849.30533577688 +-13340.284516875632 +83837.74018501397 +58070.698202545755 +44021.20468841586 +131163.0751596801 +26281.926672468893 +94701.38593358826 +17798.0150658777 +53878.47360188514 +67497.35636849329 +40325.41044455953 +40257.097812453285 +23580.19105498679 +105587.70169555862 +-13684.534091402777 +7325.744682868943 +-13404.496831089258 +-5195.583004930988 +35906.943325240165 +17558.054892409593 +48236.77732306998 +-32845.466859128326 +51111.08418964222 +34132.14577892516 +28165.985378733836 +12439.136206568219 +95160.57110760454 +79773.5200161254 +59645.319804357365 +54649.19966615923 +43377.99921425432 +24880.443759477697 +78191.02990334854 +52040.00146654155 +3497.9407765287906 +32556.595880367793 +31614.379725547507 +118301.32453178708 +56876.02457777504 +40983.42645294778 +61646.19207924884 +39895.86014654953 +95141.51975058205 +34547.71133619174 +75685.12262473721 +50715.27642785944 +40439.46709840186 +66487.8919861326 +24362.763985044323 +-21612.663274243474 +29137.608596157283 +-19144.23726206366 +12243.84086332377 +91201.85512244236 +71416.35541737918 +68838.75959589612 +13875.610365398228 +49983.49350348953 +74078.55326803308 +83498.07659221347 +52782.46419106331 +7703.823423245922 +47307.85078006424 +90688.39211303648 +25104.953230990097 +93122.77920730878 +58461.71982666664 +-3788.403121985495 +85531.78684364446 +11729.644877627492 +6339.393969265744 +48620.28480614256 +38978.70552193653 +-8148.571443974972 +104065.31813955866 +26480.92097800877 +29515.774778714404 +91701.71203631628 +-8524.208111367188 +124339.54002698231 +4644.687626784667 +80122.19665070064 +52072.020970345475 +173947.75320159644 +-14134.877619321458 +-2644.2370189065114 +22160.84527392406 +31609.389279777184 +49600.06981512811 +29106.39711872395 +10785.728601425886 +513.1382839027792 +317.63141006603837 +40199.50692493282 +11711.57170649711 +31201.56518550776 +33574.966097774915 +58613.42856063694 +5795.4225988341495 +59834.22996363416 +51585.49137952458 +54315.043765379116 +91050.66629927792 +-3596.845196282491 +57071.0462841494 +8859.597045248374 +11979.036094958894 +-10134.46633492224 +20718.917626921088 +59419.06185752433 +29537.02582549583 +24023.952637644485 +94577.43508628011 +10491.425818206742 +42477.25726666208 +16881.212843957357 +-24941.34459431283 +37137.14890923537 +75419.9943986088 +35956.7498640893 +-9270.875136136077 +64236.687331051566 +32807.05632166378 +57611.06809513178 +52176.110758028924 +55610.31872858014 +33194.55187072512 +54365.70182317402 +33780.834163414314 +89099.56504626852 +30752.33693971671 +60564.61075186636 +41084.166888782755 +33266.078024511226 +112175.30586949736 +24217.00116352737 +25401.680443848483 +23956.848219900392 +-15263.435407302342 +112893.88308366667 +6015.6543533895165 +63975.03829679638 +64960.50239769276 +50504.379329390824 +104751.63028548378 +-14958.414338861592 +81614.93827514537 +84794.10224752966 +8517.342870225199 +83834.07018030249 +897.7731545334682 +56353.14281403832 +12390.813148013316 +-67291.00126221217 +2531.466315239668 +16864.81739129685 +40691.27413765434 +144447.39167282172 +40525.02534198761 +-3869.201308022253 +62373.12257787865 +-12219.877818014473 +-9878.49640955124 +38969.998034287244 +39104.609041562304 +77336.85039491486 +73150.34346499201 +54255.211166183464 +30978.36520851031 +30880.830246460624 +17632.492276279256 +79891.82391954679 +19055.724864866585 +-10312.445720374584 +43813.19373226259 +1631.9048174386844 +82299.63490695786 +37403.887291627936 +4826.807791051455 +14027.378019724041 +23524.329092151485 +5337.759509829804 +24947.06861563027 +34347.46570846997 +-15733.763184573501 +1977.5958725130185 +10024.718199065886 +1715.118123948574 +77497.59817308374 +49516.361510508694 +4927.035251882859 +81615.66865593381 +4567.258411899209 +-34245.005716148764 +44114.531014329754 +63362.36444572639 +76294.15311994497 +68223.12345749792 +53233.507093457505 +3458.010608223267 +32336.082338850014 +23859.55501632206 +89510.62335388642 +33060.43426672183 +26912.494004045613 +54190.79855519906 +74766.09899844695 +1469.5049132676795 +11639.20692665223 +27126.716517237015 +81269.95751608629 +90481.40751292929 +15578.59911141824 +95313.6393616451 +-1410.5945548620075 +71159.96836633887 +91294.32133023255 +65060.95213510562 +1028.8923553861678 +33347.1209792858 +97726.030023369 +28169.422258784063 +70042.93516663834 +69698.5861979844 +5978.419168358669 +36109.37451082934 +53918.818877926096 +39210.69232586026 +36849.24758073408 +38472.00696607493 +63791.55948435888 +31729.514788150787 +78190.44559871778 +37862.28840258811 +29998.863816505298 +17602.915457260795 +7337.239145960659 +52139.14974017255 +14434.100553888828 +29705.976638801396 +35996.66445494443 +-1650.0123210558668 +36152.21446003392 +9037.960895895027 +75066.18392342702 +64390.38284326531 +57376.58063104097 +27265.50299526658 +85009.2448682459 +9984.69233952649 +55248.89345675986 +70433.65660771728 +75343.74264431745 +-39110.751235519536 +40858.251770479605 +95797.17100262828 +-555.8381990706548 +48385.67236869689 +57068.80774123594 +123708.81423126627 +41219.63032986503 +4630.720050471835 +1880.5815739063546 +67916.09111248795 +23401.827204340138 +14414.653921936639 +84348.51442852616 +28732.581256769598 +22013.430407719687 +-1439.4453678112477 +64354.63868181687 +57003.87943117134 +121692.1922475975 +47743.274980729446 +14283.509107431397 +35830.25439866539 +44480.94048011489 +50372.6458183676 +64254.31991309859 +-13481.816398214549 +20432.000526135787 +43559.25855080411 +51501.098264453 +20817.58512074966 +25945.22778694704 +8494.40665113274 +107342.98909309786 +18104.086850980297 +63157.79919958208 +-3715.7935734027997 +76886.87715233397 +23123.543131550774 +30271.56949984748 +57322.81047676131 +3508.317952107638 +45528.110526200384 +-14220.083460214548 +43068.837936040014 +71413.12200354785 +25166.856151077896 +109760.50688608084 +34535.90287847817 +42980.83219288662 +28614.44144504983 +3077.068653448485 +82097.59345918335 +26040.84921148792 +34896.63069087453 +46813.5926311994 +2004.9187333947048 +2598.494904467836 +60398.36195619963 +3479.727866375819 +19227.516130799428 +116044.66572543047 +43510.8963829251 +36795.620740279555 +7078.532732956111 +10024.718199065886 +35612.49828859884 +-32965.45430511236 +45883.949749954045 +68866.26381088886 +12493.415799395181 +67916.38326480333 +41588.780071596615 +47555.4685410168 +10194.455102088861 +16170.621357615106 +21568.904312454164 +22483.946573658846 +63316.09582638927 +27544.4199494645 +-952.9194499701262 +22382.11038897652 +33931.425609871745 +24679.260876773857 +28955.537483070977 +44437.78810070921 +19128.710236598738 +47261.532540895976 +38391.36452049669 +96997.28114817757 +19031.657529923134 +35629.6288340576 +95314.36974243354 +-24376.6304179281 +30145.665980221704 +58471.13625482377 +75146.07782811392 +80916.20436222106 +19165.6186325904 +20407.213265495375 +14021.69260341674 +22502.85556163173 +21824.240792374127 +-15673.245270512067 +22565.421731652692 +36381.3541881023 +64066.159373267554 +30684.384039886296 +66064.66054988 +33613.80236088019 +22382.730980864726 +60349.76429009717 +3069.3634730996564 +5812.170372691937 +32773.69021990243 +16142.153880795464 +-4649.861119764857 +82570.20083884336 +10272.035563159734 +40738.79525020998 +6542.551160924137 +-20058.346288071014 +-15040.537780843675 +23524.242616611533 +-9202.604675018229 +27419.594838598743 +94117.22737916 +42565.101103269495 +27442.583764781244 +4355.895978470333 +67916.09111248795 +5386.056954731233 +67824.28407541197 +13269.65417883452 +30564.34240702819 +29549.14088047482 +19948.459751843475 +27304.45977599453 +61133.32275622059 +91533.46642580163 +21733.20185536146 +70311.74164152145 +98145.71777132899 +21721.27809242718 +76235.10489608813 +34571.77801264264 +1557.193702235818 +-2278.373325811699 +87474.12935962714 +53534.588441425934 +39148.12017736677 +26992.134822682478 +31276.746253514662 +-21152.7270104168 +11914.002892087214 +12624.211042298935 +27776.054350695573 +8182.754996798001 +-31691.894355278462 +37212.9357221527 +28997.95819422789 +77269.3132907264 +10490.770303499885 +31905.91144895181 +74416.2531133825 +37558.641624204814 +25803.352923489176 +56089.11530562583 +-24364.371540699154 +4307.575412829407 +12791.758402390406 +64762.54665160179 +32973.30511732958 +7422.444986853749 +40755.68674863875 +-4393.281827394851 +67916.6754171187 +-23483.751708701253 +36283.82632446755 +44236.23323976807 +-5894.094877053052 +68952.56550733838 +56243.92234529182 +-63.62144304346293 +45750.40091550257 +28248.829627535306 +3669.9918502103537 +28636.501544672996 +67186.44070504326 +78670.42951456271 +-5626.278085898608 +58029.12393005099 +7462.731663051061 +-13764.037352049723 +37140.58578928467 +26895.863660254516 +15112.721403516829 +5410.2809577398 +61066.52145500202 +36564.79998875316 +13118.675676091574 +67670.1503347233 +114735.06747342087 +81587.73058718722 +46838.0274722781 +37891.45321016107 +43357.996265275404 +31632.10486399941 +124958.2073622942 +16897.94860192854 +12041.766822936945 +42452.24561245367 +52092.19360836595 +-37660.844180767424 +43048.665298019536 +36750.37081884779 +-13866.252104762942 +53593.6528635649 +9431.328803983517 +979.0842985035852 +26374.464090335183 +4939.620969549753 +15509.551805308089 +81031.65617766231 +83501.9133819053 +23987.47477687616 +12717.016649359837 +68064.24424888007 +66655.67481423914 +30443.767355347984 +150111.36523079593 +2683.9689345564693 +72207.87422412168 +58585.333199077286 +47060.5710455114 +87273.66156634595 \ No newline at end of file