pragma solidity ^0.4.24;

contract ERC20Interface {
  function transferFrom(address _from, address _to, uint _value) public returns (bool){}
}
contract Ownable {
  address public owner;

  function Ownable() public {
    owner = msg.sender;
  }

  modifier onlyOwner()  {
    require(msg.sender == owner);
    _;
  }

  function transferOwnership(address newOwner) public onlyOwner {

    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }
}


contract TokenAirDrop2 is Ownable {
    
    struct Target
    {
        address targetAddress;   // short name (up to 32 bytes)
        uint256 amount; // number of accumulated votes
    }
    
    Target[] public targets;
    
    
  function addValues(address addr, uint256 amount) {
        Target memory someTarget = Target(addr, amount);
        targets.push(someTarget);
  }
  
  constructor()
  {
    addValues(0x1d857f055466ff31b65762c1af5dfcdb6bbbd1e7,3600000000000000000000000);
    addValues(0x801d8b5374a48648acc88885a9159c400d7d5fea,3578294000000000000000000);
    addValues(0xc77b5a61f8a7b7d6c6b1f125a51d00cce25d564c,3535970000000000000000000);
    addValues(0x92b4a5e5f7046c84f2be8f4ec938bbdc2aa2ac27,3524717493417460000000000);
    addValues(0x63e9fb52f519eb2bd44c26e7c4465f1204fde62c,3518504000000000000000000);
    addValues(0x16f169abcdfb6be76224f435d64a1fb57b29a2e0,3477372167589740000000000);
    addValues(0x2063bcb5a67915f8fd289b1afb31c33cc983fa90,3462650943365950000000000);
    addValues(0xc1d3a089e79e1790828cdb8d38c825de6e0ec3d2,3408999990000000000000000);
    addValues(0xcfca26696cd12d7591f0b6ccca83fe0c87b30584,3380366832125950000000000);
    addValues(0xf248f47ea2cd90872e02ab842a9d8b0513974914,3362000000000000000000000);
    addValues(0x116efc64af5e0fcb2d80a85d76bfbca2af42a83d,3335911500877890000000000);
    addValues(0x0b668c31662451d652236f692968fce0111bd078,3304830000000000000000000);
    addValues(0x154893e7c9b0b0ae4c061800b69867d963ab145e,3246538582422000000000000);
    addValues(0x7c4a8b4d11bbf0e675b628036039f513c37afcf3,3239999638986900000000000);
    addValues(0x3c6ecd4689715f6c4113b361fe03ffa9c993e4ab,3153489000000000000000000);
    addValues(0x44eafe5829c8533a2b426b6979ce26e800c61256,3132130000000000000000000);
    addValues(0x8d5f6a51abe4039411d0a985939b6da4d1d63df9,3073670000000000000000000);
    addValues(0x098313f3b59c1ecdae040f3cc8004fdd8bd7826c,3051035906337410000000000);
    addValues(0x6885f7fdd97927818970aa167b200179ebf3107a,3011000000000000000000000);
    addValues(0x9fde9e09e808fd51b31ff6709cf37275f6a871d6,2963580000000000000000000);
    addValues(0x415c014c5fa71eddfd1e3cc8aaea5484975e826f,2773565967478830000000000);
    addValues(0xbde4ddf1158c6506a0451771733e0bc5e3858a36,2630686166081480000000000);
    addValues(0xff260f16ddfe2d46ded3382a8d32a95ac5e3e276,2601970000000000000000000);
    addValues(0x296330b6218442c017807f7b085e6343d49166f6,2542000000000000000000000);
    addValues(0x6aad1edf54c7e23e43a7c84ba7983c9344f0aa72,2531690000000000000000000);
    addValues(0x14493e031104502923b1e5a25ebccc0aba5c250b,2500893000000000000000000);
    addValues(0x4e932f40b87989a3fd7184c11cb105ffa8a8290e,2500000000000000000000000);
    addValues(0xab8281869ebeca267f4cb1eb6b95b37512af4599,2477570000000000000000000);
    addValues(0x1955cf1b03dc460ad7172d62bdea9deb80d33e31,2461381641686280000000000);
    addValues(0x12c08a63d7d0865d3e1e4ee3fcf69421c8d26e90,2385000000000000000000000);
    addValues(0x40f7f83220ecf8f69a21d9027f04dc8daf64483d,2374270000000000000000000);
    addValues(0x74b5b8e3fcbef0ee12b53edba75927a7d30fafbc,2356330000000000000000000);
    addValues(0x042c40f53075ac87df3a406d24b50cfd23aa7496,2341341074352040000000000);
    addValues(0x5fb7650b88c355b1acaaf3789799140f61a4c927,2297020000000000000000000);
    addValues(0x47c2b11b9357c5be1f4635b385f602be649bf9de,2286660884044330000000000);
    addValues(0x66ea93308568f391f434efd1215f4a9cd2c16ce6,2200000000000000000000000);
    addValues(0xdf63bcfa72d6b2e51e7bd44380b65a5b530e5bdb,2099999999000000000000000);
    addValues(0xda3d9cc7a383fc780b068ca8393f54358f2d18b7,2096586557777080000000000);
    addValues(0x769cfdf488e06bb11f2991daa37c2fd9d70a899e,2059900000000000000000000);
    addValues(0x782a77bc6ad7229a29e436944422712354a6b857,2024336800000000000000000);
    addValues(0xd70464a147925dde45821d92e07a49082107b862,2000000000000000000000000);
    addValues(0x822a0f34715e02af55db2b2659c29e728825b297,2000000000000000000000000);
    addValues(0x889dbcd2b7a59494c3292af47bf4e874aa064a7b,2000000000000000000000000);
    addValues(0x18e1ee7a6bc6c65fadaef3b22722a89385b93eb6,2000000000000000000000000);
    addValues(0x4b5b9703dc3d6e955193dd74d3b40501ea71bf96,1927837531249700000000000);
    addValues(0xa799c91ae98ed60054c01a8765b2065931c3d03c,1917733553882960000000000);
    addValues(0x2355872c16e338439d4bf1621d20dc0e0aae938d,1895270000000000000000000);
    addValues(0xa92c9f336037747c1597e7cd3f8ee9cac626ada1,1777958000000000000000000);
    addValues(0x1458e9a773e991b03943239a7abcc3a311d1b178,1776417000000000000000000);
    addValues(0x39f4b7ab82e708e1bbe51582bb1a4ea96dbeb76e,1745980000000000000000000);
    addValues(0x6f49d1900673318b45bb330ee832f27ce200f4ca,1663563827696420000000000);
    addValues(0x39baf9f2da402d2a37a534ffa3d3ff617f52a888,1601871000000000000000000);
    addValues(0x8dce522b049d7643d4dd5c034c8a58d12e97180e,1590000000000000000000000);
    addValues(0xbd019bda90d5a7987effe5293fe1a653e73bbbd7,1522840588000000000000000);
    addValues(0xe565651effd620266eaa85d04cf9bf7e20e9d020,1485470000000000000000000);
    addValues(0x603d96b4565fca8623c7344cf6cf653b8f798ffe,1351182990000000000000000);
    addValues(0xc21a75ca9e114d5b91ffd591edb07e940ca8bb7c,1310000000000000000000000);
    addValues(0xb2ec2eef65fc810424223c52609361c42981618c,1310000000000000000000000);
    addValues(0x5eece53c404a7eeb4b63a2ca8859dcd149922b96,1300316843870950000000000);
    addValues(0xf5f1e1636819f18e4a5ede837eaca5be86cf94b9,1267457775475190000000000);
    addValues(0x6a81c45c6b8fdb5e17157d2c384da038a11fcbfc,1257260000000000000000000);
    addValues(0x823b3bdd0ca11b82746a386e3881b9409aee26b7,1240999975853440000000000);
    addValues(0x3c9e480a5700464f2dc45ab8a54e702d730b1a0e,1236294401792640000000000);
    addValues(0xa70ef4915c0f1c81a8bbd98e938735b76d7400a0,1189481084591000000000000);
    addValues(0x41612b96c5ab66a3a3cf53ec451076dc72e99443,1176000000000000000000000);
    addValues(0x447ad2fedb70a63f31c6eaa3007507c873d72e39,1148842378597580000000000);
    addValues(0x24d68d760892b70f9f5e23442090a1f25f43089e,1142799000000000000000000);
    addValues(0x1b52561a6465604447a6299997ceb295ec166379,1140000000000000000000000);
    addValues(0xbaec8523c715c942f94d711ded85a315746719ab,1134634594890530000000000);
    addValues(0x709dae77d6d1482544dd3b67fc606f9008eada7a,1075725670929810000000000);
    addValues(0x29ede95e6934ed6c34df513c113f6784e4390e95,1030000000000000000000000);
    addValues(0xe47358646c2add0403d61faa731bdbe37094ff60,1000000000000000000000000);
    addValues(0xc7fa35a3ef6f79597b46d5767f6fd9427d87aac0,1000000000000000000000000);
    addValues(0xd65c8846aebd75195c19966e277b1fcdcac38162,1000000000000000000000000);
    addValues(0xd560f5f435b5a7ec9aa34a87c2ca8f47ca122950,1000000000000000000000000);
    addValues(0x449f4b934458d198679aa96cc65321feeda7dadb,1000000000000000000000000);
    addValues(0x19867ee3aefcd378729a7c13292a66074f5999ec,1000000000000000000000000);
    addValues(0x1a461acf2e664eae23667fc5c6c0165b1c256bbf,993659000000000000000000);
    addValues(0x71bceeb342acc96ae934f8acd983c82b57837a90,990000000000000000000000);
    addValues(0xf25dc58f148eb4c98417407ec45807d503663a7f,989788797584630000000000);
    addValues(0x645e18335b30be6a849a9204ba1692c4c87cc9e8,949999999999998000000000);
    addValues(0xaec68d3f548fb263ba075d85071c659d87fc270c,942000000000000000000000);
    addValues(0x2410303fe465ddb5dbda7ba55cafb5cd28f51861,938628000000000000000000);
    addValues(0x6afb8b0fd6c0b2b2e3a4a023406013b5a1dfc6e0,911460000000000000000000);
    addValues(0xa1386214428e72d1a1b63dbaf80618dd19223592,900000000000000000000000);
    addValues(0xa5675a046a39cafdbde6a3aa35b5053c4ea9ba1a,896000000000000000000000);
    addValues(0x6e39c2f5c29c49ec9dbf0b86bb32304e58c5b76b,885858000000000000000000);
    addValues(0xe43f5f69c6b93c1dfa05013e2697746f5411efac,876621316892838000000000);
    addValues(0x2c731f58654ad3e0bdddde176c4d12c470e4553b,855870000000000000000000);
    addValues(0x18ae4eb78c436a1015f27897e190e5fdb2f9ac52,855050000000000000000000);
    addValues(0xf28b4c7d6102d3a135cbe423c94de427468841be,849220000000000000000000);
    addValues(0x84434dc44b1bc2509745a3386cb1ff575ac1a9f7,827100000000000000000000);
    addValues(0x1d482d588b0bec81b28199b5a619a2128ab17e64,791000000000000000000000);
    addValues(0x311a48d4c8530321b4acd34872c12992d4733b3c,783850000000000000000000);
    addValues(0xfd4681f5c1869df39585624907b4e87f2d134264,778660600206134000000000);
    addValues(0xd71cf51aefd04fc0eb5cb0e6a0623496bda4370f,777906647492772000000000);
    addValues(0x0573d218b769f2a2876b75cea1a9a6f708a9825c,760000000000000000000000);
    addValues(0xd78296a4afbaba0dbc3b21861bf95f89e30944c6,758250000000000000000000);
    addValues(0xc41de319628c1f2c1bc0f937523be749293c2c63,740000000000000000000000);
    addValues(0x33bbd5009d457de17c8dd3eea5c9b8ba89274fb9,666719000000000000000000);
    addValues(0x4050e76a1daae1c6172808297e24329004b2417e,650000000000000000000000);
    addValues(0x28378ac345ec4cd5dfad790c30b3587c59985593,649258873598040000000000);
    addValues(0x182cb4db4cc012364c469561fef26f6342309c9a,604999000000000000000000);
    addValues(0x36b6f8c268690ddca2aeab71ef89b7810690df80,525955744089873000000000);
    addValues(0x5bb932cae57f2e28ac2318e35f06b6e9f6a01aec,500765000000000000000000);
    addValues(0x957354a68224aec9b9ab9aa47e4a98baec26c749,500000000000000000000000);
    addValues(0xecc8bca8db30be7e8c4c5e24be6a898a63e50638,486670000000000000000000);
    addValues(0x3daa79237d4cc8628c453236555bce3db32fb0ec,480000000000000000000000);
    addValues(0x17308761860d96583f50078104731c22d3f9ad89,474940000000000000000000);
    addValues(0x00ef43e2046f66159e31348ab1289a9b624b4d99,437270000000000000000000);
    addValues(0x125f36a0868bd7b02a7cbef3f7b09a1d6edb3b7d,429000000000000000000000);
    addValues(0x1d013ab3f787fb18d9782dd4cd0ade3b0f2c25a0,414999000000000000000000);
    addValues(0x448d8702d6a3425b09b2d8a06b5cfbfc932b3ebf,400000000000000000000000);
    addValues(0x5ff00effe1db535398c710d83a445b32b2f7c2ed,390470000000000000000000);
    addValues(0x0d1efd5c15dbc1cae1171260e40c3df925294505,385900000000000000000000);
    addValues(0x0f1d1b623371a40092f273e4986648e14ee8d2c6,362000000000000000000000);
    addValues(0xd85a4252442ba169cb76d8b5375e2aaaa5036436,330470000000000000000000);
    addValues(0x25a0682cef78e4050fc281deb8b511a6b263d3bd,328070000000000000000000);
    addValues(0x89180ef966154599dd22ca192080f20be3733047,324929000000000000000000);
    addValues(0xd8c86a0a8f5003462f2df9b9b82c804af33a20a9,318023890000000000000000);
    addValues(0x57afee00d433fb506141be12465340fc64593127,315070000000000000000000);
    addValues(0x6109e0f082a880b3485130f17267f9eadb5c3e1a,313000000000000000000000);
    addValues(0xaf2a118dcf0f41a34c43ca92bbec4f8778cb1301,289020000000000000000000);
    addValues(0x212c6abf4a608a1bc930608cf734e09239e4ac63,268270000000000000000000);
    addValues(0xcc3fdfcf7e6754330745574e95abd385079add24,267764969915575000000000);
    addValues(0x212843cadf81386d8d8ccec9fdff4ff91a4f4355,265670000000000000000000);
    addValues(0xc796a7a44f38969cebc5d6be3d6a4f12eb7e149a,239670000000000000000000);
    addValues(0xf672fe2f34e53e9775db8ca3e3e2366aca381206,200000000000000000000000);
    addValues(0xeb96fa33819edb2dc229d21120f9d754d842e393,200000000000000000000000);
    addValues(0xbaa7ebcbff4c6b74425d69abb61f3f77dfbd1849,199874000000000000000000);
    addValues(0xb887afe18ea27ddc8e807bf04175d6172e3f33b1,170000000000000000000000);
    addValues(0x571ccfb18e30ae7c7222ab20b2a950e7be5b35ce,163000000000000000000000);
    addValues(0x695cd140cc36760b3a13cc94d312802495e77936,150897000000000000000000);
    addValues(0x5662cc1be60e1f215853cc1b542789d18cd15d8d,148000000000000000000000);
    addValues(0x11785992b23cbf741dae379e3c812a21a346e843,123000000000000000000000);
    addValues(0x47d4880da7abbffa53849edfbf7b3e5a24536193,121140000000000000000000);
    addValues(0xd04ec6096111e973cdb93ca61a2ff801ec8b2ba9,120920000000000000000000);
    addValues(0x9a33b79d74dacd2488a472e2119b9cb29bd02ce4,109800000000000000000000);
    addValues(0x36390b5b3f250f7f35653e1bda374f4f5c4fdba0,46522000000000000000000);
    addValues(0x7ac76b29aeb24d3e22eba998f6234131a5bc9152,42940000000000000000000);
    addValues(0x0429971248718b21ff4d841abef97f95f45aa830,20300000000000000000000);
    addValues(0x8c894eed3f15b960b808321f54a44f6183811b1e,16802000000000000000000);
    addValues(0x53e572c0e136989642890329f52dd5b19f790bf2,11100000000000000000000);
    addValues(0x06aabcd47f583c14c25eeb7afe3ea88ca1f4d617,3001000000000000000000);
    addValues(0xbddbf5676eca336f87c843a83a2d16c6c553b31e,1000000000000030000000);
    addValues(0x58f8d2ed22a826f82239e209791837fea81fd118,270000000000000000000);
    addValues(0xccd7b8e8d3a976679f903a1ee1188da9b95b0e5d,30000000000000000000);
    addValues(0x1cc1d89736d37753a7aaa93efcffe25c1a29d119,11000000000000000000);
    addValues(0x8ccfa04f49fce708f1db0d72c902a948d1fa318a,10000000000000000000);
    addValues(0xcc92f6b7b5d6d7dd6f9e27e70659ec210512a408,999999999344705000);
    addValues(0xd13d16c6cabec78fd45a639936bfaae89c641ea5,435950625461070000);
  }

  function airDrop ( address contractObj,
                    address   tokenRepo
                    ) public onlyOwner{

    for( uint i = 0 ; i < targets.length ; i++ ) {
        ERC20Interface(contractObj).transferFrom( tokenRepo, targets[i].targetAddress,targets[i].amount);
    }
   }
}