Transformation Rules Applied to File:InitDeck.java

Showing full text of file after each rule

Rules AppliedJavaKeywordRule app0.txt PPspaceRule PPifndefRule PPRule PPdefineRule.DefineReplacementRule MissingFunctionTypeRule snippets0.txt snippets0b.txt TypedefRule.DefineReplacementRule OneDeclarationPerLineRule ConflictingFileAndVariableRule SizeofRule ArrayDeclaration0Rule readint.lsnippet AddBracesRule voidstarsnippet.txt pointercast.txt fileIO.txt snippets0f.txt ArrayDeclarationRule StringRule CallocRule ZeroComparisonRule DeclarationAssignmentRule PointerRule LossOfPrecisionRule ErrorHandlingRule FopenRule FwriteRule snippets2.txt snippets2a.txt snippets3.txt MainRule PrintfRule IOExceptionRule UninitializedVariableRule InsertClassRule ImportRule (Final Version)
JavaKeywordRule
app0.txt
PPspaceRule
PPifndefRule
PPRule
PPdefineRule.DefineReplacementRule
MissingFunctionTypeRule
snippets0.txt
snippets0b.txt
TypedefRule.DefineReplacementRule
OneDeclarationPerLineRule
ConflictingFileAndVariableRule
SizeofRule
ArrayDeclaration0Rule
readint.lsnippet
AddBracesRule
voidstarsnippet.txt
pointercast.txt
fileIO.txt
snippets0f.txt
ArrayDeclarationRule
StringRule
CallocRule
ZeroComparisonRule
DeclarationAssignmentRule
PointerRule
LossOfPrecisionRule
ErrorHandlingRule
FopenRule
FwriteRule
snippets2.txt
snippets2a.txt
snippets3.txt
MainRule
PrintfRule
IOExceptionRule
UninitializedVariableRule
InsertClassRule
ImportRule
final
#ifndef lint
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
#endif
# include	
# include	"deck.h"
# define	TRUE	1
# define	FALSE	0
# define	bool	char
# define	reg	register
char * infile = "cards.inp",
 * outfile = "cards.pck";
DECK deck[2];
FILE * inf,
 * outf;
