#ifndef SQL_CRSR
# define SQL_CRSR
struct sql_cursor
{
unsigned int curocn;
void *ptr1;
void *ptr2;
unsigned int magic;
};
typedef struct sql_cursor sql_cursor;
typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */
typedef void * sql_context;
typedef void * SQL_CONTEXT;
struct sqltvn
{
unsigned char *tvnvsn;
unsigned short tvnvsnl;
unsigned char *tvnnm;
unsigned short tvnnml;
unsigned char *tvnsnm;
unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;
struct sqladts
{
unsigned int adtvsn;
unsigned short adtmode;
unsigned short adtnum;
sqltvn adttvn[1];
};
typedef struct sqladts sqladts;
static struct sqladts sqladt = {
1,1,0,
};
struct sqltdss
{
unsigned int tdsvsn;
unsigned short tdsnum;
unsigned char *tdsval[1];
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
1,
0,
};
struct sqlcxp
{
unsigned short fillen;
char filnam[20];
};
static const struct sqlcxp sqlfpn =
{
19,
"horadetruninfoio.pc"
};
static unsigned int sqlctx = 39089155;
static struct sqlexd {
unsigned long sqlvsn;
unsigned int arrsiz;
unsigned int iters;
unsigned int offset;
unsigned short selerr;
unsigned short sqlety;
unsigned int occurs;
const short *cud;
unsigned char *sqlest;
const char *stmt;
sqladts *sqladtp;
sqltdss *sqltdsp;
unsigned char **sqphsv;
unsigned long *sqphsl;
int *sqphss;
short **sqpind;
int *sqpins;
unsigned long *sqparm;
unsigned long **sqparc;
unsigned short *sqpadto;
unsigned short *sqptdso;
unsigned int sqlcmax;
unsigned int sqlcmin;
unsigned int sqlcincr;
unsigned int sqlctimeout;
unsigned int sqlcnowait;
int sqfoff;
unsigned int sqcmod;
unsigned int sqfmod;
unsigned int sqlpfmem;
unsigned char *sqhstv[5];
unsigned long sqhstl[5];
int sqhsts[5];
short *sqindv[5];
int sqinds[5];
unsigned long sqharm[5];
unsigned long *sqharc[5];
unsigned short sqadto[5];
unsigned short sqtdso[5];
} sqlstm = {13,5};
extern "C" {
void sqlcxt (void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlcx2t(void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlbuft(void **, char *);
void sqlgs2t(void **, char *);
void sqlorat(void **, unsigned int *, void *);
}
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }
typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,58,0,6,88,0,0,1,1,0,1,0,1,97,0,0,
24,0,0,2,75,0,6,120,0,0,3,3,0,1,0,1,97,0,0,1,97,0,0,2,3,0,0,
51,0,0,3,110,0,6,156,0,0,5,5,0,1,0,1,97,0,0,1,3,0,0,1,3,0,0,2,1,0,0,2,3,0,0,
86,0,0,4,0,0,29,202,0,0,0,0,0,1,0,
101,0,0,5,0,0,31,212,0,0,0,0,0,1,0,
};
using namespace std;
#include "horadetruninfoio.h"
#include "hdbconn.h"
#include <iostream>
#include <iomanip>
#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern
#include <oraca.h>
#include <sqlca.h>
ClassImp(HOraDetRunInfoIo)
HOraDetRunInfoIo::HOraDetRunInfoIo() {
pConn=new HDbConn();
hasErrors=kFALSE;
numChanges=0;
}
HOraDetRunInfoIo::~HOraDetRunInfoIo() {
if (pConn) {
close();
delete pConn;
pConn=0;
}
}
Bool_t HOraDetRunInfoIo::open(const Char_t* userName,const Char_t* dbName) {
hasErrors=kFALSE;
numChanges=0;
return pConn->connectDb(userName,dbName);
}
void HOraDetRunInfoIo::close() {
pConn->closeDbConn();
}
void HOraDetRunInfoIo::print() {
if (pConn->isOpen()) {
cout<<"Connected to Oracle-Database as user "<<pConn->getUserName();
if (pConn->isReadonly()) {
cout<<" with read-only access\n";
} else {
cout<<" with write access\n";
}
} else cout<<"*** no connection to Oracle established ***\n";
}
Bool_t HOraDetRunInfoIo::isOpen() {
return pConn->isOpen();
}
Bool_t HOraDetRunInfoIo::setDetector(const Char_t* detName) {
if (!isOpen()) return kFALSE;
if (strlen(detName)==0) {
Error("setDetector","Specify detector name");
return 0;
}
char* detname;
detname=(Char_t*)detName;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 1;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin hanal2 . hrv_ana . set_detector ( :detname ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )5;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)detname;
sqlstm.sqhstl[0] = (unsigned long )0;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
return kTRUE;
errorfound:
pConn->showSqlError("setDetector");
hasErrors=kTRUE;
return kFALSE;
}
Int_t HOraDetRunInfoIo::createComment(const Char_t* author,const Char_t* description) {
if (!isOpen()) return -1;
if (strlen(author)==0) {
Error("createComment","Specify author");
return -1;
}
if (strlen(author)==0) {
Error("createComment","Specify comment");
return -1;
}
char* auth;
char* descript;
int id;
auth=(Char_t*)author;
descript=(Char_t*)description;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 3;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin hanal2 . hrv_ana . create_comment ( :auth , :descript\
, :id ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )24;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)auth;
sqlstm.sqhstl[0] = (unsigned long )0;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)descript;
sqlstm.sqhstl[1] = (unsigned long )0;
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&id;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
return id;
errorfound:
pConn->showSqlError("createComment");
hasErrors=kTRUE;
return -1;
}
Bool_t HOraDetRunInfoIo::setRunQuality(const Char_t* filename,Int_t quality,
Int_t commentId) {
if (!isOpen()) return kFALSE;
if (strlen(filename)==0) {
Error("setRunQuality","Filename not defined");
return kFALSE;
}
if (commentId<=0) {
Error("setRunQuality","Comment id not defined");
return kFALSE;
}
char* fname;
int qualityfac;
int commentid;
char status;
int oldqualityfac;
fname=(Char_t*)filename;
qualityfac=quality;
commentid=commentId;
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "begin hanal2 . hrv_ana . set_run_info ( :fname , :qualityfa\
c , :commentid , :status , :oldqualityfac ) ; END ;";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )51;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = (unsigned char *)fname;
sqlstm.sqhstl[0] = (unsigned long )0;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned long )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (unsigned char *)&qualityfac;
sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
sqlstm.sqhsts[1] = ( int )0;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned long )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (unsigned char *)&commentid;
sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
sqlstm.sqhsts[2] = ( int )0;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned long )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (unsigned char *)&status;
sqlstm.sqhstl[3] = (unsigned long )1;
sqlstm.sqhsts[3] = ( int )0;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqinds[3] = ( int )0;
sqlstm.sqharm[3] = (unsigned long )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (unsigned char *)&oldqualityfac;
sqlstm.sqhstl[4] = (unsigned long )sizeof(int);
sqlstm.sqhsts[4] = ( int )0;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqinds[4] = ( int )0;
sqlstm.sqharm[4] = (unsigned long )0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode == 1403) goto errorfound;
if (sqlca.sqlcode < 0) goto errorfound;
}
cout.setf(ios::left,ios::adjustfield);
cout<<setw(50)<<filename;
cout.setf(ios::right,ios::adjustfield);
if (status=='S') {
cout<<"No change\n";
} else if (status=='I') {
cout<<"New quality: "<<setw(2)<<quality<<'\n';
numChanges++;
} else if (status=='U') {
cout<<"New quality: "<<setw(2)<<quality<<'\n';
cout<<setw(63)<<"Old quality: "<<setw(2)<<oldqualityfac<<'\n';
numChanges++;
}
return kTRUE;
errorfound:
pConn->showSqlError("setRunQuality");
hasErrors=kTRUE;
return kFALSE;
}
void HOraDetRunInfoIo::finish() {
if (!isOpen()) return;
cout<<"****************************************************************\n";
if (hasErrors) rollback();
else {
cout<<"Number of changes since last commit/rollback: "<<numChanges<<'\n';
if (numChanges>0) {
TString answer;
cout<<"Do you want to commit the changes (yes or no) > ";
cin>>answer;
if (answer.CompareTo("yes")==0) commit();
else rollback();
} else rollback();
}
cout<<"****************************************************************\n";
}
void HOraDetRunInfoIo::commit() {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )86;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
cout<<"*** Transaction committed"<<endl;
numChanges=0;
return;
errorfound:
pConn->showSqlError("commit");
}
void HOraDetRunInfoIo::rollback() {
{
struct sqlexd sqlstm;
sqlorat((void **)0, &sqlctx, &oraca);
sqlstm.sqlvsn = 13;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )101;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)4352;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto errorfound;
}
cout<<"*** Transaction rolled back"<<endl;
hasErrors=kFALSE;
numChanges=0;
return;
errorfound:
pConn->showSqlError("rollback");
}
horadetruninfoio.pc.cc:10 horadetruninfoio.pc.cc:11 horadetruninfoio.pc.cc:12 horadetruninfoio.pc.cc:13 horadetruninfoio.pc.cc:14 horadetruninfoio.pc.cc:15 horadetruninfoio.pc.cc:16 horadetruninfoio.pc.cc:17 horadetruninfoio.pc.cc:18 horadetruninfoio.pc.cc:19 horadetruninfoio.pc.cc:20 horadetruninfoio.pc.cc:21 horadetruninfoio.pc.cc:22 horadetruninfoio.pc.cc:23 horadetruninfoio.pc.cc:24 horadetruninfoio.pc.cc:25 horadetruninfoio.pc.cc:26 horadetruninfoio.pc.cc:27 horadetruninfoio.pc.cc:28 horadetruninfoio.pc.cc:29 horadetruninfoio.pc.cc:30 horadetruninfoio.pc.cc:31 horadetruninfoio.pc.cc:32 horadetruninfoio.pc.cc:33 horadetruninfoio.pc.cc:34 horadetruninfoio.pc.cc:35 horadetruninfoio.pc.cc:36 horadetruninfoio.pc.cc:37 horadetruninfoio.pc.cc:38 horadetruninfoio.pc.cc:39 horadetruninfoio.pc.cc:40 horadetruninfoio.pc.cc:41 horadetruninfoio.pc.cc:42 horadetruninfoio.pc.cc:43 horadetruninfoio.pc.cc:44 horadetruninfoio.pc.cc:45 horadetruninfoio.pc.cc:46 horadetruninfoio.pc.cc:47 horadetruninfoio.pc.cc:48 horadetruninfoio.pc.cc:49 horadetruninfoio.pc.cc:50 horadetruninfoio.pc.cc:51 horadetruninfoio.pc.cc:52 horadetruninfoio.pc.cc:53 horadetruninfoio.pc.cc:54 horadetruninfoio.pc.cc:55 horadetruninfoio.pc.cc:56 horadetruninfoio.pc.cc:57 horadetruninfoio.pc.cc:58 horadetruninfoio.pc.cc:59 horadetruninfoio.pc.cc:60 horadetruninfoio.pc.cc:61 horadetruninfoio.pc.cc:62 horadetruninfoio.pc.cc:63 horadetruninfoio.pc.cc:64 horadetruninfoio.pc.cc:65 horadetruninfoio.pc.cc:66 horadetruninfoio.pc.cc:67 horadetruninfoio.pc.cc:68 horadetruninfoio.pc.cc:69 horadetruninfoio.pc.cc:70 horadetruninfoio.pc.cc:71 horadetruninfoio.pc.cc:72 horadetruninfoio.pc.cc:73 horadetruninfoio.pc.cc:74 horadetruninfoio.pc.cc:75 horadetruninfoio.pc.cc:76 horadetruninfoio.pc.cc:77 horadetruninfoio.pc.cc:78 horadetruninfoio.pc.cc:79 horadetruninfoio.pc.cc:80 horadetruninfoio.pc.cc:81 horadetruninfoio.pc.cc:82 horadetruninfoio.pc.cc:83 horadetruninfoio.pc.cc:84 horadetruninfoio.pc.cc:85 horadetruninfoio.pc.cc:86 horadetruninfoio.pc.cc:87 horadetruninfoio.pc.cc:88 horadetruninfoio.pc.cc:89 horadetruninfoio.pc.cc:90 horadetruninfoio.pc.cc:91 horadetruninfoio.pc.cc:92 horadetruninfoio.pc.cc:93 horadetruninfoio.pc.cc:94 horadetruninfoio.pc.cc:95 horadetruninfoio.pc.cc:96 horadetruninfoio.pc.cc:97 horadetruninfoio.pc.cc:98 horadetruninfoio.pc.cc:99 horadetruninfoio.pc.cc:100 horadetruninfoio.pc.cc:101 horadetruninfoio.pc.cc:102 horadetruninfoio.pc.cc:103 horadetruninfoio.pc.cc:104 horadetruninfoio.pc.cc:105 horadetruninfoio.pc.cc:106 horadetruninfoio.pc.cc:107 horadetruninfoio.pc.cc:108 horadetruninfoio.pc.cc:109 horadetruninfoio.pc.cc:110 horadetruninfoio.pc.cc:111 horadetruninfoio.pc.cc:112 horadetruninfoio.pc.cc:113 horadetruninfoio.pc.cc:114 horadetruninfoio.pc.cc:115 horadetruninfoio.pc.cc:116 horadetruninfoio.pc.cc:117 horadetruninfoio.pc.cc:118 horadetruninfoio.pc.cc:119 horadetruninfoio.pc.cc:120 horadetruninfoio.pc.cc:121 horadetruninfoio.pc.cc:122 horadetruninfoio.pc.cc:123 horadetruninfoio.pc.cc:124 horadetruninfoio.pc.cc:125 horadetruninfoio.pc.cc:126 horadetruninfoio.pc.cc:127 horadetruninfoio.pc.cc:128 horadetruninfoio.pc.cc:129 horadetruninfoio.pc.cc:130 horadetruninfoio.pc.cc:131 horadetruninfoio.pc.cc:132 horadetruninfoio.pc.cc:133 horadetruninfoio.pc.cc:134 horadetruninfoio.pc.cc:135 horadetruninfoio.pc.cc:136 horadetruninfoio.pc.cc:137 horadetruninfoio.pc.cc:138 horadetruninfoio.pc.cc:139 horadetruninfoio.pc.cc:140 horadetruninfoio.pc.cc:141 horadetruninfoio.pc.cc:142 horadetruninfoio.pc.cc:143 horadetruninfoio.pc.cc:144 horadetruninfoio.pc.cc:145 horadetruninfoio.pc.cc:146 horadetruninfoio.pc.cc:147 horadetruninfoio.pc.cc:148 horadetruninfoio.pc.cc:149 horadetruninfoio.pc.cc:150 horadetruninfoio.pc.cc:151 horadetruninfoio.pc.cc:152 horadetruninfoio.pc.cc:153 horadetruninfoio.pc.cc:154 horadetruninfoio.pc.cc:155 horadetruninfoio.pc.cc:156 horadetruninfoio.pc.cc:157 horadetruninfoio.pc.cc:158 horadetruninfoio.pc.cc:159 horadetruninfoio.pc.cc:160 horadetruninfoio.pc.cc:161 horadetruninfoio.pc.cc:162 horadetruninfoio.pc.cc:163 horadetruninfoio.pc.cc:164 horadetruninfoio.pc.cc:165 horadetruninfoio.pc.cc:166 horadetruninfoio.pc.cc:167 horadetruninfoio.pc.cc:168 horadetruninfoio.pc.cc:169 horadetruninfoio.pc.cc:170 horadetruninfoio.pc.cc:171 horadetruninfoio.pc.cc:172 horadetruninfoio.pc.cc:173 horadetruninfoio.pc.cc:174 horadetruninfoio.pc.cc:175 horadetruninfoio.pc.cc:176 horadetruninfoio.pc.cc:177 horadetruninfoio.pc.cc:178 horadetruninfoio.pc.cc:179 horadetruninfoio.pc.cc:180 horadetruninfoio.pc.cc:181 horadetruninfoio.pc.cc:182 horadetruninfoio.pc.cc:183 horadetruninfoio.pc.cc:184 horadetruninfoio.pc.cc:185 horadetruninfoio.pc.cc:186 horadetruninfoio.pc.cc:187 horadetruninfoio.pc.cc:188 horadetruninfoio.pc.cc:189 horadetruninfoio.pc.cc:190 horadetruninfoio.pc.cc:191 horadetruninfoio.pc.cc:192 horadetruninfoio.pc.cc:193 horadetruninfoio.pc.cc:194 horadetruninfoio.pc.cc:195 horadetruninfoio.pc.cc:196 horadetruninfoio.pc.cc:197 horadetruninfoio.pc.cc:198 horadetruninfoio.pc.cc:199 horadetruninfoio.pc.cc:200 horadetruninfoio.pc.cc:201 horadetruninfoio.pc.cc:202 horadetruninfoio.pc.cc:203 horadetruninfoio.pc.cc:204 horadetruninfoio.pc.cc:205 horadetruninfoio.pc.cc:206 horadetruninfoio.pc.cc:207 horadetruninfoio.pc.cc:208 horadetruninfoio.pc.cc:209 horadetruninfoio.pc.cc:210 horadetruninfoio.pc.cc:211 horadetruninfoio.pc.cc:212 horadetruninfoio.pc.cc:213 horadetruninfoio.pc.cc:214 horadetruninfoio.pc.cc:215 horadetruninfoio.pc.cc:216 horadetruninfoio.pc.cc:217 horadetruninfoio.pc.cc:218 horadetruninfoio.pc.cc:219 horadetruninfoio.pc.cc:220 horadetruninfoio.pc.cc:221 horadetruninfoio.pc.cc:222 horadetruninfoio.pc.cc:223 horadetruninfoio.pc.cc:224 horadetruninfoio.pc.cc:225 horadetruninfoio.pc.cc:226 horadetruninfoio.pc.cc:227 horadetruninfoio.pc.cc:228 horadetruninfoio.pc.cc:229 horadetruninfoio.pc.cc:230 horadetruninfoio.pc.cc:231 horadetruninfoio.pc.cc:232 horadetruninfoio.pc.cc:233 horadetruninfoio.pc.cc:234 horadetruninfoio.pc.cc:235 horadetruninfoio.pc.cc:236 horadetruninfoio.pc.cc:237 horadetruninfoio.pc.cc:238 horadetruninfoio.pc.cc:239 horadetruninfoio.pc.cc:240 horadetruninfoio.pc.cc:241 horadetruninfoio.pc.cc:242 horadetruninfoio.pc.cc:243 horadetruninfoio.pc.cc:244 horadetruninfoio.pc.cc:245 horadetruninfoio.pc.cc:246 horadetruninfoio.pc.cc:247 horadetruninfoio.pc.cc:248 horadetruninfoio.pc.cc:249 horadetruninfoio.pc.cc:250 horadetruninfoio.pc.cc:251 horadetruninfoio.pc.cc:252 horadetruninfoio.pc.cc:253 horadetruninfoio.pc.cc:254 horadetruninfoio.pc.cc:255 horadetruninfoio.pc.cc:256 horadetruninfoio.pc.cc:257 horadetruninfoio.pc.cc:258 horadetruninfoio.pc.cc:259 horadetruninfoio.pc.cc:260 horadetruninfoio.pc.cc:261 horadetruninfoio.pc.cc:262 horadetruninfoio.pc.cc:263 horadetruninfoio.pc.cc:264 horadetruninfoio.pc.cc:265 horadetruninfoio.pc.cc:266 horadetruninfoio.pc.cc:267 horadetruninfoio.pc.cc:268 horadetruninfoio.pc.cc:269 horadetruninfoio.pc.cc:270 horadetruninfoio.pc.cc:271 horadetruninfoio.pc.cc:272 horadetruninfoio.pc.cc:273 horadetruninfoio.pc.cc:274 horadetruninfoio.pc.cc:275 horadetruninfoio.pc.cc:276 horadetruninfoio.pc.cc:277 horadetruninfoio.pc.cc:278 horadetruninfoio.pc.cc:279 horadetruninfoio.pc.cc:280 horadetruninfoio.pc.cc:281 horadetruninfoio.pc.cc:282 horadetruninfoio.pc.cc:283 horadetruninfoio.pc.cc:284 horadetruninfoio.pc.cc:285 horadetruninfoio.pc.cc:286 horadetruninfoio.pc.cc:287 horadetruninfoio.pc.cc:288 horadetruninfoio.pc.cc:289 horadetruninfoio.pc.cc:290 horadetruninfoio.pc.cc:291 horadetruninfoio.pc.cc:292 horadetruninfoio.pc.cc:293 horadetruninfoio.pc.cc:294 horadetruninfoio.pc.cc:295 horadetruninfoio.pc.cc:296 horadetruninfoio.pc.cc:297 horadetruninfoio.pc.cc:298 horadetruninfoio.pc.cc:299 horadetruninfoio.pc.cc:300 horadetruninfoio.pc.cc:301 horadetruninfoio.pc.cc:302 horadetruninfoio.pc.cc:303 horadetruninfoio.pc.cc:304 horadetruninfoio.pc.cc:305 horadetruninfoio.pc.cc:306 horadetruninfoio.pc.cc:307 horadetruninfoio.pc.cc:308 horadetruninfoio.pc.cc:309 horadetruninfoio.pc.cc:310 horadetruninfoio.pc.cc:311 horadetruninfoio.pc.cc:312 horadetruninfoio.pc.cc:313 horadetruninfoio.pc.cc:314 horadetruninfoio.pc.cc:315 horadetruninfoio.pc.cc:316 horadetruninfoio.pc.cc:317 horadetruninfoio.pc.cc:318 horadetruninfoio.pc.cc:319 horadetruninfoio.pc.cc:320 horadetruninfoio.pc.cc:321 horadetruninfoio.pc.cc:322 horadetruninfoio.pc.cc:323 horadetruninfoio.pc.cc:324 horadetruninfoio.pc.cc:325 horadetruninfoio.pc.cc:326 horadetruninfoio.pc.cc:327 horadetruninfoio.pc.cc:328 horadetruninfoio.pc.cc:329 horadetruninfoio.pc.cc:330 horadetruninfoio.pc.cc:331 horadetruninfoio.pc.cc:332 horadetruninfoio.pc.cc:333 horadetruninfoio.pc.cc:334 horadetruninfoio.pc.cc:335 horadetruninfoio.pc.cc:336 horadetruninfoio.pc.cc:337 horadetruninfoio.pc.cc:338 horadetruninfoio.pc.cc:339 horadetruninfoio.pc.cc:340 horadetruninfoio.pc.cc:341 horadetruninfoio.pc.cc:342 horadetruninfoio.pc.cc:343 horadetruninfoio.pc.cc:344 horadetruninfoio.pc.cc:345 horadetruninfoio.pc.cc:346 horadetruninfoio.pc.cc:347 horadetruninfoio.pc.cc:348 horadetruninfoio.pc.cc:349 horadetruninfoio.pc.cc:350 horadetruninfoio.pc.cc:351 horadetruninfoio.pc.cc:352 horadetruninfoio.pc.cc:353 horadetruninfoio.pc.cc:354 horadetruninfoio.pc.cc:355 horadetruninfoio.pc.cc:356 horadetruninfoio.pc.cc:357 horadetruninfoio.pc.cc:358 horadetruninfoio.pc.cc:359 horadetruninfoio.pc.cc:360 horadetruninfoio.pc.cc:361 horadetruninfoio.pc.cc:362 horadetruninfoio.pc.cc:363 horadetruninfoio.pc.cc:364 horadetruninfoio.pc.cc:365 horadetruninfoio.pc.cc:366 horadetruninfoio.pc.cc:367 horadetruninfoio.pc.cc:368 horadetruninfoio.pc.cc:369 horadetruninfoio.pc.cc:370 horadetruninfoio.pc.cc:371 horadetruninfoio.pc.cc:372 horadetruninfoio.pc.cc:373 horadetruninfoio.pc.cc:374 horadetruninfoio.pc.cc:375 horadetruninfoio.pc.cc:376 horadetruninfoio.pc.cc:377 horadetruninfoio.pc.cc:378 horadetruninfoio.pc.cc:379 horadetruninfoio.pc.cc:380 horadetruninfoio.pc.cc:381 horadetruninfoio.pc.cc:382 horadetruninfoio.pc.cc:383 horadetruninfoio.pc.cc:384 horadetruninfoio.pc.cc:385 horadetruninfoio.pc.cc:386 horadetruninfoio.pc.cc:387 horadetruninfoio.pc.cc:388 horadetruninfoio.pc.cc:389 horadetruninfoio.pc.cc:390 horadetruninfoio.pc.cc:391 horadetruninfoio.pc.cc:392 horadetruninfoio.pc.cc:393 horadetruninfoio.pc.cc:394 horadetruninfoio.pc.cc:395 horadetruninfoio.pc.cc:396 horadetruninfoio.pc.cc:397 horadetruninfoio.pc.cc:398 horadetruninfoio.pc.cc:399 horadetruninfoio.pc.cc:400 horadetruninfoio.pc.cc:401 horadetruninfoio.pc.cc:402 horadetruninfoio.pc.cc:403 horadetruninfoio.pc.cc:404 horadetruninfoio.pc.cc:405 horadetruninfoio.pc.cc:406 horadetruninfoio.pc.cc:407 horadetruninfoio.pc.cc:408 horadetruninfoio.pc.cc:409 horadetruninfoio.pc.cc:410 horadetruninfoio.pc.cc:411 horadetruninfoio.pc.cc:412 horadetruninfoio.pc.cc:413 horadetruninfoio.pc.cc:414 horadetruninfoio.pc.cc:415 horadetruninfoio.pc.cc:416 horadetruninfoio.pc.cc:417 horadetruninfoio.pc.cc:418 horadetruninfoio.pc.cc:419 horadetruninfoio.pc.cc:420 horadetruninfoio.pc.cc:421 horadetruninfoio.pc.cc:422 horadetruninfoio.pc.cc:423 horadetruninfoio.pc.cc:424 horadetruninfoio.pc.cc:425 horadetruninfoio.pc.cc:426 horadetruninfoio.pc.cc:427 horadetruninfoio.pc.cc:428 horadetruninfoio.pc.cc:429 horadetruninfoio.pc.cc:430 horadetruninfoio.pc.cc:431 horadetruninfoio.pc.cc:432 horadetruninfoio.pc.cc:433 horadetruninfoio.pc.cc:434 horadetruninfoio.pc.cc:435 horadetruninfoio.pc.cc:436 horadetruninfoio.pc.cc:437 horadetruninfoio.pc.cc:438 horadetruninfoio.pc.cc:439 horadetruninfoio.pc.cc:440 horadetruninfoio.pc.cc:441 horadetruninfoio.pc.cc:442 horadetruninfoio.pc.cc:443 horadetruninfoio.pc.cc:444 horadetruninfoio.pc.cc:445 horadetruninfoio.pc.cc:446 horadetruninfoio.pc.cc:447 horadetruninfoio.pc.cc:448 horadetruninfoio.pc.cc:449 horadetruninfoio.pc.cc:450 horadetruninfoio.pc.cc:451 horadetruninfoio.pc.cc:452 horadetruninfoio.pc.cc:453 horadetruninfoio.pc.cc:454 horadetruninfoio.pc.cc:455 horadetruninfoio.pc.cc:456 horadetruninfoio.pc.cc:457 horadetruninfoio.pc.cc:458 horadetruninfoio.pc.cc:459 horadetruninfoio.pc.cc:460 horadetruninfoio.pc.cc:461 horadetruninfoio.pc.cc:462 horadetruninfoio.pc.cc:463 horadetruninfoio.pc.cc:464 horadetruninfoio.pc.cc:465 horadetruninfoio.pc.cc:466 horadetruninfoio.pc.cc:467 horadetruninfoio.pc.cc:468 horadetruninfoio.pc.cc:469 horadetruninfoio.pc.cc:470 horadetruninfoio.pc.cc:471 horadetruninfoio.pc.cc:472 horadetruninfoio.pc.cc:473 horadetruninfoio.pc.cc:474 horadetruninfoio.pc.cc:475 horadetruninfoio.pc.cc:476 horadetruninfoio.pc.cc:477 horadetruninfoio.pc.cc:478 horadetruninfoio.pc.cc:479 horadetruninfoio.pc.cc:480 horadetruninfoio.pc.cc:481 horadetruninfoio.pc.cc:482 horadetruninfoio.pc.cc:483 horadetruninfoio.pc.cc:484 horadetruninfoio.pc.cc:485 horadetruninfoio.pc.cc:486 horadetruninfoio.pc.cc:487 horadetruninfoio.pc.cc:488 horadetruninfoio.pc.cc:489 horadetruninfoio.pc.cc:490 horadetruninfoio.pc.cc:491 horadetruninfoio.pc.cc:492 horadetruninfoio.pc.cc:493 horadetruninfoio.pc.cc:494 horadetruninfoio.pc.cc:495 horadetruninfoio.pc.cc:496 horadetruninfoio.pc.cc:497 horadetruninfoio.pc.cc:498 horadetruninfoio.pc.cc:499 horadetruninfoio.pc.cc:500 horadetruninfoio.pc.cc:501 horadetruninfoio.pc.cc:502 horadetruninfoio.pc.cc:503 horadetruninfoio.pc.cc:504 horadetruninfoio.pc.cc:505 horadetruninfoio.pc.cc:506 horadetruninfoio.pc.cc:507 horadetruninfoio.pc.cc:508 horadetruninfoio.pc.cc:509 horadetruninfoio.pc.cc:510 horadetruninfoio.pc.cc:511 horadetruninfoio.pc.cc:512 horadetruninfoio.pc.cc:513 horadetruninfoio.pc.cc:514 horadetruninfoio.pc.cc:515 horadetruninfoio.pc.cc:516 horadetruninfoio.pc.cc:517 horadetruninfoio.pc.cc:518 horadetruninfoio.pc.cc:519 horadetruninfoio.pc.cc:520 horadetruninfoio.pc.cc:521 horadetruninfoio.pc.cc:522 horadetruninfoio.pc.cc:523 horadetruninfoio.pc.cc:524 horadetruninfoio.pc.cc:525 horadetruninfoio.pc.cc:526 horadetruninfoio.pc.cc:527 horadetruninfoio.pc.cc:528 horadetruninfoio.pc.cc:529 horadetruninfoio.pc.cc:530 horadetruninfoio.pc.cc:531 horadetruninfoio.pc.cc:532 horadetruninfoio.pc.cc:533 horadetruninfoio.pc.cc:534 horadetruninfoio.pc.cc:535 horadetruninfoio.pc.cc:536 horadetruninfoio.pc.cc:537 horadetruninfoio.pc.cc:538 horadetruninfoio.pc.cc:539 horadetruninfoio.pc.cc:540 horadetruninfoio.pc.cc:541 horadetruninfoio.pc.cc:542 horadetruninfoio.pc.cc:543 horadetruninfoio.pc.cc:544 horadetruninfoio.pc.cc:545 horadetruninfoio.pc.cc:546 horadetruninfoio.pc.cc:547 horadetruninfoio.pc.cc:548 horadetruninfoio.pc.cc:549 horadetruninfoio.pc.cc:550 horadetruninfoio.pc.cc:551 horadetruninfoio.pc.cc:552 horadetruninfoio.pc.cc:553 horadetruninfoio.pc.cc:554 horadetruninfoio.pc.cc:555 horadetruninfoio.pc.cc:556 horadetruninfoio.pc.cc:557 horadetruninfoio.pc.cc:558 horadetruninfoio.pc.cc:559 horadetruninfoio.pc.cc:560 horadetruninfoio.pc.cc:561 horadetruninfoio.pc.cc:562 horadetruninfoio.pc.cc:563 horadetruninfoio.pc.cc:564 horadetruninfoio.pc.cc:565 horadetruninfoio.pc.cc:566 horadetruninfoio.pc.cc:567 horadetruninfoio.pc.cc:568 horadetruninfoio.pc.cc:569 horadetruninfoio.pc.cc:570 horadetruninfoio.pc.cc:571 horadetruninfoio.pc.cc:572 horadetruninfoio.pc.cc:573 horadetruninfoio.pc.cc:574 horadetruninfoio.pc.cc:575 horadetruninfoio.pc.cc:576 horadetruninfoio.pc.cc:577 horadetruninfoio.pc.cc:578 horadetruninfoio.pc.cc:579 horadetruninfoio.pc.cc:580