(() => {
    if (window.aituInitiated !== undefined) return;

    window.aituInitiated = false;

    var password = localStorage.getItem("aituPassword");

    if (!password) {
        password = prompt("Enter password: ");
    }

    async function decrypt(encryptedText) {
        const encryptedDataWithIv = new Uint8Array(atob(encryptedText).split("").map(char => char.charCodeAt(0)));

        const iv = encryptedDataWithIv.slice(0, 16);
        const encryptedData = encryptedDataWithIv.slice(16);

        const encoder = new TextEncoder();

        const baseKey = await crypto.subtle.importKey(
            "raw",
            encoder.encode(password),
            { name: "PBKDF2" },
            false,
            ["deriveKey"]
        );

        const keyObj = await crypto.subtle.deriveKey(
            {
                name: "PBKDF2",
                salt: iv,
                iterations: 100000,
                hash: "SHA-256"
            },
            baseKey,
            { name: "AES-CBC", length: 256 },
            false,
            ["decrypt"]
        );

        const decryptedData = await crypto.subtle.decrypt(
            { name: "AES-CBC", iv: iv },
            keyObj,
            encryptedData
        );

        const decoder = new TextDecoder();

        return decoder.decode(decryptedData);
    };

    decrypt("txLd9Plro0ty5EHLuZZVudyfp/5jPYLldJbpPDVvWgzmMQELXbGQLXJXvJxN1muRp9C7DHGIUXMMVusEXN30iK05h4pKOMZTOAsBsW+QaYPDuqpXHSR2mJWn0gEVk5agxghBKivvF/I2d4II6bNNVkRz7tA7mLNceIxhhAr3Af4llmZHwJ5u6EjNNlDkEe9qtFaZnsEOAyhVDZv5p54WZrMaacNHKFhZdhv76IlbjE/fFhp+iluKTgzIpuYg7emGDauFcT6YWVS0zoyeOp6kvSmpMEJ2O10mLlqK6BJlAAk4VDuTmjaVzn6T6pb58yG9s4M3KvLlER2qjRkBziNiehKH3rty+nnaC3LvJEkyIBdOGuy7aD5uadH5mxkdsHsrvzEGtcjHKet21hMkcNuDdhopYnLeAuzEXfNV1T9RYN0vPb1Pi4L6/wrMl5GJJSfPF53wojwnGtxMV1SvcOH7nYE0gG5gELp4PlWmUPrLwh8byJQY53JNyCJhLnbfNeXzrNWpuaAh5sKRWIN3LfAfbY8AKG/TwixXsEWKHqPAuweJIZ1Ysl3BCbPBSXEr3sTrtXa1IkpBbh2fCeyQpNPEtiUXXubxIuKJ2ABgqovqg5/PYY3iO4gm6XDWkh/5ZizZKwLnXoNHlVyLlEyrA4Uuym5bgIFkkN1HqJA2gIWl/8zR733TrYkPDCVoeeVd8fk8p1ChfmbQ84SJR23to2bWeV34s7aJiiB/kLUXoDxDffWmx6AfbIOoZdqAS145Si3bkgUONksAz1Q4LrAYooVTrmWCwjjoxWBmOXeQu4ObJvFMUx0lm+kcTEeNkJ8+5fTD2EQAzQ+cEwGEz1/BAxBRq1feUkOxihyk+tUbCMQ35hLadHA1d6wSl5DzDwK6eGvxHaK55WyHFgnJIl2y+U/B7YZmToiyQGwcjxwhgkIdVONYlaK9Cph2Y2cSeNd+7ej9I2/Ymn5738Lc8lnfIIcF7/GGX8/LbZu6VFEIckXKf5DOhrKURx+x6cbMAV/PPhrgSVdFSjmuWXOZFaVcAK0D11p7m6tJfUCfzkUt7pAHzqxER0R+05XNe+jJweB4HML47f6O5NAV6cJRZuan1uzKV5l8F+ryxOesnYCIk0bWlNqJcgmgDtq1GPW1IEmc7UZ+rb2h22vdu4MIC3teGgkNBHnxwB3lYK9voCZpOXjTKnpGFPVBYUdls/jc3IJtxLUot9ehxDKGY87kNkRY/heZkjreplbKLy7kcv6r967CEJqANYIuMSE5YhqYhvBgvQ1L9WErt2iNpBu/QSbWSBAggsbAaAP5M6sM+GiscJnMTO8FiWEC7hpUbwsd4ddhEAHcrvnLywtzYV1xoVUY4PqOaBUxSw9V1ucwrH62wWPpPgchy7QabGcxqCSLEGva2/C3qHe53WPjaxB9icl6xXNJaIRMXW3O/XW53tl5ibOx3lxXw76HVQje7TwWdruRKR2ADEXFgvOehaLyP3G0btS+kbp0ye223zFDRc7TtDoOuGTl7kwKZQ7OUOkUKNbPdIQqkGmoYq+i3aU9ldDE1NFePhk9hSnuT0cj/qMfzxC/SHeeLYNMQYx2QapR6+tXipTnE7RFfOUvc/x8AJXcb0fPkdTkv6zLgdTFHrdCZGjPl9pkInlT8xwpBxnskAflVwFZrIvhgtzPZ3e1F+yCkch/EmdSwfx+7wIWYqGgvNXYUgW9wjSoXGI/sE8D86QnqguDliyooW6s79+cWBaFvQYiV88e4V9nDtLmMNiaUeLhUvFeDH5o2fvIi25TqQB7WWPjhZa2x3X7udKmAC2VxGpvgS6W021xOCMrxH4BWoE348jf56biZM3tBo83Cl77XGcPAykkWw452w4noxkj2DYp4iGeT/Rk2kgYyvPs5/TGoFv1y+qfW9g/H3EtPKSjPBuNThPTejfJLvMYL5dpRG37ooyVENPTDz/C6cZTL3SaqsobUmz2a6y84bjH4SahTkPQYtUdkddqLSXI05fvbZoF1/1kJNc1N1TlEB+GfENvLEvRh1ZMjv3TPCRD7Fs3RcFxeeR0+R6pozYiHCzaRRILuGnuzEeesREAdQqtcKT7uNN6BBRpmTNYww+Ygwxe9XZbLcJChtugiumxvEo2y3bVxmcM1r97tliq8cvAvDx86nG0/8l4+85w29fbYQ7GroXZxMAkW1YwustsCcjKGW9kaWYnkmJEec8WHzVl3mXYc4gTAfCQFXoz1CVj0JeTCORLadOt35fsfW0cQ8yAVoWqPStCrVEDwt2traO9LzY2mf8qeYTbFlyUCSFT1v+0nB9pd5GZblcmmZ/Kqi9gTuDRszBQ7o0Ds/AjC8j++Pcpf38p7U9qz94EmtT6FXk/aKXV8/JV37j57cqevX9wf1zVcTaesZzhgfC9mqORmGQyK01Ba7Cg0htMBmjgOalG9uCrJivi5471RLAlJokKzmH7p48lOL4U4pryQFmP2Zn49pbej8q8MVQLLLRKsK43x/3hcUktA7je/59XID6R7LeRnN8TG4bhg1B3pfADa4BRLafPQPbpthC0hK97oBWD1VnLTrNIt43MFN8J//NPWf5JkZN3vL8i+1Fd1UYrMosDePUZhFQWiS7jWyCnub332/tHHJk1KV9y8CIY4mxMs4ICeVzNTE2h+HLFzO2T+hjfCPMgtgMuUkvbDPobyAjxHICiDY62dfDYDUjqRSTldOCn+iMBvzOQmQfh5rGtvT5M1W5UdDX/vbhztfdhIvkB79XSgaAfibu6y0FtuLqQIxuuI1ZLqcO5pQF0xNhQiRlINcVltFhs9sAd4S3gyXZX2klICj3W5WkmWhts+Ro0L9+aIurkKwzLsvOmQc2bWJXkEPSEed6FlTsK0nbpRHqItL0nhPYHgOpjXg65Fjmscb8WwnxUpDTnT/1Q7ZtyTGSHBv0YH8fKZ63bUGA9hMzRqxVuxJUvllKQr5Ws1IeCxWpzlTu0BJ/oj9r5sYqTBquMgn/8nndtByRXym69/GhHqXBsDkZuJl1cF4jWO4ugxGOQThBsFGbhFwtQWGotAFK69w7Zh+q8ao1S2kyrDVMTWYd01DvvuNQEePbZo0CjvBbxjpDohwiZcu5Se0dj/+fy5Jnap4UIrnbNLCqxGaRldmGqS+qM7CBdk+KikZJiPF8mgjHS7g70Sg9855RgDwc7U8HsicaayMYza4jmUd+pDIbWHMudl5mPvSQLyb6pUA3EFumkrvo6uNS+Gipykp0GeM35YJmnMpPceZhudFGZHFC936YOEE7wOU1WNpI2ucm1ZAsRIZWR5QWybIHJNEviK9h//x8itp8kXneb7WrQoPLEZJEHAYvsGfWAEUGv843cKEN9jlxvr4kzbJqSosvWfVjIv0PLTm4ugVLxXHEigMeLxMPopilKm/pjTrd6qWDVrw7gO/8SPplIaZNcV1oiF2AREI3PNWgr8nviVoY2M8LQgNkogQ3xdAcXlJ3pJ0zsCRbSEsUwSKsvW6p5J9vUL2hIfC9K23MmqJD292gcOwVB6/yaLgLidpVOqyXz7BfMG0saLNnHduqaGqwT9A25WpL16uloKLkwB5fjJEg5xWtYyye2hw3+0P/+QKpLhuZScLas1N3uCvvM4j0LaXergya89HwYW5DDuykiAaxphwSsggveuyJuaXKFeTcFUYXr1VCnZUarKR+fa1zWhg5NWUfgCRQHx5Yq/rSN0C5xwH5uMYBLy51YhOhj4Ptbilb6WKivw7uat4Sq1fCh08USL9cYyJtHdxEm12j31/0+rPEkLjHMNpInhI6zPMqKN0ldZQ+Ai91XONx5KwtvqwWGAag/eXjfud3mMre0Q7hx1R83VTsAy5eSaUcJikydKxnw71rNhTxjKnYZp1V56BFcxO6je3ebQVOZ8xIiwOS5g6Vzon1yTuuJvZDitfWF+vJzv/2U8OfGyf9iXp9Pxfji4TSaBMP+aW0aiQcRlGy/LNNMFjc0dCRuiv2L2VUbYUax+1QGdzvIH9xeq2vk07BjvifldaWNIPm3GmvDOJRzdMRJNWFgJI2jcf4Y999mRPAayKrVNKnEI08tLBVPkcFy9LPL9ydqDr7Wy+cPIxgo3eAZZ3bBBjV6TyR09ZkktmqUvpeW2SqQVILstI9YQQPQoGGxPiLS98QxUkm81lfogdZleIj6jwxt2cj65CDibq9TgKdj9KIqnW+Cd5YQCOsXOrnozMXQCIbS83IOzYu7dne06fEcaKGEtmlFHZZGNoWNr6ldS+CbeQszhnkZenWeq+pVBvvXIK97ZNtJ/MiI8+SGkvlN9eEKH3Il322udzdtDgbROvTjOxXvy5jUUV9BfPcn1cc6uSSPSQa+oAquwjgrbwArOE04jdyN/lug8J+EFu9y8CEIP4CdJOpRhpkchO6+dhSK7N02z5QAiGwy3rfI2Xg6+P4ypY1crx+/MprrTnzH+ewp76j973LMdghE83TfrT0KAYbKRlE/JZSExz0d+OSUGc9GdQmXjSWLeDqpksAz9IPoUGsqLY/Ad4NFFLDHmVNkNZLWMuzfgBlI/bjcogtDMJpnMq1dK9oh3bQQIh+j0M6vUqUWkC1M0onZkv5Vv7lSReUBmH5FXDhpERnb4PugYgA+FXX5FtADnhmgi2S4xDDf/G2HSUS60ksgjcr63MM/8o/AfCk7J7RapbNooqnw8xFdDEs3PdKWMPHHBIrkbo9UsdJnWRB7qiLPdh3tnI8zSCjA4T4WPMMPnRu+d2p6NMrZNkQ/dgPfykJE5JNWlfo6A3rQrZvqbWqw2pO6iqlOa+89UC9aNDUrN8Sz6nIs51fGh4undWEYQa0VUX42RqsNSUfUjNKNaMuoEYqRXpMjk9CLtJU4FLVtd/LOCHuJIU6oJVKyBTD8tK8xZKWMQZqDYvfhDoxNYlrXK3onoowF27cm6B+nbQMUNDM1aR/I1XK0yAeRgVkSd2Jtvd93fdeaAXP7yibmX/eiYs4NL0FqjdBNF2r8odSVa9c6cjgPJmKYucEjbhOW20KRzoQFq1+zd3GDOyOz2RlEi/NU0zdHjUn/WqXohjrBOpu1DdU58hrfjcuN0T0nvqqoCIndoVlURjiCeq694sPxDKjRvbXS7rqulELqLZCm/F6FylxUqaWcLLFxvswEGC4H73adATkHrvK1PpsTILIFj7m85SYfbdLdOdIDXbADrLYsm3bfuoxQaITc5JwmX0Xl60jHSXILzQHCT77s8KqzKj7U8rdT++6kGqvwHg59M2hPFhcvIYi7DXdm0khYnDmCVsT+3o9KiDm1qcvAEmaGXAcjfZr3PZMIRsrWOXJsvvZXnnyt1MdxG05gv67zGlOBmQb5T2VD2ck6mDsdAHDrhp4Gp8qsEJ4MbWj1NmZOv2Wo2w15FxDI+X0/dOZ1fHb/oYOIclrbvXBYptHFKzVBnDZZOOjWA9JR3EsXZfoopD1RcTadqEs8BagsZD37nKFBb8aq12pC3g++t1PF1hLnkNh0qQZzhv8dCQHyNpI4RPnzErR/0Jaw/Bj7Y5eljcFDiuriryl5jDOwE1TuSCjoe+9pRVKmgq2fD5epnRc+niqRUY0erz8Ha/C2R3I3WhpJN2CmPGwGvHTwP0IQDSDz4v+aqX/lMkaIqcvpkxEZI1HAopxsyEgeIA6fpxioxjErTwUprpQExvakAdfsW0AEg//WZYAtydiA0muHoO6AgZlttppy2uMxXCWQNNrJ0XqUOaASLsOGCwj7Z498uo1GSnb70VNyMYkQa5aYCdpjQcL5eoCuANxMQtyYNInY3/aP6555B8KeGJp/9KKpRIgaN5oEY8QyhZyrCMKGLflWsRcymNxxQQi7ua+VJ6ll4xcWEavNykb7zqPagmXUm/UDttDkxKpbzM/bJ/Hz8BMYmucu6VYYE69SxEzwYdCxWCN3z3rCdRUF3u/xhse8egszEP2Vv7QWX6C511ZG6BG0zGxT7JK3/ttEAMuQ/GzpOD4MJmR5z63lKFKPyJGZhvcbDus2WCy8YdgWHDBI86OuPGgy5qG0xM3hnySuhC353732al/vuTQTVweXpFF7J72pzILSsxeUOBilnvpCkb7CkBqMHEkpjXzMb5wYQKBUyxDnUbLga8wPRqMqYcUUGwgzH4vQfHMcX7rafvvgzBm0rBbLbBBSLc9CG5h0FGG4WsjrC/D/27PHRqB3Y0jMTBIcWyQtHNeaeKFfk/Jyjf/of67s2grfhjar0DxYVNPLftqQAki+lihUmJlH6fYxGEchFPzw767engcaqxM6U74JORLeqFeHkUaGMBgjESdG6u6oYWjrtsyAp+8uYwTFJz1mR6XCIn0Dr4XBZK09MwIKPuvDGJHxv0VUwdRgOoQdvZlolVSOwMQ0DU/NpNJP76okyzjE4N1HJ3F7+o/z4vg4l0nAHSctNZAD4hPT/2HRE/IQGdMb1yfjoD653d8trKft8HvsHFTWd6i2DrJ2KM83adVM3MmGbVK5/8vbt6voZVwaePLaGa+k/P700qGVcaVMMi4VBI3v+7GQ7UYMuSLEZNuP8xVfwiXqY3zQz702sxwoCK0R8CsGKe4RiePd0/moGxAa0DQXxhJKf7eTfRBmSHV2pz5ZsXjsiFLKx8aT8Y1W0vt/ri57tERQrGwcVgYeEh1ve1bRBYxMnf/3uR/yoxQBwF19WyZnkrazZXFSyeDHkfdgyiE+tS5rYj7enLPSeSvvvZbzQ/uzUdrq+DENn+YQTLd9ebpt3n3nntpeQ1J7I8deDm65u08Oy06VPDO/gNFLd5o7qyDzVHHmJKfBLTecJ+LdzETwT4ARMHQ+33XccboTg67yD8vos0cXal8pI4Gbvp7nJ5uwEK+Bsq587UvmB9wiC+EH/CaGSdA2++pimtk9vRZ08hT063XX6Nfx31GsNYrwy6NjzMgno3Ok3Xe7hr14Bk2fXbAFg0VXOPOsUuuZ+TwtxwE6BTenlxoYQ+5Ka23vDZqdse/HpLSny820QSELA905CeYKAUrXdks7PKmnn5F5eTdAxAVCYRIO5s7R1yXhcpm/geyxvpcm9qtzGKZFpKAnDPUwOetcgriAmjnuDt5vv2ZeBwGnQROO3P5HdJZLd3ShbVTfaoFokgHi7C+TCr6k0654xHyEREn/sxNQkSgZDQdeoOCHcrOMw6RTgxalmxIuh7e5hwiv6l2+JBbrmIAQSV0Jch91NYC7kw==").then((decryptedCode) => {
        localStorage.setItem("aituPassword", password);
        eval("(" + decryptedCode.slice(0, decryptedCode.length - 1) + `)`)(password);
    }).catch((error) => {
        alert("Write to https://t.me/AITUCybersecBot");
        window.aituInitiated = undefined;
    })
})();