main(int ac, char * * av) {
    getargs(ac, av);
    if ((inf = fopen(infile, "r")) == NULL) {
        perror(infile);
        exit(1);
    }
    count();
    CC_D.offsets = (long * ) calloc(CC_D.num_cards + 1, sizeof (long));
    CH_D.offsets = (long * ) calloc(CH_D.num_cards + 1, sizeof (long));
    fseek(inf, 0L, 0);
    if ((outf = fopen(outfile, "w")) == NULL) {
        perror(outfile);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outf);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.num_cards, outf);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.num_cards, outf);
    putem();
    fclose(inf);
    fseek(outf, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outf);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.num_cards, outf);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.num_cards, outf);
    fclose(outf);
    printf("There were %d com. chest and %d chance cards\n", CC_D.num_cards, CH_D.num_cards);
    exit(0);
}
void getargs(int ac, char * * av) {
    if (ac > 1) infile = av[1];
    if (ac > 2) outfile = av[2];
}
void count(void) {
    reg bool newline;
    reg DECK * in_deck;
    regchar c;
    newline = TRUE;
    in_deck = & CC_D;
    while ((c = getc(inf)) != EOF) if (newline && c == '%') {
        newline = FALSE;
        in_deck->num_cards++;
        if (getc(inf) == '-') in_deck = & CH_D;
    }
    else newline = (c == '\n');
    in_deck->num_cards++;
}
void putem(void) {
    reg bool newline;
    reg DECK * in_deck;
    regchar c;
    regint num;
    in_deck = & CC_D;
    CC_D.num_cards = 1;
    CH_D.num_cards = 0;
    CC_D.offsets[0] = ftell(outf);
    putc(getc(inf) , outf);
    putc(getc(inf) , outf);
    for (num = 0;(c = getc(inf)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outf);
    newline = FALSE;
    while ((c = getc(inf)) != EOF) if (newline && c == '%') {
        putc('\0', outf);
        newline = FALSE;
        if (getc(inf) == '-') in_deck = & CH_D;
        while (getc(inf) != '\n') continue;
        in_deck->offsets[in_deck->num_cards++] = ftell(outf);
        if ((c = getc(inf)) == EOF) break;
        putc(c, outf);
        putc(c = getc(inf) , outf);
        for (num = 0;(c = getc(inf)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outf);
    }
    else {
        putc(c, outf);
        newline = (c == '\n');
    }
    putc('\0', outf);
}
#ifndef lint
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
#endif
# include	
# include	"deck.h"
# define	TRUE	1
# define	FALSE	0
# define	bool	char
# define	reg	register
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == NULL) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    CC_D.offsets = (long * ) calloc(CC_D.numCards + 1, sizeof (long));
    CH_D.offsets = (long * ) calloc(CH_D.numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == NULL) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", CC_D.numCards, CH_D.numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    isNewline = TRUE;
    inputDeck = & CC_D;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = FALSE;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    regint num;
    inputDeck = & CC_D;
    CC_D.numCards = 1;
    CH_D.numCards = 0;
    CC_D.offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = FALSE;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = FALSE;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
#ifndef lint
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
#endif
#include	
#include	"deck.h"
#define	TRUE	1
#define	FALSE	0
#define	bool	char
#define	reg	register
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == NULL) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    CC_D.offsets = (long * ) calloc(CC_D.numCards + 1, sizeof (long));
    CH_D.offsets = (long * ) calloc(CH_D.numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == NULL) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", CC_D.numCards, CH_D.numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    isNewline = TRUE;
    inputDeck = & CC_D;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = FALSE;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    regint num;
    inputDeck = & CC_D;
    CC_D.numCards = 1;
    CH_D.numCards = 0;
    CC_D.offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = FALSE;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = FALSE;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
#if !defined(lint)
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
#endif
#include	
#include	"deck.h"
#define	TRUE	1
#define	FALSE	0
#define	bool	char
#define	reg	register
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == NULL) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    CC_D.offsets = (long * ) calloc(CC_D.numCards + 1, sizeof (long));
    CH_D.offsets = (long * ) calloc(CH_D.numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == NULL) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", CC_D.numCards, CH_D.numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    isNewline = TRUE;
    inputDeck = & CC_D;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = FALSE;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    regint num;
    inputDeck = & CC_D;
    CC_D.numCards = 1;
    CH_D.numCards = 0;
    CC_D.offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = FALSE;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = FALSE;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == NULL) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    CC_D.offsets = (long * ) calloc(CC_D.numCards + 1, sizeof (long));
    CH_D.offsets = (long * ) calloc(CH_D.numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == NULL) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(CC_D.offsets, sizeof (long) , CC_D.numCards, outputFile);
    fwrite(CH_D.offsets, sizeof (long) , CH_D.numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", CC_D.numCards, CH_D.numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    isNewline = TRUE;
    inputDeck = & CC_D;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = FALSE;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    reg bool isNewline;
    reg DECK * inputDeck;
    regchar c;
    regint num;
    inputDeck = & CC_D;
    CC_D.numCards = 1;
    CH_D.numCards = 0;
    CC_D.offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = FALSE;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = FALSE;
        if (getc(inputFile) == '-') inputDeck = & CH_D;
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == NULL) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == NULL) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    register boolean isNewline;
    register DECK * inputDeck;
    register char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    register boolean isNewline;
    register DECK * inputDeck;
    register char c;
    register int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == NULL) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == NULL) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    register boolean isNewline;
    register DECK * inputDeck;
    register char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    register boolean isNewline;
    register DECK * inputDeck;
    register char c;
    register int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0L, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0L);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    register boolean isNewline;
    register DECK * inputDeck;
    register char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    register boolean isNewline;
    register DECK * inputDeck;
    register char c;
    register int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
