/*
Copyright (c) 2008 Lars-Dominik Braun

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/

/* encryption key for xmlrpc */

#ifndef _CRYPT_H
#define _CRYPT_H

const unsigned int out_key_n = 16;

static const unsigned long out_key_p [16 + 2] = {
1655854977,
919004318,
2043595880,
23762164,
-1305147675,
-215967440,
835493487, /* ! */
261889135, /* ! */
987405585,
-122581809,
8882411,
875817828, /* ! */
466417059,
-544099275,
-1525766406,
-1945723444,
536361814,
-1487225158};

static const unsigned long out_key_s [4][256] = {{
-513813079,
-765782257,
183159219,
-1365669178,
1047088991,
222171688,
-2090853737,
-765179426,
997050138,
-2057228390,
-1628206499,
-1408898308, /* ! */
-588637121,
1846207300,
2065654413,
-412282565, /* ! */
-1421690766,
1839083055,
1892832522,
-1919151611,
-1767698857,
1341672799,
-255927541,
726598137,
1990634699,
464663677,
-904351607, /* ! */
1970163162,
-792713214,
-475806450, /* 47 */
1950400144,
-262078895,
-761022537,
-667642993,
312735385,
-34426203,
1832569587,
-1684213010, /* ! */
634837297,
-1948396026,
-604405134,
-691056861,
988289742,
-1839385794,
2062571691,
297518815,
-888607360,
-511051809,
701070684,
-1998977035, /* ! */
1553720912,
-1604313120,
-1754421883,
1603596992, /* ! */
1928276512,
-943968281,
1944528438,
589172448,
1447396119,
694763397, /* ! */
2082830654, /* ! */
553534140,
1553843344, /* ! */
-1667538856,
-2018018024,
1501396120,
1234751004,
1067889147,
-1123200064, /* ! */
-2044106955,
2086877862,
1976886420,
38662426,
-104788291,
-2117573866,
663013564,
-996232851, /* ! */
1102290631, /* 95 */
-740244768,
-1151084003, /* ! */
1942342365,
-21446148,
593950808, /* ! */
-704678316,
882519192,
-1705861753,
1535663280,
-955682427,
490241188,
-2045390075,
-1740044623, /* ! */
-560660930, /* ! */
-397891080,
-646170301, /* ! */
486316357,
1043377519,
-1352836022, /* ! */
963270259,
1208484782,
-1946438033,
-1672860695,
-2047609127,
-2066653853,
882790375,
-1651671083,
-1390467297,
947685781,
943582655, /* ! */
993804347,
-669445900, /* ! */
1033242534,
1947027902,
2123227639,
-1374249331, /* ! */
559160429,
802992266,
-443557517,
-1689158322,
1902902596,
1955321636,
75631,
-1420670840,
-2016287362,
-1445425632,
-420570310, /* ! */
-354654912, /* 143 */
-1972668301,
653997721, /* ! */
452795541,
-66510820,
-1862128475,
-1327921414,
1708518909,
15711562, /* ! */
1721321276,
-1394169533,
373602900,
2099511181, /* ! */
2078960031, /* ! */
-1504406862,
-1849228115, /* ! */
-1767469541,
-1599186379,
772444871,
918597368, /* ! */
-937045004,
-712386722,
-904126536,
-1318252653,
-450264842, /* ! */
1826831532, /* ! */
-958506776,
2050742404,
2050686251,
-154637178,
481081149,
1114171521,
-1904274054,
1419437721,
693681474,
1890059780,
-1575700716,
-656873177,
490233525,
-526894138,
1682076343,
-781336395,
816523260,
2048253734,
1527924261,
-1254019825,
-1450610880,
1819678767,
1741799953, /* 191 */
812933538, /* ! */
250020223,
-588621470,
-586042668, /* ! */
303595274,
-736731322,
-1042514938,
2056265092,
590811071,
-2076239761,
1536040004,
526821270,
-809199490,
826044521,
-639982281,
575323029,
-370506263, /* ! */
-749572018,
2087094581,
587374721,
552065397, /* ! */
149358673,
786310855,
-167069507,
-1875132152,
1022462681,
129236467,
-1087026086,
1856839244, /* ! */
1328124015,
1731045631, /* ! */
-1648761702,
-2049695288,
-701165592,
-329506427, /* ! */
-925003291,
-721052514,
1651606994, /* ! */
-1211116030,
1210824470, /* ! */
1625998108, /* ! */
173453468,
-558787357, /* ! */
-1398935598,
1207642912,
-1044964430,
1054695311,
-532066592, /* 239 */
-261141564,
-1493815133, /* ! */
-161866707,
-1721246338,
-477625609,
133205312,
1987497710,
-1339095630,
1043463425,
-1843491306, /* ! */
543431533,
-257519406, /* ! */
1302076883,
127797200,
-1975436180,
1034932095, /* ! */
-1868206592, /* ! */
-1696244482,
1998241908,
1099342102,
900741619, /* ! */
1370202513, /* ! */
-627586602,
1075779902,
-800694166,
2047880971, /* ! */
757977382,
-737442507,
763877853,
837154760, /* ! */
-1361839879,
1697214753,
-1169239768,
-2088855814},
{1629020117,
922095353,
504197536, /* ! */
954775243,
120145635, /* ! */
-579060756,
-519454323,
73872886,
-557968095,
410158880,
-67682390, /* ! */
2136179483,
113474032,
936282950, /* 287 */
1835643417, /* ! */
-425487382,
2010519404,
-837248632,
-1592374918,
-1308567382,
-768768095,
-935042502,
-1467653241,
101884394,
1185880783,
-2128586097,
2058885475,
-296250734,
2137323390,
1125638684,
1529361514,
-1107789882,
-782194686,
1311102644,
-19347165, /* ! */
1295250024,
627682341,
1409475839,
1718747575,
1534390947,
1253718782, /* ! */
1169937313,
1521291895,
1265721067,
563973947,
-1270523181,
1493641800,
422652537,
153943244,
491686725,
53879678, /* ! */
-403818722,
-501153969,
411423572,
964839170,
-798731292,
191704494, /* ! */
-1942882791, /* ! */
247351225,
-1147871801,
991063408,
2078916385, /* 335 */
-409571302, /* ! */
-1940714758,
-1635967463,
380126381,
-1480405811,
-111862091,
798808002,
1846690607,
1161223894,
-840749709,
1757844636,
1919227953,
1396721207,
-841099775, /* ! */
1457173961,
269317440, /* ! */
2076729104,
1669595361,
-406583178,
1213054918,
2137223591,
-408202097,
-1602785642,
-1642508502,
2059883563,
963377666,
-1730998307,
990959345, /* ! */
-1662041039,
1184415790,
-1800589468, /* ! */
1191574841,
2066827079,
1565744467, /* ! */
-1982705060,
1003114192,
431969651,
2118380916,
1762711765, /* ! */
-1288938317,
-1853007890, /* ! */
1365304189,
-1249405781,
-843409397,
-2121756142, /* ! */
1763447208,
1707589958,
2025386815, /* 383 */
1264619878,
1975513356,
-506432955,
-339393069,
-715206660,
-1014927581,
-2017612850,
1645137307,
1335624819, /* ! */
-1383696066,
-216010255,
-937606920,
1953828927, /* ! */
1100215538,
-1844619416,
975828407,
1987251605,
1299855611,
755596177, /* ! */
-926025603, /* ! */
307698060,
-819390822,
138444246, /* ! */
-1330460178, /* ! */
-295935330,
-668410217,
216808357,
-192442834, /* ! */
1944707886,
683076481,
-1879751421,
1560771135,
886165615,
-971369067,
-179874281,
-1780972412, /* ! */
1551477128,
124161839,
638318309,
-793030002,
-303257131, /* ! */
913110130,
-1563131354,
-1152927828,
58544864,
-666588206, /* ! */
-2025777247,
1410656413, /* 431 */
1133449775,
1776814160,
-1202000308,
-1587468692,
764233611,
-404082071,
1418515926,
-250996474,
1606154972,
-1042368908,
-960300962,
163193207,
2109826396,
310314579, /* ! */
-656998654,
-2120731499,
398720860,
1102716052,
-1232677915,
513056809, /* ! */
-1517523318,
-1907107147,
5008204,
-388009951, /* ! */
145362986,
2001293342,
-313996635,
1696291650,
-468561025,
-620682907,
-487614562,
185707581,
542653640,
1843380185,
1071686700,
-278346004,
-1874035140,
1769296035, /* ! */
823654751,
-1141322049,
770471852,
-1174632118,
-1380529665,
-356118263,
369984285,
-993721262,
2078447917,
-1905514517, /* 479 */
438882915,
-1866080467,
-1965418802,
785895483,
856543611,
2115038375,
1562771728,
158744776,
740212411, /* ! */
-1753064584,
-347114853,
-679343665,
-1677363466,
-776711069,
146507865,
1433561752,
1484718853, /* ! */
2068007340,
1673669650,
2034888177,
-1427667267,
1725314550,
-745227351,
-510153416,
1812096408,
-769448952,
724796919,
-1641705060, /* ! */
-187715871,
-1993150269,
-1951578846,
-1566737172, /* ! */
-695189052,
-1557626854,
278291124,
-207619058,
892260834,
-217735893,
1437921610, /* ! */
-1331483695,
1629715297,
1609637755,
-1299672728, /* ! */
2024824922,
1141063060, /* ! */
-1593362831,
-406554816,
-2065662630, /* 527 */
-224474689,
1957733334},
{530839846,
-1871368488,
722209002, /* ! */
-1494427347,
283456798,
-1991074430,
-1437368661, /* ! */
1393643393,
1884233053, /* ! */
316592593, /* ! */
-1633634175,
67711552,
-1532028936, /* ! */
-28150029,
204892734,
-626897753,
-1702641288,
1473684453, /* ! */
847362557,
-1079059160,
-19386413,
-1492891500,
-1231328909,
-1172519719,
733310353,
1030660013,
562154443,
1484588979,
413427779,
-1254045512,
1581815858,
1647037953, /* ! */
-1864688004, /* ! */
-594840704,
1714355138,
1910977695, /* ! */
-869823320,
-1594092636,
-949905272,
1872451812,
1724295091,
1473849446,
-467809334,
-872003011,
957920643,
-1658925668, /* ! */ /* 575 */
-1014830365,
2041534498,
-1289170570,
-314708652,
-14928717, /* ! */
594597886,
606588791,
-294691293,
-1652089121, /* ! */
1353100923,
-376999554, /* ! */
-1606083711,
1964831987, /* ! */
1284324098,
946571071,
-236835181, /* ! */
1826868670, /* ! */
-628576385,
353949044,
-1383415207,
-442241461,
1210088326,
-1861213995,
2026802836,
-775203988,
213100962,
1303937343,
1886697286,
-853503936,
22916867,
347578369,
458151896, /* ! */
893076939,
752142338,
-51154144,
698477494,
2085285200,
-1415936037,
-1477954736,
238866470, /* ! */
364867055, /* ! */
1969690005,
1464856701,
-221777765, /* ! */
1766279956,
926079829,
-2128722228,
1464323667, /* 623 */
-468389908,
-1102371895,
-626360488,
1493866378,
1382411426,
1373259629, /* ! */
-1516263679,
-2036634017, /* ! */
-454735742,
-461817920,
1678767014,
682280596,
-1933839848,
1867889900, /* ! */
1536263691,
1512429242,
1233608153,
1055317390,
1481821303,
-1545547500,
-474961387,
-1325240485,
727223122, /* ! */
666049219,
1466147771,
-978190400,
-984951028,
137279631,
828970652,
1470706108,
1240031461,
339800793, /* ! */
-1772684179,
1005013651, /* ! */
-893710369,
2713655,
-831673471, /* ! */
560401867,
1193286576,
2012625949,
-1385481301,
690693520,
450434938, /* ! */
6859662,
-1695312035,
-470768530,
-1735583840,
1551947458, /* 671 */
-23903826, /* ! */
-272927289,
1457836440,
-549340909,
340129861,
1448426993, /* ! */
1720095155, /* ! */
289970191,
609452121,
-1134964683, /* ! */
2130731381,
661512363,
1034545082,
1645695279, /* ! */
-592416413,
1464654292,
314520845,
-1293877797,
-943133768,
2135092525,
-339166461,
-1468607841,
2119446364,
-1873255440,
-372270913,
287916301,
-55366124,
-1194267973,
1116182918,
1905595606, /* ! */
-1948425343,
-1664638428,
-818329511,
469058705,
-2055526656, /* ! */
-251951159,
463740098,
-1736727888, /* ! */
893359773, /* ! */
-932042121,
342343504,
-29499057,
1590216069,
1274735907,
-1960711099,
-1127741069,
122033645,
2128542502, /* 719 */
-81160273,
519927763, /* ! */
-1307524253,
-482965142,
-1875812682,
-288813376,
1790354532,
-1951270944,
-524755692, /* ! */
1014821076,
-786978547,
-1503715841,
-2119099811,
-178066143,
-328007828,
-1411219934,
1027907211,
1561637548,
-1472328906,
110611707,
1896384984,
-1646981054, /* ! */
-1588084855,
-2134248380,
-905796293,
-56029556,
-2117775674,
-1582683057,
615719466,
384957578,
1188945602,
-1184220203,
-6033762,
2003966672,
1510414055, /* ! */
-2049998746,
386408271,
1961250254,
1424350579,
-858634167,
213880883,
-1007779050,
2026561215,
259490021,
-797084108,
1460692963,
1525331451,
1370262182, /* ! */ /* 767 */
293318673,
544808302,
920263177,
103655446, /* ! */
-1431460277,
-1803600980, /* ! */
-1505376616,
257291575,
1208290601,
1859852686,
69613997,
-1234549782,
-1423238393, /* ! */
711158442,
218702758,
48671031,
1561531785,
549682762},
{1722841024, /* ! */
1678073353,
-614334879,
-1261051299,
778307565,
1683919416,
-606372214,
890910445,
-1519602957,
422817018,
-985731497,
-399348512, /* ! */
-1730647324,
-1099955160,
-1930459907,
-2018277684,
-1196489861,
1513840148,
1886456409,
838084158,
1913826009,
-142146436, /* ! */
-413218814,
565709772,
204821326,
-1548350062,
1881270649,
-1176661609,
655405327,
1449467372, /* ! */ /* 815 */
1721788626,
-854013850,
-899192508,
-360793273,
867045638,
-1591438706,
-1195082927,
2094926826,
1928537063, /* ! */
792539387, /* ! */
1767255387,
1983283598,
-358435631,
-779393177,
-1086267881,
-1549436626,
-1582534409,
1051799914,
-245143042,
-1918223607,
-11193281,
1001934263, /* ! */
-73506240, /* ! */
1279486962,
-937898593,
265050536,
-2052831146,
-2116298214,
676055329,
1320971350,
60112790, /* ! */
-1111508310, /* ! */
691496339,
-1289734630,
1672957635,
1828477688,
2055454618,
-497831808,
-1032041626,
1974291279,
146836556,
-367217667,
-719016930,
-894795368,
400656073,
-551206802,
71329459, /* ! */
955057240, /* ! */ /* 863 */
-842425766,
-938155869,
-461082201,
-89628848,
-719614551, /* ! */
851389605,
1710650519,
1929871027,
2138521733,
1395635780,
1378055652, /* ! */
234386875,
230019956,
-2105283931,
-418953863,
556294611,
1790257504,
-11582813,
-795597470,
907791823, /* ! */
-36926894,
-1078349178,
1632571284,
1085203308, /* ! */
-2102060924,
-353799919, /* ! */
-511810872,
1217595593,
315762222,
664567993,
-620935514,
1760697749,
-150531764,
-906315733, /* ! */
966756585,
2143511316,
829751318,
-645111024,
-750227043,
914171901, /* ! */
-326094853,
-4718658,
176409364, /* ! */
-453628962,
1015428453,
-950961455, /* ! */
-1929004703,
-1979218629, /* 911 */
-386687514,
-809528953,
-1315642451,
519041810,
1296778479,
-1396513598,
338706908,
1972031445,
-479710299, /* ! */
-514326614,
-95378821,
1012441438,
-1770114023,
1966997515,
-431195712,
-195630652,
-1805137610,
-878196189,
1305117064,
-201378838,
45814250,
1582855393, /* ! */
1051694644,
-118080464,
842639867, /* ! */
964643756, /* ! */
-810650327,
2103445589,
-1435798060,
1611948935,
-2013661703,
1773966623,
1264748971,
-53913554,
-1910238305,
59625376, /* ! */
129956518,
1806897494,
1746354391,
765642861,
945168608,
-1084123694,
470467004,
-285404973,
-273067374,
-379320221,
469476951,
891590085, /* 959 */
484100235,
-1507959076, /* ! */
1604199464,
423268838,
488586602,
930867807,
-242676590, /* ! */
-54340460,
1075848084,
-1939665362,
589512753,
205813722,
-46146582, /* ! */
-797260050, /* ! */
224571541,
-1212320744,
1738238306,
-444589,
2005858805,
2003218491,
638371325,
256246972,
1793131025, /* ! */
-707291882,
-1151592902,
363764911, /* ! */
1777326955,
-757008613,
-2006058918, /* ! */
-946044045,
-1781443141,
-1007568595,
-661476356,
203874992,
663304469,
-563792643,
1058896789,
-1700207594,
-1838678505,
816281610,
783051130,
244431728,
26999557,
-400433464,
2036402176, /* ! */
1461934271,
1431750752, /* ! */
557152328, /* 1007 */
336682025,
-188192101, /* ! */
-1029579530,
1537018210, /* ! */
355741330,
-913772271,
-573111973,
1332856894, /* ! */
-463998480,
1095506380,
-1372153732,
-1070918314,
1176314092,
-1513258489,
2134865852,
-1080957377,
-1538012438,
-238348645,
730779314,
1576034869,
638655973,
-1293620774,
-1041456218,
-1532623621,
-360700565,
2018940370,
-706509096,
-1761858993, /* ! */
566171489, /* ! */
-2101362137,
548160877,
1587887228, /* ! */
1708148227,
-928571626}};

#endif /* _CRYPT_H */