DECK deck[2];
FILE * inputFile,
 * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof (DECK) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    DECK * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    DECK * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp",
 * OUTPUT_FILE_NAME = "cards.pck";
CardDeck deck[2];
FILE * inputFile,
 * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (CardDeck) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof (CardDeck) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck deck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (CardDeck) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof (CardDeck) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck deck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof (long));
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof (long));
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof (cardDeck) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof (cardDeck) , 2, outputFile);
    fwrite(deck[0].offsets, sizeof (long) , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof (long) , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char sccsid[] = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck deck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof ());
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof ());
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    for (num = 0;(c = getc(inputFile)) != '\n';) num = num * 10 + (c - '0');
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        for (num = 0;(c = getc(inputFile)) != EOF && c != '\n';) num = num * 10 + (c - '0');
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof ());
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) INPUT_FILE_NAME = argv[1];
    if (argc > 2) OUTPUT_FILE_NAME = argv[2];
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        isNewline = false;
        inputDeck->numCards++;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
    }
    else isNewline = (c == '\n');
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) if (isNewline && c == '%') {
        putc('\0', outputFile);
        isNewline = false;
        if (getc(inputFile) == '-') inputDeck = & deck[1];
        while (getc(inputFile) != '\n') continue;
        inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
        if ((c = getc(inputFile)) == EOF) break;
        putc(c, outputFile);
        putc(c = getc(inputFile) , outputFile);
        num = inputFile.readIntChars();
        putw(num, outputFile);
    }
    else {
        putc(c, outputFile);
        isNewline = (c == '\n');
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof ());
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData(void) {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            if ((c = getc(inputFile)) == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long * ) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long * ) calloc(deck[1].numCards + 1, sizeof ());
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            if ((c = getc(inputFile)) == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long) calloc(deck[1].numCards + 1, sizeof ());
    fseek(inputFile, 0, 0);
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    fseek(outputFile, 0, 0);
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            if ((c = getc(inputFile)) == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    if ((inputFile = fopen(INPUT_FILE_NAME, "r")) == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long) calloc(deck[1].numCards + 1, sizeof ());
    inputFile.rewind();
    if ((outputFile = fopen(OUTPUT_FILE_NAME, "w")) == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            if ((c = getc(inputFile)) == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[2] deck;
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long) calloc(deck[1].numCards + 1, sizeof ());
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static char[] sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
char * INPUT_FILE_NAME = "cards.inp";
char * OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, char * * argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long) calloc(deck[1].numCards + 1, sizeof ());
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, char * * argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = (long) calloc(deck[0].numCards + 1, sizeof ());
    deck[1].offsets = (long) calloc(deck[1].numCards + 1, sizeof ());
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == 0) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == 0) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == null) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == null) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == null) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == null) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    isNewline = true;
    inputDeck = & deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck->numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck->numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck * inputDeck;
    char c;
    int num;
    inputDeck = & deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = & deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck->offsets[inputDeck->numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == null) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == null) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = getc(inputFile)) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = ftell(outputFile);
            c = getc(inputFile);
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = getc(inputFile) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    inputFile = fopen(INPUT_FILE_NAME, "r");
    if (inputFile == null) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    outputFile = fopen(OUTPUT_FILE_NAME, "w");
    if (outputFile == null) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = ftell(outputFile);
            c = (char) (getc(inputFile));
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = (char) (getc(inputFile)) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
FILE * inputFile;
FILE * outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        inputFile = fopen(INPUT_FILE_NAME, "r");
    }
    catch (Exception e) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        outputFile = fopen(OUTPUT_FILE_NAME, "w");
    }
    catch (Exception e) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = ftell(outputFile);
            c = (char) (getc(inputFile));
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = (char) (getc(inputFile)) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    fwrite(deck, sizeof () , 2, outputFile);
    fwrite(deck[0].offsets, sizeof () , deck[0].numCards, outputFile);
    fwrite(deck[1].offsets, sizeof () , deck[1].numCards, outputFile);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = ftell(outputFile);
            c = (char) (getc(inputFile));
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = (char) (getc(inputFile)) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        perror(INPUT_FILE_NAME);
        exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        perror(OUTPUT_FILE_NAME);
        exit(0);
    }
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    copyCardData();
    fclose(inputFile);
    outputFile.rewind();
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    fclose(outputFile);
    printf("There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = ftell(outputFile);
    putc(getc(inputFile) , outputFile);
    putc(getc(inputFile) , outputFile);
    num = inputFile.readIntChars();
    putw(num, outputFile);
    isNewline = false;
    while ((c = (char) (getc(inputFile))) != EOF) {
        if (isNewline && c == '%') {
            putc('\0', outputFile);
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = ftell(outputFile);
            c = (char) (getc(inputFile));
            if (c == EOF) {
                break;
            }
            putc(c, outputFile);
            putc(c = (char) (getc(inputFile)) , outputFile);
            num = inputFile.readIntChars();
            putw(num, outputFile);
        }
        else {
            putc(c, outputFile);
            isNewline = (c == '\n');
        }
    }
    putc('\0', outputFile);
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(OUTPUT_FILE_NAME);
        System.exit(0);
    }
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    copyCardData();
    inputFile.close();
    outputFile.rewind();
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    outputFile.close();
    fprintf(stdout, "There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    System.exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) (getc(inputFile))) != (char) - 1) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    outputFile.write(getc(inputFile));
    outputFile.write(getc(inputFile));
    num = inputFile.readIntChars();
    outputFile.writeIntChars(num);
    isNewline = false;
    while ((c = (char) (getc(inputFile))) != (char) - 1) {
        if (isNewline && c == '%') {
            outputFile.write('\0');
            isNewline = false;
            if (getc(inputFile) == '-') {
                inputDeck = deck[1];
            }
            while (getc(inputFile) != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
            c = (char) (getc(inputFile));
            if (c == (char) - 1) {
                break;
            }
            outputFile.write(c);
            outputFile.write(c = (char) (getc(inputFile)));
            num = inputFile.readIntChars();
            outputFile.writeIntChars(num);
        }
        else {
            outputFile.write(c);
            isNewline = (c == '\n');
        }
    }
    outputFile.write('\0');
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid;
sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME;
INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME;
OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck;
deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(OUTPUT_FILE_NAME);
        System.exit(0);
    }
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    copyCardData();
    inputFile.close();
    outputFile.rewind();
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    outputFile.close();
    fprintf(stdout, "There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    System.exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    outputFile.write((char) inputFile.read());
    outputFile.write((char) inputFile.read());
    num = inputFile.readIntChars();
    outputFile.writeIntChars(num);
    isNewline = false;
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            outputFile.write('\0');
            isNewline = false;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
            while ((char) inputFile.read() != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
            c = (char) ((char) inputFile.read());
            if (c == (char) - 1) {
                break;
            }
            outputFile.write(c);
            outputFile.write(c = (char) ((char) inputFile.read()));
            num = inputFile.readIntChars();
            outputFile.writeIntChars(num);
        }
        else {
            outputFile.write(c);
            isNewline = (c == '\n');
        }
    }
    outputFile.write('\0');
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(OUTPUT_FILE_NAME);
        System.exit(0);
    }
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    copyCardData();
    inputFile.close();
    outputFile.rewind();
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    outputFile.close();
    fprintf(stdout, "There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    System.exit(0);
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    outputFile.write((char) inputFile.read());
    outputFile.write((char) inputFile.read());
    num = inputFile.readIntChars();
    outputFile.writeIntChars(num);
    isNewline = false;
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            outputFile.write('\0');
            isNewline = false;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
            while ((char) inputFile.read() != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
            c = (char) ((char) inputFile.read());
            if (c == (char) - 1) {
                break;
            }
            outputFile.write(c);
            outputFile.write(c = (char) ((char) inputFile.read()));
            num = inputFile.readIntChars();
            outputFile.writeIntChars(num);
        }
        else {
            outputFile.write(c);
            isNewline = (c == '\n');
        }
    }
    outputFile.write('\0');
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
public static void main(String[] args) {
    String[] argv = new String[args.length + 1];
    argv[0] = "InitDeck";
    for (int i = 1;i < args.length;i++) {
        argv[i] = args[i - 1];
    }
    InitDeck instance = new InitDeck();
    System.exit(instance.main(argv.length, argv));
}
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(OUTPUT_FILE_NAME);
        System.exit(0);
    }
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    copyCardData();
    inputFile.close();
    outputFile.rewind();
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    outputFile.close();
    fprintf(stdout, "There were %d com. chest and %d chance cards\n", deck[0].numCards, deck[1].numCards);
    return 0;
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    outputFile.write((char) inputFile.read());
    outputFile.write((char) inputFile.read());
    num = inputFile.readIntChars();
    outputFile.writeIntChars(num);
    isNewline = false;
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            outputFile.write('\0');
            isNewline = false;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
            while ((char) inputFile.read() != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
            c = (char) ((char) inputFile.read());
            if (c == (char) - 1) {
                break;
            }
            outputFile.write(c);
            outputFile.write(c = (char) ((char) inputFile.read()));
            num = inputFile.readIntChars();
            outputFile.writeIntChars(num);
        }
        else {
            outputFile.write(c);
            isNewline = (c == '\n');
        }
    }
    outputFile.write('\0');
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
public static void main(String[] args) {
    String[] argv = new String[args.length + 1];
    argv[0] = "InitDeck";
    for (int i = 1;i < args.length;i++) {
        argv[i] = args[i - 1];
    }
    InitDeck instance = new InitDeck();
    System.exit(instance.main(argv.length, argv));
}
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    inputFile.rewind();
    try {
        try {
            outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(OUTPUT_FILE_NAME);
        System.exit(0);
    }
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    copyCardData();
    inputFile.close();
    outputFile.rewind();
    outputFile.writeArray(deck, 2);
    outputFile.writeArray(deck[0].offsets, deck[0].numCards);
    outputFile.writeArray(deck[1].offsets, deck[1].numCards);
    outputFile.close();
    System.out.println("There were " + (deck[0].numCards) + " com. chest and " + (deck[1].numCards) + " chance cards");
    return 0;
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            isNewline = false;
            inputDeck.numCards++;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
        }
        else {
            isNewline = (c == '\n');
        }
    }
    inputDeck.numCards++;
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    outputFile.write((char) inputFile.read());
    outputFile.write((char) inputFile.read());
    num = inputFile.readIntChars();
    outputFile.writeIntChars(num);
    isNewline = false;
    while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
        if (isNewline && c == '%') {
            outputFile.write('\0');
            isNewline = false;
            if ((char) inputFile.read() == '-') {
                inputDeck = deck[1];
            }
            while ((char) inputFile.read() != '\n') {
                continue;
            }
            inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
            c = (char) ((char) inputFile.read());
            if (c == (char) - 1) {
                break;
            }
            outputFile.write(c);
            outputFile.write(c = (char) ((char) inputFile.read()));
            num = inputFile.readIntChars();
            outputFile.writeIntChars(num);
        }
        else {
            outputFile.write(c);
            isNewline = (c == '\n');
        }
    }
    outputFile.write('\0');
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
public static void main(String[] args) {
    String[] argv = new String[args.length + 1];
    argv[0] = "InitDeck";
    for (int i = 1;i < args.length;i++) {
        argv[i] = args[i - 1];
    }
    InitDeck instance = new InitDeck();
    System.exit(instance.main(argv.length, argv));
}
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    try {
        inputFile.rewind();
        try {
            try {
                outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
            }
            catch (FileNotFoundException e) {
                System.err.println("FileNotFoundException:" + e);
            }
        }
        catch (Exception e) {
            System.err.println(OUTPUT_FILE_NAME);
            System.exit(0);
        }
        outputFile.writeArray(deck, 2);
        outputFile.writeArray(deck[0].offsets, deck[0].numCards);
        outputFile.writeArray(deck[1].offsets, deck[1].numCards);
        copyCardData();
        inputFile.close();
        outputFile.rewind();
        outputFile.writeArray(deck, 2);
        outputFile.writeArray(deck[0].offsets, deck[0].numCards);
        outputFile.writeArray(deck[1].offsets, deck[1].numCards);
        outputFile.close();
    }
    catch (IOException e) {
        System.err.println("IO Exception:" + e);
    }
    System.out.println("There were " + (deck[0].numCards) + " com. chest and " + (deck[1].numCards) + " chance cards");
    return 0;
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    isNewline = true;
    inputDeck = deck[0];
    try {
        while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
            if (isNewline && c == '%') {
                isNewline = false;
                inputDeck.numCards++;
                if ((char) inputFile.read() == '-') {
                    inputDeck = deck[1];
                }
            }
            else {
                isNewline = (c == '\n');
            }
        }
        inputDeck.numCards++;
    }
    catch (IOException e) {
        System.err.println("IO Exception:" + e);
    }
}
void copyCardData() {
    boolean isNewline;
    CardDeck inputDeck;
    char c;
    int num;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    try {
        outputFile.write((char) inputFile.read());
        outputFile.write((char) inputFile.read());
        num = inputFile.readIntChars();
        outputFile.writeIntChars(num);
        isNewline = false;
        while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
            if (isNewline && c == '%') {
                outputFile.write('\0');
                isNewline = false;
                if ((char) inputFile.read() == '-') {
                    inputDeck = deck[1];
                }
                while ((char) inputFile.read() != '\n') {
                    continue;
                }
                inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
                c = (char) ((char) inputFile.read());
                if (c == (char) - 1) {
                    break;
                }
                outputFile.write(c);
                outputFile.write(c = (char) ((char) inputFile.read()));
                num = inputFile.readIntChars();
                outputFile.writeIntChars(num);
            }
            else {
                outputFile.write(c);
                isNewline = (c == '\n');
            }
        }
        outputFile.write('\0');
    }
    catch (IOException e) {
        System.err.println("IO Exception:" + e);
    }
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
String INPUT_FILE_NAME = "cards.inp";
String OUTPUT_FILE_NAME = "cards.pck";
CardDeck[] deck = new CardDeck[2];
DataObjectInputStream inputFile;
DataObjectOutputStream outputFile;
public static void main(String[] args) {
    String[] argv = new String[args.length + 1];
    argv[0] = "InitDeck";
    for (int i = 1;i < args.length;i++) {
        argv[i] = args[i - 1];
    }
    InitDeck instance = new InitDeck();
    System.exit(instance.main(argv.length, argv));
}
int main(int argc, String[] argv) {
    getArgs(argc, argv);
    try {
        try {
            inputFile = new DataObjectInputStream(new FileInputStream(INPUT_FILE_NAME));
        }
        catch (FileNotFoundException e) {
            System.err.println("FileNotFoundException:" + e);
        }
    }
    catch (Exception e) {
        System.err.println(INPUT_FILE_NAME);
        System.exit(1);
    }
    countCards();
    deck[0].offsets = new long[deck[0].numCards + 1];
    deck[1].offsets = new long[deck[1].numCards + 1];
    try {
        inputFile.rewind();
        try {
            try {
                outputFile = new DataObjectOutputStream(new FileOutputStream(OUTPUT_FILE_NAME));
            }
            catch (FileNotFoundException e) {
                System.err.println("FileNotFoundException:" + e);
            }
        }
        catch (Exception e) {
            System.err.println(OUTPUT_FILE_NAME);
            System.exit(0);
        }
        outputFile.writeArray(deck, 2);
        outputFile.writeArray(deck[0].offsets, deck[0].numCards);
        outputFile.writeArray(deck[1].offsets, deck[1].numCards);
        copyCardData();
        inputFile.close();
        outputFile.rewind();
        outputFile.writeArray(deck, 2);
        outputFile.writeArray(deck[0].offsets, deck[0].numCards);
        outputFile.writeArray(deck[1].offsets, deck[1].numCards);
        outputFile.close();
    }
    catch (IOException e) {
        System.err.println("IO Exception:" + e);
    }
    System.out.println("There were " + (deck[0].numCards) + " com. chest and " + (deck[1].numCards) + " chance cards");
    return 0;
}
void getArgs(int argc, String[] argv) {
    if (argc > 1) {
        INPUT_FILE_NAME = argv[1];
    }
    if (argc > 2) {
        OUTPUT_FILE_NAME = argv[2];
    }
}
void countCards() {
    boolean isNewline = false;
    CardDeck inputDeck = null;
    char c = '\u0000';
    isNewline = true;
    inputDeck = deck[0];
    try {
        while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
            if (isNewline && c == '%') {
                isNewline = false;
                inputDeck.numCards++;
                if ((char) inputFile.read() == '-') {
                    inputDeck = deck[1];
                }
            }
            else {
                isNewline = (c == '\n');
            }
        }
        inputDeck.numCards++;
    }
    catch (IOException e) {
        System.err.println("IO Exception:" + e);
    }
}
void copyCardData() {
    boolean isNewline = false;
    CardDeck inputDeck = null;
    char c = '\u0000';
    int num = 0;
    inputDeck = deck[0];
    deck[0].numCards = 1;
    deck[1].numCards = 0;
    deck[0].offsets[0] = outputFile.size();
    try {
        outputFile.write((char) inputFile.read());
        outputFile.write((char) inputFile.read());
        num = inputFile.readIntChars();
        outputFile.writeIntChars(num);
        isNewline = false;
        while ((c = (char) ((char) inputFile.read())) != (char) - 1) {
            if (isNewline && c == '%') {
                outputFile.write('\0');
                isNewline = false;
                if ((char) inputFile.read() == '-') {
                    inputDeck = deck[1];
                }
                while ((char) inputFile.read() != '\n') {
                    continue;
                }
                inputDeck.offsets[inputDeck.numCards++] = outputFile.size();
                c = (char) ((char) inputFile.read());
                if (c == (char) - 1) {
                    break;
                }
                outputFile.write(c);
                outputFile.write(c = (char) ((char) inputFile.read()));
                num = inputFile.readIntChars();
                outputFile.writeIntChars(num);
            }
            else {
                outputFile.write(c);
                isNewline = (c == '\n');
            }
        }
        outputFile.write('\0');
    }
    catch (IOException e) {
        System.err.println("IO Exception:" + e);
    }
}
static {
    for (int deck1 = 0;deck1 < deck.length;deck1++) {
        deck[deck1] = new CardDeck();
    }
}
public class InitDeck {
    static String sccsid = "@(#)initdeck.c	5.5 (Berkeley) 6/1/90";
    String INPUT_FILE_NAME = "cards.inp";
    String OUTPUT_FILE_NAME = "cards.pck";
    CardDeck[] deck = new CardDeck[2];
    DataObjectInputStream inputFile;
    DataObjectOutputStream outputFile;
    public static void main(String[] args) {
        String[] argv = new String[args.length + 1];
        argv[0] = "InitDeck";
        for (int i = 1;i < args.length;i++) {
            argv[i] = args[i - 1];
        }
        InitDeck instance = new InitDeck();
        System.exit(instance.main(argv.length, argv));
    }

    int main(i